:root{--page-zoom:1;--bg:#f4f6f8;--surface:#fff;--surface-muted:#f8fafc;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--text-muted:#6b7280;--text-subtle:#9ca3af;--primary:#1e4a7a;--primary-hover:#163a61;--primary-soft:#e8f0f8;--primary-contrast:#fff;--success:#047857;--success-bg:#ecfdf5;--warning:#b45309;--warning-bg:#fffbeb;--danger:#b91c1c;--danger-bg:#fef2f2;--info:#1d4ed8;--info-bg:#eff6ff;--shadow:0 1px 2px #1018280d, 0 1px 3px #10182814;--shadow-md:0 8px 24px #10182814;--radius:10px;--radius-sm:6px;--sidebar-width:clamp(220px, 14vw, 248px);--sidebar-collapsed-width:68px}@media (min-width:1024px) and (min-resolution:1.2x){:root{--page-zoom:.9}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:clamp(14px,.85vw + 2px,16px)}@media screen{html{zoom:var(--page-zoom)}}html,body{min-height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}button,input,select,textarea{font-family:inherit}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.page-header h1{letter-spacing:-.02em;color:var(--text);font-size:1.5rem;font-weight:600}.header-actions{gap:8px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:8px 14px;font-size:.9rem;font-weight:500;line-height:1.2;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn-primary{background:var(--primary);color:var(--primary-contrast)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-muted)}.btn-sm{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;padding:5px 10px;font-size:.8rem;font-weight:500}.btn-edit,.btn-view,.btn-invoice{background:var(--primary-soft);color:var(--primary);margin-right:6px}.btn-edit:hover,.btn-view:hover,.btn-invoice:hover{background:#d7e6f3}.btn-delete{background:var(--danger-bg);color:var(--danger)}.btn-delete:hover{background:#fee2e2}.btn-credit{color:#fff;background:#ea580c;border-color:#c2410c}.btn-credit:hover:not(:disabled){background:#c2410c}.btn-credit:disabled{opacity:.5}.btn-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.1rem;line-height:1}.btn-close:hover{color:var(--text)}.search-bar{margin-bottom:16px}.search-bar input,.filters input,.filters select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;max-width:360px;color:var(--text);padding:9px 12px;font-size:.95rem}.filters{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.filters input{flex:1}.filters select{cursor:pointer;max-width:180px}.search-bar input:focus,.filters input:focus,.filters select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.table-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 14px}th{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-muted);font-size:.75rem;font-weight:600}td{color:var(--text);font-size:.95rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface-muted)}.link{color:var(--primary);cursor:pointer;font-weight:500}.link:hover{text-decoration:underline}.empty{color:var(--text-subtle);text-align:center;padding:40px 24px}.badge,.status-badge{text-transform:capitalize;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-block}.badge-draft{background:var(--surface-muted);color:var(--text-muted)}.badge-quote,.badge-issued{background:var(--info-bg);color:var(--info)}.badge-completed,.badge-paid,.badge-staff{background:var(--success-bg);color:var(--success)}.emailed-cell{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.emailed-cell time{color:var(--text-muted);font-size:.85rem}.badge-credited,.badge-credit{background:var(--info-bg);color:var(--info)}.badge-partially_credited{background:var(--warning-bg);color:var(--warning)}.badge-invoiced{background:var(--info-bg);color:var(--info)}.badge-partial,.badge-manager{background:var(--warning-bg);color:var(--warning)}.badge-overdue,.badge-admin{background:var(--danger-bg);color:var(--danger)}.credit-note-links{margin:0;padding-left:1.2rem}.form-overlay{z-index:200;background:#11182766;justify-content:center;align-items:flex-start;padding-top:72px;display:flex;position:fixed;inset:0}.form-panel,.form-section,.detail-card,.survey-document,.invoice-document,.template-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.form-panel{width:100%;max-width:600px;max-height:calc(100vh / var(--page-zoom,1) - 120px);padding:24px;overflow-y:auto}.form-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.form-header h2{margin:0;font-size:1.15rem}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--text-muted);font-size:.8rem;font-weight:500}.field input,.field textarea,.field select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:9px 12px;font-size:.95rem}.field select{cursor:pointer}.field input[readonly]{background:var(--surface-muted);color:var(--text-muted)}.form-actions{gap:12px;margin-top:20px;display:flex}.form-section{margin-bottom:16px;padding:22px}.form-section h2{color:var(--text);margin-bottom:16px;font-size:1rem;font-weight:600}.msg,.alert{border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 14px;font-size:.9rem}.msg-success{background:var(--success-bg);color:var(--success);border:1px solid #a7f3d0}.msg-error,.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid #fecaca}.alert{background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}small{color:var(--text-muted)}.loading{min-height:calc(100vh / var(--page-zoom,1));color:var(--text-muted);justify-content:center;align-items:center;font-size:.95rem;display:flex}.app-layout{min-height:calc(100vh / var(--page-zoom,1));display:flex}.main-content{margin-left:var(--sidebar-width);min-width:0;min-height:calc(100vh / var(--page-zoom,1));flex:1;padding:clamp(20px,2vw,32px) clamp(20px,2.5vw,40px) 48px;transition:margin-left .2s;overflow-y:auto}.app-layout:has(.sidebar.collapsed){--sidebar-width:var(--sidebar-collapsed-width)}.app-layout:has(.sidebar.collapsed) .sale-sticky-bar{left:var(--sidebar-collapsed-width)}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);z-index:100;flex-direction:column;transition:width .2s;display:flex;position:fixed;top:0;bottom:0;overflow:hidden auto}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:22px 12px 18px 18px;display:flex;position:relative}.brand{align-items:center;gap:12px;min-width:0;display:flex}.sidebar-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:28px;height:28px;color:var(--text-muted);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-toggle:hover{background:var(--surface-muted);color:var(--text);border-color:var(--border-strong)}.sidebar-toggle .nav-icon{width:16px;height:16px}.brand-mark{background:var(--primary);width:36px;height:36px;color:var(--primary-contrast);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.sidebar-header h1{color:var(--text);letter-spacing:-.02em;margin-bottom:2px;font-size:.98rem;font-weight:650;line-height:1.2}.version{color:var(--text-muted);font-size:.75rem}.sidebar-nav{flex:1;padding:14px 12px;list-style:none}.sidebar-nav li{margin-bottom:2px}.sidebar-nav li a{color:var(--text-muted);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:9px 12px;font-size:.92rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-nav .nav-icon{flex-shrink:0}.nav-label{white-space:nowrap}.sidebar-nav li a:hover{background:var(--surface-muted);color:var(--text)}.sidebar-nav li a.active{background:var(--primary-soft);color:var(--primary)}.sidebar-footer{border-top:1px solid var(--border);padding:16px}.inbox-notice{margin-bottom:12px;position:relative}.inbox-button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:40px;color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:8px;font-size:.85rem;font-weight:600;display:inline-flex}.inbox-badge{background:var(--primary);color:#fff;text-align:center;border-radius:999px;min-width:1.25rem;margin-left:auto;padding:0 6px;font-size:.75rem;line-height:1.25rem}.inbox-panel{z-index:130;left:calc(var(--sidebar-width) + 8px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:280px;max-height:360px;padding:12px;position:fixed;bottom:16px;overflow:auto;box-shadow:0 8px 24px #0000001f}.inbox-panel-title,.inbox-more,.inbox-empty{margin:0 0 8px}.inbox-list{margin:0;padding:0;list-style:none}.inbox-list a{color:inherit;gap:2px;padding:8px 0;text-decoration:none;display:grid}.inbox-from,.inbox-subject{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inbox-subject,.inbox-time{color:var(--text-muted);font-size:.8rem}.sidebar.collapsed .inbox-label{display:none}.sidebar.collapsed .inbox-button{justify-content:center;padding:8px}.sidebar.collapsed .inbox-badge{margin-left:0;position:absolute;top:-6px;right:-6px}.inbox-mobile{display:none}@media (max-width:900px){.inbox-sidebar{display:none}.inbox-mobile{margin:0 0 0 auto;display:block}.inbox-mobile .inbox-button{background:0 0;border:0;width:auto;padding:8px}.inbox-mobile .inbox-label{display:none}.inbox-mobile .inbox-panel{position:fixed;inset:60px 12px auto auto}}.user-block{margin-bottom:10px}.user-name{color:var(--text);font-size:.88rem;font-weight:600}.user-role{color:var(--text-muted);text-transform:capitalize;margin-top:2px;font-size:.75rem;font-weight:500}.network-hint{color:var(--text-subtle);margin-top:10px;font-size:.75rem}.btn-logout{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:.85rem;font-weight:500;display:inline-flex}.sidebar.collapsed .sidebar-header{flex-direction:column;padding:16px 10px 12px}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .user-block,.sidebar.collapsed .network-hint,.sidebar.collapsed .logout-label{display:none}.sidebar.collapsed .brand{justify-content:center}.sidebar.collapsed .sidebar-nav{padding:12px 8px}.sidebar.collapsed .sidebar-nav li a{justify-content:center;padding:10px 8px}.sidebar.collapsed .sidebar-footer{padding:12px 8px}.sidebar.collapsed .btn-logout{padding:8px}.btn-logout:hover{background:var(--surface-muted);color:var(--text);border-color:var(--border-strong)}.login-page{min-height:calc(100vh / var(--page-zoom,1));background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow-md);border-radius:12px;padding:36px 32px}.login-header{text-align:center;margin-bottom:28px}.login-header .brand-mark{border-radius:10px;width:44px;height:44px;margin-bottom:14px;font-size:1.15rem;display:inline-flex}.login-header h1{color:var(--text);letter-spacing:-.02em;margin:0 0 6px;font-size:1.35rem;font-weight:650}.login-header p{color:var(--text-muted);margin:0;font-size:.95rem}.quote-agree-total{text-align:center;margin:0 0 8px;font-size:1.5rem;font-weight:650}.quote-agree-for{text-align:center;color:var(--text-muted);margin:0 0 20px}.login-card .error{border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger);margin:0 0 16px;padding:10px 12px;font-size:.9rem}.btn-login{background:var(--primary);width:100%;color:var(--primary-contrast);border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:8px;padding:11px;font-size:.95rem;font-weight:600}.btn-login:hover:not(:disabled){background:var(--primary-hover)}.btn-login:disabled{opacity:.6;cursor:not-allowed}.login-legal{color:var(--text-muted);cursor:pointer;align-items:flex-start;gap:10px;margin:16px 0 4px;font-size:.82rem;line-height:1.45;display:flex}.login-legal input{flex-shrink:0;margin-top:3px}.login-legal a{color:var(--primary)}.donut{flex-shrink:0;position:relative}.donut svg{display:block;transform:rotate(-90deg)}.donut .track,.donut .slice{fill:none;stroke-linecap:butt}.donut .track{stroke:#eef2f6}.donut .center{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:18px;display:flex;position:absolute;inset:0}.donut .center-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:600}.donut .center-value{color:var(--text);letter-spacing:-.03em;font-size:1.05rem;font-weight:650;line-height:1.2}.hint{color:var(--text-muted)}.error-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:520px;box-shadow:var(--shadow);padding:32px}.error-panel h1{margin-bottom:8px;font-size:1.3rem}.error-panel p{color:var(--text-muted);margin-bottom:18px}.error-panel a{text-decoration:none}.sale-page{max-width:1320px}.sale-page .page-header{align-items:flex-start;margin-bottom:18px}.sale-title-fields{align-items:center;gap:16px;margin-left:auto;padding-top:2px;display:flex}.sale-title-fields .field{flex-direction:row;align-items:center;gap:8px}.sale-title-fields .field input{width:210px}.subtitle{color:var(--text-muted);margin-top:4px;font-size:.95rem}.meta-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px;display:grid}.customer-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;grid-template-columns:minmax(0,1fr) 240px;gap:18px;margin-bottom:18px;padding:20px 22px;display:grid}.customer-heading{align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.customer-heading h2,.details-heading h2{font-size:1rem;font-weight:600}.optional{color:var(--text-subtle);font-size:.8rem}.search-wrap{align-items:center;gap:10px;max-width:420px;margin-bottom:14px;display:flex;position:relative}.search-wrap input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:9px 12px}.matches{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;max-height:240px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:40px;overflow:auto}.matches button{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;width:100%;padding:8px 12px;display:flex}.matches button:hover{background:var(--surface-muted)}.matches span{color:var(--text-muted);font-size:.8rem}.customer-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.customer-address-row{grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.notes-field textarea{resize:vertical;min-height:180px}.customer-loaded-msg{border-radius:var(--radius-sm);color:#166534;background:#f0fdf4;border:1px solid #86efac;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;font-size:.88rem;display:flex}.customer-loaded-msg span{flex:1}.details-card{padding:18px 20px;overflow:visible}.details-heading{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.details-heading p{color:var(--text-muted);font-size:.9rem}.lines-wrap{overflow-x:auto}.lines{min-width:980px}.lines th,.lines td{vertical-align:middle;padding:7px 5px}.lines tbody tr:hover td{background:0 0}.lines input,.lines select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:6px 8px;font-size:.88rem}.col-num{width:32px;color:var(--text-muted);font-weight:600}.col-product,.product-cell{min-width:140px}.category-cell,.room-cell{min-width:120px;font-size:.88rem}.category-edit,.room-edit{flex-direction:column;gap:4px;min-width:116px;display:flex}.option-tools,.option-rename-actions{gap:4px;display:flex}.option-tools .btn-sm,.option-rename-actions .btn-sm{padding:2px 6px;font-size:.72rem}.option-rename{flex-direction:column;gap:4px;display:flex}.measure-cell{min-width:132px}.measure-edit{flex-direction:column;gap:4px;display:flex}.measure-pair{align-items:center;gap:4px;display:flex}.lines .measure-pair input{text-align:center;flex:0 0 44px;width:44px}.lines .measure-pair input.measure-decimal{flex-basis:72px;width:72px}.measure-x,.measure-unused{color:var(--text-muted);font-weight:700}.measure-price{min-width:82px;color:var(--text-muted);flex-direction:column;gap:4px;font-size:.72rem;font-weight:600;display:flex}.product-search{position:relative}.product-matches-floating{z-index:1000;min-width:240px;max-height:220px;margin:0;position:fixed;right:auto}.discount-cell{gap:4px;min-width:106px;display:flex}.discount-cell select{flex:0 0 48px;width:48px;padding:6px 4px}.discount-cell input{flex:1;min-width:0}.price-cell{white-space:nowrap;font-weight:600}.add-line{margin-top:12px}.add-customer{margin-bottom:18px}.mid-row{grid-template-columns:220px 220px 220px;gap:16px;margin:8px 0 18px;display:grid}.field-note{color:var(--text-muted);margin:0;font-size:.75rem}.footer-row{justify-content:space-between;align-items:flex-start;gap:32px;margin-bottom:24px;display:flex}.summary-left,.summary-right{min-width:260px}.summary-right{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.kv{color:var(--text-muted);justify-content:space-between;align-items:center;gap:16px;padding:6px 0;font-size:.9rem;display:flex}.kv strong{color:var(--text);font-weight:600}.kv.total,.kv.due{border-top:1px solid var(--border);color:var(--text);margin-top:4px;padding-top:10px;font-weight:700}.kv.total strong,.kv.due strong{color:var(--primary);font-size:1.05rem}.pay-controls{align-items:center;gap:8px;display:flex}.field .pay-controls input{flex:1 1 0;width:auto;min-width:5.5rem}.field .pay-controls .deposit-method{flex:none;width:auto}.fitting-stack{flex-direction:column;gap:12px;min-width:0;display:flex}.btn-sm.pay-balance{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text);cursor:pointer;white-space:nowrap;padding:6px 8px;font-size:.75rem;font-weight:600}.btn-sm.pay-balance:hover:not(:disabled){background:var(--border-strong)}.btn-sm.pay-balance:disabled{opacity:.55;cursor:not-allowed}.finalise-hint{text-align:center;color:var(--text-muted);margin:0 0 12px;font-size:.92rem}.sale-header-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.sale-header-actions .btn{white-space:nowrap;text-decoration:none}.send-email,.send-email-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.send-email-form input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:200px;padding:8px 10px}.send-email .hint,.send-email .error{width:100%;margin:0}.sale-secondary-actions{padding-bottom:0}.sale-page:has(.sale-sticky-bar){padding-bottom:var(--sale-sticky-clearance,80px)}.sale-secondary-btns{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.sale-sticky-bar{bottom:0;left:var(--sidebar-width);z-index:50;background:var(--surface);border-top:2px solid var(--border);align-items:center;gap:0;padding:10px clamp(20px,2.5vw,40px);display:flex;position:fixed;right:0;box-shadow:0 -4px 20px #10182814}.sale-sticky-total{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-right:1px solid var(--border);flex-direction:column;gap:1px;margin-right:20px;padding-right:20px;font-size:.7rem;font-weight:600;display:flex}.sale-sticky-total strong{color:var(--text);letter-spacing:-.02em;font-size:1rem;font-weight:700}.sale-sticky-payments{flex-wrap:wrap;flex:1;align-items:flex-end;gap:12px;display:flex}.sale-sticky-pay-field{flex-direction:column;flex:1;gap:3px;max-width:240px;display:flex}.sale-sticky-pay-field .pay-controls{align-items:stretch;gap:6px;display:flex}.sale-sticky-pay-field .pay-controls input{flex:1;width:auto;min-width:0}.credit-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:860px;box-shadow:var(--shadow);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex}.credit-panel .sale-sticky-pay-field.wide{flex:2 240px;max-width:none}.credit-panel .sale-sticky-pay-field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:7px 10px;font-size:.92rem}.internal-note{background:var(--warning-bg);border:1px solid var(--border);border-radius:var(--radius);max-width:860px;margin-top:16px;padding:14px 20px}.internal-note h3{margin-bottom:6px;font-size:.9em}.internal-note p{white-space:pre-wrap}.internal-note small{color:var(--text-muted)}@media print{.internal-note,.notes-field{display:none!important}}.credit-panel-error{flex-basis:100%;margin:0}@media print{.credit-panel{display:none}}.deposit-method{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:auto;color:var(--text);flex:none;padding:0 8px;font-size:.85rem}.btn-max{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:0 10px;font-size:.78rem;font-weight:600}.btn-max:hover{border-color:var(--primary);color:var(--primary)}.sale-sticky-pay-field label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:600}.sale-sticky-pay-field input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);padding:7px 10px;font-size:.92rem}.sale-sticky-pay-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.sale-sticky-pay-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sale-sticky-pay-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sale-sticky-pay-field input[type=number]{-moz-appearance:textfield}.sale-sticky-balance{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-left:1px solid var(--border);flex-direction:column;gap:1px;margin-left:20px;padding:0 20px;font-size:.7rem;font-weight:600;display:flex}.sale-sticky-balance .balance-due{color:var(--danger);letter-spacing:-.02em;font-size:1rem;font-weight:700}.sale-sticky-balance .balance-clear{color:var(--success);letter-spacing:-.02em;font-size:1rem;font-weight:700}.sale-sticky-btns{gap:8px;margin-left:auto;display:flex}.sale-take-payment{display:none}.success-panel{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:48px 20px}.success-panel h1{margin-bottom:8px;font-size:1.4rem}.success-panel p{color:var(--text-muted);margin-bottom:22px}.success-panel .stock-warning{color:var(--danger,#b45309);background:var(--warning-bg,#fff7ed);border-radius:8px;padding:.75rem 1rem}.success-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.success-actions a{text-decoration:none}.link-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:500}.loading-hint{color:var(--text-subtle);margin-top:8px;font-size:.85rem}.msg-locked{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.sale-page :disabled{background:var(--surface-muted);cursor:not-allowed}.sale-snapshot{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;max-width:860px;padding:28px 32px 24px;overflow-x:auto}.sale-pay-panel{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:20px;padding-top:16px;display:flex}.sale-pay-hint{color:var(--text-muted);flex-basis:100%;font-size:.85rem}@media print{.sale-pay-panel{display:none}.quote-document .page-header{display:none!important}}.sale-snapshot-due span:last-child{color:var(--danger);font-weight:700}.sale-snapshot-parties{grid-template-columns:1fr 1fr;gap:28px;margin-bottom:28px;display:grid}.sale-snapshot-parties h2,.sale-snapshot-notes h2{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;font-size:.78rem;font-weight:600}.sale-snapshot-parties p{margin:3px 0}.sale-snapshot-parties span{color:var(--text-muted);min-width:72px;display:inline-block}.sale-snapshot-lines{border-collapse:collapse;width:100%;margin-bottom:8px}.sale-snapshot-lines th{text-align:left;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--border);padding:8px 10px;font-size:.75rem;font-weight:600}.sale-snapshot-lines td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 10px}.sale-snapshot-lines td:last-child,.sale-snapshot-lines th:last-child{text-align:right}.sale-snapshot-lines strong{display:block}.sale-snapshot-sub{color:var(--text-muted);margin-top:2px;font-size:.85rem;display:block}.sale-snapshot-empty{color:var(--text-subtle);text-align:center}.sale-snapshot-totals{max-width:360px;margin-left:auto}.sale-snapshot-notes{border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.sale-snapshot-notes p{white-space:pre-wrap}@media (max-width:900px){.meta-row,.customer-grid{grid-template-columns:1fr 1fr}.customer-card,.footer-row,.mid-row{grid-template-columns:1fr;display:grid}.sale-title-fields{width:100%;margin-left:0}.sale-snapshot{padding:18px 16px}.sale-snapshot-parties{grid-template-columns:1fr;gap:18px}.sale-title-fields .field{flex-direction:column;flex:1 1 0;align-items:stretch;min-width:0}.sale-title-fields .field input,.sale-header-actions{width:100%}.sale-header-actions .btn{text-align:center;flex:auto;justify-content:center}.sale-page:has(.sale-sticky-bar){padding-bottom:var(--sale-sticky-clearance,72px)}.sale-sticky-bar{padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));flex-wrap:nowrap;gap:8px;left:0}.sale-sticky-bar .sale-sticky-total,.sale-sticky-bar .sale-sticky-payments,.sale-sticky-bar .sale-sticky-balance,.sale-sticky-bar .sale-sticky-finalise{display:none}.sale-take-payment{background:var(--primary);color:var(--primary-contrast);display:inline-flex}.sale-take-payment:hover:not(:disabled){background:var(--primary-hover)}.sale-take-payment.is-open{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.sale-take-payment.is-open:hover:not(:disabled){background:var(--primary-soft)}.sale-sticky-btns{flex-wrap:nowrap;width:100%;margin-left:0}.sale-sticky-btns .btn{white-space:nowrap;flex:1 1 0;min-width:0;padding:10px 4px;font-size:clamp(.68rem,2.9vw,.82rem)}.sale-sticky-bar.payment-open{padding:12px 16px calc(10px + env(safe-area-inset-bottom,0px));flex-wrap:wrap;gap:10px}.sale-sticky-bar.payment-open .sale-sticky-total,.sale-sticky-bar.payment-open .sale-sticky-payments,.sale-sticky-bar.payment-open .sale-sticky-balance,.sale-sticky-bar.payment-open .sale-sticky-finalise{display:flex}.sale-sticky-bar.payment-open .sale-sticky-total,.sale-sticky-bar.payment-open .sale-sticky-balance{border:0;flex:100%;width:100%;margin:0;padding:0}.sale-sticky-bar.payment-open .sale-sticky-payments{flex:100%;grid-template-columns:1fr 1fr;gap:10px 12px;display:grid}.sale-sticky-bar.payment-open .sale-sticky-pay-field{min-width:0;max-width:none}.sale-sticky-bar.payment-open .sale-sticky-credit-number{grid-column:1/-1}.sale-sticky-bar.payment-open .sale-sticky-pay-field .pay-controls{min-width:0}.sale-sticky-bar.payment-open .sale-sticky-pay-field .pay-controls input{width:auto;min-width:0}.sale-sticky-bar.payment-open .sale-sticky-btns{flex-wrap:wrap}.sale-sticky-bar.payment-open .sale-sticky-finalise{flex:100%;order:-1}}.dashboard-frame{width:100%;min-width:0;container:dashboard/inline-size}.dashboard-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(14px,1.5vw,20px);width:100%;min-width:0;max-width:1600px;display:grid}.dashboard{min-width:0;max-width:1240px}.dashboard .widget,.dashboard .table-wrapper,.dashboard .charts-grid,.dashboard .tables-grid,.dashboard .kpi-grid,.dashboard .count-grid,.dashboard .chart-body{min-width:0;max-width:100%}.calendar-page{min-width:0;max-width:1280px}.job-report-controls{flex-wrap:wrap;align-items:center;gap:8px;margin:-12px 0 16px;display:flex}.job-report{min-width:0;margin-bottom:20px;overflow-x:auto}.job-report h2{font-size:1rem;font-weight:600}.job-report>p{color:var(--text-muted);margin:4px 0 12px;font-size:.85rem}.job-report .empty{color:var(--text-muted);font-size:.85rem}.job-report-table{border-collapse:collapse;width:100%;font-size:.85rem}.job-report-table th,.job-report-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.job-report-table th{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.72rem;font-weight:600}.calendar-layout{grid-template-columns:minmax(280px,420px) minmax(0,1fr);align-items:start;gap:20px;min-width:0;display:grid}.calendar-layout>*{min-width:0}.calendar-layout>.job-calendar{grid-area:1/1}.calendar-layout>.add-job{grid-area:1/2}.calendar-layout>.upcoming-jobs{grid-area:2/1/auto/-1}.job-contact-grid{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.job-contact-person{flex-direction:column;gap:16px;display:flex}.job-contact-address{height:100%}.job-contact-address textarea{resize:vertical;flex:1;min-height:6.75rem}@media (min-width:641px){.add-job-date{grid-area:1/1}.add-job-name{grid-area:2/1}.add-job-fitter{grid-area:2/2}}.add-job h2,.upcoming-jobs h2{margin-bottom:14px;font-size:1rem;font-weight:600}.upcoming-jobs .empty{color:var(--text-muted);font-size:.85rem}.upcoming-jobs-scroll{overflow-x:auto}.upcoming-jobs ul{flex-direction:column;gap:6px;min-width:920px;list-style:none;display:flex}.upcoming-job,.upcoming-job-head{grid-template-columns:9.5rem minmax(7rem,1.1fr) minmax(6rem,.8fr) minmax(7rem,1.2fr) minmax(6rem,.9fr) 8.5rem minmax(8rem,1.3fr);align-items:center;gap:10px;display:grid}.upcoming-job-head{min-width:920px;color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;padding:0 12px 4px;font-size:.72rem;font-weight:600}.upcoming-job{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text);white-space:nowrap;padding:8px 12px;font-size:.85rem;text-decoration:none}.upcoming-job>*{text-overflow:ellipsis;min-width:0;overflow:hidden}a.upcoming-job:hover{border-color:var(--border-strong);background:var(--primary-soft)}.upcoming-job time{color:var(--text-muted);font-size:.78rem;font-weight:600}@media (max-width:800px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-layout>.job-calendar,.calendar-layout>.add-job,.calendar-layout>.upcoming-jobs{grid-area:auto/1}.calendar-layout>.upcoming-jobs{order:2}.calendar-layout>.add-job{order:3}.job-report-controls{grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-top:0;display:grid}.job-report-controls .date-field{min-width:0}.job-report-controls .date-field .date-input{justify-self:start;width:max-content;max-width:100%}.job-report-controls .btn{width:auto}.upcoming-jobs-scroll{overflow:visible}.upcoming-jobs ul,.upcoming-job-head{min-width:0}.upcoming-job{white-space:normal;flex-direction:column;align-items:stretch;gap:6px;display:flex}.upcoming-job-head{display:none}.upcoming-job>*{text-overflow:unset;white-space:normal;overflow:visible}.upcoming-job>[data-label]:empty{display:none}.upcoming-job>[data-label]:not(:empty){justify-content:space-between;align-items:baseline;gap:12px;display:flex}.upcoming-job>[data-label]:before{content:attr(data-label);color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;flex:none;font-size:.72rem;font-weight:600}.job-calendar-weekdays,.job-calendar-grid,.job-calendar-day{min-width:0}}@media (max-width:640px){.job-contact-grid{grid-template-columns:1fr}}.job-calendar{width:100%;min-width:0;padding:14px 16px 16px;position:static}@container dashboard (min-width:1040px){.dashboard-layout{grid-template-columns:minmax(0,1fr) clamp(260px,20vw,310px)}.job-calendar{width:auto;position:sticky;top:24px}}.job-calendar-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.job-calendar-header h2{color:var(--text);font-size:1rem;font-weight:600}.job-calendar-header p{color:var(--text-muted);margin-top:2px;font-size:.85rem}.job-calendar-nav{gap:4px;display:flex}.job-calendar-nav button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:28px;height:28px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex}.job-calendar-nav button:hover{background:var(--surface-muted);color:var(--text);border-color:var(--border-strong)}.job-calendar-weekdays,.job-calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.job-calendar-weekdays{margin-bottom:4px}.job-calendar-weekdays span{text-align:center;letter-spacing:.02em;text-transform:uppercase;color:var(--text-muted);padding:4px 0;font-size:.7rem;font-weight:600}.job-calendar-day{aspect-ratio:1;border-radius:var(--radius-sm);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:.8rem;font-weight:500;line-height:1;display:inline-flex;position:relative}.job-calendar-day:hover{background:var(--surface-muted)}.job-calendar-day.outside{color:var(--text-subtle)}.job-calendar-day.today{box-shadow:inset 0 0 0 1px var(--primary);font-weight:700}.job-calendar-day.booked{background:var(--primary-soft);color:var(--primary);font-weight:650}.job-calendar-day.booked:after{content:"";background:var(--primary);border-radius:99px;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.job-calendar-day.selected{background:var(--primary);color:var(--primary-contrast);font-weight:650}.job-calendar-day.selected:after{background:var(--primary-contrast)}.job-calendar-jobs{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.job-calendar-jobs h3{color:var(--text-muted);margin-bottom:8px;font-size:.78rem;font-weight:600}.job-calendar-jobs .empty{color:var(--text-muted);font-size:.85rem}.job-calendar-jobs ul{flex-direction:column;gap:6px;list-style:none;display:flex}.job-calendar-jobs li button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);width:100%;color:var(--text);cursor:pointer;text-align:left;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;font-size:.8rem;display:grid}.job-calendar-jobs li button:hover{border-color:var(--border-strong);background:var(--primary-soft)}.job-calendar-order{color:var(--primary);font-weight:650}.job-calendar-entry{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text);flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-size:.8rem;display:flex}.job-calendar-entry p{white-space:pre-wrap;color:var(--text-muted)}.dashboard .page-header{flex-wrap:wrap;align-items:flex-start;margin-bottom:24px}.dashboard .header-actions{flex-wrap:wrap;align-items:center}.period-filters{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;display:inline-flex;overflow:visible}.period-filters button{border:none;border-right:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:0;padding:8px 12px;font-size:.85rem;font-weight:600}.period-filters button:last-child{border-right:none}.period-filters button:hover{background:var(--surface-muted);color:var(--text)}.period-filters button.active{background:var(--primary-soft);color:var(--primary)}.date-field{color:var(--text-muted);align-items:center;gap:8px;font-size:.8rem;font-weight:600;display:flex}.date-field select,.date-field>input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:8px 10px;font-size:.9rem}.date-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);align-items:center;gap:2px;padding:0 2px 0 0;display:inline-flex;position:relative}.date-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.date-input input[type=text]{box-sizing:content-box;width:14ch;min-width:14ch;box-shadow:none;color:inherit;font-variant-numeric:tabular-nums;letter-spacing:.01em;background:0 0;border:none;border-radius:0;flex:none;padding:8px 4px 8px 10px;font-size:.9rem}.date-input input[type=text]:focus{box-shadow:none;border:none;outline:none}.date-input input[type=text]:disabled{color:var(--text-muted)}.archive-row .date-input{width:auto}.field .date-input{width:100%;max-width:16rem}.field .date-input input[type=text]{box-sizing:content-box;flex:1;width:auto;min-width:14ch;padding:9px 4px 9px 12px;font-size:.95rem}.date-input-picker{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.date-input-picker:hover:not(:disabled){color:var(--text);background:var(--surface-muted)}.date-input-picker:disabled{cursor:default;opacity:.45}.date-input .date-input-native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}.widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(14px,1.4vw,20px) clamp(16px,1.5vw,22px)}.widget-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.widget-header h2{color:var(--text);font-size:1rem;font-weight:600}.widget-header p{color:var(--text-muted);margin-top:2px;font-size:.85rem}.kpi-grid,.count-grid,.charts-grid,.tables-grid{gap:16px;margin-bottom:16px;display:grid}.kpi-grid,.count-grid{grid-template-columns:repeat(4,1fr)}.charts-grid,.tables-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr))}.kpi{border-top:3px solid var(--primary)}.accent-success{border-top-color:var(--success)}.accent-warning{border-top-color:var(--warning)}.accent-info{border-top-color:var(--info)}.widget.compact{padding:14px 18px}.widget .stat-label,.stat-card .stat-label{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.8rem;font-weight:600}.widget .stat-value{letter-spacing:-.03em;color:var(--text);margin-top:6px;font-size:clamp(1.3rem,1.5vw,1.7rem);font-weight:650}.widget.compact .stat-value{font-size:clamp(1.15rem,1.25vw,1.35rem)}.stat-meta{color:var(--text-muted);margin-top:8px;font-size:.8rem}.chart-body{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.compact-table{min-width:0;box-shadow:none;flex:1}.compact-table th,.compact-table td{padding:8px 10px}.swatch{vertical-align:middle;border-radius:99px;width:8px;height:8px;margin-right:8px;display:inline-block}tr.strong td{background:var(--surface-muted);font-weight:650}tr.accent td{color:var(--warning);font-weight:600}@media (max-width:1100px){.charts-grid,.tables-grid{grid-template-columns:1fr}.chart-body{flex-direction:column;align-items:stretch}}@media (max-width:900px){.kpi-grid,.count-grid{grid-template-columns:repeat(2,1fr)}}.customers,.suppliers,.products,.orders,.invoices{max-width:1200px}@media (min-width:641px){.categories .table-wrapper{width:fit-content;max-width:100%}.categories .table-wrapper table{width:auto}.categories .table-wrapper th:nth-child(2),.categories .table-wrapper td:nth-child(2){text-align:right;white-space:nowrap}.categories .table-wrapper td.actions,.categories .table-wrapper th:last-child{white-space:nowrap}}.customers .form-panel{max-width:720px;max-height:calc(100vh / var(--page-zoom,1) - 100px)}.detail{max-width:1120px}.detail-header{margin-bottom:24px}.back-link{color:var(--text-muted);margin-bottom:8px;font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--primary)}.detail-header h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:600}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}@media (max-width:700px){.stats-grid{grid-template-columns:1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.stat-card .stat-label{letter-spacing:.04em;font-size:.75rem}.stat-card .stat-value{letter-spacing:-.02em;margin-top:6px;font-size:1.4rem;font-weight:650}.detail-grid{margin-bottom:28px}.detail-card{padding:24px}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.detail-card h2{margin:0;font-size:1rem;font-weight:600}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.detail-row:last-child{border-bottom:none}.detail-row .label{color:var(--text-muted);font-size:.9rem}.section{margin-bottom:28px}.section h2{margin-bottom:12px;font-size:1rem;font-weight:600}a.link{color:var(--primary);font-weight:500;text-decoration:none}a.link:hover{text-decoration:underline}.history-lines td{color:var(--text-muted);background:var(--surface-muted);font-size:.85rem}.pay-line{margin-top:6px}.pager{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;font-size:.9em;display:flex}.invoice-detail .invoice-document{max-width:860px}.invoice-actions{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.invoice-actions h1{font-size:1.5em;font-weight:600}.invoice-actions .hint{text-align:right;flex-basis:100%;margin:0}.invoice-detail .invoice-document{padding:32px}.invoice-header{justify-content:space-between;margin-bottom:32px;display:flex}.company-name{color:var(--primary);margin-bottom:12px;font-size:1.5em}.company-info p{color:var(--text-muted);margin:2px 0}.invoice-title h1{color:var(--text-muted);text-transform:uppercase;margin-bottom:8px;font-size:2em}.invoice-number{color:var(--text);font-size:1.2em}.invoice-title .status-badge{text-transform:uppercase;border-radius:4px;margin-top:8px;padding:4px 12px;font-size:.8em;font-weight:600;display:inline-block}.invoice-parties{grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px;display:grid}.invoice-parties h3{color:var(--text-muted);margin-bottom:8px;font-size:.9em}.invoice-parties p{color:var(--text);margin:4px 0}.invoice-items{border-collapse:collapse;width:100%;margin-bottom:24px}.invoice-items th{text-align:left;color:var(--text-muted);text-transform:uppercase;border-bottom:2px solid var(--border);padding:10px;font-size:.85em;font-weight:500}.invoice-items td{border-bottom:1px solid var(--border);color:var(--text);padding:12px 10px}.invoice-items td:last-child{text-align:right}.invoice-totals{text-align:right;margin-bottom:24px}.invoice-totals .total-row{padding:6px 0}.invoice-totals .total-row span:last-child{margin-left:32px}.invoice-totals .total-row.grand{color:var(--primary);border-top:2px solid var(--primary);margin-top:8px;padding-top:12px;font-size:1.3em;font-weight:700}.invoice-notes{background:var(--surface-muted);border-radius:6px;padding:16px}.invoice-fitter{margin-bottom:16px}.invoice-fitter p+p{margin-top:4px}.invoice-notes h3{color:var(--text-muted);margin-bottom:8px;font-size:.9em}.invoice-notes p{color:var(--text)}.invoice-payment{flex-wrap:wrap;gap:8px 48px;margin-top:28px;display:flex}.invoice-payment-item{flex-direction:column;gap:2px;min-width:140px;display:flex}.invoice-payment-label{color:var(--text-muted);font-size:.8rem;line-height:1.3}.invoice-payment-value{color:var(--text);font-size:.95rem;line-height:1.4}.invoice-footer{text-align:center;color:var(--text-muted);margin-top:32px}.invoice-footer p+p{margin-top:10px}.invoice-detail .loading,.invoice-detail .error{color:var(--text-muted);min-height:0;padding:24px}.invoice-detail .error{color:var(--danger)}.settings{max-width:1000px}.settings-legal-row{margin-top:28px}.settings-legal{color:var(--text-subtle);font-size:.8rem;line-height:1;text-decoration:none}.settings-legal:hover{color:var(--text-muted);text-decoration:underline}.legal-reader{background:var(--bg);min-height:100vh;padding:clamp(24px,4vw,48px)}.legal-doc{max-width:46rem}.legal-intro{margin-bottom:28px}.legal-intro h1{letter-spacing:-.02em;font-size:1.5rem;font-weight:600}.legal-intro p{color:var(--text-muted);margin-top:8px}.legal-kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:8px;font-size:.75rem}.legal-section{margin-bottom:1.6rem}.legal-section h2{margin-bottom:.5rem;font-size:1.05rem;font-weight:600}.legal-section p+p,.legal-section ul{margin-top:.7rem}.legal-section ul{padding-left:1.2rem}.legal-section li+li{margin-top:.35rem}.legal-index{gap:10px;list-style:none;display:grid}.legal-index a,.legal-back a{color:var(--primary);text-decoration:none}.legal-index a:hover,.legal-back a:hover{text-decoration:underline}.legal-back{margin-top:2rem}.legal-status{color:var(--text-muted)}.settings .form-panel{max-width:500px}.input-group{display:flex}.input-group input{border-radius:6px 0 0 6px}.toggle-btn{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-left:none;border-radius:0 6px 6px 0;padding:0 12px}.archive{margin-bottom:28px}.archive h2{margin-bottom:6px;font-size:1.1em;font-weight:600}.settings .hint{margin-bottom:12px;font-size:.9em}.archive-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.archive-row input,.archive-row select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 12px}.currency-field{flex-direction:column;gap:6px;display:flex}.currency-field span{color:var(--text-muted);font-size:.85em}.currency-field select{min-width:260px}.company-grid{grid-template-columns:1fr 1fr;gap:16px;max-width:720px;margin-bottom:12px;display:grid}.company-grid .field.full{grid-column:1/-1}.company-grid textarea{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:10px;font-size:.95em}.company-grid textarea:focus{border-color:var(--primary);outline:none}.vat-slots{gap:8px;display:grid}.vat-slot{grid-template-columns:1fr 110px;gap:8px;display:grid}.vat-breakdown{background:var(--bg,#f8fafc);border:1px solid var(--border);border-radius:6px;gap:8px;padding:10px 12px;display:grid}.vat-breakdown-row{color:var(--text-muted);grid-template-columns:1.4fr 1fr 1fr;gap:8px;font-size:.9rem;display:grid}.vat-checks{gap:8px;margin-bottom:8px;display:grid}.vat-check{align-items:center;gap:8px;font-size:.95rem;display:flex}.vat-check input{width:auto}.vat-cell{align-items:center;gap:6px;display:flex}.vat-cell select{flex:1;width:auto;min-width:0}.vat-rate-readout{color:var(--text-muted);white-space:nowrap;flex:none;font-size:.8rem}.mobile-bar,.nav-backdrop{display:none}@media (max-width:900px){body{overflow-x:hidden}.mobile-bar{z-index:120;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;height:52px;padding:0 12px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-bar-title{letter-spacing:-.02em;margin:0;font-size:.95rem;font-weight:650}.nav-menu{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:6px 10px;font-size:.9rem;font-weight:600;display:inline-flex}.nav-backdrop{z-index:105;cursor:pointer;background:#11182766;border:0;display:block;position:fixed;inset:0}.main-content{margin-left:0;padding:68px 16px 40px}.sidebar{z-index:110;width:min(280px,86vw);height:calc(100dvh - 52px);transition:transform .2s;top:52px;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.sidebar.collapsed{width:min(280px,86vw)}.sidebar.collapsed .sidebar-header{flex-direction:row;padding:22px 12px 18px 18px}.sidebar.collapsed .brand{justify-content:flex-start}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .user-block,.sidebar.collapsed .network-hint,.sidebar.collapsed .logout-label{display:block}.sidebar.collapsed .sidebar-nav{padding:14px 12px}.sidebar.collapsed .sidebar-nav li a{justify-content:flex-start;padding:9px 12px}.sidebar.collapsed .sidebar-footer{padding:16px}.sidebar-toggle{display:none}.filters input,.filters select{flex:180px;width:auto;max-width:none}.lines-wrap{overflow:visible}.lines{min-width:0}.lines thead{display:none}.lines,.lines tbody,.lines tr,.lines td{width:auto;display:block}.lines tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);margin-bottom:12px;padding:10px 12px}.lines td{white-space:normal;min-width:0;padding:6px 0}.lines td:before{content:attr(data-label);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:.72rem;font-weight:600;display:block}.lines td[data-label=""]:before{content:none;display:none}.product-cell,.category-cell,.room-cell,.discount-cell,.vat-cell{min-width:0}.discount-cell,.category-edit,.room-edit,.measure-edit,.measure-price{width:100%}.lines .btn-delete{min-width:40px;min-height:40px}}@media (max-width:640px){.page-header,.invoice-actions,.card-header{flex-direction:column;align-items:stretch}.header-actions{flex-wrap:wrap}.page-header>.btn,.header-actions>.btn,.form-actions .btn,.dashboard .header-actions{width:100%}.period-filters{width:100%;display:flex;overflow:visible}.period-filters button{flex:7rem}.filters>.date-field{grid-column:1/-1}.date-field{grid-template-columns:4.25rem minmax(0,1fr);align-items:center;width:100%;display:grid}.date-field>input,.date-field select{flex:none;width:100%;min-width:0;max-width:100%}.date-field .date-input{flex:none;justify-self:start;width:max-content}.kpi-grid,.count-grid,.meta-row,.customer-grid,.form-grid,.form-row,.company-grid,.stats-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.filters>.period-filters,.filters>input[type=search],.filters>input[type=text],.filters>select,.search-bar input{grid-column:1/-1;width:100%;max-width:none}.filters input,.filters select{flex:none;width:100%;max-width:none;height:42px;min-height:42px;padding:8px 12px}.form-overlay{align-items:stretch;padding:16px 12px}.form-panel,.customers .form-panel,.settings .form-panel{max-width:none;max-height:calc(100vh - 32px)}.form-actions{flex-direction:column}.btn-close{min-width:44px;min-height:44px}.invoice-header,.invoice-parties{flex-direction:column;gap:20px;display:flex}.invoice-detail .invoice-document{padding:16px}.invoice-title h1{font-size:1.5em}.detail-row{flex-direction:column;align-items:flex-start;gap:2px}.detail-row span{overflow-wrap:anywhere}.vat-breakdown-row{grid-template-columns:1fr}.currency-field select{width:100%;min-width:0}.kv.pay{flex-direction:column;align-items:stretch}.pay-controls,.kv.pay input{width:100%}.summary-left,.summary-right{width:100%;min-width:0}.add-line{width:100%}.customer-card,.details-card,.form-section{padding:14px}.table-wrapper:has(.responsive){overflow-x:visible}.table-wrapper .responsive thead{display:none}.table-wrapper .responsive,.table-wrapper .responsive tbody,.table-wrapper .responsive tr,.table-wrapper .responsive td{width:auto;display:block}.table-wrapper .responsive tr{border-bottom:1px solid var(--border);padding:10px 14px 8px}.table-wrapper .responsive td{text-align:right;border:none;justify-content:space-between;align-items:center;gap:12px;padding:3px 0;display:flex}.table-wrapper .responsive td:before{content:attr(data-label);text-align:left;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;flex:none;margin-bottom:0;font-size:.72rem;font-weight:600;display:block}.table-wrapper .responsive .cell-value{text-align:right;min-width:0}.table-wrapper .responsive td[colspan]{text-align:center;display:block}.table-wrapper .responsive td[colspan]:before{content:none;display:none}.table-wrapper .responsive td.actions{justify-content:flex-end;padding-top:4px}.table-wrapper .responsive td.actions:before{content:none}.table-wrapper .responsive td.actions .btn-sm{min-height:32px;margin-top:0;padding:8px 12px}.table-wrapper .responsive td:has(input,select,textarea){text-align:left;display:block}.table-wrapper .responsive td:has(input,select,textarea):before{margin-bottom:4px}.invoices .table-wrapper .responsive tr{padding:10px 14px 8px}.invoices .table-wrapper .responsive td{justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;display:flex}.invoices .table-wrapper .responsive td:before{flex:none;margin-bottom:0}.invoices .table-wrapper .responsive td.link{border-bottom:1px solid var(--border);margin-bottom:2px;padding-bottom:6px;font-weight:650}.invoices .table-wrapper .responsive td.actions{justify-content:flex-end;padding-top:6px}.invoices .table-wrapper .responsive td.actions:before{content:none}.invoices .table-wrapper .responsive td.actions .btn-sm{min-height:32px;margin-top:0}.invoices .table-wrapper .responsive td[colspan]{text-align:center;display:block}.customers .table-wrapper .responsive tr{padding:10px 14px 8px}.customers .table-wrapper .responsive td{justify-content:space-between;align-items:center;gap:12px;padding:3px 0;display:flex}.customers .table-wrapper .responsive td:before{flex:none;margin-bottom:0}.customers .table-wrapper .responsive .cell-value{text-align:right;min-width:0}.customers .table-wrapper .responsive td.actions{justify-content:flex-end;padding-top:6px}.customers .table-wrapper .responsive td.actions:before{content:none}.customers .table-wrapper .responsive td.actions .btn-sm{min-height:32px;margin-top:0}.customers .table-wrapper .responsive td[colspan]{text-align:center;display:block}.table-wrapper .responsive td input,.table-wrapper .responsive td select{width:100%;max-width:none}.invoice-items thead{display:none}.invoice-items,.invoice-items tbody,.invoice-items tr,.invoice-items td{width:auto;display:block}.invoice-items tr{border-bottom:1px solid var(--border);margin-bottom:12px;padding:8px 0}.invoice-items td{text-align:left;border:none;padding:6px 0}.invoice-items td:before{content:attr(data-label);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px;font-size:.72rem;font-weight:600;display:block}.invoice-items td:last-child{text-align:left}}@media (min-width:901px) and (max-width:1540px){.page-header,.header-actions{flex-wrap:wrap}.kpi-grid,.count-grid,.meta-row,.customer-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stats-grid,.mid-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.customer-card{grid-template-columns:minmax(0,1fr) minmax(180px,240px)}.footer-row{flex-wrap:wrap}.summary-left,.summary-right{flex:260px;min-width:min(260px,100%)}.lines{min-width:0}.lines th,.lines td{padding:6px 4px}.col-product,.product-cell{min-width:128px}.category-cell,.room-cell{min-width:112px}.category-edit,.room-edit{min-width:104px}.measure-cell{min-width:120px}.lines .measure-pair input{flex-basis:40px;width:40px}.lines .measure-pair input.measure-decimal{flex-basis:64px;width:64px}.measure-price{min-width:72px}.discount-cell{min-width:96px}.lines th:nth-child(4),.lines td:nth-child(4){min-width:88px}.lines th:nth-child(6),.lines td:nth-child(6){min-width:52px}}@media (min-width:901px) and (max-width:1100px){.customer-card{grid-template-columns:1fr}}@page{size:A4;margin:0}@media print{:root{--page-zoom:1}html,body{color:#000;background:#fff;height:auto;min-height:0;margin:0!important;padding:0!important}body{padding:12mm 14mm!important}.app-layout{min-height:0;display:block}.invoice-actions,.sale-header-actions,.sale-sticky-bar,.sale-secondary-actions,.sidebar,.mobile-bar,.nav-backdrop{display:none!important}.sale-snapshot{box-shadow:none;border:none;max-width:none;padding:0}.invoice-items,.invoice-items tbody,.invoice-items tr,.invoice-items td,.lines,.lines tbody,.lines tr,.lines td,.table-wrapper .responsive,.table-wrapper .responsive tbody,.table-wrapper .responsive tr,.table-wrapper .responsive td{display:revert;width:auto}.invoice-items thead,.lines thead,.table-wrapper .responsive thead{display:table-header-group}.invoice-items td:before,.lines td:before,.table-wrapper .responsive td:before{content:none;display:none}.main-content{width:auto;min-height:0;overflow:visible;margin:0!important;padding:0!important}.invoice-detail{max-width:none}.invoice-detail .invoice-document{box-shadow:none;background:#fff;border:none;border-radius:0;width:100%;max-width:none;padding:0}.company-name{color:#111}.invoice-header .company-info p,.invoice-parties p,.invoice-parties h3,.invoice-notes p,.invoice-payment-value{color:#333}.invoice-payment-label{color:#777}.invoice-items th{border-bottom-color:#333}.invoice-items td{border-bottom-color:#ccc}.invoice-totals .total-row.grand{color:#111;border-top-color:#111}}.forms-page .page-header{margin-bottom:16px}.forms-toolbar{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:20px;display:flex}.forms-toolbar .header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.forms-actions{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex}.forms-actions .btn{min-height:44px;padding:10px 18px;font-size:1rem;font-weight:600}.forms-actions .btn:disabled{opacity:.5;cursor:not-allowed}.forms-empty{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 20px}.forms-sheet-wrap{box-shadow:var(--shadow);background:#fff;border:1px solid #8ea4bb;overflow-x:auto}.shop-sheet{border-collapse:collapse;color:#111;table-layout:fixed;background:#fff;width:100%;font-size:.92rem}.shop-sheet+.shop-sheet{margin-top:-1px}.shop-sheet th,.shop-sheet td{text-align:left;text-transform:none;letter-spacing:0;color:#111;vertical-align:middle;background:#fff;border:1px solid #8ea4bb;height:32px;padding:0;font-size:.92rem;font-weight:600}.shop-sheet .banner td{background:#1e4a7a;border-color:#1e4a7a;height:14px;padding:0}.shop-sheet .title td{color:#1e4a7a;text-align:center;background:#dceaf6;height:38px;font-size:1.12rem;font-weight:700}.shop-sheet th.label,.shop-sheet th.inline-label,.shop-sheet tr.section th{color:#111;background:#dceaf6;font-weight:650}.shop-sheet th.label{white-space:nowrap;padding:0 10px}.measure-meta .sheet-label-col{width:168px}.request-sheet .sheet-label-col{width:18%}.shop-sheet th.inline-label{text-align:center;padding:0 8px}.shop-sheet tr.section th{height:30px;padding:0 10px}.shop-sheet tr.cols th{color:#fff;text-align:center;background:#1e4a7a;border-color:#1e4a7a;height:34px;font-weight:700}.measure-grid-scroll{margin-top:-1px}.measure-grid .comments-col{width:40%}.shop-sheet th.total{text-align:right;padding-right:10px}.shop-sheet td.ruled{background-image:linear-gradient(90deg,#0000 calc(20% - .5px),#8ea4bb calc(20% - .5px) calc(20% + .5px),#0000 calc(20% + .5px) calc(40% - .5px),#8ea4bb calc(40% - .5px) calc(40% + .5px),#0000 calc(40% + .5px) calc(60% - .5px),#8ea4bb calc(60% - .5px) calc(60% + .5px),#0000 calc(60% + .5px) calc(80% - .5px),#8ea4bb calc(80% - .5px) calc(80% + .5px),#0000 calc(80% + .5px))}.shop-sheet input{color:#111;width:100%;height:32px;font:inherit;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:4px 8px;font-weight:500;display:block}.shop-sheet input:focus{outline:2px solid var(--primary);outline-offset:-2px}@media screen and (max-width:640px){.forms-page{min-width:0}.forms-toolbar,.forms-toolbar .header-actions,.forms-actions{width:100%}.forms-page .period-filters{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.forms-page .period-filters button{flex:none;width:auto;min-height:40px;padding:8px 6px}.forms-actions .btn{white-space:nowrap;flex:auto;min-height:44px}.request-sheet{table-layout:auto}.request-sheet colgroup{display:none}.request-sheet,.request-sheet tbody,.request-sheet tr{width:100%;display:block}.request-sheet th,.request-sheet td{border:none;border-bottom:1px solid #8ea4bb;width:100%;height:auto;display:block}.request-sheet td.ruled{background-image:none}.request-sheet tr:not(.banner) td:empty,.request-sheet th.label:empty{display:none}.request-sheet th.label,.request-sheet th.inline-label{white-space:normal;text-align:left;border-bottom:none;padding:8px 12px 4px}.request-sheet tr.banner td{border-bottom:none;height:12px;display:block}.request-sheet .title td{height:auto;padding:12px 10px;font-size:1.05rem}.request-sheet tr.section th{padding:10px 12px}.request-sheet input{height:44px;padding:8px 12px;font-size:1rem}}@media print{:is(.calendar-page:has(.job-report) .page-header,.calendar-page:has(.job-report) .calendar-layout,.calendar-page:has(.job-report) .job-report-controls,.calendar-page:has(.job-report) .msg){display:none!important}.calendar-page:has(.job-report) .job-report{box-shadow:none;background:#fff;border:none;margin:0;padding:0}.job-report-table th,.job-report-table td{color:#000;border-bottom:1px solid #ccc}.forms-page .page-header,.forms-toolbar,.forms-empty{display:none!important}.forms-sheet-wrap{box-shadow:none;border:none;overflow:visible}.shop-sheet,.shop-sheet th,.shop-sheet td,.shop-sheet .banner td,.shop-sheet .title td,.shop-sheet th.label,.shop-sheet th.inline-label,.shop-sheet tr.section th,.shop-sheet tr.cols th{-webkit-print-color-adjust:exact;print-color-adjust:exact}.shop-sheet tr,.shop-sheet th,.shop-sheet td{break-inside:avoid}.shop-sheet input{outline:none!important}}
