:root{--teal:#35606A;--nav:#24444C;--ink:#16282D;--accent:#45BFD3;--gold:#B6984F;--gold-tint:#F4EDDD;--bg:#F2F5F6;--white:#fff;--border:#E2E8EA;--pending:#E9A23B;--accepted:#2E9E6B;--declined:#D4593F;--shadow:0 1px 3px rgba(22,40,45,.08);--radius:12px;--transition:.15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:Inter,sans-serif;color:#16282d;background:#f2f5f6;min-height:100vh}button{cursor:pointer;border:none;background:none;font-family:inherit}input,select,textarea{font-family:inherit}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}ul{list-style:none}.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border)}.card-pad{padding:24px}.page-header{margin-bottom:24px}.page-title{font-family:Sora,sans-serif;font-size:22px;font-weight:700;color:var(--ink)}.page-subtitle{color:#6b8a93;font-size:14px;margin-top:4px}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:500;transition:all var(--transition);cursor:pointer;border:none}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover{background:#2a4e57}.btn-secondary{background:#fff;color:var(--teal);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--declined);color:#fff}.btn-danger:hover{background:#b5432e}.btn-ghost{color:var(--teal);padding:8px 12px}.btn-ghost:hover{background:#35606a0f}.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{background:#a2863f}.btn-sm{padding:7px 14px;font-size:13px}.btn svg{width:16px;height:16px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:20px 24px}.stat-label{font-size:12px;font-weight:500;color:#6b8a93;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.stat-value{font-family:Sora,sans-serif;font-size:28px;font-weight:700;color:var(--ink)}.stat-card.pending .stat-value{color:var(--pending)}.stat-card.accepted .stat-value{color:var(--accepted)}.stat-card.declined .stat-value{color:var(--declined)}.stat-card.invoiced .stat-value{color:var(--accent)}.stat-card.paid .stat-value{color:var(--accepted)}.table-wrap{overflow-x:auto;border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:14px}thead th{background:var(--bg);padding:11px 16px;text-align:left;font-size:12px;font-weight:600;color:#6b8a93;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);white-space:nowrap}tbody tr{border-bottom:1px solid var(--border);transition:background var(--transition);cursor:pointer}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f7fafb}td{padding:14px 16px;vertical-align:middle}td.no-click{cursor:default}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.chip:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0}.chip-pending{background:#e9a23b1f;color:var(--pending)}.chip-pending:before{background:var(--pending)}.chip-accepted{background:#2e9e6b1f;color:var(--accepted)}.chip-accepted:before{background:var(--accepted)}.chip-declined{background:#d4593f1f;color:var(--declined)}.chip-declined:before{background:var(--declined)}.chip-unpaid{background:#e9a23b1f;color:var(--pending)}.chip-unpaid:before{background:var(--pending)}.chip-paid{background:#2e9e6b1f;color:var(--accepted)}.chip-paid:before{background:var(--accepted)}.chip-overdue{background:#d4593f1f;color:var(--declined)}.chip-overdue:before{background:var(--declined)}.chip-draft{background:#6b8a9324;color:#6b8a93}.chip-draft:before{background:#6b8a93}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full{grid-column:1/-1}.form-label{font-size:13px;font-weight:500;color:var(--ink)}.form-input{padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--ink);background:#fff;transition:border-color var(--transition);outline:none}.form-input:focus{border-color:var(--accent)}select.form-input{cursor:pointer}.form-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.search-wrap{position:relative}.search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6b8a93;width:16px;height:16px}.search-input{padding:10px 14px 10px 38px;border:1px solid var(--border);border-radius:8px;font-size:14px;width:100%;max-width:320px;background:#fff;outline:none;transition:border-color var(--transition)}.search-input:focus{border-color:var(--accent)}.tab-bar{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:20px;overflow-x:auto}.tab-btn{padding:10px 16px;font-size:14px;font-weight:500;color:#6b8a93;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition);white-space:nowrap;display:flex;align-items:center;gap:8px}.tab-btn:hover{color:var(--teal)}.tab-btn.active{color:var(--teal);border-bottom-color:var(--teal)}.badge{background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px}.line-items-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:16px}.line-items-table th{padding:10px 12px;text-align:left;font-size:12px;font-weight:600;color:#6b8a93;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--border)}.line-items-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.line-items-table input,.line-items-table textarea{padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;width:100%;outline:none}.line-items-table input:focus,.line-items-table textarea:focus{border-color:var(--accent)}.li-desc-input{resize:vertical;min-height:38px;line-height:1.45;font-family:inherit}.li-desc{min-width:200px}.li-hours{width:100px}.li-rate{width:120px}.li-sub{width:140px;font-weight:500;color:var(--ink)}.li-del{width:50px;text-align:center}.del-btn{color:var(--declined);background:none;border:none;cursor:pointer;padding:4px;border-radius:4px}.del-btn:hover{background:#d4593f1a}.totals-wrap{display:flex;justify-content:flex-end;margin-bottom:24px}.totals-box{min-width:280px;font-size:14px}.totals-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.totals-row:last-child{border-bottom:none;font-weight:700;font-size:16px;padding-top:12px}.totals-row.total-final{color:var(--gold);border-top:2px solid var(--gold)}.quote-header-strip{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:16px 24px;margin-bottom:24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.quote-num{font-family:Sora,sans-serif;font-size:18px;font-weight:700;color:var(--ink)}.quote-header-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.section-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:24px;margin-bottom:24px}.section-card-title{font-family:Sora,sans-serif;font-size:15px;font-weight:700;color:var(--ink);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.modal-overlay{display:none;position:fixed;inset:0;background:#16282d8c;z-index:500;align-items:center;justify-content:center;padding:20px}.modal-overlay.open{display:flex}.modal{background:#fff;border-radius:16px;width:100%;max-width:560px;box-shadow:0 20px 60px #16282d40;max-height:90vh;overflow-y:auto}.modal-header{padding:20px 24px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-family:Sora,sans-serif;font-size:17px;font-weight:700;color:var(--ink)}.modal-close{color:#6b8a93;background:none;border:none;cursor:pointer;padding:4px;border-radius:6px}.modal-close:hover{background:var(--bg)}.modal-body{padding:20px 24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}.catalogue-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:400px;overflow-y:auto}.cat-item{padding:12px 14px;border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all var(--transition)}.cat-item:hover{border-color:var(--accent);background:#45bfd30d}.cat-item.selected{border-color:var(--accent);background:#45bfd31a}.cat-item-name{font-size:13px;font-weight:600;color:var(--ink)}.cat-item-detail{font-size:12px;color:#6b8a93;margin-top:2px}.cat-section-label{grid-column:1/-1;font-size:11px;font-weight:700;color:#6b8a93;text-transform:uppercase;letter-spacing:.06em;padding:8px 0 4px}.toast-container{position:fixed;bottom:24px;right:24px;z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#16282d;color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 4px 20px #16282d4d;opacity:0;transform:translateY(12px);transition:all .25s ease;pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:240px}.toast.show{opacity:1;transform:translateY(0)}.toast.success .toast-icon{color:#2e9e6b}.toast.warning .toast-icon{color:var(--pending)}.toast.error .toast-icon{color:var(--declined)}.toast-icon svg{width:16px;height:16px;display:block}.login-card{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #16282d4d}.login-logo{display:flex;justify-content:center;margin-bottom:28px}.login-logo img{height:56px;width:auto}.login-title{font-family:Sora,sans-serif;font-size:22px;font-weight:700;color:var(--ink);margin-bottom:6px;text-align:center}.login-sub{color:#6b8a93;font-size:14px;text-align:center;margin-bottom:28px}.login-form .form-group{margin-bottom:16px}.login-btn{width:100%;margin-top:8px;padding:12px;font-size:15px;font-weight:600;border-radius:10px;justify-content:center}.admin-section{margin-bottom:32px}.admin-section-title{font-family:Sora,sans-serif;font-size:16px;font-weight:700;color:var(--ink);margin-bottom:16px}.toggle{position:relative;display:inline-block;width:40px;height:22px}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#c8d6d9;border-radius:22px;transition:var(--transition)}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;left:3px;top:3px;transition:var(--transition)}input:checked+.toggle-slider{background:var(--accepted)}input:checked+.toggle-slider:before{transform:translate(18px)}#preview-overlay{display:none;position:fixed;inset:0;background:#16282dcc;z-index:800;overflow-y:auto;padding:20px}#preview-overlay.open{display:block}.preview-toolbar{position:sticky;top:0;z-index:801;background:#16282df2;backdrop-filter:blur(8px);padding:12px 24px;border-radius:12px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;color:#fff}.preview-toolbar-title{font-family:Sora,sans-serif;font-size:15px;font-weight:700}.preview-close-btn{background:#ffffff26;color:#fff;border:none;cursor:pointer;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;transition:background var(--transition)}.preview-close-btn:hover{background:#ffffff40}.preview-pages{display:flex;flex-direction:column;gap:24px;max-width:794px;margin:0 auto}.a4-page{background:#fff;width:100%;min-height:1000px;border-radius:8px;overflow:hidden;box-shadow:0 4px 30px #0000004d}.cover-page{background:linear-gradient(135deg,var(--teal) 0%,#1e3e46 100%);padding:80px 60px;display:flex;flex-direction:column;min-height:1000px;position:relative}.cover-page:after{content:"";position:absolute;right:0;top:0;bottom:0;width:8px;background:var(--gold)}.cover-logo{margin-bottom:auto}.cover-logo img{height:60px;width:auto;filter:brightness(0) invert(1);opacity:.9}.cover-body{margin-top:auto;color:#fff}.cover-label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#fff9;margin-bottom:12px}.cover-quote-num{font-family:Sora,sans-serif;font-size:42px;font-weight:700;color:#fff;margin-bottom:8px}.cover-company{font-family:Sora,sans-serif;font-size:24px;font-weight:600;color:#ffffffd9;margin-bottom:24px}.cover-gold-line{width:60px;height:4px;background:var(--gold);border-radius:2px;margin-bottom:20px}.cover-date{font-size:14px;color:#fff9}.letter-page{padding:60px}.letter-header{margin-bottom:40px}.letter-to{font-size:14px;color:#6b8a93;margin-bottom:4px}.letter-contact{font-size:16px;font-weight:600;color:var(--ink)}.letter-body p{font-size:14px;line-height:1.8;color:#3a5560;margin-bottom:16px}.letter-sig-block{margin-top:40px}.letter-sig-img{height:80px;width:auto;margin-bottom:8px}.letter-sig-name{font-weight:600;font-size:15px;color:var(--ink)}.letter-sig-title{font-size:13px;color:#6b8a93}.pricing-page{padding:40px 60px}.pricing-page-title{font-family:Sora,sans-serif;font-size:20px;font-weight:700;color:var(--ink);margin-bottom:4px}.pricing-page-sub{font-size:13px;color:#6b8a93;margin-bottom:28px}.pricing-table{width:100%;border-collapse:collapse;font-size:14px}.pricing-table thead th{background:var(--teal);color:#fff;padding:12px 16px;text-align:left;font-size:13px;font-weight:600}.pricing-table tbody tr:nth-child(2n){background:#f7fafb}.pricing-table tbody td{padding:12px 16px;border-bottom:1px solid var(--border)}.pricing-table .totals-section td{padding:10px 16px;border-bottom:1px solid var(--border);font-weight:500}.pricing-table .total-row td{background:var(--gold);color:#fff;font-weight:700;font-size:15px;padding:14px 16px}.terms-page{padding:60px}.terms-title{font-family:Sora,sans-serif;font-size:20px;font-weight:700;color:var(--ink);margin-bottom:24px}.terms-section{margin-bottom:20px}.terms-section-title{font-size:14px;font-weight:600;color:var(--teal);margin-bottom:8px}.terms-text{font-size:13px;line-height:1.7;color:#4a6870}.greeting{font-family:Sora,sans-serif;font-size:26px;font-weight:700;color:var(--ink);margin-bottom:4px}.greeting-sub{font-size:14px;color:#6b8a93;margin-bottom:28px}.quick-actions{display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap}.recent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title{font-family:Sora,sans-serif;font-size:16px;font-weight:700;color:var(--ink)}.logo-upload-area{border:2px dashed var(--border);border-radius:8px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:all var(--transition);min-height:100px}.logo-upload-area:hover{border-color:var(--accent);background:#45bfd30a}.logo-upload-area svg{color:#6b8a93;width:28px;height:28px}.logo-upload-area span{font-size:13px;color:#6b8a93}.empty-state{padding:48px;text-align:center;color:#6b8a93}.empty-state p{font-size:15px;font-weight:500}.app-footer{text-align:center;padding:20px;font-size:12px;color:#a0b4bb;border-top:1px solid var(--border);background:#fff;margin-top:auto}.mobile-cards .card-list{display:none}.card-list-item{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:16px;margin-bottom:12px;cursor:pointer;transition:all var(--transition)}.card-list-item:hover{border-color:var(--accent)}.cli-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.cli-name{font-weight:600;color:var(--ink);font-size:14px}.cli-sub{font-size:12px;color:#6b8a93;margin-top:2px}.pdf-stage{position:fixed;left:-99999px;top:0;width:794px;background:#fff;z-index:-1}.batch-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;margin-bottom:4px}.batch-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;transition:border-color var(--transition)}.batch-row:hover{border-color:var(--accent)}.batch-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal);cursor:pointer;flex-shrink:0}.batch-row-main{flex:1;min-width:0}.batch-row-name{font-size:14px;font-weight:600;color:var(--ink)}.batch-row-desc{font-size:12px;color:#6b8a93;margin-top:2px}.batch-row-amt{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap}.batch-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--gold-tint);border-radius:8px;margin-top:12px;font-size:14px}.batch-summary strong{font-family:Sora,sans-serif;color:var(--ink)}.batch-progress{font-size:13px;color:var(--teal);font-weight:500;margin-top:14px;display:none;align-items:center;gap:8px}.batch-progress.show{display:flex}.batch-spinner{width:16px;height:16px;border:2px solid rgba(53,96,106,.25);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.invoice-page{padding:56px 56px 44px;min-height:1000px;display:flex;flex-direction:column;font-size:14px;color:#3a5560}.inv-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:34px}.inv-brand img{height:52px;width:auto}.inv-firm{font-size:12px;color:#6b8a93;line-height:1.65;margin-top:12px}.inv-title-block{text-align:right}.inv-title{font-family:Sora,sans-serif;font-size:34px;font-weight:700;color:var(--teal);letter-spacing:.05em}.inv-num{font-size:14px;color:var(--ink);font-weight:600;margin-top:4px}.inv-meta-grid{display:flex;justify-content:space-between;gap:24px;margin-bottom:30px}.inv-billto-label,.inv-meta-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b8a93;margin-bottom:6px}.inv-billto-name{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:2px}.inv-billto-line{font-size:13px;color:#4a6870;line-height:1.6}.inv-meta-table{font-size:13px}.inv-meta-table td{padding:3px 0}.inv-meta-table td:first-child{color:#6b8a93;padding-right:22px}.inv-meta-table td:last-child{text-align:right;font-weight:600;color:var(--ink)}.inv-table{width:100%;border-collapse:collapse;font-size:13px}.inv-table thead th{background:var(--teal);color:#fff;padding:11px 14px;text-align:left;font-weight:600;font-size:12px}.inv-table thead th:not(:first-child){text-align:right}.inv-table tbody td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:top}.inv-table tbody td:first-child{white-space:pre-line;line-height:1.5}.inv-table tbody td:not(:first-child){text-align:right;white-space:nowrap}.inv-totals{margin-left:auto;width:290px;margin-top:18px;font-size:14px}.inv-totals-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border)}.inv-totals-row.grand{border-bottom:none;border-top:2px solid var(--gold);color:var(--gold);font-weight:700;font-size:17px;padding-top:12px;margin-top:2px}.inv-pay{margin-top:auto;padding-top:34px;display:flex;gap:40px}.inv-pay-col{flex:1}.inv-pay-title{font-size:12px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.inv-pay-line{font-size:12.5px;color:#4a6870;line-height:1.75}.inv-foot{text-align:center;font-size:11px;color:#a0b4bb;margin-top:26px;padding-top:16px;border-top:1px solid var(--border)}.inv-stamp{display:inline-block;margin-top:6px;font-family:Sora,sans-serif;font-weight:700;font-size:13px;letter-spacing:.1em;padding:4px 14px;border:2px solid var(--accepted);color:var(--accepted);border-radius:6px;transform:rotate(-4deg)}.stmt-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end}.stmt-field{display:flex;flex-direction:column;gap:6px}.typeahead{position:relative}.typeahead-input{padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;width:300px;max-width:100%;outline:none;background:#fff;transition:border-color var(--transition)}.typeahead-input:focus{border-color:var(--accent)}.suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #16282d2e;z-index:60;max-height:300px;overflow-y:auto;display:none}.suggestions.open{display:block}.suggestion{display:flex;flex-direction:column;gap:2px;padding:10px 14px;cursor:pointer;transition:background var(--transition)}.suggestion:hover,.suggestion.active{background:var(--bg)}.suggestion-name{font-size:14px;font-weight:500;color:var(--ink)}.suggestion-name b{color:var(--teal);font-weight:700}.suggestion-meta{font-size:12px;color:#6b8a93}.suggestions-empty{padding:14px;font-size:13px;color:#6b8a93;text-align:center}.stmt-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:10px}.stmt-table thead th{background:var(--teal);color:#fff;padding:9px 12px;text-align:left;font-size:11.5px;font-weight:600}.stmt-table thead th.num,.stmt-table td.num{text-align:right}.stmt-table tbody td{padding:9px 12px;border-bottom:1px solid var(--border)}.stmt-table tr.opening td{background:#f7fafb;font-weight:600}.stmt-table tr.closing td{background:var(--gold);color:#fff;font-weight:700;font-size:13.5px}.stmt-aging{display:flex;margin-top:22px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.stmt-aging-cell{flex:1;padding:12px 14px;text-align:center;border-right:1px solid var(--border)}.stmt-aging-cell:last-child{border-right:none}.stmt-aging-cell.due{background:var(--gold-tint)}.stmt-aging-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6b8a93;margin-bottom:4px}.stmt-aging-val{font-size:14px;font-weight:700;color:var(--ink)}.stmt-preview-frame{max-width:794px;margin:0 auto}.retainer-card{padding:18px 24px}.retainer-toggle{display:flex;gap:14px;align-items:flex-start;cursor:pointer;width:100%}.retainer-toggle input{width:20px;height:20px;accent-color:var(--gold);cursor:pointer;flex-shrink:0;margin-top:2px}.retainer-toggle-text{display:flex;flex-direction:column;gap:4px}.retainer-hint{font-size:13px;color:#6b8a93;line-height:1.55}.retainer-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:12px;font-weight:600;background:var(--gold-tint);color:var(--gold)}.retainer-badge svg{width:12px;height:12px}.retainer-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--gold-tint);color:var(--gold);margin-left:6px}.retainer-pill svg{width:11px;height:11px}.import-layout{display:flex;gap:20px;align-items:stretch;height:calc(100vh - 210px);min-height:520px}.import-left{width:40%;min-width:320px;display:flex;flex-direction:column;gap:16px;min-height:0}.import-right{flex:1;padding:20px;overflow:auto;min-height:0}.import-filelist{display:flex;flex-direction:column;flex:1;min-height:220px;overflow:hidden}.import-filelist-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);font-family:Sora,sans-serif;font-size:14px;font-weight:700;color:var(--ink)}.import-files{overflow-y:auto;flex:1}.import-file{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--transition)}.import-file:hover{background:var(--bg)}.import-file.active{background:#35606a14}.import-file-icon{width:34px;height:34px;border-radius:8px;background:var(--gold-tint);color:var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.import-file-icon svg{width:18px;height:18px}.import-file-main{flex:1;min-width:0}.import-file-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-file-meta{font-size:12px;color:#6b8a93;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-file-right{text-align:right;flex-shrink:0}.import-file-amt{font-size:13px;font-weight:700;color:var(--ink)}.import-file-status{font-size:11px;font-weight:600;margin-top:3px}.import-file-status.new{color:var(--accent)}.import-file-status.matched,.import-file-status.done{color:var(--accepted)}.import-file-status.parsing{color:var(--pending)}.import-file-status.error{color:var(--declined)}.import-empty-files{padding:28px 18px;text-align:center;color:#6b8a93;font-size:13px}.import-dropzone{border:2px dashed var(--border);border-radius:var(--radius);background:#fff;padding:28px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:all var(--transition);flex-shrink:0}.import-dropzone:hover,.import-dropzone.dragover{border-color:var(--accent);background:#45bfd30f}.import-dropzone svg{width:34px;height:34px;color:var(--teal)}.import-drop-title{font-size:15px;font-weight:600;color:var(--ink)}.import-drop-sub{font-size:12px;color:#6b8a93}.import-preview-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.import-parsed-flag{font-size:13px;color:#6b8a93}.import-parsed-flag b{color:var(--ink)}#sidebar{width:240px;background:var(--nav);flex-shrink:0;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;transition:transform var(--transition)}.sidebar-logo{padding:24px 20px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo img{height:48px;width:auto;object-fit:contain}.sidebar-nav{padding:16px 0;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 20px;color:#ffffffb3;font-size:14px;font-weight:500;transition:all var(--transition);border-left:3px solid transparent;cursor:pointer}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{color:#fff;border-left-color:var(--accent);background:#45bfd31a}.nav-item svg{width:18px;height:18px;flex-shrink:0}.sidebar-user{padding:16px 20px;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:12px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{color:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email{color:#ffffff80;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signout-btn{color:#ffffff80;font-size:12px;margin-top:2px;display:block;cursor:pointer;background:none;border:none;text-align:left;padding:0}.signout-btn:hover{color:#fff}#topbar{display:flex;height:56px;background:var(--nav);align-items:center;padding:0 16px;gap:12px;position:sticky;top:0;z-index:99}.topbar-spacer{flex:1}.hamburger{color:#fff;background:none;border:none;cursor:pointer;padding:4px}.hamburger svg{width:22px;height:22px;display:block}.topbar-logo img{height:36px;width:auto}#company-switcher{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 8px;border-radius:10px;cursor:pointer;transition:background var(--transition);background:#ffffff14;border:1px solid rgba(255,255,255,.12)}#company-switcher:hover{background:#ffffff29}.cs-logo{width:32px;height:32px;border-radius:7px;background:#fff;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.cs-logo img{max-width:100%;max-height:100%;object-fit:contain}.cs-info{min-width:0;text-align:left;line-height:1.2}.cs-name{color:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.cs-label{color:#ffffff8c;font-size:11px;white-space:nowrap}.cs-chevron{color:#ffffffb3;width:16px;height:16px;flex-shrink:0}.company-popup-backdrop{display:none;position:fixed;inset:0;z-index:400}.company-popup-backdrop.open{display:block}.company-popup{display:none;position:fixed;top:60px;right:16px;z-index:401;width:320px;max-width:calc(100vw - 32px);background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:0 16px 48px #16282d47;overflow:hidden}.company-popup.open{display:block}.cp-head{padding:14px 18px;font-family:Sora,sans-serif;font-size:13px;font-weight:700;color:var(--ink);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}.cp-list{max-height:340px;overflow-y:auto;padding:6px}.cp-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:9px;cursor:pointer;transition:background var(--transition)}.cp-item:hover{background:var(--bg)}.cp-item.active{background:#35606a14}.cp-swatch{width:38px;height:38px;border-radius:9px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#fff}.cp-swatch img{max-width:100%;max-height:100%;object-fit:contain}.cp-item-main{flex:1;min-width:0}.cp-item-name{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-item-meta{font-size:12px;color:#6b8a93;margin-top:2px}.cp-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.cp-check{color:var(--teal);width:18px;height:18px;flex-shrink:0}.cp-edit{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#fff;border-radius:7px;color:#6b8a93;cursor:pointer;transition:all var(--transition)}.cp-edit:hover{color:var(--teal);border-color:var(--accent);background:var(--bg)}.cp-edit svg{width:14px;height:14px}.cp-add{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px;border:none;border-top:1px solid var(--border);background:#fff;color:var(--teal);font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition)}.cp-add:hover{background:var(--bg)}.cp-add svg{width:16px;height:16px}.color-row{display:flex;align-items:center;gap:12px}.color-swatch-input{width:52px;height:40px;padding:2px;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:#fff}.logo-preview{width:64px;height:64px;border-radius:10px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.charge-vat-row{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:14px;border:1px solid var(--border);border-radius:10px;cursor:pointer}.charge-vat-row input{width:20px;height:20px;accent-color:var(--teal);cursor:pointer;flex-shrink:0;margin-top:1px}.charge-vat-row.disabled{opacity:.55;cursor:not-allowed}.charge-vat-row.disabled input{cursor:not-allowed}.charge-vat-title{display:block;font-size:14px;font-weight:600;color:var(--ink)}.charge-vat-hint{display:block;font-size:12px;color:#6b8a93;margin-top:3px;line-height:1.5}.drawer-overlay{display:none;position:fixed;inset:0;background:#0006;z-index:150}.drawer-overlay.open{display:block}#sidebar.drawer-open{transform:translate(0)!important}#main-content{margin-left:240px;flex:1;min-height:100vh;display:flex;flex-direction:column}.view{padding:32px;flex:1}@media (max-width:479px){.cs-info{display:none}}@media (min-width:1024px){#topbar .hamburger,#topbar .topbar-logo{display:none}}@media (max-width:1023px){#sidebar{transform:translate(-100%)}#main-content{margin-left:0}.stat-grid{grid-template-columns:1fr 1fr}.form-grid,.details-grid{grid-template-columns:1fr}.view{padding:20px 16px}}@media (max-width:639px){.stat-grid{grid-template-columns:1fr 1fr}.catalogue-grid{grid-template-columns:1fr}.modal{max-width:100%}.quote-header-strip{flex-direction:column;align-items:flex-start}.quote-header-actions{width:100%;justify-content:flex-start}.cover-page{padding:40px 32px}.letter-page,.pricing-page,.terms-page{padding:32px}.mobile-cards .desktop-table{display:none}.mobile-cards .card-list{display:block}}@media (max-width:479px){.stat-grid{grid-template-columns:1fr}.preview-pages{padding:0 4px}}@media (max-width:900px){.import-layout{flex-direction:column;height:auto}.import-left{width:100%}.import-right{min-height:500px}}
