:root{color-scheme:light;--paper: oklch(.977 .004 255);--surface: oklch(1 0 0);--surface-2: oklch(.966 .005 255);--surface-3: oklch(.936 .008 255);--line: oklch(.906 .009 255);--line-2: oklch(.623 .014 255);--ink: oklch(.255 .02 262);--ink-2: oklch(.455 .02 262);--ink-3: oklch(.525 .02 262);--accent: oklch(.464 .117 153);--accent-2: oklch(.389 .114 153);--accent-on: oklch(1 0 0);--accent-soft: oklch(.958 .03 153);--accent-line: oklch(.85 .075 153);--good: oklch(.505 .132 158);--good-soft: oklch(.955 .04 158);--good-line: oklch(.86 .08 158);--warn: oklch(.528 .124 72);--warn-soft: oklch(.958 .052 78);--warn-line: oklch(.862 .096 76);--risk: oklch(.512 .176 26);--risk-soft: oklch(.956 .038 26);--risk-line: oklch(.856 .08 26);--risk-line-2: oklch(.636 .08 26);--c-present: #008c50;--c-late: #d9aa1b;--c-absent: #be2323;--c-off: oklch(.936 .008 255);--shadow-1: 0 1px 2px oklch(.45 .03 255 / .08);--shadow-2: 0 4px 12px oklch(.45 .03 255 / .1), 0 1px 3px oklch(.45 .03 255 / .06);--shadow-3: 0 16px 40px oklch(.4 .04 255 / .16), 0 2px 8px oklch(.4 .04 255 / .08);--r: 8px;--r-l: 14px;--r-xl: 20px;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "IBM Plex Mono", Menlo, monospace;--t-xs: 11px;--t-s: 12px;--t-m: 13px;--t-base: 14px;--t-l: 16px;--t-xl: 18px;--t-2xl: 22px;--t-3xl: 32px;--sp-1: 4px;--sp-2: 7px;--sp-3: 10px;--sp-4: 14px;--sp-5: 16px;--sp-6: 22px;--h-ctl: 31px;--h-ctl-sm: 26px;--h-field: 32px;--h-row: 40px;--h-tabbar: 54px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--t-base);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:.92em}.hidden{display:none!important}.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}body{height:100dvh;display:flex;flex-direction:column;overflow:hidden}#root{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.shell{display:flex;flex:1;min-height:0}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}#app,.page{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.head,.filters,.rec-head,.stats,.tabs,.mhead{flex-shrink:0}.lwrap{flex:1;min-height:0;display:flex;flex-direction:column}.lscroll{flex:1;min-height:0;overflow:auto;container-type:inline-size;container-name:list-region}.lfoot{flex-shrink:0;border-top:1px solid var(--line);background:var(--surface);padding:6px var(--sp-6);display:flex;align-items:center;gap:var(--sp-2);font-size:var(--t-m);color:var(--ink-2);flex-wrap:wrap}.lfoot .pg{margin-left:auto;display:flex;align-items:center;gap:4px}.pad{padding:var(--sp-5) var(--sp-6)}.head{padding:var(--sp-5) var(--sp-6);background:linear-gradient(90deg,var(--accent-2),var(--accent));color:var(--accent-on)}@media (min-width: 641px){.page>.head+*{margin-top:var(--sp-4)}}.head:has(+.filters){padding-bottom:var(--sp-4);border-bottom:1px solid var(--line)}.head-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.head-id{min-width:0}.head h1{margin:0;font:640 var(--t-xl) / 1.25 var(--sans);letter-spacing:-.018em;color:var(--accent-on)}.head .sub{font-size:var(--t-m);color:#ffffffe6;margin-top:2px}.head-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.head .acts{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.head-search{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 10px;min-width:200px;border:1px solid oklch(1 0 0 / .35);border-radius:999px;background:#ffffff24;color:#ffffffeb;cursor:pointer;font:500 var(--t-m) / 1 var(--sans);transition-property:background-color,border-color;transition-duration:.12s}.head-search:hover{background:#fff3;border-color:#ffffff8c}.head-search:focus-visible{outline:2px solid var(--accent-on);outline-offset:1px}.head-search svg{flex-shrink:0;opacity:.9}.head-search-ph{flex:1;text-align:left}.head-search-k{flex-shrink:0;font:600 var(--t-xs)/1 var(--sans);letter-spacing:.04em;padding:3px 5px;border-radius:5px;background:#fff3;color:var(--accent-on)}.head .acts .btn{background:#ffffff2e;border-color:#ffffffc7;color:var(--accent-on)}.head .acts .btn:hover{background:#ffffff47;border-color:#fffffff2}.head .acts .btn.p{background:var(--surface);border-color:var(--surface);color:var(--accent)}.head .acts .btn.p:hover{background:#ffffffe6}.crumb{display:inline-flex;align-items:center;gap:5px;font-size:var(--t-m);color:#ffffffe6;background:none;border:0;padding:0;cursor:pointer;margin-bottom:6px;text-decoration:none;transition-property:color;transition-duration:.12s}.crumb:hover{color:var(--accent-on)}.rec-head{display:flex;gap:var(--sp-4);align-items:flex-start;padding:2px var(--sp-6) var(--sp-3)}.record-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.record-actions .btn.s{background:var(--accent);border-color:var(--accent);color:var(--accent-on);box-shadow:var(--shadow-1)}.record-actions .btn.s:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}.record-actions .btn.g{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.record-actions .btn.g:hover:not(:disabled){background:var(--surface-3);border-color:var(--accent)}.rec-id{flex:1;min-width:0}.rec-id h1{margin:0;font:640 20px/1.2 var(--sans);letter-spacing:-.02em}.rec-meta{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;margin-top:var(--sp-1);font-size:var(--t-m);color:var(--ink-2)}.rec-sub{margin-top:var(--sp-2);font-size:var(--t-m);color:var(--ink-2);display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--h-ctl);padding:0 12px;border-radius:var(--r);font:550 var(--t-m)/1 var(--sans);border:1px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;transition-property:background-color,border-color,color,scale;transition-duration:.12s,.12s,.12s,90ms}.btn:active:not(:disabled){scale:.96}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{height:var(--h-ctl-sm);padding:0 9px;font-size:var(--t-s)}.btn.p{background:var(--accent);color:var(--accent-on);box-shadow:var(--shadow-1)}.btn.p:hover:not(:disabled){background:var(--accent-2)}.btn.s{background:var(--surface);color:var(--ink);border-color:var(--line-2);box-shadow:var(--shadow-1)}.btn.s:hover:not(:disabled){background:var(--surface-2)}.btn.g{background:transparent;color:var(--ink-2)}.btn.g:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.btn.l{height:auto;min-height:var(--h-ctl);padding:6px 0;justify-content:flex-start;text-align:left;white-space:normal;background:transparent;color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;font-weight:550}.btn.l:hover:not(:disabled){color:var(--accent-2);text-decoration-thickness:2px}.btn.l:active:not(:disabled){scale:1}.btn.d{background:var(--surface);color:var(--risk);border-color:var(--risk-line-2)}.btn.d:hover:not(:disabled){background:var(--risk-soft)}.btn.ic{width:var(--h-ctl);padding:0}.btn.ic.sm{width:var(--h-ctl-sm)}.btn .spin{width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;animation:btnspin .7s linear infinite}@keyframes btnspin{to{rotate:360deg}}.chip{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:999px;font:600 var(--t-xs)/1 var(--sans);border:1px solid transparent;white-space:nowrap}.chip .d{width:6px;height:6px;border-radius:999px;background:currentColor}.chip.good{--chip-ink: var(--good);background:var(--good-soft);color:var(--good);border-color:var(--good-line)}.chip.warn{--chip-ink: var(--warn);background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.chip.risk{--chip-ink: var(--risk);background:var(--risk-soft);color:var(--risk);border-color:var(--risk-line)}.chip.n{--chip-ink: var(--ink-2);background:var(--surface-2);color:var(--ink-2);border-color:var(--line)}.chip.a{--chip-ink: var(--accent);background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.chip .mk{font:700 var(--t-xs)/1 var(--sans);display:inline-grid;place-items:center;width:11px;height:11px;border-radius:3px;background:var(--chip-ink, var(--ink-2));color:var(--surface)}.spill{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:999px;font:600 var(--t-m)/1 var(--sans);border:1px solid transparent}.spill .sv{font-variant-numeric:tabular-nums}.spill.up{background:var(--good-soft);color:var(--good);border-color:var(--good-line)}.spill.flat{background:var(--surface-2);color:var(--ink-2);border-color:var(--line)}.spill.dn{background:var(--warn-soft);color:var(--warn);border-color:var(--warn-line)}.spill.far{background:var(--risk-soft);color:var(--risk);border-color:var(--risk-line)}table.t{width:100%;border-collapse:collapse;font-size:var(--t-m);table-layout:fixed}table.t td,table.t th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.t tbody tr:last-child td{border-bottom:0}table.t th{padding:0;background:var(--surface);border-bottom:1px solid var(--line);text-align:left;position:sticky;top:0;z-index:3;white-space:nowrap;box-shadow:0 1px 0 var(--line)}table.t th>button,table.t th>span{display:flex;align-items:center;gap:5px;width:100%;padding:11px var(--sp-4);border:0;background:transparent;font:500 var(--t-m) / 1 var(--sans);letter-spacing:normal;text-transform:none;color:var(--ink-2);text-align:left;white-space:nowrap;overflow:hidden}table.t th>button{cursor:pointer}table.t th>span{cursor:default}table.t th>button>.ar,table.t th>span>.ar{flex-shrink:0;opacity:.9;font-size:var(--t-xs);line-height:1}table.t th>button:hover{color:var(--ink)}table.t th.r>button,table.t th.r>span{justify-content:flex-end}table.t td{padding:0 var(--sp-4);height:54px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:middle;line-height:1.35}table.t tbody tr.clickable{cursor:pointer}table.t tbody tr:hover{background:var(--surface-2)}table.t .btn.g:hover:not(:disabled){background:var(--surface-3)}table.t .nm{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis}table.t .r{text-align:right;font-variant-numeric:tabular-nums}table.t th.selcol,table.t td.selcol{width:40px;padding:0;text-align:center;overflow:visible}table.t th.selcol input[type=checkbox],table.t td.selcol input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--accent);cursor:pointer}.bulkbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-2)}.bulkbar .bb-count{font:650 var(--t-m)/1 var(--sans);color:var(--ink);white-space:nowrap}@media (min-width: 641px){.lscroll>table.t{margin-inline:var(--sp-6);width:calc(100% - var(--sp-6) * 2)}table.t{border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);margin-top:var(--sp-4);margin-bottom:var(--sp-5)}table.t thead th:first-child{border-top-left-radius:var(--r-l)}table.t thead th:last-child{border-top-right-radius:var(--r-l)}table.t tbody tr:last-child td:first-child{border-bottom-left-radius:var(--r-l)}table.t tbody tr:last-child td:last-child{border-bottom-right-radius:var(--r-l)}table.t td:first-child,table.t th:first-child>button,table.t th:first-child>span{padding-left:var(--sp-4)}table.t td:last-child,table.t th:last-child>button,table.t th:last-child>span{padding-right:var(--sp-4)}}.cellp{display:flex;align-items:center;gap:9px;min-width:0}a.cellp,button.cellp{color:inherit;text-decoration:none;font:inherit;border:0;background:transparent;text-align:left;cursor:pointer}a.cellp:hover,a.cellp:focus-visible,button.cellp:hover,button.cellp:focus-visible,a.cellp:hover .nm,a.cellp:focus-visible .nm,button.cellp:hover .nm,button.cellp:focus-visible .nm{color:var(--accent);text-decoration:underline}table.t .m-label{display:none}table.t .m-value{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}@media (max-width: 640px){table.t:where(.t-desc,:has(.m-label)){table-layout:auto;border-collapse:separate}table.t:where(.t-desc,:has(.m-label)) colgroup{display:none}table.t:where(.t-desc,:has(.m-label)) thead:not(:has(button)){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}table.t:where(.t-desc,:has(.m-label)) thead:has(button){position:sticky;top:0;z-index:4;display:block;width:auto;height:auto;margin:0;padding:7px 12px;overflow-x:auto;overflow-y:hidden;clip:auto;clip-path:none;white-space:normal;border:0;border-bottom:1px solid var(--line);background:var(--surface-2);scrollbar-width:thin}table.t:where(.t-desc,:has(.m-label)) thead:has(button) tr{display:flex;gap:6px;width:max-content}table.t:where(.t-desc,:has(.m-label)) thead:has(button){contain:inline-size}table.t:where(.t-desc,:has(.m-label)) thead:has(button) th{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;box-shadow:none}table.t:where(.t-desc,:has(.m-label)) thead:has(button) th:has(>button){position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;clip-path:none}table.t:where(.t-desc,:has(.m-label)) thead:has(button) th>button{min-height:44px;width:auto;padding:0 11px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink-2)}table.t:where(.t-desc,:has(.m-label)) tbody{display:grid;gap:8px;padding:8px 12px}table.t:where(.t-desc,:has(.m-label)) tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px;align-items:start;padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}table.t:where(.t-desc,:has(.m-label)) tbody tr.clickable:hover{background:var(--surface-2)}table.t:where(.t-desc,:has(.m-label)) td{display:block;min-width:0;height:auto;padding:0;border:0;overflow:visible;white-space:normal;text-align:left}table.t:where(.t-desc,:has(.m-label)) td.mfull{order:-1;grid-column:1 / -1;padding-bottom:8px;border-bottom:1px solid var(--line)}table.t:where(.t-desc,:has(.m-label)) .m-label{display:block;color:var(--ink-3);font:650 9.5px/1.2 var(--sans);letter-spacing:.075em;text-transform:uppercase}table.t:where(.t-desc,:has(.m-label)) .m-label:empty{display:none}table.t:where(.t-desc,:has(.m-label)) .m-value{margin-top:3px;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}}@media (min-width: 641px){@container list-region (max-width: 900px){table.t:where(.t-desc,:has(.m-label)){min-width:940px}}}.pgb{width:28px;height:28px;border:1px solid var(--line-2);background:var(--surface);border-radius:var(--r);color:var(--ink-2);cursor:pointer;display:grid;place-items:center;font-size:var(--t-m);transition-property:background-color,color;transition-duration:.12s}.pgb:hover:not(:disabled){background:var(--surface-2)}.pgb:disabled{opacity:.35;cursor:not-allowed}.perpage{height:28px;padding:0 24px 0 8px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink-2);font-size:var(--t-m);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 13px) calc(50% - 1px),calc(100% - 9px) calc(50% - 1px);background-size:4px 4px;background-repeat:no-repeat}.lfoot .lfr{margin-left:auto;display:flex;align-items:center;gap:var(--sp-4)}.rpp{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--ink-2)}.rpp-l{white-space:nowrap}.filters{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--line)}.fsearch{display:flex;align-items:center;gap:8px;height:var(--h-ctl);padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);min-width:190px;flex:0 1 288px}.fsearch input{border:0;background:transparent;outline:none;width:100%;color:var(--ink)}.fsearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sel{height:var(--h-ctl);padding:0 27px 0 10px;font-size:13px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);cursor:pointer;min-width:132px;max-width:178px;text-overflow:ellipsis;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 11px) 15px;background-size:4px 4px;background-repeat:no-repeat}.sel.on{border-color:var(--accent);background-color:var(--accent-soft);color:var(--accent);font-weight:600}.filters .picker-anchor{width:auto;min-width:132px;max-width:178px;flex:0 1 auto}.filters .picker-anchor .picker-input{height:var(--h-ctl);padding:0 27px 0 10px;font:500 13px/1 var(--sans)}.filters .picker-anchor .picker-chevron{right:11px;width:6px;height:6px}.fclear{height:var(--h-ctl);padding:0 9px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--accent);cursor:pointer;font:550 13px/1 var(--sans);transition-property:background-color;transition-duration:.12s}.fclear:hover{background:var(--surface-2)}.fmulti{min-width:0;margin:0;padding:0;border:0}.fmulti legend{display:block;margin-bottom:6px;padding:0;color:var(--ink);font:600 12px/1.3 var(--sans)}.fmulti-options{overflow:hidden;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface)}.fmulti-option{display:flex;min-height:44px;align-items:center;gap:10px;padding:0 11px;color:var(--ink-2);cursor:pointer;font:500 13px/1.25 var(--sans);transition-property:background-color,color;transition-duration:.12s}.fmulti-option+.fmulti-option{border-top:1px solid var(--line)}.fmulti-option:not(.is-disabled):hover{background:var(--surface-2);color:var(--ink)}.fmulti-option:has(input:checked){color:var(--ink);font-weight:550}.fmulti-option:focus-within{box-shadow:inset 0 0 0 2px var(--accent)}.fmulti-option input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--accent)}.fmulti-option.is-disabled{cursor:not-allowed;opacity:.45}.fcount{margin-left:auto;font-size:var(--t-m);color:var(--ink-3);white-space:nowrap}.filters-act{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.fbtn{display:flex;align-items:center;gap:6px;height:var(--h-ctl);padding:0 11px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink-2);cursor:pointer;font-size:var(--t-base);position:relative;transition-property:background-color,border-color,color;transition-duration:.12s}.fbtn:hover{background:var(--surface-2)}.fbtn.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.fbtn .cnt{background:var(--accent);color:var(--accent-on);border-radius:999px;font:650 var(--t-xs) / 1 var(--sans);padding:3px 6px;font-variant-numeric:tabular-nums}.desk-only{display:inline-flex}.mob-only,.fmobile-search-trigger,.fmobile-search{display:none}.datestep{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);overflow:hidden;height:34px}.datestep button{width:32px;height:100%;border:0;background:transparent;color:var(--ink-2);cursor:pointer;display:grid;place-items:center}.datestep button:hover{background:var(--surface-2)}.datestep .dv{padding:0 12px;font:600 13px/1 var(--sans);white-space:nowrap;border-left:1px solid var(--line);border-right:1px solid var(--line);height:100%;display:grid;place-items:center}.face{width:30px;height:30px;border-radius:999px;background:var(--surface-3);display:grid;place-items:center;font:650 var(--t-s) / 1 var(--sans);color:var(--ink-2);flex-shrink:0;outline:1px solid oklch(0 0 0 / .07);outline-offset:-1px;position:relative;overflow:hidden}.face img{width:100%;height:100%;object-fit:cover}.face.a{background:var(--accent-soft);color:var(--accent)}.face.g{background:var(--good-soft);color:var(--good)}.face.w{background:var(--warn-soft);color:var(--warn)}.face.xl{width:58px;height:58px;font-size:19px;border-radius:16px}.face .noph{position:absolute;inset:auto -2px -2px auto;width:14px;height:14px;border-radius:999px;background:var(--warn);border:2px solid var(--surface)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats:has(>.stat:first-child:last-child){grid-template-columns:minmax(165px,22rem);justify-content:start;background:var(--surface)}.stats:has(>.stat:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(165px,22rem));justify-content:start;background:var(--surface)}.stats:has(>.stat:nth-child(2):last-child)>.stat+.stat{border-left:1px solid var(--line)}.stat{background:var(--surface);padding:var(--sp-2) var(--sp-6);border:0;text-align:left;font-family:inherit;display:block;width:100%;color:inherit;text-decoration:none}button.stat,a.stat{cursor:pointer;transition-property:background-color;transition-duration:.12s}button.stat:hover,a.stat:hover{background:var(--surface-2)}.stat .k{font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.stat .v{font:640 var(--t-2xl) / 1.05 var(--sans);letter-spacing:-.022em;font-variant-numeric:tabular-nums;margin-top:5px;color:var(--ink)}.stat .m{font-size:var(--t-s);line-height:1.3;color:var(--ink-2);margin-top:3px}.tabs{display:flex;gap:2px;padding:0 var(--sp-6);border-bottom:1px solid var(--line);overflow-x:auto}.tab{padding:9px 11px;border:0;background:transparent;color:var(--ink-2);font:550 13px/1 var(--sans);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;text-decoration:none;transition-property:color,border-color;transition-duration:.12s}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:650}.card{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);padding:var(--sp-4) var(--sp-5)}.card h3{margin:0 0 3px;font:640 var(--t-base) / 1.35 var(--sans)}.card .cs{font-size:12px;color:var(--ink-3);margin-bottom:var(--sp-3)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}.rolegroup+.rolegroup{margin-top:var(--sp-4)}.rolegrp-h{margin:0 0 var(--sp-2);font:640 var(--t-m) / 1.3 var(--sans);color:var(--ink-2)}.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.tl{display:grid;grid-template-columns:72px 1fr auto;gap:12px;padding:var(--sp-2) 0;border-bottom:1px solid var(--line);font-size:var(--t-m);align-items:baseline}.tl:last-child{border-bottom:0}.tl .d{font-variant-numeric:tabular-nums;color:var(--ink-3)}.tl .w{color:var(--ink-3)}.legend{display:flex;gap:var(--sp-5);flex-wrap:wrap;font-size:var(--t-m);color:var(--ink-2)}.legend i{width:11px;height:11px;border-radius:3px;display:inline-block;margin-right:6px;vertical-align:-1px}.bar{display:flex;height:26px;border-radius:6px;overflow:hidden;background:var(--surface-3);gap:2px}.bar i{display:block;height:100%}.sumbar{display:flex;height:30px;border-radius:8px;overflow:hidden;gap:2px;max-width:620px}.sumbar i{display:grid;place-items:center;font:650 var(--t-m) / 1 var(--sans);color:#fff;min-width:6px}.banner{padding:11px 13px;border-radius:var(--r-l);font-size:var(--t-m);display:flex;gap:12px;align-items:flex-start;color:var(--ink-2)}.banner-band{margin:var(--sp-3) var(--sp-6);flex-shrink:0}@media (max-width: 640px){.banner-band{margin-inline:var(--sp-4)}}.banner .h{font:650 13px/1.4 var(--sans);display:block;margin-bottom:3px}.banner.warn{background:var(--warn-soft);border:1px solid var(--warn-line)}.banner.warn .h{color:var(--warn)}.banner.risk{background:var(--risk-soft);border:1px solid var(--risk-line)}.banner.risk .h{color:var(--risk)}.banner.a{background:var(--accent-soft);border:1px solid var(--accent-line)}.banner.a .h{color:var(--accent)}.banner.good{background:var(--good-soft);border:1px solid var(--good-line)}.banner.good .h{color:var(--good)}.sheet-scrim{position:fixed;inset:0 min(var(--sheet-width),94vw) 0 0;background:#4028114d;opacity:0;pointer-events:none;transition-property:opacity;transition-duration:.18s;transition-timing-function:cubic-bezier(.2,0,0,1);z-index:40}.sheet-scrim.on{opacity:1;pointer-events:auto}.sheet{position:fixed;top:0;right:0;bottom:0;width:var(--sheet-width);max-width:94vw;background:var(--surface);box-shadow:var(--shadow-3);z-index:41;translate:100% 0;transition-property:translate,visibility;transition-duration:.21s;transition-timing-function:cubic-bezier(.2,0,0,1);visibility:hidden;display:flex;flex-direction:column;pointer-events:auto}.sheet.on{translate:0 0;visibility:visible}.sheet-h{padding:var(--sp-4) 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px;flex-shrink:0}.sheet-h h2{margin:0;font:640 17px/1.3 var(--sans)}.sheet-h .sub{font-size:var(--t-m);color:var(--ink-2);margin-top:3px}.sheet-b{padding:var(--sp-5) 20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:13px}.sheet-f{padding:11px 20px calc(11px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface-2);display:flex;gap:var(--sp-2);flex-shrink:0}.fld{display:flex;flex-direction:column;gap:5px}.fld label{font:600 12px/1.3 var(--sans)}.fld .req{color:var(--risk)}.inp{height:var(--h-field);padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);width:100%;outline:none;transition-property:border-color,box-shadow;transition-duration:.12s}.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.inp[aria-invalid=true]{border-color:var(--risk)}select.inp{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:27px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 15px,calc(100% - 11px) 15px;background-size:4px 4px;background-repeat:no-repeat}textarea.inp{height:76px;padding:9px 11px;resize:vertical}.fld .hint{font-size:12px;color:var(--ink-3)}.fld .err{font-size:12px;color:var(--risk)}.fgroup+.fgroup{margin-top:var(--sp-4)}.fglabel{font:650 var(--t-s) / 1 var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-bottom:var(--sp-2)}.check{display:flex;gap:var(--sp-3);align-items:flex-start;padding:12px;border:1px solid var(--line-2);border-radius:var(--r);cursor:pointer}.check input{margin-top:2px;flex-shrink:0}.check span{font-size:13px;color:var(--ink-2)}.check.on{border-color:var(--good);background:var(--good-soft)}.ef{display:flex;align-items:baseline;gap:var(--sp-3);padding:6px 0;border-bottom:1px solid var(--line)}.ef:last-child{border-bottom:0}.ef .k{width:140px;flex-shrink:0;font-size:var(--t-m);color:var(--ink-3)}.ef .v{flex:1;min-width:0}.ef .v button.edit{border:1px solid transparent;background:transparent;border-radius:6px;padding:3px 7px;margin:-3px -7px;text-align:left;cursor:text;color:var(--ink);font:inherit;width:100%;transition-property:border-color,background-color;transition-duration:.12s}.ef .v button.edit:hover{border-color:var(--line-2);background:var(--surface)}.ef .v input{border:1px solid var(--accent);background:var(--surface);border-radius:6px;padding:3px 7px;margin:-3px -7px;width:100%;color:var(--ink);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.ef .v .empty{color:var(--ink-3);font-style:italic}.ef .lock{font-size:12px;color:var(--ink-3);display:inline-flex;align-items:center;gap:5px}.ef .v.split{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.ef .v .stack{min-width:0}.ef-actions{display:flex;gap:var(--sp-2);flex-shrink:0}.menu-pop{position:fixed;z-index:50;min-width:208px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-3);padding:6px;display:flex;flex-direction:column;gap:1px}.menu-pop button{display:flex;align-items:center;gap:9px;width:100%;height:34px;padding:0 10px;border:0;border-radius:var(--r);background:transparent;color:var(--ink-2);font:500 13px/1 var(--sans);text-align:left;cursor:pointer;transition-property:background-color,color;transition-duration:.12s}.menu-pop button:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.menu-pop button:disabled{opacity:.4;cursor:not-allowed}.menu-pop button.danger{color:var(--risk)}.menu-pop button.danger:hover:not(:disabled){background:var(--risk-soft)}.menu-sep{height:1px;background:var(--line);margin:5px 0}.menu-head{padding:8px 10px 9px;border-bottom:1px solid var(--line);margin:-6px -6px 5px}.picker-anchor{position:relative;width:100%;min-width:0}.picker-input{width:100%;height:40px;padding:0 36px 0 11px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);font:500 var(--t-m)/1 var(--sans);outline:0;text-overflow:ellipsis}.picker-input::placeholder{color:var(--ink-3);opacity:1}.picker-anchor.open .picker-input,.picker-input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.picker-anchor.disabled{opacity:.58}.picker-anchor.disabled .picker-input{cursor:not-allowed}.picker-chevron{position:absolute;top:50%;right:13px;width:7px;height:7px;border-right:1.5px solid var(--ink-2);border-bottom:1.5px solid var(--ink-2);rotate:45deg;translate:0 -70%;pointer-events:none;transition:rotate .12s ease,translate .12s ease}.picker-anchor.open .picker-chevron{rotate:225deg;translate:0 10%}.picker-pop{position:fixed;z-index:60;overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-3);scrollbar-gutter:stable}.picker-group+.picker-group,.picker-option+.picker-group{margin-top:5px;padding-top:5px;border-top:1px solid var(--line)}.picker-group-label{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-height:28px;padding:4px 9px;color:var(--ink-3);font:650 var(--t-xs)/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase}.picker-count{min-width:20px;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:center;letter-spacing:0}.picker-option{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;min-height:40px;padding:7px 9px;border:0;border-radius:var(--r);background:transparent;color:var(--ink-2);font:500 var(--t-m)/1.25 var(--sans);text-align:left;cursor:pointer}.picker-option:hover:not(:disabled),.picker-option.active:not(:disabled){background:var(--surface-2);color:var(--ink)}.picker-option.selected:not(:disabled){color:var(--accent-2)}.picker-option:disabled{cursor:not-allowed;opacity:1}.picker-option-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:2px}.picker-option-label,.picker-option-description,.picker-option-reason{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-option-label{color:inherit}.picker-option-description{color:var(--ink-3);font:400 var(--t-s)/1.3 var(--sans)}.picker-option-reason{color:var(--risk);font:500 var(--t-xs)/1.3 var(--sans)}.picker-check{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;background:var(--accent-soft);color:var(--accent-2);font-size:12px;font-weight:750}.picker-message{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:64px;padding:var(--sp-4);color:var(--ink-3);font:500 var(--t-m)/1.35 var(--sans);text-align:center}.picker-error{color:var(--risk)}.picker-spinner{width:14px;height:14px;border:2px solid var(--accent-line);border-top-color:var(--accent);border-radius:50%;animation:picker-spin .7s linear infinite}@keyframes picker-spin{to{rotate:360deg}}@media (max-width: 640px){.picker-option{min-height:44px;padding-block:8px}}@media (prefers-reduced-motion: reduce){.picker-chevron,.picker-spinner{transition:none;animation:none}}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-6);text-align:center}.lscroll>.empty{min-height:100%}.empty .i{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface-2);color:var(--ink-3)}.empty .t{font:640 15px/1.3 var(--sans)}.empty .s{font-size:var(--t-base);color:var(--ink-2);max-width:42ch}.skel{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;border-radius:5px;animation:skelshift 1.4s ease-in-out infinite}@keyframes skelshift{0%{background-position:100% 0}to{background-position:0 0}}.toasts{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;display:flex;flex-direction:column;gap:9px;align-items:flex-end}.toast{display:flex;align-items:center;gap:11px;padding:12px 15px;border-radius:var(--r-l);background:var(--ink);color:var(--paper);box-shadow:var(--shadow-3);font-size:var(--t-base);max-width:430px;animation:toastin .18s cubic-bezier(.2,0,0,1)}@keyframes toastin{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}.toast button{background:transparent;border:0;color:var(--paper);font:650 13px/1 var(--sans);text-decoration:underline;cursor:pointer}.cal-h{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}.cal-h b{font:640 13px/1 var(--sans)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:340px}.cal .cal-row{display:contents}.cal .dow{font:650 9.5px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);text-align:center;padding-bottom:2px}.cal i,.cal button{aspect-ratio:1;border-radius:3px;border:0;padding:0;display:grid;place-items:center;position:relative;background:transparent;font:700 9px/1 var(--sans);color:#fff;font-style:normal}.cal i.blank{background:transparent}.cal i.present,.cal button.present{background:var(--c-present)}.cal i.late,.cal button.late{background:var(--c-late);color:var(--ink)}.cal i.absent,.cal button.absent,.cal i.partial,.cal button.partial{background:var(--c-absent)}.cal i.none,.cal button.none{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2)}.cal i.off,.cal button.off{background:var(--c-off);color:var(--ink-2)}.cal i.exam,.cal button.exam{background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink-2)}.cal button{cursor:pointer;font-family:inherit}.cal button:hover{filter:brightness(.97)}.cal button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;z-index:1}.cal :is(i,button).future{background:transparent;box-shadow:none;color:var(--ink-3);opacity:.45}.cal :is(i,button).selected{box-shadow:inset 0 0 0 2px var(--accent)}.cal.has-days :is(i,button){min-width:0;min-height:0;border-radius:6px;font-size:10px}.cal.has-days .day-no{position:absolute;top:6px;left:7px;font:650 10.5px/1 var(--sans);font-variant-numeric:tabular-nums}.cal.has-days .day-mark{position:absolute;right:6px;bottom:5px;font:750 10px/1 var(--sans)}.chartbox{position:relative;margin-top:6px}.chartbox svg{width:100%;height:190px;display:block;overflow:visible}.chartbox .hit{fill:transparent;cursor:crosshair}.ctip{position:absolute;pointer-events:none;opacity:0;transition-property:opacity;transition-duration:.12s;background:var(--ink);color:var(--paper);border-radius:var(--r);padding:8px 10px;font-size:var(--t-m);line-height:1.45;white-space:nowrap;box-shadow:var(--shadow-3);transform:translate(-50%,-100%);z-index:6}.ctip.on{opacity:1}.ctip b{font-variant-numeric:tabular-nums}.ctip .sub{color:#ffffffa6;font-size:var(--t-s)}.spark{display:block;overflow:visible}.statbig{font:640 var(--t-3xl) / 1 var(--sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.statbig.good{color:var(--good)}.statbig.warn{color:var(--warn)}.statbig.risk{color:var(--risk)}.sub2{font-size:var(--t-m);color:var(--ink-3);margin-top:4px}.muted{color:var(--ink-3)}.lk{border:0;background:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.lk:hover{color:var(--accent-2)}.lk.risk{color:var(--risk)}.kvs{display:flex;flex-direction:column}.kv{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-3);padding:9px 0;font-size:var(--t-base)}.kv>span:first-child{color:var(--ink-2)}.kv>:last-child{font-variant-numeric:tabular-nums}.kv.line{border-bottom:1px solid var(--line)}.kv.total{padding-top:12px;font-size:15px;font-weight:650;color:var(--ink);border-top:1px solid var(--line-2)}a.kv,button.kv{color:inherit;text-decoration:none;font:inherit;border:0;background:transparent;text-align:left;cursor:pointer;align-items:center;padding:8px;margin-inline:-8px;border-radius:var(--r);transition-property:background-color;transition-duration:.12s}a.kv:hover,button.kv:hover,a.kv:focus-visible,button.kv:focus-visible{background:var(--surface-2)}.kv-v{--kv-ink: var(--ink);display:inline-flex;align-items:center;gap:var(--sp-2);font:640 var(--t-l) / 1.2 var(--sans);font-variant-numeric:tabular-nums;color:var(--kv-ink);white-space:nowrap}.kv-v.good{--kv-ink: var(--good)}.kv-v.warn{--kv-ink: var(--warn)}.kv-v.risk{--kv-ink: var(--risk)}.kv-v .mk{font:700 9.5px/1 var(--sans);display:inline-grid;place-items:center;width:13px;height:13px;border-radius:4px;background:var(--kv-ink);color:var(--surface);flex-shrink:0}.kv-v .cv{color:var(--ink-3);flex-shrink:0;transition-property:translate,color;transition-duration:.12s}a.kv:hover .cv,button.kv:hover .cv,a.kv:focus-visible .cv,button.kv:focus-visible .cv{color:var(--kv-ink, var(--ink-2));translate:2px 0}.receipt{display:grid;grid-template-columns:84px 1fr auto auto;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--t-m)}.receipt:last-child{border-bottom:0}.receipt-no{font-family:var(--mono);font-size:.92em;color:var(--ink-3);font-variant-numeric:tabular-nums}.picklist{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto}.pick{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer;transition-property:border-color,background-color;transition-duration:.12s}.pick:hover{border-color:var(--line-2);background:var(--surface-2)}.pick.picked,.picked{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.hint.good{color:var(--good)}.hint.warn{color:var(--warn)}.hint.risk{color:var(--risk)}.nm{color:var(--ink);font-weight:600}.r{text-align:right;font-variant-numeric:tabular-nums}.scroll{overflow-x:auto}.bgrid{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}.bcard{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);padding:12px var(--sp-4);text-align:left;font-family:inherit;cursor:pointer;text-decoration:none;color:inherit;display:block;transition-property:border-color,box-shadow;transition-duration:.12s}.bcard:hover{border-color:var(--line-2);box-shadow:var(--shadow-2)}.bcard.live{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.bcard .bt{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.bcard .bc{font:650 16px/1.2 var(--sans);color:var(--ink)}.bcard .bm{font-size:var(--t-m);color:var(--ink-3);margin-top:3px}.bcard .pc{font:640 23px/1 var(--sans);letter-spacing:-.024em;font-variant-numeric:tabular-nums;margin-top:9px}.bcard .fr{font-size:var(--t-m);color:var(--ink-2);margin-top:4px}.bcard .ab{display:flex;align-items:center;gap:var(--sp-2);margin-top:12px;font-size:var(--t-m)}.callrow{display:flex;align-items:center;gap:var(--sp-4);padding:11px var(--sp-4);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);margin-bottom:8px}.callrow .who{flex:1;min-width:0}.callrow .who b{display:block;font:650 14px/1.3 var(--sans);color:var(--ink)}.callrow .who span{display:block;font-size:12px;color:var(--ink-3);margin-top:1px}.callrow .days{text-align:center;flex-shrink:0;min-width:44px}.callrow .days b{display:block;font:650 var(--t-2xl) / 1 var(--sans);font-variant-numeric:tabular-nums}.callrow .days span{display:block;font:650 9.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:3px}.dispo{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;flex-shrink:0}.dispo button{height:30px;padding:0 12px;border:0;border-left:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:550 var(--t-m) / 1 var(--sans);cursor:pointer;white-space:nowrap}.dispo button:first-child{border-left:0}.dispo button:hover{background:var(--surface-2);color:var(--ink)}.stulist{display:grid;gap:9px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.stucard{display:flex;align-items:center;gap:9px;padding:8px 11px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);text-decoration:none;color:inherit}.stucard.abs{border-color:var(--risk-line);background:var(--risk-soft)}.stucard .si{flex:1;min-width:0}.stucard .sn{font-weight:600;color:var(--ink);font-size:var(--t-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stucard .sm{font-size:12px;color:var(--ink-3)}.tt{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:760px}.tt th{padding:var(--sp-3) 12px;background:var(--surface-2);border-bottom:1px solid var(--line);font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);text-align:left;white-space:nowrap}.tt td{padding:6px;border-bottom:1px solid var(--line);vertical-align:top}.tt td.per{font:600 12px/1.4 var(--mono);color:var(--ink-3);white-space:nowrap;padding:var(--sp-4) 12px;background:var(--surface-2)}.cell{border-radius:var(--r);padding:9px 10px;background:var(--accent-soft);border:1px solid var(--accent-line);min-height:56px;cursor:pointer}.cell:hover{background:var(--surface-2)}.cell .cs1{font-weight:650;color:var(--ink);font-size:13px}.cell .cs2{font-size:var(--t-s);color:var(--ink-2);margin-top:2px}.cell .cs3{font-size:var(--t-s);color:var(--ink-3)}.cell.free{background:transparent;border:1px dashed var(--line);color:var(--ink-3);display:grid;place-items:center;font-size:12px}.cell.brk{background:var(--surface-2);border-color:var(--line);text-align:center;color:var(--ink-3);font-size:12px;display:grid;place-items:center}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){.fcount,.head{display:none}.desk-only{display:none!important}.mob-only{display:block}.sheet-b>.mob-only{display:flex;flex-direction:column;gap:13px}.filters{position:relative;display:flex;padding:6px var(--sp-4);gap:8px;flex-wrap:nowrap;align-items:center}.filters .fsearch,.filters .sel,.filters .fclear,.filters-act{display:none}.filters .fbtn{min-height:36px}.filters .fcount{margin-left:auto}.filters.has-lead{display:flex;padding:6px var(--sp-4);gap:8px;flex-wrap:nowrap}.filters.has-lead .fsearch,.filters.has-lead .fclear{display:none}.filters.has-lead .datestep{flex:1;height:40px;justify-content:space-between}.filters.has-lead .datestep button{width:48px}.fmobile-search-trigger{position:relative;display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:var(--r);background:transparent;color:var(--ink-2);cursor:pointer;transition:color .12s,transform .12s}.fmobile-search-trigger:before{content:"";position:absolute;z-index:0;width:32px;height:32px;border-radius:var(--r);background:transparent;transition:background-color .12s,transform .12s}.fmobile-search-trigger>svg{position:relative;z-index:1}.fmobile-search-trigger:hover:before,.fmobile-search-trigger:focus-visible:before{background:var(--surface-2)}.fmobile-search-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.fmobile-search-trigger:active{transform:translateY(1px)}.fmobile-search-trigger:active:before{transform:scale(.96)}.fmobile-search-trigger.on{color:var(--accent)}.fmobile-search-trigger.on:before{background:var(--accent-soft)}.filters.is-mobile-searching>:not(.fmobile-search){visibility:hidden}.fmobile-search{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;gap:6px;min-height:48px;padding:2px 8px 1px 12px;border-bottom:1px solid var(--line);background:var(--surface)}.fmobile-search-field{display:flex;align-items:center;flex:1;min-width:0;height:44px;gap:7px;padding-left:10px;border:1px solid transparent;border-radius:var(--r);background:var(--surface-2);color:var(--ink-2)}.fmobile-search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.fmobile-search-field input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:var(--ink);font:500 16px/1 var(--sans)}.fmobile-search-field input::-webkit-search-cancel-button{display:none}.fmobile-search-field input::placeholder{color:var(--ink-3)}.fmobile-search-field button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:var(--r);background:transparent;color:var(--ink-2);cursor:pointer}.fmobile-search-field button:hover,.fmobile-search-field button:focus-visible{background:var(--surface-3);color:var(--ink)}.fmobile-search-done{flex:0 0 auto;min-width:50px;height:44px;padding:0 7px;border:0;border-radius:var(--r);background:transparent;color:var(--accent);cursor:pointer;font:650 13px/1 var(--sans)}.fmobile-search-done:hover,.fmobile-search-done:focus-visible{background:var(--surface-2)}.lfoot{padding:3px var(--sp-4);font-size:12px;gap:6px;flex-wrap:nowrap}.lfoot .pgb{width:30px;height:30px;min-height:0}.lfoot .num{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lfoot .perpage{flex:0 0 104px;min-width:104px;max-width:104px;height:30px;min-height:0;padding:0 30px 0 9px;background-position:calc(100% - 14px) calc(50% - 1px),calc(100% - 10px) calc(50% - 1px)}.lfoot .lfmeta,.lfoot .rpp-l{display:none}.lfoot .lfr{gap:6px}.pad{padding:var(--sp-4)}.rec-head{padding:8px var(--sp-4);gap:var(--sp-3);align-items:center}.rec-id h1,.rec-meta{display:none}.rec-sub{margin-top:0}.crumb{display:none}.face.xl{width:38px;height:38px;font-size:14px;border-radius:11px}.stats{display:flex;grid-template-columns:none;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:var(--sp-4);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;overscroll-behavior-x:contain}.stats::-webkit-scrollbar{display:block;height:3px}.stats::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.stat{flex:0 0 clamp(210px,72vw,280px);width:auto;min-width:0;max-width:280px;display:grid;grid-template-columns:auto minmax(0,auto);grid-template-rows:auto auto;align-content:center;align-items:baseline;column-gap:6px;row-gap:1px;min-height:52px;padding:4px var(--sp-4);white-space:normal;scroll-snap-align:start}.stats:has(>.stat:nth-child(2):last-child)>.stat{flex:1 1 0;max-width:none}.stat .k{font-size:9.5px;white-space:nowrap}.stat .v{font-size:15px;margin-top:0;min-width:0;white-space:nowrap}.stat .m{grid-column:1 / -1;font-size:var(--t-xs);line-height:1.2;margin-top:0;overflow:visible;text-overflow:clip;white-space:normal}.stat .v svg{height:20px;width:auto;vertical-align:middle}.tabs{padding:0 var(--sp-4)}table.t:not(.t-desc) thead,table.t.t-desc thead:not(:has(button)){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}table.t:not(.t-desc) thead button,table.t.t-desc thead:not(:has(button)) button{visibility:hidden}table.t{table-layout:auto}table.t colgroup{display:none}table.t tbody tr{display:flex;flex-wrap:wrap;gap:1px var(--sp-3);padding:8px var(--sp-4);align-items:center;border-bottom:1px solid var(--line)}table.t:where(.t-desc,:has(.m-label)) tbody{gap:0;padding:0}table.t:where(.t-desc,:has(.m-label)) tbody tr{display:flex;flex-wrap:wrap;align-items:baseline;grid-template-columns:none;gap:3px 12px;padding:10px var(--sp-4);border:0;border-bottom:1px solid var(--line);border-radius:0}table.t:where(.t-desc,:has(.m-label)) tbody tr>td{display:flex;align-items:baseline;gap:5px}table.t:where(.t-desc,:has(.m-label)) tbody tr>td>.m-label{flex-shrink:0}table.t:where(.t-desc,:has(.m-label)) tbody tr>td.r{text-align:left}table.t td{white-space:normal;overflow:visible;border:0;height:auto;padding:0;display:block}table.t td:first-child{padding-left:0}table.t td:last-child{padding-right:0}table.t:where(.t-desc,:has(.m-label)) td.mfull{order:-1;flex:1 0 100%;grid-column:1 / -1;padding-bottom:0;border-bottom:0}table.t:where(.t-desc,:has(.m-label)) td.mfull>.m-label{display:none}table.t:where(.t-desc,:has(.m-label)) .m-label{display:block}table.t:where(.t-desc,:has(.m-label)) .m-value{display:block;min-width:0;margin-top:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}table.t td.m-hide{display:none}table.t td.mfull{width:100%}.m-hide{display:none!important}.receipt{grid-template-columns:1fr auto;row-gap:2px}.picklist{max-height:none}.sheet{left:0;right:auto;top:14dvh;bottom:auto;width:100dvw;max-width:none;height:86dvh;border-radius:var(--r-xl) var(--r-xl) 0 0;translate:0 100%}.sheet-scrim{inset:0 auto auto 0;width:100dvw;height:14dvh}.sheet.on{translate:0 0}.g2,.g3,.bgrid,.stulist{grid-template-columns:1fr}.ef{flex-direction:column;gap:3px;align-items:stretch}.ef .k{width:auto}.callrow{flex-wrap:wrap;gap:9px}.callrow .who{flex:1 1 60%}.callrow .days{order:2}.dispo{width:100%;order:3}.dispo button{flex:1;padding:0 6px}.toasts{right:12px;left:12px;bottom:calc(var(--h-tabbar) + 12px + env(safe-area-inset-bottom));align-items:stretch}.cal{max-width:none}}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape),(pointer: coarse){.inp,.sel,.perpage{font-size:16px}.inp,.sel{min-height:40px}textarea.inp{min-height:72px}select.inp,.sel{background-position:calc(100% - 15px) calc(50% - 1px),calc(100% - 11px) calc(50% - 1px)}input[type=checkbox],input[type=radio]{width:20px;height:20px}.datestep .dv{padding:0 8px;font-size:16px}.datestep .dv input{width:100%;height:100%}.btn,.btn.sm{min-height:44px}.btn.sm{padding:0 14px}.btn.ic,.btn.ic.sm{min-width:44px}.dispo button{min-height:44px}.datestep{height:44px}.datestep button{width:44px}.pgb{width:44px;height:44px}.perpage,.settings-rail .nv,.tab,.crumb{min-height:44px}.cellp{min-height:44px;display:flex;align-items:center}a.kv,button.kv{min-height:44px;align-items:center}.fsearch{height:44px}.fsearch input{height:100%;font-size:16px}.fbtn{min-height:44px}table.t th>button{min-height:44px}}.ttp-item[data-movable=true]{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.ttp-item[data-movable=true]:active{cursor:grabbing}.ttp-item.direct-drag{position:fixed;z-index:1200;box-sizing:border-box;margin:0;opacity:.94;pointer-events:none;transform:scale(1.015);transform-origin:center;box-shadow:0 8px 22px color-mix(in srgb,var(--ink) 18%,transparent);cursor:grabbing;will-change:transform}.ttd thead .roomb{display:inline-block;padding:1px 5px;margin:1px -5px 0;border:1px solid transparent;border-radius:var(--r-xs, 5px);background:none;font:600 11.5px/1.4 var(--mono);color:var(--ink-3);letter-spacing:.02em;cursor:pointer}.ttd thead .roomb:hover,.ttd thead .roomb:focus-visible{border-color:var(--accent-line);background:var(--surface);color:var(--ink)}.ttd{table-layout:fixed;min-width:calc(92px + var(--cols, 6) * 118px)}.ttp-item.s1{--tt-line: oklch(.7 .11 95);--tt-soft: oklch(.955 .04 95)}.ttp-item.s2{--tt-line: oklch(.7 .11 125);--tt-soft: oklch(.955 .04 125)}.ttp-item.s3{--tt-line: oklch(.7 .11 155);--tt-soft: oklch(.955 .04 155)}.ttp-item.s4{--tt-line: oklch(.7 .11 185);--tt-soft: oklch(.955 .04 185)}.ttp-item.s5{--tt-line: oklch(.7 .11 215);--tt-soft: oklch(.955 .04 215)}.ttp-item.s6{--tt-line: oklch(.7 .11 245);--tt-soft: oklch(.955 .04 245)}.ttp-item.s7{--tt-line: oklch(.7 .11 275);--tt-soft: oklch(.955 .04 275)}.ttp-item.s8{--tt-line: oklch(.7 .11 305);--tt-soft: oklch(.955 .04 305)}.ttp-item.s9{--tt-line: oklch(.7 .11 335);--tt-soft: oklch(.955 .04 335)}.ttp-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:5px 7px;border:1px solid var(--line);border-left:3px solid var(--tt-state-line, var(--tt-subject-line, var(--accent-line)));border-radius:var(--r-s, 6px);background:var(--tt-state-soft, var(--tt-subject-soft, var(--accent-soft)));font:inherit;text-align:left;cursor:pointer}.ttp-item.clash{--tt-line: var(--risk-line-2);--tt-soft: var(--risk-soft);border-color:var(--risk-line-2)}.ttp-add{align-self:stretch;min-height:28px;padding:2px 6px;border:1px dashed var(--line);border-radius:var(--r-s, 6px);background:transparent;color:var(--ink-3);font:600 11.5px/1 var(--sans);cursor:pointer}.ttp-add:disabled,.ttp-item:disabled{cursor:wait}.ttd td>.ttp-add{width:100%;min-height:36px}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){table.t.t-flat{display:table;table-layout:auto;border-collapse:collapse;margin-inline:0;border:0;border-radius:0;width:max-content;min-width:100%}table.t.t-flat colgroup{display:none}table.t.t-flat{table-layout:auto}table.t.t-flat td.mfull,table.t.t-flat th.mfull{min-width:9rem}table.t.t-flat thead,table.t.t-flat thead:not(:has(button)),table.t.t-flat thead:has(button){position:sticky;top:0;z-index:3;display:table-header-group;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;clip-path:none;background:none;border:0}table.t.t-flat thead tr{display:table-row;width:auto;gap:0}table.t.t-flat tbody{display:table-row-group;gap:0;padding:0}table.t.t-flat tbody tr{display:table-row;gap:0;padding:0;border:0;border-radius:0}table.t.t-flat th,table.t.t-flat td{display:table-cell;position:static;width:auto;height:var(--h-row);margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;clip:auto;clip-path:none}table.t.t-flat th,table.t.t-flat td{padding:0 10px}table.t.t-flat td:first-child{padding-left:var(--sp-4)}table.t.t-flat td:last-child{padding-right:var(--sp-4)}table.t.t-flat th{position:sticky;top:0;height:auto;padding:0;background:var(--surface-2);border-bottom:1px solid var(--line)}table.t.t-flat th>button,table.t.t-flat th>span{display:flex;width:100%;padding:9px 10px;border:0;border-radius:0;background:transparent}table.t.t-flat th:first-child>button,table.t.t-flat th:first-child>span{padding-left:var(--sp-4)}table.t.t-flat th:last-child>button,table.t.t-flat th:last-child>span{padding-right:var(--sp-4)}table.t.t-flat td{border-bottom:1px solid var(--line)}table.t.t-flat .m-label{display:none}table.t.t-flat .m-value{display:inline;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}table.t.t-flat th.m-hide,table.t.t-flat td.m-hide{display:none}table.t.t-flat td.r,table.t.t-flat th.r{text-align:right}table.t.t-flat th.r>button,table.t.t-flat th.r>span{justify-content:flex-end}table.t.t-flat td.mfull{flex:none;order:0}}.side{width:calc(74px + env(safe-area-inset-left));padding-left:env(safe-area-inset-left);padding-top:env(safe-area-inset-top);flex-shrink:0;background:var(--surface-2);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;min-height:0}.side+.main{padding-top:env(safe-area-inset-top)}.side-top{width:100%;height:calc(2 * var(--sp-5) + var(--t-xl) * 1.25);box-sizing:border-box;background:#00572b;background:oklch(.4 .112 153);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}.side-top .acct{width:auto;height:auto;padding:3px;border-radius:999px;box-shadow:0 0 0 2px #ffffffbf}.side-top .acct:hover,.side-top .acct:focus-visible{background:#ffffff24;box-shadow:0 0 0 2px #fffffff2}.side nav{flex:1;overflow-y:auto;width:100%;padding:var(--sp-1) 8px var(--sp-3);display:flex;flex-direction:column;gap:2px}.nv{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border:0;border-radius:var(--r);background:transparent;color:var(--ink-2);font:550 var(--t-xs)/1.2 var(--sans);cursor:pointer;text-align:center;width:100%;text-decoration:none;transition-property:background-color,color;transition-duration:.12s}.nv:hover{background:var(--surface-3);color:var(--ink)}.nv[aria-current=page]{color:var(--accent);font-weight:650}.nv svg{flex-shrink:0;opacity:.72}.nv[aria-current=page] svg{opacity:1}.nv span{max-width:100%;white-space:normal;overflow-wrap:normal;word-break:keep-all;-webkit-hyphens:none;hyphens:none;font-size:inherit;letter-spacing:-.01em}.side-foot{margin-top:auto;width:100%;padding-top:var(--sp-2)}.role-detail{display:flex;flex-direction:column;gap:var(--sp-4)}.role-detail-description{max-width:58ch;margin:0;color:var(--ink-2);font-size:var(--t-m);line-height:1.55;text-wrap:pretty}.role-detail-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(7rem,.55fr);margin:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}.role-detail-fact{min-width:0;padding:var(--sp-3) var(--sp-4);border-right:1px solid var(--line)}.role-detail-fact:last-child{border-right:0}.role-detail-fact dt{margin:0 0 var(--sp-1);color:var(--ink-3);font:600 var(--t-s) / 1.2 var(--sans)}.role-detail-fact dd{min-width:0;margin:0;overflow:hidden;color:var(--ink);font:650 var(--t-base) / 1.3 var(--sans);text-overflow:ellipsis;white-space:nowrap}.role-detail-permissions{display:flex;flex-direction:column;gap:var(--sp-3)}.role-detail-section-head{display:flex;align-items:end;justify-content:space-between;gap:var(--sp-4)}.role-detail-section-head h3{margin:0;color:var(--ink);font:650 var(--t-l) / 1.3 var(--sans)}.role-detail-areas{columns:2;column-gap:var(--sp-3)}.role-detail-area{min-width:0;margin:0 0 var(--sp-3);overflow:hidden;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);break-inside:avoid}.role-detail-area-head{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);background:var(--surface-2)}.role-detail-area-head h4{margin:0;color:var(--ink);font:650 var(--t-m) / 1.3 var(--sans)}.role-detail-feature-list{margin:0;padding:0;list-style:none}.role-detail-feature{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-2);align-items:baseline;min-height:40px;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line)}.role-detail-feature:last-child{border-bottom:0}.role-detail-feature-name{min-width:0;color:var(--ink);font:600 var(--t-m) / 1.35 var(--sans);text-wrap:pretty}.role-detail-ops{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0;color:var(--ink-2);font-size:var(--t-s);line-height:1.35}.role-detail-ops>span+span:before{content:"·";padding:0 5px;color:var(--line-2)}.role-detail-empty{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-5);border:1px dashed var(--line-2);border-radius:var(--r-l);color:var(--ink-3);text-align:center}.role-detail-empty strong{color:var(--ink)}@media (max-width: 640px){.role-detail-fact dd{white-space:normal}.role-detail-areas{columns:1}.role-detail-section-head{align-items:start}}.role-sec-h{font-weight:650;font-size:var(--t-base);margin-top:var(--sp-4)}.role-sec-sub{font-size:var(--t-m);color:var(--ink-3);margin-bottom:var(--sp-3)}.scope-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);margin-bottom:var(--sp-3)}.scope-card{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--r-l);padding:var(--sp-2) var(--sp-3);cursor:pointer;position:relative}.scope-card.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.scope-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.scope-card-t{font-weight:600;font-size:var(--t-m)}.scope-card-h{font-size:var(--t-s);color:var(--ink-3)}@media (max-width: 640px){.scope-cards{grid-template-columns:1fr}}.role-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-2);margin-bottom:var(--sp-3)}.role-card{display:flex;align-items:center;gap:var(--sp-2);padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-l);background:var(--surface);cursor:pointer;text-align:left;font:inherit}.role-card:hover{border-color:var(--line)}.role-card.on{border-color:var(--accent);background:var(--accent-soft)}.role-card-dot{width:14px;height:14px;border-radius:999px;border:2px solid var(--line);flex-shrink:0}.role-card.on .role-card-dot{border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--accent)}.role-card-t{font-size:var(--t-m);font-weight:550}.role-matrix{border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden}.role-matrix-head,.role-matrix-row{display:grid;grid-template-columns:1.5fr repeat(4,1fr);align-items:center;padding:var(--sp-2) var(--sp-3)}.role-matrix-head{background:var(--surface-2);border-bottom:1px solid var(--line)}.role-matrix-row{border-bottom:1px solid var(--line)}.role-matrix-row:last-child{border-bottom:0}.role-matrix-row:hover{background:var(--surface-2)}.role-matrix-area:last-child .role-matrix-row:last-child{border-bottom:0}.role-matrix-grouprow{display:grid;grid-template-columns:1.5fr repeat(4,1fr);align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--surface-2);border-bottom:1px solid var(--line)}.rm-group-h{display:flex;align-items:center;gap:var(--sp-1);background:none;border:0;padding:0;margin:0;cursor:pointer;font:inherit;font-weight:700;font-size:var(--t-m);color:var(--ink-1);text-align:left}.rm-chev{color:var(--ink-3);flex-shrink:0;transition:transform .12s ease}.rm-gbox{cursor:pointer}.role-matrix-row.rm-sub .rm-module{padding-left:calc(16px + var(--sp-1));font-weight:550}.rm-module{font-weight:600;font-size:var(--t-m)}.rm-colh{font-size:var(--t-s);font-weight:600;color:var(--ink-3);text-align:center}.rm-cell{display:flex;align-items:center;justify-content:center;gap:6px;min-height:22px}.rm-cell.multi{flex-direction:column;align-items:flex-start;justify-content:center;gap:4px}.rm-box{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.rm-box.off{opacity:.35;cursor:not-allowed}.rm-box-t{font-size:var(--t-s);color:var(--ink-2);white-space:nowrap}.rm-box-m{display:none}.role-matrix.mobile{overflow:visible}.role-matrix.mobile .role-matrix-head{display:none}.role-matrix.mobile .role-matrix-row{display:block;padding:var(--sp-3)}.role-matrix.mobile .rm-module{display:block;margin-bottom:var(--sp-2);font-size:var(--t-base)}.role-matrix.mobile .rm-cell{display:block;min-height:0}.role-matrix.mobile .rm-cell:empty{display:none}.role-matrix.mobile .rm-box{display:flex;width:100%;align-items:center;gap:var(--sp-3);min-height:44px;padding:6px 0}.role-matrix.mobile .rm-box input[type=checkbox]{width:24px;height:24px;flex-shrink:0}.role-matrix.mobile .rm-box-t{display:none}.role-matrix.mobile .rm-box-m{display:block;font-size:var(--t-m)}.role-matrix.mobile .role-matrix-grouprow{display:block;padding:var(--sp-3)}.role-matrix.mobile .rm-group-h{width:100%;font-size:var(--t-base)}.acct{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--r);background:transparent;cursor:pointer}.acct:hover,.acct:focus-visible{background:var(--surface-3)}.acct .t,.acct .caret{display:none}.acct-year{display:flex;flex-direction:column;gap:1px;line-height:1.25}.acct-year b{font-weight:650;color:var(--accent)}.acct-head{display:flex;flex-direction:column;gap:var(--sp-3)}.acct-id{display:flex;align-items:flex-start;gap:var(--sp-3)}.acct-id .t{min-width:0;display:flex;flex-direction:column;gap:2px}.acct-name{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acct-profile-link{color:var(--accent);font-size:var(--t-s);font-weight:600;text-decoration:none}.acct-profile-link:hover,.acct-profile-link:focus-visible{text-decoration:underline}.acct-roles{display:flex;flex-direction:column;gap:4px}.acct-roles-label{font:650 var(--t-xs)/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.acct-role{display:flex;align-items:center;gap:7px;font-size:var(--t-s);color:var(--ink-2)}.acct-role .dot{width:6px;height:6px;border-radius:999px;background:var(--line-2);flex-shrink:0}.acct-role.is-active{color:var(--ink);font-weight:600}.acct-role.is-active .dot{background:var(--accent)}.profile-id{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;padding:var(--sp-3) 0 var(--sp-5)}.profile-name{font:680 var(--t-l) / 1.2 var(--sans)}.profile-role{font-size:var(--t-m);color:var(--ink-3)}.profile-roles{display:flex;flex-wrap:wrap;gap:var(--sp-1);justify-content:flex-end}.profile-unset{color:var(--ink-3);font-style:italic}.profile-note{margin:0;font-size:var(--t-m);color:var(--ink-3)}.profile-soon{padding:var(--sp-6) 0}.mhead{display:none;align-items:center;gap:6px;padding:0 8px 0 var(--sp-3);height:48px;border-bottom:1px solid var(--line);background:var(--surface)}.mhead .mhead-acct{display:inline-flex;flex-shrink:0}.mhead .mhead-fill{flex:1;min-width:0}.mhead .mk{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--accent-on);display:grid;place-items:center;font:700 12px/1 var(--sans);flex-shrink:0;overflow:hidden}.mhead .mk img{width:100%;height:100%;object-fit:cover}.mhead .mt{min-width:0;flex:1;line-height:1.2;overflow:hidden}.mhead .mt b{display:block;font:650 var(--t-base) / 1.2 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mhead .mt span{display:block;font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mhead .mt span.yearline{color:var(--accent);font-weight:600}.mhead .ro{display:inline-block;margin-left:6px;border-radius:999px;padding:0 6px;background:var(--warn);color:#1d140d;font:650 9.5px/15px var(--sans);vertical-align:1px}.mhead .mi{width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;flex-shrink:0;position:relative}.mhead .mi:active{background:var(--surface-2)}.mhead .mi.mi-back{border-color:transparent;background:transparent;transition:color .12s}.mhead .mi.mi-back:before{content:"";position:absolute;z-index:0;width:32px;height:32px;border-radius:999px;background:transparent;transition:background-color .12s,transform .12s}.mhead .mi.mi-back>svg{position:relative;z-index:1}.mhead .mi.mi-back:hover,.mhead .mi.mi-back:focus-visible{color:var(--ink)}.mhead .mi.mi-back:hover:before,.mhead .mi.mi-back:focus-visible:before{background:var(--surface-2)}.mhead .mi.mi-back:focus-visible{outline-offset:-2px}.mhead .mi.mi-back:active{background:transparent}.mhead .mi.mi-back:active:before{background:var(--surface-3);transform:scale(.96)}.mhead .mi.pri{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.mhead .mi .fc{position:absolute;top:-3px;right:-3px;min-width:15px;height:15px;border-radius:999px;background:var(--accent);color:var(--accent-on);font:650 9.5px/15px var(--sans);text-align:center;padding:0 3px}.mdetail .mt{text-align:center}.mdetail .mt b{font-weight:700}.msheet{display:flex;flex-direction:column;gap:2px}.msheet button{display:flex;align-items:center;min-height:48px;width:100%;padding:0 12px;border:0;border-radius:var(--r);background:transparent;color:var(--ink);font:600 var(--t-base) / 1.3 var(--sans);text-align:left;cursor:pointer}.msheet button:active:not(:disabled){background:var(--surface-2)}.msheet button:disabled{color:var(--ink-3);cursor:not-allowed}.msheet button.danger{color:var(--risk)}.msep{height:1px;background:var(--line);margin:6px 0}.tabbar{display:none;height:calc(var(--h-tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;background:var(--surface);border-top:1px solid var(--line)}.tabbar .nv{flex-direction:column;gap:2px;font-size:var(--t-xs);justify-content:center;border-radius:0;padding:5px 4px;text-align:center;background:transparent;color:var(--ink-3);box-shadow:none;position:relative}.tabbar .nv[aria-current=page]{background:transparent;color:var(--accent);font-weight:650;box-shadow:none}.tabbar .nv[aria-current=page] svg{opacity:1}.tabbar .nv .b{position:absolute;top:4px;right:50%;transform:translate(18px);margin:0;font-size:9px;padding:2px 5px}.cmd-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#40281152;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding-top:13vh}.cmd{width:min(560px,92vw);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-3);overflow:hidden}.cmd input{width:100%;height:52px;border:0;border-bottom:1px solid var(--line);padding:0 18px;background:transparent;color:var(--ink);font-size:var(--t-l);outline:none}.cmd .list{max-height:46vh;overflow-y:auto;padding:7px}.cmd .g{font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);padding:11px 11px 7px}.cmd .i{display:flex;align-items:center;gap:11px;padding:9px 11px;border:0;width:100%;border-radius:var(--r);cursor:pointer;font-size:var(--t-base);background:transparent;color:inherit;text-align:left}.cmd .i:hover,.cmd .i[data-active=true]{background:var(--surface-2)}.cmd .i .m{margin-left:auto;font-size:12px;color:var(--ink-3)}.boot{flex:1;display:grid;place-items:center;padding:40px;text-align:center;color:var(--ink-2)}.signin{position:relative;isolation:isolate;flex:1;display:grid;place-items:center;min-height:100dvh;overflow:hidden;padding:48px 24px;background:radial-gradient(circle at 14% 78%,rgba(255,202,96,.48),transparent 34%),radial-gradient(circle at 84% 16%,rgba(121,184,239,.4),transparent 38%),linear-gradient(135deg,#fff0dc,#f9f6f1 43%,#edf4ff 72%,#f9edf4)}.signin:before{content:"";position:absolute;z-index:-2;top:0;right:0;bottom:0;left:0;opacity:.32;background-image:radial-gradient(rgba(106,47,38,.18) .6px,transparent .6px);background-size:18px 18px;-webkit-mask-image:linear-gradient(to bottom,transparent,black 24%,black 74%,transparent);mask-image:linear-gradient(to bottom,transparent,black 24%,black 74%,transparent)}.signin-orb{position:absolute;z-index:-1;width:min(42vw,620px);aspect-ratio:1;border-radius:50%;filter:blur(18px);opacity:.3;pointer-events:none}.signin-orb-warm{left:-16vw;bottom:-30vw;background:#ffb13b}.signin-orb-cool{right:-14vw;top:-27vw;background:#87bff0}.signin-card{width:min(440px,100%);display:flex;flex-direction:column;gap:24px;padding:34px 38px 28px;border:1px solid rgba(255,255,255,.82);border-radius:22px;background:#fffffff0;box-shadow:0 28px 80px #462a2124,0 4px 18px #462a2112;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.signin-brand{display:flex;flex-direction:column;align-items:center;text-align:center}.signin-logo{display:block;width:min(310px,92%);height:auto;margin:-2px auto 18px}.signin-kicker{margin:0 0 7px;color:#a52520;font:720 11px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase}.signin-brand h1{margin:0;color:#241b19;font:720 clamp(24px,3vw,30px) / 1.12 var(--sans);letter-spacing:-.035em}.signin-intro{max-width:350px;margin:11px 0 0;color:#675956;font:440 14px/1.55 var(--sans)}.signin-fields{display:flex;flex-direction:column;gap:14px}.signin-divider{display:flex;align-items:center;gap:12px;color:#8a7c78;font:600 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}.signin-divider:before,.signin-divider:after{content:"";flex:1;height:1px;background:#e8e0dc}.signin-card .fld{gap:7px}.signin-card .fld label{color:#4d403d;font-weight:620}.signin-card .inp{min-height:46px;border-color:#d9cfca;border-radius:10px;background:#fff}.signin-card .inp:focus{border-color:#a52520;box-shadow:0 0 0 3px #a525201f}.signin-card .btn.signin-submit{width:100%;min-height:46px;margin-top:2px;border-color:#961f1b;background:linear-gradient(135deg,#a52520,#bd3a27);box-shadow:0 8px 20px #a5252033;font-weight:680}.signin-card .btn.signin-submit:hover:not(:disabled){background:linear-gradient(135deg,#8f1d19,#aa3021)}.signin-footnote{margin:-4px 0 0;color:#8a7c78;font:440 11px/1.4 var(--sans);text-align:center}@media (max-width: 520px){.signin{place-items:stretch;padding:0;background:#fff}.signin:before,.signin-orb{display:none}.signin-card{width:100%;min-height:100dvh;justify-content:center;padding:calc(38px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));border:0;border-radius:0;box-shadow:none}.signin-logo{width:min(290px,90%)}}.set-pills{display:flex;gap:var(--sp-2);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:var(--sp-4) var(--sp-6) var(--sp-3);border-bottom:1px solid var(--line);flex-shrink:0}.set-pill{flex:0 0 auto;padding:var(--sp-2) var(--sp-4);border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:600 var(--t-s) / 1 var(--sans);white-space:nowrap;cursor:pointer;transition-property:background-color,color,border-color;transition-duration:.12s}.set-pill:hover{background:var(--surface-2);color:var(--ink)}.set-pill[aria-current=true]{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line);font-weight:650}.set-subnav{display:flex;gap:var(--sp-2);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding:0 var(--sp-6) var(--sp-3);border-bottom:1px solid var(--line);flex-shrink:0}.set-subnav .nv{flex-direction:row;align-items:center;gap:var(--sp-2);width:auto;flex:0 0 auto;padding:var(--sp-2) var(--sp-3);font-size:var(--t-s)}.set-card{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:var(--sp-5) var(--sp-6)}.set-card:has(.card){background:none;border:0;border-radius:0;padding:0}.att-tile.is-active,button.att-tile.is-active:hover,a.att-tile.is-active:hover{background:var(--accent-soft)}.att-tile.is-active .k{color:var(--accent-2)}.att-datestep{border-radius:999px;box-shadow:var(--shadow-1)}.att-datestep .dv{font-weight:650}.att-status-pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}.enq-2l{display:block;line-height:1.4}.enq-age>.chip{margin-top:5px}.enq-tl{grid-template-columns:96px 1fr auto}.enq-tl-note{margin-top:2px;color:var(--ink-2)}.enq-tl-due{margin-top:3px;font-size:var(--t-m);color:var(--ink-3)}.req-table .num{font-variant-numeric:tabular-nums}.req-table .req-stack{display:block;line-height:1.3}.req-table .req-stack .sub2{display:block;margin-top:2px}.req-table .req-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.req-table td .chip{vertical-align:middle}.req-muted{color:var(--ink-3)}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){.req-sum{display:inline-block;max-width:62vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape),(pointer: coarse){.side .nv,.side-top,.cmd .i,.set-pill,.set-subnav .nv{min-height:44px}}.home-tl{grid-template-columns:1fr auto auto;align-items:center}.home-cs2{margin-top:var(--sp-2)}.home-cs-end{margin-bottom:0}.hc-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.hc-when{color:var(--ink-2);font-size:var(--t-s);white-space:nowrap}.hc-list{margin:var(--sp-3) 0 0;padding:0;list-style:none}.hc-list button{display:grid;grid-template-columns:4.25rem minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-2) var(--sp-2) 0;border:0;border-radius:var(--r);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.hc-list button:hover:not(:disabled){background:var(--surface-2)}.hc-list button:disabled{cursor:default}.hc-list li+li{border-top:1px solid var(--line)}.hc-time{color:var(--ink-2);font-size:var(--t-s);font-variant-numeric:tabular-nums}.hc-what{display:grid;gap:1px;min-width:0}.hc-what strong{overflow:hidden;color:var(--ink);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.hc-where{overflow:hidden;color:var(--ink-2);font-size:var(--t-s);text-overflow:ellipsis;white-space:nowrap}.home-btn-gap{margin-top:var(--sp-4)}.stu-table tbody tr.clickable{transition:background-color .12s ease}.stu-table tbody tr.clickable:hover td:first-child,.stu-table tbody tr.clickable:focus-visible td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.stu-table .stu-row-menu{opacity:0;transition:opacity .12s ease}.stu-table tbody tr:hover .stu-row-menu,.stu-table tbody tr:focus-within .stu-row-menu,.stu-table .stu-row-menu:focus-within{opacity:1}.stu-toolbar .filters{row-gap:var(--sp-2)}.stu-toolbar .filters-act{margin-left:auto;justify-content:flex-end;flex-wrap:nowrap}.fee-account .fee-line{align-items:center}.fee-account .fee-line>.num{font-variant-numeric:tabular-nums}.fee-account .fee-total{align-items:center;margin-top:var(--sp-1);padding-bottom:var(--sp-2)}.fee-account .fee-total>.num{font-variant-numeric:tabular-nums}.fee-account .fee-meta{gap:var(--sp-1)}.fee-account .fee-meta .kv>:last-child{display:inline-flex;align-items:center}.fee-account .fee-instalment{padding-inline:var(--sp-2);margin-inline:calc(var(--sp-2) * -1);border-radius:var(--r);transition:background-color .12s ease}.fee-account .fee-instalment:hover{background:var(--surface-2)}.fee-account .fee-instalment .num{font-variant-numeric:tabular-nums}.fee-overdue{display:inline-flex;align-items:center}.exam-list-table.t{table-layout:fixed}.exam-list-table .num,.exam-list-table td.r,.exam-marks-table .num,.exam-marks-table td.r,.exam-results-table .num,.exam-results-table td.r{font-variant-numeric:tabular-nums}.exam-list-table td:last-child .m-value{display:inline-flex}.exam-detail{display:flex;flex-direction:column;gap:var(--sp-4)}.exam-detail>*{margin-top:0;margin-bottom:0}.stf-seg{display:inline-flex;align-items:stretch;gap:2px;padding:2px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line)}.stf-seg-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink-2);font:600 var(--t-m) / 1 var(--sans);padding:0 12px;min-height:28px;border-radius:6px;cursor:pointer;white-space:nowrap;transition-property:background-color,color;transition-duration:.12s}.stf-seg-btn:hover:not(.is-on){background:var(--surface-3);color:var(--ink)}.stf-seg-btn.is-on{background:var(--surface);color:var(--accent);font-weight:650;box-shadow:0 1px 2px #0000001f}.stf-seg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.stf-face{display:inline-flex;flex:none;border-radius:16px;box-shadow:0 0 0 1px var(--line),0 10px 22px -14px #00000073}.stf-facts{display:inline-flex;align-items:center;gap:var(--sp-2)}.stf-facts .stf-dot{color:var(--ink-3)}.autodraft-issues{display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none}.autodraft-issue{display:grid;gap:var(--sp-3);min-width:0;padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}.autodraft-issue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);min-width:0}.autodraft-issue-head>.chip{flex:none}.autodraft-issue-field,.autodraft-issue-reason{min-width:0;color:var(--ink-2);font:500 var(--t-m) / 1.4 var(--sans);overflow-wrap:anywhere}.autodraft-issue-field{display:grid;gap:2px}.autodraft-issue-field strong{color:var(--ink);font-weight:650}.autodraft-issue-label{display:block;color:var(--ink-3);font:650 var(--t-xs) / 1.2 var(--sans);letter-spacing:.04em;text-transform:uppercase}.autodraft-issue-reason{margin:0;padding-top:var(--sp-3);border-top:1px solid var(--line);white-space:normal}.autodraft-issue-reason .autodraft-issue-label{margin-bottom:3px}.tt-frame{border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow-1);background:var(--surface)}.tt-frame thead th:first-child,.tt-frame th.per{width:92px}.tt-frame thead th{padding-top:var(--sp-4);padding-bottom:var(--sp-4);border-bottom:1px solid var(--line-2)}.tt-frame th.per{font:600 12px / 1.5 var(--mono);letter-spacing:normal;text-transform:none;color:var(--ink-2);font-variant-numeric:tabular-nums;vertical-align:top}.tt-frame tbody tr:last-child>th,.tt-frame tbody tr:last-child>td{border-bottom:0}.tt-frame .cell{min-height:62px;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.tt-frame button.cell:hover{border-color:var(--accent)}.tt-frame button.cell:focus-visible{outline:none;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.tt-frame .cell.free{min-height:62px;color:var(--ink-3)}.tt-frame button.cell.free:hover{border-style:solid;border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.head{min-height:calc(2 * var(--sp-5) + var(--t-xl) * 1.25);box-sizing:border-box;padding-block:var(--sp-2);display:flex;flex-direction:column;justify-content:center}.head-row>.crumb{margin-bottom:0;flex-shrink:0;width:32px;height:32px;border-radius:999px;justify-content:center;gap:0;color:var(--accent-on);background:#ffffff26}.head-row>.crumb:hover,.head-row>.crumb:focus-visible{background:#ffffff47;color:var(--accent-on)}.head-row>.crumb .crumb-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ttd-tabs{display:flex;gap:2px;overflow-x:auto;padding-bottom:2px}.ttd-tabs button{display:inline-flex;align-items:baseline;gap:5px;padding:7px 12px;border:0;border-radius:var(--r-pill, 999px);background:transparent;color:var(--ink-2);font:650 var(--t-s) / 1 var(--sans);white-space:nowrap;cursor:pointer}.ttd-tabs button:hover{background:var(--surface-2);color:var(--ink)}.ttd-tabs button.on{background:var(--ink);color:var(--surface)}.ttd-tabs .dt{font:600 var(--t-xs) / 1 var(--mono);opacity:.75}.ttd-tabs .today{font:650 9.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;opacity:.7}.tt-mobile-mine,.tt-week-short{display:none}.tti{display:flex;flex-direction:column;gap:6px;padding-top:4px;border-top:1px solid var(--line)}.tti h3{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0;font:650 var(--t-sm) / 1.3 var(--sans)}.tti h3 .c{font:500 var(--t-xs) / 1 var(--sans);color:var(--ink-3)}.tti>.hint{margin:0 0 2px}.ttp-item[draggable=true]{cursor:grab}.ttp-item[draggable=true]:active{cursor:grabbing}.ttp-item.drag{opacity:.35}:is(td,.ttp-cell).over{outline:2px dashed var(--accent);outline-offset:-3px;border-radius:var(--r-sm);background:var(--accent-soft)}:is(td,.ttp-cell).nodrop{opacity:.45}.ttp-item.swap{position:relative;outline:2px solid var(--accent);outline-offset:1px}.ttp-item.swap .s{padding-right:46px}.ttp-item.swap:after{content:"⇅ swap";position:absolute;top:2px;right:2px;padding:1px 5px;border-radius:999px;background:var(--accent);color:var(--accent-on);font:650 9.5px/1.5 var(--sans);letter-spacing:.04em;pointer-events:none}.tti-file{display:flex;align-items:center;gap:10px}.tti-file .n{min-width:0;font:500 var(--t-sm) / 1.3 var(--sans);color:var(--ink-3);overflow-wrap:anywhere}.tti-tabs{display:grid;gap:6px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.tti-tabs legend{padding:0 4px;font:650 var(--t-sm) / 1.3 var(--sans);color:var(--ink-1)}.tti-tabs p{margin:0;font:400 12px / 1.4 var(--sans);color:var(--ink-3)}.tti-tabs>div{display:flex;flex-wrap:wrap;gap:8px 14px}.tti-tabs label{display:inline-flex;align-items:center;gap:6px;font:500 var(--t-sm) / 1.3 var(--sans);color:var(--ink-2)}.tti-tabs small{padding:1px 5px;border-radius:999px;background:var(--surface-2);color:var(--ink-3);font:600 10px / 1.4 var(--sans)}.tti-warnings{display:grid;gap:10px;padding:12px;border:1px solid color-mix(in srgb,var(--warn, #a46716) 32%,transparent);border-radius:12px;background:color-mix(in srgb,var(--warn, #a46716) 7%,var(--surface))}.tti-warnings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tti-warnings-head>div{display:grid;gap:2px}.tti-warnings-head strong{font:700 var(--t-sm) / 1.25 var(--sans);color:var(--ink-1)}.tti-warnings-head span,.tti-warning-action{font:400 12px / 1.45 var(--sans);color:var(--ink-3)}.tti-warning-list{display:grid;gap:0;margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}.tti-warning-list li{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,2fr);gap:10px;padding:8px 10px;font:400 12px / 1.4 var(--sans)}.tti-warning-list li+li{border-top:1px solid var(--line)}.tti-warning-list strong{color:var(--ink-1)}.tti-warning-list span{color:var(--ink-2)}.tti-warning-action{margin:0}@media (max-width: 560px){.tti-warning-list li{grid-template-columns:1fr;gap:2px}}.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tti-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:center;gap:8px}.tti-row .w{display:flex;align-items:center;gap:6px;min-width:0;font:500 var(--t-sm) / 1.3 var(--mono);color:var(--ink-2);overflow-wrap:anywhere}.ttd-band+.ttd-band{margin-top:var(--sp-5)}.ttw-day{--tt-day-tint: var(--surface);--tt-day-edge: transparent;padding-left:var(--sp-3);border-left:3px solid var(--tt-day-edge)}.ttw-day[data-weekday="0"]{--tt-day-tint: oklch(.98 .02 255);--tt-day-edge: oklch(.76 .095 255)}.ttw-day[data-weekday="1"]{--tt-day-tint: oklch(.98 .02 195);--tt-day-edge: oklch(.76 .095 195)}.ttw-day[data-weekday="2"]{--tt-day-tint: oklch(.98 .02 150);--tt-day-edge: oklch(.76 .095 150)}.ttw-day[data-weekday="3"]{--tt-day-tint: oklch(.98 .02 300);--tt-day-edge: oklch(.76 .095 300)}.ttw-day[data-weekday="4"]{--tt-day-tint: oklch(.98 .02 330);--tt-day-edge: oklch(.76 .095 330)}.ttw-day[data-weekday="5"]{--tt-day-tint: oklch(.98 .02 120);--tt-day-edge: oklch(.76 .095 120)}.ttw-day[data-weekday="6"]{--tt-day-tint: oklch(.98 .02 275);--tt-day-edge: oklch(.76 .095 275)}.ttw-day+.ttw-day{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--line)}.ttw-day-h{position:sticky;top:0;z-index:4;display:flex;align-items:baseline;gap:10px;margin:0 0 var(--sp-3);padding:var(--sp-2) var(--sp-3);margin-left:calc(var(--sp-3) * -1);margin-right:calc(var(--sp-3) * -1);background:var(--tt-day-tint);font:700 var(--t-l) / 1.2 var(--sans)}.ttw-day-h .c{font:500 var(--t-xs) / 1 var(--mono);color:var(--ink-3)}.ttw-day-h .today{font:650 9.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.tt-editbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.tt-editbar-actions{display:flex;gap:var(--sp-2);margin-left:auto;flex:0 0 auto}.ttd-band-h{display:flex;align-items:baseline;gap:10px;margin:0 0 var(--sp-2);font:650 var(--t-sm) / 1.3 var(--sans)}.ttd-band-h .c{font:500 var(--t-xs) / 1 var(--sans);color:var(--ink-3)}.ttd{table-layout:fixed;min-width:calc(132px + var(--cols, 6) * 118px)}.ttd.tt-frame thead th:first-child,.ttd.tt-frame th.per{width:132px}.ttd thead .bn{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ttd thead th{position:sticky;top:0;z-index:2;vertical-align:bottom}.ttd :is(td,th).per{position:sticky;left:0;z-index:1;width:92px;background:var(--surface-2);font:600 12px/1.4 var(--mono);color:var(--ink-3);white-space:nowrap;vertical-align:top}.ttd-time-button{position:relative;display:grid;width:100%;min-height:58px;padding:9px 20px 9px 10px;border:0;border-radius:7px;background:transparent;color:inherit;font:inherit;line-height:1.45;text-align:left;cursor:pointer}.ttd-time-button:hover,.ttd-time-button:focus-visible{background:var(--surface);color:var(--ink);outline:2px solid var(--accent-line);outline-offset:-2px}.ttd-time-button>span:not(.rowname,.ttd-time-pencil):last-of-type{font-weight:400;color:var(--ink-3)}.ttd-time-pencil{position:absolute;top:8px;right:6px;opacity:0;color:var(--accent);font:700 14px/1 var(--sans)}.ttd-time-button:hover .ttd-time-pencil,.ttd-time-button:focus-visible .ttd-time-pencil{opacity:1}.ttd-time-editor{display:grid;gap:5px;width:100%;box-sizing:border-box;padding:6px;border-radius:8px;background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent-line)}.ttd-time-editor label{display:block;min-width:0}.ttd-time-editor input[type=time]{width:100%;box-sizing:border-box;min-width:0;height:30px;padding:3px 4px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink);font:600 11px/1 var(--mono)}.ttd-time-actions{display:flex;gap:5px}.ttd-time-actions button{flex:1;height:28px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);color:var(--ink-2);cursor:pointer;font:700 14px/1 var(--sans)}.ttd-time-actions button.save{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.ttd-time-actions button.danger{border-color:color-mix(in srgb,var(--risk) 28%,var(--line));background:var(--risk-soft);color:var(--risk)}.ttd-time-actions button:disabled{cursor:wait;opacity:.6}.ttd thead th:first-child{z-index:3}.ttd thead .bn{display:block;font:650 12.5px/1.3 var(--sans);color:var(--ink);text-transform:none;letter-spacing:0;white-space:normal}.ttd thead small{display:block;margin-top:2px;font:600 11px/1 var(--mono);color:var(--ink-3);text-transform:none;letter-spacing:0}.ttp-attention{display:flex;align-items:center;gap:6px;min-height:46px;padding:6px 0;overflow-x:auto}.ttp-attention-label{padding-right:10px;color:var(--ink-3);font:600 var(--t-xs)/1 var(--sans);white-space:nowrap}.ttp-attention button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 9px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--ink-2);white-space:nowrap;cursor:pointer}.ttp-attention button:hover,.ttp-attention button.on{border-color:var(--line);background:var(--surface);box-shadow:var(--shadow-1)}.ttp-attention button .mark{display:grid;place-items:center;width:21px;height:21px;border-radius:6px;background:var(--surface-3);font-weight:750}.ttp-attention button strong{font:700 var(--t-sm)/1 var(--mono)}.ttp-attention button.risk :is(.mark,strong){color:var(--risk)}.ttp-attention button.risk .mark{background:var(--risk-soft)}.ttp-attention button.warn :is(.mark,strong){color:var(--warn)}.ttp-attention button.warn .mark{background:var(--warn-soft)}.ttl-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}.ttl-summary>div{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.ttl-summary strong{font:750 22px/1 var(--mono)}.ttl-summary span{color:var(--ink-3);font-size:var(--t-xs)}.ttl-summary .risk strong{color:var(--risk)}.ttl-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg)}.ttl-table{width:100%;min-width:720px;border-collapse:collapse}.ttl-table th,.ttl-table td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:center}.ttl-table thead th{background:var(--surface-2);color:var(--ink-3);font:650 var(--t-xs)/1 var(--sans)}.ttl-table tbody tr:last-child>*{border-bottom:0}.ttl-table th:first-child{position:sticky;left:0;z-index:1;min-width:170px;text-align:left;background:var(--surface)}.ttl-table thead th:first-child{z-index:2;background:var(--surface-2)}.ttl-table tbody th{font-size:var(--t-sm)}.ttl-table td{font:700 var(--t-sm)/1 var(--mono)}.ttl-table td small{color:var(--ink-3);font-size:10px}.ttl-table td.full{background:var(--warn-soft);color:var(--warn)}.ttl-table td.over{background:var(--risk-soft);color:var(--risk)}.ttl-table td.week{background:var(--accent-soft);color:var(--accent)}.ttl-note{margin:0;color:var(--ink-3);font-size:var(--t-xs);line-height:1.5}.ttl-teacher-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.ttl-teacher-toggle>span:last-child{color:var(--ink-3);font-size:16px;transition:transform .12s ease}.ttl-teacher-toggle[aria-expanded=true]>span:last-child{transform:rotate(180deg)}.ttl-detail-row>td{padding:0!important;background:var(--surface-2);text-align:left!important}.ttl-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:14px 16px 16px}.ttl-breakdown h4{margin:0 0 8px;color:var(--ink-2);font:650 var(--t-xs)/1.2 var(--sans);letter-spacing:.04em;text-transform:uppercase}.ttl-breakdown small{display:block;margin-top:7px;color:var(--ink-3);font:500 10.5px/1.35 var(--sans)}.ttl-load-pills{display:flex;flex-wrap:wrap;gap:6px}.ttl-load-pill{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:5px 6px 5px 9px;border:1px solid var(--line);border-radius:var(--r-pill, 999px);background:var(--surface);color:var(--ink-2);font:600 11px/1 var(--sans)}.ttl-load-pill>span{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ttl-load-pill strong{display:grid;place-items:center;min-width:21px;height:21px;padding-inline:5px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font:700 10px/1 var(--mono)}@media (max-width: 700px){.ttl-summary{grid-template-columns:1fr}.ttl-breakdown{grid-template-columns:1fr;gap:14px}}.ttp-planning-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:var(--sp-3);align-items:start}.ttp-planning-board{min-width:0;overflow-x:auto;overscroll-behavior-x:contain}.ttp-planning-board.ttp-board-week{overflow-x:visible}.ttd thead th.ttp-plan-selected,.ttd tbody td.ttp-plan-selected{background:var(--accent-soft)}.ttd thead th.ttp-plan-selected{box-shadow:inset 0 3px 0 var(--accent)}.ttp-plan-batch{width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.ttp-plan-batch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ttp-history{display:flex;gap:3px;margin-top:7px}.ttp-history i,.ttp-inspector .code{display:grid;place-items:center;min-width:17px;height:17px;padding:0 3px;border-radius:5px;background:var(--surface-3);color:var(--ink-3);font:750 9px/1 var(--mono);font-style:normal}.ttp-history .code-P,.ttp-inspector .code-P{background:#b6f1d6;color:#00523a;color:oklch(.39 .11 165)}.ttp-history .code-C,.ttp-inspector .code-C{background:#fbe7ab;color:#644700;color:oklch(.42 .1 82)}.ttp-history .code-M,.ttp-inspector .code-M{background:#fad2fb;color:#6a356e}.ttp-history .code-B,.ttp-inspector .code-B{background:#d4e6ff;background:oklch(.92 .05 255);color:#234e82}.ttp-history .code-E,.ttp-inspector .code-E{background:#e5e9bc;color:#4e5116}.ttp-inspector{position:sticky;top:var(--sp-3);max-height:calc(100dvh - 140px);overflow:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-1)}.ttp-inspector>header{display:flex;align-items:flex-start;gap:8px;padding:14px}.ttp-inspector>header h2{margin:0;font:700 var(--t-lg)/1.2 var(--sans)}.ttp-inspector>header p{margin:2px 0 0;color:var(--ink-3);font-size:var(--t-xs)}.ttp-inspector>header .room{margin-left:auto;padding:4px 6px;border-radius:6px;background:var(--surface-2);color:var(--ink-2);font:600 10px/1 var(--mono)}.ttp-inspector>section{padding:12px 14px;border-top:1px solid var(--line)}.ttp-inspector h3{margin:0 0 8px;color:var(--ink-3);font:600 10.5px/1 var(--sans);letter-spacing:.035em}.ttp-subject-sequence{display:flex;flex-wrap:wrap;gap:4px}.ttp-inspector .code{width:26px;height:26px;font-size:11px}.ttp-targets{display:grid;gap:9px}.ttp-targets .target{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:7px}.ttp-targets .target>span:first-child{overflow:hidden;color:var(--ink-2);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.ttp-targets .segments{display:flex;gap:3px;min-width:0}.ttp-targets .segments i{min-width:2px;height:7px;flex:1;border-radius:999px;background:var(--surface-3)}.ttp-targets .segments i.fill{background:var(--accent)}.ttp-targets .segments i.over{background:var(--warn)}.ttp-targets strong{font:700 11px/1 var(--mono)}.ttp-next{display:flex;align-items:center;gap:8px;padding:9px;border-radius:var(--r);background:var(--accent-soft)}.ttp-next strong,.ttp-next small{display:block}.ttp-next small{margin-top:2px;color:var(--ink-2);font-size:10.5px}.ttp-issue-list{display:grid;gap:5px}.ttp-issue-list .issue{display:grid;grid-template-columns:21px 1fr;gap:7px;align-items:center;min-height:44px}.ttp-issue-list .mark{display:grid;place-items:center;width:21px;height:21px;border-radius:6px;background:var(--surface-3);font-weight:750}.ttp-issue-list .conflict .mark{background:var(--risk-soft);color:var(--risk)}.ttp-issue-list .rhythm .mark{background:var(--warn-soft);color:var(--warn)}.ttp-issue-list strong,.ttp-issue-list small{display:block}.ttp-issue-list strong{font-size:11px}.ttp-issue-list small{color:var(--ink-3);font-size:10.5px}.ttp-inspector .hint{margin:0;color:var(--ink-3);font-size:11px}@media (max-width: 1100px){.ttp-planning-layout{grid-template-columns:1fr}.ttp-inspector{position:static;order:-1;max-height:none}}@media (max-width: 700px){.ttp-attention-label{display:none}.ttp-attention button>span:last-child{display:none}.ttp-attention button{min-width:48px;justify-content:center}}.ttp-clock,.ttp-kind{padding:0 2px;border:1px solid var(--line);border-radius:var(--r-xs, 5px);background:var(--surface);font:600 11px/1.6 var(--mono);color:var(--ink)}.ttp-clock{width:4.6em;font-variant-numeric:tabular-nums}.ttp-clock::-webkit-calendar-picker-indicator{display:none}.ttp-kind{margin-left:auto;font-family:var(--sans)}.ttp-drop{padding:0 3px;border:0;background:none;font-size:13px;line-height:1;color:var(--ink-3);cursor:pointer}.ttp-drop:hover,.ttp-drop:focus-visible{color:var(--risk, #b4232c)}.ttd thead .ttp-missing{display:block;margin-top:3px;font:600 10.5px/1.35 var(--sans);color:var(--ink-3);text-transform:none;letter-spacing:0;white-space:normal}.ttd thead .ttp-missing.late{color:var(--warn)}.ttp-item .f.moved{font-weight:650;color:var(--ink)}.ttd-row{padding:var(--sp-4) 0;border-bottom:1px solid var(--line)}.ttd-when{display:flex;align-items:baseline;gap:10px;margin:0 0 var(--sp-3)}.ttd-when .n{font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.ttd-when .t{font:700 15px/1 var(--mono);color:var(--ink)}.ttd-when .c{margin-left:auto;font-size:var(--t-s);color:var(--ink-3)}.ttd-none{margin:0;color:var(--ink-3);font-size:var(--t-s)}.ttd-break .ttd-none{font-weight:650}.ttd-tbl{width:100%}.ttd-tbl tr.clash td{background:var(--risk-soft)}.ttd-dot{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:var(--tt-line, var(--accent-line))}.ttd-dot.s1{--tt-line: oklch(.7 .11 95)}.ttd-dot.s2{--tt-line: oklch(.7 .11 125)}.ttd-dot.s3{--tt-line: oklch(.7 .11 155)}.ttd-dot.s4{--tt-line: oklch(.7 .11 185)}.ttd-dot.s5{--tt-line: oklch(.7 .11 215)}.ttd-dot.s6{--tt-line: oklch(.7 .11 245)}.ttd-dot.s7{--tt-line: oklch(.7 .11 275)}.ttd-dot.s8{--tt-line: oklch(.7 .11 305)}.ttd-dot.s9{--tt-line: oklch(.7 .11 335)}.ttp .per{width:96px}.ttp-cell{display:flex;flex-direction:column;gap:4px;min-height:44px}.ttd tbody tr:not(.ttp-break-row)>td{height:1px}.ttd tbody tr:not(.ttp-break-row)>td>.ttp-cell{height:100%}.ttp-tile{position:relative;display:flex;width:100%;min-width:0}.ttp-tile>.ttp-item{width:100%}.ttp-del{position:absolute;top:2px;right:2px;display:grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid var(--line);border-radius:var(--r-s, 6px);background:var(--surface);color:var(--ink-2);opacity:0;cursor:pointer}.ttp-tile:hover .ttp-del,.ttp-tile:focus-within .ttp-del{opacity:1}.ttp-del:hover:not(:disabled){border-color:var(--risk);color:var(--risk)}.ttp-del:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px}.ttp-del:disabled{cursor:default;opacity:.4}@media (hover: none){.ttp-del{opacity:1}}.ttd .ttp-cell>:is(.ttp-item,.ttp-add,.ttp-tile):only-child{flex:1 1 auto}.tt-subject-tone{print-color-adjust:exact;-webkit-print-color-adjust:exact}.ttp-item{display:flex;flex-direction:column;gap:1px;width:100%;box-sizing:border-box;padding:5px 7px;border:1px solid var(--line);border-left:3px solid var(--tt-state-line, var(--tt-subject-line, var(--accent-line)));border-radius:var(--r-s, 6px);background:var(--tt-state-soft, var(--tt-subject-soft, var(--accent-soft)));font:inherit;text-align:left;cursor:pointer}.ttp-item:hover{background:var(--surface-2)}.ttp-item.clash{--tt-state-line: var(--risk-line-2);--tt-state-soft: var(--risk-soft);border-color:var(--risk-line-2)}.ttp-item.availability-pending:not(.clash){--tt-state-line: var(--warn-line-2, var(--warn));--tt-state-soft: var(--warn-soft);border-color:var(--warn-line-2, var(--warn))}.ttp-item.availability-approved{--tt-state-line: var(--risk-line-2);--tt-state-soft: var(--risk-soft);border-color:var(--risk-line-2)}.ttp-item .availability-warning{align-self:flex-start;margin-top:3px}.ttp-item>.chip{align-self:flex-start;max-width:100%;margin-top:3px;overflow:hidden}.ttp-item>.combined-session{min-width:0;height:18px;padding-inline:6px;font-size:10px;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.ttp-item>.back-to-back-warning{min-width:0;height:18px;padding-inline:6px;font-size:9.5px;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.ttp-item .s{font-weight:650;font-size:12.5px;color:var(--ink)}.ttp-item .b,.ttp-item .f{font-size:11.5px;color:var(--ink-2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ttd .ttp-item .f{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ttp-item .f.room-missing{color:var(--warn-ink, #8a5a00);font-weight:650;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.ttp-add{display:block;width:100%;box-sizing:border-box;align-self:stretch;min-height:28px;padding:2px 6px;border:1px dashed var(--line);border-radius:var(--r-s, 6px);background:transparent;color:var(--ink-3);font:600 11.5px/1 var(--sans);cursor:pointer}.ttp-add>span{display:block}.ttp-add-room-busy{display:block;margin-top:5px;color:var(--warn-ink, #805b10);font:600 10px/1.25 var(--sans);white-space:normal}.ttp-add:hover{border-color:var(--line-strong);color:var(--ink);background:var(--surface-2)}.ttp-free{color:var(--ink-3);font-size:12px}.ttp .cell.brk{place-items:center start;padding-left:10px}.ttp .cell.brk>*{position:sticky;left:10px}@media (max-width: 640px){.ttp-add{min-height:40px}}.ttw{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);align-items:start}.ttw-col{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.ttw-head{display:flex;align-items:baseline;gap:6px;margin:0 0 2px;padding-bottom:var(--sp-2);border-bottom:1px solid var(--line)}.ttw-head .d{font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.ttw-head .n{font:600 11px/1 var(--mono);color:var(--ink-3)}.ttw-empty{margin:0;padding:var(--sp-3) 0;border:1px dashed var(--line);border-radius:var(--r);color:var(--ink-3);font-size:var(--t-s);text-align:center}.ttw-card{display:flex;flex-direction:column;gap:2px;width:100%;padding:9px 10px;border:1px solid var(--accent-line);border-radius:var(--r);background:var(--accent-soft);font:inherit;text-align:left;cursor:pointer}.ttw-card:hover{background:var(--surface-2)}.ttw-card.clash{border-color:var(--risk-line-2);background:var(--risk-soft)}.ttw-card .t{font:600 12px/1.3 var(--mono);color:var(--ink-2)}.ttw-card .s{font-weight:650;font-size:13px;color:var(--ink)}.ttw-card .m{font-size:var(--t-s);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}.ttw-card .m .sub{color:var(--ink-3)}.ttw-card .chip{align-self:flex-start;margin-top:3px}.ttw-add{width:100%;padding:var(--sp-3) 0;border:1px dashed var(--line);border-radius:var(--r);background:transparent;color:var(--ink-3);font:600 var(--t-s) / 1 var(--sans);cursor:pointer;min-height:36px}.ttw-add:hover{border-color:var(--line-strong);color:var(--ink);background:var(--surface-2)}@media (max-width: 900px){.ttw{grid-template-columns:1fr;gap:var(--sp-5)}.ttw-add{min-height:44px}}.tt th.per .rowname,.tt td.per .rowname{display:inline-block;margin-bottom:2px;font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){.page:has(.ttd-tabs)>.filters .picker-anchor{display:none}.page:has(.ttd-tabs)>.filters.has-lead .datestep{flex:1 1 150px;min-width:0}.page:has(.ttd-tabs)>.filters.has-lead .datestep button{flex:0 0 40px;width:40px}.page:has(.ttd-tabs)>.filters.has-lead .datestep .dv{min-width:0;padding-inline:6px;overflow:hidden}.page:has(.ttd-tabs) .tt-week-full{display:none}.page:has(.ttd-tabs) .tt-week-short{display:inline;white-space:nowrap}.page:has(.ttd-tabs) .tt-mobile-mine{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;height:40px;padding:0 9px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink-2);font:650 11.5px/1 var(--sans);white-space:nowrap;cursor:pointer}.page:has(.ttd-tabs) .tt-mobile-mine.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.tt-editbar-actions{flex:1 1 100%;margin-left:0}.tt-editbar-actions>*{flex:1 1 0}.page:has(.ttd-tabs) .ttd-band{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-1);background:var(--surface)}.page:has(.ttd-tabs) .ttd.tt-frame{overflow:visible;border:0;border-radius:0;box-shadow:none}.page:has(.ttd-tabs) .ttd-band-h{position:sticky;left:0;width:max-content;max-width:100%;padding:var(--sp-2) var(--sp-3) 0;margin-bottom:var(--sp-2)}.page:has(.ttd-tabs){--tt-rail: clamp(38px, 11vw, 52px);--tt-col: clamp(62px, 18vw, 92px)}.page:has(.ttd-tabs) .ttd{min-width:calc(var(--tt-rail) + var(--cols, 6) * var(--tt-col));width:100%}.page:has(.ttd-tabs) .ttd.tt-frame thead th:first-child,.page:has(.ttd-tabs) .ttd.tt-frame th.per{width:var(--tt-rail)}.page:has(.ttd-tabs) .ttd.tt-frame th.per,.page:has(.ttd-tabs) .ttd.tt-frame thead th:first-child{position:sticky;left:0;z-index:3;background:var(--surface);box-shadow:2px 0 4px -2px #4a566624}.page:has(.ttd-tabs) .ttd.tt-frame thead th:first-child{z-index:4;background:var(--surface-2)}.page:has(.ttd-tabs) .ttd-band{scroll-snap-type:x proximity;scroll-padding-left:var(--tt-rail)}.page:has(.ttd-tabs) .ttd tbody td,.page:has(.ttd-tabs) .ttd thead th:not(:first-child){scroll-snap-align:start;scroll-margin-left:var(--tt-rail)}.page:has(.ttd-tabs) .ttd.tt-frame thead th{padding:10px 7px}.page:has(.ttd-tabs) .ttd td{padding:4px}.page:has(.ttd-tabs) .ttd :is(td,th).per{padding-inline:7px;font-size:11px}.page:has(.ttd-tabs) .ttd-time-button{min-height:44px;padding:2px 10px 2px 2px}.page:has(.ttd-tabs) .ttd tbody th.per{padding-block:2px}.page:has(.ttd-tabs) .ttd .ttp-item{padding:2px 4px;border-radius:4px}.page:has(.ttd-tabs) .ttd .ttp-item .s{font-size:11px;line-height:1.25}.page:has(.ttd-tabs) .ttd .ttp-item .f{font-size:10px;line-height:1.3}.page:has(.ttd-tabs) .ttd .ttp-item .s,.page:has(.ttd-tabs) .ttd .ttp-item .f{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page:has(.ttd-tabs) .ttd .ttp-item{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:3px}.page:has(.ttd-tabs) .ttd .ttp-item .s{flex:1 0 100%}.page:has(.ttd-tabs) .ttd .ttp-item .f{flex:1 1 0;min-width:0}.page:has(.ttd-tabs) .ttd .ttp-item .chip{flex:0 0 auto;gap:0;min-width:0;height:12px;padding:0;border:0;background:none;font-size:0;line-height:12px}.page:has(.ttd-tabs) .ttd .ttp-item .chip .mk{width:auto;height:auto;border-radius:0;background:none;color:var(--chip-ink, var(--ink-2));font-size:11px;line-height:12px}.page:has(.ttd-tabs) .ttd .ttp-item .chip.combined-session{display:none}.page:has(.ttd-tabs) .ttd .ttp-item .chip~.chip~.chip{display:none}.page:has(.ttd-tabs) .ttd.tt-frame .cell,.page:has(.ttd-tabs) .ttd.tt-frame .cell.free{min-height:40px}.page:has(.ttd-tabs) .ttw-day+.ttw-day{margin-top:var(--sp-4);padding-top:var(--sp-3)}.page:has(.ttd-tabs) .ttw-day-h{margin-bottom:var(--sp-2);padding-block:5px;font-size:16px}.side{display:none}.tabbar{display:flex;justify-content:space-around}.mhead{display:flex;gap:4px;height:calc(48px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-left:calc(var(--sp-3) + env(safe-area-inset-left));padding-right:calc(8px + env(safe-area-inset-right))}.mhead .mi{width:44px;height:44px}.page .head{display:block;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.head .acts,.head-search{display:none}.tabbar{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.tabs{position:sticky;top:0;z-index:1;background:var(--surface)}.tabs .tab{min-height:44px;display:inline-flex;align-items:center}.boot,.signin{padding-top:calc(40px + env(safe-area-inset-top));padding-left:calc(24px + env(safe-area-inset-left));padding-right:calc(24px + env(safe-area-inset-right))}.attendance-mobile-context{background:var(--surface)}.attendance-mobile-stats .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;scroll-snap-type:none;scrollbar-width:none}.attendance-mobile-stats .stats:has(>.stat:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-mobile-stats .stats::-webkit-scrollbar{display:none}.attendance-mobile-stats .stat{display:flex;flex:none;flex-direction:column;justify-content:center;width:100%;max-width:none;min-height:54px;padding:7px 4px 6px;text-align:center;white-space:normal;scroll-snap-align:none}.attendance-mobile-stats .stat.is-active{background:var(--accent-soft)}.attendance-mobile-stats .stat .k{overflow:hidden;font-size:9.5px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.attendance-mobile-stats .stat .v{margin-top:4px;font-size:17px;line-height:1}.attendance-mobile-stats .stat .m{display:none}.attendance-mobile-notices:empty{display:none}.attendance-mobile-notices .banner-band{margin:8px var(--sp-4);padding:9px 10px;align-items:center;gap:var(--sp-3);border-radius:10px;font-size:var(--t-s);line-height:1.3}.attendance-mobile-notices .attendance-unmarked>div{flex:1;min-width:0}.attendance-mobile-notices .attendance-unmarked .h{margin:0 0 2px;font-size:12.5px;line-height:1.2}.attendance-mobile-notices .attendance-unmarked .btn{flex-shrink:0;min-height:44px;padding-inline:13px}.attendance-mobile-toolbar .filters{min-height:48px;padding:1px 12px 2px;gap:7px;border-top:0;background:var(--surface)}.attendance-mobile-toolbar .filters.has-lead .datestep.is-compact{flex:0 0 auto;height:44px;border:0;border-radius:var(--r);overflow:visible;background:transparent}.attendance-mobile-toolbar .filters.has-lead .datestep.is-compact button{width:44px;min-width:44px;border-radius:var(--r)}.attendance-mobile-toolbar .datestep button svg{width:16px;height:16px}.attendance-mobile-toolbar .datestep.is-compact button:hover:not(:disabled){background:var(--surface-2)}.attendance-mobile-toolbar .datestep.is-compact .dv{position:relative;min-width:108px;height:44px;align-self:center;padding:0;border:0;background:transparent;font-weight:600}.attendance-mobile-toolbar .datestep.is-compact .date-short{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;height:36px;margin-block:4px;padding-inline:8px;border-radius:var(--r);background:var(--surface-2);color:var(--ink);font:600 13px/1 var(--sans);white-space:nowrap}.attendance-mobile-toolbar .datestep.is-compact .dv input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px;transform:none}.attendance-mobile-toolbar .datestep.is-compact .dv:focus-within .date-short{box-shadow:0 0 0 2px var(--accent)}.attendance-mobile-toolbar .fbtn{margin-left:auto;justify-content:center;width:44px;min-width:44px;min-height:44px;height:44px;padding:0;gap:0;border-color:transparent;background:transparent}.attendance-mobile-toolbar .filters:has(.fmobile-search-trigger) .fmobile-search-trigger{margin-left:auto}.attendance-mobile-toolbar .filters:has(.fmobile-search-trigger) .fbtn{margin-left:0}.attendance-mobile-toolbar .fbtn:before{display:none}.attendance-mobile-toolbar .fbtn svg{width:17px;height:17px}.attendance-mobile-toolbar .fbtn>span:not(.cnt){display:none}.attendance-mobile-toolbar .fbtn.on{border-color:transparent;background:var(--accent-soft)}.attendance-mobile-toolbar .fbtn .cnt{position:absolute;top:2px;right:0;min-width:17px;min-height:17px;padding:3px 5px}table.t.t-flat.attendance-day-table{width:100%;min-width:0;table-layout:fixed}table.t.t-flat.attendance-day-table th.mfull,table.t.t-flat.attendance-day-table td.mfull{min-width:0}table.t.t-flat.attendance-day-table th:nth-child(1),table.t.t-flat.attendance-day-table td:nth-child(1){width:56%}table.t.t-flat.attendance-day-table th:nth-child(5),table.t.t-flat.attendance-day-table td:nth-child(5){width:44%}table.t.t-flat.attendance-day-table .cellp{gap:5px}table.t.t-flat.attendance-day-table .attendance-running-now{flex:0 0 auto;color:var(--accent);font:650 10px/1 var(--sans);letter-spacing:.03em;text-transform:uppercase}table.t.t-flat.attendance-roster-table{width:100%;min-width:0;table-layout:fixed}table.t.t-flat.attendance-roster-table th.mfull,table.t.t-flat.attendance-roster-table td.mfull{min-width:0}table.t.t-flat.attendance-roster-table .cellp>span:last-child{min-width:0;overflow:hidden}table.t.t-flat.attendance-roster-table .cellp .nm{display:inline-block;max-width:100%;vertical-align:bottom}table.t.t-flat.attendance-roster-table th:nth-child(1),table.t.t-flat.attendance-roster-table td:nth-child(1){width:43%}table.t.t-flat.attendance-roster-table th:nth-child(2),table.t.t-flat.attendance-roster-table td:nth-child(2){width:35%}table.t.t-flat.attendance-roster-table th:nth-child(5),table.t.t-flat.attendance-roster-table td:nth-child(5){width:22%}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) th:nth-child(1),table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) td:nth-child(1){width:42%}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) th:nth-child(2),table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) td:nth-child(2){width:29%}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) th:nth-child(5),table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) td:nth-child(5){width:15%}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) th:nth-child(6),table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) td:nth-child(6){width:14%}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) td:nth-child(5){padding-inline:5px}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) td:nth-child(6){padding-inline:0}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) th:nth-child(5)>span,table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) th:nth-child(6)>span{padding-inline:5px}table.t.t-flat.attendance-roster-table:has(th:nth-child(6)) .btn.sm{width:100%;min-width:0;padding-inline:5px}.home-faculty-intro{grid-column:1 / -1;display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);padding:0 var(--sp-1) var(--sp-1)}.home-faculty-intro p{margin:0 0 3px;color:var(--ink-3);font:600 var(--t-s)/1.3 var(--sans)}.home-faculty-intro h2{margin:0;font:700 clamp(20px,6vw,24px)/1.15 var(--sans);letter-spacing:-.025em;text-wrap:balance}.home-faculty-intro>span{flex:none;padding-bottom:2px;color:var(--ink-2);font:600 var(--t-s)/1.2 var(--sans)}.home-mobile-classes{grid-column:1 / -1;display:grid;gap:var(--sp-3);min-width:0}.home-next-class{position:relative;overflow:hidden;border-color:var(--accent-line);background:radial-gradient(circle at 100% 0%,color-mix(in oklch,var(--accent) 14%,transparent),transparent 48%),var(--accent-soft)}.home-next-class:after{content:"";position:absolute;right:-56px;bottom:-64px;width:112px;height:112px;border:18px solid color-mix(in oklch,var(--accent) 7%,transparent);border-radius:999px;pointer-events:none}.home-next-head,.home-next-actions,.home-later-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.home-next-kicker{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--accent);font:700 11px/1 var(--sans);letter-spacing:.055em;text-transform:uppercase}.home-next-kicker>span{width:7px;height:7px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 4px color-mix(in oklch,var(--accent) 12%,transparent)}.home-next-relative{padding:5px var(--sp-2);border-radius:var(--r);color:var(--accent);background:color-mix(in oklch,var(--surface) 78%,transparent);font:700 11px/1 var(--sans);white-space:nowrap}.home-next-relative:empty{display:none}.home-next-body{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--sp-4);margin-top:var(--sp-4)}.home-next-body>time{color:var(--ink);font:700 clamp(27px,8vw,31px)/1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.045em}.home-next-body>time small{display:block;margin-top:var(--sp-2);color:var(--ink-2);font:600 10px/1 var(--sans);letter-spacing:0}.home-next-body>div{min-width:0;padding-left:var(--sp-4);border-left:1px solid var(--accent-line)}.home-next-body h3{overflow:hidden;margin:0;color:var(--ink);font:700 clamp(18px,5.5vw,21px)/1.2 var(--sans);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.home-next-body p{overflow:hidden;margin:var(--sp-2) 0 0;color:var(--ink-2);font:600 var(--t-s)/1.25 var(--sans);text-overflow:ellipsis;white-space:nowrap}.home-next-actions{position:relative;z-index:1;margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--accent-line)}.home-next-actions>span{color:var(--ink-2);font-size:var(--t-s)}.home-next-link{flex:none;min-height:44px;text-decoration:none}.home-later-classes{overflow:hidden;padding:0}.home-later-head{min-height:52px;padding:0 var(--sp-4);border-bottom:1px solid var(--line)}.home-later-head h3{margin:0;font-size:var(--t-base)}.home-later-head>span{color:var(--ink-2);font:600 var(--t-s)/1 var(--sans)}.home-class-rows{margin:0;padding:var(--sp-1) var(--sp-4);list-style:none}.home-class-rows>li>a,.home-class-rows>li>button,.home-class-rows>li>span{display:grid;grid-template-columns:3.25rem 12px minmax(0,1fr) auto;align-items:center;gap:var(--sp-2);width:100%;min-height:55px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;text-decoration:none}.home-class-rows>li>button{cursor:pointer}.home-class-rows>li>button:hover .home-class-copy strong{color:var(--accent)}.home-class-rows li+li{border-top:1px solid var(--line)}.home-class-rows time{font:700 var(--t-s)/1 var(--sans);font-variant-numeric:tabular-nums}.home-class-dot{width:8px;height:8px;border:2px solid var(--surface);border-radius:999px;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.home-class-copy{min-width:0}.home-class-copy strong,.home-class-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-class-copy strong{font:650 var(--t-s)/1.25 var(--sans)}.home-class-copy span{margin-top:3px;color:var(--ink-2);font-size:10.5px}.home-class-room{max-width:72px;overflow:hidden;padding:5px 7px;border-radius:var(--r);color:var(--ink-2);background:var(--surface-2);font:650 10px/1 var(--sans);text-overflow:ellipsis;white-space:nowrap}.home-completed-toggle{width:calc(100% - 2 * var(--sp-4));min-height:44px;margin:0 var(--sp-4) var(--sp-2);padding:0;border:0;border-top:1px solid var(--line);color:var(--ink-2);background:transparent;font:650 var(--t-s)/1.2 var(--sans);text-align:left;cursor:pointer}.home-class-rows.is-completed{padding-top:0;opacity:.62}.home-class-rows.is-completed .home-class-dot{background:var(--ink-3);box-shadow:0 0 0 1px var(--ink-3)}.home-classes-complete{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-3)}.home-classes-complete>span{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r);color:var(--good);background:var(--good-soft);font-weight:700}.home-classes-complete h3{margin:0}.home-classes-complete p{margin:3px 0 0;color:var(--ink-2);font-size:var(--t-s)}@media (max-width: 350px){.home-faculty-intro>span{display:none}.home-next-body{gap:var(--sp-2)}.home-next-body>div{padding-left:var(--sp-3)}.home-next-actions{align-items:stretch;flex-direction:column}.home-next-actions>span{display:none}.home-next-link{width:100%}}.set-card{padding:var(--sp-4)}}.batch-name-cell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-name-cell:not(.mob-only){display:block}.chip.staff-incharge-chip{display:inline-block;flex:0 1 auto;min-width:0;overflow:hidden;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.bcard .bt{flex-wrap:nowrap}.bcard .bt>:not(.bc){flex-shrink:0}.bcard .bt .bc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tti-left{margin:6px 0 0;padding-left:18px;display:grid;gap:3px}.tti-left li{font-size:13px;color:var(--ink-2, #4a4f59)}.sc-search{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--sp-2);margin:var(--sp-3) 0 var(--sp-2);padding-bottom:var(--sp-2);background:var(--surface)}.sc-search .fld{flex:1}.sc-count{font:500 var(--t-xs) / 1 var(--mono);color:var(--ink-3);white-space:nowrap}.sc-list{display:grid;gap:var(--sp-2)}.sc-card{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition-property:border-color,background-color,box-shadow;transition-duration:.12s}.sc-card:hover{border-color:var(--line-2)}.sc-card.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);background:var(--accent-soft)}.sc-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);width:100%;padding:0;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}.sc-name{font:550 var(--t-base) / 1.3 var(--sans);color:var(--ink)}.sc-card.on .sc-name{font-weight:650}.sc-kind{margin-left:6px;font:500 var(--t-xs) / 1 var(--sans);color:var(--ink-3)}.sc-marks{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.sc-people{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--sp-2)}.sc-person{padding:5px 10px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);font:500 var(--t-m) / 1.2 var(--sans);color:var(--ink);cursor:pointer;transition-property:border-color,background-color,color;transition-duration:.12s}.sc-person:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sc-person.on{border-color:var(--accent);background:var(--accent);color:var(--accent-on);font-weight:650}.sc-person.flagged:not(.on){border-color:var(--warn, #b8860b);color:var(--ink-2)}.sc-person:disabled{opacity:.55;cursor:not-allowed}.sc-m{margin-left:6px;font:500 var(--t-xs) / 1 var(--sans)}.profile-photo-btn{margin-top:6px}.attendance-day-content,.attendance-day-dashboard{background:var(--surface)}.attendance-day-dashboard{border-bottom:8px solid var(--surface-2)}.attendance-day-dashboard-head{min-height:54px;padding:10px var(--sp-6) 8px;display:flex;align-items:end;justify-content:space-between;gap:var(--sp-4)}.attendance-day-dashboard-head h2,.attendance-day-dashboard-head p{margin:0}.attendance-day-dashboard-eyebrow{display:block;margin-bottom:2px;color:var(--ink-3);font:650 var(--t-xs) / 1.1 var(--sans);letter-spacing:.08em;text-transform:uppercase}.attendance-day-dashboard-head h2{color:var(--ink);font:660 var(--t-l) / 1.15 var(--sans);letter-spacing:-.012em}.attendance-day-dashboard-head p{color:var(--ink-2);font:600 var(--t-m) / 1.2 var(--sans);white-space:nowrap}.attendance-day-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}.attendance-day-summary-item{min-width:0;padding:10px var(--sp-6)}.attendance-day-summary-item+.attendance-day-summary-item{border-left:1px solid var(--line)}.attendance-day-summary-item>span,.attendance-day-summary-item>em{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-day-summary-item>span{color:var(--ink-3);font:650 var(--t-xs) / 1.1 var(--sans);letter-spacing:.075em;text-transform:uppercase}.attendance-day-summary-item>strong{display:block;margin-top:5px;color:var(--ink);font:670 22px / 1 var(--sans);font-variant-numeric:tabular-nums}.attendance-day-summary-item>em{margin-top:5px;color:var(--ink-2);font:500 var(--t-s) / 1.2 var(--sans);font-style:normal}.attendance-day-summary-item.is-complete>strong{color:var(--good)}.attendance-day-summary-item.is-progress>strong,.attendance-day-summary-item.is-pending>strong{color:var(--warn)}.attendance-overall-progress{display:grid;grid-template-columns:minmax(190px,auto) minmax(120px,1fr) auto;align-items:center;gap:var(--sp-4);padding:11px var(--sp-6);border-bottom:1px solid var(--line)}.attendance-overall-progress-copy span,.attendance-overall-progress-copy strong{display:block}.attendance-overall-progress-copy span{color:var(--ink-3);font-size:var(--t-xs);font-weight:650;text-transform:uppercase}.attendance-overall-progress-copy strong{margin-top:2px;font-size:var(--t-s)}.attendance-overall-progress-track,.attendance-marked-track{display:block;overflow:hidden;height:6px;border-radius:999px;background:var(--warn-soft)}.attendance-overall-progress-track>span,.attendance-marked-track>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.attendance-overall-progress>b{min-width:48px;text-align:right;font-size:var(--t-s);font-variant-numeric:tabular-nums}.attendance-status-filters{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px var(--sp-6) 12px}.attendance-status-filters button{display:inline-flex;min-height:30px;align-items:center;gap:7px;padding:4px 9px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink-2);cursor:pointer;font:600 var(--t-s) / 1 var(--sans)}.attendance-status-filters button:hover{background:var(--surface-2)}.attendance-status-filters button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.attendance-status-filters button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.attendance-status-filters button b{min-width:20px;padding:2px 5px;border-radius:999px;background:color-mix(in srgb,currentColor 9%,transparent);text-align:center;font-size:10.5px;font-variant-numeric:tabular-nums}.attendance-status-filters p{margin:0 0 0 auto;color:var(--ink-3);font-size:var(--t-s)}.attendance-roster-status-filters{display:flex;align-items:center;gap:7px;padding:10px var(--sp-4);overflow-x:auto;border-bottom:1px solid var(--line);background:var(--surface);scrollbar-width:thin}.attendance-roster-status-filters button{display:inline-flex;min-height:32px;flex:0 0 auto;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink-2);cursor:pointer;font:600 var(--t-s) / 1 var(--sans)}.attendance-roster-status-filters button:hover{background:var(--surface-2)}.attendance-roster-status-filters button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.attendance-roster-status-filters button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.attendance-roster-status-filters button b{min-width:20px;padding:2px 5px;border-radius:999px;background:color-mix(in srgb,currentColor 9%,transparent);text-align:center;font-size:10.5px;font-variant-numeric:tabular-nums}.attendance-batches-head{display:flex;min-height:43px;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:8px var(--sp-6);border-bottom:1px solid var(--line)}.attendance-batches-head h2,.attendance-batches-head p{margin:0}.attendance-batches-head h2{color:var(--ink);font:650 var(--t-m) / 1.2 var(--sans)}.attendance-batches-head p{max-width:60%;overflow:hidden;color:var(--ink-3);font-size:var(--t-s);text-overflow:ellipsis;white-space:nowrap}.attendance-batch-cell-wrap{display:block;min-width:0}.attendance-row-group-label{display:block;margin:0 0 7px;color:var(--accent);font:700 10px / 1.1 var(--sans);letter-spacing:.07em;text-transform:uppercase}table.t.attendance-day-table td:has(.attendance-row-group-label){height:68px;padding-block:6px}.attendance-batch-identity{display:inline-flex;align-items:baseline;gap:7px;min-width:0}.attendance-batch-identity .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-batch-meta{margin-top:3px;overflow:hidden;color:var(--ink-3);font:500 11.5px / 1.15 var(--sans);text-overflow:ellipsis;white-space:nowrap}.attendance-schedule-cell{display:block;min-width:0;white-space:nowrap}.attendance-cell-a11y{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.attendance-schedule-cell>.mono{display:block;overflow:hidden;color:var(--ink-2);font-variant-numeric:tabular-nums;text-overflow:ellipsis}.attendance-marked-cell{display:grid;grid-template-columns:auto minmax(42px,1fr) auto;align-items:center;gap:7px;min-width:0}.attendance-marked-value,.attendance-marked-meta{white-space:nowrap;font-variant-numeric:tabular-nums}.attendance-marked-value{color:var(--ink);font-weight:650}.attendance-marked-value small{color:var(--ink-3);font-size:11px;font-weight:500}.attendance-marked-meta{color:var(--ink-3);font-size:11px}.attendance-rate-cell{font-weight:620;font-variant-numeric:tabular-nums}.attendance-rate-cell.good{color:var(--good)}.attendance-rate-cell.warn{color:var(--warn)}.attendance-rate-cell.risk{color:var(--risk)}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){.attendance-day-dashboard{border-bottom-width:6px}.attendance-day-dashboard-head{min-height:46px;padding:7px var(--sp-4) 6px}.attendance-day-dashboard-head h2{font-size:14px}.attendance-day-dashboard-head p{font-size:12px}.attendance-day-summary-item{min-height:65px;padding:8px 5px 7px;text-align:center}.attendance-day-summary-item>span{font-size:8.5px}.attendance-day-summary-item>strong{margin-top:5px;font-size:17px}.attendance-day-summary-item>em{margin-top:4px;font-size:9px}.attendance-overall-progress{grid-template-columns:minmax(105px,auto) 1fr auto;gap:8px;padding:8px var(--sp-4)}.attendance-overall-progress-copy span{font-size:9px}.attendance-overall-progress-copy strong{font-size:10px}.attendance-status-filters{gap:6px;padding:8px var(--sp-4) 9px;overflow-x:auto;flex-wrap:nowrap}.attendance-status-filters button{flex:0 0 auto;min-height:28px;font-size:10.5px}.attendance-status-filters p{display:none}.attendance-batches-head{min-height:40px;padding:7px var(--sp-4)}.attendance-batch-identity{display:block}table.t.t-flat.attendance-day-table td:has(.attendance-row-group-label){height:62px;padding-block:5px}.attendance-row-group-label{margin-bottom:4px;font-size:8.5px;line-height:1.2}.attendance-marked-cell{grid-template-columns:1fr;gap:4px;justify-items:stretch;text-align:right}.attendance-marked-value{font-size:12.5px}.attendance-marked-value small{font-size:10.5px}.attendance-marked-meta{font-size:10px}.attendance-marked-track{height:4px}}.student-attendance{width:min(100%,1120px);margin-inline:auto;padding:var(--sp-5) var(--sp-6) var(--sp-7);display:grid;gap:var(--sp-4)}.student-attendance-loading{grid-template-columns:1fr}.student-attendance-eyebrow{display:block;color:var(--ink-3);font:650 var(--t-xs) / 1.15 var(--sans);letter-spacing:.08em;text-transform:uppercase}.student-attendance-today{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-6);min-height:112px;padding:var(--sp-4) var(--sp-5);border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface-2)}.student-attendance-today h2,.student-attendance-today p,.student-attendance-rate h2,.student-attendance-rate p,.student-attendance-month-heading h2,.student-attendance-day-heading h3,.student-attendance-recent h3,.student-attendance-selected h3{margin:0}.student-attendance-today-title{display:flex;align-items:center;gap:var(--sp-3);margin-top:7px}.student-attendance-today-title h2{font:660 var(--t-xl) / 1.15 var(--sans);letter-spacing:-.018em}.student-attendance-today-title p{max-width:54ch;margin-top:3px;color:var(--ink-2);font-size:var(--t-m);line-height:1.35}.student-attendance-status-mark{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border:1px solid currentColor;border-radius:11px;background:var(--surface);font:750 16px/1 var(--sans)}.student-attendance-status-mark.good,.student-attendance-rate h2.good{color:var(--good)}.student-attendance-status-mark.warn,.student-attendance-rate h2.warn{color:var(--warn)}.student-attendance-status-mark.risk,.student-attendance-rate h2.risk{color:var(--risk)}.student-attendance-status-mark.neutral,.student-attendance-rate h2.neutral{color:var(--ink-2)}.student-attendance-today-evidence{min-width:220px;padding-left:var(--sp-5);border-left:1px solid var(--line)}.student-attendance-today-evidence>span{display:block;margin-top:7px;color:var(--ink-3);font-size:var(--t-s);text-align:right}.student-attendance-punches{display:flex;gap:var(--sp-6);margin:0}.student-attendance-punches div{min-width:72px}.student-attendance-punches dt{color:var(--ink-3);font:650 var(--t-xs) / 1 var(--sans);letter-spacing:.07em;text-transform:uppercase}.student-attendance-punches dd{margin:5px 0 0;color:var(--ink);font:650 var(--t-l) / 1 var(--mono);font-variant-numeric:tabular-nums}.student-attendance-overview{display:grid;grid-template-columns:190px minmax(0,1fr);gap:var(--sp-6);align-items:center;padding:var(--sp-4) var(--sp-5);border-block:1px solid var(--line)}.student-attendance-rate h2{margin-top:5px;font:660 var(--t-3xl) / 1 var(--sans);letter-spacing:-.035em;font-variant-numeric:tabular-nums}.student-attendance-rate p{margin-top:4px;color:var(--ink-2);font-size:var(--t-s)}.student-attendance-breakdown{min-width:0}.student-attendance-bar{height:8px;display:flex;overflow:hidden;border-radius:999px;background:var(--surface-3)}.student-attendance-bar span{min-width:2px}.student-attendance-bar .present{background:var(--c-present)}.student-attendance-bar .late{background:var(--c-late)}.student-attendance-bar .absent{background:var(--c-absent)}.student-attendance-bar .unmarked{background:var(--line-2)}.student-attendance-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3);margin:var(--sp-3) 0 0}.student-attendance-counts div{min-width:0}.student-attendance-counts dt{overflow:hidden;color:var(--ink-3);font-size:var(--t-xs);text-overflow:ellipsis;white-space:nowrap}.student-attendance-counts dd{margin:2px 0 0;font:650 var(--t-l) / 1 var(--sans);font-variant-numeric:tabular-nums}.student-attendance-month-summary{margin:var(--sp-2) 0 0;color:var(--ink-3);font-size:var(--t-xs)}.student-attendance-explorer{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:var(--sp-4);align-items:start}.student-attendance-calendar-panel,.student-attendance-selected,.student-attendance-recent{border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}.student-attendance-calendar-panel{padding:var(--sp-4)}.student-attendance-month-heading,.student-attendance-day-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.student-attendance-month-heading h2,.student-attendance-day-heading h3,.student-attendance-recent h3,.student-attendance-selected h3{margin-top:4px;font:650 var(--t-base) / 1.2 var(--sans)}.student-attendance-month-actions{display:flex;gap:2px}.student-attendance-month-actions .btn{width:36px;min-width:36px;height:36px;min-height:36px;padding:0}.student-attendance-calendar-panel .cal{width:100%;max-width:none;gap:5px}.student-attendance-legend{display:flex;flex-wrap:wrap;gap:7px var(--sp-4);margin-top:var(--sp-4);color:var(--ink-2);font-size:var(--t-xs)}.student-attendance-legend span{display:inline-flex;align-items:center;gap:5px}.student-attendance-legend i{width:13px;height:13px;display:grid;place-items:center;border-radius:3px;color:#fff;font:750 8px/1 var(--sans);font-style:normal}.student-attendance-legend .present{background:var(--c-present)}.student-attendance-legend .late{background:var(--c-late);color:var(--ink)}.student-attendance-legend .absent{background:var(--c-absent)}.student-attendance-legend .none{box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2)}.student-attendance-details{min-width:0;display:grid;gap:var(--sp-4)}.student-attendance-selected{min-height:178px;padding:var(--sp-4) var(--sp-5);background:var(--surface-2)}.student-attendance-badge{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink-2);font:620 var(--t-s) / 1 var(--sans);white-space:nowrap}.student-attendance-badge.good{color:var(--good);border-color:var(--good-line)}.student-attendance-badge.warn{color:var(--warn);border-color:var(--warn-line)}.student-attendance-badge.risk{color:var(--risk);border-color:var(--risk-line)}.student-attendance-selected .student-attendance-punches{margin-top:var(--sp-4)}.student-attendance-day-note,.student-attendance-source,.student-attendance-correction,.student-attendance-empty{margin:var(--sp-3) 0 0;color:var(--ink-2);font-size:var(--t-s);line-height:1.4}.student-attendance-source{color:var(--ink-3)}.student-attendance-correction{padding-top:var(--sp-2);border-top:1px solid var(--line)}.student-attendance-recent{padding:var(--sp-4) var(--sp-5) var(--sp-2)}.student-attendance-recent-list{margin-top:var(--sp-3)}.student-attendance-recent-row{width:100%;min-height:55px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:8px 0;border:0;border-top:1px solid var(--line);background:transparent;color:inherit;text-align:left;cursor:pointer}.student-attendance-recent-row:hover{background:var(--surface-2)}.student-attendance-recent-row:active{transform:translateY(1px)}.student-attendance-recent-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.student-attendance-recent-row>span:first-child{min-width:0}.student-attendance-recent-row b,.student-attendance-recent-row small{display:block}.student-attendance-recent-row b{font:620 var(--t-m) / 1.2 var(--sans)}.student-attendance-recent-row small{margin-top:3px;overflow:hidden;color:var(--ink-3);font-size:var(--t-xs);text-overflow:ellipsis;white-space:nowrap}@media (min-width: 641px) and (max-width: 900px){.student-attendance-today{grid-template-columns:1fr;gap:var(--sp-4)}.student-attendance-today-evidence{min-width:0;display:flex;align-items:end;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) 0 0;border-top:1px solid var(--line);border-left:0}.student-attendance-today-evidence>span{margin:0;text-align:right}.student-attendance-explorer{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){.student-record-tabs{overflow:visible;padding-inline:0}.student-record-tabs .tab{min-width:0;flex:1 1 0;padding-inline:2px;font-size:11px;text-align:center}.student-attendance{width:100%;padding:10px var(--sp-4) var(--sp-6);gap:10px}.student-attendance-today{grid-template-columns:1fr;gap:var(--sp-3);min-height:0;padding:12px}.student-attendance-today-title{align-items:flex-start}.student-attendance-today-title h2{font-size:18px}.student-attendance-today-title p{font-size:var(--t-s)}.student-attendance-status-mark{width:34px;height:34px;flex-basis:34px;border-radius:10px}.student-attendance-today-evidence{min-width:0;display:flex;align-items:end;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) 0 0;border-top:1px solid var(--line);border-left:0}.student-attendance-today-evidence>span{max-width:45%;margin:0;text-align:right}.student-attendance-punches{gap:var(--sp-4)}.student-attendance-punches div{min-width:58px}.student-attendance-punches dd{font-size:var(--t-base)}.student-attendance-overview{grid-template-columns:1fr;gap:var(--sp-3);padding:12px 2px}.student-attendance-rate{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--sp-3);align-items:end}.student-attendance-rate .student-attendance-eyebrow{grid-column:1 / -1}.student-attendance-rate h2{font-size:29px}.student-attendance-rate p{margin-bottom:2px}.student-attendance-counts{gap:6px}.student-attendance-counts dt{font-size:9.5px}.student-attendance-counts dd{font-size:var(--t-base)}.student-attendance-explorer{grid-template-columns:1fr;gap:10px}.student-attendance-calendar-panel,.student-attendance-selected,.student-attendance-recent{border-radius:10px}.student-attendance-calendar-panel{padding:12px}.student-attendance-calendar-panel .cal{gap:4px}.student-attendance-month-actions .btn{width:44px;min-width:44px;height:44px;min-height:44px}.student-attendance-legend{gap:6px 12px;margin-top:12px}.student-attendance-details{gap:10px}.student-attendance-selected,.student-attendance-recent{min-height:0;padding:12px}.student-attendance-selected .student-attendance-punches{margin-top:12px}}.msg-workspace{width:100%;margin-inline:0;display:grid;gap:var(--sp-4);padding-bottom:var(--sp-6)}.msg-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,auto);gap:var(--sp-6);align-items:end;padding:var(--sp-5) var(--sp-6);border:1px solid var(--line);border-radius:calc(var(--r-l) + 3px);background:var(--surface-2)}.msg-eyebrow{display:block;margin-bottom:var(--sp-2);color:var(--accent);font:650 var(--t-xs)/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}.msg-hero h2{margin:0;color:var(--ink);font:680 clamp(22px,2.5vw,30px)/1.08 var(--sans);letter-spacing:-.025em}.msg-hero-copy p{max-width:62ch;margin:var(--sp-2) 0 0;color:var(--ink-2);font-size:var(--t-m);line-height:1.55;text-wrap:pretty}.msg-readiness{min-width:300px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3);border:1px solid var(--warn-line);border-radius:var(--r-m);background:var(--surface)}.msg-readiness.is-ready{border-color:var(--good-line)}.msg-readiness-icon,.msg-section-icon,.msg-rule-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:10px;background:var(--surface-3);color:var(--ink-2)}.msg-readiness.is-ready .msg-readiness-icon{background:var(--good-soft);color:var(--good)}.msg-readiness strong,.msg-readiness small{display:block}.msg-readiness strong{color:var(--ink);font-size:12.5px}.msg-readiness small{margin-top:2px;color:var(--ink-3);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;background:var(--surface)}.msg-tab{position:relative;min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4);border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink-2);text-align:left;cursor:pointer;transition:background .16s ease,color .16s ease}.msg-tab:last-child{border-right:0}.msg-tab:hover{background:var(--surface-2)}.msg-tab:active{transform:translateY(1px)}.msg-tab:focus-visible{z-index:1;outline:3px solid var(--accent-soft);outline-offset:-3px}.msg-tab[aria-selected=true]{background:var(--accent-soft);color:var(--accent)}.msg-tab[aria-selected=true]:after{content:"";position:absolute;inset:auto 14px 0;height:2px;background:var(--accent)}.msg-tab-index{width:25px;height:25px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:8px;font:650 11px/1 var(--sans);font-variant-numeric:tabular-nums}.msg-tab[aria-selected=true] .msg-tab-index{border-color:var(--accent-line);background:var(--surface)}.msg-tab strong,.msg-tab small{display:block}.msg-tab strong{font-size:12.5px;color:currentColor}.msg-tab small{margin-top:2px;font-size:11px;color:var(--ink-3)}.msg-tab-check{color:var(--good)}.msg-panel{min-width:0}.msg-setup-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--sp-4);align-items:start}.msg-surface{min-width:0;border:1px solid var(--line);border-radius:calc(var(--r-l) + 2px);background:var(--surface);padding:var(--sp-5)}.msg-section-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);align-items:start;margin-bottom:var(--sp-4)}.msg-section-head h3{margin:0;color:var(--ink);font:650 15px/1.35 var(--sans);letter-spacing:-.01em}.msg-section-head p{max-width:62ch;margin:3px 0 0;color:var(--ink-3);font-size:11.5px;line-height:1.45}.msg-verified{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3);padding:10px 12px;border-radius:var(--r);background:var(--good-soft);color:var(--good);font-size:12px}.msg-verified span{color:var(--ink-2)}.msg-disclosure{border-top:1px solid var(--line);padding-top:var(--sp-3)}.msg-disclosure>summary,.msg-help>summary{width:max-content;list-style:none;color:var(--accent);font:620 12px/1.4 var(--sans);cursor:pointer}.msg-disclosure>summary::-webkit-details-marker,.msg-help>summary::-webkit-details-marker{display:none}.msg-disclosure>summary:after,.msg-help>summary:after{content:" +"}.msg-disclosure[open]>summary:after,.msg-help[open]>summary:after{content:" −"}.msg-disclosure-body{display:grid;gap:var(--sp-3);padding-top:var(--sp-3)}.msg-help{padding:var(--sp-3);border-radius:var(--r);background:var(--surface-2)}.msg-help ol{margin:var(--sp-2) 0 0;padding-left:18px;color:var(--ink-3);font-size:11.5px;line-height:1.55}.msg-credential-grid,.msg-two-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3)}.msg-actions{display:flex;gap:var(--sp-2);align-items:center}.msg-account-card>.banner,.msg-template-card>.banner,.msg-test-card>.banner{margin-top:var(--sp-3)}.msg-sms-note{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-3);align-items:start;padding:var(--sp-3) var(--sp-4);border:1px dashed var(--line-2);border-radius:var(--r-l);color:var(--ink-2)}.msg-sms-note strong{font-size:12px}.msg-sms-note p{margin:3px 0 0;color:var(--ink-3);font-size:11.5px;line-height:1.45}.msg-sms-note .msg-section-icon{width:30px;height:30px}.msg-test-layout,.msg-template-builder{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:var(--sp-5);align-items:start}.msg-test-fields,.msg-template-fields{display:grid;gap:var(--sp-3)}.msg-last-test{margin-top:var(--sp-3);color:var(--ink-3);font-size:11px;line-height:1.45}.msg-preview-card{min-width:0;padding:var(--sp-4);border-radius:var(--r-l);background:var(--surface-2)}.msg-preview-card.compact{padding:var(--sp-3)}.msg-preview-card.is-empty{min-height:150px;display:grid;place-items:center;align-content:center;color:var(--ink-3);text-align:center}.msg-preview-label{display:flex;gap:6px;align-items:center;margin-bottom:var(--sp-3);color:var(--ink-3);font:650 10px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}.msg-bubble{display:grid;gap:var(--sp-2);padding:12px 14px;border:1px solid var(--good-line);border-radius:4px 13px 13px;background:var(--good-soft);color:var(--ink);font-size:12.5px;line-height:1.55;white-space:pre-wrap}.msg-bubble small{color:var(--ink-3)}.msg-preview-card p{margin:var(--sp-3) 0 0;color:var(--ink-3);font-size:11px;line-height:1.45}.msg-meta-note{display:flex;gap:var(--sp-2);align-items:flex-start;margin-top:var(--sp-3);color:var(--ink-3);font-size:11px;line-height:1.45}.msg-template-status{margin-bottom:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden}.msg-list-head,.msg-template-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 100px;gap:var(--sp-3);align-items:center;padding:10px 12px}.msg-list-head{background:var(--surface-2);color:var(--ink-3);font:650 10px/1 var(--sans);letter-spacing:.05em;text-transform:uppercase}.msg-template-row+.msg-template-row{border-top:1px solid var(--line)}.msg-template-row>span:first-child{min-width:0}.msg-template-row strong,.msg-template-row small{display:block}.msg-template-row strong{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.msg-template-row small{margin-top:2px;color:var(--ink-3);font-size:10.5px}.msg-template-row>span:nth-child(2){color:var(--ink-2);font-size:11.5px}.msg-template-row .chip{justify-self:start}.msg-empty-row{display:flex;gap:var(--sp-2);align-items:center;padding:var(--sp-4);color:var(--ink-3);font-size:12px}.msg-inline-note{margin-bottom:var(--sp-4);border:1px solid var(--warn-line);border-radius:var(--r);background:var(--warn-soft)}.msg-builder-label{padding-bottom:var(--sp-1)}.msg-builder-label span,.msg-builder-label small{display:block}.msg-builder-label span{color:var(--ink);font:650 14px/1.35 var(--sans)}.msg-builder-label small{margin-top:3px;color:var(--ink-3);font-size:11.5px}.msg-session-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2);margin-bottom:var(--sp-4);padding:4px;border-radius:var(--r-l);background:var(--surface-2)}.msg-session-tabs button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;padding:10px 12px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--ink-3);text-align:left;cursor:pointer}.msg-session-tabs button[aria-selected=true]{border-color:var(--line);background:var(--surface);color:var(--ink)}.msg-session-tabs strong,.msg-session-tabs small{display:block}.msg-session-tabs strong{font-size:12.5px}.msg-session-tabs small{margin-top:2px;color:var(--ink-3);font-size:10.5px}.msg-session-count{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--surface-3);font:650 11px/1 var(--sans);font-variant-numeric:tabular-nums}.msg-automation-list{border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden}.msg-rule{background:var(--surface)}.msg-rule+.msg-rule{border-top:1px solid var(--line)}.msg-rule.is-enabled{box-shadow:inset 3px 0 0 var(--good)}.msg-rule-main{min-height:72px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,auto) auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3) var(--sp-4)}.msg-rule.is-enabled .msg-rule-icon{background:var(--good-soft);color:var(--good)}.msg-rule-copy label{color:var(--ink);font:650 12.5px/1.35 var(--sans)}.msg-rule-copy p{margin:3px 0 0;color:var(--ink-3);font-size:11px;line-height:1.4}.msg-rule-volume{text-align:right}.msg-rule-volume strong,.msg-rule-volume small{display:block}.msg-rule-volume strong{color:var(--ink-2);font-size:11.5px;font-variant-numeric:tabular-nums}.msg-rule-volume small{margin-top:2px;color:var(--ink-3);font-size:10px}.msg-switch{position:relative;width:36px;height:21px;flex:0 0 auto;cursor:pointer}.msg-switch input{position:absolute;width:1px;height:1px;opacity:0}.msg-switch span{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--line-2);border-radius:999px;background:var(--surface-3);transition:background .16s ease,border-color .16s ease}.msg-switch span:after{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 18%,transparent);transition:transform .16s ease}.msg-switch input:checked+span{border-color:var(--good);background:var(--good)}.msg-switch input:checked+span:after{transform:translate(15px)}.msg-switch input:focus-visible+span{outline:3px solid var(--accent-soft);outline-offset:2px}.msg-switch input:disabled+span{opacity:.55;cursor:not-allowed}.msg-rule-settings{display:grid;gap:var(--sp-3);padding:0 var(--sp-4) var(--sp-4) 61px}.msg-rule-settings .btn{justify-self:start}.msg-staff-label{padding:var(--sp-4) 0 var(--sp-2)}.msg-staff-label span{font-size:12.5px}.msg-safety-note{display:flex;gap:var(--sp-2);align-items:center;margin-top:var(--sp-3);color:var(--ink-3);font-size:11px}@media (max-width: 920px){.msg-hero{grid-template-columns:1fr;gap:var(--sp-4);align-items:start}.msg-readiness{min-width:0}.msg-setup-grid,.msg-test-layout,.msg-template-builder{grid-template-columns:1fr}}@media (max-width: 640px){.msg-workspace{gap:var(--sp-3)}.msg-hero,.msg-surface{padding:var(--sp-4)}.msg-tabs{grid-template-columns:repeat(3,minmax(84px,1fr))}.msg-tab{min-height:54px;grid-template-columns:1fr;gap:0;padding:10px;text-align:center}.msg-tab-index,.msg-tab small,.msg-tab-check{display:none}.msg-credential-grid,.msg-two-fields{grid-template-columns:1fr}.msg-list-head{display:none}.msg-template-row{grid-template-columns:minmax(0,1fr) auto}.msg-template-row>span:nth-child(2){display:none}.msg-rule-main{grid-template-columns:auto minmax(0,1fr) auto}.msg-rule-volume{display:none}.msg-rule-settings{padding-left:var(--sp-4)}.msg-session-tabs button{padding:9px}.msg-section-head{grid-template-columns:auto minmax(0,1fr)}.msg-section-head>.chip{grid-column:2;justify-self:start}}.photo-enrollment{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;display:grid;place-items:center;padding:calc(32px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));background:radial-gradient(circle at 10% 88%,oklch(.92 .07 75 / .65),transparent 35%),radial-gradient(circle at 90% 8%,oklch(.91 .07 250 / .7),transparent 38%),var(--paper)}.photo-enrollment-card{width:min(850px,100%);padding:clamp(24px,4vw,38px);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-3)}.photo-enrollment-heading{max-width:650px;margin:0 auto 26px;text-align:center}.photo-enrollment-logo{display:block;width:min(230px,72%);height:auto;margin:0 auto 15px}.photo-enrollment-kicker{margin:0 0 7px;color:var(--accent);font:720 var(--t-xs) / 1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase}.photo-enrollment-heading h1{margin:0;color:var(--ink);font:720 clamp(25px,4vw,32px) / 1.12 var(--sans);letter-spacing:-.035em}.photo-enrollment-heading>p:last-child{margin:10px auto 0;color:var(--ink-2);font-size:var(--t-base);line-height:1.55}.photo-enrollment-layout{display:grid;grid-template-columns:minmax(260px,.92fr) minmax(280px,1.08fr);gap:clamp(24px,4vw,42px);align-items:center}.photo-enrollment-stage{width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--line-2);border-radius:50%;background:var(--surface-2);box-shadow:0 0 0 8px var(--surface),0 0 0 9px var(--line)}.photo-enrollment-preview,.photo-enrollment-video,.photo-enrollment-placeholder{display:block;width:100%;height:100%}.photo-enrollment-preview,.photo-enrollment-video{object-fit:cover}.photo-enrollment-video{transform:scaleX(-1)}.photo-enrollment-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;color:var(--ink-3);text-align:center;font-size:var(--t-s)}.photo-enrollment-face{position:relative;display:block;width:84px;height:84px;border:3px solid var(--accent-line);border-radius:50%}.photo-enrollment-face:after{content:"";position:absolute;left:50%;bottom:-48px;width:128px;height:64px;border:3px solid var(--accent-line);border-bottom:0;border-radius:72px 72px 0 0;transform:translate(-50%)}.photo-enrollment-controls{min-width:0}.photo-enrollment-actions{display:grid;gap:9px;margin-top:15px}.photo-enrollment-actions .btn{width:100%;min-height:44px}.photo-enrollment-actions .photo-enrollment-primary{font-weight:680}.photo-enrollment-camera-note,.photo-enrollment-live p{margin:10px 0 0;color:var(--ink-3);font-size:var(--t-s);line-height:1.45}.photo-enrollment-live{min-height:32px}.photo-enrollment-live .photo-enrollment-error{padding:9px 11px;border:1px solid var(--risk-line);border-radius:var(--r);background:var(--risk-soft);color:var(--risk)}.photo-enrollment-live p[role=status]{color:var(--ink-2)}.photo-enrollment-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.photo-enrollment-footer p{max-width:620px;margin:0;color:var(--ink-3);font-size:var(--t-xs);line-height:1.45}.photo-enrollment-footer .btn{flex:0 0 auto}@media (max-width: 720px){.photo-enrollment{place-items:start center}.photo-enrollment-card{width:min(520px,100%)}.photo-enrollment-layout{grid-template-columns:minmax(0,1fr);gap:26px}.photo-enrollment-stage{width:min(300px,82vw);margin:0 auto}}@media (max-width: 480px){.photo-enrollment{padding:0;background:var(--surface)}.photo-enrollment-card{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));border:0;border-radius:0;box-shadow:none}.photo-enrollment-heading{margin-bottom:22px}.photo-enrollment-logo{width:min(210px,68%)}.photo-enrollment-stage{width:min(260px,72vw)}.photo-enrollment-footer{align-items:flex-start}}@media (forced-colors: active){.photo-enrollment-stage,.photo-enrollment-card{border-color:CanvasText}}.cp-home{grid-column:1 / -1;overflow:hidden}.cp-home-head,.cp-pulse-head,.cp-detail-head,.cp-plan-head,.cp-plan-row,.cp-filter-line{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.cp-home-head h3,.cp-pulse-head h3,.cp-plan-head h3{margin:0}.cp-pulse-list{display:grid;gap:1px;margin:var(--sp-4) calc(-1 * var(--sp-5)) calc(-1 * var(--sp-5));background:var(--line);border-top:1px solid var(--line)}.cp-context,.cp-chapter,.cp-owner,.cp-plan-copy{min-width:0}.cp-context strong,.cp-chapter strong,.cp-owner strong{display:block;overflow:hidden;color:var(--ink);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.cp-kicker,.cp-overline{display:block;margin-bottom:2px;color:var(--ink-3);font:650 var(--t-xs)/1.25 var(--sans);letter-spacing:.02em}.cp-sub,.cp-date,.cp-empty-copy{color:var(--ink-2);font-size:var(--t-s);line-height:1.4}.cp-sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-pulse-actions,.cp-inline-actions,.cp-signal-row,.cp-plan-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap}.cp-pulse-actions .btn,.cp-plan-actions .btn,.cp-touch{min-height:44px}.cp-exception-note{flex:1 0 100%;overflow:hidden;color:var(--ink-2);font-size:var(--t-xs);line-height:1.35;text-align:right;text-overflow:ellipsis}.cp-home-error{margin-top:var(--sp-3)}.cp-suggestion{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--ink-2);font-size:var(--t-s)}.cp-suggestion strong{color:var(--ink)}.cp-pulse-row{display:grid;gap:var(--sp-2);min-width:0;padding:var(--sp-4) var(--sp-5);background:var(--surface)}.cp-pulse-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);min-width:0}.cp-pulse-title strong{overflow:hidden;color:var(--ink);font-weight:650;text-overflow:ellipsis;white-space:nowrap}.cp-pulse-subject{color:var(--ink-2)}.cp-pulse-track,.cp-mobile-track{color:var(--ink-3, var(--ink-2));font-weight:500}.cp-sep{color:var(--ink-3)}.cp-pulse-flags{display:flex;gap:var(--sp-2);margin-left:auto}.cp-bar{display:grid;grid-template-columns:minmax(72px,1fr) auto;align-items:center;gap:var(--sp-3);min-width:0}.cp-bar progress{width:100%;height:8px;overflow:hidden;border:0;border-radius:999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-3)}.cp-bar progress::-webkit-progress-bar{border-radius:999px;background:var(--surface-3)}.cp-bar progress::-webkit-progress-value{border-radius:999px;background:var(--accent)}.cp-bar progress::-moz-progress-bar{border-radius:999px;background:var(--accent)}.cp-bar.is-risk progress::-webkit-progress-value{background:var(--risk)}.cp-bar.is-risk progress::-moz-progress-bar{background:var(--risk)}.cp-bar.is-good progress::-webkit-progress-value{background:var(--good)}.cp-bar.is-good progress::-moz-progress-bar{background:var(--good)}.cp-bar-note{color:var(--ink-2);font-size:var(--t-xs);white-space:nowrap}.cp-bar-note b{color:var(--ink)}.cp-pulse-line{display:flex;align-items:baseline;gap:var(--sp-2);margin:0;min-width:0;font-size:var(--t-s)}.cp-now{flex:none;padding:1px var(--sp-2);border-radius:var(--r);background:var(--accent-soft);color:var(--accent);font:650 var(--t-xs)/1.5 var(--sans)}.cp-mobile-copy .cp-now-inline{display:inline;margin-right:var(--sp-2);padding:1px 6px;font-size:10px;background:var(--warn-soft);color:var(--warn)}.cp-pulse-chapter{overflow:hidden;color:var(--ink);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.cp-pulse-due{flex:none;margin-left:auto}.cp-todo{display:grid;gap:1px;margin:var(--sp-1) 0 0;padding:0;list-style:none}.cp-todo label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-2) 0;border-radius:var(--r);cursor:pointer;font-size:var(--t-s)}.cp-todo label:hover{background:var(--surface-2)}.cp-todo input{width:18px;height:18px;margin:0;accent-color:var(--accent)}.cp-todo input:disabled{cursor:not-allowed}.cp-todo label:has(input:disabled){cursor:default}.cp-todo-name{overflow:hidden;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.cp-todo-more{padding-left:calc(18px + var(--sp-3))}.cp-todo-more .btn{min-height:0;padding:var(--sp-1) 0;font-size:var(--t-s)}.cp-pulse-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-1)}.cp-pulse-last{margin-right:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-stage-fieldset,.cp-choice-fieldset{min-width:0;margin:0;padding:0;border:0}.cp-stage-fieldset>legend,.cp-choice-fieldset>legend{margin-bottom:var(--sp-2);color:var(--ink);font-weight:650}.cp-milestones{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--r);background:var(--surface-2)}.cp-milestone{position:relative;min-width:0;min-height:48px;padding:var(--sp-2);border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink-2);font:600 var(--t-s)/1.2 var(--sans);cursor:pointer;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}.cp-milestone:last-child{border-right:0}.cp-milestone:hover{background:var(--surface-3);color:var(--ink)}.cp-milestone[aria-pressed=true]{z-index:1;background:var(--accent-soft);color:var(--accent-ink, var(--accent));box-shadow:inset 0 -3px 0 var(--accent)}.cp-milestone:active{transform:translateY(1px)}.cp-sheet-stack{display:grid;gap:var(--sp-5)}.cp-choice-list{display:grid;gap:var(--sp-2)}.cp-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-3);align-items:start;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;min-height:52px}.cp-choice:has(input:checked){border-color:color-mix(in srgb,var(--accent) 58%,var(--line));background:var(--accent-soft)}.cp-choice input{margin-top:3px}.cp-choice strong{display:block;color:var(--ink)}.cp-choice span{color:var(--ink-2);font-size:var(--t-s)}.cp-notice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-3);align-items:start;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);color:var(--ink-2);font-size:var(--t-s)}.cp-notice strong{color:var(--ink)}.cp-archive-track{display:grid;justify-items:start;padding-top:var(--sp-4);border-top:1px solid var(--line)}.cp-archive-trigger{color:var(--risk)}.cp-archive-confirm{display:grid;width:100%;gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--risk-line);border-radius:var(--r);background:var(--risk-soft)}.cp-archive-confirm strong{color:var(--risk)}.cp-archive-confirm p{margin:3px 0 0;color:var(--ink-2);font-size:var(--t-s)}.cp-workspace{display:grid;gap:var(--sp-4);width:min(100%,1120px);margin-inline:auto}.cp-loading{padding-top:var(--sp-2)}.cp-overview-totals{display:flex;align-items:center;gap:var(--sp-5);min-height:48px;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-l);background:var(--surface-2);color:var(--ink-2);font-size:var(--t-s);overflow-x:auto}.cp-overview-totals span{min-width:max-content}.cp-overview-totals strong{margin-right:4px;color:var(--ink);font-size:var(--t-l);font-variant-numeric:tabular-nums}.cp-overview-totals .is-warn strong{color:var(--warn)}.cp-overview-totals .is-risk strong{color:var(--risk)}.cp-overview-totals .is-neutral strong{color:var(--accent)}.cp-nav-list{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-l);background:var(--line);box-shadow:var(--shadow-1)}.cp-nav-row{display:grid;grid-template-columns:auto minmax(14rem,1fr) minmax(7.5rem,auto) minmax(9.5rem,auto) auto;gap:var(--sp-4);align-items:center;min-height:78px;padding:var(--sp-3) var(--sp-4);background:var(--surface);color:var(--ink);text-decoration:none;transition:background-color .16s ease,transform .16s ease}.cp-nav-row+.cp-nav-row{border-top:1px solid var(--line)}.cp-nav-row:hover{background:var(--surface-2)}.cp-nav-row:active{transform:translateY(1px)}.cp-nav-row:focus-visible{position:relative;z-index:1;outline:2px solid var(--accent);outline-offset:-3px}.cp-nav-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent)}.cp-nav-icon.is-subject{background:var(--surface-2);color:var(--ink-2)}.cp-nav-identity{display:grid;gap:3px;min-width:0}.cp-nav-identity strong,.cp-nav-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-nav-identity strong{font-size:var(--t-m);font-weight:650;letter-spacing:-.008em}.cp-nav-identity small,.cp-nav-count small{color:var(--ink-3);font-size:var(--t-s)}.cp-nav-count{display:flex;align-items:baseline;color:var(--ink-2);white-space:nowrap}.cp-nav-count strong{margin-right:4px;color:var(--ink);font-variant-numeric:tabular-nums}.cp-nav-signal{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-width:max-content;color:var(--ink-2);font-size:var(--t-s);font-weight:600}.cp-nav-signal.is-warn{color:var(--warn)}.cp-nav-signal.is-risk{color:var(--risk)}.cp-nav-signal.is-good{color:var(--good)}.cp-nav-chevron{color:var(--ink-3);transition:transform .16s ease,color .16s ease}.cp-nav-row:hover .cp-nav-chevron{color:var(--accent);transform:translate(2px)}.cp-section-heading{display:flex;align-items:baseline;gap:var(--sp-2)}.cp-section-heading h2{margin:0;color:var(--ink);font:650 var(--t-l)/1.25 var(--sans);letter-spacing:-.012em}.cp-section-heading>span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding-inline:6px;border-radius:7px;background:var(--surface-2);color:var(--ink-2);font-size:var(--t-xs);font-variant-numeric:tabular-nums}.cp-subject-owner{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;color:var(--ink-2);font-size:var(--t-s);text-overflow:ellipsis;white-space:nowrap}.cp-tracker{gap:var(--sp-5)}.cp-track-switcher{display:flex;align-items:center;gap:3px;width:max-content;max-width:100%;overflow-x:auto;padding:3px;border-radius:10px;background:var(--surface-2)}.cp-track-switcher a{display:inline-flex;align-items:center;gap:6px;min-width:max-content;padding:7px 12px;border-radius:7px;color:var(--ink-2);font-size:var(--t-s);font-weight:600;text-decoration:none}.cp-track-switcher small{color:var(--ink-3);font-size:10px;font-weight:650}.cp-track-switcher small.is-warn{color:var(--warn)}.cp-track-switcher small.is-risk{color:var(--risk)}.cp-track-switcher a:hover{color:var(--ink)}.cp-track-switcher a[aria-current=page]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-1)}.cp-tracker-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(10rem,.34fr);gap:var(--sp-5) var(--sp-7);align-items:start;padding:var(--sp-6);border:1px solid var(--accent-line);border-radius:var(--r-xl);background:color-mix(in srgb,var(--accent-soft) 46%,var(--surface))}.cp-tracker-hero.is-no-baseline .cp-current-chapter{grid-column:1 / -1}.cp-current-chapter h2{max-width:28ch;margin:var(--sp-1) 0 var(--sp-3);color:var(--ink);font:680 clamp(1.35rem,2.2vw,1.8rem)/1.18 var(--sans);letter-spacing:-.025em;text-wrap:balance}.cp-current-rail{display:flex;align-items:center;gap:var(--sp-2);max-width:23rem;margin-bottom:var(--sp-3)}.cp-current-rail-line{display:grid;grid-template-columns:repeat(5,minmax(18px,1fr));gap:3px;flex:1}.cp-current-rail-line i{height:4px;border-radius:999px;background:var(--surface-3)}.cp-current-rail-line i.is-reached{background:var(--accent)}.cp-current-rail strong{color:var(--accent);font-size:var(--t-xs);font-weight:650;white-space:nowrap}.cp-current-chapter .cp-signal-row{justify-content:flex-start}.cp-tracker-completion{display:grid;grid-template-columns:1fr auto;gap:var(--sp-2);align-items:baseline;min-width:0;color:var(--ink-3);font-size:var(--t-xs)}.cp-tracker-completion strong{color:var(--ink);font-size:var(--t-s)}.cp-tracker-completion progress{grid-column:1 / -1;width:100%;height:7px;overflow:hidden;border:0;border-radius:999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-3)}.cp-tracker-completion progress::-webkit-progress-bar{background:var(--surface-3)}.cp-tracker-completion progress::-webkit-progress-value{border-radius:999px;background:var(--accent)}.cp-tracker-completion progress::-moz-progress-bar{border-radius:999px;background:var(--accent)}.cp-tracker-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-column:1 / -1;gap:var(--sp-3);margin:0;padding-top:var(--sp-4);border-top:1px solid var(--accent-line)}.cp-tracker-facts.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}.cp-tracker-facts div{min-width:0}.cp-tracker-facts dt{display:flex;align-items:center;gap:5px;color:var(--ink-3);font-size:var(--t-xs);font-weight:600}.cp-tracker-facts dd{overflow:hidden;margin:4px 0 0;color:var(--ink);font-size:var(--t-s);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.cp-tracker-actions{display:flex;grid-column:1 / -1;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap}.cp-action-note{display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);font-size:var(--t-s)}.cp-blocker-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-3);align-items:start;padding:var(--sp-3) var(--sp-4);border:1px solid var(--risk-line);border-radius:var(--r-l);background:var(--risk-soft);color:var(--risk)}.cp-blocker-note span{display:grid;gap:2px;color:var(--ink-2);font-size:var(--t-s)}.cp-blocker-note strong{color:var(--risk)}.cp-blocker-note small{color:var(--ink-3)}.cp-plan-view{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface)}.cp-plan-view>.cp-section-heading{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.cp-chapter-path{margin:0;padding:0;list-style:none}.cp-chapter-path li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-3);align-items:center;min-height:64px;padding:var(--sp-2) var(--sp-5)}.cp-chapter-path li+li{border-top:1px solid var(--line)}.cp-chapter-path li.is-current{background:var(--accent-soft)}.cp-chapter-path li.is-target:not(.is-current):not(.is-done){background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface))}.cp-chapter-node{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line-2);border-radius:50%;background:var(--surface);color:var(--ink-2);font:650 var(--t-xs)/1 var(--sans);font-variant-numeric:tabular-nums}.cp-chapter-path .is-current .cp-chapter-node{border-color:var(--accent);background:var(--accent);color:var(--accent-on)}.cp-chapter-path .is-done .cp-chapter-node{border-color:var(--good);background:var(--good-soft);color:var(--good)}.cp-chapter-path .is-skipped .cp-chapter-node{border-color:var(--warn);background:var(--warn-soft);color:var(--warn)}.cp-chapter-path .is-target:not(.is-current):not(.is-done) .cp-chapter-node{border-color:var(--accent-line);color:var(--accent)}.cp-chapter-copy{display:grid;gap:3px;min-width:0}.cp-chapter-copy strong{overflow:hidden;color:var(--ink);font-size:var(--t-s);font-weight:620;text-overflow:ellipsis;white-space:nowrap}.cp-chapter-copy small{color:var(--ink-3);font-size:var(--t-xs)}.cp-chapter-state{color:var(--ink-3);font-size:var(--t-xs);font-weight:600;white-space:nowrap}.cp-chapter-path .is-current .cp-chapter-state{color:var(--accent)}.cp-chapter-path .is-done .cp-chapter-state{color:var(--good)}.cp-chapter-path .is-skipped .cp-chapter-state{color:var(--warn)}.cp-chapter-path .is-target:not(.is-current):not(.is-done) .cp-chapter-state{color:var(--accent)}.cp-tracker-empty{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-4);align-items:center;padding:var(--sp-7) var(--sp-5)}.cp-tracker-empty div{display:grid;gap:3px}.cp-tracker-empty small{max-width:58ch;color:var(--ink-2);font-size:var(--t-s)}.cp-plan-loading{padding:var(--sp-4)}.cp-readonly{display:flex;align-items:center;gap:var(--sp-2);width:min(100%,1120px);margin:0 auto var(--sp-4);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);color:var(--ink-2);font-size:var(--t-s)}.cp-readonly strong{color:var(--ink)}.cp-optional{color:var(--ink-3);font-size:var(--t-xs);font-weight:500}.cp-filter-note{color:var(--ink-3);font-size:var(--t-xs);white-space:nowrap}.cp-filter-line>:first-child{min-width:0;flex:1 1 auto}.cp-history{margin:0;padding:0;list-style:none}.cp-history li{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}.cp-history li:last-child{border-bottom:0}.cp-plan-shell{display:grid;gap:var(--sp-4)}.cp-plan-head{align-items:flex-start}.cp-plan-head p{max-width:62ch;margin:var(--sp-1) 0 0;color:var(--ink-2);font-size:var(--t-s)}.cp-plan-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-3);align-items:end}.cp-plan-track-head{display:flex;align-items:end;justify-content:space-between;gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line)}.cp-plan-track-head>.fld{flex:1 1 20rem;margin:0}.cp-plan-track-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);flex-wrap:wrap}.cp-plan-scroll{max-width:100%;overflow-x:auto;border-radius:var(--r)}.cp-plan-table{table-layout:fixed;width:100%}.cp-plan-table th:nth-child(1),.cp-plan-table td:nth-child(1){width:8%}.cp-plan-table th:nth-child(2),.cp-plan-table td:nth-child(2){width:32%}.cp-plan-table th:nth-child(3),.cp-plan-table td:nth-child(3){width:14%}.cp-plan-table th:nth-child(4),.cp-plan-table td:nth-child(4){width:12%}.cp-plan-table th:nth-child(5),.cp-plan-table td:nth-child(5){width:14%}.cp-plan-table th:nth-child(6),.cp-plan-table td:nth-child(6){width:14%}.cp-plan-table th:nth-child(7),.cp-plan-table td:nth-child(7){width:6%}.cp-plan-table .fld{margin:0}.cp-plan-table .inp{min-width:0}.cp-plan-order{display:flex;justify-content:center;gap:2px}.cp-plan-order button{min-width:44px;min-height:44px}.cp-plan-empty{padding:var(--sp-7) var(--sp-4);border:1px dashed var(--line-strong);border-radius:var(--r);text-align:center}.cp-plan-empty strong{display:block;margin-bottom:var(--sp-1)}@media (max-width: 920px){.cp-batch-row{grid-template-columns:auto minmax(10rem,1fr) auto auto auto}.cp-subject-row{grid-template-columns:auto minmax(10rem,1fr) auto auto}.cp-subject-owner{display:none}.cp-tracker-hero{gap:var(--sp-5);padding:var(--sp-5)}}@media (max-width: 640px),(max-height: 500px) and (orientation: landscape){.cp-home{margin:0;padding:0;border-radius:var(--r-l)}.cp-home-head{min-height:52px;padding:0 var(--sp-4);align-items:center;border-bottom:1px solid var(--line)}.cp-home-head h3{font-size:var(--t-base)}.cp-home-head .chip{background:var(--risk-soft);color:var(--risk)}.cp-pulse-list{gap:0;margin:0;border-top:0;background:var(--surface)}.cp-pulse-row{padding:var(--sp-4)}.cp-mobile-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);min-height:73px;padding:var(--sp-3) var(--sp-4);background:var(--surface);border-bottom:1px solid var(--line)}.cp-mobile-code{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r);color:var(--accent);background:var(--accent-soft);font:700 var(--t-s)/1 var(--sans)}.cp-mobile-row.is-late .cp-mobile-code{color:var(--risk);background:var(--risk-soft)}.cp-mobile-copy{min-width:0}.cp-mobile-copy strong,.cp-mobile-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-mobile-copy strong{color:var(--ink);font:650 var(--t-s)/1.25 var(--sans)}.cp-mobile-copy span{margin-top:4px;color:var(--ink-2);font-size:10.5px;line-height:1.3}.cp-mobile-action.btn.sm{min-width:64px;min-height:40px;padding-inline:var(--sp-3)}.cp-mobile-footer{min-height:46px;padding:0 var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);color:var(--good);background:color-mix(in oklch,var(--good-soft) 35%,var(--surface));font:650 10.5px/1.2 var(--sans)}.cp-mobile-footer a{color:var(--accent);font-weight:700;text-decoration:none}.cp-home .cp-notice{margin:var(--sp-4)!important}.cp-milestones{grid-template-columns:1fr}.cp-milestone{border-right:0;border-bottom:1px solid var(--line);text-align:left;padding-inline:var(--sp-3)}.cp-milestone:last-child{border-bottom:0}.cp-milestone[aria-pressed=true]{box-shadow:inset 3px 0 0 var(--accent)}.cp-overview-totals{gap:var(--sp-4);padding-inline:var(--sp-3)}.cp-overview-totals strong{font-size:var(--t-m)}.cp-nav-row{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--sp-2) var(--sp-3);min-height:82px;padding:var(--sp-3)}.cp-nav-icon{grid-column:1;grid-row:1 / span 3;width:36px;height:36px}.cp-nav-identity{grid-column:2;grid-row:1}.cp-nav-count{grid-column:2;grid-row:2}.cp-nav-signal{grid-column:2;grid-row:3}.cp-subject-row .cp-nav-signal{grid-row:2}.cp-nav-chevron{grid-column:3;grid-row:1 / span 3}.cp-tracker{gap:var(--sp-4)}.cp-tracker-hero{grid-template-columns:1fr;gap:var(--sp-4);padding:var(--sp-4);border-radius:var(--r-l)}.cp-tracker-completion{max-width:20rem}.cp-tracker-facts,.cp-tracker-facts.is-two{grid-template-columns:1fr;gap:var(--sp-3)}.cp-tracker-actions{justify-content:flex-start}.cp-plan-view>.cp-section-heading{padding-inline:var(--sp-4)}.cp-chapter-path li{grid-template-columns:auto minmax(0,1fr);gap:var(--sp-2);padding-inline:var(--sp-4)}.cp-chapter-node{grid-column:1;grid-row:1 / span 2}.cp-chapter-copy{grid-column:2;grid-row:1}.cp-chapter-state{grid-column:2;grid-row:2;white-space:normal}.cp-chapter-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-tracker-empty{grid-template-columns:auto minmax(0,1fr);padding:var(--sp-5) var(--sp-4)}.cp-tracker-empty>:last-child{grid-column:1 / -1;justify-self:start}.cp-history li{grid-template-columns:1fr;gap:var(--sp-1)}.cp-plan-toolbar{grid-template-columns:1fr}.cp-plan-track-head{align-items:stretch;flex-direction:column}.cp-plan-track-actions{justify-content:flex-start}.cp-filter-line{align-items:stretch;flex-wrap:wrap}.cp-filter-line>:last-child{min-height:44px}.cp-readonly{flex-wrap:wrap;padding-inline:var(--sp-3)}.cp-plan-table{min-width:760px}}@media (prefers-reduced-motion: reduce){.cp-milestone,.cp-nav-row,.cp-nav-chevron{transition:none}}.cp-ladder{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}.cp-ladder-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-2);border-bottom:1px solid var(--line);font:650 var(--t-s)/1.3 var(--sans)}.cp-ladder-late{color:var(--risk);font-weight:650}.cp-ladder-row{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface)}.cp-ladder-row+.cp-ladder-row{border-top:1px solid var(--line)}.cp-ladder-row.is-now{background:var(--warn-soft)}.cp-ladder-row.is-done{background:color-mix(in oklch,var(--accent-soft) 45%,var(--surface))}.cp-ladder-spine{position:relative;flex:none;width:14px;display:flex;justify-content:center}.cp-ladder-spine:before{content:"";position:absolute;top:-14px;bottom:-14px;width:2px;background:var(--line)}.cp-ladder-row:first-child .cp-ladder-spine:before{top:9px}.cp-ladder-row.is-last .cp-ladder-spine:before{bottom:auto;height:9px}.cp-ladder-spine i{position:relative;width:12px;height:12px;margin-top:3px;border-radius:50%;background:var(--surface);border:2px solid var(--line-2)}.cp-ladder-row.is-done .cp-ladder-spine i,.cp-ladder-row.is-skipped .cp-ladder-spine i{background:var(--accent);border-color:var(--accent)}.cp-ladder-row.is-now .cp-ladder-spine i{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.cp-ladder-copy{flex:1;min-width:0}.cp-ladder-name{display:block;font:600 var(--t-s)/1.3 var(--sans)}.cp-ladder-row.is-done .cp-ladder-name{color:var(--ink-2)}.cp-ladder-line2{display:flex;align-items:center;gap:var(--sp-3);margin-top:3px}.cp-ladder-meta{flex:1;min-width:0;font:600 var(--t-xs)/1.4 var(--sans);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-ladder-row.is-late .cp-ladder-meta{color:var(--risk)}.cp-ladder-row.is-now .cp-ladder-meta{color:var(--warn)}.cp-ladder-dots{display:flex;gap:2px;flex:none}.cp-dot{width:26px;height:34px;padding:0;border:0;background:none;display:grid;place-items:center;cursor:pointer}.cp-dot i{width:12px;height:12px;border-radius:50%;background:var(--surface);border:1.5px solid var(--line-2);transition:background .12s,border-color .12s,transform .12s}.cp-dot:hover i{transform:scale(1.15);border-color:var(--accent)}.cp-dot.is-filled i{background:var(--accent);border-color:var(--accent)}.cp-dot.is-filled.is-part i{background:var(--accent-line);border-color:var(--accent-line)}.cp-dot:disabled{cursor:default;opacity:.5}.cp-dot:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}@media (max-width: 640px){.cp-ladder-row{padding:var(--sp-3)}.cp-ladder-dots{gap:0}.cp-dot{width:24px}}
