:root{--ink: #1a1f2b;--ink-body: #414956;--ink-soft: #5a6270;--ink-subtle: #7b8491;--accent: #2f5c53;--on-accent: #ffffff;--surface: #ffffff;--surface-muted: #f4f4f5;--surface-hover: #f8faf9;--bg: #f3f5f4;--border: #e2e6e4;--border-strong: #cdd4d0;--danger: #92221b;--success: #1b5e20;--warning: #6b3a00;--warning-accent: #f3883b;--priority: #e25507;--info: #1f4f8a;--action-primary: #4b5563;--action-primary-hover: #3f4854;--control-active: #2296f3;--surface-danger: #fdecea;--surface-success: #e8f5e9;--surface-warning: #fff3bf;--surface-info: #e8f1ff;--surface-priority: #faeee9;--surface-success-soft: #f6faf7;--border-success-soft: #d8e6da;--surface-warning-soft: #fffdf4;--border-warning-soft: #e4cf86;--surface-danger-soft: #fffafa;--border-danger-soft: #e0b6b2;--surface-accent-soft: #e9f0ee;--border-accent-soft: #d4e4df;--border-info: #1f4f8a;--border-priority: #e25507;--surface-selection: rgba(59, 130, 246, .15);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--control-height: 2.25rem;--shadow-sm: 0 1px 2px rgba(26, 31, 43, .05);--shadow-md: 0 8px 24px rgba(26, 31, 43, .12);--shadow-lg: 0 12px 34px rgba(26, 31, 43, .22);--shadow-tab: 0 -2px 5px rgba(26, 31, 43, .05);--scrim: rgba(26, 31, 43, .45);--scrim-strong: rgba(26, 31, 43, .62);--focus-ring: var(--accent);--focus-ring-width: 2px;--focus-ring-offset: 2px;font-family:Segoe UI,system-ui,-apple-system,sans-serif}[data-tone=neutral]{--tone-fg: var(--ink-soft);--tone-bg: var(--surface-muted);--tone-border: var(--border-strong);--tone-accent: var(--border-strong);--tone-bg-soft: var(--surface-hover);--tone-border-soft: var(--border)}[data-tone=info]{--tone-fg: var(--info);--tone-bg: var(--surface-info);--tone-border: var(--info);--tone-accent: var(--info);--tone-bg-soft: var(--surface-info);--tone-border-soft: var(--border-info)}[data-tone=accent]{--tone-fg: var(--accent);--tone-bg: var(--surface-accent-soft);--tone-border: var(--border-accent-soft);--tone-accent: var(--accent);--tone-bg-soft: var(--surface-accent-soft);--tone-border-soft: var(--border-accent-soft)}[data-tone=success]{--tone-fg: var(--success);--tone-bg: var(--surface-success);--tone-border: var(--success);--tone-accent: var(--success);--tone-bg-soft: var(--surface-success-soft);--tone-border-soft: var(--border-success-soft)}[data-tone=warning]{--tone-fg: var(--warning);--tone-bg: var(--surface-warning);--tone-border: var(--warning);--tone-accent: var(--warning-accent);--tone-bg-soft: var(--surface-warning-soft);--tone-border-soft: var(--border-warning-soft)}[data-tone=priority]{--tone-fg: var(--priority);--tone-bg: var(--surface-priority);--tone-border: var(--priority);--tone-accent: var(--priority);--tone-bg-soft: var(--surface-priority);--tone-border-soft: var(--border-priority)}[data-tone=danger]{--tone-fg: var(--danger);--tone-bg: var(--surface-danger);--tone-border: var(--danger);--tone-accent: var(--danger);--tone-bg-soft: var(--surface-danger-soft);--tone-border-soft: var(--border-danger-soft)}*{box-sizing:border-box}.button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:var(--control-height);padding:.5rem .8rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem;font-weight:500;line-height:1.2;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .15s ease,background .15s ease,color .15s ease}.button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-hover)}.button:focus-visible,:where(input:not([type=checkbox],[type=radio]),select,textarea):focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}.button:disabled{opacity:.55;cursor:not-allowed}.button--primary{border-color:var(--action-primary);background:var(--action-primary);color:var(--on-accent);font-weight:600}.button--primary:hover:not(:disabled){border-color:var(--action-primary-hover);background:var(--action-primary-hover)}.button--secondary{border-color:var(--border);background:var(--surface)}.button--subtle{border-color:transparent;background:transparent;box-shadow:none}.button--danger{border-color:var(--border-danger-soft);background:var(--surface);color:var(--danger)}.button--warning{border-color:var(--border-warning-soft);background:var(--surface-warning);color:var(--warning)}.button--compact{min-height:1.9rem;padding:.35rem .65rem;font-size:.82rem}:where(input:not([type=checkbox],[type=radio]),select,textarea){border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit}.surface-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.surface-card--muted{border-color:transparent;border-radius:var(--radius-xl);background:var(--surface-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--scrim)}.modal{width:100%;max-width:28rem;padding:1.25rem 1.5rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.modal h3{margin:0 0 .6rem}.modal>p{margin:0 0 .6rem;color:var(--ink-soft);font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.surface-card--tone{border-color:var(--tone-border-soft, var(--border));background:var(--tone-bg-soft, var(--surface))}.pill{display:inline-flex;align-items:center;gap:.3rem;width:fit-content;padding:.15rem .6rem;border:1px solid var(--tone-border, var(--border));border-radius:var(--radius-pill);background:var(--tone-bg, var(--surface));color:var(--tone-fg, var(--ink-soft));font-size:.75rem;font-weight:600;line-height:1.2;white-space:nowrap;vertical-align:middle}.pill>i{flex:none;width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.pill--strong{font-weight:700}.pill--compact{padding:.1rem .4rem}.pill--collapsible{display:none}.tonal[data-tone]{border-color:var(--tone-border, var(--border));background:var(--tone-bg, var(--surface));color:var(--tone-fg, var(--ink))}body{margin:0;background:var(--bg);color:var(--ink)}.loading-screen,.login-screen{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--surface);padding:3rem;border-radius:var(--radius-lg);border:1px solid var(--border);text-align:center;max-width:360px}.login-card h1{margin-top:0;font-size:1.4rem}.login-card p{color:var(--ink-soft);margin-bottom:2rem}.login-button{text-decoration:none}.dashboard{--page-gutter: 1.5rem;max-width:2200px;margin:0 auto;padding:2rem var(--page-gutter) 0;display:flex;flex-direction:column;min-height:100vh}.dashboard-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-bottom:.5rem}.dashboard-header h1{font-size:3.375rem;margin:0;text-align:center}.header-brand{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;justify-self:start}.logo{box-sizing:content-box;height:135px;width:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.4rem .8rem}.header-right{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.user-name{color:var(--ink-soft);font-size:.9rem}.logout-button{color:var(--ink-soft)}.app-version{flex-basis:100%;text-align:right;margin-top:-.35rem;color:var(--ink-soft);font-size:.75rem;font-variant-numeric:tabular-nums}.app-version--stale{color:var(--warning);font-weight:600}.fetched-note{color:var(--ink-soft);font-size:.85rem;margin:0}.banner{padding:.9rem 1.1rem;border:1px solid var(--border);border-left:4px solid var(--tone-accent, var(--border-strong));border-radius:var(--radius-md);background:var(--tone-bg, var(--surface-muted));color:var(--tone-fg, var(--ink));margin-bottom:1.5rem}.trials-section{--trials-table-width: 90%;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.trials-section>*{width:100%;max-width:var(--trials-table-width)}.trials-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.trials-heading h2,.trials-heading p,.trials-source,.trials-count{margin:0}.trials-filters{display:grid;grid-template-columns:repeat(7,minmax(9rem,1fr)) minmax(15rem,2fr);gap:var(--space-3);padding:var(--space-4)}.trials-filters>label,.trials-filters>.trials-filter-field{display:flex;flex-direction:column;gap:var(--space-1);color:var(--ink-soft);font-size:.78rem;font-weight:600}.trials-term-dd{position:relative}.trials-term-toggle{display:flex;align-items:center;justify-content:space-between;gap:.4rem;width:100%;min-height:var(--control-height);padding:.45rem .55rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-weight:400;text-align:left;cursor:pointer}.trials-term-panel{position:absolute;z-index:5;top:calc(100% + 2px);left:0;min-width:100%;max-height:14rem;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.trials-term-option{display:flex;flex-direction:row;align-items:center;gap:.4rem;color:var(--ink);font-size:.85rem;font-weight:400;white-space:nowrap;cursor:pointer}.trials-filters>label>select,.trials-filters>label>input,.trials-comment-add select,.trials-comment-add textarea{min-height:var(--control-height);padding:.45rem .55rem}.trials-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.trials-rows{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.trials-row-group:last-child>.trials-row{border-bottom:none}.trials-row{display:grid;grid-template-columns:1.6fr 2fr 9.5rem 4.5rem 4.5rem 4.5rem 3rem 1.75rem;gap:var(--space-3);align-items:center;width:100%;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.trials-row--labels{background:var(--surface-muted);color:var(--ink-subtle);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.trials-sort{padding:0;border:none;background:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.trials-sort:hover,.trials-sort--active{color:var(--ink)}.trials-row-head{border:none;border-bottom:1px solid var(--border);background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}.trials-row-head:hover{background:var(--surface-hover)}.trials-row-head:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:calc(var(--focus-ring-offset) * -1)}.trials-cell-student{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);min-width:0}.trials-student-status{display:flex;flex:none;flex-direction:column;align-items:flex-start;gap:1px;width:5.5rem}.trials-unconfirmed{color:var(--ink-subtle);font-size:.68rem;line-height:1.2}.trials-student-name{display:flex;flex-direction:column;gap:1px;min-width:0}.trials-student-name>span,.trials-cell-next{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trials-cell-next{font-variant-numeric:tabular-nums}.trials-cell-state{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);font-size:.75rem;font-weight:600;color:var(--tone-fg, var(--ink-soft))}.trials-row-name{font-weight:700;color:var(--ink)}.trials-row--complete{background:var(--surface-success-soft)}.trials-row-detail{padding:var(--space-4) var(--space-3);background:var(--surface-hover);border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:var(--space-4)}.trials-row-status{display:flex;align-items:center;gap:var(--space-2)}.trials-row-archive{margin-left:auto}.trials-status-control{padding:.25rem .4rem}.trials-past-row{opacity:.6}.trials-note-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:.15rem .45rem;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:.75rem;font-weight:600;line-height:1.2;cursor:pointer}.trials-note-btn:hover,.trials-note-btn[aria-expanded=true]{border-color:var(--border-strong);background:var(--surface-hover);color:var(--ink)}.trials-note-row>td{background:var(--surface-hover)}.trials-note-thread{border-left:2px solid var(--border-strong);padding-left:var(--space-3);max-width:46rem}.trials-comments{display:flex;flex-direction:column;gap:var(--space-2);max-height:19rem;overflow-y:auto}.trials-comment{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.trials-comment p{margin:0 0 var(--space-2);white-space:pre-wrap}.trials-comment span{font-size:.75rem}.trials-comment-add{display:flex;align-items:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.trials-comment-add textarea{flex:1;resize:vertical}.trials-empty{padding:2rem!important;text-align:center!important;color:var(--ink-soft)}.trials-reconciliation{padding:var(--space-4)}.trials-reconciliation summary{cursor:pointer;font-weight:600;color:var(--warning)}.trials-reconciliation-list{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.trials-reconciliation-item{display:flex;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border)}.trials-reconciliation-item p{margin:var(--space-1) 0 0}.trials-inline-actions{display:flex;align-items:center;gap:var(--space-2)}@media(max-width:1400px){.trials-section{--trials-table-width: 100%}}@media(max-width:1200px){.trials-filters{grid-template-columns:repeat(4,minmax(10rem,1fr))}}@media(max-width:900px){.trials-row{grid-template-columns:1fr;gap:var(--space-1);padding:var(--space-3)}.trials-row--labels{display:none}.trials-row>[data-label]:before{content:attr(data-label);display:block;color:var(--ink-subtle);font-size:.7rem;text-transform:uppercase;letter-spacing:.03em}.trials-cell-state{justify-content:flex-start}}@media(max-width:768px){.trials-heading,.trials-reconciliation-item,.trials-comment-add{flex-direction:column;align-items:stretch}.trials-filters{grid-template-columns:1fr 1fr}}@media(max-width:520px){.trials-filters{grid-template-columns:1fr}}.file-section{padding:1.5rem;margin-bottom:1.5rem}.file-section h2{margin-top:0;font-size:1.1rem}.sheet-block h3{font-size:.95rem;color:var(--ink-soft);margin-bottom:.5rem}.table-wrapper{overflow-x:auto;overflow-y:auto;max-height:24rem}.costume-fee-check .table-wrapper,.class-fee-check .table-wrapper{max-height:none}table{border-collapse:collapse;width:100%;font-size:.9rem}table.table-compact{width:auto;min-width:0}table.table-compact th,table.table-compact td{width:1%;white-space:nowrap;padding-left:1.25rem;padding-right:1.25rem}table.table-compact th:first-child,table.table-compact td:first-child{padding-left:.75rem}table.table-compact th:last-child,table.table-compact td:last-child{width:auto}th,td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--ink-soft);font-weight:600;background:var(--bg);position:sticky;top:0;z-index:1}tfoot td{border-bottom:none;border-top:2px solid var(--border)}.filter-row th{top:2.25rem;padding:.35rem .5rem;background:var(--surface)}.column-filter-input{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .5rem;font-size:.8rem;font-weight:400;color:var(--ink);font-family:inherit}.charge-check-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.charge-check-header h2{margin:0}.charge-check-summary{color:var(--ink-soft);margin:0 0 .75rem}.text-mark{background:var(--tone-bg);color:var(--tone-fg);padding:0 .15em;border-radius:var(--radius-sm);font-weight:600}.charge-check-problems{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.charge-check-problem{display:flex;flex-direction:column;gap:.1rem}.charge-check-problem-message{color:var(--ink-soft);font-size:.85em}.charge-check-problem-excerpt{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;overflow-wrap:anywhere}.status-ok{color:var(--success);font-weight:600}.status-bad{color:var(--danger);font-weight:600}.tab-bar{display:flex;align-items:flex-end;gap:.4rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.tab-button{border:none;border-bottom:2px solid transparent;border-radius:var(--radius-md) var(--radius-md) 0 0;background:none;padding:.6rem .95rem;font-size:.95rem;font-family:inherit;color:var(--ink-soft);cursor:pointer;margin-bottom:-1px}.tab-button:hover{color:var(--ink)}.tab-button.active{color:var(--ink);font-weight:600;border-bottom-color:var(--ink);background:var(--bg)}.tab-bar-primary{gap:.35rem;margin:1.5rem calc(var(--page-gutter) * -1) 0;padding:0 calc(var(--page-gutter) + .5rem);flex:none}.tab-bar-primary .tab-button{border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface-hover);padding:.8rem 1.75rem;font-size:1.05rem;color:var(--ink-soft);margin-top:.35rem}.tab-bar-primary .tab-button:hover{background:var(--surface);color:var(--ink)}.tab-bar-primary .tab-button.active{position:relative;z-index:1;background:var(--surface);color:var(--ink);font-weight:700;margin-top:0;padding-bottom:.9rem;box-shadow:var(--shadow-tab)}.tab-panel{background:var(--surface);border-top:1px solid var(--border);margin:0 calc(var(--page-gutter) * -1);padding:1.75rem var(--page-gutter) 3rem;flex:1}.summary-tile{display:flex;align-items:center;gap:1.5rem}.summary-count{font-size:3rem;font-weight:700;line-height:1;min-width:4rem;text-align:center}.summary-tile-text p{margin:0 0 .75rem}.payment-plan-form-top-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-start;gap:1rem;margin-bottom:.25rem}.payment-plan-form-top-row .form-field{width:200px;max-width:100%}.payment-plan-form-top-row>:last-child{margin-left:auto}.payment-plan-form{display:grid;grid-template-columns:repeat(auto-fit,200px);gap:1rem;margin-bottom:1.5rem}.term-column{display:flex;flex-direction:column;gap:.75rem}.term-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.term-row .form-field-checkbox{width:auto;white-space:nowrap;padding-bottom:.5rem}.form-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--ink-soft)}.form-field input:not([type=checkbox]),.form-field select{box-sizing:border-box;height:2.35rem;border:1px solid var(--border);border-radius:var(--radius-md);padding:.5rem .6rem;font-size:.9rem;color:var(--ink);font-family:inherit}.form-field input:disabled{background:var(--bg);color:var(--ink-soft)}.form-field-checkbox{flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem}.costume-list-select{border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.35rem .55rem;font-size:.9rem;font-weight:600;color:var(--ink);font-family:inherit;background:var(--surface)}.costume-list-select option{font-weight:600}.optional-sources-list{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.5rem}.optional-source-toggle{font-size:.9rem;color:var(--ink)}.user-role{text-transform:uppercase;letter-spacing:.04em}.section-note{color:var(--ink-soft);font-size:.9rem;max-width:60ch;margin:0 0 1.5rem}.users-table select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:.9rem}.row-inactive{opacity:.55}.badge-you{color:var(--ink-soft);font-size:.85rem}.override-list{list-style:none;margin:0;padding:0;font-size:.85rem}.override-deny{color:var(--danger)}.override-grant{color:var(--success)}.muted{color:var(--ink-soft)}.invite-form{padding:1.25rem;margin-bottom:2rem}.invite-form h3{margin:0 0 .5rem;font-size:1rem}.invite-form .section-note{margin-bottom:1rem}.invite-fields{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.invite-fields label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--ink-soft)}.invite-fields input,.invite-fields select{padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:.9rem;min-width:16rem}.invite-fields select{min-width:8rem}.role-hint{margin:.75rem 0 0;font-size:.85rem;color:var(--ink-soft)}.handover-tab{--handover-width: 70%}.handover-tab>*{max-width:var(--handover-width);margin-left:auto;margin-right:auto}@media(max-width:1400px){.handover-tab{--handover-width: 100%}}.handover-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.handover-header-actions{display:flex;gap:.5rem;margin-left:auto}.handover-endshift{font-weight:600}.handover-endshift-modal>p{margin-bottom:1.25rem}.handover-subtabs{margin-top:.5rem}.handover-alert-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;margin-top:1.15rem}.handover-alert-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:.9rem;width:min(70%,52rem);padding:.75rem .85rem;margin-bottom:0}.handover-alert-lead,.handover-alert-actions{display:flex;align-items:center}.handover-alert-lead{min-width:0;gap:.7rem}.handover-alert-icon{flex:0 0 auto;color:var(--tone-accent);font-size:1.2rem;line-height:1}.handover-alert-copy{min-width:0}.handover-alert-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem;margin-bottom:.15rem}.handover-alert-heading strong{color:var(--ink-body);font-size:.92rem;font-weight:650}.handover-alert-due-date{color:var(--ink-soft);font-size:.78rem;font-weight:400}.handover-alert-details{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;color:var(--ink-soft);font-size:.82rem;font-weight:500;line-height:1.4;overflow-wrap:anywhere}.handover-alert-actions{flex:0 0 auto;gap:.55rem}.handover-diary-heading{display:flex;align-items:baseline;gap:.6rem;margin:1rem 0 .5rem}.handover-new-item-btn{margin-left:auto;align-self:center}.handover-diary-heading h3{margin:0}.handover-entry-count{font-size:.85rem;color:var(--ink-soft)}.handover-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.handover-table{width:100%;min-width:42rem;border-collapse:collapse;font-size:.9rem}.handover-table th,.handover-table td{white-space:normal;vertical-align:top;padding:.55rem .7rem;border-bottom:1px solid var(--border)}.handover-table thead th{background:var(--bg);color:var(--ink-soft);font-weight:600;white-space:nowrap}.handover-table tbody tr:last-child td{border-bottom:none}.handover-col-item{width:3rem}.handover-col-list{width:7.5rem}.handover-col-title{width:22%}.handover-col-comments{width:auto}.handover-col-when{width:8.5rem}.handover-col-assign{width:10rem}.handover-col-actions{width:9rem}.handover-notice-toggle.settings-switch{margin-top:0;gap:.35rem;font-size:.82rem;line-height:1.25}.handover-cell-item{text-align:center;color:var(--ink-soft);font-weight:600}.handover-cell-open{display:block;margin-top:.25rem;color:var(--ink-soft);font-size:.78rem;font-weight:400;white-space:nowrap}.handover-cell-title>span:not(.handover-editing):not(.handover-cell-open){color:var(--ink-body);font-weight:650;font-size:1rem}.handover-cell-title .handover-input{color:var(--ink-body);font-size:1rem;font-weight:650}.handover-input{width:100%;font:inherit;padding:.35rem .45rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:inherit}.handover-input:focus{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:-1px}textarea.handover-input{resize:vertical}.handover-input-autogrow{resize:none;overflow:hidden}.handover-mention-field{position:relative;width:100%}.handover-mention-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:.35rem .45rem;border:1px solid transparent;border-radius:var(--radius-md);font:inherit;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;background:var(--surface);color:var(--ink-body);pointer-events:none}.handover-mention-highlight{color:var(--accent);font-weight:700}.handover-mention-input{position:relative;line-height:1.4;white-space:pre-wrap;word-wrap:break-word;background:transparent;color:transparent;caret-color:var(--ink-body)}.handover-new-row td{background:var(--bg)}.handover-new-actions{display:flex;flex-direction:column;gap:.3rem}.handover-add-btn,.handover-cancel-btn{width:100%}.handover-when-due{line-height:1.35}.handover-when-status{margin-top:.5rem}.handover-status-closed{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem}.handover-row-overdue .handover-cell-item{font-weight:700}.handover-due-overdue>span{font-weight:700}.handover-overdue-tag{display:block;font-size:.75rem;color:var(--danger);font-weight:700;text-transform:uppercase}.handover-comment-cell{display:flex;flex-direction:column;gap:.5rem}.handover-comment-log{display:flex;flex-direction:column;gap:.5rem;max-height:21em;overflow-y:auto;padding:.35rem .45rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.handover-comment-log:has(.handover-comment-empty){border:none;background:none;padding:0}.handover-comment-empty{margin:0}.handover-comment{font-size:.95rem}.handover-comment-meta{display:block;margin-top:.2rem;font-size:.7rem;color:var(--ink-soft)}.handover-comment-body{color:var(--ink-body);font-size:.95rem;font-weight:500;white-space:pre-wrap}.handover-comment-add{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.handover-comment-add textarea{width:100%}.handover-assign-dd{position:relative}.handover-assign-toggle{display:flex;align-items:center;justify-content:space-between;gap:.4rem;width:100%;text-align:left;font:inherit;padding:.35rem .45rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}.handover-assign-panel{position:absolute;z-index:5;top:calc(100% + 2px);left:0;min-width:100%;max-height:14rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.handover-assign-option{display:flex;align-items:center;gap:.4rem;font-size:.85rem;white-space:nowrap}.handover-assign-empty{margin:0}.handover-empty{text-align:center;padding:1.5rem}.handover-editing{display:block;margin-top:.3rem;font-size:.72rem;font-weight:600;color:var(--ink-soft);white-space:nowrap}.handover-log{display:flex;flex-direction:column;gap:var(--space-2)}.handover-log-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.handover-log-ctrl{display:flex;align-items:center;gap:var(--space-2)}.handover-log-label{font-size:.68rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-subtle);white-space:nowrap}.handover-log-seg{display:inline-flex;gap:.15rem}.handover-log-spacer{flex:1 1 auto}.handover-log-composer{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.handover-log-draft{width:100%;min-height:3.5rem;padding:var(--space-2);resize:vertical;line-height:1.5}.handover-log-composer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2)}.handover-log-daybar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0 var(--space-1)}.handover-log-daybar h4{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);white-space:nowrap}.handover-log-daybar-rule{flex:1;height:1px;background:var(--border)}.handover-log-daycount{font-size:.75rem;color:var(--ink-subtle)}.handover-log-item{border-left:4px solid var(--tone-accent, var(--border-strong));margin-bottom:var(--space-2)}.handover-log-item[data-tone=success]{opacity:.72}.handover-log-head{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3);border:none;border-radius:var(--radius-lg);background:none;font:inherit;text-align:left;color:inherit;cursor:pointer}.handover-log-head:hover{background:var(--surface-hover)}.handover-log-head:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:calc(var(--focus-ring-offset) * -1)}.handover-log-body{display:flex;flex:1;min-width:0;flex-direction:column;gap:var(--space-1)}.handover-log-title{color:var(--ink);font-size:.95rem;line-height:1.45}.handover-log-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);font-size:.78rem;color:var(--ink-subtle)}.handover-log-dot{color:var(--border-strong)}.handover-log-age{font-size:.7rem;font-weight:500}.handover-log-replies{flex:none;min-width:2.2rem;padding-top:.15rem;text-align:right;font-size:.72rem;color:var(--ink-subtle)}.handover-log-thread{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-top:1px dashed var(--border)}.handover-log-msg{display:flex;flex-direction:column;gap:.15rem;margin:0;padding-left:var(--space-3);border-left:2px solid var(--border)}.handover-log-msg--system{font-style:italic;font-size:.82rem;color:var(--ink-subtle)}.handover-log-msg-who{font-size:.75rem;color:var(--ink-subtle)}.handover-log-msg-text{font-size:.88rem;line-height:1.5;color:var(--ink-body);white-space:pre-wrap}.handover-log-reply,.handover-log-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.handover-log-reply-input{flex:1;min-width:10rem;padding:.4rem var(--space-2);resize:vertical;font-size:.88rem}.handover-log-due{width:9.5rem}.handover-log-hint{margin:0;font-size:.78rem;color:var(--ink-subtle)}.handover-log-panel{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2)}.handover-log-panel-day{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle)}.handover-log-feed{overflow:hidden}.handover-log-row{display:flex;align-items:baseline;gap:var(--space-3);padding:.4rem var(--space-3);font-size:.88rem}.handover-log-row+.handover-log-row{border-top:1px solid var(--border)}.handover-log-row:hover{background:var(--surface-hover)}.handover-log-stamp{flex:none;min-width:9rem;font-size:.75rem;color:var(--ink-subtle)}.handover-log-text{flex:1;min-width:0}.handover-log-raise{flex:none;opacity:0}.handover-log-row:hover .handover-log-raise,.handover-log-raise:focus-visible{opacity:1}.handover-log-raise-picker{display:flex;flex:none;align-items:center;gap:var(--space-2)}.handover-log-empty{padding:var(--space-5);text-align:center}.handover-endshift-owed{margin:var(--space-2) 0;padding-left:var(--space-4)}@media(max-width:768px){.handover-log-row{flex-wrap:wrap}.handover-log-stamp{min-width:0}.handover-log-raise{opacity:1}}.notif-bell{position:relative;display:inline-block}.notif-bell-button{position:relative;font-size:1.1rem;line-height:1;padding:.35rem .5rem}.notif-badge{position:absolute;top:-.3rem;right:-.3rem;background:var(--danger);color:var(--on-accent);border-radius:var(--radius-pill);font-size:.65rem;font-weight:700;min-width:1.1rem;padding:.05rem .3rem;text-align:center}.notif-dropdown{position:absolute;right:0;top:2.4rem;width:22rem;max-width:90vw;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:50;overflow:hidden}.notif-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .8rem;border-bottom:1px solid var(--border)}.notif-link{background:none;border:none;color:var(--ink-soft);cursor:pointer;font-size:.8rem;padding:.1rem .4rem}.notif-link:disabled{color:var(--ink-soft);cursor:default}.notif-list{max-height:22rem;overflow-y:auto}.notif-item{padding:.6rem .8rem;border-bottom:1px solid var(--border)}.notif-item-unread{background:var(--surface-info)}.notif-item-title{font-weight:600;font-size:.9rem}.notif-item-body{font-size:.85rem;color:var(--ink-soft);white-space:pre-line}.notif-item-time{font-size:.72rem;color:var(--ink-soft);margin-top:.2rem}.notif-prefs,.notif-settings-body{padding:.8rem;display:flex;flex-direction:column;gap:.5rem}.notif-pref-toggle{display:flex;align-items:center;gap:.45rem;font-size:.9rem}.notif-save{margin-top:.5rem;align-self:flex-start}.notif-settings{border:1px solid var(--border);border-radius:var(--radius-md);margin:0 0 1.25rem}.notif-settings-toggle{width:100%;text-align:left;background:none;border:none;padding:.7rem .9rem;font-weight:600;cursor:pointer}.notif-settings-field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--ink-soft)}.notif-settings-field input{max-width:26rem}.notif-test-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.notif-test-row input{flex:1 1 18rem}.notif-test{flex:0 0 auto}.notif-divider{border:none;border-top:1px solid var(--border);margin:.5rem 0 .2rem}.notif-subhead{font-weight:600;font-size:.92rem}.notif-subhead-sm{font-size:.82rem;color:var(--ink-soft);margin-top:.3rem}.notif-intrusive-body{display:flex;flex-direction:column;gap:.5rem;padding-left:.85rem;border-left:2px solid var(--border);margin-left:.1rem}.intrusive-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:1.25rem;animation:intrusive-fade .18s ease both}.intrusive-modal{width:min(460px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:intrusive-pop .22s cubic-bezier(.2,.9,.3,1.1) both}.intrusive-accent{height:4px;background:var(--accent)}.intrusive-inner{padding:1.4rem 1.4rem 1.25rem}.intrusive-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.9rem}.intrusive-chip{gap:.4rem;padding:.28rem .6rem;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.intrusive-counter{font-size:.75rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.intrusive-modal h2{font-size:1.16rem;margin:0 0 .4rem;line-height:1.3}.intrusive-body{margin:0;color:var(--ink-soft);font-size:.92rem}.intrusive-time{margin:.85rem 0 0;font-size:.76rem;color:var(--ink-soft)}.intrusive-actions{margin-top:1.3rem;display:flex;align-items:center;justify-content:flex-end;gap:.6rem}.intrusive-must{margin-right:auto;font-size:.74rem;color:var(--ink-soft)}.intrusive-ack{padding:.6rem 1.4rem;font-size:.95rem;font-variant-numeric:tabular-nums}.intrusive-ack:disabled{opacity:.55;cursor:not-allowed}.intrusive-modal[data-tone] .intrusive-accent{background:var(--tone-accent)}.intrusive-modal[data-tone] .intrusive-ack{border-color:var(--tone-fg);background:var(--tone-fg);color:var(--on-accent)}@keyframes intrusive-fade{0%{opacity:0}to{opacity:1}}@keyframes intrusive-pop{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.intrusive-overlay,.intrusive-modal{animation:none}}.feedback-trigger{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40;box-shadow:var(--shadow-md)}.feedback-dim-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:var(--scrim-strong);animation:feedback-dim-in .15s ease both}.feedback-dim-overlay p{margin:0;padding:.6rem 1.1rem;border-radius:var(--radius-md);background:var(--surface);color:var(--ink-soft);font-size:.88rem;box-shadow:var(--shadow-md)}@keyframes feedback-dim-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.feedback-dim-overlay{animation:none}}.feedback-select-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;background:var(--scrim-strong)}.feedback-select-toolbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--border)}.feedback-select-toolbar p{margin:0;color:var(--ink-soft);font-size:.88rem}.feedback-select-actions{display:flex;gap:.5rem;flex-wrap:wrap}.feedback-select-canvas{position:relative;flex:1 1 auto;overflow:auto;display:flex;justify-content:center;padding:1rem}.feedback-select-image-wrap{position:relative;display:inline-block;max-width:100%;min-width:0}.feedback-select-image{display:block;max-width:100%;height:auto;cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-user-drag:none;user-drag:none}.feedback-select-rect{position:absolute;border:2px dashed var(--accent);background:var(--surface-selection);pointer-events:none}.feedback-dim-strip{position:absolute;background:var(--scrim-strong);pointer-events:none}.feedback-modal-overlay{z-index:61}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.feedback-modal-header h3{margin:0}.feedback-modal-preview{width:100%;max-height:12rem;object-fit:contain;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);margin-bottom:.75rem}.feedback-retake{flex:0 0 auto}.feedback-comment{display:block;width:100%;box-sizing:border-box;min-height:9rem;padding:.6rem .75rem;resize:vertical}.feedback-sent{margin:.5rem 0;font-weight:600;color:var(--success)}.feedback-error{margin:.5rem 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.payment-plans-page{max-width:1500px}.payment-plan-subtabs{margin-top:-.5rem}.payment-plan-section-heading,.payment-plan-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;margin-bottom:1.25rem}.payment-plan-heading-actions{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.payment-plan-section-heading h2,.payment-plan-detail-header h2{margin:0 0 .35rem}.payment-plan-section-heading p,.payment-plan-detail-header p,.payment-plan-actions p{margin:0;color:var(--ink-soft)}.payment-plan-filters{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(150px,.55fr) minmax(150px,.55fr);gap:1rem;padding:1.1rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-hover)}.payment-plan-status-filter{grid-column:1 / -1;min-width:0;padding:0;border:none}.payment-plan-status-filter legend{margin-bottom:.5rem;color:var(--ink-soft);font-size:.85rem}.payment-plan-status-filter>div{display:flex;flex-wrap:wrap;gap:.45rem}.payment-plan-status-filter label{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);font-size:.82rem;cursor:pointer}.payment-plan-status-filter input{margin:0}.payment-plan-filter-actions{grid-column:1 / -1;display:flex;gap:.55rem}.payment-plan-list-summary,.payment-plan-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.5rem;color:var(--ink-soft);font-size:.88rem}.payment-plan-list-summary span+span{padding:.2rem .55rem;border-radius:var(--radius-pill);background:var(--surface-accent-soft);color:var(--accent);font-weight:600}.payment-plan-list-wrap{max-height:42rem;border:1px solid var(--border);border-radius:var(--radius-lg)}.payment-plan-list-table td{vertical-align:middle}.payment-plan-list-table td strong,.payment-plan-list-table td small{display:block}.payment-plan-list-table td small{margin-top:.18rem;color:var(--ink-soft)}.payment-plan-students{max-width:22rem;overflow:hidden;text-overflow:ellipsis}.payment-plan-status{min-height:1.55rem}.payment-plan-empty{padding:3.5rem 1rem;border-style:dashed;border-color:var(--border-strong);text-align:center}.payment-plan-empty h3{margin:0 0 .35rem}.payment-plan-empty p{margin:0;color:var(--ink-soft)}.payment-plan-pagination{justify-content:flex-end;margin-top:.75rem}.payment-plan-back{margin-bottom:1.15rem;padding-left:0;color:var(--accent)}.payment-plan-detail-kicker{margin-bottom:.25rem;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.payment-plan-detail-header .payment-plan-status{margin-top:.25rem}.payment-plan-actions{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 1.1rem;margin-bottom:1rem}.payment-plan-actions h3{margin:0 0 .25rem}.payment-plan-action-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.payment-plan-detail-columns,.payment-plan-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.payment-plan-card{padding:1.15rem}.payment-plan-card h3{margin:0 0 1rem}.payment-plan-card-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}.payment-plan-rules-card.is-active{border-color:var(--border-accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.payment-plan-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1.25rem;margin:0}.payment-plan-details-grid div{min-width:0}.payment-plan-details-grid dt{margin-bottom:.18rem;color:var(--ink-soft);font-size:.76rem;font-weight:600;letter-spacing:.035em;text-transform:uppercase}.payment-plan-details-grid dd{margin:0;overflow-wrap:anywhere}.payment-plan-boundary-note,.payment-plan-override-note{margin:1rem 0 0;padding:.75rem;border-radius:var(--radius-md);background:var(--bg);color:var(--ink-soft);font-size:.84rem;line-height:1.45}.payment-plan-submission-card{margin-bottom:1rem}.payment-plan-total-strip{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:.75rem;margin-bottom:1rem}.payment-plan-total-strip div{padding:.75rem;border-radius:var(--radius-md);background:var(--bg)}.payment-plan-total-strip span,.payment-plan-total-strip strong{display:block}.payment-plan-total-strip span{margin-bottom:.25rem;color:var(--ink-soft);font-size:.76rem;text-transform:uppercase}.payment-plan-schedule-wrap{max-height:28rem}.payment-plan-card-meta{margin:.9rem 0 0;color:var(--ink-soft);font-size:.78rem}.payment-plan-holidays summary{margin-top:1rem;color:var(--accent);cursor:pointer}.payment-plan-holidays ul{columns:2;color:var(--ink-soft);font-size:.85rem}.payment-plan-timeline{position:relative;margin:0;padding:0;list-style:none}.payment-plan-timeline:before{content:"";position:absolute;top:.65rem;bottom:.65rem;left:.31rem;width:2px;background:var(--border)}.payment-plan-timeline li{position:relative;display:grid;grid-template-columns:1.25rem 1fr;padding-bottom:1.15rem}.payment-plan-timeline-dot{position:relative;z-index:1;width:.65rem;height:.65rem;margin-top:.3rem;border:2px solid var(--accent);border-radius:50%;background:var(--surface)}.payment-plan-timeline strong,.payment-plan-timeline span,.payment-plan-timeline small{display:block}.payment-plan-timeline span,.payment-plan-timeline p,.payment-plan-timeline small{margin:.15rem 0 0;color:var(--ink-soft);font-size:.8rem}.payment-plan-action-dialog textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.6rem;color:var(--ink);font:inherit;resize:vertical}.payment-plan-action-dialog .form-field,.payment-plan-export-dialog .banner{margin-bottom:1rem}.payment-plan-field-note{color:var(--ink-soft);font-size:.78rem;line-height:1.35}.payment-plan-export-dialog{max-width:34rem}.payment-plan-export-dialog .payment-plan-boundary-note{margin-bottom:1rem}.payment-plan-create-dialog{width:min(760px,calc(100vw - 2rem))}.payment-plan-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1rem 0}@media(max-width:900px){.dashboard{--page-gutter: 1rem;padding:1.25rem var(--page-gutter) 0}.logo{padding:.3rem .5rem;border-radius:var(--radius-lg)}.tab-bar-primary .tab-button{padding:.6rem 1rem;font-size:.95rem}.tab-panel{padding:1.25rem var(--page-gutter) 2rem}.dashboard-header{grid-template-columns:auto 1fr;gap:.75rem 1rem}.dashboard-header h1{font-size:2rem;text-align:left}.logo{height:72px}.header-right{grid-column:1 / -1;flex-wrap:wrap;justify-content:flex-start}.app-version{text-align:left}.tab-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-button{flex:0 0 auto;white-space:nowrap}.payment-plan-filters{grid-template-columns:1fr 1fr}.payment-plan-search{grid-column:1 / -1}.payment-plan-detail-columns,.payment-plan-rules-grid{grid-template-columns:1fr}.payment-plan-total-strip{grid-template-columns:repeat(3,minmax(100px,1fr))}}@media(max-width:640px){.payment-plan-create-grid{grid-template-columns:1fr}}.notif-days,.notif-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.settings-page{max-width:1120px;padding:1.5rem 0 2rem}.settings-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.settings-page-heading h2,.settings-card h3{margin:0}.settings-page-heading p,.settings-card-description,.settings-help{color:var(--ink-soft);margin:.35rem 0 0;line-height:1.45}.settings-admin-label{color:var(--ink-soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;padding-top:.35rem}.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-card{padding:1.2rem}.settings-card-wide{grid-column:span 2}.settings-card-header{margin-bottom:1rem}.settings-switch,.settings-check,.settings-day{display:flex;align-items:center;gap:.5rem;color:var(--ink)}.settings-switch{margin-top:.85rem}.settings-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2.25rem;height:1.25rem;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--border-strong);cursor:pointer;position:relative;transition:background .15s ease}.settings-switch input:after{content:"";position:absolute;width:.95rem;height:.95rem;left:.1rem;top:.08rem;border-radius:50%;background:var(--surface);transition:transform .15s ease}.settings-switch input:checked{background:var(--control-active);border-color:var(--control-active)}.settings-switch input:checked:after{transform:translate(.95rem)}.settings-control-stack,.settings-field-grid{display:grid;gap:.8rem;margin-top:1rem}.settings-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-field,.settings-field-label{display:flex;flex-direction:column;gap:.35rem;color:var(--ink);font-size:.88rem}.settings-field input,.settings-field select{width:100%;min-width:0;padding:.5rem .65rem;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font:inherit}.settings-field input[readonly]{color:var(--ink-soft)}.settings-day-list,.settings-inline-action,.settings-confirmation{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.settings-day-list{padding-top:.1rem}.settings-day{font-size:.82rem}.settings-inline-action{flex-wrap:nowrap}.settings-inline-action input{flex:1}.settings-recipient-list{display:grid;gap:.5rem;margin-top:.75rem}.settings-recipient{align-items:center;background:var(--bg);border:1px solid var(--border);display:flex;gap:.75rem;justify-content:space-between;overflow-wrap:anywhere;padding:.55rem .7rem}.settings-primary-action,.settings-confirmation{margin-top:1rem}.settings-confirmation .settings-primary-action{margin-top:0}.settings-save-bar{display:flex;justify-content:flex-end;margin-top:1.25rem}.settings-save-bar .settings-primary-action{margin-top:0}.users-tab>h2{margin:0}.users-tab>.section-note{color:var(--ink-soft);margin:.4rem 0 1.25rem;max-width:54rem}.users-tab>.table-wrapper.settings-card{margin-top:1.25rem;max-height:none;overflow-x:auto}.invite-form.settings-card{border:none;margin-bottom:1.25rem}@media(max-width:720px){.settings-card-grid,.settings-field-grid{grid-template-columns:1fr}.settings-card-wide{grid-column:span 1}.settings-page-heading{align-items:flex-start}.settings-inline-action{flex-wrap:wrap}}@media(max-width:768px){.payment-plan-section-heading,.payment-plan-detail-header,.payment-plan-actions{flex-direction:column;align-items:stretch}.payment-plan-action-buttons{justify-content:flex-start}.payment-plan-filters,.payment-plan-details-grid,.payment-plan-total-strip{grid-template-columns:1fr}.payment-plan-search{grid-column:auto}.payment-plan-list-summary{align-items:flex-start;flex-direction:column;gap:.4rem}.payment-plan-export-button{width:100%}.handover-alert-banner{width:100%;flex-direction:column}.handover-alert-actions{width:100%;justify-content:flex-end}.dashboard-header h1{font-size:1.6rem}.handover-header{flex-wrap:wrap}.handover-table-wrap{overflow-x:visible}.handover-table,.handover-table tbody,.handover-table tbody tr,.handover-table tbody td{display:block;width:auto;min-width:0}.handover-table thead{display:none}.handover-table tbody tr{padding:.5rem .25rem;border-bottom:3px solid var(--border)}.handover-new-row td{background:none}.handover-table tbody td{display:grid;grid-template-columns:7.5rem 1fr;gap:.25rem .75rem;align-items:start;padding:.3rem .5rem;border-bottom:none;white-space:normal}.handover-table tbody td:before{content:attr(data-label);color:var(--ink-soft);font-size:.8rem;font-weight:600}.handover-table tbody td:empty,.handover-table tbody td[data-label=""]:empty{display:none}.handover-cell-item{text-align:left}.handover-cell-open{white-space:normal}.handover-cell-title>*,.handover-cell-when>*{grid-column:2}.handover-assign-panel{min-width:12rem}}.tb{margin-left:.45rem;padding:.05rem .45rem .05rem .35rem;font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}.checklist-tab>*{max-width:58rem;margin-left:auto;margin-right:auto}.cl-head{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.cl-head h2{margin:0 0 .2rem;font-size:1.2rem}.cl-sub{margin:0;color:var(--ink-soft);font-size:.85rem}.meter{height:8px;border-radius:var(--radius-pill);background:var(--surface-muted);overflow:hidden;margin:.5rem 0 1.4rem}.meter i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--accent);transition:width .25s ease}.cl-banner{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;border-radius:var(--radius-lg);border:1px solid;font-size:.88rem;margin-bottom:1.25rem}.cl-banner--due{background:var(--surface-warning);border-color:var(--warning);color:var(--warning)}.cl-banner--ok{background:var(--surface-hover);border-color:var(--border);color:var(--ink-soft)}.cl-list{display:flex;flex-direction:column;gap:.55rem}.cl-item{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:.85rem 1rem;display:grid;grid-template-columns:1.6rem 1fr auto;gap:.2rem .75rem;align-items:start;transition:background .18s ease,opacity .18s ease}.cl-num{grid-column:1;grid-row:1 / span 5;font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-subtle);font-size:.9rem;padding-top:.15rem}.cl-label{grid-column:2;grid-row:1;font-size:.95rem;font-weight:600;line-height:1.35;padding-top:.25rem}.cl-req{color:var(--danger);font-weight:700;margin-left:.2rem}.cl-subs{grid-column:2;grid-row:2;margin:.45rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3rem}.cl-subs li{display:flex;align-items:flex-start;gap:.45rem;font-size:.85rem;color:var(--ink-body);line-height:1.4}.cl-subs input{margin:.18rem 0 0;width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer;flex:none}.cl-subs input:disabled{cursor:not-allowed}.cl-link{color:var(--accent);font-weight:600;text-decoration:none;border-bottom:1px solid var(--border-accent-soft)}.cl-subs.invalid{border-left:2px solid var(--danger);padding-left:.6rem;margin-left:-.1rem}.cl-subs.invalid .cl-sub-missing{color:var(--danger);font-weight:600}.cl-subs.invalid .cl-sub-missing input{outline:2px solid var(--danger);outline-offset:1px}.sub-err{grid-column:2;grid-row:3;display:none;margin:.4rem 0 0;font-size:.78rem;font-weight:600;color:var(--danger)}.cl-item.invalid .sub-err{display:block}.cl-item.invalid{border-color:var(--border-danger-soft);background:var(--surface-danger-soft)}.cl-stamp{grid-column:2;grid-row:4;margin:.5rem 0 0;font-size:.78rem;color:var(--ink-subtle);display:none;align-items:center;gap:.5rem;flex-wrap:wrap}.cl-stamp b{font-weight:600;color:var(--ink-soft)}.tri{grid-column:3;grid-row:1 / span 5;display:flex;flex-direction:column;gap:.35rem;width:fit-content}.tri button{border:1px solid var(--border-strong);background:var(--surface);font:inherit;font-size:.78rem;font-weight:600;color:var(--ink-soft);padding:.32rem .6rem;border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background .15s ease,border-color .15s ease}.tri button:hover{background:var(--surface-hover);border-color:var(--ink-subtle);color:var(--ink)}.tri button.on[data-tone]{background:var(--tone-bg);color:var(--tone-fg);border-color:var(--tone-border);font-weight:700}.cl-item[data-state=complete]{background:var(--surface-success-soft);border-color:var(--border-success-soft)}.cl-item[data-state=na]{background:var(--surface-hover)}.cl-item[data-state=incomplete]{background:var(--surface-warning-soft);border-color:var(--border-warning-soft)}.cl-item[data-state] .cl-label{opacity:.62;font-weight:500}.cl-item[data-state] .cl-subs{opacity:.55}.cl-item[data-state] .cl-stamp{display:flex}.cl-item[data-state=na] .cl-subs,.cl-item[data-state=incomplete] .cl-subs{opacity:.4}.cl-note{grid-column:2 / span 2;grid-row:5;margin-top:.6rem;display:none}.cl-item[data-state=incomplete] .cl-note{display:block}.cl-note label{display:block;font-size:.75rem;font-weight:600;color:var(--warning);margin-bottom:.25rem}.cl-note textarea{width:100%;min-height:2.6rem;font-size:.85rem;resize:vertical}.cl-note-hint{margin:.3rem 0 0;font-size:.75rem;color:var(--warning)}.cl-clear{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-md);font:inherit;font-size:.74rem;font-weight:600;color:var(--ink-soft);padding:.2rem .55rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;box-shadow:var(--shadow-sm)}.cl-clear:hover{background:var(--surface-hover);border-color:var(--ink-subtle);color:var(--ink)}.cl-item.collapsed{display:flex;align-items:center;gap:.65rem;padding:.5rem 1rem}.cl-item.collapsed>.cl-subs,.cl-item.collapsed>.sub-err,.cl-item.collapsed>.cl-note,.cl-item.collapsed>.tri{display:none}.cl-item.collapsed .cl-num{padding:0;flex:none}.cl-item.collapsed .cl-label{flex:1;min-width:0;padding:0;font-size:.88rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cl-item.collapsed .cl-label .cl-confirm-badge,.cl-item.collapsed .cl-label .cl-link{display:none}.cl-item.collapsed .cl-stamp{display:flex;margin:0;flex:none;white-space:nowrap}.cl-item.collapsed .pill--collapsible,.cl-item.collapsed .cl-expand{display:inline-flex}.cl-pill{flex:none}.cl-expand{display:none;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;flex:none;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink-soft);font-size:.7rem;box-shadow:var(--shadow-sm)}.cl-expand:hover{background:var(--surface-hover);color:var(--ink)}.cl-note-snip{display:none;flex:none;max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--warning);font-style:italic}.cl-item.collapsed .cl-note-snip:not(:empty){display:inline}.modal-overlay.q-overlay{z-index:90;display:none}.modal-overlay.q-overlay.on{display:flex}.q-modal{max-width:26rem;padding:1.3rem 1.5rem;text-align:center}.q-modal .q-kicker{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-subtle)}.q-modal h3{margin:.55rem 0 .35rem;font-size:1.08rem;line-height:1.4}.q-modal>p{margin:0 0 1.2rem;font-size:.83rem}.q-actions{display:flex;gap:.5rem;justify-content:center}.q-actions .button{min-width:8rem}.cl-confirm-badge{margin-left:.4rem}.gate-list{margin:.9rem 0 1rem;padding:.7rem .9rem;border-radius:var(--radius-md);background:var(--surface-warning);border:1px solid var(--border-warning-soft);list-style:none;display:flex;flex-direction:column;gap:.35rem;max-height:18rem;overflow-y:auto}.gate-list li{font-size:.86rem;color:var(--warning);line-height:1.45}.gate-list li b{font-weight:700}.gate-list-incomplete{border-top:1px solid var(--border-warning-soft);padding-top:.45rem;margin-top:.2rem}.gate-list-note{opacity:.8;font-style:italic}.gate-field label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.3rem}.gate-field textarea{width:100%;min-height:4.2rem;font-size:.88rem;resize:vertical}.gate-hint{margin:.35rem 0 0;font-size:.76rem;color:var(--ink-subtle)}.checklist-history{display:flex;flex-direction:column;gap:1rem}.cl-history-run{padding:1rem 1.15rem}.cl-history-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.cl-history-head h3{margin:0;font-size:1rem}.cl-history-people{margin-left:auto;font-size:.78rem;color:var(--ink-subtle)}.cl-history-items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.cl-history-items li{display:flex;gap:.6rem;align-items:flex-start;border-top:1px solid var(--border);padding-top:.5rem}.cl-history-items li:first-child{border-top:0;padding-top:0}.cl-history-num{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink-subtle);font-size:.82rem;min-width:1.2rem}.cl-history-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.cl-history-label{font-size:.88rem;line-height:1.35}.cl-history-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;font-size:.78rem;color:var(--ink-subtle)}.cl-history-note{color:var(--warning)}.cl-history-unanswered{color:var(--danger);font-weight:600}.cl-template{margin-top:2rem}.cl-template-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.2rem}.cl-template-head h3{margin:0;font-size:1rem}.tmpl-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:.4rem;font-size:.88rem;background:var(--surface)}.tmpl-row--dragging{opacity:.5}.tmpl-row--inactive{opacity:.6}.tmpl-row--inactive .tmpl-label{text-decoration:line-through}.tmpl-row--sub{margin-left:1.5rem}.tmpl-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tmpl-row .grip{color:var(--ink-subtle);cursor:grab;font-size:1rem}.tmpl-row .sp{margin-left:auto;display:flex;gap:.35rem;flex:none}.cl-template-add{display:flex;gap:.5rem;align-items:center;margin:.6rem 0 .2rem}.cl-template-add input{flex:1;min-width:0}.cl-template-inactive{margin-top:1rem}.cl-template-inactive h4{margin:0 0 .4rem;font-size:.85rem;color:var(--ink-soft)}.cl-item-editor{padding:1rem 1.1rem;margin:.2rem 0 .8rem;display:flex;flex-direction:column;gap:.6rem}.cl-item-editor h4{margin:.4rem 0 0;font-size:.9rem}@media(max-width:768px){.cl-item{grid-template-columns:1.4rem 1fr}.tri{grid-column:2;grid-row:6;margin-top:.5rem}.cl-history-people{margin-left:0}.tmpl-row{flex-wrap:wrap}}.overdue-section{--overdue-table-width: 70%}.overdue-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.overdue-freshness{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-2) 0 var(--space-4)}.overdue-freshness--stale{color:var(--warning)}.overdue-stale-badge{margin-left:var(--space-1)}.overdue-totals{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4);margin-bottom:var(--space-4)}.overdue-total{display:flex;align-items:baseline;gap:var(--space-2)}.overdue-total-value{font-size:1.6rem;font-weight:700;color:var(--ink)}.overdue-total-split{display:flex;gap:var(--space-4);flex-wrap:wrap}.overdue-total-chip{color:var(--ink-soft);font-size:.9rem}.overdue-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg)}.overdue-table{width:100%;min-width:42rem;border-collapse:collapse;background:var(--surface)}.overdue-table th,.overdue-table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--border);vertical-align:top}.overdue-table thead th{background:var(--surface-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.overdue-cell-money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.overdue-sort{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--ink-soft);cursor:pointer}.overdue-sort--active{color:var(--ink)}.overdue-row:hover,.overdue-row--open{background:var(--surface-hover)}.overdue-cell-details{text-align:right;white-space:nowrap}.overdue-email{display:block;font-size:.85rem}.overdue-unconfirmed{margin-top:var(--space-1);display:inline-block}.overdue-here-today{color:var(--danger);font-weight:600}.overdue-detail-row td{background:var(--surface-muted)}.overdue-detail{display:flex;flex-direction:column;gap:var(--space-4)}.overdue-detail-grid{display:grid;grid-template-columns:minmax(18rem,.9fr) minmax(24rem,1.1fr);gap:var(--space-5);align-items:start}.overdue-detail-col{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.overdue-detail-block h4{margin:0 0 var(--space-2);font-size:.95rem}.overdue-students-disclosure>summary{cursor:pointer;font-size:.95rem;font-weight:700;color:var(--ink)}.overdue-students-disclosure[open]>summary{margin-bottom:var(--space-2)}.overdue-plans,.overdue-students,.overdue-classes{margin:0;padding-left:var(--space-4)}.overdue-students>li+li{margin-top:var(--space-3)}.overdue-student-head{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:baseline}.overdue-classes{margin-top:var(--space-1);color:var(--ink-soft);font-size:.9rem}.overdue-notes-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap}.comment-thread{display:flex;flex-direction:column;gap:var(--space-3);max-width:46rem}.comment-thread-item{border-left:2px solid var(--border-strong);padding-left:var(--space-3)}.comment-thread-body{margin:0;white-space:pre-line}.comment-thread-meta{margin:var(--space-1) 0 0;font-size:.8rem}.comment-thread-empty{margin:0;font-size:.9rem}.comment-thread-link{background:none;border:none;padding:0;font:inherit;color:var(--ink-soft);text-decoration:underline;cursor:pointer}.comment-thread-link--danger{color:var(--danger)}.comment-thread-link:disabled{cursor:default;opacity:.6}.comment-thread-compose,.comment-thread-item--editing{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start}.comment-thread-input{width:100%;resize:vertical}.comment-thread-actions{display:flex;gap:var(--space-2)}.overdue-section>*{max-width:var(--overdue-table-width);margin-left:auto;margin-right:auto}@media(max-width:900px){.overdue-table-wrap{overflow-x:visible;border:none;border-radius:0}.overdue-table{min-width:0}.overdue-table thead{display:none}.overdue-table,.overdue-table tbody,.overdue-row,.overdue-row td{display:block;width:100%}.overdue-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-2) 0;margin-bottom:var(--space-3)}.overdue-row td{border-bottom:none;padding:var(--space-1) var(--space-3)}.overdue-row td[data-label]:before{content:attr(data-label);display:block;color:var(--ink-subtle);font-size:.7rem;text-transform:uppercase;letter-spacing:.03em}.overdue-cell-details{text-align:left;padding-top:var(--space-2)}.overdue-cell-money{text-align:left}.overdue-detail-row,.overdue-detail-row td{display:block;width:100%}}@media(max-width:1100px){.overdue-detail-grid{grid-template-columns:1fr}}@media(max-width:1400px){.overdue-section{--overdue-table-width: 100%}}
