:root{--bg:#faf8f6;--surface:#fff;--surface-sunken:#fdfcfb;--surface-raised:#f0ebe6;--border:#e7e2dd;--border-strong:#d8d1ca;--border-subtle:#f0ebe6;--border-faint:#f3efeb;--text:#1f1b18;--text-secondary:#4a423c;--text-muted:#6b625b;--text-faint:#948a82;--text-disabled:#b5aba2;--accent:#8c2f39;--accent-hover:#6e242c;--accent-tint:#f7edee;--accent-contrast:#fff;--owed:#b3261e;--owed-bg:#fdf3f2;--owed-border:#e8c9c6;--settled:#2e6b4f;--settled-bg:#eef5f1;--settled-border:#c7dcd1;--partial:#a16207;--partial-bg:#fdf9f0;--partial-border:#eddcbb;--partial-text:#7a4b18;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs:10.5px;--text-sm:11.5px;--text-base:13px;--text-md:13.5px;--text-lg:17px;--text-xl:20px;--text-2xl:23px;--radius:8px;--radius-sm:5px;--radius-md:6px;--row-compact:31px;--row-comfortable:48px;--control-compact:34px;--control-comfortable:44px;--sidebar-width:216px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-base);-webkit-font-smoothing:antialiased}.tabular{font-variant-numeric:tabular-nums}a{color:var(--accent)}a:hover{color:var(--accent-hover)}@media print{body{background:#fff}}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--accent);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar__brand{border-bottom:1px solid #ffffff24;align-items:center;gap:10px;padding:16px 16px 14px;display:flex}.sidebar__school{font-size:var(--text-base);color:#fff;letter-spacing:.01em;font-weight:650}.sidebar__place{font-size:var(--text-xs);color:#ffffff9e;letter-spacing:.04em}.sidebar__nav{flex-direction:column;gap:1px;padding:10px 8px;display:flex;overflow-y:auto}.navitem{border-radius:var(--radius-md);color:#ffffffc7;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:12.5px;text-decoration:none;display:flex}.navitem:hover{color:#fff;background:#ffffff14}.navitem--on{color:#fff;background:#ffffff29;font-weight:600;box-shadow:inset 2px 0 #fff}.navitem--on:hover{background:#ffffff29}.navsub{flex-direction:column;gap:1px;padding:2px 0 2px 30px;display:flex}.navsub a{border-radius:var(--radius-sm);color:#ffffffa8;padding:5px 10px;font-size:12px;text-decoration:none}.navsub a:hover{color:#fff}.navsub a.on{color:#fff;background:#ffffff1a}.sidebar__user{border-top:1px solid #ffffff24;align-items:center;gap:9px;margin-top:auto;padding:12px 16px;display:flex}.avatar{width:26px;height:26px;font-size:var(--text-xs);color:#fff;background:#fff3;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;font-weight:650;display:flex}.sidebar__name{font-size:var(--text-sm);color:#fff}.sidebar__role{color:#fff9;text-transform:capitalize;font-size:10px}.sidebar__signout{color:#fff9;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;margin-left:auto;padding:4px;display:flex}.sidebar__signout:hover{color:#fff;background:#ffffff1f}.main{flex-direction:column;flex-grow:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:5;justify-content:space-between;align-items:center;gap:16px;padding:11px 20px;display:flex;position:sticky;top:0}.crumb{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.title{font-size:var(--text-lg);letter-spacing:-.01em;margin:3px 0 0;font-weight:650}.toolbar{align-items:center;gap:8px;display:flex}.page{flex-direction:column;gap:14px;padding:14px 20px 28px;display:flex}.control,.button{height:var(--control-compact);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text-secondary);cursor:pointer;align-items:center;gap:7px;padding:0 12px;font-family:inherit;font-size:12.5px;display:inline-flex}.control:hover,.button:hover{border-color:var(--text-faint)}.button--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.button--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.button:disabled,.button--primary:disabled{opacity:.55;cursor:default}select.control{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:calc(100% - 15px) calc(50% + 1px),calc(100% - 10px) calc(50% + 1px);background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel__head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.panel__title{font-size:12.5px;font-weight:650}.panel__note{font-size:var(--text-sm);color:var(--text-faint);margin-top:2px}.tiles{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left:3px solid var(--tile-bar,var(--border-strong));flex-direction:column;gap:6px;padding:13px 15px;display:flex}.tile__label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.tile__value{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--tile-colour,var(--text));font-weight:680}.tile__sub{font-size:var(--text-sm);color:var(--text-muted)}.table{border-collapse:collapse;width:100%}.table th{text-align:left;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--border);background:var(--surface-sunken);white-space:nowrap;padding:8px 14px;font-size:10px;font-weight:600}.table td{height:var(--row-compact);border-bottom:1px solid var(--border-faint);color:var(--text-secondary);padding:0 14px;font-size:12.5px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-sunken)}.num{text-align:right;font-variant-numeric:tabular-nums}.strong{color:var(--text);font-weight:600}.muted{color:var(--text-faint)}.owed{color:var(--owed);font-weight:650}.settled{color:var(--settled)}.chip{font-size:var(--text-xs);letter-spacing:.02em;border:1px solid var(--partial-border);background:var(--partial-bg);color:var(--partial-text);white-space:nowrap;border-radius:20px;align-items:center;padding:1px 7px;font-weight:600;display:inline-flex}.chip--sponsor{border-color:var(--settled-border);background:var(--settled-bg);color:var(--settled)}.chip--warn{border-color:var(--owed-border);background:var(--owed-bg);color:var(--owed)}.chip--ok{border-color:var(--settled-border);background:var(--settled-bg);color:var(--settled)}.chip--filter{cursor:pointer;height:var(--control-compact);border-radius:var(--radius-md);border-color:var(--border-strong);background:var(--surface);color:var(--text-secondary);padding:0 12px;font-family:inherit}.chip--filter:hover{border-color:var(--text-faint)}.chip--filter-on{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.filters{border-bottom:1px solid var(--border);background:var(--surface-sunken);flex-wrap:wrap;align-items:center;gap:8px;padding:11px 14px;display:flex}.filters .field-input{height:var(--control-compact);font-size:12.5px}.fields{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 18px;padding:14px;display:grid}.field-row__label{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.field-row__value{color:var(--text);margin-top:3px;font-size:12.5px}.field-row__value--warn{color:var(--owed);font-weight:600}.field-row__value--faint{color:var(--text-faint)}.notice{border-radius:var(--radius-md);border:1px solid var(--owed-border);background:var(--owed-bg);color:var(--owed);padding:10px 12px;font-size:12.5px}.empty{text-align:center;color:var(--text-faint);padding:40px 20px;font-size:12.5px}.skeleton{text-align:center;color:var(--text-disabled);padding:40px 20px;font-size:12.5px}.signin{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.signin__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:360px;padding:28px}.signin__mark{border-radius:var(--radius);background:var(--accent);justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:16px;display:flex}.signin h1{font-size:var(--text-xl);letter-spacing:-.01em;margin:0 0 4px;font-weight:650}.signin p{color:var(--text-muted);margin:0 0 20px;font-size:12.5px}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:600}.field input{height:var(--control-comfortable);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-family:inherit;font-size:var(--text-md);color:var(--text);padding:0 12px}.field input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.signin .button--primary{width:100%;height:var(--control-comfortable);font-size:var(--text-md);justify-content:center}@media print{.sidebar,.topbar .toolbar,.navitem{display:none}.page{padding:0}.panel{border:0}.table td,.table th{border-color:var(--border-strong)}}.field-input,.tender input,.field input{height:var(--control-comfortable);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);font-family:inherit;font-size:var(--text-md);color:var(--text);width:100%;padding:0 12px}.field-input:focus,.tender input:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.tender{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:14px;display:grid}.tender .control{height:var(--control-comfortable);width:100%}.tender .field{margin-bottom:0}.tender__foot{border-top:1px solid var(--border);background:var(--surface-sunken);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:12.5px;display:flex}.tender__foot .button{height:var(--control-comfortable)}.alloc{text-align:right;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-variant-numeric:tabular-nums;width:110px;height:28px;color:var(--text);padding:0 8px;font-family:inherit;font-size:12.5px}.alloc:focus{outline:2px solid var(--accent);outline-offset:-1px}.categories{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:14px;display:grid}.category{text-align:left;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;flex-direction:column;gap:3px;padding:12px 14px;font-family:inherit;display:flex}.category:hover{border-color:var(--text-faint)}.category--on{border-color:var(--accent);background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent)}.category__name{font-size:var(--text-md);color:var(--text);font-weight:650}.category__due{font-size:var(--text-xl);letter-spacing:-.02em;color:var(--owed);font-weight:680}.category__parts{font-size:var(--text-sm);color:var(--text-muted)}.category__split{font-size:var(--text-sm);color:var(--text-muted);flex-direction:column;gap:2px;margin-top:2px;display:flex}.category__split>span{justify-content:space-between;gap:8px;display:flex}.category--settled .category__due{color:var(--text-faint)}.category__split b{color:var(--text-secondary);font-weight:640}.sponsored-note{border-bottom:1px solid var(--border);background:var(--settled-bg);color:var(--text-secondary);flex-direction:column;gap:4px;padding:10px 14px;font-size:12.5px;display:flex}.category__alloc{width:100%;height:var(--control-comfortable);font-size:var(--text-md);margin-top:8px}.categories>.category{cursor:default}.areas{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.area{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:14px 16px;text-decoration:none;display:block}a.area:hover{border-color:var(--accent);background:var(--accent-tint)}.area--coming{background:var(--surface-sunken)}.area__name{align-items:center;gap:8px;font-size:12.5px;font-weight:650;display:flex}.area__note{font-size:var(--text-sm);color:var(--text-muted);margin-top:5px;line-height:1.5}@media print{.sidebar,.topbar,.toolbar{display:none}.page{gap:0;padding:0}.panel{border:0;border-radius:0}.sheet{break-after:page}.sheet:last-child{break-after:auto}}.support-banner{z-index:50;background:var(--owed);color:#fff;padding:9px 20px;font-size:.9rem;position:fixed;inset:0 0 auto}.shell--support{padding-top:38px}.support-banner a{color:#fff;text-decoration:underline}.confirm{border-top:1px solid var(--border);background:var(--surface-sunken);padding:16px 18px}.confirm__title{margin-bottom:10px;font-size:1.05rem;font-weight:600}.confirm__list{flex-direction:column;gap:6px;margin:0 0 14px;padding-left:18px;font-size:.94rem;display:flex}.confirm__foot{justify-content:flex-end;gap:8px;display:flex}.num-input{text-align:right;width:100px}.letterhead{display:none}@media print{.letterhead{margin-bottom:16px;display:block}.letterhead__name{letter-spacing:.01em;font-size:1.5rem;font-weight:700}.letterhead__motto{margin-top:2px;font-size:.9rem;font-style:italic}.letterhead__meta{flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:.82rem;display:flex}.letterhead__rule{border-top:2px solid;margin:10px 0 8px}.letterhead__title{justify-content:space-between;align-items:baseline;font-size:1rem;font-weight:600;display:flex}.letterhead__title .tabular{font-size:.82rem;font-weight:400}thead{display:table-header-group}tr{break-inside:avoid}}.sidebar__badge{object-fit:contain;background:#fff;border-radius:6px;flex-shrink:0;width:34px;height:34px;padding:2px}.signin__badge{object-fit:contain;width:96px;height:96px;margin:0 auto 14px;display:block}.signin__lede{color:var(--text-muted);margin:-4px 0 18px;font-size:.94rem}.signin__aside{text-align:center;margin-top:14px;font-size:.88rem}.signin__foot{width:100%;max-width:380px;color:var(--text-muted);justify-content:space-between;gap:16px;margin:14px auto 0;padding:0 4px;font-size:.78rem;display:flex}.logo-picker{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.logo-picker__frame{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-sunken);flex-shrink:0;justify-content:center;align-items:center;width:96px;height:96px;font-size:.8rem;display:flex;overflow:hidden}.logo-picker__frame img{object-fit:contain;max-width:100%;max-height:100%}.logo-picker__controls{flex-direction:column;flex:260px;gap:10px;display:flex}@media print{.letterhead__badge{float:right;object-fit:contain;max-width:120px;max-height:64px;margin-left:16px}}.op{background:var(--bg);min-height:100vh}.op-loading{min-height:100vh;color:var(--text-disabled);justify-content:center;align-items:center;display:flex}.op-signin{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.op-signin__card{flex-direction:column;gap:14px;width:100%;max-width:380px;padding:26px;display:flex}.op-signin__mark{letter-spacing:-.02em;font-weight:680;font-size:var(--text-xl);color:var(--accent)}.op__bar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:11px 20px;display:flex}.op__brand{letter-spacing:-.01em;font-weight:650}.op__brand-note{color:var(--accent);font-weight:500}.op__who{font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:12px;display:flex}.op__roles{background:var(--surface-raised);color:var(--text-secondary);border-radius:4px;padding:2px 8px}.op__page{flex-direction:column;gap:14px;padding:16px 20px;display:flex}.op__head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.op__title{font-size:var(--text-lg);letter-spacing:-.01em;margin:0 0 2px;font-weight:650}.op-link{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:550}.op-link:hover{color:var(--accent)}.op-row--suspended{background:var(--owed-bg)}.op-detail{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;padding:14px 4px;display:grid}.op-detail__block{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.op-detail__block--grave{border-color:var(--owed-border);background:var(--owed-bg)}.op-detail__row{gap:8px;width:100%;display:flex}.op-detail__row input{flex-grow:1;min-width:0}.button--danger{border-color:var(--owed-border);background:var(--owed);color:#fff}.op-provision .tender{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:14px;display:grid}.op__nav{border-bottom:1px solid var(--border);background:var(--surface);gap:4px;padding:0 24px;display:flex}.op__tab{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px}.op__tab--on{color:var(--text);border-bottom-color:var(--accent)}.op-filters{gap:16px;margin-bottom:16px;padding:14px;display:flex}.op-log td{vertical-align:top}.op-tag{border:1px solid var(--border);background:var(--surface-sunken);color:var(--text-muted);border-radius:999px;padding:1px 6px;font-size:.78rem;display:inline-block}.op-tag--write{border-color:var(--accent);color:var(--accent)}.op-tag--auth{border-color:var(--owed-border);color:var(--owed)}.op-tag--us{border-color:var(--owed-border);background:var(--owed-bg);color:var(--owed);margin-left:6px}.op-support-live{border:1px solid var(--owed-border);background:var(--owed-bg);border-radius:var(--radius);flex-direction:column;gap:8px;width:100%;padding:10px 12px;display:flex}.op-support-history{width:100%;color:var(--text-muted);font-size:.86rem}.op-support-history ul{flex-direction:column;gap:4px;margin:8px 0 0;padding-left:18px;display:flex}.op-plan{margin-bottom:20px}.op-plan--archived{opacity:.6}.op-plan__add{border-top:1px solid var(--border);background:var(--surface-sunken);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.op-plan__add input{min-width:140px}.op-subscription{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.op-module{align-items:center;gap:8px;font-size:.9rem;display:flex}.op-shape-preview{border-top:1px solid var(--border);background:var(--surface-sunken);padding:12px 14px;font-size:.9rem}
