.server-login{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f6f8}.server-login form{width:min(420px,100%);padding:28px;display:grid;gap:16px}.server-login h1{margin:0}.server-banner{position:fixed;top:0;inset-inline:0;z-index:40;min-height:58px;padding:8px 18px;background:#172b47;color:#fff;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.server-banner button{background:#fff;color:#172b47;border:0;border-radius:7px;padding:7px 10px}.server-banner span{margin-inline-end:auto}.server-mode .app-shell{padding-top:62px}.server-mode .sidebar{top:62px}.server-users{display:grid;gap:8px;margin:12px 0}.server-users .panel{padding:10px}.server-users button{margin:6px;padding:6px}.server-mode .modal-body{display:grid;gap:12px}@media(max-width:650px){.server-banner{font-size:11px;gap:6px}.server-mode .app-shell{padding-top:92px}.server-mode .sidebar{top:92px}}:root{font-family:Heebo,Arial,sans-serif;color:#17212f;background:#f5f6f8;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;--ink:#17212f;--muted:#7c8797;--line:#eaedf1;--surface:#fff;--blue:#3977e8;--blue-soft:#eaf1ff;--green:#16a67a;--amber:#dd9419;--rose:#df5b69;--purple:#8a69d4}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8db1ff;outline-offset:2px}button:focus:not(:focus-visible){outline:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:#fff;border-left:1px solid var(--line);padding:24px 18px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 38px}.brand-mark{height:42px;width:42px;border-radius:14px;background:#e9f0ff;color:#3777e8;display:grid;place-items:center}.brand-mark .icon{width:23px;height:23px}.brand strong{display:block;font-size:16px;font-weight:800}.brand small{display:block;color:#9aa4b2;font-size:11px;margin-top:1px}.nav-label{font-size:10px;letter-spacing:.07em;color:#a0a8b4;font-weight:700;padding:0 12px 11px}.sidebar nav{display:grid;gap:5px}.nav-item{height:45px;border:0;background:transparent;color:#697587;border-radius:10px;display:flex;align-items:center;gap:12px;padding:0 12px;text-align:right;font-size:13px;font-weight:500}.nav-item .icon{width:19px;height:19px}.nav-item:hover{background:#f7f8fa;color:#243247}.nav-item.active{background:#edf3ff;color:#3475e5;font-weight:700}.nav-count{margin-inline-start:auto;background:#fff;color:#3977e8;border-radius:20px;font-size:11px;padding:2px 8px}.sidebar-foot{margin-top:auto;padding:16px 8px 0;border-top:1px solid #f1f2f5}.local-chip{display:flex;align-items:center;gap:8px;color:#82909f;font-size:11px}.local-dot{width:7px;height:7px;border-radius:50%;background:#28b987;box-shadow:0 0 0 3px #e7f8f2}.version{display:block;color:#b0b6c0;font-size:10px;padding-top:14px}.main-area{margin-left:252px;min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px}.breadcrumb{display:flex;align-items:center;gap:9px;color:#9aa3af;font-size:12px}.breadcrumb .icon{height:12px;width:12px}.breadcrumb strong{color:#374255;font-weight:600}.topbar-actions{display:flex;align-items:center;gap:20px}.today{font-size:11px;color:#9aa3af}.avatar{border:0;width:34px;height:34px;border-radius:50%;background:#f8ead8;color:#b7803e;font-weight:700}.page-content{max-width:1450px;margin:0 auto;padding:32px 38px 55px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:20px}.page-header h1{font-size:24px;letter-spacing:-.035em;margin:0;font-weight:750}.page-header p{color:#8893a2;font-size:13px;margin:5px 0 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 15px;border-radius:9px;border:1px solid transparent;font-size:12px;font-weight:650;white-space:nowrap;transition:.15s}.button .icon{width:16px;height:16px}.button.primary{color:#fff;background:#3977e8;box-shadow:0 3px 8px #3977e822}.button.primary:hover{background:#2767d5}.button.secondary{background:#fff;color:#566274;border-color:#e4e8ee}.button.secondary:hover{background:#f8fafc}.button.danger{background:#fff3f3;color:#c94653}.button.ghost{background:transparent;color:#647084}.icon{width:18px;height:18px;flex:0 0 auto}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#8590a0}.icon-button .icon{width:17px;height:17px}.icon-button:hover{background:#f3f5f8;color:#334155}.icon-button.danger-icon:hover{background:#fff0f1;color:#d54f5d}.danger-text{color:#d54f5d!important}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{position:relative;min-height:145px;padding:17px 18px 14px;text-align:right;border:1px solid var(--line);background:#fff;border-radius:13px;display:flex;flex-direction:column;align-items:flex-start;color:var(--ink);transition:transform .15s,box-shadow .15s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 9px 22px #2430470b}.stat-icon,.settings-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;margin-bottom:12px}.stat-icon .icon{width:17px;height:17px}.blue{background:#edf3ff;color:#3f7be5}.amber{background:#fff6e8;color:#d89624}.rose{background:#fff0f1;color:#da6070}.purple{background:#f3efff;color:#8869d1}.green{background:#eaf8f2;color:#1ca579}.stat-title{color:#7e8998;font-size:11px}.stat-value{font-size:25px;line-height:1.1;margin:4px 0 8px;font-weight:750;letter-spacing:-.04em}.stat-detail{color:#a0a9b5;font-size:10px;display:flex;align-items:center;gap:2px}.stat-detail .icon{height:12px;width:12px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px}.recent-panel,.quick-panel{padding:20px 21px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel-heading h2,.shopping-section-heading h2{font-size:14px;margin:0;font-weight:700}.panel-heading p{font-size:11px;color:#9aa3af;margin:4px 0 0}.text-action{border:0;background:transparent;color:#3977e8;font-size:11px;font-weight:650;display:inline-flex;align-items:center;gap:3px}.text-action .icon{width:14px;height:14px}.recent-list{margin-top:17px}.recent-row{min-height:61px;display:flex;align-items:center;gap:12px;border-top:1px solid #f1f3f6}.recent-row:first-child{border-top:0}.product-thumb{height:39px;width:39px;border-radius:10px;background:#f5f7fa;color:#a0abba;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.product-thumb .icon{width:19px;height:19px}.product-thumb img,.image-picker img{height:100%;width:100%;object-fit:cover}.recent-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.recent-info strong,.product-title strong{font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-info span{font-size:10px;color:#9ba5b1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-info i{display:inline-block;width:3px;height:3px;vertical-align:middle;border-radius:50%;background:#bbc2cb;margin:0 4px}.quantity-label{font-size:12px;font-weight:650;color:#526075;white-space:nowrap}.badge{font-size:9px;font-weight:650;white-space:nowrap;padding:5px 8px;border-radius:20px}.stock-healthy,.expiry-valid,.expiry-none{color:#23966f;background:#ecf8f2}.stock-low,.expiry-soon{color:#bb8017;background:#fff6e5}.stock-out,.expiry-expired{color:#cb4b57;background:#fff0f0}.quick-actions{margin-top:13px}.quick-actions>button{width:100%;display:flex;align-items:center;gap:11px;padding:12px 0;border:0;border-top:1px solid #f1f3f6;background:transparent;text-align:right}.quick-actions>button:first-child{border-top:0}.quick-actions>button>span:nth-child(2){flex:1;display:grid;gap:3px}.quick-actions strong{font-size:11px;font-weight:650;color:#475366}.quick-actions small{font-size:10px;color:#a0a9b5}.quick-actions>button>.icon{width:14px;height:14px;color:#a5aebb}.quick-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px}.quick-icon .icon{width:16px;height:16px}.empty-state{min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:9px;padding:24px}.empty-mark{width:48px;height:48px;border-radius:15px;background:#f4f6f9;color:#9aa7b7;display:grid;place-items:center;margin-bottom:4px}.empty-mark .icon{width:22px;height:22px}.empty-state strong{font-size:13px}.empty-state>span{font-size:11px;color:#98a2b0;max-width:330px;line-height:1.7}.empty-state .button{margin-top:5px}.products-panel{overflow:hidden}.filter-toolbar{padding:17px 18px 13px;display:grid;gap:13px}.search-field{height:40px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid #e8ebf0;border-radius:9px;color:#9ba5b2}.search-field:focus-within{outline:3px solid #8db1ff;outline-offset:2px;border-color:#8db1ff}.search-field>.icon{width:17px;height:17px}.search-field input{border:0;outline:0;min-width:0;flex:1;font-size:11px;color:#354154;background:transparent}.search-field input::placeholder{color:#a4adba}.search-field button{border:0;background:transparent;color:#9ba5b2;display:grid;place-items:center}.search-field button .icon{width:15px;height:15px}.search-field kbd{font-family:inherit;font-size:9px;background:#f5f6f8;border:1px solid #e9ebef;border-radius:4px;padding:2px 5px;color:#929ba8;direction:ltr}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select,.field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23929cac' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat left 10px center;padding:0 10px 0 30px}.filters select{height:32px;border:1px solid #e8ebf0;border-radius:7px;color:#687487;font-size:10px;max-width:190px}.result-count{padding:0 19px 12px;color:#a1aab6;font-size:10px}.product-table-head,.product-row{display:grid;grid-template-columns:minmax(165px,1.55fr) minmax(90px,.8fr) minmax(95px,.85fr) minmax(78px,.65fr) minmax(90px,.8fr) minmax(90px,.8fr) 136px;align-items:center;gap:10px;padding:0 17px}.product-table-head{height:37px;background:#fafbfc;color:#9ba4b1;font-size:9px;font-weight:650;border-top:1px solid #f1f3f6;border-bottom:1px solid #f1f3f6}.product-row{min-height:67px;border-bottom:1px solid #f0f2f5}.product-row:last-child{border-bottom:0}.product-cell{display:flex;align-items:center;gap:10px;min-width:0}.product-title{display:grid;gap:3px;min-width:0}.product-title small{font-size:10px;color:#9ca5b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-muted{font-size:10px;color:#798596;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quantity-label small{font-size:9px;font-weight:400;color:#8b96a5}.expiry-cell{display:grid;gap:3px;justify-items:start}.expiry-cell small{font-size:9px;color:#9da6b3}.row-actions{display:flex;align-items:center;justify-content:flex-start;gap:1px}.row-actions .icon-button{width:29px;height:29px}.row-actions .icon{height:15px;width:15px}.quick-quantity{height:28px;width:28px;border:0;border-radius:8px;color:#3977e8;background:#edf3ff;display:grid;place-items:center}.quick-quantity .icon{width:15px;height:15px}.header-actions{display:flex;gap:8px}.shopping-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.8fr);gap:16px;align-items:start}.shopping-panel,.shopping-summary{padding:20px}.shopping-section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.shopping-section-heading>svg{color:#9da7b4}.shopping-section-heading>div{display:flex;align-items:center;gap:9px}.shopping-section-heading span{border-radius:15px;background:#f4f6f8;color:#8792a1;font-size:10px;padding:3px 8px}.shopping-row{min-height:66px;border-top:1px solid #f0f2f5;display:flex;align-items:center;gap:12px}.shopping-check{display:grid;place-items:center;position:relative}.shopping-check input{position:absolute;opacity:0;width:22px;height:22px;cursor:pointer}.checkmark{width:18px;height:18px;border:1.5px solid #d8dee6;border-radius:6px}.shopping-check input:checked+.checkmark{border-color:#3977e8;background:#3977e8}.shopping-check input:checked+.checkmark:after{content:"✓";color:#fff;font-size:12px;display:block;text-align:center;line-height:16px}.shopping-info{display:grid;gap:3px;flex:1;min-width:0}.shopping-info strong{font-size:12px}.shopping-info small{font-size:10px;color:#99a3b0}.shopping-source{color:#b08a4b}.shopping-quantity{font-size:10px;color:#8d98a7}.is-checked .shopping-info strong{text-decoration:line-through;color:#a9b0ba}.shopping-note{margin-top:14px;padding:11px 12px;border-radius:8px;background:#f8fafc;color:#95a0ae;font-size:10px}.muted-note{font-size:11px;color:#a0a9b5;line-height:1.7}.clear-checked{margin:6px 0 14px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.settings-card{padding:19px}.settings-heading{display:flex;align-items:center;gap:11px;margin-bottom:16px}.settings-icon{margin:0;width:36px;height:36px}.settings-icon .icon{width:18px;height:18px}.settings-heading h2{font-size:13px;margin:0}.settings-heading p{font-size:10px;color:#9aa4b0;margin:3px 0 0}.inline-add{display:flex;gap:7px}.inline-add input,.field input,.field textarea,.field select{height:39px;min-width:0;width:100%;border:1px solid #e4e8ee;border-radius:8px;padding:0 11px;background:#fff;color:#354154;font-size:11px}.inline-add input{flex:1}.inline-add .button{min-height:39px}.settings-list{margin-top:11px;max-height:260px;overflow:auto}.settings-row{min-height:41px;border-top:1px solid #f0f2f5;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#596678}.settings-row>div{display:flex}.settings-row .icon-button{width:30px;height:30px}.field{display:grid;gap:7px;color:#586578;font-size:11px;font-weight:600}.field>span small{font-size:9px;color:#a0a9b5;font-weight:400;margin-right:4px}.field>span b{color:#df5b69}.number-suffix{display:flex;align-items:center;gap:9px}.number-suffix input{width:100px}.number-suffix span{font-size:11px;color:#8691a0}.settings-hint{font-size:10px;color:#9aa4b1;line-height:1.7;margin:10px 0 0}.data-summary{display:flex;gap:36px;padding:7px 0 19px}.data-summary div{display:grid;gap:3px}.data-summary strong{font-size:18px}.data-summary span{font-size:10px;color:#97a1af}.settings-card>.local-chip{margin-bottom:17px}.disabled-future{width:100%}.location-tree{padding:0 17px 18px}.tree-header{height:52px;border-bottom:1px solid #eef0f3;display:flex;align-items:center;justify-content:space-between;padding:0 18px;color:#4f5b6c;font-size:11px}.tree-header span{color:#9aa4b1;font-size:10px}.location-row{min-height:53px;border-bottom:1px solid #f1f3f6;display:flex;align-items:center;gap:10px;padding-inline-end:8px}.location-row>strong{font-size:12px;font-weight:600;flex:1}.tree-toggle,.tree-spacer{width:23px;height:25px;display:grid;place-items:center;flex:0 0 auto}.tree-toggle{border:0;background:transparent;color:#939eac}.tree-toggle .icon{height:15px;width:15px}.location-icon{width:30px;height:30px;display:grid;place-items:center;background:#f2f6ff;color:#6e91d5;border-radius:9px}.location-icon .icon{width:15px;height:15px}.location-item-count{color:#9da6b2;font-size:10px;margin-inline-end:15px}.location-products{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0}.location-products button{background:#f5f7fa;border:0;border-radius:15px;padding:6px 10px;font-size:10px;color:#647084}.loading-state{height:45vh;display:grid;place-items:center;color:#8a95a4;font-size:13px}.toast{position:fixed;bottom:28px;left:28px;z-index:70;padding:12px 18px;color:#fff;background:#243247;border-radius:10px;box-shadow:0 6px 22px #17212f33;font-size:12px}.mobile-nav,.mobile-menu-button,.mobile-backdrop{display:none}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#19243570;display:grid;place-items:center;padding:20px}.modal{width:min(590px,100%);max-height:min(88vh,800px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px #17212f30}.small-modal{width:min(430px,100%)}.modal-header{padding:20px 23px 15px;border-bottom:1px solid #eef0f3;display:flex;align-items:flex-start;justify-content:space-between}.modal-header h2{font-size:16px;margin:0}.modal-header p{font-size:10px;color:#98a2af;margin:4px 0 0}.modal-body{padding:19px 23px}.modal-footer{padding:13px 23px 19px;border-top:1px solid #eef0f3;display:flex;justify-content:flex-start;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span-2{grid-column:span 2}.field textarea{height:auto;padding:10px 11px;resize:vertical}.image-picker{display:flex;align-items:center;gap:11px}.image-picker img{width:48px;height:48px;border-radius:9px}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.form-error{font-size:11px;color:#c84654;margin:13px 0 0}.quantity-actions{display:flex;gap:8px;margin-top:15px}.quantity-actions .button{flex:1}.manual-correction{border-top:1px solid #eff1f4;margin-top:18px;padding-top:16px;display:flex;align-items:flex-end;gap:10px}.manual-correction .field{flex:1}.manual-correction .button{height:39px}.mobile-backdrop{position:fixed;inset:0;border:0;background:#17212f66;z-index:19}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.product-table-head,.product-row{grid-template-columns:minmax(150px,1.5fr) minmax(80px,.8fr) minmax(80px,.8fr) minmax(74px,.7fr) minmax(80px,.75fr) 128px}.product-table-head span:nth-child(6),.product-row>.expiry-cell{display:none}}@media(max-width:900px){.sidebar{width:220px}.main-area{margin-left:220px}.page-content{padding:27px 24px 45px}.topbar{padding:0 24px}.dashboard-grid{grid-template-columns:1fr}.quick-panel{display:none}.product-table-head,.product-row{grid-template-columns:minmax(145px,1.5fr) minmax(80px,.8fr) minmax(74px,.7fr) minmax(80px,.75fr) 125px}.product-table-head span:nth-child(2),.product-row>.cell-muted:nth-of-type(1){display:none}}@media(max-width:650px){.sidebar{inset:0 auto 0 0;width:min(290px,82vw);transform:translate(-105%);transition:transform .22s;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:0 0 0 100vmax #17212f55}.mobile-backdrop{display:block}.main-area{margin:0;padding-bottom:66px}.topbar{height:56px;padding:0 16px}.mobile-menu-button{display:grid}.breadcrumb{margin-inline-end:auto;margin-inline-start:13px;font-size:11px}.topbar-actions{gap:0}.today{display:none}.avatar{height:31px;width:31px}.page-content{padding:23px 15px 32px}.page-header{align-items:flex-start;margin-bottom:19px;gap:10px}.page-header h1{font-size:21px}.page-header p{font-size:11px;line-height:1.6}.page-header>.button,.header-actions .button{min-height:38px;padding:0 10px;font-size:10px}.page-header>.button .icon,.header-actions .button .icon{height:14px;width:14px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card{min-height:127px;padding:13px}.stat-card:last-child{grid-column:span 2;min-height:105px}.stat-icon{width:29px;height:29px;margin-bottom:8px}.stat-value{font-size:22px}.stat-detail{font-size:9px}.dashboard-grid{gap:11px}.recent-panel{padding:16px 13px}.panel-heading h2{font-size:13px}.recent-row{gap:8px}.recent-row .product-thumb{width:34px;height:34px}.recent-info strong{font-size:11px}.recent-info span{font-size:9px}.recent-row .quantity-label{font-size:10px}.recent-row .badge{font-size:8px;padding:4px 6px}.text-action{font-size:10px}.products-panel{border-radius:11px}.filter-toolbar{padding:12px;gap:9px}.search-field{height:41px}.search-field kbd{display:none}.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.filters select{max-width:none;width:100%;font-size:9px;height:34px}.result-count{padding:0 13px 10px}.product-table-head{display:none}.product-row{position:relative;grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;padding:11px 12px 43px;min-height:93px}.product-cell{grid-column:1;grid-row:1}.product-cell .product-thumb{height:38px;width:38px}.product-title strong{font-size:11px}.product-row>.cell-muted{display:none!important}.product-row>.quantity-label{grid-column:2;grid-row:1;align-self:center;font-size:11px}.product-row>.badge{grid-column:1;grid-row:2;justify-self:start;margin-inline-start:48px}.expiry-cell{display:none!important}.row-actions{position:absolute;bottom:5px;left:8px;right:8px;justify-content:flex-end}.row-actions .icon-button{width:31px;height:31px}.quick-quantity{width:30px;height:30px}.header-actions{gap:5px}.shopping-layout{grid-template-columns:1fr;gap:11px}.shopping-panel,.shopping-summary{padding:16px 13px}.shopping-summary .shopping-row{min-height:57px}.shopping-row{gap:8px}.shopping-row .product-thumb{height:34px;width:34px}.shopping-info strong{font-size:11px}.shopping-info small{font-size:9px}.shopping-quantity{display:none}.settings-grid{grid-template-columns:1fr;gap:11px}.settings-card{padding:16px}.location-tree{padding:0 9px 12px}.location-row{gap:7px;padding-inline-end:2px}.location-row>strong{font-size:11px}.location-item-count{font-size:9px;margin-inline-end:3px}.location-row .row-actions{gap:0}.location-row .row-actions .icon-button{width:28px}.location-icon{width:27px;height:27px}.tree-toggle,.tree-spacer{width:17px}.tree-header{padding:0 12px}.mobile-nav{position:fixed;display:flex;inset:auto 0 0;height:64px;background:#fff;border-top:1px solid #e9edf2;z-index:18;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{min-width:56px;padding:7px 5px 5px;border:0;background:transparent;color:#929dac;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.mobile-nav button .icon{width:19px;height:19px}.mobile-nav button span{font-size:9px}.mobile-nav button.active{color:#3977e8}.toast{bottom:77px;left:12px;right:12px;text-align:center}.modal-backdrop{padding:10px;align-items:end}.modal{max-height:91dvh;border-radius:16px 16px 11px 11px}.modal-header{padding:17px 17px 13px}.modal-body{padding:16px 17px}.modal-footer{padding:12px 17px 16px}.form-grid{gap:12px 9px}.field{font-size:10px}.field input,.field select{height:42px;font-size:12px}.field textarea{font-size:12px}.small-modal{align-self:center;border-radius:15px}.page-header>.header-actions{display:grid;gap:6px}.shopping-section-heading h2{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.expiry-invalid{color:#cb4b57;background:#fff0f0}.product-row>.cell-muted:first-of-type,.recent-info span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.load-error{min-height:45vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}.load-error h1{margin:0;font-size:20px}.load-error p{max-width:460px;margin:0 0 5px;color:#7c8797;font-size:13px;line-height:1.7}.searchable-select{position:relative;min-width:0}.searchable-control{display:flex;align-items:center;gap:.25rem}.searchable-control input{min-width:0;flex:1}.searchable-control>button{border:0;background:transparent;color:var(--muted, #64748b);padding:.5rem;cursor:pointer}.searchable-options{position:absolute;z-index:30;inset-inline:0;top:calc(100% + .2rem);max-height:15rem;overflow:auto;display:grid;padding:.3rem;border:1px solid var(--line, #dbe2ea);border-radius:.7rem;background:var(--surface, white);box-shadow:0 12px 30px #14253b24}.searchable-options button{text-align:start;border:0;background:transparent;border-radius:.4rem;padding:.55rem .65rem;color:inherit;cursor:pointer}.searchable-options button:hover,.searchable-options button.active,.searchable-options button[aria-selected=true]{background:var(--soft, #f1f5f9)}.searchable-options p{margin:.5rem;color:var(--muted, #64748b)}.filter-actions{display:flex;flex-wrap:wrap;gap:.4rem .8rem;grid-column:1 / -1}.filter-actions .text-action{font-size:.82rem}.category-search{margin-block:.6rem}.batch-list{display:grid;gap:.65rem}.batch-row{display:grid;grid-template-columns:auto minmax(10rem,1fr) auto;gap:.7rem;align-items:end;padding:.75rem;border:1px solid var(--line, #dbe2ea);border-radius:.7rem}.batch-row strong{padding-bottom:.65rem}.batch-add-form{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;align-items:end;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line, #dbe2ea)}.batch-add-form h3{grid-column:1 / -1;margin:0}.expiry-cell{display:grid;justify-items:start;gap:.2rem}.expiry-cell.expired-emphasis{padding:.5rem;border:2px solid #b42318;border-radius:.65rem;background:#fff1f0;color:#7a1510;font-weight:700}.product-row.has-expired-stock{border-inline-start:4px solid #b42318}.nested-modal{z-index:40}.recent-row{width:100%;border:0;background:transparent;color:inherit;text-align:start;cursor:pointer}.recent-row:hover{background:var(--soft, #f1f5f9)}@media(max-width:720px){.batch-row,.batch-add-form{grid-template-columns:1fr}.batch-add-form h3{grid-column:auto}.filter-actions{padding-top:.35rem}}.location-delete-options{display:grid;gap:.7rem;margin-top:1rem}.location-delete-options .button{display:grid;justify-items:start;gap:.3rem;text-align:start;min-height:auto;padding:.8rem 1rem}.location-delete-options small{font-weight:400;opacity:.82}.expiry-cell.expired-emphasis{border-color:#d28a21;background:#fff8e8;color:#744b0b}.expiry-cell.expired-emphasis.fully-expired{border-color:#b42318;background:#fff1f0;color:#7a1510}.expired-quantity{display:inline-flex;align-items:center;gap:.25rem}.expired-quantity .icon{width:13px;height:13px}.stock-date-action{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .45rem;border:1px solid #dbe5f5;border-radius:.45rem;background:#f5f8ff;white-space:nowrap}.stock-date-action .icon{width:14px;height:14px}.shopping-edit-action{flex:0 0 auto;padding:.3rem .45rem;border:1px solid #e1e6ed;border-radius:.4rem;color:#43546c;white-space:nowrap}.shopping-create-prompt{margin:.75rem 0;padding:.75rem;border:1px solid #cbdaf4;border-radius:.6rem;background:#f5f8ff}.shopping-create-prompt p{margin:0 0 .6rem;font-size:.85rem}.quantity-actions>div{display:grid;flex:1;gap:.35rem;min-width:0}.quantity-actions small{color:#758195;font-size:.7rem;line-height:1.45}.csv-preview-import{box-shadow:0 0 0 2px #3977e833;font-weight:700}.csv-preview-cancel{color:#526075}.location-delete-move{display:grid;gap:.55rem;padding:.75rem;border:1px solid #e1e7ef;border-radius:.7rem}@media(max-width:650px){.quantity-actions{display:grid;grid-template-columns:1fr}.shopping-edit-action{padding:.25rem .35rem;font-size:9px}}@media(min-width:1201px){.product-table-head,.product-row{grid-template-columns:minmax(155px,1.55fr) minmax(80px,.8fr) minmax(85px,.85fr) minmax(70px,.65fr) minmax(85px,.8fr) minmax(145px,1fr) 150px;gap:8px;padding-inline:14px}.expiry-cell{min-width:0;align-content:start;justify-items:start;gap:.45rem;padding-block:.45rem;line-height:1.4}.expiry-cell>small,.expiry-cell>strong{max-width:100%;white-space:normal;overflow-wrap:break-word}.expiry-cell>small{color:#707d8f}.expiry-cell.expired-emphasis{min-height:0;border-width:1px}.expiry-cell.expired-emphasis>strong{font-size:.72rem}.expiry-cell.expired-emphasis.fully-expired{border-width:2px}.stock-date-action{width:100%;justify-content:flex-start;margin-top:.2rem;padding-top:.45rem;border-top:1px solid #dbe5f5}.location-item-count{white-space:nowrap}}.csv-preview-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:.75rem}.csv-preview-actions>button{flex:0 0 auto}.csv-preview-actions .csv-preview-cancel{background:#fff;border:1px solid #cbd3de;color:#465469}.csv-preview-actions .csv-preview-choose{background:#3977e8;color:#fff}.csv-preview-actions>button:focus-visible{outline:3px solid #8db1ff;outline-offset:3px}@media(min-width:901px)and (max-width:1200px){.product-table-head,.product-row{grid-template-columns:minmax(120px,1.5fr) minmax(68px,.8fr) minmax(50px,.55fr) minmax(70px,.8fr) minmax(105px,1fr) 128px;gap:7px;padding-inline:12px}.product-table-head>span:nth-child(2),.product-row>.cell-muted:first-of-type{display:none}.product-table-head>span:nth-child(6),.product-row>.expiry-cell{display:grid}.expiry-cell{min-width:0;align-content:start;justify-items:start;gap:.35rem;padding-block:.3rem;line-height:1.35}.expiry-cell>small,.expiry-cell>strong{max-width:100%;white-space:normal;overflow-wrap:anywhere}.expiry-cell.expired-emphasis{min-height:0;border-width:1px}.stock-date-action{max-width:100%;white-space:normal}}@media(min-width:651px)and (max-width:900px){.product-table-head{grid-template-columns:minmax(0,1fr) 132px;padding-inline:12px}.product-table-head>span{display:none}.product-table-head>span:first-child,.product-table-head>span:last-child{display:block}.product-row{grid-template-columns:minmax(0,1fr) 132px;grid-template-areas:"product actions" "quantity actions" "status actions" "expiry expiry";gap:6px 10px;padding:11px 12px;align-items:start}.product-row>.product-cell{grid-area:product}.product-row>.cell-muted{display:none}.product-row>.quantity-label{grid-area:quantity}.product-row>.badge{grid-area:status}.product-row>.expiry-cell{grid-area:expiry;display:grid;min-width:0;grid-template-columns:minmax(0,1fr);gap:.35rem;padding:.6rem 0 0;border-top:1px solid #eef0f3}.product-row>.expiry-cell.expired-emphasis{padding:.55rem}.product-row>.expiry-cell>small,.product-row>.expiry-cell>strong{max-width:100%;white-space:normal;overflow-wrap:anywhere}.product-row>.row-actions{grid-area:actions;flex-wrap:wrap;justify-content:flex-start;align-content:center;gap:2px}.product-row .row-actions .icon-button,.product-row .quick-quantity{width:26px;height:28px}.product-row>.row-actions .icon{width:14px;height:14px}.stock-date-action{max-width:100%;white-space:normal}}.refresh-error{display:grid;justify-items:start;gap:.4rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid #f0c6c6;border-radius:.7rem;background:#fff7f7;color:#7a2630}.refresh-error p{margin:0;line-height:1.55}.refresh-error .button{min-height:34px}.searchable-options-footer{border-top:1px solid var(--line, #dbe2ea);margin-top:.25rem;padding-top:.25rem}.quick-quantity-label{display:none}.barcode-camera{display:grid;gap:.7rem;min-width:0}.barcode-camera video{display:block;width:100%;max-height:40dvh;aspect-ratio:16/9;background:#101827;border-radius:12px;object-fit:cover}.barcode-search,.barcode-catalog-form{display:grid;gap:.8rem;align-items:end}.barcode-search{grid-template-columns:minmax(0,1fr) auto}.barcode-result,.barcode-message{padding:1rem;border:1px solid #cbd8e8;border-radius:12px;background:#f5f8ff;overflow-wrap:anywhere}.barcode-dialog .modal-body{display:grid;gap:.8rem}.barcode-dialog{display:flex;flex-direction:column;overflow:hidden}.barcode-dialog .modal-header,.barcode-dialog .modal-footer{flex-shrink:0}.barcode-dialog .modal-body{min-height:0;overflow-y:auto}.barcode-result .button{margin:.25rem}.barcode-catalog-list{display:grid;gap:.7rem;margin-top:1rem;max-height:450px;overflow:auto}.barcode-catalog-list article{display:grid;gap:.4rem;padding:.8rem;border:1px solid #dbe2ea;border-radius:10px;overflow-wrap:anywhere}.barcode-catalog-list article>div{display:flex;gap:.4rem;flex-wrap:wrap}@media(max-width:650px){.field input,.field select,.field textarea,.search-field input,.server-login input{font-size:16px}.barcode-search{grid-template-columns:minmax(0,1fr)}.barcode-dialog{max-height:calc(100dvh - 20px)}.barcode-dialog .modal-body{overflow-y:auto}.row-actions .icon-button,.row-actions .quick-quantity{min-width:42px;min-height:42px}.product-row{padding-bottom:58px}.product-row>.expiry-cell{display:grid!important;grid-column:1 / -1;grid-row:3;gap:.4rem;border-top:1px solid #e4e9f0;padding-top:.65rem;margin-top:.3rem}.product-row .stock-date-action{min-height:42px}.product-title strong{font-size:14px}.product-title small{font-size:12px}.filters select{font-size:14px;min-height:42px}.button,.header-actions .button{min-height:44px;font-size:12px}.header-actions{flex-wrap:wrap}.modal{max-height:calc(100dvh - 20px)}.mobile-nav{padding-bottom:env(safe-area-inset-bottom,0px)}}@media(min-width:651px){.product-row>.row-actions{flex-wrap:wrap;gap:3px}.product-row .quick-quantity{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:86px;height:30px;padding-inline:7px;white-space:nowrap}.quick-quantity-label{display:inline;font-size:10px}.quick-quantity>.icon{display:none}}.sidebar{inset-inline:0 auto;inset-inline-start:auto;inset-inline-end:0;left:auto;right:0;border-left:0;border-right:1px solid var(--line)}.main-area{margin-left:0;margin-right:252px}@media(max-width:900px){.sidebar{width:220px}.main-area{margin-right:220px}}@media(max-width:650px){.sidebar{inset-inline-end:0;left:auto;right:0;transform:translate(105%)}.sidebar.open{transform:translate(0)}.main-area{margin:0}}.row-actions{gap:2px}.row-actions .icon-button{width:28px;height:28px}.movement-list{display:grid}.movement-row{min-height:58px;border-top:1px solid #eff1f4;display:flex;align-items:center;gap:12px}.movement-row:first-child{border-top:0}.movement-delta{min-width:47px;font-weight:700;font-size:13px;direction:ltr;text-align:center}.movement-delta.positive{color:#168b67}.movement-delta.negative{color:#cf5860}.movement-row>span:nth-child(2){display:grid;gap:3px;flex:1}.movement-row strong{font-size:11px}.movement-row small,.movement-after{font-size:9px;color:#99a3b0}.category-parent{margin-top:12px}.movement-after{white-space:nowrap}@media(max-width:1200px){.row-actions{gap:0}.row-actions .icon-button{width:25px;height:26px}}@media(max-width:650px){.row-actions{gap:1px}.row-actions .icon-button{width:31px;height:31px}.category-parent{margin-top:10px}}.shopping-note-editor{display:flex;align-items:center;gap:8px;margin-top:6px}.shopping-note-editor input{min-width:0;flex:1;font:inherit;font-size:12px;padding:5px 8px;border:1px solid #dce1e8;border-radius:7px}.shopping-info>small{overflow-wrap:anywhere}.backup-actions{display:flex;flex-wrap:wrap;gap:8px}.backup-preview{display:grid;gap:7px;margin-top:15px;padding:13px;border:1px solid #e8edf4;border-radius:9px;background:#fafbfd;font-size:11px;color:#788496}.backup-preview strong{color:#455267}.backup-preview .button{justify-self:start;margin-top:4px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.csv-row-errors{display:grid;gap:6px;margin:2px 0;padding-inline-start:22px;color:#c84654;line-height:1.6;max-height:220px;overflow:auto}.settings-icon.blue{font-size:9px;font-weight:700}.csv-preview-rows{display:grid;gap:7px;margin:3px 0;padding-inline-start:22px;line-height:1.5}.csv-preview-rows li{padding-inline-start:3px;overflow-wrap:anywhere}.csv-preview-rows li span{margin-inline-start:8px;color:#788496;font-size:10px}.product-barcode{direction:ltr;text-align:right;color:#7f8a99;font-size:9px!important}.alerts-panel{padding:19px;margin-bottom:18px}.alert-count{min-width:28px;height:28px;border-radius:9px;background:#fff5e7;color:#c58a24;display:grid;place-items:center;font-size:12px;font-weight:700}.alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;margin-top:10px}.alert-row{min-width:0;min-height:56px;display:grid;grid-template-columns:31px minmax(0,1fr) 14px;align-items:center;gap:9px;border:0;border-top:1px solid #f0f2f5;background:transparent;text-align:right;color:inherit}.alert-row>.icon{width:13px;height:13px;color:#9ba5b2}.alert-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#f2f5fa;color:#728198}.alert-mark .icon{width:15px;height:15px}.alert-out-of-stock,.alert-expired{background:#fff0f0;color:#c94e59}.alert-low-stock,.alert-expiring-soon{background:#fff6e7;color:#c58a24}.alert-info{min-width:0;display:grid;gap:3px}.alert-info strong,.alert-info small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-info strong{font-size:11px}.alert-info small{color:#929dac;font-size:9px}.alerts-empty{margin:15px 0 2px;color:#98a2af;font-size:11px}@media(max-width:900px){.alert-list{grid-template-columns:1fr}}.consumption-totals{display:flex;gap:24px;padding:8px 0;color:#788598;font-size:12px}.consumption-totals strong{color:#253348;font-size:15px}.consumption-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:8px 0 0;padding:0;list-style:none}.consumption-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #f0f2f5;font-size:11px}.consumption-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.consumption-list li strong{flex:none}@media(max-width:650px){.consumption-list{grid-template-columns:1fr}}.location-icon{overflow:hidden;padding:0}.location-icon img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.onboarding-backdrop{z-index:60}.onboarding-modal{width:min(560px,100%)}.onboarding-step-count{margin:0 0 3px!important;color:#8794a5!important;font-size:10px!important}.onboarding-progress{display:flex;gap:6px;padding:12px 23px 0;direction:rtl}.onboarding-progress span{height:4px;flex:1;border-radius:5px;background:#e9edf2}.onboarding-progress span.is-current{background:#3977e8}.onboarding-body{min-height:280px}.onboarding-welcome{text-align:center;max-width:390px;margin:18px auto;line-height:1.8;color:#627084;font-size:13px}.onboarding-welcome .empty-mark{margin:0 auto 15px}.onboarding-fields{display:grid;gap:13px}.onboarding-fields>p:first-child,.onboarding-finish>p{margin:0;color:#768395;font-size:12px;line-height:1.7}.onboarding-existing-list{display:flex;gap:6px;flex-wrap:wrap;max-height:96px;overflow:auto}.onboarding-existing-list span{padding:5px 9px;background:#f3f6fa;border-radius:14px;color:#59677a;font-size:10px}.onboarding-existing-count{margin:0;color:#919cab;font-size:10px}.onboarding-finish{display:grid;gap:18px;text-align:center;padding-top:55px;color:#738094}.onboarding-counts{display:flex;justify-content:center;gap:26px}.onboarding-counts span{display:grid;gap:4px;font-size:11px}.onboarding-counts strong{font-size:24px;color:#3977e8}.onboarding-footer{align-items:center}.onboarding-footer-spacer{flex:1}.settings-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:650px){.onboarding-progress{padding-inline:17px}.onboarding-body{min-height:260px}.onboarding-footer{flex-wrap:wrap}.onboarding-footer .text-action{order:2;width:100%;justify-content:center}.onboarding-counts{gap:15px}}.assistant-panel{max-width:780px;padding:22px}.assistant-demo-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:10px;background:#eef5ff;color:#52647d;font-size:12px}.assistant-demo-banner strong{color:#2d67bd}.assistant-prompt{margin-block:18px}.assistant-prompt textarea{resize:vertical;min-height:80px}.assistant-action{margin-top:20px;padding:17px;border:1px solid #e6ebf1;border-radius:11px}.assistant-action h2{margin:0 0 9px;font-size:15px}.assistant-action p{line-height:1.7}.assistant-warning{color:#8a6827;font-size:12px}.assistant-errors{color:#bb3f4b;font-size:12px;line-height:1.7}.assistant-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}@media(max-width:650px){.assistant-panel{padding:15px}.assistant-actions>*{flex:1 1 100%}}.destructive-warning{margin-block:12px;padding:14px;border:2px solid #b34532;border-inline-start-width:6px;border-radius:9px;background:#fff3eb;color:#702918;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.destructive-warning strong{color:inherit;font-size:15px}.destructive-warning p{margin-block:6px 0}.destructive-warning label{display:block;margin-block-start:10px}.location-edit-context{display:flex;flex-wrap:wrap;gap:8px;margin-block:10px;font-size:12px;color:#354154}.location-search-empty{padding:16px}.location-row>strong{min-width:0;overflow-wrap:anywhere}.shopping-bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-block-end:16px;font-size:12px}.shopping-selection{display:grid;justify-items:center;flex:0 0 auto;gap:3px;color:#455267;font-size:10px}.shopping-selection input{width:18px;height:18px;accent-color:#3977e8}.shopping-row{flex-wrap:wrap;padding-block:10px}.shopping-info{flex-basis:100px}@media(max-width:650px){.location-row{flex-wrap:wrap;gap:6px;padding-block:8px}.location-row .row-actions{margin-inline-start:auto}.location-row>strong{flex-basis:80px}.location-item-count{margin-inline-end:0}.location-edit-context{line-height:1.6}.settings-row>span{min-width:0;overflow-wrap:anywhere}.settings-row>div{flex-shrink:0}.settings-card .inline-add{flex-wrap:wrap}.settings-card .inline-add input{flex-basis:140px}}
