@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#202a23;background:#f5f6f2;font-synthesis:none;--ink: #17231b;--muted: #6e786f;--line: #dfe3dc;--paper: #fff;--green: #296144;--green-dark: #193e2b;--mint: #ddefd7;--orange: #e98d45;--danger: #b84343;--shadow: 0 12px 32px rgba(28, 44, 33, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand strong{font-family:Manrope,sans-serif}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh;transition:.2s}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--ink);color:#dce5de;padding:22px 14px;display:flex;flex-direction:column;z-index:20;transition:.2s;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 24px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--mint);color:var(--green-dark);font-family:Manrope;font-weight:800;font-size:21px}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:17px;color:#fff}.brand-copy span{color:#91a397;font-size:11px}.nav-section{margin-bottom:18px}.nav-label{display:block;padding:0 12px 7px;color:#718176;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:700}.nav-link{border:0;width:100%;color:#b7c2ba;background:transparent;border-radius:9px;min-height:42px;display:flex;align-items:center;gap:12px;padding:0 12px;font-size:13px;text-align:left;margin:2px 0}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{color:var(--ink);background:var(--mint);font-weight:700}.sidebar-bottom{margin-top:auto;border-top:1px solid #2d3b32;padding-top:12px}main{grid-column:2;min-width:0}.topbar{height:68px;padding:0 30px;background:#ffffffe6;border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-path{text-transform:capitalize;color:var(--muted);font-size:13px;margin-left:12px}.shop-switcher{width:auto;max-width:220px;margin-left:auto}.profile{margin-left:auto;display:flex;align-items:center;gap:10px}.shop-switcher+.profile{margin-left:14px}.profile>div:nth-child(2){display:flex;flex-direction:column}.profile strong{font-size:12px}.profile span{font-size:10px;color:var(--muted);text-transform:capitalize}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--green-dark);font-size:11px;font-weight:800}.page{padding:30px;max-width:1500px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px}.page-header h1{margin-bottom:4px;font-size:clamp(24px,3vw,32px);letter-spacing:-.04em}.page-header p{color:var(--muted);margin-bottom:0;font-size:14px}.btn{border:0;border-radius:9px;padding:10px 15px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;font-size:13px}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-secondary{background:#e7eae5;color:var(--ink)}.btn-danger{background:#f8e1e1;color:var(--danger)}.btn-ghost{background:transparent;color:var(--green);border:1px solid var(--line)}.icon-btn{border:0;background:transparent;color:var(--muted);padding:7px;display:grid;place-items:center;border-radius:8px}.icon-btn:hover{background:#edf0eb;color:var(--ink)}.user-actions,.table-actions{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap}.unlock-action{border:1px solid #b8d3bc;background:#edf6ee;color:var(--green);border-radius:8px;padding:6px 9px;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700}.unlock-action:hover{background:#dfeee1}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 4px #141e1705}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}.stat-card{padding:20px;position:relative;overflow:hidden}.stat-card .stat-icon{width:38px;height:38px;display:grid;place-items:center;background:#edf3eb;color:var(--green);border-radius:10px;margin-bottom:18px}.stat-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.stat-heading .stat-icon{flex:0 0 auto;margin-bottom:0}.stat-label{color:var(--muted);font-size:12px;font-weight:600}.stat-value{display:block;font-family:Manrope;font-size:25px;font-weight:800;margin-top:4px;letter-spacing:-.04em}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.section-card{padding:20px;min-height:300px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-title h2{font-size:16px;margin:0}.report-chart-title{margin-bottom:10px}.report-chart-title p,.chart-explanation{color:var(--muted);font-size:12px;line-height:1.55;margin:5px 0 0}.chart-guide{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 10px;color:var(--muted);font-size:12px;font-weight:600}.chart-guide span{display:inline-flex;align-items:center;gap:7px}.chart-key{width:12px;height:12px;border-radius:3px;display:inline-block}.chart-key-sales{background:#84ad85}.chart-key-profit{background:#296144}.chart-explanation{border-top:1px solid var(--line);padding-top:12px;margin-top:6px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-action{border:1px solid var(--line);background:#fafbf8;border-radius:11px;padding:18px;text-align:left;display:flex;flex-direction:column;gap:10px}.quick-action svg{color:var(--green)}.quick-action strong{font-size:13px}.quick-action span{color:var(--muted);font-size:11px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:15px}.search{position:relative;flex:1;max-width:400px}.search svg{position:absolute;left:12px;top:11px;color:#899289}.search input{padding-left:38px}input,select,textarea{width:100%;border:1px solid #d8ddd6;border-radius:8px;padding:10px 11px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#629174;box-shadow:0 0 0 3px #3f7c551a}input:disabled,select:disabled,textarea:disabled{background:#ecefe9;color:#8a928b;cursor:not-allowed}input:read-only{background:#f0f3ed;color:#405047}textarea{resize:vertical;min-height:85px}.searchable-select{position:relative;width:100%}.searchable-select-trigger{width:100%;min-height:41px;border:1px solid #d8ddd6;border-radius:8px;padding:10px 10px 10px 11px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left}.searchable-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select-trigger .placeholder{color:#8a928b}.searchable-select.open .searchable-select-trigger{border-color:#629174;box-shadow:0 0 0 3px #3f7c551a}.searchable-select.disabled .searchable-select-trigger{background:#ecefe9;color:#8a928b;cursor:not-allowed}.searchable-select-menu{position:absolute;z-index:120;inset:calc(100% + 5px) 0 auto 0;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:7px}.searchable-select-search{position:relative}.searchable-select-search svg{position:absolute;left:10px;top:10px;color:#899289}.searchable-select-search input{padding-left:32px;min-height:36px}.searchable-select-options{max-height:220px;overflow-y:auto;padding-top:6px}.searchable-select-options button{width:100%;border:0;border-radius:7px;background:transparent;padding:9px 8px;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-size:13px}.searchable-select-options button:hover,.searchable-select-options button.selected{background:#edf3eb}.searchable-select-options button span{min-width:0;overflow-wrap:anywhere}.searchable-select-options button svg{flex:0 0 auto;color:var(--green)}.searchable-select-empty{color:var(--muted);font-size:12px;padding:12px 8px;text-align:center}.shop-switcher{max-width:220px;margin-left:auto}.shop-switcher .searchable-select-trigger{min-height:34px;padding:7px 9px;font-size:12px}.shop-switcher .searchable-select-menu{width:min(280px,70vw);left:auto}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{color:#788078;background:#f8f9f6;text-align:left;text-transform:uppercase;letter-spacing:.05em;font-size:10px;padding:11px 14px;white-space:nowrap}td{padding:14px;border-top:1px solid #e8ebe6;vertical-align:middle}td:last-child{white-space:nowrap}tbody tr:hover{background:#fbfcfa}.pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.pagination-controls{display:flex;align-items:center;gap:10px}.pagination-controls strong{color:var(--ink);font-size:11px}.pagination-controls button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:7px;padding:6px 9px;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700}.pagination-controls button:disabled{opacity:.45;cursor:not-allowed}.cell-title{display:block;font-weight:700}.cell-sub{display:block;color:var(--muted);font-size:11px;margin-top:2px}.badge{display:inline-flex;border-radius:99px;padding:4px 8px;font-size:10px;font-weight:800;text-transform:capitalize}.badge-success{background:#dff1e2;color:#276139}.badge-warning{background:#fff0d8;color:#8d571b}.badge-danger{background:#f8dede;color:#a33b3b}.badge-neutral{background:#e9ece8;color:#5b645c}.empty{text-align:center;color:var(--muted);padding:60px 20px}.empty-mark{font-size:40px;color:#a9b5ab}.empty h3{color:var(--ink);font-size:16px;margin:8px 0 4px}.empty p{font-size:12px}.loading{display:flex;gap:8px;align-items:center;justify-content:center;min-height:220px;color:var(--muted)}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#0c140f94;display:grid;place-items:center;padding:20px}.modal{width:min(560px,100%);max-height:90vh;overflow-y:auto;background:#fff;border-radius:15px;box-shadow:var(--shadow)}.modal-wide{width:min(960px,100%)}.modal>header{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid var(--line)}.modal>header h2{margin:0;font-size:18px}.modal-form{padding:22px}.settings-form{display:grid;gap:16px;max-width:520px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:11px;font-weight:700;color:#5b645c}.field small{color:var(--danger)}.field-full{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:20px;margin-top:20px;border-top:1px solid var(--line)}.alert{border-radius:8px;padding:10px 12px;font-size:12px;margin-bottom:14px}.alert-error{background:#fbe6e6;color:#8e3232}.alert-success{background:#e2f3e6;color:#28613a}.line-items{grid-column:1/-1;display:flex;flex-direction:column;gap:10px}.line-item{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1.1fr) minmax(130px,.9fr) minmax(130px,.9fr) 36px;gap:8px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafbf9}.line-item>.field{min-width:0}.line-item .searchable-select-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-item .searchable-select-menu{min-width:min(340px,80vw)}.field-hint{color:var(--muted)!important}.estimate-summary{margin-right:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:var(--muted)}.estimate-summary strong{color:var(--ink)}.estimate-summary small{color:var(--danger);flex-basis:100%}.import-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.import-preview{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fafbf9}.import-errors{color:var(--danger);font-size:12px;line-height:1.4}.report-tabs{display:flex;gap:5px;overflow-x:auto;margin-bottom:18px}.report-tab{border:0;background:#e8ebe7;color:#59635b;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap}.report-tab.active{background:var(--ink);color:#fff}.filter-bar{display:flex;gap:10px;align-items:end;padding:15px;margin-bottom:15px}.filter-bar .field{max-width:180px}.filter-bar .field:has(.search){max-width:360px;flex:1}.report-actions{display:flex;gap:8px}.report-detail{padding:22px;display:grid;gap:18px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.detail-item{border:1px solid var(--line);border-radius:8px;background:#fafbf9;padding:11px 12px;min-width:0}.detail-item-wide{grid-column:1/-1}.detail-item span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.detail-item strong{display:block;font-size:13px;overflow-wrap:anywhere;text-transform:capitalize}.detail-totals{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:13px}.detail-totals strong{color:var(--ink);margin-left:4px}.receipt-print-area{width:80mm;max-width:100%;margin:0 auto;padding:20px 16px;color:#000;background:#fff;font-family:Courier New,monospace}.receipt-brand{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:12px;line-height:1.35}.receipt-brand strong{font-family:Courier New,monospace;font-size:18px;text-transform:uppercase}.receipt-brand span{color:#000;font-size:10px}.receipt-brand b{margin-top:8px;padding-block:5px;border-block:1px dashed #000;width:100%;font-size:12px;letter-spacing:.08em}.receipt-meta{display:flex;flex-direction:column;gap:4px;padding-bottom:10px;border-bottom:1px dashed #000;margin-bottom:8px}.receipt-meta div{display:flex;justify-content:space-between;gap:8px;font-size:10px}.receipt-meta strong{text-transform:capitalize;text-align:right;overflow-wrap:anywhere}.receipt-table{font-family:Courier New,monospace;font-size:10px}.receipt-table th{color:#000;background:transparent;border-bottom:1px dashed #000;font-size:9px;padding:5px 2px}.receipt-table th:last-child{text-align:right}.receipt-table th,.receipt-table td{padding:7px 2px}.receipt-table th:first-child,.receipt-table td:first-child{padding-left:0}.receipt-table th:last-child,.receipt-table td:last-child{padding-right:0;text-align:right}.receipt-table td{border-top:0;vertical-align:top}.receipt-table small{display:block;color:#000;font-size:9px;margin-top:2px;white-space:nowrap}.receipt-summary{border-top:1px dashed #000;padding-top:7px;margin-top:4px}.receipt-summary>div{display:flex;justify-content:space-between;gap:10px;font-size:10px;padding:2px 0;text-transform:capitalize}.receipt-summary .receipt-total{border-block:2px solid #000;padding:6px 0;margin:5px 0;font-size:14px}.receipt-total strong{font-size:15px}.receipt-notes{font-size:9px;color:#000;margin-top:12px;border-top:1px dashed #000;padding-top:7px}.receipt-footer{text-align:center;border-top:1px dashed #000;padding-top:10px;margin-top:14px;display:flex;flex-direction:column;align-items:center;gap:5px}.receipt-footer p{font-weight:700;font-size:10px;margin:0}.receipt-footer span{color:#000;font-size:8px}.receipt-footer b{font-size:9px;margin-top:4px}.receipt-actions{padding:0 22px 22px;display:flex;justify-content:flex-end;gap:8px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:var(--ink)}.login-art{color:#fff;padding:8vw;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:480px;height:480px;border:100px solid rgba(204,232,198,.08);border-radius:50%;right:-150px;bottom:-200px}.login-art h1{font-size:clamp(42px,6vw,76px);line-height:1;max-width:650px;letter-spacing:-.06em;margin:35px 0 24px}.login-art p{color:#aebcb2;max-width:520px;line-height:1.7}.login-panel{background:#f5f6f2;display:grid;place-items:center;padding:30px}.login-card{width:min(400px,100%)}.login-card h2{font-size:28px;margin-bottom:8px}.login-card>p{color:var(--muted);margin-bottom:30px}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card .btn{margin-top:8px;min-height:45px}.mobile-menu,.mobile-close{display:none}.collapsed{grid-template-columns:76px 1fr}.collapsed .sidebar{width:76px}.collapsed .brand-copy,.collapsed .nav-label,.collapsed .nav-link span{display:none}.collapsed .nav-link{justify-content:center}.collapsed .brand{padding-inline:5px}.collapsed .collapse-button{transform:rotate(180deg)}@media(max-width:900px){.app-shell,.collapsed{display:block}main{width:100%}.sidebar,.collapsed .sidebar{width:250px;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-open .brand-copy,.sidebar-open .nav-label,.sidebar-open .nav-link span{display:flex}.sidebar-open .nav-link{justify-content:flex-start}.sidebar-scrim{position:fixed;inset:0;z-index:15;background:#0006}.mobile-menu,.mobile-close{display:grid}.mobile-close{margin-left:auto;border:0;background:transparent;color:#fff}.collapse-button{display:none}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.line-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.line-item .field:first-child{grid-column:1/-1}}@media(max-width:600px){.page{padding:20px 14px}.topbar{padding:0 14px}.profile>div:nth-child(2),.profile>svg,.topbar-path{display:none}.page-header{align-items:flex-start;flex-direction:column}.stat-grid,.form-grid,.line-item{grid-template-columns:1fr}.line-item .field:first-child{grid-column:auto}.estimate-summary{width:100%}.filter-bar{flex-wrap:wrap}.detail-grid{grid-template-columns:1fr}.report-actions{width:100%}.report-actions .btn{flex:1}.pagination{align-items:flex-start;flex-direction:column}.pagination-controls{width:100%;justify-content:space-between}.login-page{grid-template-columns:1fr;background:#f5f6f2}.login-art{display:none}.login-panel{min-height:100vh}}@media print{@page receipt{size:80mm auto;margin:3mm}@page report{size:A4 portrait;margin:12mm}body{background:#fff}body *{visibility:hidden!important}.receipt-print-area,.receipt-print-area *,.report-print-area,.report-print-area *{visibility:visible!important}.receipt-print-area{page:receipt;position:absolute;inset:0;width:80mm;margin:0 auto;padding:0}.report-print-area{page:report;position:absolute;inset:0;width:100%}.report-print-area .report-tabs,.report-print-area .filter-bar,.report-print-area .report-actions,.receipt-actions{display:none!important}.report-print-area .page-header{margin-bottom:16px}.report-print-area .card{box-shadow:none;break-inside:avoid}.report-print-area table{font-size:10px}.report-print-area th,.report-print-area td{padding:7px}}
