:root{--wms-bg: #f2f2f3;--wms-surface: #e9e9ea;--wms-text: #1d1f20;--wms-accent: #5980a6;--wms-divider: rgba(29, 31, 32, .16);--wms-pending: #7a7a7d;--wms-pending-fill: #e7e7ea;--wms-pending-ink: #424244;--wms-pending-line: #b7b7ba;--wms-progress: #5980a6;--wms-progress-fill: #d6ebff;--wms-progress-ink: #2c455d;--wms-progress-line: #94bce3;--wms-partial: #6f68a0;--wms-partial-fill: #e3e0f0;--wms-partial-ink: #3f3b68;--wms-partial-line: #b0aad4;--wms-complete: #3f7d64;--wms-complete-fill: #dcece4;--wms-complete-ink: #245140;--wms-complete-line: #9cc4b3;--wms-hold: #a8823c;--wms-hold-fill: #f3e8d2;--wms-hold-ink: #6b5220;--wms-hold-line: #d3b681;--wms-exception: #a8524a;--wms-exception-fill: #f2ddd9;--wms-exception-ink: #6d2f2a;--wms-exception-line: #d3a29c;--wms-cancelled: #98989b;--wms-cancelled-fill: #f5f5f8;--wms-cancelled-ink: #7a7a7d;--wms-cancelled-line: #b7b7ba;--wms-util-1: #b5d9fd;--wms-util-2: #749dc4;--wms-util-3: #416180;--wms-util-4: #a8823c;--wms-util-5: #a8524a;--wms-dark-bg: #1d2d3d;--wms-dark-surface: #2c455d;--wms-dark-text: #eef6ff;--wms-dark-accent: #94bce3;--wms-dark-divider: rgba(238, 246, 255, .22)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Malgun Gothic,sans-serif;background:var(--wms-bg);color:var(--wms-text)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:56px 40px;color:#fff;background:radial-gradient(circle at 22% 18%,rgba(148,188,227,.32),transparent 45%),radial-gradient(circle at 82% 78%,rgba(148,188,227,.14),transparent 50%),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0px,rgba(255,255,255,.035) 1px,transparent 1px,transparent 28px),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0px,rgba(255,255,255,.035) 1px,transparent 1px,transparent 28px),linear-gradient(150deg,#121f2b 0%,var(--wms-dark-bg) 50%,var(--wms-dark-surface) 100%)}.login-shell-inner{width:100%;max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:64px}.login-info{flex:1;min-width:0;max-width:640px;display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:460px}.login-info-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.login-wordmark-eyebrow{font-size:13px;font-weight:700;letter-spacing:3px;color:var(--wms-dark-accent);margin-bottom:6px}.login-wordmark h1{font-size:64px;font-weight:800;margin:0;letter-spacing:1px;line-height:1}.login-wordmark p{font-size:15px;color:#b9c8de;margin:10px 0 0}.login-features{display:flex;gap:26px;flex-wrap:wrap;padding-top:8px}.login-feature{display:flex;flex-direction:column;align-items:center;gap:8px;color:#cfdcee;font-size:12px}.login-feature-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#ffffff12;border:1px solid rgba(255,255,255,.14);color:#dce7f7}.login-tagline{font-size:24px;font-weight:600;line-height:1.4;margin:0 0 18px}.login-hub-tag{display:flex;align-items:center;gap:12px}.login-hub-line{width:28px;height:2px;background:var(--wms-dark-accent);display:inline-block}.login-hub-tag strong{display:block;font-size:13px;letter-spacing:1.5px;color:var(--wms-dark-accent)}.login-hub-tag span{font-size:12px;color:#97a8c2;letter-spacing:.5px}.login-card-wrap{flex-shrink:0;width:380px}.login-card{background:#fff;border-radius:16px;padding:36px 32px 28px;box-shadow:0 20px 48px #030c1c73;color:#1a1a1a}.login-card h2{text-align:center;font-size:19px;margin:0 0 24px}.login-input{position:relative;margin-bottom:12px}.login-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9aa5b8;display:flex}.login-input input{width:100%;padding:11px 12px 11px 40px;font-size:13px;border-radius:8px}.login-remember{display:flex;align-items:center;gap:8px;font-size:13px;color:#555;margin:4px 0 18px;cursor:pointer}.login-remember input{min-width:0;width:auto;margin:0}.login-submit{width:100%;padding:11px;font-size:14px;font-weight:600;border-radius:8px}.login-card-footer{text-align:center;margin-top:20px}.login-contact{font-size:12px;color:#999;margin:0 0 6px}.login-copyright{font-size:11px;color:#bbb;margin:0}@media (max-width: 900px){.login-shell{justify-content:center;padding:24px}.login-info{display:none}.login-card-wrap{width:100%;max-width:380px}}.app-shell{display:flex;min-height:100vh}.sidebar{width:200px;background:var(--wms-dark-bg);color:var(--wms-dark-text);flex-shrink:0}.sidebar-inner{padding:20px 0;position:sticky;top:0;max-height:100vh;overflow-y:auto}.sidebar-header{padding:0 20px 16px;border-bottom:1px solid var(--wms-dark-divider);display:flex;align-items:center;justify-content:space-between}.sidebar-header h2{font-size:13px;line-height:1.35;margin:0;font-weight:700}.brand-hub-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.5px;background:var(--wms-accent, #5980a6);color:#fff;vertical-align:middle}.sidebar-close-btn{display:none;background:transparent;border:none;color:var(--wms-dark-text);font-size:18px;line-height:1;cursor:pointer;padding:4px}.sidebar .user-info{padding:12px 20px;font-size:12px;color:var(--wms-dark-accent);border-bottom:1px solid var(--wms-dark-divider);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.pw-change-btn{font-size:11px;padding:3px 8px;background:transparent;border:1px solid var(--wms-dark-divider);color:var(--wms-dark-text);border-radius:5px;cursor:pointer;white-space:nowrap}.pw-change-btn:hover{background:var(--wms-dark-surface)}.nav-item{padding:10px 20px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:10px}.nav-item:hover{background:var(--wms-dark-surface)}.nav-item.active{background:var(--wms-dark-accent);color:var(--wms-dark-bg);font-weight:600}.nav-group-header{padding:14px 20px 6px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--wms-dark-accent);text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none}.nav-group-header:hover{color:var(--wms-dark-text)}.nav-group-chevron{display:inline-block;font-size:10px;transition:transform .15s ease;transform:rotate(0)}.nav-group-chevron.collapsed{transform:rotate(-90deg)}.nav-group+.nav-group .nav-group-header{border-top:1px solid var(--wms-dark-divider);margin-top:6px}.logout-btn{margin:16px 20px 0;padding:8px 12px;font-size:12px;background:transparent;border:1px solid var(--wms-dark-divider);color:var(--wms-dark-text);border-radius:6px;cursor:pointer;width:calc(100% - 40px)}.pwa-install-btn{margin:0 20px 8px;padding:8px 12px;font-size:12px;font-weight:600;background:var(--wms-dark-accent);border:none;color:var(--wms-dark-bg);border-radius:6px;cursor:pointer;width:calc(100% - 40px)}.pwa-install-hint{margin:0 20px 8px;padding:8px 10px;font-size:11px;line-height:1.5;color:var(--wms-dark-accent);background:#94bce31a;border:1px solid var(--wms-dark-divider);border-radius:6px}.mobile-topbar,.sidebar-overlay{display:none}.main{flex:1;padding:28px 36px;overflow-x:auto}.main h1{font-size:20px;margin-bottom:4px}.main .subtitle{color:#777;font-size:13px;margin-bottom:20px}@media (max-width: 860px){.app-shell{display:block}.mobile-topbar{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--wms-dark-bg);color:var(--wms-dark-text);position:sticky;top:0;z-index:30}.mobile-topbar-title{font-size:12px;font-weight:600;line-height:1.3}.hamburger-btn{width:32px;height:28px;display:flex;flex-direction:column;justify-content:center;gap:5px;background:transparent;border:none;cursor:pointer;padding:0;flex-shrink:0}.hamburger-btn span{display:block;height:2px;background:var(--wms-dark-text);border-radius:2px}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:90}.sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;max-width:80vw;transform:translate(-100%);transition:transform .22s ease;z-index:95;overflow-y:auto}.sidebar.open{transform:translate(0)}.sidebar-close-btn{display:block}.main{padding:20px 16px}.form-row{row-gap:10px}.field{flex:1 1 100%;min-width:0}.field input,.field select{width:100%}input,select{min-width:0}.card{overflow-x:auto}.card table{width:auto;min-width:100%}}.card{background:#fff;border-radius:10px;padding:20px;margin-bottom:20px;box-shadow:0 1px 4px #0000000f}.card h3{margin-top:0;font-size:15px}.section-divider{border:none;border-top:1px solid var(--wms-divider);margin:20px 0 16px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid #eee}th{color:#666;font-weight:600;background:#fafafa}tr:hover td{background:#fafbfe}.compact-table th,.compact-table td{padding-top:5px;padding-bottom:5px}.form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;color:#666}input,select{padding:7px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;min-width:120px;color:#1a1a1a}input:required,select:required{border-width:1.5px;border-color:#999}select:required:invalid{color:#999}input.input-error,select.input-error{border-color:var(--wms-exception);box-shadow:0 0 0 1px var(--wms-exception)}input[type=date]:invalid{border-color:var(--wms-exception);box-shadow:0 0 0 1px var(--wms-exception)}.expiry-date-input{display:inline-flex;align-items:center;gap:3px}.expiry-date-input input{min-width:0;width:34px;padding:7px 2px;text-align:center}.expiry-date-input input.expiry-y{width:52px}.expiry-date-input .expiry-sep{color:#999}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-th:hover{color:var(--wms-accent)}.sort-arrow{font-size:10px}.scroll-top-btn{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;align-items:center;gap:4px;padding:10px 16px;border-radius:999px;background:var(--wms-dark-bg);color:var(--wms-dark-text);border:1px solid var(--wms-dark-divider);font-size:13px;font-weight:600;box-shadow:0 4px 14px #00000040;cursor:pointer}.scroll-top-btn:hover{background:var(--wms-dark-surface)}.scroll-top-arrow{font-size:11px}@media (max-width: 860px){.scroll-top-btn{right:16px;bottom:16px}}.item-row .field label{font-size:11px}.product-search-select input{min-width:220px}.product-search-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;width:max-content;max-width:900px;max-height:650px;overflow-y:auto;overflow-x:hidden;resize:horizontal;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 6px 16px #00000026;z-index:100}.resizable-modal{resize:both;overflow:auto;min-width:320px;min-height:160px;max-width:96vw;max-height:94vh}.product-search-option{padding:7px 10px;font-size:13px;color:#1a1a1a;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-search-option .sku{font-weight:600;color:var(--wms-accent)}.product-search-option:hover,.product-search-option.active{background:var(--wms-surface)}.product-search-option.selected{background:#eef6ff}.product-search-option.disabled{color:#bbb;cursor:not-allowed}.product-search-option.disabled:hover{background:transparent}.product-search-option .no-barcode-tag{margin-left:6px;font-size:11px;color:var(--wms-hold-ink)}.product-search-empty,.product-search-hint{padding:8px 10px;font-size:12px;color:#999;white-space:nowrap}button{padding:7px 14px;border:none;border-radius:6px;background:var(--wms-accent);color:#fff;font-size:13px;cursor:pointer}button:hover{background:var(--wms-progress-ink)}button.secondary{background:#eef0f5;color:#333}button.secondary:hover{background:#e2e5ec}button:disabled{background:#ccc;cursor:not-allowed}.subtabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid #e0e0e0;flex-wrap:wrap}.subtabs button{background:transparent;color:#666;border:none;border-radius:0;border-bottom:2px solid transparent;padding:10px 14px;font-size:14px}.subtabs button:hover{background:var(--wms-surface);color:var(--wms-text)}.subtabs button.active{color:var(--wms-accent);border-bottom-color:var(--wms-accent);font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.badge.PENDING{background:var(--wms-pending-fill);color:var(--wms-pending-ink)}.badge.RECEIVED,.badge.SHIPPED{background:var(--wms-complete-fill);color:var(--wms-complete-ink)}.badge.CANCELLED{background:var(--wms-cancelled-fill);color:var(--wms-cancelled-ink)}.badge.SHIPPING_READY{background:var(--wms-progress-fill);color:var(--wms-progress-ink)}.badge.COMPLETED{background:var(--wms-complete-fill);color:var(--wms-complete-ink)}.badge.EXCEL{background:#e2efda;color:#375623}[data-collapse-title]{cursor:pointer;-webkit-user-select:none;user-select:none}[data-collapse-title]:before{content:"▾";display:inline-block;width:1em;margin-right:4px;font-size:.95em;color:#555;transition:transform .15s}.card[data-collapsed="1"] [data-collapse-title]:before{transform:rotate(-90deg)}.card[data-collapsed="1"]>:not([data-collapse-head]):not(:has([data-modal-backdrop])){display:none!important}.card[data-collapsed="1"]>[data-collapse-head]{margin-bottom:0}.icon-btn{background:none;border:none;cursor:pointer;color:var(--wms-accent);display:inline-flex;align-items:center}.icon-btn:hover{opacity:1!important}@media print{.app-shell .sidebar,.main>h1,.main>.subtitle,.no-print,.scroll-top-btn{display:none!important}.waybill-print-area{box-shadow:none!important}}.warehouse-layout-print-area{display:none}@media print{.warehouse-layout-print-area{display:block}}.inbound-label-print-area{display:none}@media print{.inbound-label-print-area{display:block}@page{size:75mm 50mm;margin:0}.inbound-label{width:75mm;height:50mm;box-sizing:border-box;padding:3mm 4mm 2mm;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;page-break-after:always;break-after:page}.inbound-label:last-child{page-break-after:auto;break-after:auto}}.bottle-label-print-area{display:none}@media print{.bottle-label-print-area{display:block}.bottle-label{width:50mm;height:15mm;box-sizing:border-box;padding:1mm 1.5mm 1mm 1mm;display:flex;align-items:center;gap:1.2mm;overflow:hidden;color:#000;font-family:Arial,Helvetica,sans-serif;page-break-after:always;break-after:page}.bottle-label:last-child{page-break-after:auto;break-after:auto}.bottle-label-qr{width:13mm;height:13mm;flex:none}.bottle-label-qr svg{width:13mm;height:13mm;display:block}.bottle-label-text{flex:1;min-width:0;height:13mm;display:flex;flex-direction:column;justify-content:space-between}.bottle-label-name{font-size:6.8pt;line-height:1.2;font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bottle-label-row{display:flex;justify-content:space-between;align-items:baseline;font-size:6pt}.bottle-label-loc{font-size:8pt;font-weight:700}}.inbound-label-barcode{width:60mm;height:12mm;margin-bottom:1mm}.inbound-label-barcode-value{font-size:9px;letter-spacing:1px;color:#333;margin-bottom:2mm}.inbound-label-name{font-size:14px;font-weight:700;text-align:center;margin-bottom:2mm;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbound-label-row{font-size:11px;color:#111;margin-bottom:1mm;align-self:flex-start}.inbound-label-date{margin-top:auto;font-size:8px;color:#666;align-self:flex-end}.error-msg{background:var(--wms-exception-fill);color:var(--wms-exception-ink);padding:8px 12px;border-radius:6px;font-size:13px;margin-bottom:12px}.empty-state{color:#999;font-size:13px;padding:16px 0}.item-row{display:flex;gap:8px;margin-bottom:6px;align-items:center}.remove-item{background:var(--wms-exception-fill);color:var(--wms-exception-ink);padding:4px 8px;font-size:12px}@keyframes wms-request-note-rainbow{0%{color:#e0433d}20%{color:#4a7fd6}40%{color:#3f9d5c}60%{color:#d6a72e}80%{color:#9358c9}to{color:#e0433d}}.request-note-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-weight:700;font-size:13px;cursor:pointer;animation:wms-request-note-rainbow 2.5s linear infinite;background:none;border:none;padding:0}.request-note-badge .star{font-size:15px;line-height:1}.request-note-content{margin-top:6px;padding:8px 10px;border-radius:6px;background:var(--wms-surface);border:1px solid var(--wms-divider);font-size:13px;white-space:pre-wrap}@keyframes wms-list-star-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}.request-note-star{display:inline-block;margin-right:4px;font-size:15px;line-height:1;cursor:pointer;background:none;border:none;padding:0;vertical-align:middle;animation:wms-request-note-rainbow 2.5s linear infinite,wms-list-star-blink 1s ease-in-out infinite}
