:root{color-scheme:light;--paper: #f1eee7;--paper-deep: #e8e4da;--surface: #fffdf8;--ink: #0b0d11;--ink-soft: #20232b;--text: #17181d;--muted: #5f626a;--line: #d7d4cb;--line-dark: #373c49;--violet: #5943c4;--cyan: #087c7a;--yellow: #946000;--red: #a83b46;--focus: #5943c4;--radius: 14px;--control-radius: 8px;--shadow: 0 10px 24px rgba(18, 19, 23, .08);--object-shadow: 0 18px 42px rgba(18, 19, 23, .16);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px}*{box-sizing:border-box}html,body,#root{width:100%;min-width:0}html{background:var(--paper)}body{margin:0;min-width:0;color:var(--text);font-family:Segoe UI Variable,Aptos,ui-sans-serif,system-ui,sans-serif;background:var(--paper);-webkit-tap-highlight-color:rgba(117,100,232,.18)}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3,strong,b{text-wrap:balance}button,a,input,select,[tabindex]{scroll-margin-block:90px 40px}:where(button,a,input,select,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-links{position:fixed;top:10px;left:10px;z-index:120;display:flex;gap:6px;transform:translateY(-180%);transition:transform .15s ease}.skip-links:focus-within{transform:translateY(0)}.skip-links a{padding:10px 14px;color:#fff;background:var(--ink)}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:2px 5px;border:1px solid currentColor;border-radius:4px;font-family:inherit;font-size:10px;font-weight:750;line-height:1.2}.visual-scene{min-height:100dvh;width:100%;position:relative;overflow-x:clip;background:var(--paper)}.scene-grid{position:fixed;inset:-12%;pointer-events:none;z-index:0}.scene-grid{display:none}.scene-terrain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.5}.scene-content{position:relative;z-index:1}.app-shell{min-height:100dvh}.sidebar-object{position:fixed;top:22px;left:22px;width:242px;height:calc(100dvh - 44px);z-index:5}.sidebar{height:100%;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6) var(--space-4) var(--space-5);color:#fff;background:var(--ink);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:18px 22px 55px #0f101447}.nav-label{color:#a1a7b2;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:0 9px;margin-top:4px}@media(min-width:1025px){.nav-label{display:flex;align-items:baseline;gap:0;color:#fff;font-size:17px;letter-spacing:-.045em;text-transform:none}.nav-label span{font-weight:450}.nav-label strong{color:#8bdbd2;font-weight:900}}.nav{display:grid;gap:4px}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 10px;border:1px solid transparent;border-radius:9px;color:#b1b6c2;text-align:left;background:transparent;transition:color .18s ease,background .18s ease,border-color .18s ease}.nav-item:hover,.nav-item:focus-visible{color:#fff;border-color:#303641;background:#171b22}.nav-item.active{color:#fff;border-color:#8bdbd2;background:#252b35;box-shadow:inset 3px 0 #8bdbd2}.sidebar :focus-visible,.shortcut-dialog :focus-visible,.command-dialog :focus-visible{outline-color:#8bdbd2}.sidebar-account{display:grid;gap:4px;padding:14px 9px 4px;border-top:1px solid #303641}.sidebar-account span{color:#a1a7b2;font-size:10px}.sidebar-account strong{color:#fff;font-size:11px;overflow:hidden;text-overflow:ellipsis}.sidebar-account small{color:#8f97a4;font-size:9px;overflow:hidden;text-overflow:ellipsis}.sidebar-actions{display:grid;gap:8px;margin-top:0}.sidebar-loading-name{width:72%;height:1rem;margin:0 9px 4px}.sidebar-loading-action{height:2.45rem;border-radius:7px}.shortcut-help{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding:7px 9px;border:0;color:#949ba8;font-size:10px;background:transparent}.shortcut-help:hover,.shortcut-help:focus-visible{color:#fff}.main{width:calc(100% - 286px);min-width:0;margin-left:286px;padding:var(--space-6) var(--space-5) 64px}.main:focus{outline:none}.main:focus-visible .page-heading{box-shadow:inset 4px 0 var(--focus);padding-left:16px}.global-header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6);padding:var(--space-1) 0 14px;border-bottom:1px solid var(--line);background:transparent}.global-header-actions{display:flex;align-items:end;justify-content:flex-end;gap:9px}.command-trigger{min-height:43px;display:grid;grid-template-columns:auto auto;align-items:center;column-gap:10px;padding:6px 8px 6px 11px;border:1px solid var(--line);border-radius:8px;color:var(--text);text-align:left;background:var(--surface)}.command-trigger>span{font-size:11px;font-weight:800}.command-trigger>small{grid-column:1;color:var(--muted);font-size:9px}.command-trigger>kbd{grid-column:2;grid-row:1 / 3;color:var(--muted)}.command-trigger:hover{border-color:var(--ink)}.sync-context{display:flex;align-items:center;gap:.65rem;min-width:0}.student-avatar{width:2.35rem;height:2.35rem;flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;color:#fff;background:var(--ink);font-size:.68rem;font-weight:850;letter-spacing:.03em}.student-copy{min-width:0;display:grid;gap:.15rem}.student-copy strong,.student-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-copy strong{font-size:12px}.student-copy small{color:var(--muted);font-size:10px}.logout-action{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.logout-action kbd{font-size:8px}[data-nav-block=true]:focus-visible{outline:3px solid var(--focus);outline-offset:4px}[data-nav-selected=true]{outline:2px solid var(--violet);outline-offset:4px}.period-picker{position:relative;display:grid;gap:5px;min-width:270px}.period-label,.filter-control span{color:var(--muted);font-size:11px}.period-trigger{width:100%;min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.42rem .65rem;border:1px solid var(--line);border-radius:8px;color:var(--text);text-align:left;background:var(--surface)}.period-trigger>span{min-width:0;display:grid;gap:.05rem}.period-trigger strong,.period-trigger small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-trigger strong{font-size:.72rem}.period-trigger small{color:var(--muted);font-size:.58rem}.period-trigger>i{width:.5rem;height:.5rem;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}.period-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:75;width:min(23rem,calc(100vw - 2rem));max-height:min(31rem,70dvh);overflow:auto;padding:.4rem;border:1px solid #454b57;border-radius:12px;color:#fff;background:var(--ink);box-shadow:0 24px 60px #0f101457}.period-option{width:100%;min-height:3.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .65rem;border:1px solid transparent;border-radius:8px;color:#fff;text-align:left;background:transparent}.period-option:hover,.period-option:focus-visible{border-color:#4e5665;background:#252b35}.period-option[aria-selected=true]{border-color:#8bdbd2;background:#202a31}.period-option>span:first-child{display:grid;gap:.13rem}.period-option strong{font-size:.72rem}.period-option small{color:#b8bec8;font-size:.61rem}.period-option.semester{padding-left:1.1rem}.period-option.all{margin-top:.35rem;border-top-color:#454b57}.period-current{color:#8bdbd2;font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.period-help{position:sticky;bottom:-.4rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem;margin:.4rem -.4rem -.4rem;padding:.55rem .65rem;border-top:1px solid #343a45;color:#aeb5c0;font-size:.55rem;background:#171b22}.period-help span{display:inline-flex;align-items:center;gap:.25rem}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);min-height:166px;margin-bottom:var(--space-5)}.page-heading-copy{max-width:790px}.eyebrow{color:var(--cyan);font-size:11px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.page-heading .eyebrow{display:inline-flex;padding:9px 13px 8px;color:#fff;letter-spacing:.13em;background:var(--ink)}h1{max-width:870px;margin-top:17px;font-family:Impact,Arial Narrow,Roboto Condensed,sans-serif;font-size:clamp(44px,5.7vw,80px);font-weight:900;line-height:.86;letter-spacing:.005em;text-transform:uppercase}h2{font-size:19px;font-weight:850;letter-spacing:-.045em}h3{font-size:13px}.page-description{max-width:650px;color:var(--muted);font-size:13px;line-height:1.55;margin-top:16px;text-wrap:pretty}.grid{display:grid;gap:var(--space-3)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card,.panel,.chart-card,.ue-card,.semester-row,.group-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.border-glow{position:relative}.chroma-card{overflow:hidden}.metric-card{min-height:137px;padding:18px}.metric-card>span{color:var(--muted);font-size:12px}.metric-card strong{display:block;font-size:35px;font-weight:900;letter-spacing:-.07em;margin:19px 0 7px;font-variant-numeric:tabular-nums}.metric-card small{color:var(--muted);font-size:11px}.metric-card.accent{border-color:var(--ink);color:#fff;background:var(--ink)}.metric-card.accent>span,.metric-card.accent small{color:#b9bec8}.metric-card.accent strong{color:#8bdbd2}.metric-card.warn strong{color:var(--yellow)}.section-space{margin-top:13px}.panel,.chart-card{padding:var(--space-5)}.panel-heading,.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-heading p,.card-heading p{color:var(--muted);font-size:12px;line-height:1.45;margin-top:6px;text-wrap:pretty}.panel-kicker{padding:5px 8px;border-radius:4px;color:var(--muted);font-size:11px;background:#efede6}.content-grid{grid-template-columns:minmax(0,1.24fr) minmax(300px,.76fr);margin-top:13px}.synthesis-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);align-items:stretch;margin-top:13px}.ue-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ue-card{width:100%;min-height:162px;padding:17px;color:var(--text);text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.ue-card:hover,.ue-card:focus-visible{border-color:var(--ink);box-shadow:var(--object-shadow);transform:translateY(-3px)}.ue-code,.module-code{color:var(--cyan);font-size:10px;font-weight:850;letter-spacing:.03em}.ue-card strong{display:block;font-size:30px;font-weight:900;letter-spacing:-.07em;margin:23px 0 5px}.ue-card strong small{color:var(--muted);font-family:inherit;font-size:12px;letter-spacing:0;margin-left:2px}.ue-title{display:block;font-size:11px;font-weight:750}.ue-link{display:block;color:var(--violet);font-size:10px;margin-top:14px}.chart-stage{position:relative;width:100%;min-width:0;min-height:260px;overflow:hidden}.chart-stage canvas{width:100%!important;max-width:100%;min-height:260px}.trend-chart{display:grid;min-width:0;gap:12px;overflow:hidden}.trend-canvas{position:relative;width:100%;min-width:0;height:220px;overflow:hidden}.trend-canvas canvas{width:100%!important;max-width:100%;height:100%!important;min-height:0}.trend-filters{display:flex;flex-wrap:wrap;gap:6px}.trend-filters button{min-height:32px;padding:5px 10px;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:transparent;font:inherit;font-size:11px;font-weight:750;cursor:pointer}.trend-filters button:hover{color:var(--text);border-color:#aaa69d}.trend-filters button[aria-pressed=true]{color:var(--text);border-color:var(--text);background:#efede6}.trend-filters button:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.chart-summary{padding:10px 12px;margin:-4px 0 14px;border:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.5;background:#f3f7f5}.chart-empty,.recent-empty{min-height:220px;display:grid;align-content:center;justify-items:start;gap:7px;color:var(--muted)}.chart-empty strong,.recent-empty strong{color:var(--text);font-size:13px}.chart-empty p,.recent-empty p{max-width:440px;font-size:11px;line-height:1.5}.chart-toggle{padding:7px 10px;border:1px solid var(--line);border-radius:9px;color:var(--violet);font-size:10px;background:transparent;transition:border-color .16s ease,background .16s ease}.chart-toggle:hover,.chart-toggle:focus-visible{border-color:var(--violet);background:#f3f0ff}.chart-table-wrap{min-height:0}.analysis-grid .chart-card.table-mode{grid-column:1 / -1}.module-mini{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #ebe8e1}.module-mini:last-child{border-bottom:0}.module-mini span,.module-mini strong{display:block}.module-mini span{color:var(--cyan);font-size:10px;font-weight:850}.module-mini strong{font-size:11px;margin-top:3px}.module-mini b{font-size:18px;font-weight:850}.recent-results{display:flex;min-width:0;flex-direction:column}.recent-result{width:100%;display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 0;border:0;border-bottom:1px solid #ebe8e1;color:var(--text);text-align:left;background:transparent}.recent-result:hover .recent-result-label strong,.recent-result:focus-visible .recent-result-label strong{color:var(--violet);text-decoration:underline;text-underline-offset:3px}.recent-result-date,.recent-result-label{display:grid;gap:4px;min-width:0}.recent-result-date time,.recent-result-label small{color:var(--muted);font-size:10px}.recent-result-date b{width:max-content;padding:3px 5px;border:1px solid #8a5900;color:#654300;font-size:10px;text-transform:uppercase;background:#fff5dd}.recent-result-label strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.recent-result-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-result-score{font-size:19px;font-weight:850;font-variant-numeric:tabular-nums}.recent-result-score small{color:var(--muted);font-size:10px;margin-left:2px}.text-link,.table-link{border:0;color:var(--violet);font-size:11px;font-weight:750;text-decoration:none;background:transparent}.text-link{padding:14px 0 0}.changes{margin:0 0 13px;padding:15px 18px;border:1px solid rgba(216,154,46,.5);border-radius:16px;background:#fff5dd}.changes strong{font-size:12px}.changes p{color:#765d2d;font-size:11px;line-height:1.5;margin-top:5px}.data-quality{display:grid;grid-template-columns:minmax(180px,.65fr) 1.35fr;gap:10px 18px;margin:0 0 13px;padding:14px 16px;border:1px solid var(--line);background:var(--surface)}.data-quality.indicative{border-color:var(--yellow)}.data-quality.unavailable{border-color:var(--red)}.data-quality div{display:grid;align-content:start;gap:3px}.data-quality strong{font-size:12px}.data-quality span,.data-quality p,.data-quality li{color:var(--muted);font-size:10px;line-height:1.5}.data-quality ul{grid-column:1 / -1;margin:0;padding-left:18px}.ue-context{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:5px}.filter-control select,.search-field input{min-height:43px;border:1px solid var(--line);border-radius:var(--control-radius);color:var(--text);background:#fffdf8e6;outline:none}.filter-control select{padding:0 10px}.filter-control select:focus,.search-field input:focus{border-color:var(--violet);box-shadow:0 0 0 3px #7564e824}.period-trigger:focus-visible,.filter-control select:focus-visible,.search-field input:focus-visible,.auth-form input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.action-button{min-height:43px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--control-radius);color:var(--text);font-size:12px;font-weight:750;background:var(--surface);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.action-button:hover,.action-button:focus-visible{border-color:#817b94;box-shadow:0 8px 16px #14141617;transform:translateY(-1px)}.action-button.primary{border-color:var(--ink);color:#fff;background:var(--ink)}.action-button.secondary{background:transparent}.sidebar .action-button.primary{color:var(--ink);border-color:#8bdbd2;background:#8bdbd2}.sidebar .action-button.secondary{color:var(--ink);border-color:#fffdf8;background:#fffdf8}.action-button.text{border-color:transparent;color:var(--violet);background:transparent}.action-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.notes-search-workspace{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#f8f6f0}.notes-search-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.8rem .85rem .65rem;border-bottom:1px solid var(--line)}.notes-search-heading>div{display:grid;gap:.2rem}.notes-search-heading strong{font-size:.78rem}.notes-search-heading span{color:var(--muted);font-size:.67rem}.search-result-count{flex:none;font-variant-numeric:tabular-nums}.filter-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:13px;background:var(--surface)}.filter-options{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.mobile-filter-toggle{display:none}.search-field{position:relative;flex:1 1 260px}.search-field input{width:100%;padding:0 38px 0 13px}.search-field>span:not(.sr-only),.search-field>kbd{position:absolute;top:10px;right:13px;color:var(--muted)}.search-field>span:not(.sr-only){font-size:20px}.filter-control{display:grid;gap:5px;min-width:145px}.view-tabs{display:inline-flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:12px;background:#e9e6de}.view-tabs button{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 11px;border:0;border-radius:8px;color:var(--muted);font-size:11px;background:transparent}.view-tabs button.active{color:var(--text);background:var(--surface);box-shadow:0 3px 8px #14141614}.shortcut-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:#10121694}.dialog-open{overflow:hidden}.shortcut-dialog{width:min(560px,100%);padding:22px;border:1px solid #454b57;color:#fff;background:var(--ink);box-shadow:var(--object-shadow)}.shortcut-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.shortcut-dialog-heading span{color:#b2b8c3;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.shortcut-dialog-heading h2{margin-top:5px}.shortcut-dialog-heading button{min-height:38px;padding:8px 10px;border:1px solid #4e5665;color:#fff;background:#252b35}.shortcut-description{max-width:440px;margin-top:14px;color:#c2c7d0;font-size:12px;line-height:1.5}.shortcut-dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:20px 0 0;background:#343a45}.shortcut-dialog dl div{padding:12px;background:#1c2129}.shortcut-dialog dt{min-height:24px}.shortcut-dialog dd{color:#b7bdc8;font-size:10px;line-height:1.4;margin:5px 0 0}.command-dialog{width:min(700px,calc(100% - 28px));max-height:min(720px,calc(100dvh - 28px));padding:0;overflow:hidden;border:1px solid #454b57;border-radius:16px;color:#fff;background:var(--ink);box-shadow:0 28px 90px #0a0c107a}.command-dialog::backdrop{background:#101216a8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.command-heading{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:19px 19px 13px}.command-heading span{color:#aeb5c0;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.command-heading h2{margin-top:4px;font-size:20px}.command-close{min-height:38px;display:inline-flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #4e5665;color:#fff;background:#252b35}.command-search{position:relative;display:block;margin:0 19px 12px}.command-search input{width:100%;min-height:52px;padding:0 88px 0 14px;border:1px solid #596170;border-radius:10px;color:#fff;font-size:15px;background:#20252d;outline:none}.command-search input::placeholder{color:#aeb5c0}.command-search input:focus{border-color:#8bdbd2;box-shadow:0 0 0 3px #8bdbd229}.command-search>kbd{position:absolute;top:16px;right:12px;color:#c9ced6}.command-results{max-height:min(430px,52dvh);overflow-y:auto;padding:5px 9px 9px;border-top:1px solid #343a45}.command-results>button{width:100%;min-height:58px;display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid transparent;border-radius:9px;color:#fff;text-align:left;background:transparent}.command-results>button.active{border-color:#4d5664;background:#282e38}.command-result-kind{color:#8bdbd2;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.command-result-copy{min-width:0;display:grid;gap:3px}.command-result-copy strong,.command-result-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-result-copy strong{font-size:12px}.command-result-copy small{color:#b8bec8;font-size:10px}.command-results>button>kbd{color:#9fa7b3;opacity:0}.command-results>button.active>kbd{opacity:1}.command-empty{padding:28px 16px;color:#c5cad2;font-size:12px;line-height:1.5;text-align:center}.command-help{display:flex;gap:18px;padding:10px 19px 12px;border-top:1px solid #343a45;color:#aeb5c0;font-size:9px}.command-help span{display:inline-flex;align-items:center;gap:4px}.notes-toolbar,.sync-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 12px}.notes-toolbar-actions{display:flex;align-items:center;gap:.65rem}.mark-all-seen{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:36px;padding:.45rem .7rem;border:1px solid rgba(22,137,133,.34);border-radius:.5rem;background:#eef8f6;color:#086c68;font-size:.76rem;font-weight:750;cursor:pointer}.mark-all-seen:hover{border-color:#168985;background:#e2f3f0}.mark-all-seen:focus-visible{outline:3px solid rgba(22,137,133,.22);outline-offset:2px}.mark-all-seen span{display:grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .25rem;border-radius:999px;background:#168985;color:#fff;font-size:.68rem}.notes-debug-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem 1rem;margin:0 0 .75rem;padding:.55rem .7rem;border:1px dashed #a98a45;border-radius:.5rem;background:#fff9e9;color:#5d4a20;font-size:.72rem}.notes-debug-bar strong{margin-right:auto}.notes-debug-bar kbd{padding:.08rem .28rem;border:1px solid #d8c794;border-bottom-width:2px;border-radius:.25rem;background:#fffdf7;font:inherit;font-weight:750}.result-count,.sync-line p{color:var(--muted);font-size:11px}.load-more-frame{position:relative;width:max-content;max-width:100%;margin:14px auto 0;padding:2px;overflow:hidden;border-radius:10px;background:var(--line)}.load-more-frame:before{content:"";position:absolute;inset:0;z-index:0;border:2px solid var(--violet);border-radius:10px;clip-path:inset(0 100% 0 0 round 10px);opacity:0}.load-more-frame.loading:before{opacity:1;animation:load-border .76s cubic-bezier(.3,0,.8,.15) forwards}.load-more-frame .load-more{position:relative;z-index:1;display:block;margin:0;background:var(--surface)}.load-more-frame.loading .load-more{transform:scale(.985);transition:transform .76s cubic-bezier(.3,0,.8,.15)}@keyframes load-border{0%{clip-path:inset(0 100% 0 0 round 10px)}72%{clip-path:inset(0 24% 0 0 round 10px)}to{clip-path:inset(0 round 10px)}}.data-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{color:var(--muted);font-size:10px;font-weight:750;text-align:left;padding:12px;border-bottom:1px solid var(--line);background:#f8f6f0}.data-table td{padding:13px 12px;border-bottom:1px solid #ebe8e1;white-space:nowrap}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td{background:#fffaf0}.data-table small{color:var(--muted)}.notes-table{table-layout:fixed}.notes-table th:nth-child(1){width:10%}.notes-table th:nth-child(2){width:10%}.notes-table th:nth-child(3){width:18%}.notes-table th:nth-child(4){width:18%}.notes-table th:nth-child(5){width:9%}.notes-table th:nth-child(6){width:35%}.notes-table td{padding-block:9px;overflow:hidden;text-overflow:ellipsis}.notes-table td:nth-child(4){color:var(--ink);font-weight:800}.notes-table th:last-child,.notes-table td:last-child{padding-right:1.5rem}.notes-table td:last-child{overflow:visible}.mobile-note-meta{display:none!important}.score{color:var(--cyan);font-weight:850}.chip{display:inline-flex;padding:5px 8px;border-radius:4px;color:var(--muted);font-size:10px;background:#efede6}.chip.new{color:#147873;background:#dff4f0}.empty-cell{color:var(--muted);padding:25px!important;text-align:center}.state-message{padding:22px;border:1px dashed var(--line);border-radius:16px;background:#fffdf8cc}.state-message strong{font-size:19px}.state-message p{max-width:600px;color:var(--muted);font-size:12px;line-height:1.5;margin:7px 0 14px}.state-message.error{border-color:#ca525a73;background:#fff0ef}.auth-card{max-width:650px;padding:27px;border:1px solid var(--ink);border-radius:var(--radius);color:#fff;background:var(--ink);box-shadow:var(--object-shadow)}.auth-card h2{font-size:23px;margin-top:7px}.auth-card h1{font-size:35px}.auth-card p{color:#b7bdc8;font-size:12px;line-height:1.55;margin:10px 0 18px}.auth-form{display:grid;gap:13px;max-width:430px}.auth-form label{display:grid;gap:6px;color:#c8cdd5;font-size:10px;font-weight:750}.auth-form input{width:100%;min-height:45px;padding:0 13px;border:1px solid #4e5665;border-radius:var(--control-radius);color:#fff;background:#252b35;outline:none}.auth-form input:focus{border-color:#8bdbd2;box-shadow:0 0 0 3px #8bdbd224}.auth-form .action-button{width:max-content}.auth-card .auth-error{color:#ffb8bc;margin:0}.auth-actions{display:flex;gap:8px;flex-wrap:wrap}.auth-card .action-button.secondary{border-color:#4e5665;color:#fff;background:#252b35}.auth-card .action-button.primary{border-color:#8bdbd2;color:var(--ink);background:#8bdbd2}.gateway-shell,.cas-shell{min-height:100dvh;display:grid;place-items:center;padding:clamp(1rem,4vw,4rem)}.gateway-shell{background:#f1eee6}.gateway-card{width:min(70rem,100%);padding:clamp(1.4rem,4vw,3.5rem);border:1px solid #c9c4b8;background:#fffdf8;box-shadow:0 22px 60px #191b201a}.cas-brand>span{width:2.6rem;height:2.6rem;display:grid;place-items:center;color:#fff;background:#101216;font-weight:900;letter-spacing:-.08em}.gateway-card h1{max-width:900px;margin:0;font-size:clamp(1.8rem,3.4vw,3.35rem);line-height:1.08;letter-spacing:.035em}.installer-card h1{max-width:760px;margin:.5rem 0 1rem;font-size:clamp(2.2rem,5.5vw,5.2rem);line-height:.93;letter-spacing:-.055em}.gateway-intro,.installer-card>p{max-width:690px;color:var(--muted);font-size:clamp(.92rem,1.4vw,1.08rem);line-height:1.6}.gateway-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 0}.gateway-option{min-height:18rem;display:flex;flex-direction:column;align-items:flex-start;padding:1.6rem;border:1px solid #bdb8ac;border-radius:.75rem;color:var(--text);text-align:left;background:#fffdf8;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.gateway-option:hover,.gateway-option:focus-visible{transform:translateY(-3px);border-color:#101216;box-shadow:0 14px 30px #191b2017}.gateway-option:active{transform:translateY(0) scale(.995)}.gateway-option.selfhost{position:relative;border:2px solid #db6927;background:#fff8f0;box-shadow:0 12px 30px #b14a141a}.gateway-option.selfhost:hover,.gateway-option.selfhost:focus-visible{border-color:#9f3f0f;box-shadow:0 18px 36px #b14a1429}.gateway-option.hosted{color:#fff;border-color:#101216;background:#101216}.gateway-option-topline{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.gateway-option .option-label{color:#77736a;font-size:.66rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.gateway-option.selfhost .option-label{padding:.35rem .5rem;color:#fff;background:#b94c16}.gateway-option.hosted .option-label{color:#8bdbd2}.o2switch-brand{margin:1.35rem 0 .55rem;color:#252525;font-size:clamp(2rem,3.5vw,3.15rem);font-weight:850;letter-spacing:-.055em;line-height:.85}.o2switch-brand b{color:#dc6423;font-weight:900}.o2switch-duration,.hosted-speed{flex:none;display:inline-flex;align-items:center;min-height:1.75rem;padding:.3rem .55rem;border-radius:2rem;font-size:.7rem;font-weight:850;letter-spacing:.02em}.o2switch-duration{border:1px solid #d45b1d;color:#8f350c;background:#fff1e5}.hosted-speed{border:1px solid #5e6670;color:#fff;background:#282d34}.gateway-option>strong{max-width:22rem;margin:2rem 0 .7rem;font-size:clamp(1.45rem,2.5vw,2.25rem);line-height:1.05}.gateway-option.selfhost>strong{margin:.55rem 0 .7rem}.gateway-option p{color:inherit;opacity:.72;line-height:1.5}.option-summary{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.35rem 0}.option-summary>span{padding:.38rem .52rem;border:1px solid currentColor;border-radius:.35rem;font-size:.72rem;font-weight:750;opacity:.72}.option-action{margin-top:auto;padding-top:1rem;font-weight:800}.option-action i{margin-left:.35rem;font-style:normal;transition:transform .16s ease}.gateway-option:hover .option-action i,.gateway-option:focus-visible .option-action i{display:inline-block;transform:translate(4px)}.remember-choice{position:relative;min-height:5.4rem;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;margin-top:1.2rem;padding:1rem 1.2rem;border:1px solid #c8c2b6;border-radius:.7rem;background:#f7f4ed;cursor:pointer;transition:border-color .16s ease,background .16s ease}.remember-choice:hover{border-color:#817b70;background:#f2eee5}.remember-choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.remember-choice input{position:absolute;width:1px;height:1px;opacity:0}.remember-switch{width:3rem;height:1.65rem;display:block;padding:.18rem;border:1px solid #8f8a80;border-radius:2rem;background:#d8d3c9;transition:background .18s ease,border-color .18s ease}.remember-switch i{width:1.15rem;height:1.15rem;display:block;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000040;transition:transform .18s ease}.remember-choice input:checked+.remember-switch{border-color:#087c77;background:#087c77}.remember-choice input:checked+.remember-switch i{transform:translate(1.3rem)}.remember-copy{display:grid;gap:.2rem}.remember-copy strong{font-size:.95rem}.remember-copy small{max-width:43rem;color:var(--muted);line-height:1.4}.remember-state{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.installer-card{width:min(52rem,100%);padding:clamp(1.5rem,5vw,4rem);border:1px solid #c9c4b8;background:#fffdf8;box-shadow:0 22px 60px #191b201a}.installer-status{display:inline-flex;margin:2rem 0 3rem;padding:.35rem .6rem;color:#744b00;border:1px solid #c68b26;background:#fff2d6;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.installer-card ol{display:grid;gap:.75rem;margin:2rem 0;padding-left:1.3rem}.installer-command{display:block;overflow-wrap:anywhere;padding:1rem;border:1px solid #252a33;border-radius:.45rem;color:#fff;background:#15181e;font-size:.76rem;line-height:1.5;-webkit-user-select:all;user-select:all}.installer-card .installer-detail{margin-top:1rem;font-size:.72rem}.o2-tutorial{min-height:100dvh;padding-bottom:clamp(4rem,9vw,8rem);color:var(--ink);background:#f1eee6}.o2-tutorial-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1rem,5vw,4rem);border-bottom:1px solid rgba(201,196,184,.85);background:#f1eee6f5}.o2-tutorial-header>span{padding:.35rem .55rem;color:#8d390f;border:1px solid #d36b31;background:#fff8f0;font-size:.65rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}.o2-tutorial-hero{width:min(70rem,calc(100% - 2rem));margin:0 auto;padding:clamp(4rem,10vw,8rem) 0 clamp(3rem,7vw,6rem)}.o2-tutorial-hero h1{max-width:13ch;font-size:clamp(2.7rem,7vw,6.4rem);line-height:.87}.o2-tutorial-hero>p:not(.eyebrow){max-width:43rem;margin:1.25rem 0 1.5rem;color:var(--muted);font-size:clamp(.95rem,1.5vw,1.15rem);line-height:1.6}.tutorial-step{width:min(70rem,calc(100% - 2rem));display:grid;grid-template-columns:minmax(15rem,.62fr) minmax(0,1.38fr);align-items:center;gap:clamp(1.5rem,5vw,4.5rem);margin:0 auto clamp(5rem,10vw,9rem)}.tutorial-step-copy>span,.installation-command-section>div:first-child>span{color:var(--cyan);font-size:.67rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.tutorial-step-copy h2,.installation-command-section h2{margin:.45rem 0 .8rem;font-size:clamp(1.65rem,3vw,2.7rem);line-height:1}.tutorial-step-copy p,.installation-command-section p{color:var(--muted);font-size:.82rem;line-height:1.6}.tutorial-step-copy ul{display:grid;gap:.45rem;margin-top:1rem;padding-left:1.1rem;color:var(--muted);font-size:.72rem}.tutorial-step-copy .tutorial-caption{margin-top:1rem;padding-left:.75rem;border-left:2px solid var(--line);font-size:.66rem}.tutorial-visual{min-width:0;padding:.65rem;border:1px solid #c9c4b8;border-radius:1rem;background:#fffdf8;box-shadow:0 20px 45px #191b2017}.tutorial-svg{display:block;width:100%;height:auto;overflow:visible}.tutorial-svg text{fill:#262a33;font-family:Arial,sans-serif;font-size:12px}.browser-frame{fill:#f6f7f9;stroke:#bfc5ce;stroke-width:2}.browser-bar{fill:#20242c}.browser-bar~circle,.terminal-bar~circle{fill:#6b7280}.cpanel-sidebar{fill:#303b50}.cpanel-svg .cpanel-sidebar~text{fill:#e6edf7}.cpanel-logo{fill:#ff7a26!important;font-size:24px!important;font-weight:800}.svg-muted{fill:#707782!important;font-size:11px!important}.svg-page-title{font-size:22px!important;font-weight:800}.svg-section-title{font-size:15px!important;font-weight:800}.svg-search{fill:#fff;stroke:#c9cdd3}.tool-tile rect{fill:#fff;stroke:#c9cdd3}.tool-tile path,.tool-tile circle{fill:none;stroke:#df6425;stroke-width:2}.tool-tile text{font-weight:700}.terminal-tile rect:first-child{stroke:#df6425;stroke-width:2}.scroll-track{fill:#e0e2e6}.scroll-thumb{fill:#9198a3}.cpanel-scroll-content{transform-origin:center}.tutorial-cursor{transform:translate(620px,365px)}.tutorial-cursor path{fill:#101216;stroke:#fff;stroke-width:1.5}.cursor-click{fill:none;stroke:#df6425;stroke-width:3;opacity:0}.terminal-frame{fill:#11151c;stroke:#394150;stroke-width:2}.terminal-bar{fill:#252b35}.terminal-title{fill:#c8cdd5!important;font-size:11px!important}.terminal-svg text{fill:#d8dee9;font-family:Consolas,monospace;font-size:12px}.terminal-prompt{fill:#7dd3c7!important}.terminal-command-svg{fill:#fff!important}.terminal-step{fill:#73b6ff}.terminal-success{fill:#79d39a!important;font-weight:700}.terminal-output{opacity:0}.terminal-caret{fill:#f3f4f6}.installation-command-section{width:min(70rem,calc(100% - 2rem));margin:0 auto;padding:clamp(1.5rem,4vw,3rem);border:1px solid #292d35;border-radius:1rem;color:#fff;background:#11151c}.installation-command-section h2{color:#fff}.installation-command-section p{color:#adb4c0}.copy-command{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;margin-top:1.4rem}.copy-command code{min-width:0;display:flex;align-items:center;padding:1rem;overflow-wrap:anywhere;border:1px solid #48515f;border-radius:.5rem;color:#dffbf7;background:#20262f;font-size:clamp(.7rem,1.3vw,.86rem);line-height:1.5}.copy-command button{min-width:6.5rem;border:1px solid #8bdbd2;border-radius:.5rem;color:#11151c;background:#8bdbd2;font-size:.72rem;font-weight:850}.command-help{margin-top:.9rem;font-size:.68rem!important}[data-install-reveal]{opacity:0;transform:translateY(24px);transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}[data-install-reveal].is-visible{opacity:1;transform:none}.tutorial-step.is-visible .cpanel-scroll-content{animation:cpanel-demo-scroll 5.4s cubic-bezier(.65,0,.25,1) .45s both}.tutorial-step.is-visible .scroll-thumb{animation:cpanel-scroll-thumb 5.4s cubic-bezier(.65,0,.25,1) .45s both}.tutorial-step.is-visible .tutorial-cursor{animation:cpanel-cursor 5.4s cubic-bezier(.2,.8,.2,1) .45s both}.tutorial-step.is-visible .cursor-click{animation:cpanel-click 5.4s ease .45s both}.terminal-step-section.is-visible .terminal-command-svg{animation:terminal-command-in .45s ease-out .6s both}.terminal-step-section.is-visible .terminal-output{animation:terminal-output-in .5s ease-out 1.35s both}.terminal-step-section.is-visible .terminal-caret{animation:terminal-caret 1s steps(1) .4s infinite}@keyframes cpanel-demo-scroll{0%,18%{transform:translateY(0)}42%,to{transform:translateY(-82px)}}@keyframes cpanel-scroll-thumb{0%,18%{transform:translateY(0)}42%,to{transform:translateY(165px)}}@keyframes cpanel-cursor{0%,48%{transform:translate(620px,365px)}72%,to{transform:translate(245px,282px)}}@keyframes cpanel-click{0%,70%,78%,to{opacity:0;r:8}73%{opacity:1;r:20}}@keyframes terminal-command-in{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes terminal-output-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes terminal-caret{50%{opacity:0}}@media(max-width:760px){.o2-tutorial-header{position:relative;align-items:flex-start}.o2-tutorial-header>span{font-size:.55rem}.o2-tutorial-hero{padding:3rem 0 4rem}.o2-tutorial-hero h1{font-size:clamp(2.5rem,14vw,4.2rem)}.tutorial-step{grid-template-columns:1fr;margin-bottom:4.5rem}.tutorial-step-copy{max-width:34rem}.tutorial-visual{margin-inline:-.25rem;padding:.35rem;border-radius:.7rem;overflow:hidden}.copy-command{grid-template-columns:1fr}.copy-command button{min-height:3rem}.installation-command-section{border-radius:0;width:100%}.terminal-svg text{font-size:10px}}@media(prefers-reduced-motion:reduce){[data-install-reveal]{opacity:1;transform:none;transition:none}.tutorial-step.is-visible .cpanel-scroll-content{transform:translateY(-82px);animation:none}.tutorial-step.is-visible .scroll-thumb{transform:translateY(165px);animation:none}.tutorial-step.is-visible .tutorial-cursor{transform:translate(245px,282px);animation:none}.tutorial-step.is-visible .cursor-click,.terminal-step-section.is-visible .terminal-command-svg,.terminal-step-section.is-visible .terminal-output,.terminal-step-section.is-visible .terminal-caret{opacity:1;animation:none}}.o2-tutorial-hero h1{max-width:14ch;font-size:clamp(2.5rem,6vw,5.2rem);line-height:.92}.tutorial-svg{overflow:hidden}.cursor-click{transform-box:fill-box;transform-origin:center}@keyframes cpanel-click{0%,70%,78%,to{opacity:0;transform:scale(.45)}73%{opacity:1;transform:scale(1)}}@media(max-width:760px){.o2-tutorial-hero h1{font-size:clamp(2.35rem,12vw,3.5rem)}}.auth-back{min-height:2.75rem;padding:.5rem 0;border:0;color:inherit;background:transparent;font-weight:750}.cas-shell{align-content:center;background:#4698ba}.cas-brand{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;justify-content:center;column-gap:.8rem;align-items:center;width:min(58rem,100%);margin:0 auto 2rem;color:#fff}.cas-brand>span{grid-row:1/3;color:#4698ba;background:#fff}.cas-brand strong{align-self:end;font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.6rem);font-weight:500;line-height:1}.cas-brand small{align-self:start;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.cas-card{position:relative;width:min(58rem,100%);padding:clamp(1.5rem,4vw,2.5rem);border-radius:1.25rem;color:#17191d;background:#fff;box-shadow:8px 10px #2a373e3d}.cas-card .auth-back{margin-bottom:.5rem;color:#356f8a}.cas-warning{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:1px solid #c48a1f;background:#fff5dd}.cas-warning strong{color:#674408}.cas-warning span{color:#665d4c;font-size:.78rem;text-align:right}.cas-heading{display:grid;justify-items:center;gap:.75rem;margin:1.4rem 0 .8rem}.cas-heading h1{color:#3d8cac;font:400 clamp(2rem,4vw,2.6rem) Georgia,serif;text-shadow:1px 2px 0 #d2d2d2}.cas-lock{position:relative;width:3.8rem;height:3.8rem;display:grid;place-items:center;border-radius:50%;color:#fff;background:#30343a}.cas-lock:before{content:"";position:absolute;top:1rem;width:.95rem;height:.9rem;border:.18rem solid #fff;border-bottom:0;border-radius:.55rem .55rem 0 0}.cas-lock:after{content:"";position:absolute;top:1.75rem;width:1.35rem;height:1.05rem;border-radius:.12rem;background:#fff}.cas-security{max-width:43rem;margin:.8rem auto 1.4rem;color:#555b63;font-size:.86rem;line-height:1.55;text-align:center}.cas-form{display:grid;max-width:46rem;margin:auto}.cas-form label{margin:.8rem 0 .35rem;font-weight:800}.cas-form input{width:100%;min-height:3rem;padding:0 .85rem;border:2px solid #2b2e32;border-radius:.7rem;color:#17191d;background:#e3e3e3}.cas-form input:focus-visible{outline:3px solid #0f5f84;outline-offset:3px;background:#fff}.cas-submit{min-height:3.4rem;margin-top:2rem;border:0;border-radius:.7rem;color:#fff;background:#7db5cd;font-size:1rem;font-weight:800;text-transform:uppercase}.cas-submit:hover:not(:disabled),.cas-submit:focus-visible{background:#397f9e}.cas-submit:disabled{cursor:wait;opacity:.7}.cas-form .auth-error{margin:.8rem 0 0;padding:.65rem .8rem;color:#8f1e28;border:1px solid #d99197;background:#fff0f1}.cas-footnote{max-width:46rem;margin:1.2rem auto 0;color:#4f555c;font-size:.78rem;line-height:1.5}@media(max-width:720px){.gateway-shell{display:block;min-height:100dvh;padding:0;background:#fffdf8}.cas-shell{padding:1rem;place-items:start center}.gateway-card{width:100%;min-height:100dvh;padding:max(1.35rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;box-shadow:none}.installer-card{padding:1.25rem}.gateway-card h1{max-width:13ch;font-size:clamp(1.75rem,8.7vw,2.2rem);line-height:1.02;letter-spacing:.035em;text-wrap:balance}.installer-card h1{font-size:2.7rem}.gateway-options{grid-template-columns:1fr;gap:.75rem;margin:.8rem 0 0}.gateway-option{min-height:0;padding:1rem;border-radius:.85rem}.gateway-option:hover,.gateway-option:focus-visible{transform:none}.gateway-option .option-label{font-size:.59rem}.o2switch-brand{margin:1rem 0 .55rem;font-size:2.35rem}.gateway-option>strong,.gateway-option.selfhost>strong{max-width:15rem;margin:.75rem 0 .45rem;font-size:1.45rem}.gateway-option p{font-size:.92rem;line-height:1.45}.option-summary{gap:.35rem;margin:.9rem 0 1.1rem}.option-summary>span{font-size:.65rem}.option-action{width:100%;display:flex;justify-content:space-between;align-items:center;padding-top:.85rem;border-top:1px solid currentColor;font-size:.86rem}.remember-choice{min-height:0;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;margin:.95rem 0 .8rem;padding:.8rem .9rem}.remember-switch{grid-column:2;grid-row:1}.remember-copy{grid-column:1;grid-row:1}.remember-copy strong{font-size:.84rem}.remember-copy small,.remember-state{display:none}.cas-brand{margin-top:1rem}.cas-card{border-radius:.9rem;box-shadow:5px 6px #2a373e3d}.cas-warning{display:grid}.cas-warning span{text-align:left}}.skeleton-page{display:grid;gap:13px}.skeleton-status-label{justify-self:start;padding:.38rem .62rem;border:1px solid rgba(22,137,133,.18);border-radius:999px;background:#eef8f6;color:#0a716c;font-size:.72rem;font-weight:700}.skeleton{position:relative;overflow:hidden;display:block;border-radius:4px;background:#e1ded6}.skeleton:after,.insight-skeleton i:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:shimmer 1.25s cubic-bezier(.2,0,0,1) infinite}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-heading{min-height:220px;display:grid;align-content:end;gap:.75rem;padding:0 0 .3rem .8rem;border-left:3px solid rgba(98,83,197,.7)}.skeleton-kicker{width:7.5rem;height:2rem}.skeleton-title-lines{display:grid;gap:.45rem;width:min(47rem,82%)}.skeleton-title-lines .skeleton{height:3.35rem}.skeleton-title-lines .skeleton:last-child{width:72%}.skeleton-copy{width:min(28rem,68%);height:.7rem}.skeleton-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.skeleton-metric{min-height:137px;display:grid;align-content:space-between;gap:.8rem;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.skeleton-label{width:45%;height:.6rem}.skeleton-value{width:38%;height:2.2rem}.skeleton-detail{width:62%;height:.55rem}.skeleton-dashboard-grid,.skeleton-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.skeleton-content,.skeleton-note-card{min-height:280px;display:grid;align-content:start;gap:0;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.skeleton-content-head,.skeleton-card-heading{min-height:2.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line)}.skeleton-control{width:7rem;height:2rem}.skeleton-row{min-height:3.2rem;display:grid;grid-template-columns:minmax(6rem,1fr) 4rem 7rem;align-items:center;gap:1rem;border-bottom:1px solid #ebe8e1}.skeleton-row:last-child{border-bottom:0}.skeleton-row-main{width:72%;height:.65rem}.skeleton-row-value{width:3.3rem;height:1.1rem}.skeleton-row-chart{width:100%;height:.45rem}.skeleton-filter-panel{padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.skeleton-filter-heading{display:flex;justify-content:space-between;padding-bottom:.8rem}.skeleton-count{width:4.5rem;height:.55rem}.skeleton-filter-grid{display:grid;grid-template-columns:minmax(14rem,1.7fr) repeat(4,minmax(6.5rem,.75fr));gap:.65rem}.skeleton-search{height:2.6rem}.skeleton-filter-grid .skeleton-control{width:100%;height:2.6rem}.skeleton-note-card{min-height:250px;padding:1rem;container-type:inline-size}.skeleton-card-heading{display:grid;justify-content:start;align-content:center;gap:.4rem}.skeleton-code{width:8.5rem;height:.48rem}.skeleton-module-title{width:11rem;height:.8rem}.skeleton-note-row{min-height:3.35rem;display:grid;grid-template-columns:minmax(7rem,1fr) auto minmax(14rem,18rem);align-items:center;gap:.65rem;border-bottom:1px solid #ebe8e1}.skeleton-note-row:last-child{border-bottom:0}.skeleton-note-row>span:first-child{display:grid;gap:.25rem}.skeleton-evaluation-title{width:68%;height:.65rem}.skeleton-evaluation-date{width:42%;height:.42rem;opacity:.72}.skeleton-note-value{width:2.9rem;height:1.15rem}.skeleton-chart-card{min-height:340px}.skeleton-chart-stage{position:relative;min-height:235px;margin-top:1rem;overflow:hidden;border-left:1px solid #d8d4ca;border-bottom:1px solid #d8d4ca}.skeleton-bars{height:100%;min-height:235px;display:flex;align-items:flex-end;gap:clamp(.2rem,1vw,.65rem);padding:.8rem .5rem 0}.skeleton-bar{width:100%;min-width:0;height:46%;border-radius:3px 3px 0 0}.skeleton-bar:nth-child(2n){height:72%}.skeleton-bar:nth-child(3n){height:31%}.skeleton-bar:nth-child(5n){height:88%}.skeleton-chart-histogram .skeleton-bars{gap:.2rem}.skeleton-chart-histogram .skeleton-bar{height:18%}.skeleton-chart-histogram .skeleton-bar:nth-child(2){height:32%}.skeleton-chart-histogram .skeleton-bar:nth-child(3){height:55%}.skeleton-chart-histogram .skeleton-bar:nth-child(4){height:76%}.skeleton-chart-histogram .skeleton-bar:nth-child(5),.skeleton-chart-histogram .skeleton-bar:nth-child(6){height:92%}.skeleton-chart-histogram .skeleton-bar:nth-child(7){height:78%}.skeleton-chart-histogram .skeleton-bar:nth-child(8){height:59%}.skeleton-chart-histogram .skeleton-bar:nth-child(9){height:38%}.skeleton-chart-histogram .skeleton-bar:nth-child(n+10){height:22%}.skeleton-chart-line{position:absolute;left:8%;width:76%;height:3px;border-radius:3px;background:#d5d1c8;transform-origin:left center}.skeleton-chart-line.first{top:62%;transform:rotate(-10deg)}.skeleton-chart-line.second{top:48%;transform:rotate(7deg);opacity:.72}.skeleton-chart-dot{position:absolute;width:.65rem;height:.65rem;border-radius:50%;background:#d5d1c8}.skeleton-chart-dot.first{left:18%;top:54%}.skeleton-chart-dot.second{left:48%;top:38%}.skeleton-chart-dot.third{right:14%;top:27%}.skeleton-chart-radar .skeleton-chart-stage{border:0}.skeleton-radar-ring{position:absolute;inset:10% 21%;border:3px solid #d8d4ca;border-radius:50%}.skeleton-radar-ring.inner{inset:27% 34%;border-width:2px}.skeleton-radar-spoke{position:absolute;left:50%;top:10%;width:1px;height:80%;background:#d8d4ca;transform-origin:center}.skeleton-radar-spoke.second{transform:rotate(60deg)}.skeleton-radar-spoke.third{transform:rotate(-60deg)}.skeleton-semester-list{display:grid;gap:.65rem}.skeleton-semester-card{min-height:6rem;display:grid;grid-template-columns:3.5rem minmax(0,1fr) 5rem;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.skeleton-semester-mark{width:3.5rem;height:3.5rem}.skeleton-semester-copy{width:min(20rem,70%);height:.8rem}.skeleton-semester-value{width:4rem;height:1.6rem;justify-self:end}.insight-skeleton{width:100%;min-width:0;display:grid;grid-template-columns:10.875rem 8.25rem 2.9rem;justify-content:space-around;align-items:center;gap:clamp(.55rem,1.5cqi,1rem);padding-inline:clamp(.25rem,2cqi,1rem)}.insight-skeleton i{position:relative;overflow:hidden;display:block;border-radius:3px;background:#e1ded6}.insight-skeleton-range{width:9.525rem;height:2px;justify-self:center}.insight-skeleton-curve{width:8.25rem;height:2.18rem}.insight-skeleton-rank{width:2.2rem;height:1.1rem;justify-self:end}.evaluation-insight.pending .insight-skeleton{opacity:.58}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;align-items:stretch}.analysis-grid>*,.chart-card{min-width:0}.analysis-grid .chart-card{height:100%}.analysis-note{margin-top:13px;padding:15px 17px;border:1px solid var(--line);border-radius:14px;color:var(--muted);background:#fffdf8c7}.analysis-note strong{color:var(--text);font-size:11px}.analysis-note p{font-size:11px;line-height:1.5;margin-top:5px}.semester-list{display:grid;gap:10px}.period-overview{margin-bottom:13px;padding:var(--space-5);border:1px solid var(--ink);border-radius:var(--radius);color:#fff;background:var(--ink);box-shadow:var(--shadow)}.period-overview .panel-heading p{color:#b7bdc8}.period-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem}.period-overview-grid button{min-height:7rem;display:grid;align-content:space-between;gap:.35rem;padding:.85rem;border:1px solid #3a414d;border-radius:10px;color:#fff;text-align:left;background:#1b2028}.period-overview-grid button:hover,.period-overview-grid button:focus-visible{border-color:#8bdbd2}.period-overview-grid button.selected{color:#101216;border-color:#8bdbd2;background:#8bdbd2}.period-overview-grid strong{font-size:1rem}.period-overview-grid span{color:inherit;opacity:.76;font-size:.7rem}.period-overview-grid small{color:inherit;opacity:.68;font-size:.62rem}.semester-groups{display:grid;gap:13px}.semester-row{display:grid;grid-template-columns:1.3fr .7fr .7fr .7fr minmax(190px,auto);align-items:center;gap:12px;padding:17px 19px}.semester-row.selected{border-color:var(--ink);box-shadow:var(--object-shadow)}.semester-row strong{display:block;font-size:19px;font-weight:850;margin-top:4px}.semester-row>div>span,.semester-row small{color:var(--muted);font-size:10px}.semester-row .semester-state{color:var(--cyan);font-weight:750}.semester-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.semester-row-actions .action-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}.download-intro{max-width:34rem;margin-top:.5rem;color:var(--muted);font-size:.75rem;line-height:1.5}.group-list{display:grid;gap:10px}.group-card{padding:16px}.group-card-heading{display:flex;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid var(--line)}.group-card-heading strong{color:var(--muted);font-size:11px}.group-note{display:grid;grid-template-columns:1fr 70px 130px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #ebe8e1;font-size:11px}.group-note:last-child{border-bottom:0}.group-note b{color:var(--cyan)}.group-note small{color:var(--muted)}.evaluation-rank{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;white-space:nowrap}.evaluation-rank.loading:before{content:"";width:8px;height:8px;border:1px solid var(--muted);border-right-color:transparent;border-radius:50%;animation:rank-spin .8s linear infinite}.evaluation-rank.insufficient{color:#76500e}.evaluation-rank.unavailable{color:#8a3a40}.evaluation-rank button{min-height:28px;padding:3px 6px;border:1px solid currentColor;color:inherit;font-size:10px;background:transparent}@keyframes rank-spin{to{transform:rotate(360deg)}}.annual-module-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}.annual-module{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:0;color:var(--text);text-align:left;background:var(--surface)}.annual-module:hover strong,.annual-module:focus-visible strong{color:var(--violet);text-decoration:underline;text-underline-offset:3px}.annual-module>span{display:grid;gap:5px;min-width:0}.annual-module strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.annual-module small{color:var(--muted);font-size:10px}.annual-module-values{justify-items:end;flex:none}.annual-module-values b{color:var(--cyan);font-size:14px;font-variant-numeric:tabular-nums}.annual-module-empty{display:grid;justify-items:start;gap:7px;padding:18px 0 4px}.annual-module-empty strong{font-size:13px}.annual-module-empty p{max-width:620px;color:var(--muted);font-size:11px;line-height:1.5}.footer-note{color:var(--muted);font-size:11px;line-height:1.5;margin-top:17px}.filter-context{display:flex;align-items:center;gap:6px;margin-bottom:10px;color:var(--muted);font-size:11px}.filter-context strong{color:var(--text)}.filter-context button{padding:0;border:0;color:var(--violet);font-size:11px;background:transparent;cursor:pointer}@media(max-width:1120px){.main{width:calc(100% - 270px);margin-left:270px;padding:28px 22px 64px}.ue-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1024px){.app-shell kbd,.desktop-shortcut{display:none!important}.sidebar-object{position:sticky;top:12px;left:auto;width:auto;height:auto;margin:12px 18px 0}.sidebar{height:auto;min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding:11px 14px;border-radius:16px}.nav-label{padding:0 4px;margin:0;white-space:nowrap}.nav{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-item{min-width:max-content;padding:10px 11px}.sidebar-account,.sidebar-actions,.sidebar>.shortcut-help{display:none}.sidebar-actions{gap:6px;margin:0}.sidebar-actions .action-button{min-height:38px;padding:8px 11px}.sidebar-actions .secondary{display:none}.main{width:100%;margin-left:0;padding:24px 18px 56px}}@media(max-width:780px){body{min-width:0}.app-shell{display:block}.sidebar-object{position:fixed;inset:auto max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));width:auto;height:auto;margin:0;z-index:60}.sidebar{height:auto;min-height:0;display:block;padding:5px;border-radius:14px;box-shadow:0 16px 48px #0f101461}.nav-label,.sidebar-actions,.sidebar>.shortcut-help{display:none}.nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;overflow:visible}.nav-item{min-width:0;min-height:54px;display:grid;place-items:center;align-content:center;gap:0;padding:5px 2px;font-size:10px;line-height:1.1;text-align:center}.nav-item kbd{min-width:0;padding:1px 3px;font-size:7px;opacity:.72}.nav-item.active{box-shadow:inset 0 -3px #8bdbd2}.main,.global-header,.page-heading,.panel,.chart-card{width:100%;max-width:none}.main{width:100%;margin-left:0;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) calc(92px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.main:focus-visible .page-heading{padding-left:0;box-shadow:none}.global-header,.page-heading{align-items:flex-start;flex-direction:column}.global-header{gap:15px;margin-bottom:22px;padding:0 0 16px}.global-header-actions{width:100%;align-items:stretch}.global-header-actions .period-picker{flex:1}.page-heading{min-height:0;gap:18px;margin-bottom:24px}.page-heading .eyebrow{padding:7px 9px 6px;font-size:9px}.page-heading>.action-button{width:100%}h1{max-width:12ch;margin-top:12px;font-size:clamp(32px,10vw,44px);line-height:.94}.page-description{font-size:14px;line-height:1.55;margin-top:13px}.period-picker{width:100%;min-width:0}.metrics,.content-grid,.synthesis-grid,.analysis-grid,.skeleton-metrics,.skeleton-dashboard-grid,.skeleton-notes-grid{grid-template-columns:1fr}.skeleton-heading{min-height:170px}.skeleton-title-lines{width:92%}.skeleton-title-lines .skeleton{height:2.4rem}.skeleton-filter-grid{grid-template-columns:1fr 1fr}.skeleton-search{grid-column:1/-1}.ue-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.chart-card{padding:16px}.chart-stage,.chart-stage canvas{min-height:220px}.card-heading,.panel-heading{align-items:flex-start;flex-direction:column;gap:10px}.chart-toggle{min-height:44px}.semester-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px;padding:16px}.semester-row>div:first-child,.semester-row-actions{grid-column:1 / -1}.semester-row>div:not(:first-child):not(.semester-row-actions) strong{font-size:16px}.semester-row-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.semester-row-actions .action-button{min-height:44px;width:100%;padding-inline:8px}.notes-toolbar{align-items:flex-start;flex-direction:column}.notes-toolbar .view-tabs{width:100%}.notes-toolbar .view-tabs button{flex:1;justify-content:space-between;min-height:44px}.load-more{width:100%;min-height:48px}.data-quality{grid-template-columns:1fr}.data-quality ul{grid-column:auto}.annual-module-list{grid-template-columns:1fr}.annual-module{align-items:flex-start}.recent-result{grid-template-columns:54px minmax(0,1fr) auto;gap:8px;min-height:58px}.recent-result-score{font-size:17px}.shortcut-dialog dl{grid-template-columns:1fr}.command-dialog{width:calc(100% - 18px);max-height:calc(100dvh - 18px)}.command-results>button{grid-template-columns:62px minmax(0,1fr)}.command-results>button>kbd{display:none}.command-help{justify-content:space-between;gap:6px}}@media(max-width:520px){.global-header-actions{display:grid;grid-template-columns:1fr}.command-trigger{width:100%}.command-heading{padding:15px 14px 11px}.command-heading h2{font-size:17px}.command-close{font-size:0}.command-close kbd{font-size:10px}.command-search{margin-inline:14px}.command-help span:first-child{display:none}.sync-context span{font-size:10px}.metric-card{min-height:118px}.ue-grid{grid-template-columns:1fr}.annual-module{flex-direction:column}.annual-module-values{width:100%;grid-auto-flow:column;justify-content:space-between;justify-items:start}.group-card-heading{align-items:flex-start;flex-direction:column}.group-note{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}.group-note .evaluation-rank{grid-column:1 / -1}}@media(max-width:640px){.semester-panel{padding:0;border:0;background:transparent;box-shadow:none}.semester-panel>.panel-heading{padding:0 2px}.notes-panel{padding:0;border:0;background:transparent;box-shadow:none}.filter-bar{display:grid;grid-template-columns:1fr;padding:12px}.search-field{width:100%}.search-field input,.filter-control select{min-height:46px;font-size:16px}.period-trigger{min-height:48px}.period-menu{position:fixed;inset:auto 14px calc(82px + env(safe-area-inset-bottom)) 14px;width:auto;max-height:60dvh}.mobile-filter-toggle{min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:8px 11px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#f2efe8}.mobile-filter-toggle strong{color:var(--muted);font-size:10px}.filter-options{display:none}.filter-options.open{display:grid;grid-template-columns:1fr;gap:10px}.filter-control{width:100%;min-width:0}.notes-table-view .data-table-wrap{overflow:visible;border:0;border-radius:0}.notes-table,.notes-table tbody,.notes-table tr,.notes-table td{width:100%}.notes-table,.notes-table tbody{display:block}.notes-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.notes-table tbody{display:grid;gap:10px}.notes-table tr{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.notes-table td{min-height:35px;display:grid;grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid #ebe8e1;white-space:normal;text-align:right}.notes-table td:before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:750;text-align:left}.notes-table td:last-child{border-bottom:0}.notes-table td small{display:inline}.notes-table .empty-cell{display:block;padding:22px!important;text-align:center}.notes-table .empty-cell:before{content:none}.notes-table .evaluation-rank{justify-self:end}.notes-table td:nth-child(1),.notes-table td:nth-child(2){display:none}.notes-table td:nth-child(3){order:2;display:block;min-height:0;padding:3px 12px 8px;border:0;text-align:left}.notes-table td:nth-child(3):before,.notes-table td:nth-child(4):before{content:none}.notes-table td:nth-child(4){order:1;display:block;padding:11px 12px 2px;border:0;text-align:left;font-size:14px}.notes-table td:nth-child(5){order:3}.notes-table td:nth-child(6){order:4;display:block;padding:7px 10px 10px}.notes-table td:nth-child(6):before{display:block;margin-bottom:5px}.mobile-note-meta{display:block!important;margin-top:3px;color:var(--muted);font-size:10px;font-weight:500}}@media(pointer:coarse){button,a,select,input{min-height:44px;touch-action:manipulation}.text-link,.filter-context button{min-height:44px;display:inline-flex;align-items:center}}@media(hover:none){.action-button:hover{box-shadow:none;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.scene-grid,.scene-terrain{transform:none!important}}@media(forced-colors:active){:where(button,a,input,select,[tabindex]):focus-visible{outline:3px solid Highlight}.period-trigger:focus-visible,.filter-control select:focus-visible,.search-field input:focus-visible,.auth-form input:focus-visible{outline:3px solid Highlight}.metric-card,.panel,.chart-card,.ue-card,.semester-row,.group-card,.data-quality{border:1px solid CanvasText;box-shadow:none}}.active-filter-list{display:flex;flex-wrap:wrap;gap:.45rem;padding:.65rem .8rem;border-top:1px solid var(--line);background:#f8f6f0}.active-filter-list button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.35rem .65rem;color:var(--ink)}.active-filter-list button span{margin-left:.4rem;color:var(--muted)}.active-filter-list .clear-all-filters{margin-left:auto;border-color:transparent;color:var(--violet);background:transparent}.group-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.group-card{container-type:inline-size}.group-card-heading{display:grid;gap:.35rem}.module-title-line{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.55rem}.module-title-line>:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.group-note{display:grid;grid-template-columns:minmax(7rem,1fr) auto minmax(14rem,18rem);align-items:center;gap:.65rem;min-height:3.7rem;padding:.45rem 0}.group-note>span{min-width:0;display:grid;gap:.12rem;font-weight:800;line-height:1.25}.group-note>span>small{font-size:.66rem;font-weight:450;line-height:1.25;color:var(--muted)}.clickable-note-row{cursor:pointer;transition:background .18s ease,box-shadow .18s ease}.group-note.clickable-note-row{margin-inline:-.45rem;padding-inline:.45rem;border-radius:.5rem}.clickable-note-row:hover,.clickable-note-row:has(.insight-open:focus-visible){background:#6253c512;box-shadow:inset 3px 0 #6253c5}.note-value{display:inline-flex;align-items:baseline;gap:.12rem;color:inherit;font-size:1.22rem;font-weight:900;line-height:1;letter-spacing:-.025em;white-space:nowrap;font-variant-numeric:tabular-nums}.note-value>small{color:var(--muted);font-size:.66rem;font-weight:500}.note-coefficient{margin-left:.12rem;color:var(--muted);font-size:.62rem;font-weight:750;line-height:1;vertical-align:super}.above{color:#08746f!important}.below{color:#b13f4c!important}.type-badge,.change-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:.18rem .5rem;font-size:.68rem;font-weight:750;letter-spacing:.025em}.type-badge.sae{color:#7b3d08;background:#f8e6ce}.change-badge.new{color:#075f5b;background:#d9f1ee}.change-badge.modified{color:#8c3b13;background:#f9e2d4}.unread-row{outline:1px solid rgba(22,137,133,.45);outline-offset:-1px;background:#1689850d}.unread-row.modified{outline-color:#cf6a2f8c}.evaluation-insight{container-type:inline-size;width:100%;min-width:0;min-height:2.5rem;display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.72rem}.evaluation-insight.unread{flex-wrap:wrap}.insight-open{width:100%;min-width:0;min-height:2.35rem;display:grid;grid-template-columns:10.875rem 8.25rem 2.9rem;justify-content:space-around;align-items:center;gap:clamp(.55rem,1.5cqi,1rem);border:0;background:transparent;color:inherit;padding-inline:clamp(.25rem,2cqi,1rem);text-align:left;cursor:pointer}.range-stat{width:10.875rem;min-width:0}.range-labels{display:flex;justify-content:space-between;gap:.35rem;color:var(--muted);font-size:.63rem;white-space:nowrap}.range-labels .mean-label{color:#6253c5;font-weight:800}.range-track{position:relative;display:block;width:9.525rem;height:2px;margin:.48rem auto .12rem;background:var(--line-strong,#b9b6ae)}.range-track:before,.range-track:after{content:"";position:absolute;top:-3px;width:2px;height:8px;background:currentColor}.range-track:before{left:0}.range-track:after{right:0}.range-track i{position:absolute;top:50%;transform:translate(-50%,-50%)}.mean-dot{width:7px;height:7px;border-radius:50%;background:#6253c5}.note-marker{top:-7px!important;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #d14250;transform:translate(-50%)!important}.compact-mean{display:none;color:var(--muted);font-size:.66rem;white-space:nowrap}.compact-mean b{color:#6253c5;font-size:.75rem}.distribution-curve{width:8.25rem;height:3rem;overflow:visible}.distribution-curve polyline{fill:none;vector-effect:non-scaling-stroke}.distribution-curve .empirical-line{stroke:#8d9097;stroke-width:1.25}.distribution-curve .normal-line{stroke:#6253c5;stroke-width:1.75}.distribution-curve .student-marker{stroke:#d14250;stroke-width:1.5;stroke-dasharray:2 2}.distribution-curve .student-intersection{stroke:#d14250;stroke-width:3}.distribution-curve .student-dot{fill:#d14250;stroke:#fff;stroke-width:1.5}.rank-stat{width:2.9rem;display:flex;align-items:center;justify-content:flex-end;gap:.22rem;white-space:nowrap}.rank-stat>small{color:var(--muted);font-size:.6rem}.rank-medal{--rank-color:#9b6b00;min-width:2.25rem;height:1.7rem;display:flex;align-items:baseline;justify-content:center;gap:.02rem;padding:.1rem .18rem .14rem;border:0;border-bottom:2px solid var(--rank-color);color:var(--rank-color);background:transparent;font-variant-numeric:tabular-nums}.rank-medal i{font-size:.57rem;font-style:normal;font-weight:900}.rank-medal strong{color:inherit;font-size:1.08rem;line-height:1}.rank-medal small{color:inherit;font-size:.52rem;font-weight:850}.rank-2{--rank-color:#596573}.rank-3{--rank-color:#96502a}.rank-number{min-width:2rem;font-size:.92rem;font-weight:850;text-align:center;font-variant-numeric:tabular-nums}.distribution-dialog,.download-dialog{width:min(47rem,calc(100% - 2rem));border:1px solid var(--line);border-radius:1rem;padding:clamp(1.15rem,3vw,2rem);background:var(--surface);color:var(--ink);box-shadow:0 24px 70px #14141e40;cursor:default}.distribution-dialog::backdrop,.download-dialog::backdrop{background:#1214198c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-close{position:absolute;top:.75rem;right:.75rem;min-height:2.35rem;padding:.45rem .7rem;border:1px solid var(--line);border-radius:7px;color:var(--muted);background:var(--surface);font-size:.72rem;font-weight:750}.distribution-dialog-heading{padding-right:4.5rem}.distribution-dialog-heading>span{color:var(--cyan);font-size:.68rem;font-weight:850}.distribution-dialog-heading h2{margin-top:.28rem;font-size:clamp(1.35rem,4vw,2rem)}.distribution-dialog-heading p{margin-top:.3rem;color:var(--muted);font-size:.78rem}.distribution-overview{display:grid;grid-template-columns:minmax(13rem,.8fr) 1.2fr;gap:.7rem;margin:1.2rem 0}.distribution-primary{display:grid;align-content:center;gap:.35rem;padding:1rem;color:#fff;background:var(--ink);border-radius:.75rem}.distribution-primary>small,.distribution-facts small{color:var(--muted);font-size:.63rem}.distribution-primary>strong{font-size:clamp(2.4rem,7vw,4rem);line-height:.9;letter-spacing:-.055em;font-variant-numeric:tabular-nums}.distribution-primary>strong i{color:#aeb5c0;font-size:.85rem;font-style:normal;letter-spacing:0}.distribution-primary>span{font-size:.7rem;font-weight:750}.distribution-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:.75rem;overflow:hidden;background:var(--line)}.distribution-facts>div{min-height:4.35rem;display:grid;align-content:center;gap:.3rem;padding:.7rem .8rem;background:var(--surface)}.distribution-facts strong{font-size:.95rem;font-variant-numeric:tabular-nums}.modal-rank{display:flex;align-items:center;gap:.45rem}.modal-rank>b{color:var(--muted);font-size:.7rem}.curve-legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;color:var(--muted);font-size:.64rem}.curve-legend span{display:inline-flex;align-items:center;gap:.35rem}.curve-legend span:before{content:"";width:1.3rem;height:2px;background:currentColor}.curve-legend .observed{color:#72757c}.curve-legend .normal{color:#6253c5}.curve-legend .student{color:#d14250}.distribution-block{padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:#faf8f2}.distribution-block-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.distribution-block-heading h3,.histogram-heading h3{font-size:.82rem}.distribution-block-heading p,.histogram-heading p{margin-top:.25rem;color:var(--muted);font-size:.65rem;line-height:1.4}.distribution-curve.large{width:100%;height:auto;max-height:11.5rem;margin:.75rem 0 0}.curve-axis,.curve-tick{stroke:#aaa69d;stroke-width:1}.curve-tick-label{fill:#72757c;font-size:9px;text-anchor:middle}.histogram-section{margin-top:.75rem;padding:1rem;border:1px solid var(--line);border-radius:.75rem}.histogram-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.histogram-heading>span{flex:none;color:var(--muted);font-size:.61rem}.histogram-scroll{margin-top:.8rem;overflow:hidden}.distribution-histogram{width:100%;height:11rem;display:flex;align-items:stretch;gap:.12rem;padding:.35rem .2rem 0;border-bottom:1px solid var(--line)}.histogram-column{width:100%;min-width:0;flex:1 1 0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;color:var(--muted);outline-offset:-2px}.histogram-column b{margin-bottom:.18rem;font-size:.55rem;font-weight:750;line-height:1}.histogram-column i{width:80%;height:var(--bar-size);min-height:2px;display:block;border-radius:2px 2px 0 0;background:#6253c5;transform:scaleY(0);transform-origin:bottom;animation:histogram-rise .64s cubic-bezier(.05,.7,.1,1) var(--bar-delay) forwards}.histogram-column small{min-height:1.35rem;display:flex;align-items:center;font-size:.53rem;font-variant-numeric:tabular-nums}.histogram-column.student{color:#b13f4c;font-weight:850}.histogram-column.student i{width:80%;background:#d14250;box-shadow:0 0 0 2px #d1425024}.histogram-column:focus-visible{z-index:1;border-radius:.2rem;outline:2px solid #6253c5;outline-offset:1px}.targeted-note{position:relative;z-index:1;outline:3px solid #6253c5!important;outline-offset:2px;background:#6253c51a!important;box-shadow:0 0 0 7px #6253c51a;animation:target-note-pulse 1.1s ease-out 2}@keyframes target-note-pulse{50%{outline-color:#168985;box-shadow:0 0 0 12px #16898500}}@keyframes histogram-rise{to{transform:scaleY(1)}}.download-options{display:grid;gap:.65rem;margin-top:1.2rem}.download-option{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem;border:1px solid var(--line);border-radius:.7rem;color:var(--muted);background:var(--surface-soft);text-align:left;text-decoration:none}.download-option.available{color:var(--ink);background:var(--surface);border-color:#8f86d9}.download-option span{font-size:.75rem}.download-builder{width:min(58rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;padding:1.5rem 1.5rem 0}.download-heading{padding:0 4rem 1.1rem 0}.download-heading>span{color:var(--cyan);font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.download-heading h2{margin-top:.35rem;font-size:clamp(1.45rem,4vw,2.2rem)}.download-heading p{margin-top:.35rem;color:var(--muted);font-size:.78rem}.download-step{padding:1.1rem 0;border-top:1px solid var(--line)}.download-step-heading{display:flex;align-items:flex-start;gap:.7rem}.download-step-heading>span{flex:none;width:1.55rem;height:1.55rem;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;color:var(--muted);font-size:.68rem;font-weight:850}.download-step-heading h3{font-size:.9rem}.download-step-heading p{margin-top:.18rem;color:var(--muted);font-size:.68rem}.download-scope-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;margin-top:.85rem;padding:3px;border-radius:.65rem;background:#e8e5dd}.download-scope-tabs button{min-height:2.7rem;border:0;border-radius:.48rem;color:var(--muted);background:transparent;font-size:.75rem;font-weight:750}.download-scope-tabs button.selected{color:var(--ink);background:var(--surface);box-shadow:0 1px 3px #14141e1f}.download-targets{display:flex;gap:.45rem;margin-top:.65rem;padding-bottom:.2rem;overflow-x:auto;scrollbar-width:thin}.download-targets button{flex:0 0 auto;min-width:5.7rem;display:grid;gap:.16rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:.5rem;color:var(--muted);background:var(--surface);text-align:left}.download-targets button.selected{border-color:var(--violet);color:var(--ink);box-shadow:inset 0 -2px var(--violet)}.download-targets strong{font-size:.75rem}.download-targets small{font-size:.6rem}.download-document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.85rem}.download-document-grid button{min-height:6.2rem;display:grid;align-content:start;gap:.45rem;padding:.85rem;border:1px solid var(--line);border-radius:.65rem;color:var(--muted);background:var(--surface);text-align:left}.download-document-grid button.selected{border-color:var(--violet);color:var(--ink);box-shadow:inset 0 -2px var(--violet)}.download-document-grid strong{font-size:.8rem}.download-document-grid span,.download-auto-format span{font-size:.66rem;line-height:1.45}.download-auto-format{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.85rem;padding:.85rem 1rem;border:1px solid var(--violet);border-radius:.65rem;background:#6253c50d}.download-auto-format strong{font-size:.82rem}.download-auto-format span{color:var(--muted);text-align:right}.pulse-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:.85rem}.pulse-option-grid label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.6rem;padding:.7rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);cursor:pointer}.pulse-option-grid input{margin-top:.12rem;accent-color:var(--violet)}.pulse-option-grid span{display:grid;gap:.15rem}.pulse-option-grid strong{font-size:.72rem}.pulse-option-grid small{color:var(--muted);font-size:.61rem;line-height:1.35}.pdf-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin-top:.85rem}.pdf-preset-grid button{position:relative;display:grid;gap:.18rem;padding:.72rem;border:1px solid var(--line);border-radius:.55rem;color:var(--muted);background:var(--surface);text-align:left}.pdf-preset-grid button.selected{border-color:var(--violet);color:var(--ink);box-shadow:inset 0 -2px var(--violet)}.pdf-preset-grid strong{font-size:.74rem}.pdf-preset-grid small{font-size:.61rem}.pdf-preset-grid span{width:max-content;margin-top:.18rem;padding:.14rem .38rem;border-radius:999px;color:#fff;background:var(--violet);font-size:.54rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.pulse-layout-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;margin-top:.7rem;padding:.85rem;border-radius:.65rem;background:var(--surface-soft)}.pulse-layout-options>label{display:grid;gap:.3rem;color:var(--muted);font-size:.65rem;font-weight:700}.pulse-layout-options select{min-height:2.4rem;padding:0 .65rem;border:1px solid var(--line);border-radius:.45rem;color:var(--ink);background:var(--surface)}.pulse-layout-options .toggle-option{grid-template-columns:auto 1fr;align-items:center;gap:.55rem;color:var(--ink);cursor:pointer}.toggle-option input{accent-color:var(--violet)}.pulse-layout-options.single-line{grid-template-columns:1fr}.pdf-privacy-note{margin-top:.7rem;color:var(--muted);font-size:.64rem;line-height:1.45}.form-error{margin-top:.6rem;padding:.6rem .7rem;border-left:3px solid #b13f4c;color:#8f2f3b;background:#fbecef;font-size:.68rem}.download-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 -1.5rem;padding:.85rem 1.5rem;border-top:1px solid var(--line);background:#fffdf8f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.download-footer>div{display:grid;gap:.15rem}.download-footer strong{font-size:.76rem}.download-footer small{color:var(--muted);font-size:.62rem}.download-footer .action-button{text-decoration:none}.download-footer .action-button:disabled{cursor:not-allowed;opacity:.55}.recent-item.unread{border-color:#1689858c;background:#1689850a}.recent-item.modified{border-color:#cf6a2f99;background:#cf6a2f0a}.recent-results-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.recent-results-heading .section-heading{margin-bottom:0}.recent-list{display:grid;gap:.5rem}.recent-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.7rem;width:100%;padding:.75rem .8rem;border:1px solid var(--line);border-radius:.55rem;background:var(--surface);color:var(--ink);text-align:left}.recent-item>span:first-child{display:grid;gap:.18rem;min-width:0}.recent-item small{color:var(--muted);font-weight:500}.recent-item>b{color:#168985;white-space:nowrap}.recent-item>b small{margin-left:.15rem}.page-heading-copy h1,.panel-heading h2,.card-heading h2,.group-card h3{line-height:1.12;text-wrap:balance}@container (max-width: 400px){.insight-open,.insight-skeleton{grid-template-columns:7.25rem 5.5rem 2.9rem;gap:.55rem;padding-inline:.25rem}.range-stat{width:7.25rem}.range-track,.insight-skeleton-range{width:6.35rem}.distribution-curve{width:5.5rem;height:2rem}.insight-skeleton-curve{width:5.5rem;height:1.45rem}}@container (max-width: 260px){.range-labels,.range-track{display:none}.compact-mean{display:inline-flex;gap:.25rem}.range-stat{width:auto}.insight-open,.insight-skeleton{grid-template-columns:auto 5.5rem 2.9rem}.insight-skeleton-range{width:100%}}@container (max-width: 205px){.evaluation-insight .distribution-curve{display:none}.insight-open,.insight-skeleton{grid-template-columns:1fr auto}.insight-skeleton-curve{display:none}}@container (max-width: 145px){.range-stat{display:none}.insight-open,.insight-skeleton{grid-template-columns:auto}.insight-skeleton-range{display:none}}@container (max-width: 95px){.rank-stat small{display:none}}@media(max-width:900px){.group-list,.skeleton-dashboard-grid,.skeleton-notes-grid{grid-template-columns:1fr}}@media(max-width:640px){.synthesis-grid{grid-template-columns:minmax(0,1fr)!important;width:100%}.synthesis-grid>*,.recent-list,.recent-item{min-width:0;width:100%;max-width:100%}.recent-results{overflow:hidden}.distribution-overview{grid-template-columns:1fr}.download-option{align-items:flex-start;flex-direction:column;gap:.2rem}.download-builder{width:calc(100% - .75rem);max-height:calc(100dvh - .75rem);padding:1rem 1rem 0}.download-document-grid,.pulse-option-grid,.pdf-preset-grid{grid-template-columns:1fr}.download-document-grid button{min-height:0}.download-auto-format,.download-footer{align-items:flex-start;flex-direction:column}.download-auto-format span{text-align:left}.pulse-layout-options{grid-template-columns:1fr}.download-footer{margin:0 -1rem;padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom))}.download-footer .action-button{width:100%;text-align:center}.semester-row-actions{width:100%}.semester-row-actions .action-button{flex:1}.recent-item{grid-template-columns:minmax(0,1fr) auto}.recent-item .change-badge{grid-column:1;grid-row:2}.recent-item>b{grid-column:2;grid-row:1/3}.recent-results-heading{align-items:stretch;flex-direction:column}.recent-results-heading .mark-all-seen{width:100%;min-height:44px}.notes-toolbar-actions{width:100%;flex-direction:column;align-items:stretch}}@media(prefers-reduced-motion:reduce){.distribution-dialog::backdrop,.download-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.histogram-column i,.load-more-frame.loading:before,.skeleton:after,.insight-skeleton i:after{animation:none;transform:none;clip-path:none}.load-more-frame.loading .load-more{transform:none;transition:none}}@media(max-width:640px){.skeleton-filter-grid{grid-template-columns:1fr}.skeleton-search{grid-column:auto}.skeleton-semester-card{grid-template-columns:2.75rem minmax(0,1fr)}.skeleton-semester-mark{width:2.75rem;height:2.75rem}.skeleton-semester-value{grid-column:2;justify-self:start}.notes-search-heading{align-items:flex-start;flex-direction:column;gap:.35rem}.active-filter-list .clear-all-filters{margin-left:0}.load-more-frame{width:100%}.group-note{grid-template-columns:minmax(0,1fr) auto}.group-note .evaluation-insight{grid-column:1/-1}.skeleton-note-row{grid-template-columns:minmax(0,1fr) auto;gap:.45rem .65rem;padding:.4rem 0}.skeleton-note-row .insight-skeleton{grid-column:1/-1}.period-overview{padding:16px}.period-overview-grid{grid-template-columns:1fr}.distribution-dialog{max-height:calc(100dvh - 1rem);width:calc(100% - 1rem);padding:1rem}.distribution-dialog-heading{padding-right:4rem}.distribution-overview{grid-template-columns:1fr}.distribution-primary{padding:.85rem}.distribution-primary>strong{font-size:2.7rem}.distribution-facts>div{min-height:3.75rem;padding:.55rem .65rem}.distribution-block,.histogram-section{padding:.8rem}.distribution-block-heading,.histogram-heading{display:grid;gap:.55rem}.curve-legend{gap:.4rem .65rem}}@media(max-width:390px){.distribution-facts{grid-template-columns:1fr}}.personal-access-shell{min-height:100dvh;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem);background:#f1eee6}.personal-access-card{width:min(58rem,100%);padding:clamp(1.25rem,4vw,3rem);border:1px solid #c9c4b8;border-radius:.85rem;background:var(--surface);box-shadow:0 22px 60px #191b201a}.personal-access-card.compact,.personal-access-card.unlock-card{width:min(34rem,100%)}.personal-access-card h1{max-width:18ch;margin:.3rem 0 .55rem;font-size:clamp(1.7rem,4.3vw,2.75rem);line-height:1.02;letter-spacing:-.025em}.personal-access-card>p:not(.eyebrow),.setup-copy p,.personal-security-note{color:var(--muted);line-height:1.55}.setup-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.setup-heading>span{flex:none;padding:.35rem .55rem;border:1px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:800}.setup-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:1.5rem 0;padding:0;list-style:none}.setup-progress li{padding:.65rem .7rem;border-top:3px solid var(--line);color:var(--muted);font-size:.68rem;font-weight:750}.setup-progress li.active{border-color:var(--violet);color:var(--ink)}.personal-form{display:grid;gap:1rem;margin-top:1.25rem}.personal-form>label,.personal-password-field,.settings-form>label{display:grid;gap:.4rem;color:var(--ink);font-size:.72rem;font-weight:750}.personal-form input,.settings-form input,.settings-form select{width:100%;min-height:2.9rem;padding:0 .8rem;border:1px solid var(--line);border-radius:var(--control-radius);color:var(--ink);background:var(--surface);font:inherit}.personal-form input:focus-visible,.settings-form input:focus-visible,.settings-form select:focus-visible,.local-secret-control button:focus-visible,.method-grid button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.personal-form .action-button{width:max-content}.setup-copy{max-width:40rem}.setup-copy h2{font-size:1.1rem}.setup-copy p{margin-top:.35rem;font-size:.78rem}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.method-grid button{min-height:5rem;display:grid;align-content:center;gap:.25rem;padding:.85rem;border:1px solid var(--line);border-radius:.55rem;color:var(--muted);background:var(--surface-soft);text-align:left}.method-grid button.selected{border-color:var(--violet);color:var(--ink);box-shadow:inset 0 -3px var(--violet)}.method-grid strong{font-size:.78rem}.method-grid span{font-size:.65rem}.wizard-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:.35rem}.secret-confirm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:start}.local-secret-control{min-width:0;padding:0;border:0}.local-secret-control legend{margin-bottom:.7rem;font-size:.72rem;font-weight:800}.local-secret-control>small,.personal-password-field small{color:var(--muted);font-size:.62rem;font-weight:500;line-height:1.4}.pin-dots{min-height:1.25rem;display:flex;justify-content:center;gap:.5rem;margin-bottom:.75rem}.pin-dots i{width:.65rem;height:.65rem;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface)}.pin-dots i.filled{border-color:var(--violet);background:var(--violet)}.pin-keypad{width:min(17rem,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0 auto .65rem}.pin-keypad button{min-height:3.25rem;border:1px solid var(--line);border-radius:.45rem;color:var(--ink);background:var(--surface-soft);font-size:1rem;font-weight:800}.pin-keypad button:active{background:#e4e0d7}.pin-keypad .keypad-word{font-size:.58rem}.pattern-status{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.65rem;color:var(--muted);font-size:.66rem}.pattern-status button{border:0;color:var(--violet);background:transparent;font-size:.64rem;font-weight:750}.pattern-grid{width:min(16rem,100%);aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 auto .7rem;padding:1rem;border:1px solid var(--line);border-radius:.65rem;background:var(--surface-soft)}.pattern-grid button{display:grid;place-items:center;border:0;border-radius:50%;color:#fff;background:#c2beb5}.pattern-grid button.selected{background:var(--violet)}.pattern-grid button span{font-size:.65rem;font-weight:850}.personal-error,.settings-message{padding:.7rem .8rem;border-left:3px solid #b13f4c;color:#8f2f3b;background:#fbecef;font-size:.7rem}.settings-message.success{border-left-color:#2d8a57;color:#21683f;background:#eaf7ef}.personal-security-note{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.66rem}.settings-dialog{width:min(44rem,calc(100% - 1.5rem));max-height:calc(100dvh - 1.5rem);overflow:auto;padding:clamp(1rem,3vw,2rem);border:1px solid var(--line);border-radius:.8rem;color:var(--ink);background:var(--surface);box-shadow:0 24px 70px #14141e40}.settings-dialog::backdrop{background:#1214198c}.settings-dialog>header{padding-right:4rem}.settings-dialog>header h2{margin:.25rem 0;font-size:clamp(1.6rem,4vw,2.4rem)}.settings-dialog>header>p:last-child{color:var(--muted);font-size:.72rem}.settings-dialog>section{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--line)}.settings-dialog section h3{font-size:.95rem}.settings-dialog section>p{margin:.25rem 0 .8rem;color:var(--muted);font-size:.68rem}.settings-form{display:grid;gap:.85rem}.settings-form .local-secret-control{max-width:20rem}.settings-form .action-button{width:max-content}.settings-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem;padding:1rem;border:1px solid #d9a3a8;background:#fff4f4}.settings-dialog footer strong{font-size:.75rem}.settings-dialog footer p{margin-top:.2rem;color:var(--muted);font-size:.62rem}.action-button.danger,.sidebar .action-button.danger{border-color:#a6313c;color:#fff;background:#a6313c}.action-button.danger:hover,.sidebar .action-button.danger:hover{border-color:#86232d;background:#86232d}.distribution-dialog-actions{position:absolute;top:.75rem;right:.75rem;z-index:2;display:flex;gap:.4rem}.distribution-dialog-actions .dialog-close{position:static}.share-trigger{min-height:2.35rem;padding:.45rem .7rem;border:1px solid #168985;border-radius:7px;color:#08746f;background:#eef9f7;font-size:.72rem;font-weight:800}.share-note-panel{position:absolute;inset:.5rem;z-index:4;display:grid;align-content:center;gap:.85rem;padding:clamp(1.25rem,5vw,3rem);overflow:auto;border:1px solid var(--line);border-radius:.8rem;background:#fffdf8fa;box-shadow:0 18px 60px #14141e38}.share-note-panel h3{max-width:16ch;font-size:clamp(1.6rem,5vw,2.5rem)}.share-note-panel>p{max-width:36rem;color:var(--muted);font-size:.74rem;line-height:1.5}.share-note-panel>.action-button{width:max-content}.share-list{display:grid;gap:.6rem;max-width:38rem}.share-row{display:flex;align-items:end;gap:.65rem;padding:.75rem;border:1px solid var(--line);background:var(--surface-soft)}.share-url-field{display:grid;flex:1;gap:.3rem;min-width:0;color:var(--muted);font-size:.62rem;font-weight:750}.share-url-field input{width:100%;min-height:2.7rem;padding:.65rem;border:1px solid var(--line);border-radius:.45rem;color:var(--ink);background:var(--surface);font:inherit;-webkit-user-select:all;user-select:all}.share-copy-button{min-height:2.7rem;padding:0 .85rem;border:1px solid var(--violet);border-radius:.45rem;color:var(--violet);background:transparent;font:inherit;font-size:.7rem;font-weight:800;white-space:nowrap}.share-copy-button:hover{color:#fff;background:var(--violet)}.share-settings-list{display:grid;gap:.45rem}.share-settings-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.65rem;padding:.7rem;border:1px solid var(--line);border-radius:.5rem}.share-settings-list article>div{display:grid;min-width:0}.share-settings-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem}.share-settings-list small,.settings-empty{color:var(--muted);font-size:.61rem}.share-settings-list a,.share-settings-list button{border:0;color:var(--violet);background:transparent;font-size:.65rem;font-weight:800;text-decoration:none}.share-settings-list button{color:#9a303c}.shared-note-score dl .shared-rank-cell{grid-row:span 2}.shared-note-score dl .shared-rank-cell dd{display:flex;align-items:center;gap:.65rem}.shared-note-score dl .shared-rank-cell dd>span:last-child{color:var(--muted);font-size:.7rem;font-weight:750}.shared-note-score dl .shared-rank-cell{display:grid;align-content:center;justify-items:center;text-align:center}.shared-note-score dl .shared-rank-cell dd{justify-content:center}.shared-note-score dl .shared-rank-cell .rank-medal{min-width:4.2rem;height:3.2rem;padding:.2rem .35rem .28rem;border-bottom-width:3px}.shared-note-score dl .shared-rank-cell .rank-medal i{font-size:.8rem}.shared-note-score dl .shared-rank-cell .rank-medal strong{font-size:2rem}.shared-note-score dl .shared-rank-cell .rank-medal small{font-size:.7rem}.shared-note-score dl .shared-rank-cell .rank-number{min-width:4.2rem;font-size:1.7rem}.shared-note-shell{min-height:100dvh;padding:clamp(1rem,5vw,4rem);color:var(--ink);background:#f1eee6}.shared-note-card{width:min(70rem,100%);margin:auto;overflow:hidden;border:1px solid #c9c4b8;border-radius:1rem;background:var(--surface);box-shadow:0 24px 70px #14141e1f}.shared-note-card>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,2.5rem);color:#fff;background:#11151c}.shared-note-card>header>span{color:#aeb5c0;font-size:.68rem;font-weight:750}.shared-brand{color:#fff;font-size:1rem;letter-spacing:-.04em;text-decoration:none}.shared-brand strong{color:#8bdbd2}.shared-note-identity{padding:clamp(1.4rem,5vw,3rem) clamp(1rem,5vw,3.5rem) 1rem}.shared-student-name{margin-top:.8rem;color:#a6313c;font-size:clamp(1.1rem,2.5vw,1.7rem);font-weight:850;line-height:1.1}.shared-note-identity h1{max-width:18ch;margin:.4rem 0;font-size:clamp(2rem,6vw,4.4rem);line-height:.95}.shared-student-formation{color:var(--muted);font-size:.75rem}.shared-note-score{display:grid;grid-template-columns:minmax(15rem,.75fr) 1.25fr;gap:1px;margin:1rem clamp(1rem,5vw,3.5rem);border:1px solid var(--line);border-radius:.8rem;overflow:hidden;background:var(--line)}.shared-note-score>div{display:grid;align-content:center;gap:.35rem;padding:1.2rem;color:#fff;background:#11151c}.shared-note-score>div small{color:#aeb5c0}.shared-note-score>div strong{font-size:clamp(3rem,8vw,5.5rem);line-height:.9}.shared-note-score>div strong i{color:#aeb5c0;font-size:1rem;font-style:normal}.shared-note-score>div>span{font-size:.72rem;font-weight:800}.shared-note-score dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;background:var(--line);gap:1px}.shared-note-score dl div{min-width:0;padding:.85rem;background:var(--surface)}.shared-note-score dt{color:var(--muted);font-size:.61rem}.shared-note-score dd{margin:.25rem 0 0;font-size:.76rem;font-weight:750;overflow-wrap:anywhere}.shared-note-chart,.shared-note-histogram{margin:1rem clamp(1rem,5vw,3.5rem);padding:1rem;border:1px solid var(--line);border-radius:.8rem}.shared-note-chart h2,.shared-note-histogram h2{font-size:.9rem}.shared-note-chart p{margin-top:.2rem;color:var(--muted);font-size:.65rem}.shared-note-chart .distribution-curve{width:100%;max-height:13rem;margin-top:.75rem}.shared-note-histogram>div{height:11rem;display:flex;align-items:stretch;gap:.12rem;margin-top:.8rem;border-bottom:1px solid var(--line)}.shared-note-histogram span{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.shared-note-histogram b{min-height:.7rem;font-size:.53rem}.shared-note-histogram i{width:80%;height:var(--bar-size);min-height:2px;background:#6253c5}.shared-note-histogram .student i{background:#d14250}.shared-note-histogram small{min-height:1.15rem;font-size:.5rem}.shared-note-card>footer{display:grid;gap:.2rem;padding:1rem clamp(1rem,5vw,3.5rem);border-top:1px solid var(--line);color:var(--muted)}.shared-note-card>footer span{color:var(--ink);font-size:.72rem;font-weight:800}.shared-note-card>footer small{font-size:.61rem}.shared-note-error,.shared-note-loading{width:min(38rem,100%);margin:12dvh auto 0;padding:clamp(1.3rem,5vw,3rem);border:1px solid var(--line);border-radius:.8rem;background:var(--surface)}.shared-note-error h1{margin:.4rem 0 .8rem;font-size:clamp(2rem,7vw,3.5rem)}.shared-note-error>p:not(.eyebrow){margin-bottom:1.2rem;color:var(--muted);line-height:1.55}.shared-note-loading{display:grid;gap:.7rem}.shared-note-loading .skeleton{height:2rem}.shared-note-loading .skeleton:nth-child(2){width:72%;height:5rem}.shared-note-loading .skeleton:nth-child(3){width:45%}@media(max-width:640px){.personal-access-shell{display:block;padding:0;background:var(--surface)}.personal-access-card,.personal-access-card.compact,.personal-access-card.unlock-card{min-height:100dvh;width:100%;padding:max(1.2rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));border:0;border-radius:0;box-shadow:none}.setup-heading{display:grid}.setup-progress li{padding:.55rem .25rem;font-size:.58rem}.method-grid,.secret-confirm-grid{grid-template-columns:1fr}.secret-confirm-grid{gap:1rem}.pin-keypad{width:min(19rem,100%)}.pin-keypad button{min-height:3.6rem}.settings-dialog{width:calc(100% - .5rem);max-height:calc(100dvh - .5rem);padding:1rem}.settings-dialog>footer{align-items:stretch;flex-direction:column}.settings-dialog>footer .action-button{width:100%}.distribution-dialog-actions{position:static;justify-content:flex-end;margin:-.25rem 0 .65rem}.distribution-dialog-heading{padding-right:0}.share-note-panel{position:fixed;inset:auto 0 0;max-height:88dvh;border-radius:1rem 1rem 0 0;padding:1.1rem 1rem calc(1rem + env(safe-area-inset-bottom))}.share-note-panel>.action-button{width:100%}.share-row{align-items:stretch;flex-direction:column}.share-copy-button{min-height:44px}.share-settings-list article{grid-template-columns:minmax(0,1fr) auto}.share-settings-list article button{grid-column:1/-1;min-height:40px;border:1px solid #d9a3a8}.shared-note-shell{padding:0;background:var(--surface)}.shared-note-card{border:0;border-radius:0;box-shadow:none}.shared-note-card>header{position:sticky;top:0;z-index:3}.shared-note-identity h1{font-size:clamp(2rem,11vw,3.2rem)}.shared-note-score{grid-template-columns:1fr}.shared-note-score dl{grid-template-columns:1fr 1fr}.shared-note-chart,.shared-note-histogram{padding:.8rem}.shared-note-histogram>div{height:9rem}.shared-note-error,.shared-note-loading{min-height:100dvh;margin:0;border:0;border-radius:0}}
