:root{--portal-bg: #f8fafc;--portal-surface: #ffffff;--portal-surface-subtle: #f1f5f9;--portal-surface-blue: #edf5ff;--portal-border: #e2e8f0;--portal-border-strong: #b9c7da;--portal-text: #0f172a;--portal-muted: #64748b;--portal-quiet: #7c8ba0;--portal-blue: #1e40af;--portal-blueprint: #1f63d6;--portal-blueprint-deep: #123f8c;--portal-success: #059669;--portal-warning: #d97706;--portal-info: #0284c7;--portal-danger: #dc2626;--portal-shadow: 0 18px 45px rgba(15, 23, 42, .08);--portal-radius: 12px;color:var(--portal-text);background:var(--portal-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(90deg,rgba(185,199,218,.18) 1px,transparent 1px),linear-gradient(0deg,rgba(185,199,218,.13) 1px,transparent 1px),radial-gradient(circle at 25% 0%,rgba(39,94,216,.08),transparent 32%),var(--portal-bg);background-size:28px 28px,28px 28px,auto,auto}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.public-main{grid-column:1 / -1}.portal-content-shell{min-width:0}.portal-sidebar{position:sticky;top:0;display:grid;align-self:start;min-height:100vh;grid-template-rows:auto 1fr auto;gap:24px;border-right:1px solid var(--portal-border);padding:22px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:10px 0 30px #0f172a0a}.portal-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px clamp(20px,4vw,56px);border-bottom:1px solid #d9e3f0;background:#f7fafdf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portal-topbar{position:sticky;top:0;z-index:9;display:flex;align-items:center;justify-content:flex-end;gap:14px;min-height:64px;border-bottom:1px solid var(--portal-border);padding:12px clamp(20px,4vw,40px);background:#f8fafcf0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portal-topbar div{display:grid;justify-items:end}.portal-topbar small{color:var(--portal-muted);font-weight:700}.brand{display:inline-flex;align-items:center;gap:12px}.brand-mark{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;color:#fff;font-weight:900;background:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px),#2f55b4;background-size:12px 12px;box-shadow:inset 0 0 0 1px #fff3}.brand small{display:block;margin-top:2px;color:#60708b}.top-nav{display:flex;align-items:center;gap:12px}.side-nav{display:grid;align-content:start;gap:8px}.side-nav a,.side-nav span{border:1px solid transparent;border-radius:10px;padding:10px 12px;color:var(--portal-muted);font-weight:850}.side-nav a.router-link-active{border-color:#c5d7ff;color:#143c8f;background:#eef4ff;box-shadow:inset 4px 0 0 var(--portal-blue)}.side-nav span{color:var(--portal-quiet)}.sidebar-context{display:grid;gap:5px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:14px;background:var(--portal-surface-subtle)}.sidebar-context small{color:var(--portal-muted);font-weight:900;text-transform:uppercase}.sidebar-context span{color:var(--portal-muted);font-weight:800}.top-nav a,.ghost-button,.primary-button{border-radius:12px;border:1px solid #cbd8ea;padding:10px 14px;font-weight:800}.ghost-button{background:#fff;color:#24426f;cursor:pointer}.primary-button{border-color:#244db0;background:#244db0;color:#fff;cursor:pointer;box-shadow:0 12px 24px #244db029}.primary-button:disabled{cursor:not-allowed;opacity:.6}.user-chip,.status-pill{display:inline-flex;align-items:center;width:fit-content;border:1px solid #cbd8ea;border-radius:999px;padding:8px 12px;color:#24426f;background:#fff;font-size:.86rem;font-weight:900}.portal-main{width:min(1180px,calc(100vw - 32px));margin:0 auto;padding:36px 0 64px}.portal-page-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:16px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:22px;background:linear-gradient(135deg,#fffffff5,#edf5ffd6),var(--portal-surface);box-shadow:var(--portal-shadow)}.portal-page-header-main h1{margin-bottom:8px;font-size:clamp(2rem,4vw,3.25rem)}.portal-page-header-main p:last-child{margin:0;max-width:760px;color:var(--portal-muted);line-height:1.55}.portal-page-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.status-badge{display:inline-flex;align-items:center;width:fit-content;min-height:28px;border:1px solid var(--portal-border);border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:900;line-height:1}.status-badge-active{border-color:#b7e4ce;color:#047857;background:#ecfdf5}.status-badge-inactive{color:#475569;background:#f1f5f9}.status-badge-warning{border-color:#fed7aa;color:#a16207;background:#fffbeb}.status-badge-error{border-color:#fecaca;color:#b91c1c;background:#fef2f2}.status-badge-info{border-color:#bae6fd;color:#0369a1;background:#f0f9ff}.status-badge-neutral{color:#334155;background:#f8fafc}.status-badge-blueprint{border-color:#c5d7ff;color:#143c8f;background:#eef4ff}.blueprint-work-surface{position:relative;overflow:hidden;border:1px solid #bfd2f7;border-radius:var(--portal-radius);background:linear-gradient(rgba(31,99,214,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(31,99,214,.08) 1px,transparent 1px),var(--portal-surface-blue);background-size:20px 20px;box-shadow:var(--portal-shadow)}.blueprint-work-surface:before,.blueprint-work-surface:after{position:absolute;width:22px;height:22px;border-color:#1f63d66b;content:"";pointer-events:none}.blueprint-work-surface:before{top:14px;left:14px;border-top:2px solid;border-left:2px solid}.blueprint-work-surface:after{right:14px;bottom:14px;border-right:2px solid;border-bottom:2px solid}.metric-tile{display:grid;gap:8px;border:1px solid var(--portal-border);border-left-width:4px;border-radius:var(--portal-radius);padding:16px;background:var(--portal-surface);box-shadow:0 10px 28px #0f172a0d}.metric-tile span{color:var(--portal-muted);font-size:.76rem;font-weight:900;text-transform:uppercase}.metric-tile strong{color:var(--portal-text);font-size:1.8rem;line-height:1;overflow-wrap:anywhere}.metric-tile-neutral{border-left-color:var(--portal-border-strong)}.metric-tile-active{border-left-color:var(--portal-success)}.metric-tile-warning{border-left-color:var(--portal-warning)}.metric-tile-error{border-left-color:var(--portal-danger)}.workflow-card{display:grid;min-height:200px;gap:12px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:20px;background:linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 14px 34px #0f172a0f;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.workflow-card:hover{border-color:#8ba7e8;box-shadow:var(--portal-shadow);transform:translateY(-2px)}.workflow-card h2{margin-bottom:0;font-size:1.25rem}.workflow-card p{color:var(--portal-muted);line-height:1.5}.workflow-card strong{color:var(--portal-blue)}.workflow-card.disabled{color:#758298;background:#f7f9fc;cursor:not-allowed;pointer-events:none}.login-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,420px);gap:24px;align-items:stretch}.landing-blueprint{display:grid;align-content:center}.blueprint-panel,.login-card,.create-exam-card,.exam-card,.module-card,.placeholder-panel,.exam-hero,.empty-state{border:1px solid #d8e2ef;border-radius:18px;background:#fff;box-shadow:0 18px 40px #2d3e5c14}.blueprint-panel{min-height:520px;padding:clamp(28px,5vw,56px);color:#fff;background:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(135deg,#203b85,#426bd0);background-size:22px 22px,22px 22px,auto}.blueprint-panel h1{max-width:640px;margin:12px 0;font-size:clamp(2.5rem,6vw,5rem);line-height:.95}.blueprint-panel p{max-width:620px;color:#d9e7ff;font-size:1.1rem;line-height:1.6}.login-card,.create-exam-card,.placeholder-panel{display:grid;gap:18px;padding:24px}.placeholder-blueprint{min-height:420px;display:grid;align-items:center;padding:24px}.placeholder-blueprint .placeholder-panel{max-width:760px}.placeholder-status-row{display:flex;flex-wrap:wrap;gap:8px}label{display:grid;gap:8px;color:#45546f;font-weight:800}input{width:100%;border:1px solid #cbd8ea;border-radius:12px;padding:12px 14px;color:#101827;background:#fbfdff}.landing-proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:28px}.landing-proof-grid div{display:grid;gap:8px;border:1px solid rgba(255,255,255,.22);border-radius:var(--portal-radius);padding:14px;background:#ffffff1f}.landing-proof-grid span{color:#d9e7ff;line-height:1.45}select{width:100%;border:1px solid #cbd8ea;border-radius:12px;padding:12px 14px;color:#101827;background:#fbfdff}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(65,107,207,.35);outline-offset:2px}.eyebrow{margin:0;color:#65728a;font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.blueprint-panel .eyebrow{color:#cfe0ff}h1,h2,p{margin-top:0}h1,h2{color:#101827;line-height:1.08}.blueprint-panel h1,.blueprint-panel h2{color:#fff}.callout{border:1px solid #bfd4fb;border-radius:14px;padding:14px;color:#29426f;background:#eef5ff}.blueprint-panel .callout{color:#fff;background:#ffffff1f}.hint,.form-error{margin:0;color:#65728a}.dev-hint{border-top:1px solid var(--portal-border);padding-top:14px;font-size:.86rem}.form-error{color:#a93434;font-weight:800}.page-stack{display:grid;gap:22px}.page-heading,.exam-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.page-heading h1,.exam-hero h1{margin-bottom:10px;font-size:clamp(2rem,4vw,3.5rem)}.create-exam-card{grid-template-columns:1fr minmax(260px,420px) auto;align-items:end}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.workbench-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px;align-items:stretch}.workbench-panel{border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:20px;background:var(--portal-surface);box-shadow:var(--portal-shadow)}.exam-command-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;border:1px solid #bcd2f7;border-radius:var(--portal-radius);padding:20px;background:linear-gradient(135deg,#fff,#eef5ff);box-shadow:0 14px 34px #0f172a0f}.exam-command-strip h2,.exam-command-strip p{margin-bottom:0}.exam-command-strip h2{margin:4px 0 8px}.command-strip-status{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.workflow-section{display:grid;gap:14px}.workflow-section-heading{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--portal-border);padding-bottom:10px}.workflow-section-heading h2,.workflow-section-heading p{margin-bottom:0}.workflow-section-heading h2{margin:4px 0 6px}.workflow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.next-action-panel ol{display:grid;gap:9px;margin:0;padding-left:20px;color:var(--portal-muted);font-weight:750}.compact-select{min-width:260px}.admin-form-grid,.data-panel{border:1px solid #d8e2ef;border-radius:18px;background:#fff;box-shadow:0 18px 40px #2d3e5c14}.admin-form-grid{display:grid;grid-template-columns:minmax(220px,1fr) repeat(2,minmax(180px,260px)) auto;align-items:end;gap:16px;padding:22px}.admin-form-grid .form-error{grid-column:1 / -1}.data-panel{overflow:hidden}.table-list{display:grid}.table-row,.table-row-link{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto auto;align-items:center;gap:14px;min-height:72px;border-bottom:1px solid #e4ebf5;padding:14px 18px}.table-row:last-child,.table-row-link:last-child{border-bottom:0}.table-row-link:hover{background:#f6f9fd}.table-row small,.table-row-link small{display:block;margin-top:4px;color:#60708b;font-weight:700}.inline-select{min-width:260px}.exam-grid,.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.exam-card,.module-card{display:grid;min-height:220px;gap:12px;padding:22px;transition:transform .15s ease,border-color .15s ease}.exam-card:hover,.module-card:hover{transform:translateY(-2px);border-color:#8ba7e8}.exam-meta{display:flex;flex-wrap:wrap;gap:8px;color:#42536f;font-weight:800}.exam-meta span{border-radius:10px;padding:8px 10px;background:#edf3fc}.lead-line{color:#60708b}.hero-status{display:grid;min-width:220px;gap:8px;border:1px solid #d8e2ef;border-radius:16px;padding:16px;background:#f8fbff}.readiness-strip{display:flex;flex-wrap:wrap;gap:12px;border:1px solid #bcd2f7;border-radius:14px;padding:14px 16px;color:#24426f;background:#eef5ff;font-weight:900}.readiness-package-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;border:1px solid #bcd2f7;border-radius:var(--portal-radius);padding:18px 20px;background:linear-gradient(135deg,#fff,#eef5ff);box-shadow:0 14px 34px #0f172a0f}.readiness-package-bar h2,.readiness-package-bar p{margin-bottom:0}.readiness-package-bar h2{margin:4px 0 8px}.readiness-package-actions{display:grid;justify-items:end;gap:8px;color:var(--portal-muted);font-weight:850}.station-builder-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border:1px solid #bfd2f7;border-radius:20px;padding:28px;background:radial-gradient(circle at 85% 10%,rgba(47,85,180,.13),transparent 28%),linear-gradient(135deg,#fff,#eef5ff);box-shadow:0 18px 40px #2d3e5c14}.station-count-card{display:grid;grid-template-columns:1fr 180px auto;align-items:end;gap:16px;border:1px solid #d8e2ef;border-radius:18px;padding:20px;background:#fff}.station-workbench{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(240px,280px);gap:18px;align-items:start}.blueprint-station-workbench{grid-template-columns:minmax(260px,320px) minmax(0,1fr) minmax(280px,340px)}.station-card-rail,.station-canvas,.element-palette{border:1px solid #d8e2ef;border-radius:18px;background:#fff;box-shadow:0 18px 40px #2d3e5c14}.station-card-rail,.element-palette{display:grid;gap:12px;padding:16px}.rail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--portal-muted)}.mini-station-card{display:grid;gap:8px;width:100%;border:1px solid #cbd8ea;border-radius:16px;padding:14px;text-align:left;color:#101827;background:#fff;cursor:pointer}.mini-station-card span,.mini-station-card small{color:#60708b;font-weight:800}.mini-station-card.active{color:#fff;border-color:#315ec8;background:linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px),#2f55b4;background-size:16px 16px}.mini-station-card.active span,.mini-station-card.active small{color:#dce8ff}.station-deck-card{min-height:118px}.station-readiness-markers{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.station-readiness-markers span:last-child{color:inherit;font-size:.78rem;font-weight:900}.station-canvas{overflow:hidden}.station-blueprint-canvas{min-height:620px;background:linear-gradient(rgba(31,99,214,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(31,99,214,.08) 1px,transparent 1px),#edf5ff;background-size:20px 20px}.station-canvas-header{display:flex;justify-content:space-between;gap:16px;padding:22px;border-bottom:1px solid #d8e2ef;background:#ffffffe0}.blueprint-canvas{min-height:460px;padding:22px;background:linear-gradient(rgba(47,85,180,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(47,85,180,.07) 1px,transparent 1px),#f4f8ff;background-size:20px 20px}.station-element-field{margin:18px;border:1px solid rgba(31,99,214,.22);border-radius:var(--portal-radius);background:linear-gradient(rgba(47,85,180,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(47,85,180,.07) 1px,transparent 1px),#ffffffbd;background-size:20px 20px}.dismissible-help-event{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 18px 0;border:1px solid #c5d7ff;border-left:5px solid var(--portal-blueprint);border-radius:var(--portal-radius);padding:14px 16px;background:#ffffffe6}.dismissible-help-event strong,.dismissible-help-event p{margin:0}.dismissible-help-event span{color:var(--portal-blue);font-weight:900;white-space:nowrap}.station-structure-title{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#60708b}.element-stack{display:grid;gap:12px}.station-element-block{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;border:1px solid #d8e2ef;border-left-width:5px;border-radius:14px;padding:14px;background:#ffffffeb}.drag-handle{display:grid;width:32px;height:44px;place-items:center;border-radius:10px;color:var(--portal-muted);background:#eef5ff;font-weight:900}.station-element-block p{margin:4px 0 0;color:#60708b}.station-empty-state{box-shadow:none}.icon-button{display:grid;width:36px;height:36px;place-items:center;border:1px solid #cbd8ea;border-radius:10px;background:#fff;color:#24426f;cursor:pointer;font-size:1.3rem;font-weight:900}.element-palette h2,.element-palette p{margin-bottom:0}.station-side-panel{display:grid;gap:16px}.palette-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border:1px solid #cbd8ea;border-radius:14px;padding:12px;background:#fff;text-align:left;cursor:pointer}.palette-item:disabled{cursor:not-allowed;opacity:.64}.palette-item small{display:block;color:#60708b}.palette-item em{color:#60708b;font-size:.76rem;font-style:normal;font-weight:900;text-transform:uppercase}.palette-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:12px;font-size:.8rem;font-weight:900;background:#eef5ff}.palette-item.selected{border-color:#8fb0ef;background:#f6f9ff}.context-coach{display:grid;gap:12px;border:1px solid #d8e2ef;border-radius:18px;padding:18px;background:#fff;box-shadow:0 18px 40px #2d3e5c14}.context-coach h2,.context-coach p{margin-bottom:0}.context-coach ul{display:grid;gap:10px;margin:0;padding-left:18px;color:var(--portal-muted);font-weight:760;line-height:1.45}.status-report{display:grid;gap:16px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:20px;background:var(--portal-surface);box-shadow:var(--portal-shadow)}.status-report h2,.status-report p{margin-bottom:0}.status-stage-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.status-stage{display:grid;gap:10px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);padding:14px;background:#f8fbff}.status-stage strong{color:var(--portal-text);font-size:1.65rem}.tone-presentation{border-left-color:#3488d1}.tone-student_checkin{border-left-color:#48a56a}.tone-examiner{border-left-color:#d8942d}.tone-marking_rubric{border-left-color:#6f57db}.tone-timing{border-left-color:#315ec8}.tone-evidence{border-left-color:#64748b}.blueprint-workbench-hero{background:linear-gradient(90deg,rgba(47,85,180,.05) 1px,transparent 1px),linear-gradient(0deg,rgba(47,85,180,.045) 1px,transparent 1px),radial-gradient(circle at 88% 12%,rgba(47,85,180,.13),transparent 28%),linear-gradient(135deg,#fff,#eef5ff);background-size:22px 22px,22px 22px,auto,auto}.package-readiness-card{box-shadow:inset 0 0 0 1px #ffffffb8}.compact-station-count{grid-template-columns:minmax(0,1fr) 170px auto}.station-deck{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.station-card{position:relative;min-height:158px;overflow:hidden;border:1px solid #d8e2ef;border-radius:16px;padding:14px;color:#101827;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 12px 28px #0f172a0f;cursor:pointer;text-align:left;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.station-card:hover{transform:translateY(-2px);border-color:#8ba7e8}.station-card:before{position:absolute;inset:0 auto 0 0;width:5px;background:var(--station-accent, #cbd8ea);content:""}.station-card:after{position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,color-mix(in srgb,var(--station-accent, #315ec8) 34%,transparent),transparent);content:"";pointer-events:none}.station-card.active{color:#fff;border-color:#8fb0ff;outline:3px solid rgba(39,94,216,.18);background:linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(135deg,#123f8c 0%,#194fb2 56%,var(--station-accent, #2f68dc) 100%);background-size:14px 14px,14px 14px,auto;box-shadow:0 0 0 1px #ffffff6b inset,0 0 0 5px #275ed81a,0 22px 46px #1f63d63d;transform:translateY(-3px)}.station-card.active:before{width:4px;background:#ffffffe0;box-shadow:0 0 18px #ffffff59}.station-card.active:after{top:7px;right:7px;bottom:7px;left:7px;height:auto;border-radius:11px;background:linear-gradient(#fff,#fff) left top / 28px 2px no-repeat,linear-gradient(#fff,#fff) left top / 2px 28px no-repeat,linear-gradient(#fff,#fff) right top / 28px 2px no-repeat,linear-gradient(#fff,#fff) right top / 2px 28px no-repeat,linear-gradient(#fff,#fff) left bottom / 28px 2px no-repeat,linear-gradient(#fff,#fff) left bottom / 2px 28px no-repeat,linear-gradient(#fff,#fff) right bottom / 28px 2px no-repeat,linear-gradient(#fff,#fff) right bottom / 2px 28px no-repeat;opacity:.42}.station-card h3{margin:8px 0 0;padding-left:4px;font-size:1.02rem;line-height:1.25}.station-card p{margin:8px 0 0;padding-left:4px;color:#60708b;font-size:.82rem;line-height:1.4}.station-card.active h3,.station-card.active p{color:#fff}.station-card.active p{color:#ffffffd1}.station-code{display:flex;justify-content:space-between;gap:8px;padding-left:4px;color:#65728a;font-size:.74rem;font-weight:900;text-transform:uppercase}.station-card.active .station-code{margin:-6px -6px 12px -2px;padding:7px 8px 7px 10px;border-radius:10px;color:#fff;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff2e}.station-card-count{border:1px solid #c7d8ff;border-radius:999px;padding:2px 7px;color:#143c8f;background:#eef5ff;font-size:.68rem;white-space:nowrap}.station-card.active .station-card-count{color:#143c8f;border-color:#ffffffb3;background:#fff}.mini-elements{position:absolute;right:14px;bottom:12px;left:14px;display:flex;gap:5px;padding-left:4px}.mini-elements span{width:22px;height:8px;border-radius:99px;background:#d6e2f3}.mini-elements span.ok{background:#a9dfc2}.mini-elements span.warn{background:#f3d18b}.mini-elements span.missing{background:#ffc9c4}.station-card.active .mini-elements span{background:#ffffff70}.station-card.active .mini-elements span.ok{background:#d7f8e6}.station-card.active .mini-elements span.warn{background:#ffe8a8}.station-card.active .mini-elements span.missing{background:#ffc9c4}.pattern-live-examiner,.pattern-integrated{--station-accent: #315ec8}.pattern-automated{--station-accent: #0ea5e9}.pattern-deferred-marking{--station-accent: #7c3aed}.pattern-rest{--station-accent: #64748b}.pattern-written{--station-accent: #22a06b}.pattern-timekeeper{--station-accent: #d97706}.pattern-emergency{--station-accent: #b42318}.station-authoring-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,310px) minmax(260px,310px);gap:16px;align-items:start}.station-stage,.inspector,.context-coach{border:1px solid #d8e2ef;border-radius:18px;background:#fff;box-shadow:0 18px 40px #2d3e5c14}.station-stage{min-width:0;overflow:hidden}.stage-top{display:flex;justify-content:space-between;gap:16px;padding:20px;color:#fff;background:linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,#143c8f,#275ed8);background-size:16px 16px,16px 16px,auto}.stage-top h2{margin:4px 0 0;color:#fff}.stage-top p{margin:8px 0 0;color:#ffffffd1}.pattern-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.pattern{border:1px solid rgba(255,255,255,.36);border-radius:999px;padding:7px 10px;color:#ffffffd6;background:#ffffff1f;font-size:.74rem;font-weight:900}.pattern.active{color:#143c8f;border-color:#fff;background:#fff}.station-status{align-self:flex-start;border:1px solid rgba(255,255,255,.62);border-radius:999px;padding:8px 10px;color:#143c8f;background:#fffffff0;font-size:.74rem;font-weight:900;white-space:nowrap}.stage-body{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:18px;padding:18px}.station-core{position:relative;min-height:500px;border:1px solid rgba(31,99,214,.36);border-radius:18px;padding:18px;background:linear-gradient(90deg,rgba(31,99,214,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(31,99,214,.03) 1px,transparent 1px),linear-gradient(180deg,#f7fbff,#edf5ff);background-size:20px 20px,20px 20px,auto;box-shadow:inset 0 0 0 1px #fffffff0,inset 0 0 80px #1f63d611,0 0 0 5px #1f63d609}.station-core:after{position:absolute;top:18px;right:18px;bottom:18px;left:18px;opacity:.2;background:linear-gradient(#194fb2,#194fb2) left top / 34px 2px no-repeat,linear-gradient(#194fb2,#194fb2) left top / 2px 34px no-repeat,linear-gradient(#194fb2,#194fb2) right top / 34px 2px no-repeat,linear-gradient(#194fb2,#194fb2) right top / 2px 34px no-repeat,linear-gradient(#194fb2,#194fb2) left bottom / 34px 2px no-repeat,linear-gradient(#194fb2,#194fb2) left bottom / 2px 34px no-repeat,linear-gradient(#194fb2,#194fb2) right bottom / 34px 2px no-repeat,linear-gradient(#194fb2,#194fb2) right bottom / 2px 34px no-repeat;content:"";pointer-events:none}.station-core>*{position:relative;z-index:1}.station-blueprint{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;margin-bottom:14px;border:1px solid rgba(37,99,235,.18);border-radius:14px;padding:12px;color:#101827;background:linear-gradient(90deg,rgba(37,99,235,.025) 1px,transparent 1px),linear-gradient(0deg,rgba(37,99,235,.022) 1px,transparent 1px),linear-gradient(135deg,#fbfdff,#f1f7ff);background-size:16px 16px,16px 16px,auto}.blueprint-orb{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;color:#174585;background:linear-gradient(135deg,#dbe8ff,#fff);font-weight:900}.station-blueprint strong{display:block;margin-bottom:3px;color:#143c8f;font-size:.82rem}.station-blueprint span{display:block;color:#60708b;font-size:.76rem;line-height:1.35}.dismiss-tip,.remove-element{display:grid;place-items:center;border:1px solid #d4deeb;border-radius:8px;color:#526174;background:#fff;font-weight:900;cursor:pointer}.dismiss-tip{width:30px;height:30px}.core-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.core-title h3{margin:0;font-size:1rem}.core-title span{color:#65728a;font-size:.8rem;font-weight:800}.station-element{position:relative;display:grid;grid-template-columns:20px 32px 1fr auto auto;gap:10px;align-items:center;border:1px solid var(--element-border, #d8e2ef);border-left:5px solid var(--element-strong, #315ec8);border-radius:12px;padding:12px;background:linear-gradient(90deg,var(--element-tint, #f8fafc) 0 86px,#ffffff 86px 100%);box-shadow:0 8px 18px #0f172a0d;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.station-element:hover{transform:translate(3px);border-color:var(--element-strong, #9bb7f4);box-shadow:0 12px 26px #275ed81a}.station-element.reject{border-color:#ff9f99;background:#fff8f7;box-shadow:0 0 0 4px #b4231814;animation:noShake .36s ease}.station-element.type-presentation{--element-tint: #eaf8ff;--element-border: #b8e8ff;--element-strong: #0ea5e9}.station-element.type-student_checkin{--element-tint: #e9f8f1;--element-border: #b9e8ce;--element-strong: #22a06b}.station-element.type-examiner{--element-tint: #fff5d7;--element-border: #efd084;--element-strong: #d97706}.station-element.type-marking_rubric{--element-tint: #f3f0ff;--element-border: #d5ccff;--element-strong: #7c3aed}.station-element.type-timing{--element-tint: #eef4ff;--element-border: #c7d8ff;--element-strong: #2563eb}.station-element.type-evidence{--element-tint: #f0f9ff;--element-border: #bae6fd;--element-strong: #0284c7}.grip{width:14px;height:24px;background-image:radial-gradient(#8a99ad 1.5px,transparent 1.5px);background-size:7px 7px;opacity:.85}.element-icon,.tool-icon{display:grid;place-items:center;border:1px solid var(--element-border, #c7d8ff);color:var(--element-strong, #143c8f);background:var(--element-tint, #eef5ff);font-weight:950}.element-icon{width:32px;height:32px;border-radius:9px;font-size:.68rem}.element-copy h4{margin:0;font-size:.88rem}.element-copy p{margin:4px 0 0;color:#60708b;font-size:.8rem}.badge{border-radius:999px;padding:6px 8px;font-size:.68rem;font-weight:900;white-space:nowrap}.badge.ok{border:1px solid #b9e8ce;color:#247a52;background:#e9f8f1}.badge.warn{border:1px solid #efd084;color:#9a6700;background:#fff5d7}.remove-element{width:30px;height:30px}.remove-element:hover,.station-element.reject .remove-element{color:#b42318;border-color:#ffc9c4;background:#fff1f0}.empty-drop{margin-top:12px;border:1px dashed #b9c7da;border-radius:12px;padding:16px;color:#65728a;text-align:center;font-size:.82rem;font-weight:900}.status-report{margin-top:14px;border:1px solid rgba(31,99,214,.22);border-radius:14px;padding:12px;background:linear-gradient(90deg,rgba(31,99,214,.035) 1px,transparent 1px),linear-gradient(0deg,rgba(31,99,214,.03) 1px,transparent 1px),#ffffffe0;background-size:18px 18px,18px 18px,auto}.status-report-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.status-report-head strong{color:#143c8f;font-size:.82rem}.status-report-head span{color:#60708b;font-size:.76rem;font-weight:800}.authoring-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.authoring-step{border:1px solid rgba(31,99,214,.15);border-radius:10px;padding:9px;color:#60708b;background:#ffffffb8;font-size:.74rem;font-weight:900}.authoring-step.active{color:#fff;border-color:#174585;background:#174585}.palette{border:1px solid #d8e2ef;border-radius:14px;padding:12px;background:#f8fbff}.palette h3{margin:0 0 6px;font-size:.92rem}.palette p{margin:0 0 12px;color:#60708b;font-size:.76rem;line-height:1.4}.tool{position:relative;display:grid;width:100%;grid-template-columns:28px 1fr;gap:9px;align-items:center;margin-bottom:9px;border:1px solid #b9c7da;border-radius:11px;padding:10px;background:linear-gradient(180deg,#fff,#fbfdff);cursor:grab;text-align:left}.tool:hover{transform:translateY(-2px);border-color:#8fb0ff;box-shadow:0 10px 22px #0f172a14}.tool:after{position:absolute;top:8px;right:8px;color:#8a99ad;font-size:.62rem;font-weight:900;text-transform:uppercase;content:"drag"}.tool:disabled{cursor:not-allowed;opacity:.62}.tool.selected:after{content:"saved"}.tool-icon{width:28px;height:28px;border-radius:8px;font-size:.68rem}.tool strong,.tool small{display:block}.tool strong{font-size:.8rem}.tool small{margin-top:2px;color:#60708b;font-size:.68rem;line-height:1.35}.inspector,.context-coach{overflow:hidden}.inspector-head{border-bottom:1px solid #d8e2ef;padding:15px;background:#fbfcfe}.inspector-head h3,.context-coach h2{margin:0;font-size:1rem}.inspector-head p,.context-coach p{margin:6px 0 0;color:#60708b;font-size:.82rem;line-height:1.45}.field-group{display:grid;gap:12px;padding:14px}.field-group label{color:#60708b;font-size:.74rem;text-transform:uppercase}.field-group input,.field-group select,.field-group textarea{width:100%;border:1px solid #b9c7da;border-radius:9px;padding:10px;color:#101827;background:#fff}.field-group textarea{min-height:94px;resize:vertical}.duration-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secondary-button,.danger-button{display:inline-flex;justify-content:center;align-items:center;min-height:40px;border-radius:10px;padding:10px 14px;font-weight:900;cursor:pointer}.secondary-button{border:1px solid #cbd8ea;color:#24426f;background:#fff}.danger-button{border:1px solid #ffc9c4;color:#b42318;background:#fff1f0}.secondary-button:disabled,.danger-button:disabled{cursor:not-allowed;opacity:.58}.full-width{width:100%}.context-coach{padding:18px}.context-coach h2{display:flex;align-items:center;gap:9px}.context-coach h2:before{width:10px;height:10px;border-radius:50%;background:#247a52;box-shadow:0 0 0 5px #247a521f;content:""}.coach-card{margin-top:14px;border:1px solid #d8e2ef;border-radius:14px;padding:14px;background:#fff}.coach-card h3{margin:0 0 8px;font-size:.88rem}.checklist{display:grid;gap:9px;margin:0;padding:0;list-style:none}.checklist li{display:flex;align-items:flex-start;gap:8px;color:#60708b;font-size:.8rem;line-height:1.35}.check-dot{display:grid;flex:0 0 18px;width:18px;height:18px;place-items:center;margin-top:1px;border-radius:50%;font-size:.68rem;font-weight:900}.check-dot.ok{color:#247a52;background:#e9f8f1}.check-dot.warn{color:#9a6700;background:#fff5d7}.check-dot.missing{color:#b42318;background:#fff1f0}.coach-alert{display:none;margin-top:12px;border:1px solid #ffc9c4;border-radius:12px;padding:11px 12px;color:#b42318;background:#fff1f0;font-size:.82rem;font-weight:800;line-height:1.4}.coach-alert.show{display:block}.flow-note{margin-top:16px;border:1px solid #b8cdfd;border-radius:14px;padding:14px;color:#143c8f;background:#eef5ff;font-size:.82rem;line-height:1.45}@media(prefers-reduced-motion:no-preference){@keyframes noShake{0%,to{transform:translate(0)}18%{transform:translate(-7px)}36%{transform:translate(6px)}54%{transform:translate(-4px)}72%{transform:translate(3px)}}}.module-key{width:fit-content;border-radius:999px;padding:6px 10px;color:#fff;background:#315ec8;font-size:.76rem;font-weight:900;text-transform:uppercase}.module-card.disabled{color:#758298;background:#f7f9fc;cursor:not-allowed}.module-card.disabled .module-key{background:#9ba8bc}.empty-state{padding:28px;color:#60708b;font-weight:800}.back-link{width:fit-content;color:#244db0;font-weight:900}.exam-hero.compact{align-items:center}.roster-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:18px}.roster-panel,.roster-table-panel{border:1px solid #d8e2ef;border-radius:18px;padding:20px;background:#fff;box-shadow:0 14px 40px #13233f12}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.section-heading h2{margin:0;font-size:1.2rem}.roster-form{display:grid;gap:12px}.roster-form label,.roster-panel label{display:grid;gap:6px;color:#475671;font-size:.85rem;font-weight:900}.roster-form input,.roster-panel textarea{width:100%;border:1px solid #cbd8ea;border-radius:12px;padding:11px 12px;color:#101827;background:#f9fbff;font:inherit}.roster-panel textarea{min-height:190px;resize:vertical}.helper-copy{margin-top:-4px;color:#60708b}.form-success{border:1px solid #b7e3c7;border-radius:14px;padding:12px 14px;color:#17643a;background:#f0fbf4;font-weight:900}.data-table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:14px}.data-table th,.data-table td{border-bottom:1px solid #e3e9f3;padding:13px 12px;text-align:left;vertical-align:top}.data-table th{color:#60708b;background:#f5f8fd;font-size:.78rem;font-weight:900;text-transform:uppercase}.data-table td{color:#182236;font-weight:700}.text-button{border:0;padding:0;color:#244db0;background:transparent;cursor:pointer;font:inherit;font-weight:900}.text-button.danger{color:#b42318}.rotation-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{border:1px solid #d8e2ef;border-radius:16px;padding:18px;background:#fff;box-shadow:0 12px 32px #13233f0f}.metric-card span{display:block;color:#60708b;font-size:.78rem;font-weight:900;text-transform:uppercase}.metric-card strong{display:block;margin-top:8px;color:#101827;font-size:2rem;line-height:1}.inline-check{display:flex!important;grid-template-columns:none!important;align-items:center;gap:10px!important}.inline-check input{width:auto}.warning-list{display:grid;gap:10px;margin:0;padding-left:20px;color:#8a4b00;font-weight:800}.matrix-scroll{overflow-x:auto}.rotation-matrix{min-width:760px}.rotation-matrix small,.rotation-matrix em{display:block;margin-top:4px;color:#60708b;font-size:.78rem;font-style:normal;font-weight:800}.muted-text{color:#758298;font-weight:800}.alert-panel,.success-panel{border-radius:14px;padding:12px 14px;font-weight:900}.alert-panel{border:1px solid #fecaca;color:#991b1b;background:#fff1f2}.success-panel{border:1px solid #bbf7d0;color:#166534;background:#f0fdf4}.rubric-builder-layout{display:grid;grid-template-columns:minmax(240px,.35fr) minmax(0,1fr);gap:18px;align-items:start}.rubric-builder-sidebar,.rubric-builder-panel{border:1px solid #d8e2ef;border-radius:18px;padding:20px;background:#fff;box-shadow:0 14px 40px #13233f12}.rubric-builder-sidebar{position:sticky;top:84px;display:grid;gap:12px}.rubric-builder-main{display:grid;gap:18px}.rubric-station-button,.rubric-saved-button{display:grid;width:100%;gap:4px;border:1px solid #d8e2ef;border-radius:12px;padding:12px;color:#24426f;background:#f8fbff;text-align:left;cursor:pointer}.rubric-station-button.active{border-color:#9fb8ff;background:#eef4ff;box-shadow:inset 4px 0 #244db0}.rubric-station-button strong,.rubric-saved-button span{color:#101827;font-weight:900}.rubric-station-button span{color:#60708b;font-weight:800}.rubric-existing-list{display:grid;gap:10px;border-top:1px solid #e3e9f3;padding-top:14px}.rubric-saved-button{grid-template-columns:minmax(0,1fr) auto;align-items:center}.rubric-builder-panel{display:grid;gap:16px}.rubric-builder-panel label,.rubric-edit-section label,.rubric-edit-item label{display:grid;gap:6px;color:#475671;font-size:.85rem;font-weight:900}.rubric-builder-panel input,.rubric-builder-panel textarea,.rubric-builder-panel select{width:100%;border:1px solid #cbd8ea;border-radius:12px;padding:11px 12px;color:#101827;background:#f9fbff;font:inherit}.rubric-builder-panel textarea{resize:vertical}.rubric-budget-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.button-row{display:flex;flex-wrap:wrap;gap:10px}.rubric-edit-section{display:grid;gap:14px;border:1px solid #e3e9f3;border-radius:16px;padding:14px;background:#f8fbff}.rubric-edit-item{display:grid;gap:12px;border:1px solid #d8e2ef;border-radius:14px;padding:14px;background:#fff}.rubric-item-header{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:10px;align-items:end}.rubric-band-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;overflow-x:auto}.rubric-band-grid textarea{min-height:112px;font-size:.84rem}.rubric-validation-list{border:1px solid #fed7aa;border-radius:14px;padding:14px;color:#8a4b00;background:#fff7ed}.rubric-validation-list ul{margin:8px 0 0;padding-left:20px}.package-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start}.readiness-check-list{display:grid;gap:12px}.readiness-check{display:grid;gap:12px;border:1px solid #d8e2ef;border-left-width:5px;border-radius:16px;padding:16px;background:#fff}.readiness-check span{display:inline-flex;width:fit-content;border-radius:999px;padding:5px 9px;color:#24426f;background:#edf3fc;font-size:.72rem;font-weight:900}.readiness-check h3{margin:10px 0 6px}.readiness-check p{margin:0;color:#60708b;font-weight:700}.readiness-check pre{overflow-x:auto;border-radius:12px;margin:0;padding:12px;color:#24426f;background:#f3f7fd;font-size:.82rem}.readiness-pass{border-left-color:#48a56a}.readiness-warn{border-left-color:#d8942d}.readiness-fail{border-left-color:#b42318}.readiness-pass span{color:#17643a;background:#edf8f1}.readiness-warn span{color:#8a4b00;background:#fff4df}.readiness-fail span{color:#9f1d15;background:#fff0ee}@media(max-width:860px){.portal-header,.page-heading,.exam-hero{align-items:stretch;flex-direction:column}.login-layout,.create-exam-card,.app-shell,.dashboard-metrics,.workbench-grid,.exam-command-strip,.readiness-package-bar,.station-count-card,.station-workbench,.compact-station-count,.station-authoring-grid,.stage-body,.roster-layout,.package-layout,.rotation-summary-grid,.status-stage-rail,.station-deck{grid-template-columns:1fr}.stage-top,.core-title,.status-report-head{align-items:stretch;flex-direction:column}.authoring-strip,.duration-grid{grid-template-columns:1fr}.station-element{grid-template-columns:32px 1fr auto}.station-element .grip{display:none}.portal-sidebar{position:static;min-height:auto;border-right:0;border-bottom:1px solid var(--portal-border)}.top-nav{flex-wrap:wrap}.landing-proof-grid,.portal-page-header{grid-template-columns:1fr}.portal-page-header-actions{justify-content:flex-start}.readiness-package-actions{justify-items:start}}
