@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap');
:root{--paper:#eee8dd;--panel:#f8f4ed;--ink:#172321;--muted:#69716d;--line:#c8bfb2;--red:#e3452f;--blue:#144b7c;--yellow:#e9b832;--sidebar:216px}*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif}.skip{position:fixed;left:1rem;top:-4rem;background:#fff;padding:.8rem;z-index:100}.skip:focus{top:1rem}button,input,textarea,select{font:inherit}.app-shell{height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}.sidebar{background:var(--ink);color:white;padding:1.3rem 1rem;display:flex;flex-direction:column;min-height:0}.brand{display:flex;align-items:center;gap:.7rem;background:none;color:white;border:0;text-align:left;cursor:pointer;padding:.4rem;margin-bottom:2.2rem}.brand>span:last-child{font-weight:600;font-size:13px;letter-spacing:.08em}.brand small{display:block;font-size:7px;letter-spacing:.18em;opacity:.55}.bauhaus-mark{display:grid;grid-template-columns:12px 12px;grid-template-rows:12px 12px;width:26px;height:26px}.bauhaus-mark i:nth-child(1){background:var(--red);grid-row:1/3}.bauhaus-mark i:nth-child(2){background:var(--blue)}.bauhaus-mark i:nth-child(3){background:var(--yellow)}nav{display:flex;flex-direction:column;gap:3px}nav button{border:0;background:none;color:#aeb8b3;display:grid;grid-template-columns:34px 1fr;text-align:left;align-items:center;padding:.7rem .65rem;cursor:pointer;border-radius:3px}nav button span{font-size:10px;color:#7d8b86}nav button b{font-weight:500;font-size:12px}nav button:hover,nav button.active{background:#2b3936;color:white}nav button.active span{color:var(--yellow)}.nav-label{font-size:8px;letter-spacing:.18em;color:#64716d;text-transform:uppercase;margin:1rem .7rem .35rem}.sidebar-foot{margin-top:auto;border-top:1px solid #3b4946;padding:.9rem .6rem;display:grid;gap:.2rem}.sidebar-foot span{font-size:8px;letter-spacing:.18em;color:var(--yellow)}.sidebar-foot strong{font:1.25rem "Libre Caslon Display"}.sidebar-foot small{font-size:8px;color:#71807a}.app-main{height:100vh;min-width:0;display:grid;grid-template-rows:64px 1fr}.appbar{border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 2.2rem;background:rgba(238,232,221,.95)}.crumb{display:flex;align-items:center;gap:.7rem}.crumb span{font-size:8px;letter-spacing:.16em;color:var(--muted)}.crumb span::after{content:"/";padding-left:.7rem}.crumb b{font-size:11px}.appbar-actions{display:flex;align-items:center;gap:.7rem}.appbar-actions>button:first-child{border:1px solid var(--line);background:var(--panel);padding:.55rem .7rem;color:var(--muted);font-size:11px;cursor:pointer;min-width:220px;text-align:left}.appbar kbd{float:right;border:1px solid var(--line);padding:0 .25rem;background:white}.profile{width:34px;height:34px;border:0;border-radius:50%;background:var(--red);color:white;font-size:10px}.app-main main{overflow:auto;scroll-behavior:smooth}.workspace{padding:2rem 2.3rem 4rem;min-height:100%}.page-head{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:1.2rem;margin-bottom:1.5rem;gap:2rem}.eyebrow{margin:0 0 .5rem;color:var(--red);font-size:9px;letter-spacing:.18em;text-transform:uppercase}.page-head h1{font:clamp(2.3rem,4vw,4.5rem)/.95 "Libre Caslon Display";letter-spacing:-.035em;margin:0}.page-head p:last-child{max-width:440px;color:var(--muted);font-size:12px;margin:0}.dashboard{display:grid;grid-template-columns:1.3fr .7fr;grid-template-rows:auto auto;gap:1rem}.hero-card{background:var(--blue);color:white;min-height:360px;padding:2.5rem;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between}.hero-card::before{content:"";position:absolute;width:340px;height:340px;border:62px solid var(--yellow);border-radius:50%;right:-160px;bottom:-210px}.hero-card::after{content:"";position:absolute;width:120px;height:220px;background:var(--red);right:90px;top:-110px;transform:rotate(28deg)}.hero-card h1{font:clamp(3.2rem,5.7vw,6.5rem)/.85 "Libre Caslon Display";letter-spacing:-.05em;margin:0;max-width:780px;position:relative;z-index:1}.hero-bottom{display:flex;justify-content:space-between;align-items:end;position:relative;z-index:1}.hero-card p{max-width:530px;color:#d4dfdc;font-size:13px}.action{border:1px solid currentColor;background:none;padding:.65rem .9rem;color:inherit;cursor:pointer}.action.solid{background:var(--ink);color:white}.course-card{background:var(--panel);border:1px solid var(--line);padding:1.6rem;display:flex;flex-direction:column}.course-card h2{font:2rem "Libre Caslon Display";margin:.5rem 0}.progress{height:5px;background:#ddd4c8;margin:1.4rem 0}.progress i{display:block;height:100%;width:42%;background:var(--red)}.course-meta{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:auto}.course-meta span{font-size:8px;color:var(--muted);text-transform:uppercase}.course-meta b{display:block;font:1.6rem "Libre Caslon Display"}.module-strip{grid-column:1/3;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.module-tile{background:var(--panel);border:0;text-align:left;min-height:150px;padding:1rem;cursor:pointer;display:flex;flex-direction:column}.module-tile:hover{background:var(--yellow)}.module-tile span{font-size:9px;color:var(--red)}.module-tile strong{font:1.25rem "Libre Caslon Display";margin:auto 0 .4rem}.module-tile small{font-size:9px;color:var(--muted)}.toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.chip{border:1px solid var(--line);background:transparent;padding:.48rem .7rem;font-size:10px;cursor:pointer}.chip.active{background:var(--red);color:white;border-color:var(--red)}.split-view{display:grid;grid-template-columns:320px 1fr;border:1px solid var(--line);min-height:600px;background:var(--panel)}.list-pane{border-right:1px solid var(--line);max-height:calc(100vh - 210px);overflow:auto}.list-pane button{display:grid;grid-template-columns:42px 1fr;width:100%;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;padding:1rem;cursor:pointer}.list-pane button.active,.list-pane button:hover{background:var(--ink);color:white}.list-pane button span{font-size:9px;color:var(--red)}.list-pane button strong{font:1.2rem "Libre Caslon Display"}.list-pane button small{grid-column:2;font-size:9px;color:var(--muted)}.detail-pane{padding:2rem;overflow:auto;max-height:calc(100vh - 210px)}.detail-pane h2{font:clamp(2.7rem,4vw,5rem)/.95 "Libre Caslon Display";margin:.2rem 0 1rem}.detail-pane h3{font:1.5rem "Libre Caslon Display";margin:2rem 0 .5rem}.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:1.2rem 0}.fact{padding:.8rem;border-right:1px solid var(--line)}.fact:last-child{border:0}.fact span{display:block;font-size:8px;text-transform:uppercase;color:var(--muted);letter-spacing:.1em}.fact b{font-size:11px}.portrait-layout{display:grid;grid-template-columns:minmax(240px,.7fr) 1.3fr;gap:2rem}.portrait{height:410px;background:#ddd2c1;overflow:hidden;position:relative;margin:0}.portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06)}.portrait figcaption{position:absolute;bottom:0;left:0;right:0;background:#172321d9;color:white;padding:.7rem;font-size:9px}.lead{font:1.35rem/1.45 "Libre Caslon Display"}.works-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.work-card{border:1px solid var(--line);background:white;overflow:hidden}.work-card img{width:100%;height:130px;object-fit:cover}.work-card div{padding:.7rem}.work-card strong{font:1.05rem "Libre Caslon Display"}.work-card small{display:block;color:var(--muted);font-size:9px}.source-links{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.source-link{border-top:1px solid var(--line);padding:.65rem 0;text-decoration:none;font-size:11px}.source-link span{display:block;color:var(--red);font-size:8px;text-transform:uppercase}.gallery-hero{height:360px;position:relative;background:#d5ccbf}.gallery-hero img{width:100%;height:100%;object-fit:cover}.caption{position:absolute;bottom:0;left:0;right:0;padding:1rem;background:linear-gradient(transparent,#111c);color:white;font-size:10px}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.analysis-card{border-top:3px solid var(--ink);padding:1rem 0}.analysis-card h3{margin:.3rem 0}.analysis-card p{font-size:11px;color:var(--muted)}.timeline-board{display:grid;grid-template-columns:150px 1fr;gap:1.5rem}.timeline-rail{display:flex;flex-direction:column}.timeline-rail button{background:none;border:0;border-left:2px solid var(--line);padding:.8rem;text-align:left;cursor:pointer;color:var(--muted)}.timeline-rail button.active{border-color:var(--red);color:var(--ink);background:#f7f2e9}.timeline-rail small{display:block}.timeline-sheet{background:var(--panel);padding:2rem;border:1px solid var(--line)}.timeline-sheet .year{font:5rem/1 "Libre Caslon Display";color:var(--blue)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:2rem}.event{border-top:2px solid var(--ink);padding-top:.7rem}.event b{color:var(--red)}.event p{font-size:11px}.movement-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}.movement{min-height:230px;background:var(--panel);border:1px solid var(--line);padding:1rem;text-align:left;cursor:pointer;display:flex;flex-direction:column}.movement:hover{background:var(--yellow)}.movement h2{font:1.7rem "Libre Caslon Display";margin:auto 0 .6rem}.movement p{font-size:10px;color:var(--muted)}.swatches{display:flex;gap:3px}.swatches i{width:16px;height:16px;border-radius:50%}.worksheet-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:1rem}.brief{background:var(--ink);color:white;padding:1.6rem}.brief h2{font:2.2rem "Libre Caslon Display"}.brief ol{padding-left:1.2rem;color:#c6d0cc;font-size:12px}.sheet{background:var(--panel);border:1px solid var(--line);padding:1.5rem}.sheet label{display:block;margin:1rem 0 .35rem;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.sheet select,.sheet textarea{width:100%;border:1px solid var(--line);background:white;padding:.7rem}.sheet textarea{min-height:100px;resize:vertical}.rubric{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1rem}.rubric div{border:1px solid var(--line);padding:.7rem;font-size:10px}.references-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.reference{background:var(--panel);border:1px solid var(--line);padding:1rem;text-decoration:none;min-height:170px;display:flex;flex-direction:column}.reference:hover{border-color:var(--red)}.reference span{font-size:8px;color:var(--red);text-transform:uppercase;letter-spacing:.12em}.reference h2{font:1.35rem "Libre Caslon Display";margin:auto 0 .4rem}.reference p{font-size:10px;color:var(--muted);margin:0}.reference b{font-size:9px;margin-top:.7rem}dialog{border:0;padding:0;width:min(780px,92vw);max-height:86vh;background:var(--panel);box-shadow:0 30px 100px #0009}dialog::backdrop{background:#101816dc}.close{float:right;position:sticky;top:.8rem;margin:.8rem;width:36px;height:36px;border:0;background:var(--ink);color:white;font-size:22px;z-index:2}.search-panel,#detailContent{padding:3rem;clear:both}.search-panel label{font:2.5rem "Libre Caslon Display"}.search-panel input{width:100%;border:0;border-bottom:2px solid var(--ink);background:none;padding:1rem 0;font-size:1.2rem}.search-result{display:block;text-decoration:none;padding:1rem 0;border-bottom:1px solid var(--line)}.search-result span{color:var(--red);font-size:8px;text-transform:uppercase}.empty{padding:3rem;text-align:center;color:var(--muted)}
@media(max-width:1050px){:root{--sidebar:78px}.brand>span:last-child,.sidebar nav b,.sidebar-foot{display:none}.brand{justify-content:center}.sidebar nav button{grid-template-columns:1fr;text-align:center}.nav-label{text-align:center}.dashboard{grid-template-columns:1fr}.module-strip{grid-column:1;grid-template-columns:repeat(3,1fr)}.movement-grid{grid-template-columns:repeat(3,1fr)}.portrait-layout{grid-template-columns:1fr}.references-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){html,body{overflow:auto}.app-shell{height:auto;min-height:100vh;grid-template-columns:1fr}.sidebar{position:fixed;left:0;right:0;bottom:0;height:64px;z-index:50;padding:.3rem}.brand,.nav-label,.sidebar-foot{display:none!important}.sidebar nav{display:grid;grid-template-columns:repeat(7,1fr);height:100%}.sidebar nav button{padding:.2rem}.sidebar nav button b{display:block;font-size:7px}.app-main{height:auto;min-height:100vh;grid-template-rows:58px auto;padding-bottom:64px}.appbar{padding:0 1rem}.appbar-actions>button:first-child{min-width:0;width:38px}.appbar-actions>button:first-child span,.appbar kbd{display:none}.workspace{padding:1.2rem 1rem 3rem}.page-head{align-items:flex-start;flex-direction:column}.dashboard{display:block}.dashboard>*{margin-bottom:.8rem}.hero-card{min-height:330px;padding:1.5rem}.hero-bottom{display:block}.module-strip{grid-template-columns:1fr 1fr}.split-view{display:block}.list-pane{display:flex;max-height:none;overflow:auto;border-right:0;border-bottom:1px solid var(--line)}.list-pane button{min-width:190px}.detail-pane{max-height:none;padding:1rem}.facts{grid-template-columns:1fr 1fr}.portrait-layout,.worksheet-grid{grid-template-columns:1fr}.works-grid{grid-template-columns:1fr 1fr}.timeline-board{grid-template-columns:1fr}.timeline-rail{flex-direction:row;overflow:auto}.timeline-rail button{min-width:130px;border-left:0;border-bottom:2px solid var(--line)}.event-grid,.movement-grid,.references-grid,.analysis-grid{grid-template-columns:1fr}.rubric{grid-template-columns:1fr 1fr}.source-links{grid-template-columns:1fr}}
.module-strip{grid-template-columns:repeat(7,1fr)}.quiz-shell{background:var(--panel);border:1px solid var(--line);padding:2rem;max-width:1050px;margin:auto;min-height:520px}.quiz-shell>h2,.quiz-layout h2,.result-screen h2{font:clamp(2rem,4vw,4rem)/1 "Libre Caslon Display";margin:1.5rem 0}.quiz-progress{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;font-size:9px;letter-spacing:.12em}.quiz-progress>i{height:5px;background:#d8d0c4}.quiz-progress>i b{display:block;height:100%;background:var(--red)}.quiz-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1.5rem}.quiz-layout figure{margin:0;height:430px;background:#d6cec2}.quiz-layout figure img{width:100%;height:100%;object-fit:cover}.quiz-answers,.visual-options{display:grid;gap:.65rem}.quiz-answers button,.visual-options button{display:grid;grid-template-columns:38px 1fr;align-items:center;text-align:left;border:1px solid var(--line);background:white;padding:.75rem;cursor:pointer}.quiz-answers button span,.visual-options button span{display:grid;place-items:center;width:28px;height:28px;background:var(--paper);color:var(--red);font-weight:600}.quiz-answers button:hover,.visual-options button:hover{border-color:var(--red)}.quiz-answers button.correct{background:#dce9df;border-color:#477155}.quiz-answers button.wrong{background:#f5d8d2;border-color:#b64b3a}.feedback{margin-top:1rem;padding:1rem;border-left:4px solid var(--ink);background:#e8e2d8}.feedback.ok{border-color:#477155}.feedback.no{border-color:var(--red)}.feedback p{font-size:12px}.big-score{font:7rem/1 "Libre Caslon Display";color:var(--blue)}.big-score small{font-size:2rem;color:var(--muted)}.result-screen{text-align:center;padding:4rem}.result-screen .lead{max-width:720px;margin:1rem auto 2rem}.score-row{max-width:680px;margin:.8rem auto;display:grid;grid-template-columns:180px 1fr;text-align:left;font-size:10px;align-items:center}.score-row i{height:8px;background:#d8d0c4}.score-row b{display:block;height:100%;background:var(--blue)}
@media(max-width:720px){.quiz-layout{grid-template-columns:1fr}.quiz-layout figure{height:280px}.quiz-shell{padding:1rem;min-height:0}.result-screen{padding:2rem 1rem}.score-row{grid-template-columns:120px 1fr}}
@media print{.sidebar,.appbar,.brief,.page-head{display:none}.app-shell{display:block}.app-main{display:block;height:auto}.workspace{padding:0}.worksheet-grid{display:block}.sheet{border:0}}

/* Foto ditampilkan utuh: ruang kosong dipakai sebagai bingkai, bukan dipotong. */
.portrait img,.work-card img,.gallery-hero img,.quiz-layout figure img,.map-card figure img,.architect-mini img{object-fit:contain;background:#ded7cb}
.gallery-hero img,.map-card figure img{padding:.45rem}
.work-card img{padding:.25rem}
.portrait img{padding:.35rem}

.map-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:1rem;align-items:start}
.world-map{position:relative;width:100%;min-height:0;aspect-ratio:2/1;background:#d7d0c4;border:1px solid var(--line);overflow:hidden;cursor:grab;touch-action:none;user-select:none}
.world-map.is-dragging{cursor:grabbing}
.map-canvas{position:absolute;inset:0;aspect-ratio:2/1;transform:none}
.map-stage{position:absolute;inset:0;transform-origin:center;transition:transform .12s ease;will-change:transform}
.world-map.is-dragging .map-stage{transition:none}
.map-stage>img,.world-svg,.world-svg>svg{width:100%;height:100%;display:block}.map-stage>img{object-fit:contain;opacity:.76;pointer-events:none}.world-svg{opacity:.94}.world-svg .countries path{cursor:help}.world-svg .countries path:hover,.world-svg .countries path.country-hover{filter:brightness(1.16);stroke:var(--ink);stroke-width:1.8;vector-effect:non-scaling-stroke}.world-svg .north-america{fill:#8fa58e}.world-svg .latin-america{fill:#7fa9a3}.world-svg .west-europe{fill:#8995b6}.world-svg .east-europe{fill:#8a7dab}.world-svg .east-asia{fill:#b9767f}.world-svg .south-asia{fill:#c8a15f}.world-svg .south-east-asia{fill:#bd8065}.world-svg .central-asia{fill:#a88f64}.world-svg .west-asia{fill:#b68b6d}.world-svg .sub-saharan-africa{fill:#91a975}.world-svg .oceania{fill:#789aae}.world-svg .other-region{fill:#e8e3da}
.country-tooltip{position:absolute;z-index:15;transform:translate(-50%,calc(-100% - 12px));pointer-events:none;background:var(--ink);color:#fff;border:1px solid #fff;padding:.45rem .7rem;font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 5px 18px #17232166}.country-tooltip::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);border:7px solid transparent;border-top-color:var(--ink);border-bottom:0}.country-tooltip[hidden]{display:none}
.workspace{--page-photo:url('assets/bauhaus-dessau.jpeg');--photo-position:center 47%}.workspace.view-timeline{--page-photo:url('assets/eiffel.jpeg')}.workspace.view-movements{--page-photo:url('assets/red-house.jpg')}.workspace.view-people{--page-photo:url('assets/marcel-breuer.jpg')}.workspace.view-map{--page-photo:url('assets/bauhaus-dessau.jpeg')}.workspace.view-buildings{--page-photo:url('assets/villa-savoye.webp')}.workspace.view-compare{--page-photo:url('assets/barcelona-pavilion.png')}.workspace.view-simulator{--page-photo:url('assets/fallingwater.jpg')}.workspace.view-worksheet{--page-photo:url('assets/chandigarh.jpg')}.workspace.view-references{--page-photo:url('assets/crystal-palace.webp')}.workspace.view-videos{--page-photo:url('assets/twa-flight-center.jpg')}.workspace.view-admin{--page-photo:url('assets/neue-nationalgalerie.jpg')}
.workspace:not(.view-dashboard)>.page-head{position:relative;isolation:isolate;overflow:hidden;min-height:210px;padding:2rem 2.2rem;margin:-.35rem 0 1.25rem;border:0;color:#fff;align-items:flex-end;background:#172321}.workspace:not(.view-dashboard)>.page-head::before{content:"";position:absolute;z-index:-2;inset:0;background-image:linear-gradient(90deg,rgba(10,24,22,.95) 0%,rgba(10,24,22,.74) 48%,rgba(10,24,22,.22) 100%),var(--page-photo);background-size:cover;background-position:var(--photo-position)}.workspace:not(.view-dashboard)>.page-head::after{content:"";position:absolute;z-index:-1;right:-40px;top:-105px;width:250px;height:250px;border:38px solid rgba(233,184,50,.82);border-radius:50%}.workspace:not(.view-dashboard)>.page-head .eyebrow{color:var(--yellow)}.workspace:not(.view-dashboard)>.page-head p:last-child{color:#eef1ec;text-shadow:0 1px 8px #000;max-width:470px}.workspace:not(.view-dashboard)>.page-head h1{text-shadow:0 2px 18px #0009}
@media(max-width:720px){.workspace:not(.view-dashboard)>.page-head{min-height:190px;padding:1.4rem;align-items:flex-start;flex-direction:column;justify-content:flex-end}.workspace:not(.view-dashboard)>.page-head::before{background-position:60% center}.workspace:not(.view-dashboard)>.page-head::after{width:150px;height:150px;border-width:24px;right:-55px;top:-55px}}
.map-controls{position:absolute;z-index:8;top:1rem;left:1rem;display:grid;grid-template-columns:42px 42px 42px auto;align-items:center;gap:4px;padding:5px;background:#f5f0e8e8;border:1px solid var(--line);box-shadow:0 5px 18px #17232128;backdrop-filter:blur(8px)}
.map-controls button{width:42px;height:42px;border:1px solid var(--ink);background:var(--panel);color:var(--ink);font-size:22px;cursor:pointer}
.map-controls button:hover,.map-controls button:focus{background:var(--yellow)}
.map-controls span{min-width:54px;padding:0 .45rem;font-size:9px;font-weight:600;text-align:center}
.map-hint{position:absolute;z-index:7;left:1rem;bottom:1rem;margin:0;padding:.45rem .65rem;background:#172321dc;color:white;font-size:9px;pointer-events:none}
.map-pin{position:absolute;transform:translate(-50%,-50%) scale(var(--marker-scale,1));width:32px;height:32px;border-radius:50%;border:2px solid white;background:var(--region-color,var(--red));color:white;font-size:8px;font-weight:600;box-shadow:0 3px 12px #17232188;cursor:pointer;display:grid;place-items:center;transform-origin:center}
.map-pin:hover,.map-pin.active{z-index:3;background:var(--yellow);color:var(--ink);outline:3px solid #fff8;outline-offset:2px}
.map-pin.map-cluster{width:52px;height:52px;background:var(--region-color,var(--blue));grid-template-rows:auto auto;align-content:center;line-height:1;padding:3px}
.map-pin.map-cluster b{font-size:13px}.map-pin.map-cluster small{display:block;max-width:44px;overflow:hidden;text-overflow:ellipsis;font-size:5px;text-transform:uppercase;letter-spacing:.03em;margin-top:3px;white-space:nowrap}
.map-cluster-picker{position:absolute;z-index:12;left:1rem;right:1rem;bottom:3.2rem;max-height:45%;overflow:auto;background:var(--panel);border:1px solid var(--ink);border-top:5px solid var(--region-color,var(--ink));box-shadow:0 12px 40px #17232155;padding:.55rem}
.map-cluster-picker[hidden]{display:none}.map-cluster-picker>div{display:flex;align-items:center;justify-content:space-between;padding:.4rem .55rem;border-bottom:1px solid var(--line)}.map-cluster-picker>div>button{border:0;background:none;font-size:22px;cursor:pointer}.map-cluster-picker>button{display:grid;grid-template-columns:54px 1fr auto;gap:.6rem;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;padding:.55rem;cursor:pointer}.map-cluster-picker>button:hover{background:var(--yellow)}.map-cluster-picker>button span,.map-cluster-picker>button small{font-size:8px;color:var(--muted)}.map-cluster-picker>button b{font-size:10px}
.map-card{background:var(--panel);border:1px solid var(--line);padding:1rem;display:flex;flex-direction:column}
.map-card figure{position:relative;height:260px;margin:0 0 1rem;background:#ded7cb;overflow:hidden}
.map-card figure>img{width:100%;height:100%}
.map-card figure figcaption{position:absolute;left:.45rem;right:.45rem;bottom:.45rem;padding:.35rem .5rem;background:#172321d9;color:white;font-size:7px;letter-spacing:.04em}
.map-card h2{font:2.2rem/1 "Libre Caslon Display";margin:.2rem 0 .7rem}
.map-card p{font-size:11px;color:var(--muted)}
.architect-mini{display:grid;grid-template-columns:62px 1fr;gap:.8rem;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:.8rem 0;margin:auto 0 1rem}
.architect-mini img{width:62px;height:62px;border-radius:50%}
.architect-mini span,.architect-mini small{display:block;font-size:8px;color:var(--muted)}
.architect-mini strong{display:block;font:1.1rem "Libre Caslon Display"}
.map-actions{display:flex;gap:.5rem;flex-wrap:wrap}.map-actions a{text-decoration:none;color:var(--ink)}
@media(max-width:1050px){.map-layout{grid-template-columns:1fr}.world-map{min-height:480px}.map-card{display:grid;grid-template-columns:240px 1fr;column-gap:1rem}.map-card figure{grid-row:1/8;height:100%;min-height:300px}.map-actions{grid-column:2}}
@media(max-width:720px){.world-map{min-height:0;aspect-ratio:2/1}.map-canvas{inset:0}.map-pin{width:22px;height:22px;font-size:7px}.map-controls{top:.55rem;left:.55rem;grid-template-columns:36px 36px 36px auto}.map-controls button{width:36px;height:36px}.map-hint{left:.55rem;bottom:.55rem}.map-card{display:block}.map-card figure{height:260px}.portrait{height:360px}.gallery-hero{height:300px}.work-card img{height:160px}}
.exam-login{max-width:760px;margin:2rem auto;background:var(--panel);border:1px solid var(--line);padding:2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.exam-login>div:first-child{grid-column:1/3}.exam-login h2,.admin-settings h2,.report-table h2{font:2.3rem "Libre Caslon Display";margin:.3rem 0}.exam-login label,.admin-settings label{font-size:10px;text-transform:uppercase;letter-spacing:.1em}.exam-login input,.admin-settings input{display:block;width:100%;padding:.8rem;margin-top:.35rem;border:1px solid var(--line);background:white}.exam-rules{grid-column:1/3;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.exam-rules b{background:white;padding:1rem;text-align:center;font-size:11px}.exam-login .action{justify-self:start}.exam-timer{color:var(--red);font-size:15px}.report-actions{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.answer-review{text-align:left;margin-top:2rem;border-top:2px solid var(--ink)}.answer-review article{padding:1rem 0;border-bottom:1px solid var(--line)}.answer-review p{margin:.35rem 0;font-size:11px}.answer-review small{color:var(--muted)}.correct-text{color:#386746}.admin-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:1rem}.admin-settings,.admin-summary,.report-table{background:var(--panel);border:1px solid var(--line);padding:1.5rem}.admin-settings{display:grid;gap:1rem}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);align-items:center}.admin-summary div{text-align:center;border-right:1px solid var(--line)}.admin-summary div:last-child{border:0}.admin-summary span{display:block;font-size:9px;text-transform:uppercase;color:var(--muted)}.admin-summary b{font:3.5rem "Libre Caslon Display"}.report-table{margin-top:1rem}.table-head{display:flex;justify-content:space-between;align-items:end}.report-table table{width:100%;border-collapse:collapse;margin-top:1rem}.report-table th,.report-table td{text-align:left;padding:.8rem;border-bottom:1px solid var(--line);font-size:11px}.report-table th{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
@media(max-width:720px){.exam-login,.admin-grid{grid-template-columns:1fr}.exam-login>div:first-child,.exam-rules{grid-column:1}.exam-rules{grid-template-columns:1fr}.admin-summary{grid-template-columns:1fr}.admin-summary div{padding:1rem;border-right:0;border-bottom:1px solid var(--line)}.table-head{align-items:flex-start;gap:1rem;flex-direction:column}.report-table{overflow:auto}}
.export-menu{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.export-menu .action{min-width:68px}.export-menu button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:720px){.export-menu{justify-content:flex-start}}
.admin-tools{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem;margin:1rem 0}.admin-panel{background:var(--panel);border:1px solid var(--line);padding:1.5rem}.admin-panel h2{font:2rem "Libre Caslon Display";margin:.25rem 0 1rem}.live-panel{grid-column:1/3}.panel-head{display:flex;justify-content:space-between;align-items:start}.live-table{overflow:auto}.live-table table{width:100%;border-collapse:collapse}.live-table th,.live-table td{padding:.7rem;border-bottom:1px solid var(--line);text-align:left;font-size:10px}.live-table th{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.live-dot{display:inline-block;width:8px;height:8px;background:#3c9b64;border-radius:50%;margin-right:.5rem;box-shadow:0 0 0 3px #3c9b6422}.theme-form{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.theme-form label,.content-form label{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.theme-form input[type=color]{display:block;width:100%;height:44px;margin-top:.35rem;border:1px solid var(--line);background:white;padding:3px}.theme-form .action{grid-column:1/3}.content-form{display:grid;gap:.75rem}.content-form input,.content-form select{display:block;width:100%;padding:.7rem;margin-top:.3rem;border:1px solid var(--line);background:white}.managed-content{display:grid;gap:.35rem;margin-top:1rem}.managed-content>a{display:flex;justify-content:space-between;gap:1rem;padding:.65rem;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.managed-content small{color:var(--muted)}@media(max-width:850px){.admin-tools{grid-template-columns:1fr}.live-panel{grid-column:1}.panel-head{gap:.8rem;flex-direction:column}.theme-form{grid-template-columns:1fr}.theme-form .action{grid-column:1}}
.appearance-panel{grid-column:1/2}.font-size-picker{grid-column:1/3;border:1px solid var(--line);padding:.7rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem}.font-size-picker legend{padding:0 .35rem;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.theme-form .font-size-option{display:block;position:relative;cursor:pointer;text-transform:none;letter-spacing:0}.font-size-option input{position:absolute;opacity:0}.font-size-option span{display:flex;align-items:center;justify-content:space-between;gap:.4rem;min-height:48px;padding:.65rem;border:1px solid var(--line);background:white}.font-size-option input:checked+span{border-color:var(--red);box-shadow:inset 0 0 0 2px var(--red);background:#fff8e8}.font-size-option b{font-size:10px}.font-size-option small{font-size:8px;color:var(--muted)}.font-preview{grid-column:1/3;border-left:4px solid var(--yellow);background:#edf3f0;padding:.8rem 1rem;transition:font-size .18s ease}.font-preview span{display:block;font-size:.55em;letter-spacing:.12em;color:var(--muted)}.font-preview strong{display:block;font:1.35em "Libre Caslon Display"}.font-preview p{margin:.3rem 0 0;font-size:.72em;color:var(--muted)}#themeMessage{grid-column:1/3;color:var(--muted);line-height:1.5}@media(max-width:850px){.font-size-picker,.font-preview,#themeMessage{grid-column:1}.font-size-picker{grid-template-columns:1fr 1fr}}
.admin-settings select{display:block;width:100%;padding:.8rem;margin-top:.35rem;border:1px solid var(--line);background:white}.exam-topic{margin-top:1rem;padding:.8rem;border-left:4px solid var(--yellow);background:#e9e2d7}.exam-topic span{display:block;font-size:8px;color:var(--muted);letter-spacing:.12em}.exam-topic b{font:1.2rem "Libre Caslon Display"}
.exam-topic small{display:block;margin-top:.45rem;color:var(--muted)}.meeting-picker{border:1px solid var(--line);padding:.8rem;display:grid;gap:.45rem;max-height:520px;overflow:auto}.meeting-picker legend{padding:0 .35rem;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.meeting-picker label{margin:0;display:grid;grid-template-columns:22px 1fr;align-items:center;padding:.65rem;background:white;border:1px solid transparent;cursor:pointer}.meeting-picker label:has(input:checked){border-color:var(--red);background:#fff8e8}.meeting-picker input{width:16px;height:16px;margin:0;accent-color:var(--red)}.meeting-picker span,.meeting-picker small,.meeting-picker em{display:block}.meeting-picker b{font-size:11px}.meeting-picker small{margin-top:.15rem;color:var(--muted);font-size:9px}.meeting-picker em{margin-top:.28rem;color:var(--red);font-size:8px;font-style:normal;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.form-error{color:var(--red);font-weight:600}
.essay-answer{display:grid;gap:.8rem}.essay-answer label{font-size:9px;text-transform:uppercase;letter-spacing:.1em}.essay-answer textarea{width:100%;padding:1rem;border:1px solid var(--line);background:white;resize:vertical;font:1rem/1.55 "DM Sans",sans-serif;min-height:210px}.essay-answer .action{justify-self:start}
.clickable-card{cursor:pointer;transition:transform .15s,box-shadow .15s}.clickable-card:hover,.clickable-card:focus{transform:translateY(-3px);box-shadow:0 8px 22px #17232124;outline:2px solid var(--red)}.entity-link{color:var(--blue);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px;cursor:pointer}.building-source{display:inline-block;margin-top:1rem;text-decoration:none;color:var(--ink)}
.section-title{font:2rem "Libre Caslon Display";margin:1.4rem 0 .8rem}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.video-card{background:var(--panel);border:1px solid var(--line);color:var(--ink);text-decoration:none;overflow:hidden;display:flex;flex-direction:column}.video-card:hover{border-color:var(--red)}.video-card img,.video-card video{width:100%;height:190px;object-fit:contain;background:#171f1d}.video-card div{padding:1rem}.video-card span{font-size:8px;color:var(--red);letter-spacing:.13em}.video-card h3{font:1.35rem "Libre Caslon Display";margin:.35rem 0}.video-card p{font-size:10px;color:var(--muted)}.video-card b{font-size:9px}.video-section-head{display:flex;align-items:end;justify-content:space-between;margin-top:2rem}.video-section-head p{font-size:11px;color:var(--muted)}.server-badge{padding:.45rem .7rem;background:var(--yellow);font-size:9px}.server-badge.offline{background:#d8d0c4}.local-video video{cursor:pointer}
@media(max-width:1050px){.video-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.video-grid{grid-template-columns:1fr}.video-card img,.video-card video{height:230px}.video-section-head{align-items:flex-start;flex-direction:column;gap:.5rem}}
.movement-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:1.5rem 0}.movement-detail-grid section{border-top:2px solid var(--ink);padding-top:.7rem}.movement-detail-grid h3{font:1.35rem "Libre Caslon Display";margin:.5rem 0}.movement-detail-grid p,.movement-detail-grid li{font-size:12px;line-height:1.6}.movement-source{display:inline-block;color:var(--ink);text-decoration:none;margin-top:.5rem}@media(max-width:720px){.movement-detail-grid{grid-template-columns:1fr;gap:.5rem}.search-panel,#detailContent{padding:2rem 1.3rem}}
.building-catalog-pane{display:flex;flex-direction:column;overflow:hidden}.catalog-tools{position:sticky;top:0;z-index:2;background:#e8e0d3;padding:1rem;border-bottom:1px solid var(--line);display:grid;gap:.5rem}.catalog-tools label{font-size:8px;letter-spacing:.14em;font-weight:700}.catalog-tools input,.catalog-tools select{width:100%;border:1px solid var(--line);background:white;padding:.65rem}.catalog-tools small{color:var(--muted);font-size:9px}.building-catalog-pane #buildingList{overflow:auto;min-height:0}.catalog-empty{padding:2rem 1rem;color:var(--muted);font-size:11px;line-height:1.5}
.era-description{display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;margin:1.6rem 0}.era-description section,.era-description aside{border-top:2px solid var(--ink);padding-top:.75rem}.era-description h3{font:1.35rem "Libre Caslon Display";margin:.25rem 0 .65rem}.era-description p,.era-description li{font-size:12px;line-height:1.65}.era-description ul{padding-left:1.15rem}.era-source{display:inline-block;text-decoration:none;color:var(--ink);margin-top:.25rem}@media(max-width:720px){.era-description{grid-template-columns:1fr;gap:.6rem}.timeline-sheet .year{font-size:3.5rem}}
.quiz-control{border:1px solid var(--line);background:#fff;padding:1.25rem 1.5rem;margin-bottom:1rem;display:grid;grid-template-columns:1fr auto;gap:1rem 2rem;align-items:center}.quiz-control h2{font:2rem "Libre Caslon Display";margin:.15rem 0}.quiz-control h2 .live-dot{display:inline-block;margin-right:.6rem;background:#777}.quiz-control.open h2 .live-dot{background:#2e9b61;box-shadow:0 0 0 5px #dff4e8}.quiz-control.ended h2 .live-dot{background:var(--red)}.quiz-control p{margin:.25rem 0;color:var(--muted)}.quiz-control-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.quiz-control ol{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:.25rem 0 0;padding:0;list-style:none}.quiz-control li{border-top:1px solid var(--line);padding-top:.65rem;font-size:11px;line-height:1.5}.quiz-access{display:flex;align-items:center;gap:.55rem;margin:1rem 0;padding:.75rem;border:1px solid var(--line);font-size:12px}.quiz-access span{width:9px;height:9px;border-radius:50%;background:#777}.quiz-access.is-open{background:#edf8f1;border-color:#9bc8aa}.quiz-access.is-open span{background:#2e9b61}.quiz-access.is-closed{background:#f3efea}.quiz-access.is-closed span{background:var(--red)}
@media(max-width:720px){.quiz-control{grid-template-columns:1fr}.quiz-control-actions{justify-content:flex-start}.quiz-control ol{grid-template-columns:1fr}}
.quiz-archive{border:1px solid var(--line);background:#faf7f1;padding:1.5rem;margin:1rem 0}.quiz-archive .table-head p{margin:.25rem 0}.archive-list{display:grid;gap:.75rem;margin-top:1rem}.archive-card{display:grid;grid-template-columns:1.2fr .7fr auto;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);padding:1rem}.archive-card h3{font:1.3rem "Libre Caslon Display";margin:.2rem 0}.archive-card time,.archive-card p{font-size:10px;color:var(--muted);line-height:1.45}.archive-card dl{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin:0}.archive-card dl div{border-left:1px solid var(--line);padding-left:.6rem}.archive-card dt{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.archive-card dd{font:1.35rem "Libre Caslon Display";margin:.15rem 0}.archive-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.archive-actions .action{padding:.55rem .65rem;font-size:9px}.archive-detail{background:#fff;border:1px solid var(--ink);padding:1rem;margin-top:1rem;overflow:auto}.archive-detail table{min-width:650px;width:100%;border-collapse:collapse}.archive-detail th,.archive-detail td{padding:.65rem;border-bottom:1px solid var(--line);text-align:left;font-size:10px}.host-storage-note{margin:1rem 0 0;padding:.8rem;background:#edf3f0;font-size:10px;line-height:1.5}.host-storage-note code{font-size:9px}.report-table time{white-space:nowrap;font-size:9px;color:var(--muted)}
@media(max-width:900px){.archive-card{grid-template-columns:1fr}.archive-actions{justify-content:flex-start}.archive-card dl{max-width:360px}}@media(max-width:520px){.quiz-archive{padding:1rem}.archive-card dl{grid-template-columns:1fr 1fr 1fr}.archive-card{padding:.8rem}}
.registered-card{max-width:760px;margin:1rem auto;background:#fff;border:1px solid var(--line);padding:2rem}.registered-card h2{font:2.5rem "Libre Caslon Display";margin:.25rem 0}.registered-card .action{margin-top:1rem}.late-note{border-left:4px solid var(--yellow);padding:.75rem 1rem;background:#fff8e8;font-size:11px;line-height:1.55}.session-locked{display:inline-flex;align-items:center;padding:.65rem .9rem;background:#f0ece5;color:var(--muted);font-size:10px;font-weight:600}
.essay-limit{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:-.25rem;padding:.55rem .7rem;background:#edf3f0;color:var(--muted);font-size:9px}.essay-limit b{color:var(--ink);font-size:10px}.essay-limit.over-limit{background:#f7ded8;color:var(--red)}.essay-limit.over-limit b{color:var(--red)}.essay-answer textarea:invalid{border-color:var(--red)}
@media(max-width:520px){.essay-limit{align-items:flex-start;flex-direction:column;gap:.2rem}}
.access-panel{grid-column:1/3}.access-panel>p{font-size:11px;line-height:1.55;color:var(--muted)}.access-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:1rem}.access-links>div{display:grid;grid-template-columns:1fr auto;gap:.35rem;padding:.8rem;background:#edf3f0;border:1px solid var(--line)}.access-links span{grid-column:1/3;font-size:8px;letter-spacing:.1em;color:var(--muted)}.access-links a{overflow-wrap:anywhere;color:var(--blue);font-size:11px}.access-links button{border:1px solid var(--ink);background:white;padding:.35rem .55rem;cursor:pointer}.ppt-panel{grid-column:1/3}.ppt-panel>p{font-size:11px;line-height:1.55}.append-only-note{border-left:4px solid var(--yellow);background:#fff8e8;padding:.75rem}.ppt-import-form{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.ppt-import-form label{font-size:9px;text-transform:uppercase;letter-spacing:.08em}.ppt-import-form input,.ppt-import-form select{display:block;width:100%;padding:.7rem;margin-top:.3rem;border:1px solid var(--line);background:white}.ppt-import-form .action,.ppt-import-form small{grid-column:1/3}.generated-material-list{display:grid;gap:.35rem;margin-top:1rem}.generated-material-list button{display:flex;justify-content:space-between;gap:1rem;text-align:left;padding:.7rem;border:1px solid var(--line);background:white;cursor:pointer}.generated-material-list button:hover{border-color:var(--red)}.generated-material-list small{color:var(--muted)}.material-intro{margin-top:-.4rem;color:var(--muted);font-size:11px}.generated-material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.generated-material-card{text-align:left;padding:1rem;border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--ink)}.generated-material-card:hover{border-color:var(--red);transform:translateY(-2px)}.generated-material-card span{font-size:8px;color:var(--red);letter-spacing:.08em}.generated-material-card h2{font:1.45rem "Libre Caslon Display";margin:.55rem 0}.generated-material-card p,.generated-material-card b{font-size:9px}.generated-slide-list{display:grid;gap:.7rem;margin:1.5rem 0}.generated-slide-list article{border-top:1px solid var(--line);padding-top:.7rem}.generated-slide-list span{font-size:8px;color:var(--red);letter-spacing:.1em}.generated-slide-list h3{font:1.3rem "Libre Caslon Display";margin:.25rem 0}.generated-slide-list p{font-size:11px;line-height:1.55}
@media(max-width:850px){.access-panel,.ppt-panel{grid-column:1}.access-links,.generated-material-grid{grid-template-columns:1fr}.ppt-import-form{grid-template-columns:1fr}.ppt-import-form .action,.ppt-import-form small{grid-column:1}.generated-material-list button{flex-direction:column}}
.list-pane button.active{background:var(--ink);color:white}
.list-pane button:not(.active):hover{background:rgba(233,184,50,.18);color:var(--ink)}
.list-pane button:not(.active):hover small{color:#53605c}
.list-pane button:focus-visible{outline:2px solid var(--red);outline-offset:-3px}
.compare-guide{display:flex;gap:.75rem;align-items:center;margin:0 0 1rem;padding:.75rem 1rem;border-left:4px solid var(--yellow);background:#edf3f0;font-size:10px;line-height:1.5}.compare-guide b{white-space:nowrap}.compare-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem}.compare-picker label{display:grid;gap:.35rem;font-size:8px;letter-spacing:.12em;color:var(--muted)}.compare-search{position:relative}.compare-search input{width:100%;padding:.8rem;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:11px Arial,sans-serif;letter-spacing:0}.compare-search input:focus{outline:2px solid var(--yellow);border-color:var(--ink)}.compare-suggestions{position:absolute;z-index:20;top:100%;left:0;right:0;max-height:none;background:#fff;border:1px solid var(--ink);box-shadow:0 12px 28px #1723212b}.compare-suggestions[hidden]{display:none}.compare-suggestions button{display:grid;width:100%;gap:.15rem;padding:.65rem .75rem;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}.compare-suggestions button:hover,.compare-suggestions button:focus{background:#fff3cf}.compare-suggestions b{font-size:10px}.compare-suggestions small{font-size:8px;color:var(--muted)}.compare-suggestions p{margin:0;padding:.8rem;font-size:9px;letter-spacing:0}.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.compare-card{background:var(--panel);border:1px solid var(--line);min-width:0}.compare-card figure{height:230px;margin:0;position:relative;background:#d6cec2;overflow:hidden}.compare-card figure img{width:100%;height:100%;object-fit:contain}.compare-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:.6rem;background:#172321d9;color:white;font-size:9px}.compare-card>div{padding:1.2rem}.compare-card h2{font:2rem/1 "Libre Caslon Display";margin:.35rem 0 1rem}.compare-card dl{margin:0 0 1rem}.compare-card dl div{display:grid;grid-template-columns:70px 1fr;gap:.5rem;padding:.5rem 0;border-top:1px solid var(--line)}.compare-card dt{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.compare-card dd{margin:0;font-size:10px}.compare-card p:not(.eyebrow){font-size:11px;line-height:1.65;min-height:7.5em}.compare-card .action{display:inline-block;text-decoration:none;color:var(--ink);margin-top:.5rem}@media(max-width:980px){.compare-grid{grid-template-columns:1fr}.compare-picker{grid-template-columns:1fr}.compare-card{display:grid;grid-template-columns:minmax(260px,.75fr) 1fr}.compare-card figure{height:100%}}@media(max-width:620px){.compare-guide{align-items:flex-start;flex-direction:column}.compare-card{display:block}.compare-card figure{height:230px}}

/* Media soal selalu menjelaskan hubungan gambar dengan pertanyaan. */
.question-media{position:relative;overflow:hidden;border:1px solid var(--line)}
.question-media figcaption{position:absolute;left:0;right:0;bottom:0;padding:.65rem .8rem;background:linear-gradient(transparent,#101816e8);color:white;font-size:9px;line-height:1.4;letter-spacing:.02em}
.quiz-preview-gallery{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:1px;max-width:1050px;margin:0 auto 1rem;background:var(--line);border:1px solid var(--line)}
.quiz-preview-gallery>div{padding:1.35rem;background:var(--ink);color:white}.quiz-preview-gallery h2{font:2rem/1.05 "Libre Caslon Display";margin:.35rem 0}.quiz-preview-gallery>div>p:last-child{font-size:10px;line-height:1.55;color:#c6d0cd}
.quiz-preview-gallery figure{position:relative;min-height:210px;margin:0;overflow:hidden;background:#d6cec2}.quiz-preview-gallery img{width:100%;height:100%;object-fit:cover}.quiz-preview-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:.8rem;background:linear-gradient(transparent,#101816ed);color:white;font-size:8px;line-height:1.35}
.quiz-lock-banner{display:flex;align-items:center;gap:1rem;max-width:1050px;margin:0 auto 1rem;padding:.75rem 1rem;border-left:5px solid var(--yellow);background:var(--ink);color:white}.quiz-lock-banner b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--yellow)}.quiz-lock-banner span{font-size:10px;color:#dbe2df}.quiz-in-progress [data-view]:not([data-view="worksheet"]){opacity:.28;cursor:not-allowed}.quiz-in-progress #globalSearch{opacity:.35;cursor:not-allowed}
.quiz-layout.is-concept{grid-template-columns:minmax(0,1fr);max-width:850px;margin-left:auto;margin-right:auto}
.question-concept{min-height:430px;display:flex;flex-direction:column;justify-content:center;padding:2.5rem;background:var(--ink);color:white;border:1px solid #35423f}
.question-concept span{font-size:9px;letter-spacing:.2em;color:var(--yellow)}
.question-concept strong{display:block;margin:1.1rem 0;font:clamp(2.2rem,4vw,4.2rem)/.96 "Libre Caslon Display"}
.question-concept small{max-width:32rem;color:#c4cfcb;font-size:11px;line-height:1.65}
.session-duration{display:inline-block;margin-top:.65rem!important;padding:.5rem .7rem;background:#edf3f0;color:var(--ink)!important;border-left:4px solid var(--yellow);font-size:10px}
@media(max-width:900px){.quiz-preview-gallery{grid-template-columns:1fr 1fr}.quiz-preview-gallery>div{grid-column:1/3}.quiz-preview-gallery figure:last-child{display:none}}
@media(max-width:720px){.question-concept{min-height:250px;padding:1.5rem}.question-media figcaption{font-size:8px}.quiz-preview-gallery{grid-template-columns:1fr 1fr}.quiz-preview-gallery>div{grid-column:1/3}.quiz-preview-gallery figure{min-height:160px}.quiz-preview-gallery figure:last-child{display:none}.quiz-lock-banner{align-items:flex-start;flex-direction:column;gap:.25rem}}

/* Keep the central worksheet independently scrollable, including when the
   application-level font zoom is larger than 100%. */
.app-main{min-height:0;overflow:hidden;grid-template-rows:64px minmax(0,1fr)}
.app-main main{height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* Login dosen/admin untuk instalasi server prodi. */
.admin-auth-shell{min-height:560px;display:grid;grid-template-columns:.85fr 1.15fr;background:var(--panel);border:1px solid var(--line);overflow:hidden}
.admin-auth-brand{position:relative;padding:3rem;background:var(--ink);color:white;overflow:hidden}
.admin-auth-brand>span{display:grid;place-items:center;width:76px;height:76px;margin-bottom:3rem;background:var(--red);color:white;font:2rem "Libre Caslon Display"}
.admin-auth-brand::after{content:"";position:absolute;width:260px;height:260px;border:46px solid var(--yellow);border-radius:50%;right:-150px;bottom:-130px}
.admin-auth-brand h2{font:2.7rem/1.05 "Libre Caslon Display";max-width:360px;margin:.6rem 0 2rem}
.admin-auth-brand ul{position:relative;z-index:1;padding:0;list-style:none;color:#cad4d0;font-size:11px;line-height:2}
.admin-auth-brand li{border-top:1px solid #42504c;padding:.45rem 0}
.admin-auth-form,.admin-auth-status{align-self:center;width:min(470px,calc(100% - 4rem));margin:2rem auto;padding:2.2rem;background:white;border-top:5px solid var(--yellow);box-shadow:0 14px 44px #17232114}
.admin-auth-form h2,.admin-auth-status h2{font:2.25rem/1.05 "Libre Caslon Display";margin:.4rem 0 1rem}
.admin-auth-form>p:not(.eyebrow),.admin-auth-status>p:not(.eyebrow){color:var(--muted);font-size:11px;line-height:1.6}
.admin-auth-form label{display:block;margin:1rem 0;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.admin-auth-form input{display:block;width:100%;margin-top:.4rem;padding:.85rem;border:1px solid var(--line);background:#fff}
.admin-auth-form .action{width:100%;margin:.5rem 0 .8rem}
.admin-auth-form small{display:block;color:var(--muted);font-size:9px;line-height:1.5}
.admin-auth-status .action{display:inline-block;margin-top:1rem;text-decoration:none}
.auth-spinner{display:block;width:34px;height:34px;border:4px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:auth-spin .8s linear infinite}
@keyframes auth-spin{to{transform:rotate(360deg)}}
.admin-identity{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;margin-top:.8rem;font-size:10px;color:var(--muted)}
.admin-identity .action{padding:.45rem .7rem;color:var(--ink)}
@media(max-width:850px){.admin-auth-shell{grid-template-columns:1fr}.admin-auth-brand{padding:2rem}.admin-auth-brand>span{margin-bottom:1.2rem}.admin-auth-brand h2{font-size:2rem;margin-bottom:1rem}.admin-auth-form,.admin-auth-status{width:calc(100% - 2rem);padding:1.4rem}}

/* Identitas pengembang dibuat tenang agar tidak bersaing dengan navigasi. */
.sidebar-foot{gap:.12rem;padding:.7rem .6rem}
.sidebar-foot span{font-size:6.5px;letter-spacing:.15em}
.sidebar-foot strong{font:600 6.5px/1.35 "DM Sans",sans-serif;letter-spacing:.04em}
.sidebar-foot small{font-size:7px;line-height:1.35}

/* Panel tema menjelaskan sasaran warna dan menampilkan hasil sebelum disimpan. */
.theme-help{margin:-.45rem 0 1rem;color:var(--muted);font-size:10px;line-height:1.5}
.theme-form label>span{display:block;font-weight:600}
.theme-form label>small{display:block;min-height:2.5em;margin:.25rem 0;color:var(--muted);font-size:8px;line-height:1.35;letter-spacing:0;text-transform:none}
.font-preview{background:var(--preview-paper,var(--paper));border-left-color:var(--preview-yellow,var(--yellow));color:var(--preview-ink,var(--ink))}
.font-preview span{color:var(--preview-red,var(--red))}
.font-preview p{color:var(--preview-ink,var(--ink));opacity:.72}
.font-preview button{margin-top:.55rem;border:0;background:var(--preview-ink,var(--ink));color:white;padding:.45rem .7rem;font-size:.65em}

/* Navigasi jawaban: pilihan tetap terlihat dan dapat dikoreksi sebelum kirim. */
.quiz-answers button.selected,.visual-options button.selected{border-color:var(--red);box-shadow:inset 0 0 0 2px var(--red);background:#fff8e8}
.quiz-answers button.selected span,.visual-options button.selected span{background:var(--red);color:white}
.quiz-nav{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:1rem}
.quiz-nav:has(>button:only-child){justify-content:flex-start}
.quiz-nav .action:disabled{cursor:not-allowed;opacity:.4}
.answer-status{margin:.8rem 0 0;color:var(--muted);font-size:10px;line-height:1.5}
@media(max-width:560px){.quiz-nav{align-items:stretch;flex-direction:column-reverse}.quiz-nav .action{width:100%}}

/* Ukuran baca normal untuk navigasi utama di sisi kiri. */
@media(min-width:1051px){
  :root{--sidebar:236px}
  .brand>span:last-child{font-size:14px}
  .brand small{font-size:8px;opacity:.65}
  .sidebar nav button{grid-template-columns:38px 1fr;padding:.72rem .7rem}
  .sidebar nav button span{font-size:11px;color:#899792}
  .sidebar nav button b{font-size:14px;line-height:1.25}
  .sidebar .nav-label{font-size:9px;color:#78847f}
}
@media(max-width:720px){
  .sidebar{height:72px}
  .sidebar nav{overflow-x:auto}
  .sidebar nav button{min-width:72px}
  .sidebar nav button b{font-size:9px;line-height:1.15}
}

/* Kawasan sejarah-budaya pada peta dunia. */
.region-legend{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;margin:-.6rem 0 1rem;padding:.65rem .75rem;border:1px solid var(--line);background:var(--panel)}
.region-legend>b{font-size:8px;letter-spacing:.13em;color:var(--muted)}
.region-legend>div{display:flex;gap:.45rem;overflow-x:auto;padding:.15rem 0;scrollbar-width:thin}
.region-key{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;padding:.28rem .45rem;border:1px solid transparent;border-radius:999px;font-size:8px;color:var(--muted);white-space:nowrap}
.region-key i,.active-region i{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:var(--region-color);box-shadow:0 0 0 2px #fff,0 0 0 3px var(--region-color)}
.region-key.active{border-color:var(--region-color);color:var(--ink);font-weight:600;background:white}
.active-region{display:inline-flex;align-items:center;gap:.5rem;margin:-.35rem 0 .55rem;padding:.32rem .55rem;background:#fff;border:1px solid var(--line);font-size:9px;font-weight:600}
.active-region small{padding-left:.5rem;border-left:1px solid var(--line);color:var(--muted);font-size:8px;font-weight:500}
@media(max-width:720px){.region-legend{grid-template-columns:1fr}.region-legend>div{margin-right:-.75rem}.map-pin.map-cluster{width:38px;height:38px}.map-pin.map-cluster small{max-width:32px;font-size:4px}}

/* Semua kendali di atas foto memakai kontras tinggi agar tetap terbaca. */
.workspace:not(.view-dashboard)>.page-head .toolbar .chip{
  border-color:rgba(255,255,255,.82);
  background:rgba(10,24,22,.58);
  color:#fff;
  text-shadow:0 1px 5px #000;
  backdrop-filter:blur(3px);
}
.workspace:not(.view-dashboard)>.page-head .toolbar .chip:hover,
.workspace:not(.view-dashboard)>.page-head .toolbar .chip:focus-visible{
  background:#fff;
  border-color:#fff;
  color:var(--ink);
  text-shadow:none;
}
.workspace:not(.view-dashboard)>.page-head .toolbar .chip.active{
  background:var(--red);
  border-color:#fff;
  color:#fff;
  text-shadow:0 1px 4px #0008;
}

/* Studio simulasi bangunan: model konseptual, kendali, dan evaluasi langsung. */
.sim-mode-switch{display:flex;gap:.45rem;margin:-.45rem 0 1rem;padding:.35rem;background:#ded8cd;border:1px solid var(--line);width:max-content;max-width:100%}.sim-mode-switch button{border:0;background:transparent;color:var(--ink);padding:.65rem 1rem;font:600 10px "DM Sans",sans-serif;cursor:pointer}.sim-mode-switch button.active{background:var(--ink);color:#fff}.building-sim{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.75fr);gap:1rem;align-items:start}.building-preview,.building-controls{border:1px solid var(--line);background:var(--panel)}.building-preview{padding:1.25rem;position:sticky;top:1rem}.sim-preview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.sim-preview-head h2{font:2rem/1.05 "Libre Caslon Display";margin:.25rem 0 1rem}.sim-model{overflow:hidden;border:1px solid #a7aaa3;background:#bfd8df}.sim-model svg{display:block;width:100%;height:auto}.sim-model .body{fill:var(--sim-body);stroke:var(--sim-dark);stroke-width:3}.sim-model .floor-lines line{stroke:var(--sim-dark);stroke-width:1;opacity:.75}.sim-model .windows rect{fill:#bad3d8;stroke:var(--sim-dark);stroke-width:1}.sim-model .windows.solid rect{fill:#243a3a}.sim-model .windows.curtain rect{fill:#78adbd;opacity:.9}.sim-model .brise{stroke:#e6d9bf;stroke-width:5;opacity:.9}.sim-model .screen{fill:url(#simScreen);stroke:var(--sim-dark);stroke-width:2;opacity:.9}.sim-model .roof{fill:var(--sim-dark)}.sim-model .roof-line{fill:none;stroke:var(--sim-dark);stroke-width:9;stroke-linejoin:round}.sim-model .green-roof{fill:#6b934e;stroke:#304d32;stroke-width:2}.sim-model text{font:600 12px "DM Sans",sans-serif;fill:#fff;letter-spacing:.04em}.sim-score-summary{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;margin-top:1rem;padding:1rem;background:var(--ink);color:white}.sim-score-summary>strong{font:3rem/1 "Libre Caslon Display";color:var(--yellow)}.sim-score-summary>strong small{font:1rem "DM Sans",sans-serif}.sim-score-summary span{font-size:9px;letter-spacing:.12em;text-transform:uppercase}.sim-score-summary p{margin:.3rem 0 0;color:#cdd7d3;font-size:10px;line-height:1.5}.sim-metrics{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}.sim-metrics>div{padding:.75rem;border:1px solid var(--line)}.sim-metrics span{display:flex;justify-content:space-between;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.sim-metrics b{color:var(--red)}.sim-metrics i{display:block;height:5px;margin-top:.55rem;background:#ddd6ca}.sim-metrics em{display:block;height:100%;background:var(--red)}.sim-advice{padding:1rem;border-left:5px solid var(--yellow);background:#edf3f0;font-size:10px;line-height:1.55}.sim-advice ul{margin:.5rem 0 0;padding-left:1.15rem}.sim-disclaimer{margin:.8rem 0 0;color:var(--muted);font-size:8px;line-height:1.45}.building-controls{padding:1rem}.sim-brief{margin:-1rem -1rem 1rem;padding:1rem;background:var(--ink);color:white}.sim-brief h3{margin:.25rem 0 0;font:1.4rem "Libre Caslon Display"}.sim-choice-group{margin:0 0 .9rem;padding:0;border:0}.sim-choice-group legend{width:100%;margin-bottom:.4rem;font:600 9px "DM Sans",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.sim-choice-group>div{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.sim-choice-group button{min-height:36px;padding:.5rem;border:1px solid var(--line);background:#fff;color:var(--ink);font:500 9px/1.25 "DM Sans",sans-serif;cursor:pointer}.sim-choice-group button:hover{border-color:var(--red)}.sim-choice-group button.selected{border-color:var(--red);background:#fff4d8;box-shadow:inset 4px 0 0 var(--red);font-weight:700}.sim-floor-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.45rem}.sim-floor-control legend{grid-column:1/3}.sim-floor-control input{width:100%;accent-color:var(--red)}.sim-floor-control output{min-width:62px;font-size:9px;font-weight:700;text-align:right}.building-controls>#resetBuildingSim{width:100%}
@media(max-width:980px){.building-sim{grid-template-columns:1fr}.building-preview{position:static}.building-controls{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.sim-brief,.building-controls>#resetBuildingSim{grid-column:1/3;margin:0}.sim-choice-group{margin:0}}
@media(max-width:620px){.sim-mode-switch{width:100%}.sim-mode-switch button{flex:1}.sim-preview-head{align-items:stretch;flex-direction:column}.sim-preview-head .action{width:100%}.sim-metrics,.building-controls{grid-template-columns:1fr}.sim-brief,.building-controls>#resetBuildingSim{grid-column:1}.sim-choice-group>div{grid-template-columns:1fr 1fr}}

/* Visualisasi 3D parametrik berbasis Three.js; SVG tetap menjadi cadangan WebGL. */
.sim-model-3d{position:relative;min-height:360px;background:#bdd6da;touch-action:none}.sim-model-3d canvas{display:block;width:100%;min-height:360px;cursor:grab}.sim-model-3d canvas.is-dragging{cursor:grabbing}.sim-model-fallback{position:absolute;inset:0}.sim-model-fallback[hidden]{display:none}.sim-3d-hint{position:absolute;right:.65rem;bottom:.65rem;padding:.4rem .55rem;background:#172321d9;color:#fff;font-size:8px;letter-spacing:.04em;pointer-events:none}.style-dna{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;margin-top:1rem;padding:1rem;border-left:6px solid var(--style-accent);background:#f1ede5}.style-dna h3{margin:.25rem 0;font:1.55rem "Libre Caslon Display"}.style-dna p:not(.eyebrow){margin:.35rem 0 0;font-size:10px;line-height:1.55;color:var(--muted)}.style-dna ul{margin:0;padding:.1rem 0 0 1.1rem;font-size:9px;line-height:1.7}.sim-style-choices{padding:.7rem;border:1px solid var(--line);background:#f1ede5}.sim-style-choices legend{padding:0 .35rem;color:var(--ink)}.sim-style-choices button{min-height:42px}.sim-style-choices button.selected{background:var(--ink);color:#fff;box-shadow:inset 5px 0 0 var(--yellow)}.sim-metrics{grid-template-columns:repeat(5,1fr)}
@media(max-width:1100px){.sim-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.style-dna{grid-template-columns:1fr}.sim-metrics{grid-template-columns:1fr 1fr}.sim-model-3d,.sim-model-3d canvas{min-height:290px}}

/* Model studi memakai bahasa sketsa arsitektur: kertas, garis kerja, dan material nyata. */
.sim-model-3d{background:#f3f0e8;border-color:#8f948f;box-shadow:inset 0 0 0 7px #e5e0d5}
.sim-model-3d:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.2),transparent 42%),repeating-linear-gradient(0deg,rgba(34,48,47,.018) 0,rgba(34,48,47,.018) 1px,transparent 1px,transparent 5px);mix-blend-mode:multiply}
.sim-material-tag{position:absolute;left:.65rem;top:.65rem;z-index:2;display:grid;gap:.12rem;min-width:116px;padding:.48rem .62rem;border:1px solid #273533;background:#f6f2e9e8;color:#273533;box-shadow:3px 3px 0 #27353330;pointer-events:none}
.sim-material-tag small{font:600 7px/1.2 "DM Sans",sans-serif;letter-spacing:.14em;color:#6b736f}
.sim-material-tag strong{font:600 10px/1.2 "DM Sans",sans-serif}
.sim-3d-hint{z-index:2;border:1px solid #f3f0e8aa;background:#273533e8}
.language-toggle{min-width:44px;height:34px;padding:0 10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:10px;font-weight:800;letter-spacing:.08em;cursor:pointer}.language-toggle:hover,.language-toggle:focus-visible{background:var(--yellow);border-color:var(--ink);outline:none}

/* Pertahankan nama menu pada tablet dan HP mendatar. Sebelumnya rentang ini
   hanya menampilkan angka karena sidebar dipersempit menjadi 78px. */
@media (min-width:721px) and (max-width:1050px){
  :root{--sidebar:190px}
  .brand{justify-content:flex-start;margin-bottom:1.2rem}
  .brand>span:last-child{display:block;font-size:12px}
  .brand small{font-size:7px}
  .sidebar nav button{grid-template-columns:32px minmax(0,1fr);padding:.62rem .55rem;text-align:left}
  .sidebar nav button b{display:block;font-size:11px;line-height:1.2;white-space:normal}
  .sidebar nav button span{font-size:9px}
  .nav-label{display:block;text-align:left;margin:.65rem .55rem .25rem}
}

/* Navigasi HP tetap lengkap: nama dan nomor ditampilkan, lalu dapat digeser
   mendatar seperti deretan tab. */
@media (max-width:720px){
  .sidebar{height:82px;padding:.25rem .2rem env(safe-area-inset-bottom,.2rem)}
  .sidebar nav{display:flex;flex-direction:row;align-items:stretch;width:100%;overflow-x:auto;overflow-y:hidden;gap:2px;scroll-snap-type:x proximity;scrollbar-width:thin}
  .sidebar nav button{display:grid;grid-template-columns:1fr;grid-template-rows:18px auto;place-items:center;align-content:center;min-width:86px;padding:.3rem .35rem;scroll-snap-align:start;text-align:center}
  .sidebar nav button span{font-size:9px;line-height:1}
  .sidebar nav button b{display:block!important;font-size:10px;line-height:1.15;white-space:normal}
  .app-main{padding-bottom:82px}
}

/* Esai open book: materi dapat ditelusuri, tetapi jawaban wajib diketik. */
.quiz-lock-banner.open-book{border-left-color:#4c8d67;background:#17352b}.quiz-lock-banner.open-book b{color:#a9dfbc}
.essay-typing-notice{margin:.5rem 0;padding:.65rem .75rem;border-left:4px solid #4c8d67;background:#e8f3ec;color:#294638;font-size:9px;line-height:1.45}.essay-typing-notice.blocked{border-left-color:var(--red);background:#fff0ec;color:#8a281d}
.open-book-return{position:sticky;z-index:18;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;padding:.7rem 1.2rem;border-bottom:4px solid var(--yellow);background:#17352b;color:#fff;box-shadow:0 5px 16px #17232130}.open-book-return div{display:grid;gap:.15rem}.open-book-return b{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#a9dfbc}.open-book-return span{font-size:9px;color:#dbe8df}.open-book-return .action{flex:0 0 auto}

/* Panel dosen untuk menilai esai dengan skala ketepatan tetap. */
.essay-review-form{display:grid;gap:1rem;margin-top:1rem;padding:1rem;border:1px solid var(--line);background:#f5f1e9}.essay-review-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.essay-review-summary h3{margin:.15rem 0;font:1.7rem/1.1 "Libre Caslon Display"}.essay-review-summary p{margin:.35rem 0 0;font-size:10px}.essay-review-summary>span{padding:.45rem .6rem;background:var(--ink);color:#fff;font-size:9px;font-weight:700}.essay-review-card,.objective-review{padding:1rem;border:1px solid var(--line);background:#fff}.essay-review-heading{display:grid;gap:.35rem}.essay-review-heading>span{font-size:8px;font-weight:800;letter-spacing:.13em;color:var(--red)}.essay-review-heading>b{font:1.15rem/1.35 "Libre Caslon Display"}.essay-student-answer{margin:.85rem 0;padding:.8rem;border-left:5px solid var(--yellow);background:#f0f3f1}.essay-student-answer span{font-size:7px;font-weight:800;letter-spacing:.12em;color:var(--muted)}.essay-student-answer p{margin:.35rem 0 0;white-space:pre-wrap;font-size:10px;line-height:1.6}.essay-review-card details{margin:.7rem 0;font-size:9px}.essay-review-card summary{cursor:pointer;font-weight:700;color:#24547a}.essay-review-card details p{line-height:1.55}.essay-grade-scale{margin:.9rem 0;padding:.8rem;border:1px solid var(--line)}.essay-grade-scale legend{padding:0 .35rem;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.essay-grade-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.essay-grade-scale label{cursor:pointer}.essay-grade-scale input{position:absolute;opacity:0;pointer-events:none}.essay-grade-scale span{display:grid;gap:.2rem;height:100%;min-height:66px;padding:.6rem;border:1px solid var(--line);background:#faf8f3}.essay-grade-scale span>b{font:1.5rem "Libre Caslon Display"}.essay-grade-scale span>small{font-size:7px;line-height:1.35;color:var(--muted)}.essay-grade-scale label:has(input:checked) span{border-color:var(--red);background:#fff1d3;box-shadow:inset 5px 0 0 var(--red)}.essay-feedback{display:grid;gap:.35rem;font-size:9px;font-weight:700}.essay-feedback textarea{resize:vertical;padding:.65rem;border:1px solid var(--line);font:10px/1.5 "DM Sans",sans-serif}.essay-review-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem}.essay-review-submit small{font-size:9px;color:var(--muted)}
@media(max-width:760px){.open-book-return,.essay-review-summary,.essay-review-submit{align-items:stretch;flex-direction:column}.open-book-return .action,.essay-review-submit .action{width:100%}.essay-grade-scale{grid-template-columns:1fr 1fr}.essay-grade-scale label:last-child{grid-column:1/3}}
.essay-review-submit small.form-success{color:#286541;font-weight:800}
.admin-review-page{max-width:1100px;margin:0 auto;padding:1.25rem}.admin-review-toolbar{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.25rem;padding:1rem;border:1px solid var(--line);border-top:5px solid var(--yellow);background:rgba(250,247,241,.97);box-shadow:0 10px 30px rgba(18,38,35,.08)}.admin-review-toolbar h2{margin:.1rem 0;font:1.6rem/1.1 "Libre Caslon Display"}.admin-review-toolbar p{margin:.25rem 0;font-size:10px;color:var(--muted)}.admin-review-page .essay-review-form{margin-top:1rem}
.report-review-dialog{width:min(1100px,96vw);max-height:92vh}.report-review-dialog #detailContent{padding:1rem 2rem 2rem}.report-review-dialog .admin-review-toolbar{position:static;box-shadow:none}.report-review-dialog .essay-review-form{margin-top:1rem}
@media(max-width:760px){.admin-review-page{padding:.75rem}.admin-review-toolbar{position:static;grid-template-columns:1fr}.admin-review-toolbar .action{width:100%}}
