:root{--ui-ink:#17364b;--ui-muted:#617788;--ui-line:#dce6ed;--ui-paper:#fff;--ui-bg:#f3f6fa;--ui-accent:#176e83;--ui-radius:18px;--ui-shadow:0 9px 28px #183c5810}
body{font-family:Inter,'Segoe UI',system-ui,sans-serif;color:var(--ui-ink);background:var(--ui-bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #25a6b5;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #298fa2;outline-offset:1px}button{transition:background .16s,box-shadow .16s;min-height:42px}button:disabled{cursor:not-allowed}input:not([type=checkbox]):not([type=radio]),select,textarea{border-radius:10px}a{ text-underline-offset:3px }.panel,.cert-panel,.account-entry,.management-panel{border:1px solid var(--ui-line);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);background:var(--ui-paper)}h1{letter-spacing:-.035em;line-height:1.14}h2{letter-spacing:-.018em}.eyebrow{font-size:.72rem;font-weight:750;letter-spacing:.13em;color:var(--ui-accent)}.hint,.muted,.directory-note{color:var(--ui-muted);line-height:1.6}.group-top,.workspace-top,.admin-topbar{background:#12344b;color:white;box-shadow:0 4px 20px #142f4515}.group-top a{color:#f2fbff}.group-actions{gap:10px}.group-actions a,.group-actions button{border-radius:10px;min-height:44px}.group-card{border:1px solid var(--ui-line);border-radius:14px;padding:17px;background:white;box-shadow:0 3px 12px #12344b06}.group-card[aria-pressed=true]{background:#e9f6f5;border-color:#3c9f9a;box-shadow:inset 4px 0 #168078}.group-card strong{font-size:1rem}.group-card small{line-height:1.5}.group-layout{gap:24px}.group-heading{margin-bottom:24px}.group-heading h1{font-size:clamp(1.8rem,3vw,2.6rem)}.workspace-tabs{gap:7px;padding:12px 18px}.workspace-tabs button{border-radius:10px;padding:10px 14px}.workspace-tabs [aria-current=page]{background:#166d82;box-shadow:0 3px 10px #166d8220}.workspace-toolbar{background:#f8fafc}.workspace-toolbar button{border-radius:8px}.workspace-period{background:#edf5f9}.workflow-steps a{transition:border-color .16s,background .16s}.workflow-steps a:hover{background:#edf6fa;border-color:#88b7c8}.state-badge{display:inline-flex;padding:6px 10px;border-radius:99px;background:#fff0da;color:#8a5815;font-size:.75rem;font-weight:750}.trash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:20px}.permanent-action{margin-top:18px;border-top:1px solid #e7d7d7;padding-top:15px}.permanent-action summary{color:#943c43;cursor:pointer;font-weight:650}.permanent-action label{display:grid;gap:8px}.permanent-action input{max-width:100%;width:100%;margin-bottom:12px;min-height:44px}.danger-button{background:#9c3944;color:white;border:1px solid #9c3944}.empty-state{text-align:center;padding:45px 24px}.sidebar-trash-link{display:block;padding:12px;margin:12px 0;border:1px solid var(--ui-line);border-radius:10px;color:#5b6574;text-decoration:none;font-size:.85rem}.sidebar-trash-link:hover{background:#fff3e6}.admin-course-search{display:grid;gap:6px;font-size:.78rem;color:#5e7483;margin:16px 0 8px}.admin-course-search input{width:100%;min-width:0;padding:10px;border:1px solid var(--ui-line);background:#f7fafc}.admin-app .admin-topbar{padding:16px 24px;gap:18px;flex-wrap:wrap}.admin-app .admin-topbar>div{min-width:180px}.admin-app .admin-topbar nav{gap:7px;flex:1;justify-content:flex-end;flex-wrap:wrap}.admin-app .admin-topbar nav a,.admin-app .admin-topbar nav button{border:1px solid #ffffff27;border-radius:9px;padding:9px 11px;font-size:.78rem;min-height:40px;background:#ffffff06}.admin-app .admin-topbar nav a:hover{background:#ffffff17}.admin-app .admin-shell{grid-template-columns:260px minmax(0,1fr)}.admin-app .admin-sidebar{padding:22px 18px;border-right:1px solid var(--ui-line)}.admin-app .admin-sidebar button{border-radius:9px;font-size:.88rem;padding:12px;min-height:44px}.admin-app .admin-sidebar .is-active{background:#e5f2f7;color:#135f76;box-shadow:inset 3px 0 #19768b}.admin-app .admin-sidebar .new-course{background:#176e83;color:white;border:0;margin-top:12px}.admin-app .admin-main{padding:28px;min-width:0}.admin-app .admin-toolbar{gap:20px;align-items:flex-start;margin:25px 0}.admin-app .admin-toolbar h1{font-size:clamp(1.9rem,3vw,2.7rem);margin:7px 0}.admin-app .admin-toolbar>div:last-child{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:wrap}.admin-app .save-all{border-radius:11px;box-shadow:0 5px 13px #176e8326;background:#176e83}.admin-app #undo-edit,.admin-app #redo-edit{padding:10px;border:1px solid var(--ui-line);border-radius:9px;background:white;color:#4a6576;font-size:.83rem}.admin-app .database-status{font-size:.66rem;letter-spacing:.035em;line-height:1.5}.admin-app .admin-page-navigation,.admin-app .admin-workspace,.admin-app .editor-card{border-radius:16px}.admin-app .admin-view-tabs button{border-radius:9px}.admin-app .admin-course-list button span{white-space:normal;text-align:left;line-height:1.4}.admin-app .admin-course-list{max-height:45dvh;overflow:auto}.owner-console{max-width:1080px;margin:40px auto;padding:24px}.owner-console>h1{font-size:clamp(2rem,4vw,3rem)}.owner-accounts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.owner-account{border:1px solid var(--ui-line);border-radius:12px;padding:16px;min-width:0}.owner-account summary{cursor:pointer;overflow-wrap:anywhere;line-height:1.6}.owner-account small{display:block;color:var(--ui-muted)}.owner-account form+form{margin-top:20px;padding-top:16px;border-top:1px solid var(--ui-line)}.owner-account input,.owner-account select{max-width:100%}.admin-mobile-menu,.group-mobile-picker{display:none}
@media(max-width:900px){.admin-app .admin-shell{grid-template-columns:210px minmax(0,1fr)}.admin-app .admin-main{padding:18px}.admin-app .admin-toolbar{display:block}.admin-app .admin-toolbar>div:last-child{justify-content:flex-start;margin-top:16px}.admin-app .admin-topbar>div span{font-size:.78rem}.admin-app .admin-topbar nav{justify-content:flex-start}.owner-accounts{grid-template-columns:1fr}}
@media(max-width:700px){.admin-app .admin-topbar{padding:15px;gap:12px}.admin-app .admin-topbar nav{display:none}.admin-mobile-menu{display:grid;width:100%;gap:6px;font-size:.78rem}.admin-mobile-menu select{min-height:44px;width:100%;background:#fff;color:var(--ui-ink);border:0;padding:10px}.admin-app .admin-shell{display:block}.admin-app .admin-sidebar{display:none}.admin-app .admin-main{padding:16px 12px}.admin-app .admin-toolbar h1{font-size:1.9rem}.admin-app .admin-toolbar>div:last-child{gap:8px}.admin-app .save-all{width:100%;min-height:46px}.admin-app .database-status{max-width:100%;white-space:normal}.group-mobile-picker{display:grid;grid-column:1/-1;gap:8px}#group-list{display:none}.group-mobile-picker select{width:100%;min-height:46px}.group-layout{gap:16px}.group-top{padding:16px;gap:14px;flex-wrap:wrap}.group-top nav{flex-wrap:wrap}.group-layout aside{min-width:0}.group-actions{display:grid;grid-template-columns:1fr 1fr}.group-actions>*{text-align:center;justify-content:center}.table-wrap{overflow:auto}#roster-panel table{min-width:600px;table-layout:auto}.student-course-card{border-radius:20px}.student-course-card>div{padding:21px}.student-topbar{padding:16px}.owner-console{padding:16px;margin:14px auto}.trash-grid{grid-template-columns:1fr}.cert-panel{padding:20px}.workspace-top{gap:10px}.workspace-session{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.teacher-course-picker{display:none}.course-group-label{display:block;font-size:.73rem;color:#597386;margin-top:5px}.teacher-app .teacher-sidebar{background:#fff;border-right:1px solid var(--ui-line)}.teacher-app #teacher-course-list button{border-radius:12px;margin:6px 0}.teacher-app .teacher-heading h1{font-size:clamp(1.7rem,3vw,2.5rem)}.teacher-app .teacher-card{border:1px solid var(--ui-line);border-radius:18px;box-shadow:var(--ui-shadow)}.teacher-app .teacher-tabs button{border-radius:9px}.teacher-app [data-teacher-save]{border-radius:10px}.teacher-app .teacher-savebar{box-shadow:0 -4px 20px #12344b15}
@media(max-width:980px){.teacher-course-picker{display:grid;gap:8px;font-weight:650;font-size:.85rem}.teacher-course-picker select{width:100%;min-height:46px;min-width:0;padding:9px;border:1px solid var(--ui-line);background:#f6fafc}.teacher-app #teacher-course-list,.teacher-app .teacher-sidebar>small,.teacher-app .teacher-sidebar>p{display:none}.teacher-app .teacher-sidebar{padding:16px}.teacher-app .teacher-savebar{align-items:center;flex-wrap:nowrap}.teacher-app .teacher-save-message{flex:1;min-width:0}.teacher-app .teacher-save-message small{display:none}.teacher-app .teacher-save-status{font-size:.75rem}.teacher-app .teacher-save-action{flex:none}.teacher-app .teacher-savebar button{font-size:.8rem}.teacher-app .teacher-course-shortcuts{gap:8px}}
@media(max-width:680px){.student-topbar{grid-template-columns:1fr auto auto;gap:10px;padding:12px}.student-topbar>a{font-size:.72rem}.student-topbar form button{padding:9px;font-size:.75rem}.student-view-switch{padding:10px 12px;gap:8px;font-size:.8rem}.student-welcome{padding:19px;gap:12px}.student-welcome h1{font-size:1.85rem;margin:7px 0 9px}.student-welcome p{font-size:.9rem;margin-bottom:0}.student-welcome aside{padding:12px 0 0;border:0;border-top:1px solid #ffffff25;border-radius:0;background:none;display:flex;flex-wrap:wrap;gap:8px 15px}.student-welcome aside small{display:none}.student-welcome aside strong{width:100%;font-size:.82rem}.student-welcome aside a{font-size:.78rem}.student-course-section h2{font-size:1.45rem}.student-course-card>img{min-height:100px;max-height:145px}.student-course-section{padding-top:18px}}
.teaching-catalog{max-width:1220px;margin:auto;padding:28px}.teaching-catalog h1{font-size:clamp(1.9rem,3vw,2.7rem)}.teaching-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin:22px 0}.subject-card{display:block;border:1px solid var(--ui-line);border-radius:20px;padding:25px;background:white;box-shadow:var(--ui-shadow);text-decoration:none;color:var(--ui-ink)}.subject-card:hover{border-color:#4f98a9;transform:translateY(-2px)}.subject-card h2{font-size:1.25rem}.subject-card>strong{color:var(--ui-accent);font-size:.88rem}.teaching-breadcrumb{display:flex;gap:20px;margin:22px 0;flex-wrap:wrap}.course-base{display:flex;justify-content:space-between;align-items:center;gap:25px}.catalog-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:#176e83;color:white;padding:11px 17px;border-radius:10px;text-decoration:none;font-weight:650;white-space:nowrap}.teacher-filter{display:flex;gap:10px;flex-wrap:wrap}.teacher-filter a{padding:11px 15px;border:1px solid var(--ui-line);border-radius:99px;text-decoration:none;background:white;color:var(--ui-ink)}.teacher-filter a[aria-current=page]{background:#12344b;color:white}.teaching-class h3{font-size:1.25rem}.teaching-class .group-actions{display:flex;flex-wrap:wrap;align-items:center}.teaching-class .group-actions a:not(.catalog-action){padding:10px;color:#176e83}.cert-admin-layout details.permanent-action{padding:18px;border:1px solid #e9cbd0;border-radius:12px;margin-top:20px}
@media(max-width:680px){.teaching-catalog{padding:18px 14px}.teaching-grid{gap:14px}.course-base{align-items:stretch;flex-direction:column}.teacher-filter{gap:8px}.teacher-filter a{font-size:.85rem}.workspace-tabs{flex-wrap:wrap;overflow-x:visible}.teaching-class .group-actions{display:flex}}
@media(min-width:701px){.workspace-tabs{flex-wrap:wrap;overflow-x:visible}.workspace-tabs button{padding:9px 11px;font-size:.85rem}}

.student-app .student-topbar{grid-template-columns:auto minmax(0,1fr) auto auto}
.student-app .student-welcome{grid-template-columns:minmax(0,1fr) auto;padding:26px 30px;border-radius:20px;box-shadow:0 8px 24px #12344b12;align-items:center}
.student-app .student-welcome aside{border:0;background:none;padding:0;gap:10px;backdrop-filter:none}.student-app .student-welcome aside a{margin:0;padding:10px 14px;background:#ffffff12;border:1px solid #ffffff25;border-radius:9px;font-size:.85rem}
.student-app .student-course-section>header{display:flex;align-items:baseline;gap:12px}.student-app .student-course-section>header h2{font-size:1.4rem;margin:0 0 20px}
.student-app .student-course-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:22px}
.student-app .student-course-card{grid-template-columns:1fr;grid-template-rows:140px 1fr;border-radius:18px;box-shadow:0 5px 22px #17364a0a;max-width:620px}
.student-app .student-course-card>img{height:140px;min-height:0;max-height:none;width:100%;object-fit:cover;background:#e2ebf0}
.student-app .student-course-card>div{padding:22px;gap:12px;min-width:0;border-top:4px solid var(--student-accent)}
.student-app .student-course-card h3{margin:0;font-size:1.3rem;line-height:1.3;overflow-wrap:anywhere}
.student-app .student-course-card p{flex:none;font-size:.9rem;line-height:1.5}
.student-app .student-group-meta{display:grid;gap:4px;padding:12px;background:#f2f6f9;border-radius:10px}.student-app .student-group-meta strong{color:#23475c}.student-app .student-group-meta span{font-size:.8rem}
.student-app .student-course-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.student-app .student-course-card dl{margin:auto 0 0;padding-top:4px}.student-app .student-course-card dl div{padding:8px}.student-app .student-course-card dd{font-size:1.05rem}
.student-app .student-course-card a{display:flex;width:100%;justify-content:space-between;font-size:.9rem}.student-app .student-course-card .student-secondary-action{color:#176e83;background:#fff;border:1px solid #cedde5;justify-content:center;font-weight:650}
.trash-bulk-bar,.purge-confirmation{padding:22px;margin:18px 0;border:1px solid #e2b5b9;border-radius:14px;background:#fff9f9}.trash-bulk-bar label,.purge-confirmation label{display:block;margin:14px 0;line-height:1.5}.purge-confirmation ul{max-height:210px;overflow:auto}.purge-confirmation input[type=password]{display:block;max-width:100%;width:350px;margin-top:8px;padding:12px;border:1px solid #c2cdd6}.purge-confirmation button,.trash-bulk-bar button{padding:10px 16px;border:1px solid #953e49;border-radius:8px;background:#953e49;color:white}.purge-confirmation form+form button{background:white;color:#953e49;margin-top:12px}
@media(max-width:680px){.student-app .student-topbar{grid-template-columns:1fr auto auto;gap:8px}.student-app .student-topbar>div{display:none}.student-app .student-topbar img{width:28px}.student-app .student-dashboard{padding-top:16px}.student-app .student-welcome{grid-template-columns:1fr;padding:20px;gap:16px}.student-app .student-welcome aside{display:flex;flex-wrap:wrap;gap:8px}.student-app .student-welcome aside a{font-size:.75rem;padding:9px 10px}.student-app .student-welcome h1{font-size:1.85rem}.student-app .student-course-section>header>span{display:none}.student-app .student-course-card{grid-template-rows:105px 1fr}.student-app .student-course-card>img{height:105px}.student-app .student-course-card>div{padding:18px}.student-app .student-view-switch{margin-bottom:12px}.student-app .student-welcome p{font-size:.88rem}}
