:root{--color-primary:#176b57;--color-primary-hover:#125846;--color-primary-soft:#e9f5f1;--color-success:#2d805b;--color-success-soft:#e9f6ef;--color-warning:#8c6509;--color-warning-soft:#fff7df;--color-danger:#b54741;--color-danger-soft:#fff0ed;--color-info:#376da8;--color-info-soft:#eaf2fc;--color-muted:#687773;--color-background:#f5f8f7;--color-surface:#ffffff;--color-border:#e2e9e6;--color-border-strong:#cfdad6;--color-text-primary:#172622;--color-text-secondary:#56645f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgba(16,35,29,0.06);--shadow-md:0 6px 20px rgba(16,35,29,0.08);--font-sans:Inter,"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:20px;--font-size-2xl:26px;--z-dropdown:20;--z-modal:50;--z-toast:80}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-background);font-size:var(--font-size-base);line-height:1.5}a{color:var(--color-primary)}h1,h2,h3{line-height:1.25;margin:0}p{margin:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:#123b33;color:#dbeae6;padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2) var(--space-4);flex-shrink:0}button.sidebar-close,button.sidebar-toggle{display:none}.sidebar-close{background:transparent;border:none;color:#dbeae6;padding:var(--space-1);border-radius:var(--radius-sm);cursor:pointer;flex:none}.sidebar-close:hover{background:#1c5145;color:#fff}.sidebar-backdrop{display:none}.sidebar-brand-mark{width:36px;height:36px;border-radius:var(--radius-md);background:#f1fbf7;color:var(--color-primary);display:grid;place-items:center;font-size:18px;font-weight:700;flex:none}.sidebar-brand strong{display:block;flex:1 1;font-size:var(--font-size-sm);color:#fff}.sidebar-nav{align-content:start;flex:1 1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.sidebar-account,.sidebar-nav{display:grid;grid-gap:2px;gap:2px}.sidebar-account{flex-shrink:0;border-top:1px solid rgba(255,255,255,.12);padding-top:var(--space-2)}.sidebar-section-label{margin:var(--space-3,12px) 0 2px;padding:0 12px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5)}.sidebar-link{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:#bcd0cb;text-decoration:none;font-size:var(--font-size-base)}.sidebar-link.active,.sidebar-link:hover{background:#1c5145;color:#fff}.sidebar-link.active{font-weight:600}.topbar{height:60px;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:0 var(--space-6);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-dropdown)}.topbar-clock{font-size:var(--font-size-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.topbar-clock,.topbar-user{color:var(--color-text-secondary)}.topbar-user{font-size:var(--font-size-sm)}.content{padding:var(--space-6);max-width:1200px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:9px 14px;border-radius:var(--radius-sm);font-weight:600;font-size:var(--font-size-base);border:1px solid transparent;cursor:pointer;background:var(--color-surface);color:var(--color-text-primary);white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-outline{border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-outline:hover:not(:disabled){background:var(--color-background)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-ghost{background:transparent;color:var(--color-text-secondary);padding:6px 8px}.btn-ghost:hover:not(:disabled){background:var(--color-background);color:var(--color-text-primary)}.btn-sm{padding:5px 10px}.btn-sm,.field{font-size:var(--font-size-sm)}.field{display:grid;grid-gap:var(--space-1);gap:var(--space-1);font-weight:600;color:var(--color-text-primary)}.field-hint{font-weight:400;color:var(--color-text-secondary)}.input,.select,.textarea{font:inherit;width:100%;padding:9px 11px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary)}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary)}.textarea{resize:vertical}.field-error{color:var(--color-danger);font-size:var(--font-size-sm);font-weight:400;margin:0}.form-section{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.form-section legend,.form-section-title{font-weight:700;font-size:var(--font-size-base);padding:0 var(--space-1)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-4);gap:var(--space-4)}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.search-input{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);padding:0 var(--space-3);height:40px;max-width:420px}.search-input svg{color:var(--color-text-secondary);flex:none}.search-input input{border:0;outline:0;font:inherit;width:100%;background:transparent}.card,.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.panel-header h2{font-size:var(--font-size-base);font-weight:700}.panel-header p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:2px}.panel-body{padding:var(--space-5)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.page-header h1{font-size:var(--font-size-2xl);margin-bottom:4px}.page-header p{color:var(--color-text-secondary)}.page-header-actions{display:flex;gap:var(--space-3);align-items:center}.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:var(--space-3);gap:var(--space-3);margin-bottom:var(--space-6)}@media (max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}}.metric-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--color-border);border-top:3px solid var(--color-border-strong)}.metric-card span{display:block;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.metric-card strong{display:block;font-size:28px;margin-top:var(--space-3)}.metric-card.accent-waiting{border-top-color:#d5a331}.metric-card.accent-consult{border-top-color:var(--color-info)}.metric-card.accent-dispense{border-top-color:#8d65bc}.metric-card.accent-complete{border-top-color:var(--color-success)}.metric-card.accent-low{border-top-color:var(--color-danger)}button.metric-card{font:inherit;text-align:left;color:inherit;width:100%}.metric-card small{display:block;margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.metric-card.is-clickable{cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.metric-card.is-clickable:hover{box-shadow:var(--shadow-md)}.metric-card.is-clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.metric-card.is-active{background:var(--color-primary-soft);border-color:var(--color-primary)}.metric-grid.cols-4{grid-template-columns:repeat(4,1fr)}.metric-grid.cols-5{grid-template-columns:repeat(5,1fr)}@media (max-width:900px){.metric-grid.cols-4,.metric-grid.cols-5{grid-template-columns:repeat(2,1fr)}}.toolbar{gap:var(--space-3)}.toolbar .search-input{flex:1 1 260px}.toolbar .filter-tabs{margin-bottom:0}.badge-today{display:inline-block;margin-right:6px;padding:1px 8px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-size:11px;font-weight:700;white-space:nowrap}tr.row-updated-today td:first-child{box-shadow:inset 3px 0 0 var(--color-primary)}.table-wrap.table-sticky{max-height:65vh;overflow:auto}.table-wrap.table-sticky thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--color-surface)}.stock-bar{height:4px;margin-top:6px;border-radius:999px;background:var(--color-border);overflow:hidden}.stock-bar>i{display:block;height:100%;background:var(--color-success)}.stock-bar.is-low>i{background:#d5a331}.stock-bar.is-out>i{background:var(--color-danger)}.today-strip{display:flex;gap:var(--space-4);flex-wrap:wrap;margin:calc(var(--space-2) * -1) 0 var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.today-strip strong{color:var(--color-text-primary)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:#fafcfb;white-space:nowrap}td,th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}td{vertical-align:top}tbody tr:last-child td{border-bottom:0}.row-highlight{animation:row-highlight-fade 2.5s ease-out}@keyframes row-highlight-fade{0%{background:var(--color-primary-soft,#fef3c7)}to{background:transparent}}td .cell-secondary{display:block;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-top:2px}.row-link{color:var(--color-primary);font-weight:600;text-decoration:none}.status-badge{display:inline-flex;align-items:center;gap:var(--space-2);border-radius:999px;padding:4px 10px;font-size:var(--font-size-xs);font-weight:700;background:var(--color-background);color:var(--color-text-secondary)}.status-badge i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.status-badge.tone-warning{background:var(--color-warning-soft);color:var(--color-warning)}.status-badge.tone-info{background:var(--color-info-soft);color:var(--color-info)}.status-badge.tone-success{background:var(--color-success-soft);color:var(--color-success)}.status-badge.tone-danger{background:var(--color-danger-soft);color:var(--color-danger)}.status-badge.tone-muted{background:var(--color-background);color:var(--color-text-secondary)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-5)}.tab-button{padding:var(--space-3) var(--space-3);background:none;cursor:pointer;font:inherit;color:var(--color-text-secondary);border:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:700}.empty-state{padding:var(--space-8) var(--space-5);text-align:center;color:var(--color-text-secondary)}.pagination{align-items:center;color:var(--color-text-secondary)}.alert,.pagination{display:flex;gap:var(--space-3);font-size:var(--font-size-sm)}.alert{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);align-items:flex-start}.alert-danger{background:var(--color-danger-soft);color:var(--color-danger)}.alert-warning{background:var(--color-warning-soft);color:var(--color-warning)}.alert-success{background:var(--color-success-soft);color:var(--color-success)}.password-requirements{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-1);gap:var(--space-1);font-size:var(--font-size-sm)}.password-requirements li{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary)}.password-requirements li svg{flex-shrink:0;color:var(--color-danger)}.password-requirements li.is-met,.password-requirements li.is-met svg{color:var(--color-success)}.alert strong{display:block;color:var(--color-text-primary);font-size:var(--font-size-base)}.modal-backdrop{position:fixed;inset:0;background:rgba(16,35,29,.55);display:grid;place-items:center;z-index:var(--z-modal);padding:var(--space-5)}.modal{width:min(480px,100%);background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md);max-height:85vh;overflow-y:auto}.modal-wide{width:min(560px,100%)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.modal-header h2{font-size:var(--font-size-lg)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.toolbar{align-items:center;justify-content:space-between;gap:var(--space-4)}.filter-tabs,.toolbar{display:flex;margin-bottom:var(--space-4);flex-wrap:wrap}.filter-tabs{gap:var(--space-2)}.filter-tab{padding:8px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:none;font:inherit;color:var(--color-text-secondary);cursor:pointer}.filter-tab.active{background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.auth-shell{min-height:100vh;display:grid;place-items:center;background:var(--color-background);padding:var(--space-5)}.auth-card{width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-6);display:grid;grid-gap:var(--space-4);gap:var(--space-4)}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;z-index:var(--z-modal);width:260px;max-width:85vw;transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow-md)}.sidebar.is-open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(16,35,29,.45);z-index:calc(var(--z-modal) - 1)}button.sidebar-toggle{display:inline-flex;margin-right:auto}button.sidebar-close{display:inline-flex}.topbar{padding:0 var(--space-4);gap:var(--space-2)}.topbar-clock{font-size:var(--font-size-xs,12px)}.btn-label,.topbar-user{display:none}.form-grid{grid-template-columns:1fr}}.topbar{height:72px;justify-content:space-between;gap:20px}.topbar-tools{display:flex;align-items:center;gap:16px;min-width:0;margin-left:auto}.topbar-clock{position:relative;flex:none}.topbar-clock summary{display:grid;grid-gap:3px;gap:3px;cursor:pointer;text-align:right;list-style:none;border-radius:6px;padding:4px}.topbar-clock summary time{font-size:15px;font-weight:600;color:var(--color-text-primary);text-transform:uppercase}.topbar-clock summary>span{font-size:11px}.topbar summary::-webkit-details-marker{display:none}.topbar summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.topbar-availability{position:relative;flex:none}.topbar-availability summary{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;border:1px solid var(--color-border);border-radius:8px;list-style:none;cursor:pointer;font-size:12px}.topbar-availability summary:hover,.topbar-availability[open] summary{background:var(--color-background)}.availability-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:#697570}.availability-dot[data-status=AVAILABLE]{background:#218253}.availability-dot[data-status=ON_BREAK]{background:#ad720b}.availability-dot[data-status=UNAVAILABLE]{background:#b34848}.topbar-availability-panel{position:absolute;right:0;top:calc(100% + 14px);width:220px;display:grid;grid-gap:4px;gap:4px;padding:10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:0 8px 28px rgba(16,35,29,.12)}.topbar-availability-panel>strong{padding:6px 8px 10px;color:var(--color-text-secondary);font-size:11px}.topbar-availability-panel button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 8px;border:0;border-radius:6px;background:transparent;color:var(--color-text-primary);font:inherit;font-size:13px;text-align:left;cursor:pointer}.topbar-availability-panel button:focus-visible,.topbar-availability-panel button:hover{background:var(--color-background)}.topbar-availability-panel button[aria-pressed=true]{background:#e8f0ec;color:#1c5145;font-weight:600}.topbar-availability-panel button:disabled{opacity:.6;cursor:wait}.availability-check{margin-left:auto}.topbar-tools>.btn{height:36px;border-radius:8px}.topbar-account{position:relative;border-left:1px solid var(--color-border);padding-left:16px}.topbar-account summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;border-radius:8px}.topbar-avatar{display:grid;place-items:center;width:34px;height:34px;flex:none;background:#e8f0ec;color:#1c5145;border-radius:50%;font-size:12px;font-weight:700}.topbar-user{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary);font-weight:500}.topbar-chevron{color:var(--color-text-secondary)}.topbar-account-panel,.topbar-clock-panel{position:absolute;right:0;top:calc(100% + 14px);display:grid;grid-gap:10px;gap:10px;width:250px;padding:16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:0 8px 28px rgba(16,35,29,.12);color:var(--color-text-primary)}.topbar-account-panel>strong{overflow-wrap:anywhere;padding-bottom:8px;border-bottom:1px solid var(--color-border);font-size:13px}.topbar-account-panel a,.topbar-account-panel button{display:flex;align-items:center;gap:8px;padding:8px;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer;border-radius:6px;text-decoration:none}.topbar-account-panel a:hover,.topbar-account-panel button:hover{background:var(--color-background)}.topbar-clock-panel{font-size:12px;width:280px}.topbar-clock-panel small{color:var(--color-text-secondary)}@media (max-width:1100px){.topbar-user{display:none}.topbar-tools{gap:10px}}@media (max-width:900px){.topbar{gap:10px}button.sidebar-toggle{margin-right:0}}@media (max-width:600px){.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding:10px 12px}.topbar-tools{width:100%;flex-wrap:wrap;justify-content:flex-end;gap:10px}.topbar-clock{margin-right:auto}.topbar-account{padding-left:10px}.topbar-clock-panel{left:0;right:auto;width:min(280px,calc(100vw - 24px))}}.custom-select{position:relative;display:inline-block;width:100%;min-width:0;font-weight:inherit}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;min-height:40px}.custom-select-trigger>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-trigger>svg{flex:none;color:var(--color-text-secondary)}.custom-select-trigger:disabled{opacity:.55;cursor:not-allowed}.custom-select-trigger:focus-visible,.custom-select-trigger[aria-expanded=true]{outline:2px solid var(--color-primary);outline-offset:2px}.custom-select-menu{z-index:10000;overflow-y:auto;overscroll-behavior:contain;padding:6px;background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 8px 28px rgba(16,35,29,.14);font-size:var(--font-size-sm);font-weight:400}.custom-select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border-radius:7px;cursor:pointer;overflow-wrap:anywhere}.custom-select-option>svg{flex:none}.custom-select-option[data-active=true]{background:var(--color-background)}.custom-select-option[aria-selected=true]{background:#e8f0ec;color:#1c5145;font-weight:600}.custom-select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.custom-select-validation{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}