@import url(https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;700&display=swap);:root{--sidebar-width:240px;--layout-gap:1.5rem;--topbar-height:0px;--layout-pad-y:1.25rem;--layout-pad-x:2rem}body{background-color:#f6f8fb;color:#0f172a;font-family:Rubik,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}.auth-page{display:flex;flex-direction:column;min-height:100vh}.login-page{align-items:center;display:flex;justify-content:center;margin:0 auto;max-width:720px;min-height:calc(100vh - 100px);padding:2rem;width:100%}.login-form{background:#fff;border:none;box-shadow:0 12px 40px rgba(15,23,42,.12);max-width:420px;width:100%}.login-form h1{font-weight:600}.login-form .form-control{padding:.65rem .75rem}.logo-img{height:auto;max-width:220px}.auth-page .layout{display:flex;flex-direction:column;min-height:100vh}.auth-page .layout-body{align-items:center;display:flex;flex:1;gap:0;justify-content:center;padding:2rem 1.5rem 1rem}.auth-page .content{display:flex;justify-content:center;max-width:100%;width:100%}.auth-page .content>*{width:min(720px,100%)}body.auth-page .site-footer{padding-top:.5rem}body.app-shell{background-color:#0f172a;color:#e5e7eb}.layout{display:flex;flex-direction:column;min-height:100vh}.layout-body{box-sizing:border-box;display:flex;flex:1;gap:var(--layout-gap);min-height:0;padding:var(--layout-pad-y) var(--layout-pad-x) var(--layout-pad-y) var(--layout-pad-y);width:100%}.topbar{height:0;padding:0}.brand{align-items:center;display:flex;font-weight:700;gap:.75rem}.brand-sidebar{align-items:center;flex-direction:column;gap:.5rem;margin-bottom:1.5rem;text-align:center}.brand-logo{display:block;height:46px;width:auto}.brand-title{font-size:1.4rem;text-align:center;width:100%}.sidebar{align-self:flex-start;background:hsla(0,0%,100%,.02);border:1px solid hsla(0,0%,100%,.05);border-radius:14px;box-sizing:border-box;display:flex;flex-direction:column;height:calc(100svh - var(--layout-pad-y)*2);max-height:calc(100svh - var(--layout-pad-y)*2);overflow:hidden;padding:1.1rem;position:sticky;top:var(--layout-pad-y);width:var(--sidebar-width)}@media (max-width:1100px){:root{--sidebar-width:210px;--layout-gap:1rem;--topbar-height:0px;--layout-pad-y:1.1rem;--layout-pad-x:1.5rem}.topbar{height:0;padding:0}.sidebar{height:calc(100svh - var(--layout-pad-y)*2);max-height:calc(100svh - var(--layout-pad-y)*2);padding:1rem;top:var(--layout-pad-y)}}.sidebar nav{display:flex;flex:1;flex-direction:column;gap:0;justify-content:flex-start;min-height:0}.nav-group{display:grid;gap:1.2rem}.nav-group-bottom{margin-top:auto;padding-top:2rem}.nav-link{align-items:center;border-radius:12px;color:#e5e7eb;display:flex;font-size:1.15rem;font-weight:600;gap:.6rem;padding:.35rem .85rem;text-decoration:none;transition:background-color .2s ease,color .2s ease}.nav-link-icon{align-items:center;display:inline-flex;flex:0 0 1.12rem;height:1.12rem;justify-content:center;width:1.12rem}.nav-link-icon svg{fill:none;height:100%;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:100%}.nav-link.nav-link-muted{opacity:.75}.nav-link:hover{background:hsla(0,0%,100%,.08)}.nav-link-muted{color:#cbd5e1;font-weight:500}.content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;max-width:1200px;min-height:0;width:100%}.content h2{font-weight:700;margin-bottom:1rem}.app-flash{border:1px solid transparent;border-radius:10px;font-weight:500;margin-bottom:.8rem;padding:.7rem .9rem}.app-flash-success{background:rgba(22,163,74,.16);border-color:rgba(74,222,128,.45);color:#dcfce7}.app-flash-danger{background:rgba(220,38,38,.16);border-color:hsla(0,91%,71%,.5);color:#fee2e2}.app-flash-warning{background:rgba(245,158,11,.16);border-color:rgba(251,191,36,.45);color:#fef3c7}.content-card{background:#111827;border:1px solid hsla(0,0%,100%,.06);border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.35);color:#f8fafc;padding:1rem}.form-card{max-width:820px}.form-card .form-label,.user-add-card .form-label{color:#e5e7eb;font-weight:600}.form-card .form-control,.form-card .form-select,.form-card textarea,.user-add-card .form-control,.user-add-card .form-select,.user-add-card textarea{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:10px;color:#f8fafc}.form-card .form-control::placeholder,.form-card .form-select::placeholder,.form-card textarea::placeholder,.user-add-card .form-control::placeholder,.user-add-card .form-select::placeholder,.user-add-card textarea::placeholder{color:#cbd5e1;opacity:.8}.form-card .form-control:focus,.form-card .form-select:focus,.form-card textarea:focus,.user-add-card .form-control:focus,.user-add-card .form-select:focus,.user-add-card textarea:focus{background:hsla(0,0%,100%,.08);border-color:#60a5fa;box-shadow:0 0 0 .2rem rgba(96,165,250,.25);color:#f8fafc}.form-card .invalid-feedback,.user-add-card .invalid-feedback{color:#fca5a5}.generated-name-field{align-items:center;display:flex;min-height:calc(1.5em + .75rem + 2px)}.generated-name-field.generated-placeholder{color:#cbd5e1;opacity:.85}.table{border-collapse:separate;border-spacing:0;color:inherit;margin-bottom:0;width:100%}.table.table-listing{table-layout:fixed}.table.table-groups{min-width:1120px;table-layout:auto}.table.table-groups td.actions-col,.table.table-groups td.group-col,.table.table-groups th.actions-col,.table.table-groups th.group-col{white-space:nowrap}.table.table-users{min-width:1120px;table-layout:auto}.table.table-users td.actions-col,.table.table-users td.full-name-col,.table.table-users td.user-name-col,.table.table-users th.actions-col,.table.table-users th.full-name-col,.table.table-users th.user-name-col{white-space:nowrap}.table.table-courses{min-width:1120px;table-layout:auto}.table.table-courses td.actions-col,.table.table-courses td.course-col,.table.table-courses td.short-name-col,.table.table-courses th.actions-col,.table.table-courses th.course-col,.table.table-courses th.short-name-col{white-space:nowrap}.table.participants-table{min-width:980px;table-layout:auto}.table.participants-table td{vertical-align:middle}.table.participants-table td:first-child,.table.participants-table th:first-child{padding-right:.55rem}.table.participants-table td:nth-child(2),.table.participants-table th:nth-child(2){padding-left:.55rem}.participants-muted{color:#94a3b8}.confirm-backdrop{align-items:center;backdrop-filter:blur(2px);background:rgba(2,6,23,.72);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1200}.confirm-dialog{background:#111827;border:1px solid hsla(0,0%,100%,.1);border-radius:14px;box-shadow:0 16px 48px rgba(0,0,0,.45);color:#f8fafc;padding:1rem;width:min(460px,100%)}.confirm-dialog-wide{width:min(620px,100%)}.confirm-dialog h5{font-weight:700;margin:0 0 .5rem}.confirm-dialog p{color:#cbd5e1;margin:0 0 1rem}.confirm-dialog .form-label{color:#e5e7eb;font-weight:600}.confirm-dialog .form-control,.confirm-dialog .form-select{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:10px;color:#f8fafc}.confirm-dialog .form-control:focus,.confirm-dialog .form-select:focus{background:hsla(0,0%,100%,.08);border-color:#60a5fa;box-shadow:0 0 0 .2rem rgba(96,165,250,.25);color:#f8fafc}.table thead th{background:#0b1220;border:none;color:#e5e7eb;font-weight:700;padding:.7rem .9rem;vertical-align:middle;white-space:nowrap}.table tbody td{background:#111827;border-color:hsla(0,0%,100%,.05);color:#f8fafc;padding:.7rem .9rem}.table-actions .search-group .form-control{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.08);color:#f8fafc}.search-inline .search-group .form-control::placeholder,.table-actions .search-group .form-control::placeholder{color:#f8fafc;opacity:.75}.table-actions .search-group .form-control:focus{background:hsla(0,0%,100%,.08);border-color:#60a5fa;box-shadow:0 0 0 .2rem rgba(96,165,250,.25);color:#f8fafc}.search-inline .search-group .btn,.table-actions .search-group .btn{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.14);color:#f8fafc;transition:background-color .15s ease,border-color .15s ease}.search-inline .search-group .btn:hover,.table-actions .search-group .btn:hover{background:hsla(0,0%,100%,.16);border-color:#60a5fa}.search-inline{display:flex;justify-content:flex-end;width:100%}.search-inline .search-group .form-control{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.08);color:#f8fafc;min-width:140px}.search-inline .search-group{display:flex;flex-wrap:nowrap}.search-inline .search-group .btn{white-space:nowrap}.picker-card{background:hsla(0,0%,100%,.03);border:1px solid hsla(0,0%,100%,.08);border-radius:12px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.03);margin-bottom:1rem;padding:.9rem}.picker-header{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.35rem}.picker-count{color:#cbd5e1;font-size:.9rem}.picker-search .form-control{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);color:#f8fafc}.picker-input::placeholder{color:#f8fafc;opacity:.8}.picker-list .picker-select{-webkit-appearance:none;background:#0b1220!important;background-image:none;border:1px solid hsla(0,0%,100%,.18);border-radius:10px;color:#f8fafc!important;min-height:220px;padding:.35rem .5rem;width:100%}.picker-list .picker-select option[hidden]{display:none}.picker-list .picker-select option{background:#0b1220!important;color:#f8fafc!important}.search-clear{background:rgba(239,68,68,.1);border-color:#ef4444!important;border-radius:8px;color:#ef4444!important;margin-right:.4rem;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.search-clear:hover{background:rgba(239,68,68,.18);border-color:#f87171!important;color:#fca5a5!important}.sortable .sort-head{align-items:center;display:flex;gap:.25rem}.table th.sortable{padding-right:.5rem}.sort-toggle{display:inline-flex;gap:4px}.sort-btn{align-items:center;background:hsla(0,0%,100%,.08);border:1px solid transparent;border-radius:8px;color:#e5e7eb;display:inline-flex;font-weight:700;height:28px;justify-content:center;text-decoration:none;transition:background-color .15s ease,border-color .15s ease;width:28px}.sort-btn:hover{background:hsla(0,0%,100%,.16)}.sort-btn.active{background:rgba(96,165,250,.2);border-color:#60a5fa;color:#f8fafc}.table tbody tr:last-child td{border-bottom:none}.table td:first-child,.table th:first-child{border-bottom-left-radius:10px;border-top-left-radius:10px}.table td:last-child,.table th:last-child{border-bottom-right-radius:10px;border-top-right-radius:10px}.content a:not(.btn){color:#93c5fd}.content a:not(.btn):hover{color:#bfdbfe}@media (max-width:960px){.layout-body{flex-direction:column}.sidebar{align-self:auto;height:auto;max-height:none;position:static;top:auto;width:100%}}@media (prefers-color-scheme:light){body.app-shell{background-color:#f6f8fb;color:#0f172a}.sidebar{background:#fff;border-color:#e2e8f0;box-shadow:0 10px 30px rgba(15,23,42,.08)}.nav-link{color:#0f172a}.nav-link:hover{background:#eef2ff;color:#111827}.nav-link-muted{color:#475569}.content-card{background:#fff;border:1px solid #e2e8f0;box-shadow:0 10px 30px rgba(15,23,42,.08)}.app-flash-success{background:#ecfdf3;border-color:#86efac;color:#166534}.app-flash-danger{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.app-flash-warning{background:#fffbeb;border-color:#fcd34d;color:#92400e}.table thead th{background:#111827;color:#f8fafc}.table tbody td{background:#fff;border-color:#e2e8f0;color:#0f172a}.form-card .form-label,.user-add-card .form-label{color:#0f172a}.form-card .form-control,.form-card .form-select,.form-card textarea,.user-add-card .form-control,.user-add-card .form-select,.user-add-card textarea{background:#fff;border-color:#cbd5e1;color:#0f172a}body.app-shell .form-control,body.app-shell .form-select,body.app-shell textarea{color:#0f172a;-webkit-text-fill-color:#0f172a}.form-card .form-control::placeholder,.form-card .form-select::placeholder,.form-card textarea::placeholder,.user-add-card .form-control::placeholder,.user-add-card .form-select::placeholder,.user-add-card textarea::placeholder{color:#64748b}body.app-shell .form-control::placeholder,body.app-shell .form-select::placeholder,body.app-shell textarea::placeholder{color:#64748b;opacity:.85}body.app-shell .form-control:active,body.app-shell .form-control:focus,body.app-shell .form-select:active,body.app-shell .form-select:focus,body.app-shell textarea:active,body.app-shell textarea:focus{color:#0f172a;-webkit-text-fill-color:#0f172a}.generated-name-field.generated-placeholder,.participants-muted{color:#64748b}.confirm-dialog{background:#fff;border-color:#e2e8f0;box-shadow:0 18px 42px rgba(15,23,42,.2);color:#0f172a}.confirm-dialog p{color:#475569}.confirm-dialog .form-label{color:#0f172a}.confirm-dialog .form-control,.confirm-dialog .form-select,.picker-search .form-control,.search-inline .search-group .form-control,.table-actions .search-group .form-control{background:#fff;border-color:#cbd5e1;color:#0f172a;-webkit-text-fill-color:#0f172a}.picker-input::placeholder,.picker-search .form-control::placeholder,.search-inline .search-group .form-control::placeholder,.table-actions .search-group .form-control::placeholder{color:#64748b;opacity:.85}.picker-search .form-control:focus,.search-inline .search-group .form-control:focus,.table-actions .search-group .form-control:focus{background:#fff;border-color:#60a5fa;box-shadow:0 0 0 .2rem rgba(96,165,250,.2);color:#0f172a;-webkit-text-fill-color:#0f172a}.picker-list .picker-select,.picker-list .picker-select option{background:#fff!important;border-color:#cbd5e1;color:#0f172a!important}.confirm-dialog .form-select:active,.confirm-dialog .form-select:focus,.form-card .form-select:active,.form-card .form-select:focus,.user-add-card .form-select:active,.user-add-card .form-select:focus{color:#0f172a;-webkit-text-fill-color:#0f172a}.confirm-dialog .form-select option:checked,.form-card .form-select option:checked,.user-add-card .form-select option:checked{background:#dbeafe;color:#0f172a}.btn-outline-light{background:#fff;border-color:#94a3b8;color:#1f2937}.btn-outline-light:focus,.btn-outline-light:hover{background:#f1f5f9;border-color:#64748b;color:#0f172a}.confirm-dialog .form-select option,.form-card .form-select option,.user-add-card .form-select option{background:#fff;color:#0f172a}}@media (prefers-color-scheme:dark){.confirm-dialog input[type=date],.form-card input[type=date],.user-add-card input[type=date]{color:#f8fafc;color-scheme:dark;-webkit-text-fill-color:#f8fafc}.confirm-dialog input[type=date]::-webkit-calendar-picker-indicator,.form-card input[type=date]::-webkit-calendar-picker-indicator,.user-add-card input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(1) brightness(1.1);opacity:.95}.brand-logo{filter:brightness(0) invert(1)}.confirm-dialog .form-select option,.form-card .form-select option,.user-add-card .form-select option{background:#111827;color:#f8fafc}}@media (prefers-color-scheme:light){.confirm-dialog input[type=date],.form-card input[type=date],.user-add-card input[type=date]{color:#0f172a;color-scheme:light;-webkit-text-fill-color:#0f172a}.confirm-dialog input[type=date]::-webkit-calendar-picker-indicator,.form-card input[type=date]::-webkit-calendar-picker-indicator,.user-add-card input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.95}.brand-logo{filter:none}}@media (prefers-color-scheme:dark){body{background-color:#0f172a;color:#e5e7eb}.login-form{background:#111827;box-shadow:0 12px 40px rgba(0,0,0,.45);color:#e5e7eb}.login-form .form-control{background-color:#0b1220;border-color:#1f2937;color:#e5e7eb}.login-form .form-control:focus{border-color:#2563eb;box-shadow:0 0 0 .2rem rgba(37,99,235,.25)}.logo-img{filter:brightness(0) invert(1)}}.site-footer{color:#e5e7eb;font-size:.95rem;padding:1.25rem 2rem 2.25rem;text-align:center}body.app-shell .content>.site-footer{margin-top:auto}.site-footer a{border-bottom:1px solid;color:inherit!important;padding-bottom:2px;text-decoration:none}@media (prefers-color-scheme:light){.site-footer{color:#475569}.site-footer a{border-color:rgba(71,85,105,.6)}}