:root{--bg:#eef1f6;--surface:#fff;--border:#dbe1ea;--text:#1b2430;--text-muted:#616b7c;--primary:#002b5c;--primary-dark:#001c3d;--primary-light:#0a4488;--accent:#fc6401;--accent-dark:#c44e00;--danger:#c0392b;--success:#1e8e5a;--radius:10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--text);margin:0 0 .5rem}h1{font-size:1.5rem}h2{font-size:1.15rem}h3{font-size:1rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topnav{background:linear-gradient(180deg, var(--primary) 0%, var(--primary-dark) 100%);color:#fff;flex-wrap:wrap;align-items:center;gap:1rem;padding:.6rem 1.25rem;display:flex;box-shadow:0 2px 6px #00000026}.topnav .product-wordmark{flex-shrink:0;width:auto;height:46px;display:block}.topnav .brand-block{border-left:1px solid #ffffff40;flex-direction:column;margin-right:.5rem;padding-left:.85rem;display:flex}.topnav .brand-block .org-name{color:#fff;font-size:.85rem;font-weight:600}.topnav .nav-groups{flex-wrap:nowrap;flex:1;gap:.4rem;min-width:0;display:flex}.nav-pill{color:#fff;font:inherit;white-space:nowrap;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .85rem .3rem .3rem;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.nav-pill:hover,.nav-pill.open{background:#ffffff29;text-decoration:none}.nav-pill-icon{width:30px;height:30px;color:var(--primary);background:#fff;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.nav-pill.active{background:var(--accent);border-color:var(--accent);color:var(--primary-dark)}.nav-pill.active .nav-pill-icon{background:var(--primary-dark);color:#fff}.nav-pill-caret{opacity:.8;font-size:.7rem}.nav-panel{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;width:min(340px,100vw - 16px);padding:.4rem;display:flex;position:fixed;box-shadow:0 10px 28px #03193c38}.nav-panel-item{color:var(--text);border-radius:8px;flex-direction:column;gap:.1rem;padding:.6rem .75rem;text-decoration:none;display:flex}.nav-panel-item strong{color:var(--primary);font-size:.92rem}.nav-panel-item span{color:var(--text-muted);font-size:.8rem}.nav-panel-item:hover,.nav-panel-item:focus-visible{background:#eef3fa;text-decoration:none}.nav-panel-item.current{background:#fff4e8}.topnav .wordmark-home{flex-shrink:0;display:block}.topnav .topnav-footer{color:#d8e3f2;align-items:center;gap:.9rem;font-size:.8rem;display:flex}.topnav .topnav-footer button{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:999px;padding:.35rem .75rem;font-size:.78rem}.topnav .topnav-footer button:hover{background:#ffffff24}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem 2.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:var(--radius);margin-bottom:1.25rem;padding:1.25rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--accent-dark);border-radius:var(--radius);padding:1rem 1.1rem}.stat-card .value{color:var(--primary);font-size:1.6rem;font-weight:700}.stat-card .label{color:var(--text-muted);font-size:.85rem}.tab-bar{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;background:#eef2f8;gap:.25rem;margin:-1.25rem -1.25rem 1.25rem;padding:0 1.25rem;display:flex}.tab-bar .tab{color:var(--text-muted);border-bottom:3px solid #0000;padding:.65rem 1rem;font-size:.85rem;font-weight:600}.tab-bar .tab.active{color:var(--primary);background:var(--surface);border-bottom:3px solid var(--primary)}.stage-banner{color:#fff;text-align:center;border-radius:8px;padding:.6rem 1.5rem;font-size:.95rem;font-weight:700;display:inline-block}.stage-banner.stage-awaiting_commencement{background:#c8960a}.stage-banner.stage-active{background:#1d6fd6}.stage-banner.stage-complete{background:var(--success)}table{border-collapse:collapse;background:var(--surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .75rem;font-size:.9rem}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;background:#f2f5fa;font-size:.78rem;font-weight:600}tr:last-child td{border-bottom:none}tr:hover td{background:#f5f8fc}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);-webkit-overflow-scrolling:touch;overflow-x:auto}.empty-state{color:var(--text-muted);text-align:center;padding:2rem 1rem}.btn{background:linear-gradient(180deg, var(--primary-light) 0%, var(--primary) 100%);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:.55rem 1.2rem;font-size:.9rem;font-weight:600;display:inline-block}.btn:hover{background:var(--primary-dark);text-decoration:none}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:999px}.btn-secondary:hover{background:#eceff5}.btn-danger{background:var(--danger)}form{flex-direction:column;gap:.9rem;max-width:560px;display:flex}.field{flex-direction:column;gap:.3rem;display:flex}.field label{color:var(--text);font-size:.85rem;font-weight:600}.field .hint{color:var(--text-muted);font-size:.78rem}input,select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;padding:.5rem .6rem;font-family:inherit;font-size:.92rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-light);outline-offset:0}textarea{resize:vertical;min-height:70px}.form-actions{gap:.6rem;margin-top:.4rem;display:flex}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.2rem .6rem;font-size:.76rem;font-weight:600;display:inline-block}.badge-lead{color:#4b5563;background:#eef0f4}.badge-quoted{color:#92660b;background:#fdeec2}.badge-in_progress{color:#1d4ed8;background:#dbeafe}.badge-awaiting_commencement{color:#92660b;background:#fdeec2}.badge-active{color:#1d4ed8;background:#dbeafe}.badge-complete{color:#157347;background:#d8f3e4}.badge-lost{color:#a12727;background:#fbdcdc}.line-items-table input{width:100%}.total-row{font-weight:700}.login-wrap{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--accent-dark);border-radius:var(--radius);width:100%;max-width:380px;padding:2rem}.login-customer-logo{object-fit:contain;width:auto;max-width:220px;max-height:72px;margin:0 0 1rem;display:block}.login-wordmark{width:auto;height:40px;margin:0 0 1rem;display:block}.login-card>.login-wordmark:first-child{height:64px;margin-bottom:1.25rem}.error-banner{color:#a12727;background:#fbdcdc;border-radius:6px;padding:.6rem .8rem;font-size:.85rem}.ok-banner{color:#1d6b3a;background:#dcf0e2;border-radius:6px;padding:.6rem .8rem;font-size:.85rem}.quick-add>summary{cursor:pointer;padding:.1rem 0;list-style:none}.quick-add>summary::-webkit-details-marker{display:none}.quick-add>summary:before{content:"▸ ";color:var(--primary)}.quick-add[open]>summary:before{content:"▾ "}.check-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.check-row .helper-text{margin:0}.snag-pill{white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.snag-open{color:#a12727;background:#fbdcdc}.snag-fixed{color:#8a6100;background:#fdf0d5}.snag-signed_off{color:#1d6b3a;background:#dcf0e2}.tab-count{background:var(--danger);color:#fff;vertical-align:middle;border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.72rem;font-weight:700;display:inline-block}.snag-add{border-top:1px dashed var(--border);flex-flow:wrap;align-items:flex-end;gap:.6rem;max-width:100%;padding-top:.9rem;display:flex}.snag-add .field{min-width:0;margin:0}.snag-what{flex:2 240px}.snag-where,.snag-who,.snag-note{flex:150px}.snag-save{flex:none}@media (max-width:768px){.snag-add>.field{flex:100%}}.check-pair{white-space:nowrap;gap:.25rem;display:inline-flex}.check-pill{text-align:center;border:1px solid var(--border);letter-spacing:.02em;min-width:42px;color:var(--text-muted);cursor:help;background:#f2f5fa;border-radius:999px;padding:.2rem .45rem;font-size:.75rem;font-weight:700;display:inline-block}.check-pill-on{background:var(--success);border-color:var(--success);color:#fff}.check-pill-note{background:var(--accent);border-color:var(--accent-dark);min-width:0;color:var(--primary-dark)}.stage-filter{-webkit-overflow-scrolling:touch;gap:.4rem;margin-bottom:1rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.site-log-form{flex-flow:wrap;align-items:flex-end;gap:.6rem;max-width:100%;display:flex}.site-log-form .field{min-width:0;margin:0}.sl-date{flex:0 0 150px}.sl-sub{flex:190px}.sl-phase{flex:0 0 150px}.sl-hours{flex:0 0 90px}.sl-notes{flex:2 160px}.sl-add{flex:none}.sl-note{flex-basis:100%;margin:.15rem 0 0}.site-log-jobpick{display:contents}.site-log-jobpick .field{flex:190px;min-width:0;margin:0}@media (max-width:768px){.site-log-form>.field,.site-log-jobpick .field{flex:calc(50% - .3rem)}.sl-notes,.sl-add{flex-basis:100%}.sl-add{width:100%}}.job-summary{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent-dark);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.25rem 1.5rem;margin-bottom:1rem;padding:.85rem 1.1rem;display:grid}.job-summary>div{flex-direction:column;display:flex}.job-summary strong{font-size:1.15rem}.figure-good{color:var(--success)}.figure-bad{color:var(--danger)}.job-tabs{border-bottom:2px solid var(--border);-webkit-overflow-scrolling:touch;gap:.15rem;margin-bottom:1.25rem;display:flex;overflow-x:auto}.job-tab{color:var(--text-muted);white-space:nowrap;border-bottom:3px solid #0000;margin-bottom:-2px;padding:.6rem 1rem;font-size:.9rem;font-weight:600}.job-tab:hover{color:var(--primary);text-decoration:none}.job-tab-on{color:var(--primary);border-bottom-color:var(--primary)}@media (max-width:768px){.job-summary{grid-template-columns:repeat(2,1fr);padding:.75rem .9rem}.job-summary strong{font-size:1rem}.job-tab{padding:.6rem .8rem;font-size:.85rem}}.filter-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.85rem;text-decoration:none;display:inline-flex}.filter-chip:hover{border-color:var(--primary)}.filter-chip-on{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.filter-chip-count{opacity:.75;font-size:.78rem}.quick-add-form{grid-template-columns:repeat(12,1fr);align-items:end;gap:.6rem .9rem;max-width:100%;margin-top:.9rem;display:grid}.quick-add-form .field{min-width:0;margin:0}.qa-job{grid-column:span 4}.qa-jobpick{display:contents}.qa-jobpick>.field{grid-column:span 4;min-width:0;margin:0}.qa-supplier,.qa-phase{grid-column:span 4}.qa-date,.qa-order-no,.qa-amount{grid-column:span 2}.qa-notes{grid-column:span 4}.qa-save{grid-column:span 2}@media (max-width:900px){.quick-add-form{grid-template-columns:repeat(2,1fr)}.quick-add-form>.field,.qa-jobpick>.field{grid-column:span 1}.qa-notes,.qa-save{grid-column:span 2}}@media (max-width:560px){.quick-add-form{grid-template-columns:1fr}.quick-add-form>.field,.qa-notes,.qa-save{grid-column:span 1}}.inline-edit{max-width:130px;padding:.25rem .4rem;font-size:.85rem}.inline-amount{flex-direction:row;align-items:center;gap:.3rem;max-width:none;margin:0;display:flex}.inline-amount .btn{padding:.25rem .6rem;font-size:.78rem}@media (max-width:768px){.inline-edit{max-width:110px;font-size:16px}}.helper-text{color:var(--text-muted);font-size:.85rem}@media (max-width:768px){.main{padding:1rem .9rem}.topnav{gap:.6rem;padding:.5rem .75rem}.topnav .nav-groups{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;flex-basis:100%;order:3;overflow-x:auto}.topnav .nav-groups::-webkit-scrollbar{display:none}.topnav .topnav-footer{margin-left:auto}.topnav .topnav-footer span{display:none}.page-header{flex-direction:column;align-items:stretch;gap:.6rem}.page-header .btn{text-align:center}form{max-width:100%}input,select,textarea{font-size:16px}.btn{padding:.65rem 1.2rem}.stat-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}.card{padding:1rem}.line-items-table table{min-width:640px}.line-items-table input,.line-items-table select{min-width:70px}}.filter-bar{flex-flow:wrap;align-items:center;gap:.4rem;max-width:100%;margin-bottom:1rem;display:flex}.filter-bar input,.filter-bar select{max-width:170px;padding:.35rem .5rem;font-size:.85rem}.filter-bar input[type=search]{max-width:210px}.filter-bar .btn{padding:.35rem .9rem;font-size:.85rem}@media (max-width:768px){.filter-bar input,.filter-bar select{max-width:46vw;font-size:16px}}.camera-field{display:none}.camera-field>input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}@media (pointer:coarse){.camera-field{align-items:center;display:inline-flex;position:relative}.camera-field>span{cursor:pointer;white-space:nowrap}}.filter-pop{display:inline-block;position:relative}.filter-pop>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.filter-pop>summary::-webkit-details-marker{display:none}.filter-pop-badge{background:var(--accent);color:var(--primary-dark);border-radius:999px;margin-left:.4rem;padding:0 .45rem;font-size:.72rem;font-weight:700;display:inline-block}.filter-pop-panel{z-index:41;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.7rem;min-width:260px;padding:1rem;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 30px #0000002e}.filter-pop-panel .field label{font-size:.8rem}.filter-pop-panel input,.filter-pop-panel select{width:100%;max-width:100%}@media (max-width:768px){.filter-pop-panel{z-index:61;max-height:70vh;position:fixed;inset:auto .75rem 1rem;overflow-y:auto;box-shadow:0 -6px 30px #00000040}}@media print{.topnav,.no-print{display:none!important}.main{max-width:100%;padding:0}.card{box-shadow:none;border:none;margin:0;padding:0}.statement-doc{border:1px solid #999!important}}.statement-doc{border:1px solid var(--border);border-radius:var(--radius);background:#fff;max-width:720px;padding:1.5rem}.statement-doc h2{margin-top:0}.statement-doc .totals td{font-size:1rem}.statement-doc .totals tr.net td{font-size:1.1rem;font-weight:700}.btn:disabled,.btn:disabled:hover{color:#8a93a1;cursor:default;box-shadow:none;background:#e3e7ed;border-color:#0000}.btn-compact{white-space:nowrap;padding:.4rem .9rem;font-size:.85rem}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));align-items:start;gap:1.25rem;display:grid}.settings-grid .card{margin-bottom:0}.lookup-rows{flex-direction:column;gap:.3rem;margin:.6rem 0;display:flex}.lookup-row{flex-flow:wrap;align-items:center;gap:.35rem;max-width:100%;margin:0;display:flex}.lookup-row input,.lookup-row select{flex:auto;min-width:120px;padding:.3rem .5rem;font-size:.88rem}.lookup-row .btn{flex:none;padding:.3rem .8rem;font-size:.82rem}.lookup-add{border-top:1px dashed var(--border);margin-top:.75rem;padding-top:.75rem}.catalog-cat{border:1px solid var(--border);background:#fcfbfd;border-radius:8px;margin-bottom:.4rem}.catalog-cat>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;list-style:none;display:flex}.catalog-cat>summary::-webkit-details-marker{display:none}.catalog-cat>summary:before{content:"▸";color:var(--text-muted);font-size:.8rem}.catalog-cat[open]>summary:before{content:"▾"}.catalog-cat-name{flex:1;font-weight:600}.catalog-body{padding:0 .75rem .75rem}.chip-list{flex-wrap:wrap;gap:.35rem;margin-top:.6rem;display:flex}.chip{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .4rem .2rem .7rem;font-size:.85rem;display:inline-flex}.chip em{color:var(--text-muted);font-size:.8rem;font-style:normal}.chip form{max-width:none;display:inline}.chip-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 .15rem;font-size:.85rem;line-height:1}.chip-remove:hover{color:var(--danger)}.job-number{background:var(--primary-dark);color:var(--accent);letter-spacing:.02em;vertical-align:middle;border-radius:6px;margin-right:.5rem;padding:.1rem .5rem;font-size:.85em;font-weight:700;display:inline-block}.expiry-pill{white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.expiry-expired{color:#a12727;background:#fbdcdc}.expiry-soon{color:#8a6100;background:#fdf0d5}.expiry-ok{color:#1d6b3a;background:#dcf0e2}.expiry-none{color:#5f6368;background:#e8eaed}.expiry-warning{border-left:4px solid var(--danger)}.expiry-warning .row-expired td{background:#fdf5f5}.inline-date{flex-direction:column;gap:.1rem;display:flex}.inline-date .helper-text{margin:0;font-size:.72rem}.invoice-pill{white-space:nowrap;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-block}.invoice-draft{color:#5f6368;background:#e8eaed}.invoice-sent{color:#26489a;background:#e2e9f8}.invoice-overdue{color:#a12727;background:#fbdcdc}.invoice-paid{color:#1d6b3a;background:#dcf0e2}.totals-box{border:1px solid var(--border);border-radius:var(--radius);background:#faf9fb;max-width:420px;margin-top:1rem;padding:.85rem 1rem}.totals-box>div{flex-direction:row;justify-content:space-between;gap:1rem;padding:.15rem 0;display:flex}.totals-box .totals-total{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.45rem;font-size:1.05rem}.invoice-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;display:grid}.invoice-summary>div{flex-direction:column;display:flex}.invoice-summary .label{color:var(--muted);font-size:.78rem}.invoice-summary strong{font-size:1.15rem}.invoice-doc{max-width:800px}.invoice-head{flex-flow:wrap;justify-content:space-between;gap:2rem;display:flex}.invoice-meta h3{letter-spacing:.08em;margin:0 0 .4rem}.invoice-meta table td{border:none;padding:.1rem 0 .1rem 1rem}.invoice-meta table td:first-child{color:var(--muted);padding-left:0}.invoice-addr{color:var(--muted);white-space:pre-line;margin:.2rem 0;font-size:.9rem}.invoice-to{margin:1.5rem 0}.invoice-to .label,.invoice-notes .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;display:block}.invoice-lines{width:100%;margin-top:.5rem}.invoice-totals{min-width:300px;margin-top:1rem;margin-left:auto}.invoice-totals td{border:none;padding:.2rem 0}.invoice-totals td:last-child{text-align:right;font-variant-numeric:tabular-nums}.invoice-totals tr.due td{border-top:2px solid var(--text);padding-top:.4rem;font-size:1.1rem;font-weight:700}.reverse-charge-note{border:1px solid var(--text);border-radius:var(--radius);margin-top:1.25rem;padding:.7rem .9rem;font-weight:600}.invoice-notes{margin-top:1.25rem}.invoice-notes p{white-space:pre-line;margin:.2rem 0}.password-field{flex-direction:row;align-items:stretch;gap:.35rem;display:flex}.password-field input{flex:auto;min-width:0}.password-toggle{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:#fff;flex:none;padding:0 .75rem;font-size:.82rem;font-weight:600}.password-toggle:hover{color:var(--text);border-color:var(--muted)}.filter-bar-auto .filter-search-btn{display:none}.site-log-week td,.site-log-week th{padding-top:.3rem;padding-bottom:.3rem;line-height:1.25}.sl-who{white-space:nowrap;text-overflow:ellipsis;max-width:130px;overflow:hidden}.filter-wide{width:auto;min-width:15rem;max-width:100%}.logo-img{object-fit:contain;width:auto;max-width:170px;height:36px;display:block}.invoice-doc .logo-img{max-width:240px;height:56px;margin-bottom:.5rem}.logo-preview{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius);background:#fff;width:auto;max-width:200px;height:48px;padding:.3rem .5rem}.theme-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;display:grid}.theme-swatch{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;padding:.6rem;display:block}.theme-swatch:hover{border-color:var(--muted)}.theme-swatch.theme-on{border-color:var(--text)}.theme-swatch input{opacity:0;width:0;height:0;position:absolute}.theme-swatch strong{margin-top:.4rem;display:block}.theme-swatch .helper-text{font-size:.75rem;display:block}.theme-bar{border-radius:6px;justify-content:flex-end;align-items:center;height:26px;padding:0 .4rem;display:flex}.theme-dot{border-radius:50%;width:12px;height:12px}.version-line{text-align:center;color:var(--muted);opacity:.7;padding:1.5rem 1rem 2rem;font-size:.72rem}@media print{.version-line{display:none}}.setup-card{border-left:4px solid var(--primary)}.setup-count{background:var(--primary);color:#fff;white-space:nowrap;border-radius:999px;padding:.15rem .7rem;font-size:.78rem;font-weight:700}.setup-list{flex-direction:column;gap:.55rem;margin-top:.5rem;display:flex}.setup-item{flex-direction:row;align-items:flex-start;gap:.6rem;display:flex}.setup-tick{border:1.5px solid var(--border);text-align:center;color:#0000;border-radius:4px;flex:0 0 18px;height:18px;margin-top:1px;font-size:.8rem;font-weight:700;line-height:15px}.setup-done .setup-tick{background:var(--success);border-color:var(--success);color:#fff}.setup-title{font-weight:600}.setup-done .setup-title{color:var(--muted);font-weight:400;text-decoration:line-through}.invoice-tally{background:var(--bg);border-radius:var(--radius);flex-wrap:wrap;gap:2rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.invoice-tally>div{flex-direction:column;gap:.1rem;display:flex}.invoice-tally strong{font-size:1.15rem}.invoice-tally .tally-over{color:var(--danger)}@media (max-width:640px){.invoice-tally{gap:1.2rem}}.invoice-grid th,.invoice-grid td{padding:.35rem .45rem}.invoice-grid input,.invoice-grid select{width:100%;min-width:0}.invoice-grid .grid-continues td:first-child{padding-left:1.4rem}.invoice-grid .grid-continues td{border-top:none}.grid-form{max-width:none}.grid-foot{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.row-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:.15rem .45rem;font-size:1.1rem;line-height:1}.row-remove:hover,.row-remove:focus-visible{color:var(--danger);border-color:var(--border);background:var(--surface)}.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}.invoice-grid .row-actions{white-space:nowrap;text-align:center}.row-add{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:.15rem .4rem;font-size:1.1rem;line-height:1}.row-add:hover,.row-add:focus-visible{color:var(--primary);border-color:var(--border);background:var(--surface)}.scan-input{width:100%;font-size:.72rem}.scan-input::file-selector-button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;margin-right:.3rem;padding:.15rem .4rem;font-size:.72rem}.scan-link{font-size:.82rem;font-weight:600}.scan-thumb{border:1px solid var(--border);background:var(--surface);border-radius:6px;line-height:0;display:inline-block;overflow:hidden}.scan-thumb:hover{border-color:var(--primary)}.scan-thumb img{object-fit:cover;width:46px;height:34px;display:block}.scan-file{letter-spacing:.04em;color:var(--primary);padding:.35rem .5rem;font-size:.7rem;font-weight:700;line-height:1.2;display:inline-block}.scan-hint{color:var(--danger);margin-top:.2rem;font-size:.7rem;line-height:1.3;display:block}.scan-more{vertical-align:top;color:var(--text-muted);margin-left:.2rem;font-size:.68rem;font-weight:700;display:inline-block}.their-invoices{flex-wrap:wrap;gap:.2rem .5rem;display:flex}.their-invoice-plain{color:var(--text-muted)}.tray-form,.shared-form{max-width:none}.tray-drop{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;transition:background .15s,border-color .15s}.tray-drop label{cursor:pointer;padding:1rem;display:block}.tray-drop.big label{padding:3rem 1rem}.tray-drop input[type=file]{opacity:0;width:1px;height:1px;position:absolute}.tray-drop.over{border-color:var(--primary);background:#e8eff9}.tray-drop.busy{pointer-events:none;opacity:.7}.tray-table input{width:100%;min-width:7rem}.tray-copy{white-space:nowrap;align-items:center;gap:.5rem;display:flex}.tray-copy img{object-fit:cover;border:1px solid var(--border);border-radius:4px;width:44px;height:44px}.pdf-pill{color:var(--accent-dark);background:#fbe3d0;border-radius:4px;padding:.15rem .45rem;font-size:.72rem;font-weight:700;display:inline-block}.tray-table tr.has-problem td{background:#fdf1f1}.tray-problem{color:var(--danger);white-space:normal;max-width:22rem;margin-top:.3rem;font-size:.8rem}.tray-save{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.order-book-actions{flex-wrap:wrap;gap:.5rem;display:flex}.tray-count{background:var(--accent);min-width:1.4rem;color:var(--primary-dark);text-align:center;border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.75rem;font-weight:700;display:inline-block}.shared-tag{color:var(--primary);background:#e3ecf8;border-radius:4px;margin-left:.3rem;padding:0 .4rem;font-size:.72rem;font-weight:700;display:inline-block}.shared-jobs{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.35rem 1rem;margin:.5rem 0;display:grid}.shared-jobs label{border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .5rem;font-weight:400;display:flex}.shared-jobs .share{font-variant-numeric:tabular-nums;color:var(--text-muted)}.shared-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;display:grid}.page-drop-overlay{z-index:50;border:4px dashed var(--primary);pointer-events:none;background:#03346e1f;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.page-drop-overlay span{background:var(--primary);color:#fff;border-radius:999px;padding:.8rem 1.4rem;font-weight:700}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);align-items:flex-start;gap:.9rem;padding:1rem 1.1rem;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.tile:hover,.tile:focus-visible{border-color:var(--primary-light);text-decoration:none;box-shadow:0 4px 14px #03346e1f}.tile-icon{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.tile-text{flex-direction:column;gap:.2rem;display:flex}.tile-text strong{color:var(--primary);font-size:1rem}.tile-text span{color:var(--text-muted);font-size:.85rem}.tile-text em{color:var(--accent-dark);font-size:.8rem;font-style:normal;font-weight:700}.tile-section{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:.5rem 0 .6rem;font-size:.8rem}.back-link{margin-bottom:.25rem;font-size:.85rem;display:inline-block}.margin-badge{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:.1rem .55rem;font-size:.8rem;font-weight:700;display:inline-block}.margin-top{color:#fff;background:#1b6b34}.margin-good{color:#123d1b;background:#8fd18f}.margin-thin{color:#3d2a00;background:#f5b82e}.margin-poor{color:#fff;background:#d93025}.margin-loss{color:#fff;background:#111}.margin-text-top{color:#1b6b34}.margin-text-good{color:#2f8f3f}.margin-text-thin{color:#a86b00}.margin-text-poor{color:#c0392b}.margin-text-loss{color:#111}.margin-key{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.75rem;display:flex}.back-button{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--primary);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;margin:-.75rem 0 .75rem;padding:.35rem .8rem .35rem .55rem;font-size:.85rem;font-weight:600;display:inline-flex}.back-button span{font-size:1.2rem;line-height:1}.back-button:hover{background:#eef3fa}.job-summary .price-source{font-size:.75rem;display:block}.price-edit summary{cursor:pointer;color:var(--primary);font-size:.8rem;font-weight:600}.price-edit form{gap:.3rem;margin-top:.4rem}.price-edit input{width:8rem}.import-link{float:right;margin-top:-2.4rem;padding:.35rem .8rem;font-size:.8rem}.import-add{color:var(--success);font-weight:700}.import-update{color:var(--primary);font-weight:700}.import-same{color:var(--text-muted)}.import-problem{color:var(--danger);font-weight:700}.topnav .topnav-search{max-width:none;margin:0;display:block}.topnav .topnav-search input{color:#fff;background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;width:190px;padding:.4rem .8rem;font-size:.85rem}.topnav .topnav-search input::placeholder{color:#ffffffb3}.topnav .topnav-search input:focus{color:var(--text);background:#fff;outline:none;width:240px}@media (max-width:768px){.topnav .topnav-search{flex-basis:100%;order:4}.topnav .topnav-search input,.topnav .topnav-search input:focus{width:100%}}.search-hits{margin:0 0 .5rem;padding:0;list-style:none}.search-hits li{border-bottom:1px solid var(--border);padding:.45rem 0}.search-hits li:last-child{border-bottom:none}.reg-plate{color:#111;letter-spacing:.04em;background:#f7d117;border:1px solid #c9a800;border-radius:4px;padding:.05rem .45rem;font-family:Arial Narrow,Arial,sans-serif;font-weight:800;display:inline-block}.reg-plate-title{color:#111;letter-spacing:.05em;background:#f7d117;border:2px solid #c9a800;border-radius:6px;padding:.1rem .7rem;display:inline-block}.row-muted td{color:var(--text-muted)}@media (min-width:769px){.topnav{flex-wrap:nowrap}}.topnav .topnav-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.35rem;display:flex}.topnav .topnav-right .topnav-search input,.topnav .topnav-right .topnav-search input:focus{width:210px}@media (min-width:769px) and (max-width:1180px){.topnav .brand-block{display:none}.nav-pill{padding-right:.65rem;font-size:.82rem}}@media (max-width:768px){.topnav .topnav-right{margin-left:auto}.topnav .topnav-right .topnav-search input,.topnav .topnav-right .topnav-search input:focus{width:160px}}.stat-link{color:inherit;text-decoration:none;transition:box-shadow .15s,border-color .15s}.stat-link:hover{border-color:var(--primary-light);text-decoration:none;box-shadow:0 4px 14px #03346e1f}.reading-banner{color:var(--primary);background:#e8eff9;border-radius:6px;align-items:center;gap:.6rem;padding:.55rem .8rem;font-size:.88rem;display:flex}.reading-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite alternate reading-pulse}@keyframes reading-pulse{0%{opacity:.3}to{opacity:1}}.read-mark{color:var(--accent-dark);white-space:nowrap;background:#fff4e0;border-radius:4px;margin-top:.2rem;padding:0 .4rem;font-size:.72rem;font-weight:700;display:inline-block}.tray-table input.from-invoice{background:#fff6e0;border-color:#f2c77a}.tray-instruction{align-items:center;gap:.4rem;margin:0 0 .6rem;font-size:.82rem;display:flex}.from-invoice-key{background:#fff6e0;border:1px solid #f2c77a;border-radius:3px;flex:none;width:1.4rem;height:.9rem}.report-panel{background:#fffaf0;border:1px solid #f2c77a;border-radius:10px;margin:0 0 .9rem;font-size:.88rem}.report-panel-head{justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .9rem;display:flex}.report-panel-head p{margin:0}.report-panel-toggle{border:1px solid var(--accent-dark);width:auto;color:var(--accent-dark);font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;padding:.4rem .9rem;font-size:.84rem;font-weight:700}.report-panel-toggle:hover,.report-panel-toggle[aria-expanded=true]{background:var(--accent-dark);color:#fff}.report-panel-body{padding:0 .9rem .8rem}.report-panel-body>p{margin:0 0 .5rem;font-size:.8rem}.report-panel ul{gap:.25rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.report-panel li label{align-items:baseline;gap:.45rem;display:flex}.report-panel li input{width:auto;margin:0}.report-panel-send{flex-wrap:wrap;align-items:center;gap:.5rem .9rem;display:flex}.report-panel-send input[name=report-note]{flex:14rem;min-width:10rem}.report-consent{white-space:nowrap;align-items:center;gap:.4rem;font-size:.84rem;display:flex}.report-consent input{width:auto;margin:0}.report-panel-send .btn-secondary{width:auto}.main:has(.tray-page.previewing){max-width:none;width:calc(100% - var(--tray-preview-w));margin-left:0;margin-right:var(--tray-preview-w);padding-left:1.25rem;padding-right:1.25rem}:root{--tray-preview-w:min(42vw, 680px)}.tray-page.previewing .tray-table th,.tray-page.previewing .tray-table td{padding-left:.4rem;padding-right:.4rem}.tray-page.previewing .tray-table th:first-child,.tray-page.previewing .tray-table td:first-child{max-width:8rem}.tray-page.previewing .tray-table input{min-width:5.5rem}.tray-page.previewing .tray-table input[type=date]{min-width:8.5rem}.tray-page.previewing .tray-copy img{display:none}.tray-table tr.previewed td{background:#fff8ec}.tray-preview{width:var(--tray-preview-w);z-index:60;border-left:1px solid var(--border);background:#fff;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #0f172a1f}.tray-preview-bar{border-bottom:1px solid var(--border);align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.tray-preview-bar button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;width:auto;min-width:2rem;padding:.2rem .5rem;font-size:1rem;line-height:1.2}.tray-preview-bar button:disabled{opacity:.35;cursor:default}.tray-preview-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.tray-preview-open{white-space:nowrap;font-size:.8rem}.tray-preview iframe{background:#f3f4f6;border:0;flex:1;width:100%}.tray-preview-image{background:#f3f4f6;flex:1;overflow:auto}.tray-preview-image img{width:100%;height:auto;display:block}@media (max-width:900px){.main:has(.tray-page.previewing){width:100%;max-width:1200px;margin:0 auto}.tray-preview{display:none}}.quote-send-row{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.quote-send-row form{max-width:none;margin:0}.quote-preview-back{z-index:5;position:fixed;top:.75rem;left:1rem}.quote-preview-back a{border:1px solid var(--border);background:#fff;border-radius:999px;padding:.35rem .8rem;font-weight:600;text-decoration:none;display:inline-block}.quote-preview-banner{background:#fffaf0;border:1px solid #f2c77a;border-radius:10px;width:100%;max-width:860px;margin:0 auto .75rem;padding:.6rem .9rem;font-size:.88rem}.quote-page{background:#eef1f6;min-height:100vh;padding:3.5rem 1rem 2.5rem}.quote-sheet{max-width:860px;margin:0 auto}.quote-sheet .invoice-doc{max-width:none}.quote-decision{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.1rem}.quote-decision-buttons{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.quote-decision-buttons form{max-width:none;margin:0}.quote-decision-print{margin-left:auto}.quote-decision-print .btn{color:var(--text);border:1px solid var(--border);background:#fff}@media print{.quote-page{background:#fff;padding:0}.quote-preview-back{display:none}.quote-sheet{box-shadow:none;border:0}}.quote-link-card.just-sent{border-top:3px solid var(--success)}.quote-link-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.4rem 0 .6rem;display:flex}.quote-link-row code{border:1px solid var(--border);word-break:break-all;background:#f7f8fb;border-radius:6px;flex:20rem;padding:.45rem .6rem}.enquiry-quotes-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.sort-head{color:inherit;white-space:nowrap;text-decoration:none}.sort-head:hover{color:var(--accent-dark)}.sort-head .sort-arrow{color:var(--muted);font-size:.8em}.sort-head.sorted .sort-arrow{color:var(--accent-dark)}.doc-parties{flex-wrap:wrap;gap:1rem 3rem;display:flex}.doc-parties .invoice-to{flex:14rem}.send-steps{margin:0 0 .9rem;padding-left:1.2rem}.send-steps li{margin:.2rem 0}.same-figure{color:var(--muted)}.crumbs{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.15rem 0;margin:0 0 .6rem;font-size:.86rem;display:flex}.crumbs a{color:var(--primary);font-weight:600;text-decoration:none}.crumbs a:hover{text-decoration:underline}.crumb-sep{color:var(--muted);margin:0 .45rem}.product-inline{vertical-align:-.12em;width:auto;height:.95em;margin:0 .05em;display:inline-block}
