/* L-Kurve PHP MVC modern theme bridge. No build tools or npm required. */
:root{--lk-primary:#5146c7;--lk-primary-deep:#342b91;--lk-primary-soft:#eeedff;--lk-ink:#202b49;--lk-muted:#77819b;--lk-line:#e5e9f3;--lk-canvas:#f4f6fb;--lk-surface:#fff;--lk-shadow:0 8px 28px rgba(31,42,86,.07);--lk-radius:14px}
/* Shared Bootstrap/Ace components across admin and learner layouts */
.panel,.well,.widget-box,.widget-box.transparent,.portlet,.card{border:1px solid var(--lk-line)!important;border-radius:var(--lk-radius)!important;background:var(--lk-surface);box-shadow:var(--lk-shadow);overflow:hidden}
.panel-heading,.widget-header,.widget-header-flat,.portlet-heading{background:#fff!important;border-bottom:1px solid #edf0f6!important;padding:14px 18px!important;color:#303b5e!important;font-weight:700}
.panel-body,.widget-main,.widget-body,.portlet-body{background:#fff;padding:18px}
.btn{border-radius:8px!important;font-weight:600;transition:background .15s ease,border-color .15s ease,transform .15s ease;box-shadow:none!important}
.btn-primary,.btn-info{background:var(--lk-primary)!important;border-color:var(--lk-primary)!important;color:#fff!important}
.btn-primary:hover,.btn-info:hover{background:var(--lk-primary-deep)!important;border-color:var(--lk-primary-deep)!important}
.btn-default,.btn-white{background:#fff!important;border-color:#dfe4ef!important;color:#53607b!important}
.form-control,input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],select,textarea{border:1px solid #dfe4ef!important;border-radius:8px!important;box-shadow:none!important;max-width:100%}
.form-control:focus,input:focus,select:focus,textarea:focus{border-color:#9e98ef!important;box-shadow:0 0 0 3px rgba(81,70,199,.10)!important;outline:0}
label{color:#56617c;font-weight:600}
.table-responsive{border:1px solid var(--lk-line);border-radius:12px;background:#fff}
.table{background:#fff;border-color:#e7eaf2!important}
.table>thead>tr>th{background:#f5f6fb!important;color:#64708b!important;border-color:#e5e9f2!important;font-size:11px;font-weight:750;letter-spacing:.3px}
.table>tbody>tr>td{border-color:#edf0f6!important;color:#4a5673;vertical-align:middle}
.table-striped>tbody>tr:nth-of-type(odd){background:#fafbfe!important}
.table-hover>tbody>tr:hover{background:#f3f3ff!important}
.pagination>li>a,.pagination>li>span{border-color:#e3e7f0;color:#596581;border-radius:7px;margin:0 2px}
.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover{background:var(--lk-primary)!important;border-color:var(--lk-primary)!important;color:#fff!important}
.alert{border:0;border-radius:10px;box-shadow:0 3px 12px rgba(31,42,86,.04)}
.modal-content{border:1px solid #e4e8f2!important;border-radius:15px!important;overflow:hidden;box-shadow:0 20px 55px rgba(25,34,76,.2)!important}
.modal-header{background:#f7f7fd!important;border-bottom:1px solid #e8ebf4!important}
/* Optional reusable classes for PHP views; Tailwind utilities use the tw- prefix. */
.lk-page-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px;padding:0 0 15px;border-bottom:1px solid var(--lk-line)}
.lk-page-heading h1,.lk-page-heading h2{margin:0;color:var(--lk-ink);font-size:24px;font-weight:750;letter-spacing:-.4px}
.lk-card{background:#fff;border:1px solid var(--lk-line);border-radius:var(--lk-radius);box-shadow:var(--lk-shadow);padding:20px;margin-bottom:20px}
.lk-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:22px}
.lk-stat-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--lk-line);border-radius:14px;padding:18px;box-shadow:var(--lk-shadow)}
.lk-stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--lk-primary)}
.lk-stat-card .lk-stat-label{font-size:12px;color:var(--lk-muted);font-weight:600}
.lk-stat-card .lk-stat-value{margin-top:8px;color:var(--lk-ink);font-size:28px;font-weight:750;line-height:1.2}
.lk-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--lk-line);border-radius:12px}
.lk-form-section{background:#fff;border:1px solid var(--lk-line);border-radius:14px;padding:20px;margin-bottom:18px}
@media(max-width:767px){.lk-card,.lk-form-section{padding:14px}.lk-page-heading h1,.lk-page-heading h2{font-size:20px}.table-responsive{border-radius:9px}}


/* L-Kurve actual dashboard/calendar redesign overrides (no npm) */
body.no-skin { background:#f4f6fb!important; color:#24304d!important; }
#main-content, .main-content, .page-content { background:#f4f6fb!important; }
.page-header { border-bottom:1px solid #e4e8f2!important; margin:0 0 22px!important; padding:18px 0 16px!important; }
.page-header h1 { color:#202b49!important; font-size:27px!important; font-weight:700!important; }
.page-header h1 small { color:#77819b!important; font-size:12px!important; }
/* Dashboard shortcut tiles */
.infobox-container { display:flex!important; flex-wrap:wrap!important; justify-content:center!important; gap:10px!important; padding:8px 0 20px!important; }
.infobox-container > a { display:block!important; float:none!important; margin:0!important; flex:1 1 125px!important; max-width:165px!important; text-decoration:none!important; }
.infobox-container .infobox { width:100%!important; min-height:66px!important; height:auto!important; margin:0!important; padding:12px!important; display:flex!important; align-items:center!important; gap:10px!important; border:1px solid #e3e7f4!important; border-radius:13px!important; background:linear-gradient(135deg,#5146c7,#373a9f)!important; box-shadow:0 5px 16px rgba(49,55,125,.14)!important; transition:transform .18s ease,box-shadow .18s ease!important; }
.infobox-container > a:hover .infobox { transform:translateY(-2px); box-shadow:0 9px 22px rgba(49,55,125,.2)!important; }
.infobox-container .infobox-icon { width:34px!important; min-width:34px!important; height:34px!important; line-height:34px!important; border-radius:10px!important; background:rgba(255,255,255,.16)!important; color:#fff!important; }
.infobox-container .infobox-icon>.ace-icon { color:#fff!important; font-size:18px!important; }
.infobox-container .infobox-data { padding:0!important; text-align:left!important; }
.infobox-container .infobox-content { color:#fff!important; font-size:12px!important; line-height:1.35!important; font-weight:600!important; white-space:normal!important; }
/* Real calendar panel, not just generic utility classes */
#calendar { background:#fff!important; border:1px solid #e5e9f3!important; border-radius:12px!important; padding:12px!important; }
.widget-box.transparent { background:#fff!important; border:1px solid #e5e9f3!important; border-radius:15px!important; box-shadow:0 8px 28px rgba(31,42,86,.07)!important; overflow:hidden!important; margin-bottom:18px!important; }
.widget-box.transparent>.widget-header, .widget-box.transparent>.widget-header-flat { background:#fff!important; border-bottom:1px solid #edf0f6!important; padding:15px 18px!important; min-height:52px!important; }
.widget-box.transparent .widget-title { color:#263454!important; font-weight:700!important; }
.widget-box.transparent .widget-title .ace-icon { color:#5146c7!important; }
.widget-box.transparent>.widget-body>.widget-body-inner>.widget-main { padding:18px!important; }
#calendar .fc-toolbar h2 { color:#263454!important; font-size:18px!important; font-weight:700!important; }
#calendar .fc-button { background:#f5f6ff!important; background-image:none!important; border:1px solid #e1e5f3!important; border-radius:7px!important; color:#4d47ad!important; text-shadow:none!important; box-shadow:none!important; height:auto!important; padding:7px 11px!important; margin:0 2px!important; }
#calendar .fc-button:hover, #calendar .fc-state-active { background:#5146c7!important; border-color:#5146c7!important; color:#fff!important; }
#calendar .fc th { background:#f5f6fb!important; color:#5c6682!important; font-weight:700!important; padding:9px 0!important; }
#calendar .fc td, #calendar .fc th { border-color:#e7eaf3!important; }
#calendar .fc-day-number { color:#596580!important; padding:5px!important; }
#calendar .fc-event { border:0!important; border-radius:4px!important; padding:2px 4px!important; font-size:11px!important; }
#external-events .external-event { border:0!important; border-radius:8px!important; margin:0 0 8px!important; padding:10px 9px!important; font-size:12px!important; font-weight:600!important; box-shadow:none!important; }
#external-events .label-success { background:#dcfce7!important; color:#166534!important; }
#external-events .label-danger { background:#fee2e2!important; color:#991b1b!important; }
#external-events .label-yellow, #external-events .badge-yellow { background:#ede9fe!important; border-color:#ddd6fe!important; color:#5b21b6!important; }
#external-events .label-pink { background:#fce7f3!important; color:#9d174d!important; }
#external-events .label-info { background:#dbeafe!important; color:#1d4ed8!important; }
/* Event detail DataTable */
#sessions_table { border:1px solid #e5e9f3!important; border-collapse:separate!important; border-spacing:0!important; border-radius:10px!important; overflow:hidden!important; background:#fff!important; }
#sessions_table thead th { background:#f5f6fb!important; color:#4b5674!important; border-color:#e5e9f3!important; font-weight:700!important; font-size:11px!important; padding:12px 10px!important; }
#sessions_table tbody td { border-color:#edf0f6!important; color:#4c5875!important; padding:11px 10px!important; vertical-align:middle!important; }
#sessions_table tbody tr:nth-child(even) { background:#fafbff!important; }
.dataTables_wrapper .dataTables_filter input, .dataTables_wrapper .dataTables_length select { border:1px solid #dfe4f0!important; border-radius:8px!important; padding:7px 10px!important; background:#fff!important; box-shadow:none!important; }
.dataTables_wrapper .dataTables_paginate .paginate_button { border:1px solid #e1e5f0!important; border-radius:7px!important; background:#fff!important; color:#5146c7!important; margin:0 2px!important; }
.dataTables_wrapper .dataTables_paginate .paginate_button.current { background:#5146c7!important; color:#fff!important; border-color:#5146c7!important; }
@media(max-width:767px){ .infobox-container > a { flex:1 1 42%!important; max-width:none!important; } #calendar { overflow-x:auto!important; } .widget-box.transparent>.widget-body>.widget-body-inner>.widget-main { padding:10px!important; } }
