:root{--bg:#f3f5f7;--surface:#fff;--text:#1f2937;--muted:#6b7280;--border:#e5e7eb;--teal:#0f766e;--teal-dark:#115e59;--teal-soft:#f0fdfa;--blue:#1d4ed8;--blue-soft:#eff6ff;--warning:#b45309;--warning-soft:#fffbeb;--sidebar:268px;--header:64px;--radius:8px;--shadow:0 1px 2px #0f172a0d;--font:"Segoe UI", system-ui, sans-serif;color:var(--text);background:var(--bg);font:15px/1.5 var(--font);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit}h1,h2,p{margin:0}.app-shell{min-height:100vh}.sidebar{z-index:30;width:var(--sidebar);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;transition:transform .2s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar--open{visibility:visible;transform:translate(0)}@media (width<=959px){.sidebar:not(.sidebar--open){visibility:hidden}}.sidebar__brand{min-height:var(--header);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;display:flex}.sidebar__mark{border-radius:var(--radius);background:var(--teal);color:#fff;flex:0 0 36px;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}.sidebar__company{font-size:14px;font-weight:700;line-height:1.2}.sidebar__tagline{color:var(--muted);font-size:12px}.sidebar__close{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:32px;height:32px;color:var(--text);cursor:pointer;place-items:center;margin-left:auto;display:grid}.sidebar__nav{flex-direction:column;flex:1;gap:2px;min-height:0;padding:12px;display:flex;overflow:auto}.sidebar__link{border-radius:var(--radius);color:var(--text);align-items:center;gap:10px;padding:9px 10px;line-height:1.3;text-decoration:none;display:flex}.sidebar__link:hover{background:#f8fafc}.sidebar__link--active{background:var(--teal-soft);color:var(--teal-dark);font-weight:600}.sidebar__link:focus-visible,.icon-button:focus-visible,.topbar__menu:focus-visible,.sidebar__close:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.sidebar-backdrop{z-index:20;cursor:pointer;background:#0f172a59;border:0;position:fixed;inset:0}.app-main{min-width:0;min-height:100vh}.topbar{z-index:10;min-height:var(--header);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar__title{align-items:center;gap:10px;min-width:0;display:flex}.topbar h1{overflow-wrap:anywhere;min-width:0;font-size:18px;font-weight:650;line-height:1.3}.topbar__menu,.icon-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:36px;height:36px;color:var(--text);cursor:pointer;place-items:center;display:grid}.role-switcher{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.role-switcher select{width:auto;max-width:180px}.topbar__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.notices,.icon-button{position:relative}.icon-button__count{background:var(--blue);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 4px;font-size:11px;line-height:18px;position:absolute;top:-6px;right:-6px}.notices__panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(320px,80vw);box-shadow:var(--shadow);padding:12px;position:absolute;top:calc(100% + 8px);right:0}.notices__heading{font-weight:700}.notices__note,.notices__panel span,.cell-sub,.stat-card__detail,.panel__header p,.demo-note,.placeholder p{color:var(--muted);font-size:13px}.notices__panel ul,.activity-list,.stock-list{margin:10px 0 0;padding:0;list-style:none}.notices__panel li{border-top:1px solid var(--border);padding:8px 0}.notices__panel li p{font-weight:600}.notices__item{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.notices__panel a{color:var(--teal-dark);margin-top:8px;font-size:13px;font-weight:700;display:inline-block}.profile{align-items:center;gap:10px;display:flex}.profile__avatar{background:var(--teal-soft);width:36px;height:36px;color:var(--teal-dark);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.profile__text{flex-direction:column;line-height:1.2;display:flex}.profile__text span{color:var(--muted);font-size:12px}.app-content{min-width:0;max-width:100%;padding:20px 16px 32px;overflow-x:clip}.dashboard{flex-direction:column;gap:12px;display:flex}.demo-note{border-radius:var(--radius);background:var(--blue-soft);border:1px solid #bfdbfe;padding:10px 12px}.stat-grid{grid-template-columns:1fr;gap:12px;display:grid}.stat-card,.panel,.placeholder{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card{border-top:3px solid var(--teal);padding:16px}.stat-card--blue{border-top-color:var(--blue)}.stat-card--warning{border-top-color:var(--warning)}.stat-card__label{color:var(--muted);font-size:13px}.stat-card__value{margin:6px 0 4px;font-size:28px;font-weight:700;line-height:1.1}.dashboard-board__main,.dashboard-board__side{align-content:start;gap:12px;min-width:0;display:grid}.panel__header{padding:16px 16px 0}.panel__header h2,.placeholder h2{font-size:16px;font-weight:700}.chart-frame{width:100%;min-width:0;height:280px;padding:8px 8px 12px;overflow:hidden}.report-charts{gap:16px;margin:16px 0;display:grid}.report-block{margin-top:20px}.report-block h2{margin-bottom:8px;font-size:16px}.table-wrap{-webkit-overflow-scrolling:touch;max-width:100%;padding:8px 16px 16px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 8px}th{color:var(--muted);font-size:12px;font-weight:600}.cell-title{font-weight:600;display:block}.status{background:#f3f4f6;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.status--pending{background:var(--warning-soft);color:var(--warning)}.status--confirmed{background:var(--blue-soft);color:var(--blue)}.status--dispatched{background:var(--teal-soft);color:var(--teal-dark)}.activity-list li,.stock-list li{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:12px 16px;display:flex}.stock-list li{justify-content:flex-start;align-items:flex-start}.stock-list svg{color:var(--warning);flex:none;margin-top:3px}.due{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:12px;display:inline-flex}.placeholder{max-width:720px;padding:24px}.placeholder__kicker{color:var(--teal);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:700}.placeholder h2{margin-bottom:8px;font-size:22px}@media (width>=720px){.stat-grid{grid-template-columns:1fr 1fr}.app-content{padding:24px}}@media (width>=960px){.sidebar{transform:none}.sidebar__close,.topbar__menu,.sidebar-backdrop{display:none}.app-main{margin-left:var(--sidebar)}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-board{grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);align-items:start;gap:12px;display:grid}}@media (width<=959px){.dashboard-board,.dashboard-board__main,.dashboard-board__side{display:contents}.dashboard-chart{order:3}.dashboard-activities{order:4}.dashboard-orders{order:5}.dashboard-stock{order:6}.sidebar{width:min(var(--sidebar), 88vw)}.app-shell--menu-open{height:100vh;overflow:hidden}.topbar__menu,.icon-button,.sidebar__close{width:44px;height:44px}.sidebar__link,.field input,.field select,.field textarea,.filter-bar>input,.filter-bar>select,.btn:not(.btn--small){min-height:44px}.btn--small{min-height:40px}.notices__panel{z-index:15;width:auto;max-height:min(420px,100vh - 132px);position:fixed;top:116px;left:8px;right:8px;overflow:auto}}@media (width<=640px){.profile__text{display:none}.due{white-space:normal}.topbar__actions{flex:100%}.role-switcher{flex:1;min-width:0}.role-switcher select{flex:1;width:100%;max-width:none}}.page-intro{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.page-intro__actions{flex-wrap:wrap;gap:8px;display:flex}.page-intro h1,.page-intro h2{margin-bottom:4px;font-size:20px;font-weight:700}.page-intro p,.empty-state{color:var(--muted);font-size:14px}.customers-page__summary{max-width:280px;margin-bottom:12px}.form-success{border-radius:var(--radius);background:var(--teal-soft);color:var(--teal-dark);border:1px solid #99f6e4;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 12px;display:flex}.filter-bar{grid-template-columns:1fr;gap:12px;padding:16px;display:grid}.filter-bar>input,.filter-bar>select,.role-switcher select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-width:0;color:var(--text);padding:8px 10px}.filter-bar>input:focus-visible,.filter-bar>select:focus-visible,.role-switcher select:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.field{color:var(--text);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:8px 10px;font-weight:400}.field textarea{resize:vertical}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.field__error{color:#b91c1c;font-size:12px;font-weight:600}.customers-table{min-width:980px}.table-actions{flex-wrap:wrap;gap:6px;display:flex}.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 12px}.btn--small{padding:4px 8px;font-size:13px}.btn--primary{border-color:var(--teal);background:var(--teal);color:#fff}.btn--danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.btn:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.empty-state{margin:0;padding:8px 16px 20px}.status--active{background:var(--teal-soft);color:var(--teal-dark)}.status--inactive{color:var(--muted);background:#f3f4f6}.modal{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(640px,100% - 32px);color:var(--text);box-shadow:var(--shadow);padding:0}.modal--confirm{width:min(440px,100% - 32px)}.modal::backdrop{background:#0f172a59}.modal__form{padding:20px}.modal__header h2{font-size:18px}.modal__header p{color:var(--muted);margin-top:4px;font-size:13px}.form-grid,.detail-list{grid-template-columns:1fr;gap:12px;margin-top:16px;display:grid}.detail-list dt{color:var(--muted);font-size:12px;font-weight:600}.detail-list dd{margin:2px 0 0}.modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}@media (width>=720px){.filter-bar{grid-template-columns:minmax(220px,1.4fr) 1fr 1fr;align-items:end}.form-grid,.detail-list{grid-template-columns:1fr 1fr}.field--wide{grid-column:1/-1}}.modal--wide{width:min(920px,100% - 32px)}.modal{max-width:calc(100vw - 16px);max-height:calc(100vh - 32px);overflow:auto}.modal__body{max-width:100%;padding:20px}.status--new,.status--sent{background:var(--blue-soft);color:var(--blue)}.status--in-progress,.status--draft{background:var(--warning-soft);color:var(--warning)}.status--quotation-prepared,.status--active{background:var(--teal-soft);color:var(--teal-dark)}.status--closed{color:var(--muted);background:#f3f4f6}.status--rejected{color:#b91c1c;background:#fef2f2}.line-section{margin-top:16px}.line-section h3{margin:0;font-size:15px;font-weight:700}.line-editor{border-top:1px solid var(--border);gap:8px;padding:12px 0;display:grid}.grand-total{margin-top:8px;font-weight:700}.terms-copy,.blocked-note{color:var(--muted);margin-top:8px;font-size:13px}.blocked-note{border-radius:var(--radius);color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;padding:10px 12px}.quotation-lines{min-width:520px}@media (width>=800px){.line-editor{grid-template-columns:minmax(160px,1.5fr) .7fr .8fr .7fr .9fr;align-items:start}.line-editor--order{grid-template-columns:minmax(180px,1.6fr) .6fr .7fr auto}}.stat-card>strong{margin:6px 0 4px;font-size:28px;line-height:1.1;display:block}.stat-card>span{color:var(--muted);font-size:13px}.settings-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:16px;display:grid}.settings-menu{flex-direction:column;gap:8px;display:flex}.settings-menu .btn{text-align:left;justify-content:flex-start;width:100%;display:flex}.settings-menu .btn[aria-current=page]{border-color:var(--teal);background:var(--teal);color:#fff}@media (width<=800px){.settings-layout{grid-template-columns:1fr}.settings-menu{flex-flow:wrap}.settings-menu .btn{width:auto}}.tab-bar{flex-wrap:wrap;gap:8px;display:flex}.tab-bar .btn[aria-selected=true]{border-color:var(--teal);background:var(--teal);color:#fff}.form-alert,.form-warning{border-radius:var(--radius);margin-top:12px;padding:10px 12px;font-size:13px}.form-alert{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.form-warning{background:var(--warning-soft);color:var(--warning);border:1px solid #fde68a}.check-field{flex-direction:row;align-items:center;gap:8px}.check-field input{width:auto}.check-list{gap:8px;margin-top:8px;display:grid}.check-list label{align-items:center;gap:8px;font-weight:500;display:flex}.panel__header--split,.line-section__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cell-sub--block{display:block}.timeline-title{margin:16px 0 8px;font-size:15px}.timeline{gap:10px;margin:0;padding-left:18px;display:grid}.shortage-list{margin:8px 0 0;padding-left:18px}.panel-note{padding:0 16px 16px}.team-grid,.team-board{gap:12px;padding:16px;display:grid}.team-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px}.team-board__list{margin:0;padding:0 16px 16px;list-style:none}.team-board__list li,.team-members li{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:10px 0;display:flex}.team-members{margin:8px 0 0;padding:0;list-style:none}.status--draft,.status--not-issued,.status--not-synced,.status--scheduled,.status--decommissioned,.status--inactive,.status--not-required,.status--not-scheduled,.status--read,.status--discontinued,.status--pending,.status--not-checked,.status--normal,.status--low,.status--in-stock{color:var(--muted);background:#f3f4f6}.status--confirmed,.status--assigned,.status--rescheduled,.status--available,.status--due-soon,.status--handed-over,.status--replaced,.status--issued,.status--partially-paid,.status--medium,.status--under-review,.status--contacted,.status--quotation-prepared{background:var(--blue-soft);color:var(--blue)}.status--ready-for-fulfilment,.status--completed,.status--delivered,.status--acknowledged,.status--approved,.status--converted,.status--won,.status--paid,.status--synced,.status--resolved,.status--verified{background:var(--teal-soft);color:var(--teal-dark)}.status--awaiting-stock,.status--due-today,.status--paused,.status--short,.status--low-stock,.status--high,.status--unassigned,.status--out-for-delivery,.status--partially-delivered,.status--collected,.status--handover-pending,.status--pending-verification,.status--partially-acknowledged,.status--unread,.status--invitation-pending,.status--unpaid,.status--new,.status--awaiting-approval,.status--awaiting-clarification,.status--follow-up-required,.status--on-hold,.status--under-maintenance,.status--upcoming,.status--waiting-for-parts{background:var(--warning-soft);color:var(--warning)}.signature-pad{border:1px solid var(--border);border-radius:var(--radius);touch-action:none;cursor:crosshair;background:#fff;width:100%;height:160px}.signature-preview{border:1px solid var(--border);border-radius:var(--radius);background:#fff;max-width:280px}.row--overdue td{background:#fff7ed}.status--critical,.status--overdue,.status--cancelled,.status--missed,.status--out-of-stock,.status--faulty,.status--urgent,.status--failed,.status--unable-to-complete,.status--disputed,.status--rejected,.status--lost,.status--failed{color:#b91c1c;background:#fef2f2}@media (width>=960px){.filter-bar--wide,.filter-bar--report{grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(140px,1fr))}.report-charts{grid-template-columns:1fr 1fr}}@media (width>=1100px){.team-grid,.team-board{grid-template-columns:1fr 1fr}.stat-grid--five{grid-template-columns:repeat(5,minmax(0,1fr))}}@media print{.sidebar,.topbar,.no-print,dialog:not(.invoice-print):not(.delivery-print):not(.receipt-print):not(.quotation-print){display:none!important}dialog.invoice-print,dialog.delivery-print,dialog.receipt-print,dialog.quotation-print{width:auto;max-width:none;max-height:none;box-shadow:none;border:0;position:static;overflow:visible}.app-main{margin:0!important}}
