:root{--bg:#f8f5ff;--bg-alt:#efe8ff;--card:#ffffff;--text:#1d1333;--muted:#5a4b78;--line:#d7cbf7;--primary:#6d28d9;--primary-strong:#5b21b6;--primary-soft:#ede9fe;--accent:#f59e0b;--success-bg:#ecfdf3;--success-text:#067647;--danger:#b42318;--surface-soft:#f4f0ff;--input-bg:#ffffff;--input-bg-disabled:#f2edfef2;--input-placeholder:#7b6b9b}@media (prefers-color-scheme:dark){:root{--bg:#120a24;--bg-alt:#1b1234;--card:#1f153a;--text:#f5f0ff;--muted:#c4b6e6;--line:#3b2f63;--primary:#9f67ff;--primary-strong:#8b5cf6;--primary-soft:#2e1e57;--accent:#fbbf24;--success-bg:#153826;--success-text:#8ce5b3;--danger:#fda29b;--surface-soft:#2a1d4d;--input-bg:#24183f;--input-bg-disabled:#2f2154;--input-placeholder:#a99ccc}}*{box-sizing:border-box}html{height:100%}body,html{background:var(--bg-alt);background-color:var(--bg-alt);overflow-x:clip}body{margin:0;min-height:100svh;font-family:Avenir Next,Segoe UI,sans-serif;color:var(--text);-webkit-text-size-adjust:100%;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);isolation:isolate}body:before{content:"";position:fixed;inset:-20svh 0;z-index:-1;background:radial-gradient(circle at 15% 0,#ccb8ff33 0,transparent 33%),radial-gradient(circle at 85% 100%,#f59e0b22 0,transparent 38%),linear-gradient(160deg,var(--bg) 0,var(--bg-alt) 100%);background-color:var(--bg-alt)}@supports (-webkit-touch-callout:none){body,html{min-height:-webkit-fill-available}}a{color:var(--primary);text-decoration:none}a:focus-visible,a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:var(--text)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;background:var(--input-bg);color:var(--text)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color])::placeholder,textarea::placeholder{color:var(--input-placeholder)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):disabled,select:disabled,textarea:disabled{background:var(--input-bg-disabled);color:var(--muted);cursor:not-allowed}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--input-bg) inset;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}.container{width:min(100%,1080px);margin:0 auto;padding:1rem}.auth-shell{width:min(100%,700px);margin:1.5rem auto}.auth-center{min-height:calc(100svh - env(safe-area-inset-top) - env(safe-area-inset-bottom));display:flex;align-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;box-shadow:0 8px 24px rgba(15,9,30,.08)}.card-soft{background:var(--surface-soft)}.a2hs-prompt{position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:1200}.stack{display:grid;grid-gap:.875rem;gap:.875rem}.btn{border:none;border-radius:10px;padding:.75rem 1rem;font-weight:600;cursor:pointer}.btn-auto{width:-moz-fit-content;width:fit-content;min-width:220px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:focus-visible,.btn-primary:hover{background:var(--primary-strong)}.btn-secondary{background:var(--primary-soft);border:1px solid var(--line);color:var(--text)}.field{display:grid;grid-gap:.4rem;gap:.4rem}.field label{font-weight:600;font-size:.9rem}.select-control{width:100%}.h1{font-size:clamp(1.3rem,5vw,2rem);margin:0}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.2rem .6rem;background:var(--success-bg);color:var(--success-text);font-size:.8rem}.badge-handle{background:var(--primary-soft);color:var(--primary);border:1px solid var(--line);text-decoration:none}.badge-handle:focus-visible,.badge-handle:hover{background:color-mix(in oklab,var(--primary-soft) 75%,var(--card));color:var(--primary-strong);text-decoration:none}.profile-name-link{color:inherit;text-decoration:none;transition:color .12s ease,-webkit-text-decoration-color .12s ease;transition:color .12s ease,text-decoration-color .12s ease;transition:color .12s ease,text-decoration-color .12s ease,-webkit-text-decoration-color .12s ease}.profile-name-link:focus-visible,.profile-name-link:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px;background:transparent}.grid{display:grid;grid-gap:1rem;gap:1rem}.admin-table{width:100%;border-collapse:separate;border-spacing:0;min-width:880px;border:1px solid var(--line);border-radius:12px;position:relative}.admin-table,.admin-table-wrap{overflow:visible}.admin-table td,.admin-table th{text-align:left;padding:.65rem .7rem;border-bottom:1px solid var(--line);vertical-align:top;position:relative;overflow:visible}.admin-table thead th{background:var(--surface-soft);font-size:.9rem}.admin-table tbody tr:last-child td{border-bottom:none}.table-sort{background:none;border:none;color:inherit;font:inherit;font-weight:600;padding:0;cursor:pointer}.row-actions{position:relative;z-index:80}.row-actions-trigger{list-style:none;border:1px solid var(--line);border-radius:8px;min-width:36px;min-height:30px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:var(--primary-soft);color:var(--text);font:inherit}.row-actions-menu{position:absolute;right:0;top:calc(100% + .3rem);z-index:30;display:grid;grid-gap:.4rem;gap:.4rem;min-width:220px;padding:.55rem;border-radius:10px;border:1px solid var(--line);background:var(--card);box-shadow:0 12px 28px rgba(15,9,30,.16)}.row-actions-menu-up{top:auto;bottom:calc(100% + .3rem)}.row-actions-group{display:grid;grid-gap:.35rem;gap:.35rem}.row-actions-divider{height:1px;background:var(--line);margin:.2rem 0}.row-actions-menu .btn{width:100%;min-width:0;text-align:left;text-decoration:none}.file-actions-cell{text-align:left}.file-actions-cell .row-actions{display:inline-flex;justify-content:flex-start}.file-actions-menu{left:0;right:auto;z-index:220}.overlay-root{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:1rem}.overlay-backdrop{position:absolute;inset:0;background:rgba(12,7,24,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.overlay-card{position:relative;width:min(100%,520px);z-index:1}.security-watermark-layer{position:fixed;inset:0;z-index:25;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));align-content:space-around;justify-items:center;grid-gap:clamp(1rem,2.6vw,2rem);gap:clamp(1rem,2.6vw,2rem);padding:clamp(.85rem,2.4vw,1.9rem)}.security-watermark-item{color:color-mix(in oklab,var(--text) 19%,transparent);opacity:.045;font-size:clamp(.72rem,1.2vw,.92rem);letter-spacing:.04em;transform:rotate(-24deg);text-transform:uppercase;font-weight:600;white-space:nowrap}.security-watermark-item:nth-child(3n+1){transform:translateX(-12%) translateY(-10%) rotate(-25deg)}.security-watermark-item:nth-child(3n+2){transform:translateX(10%) translateY(6%) rotate(-21deg)}.security-watermark-item:nth-child(3n){transform:translateX(-3%) translateY(12%) rotate(-27deg)}.watermark-toggle{position:fixed;left:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:50;border:1px solid var(--line);background:var(--surface-soft);color:var(--text);border-radius:999px;padding:.42rem .72rem;font-size:.78rem;font-weight:600}.progress-wrap{display:grid;grid-gap:.35rem;gap:.35rem}.progress-wrap-compact{width:100%}.progress-track{width:100%;background:var(--primary-soft);border-radius:999px;overflow:hidden;height:10px;border:1px solid var(--line)}.progress-track-compact{height:7px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),#a78bfa)}.progress-copy{display:block}.progress-copy-compact{text-align:right;font-size:.75rem}.course-header{display:grid;grid-gap:.75rem;gap:.75rem}.course-header .course-progress{width:min(320px,100%)}@media (min-width:768px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.container{padding:1.5rem}.course-header{grid-template-columns:1fr auto;align-items:start}.course-header .course-progress{justify-self:end}}@media (max-width:1024px){.admin-table-wrap{overflow-x:auto;overflow-y:visible}.security-watermark-layer{grid-template-columns:repeat(2,minmax(200px,1fr));gap:clamp(.85rem,3.4vw,1.35rem)}}