/* Master Tax office screens (Runey direction). Tokens live in ../style.css; see DESIGN.md. */
[hidden]{display:none!important}

/* Banners and notices */
body>.notice{margin:0;padding:8px 20px 8px calc(var(--rail-w) + 28px);background:var(--warn-bg);color:var(--warn);font-size:var(--text-sm);font-weight:500;border:0;border-radius:0}
.practice-banner,.rehearsal-banner{display:flex;align-items:center;gap:6px;margin:12px 0 0;padding:10px 16px;border-radius:var(--r-inner);background:var(--warn-bg);color:var(--warn);font-size:var(--text-sm)}
.practice-banner a{margin-left:auto;color:inherit;font-weight:500}
.notice{margin:0 0 12px;padding:12px 16px;border-radius:var(--r-inner);background:var(--well);color:var(--ink-2);font-size:var(--text-sm);line-height:1.55}
.workspace>.notice{margin-top:12px}
.error{margin-bottom:14px;padding:10px 14px;border-radius:var(--r-inner);background:var(--neg-bg);color:var(--neg);font-size:var(--text-sm)}
.error:empty{display:none}
.offline{color:var(--neg)}
.draft-hint{color:var(--ink-2);font-size:var(--text-sm)}

/* Sign in: one card on the desk */
.login{max-width:420px;margin:12vh auto;padding:36px 32px;border-radius:24px;background:var(--surface);box-shadow:var(--shadow-soft)}
.login .brand{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin:0 0 28px;font-size:17px;font-weight:600}
.login .brandmark{background:var(--rail);color:#fff}
.login h1{font-size:var(--text-xl)}
.login p{color:var(--ink-2)}
.login label{display:block;margin:22px 0 6px;font-size:var(--text-sm);font-weight:500}
.login input{width:100%;height:44px;padding:0 16px;border-radius:var(--r-pill)}
.login .primary{width:100%;height:44px;margin-top:12px}
.login-status{margin-top:14px;color:var(--ink-2);font-size:var(--text-sm);line-height:1.6}

/* Generic content */
.content{padding:0}
.content-error{padding:24px 0}
.section{padding:18px 0;border-top:1px solid var(--line)}
.section:first-child{padding-top:0;border-top:0}
.section>h2{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:var(--r-pill);background:var(--well);color:var(--ink-2);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}
h2 .count{margin-left:8px;vertical-align:2px}
.sectionhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 12px}
.sectionhead.first,.sectionhead:first-child{margin-top:0}
.sectionhead .link,.card-head .link{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2);font-size:var(--text-sm)}
.card-head .link .ico,.sectionhead .link .ico{width:14px;height:14px}
.entry{padding:14px 0;border-bottom:1px solid var(--line)}
.entry:last-child{border-bottom:0}
.entry p{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.entry small{color:var(--ink-2)}
.entry strong{overflow-wrap:anywhere}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.row.wrap{flex-wrap:wrap}
.first{margin-top:0}
.empty{max-width:480px;padding:40px 0;margin:0 auto;text-align:center;color:var(--ink-2)}
.empty h2{margin:0 0 6px;color:var(--ink)}
.empty p{margin:0 0 16px}
.section-note{margin-top:18px;color:var(--ink-2);font-size:var(--text-sm)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.grid-2>.card+.card{margin-top:0}
.office-table{width:100%;border-collapse:collapse}
.office-table th{padding:0 12px 0 0}
.office-table td{padding:12px 12px 12px 0;vertical-align:top}
.office-table th:first-child,.office-table td:first-child{padding-left:0}
.office-table td small{display:block;margin-top:2px;color:var(--ink-2)}
.table-scroll{overflow:auto}
.money-line{font-size:var(--text-xl);font-weight:600;font-variant-numeric:tabular-nums}
.source-ref{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-2)}

/* Client list */
.list-card .card-head{margin-bottom:10px}
/* Even column rhythm: every column is left-aligned and stacks a main line over a small line, like the Client column. */
.list-card th:nth-child(1){width:32%}
.list-card th:nth-child(2){width:16%}
.list-card th:nth-child(3){width:16%}
.list-card th:nth-child(4){width:24%}
.list-card th:nth-child(5){width:12%}
.list-card td{padding-top:16px;padding-bottom:16px}
.owes-cell{white-space:nowrap;font-variant-numeric:tabular-nums}
.owes-cell strong{display:block;font-weight:600;font-size:var(--text-md)}
/* Status as a dot and plain text, not a pill, so it never has a box to line up against the amount. */
.status{display:flex;align-items:center;gap:6px;margin-top:3px;color:var(--ink-2);font-size:var(--text-xs)}
.status::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--ink-3)}
.status.warn{color:var(--warn)}.status.warn::before{background:var(--warn)}
.status.neg{color:var(--neg)}.status.neg::before{background:var(--neg)}
.next-action{color:var(--ink)!important;font-size:var(--text-sm)!important;font-weight:400!important}
#client-sort{margin-left:0}
.pin-hint{color:var(--ink-2);font-size:var(--text-sm)}

/* Client page header (Runey profile) */
.profile-head{display:grid;gap:18px;padding:0 0 20px}
.identity{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0}
.identity h1{overflow-wrap:anywhere}
.identity .sub{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:var(--text-md)}
.profile-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.meta-row{display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--ink-2);font-size:var(--text-sm)}
.meta-row span{display:inline-flex;align-items:center;gap:7px;overflow-wrap:anywhere}
.meta-row .ico{width:15px;height:15px}

/* Tabs: segmented pill */
.tabs{display:inline-flex;gap:2px;max-width:100%;margin:0 0 var(--gap);padding:4px;border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-soft);overflow-x:auto;scrollbar-width:none}
.tabs button{height:34px;padding:0 16px;border:0;border-radius:var(--r-pill);background:transparent;box-shadow:none;color:var(--ink-2)}
.tabs button:hover{background:var(--well);color:var(--ink)}
.tabs button.active{background:var(--rail);color:#fff}

.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--gap);align-items:start}
.profile-main{min-width:0}
.profile-main .empty{padding:24px 0}
.tab-card .sectionhead:first-child{margin-top:0}
.inspector{position:sticky;top:12px;font-size:var(--text-sm)}
.inspector h3{margin:0 0 14px;font-size:var(--text-md)}
.inspector .row{align-items:baseline}
.inspector .row .link{color:var(--ink-2);font-size:var(--text-sm)}
.inspector hr{margin:18px 0;border:0;border-top:1px solid var(--line)}
.inspector .related{display:flex;align-items:center;gap:9px;margin:10px 0}
.field{margin-bottom:14px}
.field label{display:block;margin-bottom:2px;color:var(--ink-2);font-size:var(--text-xs)}
.field p{margin:0;font-size:var(--text-sm);line-height:1.5;overflow-wrap:anywhere}
.mini{display:inline-grid;place-items:center;flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--well);color:var(--ink-2);font-size:10px;font-weight:600}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px}
.office-body{min-width:0}
.contact-panel{display:none}
.contact-panel .contact-basis{display:block;margin-top:4px;line-height:1.4;overflow-wrap:anywhere}
.contact-panel .contact-basis:empty{display:none}
.overview-details{display:grid;grid-template-columns:150px 1fr;gap:12px}
.overview-details dt{color:var(--ink-2)}
.overview-details dd{margin:0;overflow-wrap:anywhere}

/* Owes: money cards + balances card */
.owes-box{margin:0 0 var(--gap)}
.kpi .owes-amount{margin-top:10px}
.kpi-owes .sub{color:var(--ink-2)}
.owes-amount{font-size:var(--text-money);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.balances .card-head{margin-bottom:6px}
.owes-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 16px;padding:16px 0;border-top:1px solid var(--line)}
.owes-item strong{font-weight:500}
.owes-item .row{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap;gap:8px}
.owes-item .badge{margin-left:8px;vertical-align:1px}
.owes-item-amount{font-size:var(--text-lg);font-weight:600;font-variant-numeric:tabular-nums}
.balances>p{margin:12px 0 0}
.money-tiles{display:none}
.balance-band{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap);margin-bottom:18px}
.balance-band>div{padding:16px;border-radius:var(--r-inner);background:var(--well)}
.balance-band .sub{font-size:var(--text-xs);line-height:1.5}
.money{font-size:26px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.next-followup{margin-top:4px;font-size:var(--text-xl);font-weight:600}
.service-chips{display:flex;flex-wrap:wrap;gap:6px}
.services-panel .owes-item:first-of-type{border-top:0}

/* Follow-up rows */
.taskline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 0;border-top:1px solid var(--line)}
.card-head+.taskline,.taskline:first-child{border-top:0}
.taskline .task-content{flex:1 1 240px;min-width:0;line-height:1.45}
.taskline .task-content~*{flex-shrink:0}
.task-content .under{margin-top:2px}
.task-content .link{color:var(--ink-2);font-size:var(--text-xs);font-weight:400}
.task-title{font-size:var(--text-md)}
.task-done{color:var(--ink-3);text-decoration:line-through}
.taskline .badge{font-variant-numeric:tabular-nums}
.taskline>.link{color:var(--ink-2);font-size:var(--text-sm)}
.check{width:24px;height:24px;padding:0;flex-shrink:0;border-radius:50%;border:1.5px solid #8a8a8a;background:var(--surface);box-shadow:none}
.check:hover{border-color:var(--ink)}
.check.done{border-color:var(--ink);background:var(--ink);color:#fff}
.check .ico{width:12px;height:12px}
.task-page{padding:0}
.taskgroup{display:flex;justify-content:space-between;margin:20px 0 6px}
.taskgroup span{color:var(--ink-2);font-size:var(--text-xs)}
.task-page .taskline.paused{background:var(--warn-bg)}

/* This week (Runey activity calendar) */
.week .card-head{margin-bottom:12px}
.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line)}
.day{min-height:150px;padding:12px 10px;border-left:1px solid var(--line)}
.day:first-child{border-left:0;padding-left:0}
.day-head{display:flex;align-items:center;gap:6px;margin-bottom:10px;color:var(--ink-2);font-size:var(--text-xs)}
.day-num{color:var(--ink);font-weight:500}
.day.today .day-num{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--rail);color:#fff}
.day.past .day-head,.day.past .day-num{color:var(--ink-2)}
.day-count{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--well);color:var(--ink);font-size:10px;font-weight:600;line-height:18px;text-align:center}
.chip{display:flex;align-items:flex-start;gap:8px;width:100%;height:auto;margin-bottom:6px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-inner);text-align:left;white-space:normal;justify-content:flex-start;box-shadow:var(--shadow-soft)}
.chip strong{display:block;font-size:var(--text-xs);font-weight:500;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.chip small{margin-top:2px;color:var(--ink-2);font-size:11px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.chip>span:last-child{min-width:0;flex:1}
.chip-dot{flex-shrink:0;width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--ink)}
.day .more{color:var(--ink-2);font-size:var(--text-xs)}

/* Recent clients dock (Runey) */
.dock{position:fixed;z-index:15;left:50%;bottom:16px;display:flex;gap:6px;padding:6px;transform:translateX(calc(-50% + var(--rail-w) / 2));border-radius:var(--r-pill);background:rgba(255,255,255,.92);box-shadow:var(--shadow-pop);backdrop-filter:blur(8px)}
.dock-item{position:relative;width:42px;height:42px;padding:0;border:0;border-radius:50%;background:none;box-shadow:none}
.dock-item .tile{width:38px;height:38px}
.dock-label{align-self:center;padding:0 6px 0 10px;color:var(--ink-2);font-size:var(--text-xs);font-weight:500}
.dock-item[data-tip]:is(:hover,:focus-visible)::after{content:attr(data-tip);position:absolute;bottom:52px;left:50%;transform:translateX(-50%);padding:6px 12px;border-radius:var(--r-pill);background:var(--rail);color:#fff;font-size:var(--text-xs);white-space:nowrap;pointer-events:none}

/* History */
.timeline{margin-top:4px}
.event{position:relative;display:flex;gap:12px;padding:0 0 18px}
.event-icon{position:relative;z-index:1;display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--well);color:var(--ink-2)}
.event-icon .ico{width:14px;height:14px}
.event:not(:last-child):before{content:'';position:absolute;left:15px;top:30px;bottom:0;border-left:1px dashed var(--line-strong)}
.event-text{padding-top:4px;font-size:var(--text-sm);line-height:1.5}
.event-text small{display:block;margin-top:2px;color:var(--ink-2);font-size:var(--text-xs)}
.note-box{margin:8px 0;padding:14px 16px;border-radius:var(--r-inner);background:var(--well)}
.note-box p{margin:6px 0 0;font-size:var(--text-sm);line-height:1.65}
.note-meta{display:flex;justify-content:space-between;color:var(--ink-2);font-size:var(--text-xs)}

/* Charges, payments and old records */
.ledger th,.billing-table th{height:36px}
.ledger td,.billing-table td{vertical-align:top}
.ledger .amount,.billing-table .num{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}
.ledger td .link{color:var(--ink-2);font-size:var(--text-sm)}
.ledger .under{display:block;color:var(--ink-2)}
.ledger tr.voided td{color:var(--ink-3)}
.ledger tr.voided .amount{text-decoration:line-through}
.billing-total{display:flex;justify-content:flex-end;align-items:center;gap:30px;padding:16px 0;font-size:var(--text-sm)}
.billing-total strong{font-size:var(--text-lg)}
.billing-history+.billing-history{margin-top:28px}
.billing-history .evidence-detail summary{display:inline-flex}
.billing-history .evidence-detail p{min-width:130px;white-space:normal}
.evidence-detail{max-width:650px;margin-top:6px;color:var(--ink-2);font-size:var(--text-xs);overflow-wrap:anywhere}
.evidence-detail summary{cursor:pointer}
.evidence-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--text-xs)}
.source-archive{margin-top:18px;padding:14px 16px;border-radius:var(--r-inner);background:var(--well)}
.source-archive>summary,.review-evidence summary{cursor:pointer;color:var(--ink);font-weight:500;font-size:var(--text-sm)}
.source-archive[open]>summary{margin-bottom:14px}
.source-detail{font-size:var(--text-md);line-height:1.6}
.source-detail dt{margin-top:12px;color:var(--ink-2);font-size:var(--text-xs)}
.source-detail dd{margin:3px 0 0}
.source-detail .money{font-size:24px}

/* Review rows */
.review-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:16px 0;border-top:1px solid var(--line)}
.review-row>div{flex:1;min-width:0}
.review-row h3{margin:0 0 4px;line-height:1.5}
.review-row button{flex-shrink:0}
.review-value{margin:4px 0;font-size:var(--text-lg)}
.review-state{color:var(--ink-2)}
.review-state.assumed{color:var(--warn)}
.review-evidence{margin-top:8px;font-size:var(--text-sm);overflow-wrap:anywhere}
.review-evidence small{display:block;margin-top:4px}
.review-balance{padding:14px 0;border-top:1px solid var(--line)}
.review-balance p{margin-bottom:0}
.review-balance.held strong,.missing-date{color:var(--neg)}
.missing-date{font-weight:600}
.review-context{margin:12px 0;font-size:var(--text-sm);line-height:1.5}
.review-context>div{margin-top:6px;padding:8px 12px;border-radius:var(--r-sm);background:var(--well)}
.review-context strong,.review-context span,.review-context small{display:block}
.review-context>small{color:var(--ink-2)}

/* Dialogs: large rounded sheet */
dialog{width:520px;max-width:calc(100vw - 24px);max-height:90vh;padding:0;border:0;border-radius:24px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop)}
dialog::backdrop{background:rgba(20,20,20,.28);backdrop-filter:blur(3px)}
#editor{padding:0}
#editor form,#editor .consent-editor{padding:28px}
#editor h2{margin-bottom:2px;font-size:var(--text-xl)}
#editor h2+.muted{margin:0 0 6px;font-size:var(--text-sm)}
#editor label{display:block;margin:16px 0 6px;font-size:var(--text-sm);font-weight:500}
#editor input,#editor select,#editor textarea{display:block;width:100%;height:44px;padding:0 16px}
#editor textarea{height:auto;min-height:100px;padding:12px 16px;border-radius:var(--r-inner);resize:vertical;line-height:1.5}
#editor .form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:26px}
#editor .form-actions button{height:40px;padding:0 20px}
#editor p.muted,#editor .draft-hint{font-size:var(--text-sm)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--line)}
.modal-head button{width:32px;height:32px;padding:0;border-radius:50%}
.modal-body{padding:28px}
.modal-body .context{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-weight:500}
.modal-body label{display:block;margin-bottom:6px;font-size:var(--text-sm);font-weight:500}
.modal-body input,.modal-body select,.modal-body textarea{width:100%;height:44px;margin-bottom:16px;padding:0 16px}
.modal-body textarea{height:auto;min-height:100px;padding:12px 16px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:16px 28px 24px}
.modal-foot .hint{align-self:center;margin-right:auto;color:var(--ink-2);font-size:var(--text-xs)}
fieldset.choices{display:grid;gap:8px;margin:8px 0;padding:0;border:0}
fieldset.choices label{display:flex!important;align-items:center;gap:10px;margin:0!important;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-inner);cursor:pointer}
fieldset.choices label:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
fieldset.choices input{width:16px!important;height:16px!important;margin:0;accent-color:var(--ink)}
#editor label.payer-check{display:flex;align-items:flex-start;gap:10px;line-height:1.5;font-weight:400}
#editor .payer-check input{width:16px;min-width:16px;height:16px;margin-top:3px;accent-color:var(--ink)}
.payment-match label{display:block;margin:14px 0 6px;font-size:var(--text-sm);font-weight:500}
.payment-match select{display:block;width:100%;height:40px;padding:0 16px}
.payment-match .row{margin-top:12px}

/* Payer, consent and monthly billing */
.payer-context,.payer-card{display:grid;gap:4px;overflow-wrap:anywhere}
.payer-context{margin-top:16px;padding:14px 16px;border-radius:var(--r-inner);background:var(--well)}
.payer-option,.payer-progress{padding:14px 0;border-top:1px solid var(--line)}
.payer-option>button{margin-top:10px}
.payer-card small,.payer-progress small{color:var(--ink-2);line-height:1.5}
.payer-progress small{overflow-wrap:anywhere}
.payer-editor h3{margin:20px 0 10px}
.payer-editor [data-payer-back]{margin-top:12px}
.consent-editor>.row{align-items:flex-start}
.consent-editor>.row h2{max-width:330px}
.consent-record{padding:16px 0;border-top:1px solid var(--line)}
.consent-record p{margin:4px 0}
.consent-record ul{margin:4px 0;padding-left:20px}
.consent-record summary{cursor:pointer;font-size:var(--text-sm)}
.consent-record details p{color:var(--ink-2);font-size:var(--text-sm);overflow-wrap:anywhere}
.recurring-section{margin-bottom:24px}
.recurring-item{padding:18px 0;border-top:1px solid var(--line)}
.recurring-item h3{margin:0}
.recurring-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:14px 0}
.recurring-details dt{margin-bottom:3px;color:var(--ink-2);font-size:var(--text-xs)}
.recurring-details dd{margin:0;overflow-wrap:anywhere}
.recurring-status{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin:10px 0;font-size:var(--text-sm)}
.recurring-status span{color:var(--ink-2)}
.recurring-item .actions{margin-top:12px}
.recurring-item details p{white-space:pre-wrap;overflow-wrap:anywhere}
dialog .recurring-details{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Results, reports, guide and printed sheets */
.results{padding:0}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin-bottom:var(--gap)}
.metric-grid>div{padding:18px 20px;border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-soft)}
.report-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:var(--gap);padding:16px 20px;border-radius:var(--r-card);background:var(--surface)}
.report-controls label{display:grid;gap:6px;font-size:var(--text-sm);font-weight:500}
.report-controls input{height:36px;padding:0 14px;border-radius:var(--r-pill)}
.report-basis{max-width:900px;color:var(--ink-2);line-height:1.6}
.report-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.report-counts{display:grid;grid-template-columns:minmax(0,1fr) minmax(30px,1fr);gap:10px}
.report-counts dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.weekly-report .content,.morning-sheet .content,.results .content{padding:22px 24px;border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-soft)}
.weekly-report .office-table th{white-space:normal;overflow-wrap:anywhere}
.weekly-report .attribution-table{table-layout:fixed}
.weekly-report .attribution-table td{overflow-wrap:anywhere}
.office-guide{max-width:820px}
.office-guide p{font-size:15px;line-height:1.7;color:#3d3d3d}
.office-guide .section>h2{margin-bottom:4px}
.morning-sheet h1,.weekly-report h1{font-family:var(--font-doc);font-weight:600;font-size:34px;letter-spacing:-.01em}
.morning-sheet .entry small{overflow-wrap:anywhere}
.call-sheet{break-inside:avoid}
.writing-line{padding:10px 0 32px;border-bottom:1px solid var(--line-strong);color:var(--ink-2)}

@media(max-width:1180px){
  .profile-grid{grid-template-columns:1fr}
  .inspector{position:static}
}
@media(max-width:900px){.grid-2{grid-template-columns:1fr}}
@media(max-width:800px){
  body>.notice{padding-left:14px}
  .profile-bar{align-items:flex-start}
  .profile-bar .actions{width:100%}
  .tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:20px}
  .tabs button{padding:0 6px}
  .list-card table{min-width:0}
  .list-card :is(th,td):is(:nth-child(3),:nth-child(4),:nth-child(5)){display:none}
  .list-card th:nth-child(1){width:auto}
  .owes-cell,.list-card th:nth-child(2){text-align:right}
  .owes-cell .status{justify-content:flex-end}
  .list-card .toolbar,#search{flex:1 1 100%}
  .list-card .toolbar select{flex:1}
  .days{grid-template-columns:1fr;border-top:0}
  .day{min-height:0;padding:10px 0;border-left:0;border-top:1px solid var(--line)}
  .day:not(.today):not(:has(.chip)){display:none}
  .owes-item{grid-template-columns:1fr}
  .dock{display:none}
  .billing-table{min-width:600px!important}
  .office-table{min-width:520px}
  .overview-details{grid-template-columns:110px 1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi{min-height:0;padding:14px 16px}
  .kpi-value,.kpi .owes-amount{font-size:22px}
  .kpi .meter span{display:none}
  .review-row{flex-direction:column;gap:12px}
  .recurring-details{grid-template-columns:repeat(2,minmax(0,1fr))}
  .report-detail-grid,.metric-grid{grid-template-columns:1fr}
  .login{margin:6vh 12px;padding:28px 22px}
  #toast{left:12px;right:12px;bottom:84px}
}

@media print{
  @page{size:letter;margin:14mm}
  html,body{background:#fff;color:#111;font-size:11pt}
  .sidebar,.topbar,.dock,.pagehead button,.content button,.taskline button,.week,.actions,.report-controls,.practice-banner,.rehearsal-banner,body>.notice{display:none!important}
  .app{padding:0}
  .workspace{padding:0;max-width:none}
  .card,.kpi,.metric-grid>div,.weekly-report .content,.morning-sheet .content{box-shadow:none;border:1px solid #ddd;padding:12pt}
  .pagehead{padding:0 0 12pt}
  .entry,.metric-grid,.weekly-report .section{break-inside:avoid}
  .money,.owes-amount{font-size:22pt}
  .office-table{min-width:0!important}
  .table-scroll{overflow:visible}
  .weekly-report .office-table th,.weekly-report .office-table td{padding:6pt;font-size:9pt}
}

/* Pages whose body is a plain content block get the same card treatment */
.pagehead+.content,.workspace>.tabs+.content{padding:22px 24px;border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-soft)}
@media(max-width:800px){.pagehead+.content{padding:18px 16px}}
td.actions{white-space:nowrap;text-align:right}td.actions button+button{margin-left:8px}.login .link{font:inherit}
