:root{--ink:#193e35;--muted:#5f7067;--line:#e2e7df;--bg:#f6f7f2;--green:#285b46;--green-hover:#194a35;--lime:#ddec9e;--surface:#ffffff;--surface-card:#ffffff;--surface-subtle:#f0f3eb;--surface-active:#e6ede0;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",sans-serif;--font-serif:Georgia,Cambria,"Times New Roman",Times,serif;--font-mono:ui-monospace,"SF Mono","Menlo",Monaco,Consolas,monospace;--status-success-bg:#dcfce7;--status-success-ink:#166534;--status-success-border:#bbf7d0;--status-warning-bg:#fef3c7;--status-warning-ink:#92400e;--status-warning-border:#fde68a;--status-danger-bg:#fee2e2;--status-danger-ink:#991b1b;--status-danger-border:#fecaca;--status-info-bg:#e0f2fe;--status-info-ink:#075985;--status-info-border:#bae6fd;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 12px rgba(25,62,53,0.06),0 1px 3px rgba(25,62,53,0.04);--shadow-lg:0 12px 28px rgba(25,62,53,0.10),0 4px 8px rgba(25,62,53,0.04)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface,#fff);color:var(--ink);padding:8px 14px;font-weight:600;font-family:var(--font-sans);min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}button:hover:not(:disabled){background:var(--surface-subtle);border-color:#cbdec0}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(40,91,70,.25)}a{color:var(--green)}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#194a35}aside{position:fixed;inset:0 auto 0 0;width:236px;background:#fff;border-right:1px solid var(--line);padding:33px 23px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:17px;font-weight:bold;line-height:1.4;white-space:nowrap}.brand small{display:block;font-size:8px;letter-spacing:1.5px;font-weight:normal;margin-top:3px}.brand-icon{background:var(--green);border-radius:12px;width:38px;height:42px;display:flex;align-items:center;justify-content:center;color:#fff;font:26px Georgia;flex-shrink:0}.brand-icon span{font-size:18px;color:var(--lime)}.nav-label{font-size:10px;letter-spacing:1.7px;color:#8b958d;margin-top:58px;margin-left:12px}nav{display:grid;gap:7px}nav button{border:0;background:transparent;text-align:left;color:#78837c;font-size:18px;padding:12px 14px}nav button span{font-size:14px;margin-left:12px}nav button.active{background:#eaf0e4;color:var(--green)}.sidebar-bottom{margin-top:auto;font-size:12px}.private-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6d934e;margin-right:5px}.sidebar-bottom p{color:var(--muted);font-size:11px}.sidebar-bottom button{border:0;padding-left:0;font-size:12px}main{margin-left:236px}header{height:85px;padding:0 42px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1px;color:var(--muted)}header b{margin:0 16px;color:#b4bcb3}header #breadcrumb{color:var(--ink);letter-spacing:0;font-size:12px}.pill{background:#edf1e6;border:1px solid var(--line);padding:5px 12px;border-radius:20px;font-size:10px;letter-spacing:0}.content{max-width:1510px;margin:auto;padding:40px 42px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:bold;color:#7b8d72;margin:0 0 8px}h1{font-family:var(--font-serif);font-weight:500;font-size:32px;letter-spacing:-.5px;line-height:1.25;margin:8px 0 12px}h2{font-family:var(--font-serif);font-weight:500;font-size:26px;letter-spacing:-.4px;line-height:1.3;margin:10px 0}h3{font-family:var(--font-sans);font-size:17px;font-weight:700;letter-spacing:-.2px;margin:0 0 10px}.page-heading p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:25px}.toolbar>button{margin-left:auto;font-size:12px}.tabs{display:flex;background:#e9ede5;border-radius:8px;padding:3px}.tabs button{border:0;background:transparent;padding:6px 15px;font-size:12px}.tabs button.active{background:white;box-shadow:0 1px 4px #0001}.toolbar input{width:170px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:24px}.stat{padding:22px 20px}.stat p{font-size:12px;margin:0}.stat h2{font-size:32px;margin:22px 0 12px;white-space:nowrap}.stat small{font-size:10px;color:var(--muted)}.stat em{font:14px Arial;color:var(--muted)}.stat.accent{background:var(--green);color:#fff;border-color:var(--green)}.stat.accent small{color:#c9d7be}.two-col{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-bottom:24px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}.panel-heading h3{margin:0}.panel-heading button{border:0;font-size:11px;padding:6px}.subtle{font-size:11px;color:var(--muted)}.mileage-feature{background:#eef1e2;padding:27px 30px;position:relative;overflow:hidden}.mileage-feature h2{font-family:Georgia,serif;font-size:30px}.mileage-feature p:not(.eyebrow){font-size:12px;color:#6c7d65}.mileage-feature button{background:var(--green);color:#fff;border:0;font-size:12px;margin-top:10px}.mileage-feature small{display:block;color:#7d8c73;font-size:10px;margin-top:15px}.feature-icon{float:right;font:60px Georgia;color:#9bb273;margin-top:15px}.empty{text-align:center;padding:35px 10px;color:var(--muted);font-size:13px}.empty strong{display:block;color:var(--ink);font-size:15px;margin:8px}.bar-row{margin:18px 0;font-size:12px}.bar-row>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px}.bar-track{background:#f0f3eb;border-radius:4px;height:7px;overflow:hidden}.bar-fill{height:7px;background:#88a773;border-radius:4px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--muted);font-weight:normal;font-size:10px;text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--line);padding:12px 10px}td{padding:15px 10px;border-bottom:1px solid #edf0e9}td small{display:block;color:var(--muted);font-size:10px}.amount{text-align:right;white-space:nowrap;font-weight:600;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.badge{padding:3px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;background:var(--surface-subtle);color:var(--muted);white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.badge.review{background:var(--status-warning-bg);color:var(--status-warning-ink)}.badge.personal{background:var(--surface-subtle);color:var(--muted)}button.badge{border:0;font-weight:500;line-height:inherit;display:inline-block;letter-spacing:inherit}button.badge.clickable{cursor:pointer;transition:all .15s ease}button.badge.clickable:hover{background:#f5dfb8;filter:brightness(.97);box-shadow:0 1px 2px rgba(0,0,0,.08)}.row-action{padding:4px 7px;border:0;font-size:11px}.row-action.mark-reviewed{background:#eaf0e4;color:var(--green);border:1px solid #d0dec4;border-radius:6px;font-weight:600;margin-right:4px;transition:all .15s ease}.row-action.mark-reviewed:hover{background:var(--green);color:white;border-color:var(--green)}.footnote{color:#8c978a;font-size:10px;text-align:center;margin-top:22px}.note{background:#edf1e3;border:1px solid #dde5d1;padding:25px;border-radius:12px;margin-bottom:24px}.note p{font-size:13px;color:#68765e}.note a{font-size:12px}.hidden{display:none!important}label{display:block;font-size:12px;font-weight:600;margin-bottom:17px}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 12px;background:var(--surface,#fff);color:var(--ink);margin-top:6px;min-height:40px;font-family:var(--font-sans);font-size:13.5px;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(40,91,70,.15)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}textarea{min-height:76px;resize:vertical}.allocation{padding:10px;background:#edf2e6;border-radius:7px;font-size:12px}dialog{border:1px solid var(--line);border-radius:var(--radius-xl,16px);width:540px;max-width:min(540px,94vw);max-height:min(88vh,840px);max-height:min(88dvh,840px);overflow-y:auto;overscroll-behavior:contain;padding:0;background:var(--surface,#fff);color:var(--ink);box-shadow:0 24px 60px rgba(12,26,19,.24),0 4px 16px rgba(12,26,19,.08);margin:auto}dialog::backdrop{background:rgba(12,28,21,.52);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}dialog h2{font-family:var(--font-serif);font-size:20px;font-weight:500;margin:0;letter-spacing:-.3px}dialog form{padding:0 26px 24px;display:block;position:relative}dialog .panel-heading{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 26px 16px;margin:0 -26px 20px -26px;border-bottom:1px solid var(--line);background:var(--surface,#fff)}dialog [id^="close-"],dialog .panel-heading button[aria-label="Close"]{border:1px solid transparent;background:transparent;color:var(--muted);width:32px;height:32px;min-height:32px;border-radius:var(--radius-pill);padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:500;line-height:1;cursor:pointer;transition:all .15s ease;flex-shrink:0}dialog [id^="close-"]:hover,dialog .panel-heading button[aria-label="Close"]:hover{background:var(--surface-subtle);color:var(--ink);border-color:var(--line)}dialog form>button.primary:last-child{position:sticky;bottom:0;z-index:10;width:100%;margin-top:20px;box-shadow:0 -8px 16px rgba(255,255,255,.95)}button .ui-icon{width:15px;height:15px;flex:0 0 15px;display:inline-block;vertical-align:middle;margin-right:4px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#193e35;color:white;padding:13px 22px;border-radius:9px;box-shadow:0 5px 30px #0002;z-index:20;max-width:90vw}#calendar,.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekdays{text-align:center;font-size:10px;color:var(--muted);margin:15px 0}#calendar button{padding:8px 0 6px;border:1px solid transparent;border-radius:8px;background:#f4f6ef;font-weight:normal;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;cursor:pointer;transition:all .15s ease}#calendar button .cal-day-num{font-size:13px;font-weight:600;line-height:1}#calendar button .cal-commute-icon{font-size:12px;line-height:1;margin-top:2px}#calendar button.logged{background:#eaf2e8;border-color:#cbdec0;color:#1b4d2e}#calendar button.selected{background:var(--green);color:white;border-color:var(--green)}#calendar button.selected.logged{background:var(--green);color:white;border-color:var(--green)}#calendar button.selected .cal-commute-icon{filter:brightness(1.6)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.login{display:grid;place-items:center;min-height:100vh;background:#edf1e4}.login-card{margin:0;width:420px;max-width:92vw;background:white;padding:42px;border:1px solid var(--line);border-radius:18px;box-shadow:0 15px 60px #2546310a}.login-card .brand-icon{margin-bottom:27px}.login-card p{color:var(--muted)}.login-card form{margin:25px 0}.login-card button{width:100%}.login-card small{font-size:10px;color:var(--muted)}.google-button{display:block;text-align:center;text-decoration:none;margin:25px 0;padding:12px;background:var(--green);color:#fff;border-radius:8px;font-weight:600}.report-title{margin-top:35px}@media(min-width:1600px){.content{padding-top:55px}}@media(max-width:1150px){aside{width:200px;padding:30px 16px}.brand{font-size:14px}main{margin-left:200px}.content{padding:30px 25px}header{padding:0 25px}.stats{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr 1fr}.stat h2{margin:12px 0}}@media(max-width:760px){aside{position:static;width:auto;padding:16px;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:18px}.brand-icon{width:32px;height:36px}.nav-label,.sidebar-bottom{display:none}nav{display:flex;margin-top:17px;gap:3px;overflow:auto}nav button{padding:8px 9px;font-size:14px;white-space:nowrap}nav button span{margin-left:3px;font-size:11px}main{margin:0}header{height:45px;padding:0 20px}.pill{display:none}.content{padding:26px 18px}h1{font-size:29px}.page-heading{align-items:start;flex-wrap:wrap;gap:16px;margin-bottom:22px}.page-heading>.primary{padding:9px 14px;font-size:12px}.toolbar{gap:7px;flex-wrap:wrap}.toolbar input{width:151px}.toolbar>button{padding:8px 10px}.stats{gap:10px}.stat{padding:17px 13px}.stat p{font-size:11px}.stat h2{font-size:25px}.stat small{font-size:9px}.two-col{grid-template-columns:1fr;gap:15px}.panel{padding:20px 16px}.panel-heading{flex-wrap:wrap;gap:8px}.panel-heading input{width:170px}.form-grid{gap:10px}.login-card{padding:30px}.actions button{width:100%}td,th{padding:12px 6px}}@media print{aside,header,.toolbar,.page-heading button,.actions,#toast,.footnote{display:none!important}main{margin:0}.content{padding:0}.page{display:none!important}#reports{display:block!important}.panel{border:0;padding:0}body{background:white;color:black}.page-heading{margin-bottom:15px}table{font-size:10px}tr{break-inside:avoid}}
progress{width:100%;height:7px;border:0;border-radius:4px;background:#f0f3eb}progress::-webkit-progress-bar{background:#f0f3eb;border-radius:4px}progress::-webkit-progress-value{background:#88a773;border-radius:4px}progress::-moz-progress-bar{background:#88a773;border-radius:4px}
.panel{min-width:0}@media(max-width:760px){nav{gap:0}nav button{flex:1;padding:8px 5px}nav button span{font-size:10px;margin-left:0}.toolbar{margin-bottom:18px}}@media print{.table-wrap{overflow:visible}}
.brand{flex-direction:column;gap:6px;white-space:normal}.company-logo{display:block;width:175px;max-width:100%;height:auto;object-fit:contain;margin-bottom:2px}.brand>small{font-size:9px;letter-spacing:2px;color:var(--muted);text-align:left}.login-logo{display:block;width:230px;max-width:85%;height:auto;object-fit:contain;margin:0 auto 20px}.reimbursement-panel{margin-bottom:24px;background:#f0f4ec}.payment-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:20px 0}.payment-totals small{display:block;color:var(--muted);font-size:11px}.payment-totals strong{display:block;font-weight:normal;font-size:25px;margin-top:6px}.payment-totals>p{grid-column:1/-1;margin:0}.reimbursement-panel .panel-heading{margin-bottom:12px}@media(max-width:760px){.brand{flex-direction:row;justify-content:space-between;align-items:center}.company-logo{width:130px;height:auto}.brand>small{margin-right:12px}.payment-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.payment-totals strong{font-size:23px}}@media print{.payment-totals{grid-template-columns:repeat(3,1fr)}.payment-totals strong{font-size:18px}}
.comparison-panel{margin-bottom:24px;background:#f3f7ef}.comparison-grid{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:20px;margin:20px 0}.comparison-card-col{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}.comparison-card-col h4{margin:0 0 10px;font-size:11px;color:var(--muted);letter-spacing:.8px;text-transform:uppercase;font-weight:600}.comparison-card-col .big-val{font-size:26px;font-weight:bold;margin:6px 0 12px;color:var(--ink)}.comparison-card-col.highlight{background:#eaf0e4;border-color:#cbdec0}.comparison-card-col.highlight .big-val{color:var(--green)}.comparison-breakdown{font-size:11px;color:var(--muted);line-height:1.7}.comparison-breakdown div{display:flex;justify-content:space-between}.advantage-tag{display:inline-block;padding:3px 8px;border-radius:6px;font-size:11px;font-weight:bold;background:#d8ecc5;color:var(--green)}.advantage-tag.negative{background:#fbe3e3;color:#a83232}.rates-toggle-wrap{margin:12px 0 6px}.subtle-button{background:transparent;border:0;color:var(--green);font-size:11px;padding:4px 0;cursor:pointer;text-decoration:underline}@media(max-width:760px){.comparison-grid{grid-template-columns:1fr;gap:12px}}
.actions-inline{display:flex;gap:8px}.actions-inline button{background:#eaf0e4;color:var(--green);border:1px solid #cbdec0;border-radius:6px;font-weight:600;padding:6px 12px;font-size:12px;cursor:pointer}.actions-inline button:hover{background:var(--green);color:#fff}.pnl-statement-panel{background:#fff}.pnl-table{width:100%;border-collapse:collapse;font-size:13px;margin:15px 0}.pnl-table td{padding:10px 12px;border-bottom:1px solid #edf0e9}.pnl-table td.amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.pnl-section-header td{background:#f6f8f4;font-weight:bold;font-size:11px;color:var(--ink);letter-spacing:.8px;text-transform:uppercase;padding:12px 12px 8px;border-top:2px solid #dde5d8;border-bottom:1px solid #dde5d8}.pnl-item td:first-child{padding-left:26px}.pnl-subtotal td{font-weight:bold;background:#fafbf8;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.pnl-total td{font-weight:bold;font-size:15px;background:#eef4ea;border-top:2px solid var(--green);border-bottom:3px double var(--green);color:var(--green)}.pnl-note td{font-size:12px;color:var(--muted);background:#fbfcf9;padding:12px}@media print{#pnl.print-active{display:block!important}#pnl.print-active ~ #reports{display:none!important}}dialog#voucher-dialog{max-width:860px;width:92%;border-radius:12px;padding:24px;border:1px solid var(--line)}.voucher-document{background:#fff;padding:20px;border:1px solid #e2e8dc;border-radius:8px;font-size:13px;line-height:1.5;color:#222}.voucher-top-bar{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--green);padding-bottom:14px;margin-bottom:16px}.voucher-company{font-size:22px;margin:0 0 4px;color:var(--ink);font-weight:700}.voucher-subtitle{font-size:14px;font-weight:600;margin:0 0 2px;color:var(--green);text-transform:uppercase;letter-spacing:.5px}.voucher-authority{font-size:11px;color:var(--muted);margin:0}.voucher-badge{text-align:right}.voucher-badge strong{display:block;font-size:16px;color:var(--ink);letter-spacing:1px}.voucher-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;background:#f8faf6;padding:12px 16px;border-radius:6px;margin-bottom:18px;font-size:12px}.voucher-meta-grid div span{color:var(--muted);margin-right:6px}.voucher-table{width:100%;border-collapse:collapse;margin:12px 0 18px;font-size:12px}.voucher-table th{background:#f3f6ee;padding:8px 10px;text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid #dde5d8}.voucher-table td{padding:8px 10px;border-bottom:1px solid #edf0ea}.voucher-table td.amount{text-align:right;font-variant-numeric:tabular-nums}.voucher-total-row td{font-weight:bold;font-size:14px;background:#eef4ea;border-top:2px solid var(--green);border-bottom:2px solid var(--green);color:var(--green)}.voucher-certification{background:#fafbf9;border-left:3px solid var(--green);padding:10px 14px;margin:16px 0;font-size:11px;color:#444}.voucher-certification p{margin:4px 0}.voucher-signatures{display:flex;justify-content:space-between;margin-top:28px;padding-top:10px}.sig-block{width:42%}.sig-line{border-bottom:1px solid #333;margin-bottom:6px;height:24px}.claim-select{cursor:pointer;width:16px;height:16px}
@media print {
  @page {
    size: letter portrait;
    margin: 15mm 15mm 15mm 15mm;
  }
  html, body {
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
  }
  body:has(dialog#voucher-dialog[open]),
  body.print-voucher-active {
    background: #fff !important;
    color: #000 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body:has(dialog#voucher-dialog[open]) > *:not(dialog#voucher-dialog),
  body.print-voucher-active > *:not(dialog#voucher-dialog) {
    display: none !important;
  }
  dialog#voucher-dialog[open],
  body.print-voucher-active dialog#voucher-dialog {
    display: block !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  dialog#voucher-dialog[open]::backdrop,
  body.print-voucher-active dialog#voucher-dialog::backdrop {
    display: none !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-modal-content,
  body.print-voucher-active .voucher-modal-content {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-header-actions,
  body.print-voucher-active .voucher-header-actions {
    display: none !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-document,
  body.print-voucher-active .voucher-document {
    display: block !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    overflow: visible !important;
    font-size: 10pt !important;
    line-height: 1.45 !important;
    color: #111 !important;
    background: #fff !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-top-bar,
  body.print-voucher-active .voucher-top-bar {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    border-bottom: 2px solid #285b46 !important;
    padding-bottom: 10px !important;
    margin-bottom: 12px !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-company,
  body.print-voucher-active .voucher-company {
    color: #193e35 !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-subtitle,
  body.print-voucher-active .voucher-subtitle {
    color: #285b46 !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-meta-grid,
  body.print-voucher-active .voucher-meta-grid {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    background: #f4f6f2 !important;
    border: 1px solid #dde5d8 !important;
    border-radius: 4px !important;
    padding: 8px 12px !important;
    margin-bottom: 14px !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-meta-grid div span,
  body.print-voucher-active .voucher-meta-grid div span {
    color: #555 !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-meta-grid div strong,
  body.print-voucher-active .voucher-meta-grid div strong {
    color: #111 !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-document h4,
  body.print-voucher-active .voucher-document h4 {
    break-after: avoid !important;
    page-break-after: avoid !important;
    margin: 14px 0 8px !important;
    font-size: 11pt !important;
    color: #111 !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table,
  body.print-voucher-active .voucher-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 10px 0 16px !important;
    font-size: 8.5pt !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table thead,
  body.print-voucher-active .voucher-table thead {
    display: table-header-group !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table tfoot,
  body.print-voucher-active .voucher-table tfoot {
    display: table-footer-group !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table tr,
  body.print-voucher-active .voucher-table tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table th,
  body.print-voucher-active .voucher-table th {
    background: #eef2ea !important;
    color: #222 !important;
    font-size: 8pt !important;
    padding: 5px 6px !important;
    border-bottom: 1.5px solid #888 !important;
    text-transform: uppercase !important;
    letter-spacing: .5px !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table td,
  body.print-voucher-active .voucher-table td {
    padding: 5px 6px !important;
    border-bottom: 1px solid #ddd !important;
    font-size: 8.5pt !important;
    color: #222 !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table td small,
  body.print-voucher-active .voucher-table td small {
    color: #555 !important;
    font-size: 7.5pt !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-table td.amount,
  body.print-voucher-active .voucher-table td.amount {
    text-align: right !important;
    white-space: nowrap !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-total-row td,
  body.print-voucher-active .voucher-total-row td {
    font-weight: bold !important;
    font-size: 9.5pt !important;
    background: #eef4ea !important;
    border-top: 1.5px solid #285b46 !important;
    border-bottom: 2px solid #285b46 !important;
    color: #193e35 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-certification,
  body.print-voucher-active .voucher-certification {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    background: #f9fbf8 !important;
    border-left: 3.5px solid #285b46 !important;
    padding: 8px 12px !important;
    margin: 14px 0 !important;
    font-size: 8pt !important;
    line-height: 1.4 !important;
    color: #333 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body:has(dialog#voucher-dialog[open]) .voucher-signatures,
  body.print-voucher-active .voucher-signatures {
    display: flex !important;
    justify-content: space-between !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    margin-top: 24px !important;
    padding-top: 8px !important;
  }
  body:has(dialog#voucher-dialog[open]) .sig-block,
  body.print-voucher-active .sig-block {
    width: 44% !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  body:has(dialog#voucher-dialog[open]) .sig-line,
  body.print-voucher-active .sig-line {
    border-bottom: 1px solid #111 !important;
    height: 24px !important;
    margin-bottom: 6px !important;
  }
  .table-wrap {
    overflow: visible !important;
    max-height: none !important;
    border: none !important;
    border-radius: 0 !important;
  }
  .table-wrap table thead th {
    position: static !important;
    box-shadow: none !important;
  }
  .table-wrap table tfoot th,
  .table-wrap table tfoot td {
    position: static !important;
    box-shadow: none !important;
  }
}
.form-7203-panel{margin-top:24px}
.year-lock-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:8px;margin-bottom:16px;font-size:13px}
.year-lock-banner.locked{background:#fdf2e9;border:1px solid #f5cba7;color:#7e5109}
.year-lock-banner.open{background:#eaf2e8;border:1px solid #cbdec0;color:#1b4d2e}
.basis-capital-gain-alert{background:#fde8e8;border:1px solid #f8b4b4;color:#9b1c1c;padding:12px 16px;border-radius:8px;margin-top:14px;font-size:12px;font-weight:600}
.cpa-package-hero{background:linear-gradient(135deg,#193e35 0%,#285b46 100%);color:white;padding:22px 26px;border-radius:12px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.cpa-package-hero h3{color:white;margin:0 0 6px;font-size:18px}
.cpa-package-hero p{margin:0;color:#d5e5db;font-size:12px}
.cpa-package-hero button{background:#eef6e8;color:#193e35;border:0;font-weight:700;padding:12px 22px;border-radius:8px;font-size:13px;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:pointer;transition:transform .15s ease,background .15s ease}
.cpa-package-hero button:hover{background:#ffffff;transform:translateY(-1px)}
@media(max-width:760px){.cpa-package-hero{flex-direction:column;align-items:stretch;text-align:left}.cpa-package-hero button{width:100%}}
.w2-calc-panel{background:#fafcf9;border:1px solid #dbe5d7;margin-bottom:24px}
.w2-calc-container{display:grid;grid-template-columns:1fr 1.35fr;gap:24px;margin:18px 0}
.w2-calc-inputs{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}
.w2-calc-slider-block{margin-top:14px}
.w2-calc-slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.w2-calc-slider-header label{margin:0;font-size:13px}
.w2-calc-pct-badge{display:inline-flex;align-items:center;background:#edf2e8;border:1px solid #cbdec0;border-radius:6px;padding:2px 8px;font-weight:bold;color:var(--green)}
.w2-calc-pct-badge input{width:46px;border:none;background:transparent;font-size:16px;font-weight:bold;color:var(--green);padding:0;text-align:right;min-height:unset;margin:0}
.w2-calc-pct-badge input:focus{outline:none}
.w2-calc-pct-badge span{font-size:14px;margin-left:2px}
.w2-slider{width:100%;height:8px;border-radius:4px;outline:none;-webkit-appearance:none;appearance:none;background:#dde7d9;margin:12px 0 16px;cursor:pointer}
.w2-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--green);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.w2-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--green);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.w2-calc-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.preset-btn{background:#f3f6f0;border:1px solid #d4ded0;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600;color:var(--ink);cursor:pointer;transition:all .15s ease}
.preset-btn:hover{background:#e7efe3;border-color:#b9cca9}
.preset-btn.active{background:var(--green);color:#fff;border-color:var(--green)}
.w2-calc-results{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.w2-res-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;justify-content:space-between}
.w2-res-card.highlight{background:#eaf2e8;border-color:#cbdec0}
.w2-res-card.accent{background:#e8f1f8;border-color:#b8d5ee}
.w2-res-card h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:600}
.w2-res-card .big-num{font-size:24px;font-weight:bold;color:var(--ink);margin:4px 0}
.w2-res-card.highlight .big-num{color:var(--green)}
.w2-res-card.accent .big-num{color:#204e79}
.w2-res-card small{font-size:11px;color:var(--muted);line-height:1.4}
.w2-calc-actions{display:flex;gap:12px;margin-top:14px;padding-top:16px;border-top:1px solid var(--line)}
.w2-calc-actions button{font-size:12px;padding:9px 16px}
@media(max-width:960px){.w2-calc-container{grid-template-columns:1fr}.w2-calc-results{grid-template-columns:1fr}}

/* Modern Period / Month Picker (Anti-Shift Stabilized) */
.modern-period-picker{display:inline-flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:3px;box-shadow:0 1px 3px rgba(0,0,0,.04);gap:3px;flex-shrink:0}
.period-nav-btn{background:transparent;border:0;color:var(--muted);width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:bold;border-radius:7px;cursor:pointer;transition:all .15s ease;line-height:1;flex-shrink:0}
.period-nav-btn:hover{background:#edf2e7;color:var(--ink)}
.period-display-wrap{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;padding:5px 8px;border-radius:7px;cursor:pointer;user-select:none;transition:all .15s ease;flex-shrink:0}
.period-display-wrap:hover{background:#f3f6ee}
.period-calendar-icon{font-size:14px;pointer-events:none;flex-shrink:0}
#period-label, #calendar-month-label{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.2px;width:145px;min-width:145px;max-width:145px;text-align:center;pointer-events:none;white-space:nowrap;display:inline-block}
.period-hidden-input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0;margin:0;min-height:unset;border:none}
.period-today-btn{background:#eaf1e4;border:0;color:var(--green);font-size:11px;font-weight:700;padding:5px 10px;border-radius:6px;cursor:pointer;transition:all .15s ease;flex-shrink:0;white-space:nowrap}
.period-today-btn:hover{background:var(--green);color:#fff}
@media(max-width:760px){.modern-period-picker{width:100%;justify-content:space-between}.period-display-wrap{flex:1;justify-content:center}#period-label, #calendar-month-label{width:auto;min-width:unset;max-width:unset}}

/* 401(k) Retirement Shelter & Compensation Badges */
.badge.k401{background:#f3eefb;color:#5a3e85;font-weight:700;border:1px solid #d9c8f3}
.k401-panel{background:#fff;border-left:4px solid #5a3e85}
.k401-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:16px 0}
.k401-card{background:var(--card-bg,#fcfbf8);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:6px}
.k401-card.highlight{background:#f8f4fd;border-color:#d9c8f3}
.k401-card h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0}
.k401-card .big-num{font-size:24px;font-weight:bold;color:#5a3e85;margin:2px 0}
.k401-card small{font-size:11px;color:var(--muted);line-height:1.4}
.k401-progress-wrap{width:100%;height:8px;background:#e8e4df;border-radius:4px;overflow:hidden;margin:6px 0 2px 0}
.k401-progress-bar{height:100%;background:linear-gradient(90deg,#5a3e85,#7b5ea8);border-radius:4px;transition:width .3s ease}
.k401-breakdown-row{display:flex;justify-content:space-between;font-size:12px;color:var(--ink);padding:2px 0}

/* Quarterly Estimated Taxes & Safe Harbor Engine */
.quarterly-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:18px 0}
.q-card{background:var(--card-bg,#fcfbf8);border:1px solid var(--line);border-radius:10px;padding:18px;display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:all .18s ease}
.q-card:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.04)}
.q-card.paid{border-left:4px solid var(--green);background:#fafdf9}
.q-card.due_soon{border-left:4px solid #d97706;background:#fffdf7}
.q-card.overdue{border-left:4px solid #b84242;background:#fffbfb}
.q-card.upcoming{border-left:4px solid #94a3b8}
.q-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px}
.q-card-title{font-size:16px;font-weight:700;color:var(--ink);margin:0}
.q-card-subtitle{font-size:11px;color:var(--muted);margin-top:2px}
.q-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.q-badge.paid{background:#e6f4ea;color:#137333;border:1px solid #ceead6}
.q-badge.due_soon{background:#fef3c7;color:#92400e;border:1px solid #fde68a}
.q-badge.overdue{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.q-badge.upcoming{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}
.q-card-body{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;font-size:12px}
.q-meta-row{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
.q-meta-row strong{color:var(--ink)}
.q-target-row{background:rgba(0,0,0,.025);border-radius:6px;padding:8px 10px;margin:4px 0}
.q-target-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);display:block}
.q-target-val{font-size:18px;font-weight:bold;color:var(--ink)}
.q-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.q-tax-portals{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}
.q-portal-card{background:#f7f9f5;border:1px solid #e1e7dc;border-radius:8px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.q-portal-card h4{margin:0;font-size:13px;font-weight:700;color:var(--ink)}
.q-portal-card p{margin:0;font-size:11px;color:var(--muted);line-height:1.4}
.q-portal-card .row-action{align-self:flex-start;text-decoration:none;margin-top:4px}

/* Multi-Facility Clinics Roster & Badges */
.clinics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px;margin-top:16px}
.clinic-card{background:var(--card-bg,#fff);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:all .18s ease;border-left:5px solid #0284c7}
.clinic-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.04)}
.clinic-card.is-default{background:#fafdff;box-shadow:0 2px 8px rgba(2,132,199,.08)}
.clinic-card.inactive{opacity:0.65;filter:grayscale(0.6)}
.clinic-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.clinic-card-title{font-size:16px;font-weight:700;color:var(--ink);margin:0;line-height:1.3}
.clinic-card-nickname{font-size:11px;color:var(--muted);margin-top:3px}
.clinic-card-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.clinic-tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.clinic-tag.primary{background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}
.clinic-tag.inactive{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}
.clinic-card-body{font-size:12px;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.clinic-info-row{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
.clinic-info-row strong{color:var(--ink)}
.clinic-rates-box{background:#f8faf6;border:1px solid #e8ede3;border-radius:8px;padding:10px 12px;margin:4px 0}
.clinic-rates-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}
.clinic-rates-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px}
.clinic-card-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.clinic-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;box-shadow:0 1px 2px rgba(0,0,0,.06)}

/* Corporate Annual Minutes & Resolutions */
.corporate-minutes-panel{background:#fff}
.resolutions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:16px}
.resolution-card{background:#fbfcf9;border:1px solid #e2e8dc;border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:6px}
.resolution-card.accent{border-left:4px solid var(--green);background:#fff}
.resolution-card .res-title{font-size:13px;font-weight:700;color:var(--ink)}
.resolution-card .res-stat{font-size:18px;font-weight:700;color:var(--green)}
.resolution-card .res-desc{font-size:11px;color:var(--muted);line-height:1.4}
dialog#minutes-dialog{max-width:900px;width:92%;border-radius:12px;padding:24px;border:1px solid var(--line)}
.minutes-modal-content{display:flex;flex-direction:column}
.minutes-document{background:#fff;padding:28px 32px;border:1px solid #e2e8dc;border-radius:8px;font-size:13px;line-height:1.6;color:#222;max-height:75vh;overflow-y:auto}
.minutes-formal-header{text-align:center;border-bottom:2px solid var(--green);padding-bottom:14px;margin-bottom:18px}
.minutes-formal-header h2{font-size:20px;margin:0 0 4px;color:var(--ink);font-weight:700}
.minutes-formal-header h3{font-size:13px;font-weight:700;margin:0 0 4px;color:var(--green);text-transform:uppercase;letter-spacing:.6px}
.minutes-formal-header p{font-size:11px;color:var(--muted);margin:0}
.minutes-meta-box{background:#f8faf6;border:1px solid #e2e8dc;border-radius:6px;padding:12px 16px;margin-bottom:18px;font-size:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}
.minutes-meta-box div span{color:var(--muted);margin-right:6px}
.minutes-section{margin-bottom:20px}
.minutes-section h4{font-size:13px;font-weight:700;color:var(--ink);border-bottom:1px solid #edf0ea;padding-bottom:5px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.4px}
.minutes-section p{margin:6px 0;font-size:12px;line-height:1.55;color:#333}
.minutes-financial-table{width:100%;border-collapse:collapse;margin:10px 0 14px;font-size:12px}
.minutes-financial-table th{background:#f3f6ee;padding:6px 10px;text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;border-bottom:1px solid #dde5d8}
.minutes-financial-table td{padding:6px 10px;border-bottom:1px solid #edf0ea}
.minutes-financial-table td.amount{text-align:right;font-variant-numeric:tabular-nums}
.minutes-financial-table tr.total-row td{font-weight:bold;background:#eef4ea;border-top:2px solid var(--green);border-bottom:2px solid var(--green);color:var(--green)}
.minutes-sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px;padding-top:10px}
@media print {
  body:has(dialog#minutes-dialog[open]),
  body.print-minutes-active {
    background: #fff !important;
    color: #000 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  body:has(dialog#minutes-dialog[open]) > *:not(dialog#minutes-dialog),
  body.print-minutes-active > *:not(dialog#minutes-dialog) {
    display: none !important;
  }
  dialog#minutes-dialog[open],
  body.print-minutes-active dialog#minutes-dialog {
    display: block !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  dialog#minutes-dialog[open]::backdrop,
  body.print-minutes-active dialog#minutes-dialog::backdrop {
    display: none !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-modal-content,
  body.print-minutes-active .minutes-modal-content {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-header-actions,
  body.print-minutes-active .minutes-header-actions {
    display: none !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-document,
  body.print-minutes-active .minutes-document {
    display: block !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    font-size: 10pt !important;
    line-height: 1.5 !important;
    color: #111 !important;
    background: #fff !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-formal-header,
  body.print-minutes-active .minutes-formal-header,
  body:has(dialog#minutes-dialog[open]) .minutes-meta-box,
  body.print-minutes-active .minutes-meta-box,
  body:has(dialog#minutes-dialog[open]) .minutes-section,
  body.print-minutes-active .minutes-section,
  body:has(dialog#minutes-dialog[open]) .minutes-sig-grid,
  body.print-minutes-active .minutes-sig-grid {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-financial-table,
  body.print-minutes-active .minutes-financial-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 10px 0 !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-financial-table thead,
  body.print-minutes-active .minutes-financial-table thead {
    display: table-header-group !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-financial-table tr,
  body.print-minutes-active .minutes-financial-table tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-financial-table th,
  body.print-minutes-active .minutes-financial-table th {
    background: #eef2ea !important;
    color: #222 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-financial-table td,
  body.print-minutes-active .minutes-financial-table td {
    color: #222 !important;
  }
  body:has(dialog#minutes-dialog[open]) .minutes-financial-table tr.total-row td,
  body.print-minutes-active .minutes-financial-table tr.total-row td {
    background: #eef4ea !important;
    color: #193e35 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

/* Receipt Upload & Preview Dialog */
.receipt-upload-box{margin:12px 0 16px}
.receipt-dropzone{border:2px dashed #ccd6c7;border-radius:8px;background:#f9fbf8;padding:12px 14px;cursor:pointer;transition:border-color .15s, background .15s;display:flex;align-items:center;min-height:56px}
.receipt-dropzone:hover,.receipt-dropzone.drag-over{border-color:var(--green);background:#f2f7ef}
.receipt-prompt{display:flex;align-items:center;gap:12px;width:100%}
.receipt-icon{font-size:20px;color:var(--green)}
.receipt-attached{display:flex;align-items:center;justify-content:space-between;width:100%}
.receipt-file-badge{display:flex;align-items:center;gap:10px}
.receipt-badge-icon{font-size:22px}
.receipt-file-meta{display:flex;flex-direction:column}
.receipt-file-meta strong{font-size:12px;color:var(--ink);max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.receipt-actions-mini{display:flex;gap:6px}
.receipt-tag{display:inline-flex;align-items:center;gap:4px;background:#eef4ea;color:var(--green);border:1px solid #d4e3ce;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s}
.receipt-tag:hover{background:#dcedd5}
dialog#receipt-viewer-dialog{max-width:850px;width:90%;border-radius:12px;padding:20px;border:1px solid var(--line)}
.receipt-viewer-modal{display:flex;flex-direction:column}
.receipt-viewer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;border-bottom:1px solid var(--line);padding-bottom:10px}
.receipt-viewer-title-wrap{display:flex;align-items:center;gap:10px}
.receipt-viewer-content{display:flex;justify-content:center;align-items:center;background:#1e2022;border-radius:8px;padding:16px;min-height:350px;max-height:75vh;overflow:auto}
.receipt-viewer-content img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:4px;box-shadow:0 4px 14px rgba(0,0,0,0.3)}
.receipt-viewer-content iframe{width:100%;height:70vh;border:none;border-radius:4px;background:#fff}

/* Dental CE, Licensing & Malpractice Hub Styles */
.compliance-alerts-wrap{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.compliance-alert-card{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;border:1px solid;font-size:13px}
.compliance-alert-card.urgent{background:#fef2f2;border-color:#fca5a5;color:#991b1b}
.compliance-alert-card.warning{background:#fffbeb;border-color:#fcd34d;color:#92400e}
.alert-card-left{display:flex;align-items:center;gap:12px}
.alert-icon{font-size:22px}
.alert-meta strong{display:block;font-size:14px;font-weight:600}
.alert-meta p{margin:2px 0 0;font-size:12px;opacity:0.9}
.alert-countdown-pill{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:0.3px;text-transform:uppercase}
.compliance-alert-card.urgent .alert-countdown-pill{background:#fee2e2;color:#991b1b;border:1px solid #f87171}
.compliance-alert-card.warning .alert-countdown-pill{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}

.ce-progress-wrap{background:#fbfcfb;border:1px solid var(--line);border-radius:8px;padding:16px;margin:12px 0 16px}
.ce-progress-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink)}
.ce-progress-track{height:18px;background:#e5e7eb;border-radius:999px;overflow:hidden;display:flex;margin:10px 0;box-shadow:inset 0 1px 2px rgba(0,0,0,0.06)}
.ce-bar-segment{height:100%;transition:width .3s ease}
.segment-live{background:#0284c7}
.segment-webinar{background:#059669}
.segment-self{background:#7c3aed}
.ce-format-legend{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;color:var(--subtle);margin-top:8px}
.legend-item{display:flex;align-items:center;gap:6px}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot-live{background:#0284c7}
.dot-webinar{background:#059669}
.dot-self{background:#7c3aed}

.mandatory-checklist-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.mandatory-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:12px;margin-top:8px}
.mand-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;border:1px solid var(--line);background:#fff;transition:border-color .15s}
.mand-card.completed{border-color:#86efac;background:#f0fdf4}
.mand-icon{font-size:18px}
.mand-info{display:flex;flex-direction:column}
.mand-info strong{font-size:12px;color:var(--ink)}
.mand-info small{font-size:11px;color:var(--subtle)}
.mand-status-pill{margin-left:auto;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;background:#f1f5f9;color:#64748b}
.mand-card.completed .mand-status-pill{background:#dcfce7;color:#15803d}

.comp-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap;border:1px solid transparent}
.badge.business{background:var(--status-success-bg);color:var(--status-success-ink);border:1px solid rgba(22,101,52,.18)}
.badge-live{background:#e0f2fe;color:#0369a1;border:1px solid rgba(3,105,161,.18)}
.badge-webinar{background:#d1fae5;color:#047857;border:1px solid rgba(4,120,87,.18)}
.badge-self{background:#ede9fe;color:#6d28d9;border:1px solid rgba(109,40,217,.18)}
.badge-urgent{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}
.badge-warning{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}
.badge-active{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.badge-mandatory{background:#fef9c3;color:#854d0e;border:1px solid #fef08a}

.compliance-table-actions{display:flex;align-items:center;gap:6px}
.compliance-doc-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:background .15s}
.compliance-doc-btn:hover{background:#f4f6f4}
.compliance-doc-btn.has-doc{border-color:#a7f3d0;background:#f0fdf4;color:#166534}

@media print {
  body:has(#compliance:not(.hidden)) aside,
  body:has(#compliance:not(.hidden)) header,
  body:has(#compliance:not(.hidden)) .page-heading,
  body:has(#compliance:not(.hidden)) .toolbar,
  body:has(#compliance:not(.hidden)) .actions-inline,
  body:has(#compliance:not(.hidden)) .compliance-alerts-wrap,
  body:has(#compliance:not(.hidden)) .compliance-table-actions,
  body:has(#compliance:not(.hidden)) #reports {
    display: none !important;
  }
  body:has(#compliance:not(.hidden)) main {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
  }
  body:has(#compliance:not(.hidden)) #compliance {
    display: block !important;
  }
}

/* ==========================================================================
   ROCK-SOLID TABLE COLUMN LOCKING & ANTI-SHIFT ARCHITECTURE
   ========================================================================== */
.table-wrap {
  overflow-x: auto;
  overflow-y: auto;
  max-height: min(72vh, 740px);
  border-radius: var(--radius-md);
  border: 1px solid var(--line);
  background: var(--surface);
  -webkit-overflow-scrolling: touch;
  position: relative;
}

.table-wrap::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.table-wrap::-webkit-scrollbar-track {
  background: transparent;
}
.table-wrap::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.16);
  border-radius: 3px;
}

.table-wrap table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  font-size: 12px;
}

.table-wrap table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 1px 0 var(--line);
  padding: 10px 12px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  white-space: nowrap;
}

.table-wrap table tbody td {
  padding: 11px 12px;
  border-bottom: 1px solid var(--line);
  font-size: 12px;
  color: var(--ink);
  vertical-align: middle;
}

.table-wrap table tbody tr:last-child td {
  border-bottom: none;
}

.table-wrap table tbody tr {
  transition: background-color 0.12s ease;
}

.table-wrap table tbody tr:nth-child(even) {
  background-color: rgba(0, 0, 0, 0.015);
}

.table-wrap table tbody tr:hover {
  background-color: rgba(40, 91, 70, 0.038);
}

.table-wrap table tbody tr.pnl-section-header:hover,
.table-wrap table tbody tr.pnl-subtotal:hover,
.table-wrap table tbody tr.pnl-total:hover,
.table-wrap table tfoot tr:hover {
  background-color: inherit;
}

.table-wrap table tbody tr.row-selected {
  background-color: #eaf3e8 !important;
}

.table-wrap table tfoot th,
.table-wrap table tfoot td {
  position: sticky;
  bottom: 0;
  z-index: 2;
  background: var(--surface);
  border-top: 2px solid var(--line);
  box-shadow: 0 -1px 0 var(--line);
  font-weight: 700;
}

.table-wrap table td.amount,
.table-wrap table th.amount,
.table-wrap table .col-amount {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Primary Ledger Table (Expenses, Overview, Mileage) */
.table-wrap table.ledger-table {
  table-layout: fixed;
  width: 100%;
  min-width: 820px;
}
.ledger-table col.col-date,
.ledger-table th.col-date,
.ledger-table td.col-date {
  width: 105px;
  max-width: 105px;
  white-space: nowrap;
}
.ledger-table col.col-desc,
.ledger-table th.col-desc,
.ledger-table td.col-desc {
  width: auto;
  min-width: 180px;
}
.ledger-table col.col-class,
.ledger-table th.col-class,
.ledger-table td.col-class {
  width: 130px;
  max-width: 130px;
  white-space: nowrap;
}
.ledger-table col.col-amount,
.ledger-table th.col-amount,
.ledger-table td.col-amount {
  width: 110px;
  max-width: 110px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ledger-table col.col-pay,
.ledger-table th.col-pay,
.ledger-table td.col-pay {
  width: 240px;
  max-width: 240px;
}
.ledger-table col.col-actions,
.ledger-table th.col-actions,
.ledger-table td.col-actions {
  width: 135px;
  max-width: 135px;
  text-align: right;
}
.ledger-table td,
.ledger-table th {
  overflow-wrap: break-word;
  word-break: normal;
}
.ledger-table .actions-cell {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.ledger-table .desc-content {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.ledger-table .desc-title {
  font-weight: 500;
}
.ledger-table .desc-sub {
  display: block;
  color: var(--muted);
  font-size: 10px;
  margin-top: 2px;
}

/* Earnings, Compensation, Tax & Compliance Tables */
.table-wrap table.earnings-table,
.table-wrap table.comp-table,
.table-wrap table.compliance-lic-table,
.table-wrap table.compliance-ce-table,
.table-wrap table.tax-1120s-table {
  table-layout: fixed;
  width: 100%;
}
.table-wrap table.earnings-table {
  min-width: 860px;
}
.table-wrap table.comp-table {
  min-width: 840px;
}
.table-wrap table.compliance-lic-table {
  min-width: 900px;
}
.table-wrap table.compliance-ce-table {
  min-width: 840px;
}
.table-wrap table.tax-1120s-table {
  min-width: 920px;
}
.earnings-table td, .earnings-table th,
.comp-table td, .comp-table th,
.compliance-lic-table td, .compliance-lic-table th,
.compliance-ce-table td, .compliance-ce-table th,
.tax-1120s-table td, .tax-1120s-table th {
  overflow-wrap: break-word;
}

/* Modernized Scrollable Sidebar & Nav Styling */
aside {
  position: fixed;
  inset: 0 auto 0 0;
  width: 242px;
  background: #ffffff;
  border-right: 1px solid var(--line);
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  height: 100vh;
  max-height: 100vh;
  z-index: 100;
  overflow: hidden;
}

.sidebar-top {
  padding: 24px 20px 10px;
  flex-shrink: 0;
  background: #ffffff;
}

.brand {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-decoration: none;
}

.company-logo {
  display: block;
  width: 136px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.brand > small {
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: 1.8px;
  color: var(--muted);
  text-transform: uppercase;
}

.nav-label {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: #8b958d;
  margin: 20px 0 6px 6px !important;
  text-transform: uppercase;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 0 14px 14px;
  flex: 1 1 auto;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #d1dcce transparent;
}

.nav-group {
  display: flex;
  flex-direction: column;
  margin-bottom: 12px;
}
.nav-group:last-child {
  margin-bottom: 2px;
}
.nav-group-title {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #7b8e81;
  padding: 8px 10px 4px;
  margin: 0;
  user-select: none;
}
.nav-group-items {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nav-badge {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 10px;
  background: #e2ede0;
  color: var(--green);
  line-height: 1.4;
  letter-spacing: 0;
  flex-shrink: 0;
}

.sidebar-nav::-webkit-scrollbar {
  width: 5px;
}

.sidebar-nav::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar-nav::-webkit-scrollbar-thumb {
  background: #d1dcce;
  border-radius: 4px;
}

.sidebar-nav::-webkit-scrollbar-thumb:hover {
  background: #b2c4ad;
}

.sidebar-nav button {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 1px solid transparent;
  background: transparent;
  text-align: left;
  color: #55655b;
  font-size: 13.5px;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: 8px;
  transition: all 0.15s ease;
  cursor: pointer;
  white-space: nowrap;
}

.sidebar-nav button .nav-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: #7b8e81;
  transition: color 0.15s ease, transform 0.15s ease;
}

.sidebar-nav button span {
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: -0.1px;
  margin-left: 0 !important;
}

.sidebar-nav button:hover {
  background: #f1f6ed;
  color: var(--ink);
}

.sidebar-nav button:hover .nav-icon {
  color: var(--green);
  transform: translateX(1px);
}

.sidebar-nav button.active {
  background: #eaf1e3;
  color: var(--green);
  font-weight: 700;
  border-color: #dbe7d2;
  box-shadow: 0 1px 2px rgba(40, 91, 70, 0.05);
}

.sidebar-nav button.active .nav-icon {
  color: var(--green);
}

.sidebar-bottom {
  margin-top: auto;
  padding: 14px 18px !important;
  border-top: 1px solid var(--line);
  background: #fafbf9;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.sidebar-status-box {
  display: flex;
  flex-direction: column;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.3;
}

.sidebar-status-box p {
  margin: 2px 0 0;
  font-size: 10px;
  color: #8c988e;
}

.sidebar-bottom #logout {
  background: transparent;
  border: 1px solid #dce4d7;
  color: #55655b;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 9px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.sidebar-bottom #logout:hover {
  background: #edf3e7;
  color: var(--ink);
  border-color: #cbdec0;
}

main {
  margin-left: 242px;
}

@media (max-width: 1150px) {
  aside {
    width: 220px;
  }
  main {
    margin-left: 220px;
  }
  .sidebar-top {
    padding: 20px 14px 8px;
  }
  .sidebar-nav {
    padding: 0 10px 10px;
  }
  .sidebar-nav button {
    font-size: 13px;
    padding: 7px 10px;
  }
}

@media (max-width: 760px) {
  aside {
    position: static;
    width: 100%;
    height: auto;
    max-height: none;
    padding: 12px 16px !important;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    overflow: visible;
  }
  .sidebar-top {
    padding: 0;
  }
  .nav-group {
    margin-bottom: 12px;
  }
  .nav-group-title {
    font-size: 10px;
    padding: 6px 10px 4px;
  }
  main {
    margin-left: 0;
  }

  /* Mobile Header Polish: compact height, clean breadcrumb, circular theme toggle, hide desktop search & shortcuts */
  header {
    height: 48px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .header-right-group {
    gap: 8px;
  }
  #open-cmd-palette {
    display: none !important;
  }
  .theme-toggle-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 15px;
    background: #ffffff;
    border: 1px solid var(--line);
    color: var(--ink);
  }

  /* De-duplicate Mobile Actions: hide hero button row since floating bottom dock has all 4 actions */
  .page-heading .actions-inline {
    display: none !important;
  }
  .page-heading {
    margin-bottom: 18px;
  }
  .page-heading h1 {
    font-size: 26px;
    margin: 4px 0 8px;
  }

  /* Unified 2-Row Mobile Toolbar (iOS Segmented Pill + Export + Full-Width Month Picker) */
  .toolbar {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    gap: 10px 8px;
    align-items: center;
    margin-bottom: 20px;
    width: 100%;
  }
  .toolbar .tabs {
    grid-column: 1 / 2;
    grid-row: 1;
    display: inline-flex;
    width: fit-content;
    background: #e7ece4;
    border-radius: 9px;
    padding: 3px;
    margin: 0;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
  }
  .toolbar .tabs button {
    border: 0;
    background: transparent;
    padding: 6px 16px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 7px;
    min-width: 72px;
    text-align: center;
    color: var(--muted);
    transition: all 0.15s ease;
  }
  .toolbar .tabs button.active {
    background: #ffffff;
    color: var(--green);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  }
  .toolbar > #download {
    grid-column: 2 / 3;
    grid-row: 1;
    margin: 0;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    border-radius: 8px;
    background: #ffffff;
    border: 1px solid var(--line);
    color: var(--ink);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  }
  .toolbar .modern-period-picker {
    grid-column: 1 / 3;
    grid-row: 2;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 4px 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
  }
  .toolbar .modern-period-picker .period-display-wrap {
    flex: 1;
    justify-content: center;
  }
  .toolbar .modern-period-picker #period-label {
    font-size: 13.5px;
    font-weight: 700;
    width: auto;
    min-width: unset;
    max-width: unset;
  }
  .toolbar .modern-period-picker .period-nav-btn {
    width: 36px;
    height: 36px;
    font-size: 20px;
  }
  .toolbar .modern-period-picker .period-today-btn {
    padding: 6px 12px;
    font-size: 11.5px;
  }
}



/* Month-end review queue */
.close-issue{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 2px;border-bottom:1px solid var(--line)}
.close-issue small{display:block;color:var(--muted);margin-top:3px}
.close-issue button{flex:none}
@media(max-width:700px){.close-issue{align-items:flex-start}.close-issue button{font-size:12px}.page-heading>.actions-inline{flex-wrap:wrap;justify-content:flex-start}}

.recurring-panel{margin-bottom:18px}
.recurring-panel .panel-heading{gap:16px;align-items:center}
.recurring-panel .panel-heading p{margin:4px 0 0}
.recurring-template-list{display:grid;gap:8px;margin:16px 0}
.recurring-template{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff)}
.recurring-template strong,.recurring-template small{display:block}
.recurring-template small{color:var(--muted,#63736d);margin-top:4px}
.recurring-template-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.recurring-status{font-size:11px;font-weight:700;color:#8b5d15;background:#fff3d8;padding:5px 8px;border-radius:999px;white-space:nowrap}
.recurring-status.is-logged{color:#20604a;background:#e5f5ed}
@media(max-width:650px){.recurring-panel .panel-heading,.recurring-template{align-items:stretch;flex-direction:column}.recurring-panel .primary{width:100%}}

.year-end-panel{margin-bottom:20px}
.year-end-panel .panel-heading{align-items:center;gap:16px}
.year-end-score{font-size:32px;font-weight:800;color:var(--green);white-space:nowrap}
#year-end-progress{display:block;width:100%;height:12px;margin:15px 0 8px;accent-color:var(--green)}
.year-end-checklist{display:grid;gap:8px;margin:16px 0}
.year-end-check{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.year-end-check.is-complete{background:#f4faf5}
.year-end-check-icon{display:grid;place-items:center;width:26px;height:26px;flex:0 0 26px;border-radius:50%;background:#fff0d8;color:#8b5d15;font-weight:800}
.year-end-check.is-complete .year-end-check-icon{background:#e0f1e5;color:#216044}
.year-end-check>div{flex:1;min-width:0}
.year-end-check strong,.year-end-check small{display:block}
.year-end-check small{color:var(--muted);margin-top:3px;line-height:1.4}
.year-end-evidence{border-top:1px solid var(--line);padding-top:15px}
.year-end-evidence summary{font-weight:700;cursor:pointer;color:var(--green)}
.year-end-evidence form{margin-top:16px}
.year-end-tax-note{margin-top:16px;line-height:1.5}
@media(max-width:650px){.year-end-check{align-items:flex-start;flex-wrap:wrap}.year-end-check .row-action{margin-left:38px}.year-end-panel .panel-heading{align-items:flex-start}}

/* Global Command Palette (⌘K) */
.header-right-group {
  display: flex;
  align-items: center;
  gap: 10px;
}
.cmd-trigger-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 11px;
  border-radius: 999px;
  border: 1px solid var(--line, #e2e0d8);
  background: #fff;
  color: var(--muted, #5c6862);
  font-size: 12.5px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s ease;
  box-shadow: 0 1px 2px rgba(16, 28, 22, 0.04);
}
.cmd-trigger-btn:hover {
  border-color: var(--green, #1f5c41);
  color: var(--ink, #14201a);
  background: #f7faf8;
}
.cmd-trigger-btn kbd {
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 5px;
  background: #eef2ef;
  color: var(--green, #1f5c41);
  border: 1px solid #d6e0d9;
}
.cmd-palette-dialog {
  width: min(600px, 92vw);
  max-width: 600px;
  padding: 0;
  border: 1px solid var(--line, #d8dfd9);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(12, 26, 19, 0.24), 0 4px 16px rgba(12, 26, 19, 0.08);
  overflow: hidden;
  margin: 10vh auto auto;
}
.cmd-palette-dialog::backdrop {
  background: rgba(14, 24, 19, 0.42);
  backdrop-filter: blur(3px);
}
.cmd-palette-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line, #e2e0d8);
  background: #fbfcfa;
}
.cmd-search-icon {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 7px;
  background: #e7f2ec;
  color: var(--green, #1f5c41);
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
#palette-input {
  flex: 1;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: 15px;
  color: var(--ink, #14201a);
  padding: 4px 0;
  margin: 0;
}
.cmd-esc-badge {
  font-size: 10.5px;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 5px;
  background: #eef1ef;
  color: var(--muted, #5c6862);
  border: 1px solid #d8deda;
  cursor: pointer;
}
.cmd-palette-list {
  max-height: 380px;
  overflow-y: auto;
  padding: 8px;
}
.cmd-group-label {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted, #63736d);
  padding: 10px 10px 4px;
}
.cmd-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border-radius: 10px;
  cursor: pointer;
  transition: background 0.1s ease;
}
.cmd-item:hover,
.cmd-item.selected {
  background: #edf5f0;
}
.cmd-item-icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #f3f6f4;
  color: var(--green, #1f5c41);
  font-size: 14px;
  font-weight: 700;
  flex-shrink: 0;
}
.cmd-item.selected .cmd-item-icon {
  background: var(--green, #1f5c41);
  color: #fff;
}
.cmd-item-body {
  flex: 1;
  min-width: 0;
}
.cmd-item-body strong {
  display: block;
  font-size: 13.5px;
  color: var(--ink, #14201a);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cmd-item-body small {
  display: block;
  font-size: 11.5px;
  color: var(--muted, #63736d);
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cmd-item-enter {
  font-size: 12px;
  color: var(--green, #1f5c41);
  opacity: 0;
  font-weight: 700;
}
.cmd-item.selected .cmd-item-enter {
  opacity: 1;
}
.cmd-empty {
  padding: 28px 16px;
  text-align: center;
  color: var(--muted, #63736d);
  font-size: 13.5px;
}
.cmd-palette-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 16px;
  background: #f7f9f7;
  border-top: 1px solid var(--line, #e2e0d8);
  font-size: 11.5px;
  color: var(--muted, #63736d);
}
.cmd-palette-footer kbd {
  display: inline-block;
  padding: 1px 5px;
  margin-right: 3px;
  font-size: 10.5px;
  font-weight: 700;
  background: #fff;
  border: 1px solid #d5dcd7;
  border-radius: 4px;
}

/* Phase 1 Quick Wins: Tax Savings Dashboard, Monthly Pulse & Anomaly Banner, Guided Empty States, Shortcuts Modal */
.tax-savings-hero-panel {
  background: linear-gradient(135deg, #f3faf5 0%, #ffffff 65%);
  border: 1px solid #c6dfd0;
  margin-bottom: 20px;
}
.tax-shield-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.tax-shield-header h3 {
  margin: 2px 0 4px;
}
.tax-shield-header .subtle {
  margin: 0;
  max-width: 620px;
}
.tax-shield-hero-numbers {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tax-shield-badge {
  padding: 10px 16px;
  border-radius: 12px;
  text-align: right;
  min-width: 145px;
}
.tax-shield-badge.primary-shield {
  background: var(--green, #1f5c41);
  color: #ffffff;
  box-shadow: 0 6px 18px rgba(31, 92, 65, 0.18);
}
.tax-shield-badge.primary-shield small {
  display: block;
  font-size: 11px;
  color: #d6ede0;
  font-weight: 600;
}
.tax-shield-badge.primary-shield strong {
  display: block;
  font-size: 23px;
  font-weight: 800;
  margin-top: 2px;
  letter-spacing: -0.02em;
}
.tax-shield-badge.secondary-shield {
  background: #ffffff;
  border: 1px solid #cbdec0;
  color: var(--ink, #14201a);
}
.tax-shield-badge.secondary-shield small {
  display: block;
  font-size: 11px;
  color: var(--muted, #5c6862);
}
.tax-shield-badge.secondary-shield strong {
  display: block;
  font-size: 19px;
  font-weight: 800;
  color: var(--green, #1f5c41);
  margin-top: 2px;
}
.tax-shield-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
}
.tax-shield-card {
  background: #ffffff;
  border: 1px solid var(--line, #e2e0d8);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
}
.tax-shield-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.tax-shield-card-top strong {
  font-size: 16px;
  color: var(--green, #1f5c41);
}
.tax-shield-card-top strong small {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted, #63736d);
}
.shield-pill {
  font-size: 10.5px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e6f3ec;
  color: var(--green, #1f5c41);
}
.shield-pill.purple {
  background: #f0ebf8;
  color: #5a3e85;
}
.tax-shield-card h4 {
  margin: 0;
  font-size: 14px;
  color: var(--ink, #14201a);
}
.tax-shield-card p.subtle {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
}
.tax-shield-card button {
  align-self: flex-start;
  margin-top: 4px;
}

/* Monthly Financial Pulse & Anomaly Banner */
.pulse-banner-wrap {
  background: #ffffff;
  border: 1px solid var(--line, #e2e0d8);
  border-radius: 14px;
  padding: 12px 16px;
  margin-bottom: 18px;
  box-shadow: 0 2px 8px rgba(16, 28, 22, 0.03);
}
.pulse-headline {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pulse-headline p {
  margin: 0;
  font-size: 13.5px;
  color: var(--ink, #14201a);
  line-height: 1.45;
}
.pulse-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--green, #1f5c41);
  box-shadow: 0 0 0 4px #e3f2ea;
  flex-shrink: 0;
}
.pulse-alerts-list {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line, #e2e0d8);
}
.pulse-alert-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border-radius: 10px;
  background: #f9fbf9;
  border: 1px solid #e3eae5;
}
.pulse-alert-item.level-warn {
  background: #fff9ef;
  border-color: #f3dec0;
}
.pulse-alert-item.level-action {
  background: #f2f9f5;
  border-color: #cde3d5;
}
.pulse-alert-icon {
  font-size: 16px;
  flex-shrink: 0;
}
.pulse-alert-text {
  flex: 1;
  min-width: 0;
}
.pulse-alert-text strong {
  display: block;
  font-size: 13px;
  color: var(--ink, #14201a);
}
.pulse-alert-text small {
  display: block;
  font-size: 12px;
  color: var(--muted, #63736d);
  margin-top: 1px;
}
.pulse-cta-btn {
  white-space: nowrap;
  flex-shrink: 0;
}

/* Guided Empty States */
.empty-guided {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 28px 20px;
  text-align: center;
}
.empty-guided span {
  max-width: 460px;
  color: var(--muted, #63736d);
  font-size: 13px;
}
.empty-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.empty-actions kbd {
  font-family: inherit;
  font-size: 10.5px;
  font-weight: 700;
  padding: 1px 5px;
  margin-left: 5px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.35);
}
.empty-actions .row-action kbd {
  background: #eef2ef;
  color: var(--green, #1f5c41);
  border-color: #d6e0d9;
}

/* Shortcuts Cheat-Sheet Modal */
.shortcuts-grid-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
  padding: 12px 16px 18px;
}
.shortcut-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 10px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--ink, #14201a);
}
.shortcut-row:nth-child(even) {
  background: #f7faf8;
}
.shortcut-row kbd {
  display: inline-block;
  padding: 2px 7px;
  font-size: 11px;
  font-weight: 700;
  background: #ffffff;
  color: var(--green, #1f5c41);
  border: 1px solid #d2dcd5;
  border-radius: 5px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}
html[data-theme="dark"] .shortcut-row {
  color: var(--ink);
}
html[data-theme="dark"] .shortcut-row:nth-child(even) {
  background: #1b3026;
}
html[data-theme="dark"] .shortcut-row kbd {
  background: #243b2f;
  color: #a8e7c3;
  border-color: #3b604b;
  box-shadow: none;
}

/* ==========================================================================
   5.3 Reasonable Compensation Benchmark Library Styles
   ========================================================================== */
.benchmark-library-box {
  margin-top: 16px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #f8fbf9 0%, #f1f6f3 100%);
  border: 1px solid #d4e0d8;
  border-radius: 12px;
}
.benchmark-lib-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.benchmark-lib-header h4 {
  margin: 2px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #14201a);
}
.benchmark-profile-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.benchmark-tab-btn {
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid #cbd8cf;
  background: #ffffff;
  color: #3d5245;
  cursor: pointer;
  transition: all 0.15s ease;
}
.benchmark-tab-btn:hover {
  border-color: var(--green, #1f5c41);
  color: var(--green, #1f5c41);
}
.benchmark-tab-btn.active {
  background: var(--green, #1f5c41);
  border-color: var(--green, #1f5c41);
  color: #ffffff;
}
.benchmark-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}
.benchmark-metric-card {
  background: #ffffff;
  border: 1px solid #dce6df;
  border-radius: 10px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.benchmark-metric-card span {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted, #5c6b62);
}
.benchmark-metric-card strong {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #14201a);
}
.benchmark-metric-card strong small {
  font-size: 11px;
  font-weight: 500;
  color: var(--muted, #5c6b62);
}
.benchmark-metric-card small {
  font-size: 11px;
  color: var(--muted, #5c6b62);
}
.benchmark-footer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  padding-top: 10px;
  border-top: 1px dashed #cbd8cf;
}
.benchmark-source-note {
  flex: 1 1 360px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.benchmark-source-note strong {
  font-size: 12.5px;
  color: var(--ink, #14201a);
}
.benchmark-source-note small {
  font-size: 11.5px;
  color: var(--muted, #5c6b62);
  line-height: 1.4;
}
.benchmark-quick-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* ==========================================================================
   5.1 Augusta Rule (IRC § 280A(g)) 14-Day Tracker Styles
   ========================================================================== */
.augusta-meter-box {
  margin-top: 12px;
  margin-bottom: 14px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #f7fbf8 0%, #eff6f2 100%);
  border: 1px solid #d2dfd6;
  border-radius: 12px;
}
.augusta-meter-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.augusta-meter-top h4 {
  margin: 2px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink, #14201a);
}
.augusta-slots-row {
  display: grid;
  grid-template-columns: repeat(14, minmax(26px, 1fr));
  gap: 6px;
}
.augusta-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 700;
  background: #ffffff;
  border: 1px dashed #c2d1c7;
  color: #6c7c72;
  transition: all 0.15s ease;
}
.augusta-slot.used {
  background: var(--green, #1f5c41);
  border: 1px solid var(--green, #1f5c41);
  color: #ffffff;
  box-shadow: 0 2px 4px rgba(31, 92, 65, 0.18);
}
@media (max-width: 640px) {
  .augusta-slots-row {
    grid-template-columns: repeat(7, 1fr);
  }
}

/* ==========================================================================
   Checkbox & Radio Reset + Inline Checkbox Label Polish
   ========================================================================== */
input[type="checkbox"],
input[type="radio"] {
  width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-block !important;
  flex-shrink: 0;
  accent-color: var(--green, #285b46);
  cursor: pointer;
  vertical-align: middle;
}

label.checkbox-inline-label {
  display: flex !important;
  align-items: center;
  gap: 10px;
  margin: 6px 0 14px;
  padding: 10px 12px;
  background: #f6faf7;
  border: 1px solid #d8e4dc;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 500;
  font-size: 13px;
  line-height: 1.4;
  color: var(--ink, #193e35);
  transition: background 0.15s ease, border-color 0.15s ease;
}

label.checkbox-inline-label:hover {
  background: #eef6f0;
  border-color: #bdd2c4;
}

label.checkbox-inline-label span {
  flex: 1;
}

/* ==========================================================================
   3.1 & 3.3 Mobile PWA Quick-Capture Bottom Dock & Offline Banner
   ========================================================================== */
.mobile-quick-dock {
  display: none;
}

.offline-pill {
  background: #fef3c7 !important;
  color: #92400e !important;
  border-color: #f59e0b !important;
  font-weight: 700;
}

.theme-toggle-btn {
  padding: 6px 10px !important;
  min-width: 36px;
  justify-content: center;
}

@media (max-width: 760px) {
  body:not(.login) {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  }
  .mobile-quick-dock {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 120;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid var(--line);
    box-shadow: 0 -4px 20px rgba(15, 35, 27, 0.08);
  }
  .mobile-quick-dock button {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 7px 2px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--ink);
    font-size: 11px;
    font-weight: 600;
    min-height: 48px;
    transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
    cursor: pointer;
  }
  .mobile-quick-dock button:active {
    background: #eaf1e3;
    color: var(--green);
    transform: scale(0.96);
  }
  .mobile-quick-dock .dock-icon {
    font-size: 18px;
    line-height: 1.1;
  }
  #toast {
    bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }
}

/* ==========================================================================
   7.1 Deep Slate-Emerald Dark Mode (html[data-theme="dark"])
   ========================================================================== */
html[data-theme="dark"]:not(:has(body.print-mode)) {
  --bg: #0c1410;
  --ink: #e7f0eb;
  --muted: #8fa599;
  --line: #1f3329;
  --green: #389e70;
  --green-hover: #46b582;
  --lime: #ddec9e;
  --surface: #14221b;
  --surface-card: #14221b;
  --surface-subtle: #182b22;
  --surface-active: #20392d;

  --status-success-bg: #052e16;
  --status-success-ink: #86efac;
  --status-success-border: #14532d;

  --status-warning-bg: #451a03;
  --status-warning-ink: #fde68a;
  --status-warning-border: #78350f;

  --status-danger-bg: #450a0a;
  --status-danger-ink: #fca5a5;
  --status-danger-border: #7f1d1d;

  --status-info-bg: #082f49;
  --status-info-ink: #bae6fd;
  --status-info-border: #075985;

  color-scheme: dark;
}

@media screen {
  html[data-theme="dark"] body {
    background: var(--bg);
    color: var(--ink);
  }

  html[data-theme="dark"] body.login {
    background: #09100d;
  }

  html[data-theme="dark"] aside,
  html[data-theme="dark"] .sidebar-top {
    background: #101b16;
    border-color: var(--line);
  }

  html[data-theme="dark"] .sidebar-bottom {
    background: #0d1712;
    border-color: var(--line);
  }

  /* Seamless all-white logo on dark sidebar (no background card, full size) */
  html[data-theme="dark"] .company-logo,
  html[data-theme="dark"] .login-logo {
    background: transparent !important;
    padding: 0 !important;
    filter: brightness(0) invert(1) !important;
    opacity: 0.96;
    transition: filter 0.2s ease, opacity 0.2s ease;
  }

  html[data-theme="dark"] .sidebar-nav button {
    color: #9cb0a5;
  }

  html[data-theme="dark"] .sidebar-nav button:hover {
    background: #172720;
    color: var(--ink);
  }

  html[data-theme="dark"] .sidebar-nav button.active {
    background: #183025;
    color: #65d29f;
    border-color: #264a39;
  }

  html[data-theme="dark"] .sidebar-nav button.active .nav-icon,
  html[data-theme="dark"] .sidebar-nav button:hover .nav-icon {
    color: #65d29f;
  }

  html[data-theme="dark"] .nav-group-title {
    color: #6d8477;
  }

  html[data-theme="dark"] .nav-badge {
    background: #19382b;
    color: #75e0ad;
  }

  html[data-theme="dark"] header {
    background: #0e1813;
    border-color: var(--line);
  }

  /* High-Contrast Financial Pulse & Anomaly Banner in Dark Mode */
  html[data-theme="dark"] .pulse-banner-wrap {
    background: #12221b !important;
    border-color: #244234 !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
  }

  html[data-theme="dark"] .pulse-headline p {
    color: #f0f7f3 !important;
    font-weight: 500;
  }

  html[data-theme="dark"] .pulse-dot {
    background: #4bb585 !important;
    box-shadow: 0 0 0 4px #1b382b !important;
  }

  html[data-theme="dark"] .pulse-alerts-list {
    border-top-color: #244234 !important;
  }

  html[data-theme="dark"] .pulse-alert-item {
    background: #172d23 !important;
    border-color: #294e3c !important;
  }

  html[data-theme="dark"] .pulse-alert-item.level-warn {
    background: #2a2212 !important;
    border-color: #4d3a1f !important;
  }

  html[data-theme="dark"] .pulse-alert-item.level-warn .pulse-alert-text strong {
    color: #ffd88a !important;
  }

  html[data-theme="dark"] .pulse-alert-item.level-action {
    background: #163224 !important;
    border-color: #29593f !important;
  }

  html[data-theme="dark"] .pulse-alert-text strong {
    color: #ffffff !important;
  }

  html[data-theme="dark"] .pulse-alert-text small {
    color: #a7bcaf !important;
  }

  html[data-theme="dark"] .stat:not(.accent),
  html[data-theme="dark"] .panel,
  html[data-theme="dark"] .login-card,
  html[data-theme="dark"] .comparison-card-col,
  html[data-theme="dark"] .w2-calc-inputs,
  html[data-theme="dark"] .w2-res-card,
  html[data-theme="dark"] .k401-card-item,
  html[data-theme="dark"] .q-card,
  html[data-theme="dark"] .q-portal-card,
  html[data-theme="dark"] .clinic-card,
  html[data-theme="dark"] .resolution-card,
  html[data-theme="dark"] .mand-card,
  html[data-theme="dark"] .tax-shield-card,
  html[data-theme="dark"] .benchmark-metric-card,
  html[data-theme="dark"] .recurring-template,
  html[data-theme="dark"] .year-end-check,
  html[data-theme="dark"] .close-issue {
    background: #121f19;
    border-color: var(--line);
    color: var(--ink);
  }

  html[data-theme="dark"] .stat.accent {
    background: linear-gradient(135deg, #1b4d37 0%, #246347 100%);
    border-color: #2f7d5b;
    color: #ffffff;
  }

  html[data-theme="dark"] .reimbursement-panel,
  html[data-theme="dark"] .comparison-panel,
  html[data-theme="dark"] .w2-calc-panel,
  html[data-theme="dark"] .k401-panel,
  html[data-theme="dark"] .ce-progress-wrap,
  html[data-theme="dark"] .benchmark-library-box,
  html[data-theme="dark"] .augusta-meter-box,
  html[data-theme="dark"] .note,
  html[data-theme="dark"] .mileage-feature {
    background: #15251e;
    border-color: #243d31;
    color: var(--ink);
  }

  html[data-theme="dark"] .note p,
  html[data-theme="dark"] .mileage-feature p:not(.eyebrow),
  html[data-theme="dark"] .mileage-feature small {
    color: #a3b8ad;
  }

  html[data-theme="dark"] .comparison-card-col.highlight,
  html[data-theme="dark"] .w2-res-card.highlight,
  html[data-theme="dark"] .mand-card.completed,
  html[data-theme="dark"] .year-end-check.is-complete {
    background: #162e22;
    border-color: #2b5941;
  }

  html[data-theme="dark"] .w2-res-card.accent {
    background: #132533;
    border-color: #23455e;
  }

  html[data-theme="dark"] .w2-res-card.accent .big-num {
    color: #7cc0f5;
  }

  html[data-theme="dark"] button:not(.primary):not(.preset-btn.active) {
    background: #16261f;
    border-color: #284236;
    color: var(--ink);
  }

  html[data-theme="dark"] button:not(.primary):hover {
    background: #1e342a;
    border-color: #365948;
  }

  html[data-theme="dark"] button.primary {
    background: #2c7d59;
    border-color: #389e70;
    color: #ffffff;
  }

  html[data-theme="dark"] button.primary:hover {
    background: #35946a;
  }

  html[data-theme="dark"] input,
  html[data-theme="dark"] select,
  html[data-theme="dark"] textarea {
    background: #0d1713;
    border-color: #263f33;
    color: var(--ink);
  }

  html[data-theme="dark"] input:focus,
  html[data-theme="dark"] select:focus,
  html[data-theme="dark"] textarea:focus {
    outline-color: #4bb585;
    border-color: #4bb585;
  }

  html[data-theme="dark"] label.checkbox-inline-label {
    background: #14241d;
    border-color: #264034;
    color: var(--ink);
  }

  html[data-theme="dark"] label.checkbox-inline-label:hover {
    background: #192d24;
    border-color: #355948;
  }

  html[data-theme="dark"] .tabs,
  html[data-theme="dark"] .modern-period-picker {
    background: #14231c;
    border-color: var(--line);
  }

  html[data-theme="dark"] .tabs button.active {
    background: #21382d;
    color: #ffffff;
  }

  html[data-theme="dark"] .pill,
  html[data-theme="dark"] .allocation {
    background: #162820;
    border-color: #264235;
    color: var(--ink);
  }

  html[data-theme="dark"] td,
  html[data-theme="dark"] th {
    border-color: #1c2e25;
  }

  html[data-theme="dark"] .table-wrap {
    background: #14221b;
    border-color: #223a2d;
  }

  html[data-theme="dark"] .table-wrap::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.16);
  }

  html[data-theme="dark"] .table-wrap table thead th {
    background: #14221b;
    border-bottom-color: #223a2d;
    box-shadow: 0 1px 0 #223a2d;
    color: #8fa599;
  }

  html[data-theme="dark"] .table-wrap table tbody td {
    border-bottom-color: #223a2d;
    color: #e7f0eb;
  }

  html[data-theme="dark"] .table-wrap table tbody tr:nth-child(even) {
    background-color: rgba(255, 255, 255, 0.018);
  }

  html[data-theme="dark"] .table-wrap table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.045);
  }

  html[data-theme="dark"] .table-wrap table tbody tr.row-selected {
    background-color: #1a382b !important;
  }

  html[data-theme="dark"] .table-wrap table tfoot th,
  html[data-theme="dark"] .table-wrap table tfoot td {
    background: #14221b;
    border-top-color: #223a2d;
    box-shadow: 0 -1px 0 #223a2d;
  }

  html[data-theme="dark"] .pnl-section-header td,
  html[data-theme="dark"] .pnl-subtotal td,
  html[data-theme="dark"] .voucher-table th {
    background: #16261f;
    border-color: #263e33;
    color: var(--ink);
  }

  html[data-theme="dark"] .pnl-total td,
  html[data-theme="dark"] .voucher-total-row td {
    background: #173024;
    color: #65d29f;
    border-color: #389e70;
  }

  html[data-theme="dark"] dialog {
    background: #13211b;
    border-color: #294538;
    color: var(--ink);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.65);
  }

  html[data-theme="dark"] dialog .panel-heading {
    background: #13211b;
    border-bottom-color: #294538;
  }

  html[data-theme="dark"] dialog form > button.primary:last-child {
    box-shadow: 0 -8px 16px rgba(19, 33, 27, 0.95);
  }

  html[data-theme="dark"] .cmd-palette-dialog {
    background: #12201a !important;
    border-color: #2a4639 !important;
  }

  html[data-theme="dark"] .cmd-palette-header,
  html[data-theme="dark"] .cmd-palette-footer {
    background: #0f1b16 !important;
    border-color: #22382e !important;
  }

  html[data-theme="dark"] .cmd-item.selected,
  html[data-theme="dark"] .cmd-item:hover {
    background: #1a3026 !important;
  }

  html[data-theme="dark"] .receipt-dropzone {
    background: #0f1b16;
    border-color: #2b473a;
  }

  html[data-theme="dark"] .receipt-dropzone:hover,
  html[data-theme="dark"] .receipt-dropzone.drag-over {
    background: #162820;
    border-color: #4bb585;
  }

  html[data-theme="dark"] #calendar button {
    background: #16261f;
    color: var(--ink);
  }

  html[data-theme="dark"] #calendar button.logged {
    background: #1b382b;
    border-color: #2f6149;
    color: #7ce0b1;
  }

  html[data-theme="dark"] #calendar button.selected {
    background: var(--green);
    color: #ffffff;
  }

  html[data-theme="dark"] .badge {
    background: #1b3026;
    color: #9de2c0;
  }

  html[data-theme="dark"] .badge.business {
    background: var(--status-success-bg);
    color: var(--status-success-ink);
    border-color: rgba(134, 239, 172, 0.22);
  }

  html[data-theme="dark"] .badge.review {
    background: #382a14;
    color: #f6c467;
    border-color: rgba(253, 230, 138, 0.22);
  }

  html[data-theme="dark"] .badge.personal {
    background: #242926;
    color: #9aa6a0;
    border-color: #2b4437;
  }

  html[data-theme="dark"] .voucher-document,
  html[data-theme="dark"] .minutes-document {
    background: #101c17;
    border-color: #263e33;
    color: var(--ink);
  }

  html[data-theme="dark"] .voucher-meta-grid,
  html[data-theme="dark"] .minutes-meta-box,
  html[data-theme="dark"] .voucher-certification {
    background: #15251e;
    border-color: #2b493b;
    color: var(--ink);
  }

  html[data-theme="dark"] .augusta-slot {
    background: #101c17;
    border-color: #2a4639;
    color: #95aba0;
  }

  html[data-theme="dark"] .augusta-slot.used {
    background: var(--green);
    border-color: var(--green);
    color: #ffffff;
  }

  html[data-theme="dark"] .mobile-quick-dock {
    background: rgba(14, 24, 19, 0.96);
    border-top-color: var(--line);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
  }

  html[data-theme="dark"] .mobile-quick-dock button:active,
  html[data-theme="dark"] .mobile-quick-dock button:hover {
    background: #1a3026;
    color: #65d29f;
  }

  html[data-theme="dark"] .toolbar .tabs {
    background: #14231c;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3);
  }

  html[data-theme="dark"] .toolbar .tabs button {
    color: var(--muted);
  }

  html[data-theme="dark"] .toolbar .tabs button.active {
    background: #20392d;
    color: #65d29f;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
  }

  html[data-theme="dark"] .toolbar > #download {
    background: #121e18;
    border-color: var(--line);
    color: var(--ink);
  }

  html[data-theme="dark"] .toolbar .modern-period-picker {
    background: #121e18;
    border-color: var(--line);
  }

  html[data-theme="dark"] .theme-toggle-btn {
    background: #162720;
    border-color: #2b4538;
    color: var(--ink);
  }

  /* Keep nested cards and status surfaces on the same dark palette as their parents. */
  html[data-theme="dark"] .clinic-card.is-default,
  html[data-theme="dark"] .resolution-card.accent,
  html[data-theme="dark"] .k401-card,
  html[data-theme="dark"] .k401-card.highlight,
  html[data-theme="dark"] .q-card.paid,
  html[data-theme="dark"] .q-card.due_soon,
  html[data-theme="dark"] .q-card.overdue {
    background: #16261f;
    border-color: #2b4739;
    color: var(--ink);
  }

  html[data-theme="dark"] .clinic-rates-box,
  html[data-theme="dark"] .tax-shield-badge.secondary-shield,
  html[data-theme="dark"] .w2-calc-pct-badge,
  html[data-theme="dark"] .cmd-search-icon,
  html[data-theme="dark"] .cmd-item-icon,
  html[data-theme="dark"] .cmd-esc-badge,
  html[data-theme="dark"] .cmd-palette-footer kbd {
    background: #21382b;
    border-color: #365744;
    color: var(--ink);
  }

  html[data-theme="dark"] .clinic-rates-grid,
  html[data-theme="dark"] .clinic-rates-grid strong,
  html[data-theme="dark"] .tax-shield-badge.secondary-shield strong,
  html[data-theme="dark"] .w2-calc-pct-badge input,
  html[data-theme="dark"] .resolution-card .res-stat,
  html[data-theme="dark"] .k401-card .big-num {
    color: #a8e7c3;
  }

  html[data-theme="dark"] .pnl-note td,
  html[data-theme="dark"] .minutes-financial-table th {
    background: #16261f;
    border-color: #2b4739;
    color: var(--ink);
  }

  html[data-theme="dark"] .minutes-financial-table tr.total-row td {
    background: #173024;
    border-color: #389e70;
    color: #a8e7c3;
  }

  html[data-theme="dark"] .minutes-section p {
    color: var(--ink);
  }

  html[data-theme="dark"] .minutes-sig-grid .sig-line {
    border-color: #6f8d7b;
  }
}



/* Keep installed mobile web apps clear of notches, Dynamic Island, and gesture bars. */
@media (max-width: 760px) {
  aside {
    padding-top: calc(12px + env(safe-area-inset-top, 0px)) !important;
    padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
    padding-left: max(16px, env(safe-area-inset-left, 0px)) !important;
  }
  .sidebar-nav button { min-height: 44px; }
  header {
    padding-left: max(16px, env(safe-area-inset-left, 0px));
    padding-right: max(16px, env(safe-area-inset-right, 0px));
    gap: 8px;
  }
  header > span:first-child {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  header b { margin: 0 7px; }
  .header-right-group { flex-shrink: 0; }
  .theme-toggle-btn,
  #pwa-install-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
    padding: 0 !important;
  }
  #pwa-install-btn > span { font-size: 0; }
  #pwa-install-btn .ui-icon { width: 20px; height: 20px; flex-basis: 20px; }
  .content {
    padding-left: max(18px, env(safe-area-inset-left, 0px));
    padding-right: max(18px, env(safe-area-inset-right, 0px));
  }
  .mobile-quick-dock {
    padding-left: max(8px, env(safe-area-inset-left, 0px));
    padding-right: max(8px, env(safe-area-inset-right, 0px));
  }
  dialog {
    max-height: calc(100vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px);
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  body.login {
    min-height: 100vh;
    min-height: 100dvh;
    padding: calc(12px + env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
  }
}

/* Landscape devices can be wider than the mobile breakpoint while still having side cutouts. */
@media (min-width: 761px) and (pointer: coarse) {
  aside { padding-left: env(safe-area-inset-left, 0px) !important; }
  main { padding-right: env(safe-area-inset-right, 0px); }
}

/* Phone navigation: a discoverable drawer instead of clipped horizontal tabs. */
.mobile-menu-btn,
.mobile-menu-close,
.mobile-menu-backdrop { display: none; }

@media (max-width: 760px) {
  #app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: min(86vw, 320px);
    height: 100vh;
    height: 100dvh;
    max-height: none;
    padding: 0 !important;
    border-right: 1px solid var(--line);
    border-bottom: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 301;
    transform: translateX(-103%);
    visibility: hidden;
    transition: transform 220ms ease, visibility 220ms ease;
  }
  body.nav-open #app-sidebar {
    transform: translateX(0);
    visibility: visible;
  }
  .sidebar-top {
    position: relative;
    padding: calc(16px + env(safe-area-inset-top, 0px)) max(18px, env(safe-area-inset-right, 0px)) 14px max(18px, env(safe-area-inset-left, 0px));
  }
  .sidebar-top .brand { width: calc(100% - 50px); }
  .mobile-menu-close {
    position: absolute;
    top: calc(12px + env(safe-area-inset-top, 0px));
    right: max(12px, env(safe-area-inset-right, 0px));
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 18px;
  }
  .sidebar-nav {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 8px max(14px, env(safe-area-inset-right, 0px)) 14px max(14px, env(safe-area-inset-left, 0px));
    overflow-x: hidden;
    overflow-y: auto;
    white-space: normal;
  }
  .sidebar-nav button {
    width: 100%;
    min-height: 48px;
    justify-content: flex-start;
    padding: 10px 12px;
    font-size: 14px;
  }
  .sidebar-nav button .nav-icon { width: 19px; height: 19px; }
  .sidebar-nav button span { font-size: 14px; }
  .sidebar-bottom {
    display: flex !important;
    padding: 12px max(16px, env(safe-area-inset-right, 0px)) calc(12px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)) !important;
  }
  .mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    display: block;
    z-index: 300;
    background: rgba(10, 25, 18, .48);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 220ms ease, visibility 220ms ease;
  }
  body.nav-open .mobile-menu-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  body.nav-open { overflow: hidden; }
  header {
    height: auto;
    min-height: calc(56px + env(safe-area-inset-top, 0px));
    padding-top: env(safe-area-inset-top, 0px);
    justify-content: flex-start;
  }
  .mobile-menu-btn {
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 22px;
    line-height: 1;
  }
  header .header-right-group { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  #app-sidebar,
  .mobile-menu-backdrop { transition: none; }
}

.mobile-menu-title { display: none; }
@media (max-width: 760px) {
  .sidebar-top {
    padding-top: calc(10px + env(safe-area-inset-top, 0px));
    padding-bottom: 8px;
  }
  .sidebar-top .brand { display: none; }
  .mobile-menu-title {
    display: flex;
    align-items: center;
    min-height: 44px;
    font-size: 18px;
    color: var(--ink);
  }
  header #header-brand-title,
  header > span:first-of-type > b { display: none; }
  header #breadcrumb {
    font-size: 15px;
    font-weight: 700;
  }
  .mobile-quick-dock {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2px;
  }
  .mobile-quick-dock button {
    min-width: 0;
    font-size: 10px;
    white-space: nowrap;
  }
}
@media (max-width: 340px) {
  .mobile-quick-dock button { font-size: 9px; }
  .mobile-quick-dock .dock-icon { font-size: 17px; }
}

/* Keep the brand mark light and aligned with the dock's other actions. */
@media (max-width: 760px) {
  #app-sidebar { width: min(90vw, 380px); }
  .mobile-menu-title { gap: 9px; }
  .mobile-menu-title img {
    display: block;
    width: 126px;
    height: auto;
    object-fit: contain;
  }
}

/* Consistent outline iconography and compact phone branding. */
.ui-icon { display: block; width: 20px; height: 20px; flex: 0 0 20px; }
.workspace-status { display: inline-flex; align-items: flex-start; gap: 6px; min-width: 0; }
.workspace-status > span:last-child { min-width: 0; }
.workspace-status strong { display: block; color: var(--ink); font-size: 11px; font-weight: 700; line-height: 1.35; overflow-wrap: anywhere; }
.workspace-status small { display: block; color: var(--muted); font-size: 10px; line-height: 1.35; margin-top: 2px; }
.workspace-status .private-dot { flex: 0 0 7px; margin: 4px 0 0; }
.sidebar-status-box { min-width: 0; }
@media (min-width: 761px) {
  .sidebar-bottom { flex-direction: column; align-items: stretch; }
  .sidebar-bottom #logout { align-self: flex-start; }
}
.sidebar-bottom #logout { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }
.sidebar-bottom #logout .ui-icon { width: 16px; height: 16px; flex-basis: 16px; }
.theme-toggle-btn .ui-icon { width: 18px; height: 18px; }
.offline-pill:not(.hidden),
#pwa-install-btn > span,
.page-heading .actions-inline button,
.period-calendar-icon { display: inline-flex; align-items: center; gap: 6px; }
.offline-pill .ui-icon,
#pwa-install-btn .ui-icon,
.page-heading .actions-inline .ui-icon,
.period-calendar-icon .ui-icon { width: 16px; height: 16px; flex-basis: 16px; }
.theme-toggle-btn .theme-sun { display: none; }
html[data-theme="dark"] .theme-toggle-btn .theme-moon { display: none; }
html[data-theme="dark"] .theme-toggle-btn .theme-sun { display: block; }

@media (max-width: 760px) {
  header { position: relative; }
  header > span:first-of-type {
    display: flex;
    align-items: center;
    min-width: 0;
    margin-left: 10px;
    letter-spacing: 0;
  }
  header #breadcrumb { font-size: 16px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mobile-menu-btn .ui-icon,
  .mobile-menu-close .ui-icon { width: 22px; height: 22px; }
  .mobile-menu-title img { width: 126px; height: auto; max-height: 44px; object-fit: contain; }
  .mobile-quick-dock { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mobile-quick-dock .dock-icon { display: grid; place-items: center; width: 22px; height: 22px; }
  .mobile-quick-dock .dock-icon .ui-icon { width: 22px; height: 22px; }
}

html[data-theme="dark"] .mobile-menu-title img { filter: brightness(0) invert(1); }

/* Reuse the proven sidebar brand in the phone drawer; keep its image URL versioned. */
@media (max-width: 760px) {
  .sidebar-top .brand {
    display: flex;
    width: calc(100% - 50px);
    min-height: 44px;
    align-items: flex-start;
    justify-content: center;
  }
  .sidebar-top .company-logo {
    display: block;
    width: 118px;
    height: auto;
    max-height: 52px;
    object-fit: contain;
  }
}

/* Keep optional help with account actions, away from primary navigation. */
.sidebar-bottom { flex-direction: column; align-items: stretch; }
.sidebar-footer-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sidebar-footer-actions #logout,
.sidebar-footer-actions .sidebar-tour-btn,
.sidebar-footer-actions .sidebar-shortcuts-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.sidebar-footer-actions .sidebar-tour-btn:hover,
.sidebar-footer-actions .sidebar-tour-btn:focus-visible,
.sidebar-footer-actions .sidebar-shortcuts-btn:hover,
.sidebar-footer-actions .sidebar-shortcuts-btn:focus-visible,
.sidebar-footer-actions #logout:focus-visible { background: var(--surface, #f0f5ed); color: var(--ink); }
.sidebar-footer-actions .ui-icon { width: 16px; height: 16px; flex: 0 0 16px; }
@media (max-width: 760px) {
  .sidebar-bottom { gap: 10px; }
  .sidebar-footer-actions { flex-wrap: wrap; }
  .sidebar-footer-actions button { min-height: 40px; }
  body.nav-open #app-sidebar { z-index: 1002; }
  body.nav-open .mobile-menu-backdrop { z-index: 1001; }
}

/* =====================================================================
   DEMO MODE & PRODUCT TOUR STYLES
   ===================================================================== */
.workspace-admin-panel { margin-top: 24px; }
.workspace-admin-panel { max-width: 920px; margin-left: 0; }
.workspace-admin-panel .panel-heading { margin-bottom: 22px; }
.workspace-access-layout { display: grid; grid-template-columns: minmax(190px, 260px) minmax(0, 1fr); gap: 28px; align-items: start; }
.workspace-access-block { min-width: 0; }
.workspace-access-block > label { display: block; }
.workspace-access-hint { font-size: 13px; margin-top: 10px; }
.workspace-access-block h4:first-child { margin-top: 0; }
.workspace-review-activity { font-size: 13px; }
.workspace-member-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.workspace-member-actions button{padding:7px 10px;font-size:12px}
.owner-review-year-label{display:block;max-width:180px;font-size:12px;font-weight:700}
.cpa-connect-panel{max-width:1000px}
.cpa-access-panel{margin-top:24px}
.cpa-connect-panel .workspace-access-block{width:100%}
.cpa-connect-setup{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin:16px 0 22px;color:var(--ink)}
.cpa-connect-setup strong{display:block;font-size:16px;margin-bottom:10px}
.cpa-connect-setup ol{margin:0;padding-left:20px;color:var(--muted);line-height:1.75}
#nav-cpa-badge{background:#b7543f;color:#fff;min-width:22px;text-align:center}
#compliance-doc-file-input{display:none}
.cpa-connect-alert{width:100%;display:flex;align-items:center;gap:12px;margin:0 0 20px;padding:14px 18px;border:1px solid #cbe3d2;border-radius:12px;background:#e9f4e9;color:#174c3d;text-align:left;font-weight:700;cursor:pointer}
.cpa-connect-alert>span:last-child{margin-left:auto;white-space:nowrap}
.cpa-connect-alert-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#cfe8d6;flex:none}
@media(max-width:600px){.cpa-connect-alert{flex-wrap:wrap}.cpa-connect-alert>span:last-child{margin-left:40px}}
.owner-review-year-label select{display:block;width:100%;margin-top:5px}
.workspace-review-item{border-top:1px solid var(--line);padding:13px 0;color:var(--ink)}
.workspace-review-item>strong,.workspace-review-item>small{display:block}
.workspace-review-item>small{color:var(--muted);text-transform:capitalize}
.workspace-review-item>p{margin:8px 0}
.workspace-owner-response{background:var(--bg);padding:8px 10px;border-radius:8px}
.workspace-response-form{display:flex;gap:8px;align-items:end}
.workspace-response-form input{flex:1;min-width:0}
.cpa-review-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 18px}
.cpa-review-heading h4,.cpa-access-section h3{margin:0 0 5px;font-size:18px}
.cpa-review-heading .subtle{margin:0}
.cpa-review-heading .owner-review-year-label{min-width:130px;margin:0}
.cpa-review-group{margin:24px 0}
.cpa-review-group h5{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 12px}
.cpa-review-group h5 span{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:1px 8px;font-size:12px;color:var(--muted)}
.cpa-review-empty{border:1px dashed var(--line);border-radius:12px;padding:18px;color:var(--muted);margin:0}
.workspace-review-item{border:1px solid var(--line);border-radius:13px;padding:17px;margin:10px 0;background:var(--bg)}
.workspace-review-item.needs-reply{border-color:#cbdccf;background:color-mix(in srgb,var(--bg) 70%,white)}
.cpa-thread-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:13px}
.cpa-thread-heading>div{min-width:0}
.cpa-thread-heading strong,.cpa-record-link{font-size:15px;font-weight:700;line-height:1.35}
.cpa-thread-heading small{display:block;color:var(--muted);margin-top:3px}
.cpa-record-link{display:inline;text-align:left;padding:0;border:0;background:none;color:var(--green);text-decoration:underline;text-underline-offset:3px}
.cpa-record-link:hover{background:none;color:var(--ink)}
.cpa-record-link[aria-expanded="true"] span{display:inline-block;transform:rotate(180deg)}
.cpa-record-detail{border:1px solid var(--line);border-radius:10px;padding:15px;margin:0 0 14px;background:var(--bg)}
.cpa-record-detail[hidden]{display:none}
.cpa-record-detail .eyebrow{margin-bottom:10px}
.cpa-record-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0}
.cpa-record-detail dl>div{min-width:0}
.cpa-record-detail dt{font-size:11px;color:var(--muted)}
.cpa-record-detail dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}
.cpa-record-notes{grid-column:1/-1}
.cpa-detail-receipt{margin-top:14px;padding:7px 10px;background:transparent;color:var(--green);border-color:var(--line);font-size:12px}
.cpa-detail-no-receipt{margin:12px 0 0;color:var(--muted);font-size:12px}
.cpa-review-status{white-space:nowrap;border-radius:99px;padding:3px 9px;background:var(--line);font-size:11px;font-weight:700;text-transform:capitalize}
.cpa-review-status.needs-reply{background:#fbefd8;color:#794c10}
.cpa-message{max-width:86%;width:max-content;margin:9px 0;padding:10px 13px;border-radius:12px 12px 12px 3px;background:var(--line);overflow-wrap:anywhere}
.cpa-message.owner{margin-left:auto;border-radius:12px 12px 3px 12px;background:#e2eee4}
html[data-theme="dark"] .cpa-message.owner{background:#214235}
html[data-theme="dark"] .workspace-review-item.needs-reply{border-color:#365d46;background:#15251b}
html[data-theme="dark"] .cpa-review-status.needs-reply{background:#4a341a;color:#f8d99b}
.cpa-message small{display:block;color:var(--muted);font-size:11px;font-weight:700}
.cpa-message p{margin:3px 0 0;white-space:pre-wrap}
.workspace-response-form{margin-top:14px;align-items:stretch}
.workspace-response-form textarea{flex:1;min-width:0;min-height:54px;margin:0}
.workspace-response-form button{align-self:end;white-space:nowrap;background:var(--green);color:white;border-color:var(--green)}
.cpa-review-history{margin:24px 0}
.cpa-review-history summary,.cpa-add-access summary{cursor:pointer;font-weight:700;color:var(--green)}
.cpa-access-section{margin:0;padding:0}
.cpa-add-access{border:1px solid var(--line);border-radius:12px;padding:15px 18px;margin-top:20px}
.cpa-add-access-body{padding-top:15px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.cpa-review-heading{align-items:stretch;flex-direction:column}.cpa-review-heading .owner-review-year-label{width:100%}.cpa-message{max-width:96%}.cpa-thread-heading{flex-wrap:wrap}.workspace-response-form button{align-self:stretch}.cpa-record-detail dl{grid-template-columns:1fr}}
@media(max-width:600px){.workspace-member{align-items:flex-start;flex-direction:column}.workspace-member-actions{justify-content:flex-start}.workspace-response-form{flex-direction:column;align-items:stretch}}
.workspace-admin-panel > label { display: block; max-width: 420px; }
.workspace-admin-panel select { display: block; width: 100%; margin-top: 6px; }
.workspace-admin-panel h4 { margin: 24px 0 6px; font-size: 15px; }
.member-invite-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(155px, .7fr); gap: 10px; margin: 14px 0; }
.member-invite-form label { flex: 1; min-width: 0; }
.member-invite-form input { display: block; width: 100%; margin-top: 6px; }
.member-invite-form button { grid-column: 1 / -1; justify-self: start; }
.workspace-member { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.workspace-member span { min-width: 0; overflow-wrap: anywhere; }
.workspace-member small { display: block; color: var(--muted); }
@media (max-width: 760px) { .workspace-access-layout { grid-template-columns: 1fr; gap: 8px; } .member-invite-form { grid-template-columns: 1fr; } .member-invite-form button { width: 100%; } }

.demo-banner {
  background: linear-gradient(90deg, #13392f 0%, #1b4d3e 50%, #205747 100%);
  color: #f4f8f5;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  padding: 10px 18px;
  position: sticky;
  top: 0;
  z-index: 900;
  box-shadow: 0 4px 14px rgba(10, 25, 20, 0.25);
  width: 100%;
  box-sizing: border-box;
}

.demo-banner-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: 1400px;
  margin: 0 auto;
  flex-wrap: wrap;
}

.demo-banner-info {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  line-height: 1.4;
  flex: 1 1 300px;
  min-width: 0;
}

.demo-pill {
  display: inline-flex;
  align-items: center;
  background: #ddec9e;
  color: #16382c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.6px;
  padding: 3px 8px;
  border-radius: 999px;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}

.demo-banner-text {
  color: rgba(255, 255, 255, 0.95);
}

.demo-banner-text strong {
  color: #ffffff;
}

.demo-banner-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.demo-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  text-decoration: none;
  font-family: inherit;
}

.demo-btn:hover {
  background: rgba(255, 255, 255, 0.24);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-1px);
}

.demo-btn-tour {
  background: #ddec9e;
  color: #143529;
  border-color: #ddec9e;
  font-weight: 700;
}

.demo-btn-tour:hover {
  background: #e6f5aa;
  border-color: #e6f5aa;
  color: #0d261d;
}

.demo-btn-exit {
  background: transparent;
  border-color: transparent;
  color: rgba(255, 255, 255, 0.8);
}

.demo-btn-exit:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.2);
}

/* Login page demo card banner */
.demo-card-banner {
  background: var(--surface-subtle, #f0f6f2);
  border: 1px dashed var(--line, #cbdad1);
  border-radius: 10px;
  padding: 14px 16px;
  margin-top: 18px;
  text-align: left;
}

.demo-card-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--forest, #285e3e);
  background: rgba(40, 94, 62, 0.1);
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.demo-card-banner p {
  font-size: 12px;
  color: var(--ink-light, #55695e);
  margin: 0 0 10px;
  line-height: 1.45;
}

.demo-card-banner h3 {
  margin: 0 0 6px;
  color: var(--ink);
  font-size: 16px;
}

.demo-launch-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  font-size: 13px;
  font-weight: 700;
  padding: 9px 14px;
  border-radius: 8px;
  background: var(--forest, #285e3e);
  color: #ffffff;
  text-decoration: none;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.demo-launch-btn:hover {
  background: #1e4a30;
  transform: translateY(-1px);
}

/* Tour overlay & tooltip elements */
.tour-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(12, 22, 17, 0.55);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 10000;
  pointer-events: auto;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.tour-backdrop.visible {
  opacity: 1;
}

.tour-spotlight-target {
  position: relative !important;
  z-index: 10001 !important;
  outline: 3px solid #2e7d52 !important;
  outline-offset: 4px !important;
  border-radius: 8px !important;
  box-shadow: 0 0 0 6px rgba(46, 125, 82, 0.25), 0 0 30px rgba(46, 125, 82, 0.4) !important;
  transition: outline 0.2s ease, box-shadow 0.2s ease !important;
}

.tour-card {
  position: fixed;
  z-index: 10002;
  width: min(440px, calc(100vw - 32px));
  background: #ffffff;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28), 0 4px 12px rgba(0, 0, 0, 0.12);
  padding: 22px 22px 18px;
  box-sizing: border-box;
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  animation: tourCardIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes tourCardIn {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.tour-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.tour-step-badge {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.6px;
  color: var(--forest, #285e3e);
  background: rgba(40, 94, 62, 0.12);
  padding: 3px 8px;
  border-radius: 999px;
  text-transform: uppercase;
}

.tour-close-btn {
  background: none;
  border: none;
  font-size: 18px;
  line-height: 1;
  color: var(--subtle, #758a7e);
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: all 0.15s ease;
}

.tour-close-btn:hover {
  color: var(--ink);
  background: var(--line-light, rgba(0,0,0,0.06));
}

.tour-card-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 8px;
  line-height: 1.3;
}

.tour-card-body {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--subtle, #5c7265);
  margin: 0 0 18px;
}

.tour-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: 14px;
  gap: 12px;
}

.tour-dots {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tour-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--line, #cbdad1);
  transition: all 0.2s ease;
}

.tour-dot.active {
  width: 18px;
  border-radius: 999px;
  background: var(--forest, #285e3e);
}

.tour-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tour-btn {
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid var(--line);
  background: #ffffff;
  color: var(--ink);
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: inherit;
}

.tour-btn:hover:not(:disabled) {
  background: var(--line-light, #f0f4f1);
  border-color: var(--subtle);
}

.tour-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.tour-btn-primary {
  background: var(--forest, #285e3e);
  color: #ffffff;
  border-color: var(--forest, #285e3e);
}

.tour-btn-primary:hover:not(:disabled) {
  background: #1e4a30;
  border-color: #1e4a30;
  color: #ffffff;
}

.tour-btn-skip {
  border: none;
  background: none;
  color: var(--subtle);
  padding: 6px 8px;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  font-size: 12px;
  font-family: inherit;
}

.tour-btn-skip:hover {
  color: var(--ink);
}

/* Dark mode enhancements for tour and demo banner */
html[data-theme="dark"] .demo-banner {
  background: linear-gradient(90deg, #0d211a 0%, #122c22 50%, #16362b 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

html[data-theme="dark"] .demo-pill {
  background: #a9e4be;
  color: #0b2118;
}

html[data-theme="dark"] .tour-spotlight-target {
  outline-color: #8be4b1 !important;
  box-shadow: 0 0 0 6px rgba(139, 228, 177, 0.25), 0 0 36px rgba(139, 228, 177, 0.35) !important;
}

html[data-theme="dark"] .tour-card,
html[data-theme="dark"] .tour-btn:not(.tour-btn-primary) {
  background: #14251e;
  color: #edf4ee;
}

html[data-theme="dark"] .tour-step-badge {
  background: rgba(139, 228, 177, 0.18);
  color: #8be4b1;
}

html[data-theme="dark"] .tour-dot.active {
  background: #8be4b1;
}

html[data-theme="dark"] .tour-btn-primary {
  background: #3a825b;
  border-color: #3a825b;
}

html[data-theme="dark"] .tour-btn-primary:hover:not(:disabled) {
  background: #469c6e;
  border-color: #469c6e;
}

@media (max-width: 600px) {
  .demo-banner { padding: 8px 12px; position: relative; }
  .demo-banner-inner { gap: 8px; }
  .demo-banner-info { font-size: 12px; flex-basis: 100%; }
  .demo-banner-text { overflow-wrap: anywhere; }
  .demo-banner-actions { width: 100%; flex-wrap: nowrap; }
  .demo-btn { justify-content: center; flex: 1; padding: 7px 5px; font-size: 11px; }
  .tour-card {
    inset: auto 12px calc(12px + env(safe-area-inset-bottom)) 12px !important;
    width: auto !important;
    max-width: none !important;
    transform: none !important;
    max-height: min(56dvh, 440px);
    padding: 16px;
  }
  .tour-card-footer { align-items: flex-start; flex-direction: column; }
  .tour-actions { width: 100%; justify-content: flex-end; }
  .tour-btn { min-height: 40px; }
}

/* ==========================================================================
   Accountable Plan Reimbursement Queue Toolbar & Month Selection
   ========================================================================== */
.reimb-queue-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  background: var(--surface, #fff);
  border: 1px solid var(--line, #e2e8dc);
  border-radius: 10px;
  padding: 12px 16px;
  margin: 14px 0 16px;
  flex-wrap: wrap;
}

.reimb-filter-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.reimb-filter-label {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.reimb-month-select {
  height: 38px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--bg);
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  outline: none;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.reimb-month-select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(40, 91, 70, 0.18);
}

.reimb-quick-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.reimb-quick-actions button {
  height: 34px;
  padding: 0 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  background: #eaf0e4;
  color: var(--green);
  border: 1px solid #cbdec0;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.reimb-quick-actions button:hover:not(:disabled) {
  background: var(--green);
  color: #fff;
}

html[data-theme="dark"] .reimb-quick-actions button {
  background: #143525;
  border-color: #24583e;
  color: #86efac;
}

html[data-theme="dark"] .reimb-quick-actions button:hover:not(:disabled) {
  background: #1e4a38;
  color: #fff;
}

.table-wrap tr.row-selected {
  background: #f0f7ec;
}

html[data-theme="dark"] .table-wrap tr.row-selected {
  background: rgba(40, 91, 70, 0.25);
}

@media (max-width: 680px) {
  .reimb-queue-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 12px;
  }
  .reimb-filter-group {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  .reimb-month-select {
    width: 100%;
  }
  .reimb-quick-actions {
    justify-content: flex-start;
  }
}

/* Category Taxonomy Optgroup Styling */
optgroup {
  font-weight: 700;
  color: var(--ink);
  font-size: 11px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: #f4f6f1;
  padding: 6px 4px 2px;
}

optgroup option {
  font-weight: 400;
  font-size: 13px;
  color: var(--ink);
  text-transform: none;
  background: #fff;
  padding: 4px 8px;
}

html[data-theme="dark"] optgroup {
  color: #7bb89a;
  background: #13241b;
}

html[data-theme="dark"] optgroup option {
  color: #e5ede8;
  background: #0d1713;
}

/* Invite-only email sign-in */
.login-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:22px 0 12px}
.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}
.email-login-form{display:grid;gap:9px;margin:0 0 12px!important}
.email-login-form label{font-weight:600;color:var(--ink)}
.email-login-form input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--surface,#fff);color:var(--ink)}
.email-login-form button{margin-top:5px}
.login-back{display:inline-block;margin:0 0 12px;font-size:12px}
.login-error,.login-notice{padding:10px 12px;border-radius:9px;margin:16px 0!important}
.login-error{background:#fff0ec;color:#9b321d!important}
.login-notice{background:#eaf2e8;color:var(--ink)!important}
html[data-theme="dark"] .email-login-form input{background:#17251e;border-color:#375047;color:#f0f5f1}
html[data-theme="dark"] .login-error{background:#432820;color:#ffd4c6!important}
html[data-theme="dark"] .login-notice{background:#20382a;color:#d9eadb!important}
.login-info-link{text-align:center;margin:20px 0 0;font-size:13px}.login-info-link a{color:var(--ink,#193e35);text-decoration:underline;text-underline-offset:3px}

/* Shared workspace foundations: owner and CPA use the same surfaces and states. */
:root{--review-surface:var(--surface-subtle);--review-owner-surface:#e5f0e7;--review-attention-border:var(--status-warning-border);--page-title-size:clamp(28px,3vw,36px)}
html[data-theme="dark"]{--review-owner-surface:#213d30}
button{min-height:40px}
.page-heading{align-items:flex-start;margin-bottom:28px}
.page-heading>div:first-child{max-width:700px;min-width:0}
.page-heading h1{font-size:var(--page-title-size);line-height:1.15;margin:4px 0 10px}
.page-heading p:not(.eyebrow){font-size:14px;line-height:1.55;max-width:64ch}
.page-heading .actions-inline{align-self:center}
.workspace-review-item{background:var(--review-surface);border-radius:var(--radius-lg);padding:18px;margin:12px 0}
.workspace-review-item.needs-reply{background:var(--review-surface);border-color:var(--review-attention-border)}
.cpa-review-status{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:var(--radius-pill)}
.cpa-review-status.needs-reply{background:var(--status-warning-bg);border-color:var(--status-warning-border);color:var(--status-warning-ink)}
.cpa-message{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-xs)}
.cpa-message.owner{background:var(--review-owner-surface);border-color:var(--line);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg)}
html[data-theme="dark"] .workspace-review-item.needs-reply{background:var(--review-surface);border-color:var(--review-attention-border)}
html[data-theme="dark"] .cpa-review-status.needs-reply{background:var(--status-warning-bg);border-color:var(--status-warning-border);color:var(--status-warning-ink)}
html[data-theme="dark"] .cpa-message.owner{background:var(--review-owner-surface)}
.workspace-response-form button,.cpa-detail-receipt{min-height:40px}
@media(max-width:760px){.page-heading{gap:14px}.page-heading h1{font-size:clamp(27px,8vw,34px)}.workspace-review-item{padding:15px}}

/* Alerts keep their message readable before asking for an action on a phone. */
.pulse-banner-wrap{background:var(--surface)}
.pulse-alert-item{background:var(--surface-subtle);border-color:var(--line)}
.pulse-alert-item.level-warn{background:var(--status-warning-bg);border-color:var(--status-warning-border)}
.pulse-alert-item.level-action{background:var(--surface-subtle);border-color:var(--line)}
.pulse-alerts-list:first-child{margin-top:0;padding-top:0;border-top:0}
@media(max-width:600px){
  .pulse-alert-item{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:6px 10px;padding:14px}
  .pulse-alert-icon{grid-column:1;grid-row:1}
  .pulse-alert-text{grid-column:2;grid-row:1}
  .pulse-cta-btn{grid-column:2;grid-row:2;justify-self:start;white-space:normal;text-align:left;min-height:40px;margin-top:5px}
}

.login-card .google-button,.login-card .primary,.login-card .demo-launch-btn,.login-info-link a{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.login-card .ui-icon{width:16px;height:16px;flex:0 0 16px}
.cmd-item-icon .ui-icon,.pulse-alert-icon .ui-icon,.alert-icon .ui-icon,.mand-icon .ui-icon,.cal-commute-icon .ui-icon,.feature-icon .ui-icon{width:18px;height:18px;flex:0 0 18px}
.cmd-item-icon .ui-icon{width:16px;height:16px;flex-basis:16px}
.pulse-alert-icon,.alert-icon,.mand-icon,.cal-commute-icon,.feature-icon{display:inline-flex;align-items:center;justify-content:center}
