
.login-layout{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.login-story{position:relative;overflow:hidden;background:var(--deep);color:white;padding:58px 9%;display:flex;flex-direction:column;justify-content:space-between;gap:70px}.login-story img{width:230px;max-width:100%;filter:brightness(0) invert(1)}.login-story .eyebrow{color:var(--yellow);margin-bottom:22px}.login-story h1{font-size:clamp(32px,3.2vw,54px);line-height:1.17;letter-spacing:-1.7px;position:relative;z-index:1}.login-story p:not(.eyebrow){color:#c9bce8;margin-top:24px;max-width:365px}.login-story small{color:#ae9bcf;font-size:12px}.login-orbit{font-size:300px;line-height:1;position:absolute;right:-40px;bottom:0;color:#fec341;opacity:.18;pointer-events:none}.login-form{display:grid;place-items:center;padding:40px}.login-form>div{max-width:360px;width:100%}.login-form h2{font-size:30px;margin-top:22px}.login-form form{margin-top:35px}.login-form label{display:block;font-size:14px;margin-bottom:9px}.login-form input[type=password]{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;background:white}.login-form button{width:100%;margin-top:20px;padding:13px}.login-form button span{margin-left:auto}.form-error{color:var(--red);font-size:13px;margin-top:10px}.initial-loading{min-height:50vh;display:grid;place-content:center;color:var(--muted)}.brand img{filter:brightness(0) invert(1)}.notice{border:1px solid #ebdfbd;background:#fff9ea;border-radius:12px;padding:15px 18px;font-size:13px;line-height:1.7;margin:18px 0}.notice.error{background:#fff0f1;border-color:#e8c4c9;color:#843340}.notice a{font-weight:600}.notice button{font-size:13px}.data-banner{display:flex;align-items:center;gap:14px;margin-bottom:22px;color:var(--muted);font-size:12px}.data-banner .text-link{margin-left:auto}.kpi-value{font-variant-numeric:tabular-nums}.kpi:disabled{opacity:1;cursor:default}.kpi-meta{display:block;line-height:1.8;margin-top:8px;font-size:11px;color:var(--muted)}.featured .kpi-meta{color:#ccbdf1}.side-state{font-size:12px;border-top:1px solid #ffffff1a;padding-top:15px;color:#bfb0dc;line-height:1.6}.side-state b{display:block;color:white;font-weight:500}.side-state a{color:var(--yellow)}.logout{margin-top:16px}.logout button{color:#cdbce7;background:transparent;border:0;padding:0;font-size:12px}.panel.spaced{margin-top:22px}.panel+.panel.stacked{margin-top:22px}.metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.strip-card{background:white;border:1px solid var(--line);padding:22px;border-radius:14px;text-align:left}.strip-card small{display:block;color:var(--muted);font-size:13px}.strip-card strong{display:block;font-size:30px;letter-spacing:-1px;margin:5px 0}.strip-card .note{font-size:12px}.dist-row{grid-template-columns:9px 1fr 65px 50px}.dist-stack button{border:0;min-width:0;padding:0;flex-shrink:1}.dist-stack button:hover{filter:brightness(1.15)}.funnel-row{margin:22px 0}.funnel-row>div{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.funnel-track{height:9px;background:#f1edf8;border-radius:5px;overflow:hidden}.funnel-track i{display:block;height:100%;background:var(--purple);border-radius:5px}.data-table td,.data-table th{font-variant-numeric:tabular-nums}.empty-state{text-align:center;padding:58px 25px}.empty-state h2{font-size:25px;margin-bottom:10px}.empty-state p{max-width:550px;margin:0 auto 24px;font-size:14px;color:var(--muted)}.loading-state{padding:45px;text-align:center;color:var(--muted);font-size:14px}.question{padding:20px 0;border-bottom:1px solid var(--line)}.question:last-child{border:0}.question p{color:var(--muted);font-size:14px;margin-top:8px}.question small{display:block;font-size:12px;color:#977222;margin-top:8px}.doc-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:22px}.doc-rules{padding-left:20px;font-size:14px;line-height:1.8}.doc-rules li{margin-bottom:12px}.formula{display:block;background:#f6f3fc;border-radius:8px;padding:12px;color:var(--purple);margin-top:12px;font-size:13px}.source-links a{display:block;font-size:13px;margin-top:12px}.revision{font-family:Consolas,monospace;font-size:11px}.doc-settings{display:grid;gap:12px;margin-top:20px;font-size:13px}.doc-settings span{color:var(--muted);display:block}.audit-table td{font-size:13px}.history-bars{overflow-x:auto}.history-col{min-width:28px}.check-field{display:flex;gap:9px;font-size:14px;margin:18px 0;align-items:center}.inline-tools{display:flex;gap:10px;flex-wrap:wrap}.progress-bar{height:9px;background:#f1edf8;overflow:hidden;border-radius:5px;margin:18px 0 10px}.progress-bar i{display:block;background:var(--purple);height:100%;transition:width .3s}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}.status-grid strong{display:block;font-size:18px;margin-top:3px}.status-grid small{font-size:12px;color:var(--muted)}.status-line{font-size:13px;color:var(--muted)}.student-name span:last-child{min-width:0}.student-table{min-width:850px}.student-name strong{max-width:240px;overflow-wrap:anywhere}.student-table td .small-text{max-width:210px;display:block;color:var(--muted);font-size:12px}.list-description{font-size:13px;color:var(--muted);margin:0 0 17px}.table-tools .search{flex:1;max-width:360px}.person-history{margin-top:28px}.dialog-head h2{padding-right:30px}.dialog-body p{overflow-wrap:anywhere}.tag-list{display:flex;gap:6px;flex-wrap:wrap}.section-actions{display:flex;align-items:center;gap:10px}.chart-scroll{overflow-x:auto}.chart-empty{height:240px;display:grid;place-content:center;color:var(--muted);font-size:14px}.heat-cell.future{background:#f5f3f8;color:#bbb5c4;cursor:default}.heat-cell:disabled{opacity:1}.heat-table td small{color:var(--muted)}.heat-legend{font-size:12px;color:var(--muted);margin-top:16px}.data-error{margin:20px 0}.footer{margin-top:30px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;gap:12px}.refresh-hint{font-size:12px;color:var(--muted);margin-top:12px}.settings-code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#f7f5fa;border:1px solid var(--line);padding:14px;border-radius:9px}.public-empty-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.sidebar-backdrop{display:none}.mobile-toggle{display:none}.retention-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:15px}
@media(min-width:1350px){.kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi-value{font-size:28px}}@media(max-width:1100px){.doc-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.login-layout{display:block}.login-story{padding:32px 28px;gap:40px}.login-story>small,.login-orbit{display:none}.login-story h1{font-size:32px}.login-story img{width:190px}.login-story p:not(.eyebrow){margin-top:16px}.login-form{padding:40px 28px}.login-form>div{max-width:100%}.metric-strip{grid-template-columns:1fr}.strip-card{padding:17px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-banner{align-items:flex-start;flex-wrap:wrap}.data-banner .text-link{margin:0}.status-grid{grid-template-columns:1fr 1fr}.mobile-toggle{display:flex}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:#1d102c66;z-index:29;border:0}.chart-scroll svg{min-width:530px}.footer{display:block}.footer>*{display:block;margin:6px 0}.filter select{font-size:13px}.topbar .pill{font-size:11px}.table-tools .search{max-width:100%}.status-line{overflow-wrap:anywhere}}
.close-btn{border:0;background:#f2eef8;border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;flex:none}.close-btn:hover{background:#e7ddf8}
:root { --feature-gap: 16px; }
.financial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--feature-gap); }
.financial-grid .strip-card { min-width: 0; }
.financial-grid .strip-card strong { font-size: clamp(22px,2.1vw,34px); overflow-wrap: anywhere; }
.financial-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 20px; }
.financial-form label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 600; }
.financial-form input,.financial-form select { width:100%; padding:10px; border:1px solid #ded8ea; border-radius:9px; background:white; color:#302640; font:inherit; }
.financial-form small { font-size:12px; font-weight:400; color:#776e84; }
.financial-form p,.financial-form .dialog-actions { grid-column:1/-1; }
.nav { overflow-y: auto; }
@media(max-width:900px) { .financial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .financial-grid,.financial-form { grid-template-columns:1fr; } .financial-form p,.financial-form .dialog-actions { grid-column:auto; } }

/* Workspace hub: root page is a launcher; /study contains the current learning analytics. */
.workspace-home .brand{margin-bottom:42px}
.workspace-home .workspace-content{max-width:1180px;margin:0}
.workspace-welcome{margin:4px 0 28px}
.workspace-welcome .subtext{max-width:620px}
.workspace-modules{display:grid;grid-template-columns:minmax(0,560px);gap:16px}
.workspace-module{display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:16px;align-items:center;text-decoration:none;color:var(--ink);background:white;border:1px solid var(--line);border-radius:16px;padding:22px;transition:transform .15s,border-color .15s,box-shadow .15s}
.workspace-module:hover{transform:translateY(-2px);border-color:#b8a8e3;box-shadow:0 10px 28px #35215b0d}
.workspace-module-icon{width:48px;height:48px;border-radius:13px;background:#eee8fc;color:var(--purple);display:flex;align-items:center;justify-content:center}
.workspace-module-icon .icon{width:23px;height:23px}
.workspace-module-copy{min-width:0}
.workspace-module-copy strong{display:block;font-size:17px;margin-bottom:5px}
.workspace-module-copy small{display:block;color:var(--muted);font-size:13px;line-height:1.55}
.workspace-module-arrow{font-size:22px;color:var(--purple);text-align:right}
.not-found-page{min-height:100dvh;display:grid;place-items:center;padding:30px}
.not-found-page .panel{max-width:520px;width:100%}
.not-found-page .btn{margin-top:22px}
@media(max-width:700px){.workspace-modules{grid-template-columns:1fr}.workspace-module{grid-template-columns:42px minmax(0,1fr) 22px;padding:18px;gap:12px}.workspace-module-icon{width:42px;height:42px}.workspace-home .workspace-content{padding-top:28px}}
