:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f5f4;--bg0:#e8ecea;--bg1:#f3f5f4;--surface:#fff;--ink:#0b1210;--muted:#4a5c54;--accent:#0f6b5c;--accent-strong:#0b5347;--accent-soft:color-mix(in srgb, var(--accent) 14%, white);--line:#d8e0dc;--panel:#fff;--danger:#9b1c1c;--danger-soft:#fef2f2;--success:#166534;--success-soft:#f0fdf4;--bubble-mine:#d4efdf;--bubble-peer:#fff;--sidebar-bg:#101814;--sidebar-ink:#e8efeb;--sidebar-muted:#8fa399;--sidebar-hover:#e8efeb12;--sidebar-active:#0f6b5c47;--sidebar-w:252px;--topbar-h:68px;--radius:10px;--radius-sm:8px;--shadow-sm:0 1px 2px #0b12100d;--ease-standard:cubic-bezier(.22, 1, .36, 1);--ease-emphasized:cubic-bezier(.2, .8, .2, 1);--dur-fast:.12s;--dur-standard:.2s;--dur-emphasized:.32s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:14.5px;line-height:1.5}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-standard:0s;--dur-emphasized:0s}}*{box-sizing:border-box}body{min-height:100vh;color:var(--ink);background:var(--bg1);margin:0}button,input,select,textarea{font:inherit;color:inherit}.auth-screen{background:var(--bg1);grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);min-height:100vh;display:grid}.auth-brand{color:var(--sidebar-ink);background:linear-gradient(155deg,#0f6b5c33 0%,#0000 45%),linear-gradient(200deg,#0d1a15 0%,#101814 48%,#0a1210 100%);flex-direction:column;justify-content:space-between;padding:clamp(2.25rem,5.5vw,4rem);display:flex;position:relative;overflow:hidden}.auth-brand:before{content:"";pointer-events:none;background:radial-gradient(#0f6b5c52,#0000 68%);height:70%;position:absolute;inset:auto -20% -30% 20%}.auth-brand-inner{z-index:1;max-width:32rem;animation:authRise var(--dur-emphasized) var(--ease-emphasized);position:relative}.auth-brand-footer{z-index:1;color:var(--sidebar-muted);max-width:26rem;margin:0;font-size:clamp(.8rem,1.1vw,.88rem);line-height:1.55;position:relative}.auth-panel{background:linear-gradient(180deg, #f7f9f8 0%, var(--bg1) 100%);place-items:center;padding:clamp(1.5rem,4vw,3.25rem);display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow-sm);animation:authRise var(--dur-emphasized) var(--ease-emphasized);border-radius:12px;padding:clamp(1.5rem,3vw,2rem) clamp(1.35rem,2.5vw,1.85rem);animation-delay:40ms;animation-fill-mode:both}.auth-card-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .55rem;font-size:.72rem;font-weight:600}.auth-card h2{letter-spacing:-.025em;color:var(--ink);margin:0 0 .45rem;font-size:clamp(1.35rem,2.4vw,1.65rem);font-weight:600;line-height:1.2}.auth-card .auth-sub{color:var(--muted);margin:0 0 1.45rem;font-size:clamp(.9rem,1.4vw,.98rem);line-height:1.55}.auth-card .form{gap:1rem}.auth-card .form button[type=submit]{justify-self:stretch;width:100%;margin-top:.45rem;padding:.72rem 1rem;font-size:.95rem}.auth-card .ui-banner{margin:0}.shell{align-content:center;max-width:480px;min-height:100vh;margin:0 auto;padding:3rem 1.25rem;display:grid}.shell.wide{max-width:none}.brand-mark{letter-spacing:-.035em;color:#f4faf7;margin:.45rem 0 .35rem;font-family:Fraunces,Iowan Old Style,Palatino Linotype,serif;font-size:clamp(2.75rem,5.5vw,3.85rem);font-weight:700;line-height:.98}.brand-tagline{letter-spacing:-.01em;color:#e2ece7;margin:0 0 1.35rem;font-size:clamp(1rem,1.6vw,1.15rem);font-weight:500}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#7dcfb6;margin:0;font-size:clamp(.68rem,1vw,.74rem);font-weight:600}.auth-brand .lede{color:#b7c8bf;max-width:28rem;margin:0;font-size:clamp(.95rem,1.45vw,1.08rem);line-height:1.6}.lede{color:var(--muted);max-width:36rem;font-size:1rem;line-height:1.55}@keyframes authRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=860px){.auth-screen{grid-template-columns:1fr}.auth-brand{min-height:auto;padding:2rem 1.35rem 1.65rem}.auth-brand-footer{display:none}.brand-mark{font-size:clamp(2.35rem,10vw,3rem)}.auth-panel{align-items:start;padding:1.25rem 1rem 2.5rem}}.admin-layout{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;background:var(--bg1);min-height:100vh;display:grid}.admin-sidebar{background:var(--sidebar-bg);border-right:1px solid #ffffff0f;flex-direction:column;grid-row:1/-1;gap:.2rem;padding:1rem .75rem 1.25rem;display:flex;overflow-y:auto}.admin-brand{border-bottom:1px solid #ffffff14;flex-direction:column;gap:.2rem;margin-bottom:.75rem;padding:.55rem .85rem 1.15rem;display:flex}.admin-brand strong{letter-spacing:-.02em;color:var(--sidebar-ink);font-family:Fraunces,Iowan Old Style,serif;font-size:1.35rem;font-weight:700}.admin-brand span{color:var(--sidebar-muted);text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600}.nav-group{gap:.12rem;margin-bottom:.85rem;display:grid}.nav-group-label{text-transform:uppercase;letter-spacing:.12em;color:var(--sidebar-muted);padding:.4rem .85rem .3rem;font-size:.66rem;font-weight:600}.nav-item{text-align:left;color:#c5d4cc;border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);background:0 0;border:1px solid #0000;align-items:center;padding:.52rem .85rem;font-weight:500;display:flex;position:relative}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-ink)}.nav-item.active{background:var(--sidebar-active);color:#fff;font-weight:600}.nav-item.active:before{content:"";background:#2dd4bf;border-radius:0 2px 2px 0;width:3px;position:absolute;top:20%;bottom:20%;left:0}.admin-topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#fffffff0;grid-column:2;justify-content:space-between;align-items:center;gap:1rem;padding:0 1.5rem;display:flex}.admin-topbar-title-block{min-width:0}.admin-topbar .title{letter-spacing:-.015em;color:var(--ink);font-size:1.08rem;font-weight:600;line-height:1.25}.admin-topbar .subtitle{color:var(--muted);margin:.12rem 0 0;font-size:.8rem;font-weight:500;line-height:1.35}.admin-topbar .meta{color:var(--muted);font-size:.86rem;font-weight:500}.admin-topbar-actions{align-items:center;gap:.85rem;display:flex}.admin-main{grid-column:2;padding:1.4rem 1.5rem 2.25rem;overflow:auto}.page-enter{animation:pageEnter var(--dur-standard) var(--ease-emphasized)}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=860px){.admin-layout{grid-template-rows:auto auto 1fr;grid-template-columns:1fr}.admin-sidebar{border-bottom:1px solid #ffffff14;border-right:none;flex-flow:wrap;grid-row:auto;align-items:center;padding:.75rem}.admin-brand{border-bottom:none;min-width:5.5rem;margin-bottom:0;padding:.35rem .55rem}.nav-group{display:contents}.nav-group-label{display:none}.nav-item{width:auto;padding:.4rem .7rem}.nav-item.active:before{display:none}.admin-topbar,.admin-main{grid-column:1}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-top:0;padding:1.1rem 1.2rem}.panel+.panel{margin-top:1rem}.panel h2{letter-spacing:-.015em;color:var(--ink);margin:0 0 .75rem;font-size:1.02rem;font-weight:600}.panel ul{color:var(--muted);margin:0;padding-left:1.1rem;line-height:1.6}.note{color:var(--muted);margin:.75rem 0 0;font-size:.92rem;line-height:1.55}.courses-layout{grid-template-columns:1fr;gap:1rem;margin-top:0;display:grid}@media (width>=900px){.courses-layout{grid-template-columns:1fr 1.2fr}}.form{gap:.95rem;display:grid}.form-grid-2{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=640px){.form-grid-2{grid-template-columns:1fr 1fr}}.form-actions{flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:.15rem;display:flex}.form-actions>button,.form-actions>.ui-btn{justify-self:auto}.form label{color:var(--ink);letter-spacing:-.01em;gap:.4rem;font-size:.84rem;font-weight:600;display:grid}.field-hint{color:var(--muted);margin:0;font-size:.78rem;font-weight:500;line-height:1.4}.form input,.form select,.form textarea,.ui-input,.ui-select,.ui-textarea,select{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:2.55rem;color:var(--ink);transition:border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);background-color:#fff;padding:.55rem .75rem;font-weight:400;line-height:1.35}.form select,.ui-select,select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4.2 6.2L8 10l3.8-3.8' stroke='%234A5C54' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;background-size:.95rem;padding-right:2.4rem}.form select:disabled,.ui-select:disabled,select:disabled{opacity:.6;cursor:not-allowed;background-color:var(--bg0)}.form input::placeholder,.form textarea::placeholder,.ui-input::placeholder,.ui-textarea::placeholder{color:#6f8279;opacity:1}.form input:hover:not(:disabled):not(:focus),.form select:hover:not(:disabled):not(:focus),.form textarea:hover:not(:disabled):not(:focus),.ui-input:hover:not(:disabled):not(:focus),.ui-select:hover:not(:disabled):not(:focus),.ui-textarea:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus){border-color:color-mix(in srgb, var(--line) 55%, var(--muted))}.form input:focus,.form select:focus,.form textarea:focus,.ui-input:focus,.ui-select:focus,.ui-textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 26%, transparent);outline:none}.ui-select-wrap{width:100%;display:block}textarea,.ui-textarea,.form textarea{resize:vertical;min-height:5rem;padding-top:.65rem;padding-bottom:.65rem;line-height:1.45}button,.ui-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;letter-spacing:-.01em;min-height:2.4rem;transition:background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), opacity var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);justify-self:start;padding:.55rem .95rem;font-weight:600;line-height:1.2}button:hover:not(:disabled),.ui-btn:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button:active:not(:disabled),.ui-btn:active:not(:disabled){transform:translateY(1px)}button:disabled,.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn.ghost,button.ghost{color:var(--ink);border-color:var(--line);background:0 0}.ui-btn.ghost:hover:not(:disabled),button.ghost:hover:not(:disabled){background:var(--bg0);border-color:color-mix(in srgb, var(--line) 70%, var(--muted));color:var(--ink)}.admin-topbar button.ghost{color:var(--accent-strong);border-color:var(--line);min-height:2.15rem;padding:.4rem .75rem;font-size:.88rem}.admin-topbar button.ghost:hover:not(:disabled){background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, var(--line));color:var(--accent-strong)}.ui-btn.danger,button.danger{background:var(--danger);border-color:var(--danger)}.error,.ui-banner.error{color:var(--danger)}.ui-banner{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);margin:0 0 1rem;padding:.7rem .9rem;font-size:.9rem;font-weight:500;line-height:1.45}.ui-banner.error{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 28%, var(--line))}.ui-banner.success{color:var(--success);background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 28%, var(--line))}.user-list,.ui-data-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.user-list li,.ui-data-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 0;display:flex}.user-list li:last-child,.ui-data-list li:last-child{border-bottom:none}.user-list strong,.ui-data-list strong{color:var(--ink);font-weight:600}.user-list button,.ui-data-list button{flex-shrink:0;min-height:2.15rem;padding:.4rem .75rem;font-size:.86rem}.meta{color:var(--muted);font-size:.84rem;font-weight:500}.ui-empty{text-align:center;color:var(--muted);padding:1.75rem 1rem;font-size:.94rem;font-weight:500}.ui-spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:1.15rem;height:1.15rem;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.ui-tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:.95rem;padding-bottom:.15rem;display:flex}.ui-tabs button{background:var(--surface);color:var(--muted);border-color:var(--line);min-height:2.2rem;padding:.4rem .85rem;font-weight:500}.ui-tabs button:hover:not(:disabled):not(.active){background:var(--bg0);color:var(--ink)}.ui-tabs button.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.tabs{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.tabs button.active{background:var(--accent-strong);border-color:var(--accent-strong)}.ui-dialog-backdrop{z-index:40;animation:fadeIn var(--dur-fast) var(--ease-standard);background:#0b12106b;place-items:center;display:grid;position:fixed;inset:0}.ui-dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(420px,100vw - 2rem);box-shadow:var(--shadow-sm);animation:pageEnter var(--dur-standard) var(--ease-emphasized);padding:1.15rem 1.25rem}.ui-dialog h3{letter-spacing:-.015em;margin:0 0 .5rem;font-size:1.08rem;font-weight:600}.ui-dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
