: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{zoom:var(--page-zoom);font-size:clamp(14px,.85vw + 2px,16px)}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-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)}.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}.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}.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}.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}.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}.notes-field textarea{resize:vertical;min-height:180px}.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{min-width:120px;font-size:.88rem}.category-edit{flex-direction:column;gap:4px;min-width:116px;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}.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}.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}.kv.pay input{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:right;width:110px;padding:6px 8px}.pay-controls{align-items:center;gap:8px;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-actions{justify-content:center;gap:12px;padding-bottom:16px;display:flex}.sale-actions .btn{text-align:center;border-radius:999px;min-width:150px;padding:10px 18px;text-decoration: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}@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-actions{flex-direction:column}.sale-actions .btn{width:100%}}.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%}.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}.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);display:inline-flex;overflow:hidden}.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}.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(3,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{max-width:800px}.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 .btn{margin-right:8px}.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-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-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 .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,.discount-cell,.vat-cell{min-width:0}.discount-cell,.category-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,.invoice-actions>div{flex-wrap:wrap}.page-header>.btn,.header-actions>.btn,.invoice-actions .btn,.form-actions .btn{width:100%}.invoice-actions>div{flex-direction:column;gap:8px;display:flex}.invoice-actions .btn{margin-right:0}.dashboard .header-actions{width:100%}.period-filters{width:100%;display:flex;overflow:visible}.period-filters button{flex:1 1 0}.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%}.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{min-width:112px}.category-edit{min-width:104px}.measure-cell{min-width:120px}.lines .measure-pair input{flex-basis:40px;width:40px}.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{html,body{color:#000;background:#fff;height:auto;min-height:0;zoom:1!important;margin:0!important;padding:0!important}body{padding:12mm 14mm!important}.app-layout{min-height:0;display:block}.invoice-actions,.sidebar,.mobile-bar,.nav-backdrop{display:none!important}.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%;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}}
