:root{--bg:#f2f4f7;--surface:#fff;--surface-2:#eef1f5;--text:#1a1d21;--muted:#5b6470;--border:#d7dde4;--primary:#1d4ed8;--primary-dark:#1e40af;--primary-soft:#e8eefc;--danger:#b42318;--danger-soft:#fdecea;--success:#166534;--success-soft:#e7f4ec;--warning:#92400e;--warning-soft:#fdf3e3;--radius:10px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018281a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}a{color:var(--primary)}.app-shell{min-height:100vh;display:flex}.sidebar{color:#e8edf5;background:#16233b;flex-direction:column;flex-shrink:0;gap:4px;width:248px;padding:20px 14px;display:flex}.brand{padding:4px 10px 16px}.brand-name{letter-spacing:.2px;font-size:17px;font-weight:700}.brand-sub{color:#9fb0c9;font-size:12px}.nav-link{color:#dbe4f2;border-radius:8px;align-items:center;gap:10px;min-height:48px;padding:12px 14px;font-size:15px;text-decoration:none;display:flex}.nav-link:hover{background:#ffffff14}.nav-link.active{background:#ffffff24;font-weight:600}.sidebar-footer{color:#9fb0c9;margin-top:auto;padding:10px;font-size:13px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:16px;padding:12px 24px;display:flex;position:sticky;top:0}.active-business-pill{background:var(--primary-soft);color:var(--primary-dark);border:1px solid #c9d8f8;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:600;display:inline-flex}.content{width:100%;max-width:1180px;margin:0 auto;padding:28px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px}.page-title{margin:0 0 4px;font-size:26px;font-weight:700}.page-sub{color:var(--muted);margin:0 0 20px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow-x:auto}table.grid{border-collapse:collapse;width:100%;font-size:15px}table.grid th{text-align:left;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px;font-weight:600}table.grid td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 14px}table.grid tr:last-child td{border-bottom:none}table.grid tr:hover td{background:#f8fafc}.field{margin-bottom:16px}.field label{margin-bottom:6px;font-size:14px;font-weight:600;display:block}.field .hint{color:#475569;margin-top:6px;font-size:14px;font-weight:500;line-height:1.4}.field .error-text{color:var(--danger);margin-top:4px;font-size:13px;font-weight:600}.field-invalid .input{border-color:var(--danger);border-width:2px}.field-invalid label{color:var(--danger)}.input,select.input,textarea.input{border:1px solid var(--border);width:100%;min-height:46px;color:var(--text);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:16px}.input:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.input[aria-invalid=true]{border-color:var(--danger)}textarea.input{resize:vertical;min-height:96px}.form-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.checkbox-row{align-items:center;gap:10px;min-height:46px;font-size:15px;display:flex}.checkbox-row input{width:20px;height:20px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#8f1d14}.btn-ghost{color:var(--primary);background:0 0}.btn-sm{min-height:38px;padding:6px 14px;font-size:14px}.btn-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.modal-backdrop{z-index:100;background:#0f172a80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;width:100%;max-width:560px;max-height:90vh;padding:24px;overflow-y:auto}.modal h2{margin:0 0 8px;font-size:20px}.modal p{color:var(--muted)}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:48px 20px}.empty-state h3{color:var(--text);margin:0 0 8px}.alert{border-radius:8px;margin-bottom:16px;padding:14px 16px;font-size:15px}.alert-error{background:var(--danger-soft);color:#7a1f16;border:1px solid #f3c2bd}.alert-warning{background:var(--warning-soft);color:#6b3a0a;border:1px solid #f0dcae}.alert-info{background:var(--primary-soft);color:var(--primary-dark);border:1px solid #c9d8f8}.alert-success{background:var(--success-soft);color:var(--success);border:1px solid #bfe3cc}.badge{letter-spacing:.2px;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700;display:inline-block}.badge-draft{background:var(--warning-soft);color:var(--warning);border:1px solid #f0dcae}.badge-issued{background:var(--success-soft);color:var(--success);border:1px solid #bfe3cc}.badge-void{color:var(--muted);border:1px solid var(--border);background:#f1f2f4}.save-status{align-items:center;gap:6px;font-size:13.5px;font-weight:600;display:inline-flex}.save-status .dot{border-radius:50%;width:9px;height:9px;display:inline-block}.save-status.saved{color:var(--success)}.save-status.saved .dot{background:var(--success)}.save-status.saving{color:var(--warning)}.save-status.saving .dot{background:var(--warning);animation:1s infinite pulse}.save-status.failed{color:var(--danger)}.save-status.failed .dot{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}.setup-panel{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius);text-align:center;max-width:640px;margin:40px auto;padding:32px}.setup-panel h2{margin-top:0}.setup-panel ol{text-align:left;display:inline-block}.stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px;display:grid}.stats-compact{grid-template-columns:repeat(2,1fr);gap:10px}.stats-compact .stat{padding:12px 14px}.stats-compact .stat .value{font-size:22px}.stats-compact .stat .label{font-size:11px}.stats-mini{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.stats-mini .stat{padding:6px 8px}.stats-mini .stat .value{margin-top:1px;font-size:14px}.stats-mini .stat .label{font-size:9px}.stats-mini .stat .note{color:var(--muted);font-size:9px}.card-mini{padding:10px 12px}.card-mini summary{cursor:pointer;font-size:13px;font-weight:600}@media (width<=640px){.stats-mini{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:13px;font-weight:600}.stat .value{margin-top:4px;font-size:30px;font-weight:700}.stat .note{color:var(--muted);margin-top:4px;font-size:12.5px}.editor-layout{grid-template-columns:1fr;gap:20px;display:grid}@media (width>=1080px){.editor-layout{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}}.line-item{border:1px solid var(--border);border-radius:var(--radius);background:#fbfcfe;margin-bottom:12px;padding:14px}.line-item-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.line-item-head strong{font-size:14px}.line-item .field{margin-bottom:10px}.line-item .form-row{gap:10px}.ts-file-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.line-amounts{align-items:flex-start;gap:10px;display:flex}.line-amounts .field{min-width:0;margin-bottom:10px}.line-amounts .field label{white-space:nowrap;font-size:12px}.totals-box{background:var(--surface-2);border-radius:var(--radius);padding:16px 18px}.totals-row{justify-content:space-between;padding:5px 0;font-size:15px;display:flex}.totals-row.grand{border-top:2px solid var(--border);margin-top:8px;padding-top:10px;font-size:19px;font-weight:700}.invoice-preview{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:32px;font-size:14.5px;position:sticky;top:88px}.invoice-preview h2{margin:0;font-size:22px}.inv-head{background:#e7f3e7;border-radius:8px;justify-content:space-between;gap:16px;margin-bottom:20px;padding:14px 16px;display:flex}.inv-table{border-collapse:collapse;width:100%;margin:16px 0}.inv-table th{text-align:left;border-bottom:2px solid var(--text);text-transform:uppercase;letter-spacing:.4px;padding:8px 6px;font-size:13px}.inv-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px 6px}.inv-totals{width:260px;margin-left:auto}.menu-toggle{display:none}@media (width<=860px){.sidebar{z-index:50;width:260px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:none}.menu-toggle{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:20px;display:inline-flex}.content{padding:18px 14px}.invoice-preview{position:static}.scrim{z-index:40;background:#0f172a66;position:fixed;inset:0}}@media (width<=640px){.topbar{gap:8px;padding:10px 12px}.topbar-email,.active-business-pill{display:none}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.inv-agentcols{align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.inv-agentcols>div{flex:1;min-width:0}@media (width<=640px){.inv-agentcols{flex-direction:column}}@media print{.sidebar,.topbar,.no-print,.alert,.scrim,.badge-draft{display:none!important}.app-shell{min-height:0!important;display:block!important}.main{display:block!important}.content{max-width:none;padding:0}.editor-layout{display:block!important}.invoice-preview{box-shadow:none;border:none;padding:0;font-size:11px;position:static}.invoice-preview h2{margin-bottom:2px!important;font-size:16px!important}.inv-logo{max-width:160px!important;height:40px!important}.inv-head{-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-bottom:6px!important}.inv-head>div:first-child{gap:4px!important}.inv-title{letter-spacing:.5px!important;font-size:15px!important}.inv-date-line{margin-top:4px!important;font-size:13px!important}.inv-company-block{margin-top:2px!important}.inv-company-block>div{font-size:11px!important}.inv-company-block>div:first-child{font-size:13px!important}.inv-wirebox{-webkit-print-color-adjust:exact;print-color-adjust:exact}.inv-wirebox>div{font-size:14px!important;font-weight:600!important}.inv-table{margin:6px 0!important;font-size:11px!important}.inv-table th,.inv-table td{padding:3px 5px!important}.inv-totals{width:200px!important;font-size:12px!important}.inv-section{margin-top:6px!important}.inv-wirebox{margin-top:8px!important;padding:6px 8px!important}.inv-wirebox strong{font-size:14px!important}.inv-agentcols{gap:10px;margin-bottom:6px!important;font-size:11px!important}.inv-agentcols>div{font-size:11px!important}.inv-footer{margin-top:8px!important;font-size:10px!important}@page{size:Letter;margin:10mm}}
