@font-face{font-family:AppSans;src:url('/static/sans.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--navy:#20344a;--gold:#f2c14e;--ink:#18212b;--muted:#5e6976;--line:#dfe4e9;--bg:#f6f7f9;--green:#136343;--radius:4px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:AppSans,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55}a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer}h1,h2,p{margin-top:0}h1{font-size:30px;line-height:1.2;font-weight:650;letter-spacing:-.8px;margin-bottom:10px}h2{font-size:17px;line-height:1.35;font-weight:650;margin-bottom:18px}p{margin-bottom:18px}strong{font-weight:650}small{display:block;font-size:12px;color:var(--muted)}:focus-visible{outline:3px solid #8a5a00;outline-offset:3px}input:focus,select:focus,textarea:focus{border-color:#8a5a00;outline:2px solid #f2c14e66;outline-offset:0}.skip{position:fixed;top:-60px;left:12px;background:var(--gold);padding:12px;z-index:50}.skip:focus{top:12px}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#fff;padding:32px 20px 20px;display:flex;flex-direction:column;min-height:100vh}.brand{display:flex;align-items:center;gap:11px;color:inherit;font-size:17px;font-weight:600;line-height:1.1;text-decoration:none!important}.brand-plus{display:block;font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:400;margin-top:5px}.brand-mark{display:flex;align-items:center;justify-content:center;width:38px;height:40px;background:var(--gold);color:var(--navy);font-size:24px;font-weight:700;border-radius:3px}.brand-mark span{font-size:17px;align-self:flex-start;margin-top:4px}.workspace-label{font-size:10px;letter-spacing:1.5px;color:#afbdce;margin-top:42px;margin-bottom:10px}.firm-switch{display:block;color:#fff;padding:12px 10px;border:1px solid #526477;border-radius:var(--radius);overflow-wrap:anywhere}.firm-switch span{display:block;font-size:11px;margin-top:6px;color:#c5d0dc}.sidebar nav{display:grid;gap:5px;margin-top:30px}.sidebar nav a{color:#d8e1eb;padding:10px 12px;border-radius:3px;font-size:13px}.sidebar nav a[aria-current]{background:#f2c14e;color:var(--navy);font-weight:650}.sidebar nav a:hover{background:#344b63;text-decoration:none;color:#fff}.nav-divider{height:1px;background:#42576c;margin:16px 0}.sidebar-bottom{margin-top:auto;padding-top:45px;display:grid;gap:8px}.version{font-size:11px;color:#c3cfdb}.user-email{font-size:11px;overflow-wrap:anywhere;color:#d1dbe5}.logout{border:0;background:none;color:#fff;padding:4px 0;font-size:12px}.main-shell{min-width:0;display:flex;flex-direction:column}.topbar{height:66px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:#fff}.topbar>span:first-child{font-size:10px;letter-spacing:1.2px;color:var(--muted)}main{padding:34px 36px;flex:1;max-width:1700px;width:100%;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:10px;color:#687584;letter-spacing:1.7px;text-transform:uppercase;margin-bottom:9px;font-weight:600}.intro{color:var(--muted);margin-bottom:24px}.button{border:1px solid transparent;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border-radius:var(--radius);font-size:12px;font-weight:600;white-space:normal;text-align:center;line-height:1.4}.button:hover{text-decoration:none;filter:brightness(.96)}.primary{background:var(--gold);color:#172a3b;border-color:#e3b33b}.subtle{background:white;border-color:#ccd4dc;color:var(--navy)}.danger{background:#fff1ed;color:#8d2e1b;border-color:#d7a699}.fit{width:fit-content}.wide{width:100%}.badge{display:inline-block;border-radius:3px;padding:4px 8px;font-size:10px;font-weight:600;line-height:1.3;white-space:nowrap}.test{background:#fff2c9;color:#6c4b00;border:1px solid #e8cf88}.posted{background:#e8f3ec;color:#185437}.draft{background:#f7efda;color:#725317}.neutral{background:#edf0f3;color:#526171}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:24px}.metric{border:1px solid var(--line);background:#fff;padding:24px;border-radius:var(--radius);border-top:3px solid var(--navy)}.metric>span{display:block;font-size:12px;color:var(--muted)}.metric>strong{display:block;font-size:30px;letter-spacing:-.8px;margin:10px 0 12px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric.accent{border-top-color:var(--gold)}.income{color:var(--green)}.panel{border:1px solid var(--line);background:#fff;border-radius:var(--radius);padding:24px;margin-bottom:24px;min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.section-heading h2{margin:0}.section-heading a{font-size:12px}.section-heading .eyebrow{margin:0}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.todo-row,.account-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #edf0f3}.todo-row{font-size:13px}.todo-row strong{color:#8a5a00}.account-row strong{font-size:13px}.account-row:last-of-type{border-bottom:0}.panel>.small:last-child{margin-top:15px;margin-bottom:0}.table-panel{padding:0;overflow:hidden}.table-panel>.section-heading{padding:24px 24px 0}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;background:#fafbfc;color:#627080;font-size:10px;letter-spacing:.5px;font-weight:600;padding:14px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:16px 20px;border-bottom:1px solid #edf0f3;vertical-align:middle;max-width:340px;overflow-wrap:anywhere}td small{margin-top:4px;font-size:10px}.number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.nowrap{white-space:nowrap}.strong-link{font-weight:600}.empty{text-align:center;padding:44px 20px;color:var(--muted);line-height:1.8}.table-note{padding:14px 20px;font-size:11px;color:var(--muted);margin:0}.muted{color:var(--muted)}.small{font-size:12px}.app-footer{padding:10px 36px 24px;color:#6b7784;font-size:10px;display:flex;justify-content:space-between;gap:10px}.filters{display:flex;align-items:flex-end;gap:14px;padding:20px;flex-wrap:wrap}.filters label{margin:0}.filters .search{flex:1;min-width:180px}label{display:block;font-size:11px;font-weight:600;letter-spacing:.15px;margin-bottom:16px}input,select,textarea{display:block;margin-top:7px;background:#fff;color:var(--ink);border:1px solid #cad3dc;border-radius:3px;padding:10px 11px;width:100%;min-height:42px;font-size:13px;font-weight:400;letter-spacing:normal}input::placeholder,textarea::placeholder{color:#7b8792}textarea{resize:vertical}input[type=file]{padding:8px;max-width:100%}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea,select:disabled{color:#485666;background:#f5f7f9;opacity:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-actions{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px}.stack{display:flex;flex-direction:column;gap:0}.error{padding:16px;background:#fff0ec;color:#852e1d;border:1px solid #dfb2a7;border-radius:4px;margin-bottom:24px}.booking-status{display:flex;align-items:center;gap:12px;margin-bottom:20px;font-size:12px;color:var(--muted)}.booking-workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr);gap:24px;align-items:start}.preview-panel{position:sticky;top:16px;padding:20px}.receipt-preview{height:640px;max-height:75vh;background:#edf0f3;display:flex;align-items:center;justify-content:center;overflow:auto;border:1px solid var(--line);margin-bottom:12px}.receipt-preview p{text-align:center;line-height:1.9;font-size:13px;padding:20px}.receipt-preview iframe{width:100%;height:100%;border:0;background:white}.receipt-preview img{max-width:100%;height:auto;max-height:none;object-fit:contain;image-orientation:from-image;align-self:flex-start}.reversal{margin-top:0}.reversal summary{color:#8a3024}.reversal p{margin-top:16px}.upload-panel{display:flex;align-items:center;justify-content:space-between;gap:24px}.upload-panel h2{margin-bottom:8px}.upload-panel p{margin:0;font-size:12px}.upload-form{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.file-label{margin:0}.profile{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.profile dt{font-size:11px;color:var(--muted)}.profile dd{margin:7px 0;font-size:14px;font-weight:600}.add-details{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}summary{cursor:pointer;font-weight:600;font-size:13px}.add-details>form{margin-top:20px}.audit-detail{white-space:pre-wrap;word-break:break-word;font-size:10px}.auth-shell{max-width:470px;padding:64px 20px}.auth-brand{display:flex;justify-content:center;margin-bottom:36px}.auth-card{background:#fff;border:1px solid var(--line);padding:32px;border-radius:4px;box-shadow:0 10px 40px #20344a08}.auth-card h1{font-size:25px;margin-bottom:20px}.auth-card>p{font-size:13px}.auth-note{text-align:center;font-size:11px;color:var(--muted);margin-top:20px}.secret{font-family:monospace;font-size:12px}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;padding:16px;background:#f5f7f9;font-size:12px}.firms-shell{max-width:1100px;padding:40px 24px}.firms-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:60px}.firm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:36px}.firm-card{background:white;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:4px;padding:24px;transition:box-shadow .15s}.firm-card:hover{box-shadow:0 5px 20px #20344a12;text-decoration:none}.firm-card h2{margin:20px 0;overflow-wrap:anywhere}.firm-card>span:last-child{font-size:12px;display:flex;justify-content:space-between}.create-firm{max-width:800px}.create-firm>p{font-size:13px}.create-firm button{margin-top:6px}[hidden]{display:none!important}
@media(min-width:1500px){.booking-workspace{grid-template-columns:minmax(0,1.5fr) minmax(400px,1fr)}.receipt-preview{height:780px}}
@media(max-width:1150px){.shell{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:26px 14px}.brand{font-size:15px}main{padding:28px 24px}.topbar{padding:0 24px}.metrics{gap:12px}.metric{padding:18px}.metric>strong{font-size:25px}.booking-workspace{grid-template-columns:minmax(0,1fr)}.preview-panel{position:static}.receipt-preview{height:450px}.profile{grid-template-columns:1fr 1fr}.upload-panel{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.shell{display:block}.sidebar{min-height:0;padding:18px 16px}.sidebar .brand{margin-bottom:16px}.workspace-label,.sidebar-bottom .version,.sidebar-bottom .user-email{display:none}.firm-switch{padding:9px 12px}.firm-switch span{display:inline;margin-left:12px}.sidebar nav{display:flex;gap:4px;flex-wrap:wrap;margin-top:14px}.sidebar nav a{padding:8px 10px;font-size:11px}.nav-divider{display:none}.sidebar-bottom{padding:0;margin-top:12px}.sidebar-bottom form{align-self:flex-end}.topbar{height:52px;padding:0 18px}main{padding:25px 18px}.page-heading{align-items:flex-start;flex-direction:column;gap:12px}h1{font-size:27px}.page-heading>.button{width:100%}.metrics{grid-template-columns:1fr}.metric{padding:18px 20px}.metric>strong{font-size:30px;margin:6px 0}.dashboard-grid{grid-template-columns:1fr;gap:0}.panel{padding:18px}.table-panel{padding:0}.table-panel>.section-heading{padding:18px 18px 0}.section-heading{align-items:flex-start}th,td{padding:12px 14px}.table-scroll table{min-width:600px}.app-footer{padding:12px 18px 20px;flex-direction:column}.filters{padding:16px}.filters label{flex:1;min-width:120px}.filters .button{flex:1}.booking-workspace{display:block}.receipt-preview{height:430px}.entry-panel .form-grid{gap:0 12px}.booking-status{align-items:flex-start}.upload-form{display:block;width:100%}.upload-form .button{margin-top:14px;width:100%}.form-actions>.button{width:100%}.profile{gap:12px}.firms-shell{padding:24px 18px}.firms-top{margin-bottom:35px}.firm-grid{grid-template-columns:1fr}.auth-shell{padding:40px 16px}.auth-card{padding:24px}.create-firm .form-grid{grid-template-columns:1fr}.recovery-codes{font-size:11px;padding:12px}.receipt-preview iframe{min-width:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Receipt workflow and clear table actions */
.success{padding:16px 18px;background:#edf7f1;color:#185a3c;border:1px solid #b9daca;border-radius:5px;margin-bottom:24px}
.back-link{display:inline-block;margin-bottom:18px;font-size:14px;font-weight:600}
.booking-row{cursor:pointer}.booking-row:hover,.booking-row:focus-within{background:#fff9e9}
.row-action{white-space:nowrap;min-height:42px}.receipt-status{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;font-size:13px;font-weight:650;white-space:nowrap}
.receipt-status svg{width:23px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.receipt-status.present{background:#eaf5ef;color:#226246}.receipt-status.missing{background:#fff0d7;color:#854d0b}
.attached-receipts{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.attached-receipts h3{font-size:14px}.attached-receipts>a{display:block;overflow-wrap:anywhere;margin:9px 0}.attached-receipts details{margin-top:18px}.attached-receipts details label{margin-top:16px}
.upload-panel{display:block}.upload-form{align-items:stretch;margin-top:20px}.drop-zone{flex:1;border:2px dashed #b4c0cd;background:#f8fafc;padding:24px;border-radius:8px;min-width:0;transition:background .15s,border-color .15s}.drop-zone.drag-over{background:#fff5d7;border-color:#b88a19}.drop-zone:focus-within{outline:2px solid #b88a19;outline-offset:3px}.drop-zone p{margin:12px 0 0}.drop-zone ul{margin:12px 0 0;padding-left:20px;font-size:13px;overflow-wrap:anywhere}.upload-error{color:#852e1d;font-weight:600}.upload-form>button{align-self:flex-end;min-height:46px}.receipt-actions{display:flex;flex-wrap:wrap;gap:8px}.receipt-actions .button{font-size:12px}button:disabled{opacity:.65;cursor:wait}
@media(max-width:760px){.drop-zone{padding:16px}.receipt-status{padding:6px 8px}.receipt-actions{min-width:170px}.booking-status{flex-wrap:wrap}}

.assignment-workspace{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,1fr);gap:24px;align-items:start}
.assignment-preview .receipt-preview{height:70vh;min-height:420px}.receipt-filename{overflow-wrap:anywhere;font-size:13px}.assignment-search{display:flex;align-items:flex-end;gap:12px;margin-bottom:22px}.assignment-search label{flex:1;margin:0}.assignment-card{border:1px solid var(--line);border-radius:7px;padding:18px;margin-bottom:14px;background:#fff}.assignment-card-heading{display:flex;justify-content:space-between;gap:16px}.assignment-card-heading>strong:first-child{overflow-wrap:anywhere}.assignment-card>p{margin:6px 0;color:var(--muted);font-size:13px}.assignment-card dl{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;font-size:12px;margin:14px 0}.assignment-card dt{color:var(--muted)}.assignment-card dd{margin:3px 0;overflow-wrap:anywhere}.assignment-card-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.assignment-card-actions>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.neutral-note{padding:14px 16px;background:#edf3fa;color:#20344a;border-left:3px solid #708eab;margin-bottom:20px;font-size:13px}.neutral-metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px}.neutral-metrics strong{display:block;font-size:23px;margin-top:5px}.booking-kind-label{margin-top:5px;font-weight:600}.neutral-tag{color:#47627e}
@media(max-width:1050px){.assignment-workspace{grid-template-columns:1fr}.assignment-preview{position:static}.assignment-preview .receipt-preview{height:50vh;min-height:300px}}
@media(max-width:500px){.assignment-card-heading{flex-direction:column;gap:5px}.assignment-card dl{grid-template-columns:1fr 1fr}.assignment-card-actions{align-items:stretch;flex-direction:column}.assignment-card-actions button{width:100%}.neutral-metrics{grid-template-columns:1fr}}
.journal-filters{align-items:end;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.journal-filters .search{grid-column:span 2;min-width:0}.journal-tools,.pagination{padding:16px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.pagination{justify-content:space-between}.split-toggle{display:flex;gap:10px;align-items:center;padding:14px;background:#f1f5f8;border-radius:4px}.split-toggle input{width:18px;min-height:18px;margin:0;accent-color:#20344a}.allocation-line{border:1px solid var(--line);background:#f8fafc;padding:16px;border-radius:5px;margin-bottom:16px}.allocation-line .section-heading{margin-bottom:14px}.allocation-line .button{min-height:34px;padding:6px 10px}.allocation-line .line-private{padding-top:26px}.allocation-line h3{margin:0}.attached-item{padding:10px 0;border-bottom:1px solid var(--line)}.attached-item summary{font-size:11px;margin-top:7px;color:#8a3024}.attached-item details label{margin-top:10px}.account-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.account-card{display:flex;flex-direction:column;gap:10px;color:var(--ink)}.account-card strong{font-size:23px}.account-card.selected{border:2px solid var(--navy);background:#f5f8fb}.check-form{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;gap:16px;align-items:end}.check-form label{margin:0}.check-form+.small{margin-top:16px}
@media(max-width:1100px){.journal-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.account-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.check-form{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.account-cards,.check-form,.journal-filters{grid-template-columns:1fr}.journal-filters .search{grid-column:auto}.allocation-line .form-grid{grid-template-columns:1fr}.allocation-line .line-private{padding:0 0 12px}}
.tax-fields{margin:1.5rem 0;padding:1rem;border:1px solid #d5dce6;border-radius:12px;background:#f7f9fc}.tax-confirm{display:flex;align-items:flex-start;gap:.7rem;margin-top:1rem;line-height:1.5}.tax-confirm input{width:auto;margin-top:.3rem;flex:none}.report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.3rem 0}.report-cards>div{background:#f4f7fb;border-radius:10px;padding:1.2rem}.report-cards span,.report-cards strong{display:block}.report-cards strong{font-size:1.5rem;margin-top:.5rem;font-variant-numeric:tabular-nums}@media(max-width:650px){.report-cards{grid-template-columns:1fr}}
.enrollment-qr{display:block;max-width:100%;width:300px;height:auto;margin:1rem auto;image-rendering:pixelated;background:white}

.tax-review-line{padding:1rem 0;border-bottom:1px solid var(--border,#304254);margin-bottom:1rem}.tax-review-line h3{margin-top:0}
