:root{--navy:#04175B;--gold:#FFB11A;--ink:#172541;--muted:#596780;--line:#dfe5ef;--bg:#f5f7fb;--soft:#edf2ff;--green:#226746;--amber:#815014;--red:#ab3434}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.2;letter-spacing:-1px}h2{font-size:21px;line-height:1.3;letter-spacing:-.4px}h3{font-size:17px}p{line-height:1.6}button,input,select{font:inherit}a{color:#254ec9}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);font-weight:600;text-decoration:none;cursor:pointer}button:hover,.button:hover{background:var(--soft);border-color:#9bacde}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--navy);color:white;border-color:var(--navy)}.primary:hover{background:var(--navy);filter:brightness(1.15)}.quiet{background:transparent;border:0;color:var(--muted)}:focus-visible{outline:3px solid #6388ff;outline-offset:3px}.icon{width:22px;height:22px;flex-shrink:0}.muted{color:var(--muted)}.small,small{font-size:14px}.eyebrow{font-size:12px;letter-spacing:1.5px;font-weight:700;text-transform:uppercase}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:16px;line-height:1.3}.brand small{display:block;font-size:13px;color:var(--muted);margin-top:4px}.logo{height:44px;width:44px;background:var(--navy);color:white;display:grid;place-items:center;border-radius:10px;flex-shrink:0;font-size:13px;letter-spacing:1px;font-weight:800}.logo img{width:100%;height:100%;object-fit:contain;background:white;border-radius:8px}.tag{display:inline-block;font-size:12px;padding:4px 8px;border-radius:4px;background:var(--soft);color:var(--navy);font-weight:600;white-space:nowrap}.tag.positive{background:#e8f3ed;color:var(--green)}.tag.warning{background:#fff0d9;color:var(--amber)}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:28px 20px;background:white;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30}.sidebar .brand{padding:0 8px 28px}.nav-label{padding:12px;color:var(--muted)}nav{display:grid;gap:6px}nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px;border-radius:8px;color:var(--muted);text-decoration:none;font-size:15px}nav a:hover{background:var(--bg)}nav a.active{background:var(--soft);color:var(--navy);font-weight:700;border-left:3px solid var(--gold);padding-left:9px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:20px 8px 0}.sidebar-bottom p{margin:12px 0}.shell{margin-left:250px}.topbar{height:80px;background:white;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.top-left,.top-right{display:flex;align-items:center;gap:12px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--soft);color:var(--navy);display:grid;place-items:center;font-size:13px;font-weight:700;flex-shrink:0}.mobile-menu{display:none}.content{max-width:1240px;margin:auto;padding:32px 36px 48px}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.pagehead .eyebrow{margin-bottom:8px}.hero{background:var(--navy);color:white;padding:28px 32px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;border-top:3px solid var(--gold)}.hero .eyebrow{color:var(--gold)}.hero h2{font-size:27px;margin:8px 0}.hero p{color:#d0daf1;font-size:14px;max-width:620px}.hero-badge{border-left:1px solid #ffffff35;padding-left:24px;font-size:14px;white-space:nowrap;color:#d0daf1}.hero-badge strong{color:white}.panel{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.panelhead{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.panelhead a{font-size:14px}.panelbody{padding:24px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat{padding:20px 24px}.stat strong{display:block;font-size:30px;margin:8px 0 4px;letter-spacing:-1px}.stat .status-value{font-size:21px;letter-spacing:-.4px}.stat small{color:var(--muted)}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.align-top{align-items:start}.action-card{display:flex;align-items:center;gap:16px;padding:24px;min-height:150px;border:1px solid var(--line);background:white;border-radius:12px;text-decoration:none;color:var(--ink)}.action-card:hover{border-color:#9bacde}.action-card p{font-size:14px;color:var(--muted);margin-top:8px}.action-card>.icon{margin-left:auto;color:#254ec9}.tile{width:48px;height:48px;display:grid;place-items:center;background:var(--soft);color:var(--navy);border-radius:10px;flex-shrink:0}.space{margin-top:24px}.intro{margin-bottom:24px;max-width:750px}.alert{padding:16px 20px;border:1px solid var(--line);border-radius:8px;margin:20px 0;font-size:14px}.alert.info{background:#edf3ff;color:#253c78;border-color:#cfdbf5}.alert.warning{background:#fff5e5;color:#744811;border-color:#ecd4ae}.alert.success{background:#eaf4ed;color:var(--green);border-color:#c8e2d1}.alert.error,.error{color:var(--red)}.error{margin-top:16px;font-size:14px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}th{text-align:left;background:var(--bg);font-size:12px;color:var(--muted)}th,td{padding:16px 20px;border-bottom:1px solid var(--line)}tr:last-child td{border:0}.empty{text-align:center;padding:40px 24px;color:var(--muted)}.empty .icon{color:var(--navy);margin-bottom:16px}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{font-size:14px}label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.field{margin-bottom:20px}input,select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #c4cfdf;border-radius:8px;color:var(--ink);background:white}.field p{margin-top:8px}input[type=color]{padding:4px;width:100%;height:48px}.appearance-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:start}.preview-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.preview-brand{display:flex;align-items:center;gap:12px;padding:24px}.preview-brand strong{display:block}.preview-brand small{display:block;color:var(--muted)}.preview-banner{background:var(--navy);color:white;padding:28px}.preview-banner .eyebrow{color:var(--gold)}.preview-banner h2{font-size:27px;margin:16px 0}.preview-banner p{font-size:14px;color:#d0daf1}.preview .panelbody>p{margin:12px 0 24px}.mock-field{border:1px solid #c4cfdf;border-radius:8px;padding:12px;color:var(--muted);margin-top:12px;font-size:14px}.mock-button{background:var(--navy);color:white;border-radius:8px;text-align:center;padding:12px;font-weight:600;margin-top:20px}.staff-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}.staff-list p{margin:4px 0 8px}.feature-list{padding:20px 24px 20px 44px;margin:0;line-height:1.8;font-size:14px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 28px}.detail-grid dt{font-size:14px;color:var(--muted)}.detail-grid dd{margin:8px 0 0;font-weight:600}.footer{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted);margin-top:32px}fieldset{border:0;padding:0;margin:0}.login-header{padding:24px 48px;display:flex;justify-content:space-between;align-items:center;gap:16px}.login-layout{max-width:1120px;padding:24px 48px 64px;margin:32px auto 0;display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}.login-art{background:var(--navy);color:white;border-top:4px solid var(--gold);border-radius:16px;padding:48px;min-height:470px;display:flex;flex-direction:column;justify-content:space-between}.login-art .eyebrow{color:var(--gold)}.login-art h1{font-size:42px;margin-top:24px;max-width:360px}.login-art p{color:#c9d5ef;max-width:330px;margin-top:24px}.art-bottom{display:flex;align-items:center;gap:12px;margin-top:40px;color:#d6e0f7;font-size:14px}.login-box{max-width:400px;margin:auto;width:100%}.login-box h2{font-size:30px;margin:12px 0}.login-box>p{margin-bottom:28px}.login-box form{margin-top:28px}.password-wrap{position:relative}.password-wrap input{padding-right:64px}.password-wrap button{position:absolute;right:4px;top:2px;padding:8px;border:0;background:transparent;font-size:13px;min-height:42px;color:var(--muted)}.full{width:100%}.login-box .help{margin:24px 0 12px}.login-footer{text-align:center;font-size:13px;color:var(--muted);padding:0 24px 28px}.standalone{max-width:1000px;margin:auto;padding:48px 24px}.standalone h1{margin:20px 0 12px}.standalone .panel{margin-top:28px}.standalone .panel p{margin-top:16px}.setup{max-width:560px;margin:32px auto 64px}.overlay{display:none;position:fixed;inset:0;background:#07122d80;z-index:25}.overlay.open{display:block}
@media(max-width:1100px){.sidebar{width:220px}.shell{margin-left:220px}.content{padding:28px 24px}.topbar{padding:0 24px}.appearance-grid{grid-template-columns:1fr}.hero-badge{display:none}.login-layout{gap:32px}.login-art{padding:32px}.login-art h1{font-size:36px}}
@media(max-width:720px){h1{font-size:27px}.sidebar{width:270px;transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.shell{margin:0}.mobile-menu{display:inline-flex;padding:8px 10px}.topbar{height:68px;padding:0 16px}.admin-name{display:none}.top-right{gap:8px}.content{padding:24px 16px}.pagehead{align-items:flex-start;flex-direction:column}.hero{padding:24px}.hero h2{font-size:23px}.two,.stats,.detail-grid{grid-template-columns:1fr}.stats{gap:10px}.stat{padding:16px 20px}.stat strong{font-size:26px}.action-card{padding:20px;min-height:136px}.panelhead,.panelbody{padding:20px}.panelhead{flex-wrap:wrap}.preview-title{flex-wrap:wrap}.color-fields{grid-template-columns:1fr 1fr}.footer{flex-direction:column;gap:4px}.login-header{padding:24px}.login-header>.tag{display:none}.login-layout{display:block;padding:8px 24px 32px;margin:0}.login-art{display:none}.login-box h2{font-size:28px;margin-top:24px}.setup{margin:16px}.top-left{min-width:0}.top-right .tag{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

h1,h2,h3,.brand strong,.staff-list strong{overflow-wrap:anywhere}.brand>div:last-child,.staff-list article>div{min-width:0}
/* Appearance update v0.2 — independent header, circular seal, carousel, horizontal footer. */
body{background:var(--body-bg,#f5f7fb)}
.logo{border-radius:50%;overflow:hidden}.logo img{border-radius:50%;background:white;object-fit:contain;padding:3px}
.login-header{background:var(--header-bg,#04175b);color:var(--header-text,#fff);min-height:94px}.login-header.with-accent{border-bottom:3px solid var(--gold)}.login-header .brand small{color:inherit;opacity:.85}.login-header .brand strong{color:inherit}.login-header .logo{background:white;color:var(--navy)}.login-header>.tag{background:transparent;color:inherit;border:1px solid currentColor}
.login-carousel{height:420px;width:100%;border-radius:14px;overflow:hidden;background:var(--navy);position:relative;color:white;isolation:isolate}.carousel-stage,.carousel-slide{height:100%;width:100%}.carousel-slide[hidden]{display:none}.carousel-slide img{width:100%;height:100%;object-fit:cover;object-position:center}.carousel-slide[data-position=top] img{object-position:center top}.carousel-slide[data-position=bottom] img{object-position:center bottom}.slide-caption{position:absolute;bottom:64px;left:0;right:0;padding:48px 24px 20px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:white}.slide-caption:empty{display:none}.slide-caption h2{font-size:26px;margin-bottom:8px}.slide-caption p{font-size:16px;max-width:420px}.carousel-controls{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:8px;background:rgba(0,0,0,.7)}.carousel-controls button{background:transparent;border:1px solid #ffffff60;color:white;min-width:44px;min-height:44px;padding:4px;font-size:16px}.carousel-controls [data-prev],.carousel-controls [data-next]{font-size:27px}.carousel-dots{display:flex;gap:4px}.carousel-dots button[aria-pressed=true]{background:white;color:#172541}.carousel-controls [data-pause]{font-size:14px;min-width:58px}.login-layout{align-items:center;margin-top:16px}.login-art{min-height:420px}
.portal-footer{padding:16px 24px 24px;background:var(--body-bg,#f5f7fb);color:var(--ink);width:100%}.footer-scroll{overflow-x:auto;width:100%;max-width:1120px;margin:auto}.footer-line{display:flex;align-items:center;justify-content:center;gap:24px;white-space:nowrap;width:max-content;min-width:100%;font-size:16px;line-height:1.5}.footer-line>*{flex-shrink:0}.footer-links{display:flex;flex-direction:row;gap:16px;white-space:nowrap}.footer-links a{font-size:inherit;color:var(--navy);padding:8px 0;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:3px}.footer-links a:hover{background:transparent}.footer-credits,.developer-credit{font-size:inherit}.developer-credit:before{content:'·';margin-right:12px}
.appearance-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}.appearance-controls{display:grid;gap:24px}.appearance-preview-column{position:sticky;top:24px;min-width:0}.preview-devices{display:flex;gap:8px;margin-bottom:16px}.preview-devices button[aria-pressed=true]{background:var(--navy);color:white}.preview-shell{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white;position:relative;width:100%}.preview-shell iframe{border:0;display:block;transform-origin:top left}.editor-list{display:grid;gap:16px;margin-bottom:20px}.editor-item{padding:20px;border:1px solid var(--line);border-radius:10px;background:#fafbfe}.editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:20px;flex-wrap:wrap}.editor-actions{display:flex;gap:4px}.editor-actions button{padding:8px 10px}.editor-actions [data-up],.editor-actions [data-down]{min-width:44px}.editor-thumbnail{width:100%;height:120px;object-fit:cover;border-radius:8px;margin-bottom:12px}.check{display:flex;align-items:center;gap:12px;font-weight:400;font-size:14px;margin:12px 0}.check input{width:20px;min-height:20px;flex-shrink:0}.inline-checks{display:flex;gap:16px;flex-wrap:wrap}.save-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px;background:white;border:1px solid var(--line);border-radius:10px}textarea{font:inherit;border:1px solid #c4cfdf;border-radius:8px;padding:12px;width:100%;resize:vertical;color:var(--ink);background:white}.slide-editor [type=file],.editor-item input{min-width:0}.appearance-preview-column [hidden]{display:none}
@media(max-width:1050px){.appearance-workspace{grid-template-columns:1fr}.appearance-preview-column{position:static}}
@media(max-width:720px){.login-carousel,.login-art{display:none!important}.login-header{padding:20px 24px;min-height:92px}.login-layout{margin-top:0}.portal-footer{padding:12px 16px 20px}.footer-line{gap:10px}.footer-links{gap:10px}.developer-credit:before{margin-right:8px}.appearance-preview-column{order:-1}.editor-item{padding:16px}.slide-caption{padding-left:20px;padding-right:20px}.preview-devices button{flex:1}}

.login-art[hidden],.portal-footer[hidden]{display:none!important}

.carousel-slide img{display:block}

/* Student test account controls */
.test-confirm{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5}.test-confirm input{width:18px;height:18px;min-height:18px;flex-shrink:0;margin:2px 0 0}.panel details summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--navy);font-size:14px;font-weight:600}.empty h2 + p{margin-top:12px}.panelbody + .panelbody{border-top:1px solid var(--line)}
