:root{--bg: #eef5f1;--card: #ffffff;--line: #dde8e2;--line-strong: #c5d6cd;--text: #1a1a1a;--green: #12a06d;--green-deep: #0b7d53;--green-soft: #e7f6ef;--danger: #d64560;--danger-text: #b3344c;--danger-soft: #fdecef;--danger-border: #f5c2cc;--amber-soft: #fff7e0;--amber-border: #f0d48a;--amber-text: #7a5b00;--vn-font-scale: 1;--vn-text-2xs: calc(10px * var(--vn-font-scale));--vn-text-xs: calc(11px * var(--vn-font-scale));--vn-text-s: calc(12px * var(--vn-font-scale));--vn-text-m: calc(13px * var(--vn-font-scale));--vn-text-ml: calc(14px * var(--vn-font-scale));--vn-text-l: calc(15px * var(--vn-font-scale));--vn-text-xl: calc(16px * var(--vn-font-scale));--vn-text-xxl: calc(18px * var(--vn-font-scale));--vn-text-2xl: calc(22px * var(--vn-font-scale));--vn-text-3xl: calc(30px * var(--vn-font-scale));--vn-weight-normal: 400;--vn-weight-medium: 600;--vn-weight-bold: 700;--vn-bar-title: #2c4a72;--vn-bar-panel: #3d5f8a;--vn-th-bg: #4b6f9f;--vn-th-fg: #ffffff;--vn-bar-fg: #ffffff;--vn-line-width: 1.5px;--vn-line-head: #48525e;--vn-line-cell: #576270;--vn-line-head-sep: rgba(255, 255, 255, .8);--vn-row-bg: #ffffff;--vn-row-zebra: #fbfaed;--vn-row-hover: #ddeeff;--vn-row-selected: #c8dffa;--vn-pick-bg: #fff6a8;--vn-state-ok: #0a6b47;--vn-state-low: #8a4b00;--vn-state-out: #8f0019;--vn-row-done: #e6e6e6;--vn-sort-ind: rgba(255, 255, 255, .65);--vn-btn-face: #ffffff;--vn-btn-chrome-face: #f8f9fb;--vn-btn-chrome-face-hover: #e4e8ee;--vn-btn-chrome-line: #aab2bd;--vn-btn-chrome-ink: #2c3e50;--vn-btn-danger-face: #fdecea;--vn-btn-danger-face-hover: #f8c8c5;--vn-btn-danger-line: #c83f3f;--vn-btn-danger-ink: #c83f3f;--vn-btn-filter-line-strong: #6d86a9;--vn-btn-filter-line-hover: #555555;--vn-ink: #1a1a1a;--vn-ink-strong: #111111;--vn-ink-sub: #444444;--vn-ink-weak: #555555;--vn-on-dark: #ffffff;--vn-dom-stock: #1f5fa8;--vn-dom-shift: #2e7d4f;--vn-dom-report: #a4531a;--vn-dom-other: #555555;--vn-dom-admin: #6b3fa0;--vn-font-body: "BIZ UDPGothic", "Yu Gothic UI", "Meiryo", -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;--vn-font-mono: "Consolas", "MS Gothic", monospace;font-family:var(--vn-font-body);color:var(--text);accent-color:var(--green-deep)}:root[data-vn-theme=navy]{--vn-bar-title: #2c4a72;--vn-bar-panel: #3d5f8a;--vn-th-bg: #4b6f9f;--vn-th-fg: #ffffff;--vn-bar-fg: #ffffff;--vn-line-head-sep: rgba(255, 255, 255, .8)}:root[data-vn-theme=aqua]{--vn-bar-title: #7ec8e3;--vn-bar-panel: #9bd6ec;--vn-th-bg: #b7e3f4;--vn-th-fg: #0b3a4a;--vn-bar-fg: #0b3a4a;--vn-line-head-sep: rgba(11, 58, 74, .7)}:root[data-vn-theme=green]{--vn-bar-title: #14532d;--vn-bar-panel: #17663a;--vn-th-bg: #1c7f47;--vn-th-fg: #ffffff;--vn-bar-fg: #ffffff;--vn-line-head-sep: rgba(255, 255, 255, .8)}:root[data-vn-theme=charcoal]{--vn-bar-title: #333333;--vn-bar-panel: #4a4a4a;--vn-th-bg: #5c5c5c;--vn-th-fg: #ffffff;--vn-bar-fg: #ffffff;--vn-line-head-sep: rgba(255, 255, 255, .8)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:var(--vn-text-xl);line-height:1.7;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(900px 520px at 82% -12%,rgba(18,160,109,.1),transparent 60%),radial-gradient(720px 460px at 3% 104%,rgba(18,160,109,.06),transparent 60%),linear-gradient(180deg,#f5faf7,#e8f2ec)}:focus-visible{outline:2px solid var(--green-deep);outline-offset:2px}.vn-table{width:100%;border-collapse:collapse;font-size:var(--vn-text-s);background:var(--vn-row-bg);font-variant-numeric:tabular-nums}.vn-table th{background:var(--vn-th-bg);color:var(--vn-th-fg);text-align:center;font-size:var(--vn-text-s);font-weight:var(--vn-weight-normal);border:var(--vn-line-width) solid var(--vn-line-head-sep);border-bottom-color:var(--vn-line-head);height:27px;padding:2px 6px;white-space:nowrap;vertical-align:middle;position:relative}.vn-table td{color:var(--vn-ink);background:var(--vn-row-bg);font-size:var(--vn-text-s);text-align:left;border:var(--vn-line-width) solid var(--vn-line-cell);height:27px;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.vn-table tbody th{color:var(--vn-ink);background:var(--vn-row-zebra);font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);text-align:left;border:var(--vn-line-width) solid var(--vn-line-cell);padding:2px 6px}.vn-table tbody tr:nth-child(odd) td{background:var(--vn-row-zebra)}.vn-table tbody tr:nth-child(2n) td{background:var(--vn-row-bg)}.vn-table tbody tr:hover td{background:var(--vn-row-hover)}.vn-table tbody tr.selected td{background:var(--vn-row-selected)}.vn-table td.num{text-align:right;font-variant-numeric:tabular-nums}.vn-table td.center{text-align:center}.vn-table th.sort-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.vn-table th .sort-ind{color:var(--vn-sort-ind);margin-left:3px;font-size:var(--vn-text-xs)}.vn-table th.sorted .sort-ind{color:var(--vn-on-dark)}.vn-status{font-size:var(--vn-text-m);font-weight:var(--vn-weight-bold);background:none;border:none;border-radius:0;padding:0;white-space:nowrap}.vn-status.ok{color:var(--vn-state-ok)}.vn-status.low{color:var(--vn-state-low)}.vn-status.out{color:var(--vn-state-out)}.vn-nav-item{display:flex;align-items:center;justify-content:space-between;gap:4px;width:100%;height:26px;margin:0 0 5px;padding:0 8px;text-align:left;font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);color:var(--vn-ink);background:linear-gradient(#fff,#ddd);border:1px solid #888;border-radius:0;cursor:pointer;line-height:1.2}.vn-nav-item:hover{background:linear-gradient(#fff,#e8eef7)}.vn-nav-item.vn-nav-sub{margin-left:8px;height:23px;font-size:var(--vn-text-xs);font-weight:var(--vn-weight-medium)}.vn-nav-item.active{background:var(--vn-pick-bg);color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.vn-label{display:block;color:var(--vn-ink);font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);letter-spacing:.02em;margin-bottom:.4rem}.vn-btn{font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);cursor:pointer}h2{margin:0 0 1rem;font-size:var(--vn-text-xl);font-weight:var(--vn-weight-bold);letter-spacing:.01em;display:flex;align-items:center;gap:.55rem}h2:before{content:"";width:9px;height:9px;border-radius:3px;background:linear-gradient(135deg,#14a877,#0c8a5c);box-shadow:0 0 0 3px var(--green-soft);flex:none}h3{margin:1rem 0 .5rem;font-size:var(--vn-text-l);font-weight:var(--vn-weight-bold);color:var(--text)}a{color:var(--green-deep)}ul{list-style:none;padding:0}.app{max-width:720px;margin:0 auto;min-width:320px}.app-header{position:sticky;top:0;z-index:20;background:#ffffffe0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:.65rem 1rem .6rem}.app-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.app-brand{display:flex;align-items:center;gap:10px;min-width:0}.app-emblem{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--green-soft);border:1px solid #bfe6d4;box-shadow:0 6px 16px #12a06d29;color:var(--green-deep);flex:none}.app-emblem svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7}.app-header h1{margin:0;font-family:var(--vn-font-body);font-size:var(--vn-text-xxl);font-weight:var(--vn-weight-bold);letter-spacing:.05em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.app-header-actions{display:flex;align-items:center;gap:.45rem;flex:none}.app-user-role{font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);color:var(--vn-ink-sub);padding:0 .25rem;white-space:nowrap}.app-header-actions>button{min-height:38px;padding:.3rem .9rem;border-radius:999px;font-size:var(--vn-text-m)}.app-nav-toggle{position:relative;flex:none;min-width:44px;min-height:44px;padding:0 .4rem;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--vn-ink);font-size:var(--vn-text-xl);font-weight:var(--vn-weight-medium);line-height:1;cursor:pointer}.app-nav-toggle:hover{border-color:var(--line-strong)}.app-nav-badge{position:absolute;top:2px;right:2px;display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--danger);color:var(--vn-on-dark);font-family:var(--vn-font-mono);font-size:var(--vn-text-2xs);font-weight:var(--vn-weight-bold);line-height:1}.app-drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;background:#00000061}.app-drawer{position:fixed;top:0;left:0;bottom:0;z-index:30;width:min(80vw,300px);overflow-y:auto;padding:.9rem .8rem 1.6rem;background:var(--card);border-right:1px solid var(--line);box-shadow:4px 0 24px #143c2d2e}.app-drawer[hidden]{display:none}.app-drawer-band+.app-drawer-band{margin-top:1.1rem}.app-drawer-band-label{display:flex;align-items:center;padding:.25rem .5rem;margin-bottom:.5rem;background:var(--vn-bar-panel);border:1px solid var(--vn-bar-title);color:var(--vn-bar-fg);font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold)}.app-drawer-band--stock{--vn-dom: var(--vn-dom-stock)}.app-drawer-band--shift{--vn-dom: var(--vn-dom-shift)}.app-drawer-band--report{--vn-dom: var(--vn-dom-report)}.app-drawer-band--other{--vn-dom: var(--vn-dom-other)}.app-drawer-band--admin{--vn-dom: var(--vn-dom-admin)}.app-drawer-band[class*=app-drawer-band--]>.app-drawer-band-label{background:var(--vn-dom);border-color:var(--vn-dom);color:var(--vn-on-dark)}.app-drawer-band[class*=app-drawer-band--]>.app-drawer-item{border-left:5px solid var(--vn-dom)}.app-drawer-work>.app-drawer-band+.app-drawer-band,.app-drawer-work+.app-drawer-band{margin-top:1.1rem}.app-drawer-item{display:flex;align-items:center;justify-content:space-between;gap:.4rem;width:100%;min-height:44px;margin-bottom:.4rem;padding:.5rem .7rem;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--vn-ink);font-size:var(--vn-text-ml);font-weight:var(--vn-weight-medium);line-height:1.3;cursor:pointer}.app-drawer-item:hover{border-color:var(--line-strong)}.app-drawer-subgroup{margin:0 0 .4rem .8rem}.app-drawer-subsection+.app-drawer-subsection{margin-top:.5rem}.app-drawer-subhead{padding:.25rem .5rem;color:var(--vn-ink-sub);font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold)}.app-drawer-item.app-drawer-sub{font-size:var(--vn-text-m);font-weight:var(--vn-weight-normal)}.app-drawer-item.active{background:var(--vn-pick-bg);color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.app-main{padding:1.1rem 1rem 2.5rem}section{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.5rem 1.4rem;box-shadow:0 14px 34px #143c2d12}.tab-stack{display:flex;flex-direction:column;gap:1.1rem}.field,.checkbox{display:block;margin-bottom:.95rem}.required{color:var(--danger-text)}select,textarea,input:not([type=checkbox],[type=radio],[type=file]){width:100%;padding:.7rem .85rem;background:#f6fbf8;border:1px solid var(--line);border-radius:12px;color:var(--text);-webkit-text-fill-color:var(--text);font-family:inherit;font-size:var(--vn-text-xl);min-height:44px;transition:border-color .25s,box-shadow .25s,background .25s}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;padding:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);transition:background-color 9999s ease-in-out 0s}select:focus,textarea:focus,input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #12a06d24;background:#fff}input::placeholder,textarea::placeholder{color:var(--vn-ink-weak)}textarea{resize:vertical}fieldset{border:1px solid var(--line);border-radius:14px;background:#fbfdfc;margin:0 0 .9rem;padding:.6rem .85rem .85rem}legend{font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);letter-spacing:.04em;color:var(--green-deep);padding:0 .4rem}.vitals{margin:0 0 .85rem}.vital-grid{display:flex;flex-wrap:wrap;gap:.5rem .75rem}.vital-field{display:flex;flex-direction:column;gap:.2rem;margin-bottom:0;flex:1 1 5.5rem;min-width:5rem}.vital-field span:not(.vn-label){width:auto;font-size:var(--vn-text-s);color:var(--vn-ink-sub);font-weight:var(--vn-weight-medium)}.vital-field>.vn-label{margin-bottom:0}.vital-field input{width:100%}.vital-field input.vital-abnormal{color:#b00020;border-color:#d69c9c;font-weight:var(--vn-weight-bold)}.vital-field span.vital-normal-hint{font-size:var(--vn-text-xs);color:var(--vn-ink-weak);font-weight:var(--vn-weight-normal)}.record-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.85rem}.form-actions{display:flex;gap:.5rem;margin-top:.85rem}.form-actions button.primary{width:auto;flex:1}button{cursor:pointer;min-height:44px;padding:.6rem 1.05rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font-family:inherit;font-size:var(--vn-text-l);font-weight:var(--vn-weight-medium);transition:color .25s,border-color .25s,background .25s,box-shadow .25s,transform .25s,opacity .25s}button:hover:not(:disabled){border-color:var(--line-strong);box-shadow:0 4px 14px #143c2d0f}button.primary{background:linear-gradient(100deg,#14a877,#0c8a5c);border:none;color:var(--vn-on-dark);font-weight:var(--vn-weight-bold);width:100%}button.primary:hover:not(:disabled){box-shadow:0 12px 32px #12a06d52;transform:translateY(-2px)}button.primary:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed}.error{margin:0 0 .85rem;padding:12px 14px;border-radius:11px;background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-text);font-size:var(--vn-text-ml)}.success{margin:0 0 .85rem;padding:12px 14px;border-radius:11px;background:var(--green-soft);border:1px solid #bfe6d4;color:var(--green-deep);font-weight:var(--vn-weight-medium);font-size:var(--vn-text-ml)}.warning{margin:0 0 .85rem;padding:12px 14px;border-radius:11px;background:var(--amber-soft);border:1px solid var(--amber-border);color:var(--amber-text);font-size:var(--vn-text-ml)}.hint{color:var(--vn-ink-sub);font-size:var(--vn-text-m)}.meta{font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.app-error{margin:.75rem 1rem 0}.order-item{border-bottom:1px solid var(--line);padding:.65rem 0}.order-item:last-child{border-bottom:none;padding-bottom:0}.supplier-list .supplier-table{width:100%;max-width:680px}.supplier-list .supplier-table td{padding:4px 8px}.name{font-weight:var(--vn-weight-medium)}.contact{color:var(--vn-ink-sub);font-size:var(--vn-text-ml)}.record-controls [role=status]{color:var(--danger-text);font-weight:var(--vn-weight-bold);animation:rec-pulse 1.2s ease-in-out infinite}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.35}}.offline-banner{margin:0;padding:.55rem 1rem;background:var(--text);color:var(--green-soft);font-size:var(--vn-text-ml)}.pending-banner{margin:0;padding:.55rem 1rem;background:var(--amber-soft);border-bottom:1px solid var(--amber-border);color:var(--amber-text);font-size:var(--vn-text-ml);display:flex;align-items:center;gap:.75rem}.pending-banner button{min-height:36px;padding:.3rem .8rem;border-radius:999px;font-size:var(--vn-text-m)}.plan-grid td.plan-staff{min-width:9em;max-width:16em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-reorder{background:var(--amber-soft);color:var(--amber-text);border:1px solid var(--amber-border);border-radius:999px;padding:.1rem .6rem;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);white-space:nowrap}.expiry-date,.vn-table td.expiry-date{color:var(--danger-text);font-weight:var(--vn-weight-medium);font-variant-numeric:tabular-nums}.order-item{font-size:var(--vn-text-ml)}.stock-movement-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.stock-movement-tabs button{flex:1;border-radius:999px}.stock-movement-tabs button.active{background:var(--green-soft);border-color:var(--green);color:var(--green-deep);font-weight:var(--vn-weight-bold)}.stock-inventory-switch{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.85rem}.stock-inventory-switch button{border-radius:999px}.stock-inventory-switch button.active{background:var(--green-soft);border-color:var(--green);color:var(--green-deep);font-weight:var(--vn-weight-bold)}.stock-adjustment-form .current-stock{font-weight:var(--vn-weight-bold);font-family:var(--vn-font-mono)}.stock-adjustment-form .delta-pos{color:var(--green-deep);font-weight:var(--vn-weight-bold)}.stock-adjustment-form .delta-neg{color:var(--danger-text);font-weight:var(--vn-weight-bold)}.stock-adjustment-form .delta-zero{color:var(--vn-ink-sub);font-weight:var(--vn-weight-bold)}.move-type{border-radius:999px;padding:.1rem .6rem;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);white-space:nowrap;border:1px solid transparent}.move-type-receive{background:var(--green-soft);color:var(--green-deep);border-color:#bfe6d4}.move-type-issue{background:var(--danger-soft);color:var(--danger-text);border-color:var(--danger-border)}.move-type-adjust{background:#e8f1fd;color:#2f5fa8;border-color:#bcd3f2}.move-type-discard{background:#efe8f5;color:#5b3f7a;border-color:#d5c6e6}.move-delta-pos{color:var(--green-deep);font-weight:var(--vn-weight-bold)}.move-delta-neg{color:var(--danger-text);font-weight:var(--vn-weight-bold)}.move-delta-zero{color:var(--vn-ink-sub)}.purchase-order-switch{display:flex;align-items:center;gap:.5rem;margin-bottom:.85rem}.purchase-order-switch button{border-radius:999px}.purchase-order-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.purchase-order-row{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;padding:.6rem .8rem;background:#fff;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .25s,background .25s,box-shadow .25s}.purchase-order-row:hover{background:#f6fbf8;border-color:var(--green);box-shadow:0 4px 14px #12a06d1a}.purchase-order-row .supplier{font-weight:var(--vn-weight-medium);flex:1}.purchase-order-row .ordered-at{color:var(--vn-ink-sub);font-size:var(--vn-text-m);font-variant-numeric:tabular-nums}.po-status{border-radius:999px;padding:.1rem .6rem;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);white-space:nowrap;border:1px solid transparent}.po-status-ordered{background:#e8f1fd;color:#2f5fa8;border-color:#bcd3f2}.po-status-partially_received{background:var(--amber-soft);color:var(--amber-text);border-color:var(--amber-border)}.po-status-received{background:var(--green-soft);color:var(--green-deep);border-color:#bfe6d4}.purchase-order-form-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.purchase-order-form-line{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap}.line-remove{color:var(--danger-text);border-color:var(--danger-border)}.line-remove:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger-border)}.purchase-order-form-actions{display:flex;gap:.5rem;margin-top:.75rem}.purchase-order-form-actions button.primary{width:auto;flex:1}.purchase-order-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.5rem;margin:0 0 .85rem;padding:.75rem .85rem;background:#fbfdfc;border:1px solid var(--line);border-radius:14px}.purchase-order-header dt{font-size:var(--vn-text-s);color:var(--vn-ink-sub);font-weight:var(--vn-weight-medium)}.purchase-order-header dd{margin:0;font-weight:var(--vn-weight-medium)}.dashboard h2{margin-bottom:.75rem}.dash-card{flex:1;min-width:7rem;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#fbfdfc);padding:.9rem .75rem;text-align:center;box-shadow:0 8px 22px #143c2d0d}.dash-card-title{margin:0 0 .25rem;font-size:var(--vn-text-m);color:var(--vn-ink-sub);font-weight:var(--vn-weight-medium);letter-spacing:.02em}.dash-card-count{margin:0;font-family:var(--vn-font-body);font-size:var(--vn-text-3xl);font-weight:var(--vn-weight-bold);color:var(--text);line-height:1.3}.dash-card.dash-alert{border-color:var(--amber-border);background:linear-gradient(180deg,#fffdf5,var(--amber-soft))}.dash-card.dash-alert .dash-card-count{color:var(--danger-text)}.dash-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem}button.dash-card{font:inherit;min-height:0}button.dash-card:hover:not(:disabled){border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}button.dash-card.dash-alert:hover:not(:disabled){border-color:var(--amber-border);box-shadow:0 0 0 3px var(--amber-soft)}span.dash-card-title{display:block;margin:0 0 .25rem}span.dash-card-count{display:block;margin:0}.dash-quick{display:flex;gap:.6rem;flex-wrap:wrap}.notification-bell{position:relative}.bell-button{position:relative;min-height:38px;padding:.3rem .7rem;border-radius:999px;font-size:var(--vn-text-l)}.bell-button .badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:999px;background:var(--danger);color:var(--vn-on-dark);font-family:var(--vn-font-mono);font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);display:grid;place-items:center;padding:0 4px;line-height:1}.tab-badge{display:inline-grid;place-items:center;min-width:16px;height:16px;margin-left:5px;padding:0 4px;border-radius:999px;background:var(--danger);color:var(--vn-on-dark);font-family:var(--vn-font-mono);font-size:var(--vn-text-2xs);font-weight:var(--vn-weight-bold);line-height:1;vertical-align:middle}.notification-panel{position:absolute;right:0;top:calc(100% + 10px);width:min(330px,calc(100vw - 2rem));background:#fff;color:var(--text);border:1px solid var(--line);border-radius:16px;box-shadow:0 26px 60px #143c2d29;padding:.9rem;z-index:40;text-align:left}.notification-items{margin:0;max-height:320px;overflow-y:auto}.notification-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;padding:.6rem .1rem;border-bottom:1px solid var(--line)}.notification-item:last-child{border-bottom:none}.notification-item .type{border-radius:999px;padding:.05rem .55rem;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);background:var(--green-soft);color:var(--green-deep);border:1px solid #bfe6d4;white-space:nowrap}.notification-item .message{margin:0;flex:1 1 100%;font-size:var(--vn-text-ml)}.notification-item.unread .message{font-weight:var(--vn-weight-medium)}.notification-item.read{opacity:.8}.shift-view-switch{display:flex;gap:.4rem;margin-bottom:.85rem}.shift-view-switch button{border-radius:999px}.shift-view-switch button.active{background:var(--green-soft);border-color:var(--green);color:var(--green-deep);font-weight:var(--vn-weight-bold)}.shift-toolbar{display:flex;gap:.4rem;margin:0 0 .5rem}.shift-toolbar button{min-height:38px;padding:.3rem .85rem;border-radius:999px;font-size:var(--vn-text-m)}.week-nav{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.week-nav button{min-height:38px;padding:.3rem .85rem;border-radius:999px;font-size:var(--vn-text-m)}.week-range{font-family:var(--vn-font-mono);font-size:var(--vn-text-m);color:var(--green-deep);letter-spacing:.02em;font-weight:var(--vn-weight-normal)}.shift-target{color:var(--vn-ink-sub);font-size:var(--vn-text-ml)}.cell-button{width:100%;min-height:40px;padding:.25rem .3rem;border:1px solid transparent;border-radius:10px;background:transparent;font-size:var(--vn-text-m)}.cell-button:hover:not(:disabled){background:var(--green-soft);border-color:#bfe6d4;box-shadow:none}.cell-button.selected{background:#ffd34d;border-color:#c77b00;color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.shift-paint{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;margin:.4rem 0 .6rem}.shift-paint-hint{font-size:var(--vn-text-m);color:var(--vn-ink-sub)}.shift-paint-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.shift-paint-msg{margin:0;font-size:var(--vn-text-m);color:var(--vn-ink-sub)}.shift-paint-btn{height:26px;min-height:26px;padding:0 12px;border:1px solid;border-radius:0;font-weight:var(--vn-weight-bold);font-size:var(--vn-text-s);line-height:1;cursor:pointer}.shift-paint-btn:disabled{opacity:.5;cursor:not-allowed}.shift-paint-btn[data-shift-type=EARLY]{background:#fff3c4;color:#7a5c00;border-color:#e6c34d}.shift-paint-btn[data-shift-type=DAY]{background:#d6f0dd;color:#1c6b3a;border-color:#8fd0a6}.shift-paint-btn[data-shift-type=LATE]{background:#ffe2c2;color:#8a3d00;border-color:#f0a564}.shift-paint-btn[data-shift-type=NIGHT]{background:#e4d8f7;color:#4a2a78;border-color:#b79be0}.shift-paint-btn[data-shift-type=OFF]{background:#e3e6ea;color:#4a4f57;border-color:#b8bfc8}.shift-paint-btn[data-shift-type=EARLY]:hover:not(:disabled){background:#ffe89c}.shift-paint-btn[data-shift-type=DAY]:hover:not(:disabled){background:#bfe6cb}.shift-paint-btn[data-shift-type=LATE]:hover:not(:disabled){background:#ffd0a3}.shift-paint-btn[data-shift-type=NIGHT]:hover:not(:disabled){background:#d6c2f0}.shift-paint-btn[data-shift-type=OFF]:hover:not(:disabled){background:#d2d7dd}.shift-paint-btn[data-shift-type=CLEAR]{background:#fff;color:#b00020;border-color:#e0a6ae;font-weight:var(--vn-weight-bold)}.shift-paint-btn[data-shift-type=CLEAR]:hover:not(:disabled){background:#fdecef}.shift-paint-btn[data-shift-type=CLEAR_ALL]{background:#fdecef;color:#8c0018;border-color:#c76b78;font-weight:var(--vn-weight-bold);white-space:nowrap}.shift-paint-btn[data-shift-type=CLEAR_ALL]:hover:not(:disabled){background:#f8d6dc}.shift-badge{display:inline-block;border-radius:999px;padding:.05rem .55rem;font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);background:var(--green-soft);color:var(--green-deep);border:1px solid #bfe6d4;white-space:nowrap}.shift-badge[data-type=EARLY]{background:#fff3c4;color:#7a5c00;border-color:#e6c34d}.shift-badge[data-type=DAY]{background:#d6f0dd;color:#1c6b3a;border-color:#8fd0a6}.shift-badge[data-type=LATE]{background:#ffe2c2;color:#8a3d00;border-color:#f0a564}.shift-badge[data-type=NIGHT]{background:#e4d8f7;color:#4a2a78;border-color:#b79be0}.shift-badge[data-type=OFF]{background:#e3e6ea;color:#4a4f57;border-color:#b8bfc8}.request-badge{display:inline-block;border-radius:999px;padding:.05rem .55rem;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);background:var(--amber-soft);color:var(--amber-text);border:1px solid var(--amber-border);white-space:nowrap}.shift-empty{color:var(--vn-ink-weak)}.shift-month-scroll{overflow-x:auto}.shift-month .shift-grid th,.shift-month .shift-grid td{white-space:nowrap;text-align:center}.generated-plan{margin-top:.85rem;padding:.85rem;border:1px dashed var(--line-strong);border-radius:14px;background:#fbfdfc}.login-vb{min-height:100vh;display:flex;flex-direction:column;background:#e7edf5}.login-vb-titlebar{height:40px;display:flex;align-items:center;padding:0 14px;background:linear-gradient(#23538f,#1d4076);color:var(--vn-on-dark)}.login-vb-titlebar-text{font-size:var(--vn-text-l);font-weight:var(--vn-weight-bold);letter-spacing:.02em}.login-vb-body{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 1rem}.login-vb-panel{width:100%;max-width:440px;background:#fff;border:1px solid #b9c6d8;box-shadow:0 2px 6px #1428461f}.login-vb-panel-head{background:linear-gradient(#2b5fa0,#1f4e8c);color:var(--vn-on-dark);font-size:var(--vn-text-xl);font-weight:var(--vn-weight-bold);padding:10px 16px;letter-spacing:.02em}.login-vb-panel-inner{padding:22px 22px 20px}.login-vb-row{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:12px;margin-bottom:14px}.login-vb-rowlabel{font-size:var(--vn-text-m);font-weight:var(--vn-weight-bold);color:#2b3a4d}.login-vb-row input{width:100%;min-height:36px;padding:6px 10px;border:1px solid #9fb0c6;border-radius:2px;background:#fff;color:var(--text);-webkit-text-fill-color:var(--text);font-size:var(--vn-text-ml);box-sizing:border-box}.login-vb-row input:-webkit-autofill,.login-vb-row input:-webkit-autofill:hover,.login-vb-row input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);transition:background-color 9999s ease-in-out 0s}.login-vb-row input:focus{outline:none;border-color:#1f4e8c;box-shadow:0 0 0 2px #1f4e8c2e}.login-vb-note{margin:0 0 12px;font-size:var(--vn-text-s);color:#2b3a4d;line-height:1.5}.login-vb-pwwrap{position:relative;display:flex;align-items:center}.login-vb-pwwrap input{padding-right:40px}.login-vb-pwtoggle{position:absolute;right:6px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:#5a6b80;cursor:pointer}.login-vb-pwtoggle:hover{color:#1f4e8c}.login-vb-pwtoggle:focus-visible{outline:2px solid #1f4e8c;outline-offset:1px;border-radius:2px}.login-vb-error{margin:4px 0 10px;color:#b3261e;font-size:var(--vn-text-m)}.login-vb-divider{border-top:1px solid #d6dee9;margin:6px 0 16px}.login-vb-actions{display:flex;justify-content:center}.login-vb-submit{min-width:180px;padding:9px 22px;font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);color:var(--vn-on-dark);background:linear-gradient(#2f6cc0,#1f4e8c);border:1px solid #173a68;border-radius:3px;cursor:pointer}.login-vb-submit:hover:not(:disabled){background:linear-gradient(#3a78cc,#245aa0)}.login-vb-submit:disabled{opacity:.6;cursor:default}.login-vb-footer{border-top:1px solid #c7d2e0;background:#dde6f0;color:#5a6b80;font-size:var(--vn-text-s);padding:8px 14px}@media print{.no-print{display:none!important}.shift-month-scroll{overflow-x:visible}.shift-grid{width:100%;font-size:9pt}body:before{display:none}section{box-shadow:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media (max-width: 480px){.app-header{padding:.55rem .75rem .5rem}.notification-panel{position:fixed;left:.75rem;right:.75rem;top:3.4rem;width:auto}.app-user-role{display:none}.app-main{padding:.9rem .75rem 2rem}section{padding:1.1rem 1rem}}@media (min-width: 861px){.app.app-inventory{max-width:1280px}}.inv-subtabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.inv-subtab{padding:.5rem .95rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--vn-ink-sub);font-size:var(--vn-text-ml);font-weight:var(--vn-weight-medium);font-family:inherit;cursor:pointer}.inv-subtab.active{background:var(--green-soft);border-color:var(--green);color:var(--green-deep);font-weight:var(--vn-weight-bold)}.inv-toolbar{display:flex;align-items:flex-end;gap:.7rem;flex-wrap:wrap;padding:.85rem;background:#fbfdfc;border:1px solid var(--line);border-radius:14px;margin-bottom:.9rem}.inv-tb-field{display:flex;flex-direction:column;gap:.25rem}.inv-tb-field label{margin:0}.inv-tb-field input,.inv-tb-field select{min-height:40px;padding:.45rem .7rem;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--text);font-family:inherit;font-size:var(--vn-text-ml)}.inv-tb-field input[type=checkbox]{min-height:0;width:18px;height:18px;padding:0;border-radius:4px;margin-top:6px}.inv-tb-field input:focus,.inv-tb-field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #12a06d24}.inv-tb-search input{min-width:240px}.inv-tb-spacer{flex:1}.inv-tb-actions{display:flex;gap:.5rem;align-items:center;margin-left:auto}.vn-btn{min-height:40px;padding:.5rem .95rem;border:1px solid var(--line);border-radius:10px;background:var(--vn-btn-face);color:var(--text);font-family:inherit;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:.4rem;white-space:nowrap}.vn-btn:hover{border-color:var(--line-strong);box-shadow:0 4px 14px #143c2d0f}.vn-btn.primary{background:linear-gradient(100deg,#14a877,#0c8a5c);border:none;color:var(--vn-on-dark)}.inv-grid-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;max-height:62vh}.inv-sku-text{font-size:var(--vn-text-s);font-variant-numeric:tabular-nums;color:var(--vn-ink)}.inv-name-text{font-weight:var(--vn-weight-normal)}.inv-expiry-near{color:var(--danger-text);font-weight:var(--vn-weight-bold)}.inv-expiry-soon{color:var(--amber-text);font-weight:var(--vn-weight-medium)}.inv-expiry-expired{color:var(--danger-text);background:var(--danger-soft);border-radius:4px;padding:0 4px;font-weight:var(--vn-weight-bold)}.inv-expiry-urgent{color:var(--danger-text);font-weight:var(--vn-weight-bold)}.inv-expired-note{margin-left:6px;color:var(--danger-text);font-size:var(--vn-text-xs);font-weight:var(--vn-weight-medium);white-space:nowrap}.vn-table tbody tr.lot-expired>td{background:var(--danger-soft)}.vn-table tbody tr.lot-urgent>td{background:var(--amber-soft)}.vn-table tbody tr.lot-disposed>td{opacity:.6}.lot-check-col{width:36px}.expired-actions{display:flex;align-items:center;gap:12px;margin:0 0 10px}.expired-selected{font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.expired-done{margin:4px 0 10px;font-weight:var(--vn-weight-medium);color:var(--green-deep)}.expired-confirm{margin-top:12px;padding:14px;border:2px solid var(--danger-border);border-radius:8px;background:var(--danger-soft);display:flex;flex-direction:column;gap:8px;max-width:520px}.expired-confirm-head{margin:0;font-weight:var(--vn-weight-bold);font-size:var(--vn-text-l)}.expired-confirm-warn{margin:0;color:var(--danger-text);font-weight:var(--vn-weight-bold)}.expired-confirm label{display:flex;align-items:center;gap:8px;font-size:var(--vn-text-m)}.expired-confirm input[type=text]{flex:1}.expired-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.inv-qcell{display:flex;align-items:center;gap:.5rem;justify-content:flex-end}.inv-qbar{width:46px;height:6px;background:#e3eee8;border-radius:999px;overflow:hidden;flex:none}.inv-qbar>i{display:block;height:100%;background:linear-gradient(90deg,#14a877,#0c8a5c)}.inv-qbar.low>i{background:linear-gradient(90deg,#e2607b,var(--danger))}.inv-grid-footer{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.85rem}.inv-grid-footer .inv-summary{font-size:var(--vn-text-m);color:var(--vn-ink-sub)}.inv-amount-summary{margin-top:.6rem;padding:.6rem .8rem;border:var(--vn-line-width) solid var(--vn-line-cell);border-radius:4px;color:var(--vn-ink);font-size:var(--vn-text-m)}.inv-amount-summary p{margin:0 0 .3rem}.inv-amount-total{display:flex;align-items:baseline;gap:.6rem}.inv-amount-total b{font-size:var(--vn-text-xl);font-weight:var(--vn-weight-bold)}.inv-amount-breakdown,.inv-amount-missing{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem;color:var(--vn-ink-sub)}.inv-amount-note{color:var(--vn-ink-sub);font-size:var(--vn-text-s)}.inv-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f282047;z-index:50;display:none}.inv-drawer-backdrop.open{display:block}.inv-drawer{position:fixed;top:0;right:0;height:100vh;width:min(460px,92vw);z-index:60;background:#fff;border-left:1px solid var(--line);box-shadow:-26px 0 60px #143c2d2e;transform:translate(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);overflow-y:auto}.inv-drawer.open{transform:none}.inv-drawer-head{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);padding:1rem 1.2rem;z-index:2}.inv-drawer-close{float:right;border:none;background:none;font-size:var(--vn-text-2xl);color:var(--vn-ink-sub);cursor:pointer;line-height:1}.inv-d-sku{font-family:var(--vn-font-mono);font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.inv-d-name{font-size:var(--vn-text-xxl);font-weight:var(--vn-weight-bold);margin:.15rem 0 0}.inv-drawer-body{padding:1.1rem 1.2rem 2rem}.inv-drawer-body h3{margin:1.3rem 0 .55rem;font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);display:flex;align-items:center;gap:.45rem}.inv-drawer-hint{color:var(--vn-ink-sub);font-size:var(--vn-text-ml);margin:0}.inv-kv{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.inv-kv .k{font-size:var(--vn-text-s);color:var(--vn-ink-sub);font-weight:var(--vn-weight-medium)}.inv-kv .v{font-weight:var(--vn-weight-medium);font-size:var(--vn-text-l)}.inv-mini-table th,.inv-mini-table td{padding:.35rem .5rem}.inv-mobile{display:none}.inv-m-hint{color:var(--vn-ink-sub);font-size:var(--vn-text-ml)}.inv-m-alert-entry{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;margin:.2rem 0 1.1rem;padding:.7rem .9rem;border:1px solid var(--amber-border);background:var(--amber-soft);color:var(--amber-text);border-radius:12px;font-weight:var(--vn-weight-bold);font-size:var(--vn-text-ml);font-family:inherit;cursor:pointer}.inv-m-alert-count{background:var(--danger);color:var(--vn-on-dark);border-radius:999px;min-width:22px;height:22px;display:grid;place-items:center;font-family:var(--vn-font-mono);font-size:var(--vn-text-s);padding:0 6px}.inv-m-search{display:flex;align-items:center;gap:.5rem;margin-bottom:1.1rem}.inv-m-search input{width:100%;min-height:46px;padding:.7rem .85rem;background:#f6fbf8;border:1px solid var(--line);border-radius:12px;font-size:var(--vn-text-xl);font-family:inherit;color:var(--text)}.inv-m-search input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #12a06d24;background:#fff}.inv-m-search .vn-btn{flex:none;width:auto}.inv-m-cat-label{font-size:var(--vn-text-s);color:var(--vn-ink-sub);font-weight:var(--vn-weight-medium);margin-bottom:.55rem}.inv-m-cats{display:flex;flex-wrap:wrap;gap:.5rem}.inv-m-cat-chip{min-height:40px;padding:.5rem .9rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font-size:var(--vn-text-ml);font-weight:var(--vn-weight-medium);font-family:inherit;cursor:pointer}.inv-m-cat-chip.active{background:var(--green-soft);border-color:var(--green);color:var(--green-deep)}.inv-m-results{margin-top:1.1rem}.inv-m-results-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.inv-m-rc{font-size:var(--vn-text-m);color:var(--vn-ink-sub);font-weight:var(--vn-weight-medium)}.inv-m-clear{margin-left:auto;min-height:34px;padding:.25rem .75rem;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:var(--vn-text-m);font-weight:var(--vn-weight-medium);font-family:inherit;cursor:pointer}.inv-m-empty{text-align:center;color:var(--vn-ink-sub);padding:1.8rem 1rem;font-size:var(--vn-text-ml);border:1px dashed var(--line-strong);border-radius:14px;background:#fbfdfc}.inv-m-item{display:flex;align-items:center;gap:.6rem;padding:.7rem .2rem;border-bottom:1px solid var(--line)}.inv-m-item:last-child{border-bottom:none}.inv-m-nm{flex:1;min-width:0}.inv-m-nm b{font-weight:var(--vn-weight-medium);display:block}.inv-m-sub{color:var(--vn-ink-sub);font-size:var(--vn-text-s);font-family:var(--vn-font-mono)}.inv-m-q{font-family:var(--vn-font-mono);font-weight:var(--vn-weight-bold);min-width:2.4rem;text-align:right}@media (max-width: 860px){.inv-pc{display:none}.inv-mobile{display:block}}.inv-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.4rem 0 .8rem}.inv-chip{font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);padding:.18rem .65rem;border:1px solid var(--line);border-radius:999px;background:var(--green-soft);color:var(--green-deep);white-space:nowrap}.inv-colmenu-wrap{position:relative}.inv-colmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:240px;max-height:340px;overflow:auto;padding:.55rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #143c2d24}.inv-colmenu-note{margin:.1rem .2rem .45rem;font-size:var(--vn-text-s);color:var(--vn-ink-sub);white-space:normal}.inv-colmenu-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.22rem .3rem;border-radius:8px}.inv-colmenu-row:hover{background:var(--green-soft)}.inv-colmenu-row label{display:flex;align-items:center;gap:.45rem;font-size:var(--vn-text-ml);color:var(--text);cursor:pointer;white-space:nowrap}.inv-colmenu-move{display:flex;gap:.25rem}.inv-colmenu-move button{min-width:28px;min-height:26px;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green-deep);font-size:var(--vn-text-xs);cursor:pointer}.inv-colmenu-move button:hover:not(:disabled){border-color:var(--line-strong);background:var(--green-soft)}.inv-colmenu-move button:disabled{opacity:.35;cursor:default}.inv-colmenu-reset{display:flex;justify-content:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--line)}.report-form .report-subtitle{margin:-.5rem 0 1.15rem;font-size:var(--vn-text-m);color:var(--vn-ink-sub)}.report-form .report-section{margin-top:1.05rem;padding-top:1.05rem;border-top:1px solid var(--line)}.report-form .report-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.report-form .report-section-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .65rem;font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);color:var(--text)}.report-form .report-section-title .section-icon{color:var(--green-deep);flex:none}.report-form .step-badge{width:22px;height:22px;border-radius:999px;background:var(--green-soft);border:1px solid #bfe6d4;color:var(--green-deep);display:grid;place-items:center;font-family:var(--vn-font-mono);font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);flex:none}.report-form .record-controls button,.report-form .form-actions button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.report-form .btn-record{flex:1 1 auto;min-height:48px;font-size:var(--vn-text-l);font-weight:var(--vn-weight-bold);color:var(--vn-on-dark);border:none;border-radius:999px;background:linear-gradient(100deg,#0c855a,#0b7d53);box-shadow:0 10px 26px #0b7d5342}.report-form .btn-record:hover:not(:disabled){border:none;box-shadow:0 14px 34px #0b7d5357;transform:translateY(-2px)}.report-form .btn-record:active:not(:disabled){transform:none}.report-form .btn-record.recording{background:linear-gradient(100deg,#c84057,#b3344c);box-shadow:0 10px 26px #d645603d;animation:rec-ring 1.6s ease-out infinite}@keyframes rec-ring{0%{box-shadow:0 0 #d6456073}70%{box-shadow:0 0 0 14px #d6456000}to{box-shadow:0 0 #d6456000}}.report-form .recording-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .85rem;border-radius:999px;background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-text);font-size:var(--vn-text-m);font-weight:var(--vn-weight-bold);animation:none}.report-form .pulse-dot{width:9px;height:9px;border-radius:999px;background:var(--danger);flex:none;animation:rec-dot 1.2s ease-in-out infinite}@keyframes rec-dot{0%,to{opacity:1;box-shadow:0 0 #d6456066}50%{opacity:.55;box-shadow:0 0 0 5px #d6456000}}.report-form .btn-ghost,.report-form .btn-ai{flex:1 1 auto;min-height:48px;border-radius:999px}.report-form .btn-ghost{background:transparent;border:1px solid var(--line-strong);color:var(--green-deep)}.report-form .btn-ghost:hover:not(:disabled){background:var(--green-soft);border-color:var(--green);box-shadow:none}.report-form .btn-ai{background:var(--green-soft);border:1px solid var(--green);color:var(--green-deep);font-weight:var(--vn-weight-bold)}.report-form .btn-ai:hover:not(:disabled){background:linear-gradient(100deg,#0c855a,#0b7d53);border-color:transparent;color:var(--vn-on-dark)}@media (prefers-reduced-motion: reduce){.report-form .btn-record.recording,.report-form .pulse-dot{animation:none}}.report-pc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}@media (max-width: 860px){.report-pc{grid-template-columns:1fr}}.report-pc-list{border:1px solid var(--line);border-radius:10px;padding:.75rem;background:#fff;min-width:0}.report-pc-list-header{margin-bottom:.65rem}.report-pc-list-title{font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);color:var(--text);margin:0 0 .5rem}.report-pc-list-filter{width:100%;padding:.35rem .6rem;font-size:var(--vn-text-m);border:1px solid var(--line);border-radius:6px;box-sizing:border-box}.report-pc-list-filter:focus{outline:2px solid var(--green-deep);outline-offset:1px;border-color:var(--green)}.report-pc-list-empty{font-size:var(--vn-text-m);color:var(--vn-ink-sub);text-align:center;padding:.75rem 0;margin:0}.report-pc-list-items{list-style:none;margin:0;padding:0}.report-pc-list-item{border-top:1px solid var(--line)}.report-pc-list-item:first-child{border-top:none}.report-pc-list-row{width:100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;padding:.45rem .3rem;text-align:left;background:transparent;border:none;cursor:pointer;border-radius:4px;font-size:var(--vn-text-m);color:var(--text)}.report-pc-list-row:hover{background:var(--green-soft)}.report-pc-row-name{font-weight:var(--vn-weight-bold);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-pc-row-time{font-size:var(--vn-text-s);color:var(--vn-ink-sub);flex:none}.report-pc-row-badge{font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);padding:.1rem .4rem;border-radius:999px;background:var(--amber-soft);border:1px solid var(--amber-border);color:var(--amber-text);flex:none}.report-pc-row-preview{width:100%;color:var(--vn-ink-sub);font-size:var(--vn-text-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-pc-row-expanded{padding:.45rem .3rem .6rem;background:var(--green-soft);border-top:1px solid var(--line)}.report-pc-row-body{font-size:var(--vn-text-m);color:var(--text);white-space:pre-wrap;word-break:break-all;margin:0 0 .35rem}.report-pc-row-vitals{font-size:var(--vn-text-s);color:var(--vn-ink-sub);margin:0 0 .35rem}.report-pc-row-use-resident{font-size:var(--vn-text-m);padding:.2rem .65rem;border:1px solid var(--green);background:#fff;color:var(--green-deep);border-radius:999px;cursor:pointer}.report-pc-row-use-resident:hover{background:var(--green-soft)}.report-pc .vital-grid{flex-wrap:nowrap}.report-pc .vital-field{min-width:0;flex:1 1 0}.report-pc .btn-record{min-height:36px;font-size:var(--vn-text-m);font-weight:var(--vn-weight-medium)}.report-pc .btn-ghost,.report-pc .btn-ai{min-height:36px}.report-pc.pc-report{display:block}.pc-report-footer-actions .pc-report-hint{margin:0;align-self:center;font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.pc-report-work{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.1fr);gap:10px;align-items:start}@media (max-width: 1100px){.pc-report-work{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (max-width: 720px){.pc-report-work{grid-template-columns:1fr}}.pc-report-col{min-width:0;border:1px solid #777;border-radius:0;background:#fff;padding:.7rem .8rem}.pc-report-work .report-section{margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--line)}.pc-report-work .report-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.pc-report-work .report-section-title{background:var(--vn-bar-panel);color:var(--vn-bar-fg);min-height:26px;padding:0 8px;font-weight:var(--vn-weight-bold);border-radius:0;margin:0 0 6px}.pc-report-work .report-section-title .section-icon{color:var(--vn-on-dark)}.pc-report-work .step-badge{background:#ffffff40;border:1px solid rgba(255,255,255,.55);color:var(--vn-on-dark)}.pc-report-resident-card{margin-top:.5rem;padding:.45rem .6rem;background:#fbfae8;border:1px solid #aaa;border-radius:0}.pc-report-resident-name{font-size:var(--vn-text-l);font-weight:var(--vn-weight-bold);color:#24456f}.pc-report-reportedat{margin-top:.6rem}.pc-report-reportedat input{width:100%}.pc-report-backdate-note{display:block;margin-top:.25rem;font-size:var(--vn-text-s);color:#7a4a00}.pc-report .vital-grid{flex-wrap:wrap}.pc-report .vital-field{flex:1 1 30%}.pc-report-ai-notice{background:#fbfbfb;border:1px solid #999;border-radius:0;padding:.5rem .6rem;margin:.4rem 0 0;font-size:var(--vn-text-m);white-space:pre-wrap}.pc-report-ai-empty{margin:.4rem 0 0;font-size:var(--vn-text-m);color:var(--vn-ink-sub)}.pc-report-col.report-pc-list{border:1px solid #777}.pc-report-footer{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:10px;padding:.6rem .85rem;background:#efefef;border:1px solid #999;border-radius:0}.pc-report-footer-msg{margin:0}.pc-report-footer-actions{display:flex;gap:.6rem;margin-left:auto}.pc-report-footer-actions button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:38px;padding:0 1.1rem;border-radius:0;font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);cursor:pointer}.pc-report-footer-actions .btn-ghost{background:#fff;border:1px solid var(--line-strong);color:var(--text)}.pc-report-footer-actions .btn-ghost:hover{background:var(--green-soft)}.pc-report-footer-actions .primary{background:linear-gradient(#0ba76c,#007f4f);border:1px solid #006940;color:var(--vn-on-dark)}.pc-report-footer-actions .primary:hover:not(:disabled){background:linear-gradient(#0cb877,#008a56)}.pc-report-footer-actions .primary:disabled{opacity:.6;cursor:not-allowed}.report-pc.pc-report .btn-record:not(.recording){border:1px solid #006940;border-radius:0;color:var(--vn-on-dark);background:linear-gradient(#0ba76c,#007f4f);box-shadow:none}.report-pc.pc-report .btn-record:not(.recording):hover:not(:disabled){background:linear-gradient(#0cb877,#008a56);box-shadow:none;transform:none}.report-pc.pc-report .btn-ai{background:linear-gradient(#e9f3ff,#cbdff6);border:1px solid #6a7fa0;border-radius:0;color:#1c3a5e;font-weight:var(--vn-weight-bold)}.report-pc.pc-report .btn-ai:hover:not(:disabled){background:linear-gradient(#d8ebff,#b9d3f1);border-color:#6a7fa0;color:#1c3a5e}.report-pc.pc-report .btn-ghost{background:linear-gradient(#fff,#dcdcdc);border:1px solid #777;border-radius:0;color:var(--vn-ink)}.report-pc.pc-report .btn-ghost:hover:not(:disabled){background:linear-gradient(#fff,#d0d0d0);border-color:#777;box-shadow:none}.pc-report .report-pc-list-item:nth-child(odd) .report-pc-list-row{background:#fbfae8}.pc-report .report-pc-list-item:nth-child(odd) .report-pc-list-row:hover{background:#f3f1d8}.report-form-mobile .form-actions{position:sticky;bottom:0;background:var(--card);padding:.75rem 0;border-top:1px solid var(--line);margin-top:1rem;z-index:10}.report-form-mobile .form-actions button.primary{width:100%;min-height:52px;font-size:var(--vn-text-xl)}.pc-shell{display:flex;flex-direction:column;min-height:100vh;background:#edf1f7}.pc-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:34px;background:#315b93;border-bottom:1px solid #1c2f4a;color:var(--vn-on-dark);flex:none;position:sticky;top:0;z-index:100}.pc-nav-toggle{background:transparent;border:none;color:var(--vn-on-dark);font-size:var(--vn-text-xl);line-height:1;padding:2px 10px 2px 0;cursor:pointer;flex:none}.pc-nav-toggle:hover{opacity:.82}.pc-body.pc-nav-collapsed .pc-sidebar{display:none}.pc-topbar-title{font-size:var(--vn-text-m);font-weight:var(--vn-weight-bold);color:var(--vn-on-dark);letter-spacing:.01em;white-space:nowrap;flex:1}.pc-topbar-right{display:flex;align-items:center;gap:10px;flex:none}.pc-topbar-info{font-size:var(--vn-text-xs);color:#ffffffe0;white-space:nowrap}.pc-user-name{font-weight:var(--vn-weight-bold);color:var(--vn-on-dark)}.pc-logout-btn{font-size:var(--vn-text-xs);padding:2px 10px;border-radius:2px;border:1px solid rgba(255,255,255,.5);background:transparent;color:var(--vn-on-dark);cursor:pointer;transition:background .12s}.pc-logout-btn:hover{background:#ffffff26}.pc-offline-badge{font-size:var(--vn-text-2xs);padding:1px 7px;border-radius:999px;background:#c83f3f;color:var(--vn-on-dark)}.pc-sync-btn{font-size:var(--vn-text-2xs);padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:transparent;color:var(--vn-on-dark);cursor:pointer}.pc-sync-btn:hover:not(:disabled){background:#ffffff26}.pc-crumbs{display:flex;align-items:center;gap:4px;padding:0 12px;height:34px;background:#f4f4f4;border-bottom:1px solid #999;color:var(--vn-ink);flex:none;font-size:var(--vn-text-xs)}.pc-crumbs-home{background:none;border:none;color:#0645c9;font-size:var(--vn-text-xs);cursor:pointer;padding:0;text-decoration:underline}.pc-crumbs-home:hover{color:#003a9b}.pc-bc-sep{color:var(--vn-ink-weak);margin:0 1px}.pc-crumbs-cur{color:var(--vn-ink-strong);font-weight:var(--vn-weight-bold)}.pc-global-error{margin:0;padding:5px 12px;background:#fdecea;border-bottom:1px solid #c83f3f;color:#c83f3f;font-size:var(--vn-text-s)}.pc-body{display:flex;flex:1;min-height:0;overflow:hidden}.pc-sidebar{width:146px;flex:none;background:#efefef;border-right:1px solid #888;overflow-y:auto;padding:6px;display:flex;flex-direction:column}.pc-nav-band{border:none;background:transparent;margin:0 0 6px;padding:0}.pc-nav-band+.pc-nav-band{margin-top:0}.pc-nav-band-label{display:flex;align-items:center;height:24px;padding:0 6px;margin-bottom:6px;background:var(--vn-bar-panel);border:1px solid var(--vn-bar-title);color:var(--vn-bar-fg);font-weight:var(--vn-weight-bold);font-size:var(--vn-text-s)}.pc-nav-band--stock{--vn-dom: var(--vn-dom-stock)}.pc-nav-band--shift{--vn-dom: var(--vn-dom-shift)}.pc-nav-band--report{--vn-dom: var(--vn-dom-report)}.pc-nav-band--other{--vn-dom: var(--vn-dom-other)}.pc-nav-band--admin{--vn-dom: var(--vn-dom-admin)}.pc-nav-band[class*=pc-nav-band--]>.pc-nav-band-label{background:var(--vn-dom);border-color:var(--vn-dom);color:var(--vn-on-dark)}.pc-nav-band[class*=pc-nav-band--]>.vn-nav-item{border-left:4px solid var(--vn-dom)}.pc-nav-work>.pc-nav-band+.pc-nav-band,.pc-nav-work+.pc-nav-band{margin-top:8px}.pc-nav-caret{margin-left:auto;font-size:var(--vn-text-2xs);line-height:1}.pc-nav-subgroup{margin:2px 0 4px;border-left:2px solid #b9c3d2;padding-left:4px}.pc-nav-subsection+.pc-nav-subsection{margin-top:6px}.pc-nav-subhead{padding:2px 4px;color:var(--vn-ink-sub);font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold)}.pc-shell .pc-main button:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn):not(.help-corner){height:26px;min-height:26px;min-width:88px;width:auto;justify-content:center;padding:0 12px;border:1px solid #6a7fa0;border-radius:0;background:linear-gradient(#e9f3ff,#cbdff6);color:var(--vn-ink);font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);line-height:1;cursor:pointer;box-shadow:none;transform:none}.pc-shell .pc-main button:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn):not(.help-corner):hover:not(:disabled){background:linear-gradient(#dcebff,#bcd4f2);border-color:#51699a;color:var(--vn-ink);box-shadow:none;transform:none}.pc-shell .pc-main button:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn):not(.help-corner):disabled{opacity:.5;cursor:not-allowed}.pc-shell .pc-main select,.pc-shell .pc-main textarea,.pc-shell .pc-main input:not([type=checkbox],[type=radio],[type=file]){padding:2px 6px;background:#fff;border:1px solid #aaa;border-radius:0;min-height:26px;font-size:var(--vn-text-s)}.pc-shell .pc-main input[type=time],.pc-shell .pc-main input[type=date],.pc-shell .pc-main input[type=datetime-local],.pc-shell .pc-main input[type=month],.pc-shell .pc-main input[type=number]{width:auto;max-width:100%}.pc-shell .pc-main textarea{min-height:60px}.pc-shell .pc-main select:focus,.pc-shell .pc-main textarea:focus,.pc-shell .pc-main input:focus{outline:none;border-color:#3f68a0;box-shadow:0 0 0 2px #3f68a02e;background:#fff}.pc-ann button.primary{width:auto}.pc-shell .pc-main .pc-ann button:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn):disabled{opacity:1;background:#eef1f5;border-color:#c4ccd6;color:#6b7480}.pc-shell .pc-main button.btn-record.recording{background:linear-gradient(#e9f3ff,#cbdff6);border:1px solid #6a7fa0;border-radius:0;color:var(--vn-ink);box-shadow:none;animation:none}.pc-main{flex:1;min-width:0;overflow-y:auto;padding:14px 16px}.pc-inv-main{display:flex;flex-direction:column;gap:16px}.pc-ent-wrap{display:flex;flex-direction:column;gap:0}.pc-section-title{background:#3f68a0;color:var(--vn-on-dark);font-size:var(--vn-text-xl);font-weight:var(--vn-weight-bold);padding:6px 12px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;border-radius:2px 2px 0 0}.pc-section-title-sub{font-size:var(--vn-text-2xs);font-weight:var(--vn-weight-normal);opacity:.85}.pc-dashboard{display:flex;flex-direction:column;gap:12px}.pc-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}@media (max-width: 1200px){.pc-cards{grid-template-columns:repeat(3,1fr)}}@media (max-width: 900px){.pc-cards{grid-template-columns:repeat(2,1fr)}}.pc-card{background:#fff;border:1px solid #c9cfd7;border-radius:2px;padding:10px 12px 8px;box-shadow:0 1px #0000000d}.pc-card-danger{box-shadow:inset 0 4px #c94848,0 1px #0000000d}.pc-card-warn{box-shadow:inset 0 4px #d98b19,0 1px #0000000d}.pc-card-ok{box-shadow:inset 0 4px #2d8a57,0 1px #0000000d}.pc-card-info{box-shadow:inset 0 4px #376fb5,0 1px #0000000d}.pc-card-label{font-size:var(--vn-text-s);color:var(--vn-ink);margin-bottom:3px}.pc-card-num{font-size:var(--vn-text-2xl);font-weight:var(--vn-weight-bold);color:#1a2332;line-height:1.1}.pc-card-sub{font-size:var(--vn-text-xs);color:var(--vn-ink-sub);margin-top:3px}button.pc-card{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}button.pc-card:hover{border-color:#4b6f9f;box-shadow:0 0 0 2px #4b6f9f2e,0 1px 3px #00000012}button.pc-card:focus-visible{outline:2px solid #3f68a0;outline-offset:1px}.pc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pc-grid-3{display:grid;grid-template-columns:2fr 1fr 2fr;gap:10px}@media (max-width: 1100px){.pc-grid-2,.pc-grid-3{grid-template-columns:1fr}}.pc-panel{background:#fff;border:1px solid #c9cfd7;border-radius:2px;overflow:hidden}.pc-panel-head{background:var(--vn-bar-panel);color:var(--vn-bar-fg);font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);height:30px;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.pc-panel-link{background:none;border:none;color:#ffffffc7;font-size:var(--vn-text-2xs);cursor:pointer;padding:0;text-decoration:underline;flex:none}.pc-panel-link:hover{color:var(--vn-on-dark)}.pc-priority{padding:8px 10px;display:flex;flex-direction:column;gap:6px}.pc-priority-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid #eef0f3;font-size:var(--vn-text-s)}.pc-priority-item:last-child{border-bottom:none}.pc-priority-msg{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-tag{display:inline-block;font-size:var(--vn-text-2xs);font-weight:var(--vn-weight-bold);min-width:52px;padding:1px 6px;border-radius:2px;text-align:center;white-space:nowrap;flex:none}.pc-tag-danger{background:#ffe9e9;color:#9b2020;border:1px solid #d69c9c}.pc-tag-warn{background:#fff2d7;color:#8a540d;border:1px solid #d9b46f}.vn-btn.vn-btn-chrome{font-size:var(--vn-text-xs);padding:3px 9px;min-height:0;border-radius:2px;border:1px solid var(--vn-btn-chrome-line);background:var(--vn-btn-chrome-face);color:var(--vn-btn-chrome-ink);flex:none}.vn-btn.vn-btn-chrome:hover{background:var(--vn-btn-chrome-face-hover);box-shadow:none}.vn-btn.vn-btn-danger{font-size:var(--vn-text-xs);padding:3px 9px;min-height:0;border-radius:2px;border:1px solid var(--vn-btn-danger-line);background:var(--vn-btn-danger-face);color:var(--vn-btn-danger-ink);flex:none;font-weight:var(--vn-weight-bold)}.vn-btn.vn-btn-danger:hover{background:var(--vn-btn-danger-face-hover);box-shadow:none}.pc-expiry-body{display:flex;flex-direction:column;gap:12px;padding:10px 0 4px}.pc-expiry-sec-head{display:flex;align-items:baseline;gap:4px;padding:0 12px 4px;font-size:var(--vn-text-s)}.pc-expiry-sec-danger{color:var(--danger-text)}.pc-expiry-sec-warn{color:var(--amber-text)}.pc-expiry-sec-note{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-normal);color:var(--vn-ink-sub)}.pc-row-click{cursor:pointer}.pc-expiry-stale{margin:0;padding:0 12px 12px;font-size:var(--vn-text-xs);color:var(--amber-text);font-weight:var(--vn-weight-medium)}.vn-table td.pc-td-center{text-align:center;color:var(--vn-ink-sub)}.pc-quick{padding:10px;display:grid;grid-template-columns:repeat(auto-fill,88px);gap:6px}.pc-quick-btn{font-size:var(--vn-text-s);padding:8px 4px;border-radius:3px;border:1px solid #c8cfd8;background:#f6f7f9;color:#2c3e50;cursor:pointer;text-align:center;font-weight:var(--vn-weight-medium);transition:background .1s,border-color .1s}.pc-quick-btn:hover{background:#e4eaf5;border-color:#3f68a0;color:#2f4f8a}.pc-log-list{padding:8px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;max-height:220px}.pc-log-item{font-size:var(--vn-text-xs);color:#2c3e50;padding:3px 0;border-bottom:1px solid #f0f2f5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-log-item:last-child{border-bottom:none}.pc-log-item strong{color:#3f68a0;font-family:monospace;font-size:var(--vn-text-xs)}.pc-empty{font-size:var(--vn-text-s);color:var(--vn-ink-sub);padding:12px 10px;margin:0;text-align:center}.pc-footer-status{display:none}.vb-statusbar{height:26px;flex:0 0 auto;border-top:1px solid #999;background:#efefef;display:flex;align-items:center;justify-content:space-between;padding:0 8px;font-size:var(--vn-text-s);color:var(--vn-ink)}.pc-inv-bar{display:flex;align-items:center;justify-content:space-between;background:var(--vn-bar-title);color:var(--vn-bar-fg);height:32px;padding:0 12px;font-weight:var(--vn-weight-bold);font-size:var(--vn-text-l);margin:-14px -16px 0}.pc-inv-bar-cnt{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-normal);opacity:.82}.pc-inv-bar-right{display:flex;align-items:center;gap:8px}.pc-inv-unsaved{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);color:#3a2a00;background:#ffd54a;border-radius:9px;padding:1px 8px}.inv-bar-btn{font:inherit;font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);line-height:1;color:var(--vn-on-dark);background:#ffffff24;border:1px solid rgba(255,255,255,.55);border-radius:8px;padding:4px 10px;cursor:pointer}.inv-bar-btn:hover{background:#ffffff42}.inv-prefsmenu-wrap{position:relative;display:inline-flex}.inv-prefsmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:200px;display:flex;flex-direction:column;padding:.35rem;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #143c2d24}.inv-prefsmenu button{font:inherit;font-size:var(--vn-text-ml);text-align:left;color:var(--text);background:none;border:0;border-radius:8px;padding:.45rem .55rem;cursor:pointer}.inv-prefsmenu button:hover{background:var(--green-soft)}.inv-prefsmenu-fontrow{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:.45rem .55rem .5rem;border-bottom:1px solid var(--line);margin-bottom:.25rem;color:var(--text)}.inv-prefsmenu-label{flex:1 0 100%;font-size:var(--vn-text-ml);color:var(--text);white-space:nowrap}.inv-prefsmenu button.inv-fontscale-btn{flex:1 1 0;min-width:0;text-align:center;padding:.25rem .5rem;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--text)}.inv-prefsmenu button.inv-fontscale-btn[aria-pressed=true]{background:var(--green-deep);border-color:var(--green-deep);color:var(--vn-on-dark)}.inv-prefs-file{display:none}.inv-prefs-msg{margin:.5rem 0 0;font-size:var(--vn-text-m);color:var(--green-deep)}.pc-inv-filters{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:flex-end;padding:8px 0 10px;background:#fff;border:none;border-bottom:1px solid #d0d0d0;border-radius:0;margin-bottom:0}.pc-inv-filters .inv-tb-field input,.pc-inv-filters .inv-tb-field select{height:24px;min-height:unset;padding:2px 5px;font-size:var(--vn-text-s);border-radius:2px;border:1px solid #aaa}.pc-inv-filters .inv-tb-field input:focus,.pc-inv-filters .inv-tb-field select:focus{outline:none;box-shadow:none;border-color:#315b93}.pc-inv-filters .inv-tb-search{flex:3 1 120px}.pc-inv-filters .inv-tb-search input{min-width:0;width:100%}.pc-inv-filters .vn-btn{height:25px;min-height:unset;padding:0 10px;font-size:var(--vn-text-s);border-radius:2px;border:1px solid #888;background:linear-gradient(#fff,#ddd);color:var(--vn-ink);font-weight:var(--vn-weight-normal)}.pc-inv-filters .vn-btn.primary{background:linear-gradient(#fefefe,#d5e1f2);border-color:var(--vn-btn-filter-line-strong);color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.pc-inv-filters .vn-btn:hover{box-shadow:none;border-color:var(--vn-btn-filter-line-hover)}.pc-inv-tabs-row{display:flex;align-items:center;gap:18px;padding:10px 0 5px;border-bottom:1px solid #999;margin-bottom:0;flex-wrap:nowrap}.pc-inv-tab{padding:0;font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);color:#1761b5;text-decoration:underline;background:transparent;border:1px solid transparent;border-radius:0;cursor:pointer}.pc-inv-tab.active{color:#00a000;background:#fff594;padding:1px 4px;border:none;text-decoration:none}.pc-inv-grid-wrap{border:none;border-radius:0;max-height:480px;overflow:auto}.vn-scroll-x{overflow-x:auto}.pc-inv-grid-wrap .vn-table th{position:sticky;top:0;z-index:2}.pc-inv-status{display:flex;align-items:center;min-height:30px;border-top:1px solid #bbb;background:#f6f6f6;padding:0 12px;color:var(--vn-ink-weak);font-size:var(--vn-text-s);gap:12px}.pc-inv-status .inv-summary{font-size:var(--vn-text-s);font-weight:var(--vn-weight-normal);color:var(--vn-ink-weak)}.inv-pc .inv-chips{margin:2px 0 4px;gap:4px}.inv-pc .inv-chip{font-size:var(--vn-text-2xs);padding:.1rem .5rem}.pc-screen{display:flex;flex-direction:column;gap:12px}.pc-screen>section{background:#fff;border:1px solid #d2d8e0;border-radius:4px;padding:0 12px 12px;margin:0}.pc-screen>section>h2,.pc-screen .purchase-order-switch>h2,.pc-screen .stock-inventory-switch>h2{background:var(--vn-bar-title);color:var(--vn-bar-fg);font-size:var(--vn-text-l);font-weight:var(--vn-weight-bold);height:32px;line-height:32px;padding:0 12px;margin:0 -12px 10px;border-radius:4px 4px 0 0}.pc-screen .purchase-order-switch,.pc-screen .stock-inventory-switch{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pc-screen .purchase-order-switch>h2,.pc-screen .stock-inventory-switch>h2{flex:1 0 100%}.pc-screen h3{font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);color:#2c3e50;margin:12px 0 6px}.pc-screen .stock-movement-tabs{display:flex;gap:6px;margin:0 0 8px}.pc-screen .stock-movement-tabs button,.pc-screen .purchase-order-switch button,.pc-screen .stock-inventory-switch button{height:26px;padding:0 12px;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);border:1px solid #aab2bd;border-radius:2px;background:linear-gradient(#fff,#e4e8ee);color:#2c3e50;cursor:pointer}.pc-screen .stock-movement-tabs button:hover,.pc-screen .purchase-order-switch button:hover,.pc-screen .stock-inventory-switch button:hover{border-color:#4b6f9f}.pc-screen .stock-movement-tabs button.active,.pc-screen .stock-movement-tabs button[aria-pressed=true],.pc-screen .purchase-order-switch button.active,.pc-screen .stock-inventory-switch button.active,.pc-screen .stock-inventory-switch button[aria-pressed=true]{background:#4b6f9f;border-color:#3f5f8a;color:var(--vn-on-dark)}.pc-shell .pc-main .stock-movement-tabs button.active:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn),.pc-shell .pc-main .stock-movement-tabs button[aria-pressed=true]:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn),.pc-shell .pc-main .purchase-order-switch button.active:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn),.pc-shell .pc-main .stock-inventory-switch button.active:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn),.pc-shell .pc-main .stock-inventory-switch button[aria-pressed=true]:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn){background:#4b6f9f;border-color:#3f5f8a;color:var(--vn-on-dark)}.pc-screen button.primary{height:28px;padding:0 14px;font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);border:1px solid #3f5f8a;border-radius:2px;background:#4b6f9f;color:var(--vn-on-dark);cursor:pointer}.pc-screen button.primary:hover{background:#3f5f8a}.pc-screen button.primary:disabled{opacity:.5;cursor:not-allowed}.pc-screen .field{display:flex;flex-direction:column;gap:2px;margin:0 0 8px;max-width:320px}.pc-screen .field input,.pc-screen .field select{height:26px;min-height:unset;padding:2px 6px;font-size:var(--vn-text-s);border:1px solid #aaa;border-radius:2px}.pc-screen .field input:focus,.pc-screen .field select:focus{outline:none;border-color:#4b6f9f}.pc-screen .supplier-register,.pc-screen .reorder-policy-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}.pc-screen .supplier-register{margin:4px 0 10px}.pc-screen .supplier-register .field,.pc-screen .reorder-policy-form>.field{margin:0}.pc-screen .reorder-policy-form>h2,.pc-screen .reorder-policy-form>p{flex:1 0 100%;margin-top:0}.pc-screen .bulk-table-wrap{max-height:420px;overflow:auto;border:1px solid #d4d4d4;margin:8px 0}.pc-screen .vn-table th{position:sticky;top:0;z-index:2}.vn-table td input{height:22px;padding:1px 4px;font-size:var(--vn-text-s);border:1px solid #aaa;border-radius:2px}.pc-screen .product-master-table td.ops{white-space:nowrap}.pc-screen .product-master-table td.ops button{margin-right:4px}.pc-screen .product-master-table tr.inactive td{color:var(--vn-ink-weak)}.pc-screen .product-master-table tr.inactive td .badge-retired{color:#b35}.pc-screen .product-master-table tbody tr.new-row td{background:#eef6ee}.pc-screen .product-master-table tr.new-row input,.pc-screen .product-master-table tr.editing input{width:100%;box-sizing:border-box}.pc-screen .product-master-pager{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:var(--vn-text-s)}.pc-screen .product-master-pager .pager-status{margin:0 6px}.pc-screen ul{list-style:none;margin:0;padding:0;border:1px solid #d4d4d4;border-radius:2px}.pc-screen ul>li{display:flex;align-items:center;gap:10px;padding:4px 8px;font-size:var(--vn-text-s);border-bottom:1px solid #eef0f3}.pc-screen ul>li:last-child{border-bottom:none}.pc-screen ul>li:nth-child(odd){background:#fbfaed}.pc-screen ul>li:nth-child(2n){background:#fff}.pc-screen .bulk-result{margin:8px 0 0;font-size:var(--vn-text-s);color:#2c3e50}.pc-screen .error{color:#c0392b}.pc-screen .success{color:#2f8b57}.pc-shift .shift-view:has(>.shift-calendar:not(.shift-month)):has(>.shift-generator){display:grid;grid-template-columns:1fr 380px;grid-template-rows:auto 1fr auto;gap:8px;align-items:start}.pc-shift .shift-view>.shift-view-switch{grid-column:1 / 3;grid-row:1}.pc-shift .shift-view>.shift-calendar{grid-column:1;grid-row:2 / 4}.pc-shift .shift-view>.shift-generator{grid-column:2;grid-row:2}.pc-shift .shift-view>.shift-request-form{grid-column:2;grid-row:3}.pc-shift .shift-view>.shift-editor{grid-column:1 / 3;grid-row:4}@media (max-width: 1100px){.pc-shift .shift-view:has(>.shift-calendar:not(.shift-month)):has(>.shift-generator){grid-template-columns:1fr;grid-template-rows:none}.pc-shift .shift-view>.shift-view-switch,.pc-shift .shift-view>.shift-calendar,.pc-shift .shift-view>.shift-generator,.pc-shift .shift-view>.shift-request-form,.pc-shift .shift-view>.shift-editor{grid-column:1;grid-row:auto}}.pc-shift .shift-view>section{background:#fff;border:1px solid #777;border-radius:0;padding:0 12px 12px;margin:0}.pc-shift .shift-view>section>h2{background:var(--vn-bar-title);color:var(--vn-bar-fg);font-size:var(--vn-text-m);font-weight:var(--vn-weight-bold);height:26px;line-height:26px;padding:0 12px;margin:0 -12px 10px;border-radius:0;border-bottom:1px solid #777}.pc-shift .shift-view>section>h2:before{display:none}.pc-shell h2:before{display:none}.pc-shift .shift-view-switch{gap:6px;margin:0}.pc-shift .shift-view-switch button{height:26px;min-height:0;padding:0 12px;border-radius:2px}.pc-shift .shift-view-switch button.active{background:#4b6f9f;border-color:#3f5f8a;color:var(--vn-on-dark)}.pc-shift .shift-toolbar,.pc-shift .week-nav{display:flex;align-items:center;gap:6px;height:30px;margin:0 -12px 8px;padding:0 12px;background:#f8f8f8;border-bottom:1px solid #aaa}.pc-shift .shift-toolbar button,.pc-shift .week-nav button{height:24px;min-height:0;padding:0 10px;border-radius:2px}.pc-shift .week-range{display:inline-flex;align-items:center;justify-content:center;min-width:200px;height:22px;padding:0 8px;border:1px solid #aaa;border-radius:2px;background:#fff;color:var(--vn-ink-strong);font-weight:var(--vn-weight-bold)}.pc-shift .shift-grid,.pc-shift .plan-grid{height:100%;table-layout:fixed}.pc-shift .shift-grid td,.pc-shift .plan-grid td{text-align:center;padding:2px 4px;height:30px}.pc-shift .shift-grid tbody th{position:static;width:150px}.pc-shift .shift-grid td,.pc-shift .plan-grid td{height:34px}.pc-shift .cell-button{width:100%;height:100%;min-height:24px;padding:0;border:none;border-radius:0;background:transparent;font-weight:var(--vn-weight-bold)}.pc-shift .cell-button:hover:not(:disabled){background:#def;border:none;box-shadow:none}.pc-shift .cell-button.selected{background:#2f6fed;box-shadow:inset 0 0 0 2px #143f8f;color:var(--vn-on-dark);font-weight:var(--vn-weight-bold)}.pc-shift .cell-button.selected:hover:not(:disabled){background:#1f5cd6}.pc-shell .pc-main button.cell-button.selected:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn){background:#2f6fed;box-shadow:inset 0 0 0 2px #143f8f;color:var(--vn-on-dark);font-weight:var(--vn-weight-bold)}.pc-shell .pc-main button.cell-button.selected:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn):hover:not(:disabled){background:#1f5cd6}.pc-shift .shift-empty{color:var(--vn-ink-weak)}.attendance-input .attend-field{margin:4px 0 8px}.attendance-input .attend-field-label{display:block;font-weight:var(--vn-weight-bold);font-size:var(--vn-text-s);color:var(--vn-ink);margin-bottom:3px}.attendance-input .attend-user-select select{min-width:220px;max-width:360px}.attendance-input .attend-type-row{display:flex;gap:6px;flex-wrap:wrap}.attendance-input .attend-field>input{display:block;width:100%;box-sizing:border-box}.attendance-input .attend-type-btn{min-width:64px}.attendance-input .attend-punch-hint{font-size:var(--vn-text-xs);color:var(--vn-ink-sub);margin:4px 0 0}.attendance-input .attend-bulk-bar{margin:6px 0;display:flex;gap:6px}.attendance-input .attend-sel-col{width:42px;text-align:center}.attendance-input table{width:100%}.attendance-input .attend-edit-table{table-layout:fixed}.attendance-input .attend-edit-table .attend-sel-col{width:84px}.attendance-input .attend-edit-inline select,.attendance-input .attend-edit-inline input{width:100%;box-sizing:border-box;min-width:0}.attendance-input .attend-edit-table td.center{padding:2px 4px;overflow:hidden}.attendance-input .attend-edit-table td.center button{width:100%;box-sizing:border-box;min-width:0;padding:0 4px}.attendance-input .attend-type-btn.active{background:#fff6a8;color:green;border-color:#b38f00;font-weight:var(--vn-weight-bold)}.pc-shell .pc-main .attendance-input button.attend-type-btn.active:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn){background:#fff6a8;color:green;border-color:#b38f00;font-weight:var(--vn-weight-bold)}.attendance-input button.primary{width:auto;min-height:32px;padding:6px 18px;font-size:var(--vn-text-m)}.attendance-input table{width:100%;table-layout:fixed}.attendance-input td{word-break:break-word;vertical-align:top}.attendance-input td input{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.attendance-input .attend-dt{white-space:nowrap}.pc-shift .shift-month .shift-grid{table-layout:auto}.pc-shift .generated-plan{margin-top:10px;padding:8px;border-radius:2px}.pc-shift .field{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:6px;margin:6px 8px;min-height:24px}.pc-shift .field .hint{grid-column:1 / -1;margin:0}.pc-shift .field input,.pc-shift .field select{width:100%;height:22px;font-size:var(--vn-text-s);border:1px solid #999;border-radius:0;background:#fff}.pc-shift .requirements{margin:6px 8px;padding:8px 6px 6px;border:1px solid #999;border-radius:0;background:#fbfbfb;display:grid;grid-template-columns:1fr 1fr;gap:2px 6px}.pc-shift .requirements legend{font-weight:var(--vn-weight-bold);padding:0 4px;color:var(--vn-ink)}.pc-shift .requirements .field{margin:0;grid-template-columns:42px 1fr;min-width:0}.pc-shift .requirements .field input{min-width:0;width:100%;box-sizing:border-box}.pc-shift .requirements-table{display:block}.pc-shift .requirements-table table{width:100%;table-layout:fixed;border-collapse:collapse}.pc-shift .requirements-table th,.pc-shift .requirements-table td{padding:1px 3px}.pc-shift .requirements-table tbody th{position:static;width:auto}.pc-shift .requirements-table td input{min-width:0;width:100%;box-sizing:border-box}.pc-shift .requirements-table .hint{display:block;margin-top:4px}.pc-shift .unmet-by-priority{margin:2px 0 4px;padding-left:16px}.pc-shift .unmet-by-priority .unmet-rank{font-weight:var(--vn-weight-bold)}.pc-shift .unmet-by-priority ul{margin:0;padding-left:14px}.pc-shift .shift-toolbar button,.pc-shift .week-nav button,.pc-shift .shift-generator button,.pc-shift .shift-request-form button{border:1px solid #777;border-radius:0;background:linear-gradient(#fff,#dcdcdc);color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.pc-shift .shift-toolbar button:hover:not(:disabled),.pc-shift .week-nav button:hover:not(:disabled),.pc-shift .shift-generator button:hover:not(:disabled),.pc-shift .shift-request-form button:hover:not(:disabled){background:linear-gradient(#fff,#d0d0d0);border-color:#777}.pc-shift .shift-generator button,.pc-shift .shift-request-form button.primary{margin:6px 8px;width:calc(100% - 16px)}.pc-shift .shift-generator button.primary,.pc-shift .shift-request-form button.primary{background:linear-gradient(#e9f3ff,#cbdff6);border:1px solid #6a7fa0;border-radius:0;color:#1c3a5e}.pc-shift .shift-generator button.primary:hover:not(:disabled),.pc-shift .shift-request-form button.primary:hover:not(:disabled){background:linear-gradient(#d8ebff,#b9d3f1);border-color:#6a7fa0;color:#1c3a5e}.pc-shift .shift-bulk-assign{display:grid;grid-template-columns:minmax(180px,1fr) 2fr minmax(160px,1fr);grid-template-areas:"staff cal type" "actions actions actions" "result result result";gap:12px;align-items:start}.pc-shift .bulk-assign-staff{grid-area:staff}.pc-shift .bulk-assign-calendar{grid-area:cal}.pc-shift .bulk-assign-type{grid-area:type}.pc-shift .bulk-assign-actions{grid-area:actions;margin-top:14px;padding-top:10px;border-top:1px solid #ccc;display:flex;justify-content:flex-end}.pc-shift .bulk-assign-actions button{margin:0;min-width:140px}.pc-shift .bulk-assign-result{grid-area:result}.pc-shift .bulk-assign-months{display:flex;gap:8px;flex-wrap:wrap}.pc-shift .bulk-assign-day-list{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.pc-shift .shift-bulk-assign h4{color:var(--vn-ink-weak)}@media (max-width: 900px){.pc-shift .shift-bulk-assign{grid-template-columns:1fr;grid-template-areas:"staff" "cal" "type" "actions" "result"}}.pc-user.user-registration{display:flex;flex-direction:column;gap:8px;font-size:var(--vn-text-m);color:var(--text)}.pc-user .pc-user-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid #294b78;padding-bottom:4px}.pc-user .pc-user-head h2{font-size:var(--vn-text-l);margin:0}.pc-user .pc-user-mode{font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.pc-user .pc-user-conds{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;background:#fafafa;border:1px solid #aaa;border-radius:0;padding:6px 8px}.pc-user .pc-user-conds label{display:inline-flex;align-items:center;gap:4px;font-size:var(--vn-text-s);color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.pc-user .pc-user-conds input,.pc-user .pc-user-conds select{font-size:var(--vn-text-s);padding:2px 4px;border:1px solid #999;border-radius:0;background:#fff;width:110px}.pc-user .pc-user-conds-btns{margin-left:auto;display:flex;gap:6px}.pc-user button{font-size:var(--vn-text-s);padding:3px 10px;border:1px solid #777;border-radius:0;background:linear-gradient(#fff,#dcdcdc);color:var(--vn-ink);font-weight:var(--vn-weight-bold);cursor:pointer}.pc-user button:hover:not(:disabled){background:linear-gradient(#fff,#cfcfcf)}.pc-user button:disabled{opacity:.5;cursor:not-allowed}.pc-user button.primary{background:linear-gradient(#0ba76c,#007f4f);border-color:#006940;color:var(--vn-on-dark);font-weight:var(--vn-weight-bold)}.pc-user button.primary:hover:not(:disabled){background:linear-gradient(#0cae71,#00683f)}.pc-user .pc-user-work{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);grid-template-areas:"list form" "list audit";gap:8px;align-items:start}.pc-user .pc-user-col-list{grid-area:list}.pc-user .pc-user-col-form{grid-area:form}.pc-user .pc-user-col-audit{grid-area:audit}.pc-user .pc-user-col{border:1px solid #777;border-radius:0;background:#fff;padding:6px 8px;min-width:0}.pc-user .pc-user-col>h3{background:var(--vn-bar-panel);color:var(--vn-bar-fg);height:26px;display:flex;align-items:center;justify-content:space-between;margin:-6px -8px 6px;padding:0 8px;font-size:var(--vn-text-m);border-bottom:none;border-radius:0}.pc-user .pc-user-col>h3 .pc-user-colsub{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-normal);color:var(--vn-on-dark)}.pc-user .pc-user-col h4{font-size:var(--vn-text-s);margin:10px 0 4px;background:#eee;border-bottom:1px solid #aaa;padding:2px 5px;color:var(--vn-ink)}.pc-user .pc-user-table-wrap{overflow:auto;max-height:360px}.pc-user .vn-table th,.pc-user .vn-table td{padding:3px 5px}.pc-user .vn-table thead th{position:sticky;top:0}.pc-user table.pc-user-table tbody tr{cursor:pointer}.pc-user table.pc-user-table tbody tr.pc-user-row--on td{background:var(--vn-row-selected);font-weight:var(--vn-weight-medium)}.pc-user .pc-user-empty{text-align:center;color:var(--vn-ink-weak)}.pc-user .pc-user-badge{display:inline-block;font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);padding:0 6px;border-radius:0;border:1px solid #aaa}.pc-user .pc-user-badge--active{background:#e3fff1;color:#007f4f;border-color:#9fcdbb}.pc-user .pc-user-badge--suspended{background:#fff4c8;color:#8a5600;border-color:#d8bf7a}.pc-user .pc-user-badge--locked{background:#fff0f0;color:#b00020;border-color:#e3a6a6}.pc-user .pc-user-form{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.pc-user .pc-user-field{display:grid;grid-template-columns:96px 1fr;align-items:stretch;column-gap:0;row-gap:2px;min-width:0}.pc-user .pc-user-form>.pc-user-field--wide{grid-column:1 / -1}.pc-user .pc-user-field label{display:flex;align-items:center;font-size:var(--vn-text-xs);color:var(--vn-ink);font-weight:var(--vn-weight-bold);background:#eee;border:1px solid #bbb;border-right:none;padding:0 5px}.pc-user .pc-user-field input,.pc-user .pc-user-field select{font-size:var(--vn-text-s);padding:3px 5px;border:1px solid #999;border-radius:0;background:#fff;width:100%;min-width:0}.pc-user .pc-user-field input[readonly]{background:#f2f5f3;color:var(--vn-ink-sub)}.pc-user .pc-user-field .pc-user-hint{grid-column:1 / -1}.pc-user .pc-user-hint{font-size:var(--vn-text-xs);color:var(--vn-ink-weak);margin:2px 0 0}.pc-user .pc-user-field--check{display:block}.pc-user .pc-user-field--check>label{display:inline-flex;align-items:center;gap:.3rem;width:auto;background:none;border:none;padding:2px 0;font-size:var(--vn-text-s)}.pc-user .pc-user-field--check>label input{width:auto}.pc-user .pc-user-field--check>.pc-user-hint{display:block}.pc-user .pc-user-presets{display:grid;grid-template-columns:1fr;gap:6px;margin-top:10px}.pc-user .pc-user-preset{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:0 2px;text-align:left;padding:6px;border:1px solid #999;border-radius:0;background:#fbfbfb;cursor:pointer}.pc-user .pc-user-preset strong{font-size:var(--vn-text-s);color:#24456f}.pc-user .pc-user-preset span{font-size:var(--vn-text-xs);color:var(--vn-ink-sub)}.pc-user .pc-user-preset--on{border-color:#c9a900;background:#fff6a8;box-shadow:none}.pc-user .pc-user-stateline{display:flex;align-items:center;gap:6px;font-size:var(--vn-text-s);margin:0 0 6px}.pc-user .pc-user-stateops-btns{display:flex;gap:6px;flex-wrap:wrap}.pc-user .pc-user-btn-reset{margin-left:auto}.pc-user-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000073;padding:16px}.pc-user-modal-card{background:var(--surface, #fff);color:var(--text, #1a1a1a);border-radius:8px;padding:20px 22px;width:min(420px,100%);box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;gap:6px}.pc-user-modal-card h3{margin:0 0 4px}.pc-user-modal-sub{margin:0 0 8px;font-size:var(--vn-text-m)}.pc-user-modal-card label{font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium);margin-top:6px}.pc-user-modal-card>input{padding:7px 9px;font-size:var(--vn-text-ml);color:var(--text, #1a1a1a)}.pc-user-modal-tools{display:flex;align-items:center;gap:12px;margin-top:8px}.pc-user-modal-show{display:inline-flex;align-items:center;gap:4px;font-weight:var(--vn-weight-normal);margin:0}.pc-user-modal-btns{display:flex;gap:8px;margin-top:14px}.pc-user-modal-btns .pc-user-btn-primary{background:var(--primary, #1769aa);color:var(--vn-on-dark)}.pc-user-modal-btns button:disabled{opacity:.5;cursor:not-allowed}.pc-user ul.pc-user-checks{list-style:none;margin:0;padding:0;font-size:var(--vn-text-s)}.pc-user ul.pc-user-checks li{padding:1px 0}.pc-user ul.pc-user-checks li.ok{color:var(--green-deep)}.pc-user ul.pc-user-checks li.ng{color:var(--danger-text)}.pc-user .pc-user-credentials{border:1px solid var(--amber-border);background:var(--amber-soft);border-radius:0;padding:8px 10px;font-size:var(--vn-text-s)}.pc-user .pc-user-credentials code{font-family:monospace;background:#fff;padding:1px 4px;border:1px solid #999;border-radius:0}.pc-user .pc-user-credentials-btns{display:flex;gap:6px;margin:6px 0}.pc-user .pc-user-footer{border-top:1px solid #999;background:#efefef;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.pc-user .pc-user-footer-btns{display:flex;gap:6px;justify-content:flex-end}.pc-user .pc-user-footer .error{color:var(--danger-text);font-size:var(--vn-text-s);margin:0}.pc-user .pc-user-footer .success{color:var(--green-deep);font-size:var(--vn-text-s);margin:0}@media (max-width: 1100px){.pc-user .pc-user-work{grid-template-columns:1fr;grid-template-areas:"list" "form" "audit"}.pc-user .pc-user-presets{grid-template-columns:1fr}}.pc-ann{display:flex;flex-direction:column;gap:8px;font-size:var(--vn-text-m);color:var(--text);--green: #2f6cc0;--green-deep: #1f4e8c;--green-soft: #eef4ff}.pc-ann .pc-ann-head{display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--green);padding-bottom:4px}.pc-ann .pc-ann-head h2{font-size:var(--vn-text-l);margin:0}.pc-ann .pc-ann-mode{font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.pc-ann .pc-ann-conds{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;background:var(--green-soft);border:1px solid var(--line-strong);border-radius:4px;padding:6px 8px}.pc-ann .pc-ann-conds label{display:inline-flex;align-items:center;gap:4px;font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.pc-ann .pc-ann-conds input,.pc-ann .pc-ann-conds select{font-size:var(--vn-text-s);padding:2px 4px;border:1px solid var(--line-strong);border-radius:3px;background:#fff;width:120px}.pc-ann .pc-ann-conds-btns{margin-left:auto;display:flex;gap:6px}.pc-ann button{font-size:var(--vn-text-s);padding:3px 10px;border:1px solid var(--line-strong);border-radius:3px;background:#fff;color:var(--text);cursor:pointer}.pc-ann button:hover:not(:disabled){background:var(--green-soft)}.pc-ann button:disabled{opacity:.5;cursor:not-allowed}.pc-ann button.primary{background:var(--green);border-color:var(--green-deep);color:var(--vn-on-dark);font-weight:var(--vn-weight-medium)}.pc-ann button.primary:hover:not(:disabled){background:var(--green-deep)}.pc-ann button.green{background:var(--green-deep);border-color:var(--green-deep);color:var(--vn-on-dark);font-weight:var(--vn-weight-medium)}.pc-ann button.orange{background:var(--amber-soft);border-color:var(--amber-border);color:#6b4300}.pc-ann button.red{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger-text)}.pc-ann .pc-ann-counts{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.pc-ann .pc-ann-count strong{color:var(--vn-ink);font-weight:var(--vn-weight-bold)}.pc-ann .pc-ann-count--high strong{color:var(--danger-text)}.pc-ann .pc-ann-footer-preview{margin:0;padding:8px 10px;border:1px dashed var(--line-strong);border-radius:4px;font-family:inherit;font-size:var(--vn-text-s);color:var(--vn-ink);white-space:pre-wrap}.pc-ann .pc-ann-sender-hint button{margin-left:8px}.pc-ann .pc-ann-head .pc-ann-new{margin-left:auto}.pc-ann .pc-ann-head .pc-ann-back{margin-right:8px}.pc-ann .pc-ann-work{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.pc-ann .pc-ann-work>.pc-ann-col-form{flex:3 1 480px}.pc-ann .pc-ann-work>.pc-ann-col-status{flex:2 1 320px}.pc-ann .pc-ann-col{border:1px solid var(--line-strong);border-radius:4px;background:#fff;padding:6px 8px;min-width:0}.pc-ann .pc-ann-col>h3{font-size:var(--vn-text-m);margin:0 0 6px;padding-bottom:3px;border-bottom:1px solid var(--line);color:var(--green-deep)}.pc-ann .pc-ann-col h4{font-size:var(--vn-text-s);margin:10px 0 4px;color:var(--vn-ink-sub)}.pc-ann .pc-ann-detail{margin:4px 0 0;font-size:var(--vn-text-s)}.pc-ann .pc-ann-detail dt{font-weight:var(--vn-weight-medium);color:var(--green-deep);margin-top:6px}.pc-ann .pc-ann-detail dd{margin:1px 0 0}.pc-ann .pc-ann-detail dd.pc-ann-detail-body{white-space:pre-wrap;line-height:1.5}.pc-ann .pc-ann-tabrow{display:flex;gap:5px;margin-bottom:6px;flex-wrap:wrap}.pc-ann .pc-ann-tab{font-size:var(--vn-text-xs);padding:2px 9px}.pc-ann .pc-ann-tab.active{background:var(--green-soft);border-color:var(--green-deep);color:var(--green-deep);font-weight:var(--vn-weight-medium)}.pc-shell .pc-main button.pc-ann-tab.active:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn){background:var(--green-soft);border-color:var(--green-deep);color:var(--green-deep);font-weight:var(--vn-weight-medium)}.pc-ann .pc-ann-table-wrap{overflow:auto;max-height:420px}.pc-ann .vn-table th,.pc-ann .vn-table td{padding:3px 5px}.pc-ann .vn-table thead th{position:sticky;top:0}.pc-ann table.pc-ann-table .pc-ann-title-cell{max-width:200px}.pc-ann table.pc-ann-table .pc-ann-statecell{text-align:center}.pc-ann table.pc-ann-table tbody tr{cursor:pointer}.pc-ann table.pc-ann-table tbody tr.pc-ann-row--on td{background:var(--vn-row-selected);font-weight:var(--vn-weight-medium)}.pc-ann .pc-ann-empty{text-align:center;color:var(--vn-ink-weak)}.pc-ann .pc-ann-pri--high{color:var(--danger-text);font-weight:var(--vn-weight-bold)}.pc-ann .pc-ann-pri--mid{color:#7a5200}.pc-ann .pc-ann-badge{display:inline-block;font-size:var(--vn-text-xs);padding:0 6px;border-radius:8px;border:1px solid transparent}.pc-ann .pc-ann-badge--published{background:#eef4ff;color:#294b78;border-color:var(--line-strong)}.pc-ann .pc-ann-badge--pending{background:#fff4e0;color:#8a5a00;border-color:var(--line-strong)}.pc-ann .pc-ann-badge--draft{background:#eee;color:var(--vn-ink-sub);border-color:var(--line-strong)}.pc-ann .pc-ann-badge--ended{background:var(--green-soft);color:var(--green-deep);border-color:var(--line-strong)}.pc-ann .pc-ann-form{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.pc-ann .pc-ann-field{display:flex;flex-direction:column;gap:2px;min-width:0}.pc-ann .pc-ann-field--wide{grid-column:1 / 3}.pc-ann .pc-ann-field label{font-size:var(--vn-text-xs);color:var(--vn-ink-sub)}.pc-ann .pc-ann-field input,.pc-ann .pc-ann-field select,.pc-ann .pc-ann-field textarea{font-size:var(--vn-text-s);padding:3px 5px;border:1px solid var(--line-strong);border-radius:3px;background:#fff;font-family:inherit}.pc-ann .pc-ann-field input[readonly]{background:#f2f5f3;color:var(--vn-ink-sub)}.pc-ann .pc-ann-editor{resize:vertical;line-height:1.45;min-height:120px}.pc-ann .pc-ann-editor--sub{min-height:70px}.pc-ann .pc-ann-field-note{font-size:var(--vn-text-xs);color:var(--vn-ink-sub);margin-top:2px}.pc-ann .pc-ann-options{border-top:1px dashed var(--line-strong);padding-top:6px;gap:4px}.pc-ann .pc-ann-options-label{font-size:var(--vn-text-xs);color:var(--vn-ink-sub)}.pc-ann .pc-ann-check{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:var(--vn-text-s);color:var(--text)}.pc-ann .pc-ann-check input{width:auto}.pc-ann .pc-ann-templates{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:6px;padding-bottom:6px;border-bottom:1px dashed var(--line-strong)}.pc-ann .pc-ann-templates-label{font-size:var(--vn-text-xs);color:var(--vn-ink-sub);margin-right:2px}.pc-ann .pc-ann-template-btn{font-size:var(--vn-text-xs);padding:2px 8px;border:1px solid var(--line-strong);border-radius:999px;background:#f2f5f3;color:var(--text);cursor:pointer}.pc-ann .pc-ann-template-btn:hover{background:var(--green-soft);border-color:var(--green);color:var(--green-deep)}.pc-ann .pc-ann-status-kpis{display:flex;gap:6px;flex-wrap:wrap}.pc-ann .pc-ann-status-kpi{display:flex;flex-direction:column;min-width:80px;border:1px solid var(--line-strong);border-radius:4px;padding:4px 8px;background:#fff}.pc-ann .pc-ann-status-kpi span{font-size:var(--vn-text-xs);color:var(--vn-ink-sub)}.pc-ann .pc-ann-status-kpi strong{font-size:var(--vn-text-xl);color:var(--green-deep)}.pc-ann .pc-ann-status-kpi--rate{background:var(--green-soft)}.pc-ann .pc-ann-roster{max-height:150px;overflow:auto;border:1px solid var(--line);border-radius:3px;padding:4px 6px}.pc-ann .pc-ann-roster ul{list-style:none;margin:0;padding:0;font-size:var(--vn-text-s)}.pc-ann .pc-ann-roster li{padding:2px 0;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #f0f0f0}.pc-ann .pc-ann-readat{color:var(--vn-ink-weak);font-size:var(--vn-text-xs)}.pc-ann .pc-ann-roster-id{color:var(--vn-ink-weak);font-size:var(--vn-text-xs);font-family:monospace}.pc-ann .pc-ann-hint{font-size:var(--vn-text-xs);color:var(--vn-ink-weak);margin:2px 0 0}.pc-ann .pc-ann-ops{white-space:nowrap}.pc-ann .pc-ann-ops button{font-size:var(--vn-text-xs);padding:2px 8px;margin:0 2px}.pc-ann .pc-ann-acked{font-size:var(--vn-text-xs);color:var(--green-deep)}.pc-ann .pc-ann-roster-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 2px}.pc-ann .pc-ann-roster-head h4{margin:0}.pc-ann .pc-ann-unread-csv{font-size:var(--vn-text-xs);padding:2px 8px}.pc-ann .pc-ann-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pc-ann .pc-ann-list-head h3{margin:0}.pc-ann .pc-ann-list-csv{font-size:var(--vn-text-xs);padding:2px 8px}.pc-ann .pc-ann-list-bar{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}.pc-ann .pc-ann-list-title{margin:0;font-size:var(--vn-text-m);white-space:nowrap}.pc-ann .pc-ann-list-bar .pc-ann-tabrow{margin-bottom:0}.pc-ann .pc-ann-list-bar .pc-ann-list-csv{margin-left:auto}.pc-ann .vn-table.pc-ann-audit th,.pc-ann .vn-table.pc-ann-audit td{padding:3px 5px}.pc-ann .pc-ann-footer{border-top:1px solid var(--line);padding-top:6px;display:flex;flex-direction:column;gap:4px}.pc-ann .pc-ann-footer-btns{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.pc-ann .pc-ann-footer .error{color:var(--danger-text);font-size:var(--vn-text-s);margin:0}.pc-ann .pc-ann-footer .success{color:var(--green-deep);font-size:var(--vn-text-s);margin:0}.myann{display:flex;flex-direction:column;gap:10px}.myann-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.myann-head h2{margin:0;font-size:var(--vn-text-xl);color:var(--green-deep)}.myann-unread-count{font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);color:var(--vn-on-dark);background:var(--danger);border-radius:999px;padding:2px 10px}.myann-note{margin:0;font-size:var(--vn-text-s);color:var(--danger-text);background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:8px;padding:6px 10px}.myann-empty{margin:8px 0;color:var(--vn-ink-sub);font-size:var(--vn-text-m)}.myann-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.myann-card{border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:10px;background:var(--card);padding:10px 12px}.myann-card--unread{border-left-color:var(--green);background:var(--green-soft)}.myann-card--read{background:#fafbfa;color:var(--vn-ink-sub)}.myann-card--read .myann-title{color:var(--vn-ink-sub)}.myann-card--unread.myann-card--pri-high{border-left-color:var(--danger)}.myann-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.myann-badge{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);border-radius:6px;padding:1px 8px;border:1px solid var(--line-strong);color:var(--text)}.myann-badge--notice{background:var(--green-soft);color:var(--green-deep);border-color:var(--green)}.myann-badge--handover{background:var(--amber-soft);color:var(--amber-text);border-color:var(--amber-border)}.myann-pri{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);border-radius:6px;padding:1px 8px}.myann-pri--high{background:var(--danger-soft);color:var(--danger-text)}.myann-pri--mid{background:#eef2f7;color:#3a5068}.myann-pri--low{background:#f1f4f2;color:var(--vn-ink-sub)}.myann-ack{font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);color:var(--danger-text);border:1px solid var(--danger-border);background:var(--danger-soft);border-radius:6px;padding:1px 8px}.myann-flag{margin-left:auto;font-size:var(--vn-text-xs);font-weight:var(--vn-weight-bold);border-radius:6px;padding:1px 8px}.myann-flag--unread{background:var(--green);color:var(--vn-on-dark)}.myann-flag--read{background:#e7ebe9;color:var(--vn-ink-sub)}.myann-title{margin:2px 0;font-size:var(--vn-text-ml);font-weight:var(--vn-weight-bold);color:var(--text)}.myann-body{margin:2px 0;font-size:var(--vn-text-m);line-height:1.5;white-space:pre-wrap;word-break:break-word}.myann-meta{font-size:var(--vn-text-xs);color:var(--vn-ink-weak);margin-top:4px}.myann-handover{margin:4px 0 2px;border-top:1px solid var(--line);padding-top:4px}.myann-handover-label{margin-bottom:0}.myann-handover-body{margin:2px 0 0;font-size:var(--vn-text-m);line-height:1.5;white-space:pre-wrap;word-break:break-word}.myann-actions{display:flex;align-items:center;gap:10px;margin-top:8px}.myann-ack-hint{font-size:var(--vn-text-s);color:var(--danger-text);font-weight:var(--vn-weight-bold)}.myann-read-btn{margin-left:auto;font-size:var(--vn-text-m);font-weight:var(--vn-weight-bold);color:var(--vn-on-dark);background:var(--green-deep);border:none;border-radius:8px;padding:6px 16px;cursor:pointer}.myann-read-btn:hover:not(:disabled){background:var(--green)}.myann-read-btn:disabled{opacity:.6;cursor:not-allowed}.pc-myann .myann-card{padding:8px 12px}.pc-myann .myann-title{font-size:var(--vn-text-m)}.pc-myann .myann-body{font-size:var(--vn-text-s)}.myann-mobile .myann-card{padding:12px 14px;border-radius:12px}.myann-mobile .myann-title{font-size:var(--vn-text-l)}.myann-mobile .myann-body{font-size:var(--vn-text-ml)}.myann-mobile .myann-read-btn{min-height:44px;padding:8px 22px;font-size:var(--vn-text-l)}.notif-inbox table,.notif-inbox button,.notif-inbox input{border-radius:0}.notif-inbox .notif-inbox-head,.notif-inbox .notif-urgent-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.notif-inbox .notif-inbox-head h2,.notif-inbox .notif-urgent-head h2{margin:0;font-size:var(--vn-text-l)}.notif-inbox .notif-inbox-count{font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.notif-inbox .notif-urgent-panel{border:1px solid #c98a8a;background:#fff6f6;padding:6px 8px;margin-bottom:14px}.notif-inbox .notif-urgent-head{border-bottom:2px solid #b00020;padding-bottom:4px}.notif-inbox .notif-urgent-head h2{color:#b00020}.notif-inbox .notif-urgent-list thead th{background:#b00020;color:var(--vn-on-dark)}.notif-inbox .notif-empty{color:var(--vn-ink-sub)}.notif-inbox .notif-main-panel{margin-bottom:14px}.notif-inbox .notif-tabrow{display:flex;gap:6px;margin:6px 0}.notif-inbox .notif-tabrow button{min-width:84px}.notif-inbox .notif-tabrow button.active{background:#fff6a8;color:green;font-weight:var(--vn-weight-bold)}.pc-shell .pc-main .notif-tabrow button.active:not(.vn-nav-item):not(.vn-nav-sub):not(.pc-card):not(.shift-paint-btn){background:#fff6a8;color:green;border-color:#b38f00;font-weight:var(--vn-weight-bold)}.notif-inbox .notif-search{display:flex;align-items:center;gap:6px;margin-bottom:6px}.notif-inbox .notif-search input{flex:1 1 auto;min-width:120px;height:24px;min-height:24px;font-size:var(--vn-text-s);padding:2px 6px;box-sizing:border-box}.notif-inbox .notif-search button.notif-search-btn{width:auto;flex:0 0 auto}.notif-inbox .notif-bulkrow{display:flex;justify-content:flex-end;margin-bottom:6px}.notif-inbox .notif-bulkrow .notif-bulk-btn{width:auto;flex:0 0 auto}.notif-inbox .notif-list{border:1px solid #aaa;overflow:auto}.notif-inbox .notif-list table{table-layout:fixed}.notif-inbox .notif-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-inbox .col-sel{width:42px}.notif-inbox .col-kind{width:64px}.notif-inbox .col-pri{width:50px}.notif-inbox .col-target{width:78px}.notif-inbox .col-unread{width:58px}.notif-inbox .col-deadline{width:82px}.notif-inbox .center{text-align:center}.notif-inbox th.notif-sort-th{cursor:pointer;-webkit-user-select:none;user-select:none}.notif-inbox .notif-sort-ind{margin-left:4px;font-size:var(--vn-text-xs)}.notif-inbox td.notif-sel-cell{padding:2px 4px}.notif-inbox td.notif-readmark-open{color:var(--vn-ink-weak);font-weight:var(--vn-weight-normal)}.notif-inbox td.notif-readmark-done{color:var(--vn-ink-strong);font-weight:var(--vn-weight-bold)}.notif-inbox td.redtxt{color:#b00020;font-weight:var(--vn-weight-bold)}.notif-inbox td.orangetxt{color:#7a5200;font-weight:var(--vn-weight-bold)}.notif-inbox td.center{text-align:center}.notif-inbox table tbody tr.row-expired td{background:#e6e6e6;color:var(--text)}.notif-inbox .vn-table tbody tr.selected td{background:var(--vn-row-selected)}.notif-inbox table tbody tr{cursor:pointer}.vn-table td.meta,.vn-table th.meta{color:var(--vn-ink);font-size:var(--vn-text-s)}.vn-table tbody tr.row-expired td{background:var(--vn-row-done);color:var(--vn-ink)}.notif-inbox .notif-pager{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:var(--vn-text-s)}.notif-inbox .notif-pager button{width:auto;flex:0 0 auto;min-width:48px}.notif-inbox .notif-pager-label{color:var(--vn-ink)}.notif-inbox .notif-detail{border:1px solid #aaa;background:#fafafa;padding:10px 12px}.notif-inbox .notif-detail-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:var(--vn-text-s);color:var(--vn-ink);margin-bottom:6px}.notif-inbox .notif-detail-title{margin:0 0 8px;font-size:var(--vn-text-ml)}.notif-inbox .notif-detail-label{font-weight:var(--vn-weight-bold);font-size:var(--vn-text-s);color:var(--vn-ink-weak);margin-bottom:2px}.notif-inbox .notif-detail-body p{margin:0;white-space:pre-wrap}.notif-inbox .notif-detail-handover{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.notif-inbox .notif-detail-empty{color:var(--vn-ink-sub);margin:0}.bulk-import .bulk-import-codes{margin:6px 0 0;padding:0;font-size:var(--vn-text-s);color:var(--vn-ink-weak)}.pc-screen .bulk-import-legend{max-width:none}.bulk-import .bulk-import-legend-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:4px 16px;align-items:start}.bulk-import .bulk-import-codes li{line-height:1.9;flex-wrap:wrap;white-space:nowrap}.bulk-import .bulk-import-tmpl-btn{font-size:var(--vn-text-xs)}.bulk-import .bulk-import-codes .bulk-import-tmpl-btn:first-of-type{margin-left:auto}.bulk-import .bulk-import-codes .bulk-import-code-no{font-weight:var(--vn-weight-bold);color:var(--vn-ink);min-width:1.4em}.bulk-import .bulk-import-codes code{background:#eef1f5;border:1px solid #ccc;padding:0 4px;font-weight:var(--vn-weight-bold);color:var(--vn-ink)}.bulk-import .import-dependency p{margin:2px 0}.bulk-import .import-dependency-list,.bulk-import .import-dependency-hint{font-size:var(--vn-text-s)}.vb-statusbar-version{font-variant-numeric:tabular-nums;color:var(--vn-ink-weak);flex:none}.app-version-bar{padding:.35rem .75rem .9rem;text-align:right;font-size:var(--vn-text-xs);color:var(--vn-ink-sub);font-variant-numeric:tabular-nums}.bulk-import .bulk-import-warn{margin:6px 0 2px}.bulk-import .bulk-import-note{margin:2px 0;font-size:var(--vn-text-s);color:var(--vn-ink-weak);font-weight:var(--vn-weight-normal)}.bulk-import .import-plan{margin:10px 0}.bulk-import .import-plan h3{margin:0 0 4px;font-size:var(--vn-text-m)}.bulk-import .import-plan-list{margin:0;padding-left:1.4em;font-size:var(--vn-text-m);line-height:1.9}.bulk-import .import-plan-file{font-family:var(--vn-font-mono)}.bulk-import .import-plan-mode{font-size:var(--vn-text-s);color:var(--vn-ink-weak)}.bulk-import .import-plan-preview{color:#1f5130}.bulk-import .import-plan-done{color:#1f5130;font-weight:var(--vn-weight-bold)}.bulk-import .import-plan-skipped{color:#8a5a00;font-size:var(--vn-text-s);font-weight:var(--vn-weight-medium)}.bulk-import .import-plan-error{font-size:var(--vn-text-s)}.bulk-import .import-plan-unknown{color:var(--danger-text, #b3261e)}.bulk-import .import-confirm-line{display:block;margin:2px 0}.bulk-import .import-done-card{width:min(560px,100%)}.bulk-import .import-done-list{margin:6px 0 10px;padding-left:1.3em;font-size:var(--vn-text-m);line-height:1.8}.vitals .vital-range-error{border-color:var(--danger, #c62828);outline:1px solid var(--danger, #c62828)}.vitals .vital-range-msg{font-size:var(--vn-text-s);line-height:1.4;margin-top:2px}.dashboard-mobile .dash-note{margin:6px 0 0;font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.report-screen-pc{display:flex;flex-direction:column;gap:12px}.report-screen-form{border-top:2px solid var(--line-strong, #999);padding-top:10px}.pc-report-editing{display:flex;align-items:center;gap:10px;padding:5px 10px;margin:0 0 6px;background:#fff7e0;border:1px solid #e0b64d;font-size:var(--vn-text-m)}.report-status-panel{border:1px solid var(--line-strong, #999);background:#fafafa;padding:8px 12px;margin:0 0 10px}.report-status-panel h3{margin:0 0 4px;font-size:var(--vn-text-m)}.report-status-line{margin:0;font-size:var(--vn-text-m)}.report-status-missing{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0 0;padding:0;list-style:none;font-size:var(--vn-text-m)}.report-status-done{margin:4px 0 0;font-size:var(--vn-text-s);color:#1f5130}.report-status-backdate{margin:6px 0 0;font-size:var(--vn-text-s);color:#7a4a00}.report-status-backdate strong{font-weight:var(--vn-weight-bold)}.report-list-filters{flex-wrap:wrap}.report-preset-row{display:flex;gap:4px}.report-list-pc .vn-table tbody tr{cursor:pointer}.report-list-hint{font-size:var(--vn-text-s);color:var(--vn-ink-sub)}.license-banner{display:flex;align-items:center;gap:10px;padding:6px 14px;background:#fff7e0;border-bottom:2px solid #e0a800;font-size:var(--vn-text-m);color:#6b4e00}.license-banner.severe{background:#fdeaea;border-bottom-color:#c62828;color:#8b1c1c}.license-banner-label{flex:none;font-weight:var(--vn-weight-bold);padding:2px 8px;border:1px solid currentColor;border-radius:3px;font-size:var(--vn-text-s)}.license-banner-text{flex:1}.license-banner-btn{flex:none;padding:3px 12px;font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);border:1px solid currentColor;background:#fff;color:inherit;cursor:pointer}.license-banner-btn:hover{background:#fff3cd}.license-panel{max-width:760px}.license-facts{display:grid;grid-template-columns:8em 1fr;gap:6px 12px;margin:12px 0 18px;font-size:var(--vn-text-m)}.license-facts dt{color:var(--vn-ink-sub)}.license-facts dd{margin:0}.license-status{font-weight:var(--vn-weight-bold)}.license-status-expired,.license-status-invalid,.license-status-mismatch{color:#c62828}.license-status-expiring{color:#b26a00}.license-status-valid{color:#1b7f4b}.license-status-free{color:var(--vn-ink)}.license-daysleft{margin-left:6px;color:var(--vn-ink-sub)}.license-machine-id{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--vn-text-ml);letter-spacing:.08em;padding:2px 8px;background:#f2f4f6;border:1px solid var(--line)}.license-copy-btn{margin-left:8px;font-size:var(--vn-text-s);padding:2px 10px;cursor:pointer}.license-toggle-btn{font-size:var(--vn-text-s);padding:4px 12px;cursor:pointer}.license-copied{margin-left:8px;font-size:var(--vn-text-s);color:#1b7f4b}.license-guidance{padding:8px 12px;background:#fdeaea;border-left:4px solid #c62828;font-size:var(--vn-text-m)}.license-activate textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:var(--vn-text-s);word-break:break-all}.license-note{font-size:var(--vn-text-s);color:var(--vn-ink-sub);margin-top:12px}.pc-screen .shift-timeframe-table input:not([type=checkbox]){width:100%;box-sizing:border-box}.shift-timeframe-master .shift-timeframe-table input:not([type=checkbox]){width:100%;box-sizing:border-box}.shift-timeframe-master .shift-timeframe-add{margin-top:1rem;max-width:640px}.shift-timeframe-master .shift-timeframe-add h3{margin:0 0 .6rem;font-size:var(--vn-text-xl)}.shift-timeframe-master .shift-timeframe-table th:last-child,.shift-timeframe-master .shift-timeframe-table td:last-child{width:1%;white-space:nowrap}.pc-user-weekdays{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.pc-user-weekday{display:inline-flex;align-items:center;gap:.2rem;font-size:var(--vn-text-ml)}.generated-plan .plan-rule-summary{margin:.4rem 0 .6rem;font-size:var(--vn-text-ml)}.generated-plan .plan-rule-summary ul{margin:.2rem 0 0;padding-left:1.2rem}.generated-plan .plan-rule-detail{color:var(--vn-ink-sub);font-size:.85em}.company-rule-master .company-rule-table tbody tr{cursor:pointer}.company-rule-form{margin-top:1rem;max-width:640px}.company-rule-form h3{margin:0 0 .6rem;font-size:var(--vn-text-xl)}.company-rule-warnings{margin:.6rem 0;padding:.6rem .9rem .6rem 2rem;background:#fff8e6;border:1px solid #e6c86a;border-radius:8px;color:var(--text);font-size:var(--vn-text-ml)}.pc-hint{font-size:var(--vn-text-m);color:var(--vn-ink-sub);margin:-.2rem 0 .8rem}.pc-screen .product-price h3{font-size:var(--vn-text-ml);color:var(--text);margin:20px 0 8px}.product-search-table th:last-child,.product-search-table td:last-child{width:1%}.product-cost .stock-valuation{margin:16px 0 0}.product-cost .stock-valuation .val-input-row{display:flex;align-items:center;gap:6px}.product-cost .stock-valuation .server-calc{background:#dbe9fb;color:var(--text);padding:1px 5px;border-radius:2px}.product-cost .stock-valuation .val-tier-title{font-size:var(--vn-text-s);font-weight:var(--vn-weight-bold);color:var(--text);margin:10px 10px 2px}.product-cost .stock-valuation .valuation-sim-table{margin:8px 10px 10px}.product-cost .inv-tb-field input:not([type=date],[type=checkbox]),.product-cost .stock-valuation .val-input-row input{width:112px}.product-cost #pur-supplier,.product-cost #pur-note{width:200px}.product-cost .pur-content-row{display:flex;align-items:center;gap:6px}.product-price .product-cost{border-top:1px solid var(--vn-line-cell);margin-top:16px;padding-top:4px}.menu-recipes .inv-tb-field input:not([type=date],[type=checkbox]),.menu-recipes table input[type=text],.menu-sale .inv-tb-field input:not([type=date],[type=checkbox]),.menu-production .inv-tb-field input:not([type=date],[type=checkbox]){width:112px}.menu-cost>p,.menu-cost .menu-margin>p{font-size:var(--vn-text-s);margin:0;padding:8px 10px 0}.menu-cost>p.pc-hint{padding:8px 10px 10px}.menu-cost .pc-inv-grid-wrap{margin:8px 10px 0}.menu-sale .sale-rate-row{display:flex;align-items:center;gap:8px}.menu-recipes #mi-name,.menu-recipes #mi-source,.menu-recipes #mv-note,.menu-production #pd-note{width:200px}.product-cost .stock-valuation .val-more{margin:0 10px 10px}.product-cost .stock-valuation .val-input-row select{width:auto;min-width:0;flex:none}.vn-table col.col-select,.vn-table th.col-select,.vn-table td.col-select{width:4rem}.vn-table td.col-select,.vn-table td.col-input{text-align:center}.col-grip{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:3}.col-grip:hover{background:#ffffff73}.vn-table th:last-child>.col-grip{right:0}@media (pointer: coarse){.col-grip{display:none}}.vn-table td.ops,.vn-table td.pc-ann-ops{width:1%;white-space:nowrap;text-align:center}.product-cost .stock-valuation .valuation-now{font-size:var(--vn-text-s);margin:0;padding:10px 10px 4px}.product-cost .stock-valuation .inv-toolbar,.product-cost .stock-valuation details{padding:4px 10px 10px}.product-facility-filters{display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:flex-end;margin:.6rem 0;color:var(--text)}.product-facility-filters .field{display:inline-flex}.product-facility-addloc{margin:1rem 0;padding:.75rem 1rem;background:var(--panel, #fff);border:1px solid var(--line, #dfe3e8);border-radius:8px;color:var(--text)}.product-facility-addloc h3{margin-top:0}.product-facility-addloc .addloc-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.product-facility-addloc .addloc-row>*{margin-bottom:0}.product-facility-addloc .field{display:flex;flex-direction:column;margin-right:0;margin-bottom:0}.product-facility-addloc .addloc-row .field>:last-child{margin-bottom:0}.cam-photo{display:block;max-width:min(100%,320px);max-height:320px;object-fit:contain;margin:8px 0}.cam-photo-frame{position:relative;overflow:hidden;margin:16px auto;max-width:100%}.cam-photo-img{position:absolute;left:50%;top:50%;display:block;max-width:none}.menu-costs .inv-tb-field input:not([type=date],[type=checkbox]){width:112px}.menu-dashboard table input[type=text]{width:96px}.menu-dashboard td.dash-wrap{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;min-width:7rem}.menu-costs .pc-panel,.menu-dashboard .pc-panel{margin-top:16px}.menu-costs #bl-name{width:400px}.menu-costs,.menu-dashboard{padding:0 2px 10px}.menu-baseline{padding:0 10px 10px}.menu-costs .menu-baseline .pc-inv-filters{padding-left:0;padding-right:0}.menu-cost>details>summary{padding-left:10px}.menu-costs>.pc-inv-grid-wrap,.menu-costs>.product-master-pager,.menu-dashboard>.pc-inv-grid-wrap,.menu-dashboard>.product-master-pager{margin-left:4px;margin-right:4px}.menu-costs>.pc-inv-filters,.menu-dashboard>.pc-inv-filters{padding-left:10px;padding-right:10px}.menu-dashboard .product-master-pager .plan-save{margin-left:auto}.menu-dashboard>h3{margin:8px 4px}.menu-dashboard>details{margin:16px 4px 0;padding-top:12px;border-top:1px solid var(--vn-line-cell)}.date-presets{display:flex;align-items:center;gap:6px}.menu-makeable{padding:0 2px 10px}.menu-makeable>.pc-inv-grid-wrap,.menu-makeable>.product-master-pager{margin-left:4px;margin-right:4px}.menu-makeable>h3{margin:16px 4px 8px}.menu-makeable>.menu-cards{margin:0 4px 8px}.menu-makeable>.product-master-pager+h3{margin:20px 4px 8px;padding-top:16px;border-top:1px solid var(--vn-line-cell)}.menu-makeable th,.menu-sim th{position:relative}.menu-makeable .help-corner,.menu-sim .help-corner,.menu-csv .help-corner,.menu-camera .help-corner{position:absolute;top:0;right:0;width:.9em;height:.9em;min-width:0;min-height:0;padding:0;border:0;box-shadow:none;background:var(--vn-btn-danger-line);clip-path:polygon(0 0,100% 0,100% 100%);cursor:pointer}.help-note{position:fixed;z-index:50;width:260px;padding:8px 10px;background:var(--vn-row-zebra);color:var(--vn-ink);border:1px solid var(--vn-line-cell);box-shadow:2px 2px 6px var(--vn-line-cell);font-size:var(--vn-text-s)}.help-note p{margin:4px 0 8px;white-space:pre-line}.help-note button{display:block;margin-left:auto}.menu-csv{padding:0 2px 10px}.menu-csv>h3{margin:16px 4px 8px}.vn-table td.lot-plain{font-family:inherit;font-size:var(--vn-text-s);font-weight:var(--vn-weight-normal);color:var(--vn-ink);letter-spacing:normal}.vn-table td.lot-date{font-size:var(--vn-text-s);font-weight:var(--vn-weight-normal)}.stock-adjustment-form table.adj-pick{table-layout:fixed;width:100%;max-width:48rem}.stock-adjustment-form .adj-w-sku{width:12rem}.stock-adjustment-form .adj-w-qty{width:9rem}.stock-adjustment-form input.adj-num{width:112px}.stock-adjustment-form input.adj-reason{width:400px;max-width:100%}.loss-report .loss-head{position:relative;display:inline-block;padding-right:14px}.loss-report .help-corner{position:absolute;top:0;right:0;width:.9em;height:.9em;min-width:0;min-height:0;padding:0;border:0;box-shadow:none;background:var(--vn-btn-danger-line);clip-path:polygon(0 0,100% 0,100% 100%);cursor:pointer}.pager-size{white-space:nowrap}.bulk-qty-cell .bulk-unit{width:4.5rem;min-width:0;margin-left:6px}.bulk-qty-cell .bulk-conv{margin-left:8px}.menu-csv .pc-panel{margin:0 4px 16px;padding-bottom:10px}.menu-csv .pc-panel>:not(.pc-panel-head){margin-left:10px;margin-right:10px}.menu-csv .pc-panel>.inv-tb-actions{margin-top:10px}.menu-csv td.csv-msg{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;min-width:22rem}.menu-csv .csv-head{position:relative;display:inline-block;padding-right:14px}.menu-camera{padding:0 2px 10px}.menu-camera>h3{margin:16px 4px 8px}.menu-camera .cam-head{position:relative;display:inline-block;padding-right:14px}.menu-camera>p,.menu-camera .pc-panel>p{font-size:var(--vn-text-m)}.menu-camera input.cam-num{width:112px}.menu-camera input.cam-name{width:400px;max-width:100%}.menu-sim{padding:0 2px 10px}.menu-sim>.pc-inv-grid-wrap,.menu-sim>.product-master-pager{margin-left:4px;margin-right:4px}.menu-sim>h3{margin:16px 4px 8px}.menu-sim table.sim-pick{table-layout:fixed;width:100%;min-width:30rem}.menu-sim .sim-w-state{width:12rem}.menu-sim table.sim-cond{table-layout:fixed;width:100%;min-width:50rem}.menu-sim .sim-w-q{width:7rem}.menu-sim .sim-w-in{width:9rem}.menu-sim .sim-w-repl{width:12rem}.menu-sim input.sim-num{width:112px}.menu-sim input.sim-name{width:400px;max-width:100%}.menu-sim .sim-label{position:relative;display:inline-block;align-self:flex-start;padding-right:14px}.menu-makeable table.vn-table{table-layout:fixed;width:100%;min-width:62rem}.menu-makeable .mk-w-rank{width:3.5rem}.menu-makeable .mk-w-name{width:12rem}.menu-makeable .mk-w-count{width:6rem}.menu-makeable .mk-w-limit{width:8rem}.menu-makeable .mk-w-ops{width:12rem}.menu-makeable .mk-w-mat{width:18rem}.menu-makeable td.mk-uses{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.menu-makeable table.mk-pick{min-width:40rem}.menu-makeable .mk-w-per{width:11rem}.menu-makeable .mk-w-status{width:14rem}
