:root{color:#172033;background:#f4f7fb;font-family:Inter,Noto Sans Thai,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}.shell{grid-template-columns:270px 1fr;min-height:100vh;display:grid}aside{color:#d8e8fb;background:#10243e;flex-direction:column;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:6px 10px 28px;display:flex}.brand>b{background:#2872ee;border-radius:11px;place-items:center;width:40px;height:40px;font-size:21px;display:grid}.brand strong,.brand small,td small{display:block}.brand small,td small{color:#94abc6;margin-top:3px;font-size:11px}nav{gap:5px;display:grid}nav button{color:#c6d5e8;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:12px;font:700 14px inherit}nav button.active,nav button:hover{color:#fff;background:#1e3a5f}aside footer{color:#9ab0cc;margin-top:auto;padding:12px}main{min-width:0;padding:30px 38px}header,.toolbar,.actions{justify-content:space-between;align-items:center;gap:10px;display:flex}header{margin-bottom:28px}header p{color:#64748b;margin:0 0 4px;font-size:13px}h1{margin:0;font-size:28px}.button{color:#fff;cursor:pointer;background:#2563eb;border:1px solid #2563eb;border-radius:7px;min-height:39px;padding:8px 13px;font:700 13px inherit}.secondary{color:#304761;background:#fff;border-color:#bdcadd}.danger{color:#b4233d;background:#fff1f2;border-color:#fecaca}.notice,.card,.metrics article{background:#fff;border:1px solid #dce5ef;border-radius:12px;box-shadow:0 6px 20px #1835520a}.notice,.card{padding:20px}.notice{max-width:700px}.notice h2{color:#8a5000;margin:0}.notice p{color:#704d23;line-height:1.7}.metrics{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px;display:grid}.metrics article{padding:18px}.metrics span{color:#64748b;font-size:12px;font-weight:700;display:block}.metrics strong{margin-top:8px;font-size:30px;display:block}.toolbar{margin-bottom:16px}.toolbar input{width:min(440px,100%)}input,select{border:1px solid #bdcadd;border-radius:7px;width:100%;min-height:40px;padding:8px 10px;font:14px inherit}.card{overflow:auto}.card h2{margin-top:0;font-size:18px}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #eaf0f6;padding:13px 14px}th{color:#607189;text-transform:uppercase;font-size:11px}.overlay{background:#10243e88;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:min(100%,550px);max-height:calc(100vh - 40px);padding:22px;overflow:auto}.modal h2{margin-top:0}.modal>label{color:#4d6079;gap:5px;margin:11px 0;font-size:12px;font-weight:700;display:grid}.actions{justify-content:flex-end;margin-top:20px}.checks{border:1px solid #dce5ef;border-radius:7px;max-height:150px;padding:6px;overflow:auto}.checks label{padding:5px;font-weight:400;display:block}@media (width<=900px){.shell{grid-template-columns:1fr}aside{flex-direction:row;align-items:center;height:auto;padding:12px;position:static}.brand{padding:0 10px 0 0}nav{display:flex;overflow:auto}nav button{white-space:nowrap}aside footer{display:none}main{padding:22px 16px}.metrics{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){header,.toolbar{flex-direction:column;align-items:start}.metrics{grid-template-columns:1fr}.overlay{place-items:end center;padding:10px}.modal{width:100%;max-height:94vh}}.login-page{background:radial-gradient(circle at 18% 18%,#2872ee40,#0000 33%),linear-gradient(135deg,#10243e,#1e4776);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fffffff5;border:1px solid #fff3;border-radius:18px;width:min(100%,430px);padding:34px;box-shadow:0 28px 70px #05142666}.login-brand{align-items:center;gap:11px;margin-bottom:32px;display:flex}.login-brand>b{color:#fff;background:#2872ee;border-radius:12px;place-items:center;width:44px;height:44px;font-size:23px;display:grid}.login-brand strong,.login-brand small{display:block}.login-brand small{color:#64748b;margin-top:3px;font-size:11px}.login-card h1{font-size:26px}.login-card>p{color:#64748b;margin:8px 0 22px;font-size:13px;line-height:1.55}.login-card>label{color:#334155;gap:6px;margin:14px 0;font-size:12px;font-weight:700;display:grid}.login-error{background:#fff1f2;border-radius:8px;padding:10px;color:#b4233d!important}.login-submit{width:100%;margin-top:12px}.login-submit:disabled{opacity:.65}.login-footnote{text-align:center;color:#94a3b8;margin-top:18px;font-size:11px;display:block}.signed-in-user{color:#475569;margin-right:9px;font-size:12px;font-weight:700}.company-users{background:#f8fbff;border:1px solid #d8e4f1;border-radius:10px;margin:16px 0;overflow:hidden}.company-users-head{background:#eef6ff;border-bottom:1px solid #d8e4f1;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.company-users-head strong,.company-users-head small{display:block}.company-users-head strong{color:#173251;font-size:13px}.company-users-head small{color:#64748b;margin-top:3px;font-size:11px}.company-users-head span{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.company-user-list{max-height:230px;padding:7px;overflow:auto}.company-user-option{cursor:pointer;border:1px solid #0000;border-radius:8px;grid-template-columns:auto 30px minmax(0,1fr);align-items:center;gap:9px;color:#304761!important;margin:0!important;padding:9px!important;display:grid!important}.company-user-option:hover{background:#f1f7ff}.company-user-option.selected{background:#eaf3ff;border-color:#93c5fd}.company-user-option input{accent-color:#2563eb;width:16px;min-height:16px;margin:0}.company-user-avatar{color:#1d4ed8;background:#dceafe;border-radius:50%;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid}.company-user-option b,.company-user-option small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.company-user-option small{color:#72839a;margin-top:2px;font-size:11px;font-weight:400}.company-user-empty{color:#72839a;text-align:center;padding:14px;display:block}.product-filters{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.app-header{border-bottom:1px solid #dce5ef;min-height:76px;margin-bottom:26px;padding:5px 0 17px;position:relative}.app-page-heading p{color:#64748b;letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex}.app-page-heading p i{background:#22c55e;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #dcfce7}.app-page-heading h1{letter-spacing:-.03em;font-size:29px}.app-header-actions{align-items:center;gap:10px;display:flex}.signed-in-user{color:#334155;cursor:pointer;background:#fff;border:1px solid #dce5ef;border-radius:999px;align-items:center;gap:7px;margin:0;padding:5px 9px 5px 5px;font-size:12px;font-weight:700;display:inline-flex}.signed-in-user:hover{background:#f8fbff;border-color:#93c5fd}.signed-in-user i{color:#fff;background:linear-gradient(135deg,#60a5fa,#2563eb);border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;font-style:normal;display:grid}.app-header-actions .button{min-height:34px;padding:6px 10px;font-size:12px}.overlay{z-index:100}.profile-modal{text-align:left;border:1px solid #dbe7f4;width:min(100%,460px);padding:0;position:relative;overflow:hidden;box-shadow:0 24px 70px #0f172a45}.profile-hero{background:linear-gradient(135deg,#eff6ff,#f8fbff);border-bottom:1px solid #dbe7f4;align-items:center;gap:14px;padding:24px 26px 20px;display:flex}.profile-hero span{color:#2563eb;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.profile-hero h2{margin:4px 0;font-size:20px}.profile-hero p{color:#64748b;margin:0;font-size:12px}.profile-avatar{color:#fff;background:linear-gradient(135deg,#60a5fa,#1d4ed8);border:3px solid #fff;border-radius:50%;flex:none;place-items:center;width:56px;height:56px;font-size:23px;font-weight:800;display:grid;box-shadow:0 6px 14px #2563eb38}.profile-modal dl{text-align:left;margin:0;padding:8px 26px}.profile-modal dl div{border-bottom:1px solid #eaf0f6;justify-content:space-between;gap:14px;padding:13px 0;display:flex}.profile-modal dt{color:#64748b;font-size:12px}.profile-modal dd{color:#172033;text-align:right;text-overflow:ellipsis;max-width:65%;margin:0;font-size:13px;font-weight:700;overflow:hidden}.profile-modal .actions{padding:2px 26px 20px}.profile-role{color:#1d4ed8;background:#dbeafe;border-radius:999px;padding:4px 8px;font-size:11px}.profile-close{z-index:1;color:#475569;cursor:pointer;background:#fffc;border:0;border-radius:50%;width:30px;height:30px;font-size:22px;line-height:1;position:absolute;top:12px;right:12px}.profile-close:hover{color:#1d4ed8;background:#fff}aside{background:linear-gradient(#0b1e35 0%,#102d4d 56%,#12375b 100%);padding:22px 16px;box-shadow:4px 0 20px #0f233b1f}aside .brand{gap:12px;padding:7px 10px 28px}aside .brand>b{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:1px solid #93c5fd55;border-radius:13px;width:42px;height:42px;box-shadow:0 7px 17px #020d1b66}aside .brand strong{letter-spacing:.01em;font-size:15px}aside .brand small{color:#9ab7d9}.nav-caption{color:#7294bb;letter-spacing:.1em;text-transform:uppercase;padding:0 11px 8px;font-size:10px;font-weight:800;display:block}aside nav{gap:4px}aside nav button{border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:10px 11px;transition:all .18s;display:flex}aside nav button:hover{background:#ffffff0d;border-color:#ffffff16;transform:translate(2px)}aside nav button.active{background:linear-gradient(100deg,#2563eb,#1e4ea5);border-color:#5ca1ff55;box-shadow:0 5px 12px #06182d88}.nav-icon{color:#b9d7ff;background:#ffffff12;border-radius:7px;place-items:center;width:23px;height:23px;font-size:14px;line-height:1;display:inline-grid}aside nav button.active .nav-icon{color:#fff;background:#ffffff24}aside footer{padding:12px 9px 4px}.sidebar-user{background:#06182a66;border:1px solid #ffffff13;border-radius:11px;align-items:center;gap:9px;padding:10px;display:flex}.sidebar-user>b{color:#fff;background:#2563eb;border-radius:50%;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.sidebar-user span{min-width:0}.sidebar-user strong,.sidebar-user small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-user strong{color:#e8f2ff;font-size:11px}.sidebar-user small{color:#8facce;text-transform:capitalize;margin-top:2px;font-size:10px}.product-filters select{width:min(260px,100%)}.product-filters input{flex:1}.product-actions{flex:none;gap:10px;display:flex}.device-status{align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.device-status i{background:#94a3b8;border-radius:50%;width:8px;height:8px}.device-status.online{color:#15803d}.device-status.online i{background:#22c55e;box-shadow:0 0 0 3px #dcfce7}.device-status.offline{color:#64748b}.device-status.offline i{background:#94a3b8}.device-lastupdate{color:#64748b;margin-top:4px;font-size:10px;display:block}.stock-status{color:#64748b;background:#f1f5f9;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.stock-status.full{color:#15803d;background:#dcfce7}.stock-status.refill{color:#c2410c;background:#fff7ed}.stock-status.empty{color:#be123c;box-shadow:none;background:#fff1f2;border:1px solid #fecdd3}.stock-progress{background:#e2e8f0;border-radius:999px;width:118px;height:7px;margin-top:7px;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a14}.stock-progress span{border-radius:inherit;background:linear-gradient(90deg,#22c55e,#4ade80);height:100%;transition:width .35s;display:block}.stock-progress.refill span{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.stock-progress.empty{background:#e2e8f0;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a14}.stock-progress.empty span{display:none}.device-stock-cell{min-width:166px}.device-stock-badge{box-sizing:border-box;color:#64748b;white-space:nowrap;background:#f1f5f9;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:72px;height:25px;min-height:25px;max-height:25px;padding:0 9px;font-size:10px;font-weight:800;line-height:1;display:inline-flex}.device-stock-badge.full{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.device-stock-badge.refill{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.device-stock-badge.empty{color:#be123c;background:#fff1f2;border-color:#fecdd3}.device-stock-meter{box-sizing:border-box;background:#e2e8f0;border-radius:999px;width:132px;height:7px;min-height:7px;max-height:7px;margin-top:7px;display:block;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a14}.device-stock-meter span{border-radius:inherit;background:linear-gradient(90deg,#22c55e,#4ade80);height:100%;min-height:7px;max-height:7px;transition:width .35s;display:block}.device-stock-meter.refill span{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.device-stock-meter.empty{background:#e2e8f0;box-shadow:inset 0 1px 2px #0f172a14}.device-stock-meter.empty span{display:none}.device-updated-time{color:#334155;white-space:nowrap;font-size:12px;display:block}.device-row-actions{align-items:center;gap:7px;display:flex}.device-row-actions .button{min-height:34px;box-shadow:none;border-radius:8px;padding:6px 10px;font-size:12px}.device-row-actions .button span{margin-right:3px;font-size:15px;line-height:0}.device-manage-button{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;box-shadow:0 3px 8px #2563eb33!important}.device-restart-button{color:#c2410c!important;background:#fff7ed!important;border-color:#fed7aa!important}.device-restart-button:hover{background:#ffedd5!important}.device-pagination{color:#64748b;justify-content:space-between;align-items:center;gap:12px;padding-top:14px;font-size:12px;display:flex}.device-pagination>div{align-items:center;gap:8px;display:flex}.device-pagination label{white-space:nowrap;align-items:center;gap:5px;display:flex}.device-pagination select{width:64px;min-height:32px;padding:4px 6px;font-size:12px}.device-pagination .button{min-height:32px;padding:5px 9px;font-size:11px}.device-pagination .button:disabled{opacity:.45;cursor:not-allowed}.dashboard-hero{color:#fff;background:radial-gradient(circle at 85% 20%,#60a5fa 0,#0000 28%),linear-gradient(120deg,#10243e,#1d4e89);border-radius:16px;justify-content:space-between;align-items:center;gap:22px;margin-bottom:18px;padding:28px 30px;display:flex;overflow:hidden}.dashboard-hero span{color:#93c5fd;letter-spacing:.12em;font-size:11px;font-weight:800}.dashboard-hero h2{margin:7px 0;font-size:27px}.dashboard-hero p{color:#dbeafe;max-width:620px;margin:0;font-size:13px}.dashboard-hero .button{color:#1d4e89;background:#fff;border-color:#fff;flex:none}.dashboard-metrics article{position:relative;overflow:hidden}.dashboard-metrics article:after{color:currentColor;opacity:.08;font-size:96px;font-weight:900;position:absolute;bottom:-34px;right:-15px}.dashboard-metrics article small{color:#64748b;margin-top:5px;font-size:11px;display:block}.dashboard-total{color:#2563eb}.dashboard-total:after{content:"▦"}.dashboard-online{color:#16a34a}.dashboard-online:after{content:"●"}.dashboard-refill{color:#d97706}.dashboard-refill:after{content:"◒"}.dashboard-empty{color:#e11d48}.dashboard-empty:after{content:"!"}.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);gap:16px;display:grid}.dashboard-section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.dashboard-section-head h2{margin:0}.dashboard-section-head p{color:#64748b;margin:5px 0 0;font-size:12px}.dashboard-section-head>strong{color:#c2410c;white-space:nowrap;background:#fff7ed;border-radius:7px;padding:7px 9px;font-size:12px}.dashboard-section-head .button{min-height:32px;padding:5px 9px;font-size:11px}.dashboard-stock-legend{color:#64748b;flex-wrap:wrap;gap:12px;margin:0 0 10px;font-size:11px;display:flex}.dashboard-stock-legend span{align-items:center;gap:5px;display:inline-flex}.dashboard-stock-legend i{background:#94a3b8;border-radius:50%;width:8px;height:8px}.dashboard-stock-legend i.full{background:#22c55e}.dashboard-stock-legend i.refill{background:#f59e0b}.dashboard-stock-legend i.empty{background:#f43f5e}.dashboard-stock-list{gap:9px;display:grid}.dashboard-stock-list article{grid-template-columns:minmax(120px,1fr) minmax(100px,.9fr) auto;align-items:center;gap:12px;display:grid}.dashboard-stock-list b,.dashboard-stock-list small{display:block}.dashboard-stock-list small{color:#64748b;margin-top:3px;font-size:10px}.dashboard-stock-progress{width:100%;margin:0}.dashboard-alert-list{gap:7px;display:grid}.dashboard-alert-list button{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:9px;display:grid}.dashboard-alert-list button:hover{background:#f8fbff;border-color:#93c5fd}.dashboard-alert-list b,.dashboard-alert-list small{display:block}.dashboard-alert-list small{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:10px;overflow:hidden}.dashboard-alert-list i{color:#64748b;font-size:18px;font-style:normal}.dashboard-stock-card,.dashboard-alert-card{min-height:0;padding:20px}.dashboard-stock-card{background:linear-gradient(145deg,#fff,#f8fbff)}.dashboard-alert-card{background:linear-gradient(145deg,#fff,snow)}.dashboard-stock-legend{background:#fff;border:1px solid #e8eef6;border-radius:9px;padding:9px 11px}.dashboard-stock-list{gap:6px}.dashboard-stock-list .dashboard-stock-row{cursor:pointer;background:#fff;border:1px solid #0000;border-radius:10px;grid-template-columns:30px minmax(120px,.85fr) minmax(170px,1.1fr) auto;min-height:56px;padding:8px 9px;transition:all .18s}.dashboard-stock-list .dashboard-stock-row:hover{border-color:#bfdbfe;transform:translateY(-1px);box-shadow:0 5px 12px #2563eb14}.dashboard-row-index{color:#2563eb;background:#eff6ff;border-radius:7px;place-items:center;width:25px;height:25px;font-size:10px;font-weight:800;display:grid}.dashboard-stock-chart{gap:5px;display:grid}.dashboard-stock-chart>div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.dashboard-stock-chart small{color:#94a3b8;letter-spacing:.06em;margin:0;font-size:9px;font-weight:800}.dashboard-stock-chart b{color:#475569;font-size:11px}.dashboard-stock-list .dashboard-stock-progress{background:#e9eef5;width:100%;height:6px;margin:0}.dashboard-stock-list .stock-status{text-align:center;justify-content:center;min-width:76px;font-size:10px}.dashboard-alert-list{gap:8px}.dashboard-alert-list button{border-color:#e9edf3;border-radius:10px;grid-template-columns:34px minmax(0,1fr) auto 18px;min-height:62px;padding:9px 10px;box-shadow:0 2px 5px #0f172a06}.dashboard-alert-list button:hover{background:#fffdfa;border-color:#fdba74;box-shadow:0 6px 14px #c2410c14}.dashboard-alert-icon{color:#c2410c;background:#fff7ed;border-radius:10px;place-items:center;width:32px;height:32px;font-size:17px;font-weight:900;display:grid}.dashboard-alert-icon.empty{color:#e11d48;background:#fff1f2}.dashboard-alert-list .stock-status{justify-content:center;min-width:72px;font-size:10px}.dashboard-alert-list i{color:#94a3b8;font-size:16px}.dashboard-stock-list .dashboard-stock-row:has(.stock-status.empty){background:#fffafb;border-color:#ffe4e6}.dashboard-stock-list .dashboard-stock-row:has(.stock-status.empty) .dashboard-row-index{color:#e11d48;background:#fff1f2}.dashboard-stock-list .dashboard-stock-progress.empty{background:repeating-linear-gradient(135deg,#fff1f2 0 8px,#ffe4e6 8px 16px);position:relative;overflow:visible;box-shadow:inset 0 0 0 1px #fecdd3}.dashboard-stock-list .dashboard-stock-progress.empty span{background:#e11d48;min-width:8px;box-shadow:0 0 0 3px #ffe4e6}.dashboard-stock-list .dashboard-stock-progress.empty:after{content:"หมด";color:#e11d48;font-size:9px;font-weight:800;position:absolute;top:-18px;right:0}.card h2+p{color:#64748b;margin:7px 0 18px;font-size:13px}.empty-message{text-align:center;color:#64748b;padding:28px}.product-image-upload{align-items:center;gap:10px;margin:8px 0 12px;display:flex}.product-image-upload input{opacity:0;width:1px;height:1px;position:absolute}.product-image-upload label{cursor:pointer}.product-image-upload small{color:#64748b;font-size:12px}.product-preview{object-fit:contain;background:#f8fafc;border:1px solid #dce5ef;border-radius:9px;width:150px;height:150px;display:block}.payment-filter{gap:16px;display:grid}.payment-filter-fields{grid-template-columns:minmax(360px,.9fr) minmax(0,1fr);gap:12px;display:grid}.payment-date-range{background:#f8fbff;border:1px solid #dce5ef;border-radius:10px;grid-template-columns:1fr 28px 1fr;align-items:end;gap:7px;padding:10px 12px;display:grid}.payment-date-separator{color:#64748b;text-align:center;padding-bottom:10px;font-size:12px;font-weight:800}.payment-filter-fields label{color:#4d6079;gap:5px;font-size:12px;font-weight:700;display:grid}.payment-device-heading{justify-content:space-between;align-items:center;display:flex}.payment-device-heading span{color:#64748b;font-size:13px}.payment-device-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;padding:3px;display:grid;overflow:auto}.payment-device-option{cursor:pointer;border:1px solid #dce5ef;border-radius:8px;align-items:flex-start;gap:9px;padding:10px;display:flex}.payment-device-option.selected{background:#eff6ff;border-color:#2563eb}.payment-device-option input{width:auto;min-height:auto;margin-top:4px}.payment-device-option small{color:#64748b;margin-top:3px;font-size:11px;display:block}.payment-error{color:#b4233d;background:#fff1f2;border:1px solid #fecaca;border-radius:8px;margin:0 0 16px;padding:12px}.payment-metrics{margin-top:20px}.ads-page{gap:16px;display:grid}.ads-controls{grid-template-columns:minmax(260px,1fr) minmax(260px,420px);gap:14px;display:grid}.ads-controls>label{color:#4d6079;gap:5px;font-size:12px;font-weight:700;display:grid}.ads-controls .ads-all{grid-column:1/-1;align-items:center;gap:8px;font-size:13px;display:flex}.ads-all input{width:auto;min-height:auto}.ads-controls .actions{grid-column:1/-1}.ads-head{justify-content:space-between;align-items:start;gap:15px;margin-bottom:12px;display:flex}.ads-list{gap:12px;display:grid}.ads-item{border:1px solid #dce5ef;border-radius:10px;grid-template-columns:120px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.ads-item img,.ads-placeholder{object-fit:contain;background:#f1f5f9;border-radius:7px;width:120px;height:90px}.ads-placeholder{color:#64748b;place-items:center;font-size:12px;display:grid}.ads-fields{grid-template-columns:1fr 140px;gap:9px;display:grid}.ads-fields label{color:#4d6079;gap:4px;font-size:11px;font-weight:700;display:grid}.ads-fields .ads-url{grid-column:span 2}.ads-fields .ads-upload{display:block}.ads-upload input{border:0;min-height:auto;padding:0;font-size:11px}.config-page{gap:16px;display:grid}.config-card{gap:14px;max-width:920px;display:grid}.config-card>label{color:#4d6079;gap:5px;font-size:12px;font-weight:700;display:grid}.config-card .ads-all{align-items:center;gap:8px;font-size:13px;display:flex}.config-card .ads-all input{width:auto;min-height:auto}.config-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.config-grid label{color:#4d6079;gap:5px;font-size:12px;font-weight:700;display:grid}.config-grid .config-wide{grid-column:1/-1}.device-manage-page{gap:16px;display:grid}.device-manage-head{justify-content:space-between;align-items:center;gap:18px;display:flex}.device-manage-head h2{margin:3px 0}.device-manage-head p,.device-manage-head small{color:#64748b;font-size:12px}.device-shortcuts{flex-wrap:wrap;gap:8px;display:flex}.device-tabs{border-bottom:1px solid #dce5ef;gap:6px;display:flex;overflow:auto}.device-tabs button{color:#64748b;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font:700 13px inherit}.device-tabs button.active{color:#1d4ed8;border-color:#2563eb}.device-overview{gap:16px;display:grid}.device-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;display:grid}.device-info p{color:#4d6079;margin:8px 0}.refill-summary-card{overflow:auto}.refill-total{color:#166534;background:#dcfce7;border-radius:8px;padding:8px 11px;font-size:14px}.refill-quantity{color:#0f766e}.device-manage-page pre{color:#d8e8fb;background:#10243e;border-radius:8px;max-height:520px;padding:14px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.device-banner-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.device-banner-list article{border:1px solid #dce5ef;border-radius:8px;gap:8px;padding:10px;display:grid}.device-banner-list img{object-fit:contain;background:#f1f5f9;border-radius:6px;width:100%;height:110px}.device-banner-list small{color:#64748b;margin-top:3px;display:block}.shelves-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;display:grid}.shelf-card{background:#fff;border:1px solid #dce5ef;border-radius:10px;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:12px;display:grid}.shelf-card.off{opacity:.62;background:#f8fafc}.shelf-card img,.shelf-image-empty{object-fit:contain;background:#f1f5f9;border-radius:8px;width:104px;height:104px}.shelf-image-empty{color:#64748b;place-items:center;font-size:12px;display:grid}.shelf-card-body{gap:6px;min-width:0;display:grid}.shelf-card-body>strong{text-overflow:ellipsis;white-space:nowrap;color:#172033;overflow:hidden}.shelf-card-body small{color:#64748b;font-size:11px;line-height:1.45}.shelf-card-title{color:#1d4ed8;justify-content:space-between;gap:8px;font-size:12px;display:flex}.shelf-card-title span{text-overflow:ellipsis;white-space:nowrap;color:#64748b;overflow:hidden}.shelf-card.refill{background:linear-gradient(135deg,#fffdf7,#fff7e8);border:2px solid #f59e0b;box-shadow:0 4px 14px #d9770629}.shelf-card.refill .shelf-card-title,.shelf-card.refill .shelf-stock strong{color:#b45309}.shelf-stock{color:#34516f;background:#eff6ff;border-radius:6px;gap:3px;padding:7px 8px;font-size:11px;display:grid}.shelf-stock strong{color:#0f766e}.shelf-actions{justify-content:flex-end;display:flex}.shelf-actions .button{min-height:32px;padding:5px 8px;font-size:11px}.shelf-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.stock-refill-modal{width:min(780px,100vw - 32px)}.stock-sales-summary{color:#34516f;background:#eff6ff;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:10px 12px;font-size:13px;display:flex}.stock-sales-summary b{color:#1d4ed8;font-size:17px}.stock-refill-list{gap:8px;max-height:360px;display:grid;overflow:auto}.stock-refill-list article{border:1px solid #dce5ef;border-radius:8px;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:12px;padding:10px;display:grid}.stock-refill-list .stock-refill-item{background:linear-gradient(135deg,#f8fbff,#eff6ff);border-color:#bfdbfe;box-shadow:0 1px 2px #2563eb14}.stock-refill-list b,.stock-refill-list small{display:block}.stock-refill-list small{color:#64748b;margin-top:3px;font-size:11px}.stock-refill-list label{color:#4d6079;gap:4px;font-size:11px;font-weight:700;display:grid}.refill-number-button{color:#1d4ed8;cursor:pointer;background:#fff;border:1px solid #2563eb;border-radius:8px;min-height:46px;font:800 19px/1 inherit}.refill-number-button small{color:#64748b;font-size:11px;font-weight:600;display:inline}.keypad-overlay{z-index:30;background:#0f172a8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.keypad{background:#fff;border-radius:16px;width:min(380px,100%);padding:18px;box-shadow:0 24px 60px #0f172a52}.keypad-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.keypad-head small{color:#64748b;margin-top:4px;font-size:11px;display:block}.keypad output{color:#1d4ed8;text-align:right;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;margin:16px 0 12px;padding:13px;font-size:34px;font-weight:800;display:block}.keypad-keys{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.keypad-keys button{color:#172033;cursor:pointer;background:#fff;border:1px solid #d7e0ea;border-radius:10px;min-height:54px;font:800 21px/1 inherit}.keypad-keys button:active,.refill-number-button:active{background:#dbeafe;transform:scale(.97)}.keypad-keys .keypad-clear{color:#b4233d;font-size:13px}.keypad-save{width:100%;margin-top:12px}.stock-checkbox{color:#334155;align-items:flex-start;gap:8px;font-size:13px;display:flex}.stock-checkbox input{width:auto;min-height:auto;margin-top:3px}.stock-note{color:#64748b;margin:0;font-size:11px}.detailShell{grid-template-columns:1fr}.detailShell main{width:100%;max-width:1600px;margin:0 auto}.dashboard-stock-list .dashboard-stock-progress.empty{overflow:hidden}.dashboard-stock-list .dashboard-stock-progress.empty span{min-width:6px;box-shadow:none}.dashboard-stock-list .dashboard-stock-progress.empty:after{display:none}.dashboard-stock-list .stock-status{align-items:center;height:25px;display:inline-flex}.dashboard-stock-bar{background:#e9eef5;border-radius:999px;width:100%;height:7px;min-height:7px;max-height:7px;display:block;overflow:hidden;box-shadow:inset 0 1px 1px #0f172a0d}.dashboard-stock-bar span{border-radius:inherit;background:linear-gradient(90deg,#22c55e,#4ade80);height:7px;min-height:7px;max-height:7px;transition:width .35s;display:block}.dashboard-stock-bar span.refill{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.dashboard-stock-bar span.empty{background:#e11d48;min-width:0}.dashboard-stock-list .dashboard-stock-row{height:64px;min-height:64px;max-height:64px;overflow:hidden}.dashboard-stock-list .dashboard-stock-chart{min-height:0}.dashboard-stock-list .dashboard-stock-bar{background:#e9eef5!important;height:8px!important;min-height:8px!important;max-height:8px!important;overflow:hidden!important;box-shadow:inset 0 1px 1px #0f172a0d!important}.dashboard-stock-list .dashboard-stock-bar span.empty{min-width:0!important;box-shadow:none!important;background:#e11d48!important}.dashboard-status-pill,.dashboard-alert-pill{box-sizing:border-box;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;font-weight:800;min-width:78px!important;height:26px!important;min-height:26px!important;max-height:26px!important;box-shadow:none!important;margin:0!important;padding:0 10px!important;font-size:10px!important;line-height:1!important;display:inline-flex!important}.dashboard-status-pill.full{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.dashboard-status-pill.refill{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.dashboard-status-pill.empty,.dashboard-alert-pill.empty{color:#be123c;background:#fff1f2;border-color:#fecdd3}.dashboard-alert-pill.refill{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.dashboard-alert-list button{height:64px;min-height:64px;max-height:64px;overflow:hidden}.dashboard-stock-list .stock-progress.dashboard-stock-progress,.dashboard-stock-list .dashboard-stock-progress{height:8px!important;min-height:8px!important;max-height:8px!important;overflow:hidden!important}.dashboard-stock-list .stock-progress.dashboard-stock-progress.empty,.dashboard-stock-list .dashboard-stock-progress.empty{background:#e9eef5!important;position:static!important;box-shadow:inset 0 1px 1px #0f172a0d!important}.dashboard-stock-list .stock-progress.dashboard-stock-progress.empty span,.dashboard-stock-list .dashboard-stock-progress.empty span{min-width:0!important;height:7px!important;box-shadow:none!important;background:#e11d48!important}.dashboard-stock-bar span.empty,.dashboard-stock-list .stock-progress.dashboard-stock-progress.empty span,.dashboard-stock-list .dashboard-stock-progress.empty span,.dashboard-stock-legend i.empty{display:none!important}@media (width<=700px){.config-grid{grid-template-columns:1fr}.config-grid .config-wide{grid-column:auto}.stock-refill-list article{grid-template-columns:1fr}.device-pagination,.device-pagination>div{flex-wrap:wrap;align-items:flex-start}.dashboard-grid{grid-template-columns:1fr}.app-header{flex-direction:column;align-items:flex-start}}@media (width<=560px){.product-filters{flex-direction:column;width:100%}.product-filters select,.product-filters input{width:100%}.product-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.payment-filter-fields,.payment-device-list{grid-template-columns:1fr}.dashboard-hero{flex-direction:column;align-items:flex-start;padding:22px}.dashboard-stock-list .dashboard-stock-row{grid-template-columns:28px minmax(0,1fr) auto}.dashboard-stock-chart{grid-column:2/-1}.dashboard-alert-list button{grid-template-columns:34px minmax(0,1fr) auto}.dashboard-alert-list button>i{display:none}}@media (width<=700px){.ads-controls,.ads-item,.ads-fields{grid-template-columns:1fr}.ads-controls .ads-all,.ads-controls .actions,.ads-fields .ads-url{grid-column:auto}.ads-item img,.ads-placeholder{width:100%;height:160px}.ads-item>.button{width:100%}}
