:root{
  --bg:#f7f7fb;
  --surface:#fff;
  --surface-soft:#fbfbfd;
  --text:#20202d;
  --muted:#6f7180;
  --subtle:#9a9cac;
  --border:#e9e9ef;
  --border-strong:#dcdde6;
  --primary:#6257d9;
  --primary-dark:#5147c7;
  --primary-soft:#f0efff;
  --success:#157347;
  --success-soft:#edf9f2;
  --danger:#b42318;
  --danger-soft:#fef3f2;
  --warning:#9a6700;
  --warning-soft:#fff8e7;
  --sidebar:#17172a;
  --sidebar-soft:#1d1d33;
  --sidebar-text:#ececf4;
  --sidebar-muted:#9d9daf;
  --sidebar-line:rgba(255,255,255,.08);
  --shadow-sm:0 1px 2px rgba(18,18,36,.04);
  --shadow:0 8px 22px rgba(18,18,36,.055);
  --shadow-lg:0 18px 45px rgba(18,18,36,.10);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--primary-dark)}
button,input,textarea,select{font:inherit}
button{cursor:pointer}

.auth-page{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 20%,rgba(98,87,217,.09),transparent 28%),radial-gradient(circle at 85% 80%,rgba(127,116,230,.07),transparent 28%),var(--bg)}
.auth-card{width:min(430px,100%);background:rgba(255,255,255,.97);padding:36px;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg)}
.brand{display:inline-flex;align-items:center;gap:10px;color:inherit}.brand:hover{color:inherit}
.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#6d62de,#4f45c4);color:#fff;font-weight:800;font-size:14px;box-shadow:0 6px 14px rgba(98,87,217,.23)}
.auth-card h1{margin:22px 0 4px;font-size:27px;letter-spacing:-.03em}.muted{color:var(--muted)}
label{display:block;font-weight:650;margin:18px 0 0;color:#454655}
input,textarea,select{width:100%;padding:10px 12px;margin-top:7px;border:1px solid var(--border-strong);border-radius:10px;background:#fff;color:var(--text);outline:none;transition:border-color .18s,box-shadow .18s}
input:focus,textarea:focus,select:focus{border-color:#aaa3ec;box-shadow:0 0 0 3px rgba(98,87,217,.09)}
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border:1px solid var(--border-strong);border-radius:9px;background:#fff;color:#404151;cursor:pointer;font-weight:700;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}
button:hover,.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);color:var(--text)}
.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary);width:100%;margin-top:8px;box-shadow:0 6px 14px rgba(98,87,217,.18)}
.btn.primary:hover{color:#fff;background:var(--primary-dark);box-shadow:0 9px 18px rgba(98,87,217,.22)}
.btn.ghost{background:transparent;border-color:transparent}.btn.danger{color:var(--danger);border-color:#fecdca;background:#fff}
.alert{padding:11px 13px;border-radius:10px;margin:14px 0;border:1px solid transparent}.alert.error{background:var(--danger-soft);color:var(--danger);border-color:#fecdca}.alert.success{background:var(--success-soft);color:var(--success);border-color:#abefc6}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid .span-2{grid-column:1/-1}.form-actions{display:flex;align-items:end}.demo-box{margin-top:20px;padding:13px 15px;background:var(--surface-soft);border:1px dashed var(--border-strong);border-radius:12px;line-height:1.65;font-size:13px}

.app-shell{min-height:100vh;display:flex;background:var(--bg)}
.sidebar{width:232px;min-width:232px;background:var(--sidebar);color:var(--sidebar-text);display:flex;flex-direction:column;padding:18px 12px;border-right:1px solid rgba(0,0,0,.08);position:fixed;left:0;top:0;bottom:0;z-index:20}
.sidebar-brand{padding:0 9px 21px;border-bottom:1px solid var(--sidebar-line)}
.sidebar .brand{width:100%}.brand-copy strong{display:block;font-size:14px;letter-spacing:.01em}.brand-copy small{display:block;color:var(--sidebar-muted);font-size:10px;margin-top:1px}
.sidebar-section-label{margin:22px 10px 7px;color:#727287;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.13em}
.sidebar-nav{display:flex;flex-direction:column;gap:3px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:#c9c9d5;font-weight:600;line-height:1.2;transition:background .16s,color .16s,transform .16s}.nav-item svg{width:18px;height:18px;min-width:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none;opacity:.86}.nav-item:hover{color:#fff;background:rgba(255,255,255,.055);transform:translateX(1px)}.nav-item.active{color:#fff;background:var(--sidebar-soft);box-shadow:inset 0 0 0 1px rgba(139,130,235,.18)}.nav-item.active svg{color:#bdb7ff;opacity:1}
.sidebar-spacer{flex:1}.sidebar-account{padding:13px 9px 4px;border-top:1px solid var(--sidebar-line)}.sidebar-account-label{color:#727287;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;margin-bottom:9px}.account-mini{display:flex;align-items:center;gap:9px}.account-mini strong,.account-mini span{display:block}.account-mini strong{font-size:11px;max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-mini div span{font-size:10px;color:var(--sidebar-muted);margin-top:1px}
.main-shell{width:calc(100% - 232px);margin-left:232px;min-height:100vh}.topbar{height:68px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:10}.topbar-title{display:flex;flex-direction:column;min-width:0}.topbar-title .eyebrow{color:var(--subtle);font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.topbar-title strong{font-size:15px;margin-top:1px;letter-spacing:-.01em}.top-actions{display:flex;gap:14px;align-items:center}.account-chip{display:flex;align-items:center;gap:8px}.account-chip strong,.account-chip span{display:block}.account-chip strong{font-size:11px;line-height:1.2}.account-chip div span{font-size:10px;color:var(--muted);margin-top:2px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;background:#eeecff;color:#5147c7;border:1px solid #dfdcff;font-weight:800;font-size:11px}.avatar.small{width:29px;height:29px}.logout-link{padding:7px 9px;border-radius:8px;color:var(--muted);font-weight:650}.logout-link:hover{background:#f2f3f6;color:var(--text)}
.content{padding:28px;max-width:1480px;width:100%;margin:auto}.content>h1{font-size:28px;letter-spacing:-.035em;margin:0 0 4px}.content>h1+p{margin-top:0;max-width:760px}

.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin:22px 0}.stat,.panel{background:var(--surface);border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow-sm)}.stat{padding:16px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:54px;height:54px;border-radius:50%;right:-18px;top:-20px;background:var(--primary-soft)}.stat strong{font-size:25px;display:block;margin-top:6px;letter-spacing:-.03em}.panel{padding:19px;margin-top:19px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel h2{margin:0;font-size:15px;letter-spacing:-.015em}.panel h3{font-size:13px;margin:18px 0 8px}.table-wrap{overflow:auto;margin-top:13px}table{width:100%;border-collapse:separate;border-spacing:0;min-width:680px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border)}th{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em;background:var(--surface-soft)}th:first-child{border-top-left-radius:9px}th:last-child{border-top-right-radius:9px}tbody tr{transition:background .15s}tbody tr:hover{background:#fafaff}td{font-size:12px;color:#444656;vertical-align:middle}td:first-child{font-weight:700;color:#6d6f7d}.toolbar{display:flex;gap:9px;align-items:center;margin:19px 0;flex-wrap:wrap}.toolbar input{max-width:360px;margin:0}.toolbar select{width:auto;min-width:150px;margin:0}.toolbar .btn{background:#fff}

.question-meta{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#f3f3f6;color:#555766;font-size:10px;font-weight:800;border:1px solid #e8e8ee}.question-meta .badge:first-child{background:var(--primary-soft);border-color:#dedbff;color:#5449c7}.question-content{padding:17px 18px;background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;line-height:1.75;margin:14px 0}.question-options{padding-left:27px;line-height:1.9;margin-bottom:8px}.question-options li{padding-left:3px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:15px 0;border-top:1px solid var(--border);margin-top:15px}.detail-grid>div{padding:9px 11px;background:var(--surface-soft);border:1px solid var(--border);border-radius:10px}.explanation{padding:13px 14px;background:var(--warning-soft);border:1px solid #f3dea0;border-radius:11px}
hr{border:0;border-top:1px solid var(--border);margin:22px 0}::placeholder{color:#9a9cac}

@media(max-width:1100px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.content{padding:23px}}
@media(max-width:800px){.sidebar{width:70px;min-width:70px;padding:15px 9px}.sidebar-brand{padding:2px 2px 18px}.brand-copy,.sidebar-section-label,.sidebar-account,.nav-item span{display:none}.sidebar .brand{justify-content:center}.nav-item{justify-content:center;padding:10px;border-radius:10px}.nav-item svg{width:18px;height:18px}.main-shell{width:calc(100% - 70px);margin-left:70px}.topbar{padding:0 17px}.account-chip div{display:none}.top-actions{gap:7px}.content>h1{font-size:25px}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}}
@media(max-width:620px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat{padding:13px}.stat strong{font-size:22px}.topbar{height:64px}.topbar-title .eyebrow{display:none}.topbar-title strong{font-size:14px}.logout-link{font-size:11px}.content{padding:17px 13px 25px}.toolbar{align-items:stretch;flex-direction:column}.toolbar input,.toolbar select,.toolbar .btn{max-width:none;width:100%}.panel{padding:14px;border-radius:13px}.detail-grid{grid-template-columns:1fr}}

.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;color:#667085;margin-bottom:6px}.feature-panel{display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(135deg,#ffffff,#f7f7ff)}.count-pill,.status-badge,.deadline-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.count-pill{background:#eef2ff;color:#4338ca}.status-badge.is-published{background:#ecfdf3;color:#027a48}.status-badge.is-draft{background:#f2f4f7;color:#475467}.module-stack{display:grid;gap:18px;margin-top:20px}.module-card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:20px}.module-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.module-top h2{margin:0 0 7px}.module-actions,.activity-actions{display:flex;gap:6px;align-items:center}.module-actions form,.activity-actions form{margin:0}.editor-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:14px;margin-top:18px}.subpanel{background:#fafbff;border:1px solid var(--border);border-radius:14px;padding:16px}.subpanel h3{margin:0 0 4px}.check-row{display:flex;align-items:center;gap:8px;font-weight:600;margin:10px 0}.check-row input{width:auto;margin:0}.field-help{font-size:12px;color:var(--muted);margin:0}.assignment-fields{display:none;padding:14px;border:1px dashed #c7d2fe;border-radius:12px;background:#f8faff;margin-top:3px}.assignment-fields-title{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;color:#4338ca}.activity-list{margin-top:18px;border-top:1px solid var(--border);padding-top:12px}.activity-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.activity-list-head h3{margin:0}.activity-row{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.activity-row:last-child{border-bottom:0}.activity-main{min-width:0}.activity-main strong{display:block;font-size:15px;margin:3px 0}.activity-main p{margin:0;line-height:1.55}.activity-kicker{font-size:10px;letter-spacing:.09em;font-weight:800;color:#667085}.empty-state{text-align:center;padding:28px;color:var(--muted);border:1px dashed var(--border);border-radius:14px;background:#fafafa}.course-hero{display:grid;grid-template-columns:1fr 330px;gap:22px;align-items:stretch;background:linear-gradient(135deg,#312e81,#4f46e5);color:#fff;border-radius:20px;padding:26px;box-shadow:0 16px 34px rgba(79,70,229,.20);margin-bottom:22px}.course-hero .muted{color:rgba(255,255,255,.78)}.progress-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:16px;align-self:center}.progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.progress-label strong{font-size:22px}.progress-track{height:8px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden}.progress-bar{height:100%;background:#fff;border-radius:99px}.progress-card small{display:block;margin-top:8px;color:rgba(255,255,255,.78)}.course-layout{display:grid;grid-template-columns:270px 1fr;gap:22px}.course-outline{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;align-self:start;position:sticky;top:88px}.course-outline h2{margin:0 0 14px}.outline-module{padding:10px 0;border-top:1px solid var(--border)}.outline-module:first-of-type{border-top:0}.outline-item{display:flex;gap:8px;align-items:flex-start;padding:8px;border-radius:9px;color:#475467;font-size:13px;line-height:1.35}.outline-item:hover{background:#f8faff}.outline-item.is-done{color:#027a48}.course-content{min-width:0}.section-intro{margin-bottom:14px}.section-intro h2{margin:0}.learning-module{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:var(--shadow)}.learning-module-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.learning-module-head h3{margin:0}.learning-activity-list{display:grid;gap:8px}.learning-activity{display:flex;align-items:center;gap:13px;padding:13px;border:1px solid var(--border);border-radius:12px;color:var(--text);transition:.15s ease}.learning-activity:hover{transform:translateY(-1px);border-color:#c7d2fe;background:#fafbff}.learning-activity.completed{background:#f6fffa}.activity-status-dot{width:10px;height:10px;border:2px solid #c7d2fe;border-radius:50%;flex:none}.learning-activity.completed .activity-status-dot{background:#12b76a;border-color:#12b76a}.learning-activity>div:nth-child(2){flex:1;min-width:0}.learning-activity strong{display:block;margin:2px 0}.learning-activity p{margin:0}.activity-arrow{color:#98a2b3;font-size:20px}.activity-breadcrumb{display:flex;gap:8px;align-items:center;color:#667085;font-size:13px;margin-bottom:16px}.activity-view{max-width:980px;margin:0 auto}.activity-view-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.activity-view-head h1{margin:0 0 6px}.activity-body{background:#fff;border:1px solid var(--border);border-radius:16px;padding:24px;line-height:1.8;box-shadow:var(--shadow);font-size:16px}.external-link-card,.assignment-card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:20px;margin-top:16px}.external-link-card{display:flex;justify-content:space-between;align-items:center;gap:18px}.assignment-summary{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.deadline-chip{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;text-align:right;border-radius:12px}.deadline-chip strong{font-size:13px}.instructions{padding:14px;background:#f8fafc;border-radius:12px;border:1px solid var(--border);line-height:1.65;margin:15px 0}.submission-status{margin-top:18px;padding:15px;background:#f6fffa;border:1px solid #abefc6;border-radius:12px}.submission-status strong{display:block}.feedback{margin:10px 0 0;padding-top:10px;border-top:1px solid #d1fadf}.math-content{overflow-x:auto}.grade-form{min-width:260px;padding:12px;background:#fafbff;border:1px solid var(--border);border-radius:10px;margin-top:8px}.grade-form label{margin:8px 0}.grade-form .btn.primary{width:auto}.activity-view .btn.primary{width:auto}.panel details summary{list-style:none}.panel details summary::-webkit-details-marker{display:none}
@media(max-width:900px){.editor-grid,.course-hero,.course-layout{grid-template-columns:1fr}.course-outline{position:static}.feature-panel,.module-top,.activity-row,.learning-module-head,.activity-view-head,.assignment-summary,.external-link-card,.page-heading{flex-direction:column;display:flex;align-items:stretch}.module-actions,.activity-actions{align-self:flex-start}}
/* Phase 3 — Assessment */
.mini-input{width:78px!important;margin:0!important;padding:7px 8px!important}
.option-edit-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:10px 0;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}
.option-index{width:30px;height:30px;border-radius:9px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:800}
.option-edit-row input{margin-top:0}.option-edit-row .check-row{margin:0;white-space:nowrap}.option-edit-row .btn{min-height:34px}
.question-pick-grid{display:grid;gap:10px;margin-bottom:16px}.question-pick{display:flex;gap:12px;padding:13px;border:1px solid var(--border);border-radius:12px;background:#fff}.question-pick:hover{border-color:#c7c3f2;background:var(--surface-soft)}.question-pick input{width:auto;margin:2px 0 0}.question-pick span{display:grid;gap:4px}.question-pick strong{font-size:11px;letter-spacing:.05em;color:var(--primary);text-transform:uppercase}.question-pick small{color:var(--muted)}
.quiz-timer{min-width:125px;padding:10px 16px;border-radius:12px;background:var(--sidebar);color:#fff;font-weight:800;font-variant-numeric:tabular-nums;text-align:center;box-shadow:var(--shadow)}
.quiz-question .question-content{font-size:16px;line-height:1.8;margin:14px 0}.answer-option{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;margin:8px 0;border:1px solid var(--border);border-radius:11px;background:#fff;font-weight:500}.answer-option:hover{background:var(--surface-soft);border-color:#c7c3f2}.answer-option input{width:auto;margin:3px 0 0}.assessment-actions{display:flex;justify-content:flex-end;gap:10px;margin:18px 0 30px}.assessment-actions .btn.primary{width:auto;margin-top:0}
.result-hero{display:flex;justify-content:space-between;gap:30px;align-items:center}.result-score{font-size:48px;line-height:1;font-weight:850;letter-spacing:-.04em;margin:8px 0}.result-status{text-align:right;max-width:360px}.result-status p{margin:8px 0 0}
@media(max-width:700px){.option-edit-row{grid-template-columns:30px 1fr}.option-edit-row .check-row,.option-edit-row .btn{grid-column:2}.assessment-actions,.result-hero{flex-direction:column;align-items:stretch}.result-status{text-align:left;max-width:none}.quiz-timer{align-self:flex-start}}

/* Course Builder — compact accordion layout */
.course-builder-head{padding:17px 19px}.builder-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.course-builder-head .btn.primary{width:auto;margin-top:0}
.builder-modules{display:grid;gap:12px;margin-top:16px}.builder-module{background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:var(--shadow-sm);overflow:hidden}.builder-module[open]{border-color:#d9d7f6;box-shadow:var(--shadow)}
.builder-module-summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto 22px;align-items:center;gap:13px;padding:15px 17px;cursor:pointer;list-style:none}.builder-module-summary::-webkit-details-marker{display:none}.builder-module-summary:hover{background:#fafaff}.builder-module-index{width:34px;height:34px;border-radius:10px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:850;font-size:12px}.builder-module-main{min-width:0;display:grid;gap:3px}.builder-module-main strong{font-size:15px;color:var(--text)}.builder-module-main span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.builder-module-meta{display:flex;align-items:center;gap:8px}.builder-chevron{color:#98a2b3;font-size:20px;line-height:1;transition:transform .18s ease}.builder-module[open] .builder-chevron{transform:rotate(180deg)}
.builder-module-body{border-top:1px solid var(--border);padding:0 17px 17px;background:#fcfcfe}.builder-module-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0}.builder-module-toolbar-left,.builder-module-toolbar-right{display:flex;align-items:center;gap:7px}.builder-module-toolbar form{margin:0}.compact-action{min-height:34px;padding:7px 10px;font-size:11px}.builder-inline-panel{background:#fff;border:1px solid var(--border);border-radius:13px;padding:14px;margin:2px 0 14px}.builder-inline-panel[hidden],.builder-create-panel[hidden]{display:none!important}.builder-inline-panel .panel-head{margin-bottom:10px}.builder-inline-panel h3{margin:0}.builder-inline-panel .btn.primary{width:auto;margin-top:0}
.builder-activity-list{border-top:1px solid var(--border);padding-top:13px}.builder-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.builder-list-head h3{margin:0 0 2px}.builder-list-head .muted{font-size:11px}.builder-activity-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.builder-activity-row:last-child{border-bottom:0}.builder-activity-number{width:28px;height:28px;border-radius:9px;background:#f2f4f7;color:#667085;display:grid;place-items:center;font-size:11px;font-weight:800}.builder-activity-row .activity-main p{max-height:38px;overflow:hidden}.builder-activity-row .activity-actions{justify-content:flex-end;flex-wrap:wrap}.builder-empty{padding:22px;margin-top:7px;background:#fff}.builder-create-panel{margin-top:13px}
@media(max-width:900px){.builder-module-summary{grid-template-columns:34px minmax(0,1fr) auto 18px}.builder-module-meta{grid-column:2 / -1;justify-content:flex-start}.builder-module-toolbar{align-items:stretch;flex-direction:column}.builder-module-toolbar-left,.builder-module-toolbar-right{width:100%;flex-wrap:wrap}.builder-module-toolbar-right .btn{width:auto}.builder-activity-row{grid-template-columns:30px minmax(0,1fr)}.builder-activity-row .activity-actions{grid-column:2;justify-content:flex-start}.builder-head-actions{width:100%}}
@media(max-width:620px){.builder-module-summary{grid-template-columns:32px minmax(0,1fr) 18px;gap:10px;padding:13px}.builder-module-meta{grid-column:2}.builder-module-meta .status-badge{padding:5px 8px;font-size:10px}.builder-module-meta .count-pill{padding:5px 8px;font-size:10px}.builder-module-body{padding:0 13px 13px}.builder-module-toolbar-left .btn{flex:0 0 auto}.builder-module-toolbar-right .btn{width:100%}.builder-activity-row .activity-actions{gap:5px}.builder-activity-row .activity-actions .btn{font-size:10px;padding:7px 9px}}

/* Course Builder — nested activity accordion refinement */
.builder-activity-list{padding-top:4px}
.builder-list-head{padding:0 2px 8px;margin-bottom:2px}
.builder-list-head h3{font-size:13px;color:#344054;font-weight:750}
.builder-list-head .muted{font-size:11px}
.builder-activity{border:1px solid #e4e7ec;border-radius:13px;background:#fff;margin-top:8px;overflow:hidden}
.builder-activity[open]{border-color:#d7d9eb;box-shadow:0 5px 18px rgba(16,24,40,.05)}
.builder-activity-summary{display:grid;grid-template-columns:28px 34px minmax(0,1fr) auto 18px;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;min-height:54px}
.builder-activity-summary::-webkit-details-marker{display:none}
.builder-activity-summary:hover{background:#fafbff}
.builder-activity-number{width:26px;height:26px;border-radius:8px;background:#f2f4f7;color:#667085;display:grid;place-items:center;font-size:10px;font-weight:800}
.builder-activity-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f5f3ff;color:var(--primary);font-weight:800;font-size:13px}
.builder-activity-main{min-width:0;display:grid;gap:3px}
.builder-activity-main strong{font-size:13px;color:#344054;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.builder-activity-type{font-size:10px;color:#98a2b3;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.builder-activity-meta{display:flex;align-items:center;gap:6px}
.builder-activity-meta .status-badge{font-size:10px;padding:5px 8px}
.builder-activity-chevron{color:#98a2b3;font-size:18px;line-height:1;transition:transform .18s ease}
.builder-activity[open] .builder-activity-chevron{transform:rotate(180deg)}
.builder-activity-detail{border-top:1px solid #eaecf0;background:#fcfcfd;padding:13px 14px 14px 84px}
.builder-activity-detail-copy{display:grid;gap:5px;padding-bottom:12px}
.activity-detail-label{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#98a2b3}
.activity-detail-text{font-size:12px;line-height:1.65;color:#475467;max-width:920px}
.builder-activity-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:10px;border-top:1px solid #eaecf0}
.builder-activity-order,.builder-activity-secondary-actions{display:flex;align-items:center;gap:6px}
.builder-activity-actions form{margin:0}
.builder-activity-actions .btn{min-height:32px}
.builder-activity-actions .compact-action{min-height:32px}
@media(max-width:760px){
  .builder-activity-summary{grid-template-columns:26px 30px minmax(0,1fr) 18px;gap:8px;padding:10px}
  .builder-activity-meta{grid-column:3}
  .builder-activity-chevron{grid-column:4;grid-row:1}
  .builder-activity-detail{padding:12px}
  .builder-activity-actions{align-items:stretch;flex-direction:column}
  .builder-activity-order,.builder-activity-secondary-actions{width:100%;flex-wrap:wrap}
}

/* Refined activity editor */
.builder-activity-edit-panel{margin-top:12px;padding:14px;background:#fff;border:1px solid #e4e7ec;border-radius:12px}
.builder-activity-edit-panel[hidden]{display:none!important}
.builder-activity-edit-panel .panel-head{margin-bottom:12px}
.builder-activity-edit-panel .form-grid{gap:10px}
.builder-activity-edit-panel .assignment-fields.always-visible{display:block;margin-top:0}
.builder-activity-edit-panel .form-actions{margin-top:2px}
.builder-activity-secondary-actions{flex-wrap:wrap}
@media(max-width:720px){
  .builder-activity-secondary-actions{width:100%}
  .builder-activity-secondary-actions .btn,.builder-activity-secondary-actions form{flex:1 1 auto}
  .builder-activity-secondary-actions form .btn{width:100%}
}


/* Activity archive / restore */
.status-badge.is-archived{background:#f2f4f7;color:#667085;border-color:#d0d5dd}
.builder-activity:has(.is-archived){opacity:.78}
.archive-action{border-color:#fecdca;color:#b42318;background:#fff7f6}
.archive-action:hover{background:#fef3f2;border-color:#fda29b}
.builder-activity:has(.is-archived) .builder-activity-summary{background:#fafafa}

/* Phase 4 — Gradebook and compact table actions */
.page-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-heading-actions .btn.primary,.page-heading > .btn.primary,.table-actions .btn.primary{width:auto;margin-top:0}
.table-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.table-actions form{margin:0}.table-actions-tight{gap:5px}.compact-action{min-height:32px;padding:7px 10px;font-size:11px;border-radius:8px;white-space:nowrap}.small-note{font-size:11px;padding:6px 8px}
.gradebook-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.gradebook-panel{padding-bottom:14px}.grade-weight-list{display:grid;gap:8px;margin-top:13px}.grade-weight-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:#fff}.grade-weight-row strong{display:block;margin:2px 0}.grade-weight-row p{margin:0}.weight-field{width:130px;margin:0}.weight-field span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;margin-bottom:5px}.weight-field input{margin:0}.gradebook-table-wrap{margin-top:14px}.gradebook-table{min-width:1100px}.gradebook-table th,.gradebook-table td{padding:10px}.gradebook-table thead th{vertical-align:bottom;position:sticky;top:0;z-index:1}.gradebook-table .student-col{min-width:210px;position:sticky;left:0;z-index:2}.gradebook-table tbody .student-cell{position:sticky;left:0;background:#fff;z-index:1}.gradebook-table .final-col{min-width:120px;position:sticky;right:0;z-index:2}.gradebook-table tbody .final-cell{position:sticky;right:0;background:#fff;z-index:1;font-weight:800}.gradebook-header{display:grid;gap:3px;min-width:120px}.gradebook-header strong{font-size:11px;line-height:1.3;color:var(--text)}.gradebook-header span{font-size:9px;color:var(--muted);font-weight:700;line-height:1.3}.student-cell strong{display:block;font-size:12px}.student-cell small{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:2px}.grade-cell{display:grid;gap:2px}.grade-cell strong{font-size:14px}.grade-cell a{font-size:10px;color:var(--primary);font-weight:800}.grade-pending span{font-size:10px;color:#b54708;font-weight:800}.grade-pending a{font-size:10px;color:var(--primary);font-weight:800}.grade-missing{color:#98a2b3}.final-cell strong{font-size:17px}.final-cell small{display:block;color:var(--muted);font-size:9px;font-weight:600;line-height:1.35;margin-top:2px}.grade-review-summary{display:flex;justify-content:space-between;align-items:center;gap:18px}.grade-review-summary strong{font-size:24px;letter-spacing:-.03em}.grade-review-question{max-width:980px;margin-inline:auto}.grade-review-question .question-content{font-size:16px;line-height:1.75;margin:13px 0}.review-answer-block{padding:14px;border:1px solid var(--border);border-radius:12px;background:#fafbff;display:grid;gap:9px}.review-answer-block > strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.answer-review-option{padding:9px 11px;border-radius:9px;background:#fff;border:1px solid var(--border);font-size:13px}.grade-form-inline{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:start;padding-top:5px;border-top:1px solid var(--border)}.grade-form-inline label{margin:0}.grade-form-inline .btn.primary{width:auto;margin-top:0}
@media(max-width:900px){.gradebook-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gradebook-table .student-col{position:static}.gradebook-table .final-col{position:static}.gradebook-table tbody .student-cell,.gradebook-table tbody .final-cell{position:static}.grade-review-summary{align-items:flex-start;flex-direction:column}.grade-form-inline{grid-template-columns:1fr}}
@media(max-width:620px){.gradebook-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-weight-row{align-items:flex-start;flex-direction:column}.weight-field{width:100%}.page-heading-actions{width:100%}.page-heading-actions .btn{flex:1}.table-actions .compact-action{min-height:31px;padding:6px 8px;font-size:10px}}


.grade-weight-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.grade-visibility-form{margin:0}.visibility-toggle{min-width:132px}.visibility-toggle.is-visible{background:#ecfdf3;color:#027a48;border-color:#abefc6}.visibility-toggle.is-hidden{background:#f8fafc;color:#667085;border-color:#d0d5dd}.student-final-card{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 26px;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow);margin-bottom:18px}.student-final-card.is-visible{background:linear-gradient(135deg,#ffffff,#f8faff)}.student-final-card.is-pending{background:#fffdf7;border-color:#fef0c7}.student-final-score{font-size:46px;line-height:1;font-weight:900;letter-spacing:-.04em;margin:7px 0}.student-final-meta{min-width:180px;padding:14px 16px;border-radius:14px;background:#f8fafc;display:grid;gap:3px;text-align:right}.student-final-meta strong{font-size:26px}.student-final-meta span{font-size:11px;color:var(--muted);font-weight:700}.student-final-meta small{font-size:10px;color:#b54708;font-weight:700;margin-top:4px}.student-grade-list{display:grid;gap:8px}.student-grade-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 16px;border:1px solid var(--border);border-radius:13px;background:#fff}.student-grade-row strong{display:block;font-size:14px;margin:2px 0}.student-grade-value{min-width:145px;text-align:right}.student-grade-value strong{display:inline;font-size:20px}.student-grade-value span{font-size:12px;color:var(--muted)}.student-class-grade-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.student-class-grade-card{display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:20px;border:1px solid var(--border);border-radius:16px;background:#fff;color:var(--text);box-shadow:var(--shadow);transition:.15s ease}.student-class-grade-card:hover{transform:translateY(-1px);border-color:#c7d2fe;background:#fafbff}.student-class-grade-card h2{margin:4px 0 5px;font-size:18px}.student-class-grade-footer{display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:12px;padding-top:14px;border-top:1px solid var(--border)}.grade-summary-label{font-size:11px;color:var(--muted);font-weight:700}.student-class-grade-footer strong{font-size:26px;letter-spacing:-.03em}.card-arrow{font-size:20px;color:#98a2b3}.gradebook-header .visibility-note{display:block}
@media(max-width:720px){.student-final-card{align-items:flex-start;flex-direction:column}.student-final-meta{width:100%;text-align:left}.student-class-grade-grid{grid-template-columns:1fr}.student-grade-row{align-items:flex-start;flex-direction:column}.student-grade-value{min-width:0;text-align:left}.grade-weight-actions{width:100%;justify-content:flex-start}}

/* ===== Fase 5: Course Player + Progress ===== */
.course-overview-hero{align-items:center}.course-progress-card{min-width:320px}.course-continue-btn{display:inline-flex;width:auto!important;margin-top:12px}.progress-state-pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;border:1px solid var(--border);margin-top:9px}.progress-state-pill.not_started{background:#f8fafc;color:#667085}.progress-state-pill.in_progress{background:#eef4ff;color:#175cd3;border-color:#b2ddff}.progress-state-pill.completed{background:#ecfdf3;color:#067647;border-color:#abefc6}.course-overview-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.7fr);gap:18px}.course-map-panel,.course-rules-panel{min-width:0}.course-module-list{display:grid;gap:12px}.course-module-card{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}.course-module-summary{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:13px;padding:17px}.module-index{width:34px;height:34px;border-radius:10px;background:#f2f4ff;color:#4f46e5;display:grid;place-items:center;font-weight:850}.module-summary-copy h3{margin:0 0 4px}.module-summary-copy p{margin:0;line-height:1.5}.module-summary-meta{display:flex;align-items:center;gap:8px}.module-progress-text{font-size:12px;font-weight:850;color:#475467}.module-mini-progress{height:3px;background:#eef2f6}.module-mini-progress>div{height:100%;background:#6366f1}.course-activity-list{padding:0 12px 12px;display:grid;gap:7px}.course-activity-card{display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid #eef0f4;border-radius:12px;background:#fff;color:var(--text)}.course-activity-card:hover{border-color:#c7d2fe;background:#fafbff}.course-activity-card.is-complete{background:#f7fffa;border-color:#d1fadf}.course-activity-card.is-locked{opacity:.68;background:#f8fafc}.course-activity-state{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1px solid #d0d5dd;color:#98a2b3;font-size:12px;font-weight:850;flex:none}.is-complete .course-activity-state{background:#12b76a;border-color:#12b76a;color:#fff}.course-activity-copy{min-width:0;flex:1}.course-activity-copy strong{display:block;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-status-label{display:block;color:#98a2b3;font-size:10px;font-weight:700;margin-top:3px}.locked-label{font-size:10px;color:#98a2b3;font-weight:800}.course-rules-panel h2{margin:5px 0 15px}.progress-rule-list{display:grid;gap:13px}.progress-rule-list>div{display:flex;gap:10px;align-items:flex-start}.rule-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex:none}.rule-dot.done{background:#6366f1}.rule-dot.task{background:#12b76a}.rule-dot.quiz{background:#f79009}.rule-dot.optional{background:#98a2b3}.progress-rule-list strong{font-size:12px}.progress-rule-list p{margin:3px 0 0;font-size:11px;line-height:1.5;color:#667085}.student-course-list{display:grid;gap:12px}.student-course-card{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--border);border-radius:16px;padding:17px;background:#fff}.student-course-main{flex:1;min-width:0}.student-course-main h3{margin:4px 0 2px}.student-course-main .progress-label{margin-top:14px}.student-course-main small{display:block;margin-top:6px}.student-course-side{display:grid;justify-items:end;gap:12px}.student-course-side .btn{width:auto;margin:0}.player-shell{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;align-items:start}.player-sidebar{position:sticky;top:18px;padding:0;overflow:hidden}.player-course-head{padding:18px;border-bottom:1px solid var(--border)}.player-back{display:inline-flex;color:#667085;font-size:11px;font-weight:800;margin-bottom:15px}.player-course-head h2{font-size:18px;margin:4px 0 12px}.mini-progress-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:750;margin-bottom:6px}.player-outline{padding:12px;display:grid;gap:3px}.player-module-title{padding:11px 8px 6px;color:#98a2b3;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:850}.player-outline-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;color:#475467;font-size:12px;line-height:1.35}.player-outline-item:hover{background:#f8fafc}.player-outline-item.current{background:#eef2ff;color:#3730a3;font-weight:800}.player-outline-item.done .player-status-dot{background:#12b76a;border-color:#12b76a;color:#fff}.player-outline-item.locked{opacity:.55}.player-outline-item.locked small{margin-left:28px;font-size:9px;color:#98a2b3}.player-status-dot{width:18px;height:18px;border-radius:50%;border:1px solid #d0d5dd;display:grid;place-items:center;font-size:10px;flex:none}.player-main{min-width:0}.player-content{max-width:none}.completion-pill{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:850;border:1px solid var(--border);white-space:nowrap}.completion-pill.completed{background:#ecfdf3;color:#067647;border-color:#abefc6}.completion-pill.in-progress{background:#eef4ff;color:#175cd3;border-color:#b2ddff}.completion-pill.not-started{background:#f8fafc;color:#667085}.completion-action{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #d9d6fe;background:#fafaff;border-radius:14px;padding:15px;margin-top:16px}.completion-action strong{font-size:13px}.completion-action p{margin:3px 0 0}.completion-action .btn{width:auto;margin:0}.player-navigation{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.player-nav-card{display:grid;gap:4px;padding:14px;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--text)}.player-nav-card:hover{border-color:#c7d2fe;background:#fafbff}.player-nav-card.next{text-align:right}.player-nav-card span{font-size:10px;font-weight:850;color:#667085;text-transform:uppercase;letter-spacing:.06em}.player-nav-card strong{font-size:13px}.player-shell .activity-view-head{margin-bottom:15px}
@media(max-width:1000px){.course-overview-grid{grid-template-columns:1fr}.course-rules-panel{display:none}.player-shell{grid-template-columns:1fr}.player-sidebar{position:static}.player-outline{max-height:340px;overflow:auto}.student-course-card{flex-direction:column;align-items:stretch}.student-course-side{display:flex;justify-content:space-between;align-items:center}.course-progress-card{min-width:0}}
@media(max-width:620px){.course-module-summary{grid-template-columns:34px minmax(0,1fr);gap:10px}.module-summary-meta{grid-column:2;justify-content:flex-start}.course-activity-card{padding:11px}.completion-action{flex-direction:column;align-items:stretch}.completion-action .btn{width:100%}.player-navigation{grid-template-columns:1fr}.player-nav-card.next{text-align:left}.course-overview-hero .progress-card{margin-top:6px}}
/* Fase 5.5 — Assignment revision workflow */
.status-badge.is-revision{background:#fff7ed;color:#b54708;border-color:#fed7aa}
.completion-pill.needs-revision{background:#fff7ed;color:#b54708;border-color:#fed7aa}
.player-status-dot.needs-revision{background:#f79009;border-color:#f79009;color:#fff}
.revision-request{margin:15px 0;padding:15px;border:1px solid #fed7aa;background:#fffaf0;border-radius:12px}
.revision-request>strong{display:block;color:#9a3412;margin-bottom:4px}
.revision-feedback{margin-top:10px;padding-top:10px;border-top:1px solid #f5d9b5}
.submission-action-stack{display:flex;flex-direction:column;gap:6px;min-width:145px}
.submission-action-stack details{margin:0}
.revision-form{min-width:280px;padding:12px;background:#fffaf0;border:1px solid #fed7aa;border-radius:10px;margin-top:8px}
.revision-form label{margin:8px 0}
.revision-form .btn.warning{width:auto;background:#f79009;color:#fff;border-color:#f79009}
.grade-revision span{font-size:10px;color:#b54708;font-weight:800}
.grade-revision a{font-size:10px;color:#b54708;font-weight:800}
.course-activity-state.needs-revision{background:#f79009;border-color:#f79009;color:#fff}

/* ===== Fase 6: Public registration + catalog ===== */
.auth-brand-sub{display:block;color:var(--muted);font-size:10px;font-weight:600;margin-top:1px}.auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;font-size:12px;font-weight:700}.teacher-contact-mini{display:grid;gap:4px;margin-top:18px;padding:13px 14px;border:1px solid #e5e2ff;background:#faf9ff;border-radius:12px;font-size:11px}.teacher-contact-mini strong{font-size:12px}.teacher-contact-mini span{color:var(--muted);line-height:1.5}.demo-content{padding-top:8px;line-height:1.6;font-size:12px}.public-page{background:#f7f7fb}.public-topbar{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.public-topbar-inner{max-width:1180px;margin:auto;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:18px}.public-brand{display:flex;align-items:center;gap:10px;color:var(--text)}.public-brand:hover{color:var(--text)}.public-brand strong{display:block;font-size:14px;line-height:1.1}.public-brand small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.public-nav{display:flex;align-items:center;gap:6px}.public-nav a{padding:8px 11px;border-radius:9px;color:#555766;font-size:12px;font-weight:750}.public-nav a:hover{background:#f4f4f8;color:var(--text)}.public-nav .public-nav-cta{background:var(--primary);color:#fff}.public-nav .public-nav-cta:hover{background:var(--primary-dark);color:#fff}.public-main{min-height:calc(100vh - 120px)}.public-footer{max-width:1180px;margin:25px auto 0;padding:20px 22px 28px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.public-footer a{font-weight:700}.public-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:850;color:#6b5ed9}.public-lead{font-size:16px;line-height:1.7;color:#5d6070;max-width:760px}.public-narrow{max-width:930px;margin:0 auto;padding:60px 22px 20px}.public-narrow h1{font-size:44px;line-height:1.1;letter-spacing:-.04em;margin:9px 0 12px}.teacher-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:32px 0}.teacher-step{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow-sm)}.teacher-step>span{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--primary-soft);color:#5147c7;font-size:11px;font-weight:850}.teacher-step h2{font-size:16px;margin:15px 0 7px}.teacher-step p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.public-contact-card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:22px}.public-contact-card h2{margin:0 0 5px;font-size:18px}.public-contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.public-btn{width:auto!important;margin:0!important}.info-box{padding:12px 14px;border:1px solid #ddd8ff;background:#faf9ff;color:#5f58a7;border-radius:11px;font-size:12px;line-height:1.55}.catalog-hero{max-width:1180px;margin:0 auto;padding:62px 22px 34px}.catalog-hero h1{max-width:800px;font-size:46px;line-height:1.08;letter-spacing:-.045em;margin:10px 0 12px}.catalog-hero>p{max-width:700px;color:var(--muted);font-size:15px;line-height:1.7}.catalog-search{display:flex;gap:9px;max-width:720px;margin-top:22px}.catalog-search input{margin:0;flex:1;height:44px}.public-search-btn{width:auto!important;margin:0!important;min-width:130px}.catalog-section{max-width:1180px;margin:0 auto;padding:10px 22px 45px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:16px}.section-heading h2{margin:3px 0 0;font-size:21px;letter-spacing:-.02em}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.catalog-card{display:flex;flex-direction:column;min-height:280px;padding:18px;background:#fff;border:1px solid var(--border);border-radius:17px;box-shadow:var(--shadow-sm);color:var(--text);transition:transform .16s,border-color .16s,box-shadow .16s}.catalog-card:hover{transform:translateY(-2px);border-color:#c9c4ff;box-shadow:var(--shadow)}.catalog-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.course-code{font-size:10px;font-weight:850;color:#7b7e8c;letter-spacing:.08em}.price-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:850;border:1px solid}.price-badge.free{color:#067647;background:#ecfdf3;border-color:#abefc6}.price-badge.paid{color:#5147c7;background:#f2f0ff;border-color:#dcd7ff}.catalog-card h3{font-size:18px;margin:18px 0 7px;letter-spacing:-.02em}.catalog-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.catalog-card-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;padding-top:18px;color:#667085;font-size:10px;font-weight:750}.catalog-card-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid var(--border);font-size:10px;color:#7b7e8c}.card-arrow{font-size:18px;color:#5e55d4}.public-empty{display:grid;gap:4px;padding:28px;background:#fff;border:1px dashed var(--border-strong);border-radius:14px;color:var(--muted)}.public-empty strong{color:var(--text)}.course-public-hero{max-width:1180px;margin:0 auto;padding:52px 22px 30px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.course-public-copy h1{font-size:46px;line-height:1.05;letter-spacing:-.045em;margin:10px 0 12px}.course-public-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.course-public-stats span{display:inline-flex;padding:6px 10px;border:1px solid var(--border);background:#fff;border-radius:999px;font-size:10px;color:#667085;font-weight:800}.course-purchase-card{background:#17172a;color:#fff;border-radius:18px;padding:22px;box-shadow:var(--shadow-lg);position:sticky;top:88px}.course-price-label{color:#b6b6c7;font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:850}.course-price-value{font-size:30px;font-weight:850;letter-spacing:-.04em;margin:6px 0 13px}.course-purchase-card .info-box{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#ddddec}.course-public-section{max-width:1180px;margin:0 auto;padding:5px 22px 60px}.course-public-column{max-width:860px}.current-enrollment-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px;background:#fff;border:1px solid #b7ebc6;border-radius:16px}.current-enrollment-card h3{margin:8px 0 3px;font-size:18px}.class-choice-form{margin-top:13px}.class-choice-list{display:grid;gap:9px}.class-choice{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:11px;align-items:center;padding:14px 15px;background:#fff;border:1px solid var(--border);border-radius:13px;cursor:pointer}.class-choice:hover{border-color:#c8c3ff;background:#fcfbff}.class-choice.is-disabled{opacity:.58;cursor:not-allowed;background:#f7f7f9}.class-choice input{width:auto;margin:0}.class-choice-main strong{display:block;font-size:13px}.class-choice-main span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.class-choice-meta{font-size:10px;font-weight:850;color:#667085;text-align:right}.commercial-proposal-card{background:linear-gradient(180deg,#fff,#fcfbff)}.inline-form{display:flex;align-items:end;gap:10px;margin-top:14px}.inline-field{flex:1;margin:0}.inline-form .btn{width:auto;margin:0}.proposal-note{padding:8px 10px;border:1px solid #e7e4ff;background:#faf9ff;border-radius:9px;font-size:10px;color:#655cae}.table-action-details{position:relative;display:inline-block}.table-action-details>summary{list-style:none}.table-action-details>summary::-webkit-details-marker{display:none}.table-action-popover{position:absolute;right:0;top:calc(100% + 7px);z-index:15;width:240px;padding:13px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.mini-form{display:grid;gap:4px}.mini-form label{margin:4px 0;font-size:10px}.mini-form .btn{margin-top:6px}.mini-form .check-row{display:flex;align-items:center;gap:7px}.mini-form .check-row input{width:auto;margin:0}.table-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.table-actions form{margin:0}.staff-check input{width:auto;min-width:16px;flex:0 0 auto;margin:0}.staff-check{min-width:0}.compact-action{min-height:32px;padding:6px 9px;font-size:10px}.current-enrollment-card .btn{flex:none}.course-public-column .section-heading{margin-bottom:11px}
@media(max-width:980px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-public-hero{grid-template-columns:1fr}.course-purchase-card{position:static}.teacher-step-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.public-topbar-inner{padding:11px 14px}.public-nav a{padding:7px 8px}.catalog-hero{padding-top:42px}.catalog-hero h1,.course-public-copy h1,.public-narrow h1{font-size:34px}.catalog-grid{grid-template-columns:1fr}.teacher-step-grid{grid-template-columns:1fr}.catalog-search{flex-direction:column}.public-search-btn{width:100%!important}.public-footer{padding-left:14px;padding-right:14px;flex-direction:column}.course-public-hero,.course-public-section,.catalog-section,.catalog-hero,.public-narrow{padding-left:14px;padding-right:14px}.current-enrollment-card{flex-direction:column;align-items:flex-start}.inline-form{align-items:stretch;flex-direction:column}.inline-form .btn{width:100%}.table-action-popover{right:auto;left:0}.class-choice{grid-template-columns:20px minmax(0,1fr)}.class-choice-meta{grid-column:2;text-align:left}.public-nav{gap:0}}


/* =========================================================
   Public Academic Presentation — Fase 6 refinement
   ========================================================= */
.public-page{
  --academic-ink:#1f2a3a;
  --academic-navy:#18324a;
  --academic-muted:#697586;
  --academic-line:#dfe5ea;
  --academic-paper:#fff;
  --academic-paper-soft:#f8f7f3;
  --academic-accent:#9a7a3d;
  background:#f5f4f0;
  color:var(--academic-ink);
}
.public-topbar{
  background:rgba(250,249,246,.96);
  border-bottom:1px solid var(--academic-line);
  box-shadow:0 1px 0 rgba(31,42,58,.02);
}
.public-topbar-inner{max-width:1160px;padding:15px 24px}
.public-brand{gap:11px;color:var(--academic-ink)}
.public-brand .brand-mark{
  width:34px;height:34px;border-radius:8px;
  background:var(--academic-navy);box-shadow:none;
  font-family:Georgia,"Times New Roman",serif;
}
.public-brand strong{font-family:Georgia,"Times New Roman",serif;font-size:15px;letter-spacing:-.01em}
.public-brand small{font-size:9px;color:#7a828d;letter-spacing:.025em}
.public-nav{gap:4px}
.public-nav a{color:#596676;font-size:11px;border-radius:7px;padding:8px 10px}
.public-nav a:hover{background:#ecece8;color:var(--academic-ink)}
.public-nav .public-nav-cta{background:var(--academic-navy);color:#fff;border:1px solid var(--academic-navy)}
.public-nav .public-nav-cta:hover{background:#10283a;color:#fff}
.public-main{min-height:calc(100vh - 120px)}
.public-kicker{color:#8a6c34;letter-spacing:.16em;font-size:9px;font-weight:850}
.public-lead{color:var(--academic-muted);font-size:15px;line-height:1.8}

.catalog-hero{
  max-width:1160px;
  padding:78px 24px 45px;
  position:relative;
}
.catalog-hero:before{
  content:"";position:absolute;left:24px;top:53px;width:54px;height:2px;background:var(--academic-accent);
}
.catalog-hero h1{
  max-width:830px;margin:14px 0 15px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:48px;font-weight:500;line-height:1.12;letter-spacing:-.035em;color:var(--academic-navy);
}
.catalog-hero>p{max-width:720px;color:#687587;font-size:15px;line-height:1.85}
.catalog-search{max-width:760px;margin-top:26px;padding:7px;background:rgba(255,255,255,.72);border:1px solid var(--academic-line);border-radius:10px;box-shadow:0 7px 18px rgba(31,42,58,.035)}
.catalog-search input{height:43px;border:0!important;box-shadow:none!important;background:transparent}
.catalog-search input:focus{box-shadow:none!important}
.public-search-btn{min-width:122px!important;background:var(--academic-navy)!important;border-color:var(--academic-navy)!important;box-shadow:none!important}
.catalog-section{max-width:1160px;padding:16px 24px 56px}
.section-heading{margin-bottom:19px;align-items:end}
.section-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:23px;font-weight:500;color:var(--academic-navy)}
.section-heading .eyebrow{color:#8b94a0;font-size:9px;letter-spacing:.14em}
.section-heading>.btn{background:transparent;border-color:var(--academic-line);color:#4f5b69;box-shadow:none}
.section-heading>.btn:hover{background:#fff}
.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.catalog-card{
  min-height:292px;padding:21px;
  background:rgba(255,255,255,.94);
  border:1px solid #dde3e7;border-radius:12px;box-shadow:0 8px 22px rgba(31,42,58,.045);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.catalog-card:hover{transform:translateY(-2px);border-color:#cbd3da;box-shadow:0 14px 28px rgba(31,42,58,.07)}
.catalog-card-top{padding-bottom:11px;border-bottom:1px solid #eceff1}
.course-code{color:#788492;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;letter-spacing:.08em}
.price-badge{font-size:9px;min-height:23px;padding:3px 8px;border-radius:6px}
.price-badge.free{color:#3d6b53;background:#f1f7f3;border-color:#cfe2d5}
.price-badge.paid{color:#71582b;background:#faf6ed;border-color:#e6d7b8}
.catalog-card h3{font-family:Georgia,"Times New Roman",serif;font-size:19px;font-weight:500;color:var(--academic-navy);line-height:1.3;margin:19px 0 8px}
.catalog-card p{font-size:12px;color:#6e7986;line-height:1.7}
.catalog-card-meta{color:#697586;font-size:10px;padding-top:20px}
.catalog-card-footer{color:#89929d;border-top-color:#eaedef;font-size:9px}
.card-arrow{color:#7c6334;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.public-empty{background:rgba(255,255,255,.7);border-color:#d7dee3;border-radius:10px}
.public-empty strong{font-family:Georgia,"Times New Roman",serif;color:var(--academic-navy);font-weight:500}

.course-public-hero{max-width:1160px;padding:65px 24px 34px;gap:36px}
.course-public-copy h1{font-family:Georgia,"Times New Roman",serif;color:var(--academic-navy);font-weight:500;font-size:48px;line-height:1.1;letter-spacing:-.035em}
.course-public-stats span{background:#fbfaf7;border-color:#dfe4e7;color:#647180;border-radius:6px}
.course-purchase-card{background:var(--academic-navy);border-radius:12px;padding:24px;box-shadow:0 15px 30px rgba(24,50,74,.13)}
.course-price-label{color:#c4ccd4;letter-spacing:.13em}
.course-price-value{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:31px}
.course-public-section{max-width:1160px;padding:7px 24px 65px}
.course-public-column{max-width:900px}
.course-public-column .section-heading{border-bottom:1px solid var(--academic-line);padding-bottom:11px}
.current-enrollment-card{border-color:#c8ddcf;border-radius:11px;box-shadow:none}
.class-choice-list{gap:10px}
.class-choice{background:rgba(255,255,255,.94);border-color:#dfe4e8;border-radius:10px;padding:15px 16px}
.class-choice:hover{border-color:#c7d0d7;background:#fff}
.class-choice-main strong{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:14px;color:var(--academic-navy)}
.class-choice-main span{color:#727e8b}
.class-choice-meta{font-size:9px;color:#687586}
.info-box{background:#faf8f1;border-color:#e8dcc1;color:#725d34}
.public-footer{max-width:1160px;color:#7d8792;border-color:var(--academic-line);padding-left:24px;padding-right:24px}
.public-footer a{color:#5d6a78}
.public-narrow{max-width:920px;padding:70px 24px 25px}
.public-narrow h1{font-family:Georgia,"Times New Roman",serif;color:var(--academic-navy);font-weight:500;font-size:45px}
.teacher-step-grid{gap:16px;margin:34px 0}
.teacher-step{border-color:#dde3e7;border-radius:12px;box-shadow:0 8px 20px rgba(31,42,58,.035)}
.teacher-step>span{background:#f6f1e6;color:#7d6333;border-radius:7px}
.teacher-step h2{font-family:Georgia,"Times New Roman",serif;color:var(--academic-navy);font-weight:500}
.public-contact-card{border-color:#dde3e7;border-radius:12px;box-shadow:0 8px 20px rgba(31,42,58,.04)}

@media(max-width:980px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .public-topbar-inner{padding:11px 14px}
  .catalog-hero,.catalog-section,.course-public-hero,.course-public-section,.public-narrow{padding-left:14px;padding-right:14px}
  .catalog-hero{padding-top:57px}
  .catalog-hero:before{left:14px;top:39px}
  .catalog-hero h1,.course-public-copy h1,.public-narrow h1{font-size:34px}
}


/* =========================================================
   Academic Design System — Global Application Refinement
   Mengikat halaman internal pada nuansa halaman publik akademik.
   ========================================================= */
:root{
  --bg:#f5f4f0;
  --surface:#fff;
  --surface-soft:#faf9f5;
  --text:#263544;
  --muted:#697586;
  --subtle:#8b94a0;
  --border:#dfe5e9;
  --border-strong:#cfd7dd;
  --primary:#18324a;
  --primary-dark:#10283a;
  --primary-soft:#eef3f6;
  --success:#356a50;
  --success-soft:#eff6f1;
  --danger:#9f3f35;
  --danger-soft:#fbf1ef;
  --warning:#856b35;
  --warning-soft:#faf6ec;
  --sidebar:#18324a;
  --sidebar-soft:#23445e;
  --sidebar-text:#eef3f6;
  --sidebar-muted:#afbcc7;
  --sidebar-line:rgba(255,255,255,.11);
  --shadow-sm:0 1px 2px rgba(31,42,58,.035);
  --shadow:0 8px 24px rgba(31,42,58,.055);
  --shadow-lg:0 18px 42px rgba(31,42,58,.09);
}
body{background:var(--bg);color:var(--text)}
a{color:#5e6d7c}a:hover{color:var(--primary)}
.brand-mark{background:var(--primary);box-shadow:none;font-family:Georgia,"Times New Roman",serif}
button,.btn{border-color:var(--border-strong);border-radius:8px;background:#fff;color:#41505e;box-shadow:none}
button:hover,.btn:hover{border-color:#bdc7ce;background:#fcfcfb;color:var(--primary);box-shadow:0 4px 12px rgba(31,42,58,.05)}
.btn.primary{background:var(--primary);border-color:var(--primary);box-shadow:none}
.btn.primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 6px 16px rgba(24,50,74,.14)}
.btn.danger{color:var(--danger);border-color:#e7c4bf;background:#fffafa}
input,textarea,select{border-color:var(--border-strong);border-radius:8px;background:#fff}
input:focus,textarea:focus,select:focus{border-color:#8ea2b0;box-shadow:0 0 0 3px rgba(24,50,74,.08)}
.auth-page{background:radial-gradient(circle at 15% 12%,rgba(154,122,61,.07),transparent 23%),radial-gradient(circle at 86% 88%,rgba(24,50,74,.055),transparent 26%),var(--bg)}
.auth-card{border-color:var(--border);border-radius:14px;box-shadow:0 18px 48px rgba(31,42,58,.08)}
.auth-card h1,.content>h1,.page-heading h1,.panel h2,.panel h3,.module-top h2,.activity-view-head h1,.course-hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--primary)}
.auth-card h1{font-size:29px}
.sidebar{background:var(--sidebar);box-shadow:inset -1px 0 rgba(255,255,255,.05)}
.sidebar-brand{border-bottom-color:var(--sidebar-line)}
.nav-item{color:#d2dbe2}
.nav-item:hover{background:rgba(255,255,255,.075);color:#fff}
.nav-item.active{background:var(--sidebar-soft);box-shadow:inset 3px 0 #c1a66b}
.nav-item.active svg{color:#d9bf84}
.sidebar-section-label,.sidebar-account-label{color:#9dadb9}
.topbar{background:rgba(250,249,246,.96);border-bottom-color:var(--border);box-shadow:0 1px 0 rgba(31,42,58,.02)}
.topbar-title .eyebrow{color:#8b94a0}
.content{background:transparent}
.stat,.panel,.module-card,.learning-module,.course-outline,.activity-body,.external-link-card,.assignment-card{border-color:var(--border);box-shadow:var(--shadow-sm)}
.stat,.panel,.module-card,.learning-module,.course-outline,.activity-body,.external-link-card,.assignment-card{background:rgba(255,255,255,.96)}
.stat:after{background:#f2ede2}
.page-heading{margin-bottom:24px}
.eyebrow{color:#8a6c34}
.feature-panel{background:linear-gradient(135deg,#fff,#faf8f3)}
.count-pill{background:#f6f1e6;color:#7d6333}
.status-badge.is-published{background:#eff6f1;color:#356a50}
.status-badge.is-draft{background:#f2f3f3;color:#5d6872}
.toolbar input,.toolbar select{background:#fff}
table{background:transparent}th{background:#f7f6f1;color:#71808f}tbody tr:hover{background:#faf9f5}
.course-hero{background:var(--primary);box-shadow:0 16px 34px rgba(24,50,74,.15)}
.progress-card{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.16)}
.learning-activity:hover{border-color:#c9d3da;background:#fbfaf7}
.learning-activity.completed{background:#f3f8f4}
.course-activity-state.needs-revision{background:#a8752a;border-color:#a8752a}
.question-meta .badge:first-child{background:#f3f0e8;border-color:#e3dac7;color:#7b6337}
.option-index{background:#f3f0e8;color:#7b6337}
.question-pick strong{color:#7b6337}
.quiz-timer{background:var(--primary)}
.demo-box{background:#faf8f3;border-color:#d8d2c4}
.teacher-contact-mini{background:#faf8f3;border-color:#e5dcc9}
.teacher-contact-mini strong{color:var(--primary)}
.grade-weight-row,.grade-form,.review-answer-block{background:#fafbfa}
.table-actions .compact-action{border-color:#cfd7dd}
.archive-action{color:#966a2d;background:#fbf7ee;border-color:#e3d4b4}
/* public pages inherit the same paper/navy/gold language */
.public-page{background:#f5f4f0}
.public-topbar{background:rgba(250,249,246,.96);border-color:var(--border)}
.public-nav .public-nav-cta{background:var(--primary);border-color:var(--primary)}
.public-footer{color:#7d8792}
/* only login exposes the teacher route */
.teacher-contact-mini{display:grid}
@media(max-width:900px){.course-hero{background:var(--primary)}}

/* Public curriculum & module preview */
.course-curriculum-section{padding-top:6px}.public-curriculum{display:grid;gap:9px}.public-module-card{background:rgba(255,255,255,.94);border:1px solid #dfe4e8;border-radius:11px;overflow:hidden;box-shadow:0 4px 13px rgba(31,42,58,.025)}.public-module-card[open]{border-color:#cfd7dc;box-shadow:0 9px 22px rgba(31,42,58,.045)}.public-module-card summary{display:grid;grid-template-columns:44px minmax(0,1fr) auto 20px;gap:13px;align-items:center;padding:15px 17px;cursor:pointer;list-style:none}.public-module-card summary::-webkit-details-marker{display:none}.public-module-no{font-family:Georgia,"Times New Roman",serif;color:#a18b5a;font-size:13px}.public-module-title{min-width:0}.public-module-title strong{display:block;font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--academic-navy);font-size:14px;line-height:1.35}.public-module-title span{display:block;margin-top:3px;color:#77828d;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-module-meta{display:flex;align-items:center;gap:8px;justify-content:flex-end;color:#8a949f;font-size:9px;font-weight:750}.public-module-chevron{color:#8a949f;font-size:14px;transition:transform .16s}.public-module-card[open] .public-module-chevron{transform:rotate(180deg)}.preview-badge,.locked-badge{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border-radius:999px;font-size:9px;font-weight:850;letter-spacing:.025em}.preview-badge{background:#f7f2e8;border:1px solid #e4d5b4;color:#806535}.locked-badge{background:#f1f3f4;border:1px solid #dce1e4;color:#76818b}.public-module-body{border-top:1px solid #edf0f1;padding:5px 14px 15px}.public-preview-activity{display:flex;align-items:flex-start;gap:11px;padding:12px 7px;border-bottom:1px solid #eef0f2}.public-preview-activity:last-of-type{border-bottom:0}.public-preview-icon{width:28px;height:28px;display:grid;place-items:center;flex:none;border:1px solid #d9e0e4;border-radius:7px;background:#f7f6f1;color:#7a6336;font-size:10px;font-weight:850}.public-preview-main{min-width:0;flex:1}.public-preview-main strong{display:block;color:var(--academic-navy);font-size:12px;font-weight:750}.public-preview-main span{display:block;margin-top:2px;color:#89929c;font-size:9px}.public-preview-main p{margin:7px 0 0;color:#707b86;font-size:10px;line-height:1.65}.public-preview-link{flex:none;color:#5e6d7a;border:1px solid #d9e0e4;border-radius:7px;padding:5px 8px;font-size:9px;font-weight:800;background:#fff}.public-preview-link:hover{border-color:#c6cfd5;color:var(--academic-navy);background:#fbfbf9}.public-preview-note{margin-top:11px;padding:9px 11px;border:1px solid #eadfca;border-radius:8px;background:#faf8f2;color:#7a6c53;font-size:9px;line-height:1.6}.public-module-locked{display:flex;align-items:center;gap:11px;padding:13px 14px;border-top:1px solid #edf0f1;background:#fafafa8c}.lock-mark{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#eef1f3;border:1px solid #dce2e5;color:#7c8791;font-size:14px}.public-module-locked strong{font-size:11px;color:#66727e}.public-module-locked p{margin:3px 0 0;color:#8a949d;font-size:9px}.module-preview-option{align-items:flex-start;padding:9px 11px;border:1px solid #e5e1d5;border-radius:8px;background:#fbfaf6;color:#465766}.module-preview-option input{margin-top:2px}.module-preview-option .field-help{display:block;margin-left:22px}.module-preview-option strong{font-weight:800;color:#7d6333}
@media(max-width:720px){.public-module-card summary{grid-template-columns:34px minmax(0,1fr) 18px;gap:10px;padding:13px}.public-module-meta{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.public-module-chevron{grid-column:3;grid-row:1}.public-preview-activity{padding-left:2px;padding-right:2px}.public-preview-link{font-size:8px}.public-module-title span{white-space:normal}}


/* Ownership & instructor management */
.course-staff-summary{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin:0 0 18px}
.course-staff-summary>div{display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:rgba(255,255,255,.78);border:1px solid var(--border);border-radius:10px}
.course-staff-summary strong{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--primary);font-size:15px}
.course-staff-summary .muted{font-size:9px}
.field-section{padding-top:2px}.field-section-title{font-size:10px;font-weight:800;color:#556473;margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em}
.simple-list{display:grid;gap:0}.simple-list-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 2px;border-top:1px solid var(--border)}.simple-list-row:first-child{border-top:0}.simple-list-row>div{display:flex;flex-direction:column;gap:2px}.simple-list-row strong{font-size:12px}.simple-list-row .muted{font-size:9px}
.course-public-instructors{display:flex;align-items:baseline;gap:9px;margin-top:15px;padding-top:11px;border-top:1px solid rgba(255,255,255,.18);color:#dbe3e8;font-size:11px}.course-public-instructors .eyebrow{color:#dbc38a;margin:0}
@media(max-width:720px){.course-staff-summary{grid-template-columns:1fr}.course-public-instructors{display:block}.course-public-instructors>span+span{display:block;margin-top:4px}}

/* Phase 7 — Advanced Assessment: academic, structured, accessible workflow */
.assessment-page-heading{align-items:flex-start;gap:24px}
.assessment-heading-side{display:grid;justify-items:end;gap:8px;min-width:170px}
.quiz-timer{border:1px solid rgba(209,174,105,.25);background:#20354d;min-width:150px;font-size:21px;letter-spacing:.04em;box-shadow:0 8px 22px rgba(23,42,63,.12)}
.quiz-timer.is-warning{background:#725b30;color:#fff8e8}
.quiz-timer.is-expired{background:#8b3333;color:#fff}
.autosave-status{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);font-weight:650;text-align:right}
.autosave-dot{width:7px;height:7px;border-radius:50%;background:#8a9aab;flex:none}
.autosave-status.is-saving .autosave-dot{background:#b68b3f;box-shadow:0 0 0 3px rgba(182,139,63,.13)}
.autosave-status.is-saved .autosave-dot{background:#27846b}
.autosave-status.is-error{color:#a33b36}.autosave-status.is-error .autosave-dot{background:#b54740}
.assessment-instructions{border-left:3px solid #b99350;background:#fbfaf7}
.assessment-progress-panel{padding:15px 18px;margin-bottom:16px}
.assessment-progress-copy{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:9px}
.assessment-progress-copy strong{font-size:13px;color:var(--text)}
.assessment-progress-copy span{font-size:12px;color:var(--muted);font-weight:650}
.assessment-progress-track{height:6px;background:#ece9e1;border-radius:99px;overflow:hidden}
.assessment-progress-track>div{height:100%;min-width:0;background:linear-gradient(90deg,#20354d,#b99350);border-radius:99px;transition:width .2s ease}
.assessment-workspace{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:17px;align-items:start}
.assessment-question-column{min-width:0}
.assessment-question-pane{min-height:410px;padding:23px}
.assessment-question-topline{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.question-points{font-size:11px;font-weight:800;color:#806538;background:#f7f2e7;border:1px solid #e8ddc8;padding:5px 9px;border-radius:99px;white-space:nowrap}
.assessment-question-title{display:flex;align-items:center;gap:12px;margin-top:19px}
.assessment-question-title>span{width:38px;height:38px;border-radius:11px;background:#20354d;color:#fff;display:grid;place-items:center;font-size:16px;font-weight:800;flex:none}
.assessment-question-title>div{display:grid;gap:3px;min-width:0}
.assessment-question-title .eyebrow{font-size:9px}
.assessment-question-title strong{font-size:13px;color:var(--text)}
.assessment-question-pane .question-content{font-size:16px;line-height:1.85;color:#253448;margin:23px 0;overflow-wrap:anywhere}
.assessment-answer-options{display:grid;gap:8px}
.assessment-answer-options .answer-option{margin:0;min-height:48px;align-items:center;border-color:#e4e1d9;border-radius:10px;padding:12px 14px}
.assessment-answer-options .answer-option:hover{border-color:#c9b27f;background:#fbfaf7}
.assessment-answer-options .answer-option:has(input:checked){border-color:#b99350;background:#faf5e9;box-shadow:inset 0 0 0 1px rgba(185,147,80,.12)}
.assessment-text-answer{display:grid;gap:8px;margin-top:6px;font-size:12px;font-weight:750;color:#475467}
.assessment-text-answer textarea{min-height:100px;resize:vertical;line-height:1.65}
.assessment-question-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:14px;border-top:1px solid var(--border)}
.assessment-question-footer .muted{font-size:11px}
.flag-question{font-size:11px;white-space:nowrap;min-height:34px}
.flag-question.is-flagged{color:#77551e;background:#faf1dc;border-color:#dfc58c}
.assessment-question-navigation{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:13px 0}
.assessment-question-navigation .btn,.assessment-save-actions .btn{width:auto;margin:0}
.assessment-question-navigation .muted{font-size:11px;font-weight:700}
.assessment-question-navigation button:disabled{opacity:.4;cursor:not-allowed}
.assessment-save-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin:12px 0 25px}
.assessment-question-map{position:sticky;top:18px;padding:17px}
.assessment-question-map .panel-head{margin-bottom:13px}
.assessment-question-map .panel-head h2{font-size:15px}
.assessment-question-map .panel-head .muted{font-size:11px}
.question-map-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.question-map-button{display:grid;place-items:center;gap:3px;min-width:0;padding:7px 2px;border:1px solid #e5e1d8;background:#fff;border-radius:9px;color:#475467;cursor:pointer;transition:background .15s,border-color .15s}
.question-map-button>span{font-size:13px;font-weight:850}
.question-map-button small{font-size:8px;line-height:1.2;color:#8a8f98;text-align:center}
.question-map-button.is-current{border-color:#20354d;box-shadow:0 0 0 2px rgba(32,53,77,.08);background:#f2f5f8}
.question-map-button.is-answered{background:#edf6f1;border-color:#b8d7c8;color:#20624f}
.question-map-button.is-answered small{color:#36735f}
.question-map-button.is-flagged{background:#fbf2df;border-color:#dfc58c;color:#77551e}
.question-map-button.is-flagged small{color:#77551e}
.question-map-legend{display:grid;gap:7px;margin-top:14px;padding-top:13px;border-top:1px solid var(--border)}
.question-map-legend>span{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}
.legend-dot{width:8px;height:8px;border-radius:50%;background:#e3e1dc;flex:none}
.legend-dot.answered{background:#4d9276}.legend-dot.flagged{background:#c59b48}
.assessment-map-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.assessment-map-summary>div{display:grid;gap:3px;border:1px solid var(--border);border-radius:10px;padding:10px;background:#fcfbf8}
.assessment-map-summary span{font-size:9px;color:var(--muted)}
.assessment-map-summary strong{font-size:21px;color:var(--text);font-variant-numeric:tabular-nums}
.assessment-map-note{font-size:10px;line-height:1.6;margin:13px 0 0}
.assessment-review-panel{margin:5px 0 30px;padding:22px;border-top:3px solid #b99350}
.assessment-review-panel[hidden]{display:none!important}
.assessment-review-panel .panel-head h2{margin:2px 0 4px}
.assessment-review-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.assessment-review-stats>div{display:grid;gap:5px;padding:12px 14px;border:1px solid var(--border);border-radius:11px;background:#fcfbf8}
.assessment-review-stats span{font-size:11px;color:var(--muted)}
.assessment-review-stats strong{font-size:23px;color:var(--text)}
.assessment-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.assessment-review-item{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);cursor:pointer}
.assessment-review-item strong{font-size:11px}
.assessment-review-item span{font-size:10px;color:var(--muted)}
.assessment-review-item.is-answered{background:#edf6f1;border-color:#b8d7c8}
.assessment-review-item.is-answered span{color:#20624f}
.assessment-review-item.is-flagged{background:#fbf2df;border-color:#dfc58c}
.assessment-review-item.is-flagged span{color:#77551e}
.assessment-review-item.is-unanswered{background:#fbfaf7}
.assessment-review-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:18px;padding-top:15px;border-top:1px solid var(--border)}
.assessment-review-actions .btn{width:auto;margin:0}
.assessment-lock-notice{margin-bottom:15px}
.auto-submit-note{margin:0 0 13px}
@media(max-width:980px){.assessment-workspace{grid-template-columns:minmax(0,1fr) 230px;gap:12px}.assessment-question-map{padding:13px}.question-map-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.assessment-page-heading{display:flex;flex-direction:column;align-items:stretch}.assessment-heading-side{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;justify-items:initial}.quiz-timer{min-width:125px;font-size:18px}.assessment-workspace{grid-template-columns:minmax(0,1fr)}.assessment-question-map{position:static;grid-row:1}.assessment-question-column{grid-row:2}.question-map-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.assessment-question-pane{min-height:0;padding:17px}.assessment-question-footer{align-items:flex-start;flex-direction:column}.assessment-question-footer .flag-question{width:auto}.assessment-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.assessment-progress-copy{align-items:flex-start;flex-direction:column;gap:4px}.assessment-question-navigation{display:grid;grid-template-columns:1fr 1fr}.assessment-question-navigation .muted{grid-column:1/-1;grid-row:1;text-align:center}.assessment-question-navigation #previous-question{grid-column:1;grid-row:2}.assessment-question-navigation #next-question{grid-column:2;grid-row:2}.assessment-save-actions{display:grid;grid-template-columns:1fr}.assessment-save-actions .btn{width:100%}.question-map-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.assessment-review-stats{gap:6px}.assessment-review-stats>div{padding:10px}.assessment-review-stats strong{font-size:19px}.assessment-review-item{align-items:flex-start;flex-direction:column;gap:4px;padding:9px}.assessment-review-actions{display:grid;grid-template-columns:1fr}.assessment-review-actions .btn{width:100%}}

/* Quick publication toggle on Course Builder module badges */
.module-status-toggle-form{display:inline-flex;align-items:center;flex:none;margin:0;padding:0}
.module-status-toggle{appearance:none;-webkit-appearance:none;min-height:0;margin:0;padding:7px 11px;font:inherit;line-height:1.2;border:1px solid transparent;box-shadow:none;cursor:pointer}
.module-status-toggle:hover{filter:brightness(.97);transform:none;box-shadow:none;color:inherit}
.module-status-toggle:focus-visible{outline:2px solid #b59b61;outline-offset:2px}
.module-status-help{padding:2px 0 8px;line-height:1.6}


/* Course duplication: restrained academic styling */
.duplicate-course-panel { max-width: 980px; }
.duplicate-course-panel .review-facts { margin-bottom: 12px; }
.duplicate-course-panel .alert.info { line-height: 1.7; }
.duplicate-course-panel .form-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.table-actions form { margin:0; }
.table-actions .btn:disabled { opacity:.48; cursor:not-allowed; }
@media (max-width: 720px) {
  .duplicate-course-panel .review-facts { grid-template-columns: 1fr 1fr; }
  .duplicate-course-panel .form-actions .btn { width:100%; }
}


/* ==========================================================
   Notification header and dropdown — academic theme repair
   ========================================================== */
.notification-menu {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  line-height: 1;
  z-index: 120;
}
.notification-menu > summary,
.notification-button {
  appearance: none;
  -webkit-appearance: none;
  list-style: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: #1b354b;
  cursor: pointer;
  line-height: 1;
  box-shadow: none;
  transform: none;
  overflow: visible;
  user-select: none;
  -webkit-user-select: none;
}
.notification-menu > summary::-webkit-details-marker { display: none; }
.notification-menu > summary::marker { content: ""; font-size: 0; }
.notification-menu > summary:hover,
.notification-menu > summary:focus-visible {
  background: #f3efe6;
  border-color: #e5dac3;
  color: #1b354b;
  box-shadow: none;
  transform: none;
  outline: none;
}
.notification-menu > summary:focus-visible { outline: 2px solid #b99350; outline-offset: 2px; }
.notification-bell-svg {
  display: block;
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  overflow: visible;
}
.notification-count {
  position: absolute;
  top: -3px;
  right: -4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #c4a15c;
  color: #1b354b;
  font-size: 9px;
  font-weight: 850;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: 0 1px 3px rgba(24, 50, 74, .12);
}
.notification-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 390px;
  max-width: min(390px, calc(100vw - 24px));
  max-height: min(620px, calc(100vh - 88px));
  overflow: auto;
  overscroll-behavior: contain;
  z-index: 1000;
  background: #fff;
  color: #26384a;
  border: 1px solid #dce2e7;
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(24, 45, 62, .18);
  text-align: left;
  line-height: 1.45;
  isolation: isolate;
}
.notification-menu[open] > .notification-dropdown { display: block; }
.notification-dropdown-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 17px 18px 14px;
  border-bottom: 1px solid #e7eaed;
  background: #fbfaf7;
}
.notification-dropdown-heading { display: grid; gap: 4px; min-width: 0; }
.notification-dropdown-heading strong { color: #1d3347; font-size: 14px; font-weight: 800; line-height: 1.35; }
.notification-dropdown-heading > span { color: #7c8792; font-size: 11px; line-height: 1.4; }
.notification-see-all {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: 0 0 auto;
  padding: 3px 0;
  color: #7b6235;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.notification-see-all:hover { color: #1b354b; }
.notification-item {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 13px 16px;
  color: #26384a;
  background: #fff;
  border: 0;
  border-bottom: 1px solid #edf0f2;
  border-radius: 0;
  text-decoration: none;
  box-shadow: none;
  transform: none;
  white-space: normal;
}
.notification-item:last-of-type { border-bottom: 0; }
.notification-item:hover { color: #1b354b; background: #faf8f2; box-shadow: none; transform: none; }
.notification-item.unread { background: #fbfaf6; }
.notification-item.unread:hover { background: #f5f0e4; }
.notification-type-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  min-width: 38px;
  flex: 0 0 38px;
  border: 1px solid #e1e6ea;
  border-radius: 12px;
  background: #edf1f4;
  color: #1b354b;
}
.notification-type-icon svg,
.notification-empty-icon svg {
  display: block;
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.notification-type-icon.gold { background: #f7f0e3; border-color: #eadbc0; color: #856735; }
.notification-type-icon.success { background: #edf5f0; border-color: #d0e5d8; color: #356d53; }
.notification-type-icon.warning { background: #faf2df; border-color: #ecdfbd; color: #8b692d; }
.notification-type-icon.danger { background: #fbefed; border-color: #f0d5d1; color: #a9443a; }
.notification-type-icon.navy { background: #edf1f4; border-color: #dce4e9; color: #1b354b; }
.notification-item-copy { display: grid; gap: 4px; min-width: 0; flex: 1 1 auto; }
.notification-item-headline { display: flex; align-items: flex-start; gap: 8px; justify-content: space-between; min-width: 0; }
.notification-item-title { display: block; min-width: 0; color: #24384b; font-size: 12px; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; }
.notification-unread-dot { display: block; width: 7px; height: 7px; min-width: 7px; margin-top: 5px; border-radius: 50%; background: #b99350; flex: 0 0 7px; }
.notification-item-message { display: -webkit-box; min-width: 0; overflow: hidden; color: #657586; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.notification-item-time { color: #8a949e; font-size: 10px; font-weight: 600; line-height: 1.4; }
.notification-empty,
.notification-page-empty {
  display: grid;
  justify-items: center;
  gap: 7px;
  padding: 28px 22px;
  text-align: center;
  color: #73808d;
  background: #fff;
}
.notification-empty-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 3px;
  border: 1px solid #e6e0d3;
  border-radius: 14px;
  background: #f7f3eb;
  color: #806638;
}
.notification-empty strong,
.notification-page-empty strong { color: #27394b; font-size: 12px; font-weight: 800; }
.notification-empty > span:last-child,
.notification-page-empty > span:last-child { font-size: 11px; line-height: 1.6; }
.notification-dropdown-footer { padding: 11px 16px; border-top: 1px solid #e7eaed; background: #fbfaf7; }
.notification-dropdown-footer a { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 6px; border-radius: 8px; color: #765f37; font-size: 11px; font-weight: 800; }
.notification-dropdown-footer a:hover { background: #f1eadc; color: #1b354b; }

/* Notification centre page */
.notification-page { width: 100%; max-width: 1100px; margin: 0 auto; color: #26384a; }
.notification-page-intro { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin: 4px 0 25px; }
.notification-page-intro h1 { margin: 6px 0 7px; color: #1b354b; font-family: Georgia, "Times New Roman", serif; font-size: clamp(28px, 3vw, 38px); line-height: 1.15; letter-spacing: -.025em; }
.notification-page-intro p { max-width: 620px; margin: 0; color: #718090; font-size: 13px; line-height: 1.65; }
.notification-page-intro .eyebrow { color: #94733d; }
.notification-mark-all-form { margin: 0; flex: 0 0 auto; }
.notification-mark-all { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: auto; min-height: 40px; margin: 0; padding: 9px 13px; border: 1px solid #d5dfe5; border-radius: 10px; background: #fff; color: #294156; font-size: 11px; font-weight: 750; box-shadow: none; }
.notification-mark-all:hover { background: #f7f3ea; border-color: #d7c7a7; color: #1b354b; transform: none; box-shadow: none; }
.notification-mark-all svg { display: block; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.notification-page-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 13px; }
.notification-filters { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid #dce2e7; border-radius: 12px; background: #fff; }
.notification-filters a { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 7px 11px; border-radius: 8px; color: #657586; font-size: 11px; font-weight: 750; white-space: nowrap; }
.notification-filters a:hover { background: #f7f4ec; color: #1b354b; }
.notification-filters a.active { background: #1b354b; color: #fff; }
.notification-filter-count { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px; background: rgba(185,147,80,.18); color: inherit; font-size: 10px; }
.notification-filters a.active .notification-filter-count { background: rgba(255,255,255,.18); color: #fff; }
.notification-list-caption { color: #8a949e; font-size: 10px; }
.notification-page-panel { overflow: hidden; border: 1px solid #dce2e7; border-radius: 15px; background: #fff; box-shadow: 0 3px 14px rgba(24,45,62,.04); }
.notification-page-list { display: grid; }
.notification-page-item { display: flex; align-items: flex-start; gap: 13px; min-width: 0; padding: 17px 19px; border-bottom: 1px solid #e9edf0; background: #fff; color: #26384a; text-decoration: none; }
.notification-page-item:last-child { border-bottom: 0; }
.notification-page-item:hover { background: #faf8f2; color: #1b354b; }
.notification-page-item.unread { background: #fbfaf6; }
.notification-page-item.unread:hover { background: #f5f0e4; }
.notification-page-copy { display: grid; gap: 5px; min-width: 0; flex: 1 1 auto; }
.notification-page-title-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-width: 0; }
.notification-page-title-line strong { color: #24384b; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.notification-new-label { display: inline-flex; flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: #f7f0e3; color: #856735; font-size: 9px; font-weight: 800; white-space: nowrap; }
.notification-page-message { color: #66788a; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.notification-page-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 2px; color: #8a949e; font-size: 10px; }
.notification-open-label { color: #806638; font-weight: 800; white-space: nowrap; }
.notification-page-item:hover .notification-open-label { color: #1b354b; }
.notification-page-empty { min-height: 220px; }
.notification-page .alert.success { margin: 0 0 15px; }
@media (max-width: 700px) {
  .topbar { overflow: visible; }
  .top-actions { gap: 8px; }
  .notification-dropdown { position: fixed; top: 72px; right: 12px; width: min(390px, calc(100vw - 24px)); max-height: calc(100vh - 88px); }
  .notification-page-intro { align-items: flex-start; flex-direction: column; }
  .notification-page-toolbar { align-items: flex-start; flex-direction: column; }
  .notification-page-item { padding: 14px; gap: 10px; }
  .notification-page-meta { align-items: flex-start; flex-direction: column; gap: 4px; }
}
@media (max-width: 420px) {
  .notification-menu > summary { width: 38px; height: 38px; min-width: 38px; min-height: 38px; }
  .notification-dropdown-head { padding: 14px; gap: 10px; }
  .notification-item { padding: 12px; }
  .notification-page-title-line { flex-direction: column; gap: 5px; }
  .notification-mark-all { width: 100%; }
  .notification-mark-all-form { width: 100%; }
}

/* Question images: compact, responsive, and consistent with the academic theme. */
.question-image-field{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.question-image-field>label,.option-image-input-label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.question-image-field small,.option-image-input-label small,.question-existing-image small{font-weight:400;color:var(--muted,#6b7280);font-size:.84rem}
.question-image-input{display:block;max-width:100%;font-size:.92rem}
.question-existing-image{display:flex;align-items:flex-start;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line,#e5e7eb);border-radius:10px;background:var(--surface-soft,#faf9f6)}
.question-existing-image img{display:block;max-width:100%;max-height:260px;width:auto;height:auto;object-fit:contain;border-radius:7px;background:#fff}
.question-media{display:block;max-width:min(100%,760px);max-height:520px;width:auto;height:auto;object-fit:contain;margin:12px 0 18px;border:1px solid var(--line,#e5e7eb);border-radius:10px;padding:6px;background:#fff}
.assessment-question-media{max-width:min(100%,840px);max-height:600px;margin:14px auto 22px}
.option-question-media{max-width:min(100%,440px);max-height:300px;margin:8px 0 4px}
.question-media-thumb{display:block;max-width:128px;max-height:84px;object-fit:contain;border:1px solid var(--line,#e5e7eb);background:#fff;border-radius:7px;padding:3px;margin:7px 0}
.option-edit-row-image{align-items:flex-start;gap:10px;flex-wrap:wrap}
.option-edit-main{display:flex;flex:1 1 300px;min-width:0;flex-direction:column;gap:8px}
.option-edit-main>input[type=text],.option-edit-main>input:not([type]){width:100%;min-width:0}
.option-remove-image{font-size:.82rem;align-self:flex-start}
.answer-option .question-media{margin-bottom:4px}
@media(max-width:640px){.question-media{max-width:100%;max-height:360px}.assessment-question-media{max-height:420px}.option-edit-main{flex-basis:100%}.option-edit-row-image .option-index{margin-top:7px}}

.question-image-upload-preview{display:block;margin-top:6px}.question-image-upload-preview img{display:block;max-width:min(100%,420px);max-height:220px;object-fit:contain;border:1px solid var(--line,#e5e7eb);border-radius:8px;background:#fff;padding:4px}


/* Soal: kunci jawaban berada di sisi kiri kolom pilihan, dengan tata letak konsisten. */
.option-edit-row,
.option-edit-row-image {
  display: grid;
  grid-template-columns: 34px 76px minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
}
.option-edit-row .option-index { grid-column: 1; grid-row: 1; margin-top: 5px; }
.option-edit-row .option-correct-check,
.option-edit-row > .check-row {
  grid-column: 2;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  margin: 7px 0 0;
  white-space: nowrap;
  font-size: 12px;
}
.option-edit-row .option-edit-main { grid-column: 3; grid-row: 1; min-width: 0; }
.option-edit-row > .btn { grid-column: 4; grid-row: 1; }
.option-edit-row .option-correct-check input,
.option-edit-row > .check-row input { flex: 0 0 auto; width: auto; margin: 0; }
@media (max-width: 700px) {
  .option-edit-row,
  .option-edit-row-image { grid-template-columns: 30px 76px minmax(0, 1fr); gap: 8px; }
  .option-edit-row .option-index { grid-column: 1; grid-row: 1; }
  .option-edit-row .option-correct-check,
  .option-edit-row > .check-row { grid-column: 2; grid-row: 1; }
  .option-edit-row .option-edit-main { grid-column: 1 / -1; grid-row: 2; }
  .option-edit-row > .btn { grid-column: 3; grid-row: 3; justify-self: end; }
}


/* ==========================================================
   Question option editor — layout repair v2
   Dedicated class + cache-busted stylesheet to ensure rules apply.
   ========================================================== */
.question-option-editor-row {
  display: grid !important;
  grid-template-columns: 36px 96px minmax(0, 1fr) auto !important;
  grid-auto-flow: row !important;
  align-items: start !important;
  gap: 10px 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  padding: 12px !important;
  margin: 10px 0 !important;
  border: 1px solid var(--border, #d7dee5) !important;
  border-radius: 12px !important;
  background: #fbfaf7 !important;
}
.question-option-editor-row > .option-index {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  margin: 2px 0 0 !important;
  border-radius: 9px !important;
  background: #f2eee4 !important;
  color: #82673a !important;
  font-weight: 800 !important;
}
.question-option-editor-row > .option-correct-check,
.question-option-editor-row > .check-row {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 7px !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 9px 0 0 !important;
  white-space: nowrap !important;
  line-height: 1.35 !important;
}
.question-option-editor-row > .option-correct-check input,
.question-option-editor-row > .check-row input {
  flex: 0 0 16px !important;
  width: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
}
.question-option-editor-row > .option-edit-main {
  grid-column: 3 !important;
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.question-option-editor-row .option-edit-main > input[name^="option_text"],
.question-option-editor-row .option-edit-main > input[name^="new_option_text"] {
  display: block !important;
  grid-column: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 42px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.question-option-editor-row .option-image-input-label {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 4px !important;
  width: 100% !important;
  max-width: 340px !important;
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}
.question-option-editor-row .option-image-input-label .question-image-input {
  display: block !important;
  width: 100% !important;
  max-width: 340px !important;
  min-width: 0 !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 5px 7px !important;
  box-sizing: border-box !important;
  font-size: 12px !important;
  background: #fff !important;
}
.question-option-editor-row .option-image-input-label small {
  margin: 0 !important;
  font-size: 11px !important;
  color: var(--muted, #738091) !important;
  font-weight: 400 !important;
}
.question-option-editor-row > .btn {
  grid-column: 4 !important;
  grid-row: 1 !important;
  align-self: start !important;
  justify-self: end !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 7px 11px !important;
  white-space: nowrap !important;
}
.question-option-editor-row .option-existing-image {
  max-width: 100% !important;
  margin-top: 2px !important;
}
.question-option-editor-row .option-existing-image img {
  max-width: min(100%, 300px) !important;
  max-height: 180px !important;
}
@media (max-width: 760px) {
  .question-option-editor-row {
    grid-template-columns: 34px minmax(0, 1fr) auto !important;
    gap: 8px !important;
    padding: 10px !important;
  }
  .question-option-editor-row > .option-index { grid-column: 1 !important; grid-row: 1 !important; }
  .question-option-editor-row > .option-correct-check,
  .question-option-editor-row > .check-row { grid-column: 2 !important; grid-row: 1 !important; }
  .question-option-editor-row > .btn { grid-column: 3 !important; grid-row: 1 !important; }
  .question-option-editor-row > .option-edit-main { grid-column: 1 / -1 !important; grid-row: 2 !important; }
  .question-option-editor-row .option-image-input-label,
  .question-option-editor-row .option-image-input-label .question-image-input { max-width: 100% !important; }
}


/* Finance settings — phase 1 */
.finance-highlight{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.finance-metric{border:1px solid var(--border);border-radius:13px;background:#fff;padding:15px}
.finance-metric span{display:block;color:var(--muted);font-size:12px}
.finance-metric strong{display:block;margin-top:6px;font-size:23px;letter-spacing:-.03em}
.finance-help{font-size:12px;color:var(--muted);line-height:1.65;margin:7px 0 0}
.finance-inline-form{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(145px,.7fr);gap:13px;align-items:end}
.finance-inline-form label{margin-top:0}
.finance-inline-form .btn{width:auto;margin:0}
.finance-table{min-width:700px}
.finance-status{display:inline-flex;max-width:220px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750;background:#fff7e7;color:#8a6117;border:1px solid #efdfb5}
.finance-status.accepted{background:#ecfdf3;color:#027a48;border-color:#abefc6}
.finance-status.rejected{background:#fff1f0;color:#b42318;border-color:#fecdca}
.finance-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.finance-row-actions form{margin:0}
.finance-row-actions .btn{min-height:31px;padding:6px 9px;font-size:11px}
@media(max-width:720px){.finance-highlight{grid-template-columns:1fr}.finance-inline-form{grid-template-columns:1fr}.finance-inline-form .btn{width:100%}}

/* Semi-automated payments — kept visually consistent with the existing LMS UI. */
.payment-checkout-panel{max-width:920px}.payment-product-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:20px}.payment-product-summary h2{margin:4px 0 5px}.payment-price{min-width:155px;padding:14px 16px;background:#f8f8fb;border:1px solid var(--border);border-radius:13px}.payment-price span,.payment-order-summary span,.payment-admin-facts span{display:block;font-size:11px;color:var(--muted);font-weight:700}.payment-price strong{display:block;font-size:23px;margin-top:4px;color:var(--primary);letter-spacing:-.03em}.payment-checkout-form>label{display:block;font-weight:700;margin-bottom:8px}.payment-checkout-form>select{max-width:100%;margin-bottom:16px}.payment-checkout-note{padding:14px 16px;background:#f8f8fb;border:1px solid var(--border);border-radius:12px;margin:18px 0;line-height:1.65}.payment-checkout-note strong{display:block;margin-bottom:5px}.payment-checkout-note p{margin:5px 0;color:var(--muted);font-size:13px}.payment-checkout-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.payment-order-list,.payment-admin-list{display:grid;gap:16px}.payment-order-card,.payment-admin-card{margin:0;min-width:0}.payment-order-card.is-focused{border-color:#c5b66c;box-shadow:0 0 0 3px rgba(184,135,50,.09),var(--shadow-sm)}.payment-order-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.payment-order-head h2{margin:4px 0 5px;font-size:21px}.payment-order-head p{margin:0}.payment-order-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:15px 0;margin:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.payment-order-summary>div{min-width:0}.payment-order-summary strong{display:block;font-size:13px;margin-top:5px;overflow-wrap:anywhere}.payment-instructions{background:#fbfbfd;border:1px solid var(--border);border-radius:12px;padding:16px;margin:16px 0}.payment-instructions h3{margin:0 0 12px;font-size:16px}.payment-instructions p{margin:6px 0;line-height:1.65;font-size:13px}.payment-method-panel{padding:12px 13px;background:#fff;border:1px solid var(--border);border-radius:10px;margin-top:10px}.payment-method-panel>strong{display:block;margin-bottom:5px}.payment-extra-instructions{white-space:normal;padding:12px 13px;background:#fff7e8;border:1px solid #f2dfb4;border-radius:10px;margin-top:10px;line-height:1.65;font-size:13px}.payment-qris-open{display:inline-flex;padding:8px;margin-top:6px;background:#fff;border:1px solid var(--border);border-radius:10px;max-width:290px}.payment-qris-open img{display:block;width:100%;height:auto;max-height:320px;object-fit:contain}.payment-reference-reminder{color:var(--muted);font-size:12px!important;margin-top:12px!important}.payment-proof-form{border-top:1px solid var(--border);padding-top:17px;margin-top:17px}.payment-proof-form h3{margin:0 0 12px;font-size:16px}.payment-proof-form .form-grid{gap:12px}.payment-proof-form .btn.primary{width:auto;margin-top:12px}.payment-success-note,.payment-review-note,.payment-rejection-note{padding:13px 15px;border-radius:11px;margin-top:14px;border:1px solid var(--border);background:#fafbfc}.payment-success-note{background:#f0fdf5;border-color:#b7e4ca}.payment-review-note{background:#fffaf0;border-color:#efdfb5}.payment-rejection-note{background:#fff4f2;border-color:#fecdca}.payment-success-note p,.payment-review-note p,.payment-rejection-note p{margin:5px 0 0;font-size:13px;line-height:1.6}.payment-review-note small{display:block;margin-top:7px;color:var(--muted)}.payment-empty{text-align:center;padding:32px 20px}.payment-empty h2{margin:8px 0}.payment-empty p{max-width:580px;margin:0 auto 14px}.payment-empty-icon{display:flex;width:44px;height:44px;align-items:center;justify-content:center;margin:0 auto 12px;border-radius:50%;background:#f2f3f7;color:var(--primary);font-size:22px;font-weight:800}.payment-admin-metrics .finance-metric strong{font-size:21px}.payment-admin-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.payment-admin-facts>div{min-width:0}.payment-admin-facts strong{display:block;font-size:13px;margin-top:5px;overflow-wrap:anywhere}.payment-admin-facts small{display:block;color:var(--muted);font-size:11px;overflow-wrap:anywhere;margin-top:2px}.payment-proof-meta{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 13px;background:#f8f8fb;border-radius:10px;border:1px solid var(--border)}.payment-proof-meta p{margin:5px 0 0}.payment-proof-meta>.btn{flex:none}.payment-review-details{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.payment-review-details>summary{cursor:pointer;font-weight:750;color:var(--primary);font-size:13px}.payment-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.payment-review-actions form{padding:13px;border:1px solid var(--border);border-radius:11px;background:#fcfcfe;min-width:0}.payment-review-actions label{display:block;font-size:12px;font-weight:700}.payment-review-actions input,.payment-review-actions textarea{margin-top:6px}.payment-review-actions .btn{margin-top:11px;width:auto}.payment-reject-form .btn{background:#fff;border-color:#efb5ae;color:#a92c23}.payment-settings-panel .form-grid{gap:13px}.payment-settings-panel .check-label{display:flex;align-items:center;gap:8px;margin-top:10px}.payment-settings-panel .check-label input{width:auto;margin:0}
@media(max-width:760px){.payment-product-summary{flex-direction:column}.payment-price{width:100%;box-sizing:border-box}.payment-order-head{flex-direction:column}.payment-order-summary{grid-template-columns:1fr 1fr}.payment-admin-facts{grid-template-columns:1fr 1fr}.payment-review-actions{grid-template-columns:1fr}.payment-proof-meta{align-items:flex-start;flex-direction:column}.payment-proof-meta>.btn{width:100%}.payment-checkout-actions{justify-content:stretch}.payment-checkout-actions>.btn{flex:1}.payment-order-head .finance-status{align-self:flex-start}}
@media(max-width:460px){.payment-order-summary{grid-template-columns:1fr}.payment-admin-facts{grid-template-columns:1fr}.payment-price strong{font-size:21px}}

.payment-agreement-warning{background:#fffaf0;border:1px solid #efdfb5;border-radius:11px;padding:13px 15px;margin:15px 0}.payment-agreement-warning p{font-size:13px;line-height:1.65;margin:5px 0 0;color:var(--muted)}.payment-agreement-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.payment-agreement-actions form{margin:0}.payment-agreement-footnote{font-size:12px;line-height:1.65;margin-bottom:0}
@media(max-width:480px){.payment-agreement-actions,.payment-agreement-actions form,.payment-agreement-actions .btn{width:100%}}
