:root{--bg: #09090e;--bg2: #0f1018;--bg3: #141720;--bg4: #1a1e2b;--border: #1e2235;--border2: #252b40;--border3: #2e3650;--text: #c8d0e8;--text2: #7888aa;--text3: #3f4f6e;--accent: #5b8df5;--accent2: #88aaf8;--accent3: #c0d4ff;--green: #1fc98e;--amber: #f0a832;--red: #f06878;--purple: #9d7cf4;--teal: #22d4c8;--pink: #e87bbf;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans Thai", system-ui, sans-serif;--display: "Syne", var(--sans);--r: 6px;--r1: var(--r);--r2: 10px;--r3: 14px;--field-h: 36px;--field-pad: 8px 10px;--field-fs: 13px;--field-h-sm: 30px;--field-pad-sm: 4px 8px;--field-fs-sm: 12.5px;--shadow-modal: 0 24px 48px rgba(0, 0, 0, .45);--overlay-scrim: rgba(5, 6, 12, .72)}[data-theme=light]{--bg: #f4f6fc;--bg2: #e8ecf6;--bg3: #dde3f0;--bg4: #d0d7ea;--border: #c5cde0;--border2: #b3bdd8;--border3: #9aa6c4;--text: #141824;--text2: #3d4a63;--text3: #6b7894;--accent: #3b6fd9;--accent2: #2f5fcc;--accent3: #1a4ab8;--green: #0d9f6e;--amber: #c77f0a;--red: #d9485c;--purple: #7a5ed4;--teal: #0fa89d;--pink: #c45ba3;--shadow-modal: 0 20px 44px rgba(20, 24, 36, .12);--overlay-scrim: rgba(18, 24, 42, .48)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%}@media (max-width: 768px){html,body{overflow-x:hidden}}a{color:var(--accent2);text-decoration:none}a:hover{color:var(--accent3)}[data-theme=light] body{color-scheme:light}:root:not([data-theme=light]) body{color-scheme:dark}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]):not([type=submit]):not([type=button]),select,textarea{min-height:var(--field-h);padding:var(--field-pad);border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);color:var(--text);font-family:inherit;font-size:var(--field-fs);line-height:1.45}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]):not([type=submit]):not([type=button]),select{height:var(--field-h)}textarea{min-height:72px;height:auto;resize:vertical}select{cursor:pointer}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}::placeholder{color:var(--text3);opacity:1}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}.tv-form input[type=checkbox],.tv-form input[type=radio],.sales-items input[type=checkbox],.sales-items input[type=radio],.activity-form input[type=checkbox],.activity-form input[type=radio],.wwl-side-fields input[type=checkbox],.wwl-side-fields input[type=radio],.leave-req-form input[type=checkbox],.leave-req-form input[type=radio],.form-field.form-check input[type=checkbox],.form-field.form-check input[type=radio],label.leave-check input[type=checkbox],label.leave-check input[type=radio],label.tv-check input[type=checkbox],label.tv-person input[type=checkbox],label.wwl-ot-radio input[type=radio]{width:18px;height:18px;min-height:unset;flex:none;padding:0;border:none;background:transparent;box-sizing:border-box}.field-sm input:not([type=checkbox]):not([type=radio]),.field-sm select,.field-sm .combobox-control,.field-sm textarea,input.field-sm,select.field-sm,textarea.field-sm{min-height:var(--field-h-sm);height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.field-sm textarea,textarea.field-sm{height:auto}@media (max-width: 768px){input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]):not([type=submit]):not([type=button]),select{min-height:40px;height:40px;font-size:16px}textarea{font-size:16px}.field-sm input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]),.field-sm select,.field-sm .combobox-control,input.field-sm:not([type=checkbox]):not([type=radio]),select.field-sm,.combobox-control.field-sm{min-height:36px;height:36px;font-size:15px}}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) [data-ic]{opacity:1}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) :is([data-ic=printer],[data-ic=eye],[data-ic=send],[data-ic=save],[data-ic=plus]){color:var(--accent2)}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) :is([data-ic=mail],[data-ic=invoice],[data-ic=installments]){color:var(--purple)}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) [data-ic=pencil]{color:var(--amber)}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) :is([data-ic=copy],[data-ic=download]){color:var(--teal)}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) :is([data-ic=check],[data-ic=money]){color:var(--green)}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) [data-ic=undo]{color:color-mix(in srgb,var(--amber) 50%,var(--red))}td :is(button,a.btn):not(.btn-p,.btn-primary,.btn-err,.btn-danger,.btn-success,.btn-warn,[class*=sales-quote-bill]) :is([data-ic=trash],[data-ic=close]){color:var(--red)}:where(button:not(:disabled),[role=button]){cursor:pointer}tr:is(.cust-row-click,.onsite-row,.pp-task-row,.pp-row-link,.sup-row,.dl-pick-row){cursor:pointer}tr:is(.cust-row-click,.onsite-row,.pp-task-row,.pp-row-link,.sup-row,.dl-pick-row)>td:first-child{position:relative;color:var(--accent2);font-weight:600}tr:is(.cust-row-click,.onsite-row,.pp-task-row,.pp-row-link,.sup-row,.dl-pick-row)>td:first-child:before{content:"›";position:absolute;left:2px;top:50%;transform:translateY(-50%);font-size:13px;font-weight:700;line-height:1;color:var(--text3);pointer-events:none}tr:is(.cust-row-click,.onsite-row,.pp-task-row,.pp-row-link,.sup-row,.dl-pick-row):hover>td{background:color-mix(in srgb,var(--accent) 10%,transparent)}tr:is(.cust-row-click,.onsite-row,.pp-task-row,.pp-row-link,.sup-row,.dl-pick-row):hover>td:first-child:before{color:var(--accent)}:is(.pill,.cust-status,.cust-badge,.leave-status,.leave-chip,.leave-flag,.ma-pill,.proj-status-pill,.sup-chip,.pl-tag,.pl-status,.st-pill,.acct-inv-pill,.sales-quote-billed-plan,.stf-badge,.usr-role,.mt-type-pill,.job-priority-pill,.job-returned-pill,.job-dl-pill,.job-master-team-chip,.apr-priority,.org-tag,.perf-badge,.mail-status,.wwl-chip,.wwl-act-chip):not(button,a){border-color:transparent!important;background-image:linear-gradient(color-mix(in srgb,currentColor 10%,transparent) 0,color-mix(in srgb,currentColor 10%,transparent) 0)!important;cursor:default}tr:is(.cust-row-click,.onsite-row,.pp-task-row,.pp-row-link,.sup-row,.dl-pick-row) :is(span,small,div){cursor:inherit}button.leave-link{text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:3px}button.leave-link:hover{text-decoration-color:currentColor}button.leave-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.support-backlinks{margin:0 0 8px;font-size:12px;color:var(--text2)}.app-topbar-user-mobile{display:none}@media (max-width: 768px){.main>.app-topbar{position:relative;gap:6px;padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px))}.app-topbar-start{flex:1 1 auto;gap:6px}.app-topbar-spacer{display:none}.app-topbar-actions{gap:4px}@media (max-width: 400px){.app-topbar .app-topbar-brand-mobile{display:none}}.app-topbar .app-topbar-user-wrap,.app-topbar .app-topbar-notif-wrap{position:static}.app-topbar .app-topbar-user-popover,.app-topbar .notif-popover{left:8px;right:8px;top:calc(100% + 4px);width:auto;min-width:0;max-width:none;max-height:calc(100dvh - 80px);overflow-y:auto}.app-topbar-user-mobile-item{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 6px;border:0;border-radius:var(--r2);background:transparent;color:var(--text2);font:inherit;font-size:14px;text-align:left;text-decoration:none;cursor:pointer}.app-topbar-user-mobile-item:hover,.app-topbar-user-mobile-item.active{background:var(--bg3);color:var(--text)}.app-topbar-user-mobile-item.is-danger{color:var(--red)}.notif-toast-stack{top:60px;right:8px;left:8px;width:auto}.tabs,.page-switch{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar,.page-switch::-webkit-scrollbar{display:none}.tab,.page-switch-item{flex-shrink:0;white-space:nowrap;min-height:40px}.tabs-section{align-self:stretch;max-width:calc(100% - 24px)}.tabs-section,.page-switch{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent)}.page-switch{display:flex;width:100%}.btn{min-height:40px}.btn-xs{min-height:32px}.btn-row,.grid-toolbar,.page-head,.page-actions{flex-wrap:wrap;gap:8px}.page-head>.btn-row,.page-head>.page-actions{width:100%}.modal-ov{padding:8px;padding-bottom:max(8px,env(safe-area-inset-bottom,0px))}.modal,.modal.modal-cust-form,.modal.modal-entity-form,.modal.modal-cust-options{max-width:100%;max-height:calc(100dvh - 16px)}}@media (max-width: 768px){.main-outlet code,.main-outlet pre,.main-outlet .mono{overflow-wrap:anywhere;white-space:pre-wrap}.main-outlet img,.main-outlet video,.main-outlet canvas{max-width:100%;height:auto}.main-outlet :is([class*=table-wrap],.table-wrap,.rp-matrix-scroll,.sup-roster-scroll){max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.main-outlet :is([class*=table-wrap],.table-wrap) .table tbody td:first-child,.main-outlet :is([class*=table-wrap],.table-wrap) .table thead th:first-child{position:sticky;left:0;z-index:1;background:var(--bg2);box-shadow:1px 0 0 var(--border)}.main input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]),.main select,.main textarea,.modal input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]),.modal select,.modal textarea{font-size:16px!important}.main input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]),.main select,.modal input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]),.modal select{min-height:40px}.modal-b{padding:14px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-h,.modal-f{padding-left:14px;padding-right:14px}.modal-f{padding-bottom:max(12px,env(safe-area-inset-bottom,0px))}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid>*{min-width:0}.modal-b label:has(>:is(input,select,textarea):not([type=checkbox]):not([type=radio])){display:flex;flex-direction:column;gap:5px}.modal-b label>:is(input,select,textarea):not([type=checkbox]):not([type=radio]){width:100%;max-width:none}}@media (max-width: 768px){.main-outlet .sort-th,.main-outlet .dash-card-link,.main-outlet .rp-link,.main-outlet .org-toggle,.main-outlet .sup-roster-btn{display:inline-flex;align-items:center;min-height:32px}.main-outlet .sup-roster-btn{min-width:36px;justify-content:center}}@media (max-width: 560px){.main-outlet .cust-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.main-outlet .cust-stat-card{padding:10px 12px}.main-outlet .cust-stat-value{font-size:1.35rem}}@media (max-width: 768px){.modal-ov .modal .sales-items-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.modal-ov .modal .sales-items-wrap .sales-items{min-width:620px;table-layout:auto}.modal-ov .modal .sales-items-wrap .sales-items th{white-space:nowrap}.modal-ov .modal .sales-items-wrap .sales-items td input:not([type=checkbox]):not([type=radio]),.modal-ov .modal .sales-items-wrap .sales-items td select{min-width:76px}.modal-ov .modal .sales-items-wrap .sales-items td.sales-col-desc input,.modal-ov .modal .sales-items-wrap .sales-items td.sales-col-desc textarea{min-width:180px}}@media (max-width: 560px){.modal-b .sup-shift-table th,.modal-b .sup-shift-table td{padding-left:4px;padding-right:4px}.modal-b .sup-shift-table th{white-space:normal}}@media (max-width: 560px){.modal-b .ma-items>li{flex-wrap:wrap;gap:6px 8px}.modal-b .ma-items>li>*{min-width:0}}@media (max-width: 560px){.main-outlet .issue-modal-overlay{align-items:flex-end;padding:0;overflow-x:hidden}.main-outlet .issue-modal-overlay .issue-modal{max-width:100%;max-height:calc(100dvh - 24px);border-radius:var(--r3) var(--r3) 0 0;border-bottom:0}}@media (max-width: 560px){.modal-ov:not(.confirm-dialog-ov):not(.print-dialog){align-items:flex-end;padding:0}.modal-ov:not(.confirm-dialog-ov):not(.print-dialog)>.modal{width:100%;max-width:100%;max-height:calc(100dvh - 24px);margin:auto 0 0;border-radius:var(--r3) var(--r3) 0 0;border-bottom:0}.modal-ov:not(.confirm-dialog-ov):not(.print-dialog)>.modal>.modal-f{border-radius:0}.modal-f>.btn,.modal-f>button{flex:1 1 auto;white-space:nowrap}}@media (max-width: 560px){.app-topbar .app-topbar-hide-sm{display:none}.app-topbar-user-mobile{display:flex;flex-direction:column;margin-top:10px;padding-top:6px;border-top:1px solid var(--border)}}@media (min-width: 769px){.modal-ov>.modal{position:relative}.modal-ov>.modal[data-mw-moved]{left:var(--mw-x, 0);top:var(--mw-y, 0)}.modal-ov:has(>.modal[data-mw-moved]){overflow:hidden}.modal-ov>.modal>.modal-h,.modal-ov>.modal>.issue-modal-head,.modal-ov>.modal>.rp-modal-head{cursor:move}.modal-ov>.modal[data-mw-w]{width:var(--mw-w)!important;max-width:calc(100vw - 16px)!important}.modal-ov>.modal[data-mw-h]{height:var(--mw-h)!important;max-height:calc(100dvh - 16px)!important}.modal-ov:has(>.modal[data-mw-max]){padding:8px;overflow:hidden}.modal-ov>.modal[data-mw-max]{left:0;top:0;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important}.modal-ov>.modal[data-mw-max]>.modal-h,.modal-ov>.modal[data-mw-max]>.issue-modal-head,.modal-ov>.modal[data-mw-max]>.rp-modal-head{cursor:default}.modal-ov>.modal:is([data-mw-h],[data-mw-max])>:is(.modal-b,.print-modal-body,form),.modal-ov>.modal:is([data-mw-h],[data-mw-max])>form>.modal-b{flex:1 1 auto;min-height:0;max-height:none}.modal-ov>.modal:is([data-mw-h],[data-mw-max])>form{display:flex;flex-direction:column}.modal-ov>.modal:is([data-mw-h],[data-mw-max])>:is(.modal-b,.print-modal-body),.modal-ov>.modal:is([data-mw-h],[data-mw-max])>form>.modal-b{overflow:auto}.modal-ov>.modal:not(.confirm-dialog):not([data-mw-max]):after{content:"";position:absolute;right:3px;bottom:3px;width:9px;height:9px;pointer-events:none;opacity:.55;background:linear-gradient(135deg,transparent 0 50%,var(--text3) 50% 60%,transparent 60% 72%,var(--text3) 72% 82%,transparent 82%)}.modal-ov[data-mw-cur=ns],.modal-ov[data-mw-cur=ns] *,:root[data-mw-drag=ns] *{cursor:ns-resize!important}.modal-ov[data-mw-cur=ew],.modal-ov[data-mw-cur=ew] *,:root[data-mw-drag=ew] *{cursor:ew-resize!important}.modal-ov[data-mw-cur=nwse],.modal-ov[data-mw-cur=nwse] *,:root[data-mw-drag=nwse] *{cursor:nwse-resize!important}.modal-ov[data-mw-cur=nesw],.modal-ov[data-mw-cur=nesw] *,:root[data-mw-drag=nesw] *{cursor:nesw-resize!important}:root[data-mw-drag=move] *{cursor:move!important}:root[data-mw-drag],:root[data-mw-drag] *{-webkit-user-select:none!important;user-select:none!important}}.chpw-card{max-width:460px}.chpw-form{display:grid;gap:14px}.chpw-note{margin:0 0 14px;padding:9px 12px;border-radius:var(--r);border:1px solid var(--border);font-size:13px;line-height:1.5}.chpw-note-warn{border-color:color-mix(in srgb,var(--amber) 45%,var(--border));background:color-mix(in srgb,var(--amber) 12%,transparent)}.chpw-note-ok{border-color:color-mix(in srgb,var(--green) 45%,var(--border));background:color-mix(in srgb,var(--green) 12%,transparent)}.chpw-note-err{border-color:color-mix(in srgb,var(--red) 45%,var(--border));background:color-mix(in srgb,var(--red) 12%,transparent)}.chpw-show{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text2);cursor:pointer}.chpw-forced .form-field input{margin-bottom:0}.chpw-forced .chpw-show input{width:auto;margin:0}.chpw-forced .chpw-note{color:var(--text)}.auth-gate-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-size:14px;color:var(--text2);background:var(--bg)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);font-family:var(--sans)}.login-card{width:100%;max-width:400px;padding:28px 26px;border-radius:var(--r3);border:1px solid var(--border);background:var(--bg2);box-shadow:var(--shadow-modal)}.login-brand{font-family:var(--display);font-weight:700;font-size:1.35rem;color:var(--accent2);margin:0 0 4px}.login-sub{margin:0 0 22px;font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}.login-card label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:6px}.login-card input,.login-card select{width:100%;margin-bottom:14px}.login-card input:focus,.login-card select:focus{outline:none;border-color:var(--accent)}.login-error{margin:0 0 14px;padding:10px 12px;border-radius:var(--r2);background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red);font-size:13px}.login-notice{margin:0 0 14px;padding:10px 12px;border-radius:var(--r2);background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--text);font-size:13px}.login-hint{margin:0 0 16px;font-size:12px;color:var(--text3);line-height:1.45}.login-submit{width:100%;margin-top:6px;padding:11px 16px;border:none;border-radius:var(--r2);background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--sans)}.login-submit:hover{filter:brightness(1.06)}.login-submit:disabled{opacity:.55;cursor:not-allowed}.login-inline-link{color:var(--accent2);font-weight:600;text-decoration:none}.login-inline-link:hover{text-decoration:underline}.login-footer-link{margin:18px 0 0;text-align:center}.login-text-btn{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--accent2);cursor:pointer;text-decoration:underline}.login-text-btn:hover{color:var(--accent)}.login-brand-icon{display:block;width:56px;height:56px;margin:0 0 10px;object-fit:contain;border-radius:12px}.login-or{display:flex;align-items:center;gap:10px;margin:16px 0 12px;font-size:12px;color:var(--text3)}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--border)}.login-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 14px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.login-google:hover:not(:disabled){border-color:var(--border3)}.login-google:disabled{opacity:.6;cursor:default}.modal-sync-form{max-width:720px}.cust-sync-hint{margin:0 0 14px;font-size:12px;color:var(--text2)}.cust-sync-hint .sync-ok{color:var(--green);font-family:var(--mono)}.cust-sync-hint .sync-err{color:var(--amber);font-family:var(--mono)}.sync-intro{margin:0 0 16px;font-size:12px;line-height:1.55;color:var(--text2)}.sync-intro code{font-family:var(--mono);font-size:11px;color:var(--accent2)}.sync-json{font-family:var(--mono);font-size:12px;line-height:1.45}.sync-token-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text3)}.sync-cases-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}.sync-cases-h{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--text)}.sync-cases-hint{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--text2)}.cust-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}.cust-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}@media (max-width: 900px){.cust-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.cust-stat-grid{grid-template-columns:1fr}}.cust-stat-card{padding:14px 16px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3)}.cust-stat-card-warn{border-color:#f0a83259;background:#f0a8320f}.cust-stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:6px}.cust-stat-value{font-family:var(--display);font-size:1.65rem;font-weight:600;color:var(--text);line-height:1.15}.cust-stat-sub{margin-top:6px;font-size:12px;color:var(--text2);line-height:1.4}.cust-stat-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}.cust-stat-chips .cust-stat-card{display:inline-flex;align-items:baseline;gap:6px;padding:3px 10px;border-radius:999px;white-space:nowrap}.cust-stat-chips .cust-stat-label{margin:0;font-size:12px;text-transform:none;letter-spacing:0;color:var(--text2)}.cust-stat-chips .cust-stat-value{font-family:inherit;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.cust-stat-chips .cust-stat-sub{display:none}.cust-toolbar-compact{flex-wrap:nowrap;justify-content:flex-start;margin-bottom:12px}.cust-toolbar-compact .cust-search{flex:0 1 360px}.cust-toolbar-compact .cust-filter-bar{flex:1;min-width:0;margin:0}.cust-toolbar-compact .cust-filter-caption{display:none}.cust-toolbar-compact .cust-filter-scroll{padding-bottom:0}.cust-toolbar-compact .cust-filter-chip{padding:5px 12px}@media (max-width: 768px){.cust-toolbar-compact{flex-wrap:wrap}.cust-toolbar-compact .cust-search{flex-basis:100%}}.cust-filter-bar{margin-bottom:18px}.cust-filter-caption{display:block;margin:0 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.cust-filter-scroll{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.cust-filter-scroll::-webkit-scrollbar{height:6px}.cust-filter-scroll::-webkit-scrollbar-thumb{background:var(--border3);border-radius:3px}.cust-filter-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:8px 14px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.cust-filter-chip:hover{border-color:var(--border3);color:var(--text);background:var(--bg4)}.cust-filter-chip-active{background:#5b8df538;border-color:var(--accent);color:var(--accent2)}.cust-filter-chip-active:hover{color:var(--accent3);background:#5b8df54d}.cust-filter-chip-icon{flex-shrink:0;opacity:.9}.cust-filter-chip-churn.cust-filter-chip-active{background:#f0a83226;border-color:#f0a8328c;color:var(--amber)}.cust-filter-chip-vip.cust-filter-chip-active{background:#ba78ff1f;border-color:#ba78ff73;color:var(--accent2)}.cust-search{flex:1;min-width:200px;max-width:360px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.cust-search:has(>:nth-child(2)){max-width:none}.cust-search:has(>:nth-child(2))>input{flex:0 1 360px;min-width:200px}.cust-search>.dv-filter{min-width:0}.cust-search input{width:100%}.cust-search input::placeholder{color:var(--text3)}.cust-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #5b8df533}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.btn-icon{flex-shrink:0;opacity:.92}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn:hover{background:var(--bg4);border-color:var(--border3)}.btn:disabled,.btn:disabled:hover{opacity:.5;cursor:not-allowed;filter:saturate(.6)}.btn-p{background:#5b8df52e;border-color:var(--accent);color:var(--accent2)}.btn-p:hover{background:#5b8df547;color:var(--accent3)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text2)}.btn-ghost:hover{color:var(--text);background:var(--bg3)}:where(td,[class*=modal]) .btn-ghost{border-color:color-mix(in srgb,currentColor 32%,transparent);background:color-mix(in srgb,var(--bg3) 55%,transparent)}.btn-ghost:disabled,.btn-ghost:disabled:hover{border-style:dashed;border-color:color-mix(in srgb,currentColor 45%,transparent);background:transparent}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-xs{padding:5px 10px;font-size:12px;font-weight:500}.btn-err{border-color:#f0687873;color:var(--red);background:#f0687814}.btn-err:hover{background:#f0687826}.btn-success{border-color:#1fc98e73;color:var(--green);background:#1fc98e1a}.btn-success:hover{background:#1fc98e33}.btn-warn{border-color:#f0a83273;color:var(--amber);background:#f0a8321a}.btn-warn:hover{background:#f0a83233}.pill-inactive{background:#f0a8321f;color:var(--amber);border-color:#f0a83259}.cust-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;border:1px solid;font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap}.cust-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.cust-status-on{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border-color:color-mix(in srgb,var(--green) 35%,transparent)}.cust-status-on .cust-status-dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 22%,transparent)}.cust-status-off{color:var(--text3);background:var(--bg3);border-color:var(--border2)}.pill-api{background:#22d4c81a;color:var(--teal);border-color:#22d4c859;margin-left:6px}.cust-view-toggle{display:inline-flex;border-radius:var(--r2);border:1px solid var(--border2);overflow:hidden;flex-shrink:0}.cust-view-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;font-family:var(--sans);font-size:12px;font-weight:600;border:none;background:var(--bg3);color:var(--text2);cursor:pointer;transition:background .15s,color .15s}.cust-view-icon{flex-shrink:0;opacity:.92}.cust-view-btn-active .cust-view-icon{opacity:1}.cust-view-btn+.cust-view-btn{border-left:1px solid var(--border2)}.cust-view-btn:hover{color:var(--text);background:var(--bg4)}.cust-view-btn-active{background:#5b8df52e;color:var(--accent2)}.cust-view-btn-active:hover{color:var(--accent3);background:#5b8df542}.cust-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table.cust-table-dense th,.table.cust-table-dense td{font-size:12px;padding:8px 10px;vertical-align:top}.table.cust-table-dense th{white-space:nowrap}.cust-row-click{cursor:pointer;outline:none}.cust-row-click:hover td{background:var(--bg4)}.cust-row-click:focus-visible td{box-shadow:inset 0 0 0 2px var(--accent)}.cust-table-clip{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cust-table-max{max-width:11rem}@media (min-width: 1200px){.cust-table-clip{max-width:18rem}.cust-table-max{max-width:14rem}}.cust-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px;padding:16px}.cust-card{margin:0;text-align:left;display:block;width:100%;padding:14px 16px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:inherit;font:inherit;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.cust-card:hover{border-color:var(--border3);background:var(--bg4);box-shadow:0 4px 20px #0000001f}.cust-card:focus{outline:none}.cust-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cust-card-head{display:flex;flex-wrap:nowrap;align-items:center;gap:10px 12px;margin-bottom:10px}.cust-card-head-main{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.cust-card-head-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.cust-card-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.35}.cust-card-code{font-family:var(--mono);font-size:12px;color:var(--text2)}.cust-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;font-size:12px}@media (max-width: 380px){.cust-card-grid{grid-template-columns:1fr}}.cust-card-field{min-width:0}.cust-card-field dt{margin:0 0 2px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.cust-card-field dd{margin:0;color:var(--text2);line-height:1.45;word-break:break-word}.cust-card .cust-card-field dd.table-num,.cust-card .cust-card-field dd.proj-num{display:block;width:100%;box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums}.cust-card-field:has(>dd.table-num)>dt,.cust-card-field:has(>dd.proj-num)>dt{text-align:right}.cust-card-field.cust-card-field-full{grid-column:1 / -1}.cust-card-empty{grid-column:1 / -1;padding:28px 16px;text-align:center;color:var(--text2);font-size:14px}.modal-f-split{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.modal-f-actions{display:flex;gap:10px;flex-wrap:wrap;margin-left:auto}.modal-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-ov-nested{z-index:90}.modal{width:100%;max-width:520px;max-height:calc(100vh - 48px);flex-shrink:0;margin:auto;display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r3);box-shadow:var(--shadow-modal)}.modal.modal-cust-form{max-width:min(1040px,calc(100vw - 32px))}.modal.modal-entity-form{max-width:min(720px,calc(100vw - 32px))}.modal.modal-cust-form.job-master-modal{max-width:min(960px,calc(100vw - 32px))}.modal.modal-cust-options{max-width:560px}.modal.modal-cust-options .modal-h{align-items:flex-start}.cust-options-intro{margin:8px 0 0;max-width:46rem;font-size:12px;line-height:1.5;color:var(--text2);font-weight:400}.cust-options-body{display:flex;flex-direction:column;gap:18px}.cust-options-field{width:100%}.cust-options-textarea{font-family:var(--mono);font-size:12px;line-height:1.45;min-height:120px;resize:vertical}.cust-options-type-hint{margin:0 0 6px;font-size:11px;line-height:1.4;color:var(--text3);font-weight:400}.modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.cust-modal-h{align-items:flex-start;gap:12px;flex-wrap:wrap}.cust-modal-h-main{display:flex;align-items:flex-start;gap:14px;min-width:0;flex:1}.cust-modal-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r2);background:#5b8df51f;color:var(--accent2);flex-shrink:0}.cust-modal-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;font-size:11px;font-weight:700;line-height:1;letter-spacing:-.06em;flex-shrink:0;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #00000014;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.cust-grid-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;line-height:1;letter-spacing:-.07em;flex-shrink:0;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px #0000000f;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.cust-grid-avatar-sm{width:36px;height:36px;font-size:9px}.cust-table-avatar-cell{width:1%;padding-right:4px!important;vertical-align:middle}.cust-th-avatar{width:1%;padding-left:12px!important;padding-right:4px!important}.cust-modal-locale-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;margin:0;border-radius:999px;font-weight:600;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;max-width:9rem;min-height:var(--field-h-sm);height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.cust-modal-locale-select:hover{border-color:var(--border2);background-color:var(--bg2)}.cust-modal-locale-select:focus{outline:2px solid rgba(91,141,245,.45);outline-offset:1px}.cust-field-locked{background:var(--bg3)!important;color:var(--text2);cursor:not-allowed}.cust-modal-h-text{min-width:0}.cust-modal-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.cust-modal-badges{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px}.cust-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600;font-family:var(--sans);border:1px solid var(--border2);background:var(--bg3);color:var(--text2)}.cust-badge-plan{border-color:#5b8df559;background:#5b8df51a;color:var(--accent2)}.cust-badge-active{cursor:pointer;font:inherit;font-size:12px;font-weight:600;transition:background .15s,border-color .15s}.cust-badge-active-on{border-color:#1fc98e73;background:#1fc98e1f;color:var(--green)}.cust-badge-active-off{border-color:var(--border2);color:var(--text3)}.cust-badge-dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex-shrink:0}.cust-badge-active-on .cust-badge-dot{background:var(--green);box-shadow:0 0 0 2px #1fc98e40}.cust-modal-h-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.cust-howto-btn{white-space:nowrap}.cust-modal-help{padding:12px 18px;font-size:12px;line-height:1.55;color:var(--text2);background:var(--bg3);border-bottom:1px solid var(--border)}.cust-modal-help p{margin:0}.cust-modal-help code{font-family:var(--mono);font-size:11px;color:var(--accent2)}.cust-modal-b{padding:20px 18px}.cust-form-layout{display:grid;grid-template-columns:minmax(220px,270px) minmax(0,1fr);gap:22px 28px;align-items:start}@media (max-width: 768px){.cust-form-layout{grid-template-columns:1fr}}.cust-form-sidebar{display:flex;flex-direction:column;gap:0}.cust-form-summary{border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);padding:14px 14px 12px}.cust-form-summary-title{margin:0 0 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.cust-form-summary-dl{margin:0}.cust-form-summary-row{display:grid;grid-template-columns:1fr;gap:2px;padding:8px 0;border-top:1px solid var(--border)}.cust-form-summary-row:first-of-type{border-top:none;padding-top:0}.cust-form-summary-row dt{margin:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.cust-form-summary-row dd{margin:0;font-size:13px;color:var(--text2);line-height:1.45;word-break:break-word}.cust-form-summary-full dd{white-space:pre-wrap}.cust-form-main{min-width:0}.cust-form-grid.form-grid{gap:16px 18px}.cust-form-grid .form-section-h{grid-column:1 / -1;margin:8px 0 0;padding-top:12px;border-top:1px solid var(--border);font-size:.85rem;font-weight:600;color:var(--text2)}.cust-notes-area{min-height:120px}.modal-t{font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--text)}.modal-b{padding:18px;overflow-y:auto;flex:1 1 auto;min-height:0}.modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--border)}.modal-f{flex-shrink:0;align-items:center;flex-wrap:wrap;background:var(--bg2);border-radius:0 0 var(--r3) var(--r3)}.modal-f .mf-danger{order:-1;margin-right:auto}.modal-f .mf-cancel{order:1}.modal-f .mf-primary{order:2}.modal-f .mf-hidden,.modal-f.mf-hidden,.modal-f:not(:has(button:not(.mf-hidden))){display:none}.modal-h>.modal-x,.modal-h .modal-x{margin-left:auto;flex-shrink:0}.modal-h .modal-x,.modal-h button[aria-label=ปิด],.modal-h button[title=ปิด]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-height:0;padding:0;flex-shrink:0;border:1px solid rgba(240,104,120,.4);border-radius:var(--r2);background:#f068781a;color:var(--red);font-size:18px;line-height:1;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.modal-h .modal-x svg,.modal-h button[aria-label=ปิด] svg,.modal-h button[title=ปิด] svg{width:18px;height:18px;stroke-width:2.4}.modal-h .modal-x:hover:not(:disabled),.modal-h button[aria-label=ปิด]:hover:not(:disabled),.modal-h button[title=ปิด]:hover:not(:disabled){background:var(--red);border-color:var(--red);color:#fff}.modal-h .modal-x:focus-visible,.modal-h button[aria-label=ปิด]:focus-visible,.modal-h button[title=ปิด]:focus-visible{outline:2px solid var(--red);outline-offset:2px}.modal-f-actions .mf-danger{margin-right:0}@media (max-width: 520px){.modal-f{padding:12px 14px}.modal-f .mf-primary{flex:1 1 0;justify-content:center}.modal-f .mf-cancel{flex:0 0 auto}.modal-f>.modal-f-actions{flex:1 1 100%}}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}@media (max-width: 520px){.form-grid{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:5px}.form-field.span-2{grid-column:1 / -1}.form-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.form-field-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}.form-field-head label{margin:0}.cust-manage-link{padding:0;border:none;background:none;font-family:var(--sans);font-size:11px;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:none;white-space:nowrap}.cust-manage-link:hover{color:var(--accent2);text-decoration:underline}.date-hint{font-size:11px;color:var(--text3);font-weight:400;text-transform:none;letter-spacing:0;margin-top:4px}.modal-sub{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--text2);font-family:var(--sans)}.form-field input,.form-field select,.form-field textarea{resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--accent)}.form-check{flex-direction:row;align-items:flex-start;gap:10px;line-height:1.45}.form-check input[type=checkbox],.form-check input[type=radio]{width:18px;height:18px;min-height:unset;flex:none;margin-top:2px;accent-color:var(--accent)}label.form-field.form-check{flex-direction:row;align-items:flex-start}.toast{position:fixed;bottom:28px;right:28px;z-index:100;padding:12px 18px;border-radius:var(--r2);font-size:13px;font-weight:500;max-width:min(400px,calc(100vw - 48px));border:1px solid var(--border2);box-shadow:0 12px 32px #00000059;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.table-num{font-family:var(--mono);font-size:12px;color:var(--text2);text-align:right;font-variant-numeric:tabular-nums}.table th.table-num,.table td.table-num,.table td.proj-num,.table th.sales-col-num,.table td.sales-col-num,.modal input[type=number],.modal input[inputmode=decimal]{text-align:right}@media (max-width: 768px){.cust-toolbar{flex-direction:column;align-items:stretch}.cust-toolbar .btn-row{flex-wrap:wrap;justify-content:flex-start}.cust-view-btn{min-height:40px}.modal,.modal.modal-cust-form{max-width:100%;width:100%}.modal{max-height:calc(100vh - 24px)}.modal-ov{padding:12px;align-items:flex-start}.cust-form-layout{grid-template-columns:1fr}.toast{left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom,0px));max-width:none}}.av-color-row{display:flex;align-items:center;gap:8px}.av-color-picker{width:36px;height:36px;padding:2px;border:1px solid var(--border2);border-radius:6px;background:transparent;cursor:pointer;flex-shrink:0}.av-color-hex{flex:1;font-family:monospace;font-size:12px;min-width:0}.av-color-clear{font-size:11px;color:var(--text3);border:1px solid var(--border2);border-radius:4px;padding:3px 8px;background:transparent;cursor:pointer;white-space:nowrap;line-height:1.4}.av-color-clear:hover{color:var(--text);background:var(--bg2)}.av-color-hint{font-size:11px;color:var(--text3);margin:4px 0 0}.progress-bar-wrap{height:6px;background:var(--bg3);border-radius:4px;overflow:hidden;min-width:60px}.progress-bar-fill{height:100%;border-radius:4px;transition:width .3s ease;background:var(--accent)}.progress-bar-fill.stage-1{background:#0ea5e9}.progress-bar-fill.stage-2{background:#7c3aed}.progress-bar-fill.stage-3{background:#ea580c}.progress-bar-fill.stage-4{background:#059669}.job-stage-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.04em;white-space:nowrap;text-transform:uppercase}.job-stage-badge.stage-1{background:#0ea5e938;color:#7dd3fc;border:1px solid rgba(14,165,233,.38)}.job-stage-badge.stage-2{background:#7c3aed38;color:#c4b5fd;border:1px solid rgba(124,58,237,.38)}.job-stage-badge.stage-3{background:#ea580c38;color:#fdba74;border:1px solid rgba(234,88,12,.38)}.job-stage-badge.stage-4{background:#05966938;color:#6ee7b7;border:1px solid rgba(5,150,105,.38)}[data-theme=light] .job-stage-badge.stage-1{background:#e0f2fe;color:#0369a1;border-color:#7dd3fc}[data-theme=light] .job-stage-badge.stage-2{background:#ede9fe;color:#5b21b6;border-color:#c4b5fd}[data-theme=light] .job-stage-badge.stage-3{background:#ffedd5;color:#c2410c;border-color:#fdba74}[data-theme=light] .job-stage-badge.stage-4{background:#d1fae5;color:#047857;border-color:#6ee7b7}.job-stage-tracker{display:flex;gap:0;border:1px solid var(--border2);border-radius:var(--r2);overflow:hidden;margin-bottom:14px}.job-stage-step{flex:1;padding:8px 6px;text-align:center;font-size:11px;font-weight:600;border-right:1px solid var(--border2);transition:background .15s,color .15s}.job-stage-step:last-child{border-right:none}.job-stage-tracker .job-stage-step:nth-child(1){background:#0ea5e929;color:#bae6fd}.job-stage-tracker .job-stage-step:nth-child(2){background:#7c3aed29;color:#ddd6fe}.job-stage-tracker .job-stage-step:nth-child(3){background:#ea580c29;color:#fed7aa}.job-stage-tracker .job-stage-step:nth-child(4){background:#05966929;color:#a7f3d0}.job-stage-tracker .job-stage-step.done:nth-child(1){background:#0ea5e912;color:#bae6fd8c}.job-stage-tracker .job-stage-step.done:nth-child(2){background:#7c3aed12;color:#ddd6fe8c}.job-stage-tracker .job-stage-step.done:nth-child(3){background:#ea580c12;color:#fed7aa8c}.job-stage-tracker .job-stage-step.done:nth-child(4){background:#05966912;color:#a7f3d08c}.job-stage-tracker .job-stage-step.active.stage-1{background:#0ea5e96b;color:#f0f9ff;box-shadow:inset 0 0 0 1px #0ea5e98c}.job-stage-tracker .job-stage-step.active.stage-2{background:#7c3aed6b;color:#faf5ff;box-shadow:inset 0 0 0 1px #7c3aed8c}.job-stage-tracker .job-stage-step.active.stage-3{background:#ea580c6b;color:#fff7ed;box-shadow:inset 0 0 0 1px #ea580c8c}.job-stage-tracker .job-stage-step.active.stage-4{background:#0596696b;color:#ecfdf5;box-shadow:inset 0 0 0 1px #0596698c}[data-theme=light] .job-stage-tracker .job-stage-step:nth-child(1){background:#0ea5e91f;color:#0369a1}[data-theme=light] .job-stage-tracker .job-stage-step:nth-child(2){background:#7c3aed1a;color:#5b21b6}[data-theme=light] .job-stage-tracker .job-stage-step:nth-child(3){background:#ea580c1a;color:#c2410c}[data-theme=light] .job-stage-tracker .job-stage-step:nth-child(4){background:#0596691a;color:#047857}[data-theme=light] .job-stage-tracker .job-stage-step.done:nth-child(1){color:#0ea5e9;opacity:.65}[data-theme=light] .job-stage-tracker .job-stage-step.done:nth-child(2){color:#7c3aed;opacity:.65}[data-theme=light] .job-stage-tracker .job-stage-step.done:nth-child(3){color:#ea580c;opacity:.65}[data-theme=light] .job-stage-tracker .job-stage-step.done:nth-child(4){color:#059669;opacity:.65}.job-stage-step-role{font-size:10px;margin-top:2px;opacity:.72;font-weight:500}.job-stage-step-label{font-size:10px;margin-top:2px;font-weight:400;opacity:.85}.job-progress-table{width:100%;border-collapse:collapse;font-size:12px}.job-progress-table th{text-align:left;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);padding:4px 8px;border-bottom:1px solid var(--border2)}.job-progress-table td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text2);vertical-align:middle}.job-progress-table tr:last-child td{border-bottom:none;font-weight:600;color:var(--text1)}.job-progress-section{margin-bottom:16px}.job-progress-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin:0 0 6px}.job-progress-bar-row{display:flex;align-items:center;gap:8px;margin-top:6px}.job-progress-pct{font-size:12px;font-weight:700;color:var(--text1);white-space:nowrap;min-width:36px;text-align:right}.sync-test-result{margin-top:12px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);font-size:13px;line-height:1.5;overflow-wrap:anywhere}.sync-test-result.sync-ok{border-color:var(--green)}.sync-test-result.sync-err{border-color:var(--amber)}.sync-test-result ul{margin:6px 0 0;padding-left:18px}.cust-th-print,.cust-td-print{width:1%;white-space:nowrap;text-align:right}.modal-ov.confirm-dialog-ov{z-index:85}.modal-ov.confirm-dialog-ov.confirm-dialog-nested{z-index:95}.modal.confirm-dialog{max-width:420px}.confirm-dialog-h{display:flex;align-items:flex-start;gap:12px}.confirm-dialog-h-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r2);background:var(--bg3);color:var(--text)}.confirm-dialog-h-icon.is-danger{color:var(--err);background:color-mix(in srgb,var(--err) 12%,var(--bg3))}.confirm-dialog-h-icon.is-warning{color:var(--warn, var(--text));background:color-mix(in srgb,var(--warn, #c9a227) 14%,var(--bg3))}.confirm-dialog-title{font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--text);line-height:1.35}.confirm-dialog-b{display:flex;flex-direction:column;gap:10px}.confirm-context{padding:10px 12px;border-radius:var(--r2);background:var(--bg3);border:1px solid var(--border);font-size:12px;line-height:1.45;color:var(--text);word-break:break-word}.confirm-context code{font-family:var(--mono);font-size:12px}.confirm-message{margin:0;font-size:14px;line-height:1.5;color:var(--text)}.confirm-detail{margin:0;font-size:12px;line-height:1.45;color:var(--text2)}.confirm-field label{display:block;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--text2)}.confirm-field textarea{width:100%;min-height:88px;resize:vertical}.page-switch{display:inline-flex;gap:2px;padding:3px;margin-bottom:12px;border:1px solid var(--border);border-radius:999px;background:var(--bg2);max-width:100%;overflow-x:auto;scrollbar-width:none}.page-switch-item{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;font-size:13.5px;color:var(--text2);text-decoration:none;white-space:nowrap}.page-switch-item svg{flex-shrink:0;opacity:.8}.page-switch-item.is-active svg{opacity:1}.page-switch-item:hover{color:var(--text)}.page-switch-item.is-active{background:var(--bg);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000001f}.page-switch-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.page-switch-count{min-width:18px;padding:0 6px;border-radius:999px;background:var(--bg4);color:var(--text2);font-size:11.5px;font-weight:700;line-height:18px;text-align:center}.page-switch-count.is-urgent{background:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--amber)}@media (max-width: 480px){.page-switch-item{gap:4px;padding:5px 10px}}@media print{.page-switch{display:none}}.field-switch{display:inline-flex;gap:2px;padding:3px;margin-bottom:12px;border:1px solid var(--border);border-radius:999px;background:var(--bg2);max-width:100%}.field-switch-item{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;font-size:13.5px;color:var(--text2);text-decoration:none;white-space:nowrap}.field-switch-item:hover{color:var(--text)}.field-switch-item.is-active{background:var(--bg);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000001f}.field-switch-item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media print{.field-switch{display:none}}.tv-onsite-link{font-size:12px}.field-switch-icon{display:inline-flex;opacity:.8}.field-switch-item.is-active .field-switch-icon{opacity:1}.app-shell{display:flex;height:100vh;height:100dvh;overflow:hidden;background:var(--bg)}.sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg2);display:flex;flex-direction:column;padding:14px 12px;height:100%;overflow:hidden}.brand{margin-bottom:12px;padding:0 4px 10px;border-bottom:1px solid var(--border)}.brand-row{display:flex;align-items:center;gap:12px}.brand-mark{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r2);font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.04em;color:#fff;background:linear-gradient(135deg,#3b82f6,#7c3aed);box-shadow:0 2px 8px #3b82f640}.brand-mark-img{width:100%;height:100%;object-fit:contain;border-radius:inherit}.brand-mark:has(.brand-mark-img){background:transparent;box-shadow:none}.brand-text{min-width:0;display:flex;flex-direction:column;gap:2px}.brand-display{font-family:var(--display);font-weight:700;font-size:.98rem;letter-spacing:.02em;color:var(--text);display:block;line-height:1.2}.brand-sub{font-size:11px;color:var(--text3);letter-spacing:.04em;line-height:1.3}.sb-nav{display:flex;flex-direction:column;gap:0;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}.sb-nav-group{margin-top:8px}.sb-nav-group:first-child{margin-top:0}.sb-nav-section-title{display:flex;align-items:center;gap:5px;width:100%;margin:0 0 2px;padding:1px 10px 1px 6px;border:0;border-radius:var(--r2);background:transparent;font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:.02em;text-align:left;color:var(--text3);opacity:.9;cursor:pointer}.sb-nav-section-title:hover{background:var(--bg3);color:var(--text2);opacity:1}.sb-nav-caret{flex-shrink:0;transform:rotate(90deg);transition:transform .15s ease}.sb-nav-group.is-closed .sb-nav-caret{transform:rotate(0)}.sb-nav-group.is-closed{margin-top:8px}.sb-group-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.sb-nav-group-items{display:flex;flex-direction:column;gap:1px}.sb-item{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:1;min-width:0;padding:5px 10px;border-radius:var(--r2);border:1px solid transparent;color:var(--text2);font-size:13.5px;line-height:1.5;font-weight:500;transition:background .15s,color .15s,border-color .15s;text-decoration:none}.sb-item-main{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.sb-item-icon{flex-shrink:0;opacity:.88;color:var(--text3)}.sb-item:hover .sb-item-icon{color:var(--text2);opacity:1}.sb-item-active .sb-item-icon{color:var(--accent2);opacity:1}.sb-item-label{min-width:0}.sb-item-tag{flex-shrink:0;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);opacity:.85}.sb-item:hover{background:var(--bg3);color:var(--text)}.sb-item-active{background:var(--bg3);color:var(--text);font-weight:600;border-color:transparent;box-shadow:inset 2px 0 0 var(--accent)}.sidebar-inner{display:flex;flex-direction:column;flex:1;min-height:0}.main{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(160deg,var(--bg) 0%,var(--bg3) 52%,var(--bg2) 100%)}.page-head{margin-bottom:22px}.page-title{font-family:var(--display);font-size:1.35rem;font-weight:600;color:var(--text);margin:0 0 6px}.page-desc{margin:0;font-size:13px;color:var(--text2);max-width:56ch}.page-head-compact{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px}.page-head-compact .page-title{margin:0}.page-head-compact .proj-page-head-icon{margin-top:0}.page-head-compact>.btn-row{margin-left:auto}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r3);padding:18px 20px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.table th{color:var(--text3);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.pill{display:inline-flex;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;background:#5b8df51f;color:var(--accent2);border:1px solid var(--border2)}.err{color:var(--red);font-size:13px}.app-topbar{flex-shrink:0;z-index:60;display:flex;align-items:center;gap:10px;padding:7px 24px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg2) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.app-topbar-start{display:flex;align-items:center;gap:12px;min-width:0}.app-topbar-brand-mobile{display:none}.app-topbar-spacer{flex:1;min-width:8px}.app-topbar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.app-topbar-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;padding:0;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;transition:background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent}.app-topbar-icon-btn:hover:not(:disabled){background:var(--bg4);border-color:var(--border3);color:var(--text)}.app-topbar-icon-btn:disabled{opacity:.38;cursor:not-allowed}a.app-topbar-icon-btn.app-topbar-navlink{text-decoration:none;box-sizing:border-box}.app-topbar-icon-btn.app-topbar-icon-btn-active{background:color-mix(in srgb,var(--accent) 14%,var(--bg3));border-color:color-mix(in srgb,var(--accent) 35%,var(--border2));color:var(--accent2)}.app-topbar-icon-btn.app-topbar-menu-btn{display:none}.app-topbar-user-wrap{position:relative}.app-topbar-user-btn{padding:0}.app-topbar-avatar{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;line-height:1;overflow:hidden}.app-topbar-user-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:80;min-width:220px;max-width:min(92vw,280px);padding:12px 14px;border-radius:var(--r2);border:1px solid var(--border);background:var(--bg2);box-shadow:0 12px 40px #0000002e}.app-topbar-user-popover-line{margin:0;font-size:13px;line-height:1.4;color:var(--text2)}.app-topbar-user-popover-name{font-weight:600;color:var(--text)}.app-topbar-user-popover-role{margin-top:4px;font-size:12px;color:var(--text3);text-transform:lowercase}.app-topbar-user-popover-email{margin-top:8px;font-size:11px;color:var(--text3);word-break:break-all}.app-topbar-user-popover-pref{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;cursor:pointer}.app-topbar-logout-btn:hover:not(:disabled){background:color-mix(in srgb,var(--red) 12%,var(--bg4));border-color:color-mix(in srgb,var(--red) 35%,var(--border2));color:var(--red)}.mobile-nav-backdrop{display:none}.main-outlet{min-width:0}@media (max-width: 768px){.app-topbar{padding:max(8px,env(safe-area-inset-top,0px)) 14px 10px;padding-left:max(0px,env(safe-area-inset-left,0px));padding-right:max(0px,env(safe-area-inset-right,0px))}.app-topbar-icon-btn.app-topbar-menu-btn{display:inline-flex}.app-topbar-brand-mobile{display:block;font-family:var(--display);font-weight:700;font-size:1.05rem;color:var(--accent2);letter-spacing:.02em}.mobile-nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;border:none;padding:0;margin:0;background:var(--overlay-scrim);cursor:pointer;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;-webkit-tap-highlight-color:transparent}.mobile-nav-backdrop-visible{opacity:1;visibility:visible}.sidebar{position:fixed;top:0;left:0;width:min(288px,88vw);height:100vh;height:100dvh;max-height:100dvh;z-index:120;transform:translate(-100%);transition:transform .22s ease;border-right:1px solid var(--border);box-shadow:10px 0 40px #00000059;padding-top:max(16px,env(safe-area-inset-top,0px));padding-bottom:max(16px,env(safe-area-inset-bottom,0px));padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar--open{transform:translate(0)}.sb-item{min-height:44px;padding:10px 12px}.app-topbar-icon-btn{width:44px;height:44px}.app-topbar-avatar{width:30px;height:30px;font-size:12px}.page-title{font-size:1.2rem}.card{padding:14px}}.app-topbar-notif-wrap{position:relative}.app-topbar-notif-wrap>.app-topbar-icon-btn{position:relative}.notif-badge{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center;pointer-events:none}.notif-badge-urgent{background:var(--red);animation:notif-pulse 1.6s ease-in-out infinite}@keyframes notif-pulse{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 25%,transparent)}}@media (prefers-reduced-motion: reduce){.notif-badge-urgent{animation:none}}.notif-badge-quiet{background:var(--bg4);color:var(--text2)}.notif-info-dot{position:absolute;bottom:4px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--bg2);pointer-events:none}.notif-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:80;width:min(92vw,400px);max-height:min(75vh,560px);display:flex;flex-direction:column;border-radius:var(--r2);border:1px solid var(--border);background:var(--bg2);box-shadow:0 12px 40px #0000002e;overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px 6px;font-size:13px;color:var(--text)}.notif-mark{border:none;background:none;padding:0;font-size:12px;color:var(--accent);cursor:pointer}.notif-tabs{display:flex;gap:4px;padding:0 10px;border-bottom:1px solid var(--border)}.notif-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 8px 8px;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;font:inherit;font-size:13px;color:var(--text2);cursor:pointer}.notif-tab:hover{color:var(--text)}.notif-tab.is-active{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.notif-tab-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--bg4);color:var(--text2);font-size:11px;font-weight:600;line-height:18px;text-align:center}.notif-tab-count.is-new{background:var(--accent);color:#fff}.notif-empty{margin:0;padding:22px 14px;font-size:13px;color:var(--text3);text-align:center}.notif-scroll{overflow-y:auto;padding-bottom:4px}.notif-section-head{margin:0;padding:10px 14px 4px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--text3)}.notif-list{list-style:none;margin:0;padding:0}.notif-li{position:relative}.notif-row{display:grid;gap:2px;width:100%;padding:8px 40px 8px 20px;border:none;background:none;text-align:left;cursor:pointer;position:relative;color:var(--text2);font:inherit}.notif-row:hover{background:var(--bg3)}.notif-row.is-unseen{background:color-mix(in srgb,var(--accent) 6%,transparent)}.notif-row.is-unseen:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.notif-row.is-unseen:before{content:"";position:absolute;left:8px;top:14px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.notif-row.is-urgent{box-shadow:inset 3px 0 0 var(--red)}.notif-row.is-urgent.is-unseen:before{background:var(--red)}.notif-title{font-size:13px;color:var(--text)}.notif-row.is-unseen .notif-title{font-weight:600}.notif-row.is-urgent .notif-title{color:var(--red);font-weight:600}.notif-detail,.notif-time{font-size:12px;color:var(--text3)}.notif-meta{display:flex;align-items:center;gap:8px}.notif-meta:empty{display:none}.notif-module{padding:0 6px;border-radius:4px;background:var(--bg4);font-size:11px;line-height:17px;color:var(--text2)}.notif-read-btn{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--border2);border-radius:50%;background:var(--bg2);color:var(--text2);cursor:pointer;opacity:0;transition:opacity .12s}.notif-li:hover .notif-read-btn,.notif-read-btn:focus-visible{opacity:1}.notif-read-btn:hover{color:var(--accent);border-color:var(--accent)}@media (hover: none){.notif-read-btn{opacity:1}}.notif-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px 8px 18px;border:none;background:none;font:inherit;font-size:13px;color:var(--text);text-align:left;cursor:pointer}.notif-group-head:hover{background:var(--bg3)}.notif-group-chev{width:14px;height:14px;flex:none;color:var(--text3);transition:transform .12s}.notif-group-head.is-open .notif-group-chev{transform:rotate(90deg)}.notif-group-label{font-weight:600}.notif-group-head.is-urgent .notif-group-label,.notif-section-urgent .notif-section-head{color:var(--red)}.notif-group-head.is-urgent{box-shadow:inset 3px 0 0 var(--red)}.notif-group-count{font-size:12px;color:var(--text3)}.notif-group-new{margin-left:auto;padding:0 7px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;line-height:18px}.notif-sublist .notif-row{padding-left:40px}.notif-sublist .notif-row.is-unseen:before{left:28px}.notif-toast-stack{position:fixed;top:64px;right:16px;z-index:120;display:grid;gap:8px;width:min(360px,calc(100vw - 32px))}.notif-toast{display:grid;gap:6px;padding:12px 14px;border-radius:var(--r2);border:1px solid color-mix(in srgb,var(--red) 45%,var(--border));background:var(--bg2);box-shadow:0 12px 32px #0000004d;font-size:13px;color:var(--text2)}.notif-toast-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.notif-toast strong{color:var(--red)}.notif-toast-x{display:grid;place-items:center;width:22px;height:22px;margin:-3px -6px 0 0;border:none;border-radius:var(--r);background:none;color:var(--text3);cursor:pointer}.notif-toast-x:hover{background:var(--bg3);color:var(--text)}.notif-toast-actions{display:flex;gap:8px;margin-top:2px}.notif-toast-more{justify-self:end;padding:4px 10px;border:1px solid var(--border2);border-radius:999px;background:var(--bg2);font:inherit;font-size:12px;color:var(--text2);cursor:pointer}.notif-toast-more:hover{color:var(--text)}.grid-fill{overflow:auto}.grid-fill thead th{position:sticky;top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--border)}:where(.grid-fill) thead th{background:var(--bg2)}@media (max-width: 767px){.grid-fill{overflow:visible;overflow-x:auto}}.app-topbar-search{display:flex;align-items:center;gap:8px;width:280px;max-width:38vw;padding:6px 10px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);color:var(--text3);font-family:var(--sans);font-size:12.5px;text-align:left;cursor:pointer}.app-topbar-search:hover{border-color:var(--border3);color:var(--text2)}.app-topbar-search-icon{flex-shrink:0}.app-topbar-search-text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-topbar-search-kbd{flex-shrink:0;padding:1px 5px;border:1px solid var(--border2);border-radius:4px;font-family:var(--sans);font-size:10px;letter-spacing:.04em;color:var(--text3)}.sb-item-badge{flex-shrink:0;min-width:18px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--amber);font-size:12px;font-weight:700;line-height:18px;text-align:center}.sb-item-badge.is-urgent{background:color-mix(in srgb,var(--red) 18%,transparent);border-color:color-mix(in srgb,var(--red) 45%,transparent);color:var(--red)}.sb-item-active .sb-item-badge{border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.nav-search-ov{align-items:flex-start;justify-content:center;padding-top:12vh}.nav-search{width:min(560px,calc(100vw - 32px));max-height:70vh;display:flex;flex-direction:column;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg2);box-shadow:0 24px 60px #00000059;overflow:hidden}.nav-search-input{border:0;border-bottom:1px solid var(--border2);background:transparent;padding:14px 16px;color:var(--text);font-family:var(--sans);font-size:15px}.nav-search-input:focus{outline:none}.nav-search-list{list-style:none;margin:0;padding:6px;overflow-y:auto}.nav-search-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--r2);background:transparent;color:var(--text2);font-family:var(--sans);text-align:left;cursor:pointer}.nav-search-row.is-active{background:var(--bg3);color:var(--text)}.nav-search-main{display:flex;flex-direction:column;min-width:0;flex:1}.nav-search-label{font-size:13.5px;font-weight:600}.nav-search-hint{font-size:11.5px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-search-group{flex-shrink:0;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.nav-search-empty,.nav-search-foot{margin:0;padding:12px 16px;font-size:12px;color:var(--text3)}.nav-search-foot{border-top:1px solid var(--border2);padding:8px 16px}.nav-search-warn{margin:0;padding:8px 16px;border-top:1px solid var(--border2);font-size:12px;color:var(--amber)}.sb-mini-toggle{display:none;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;margin:0 0 0 auto;padding:0;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);color:var(--text3);cursor:pointer}.sb-mini-toggle:hover{color:var(--text);border-color:var(--border3)}@media (min-width: 769px){.sb-mini-toggle{display:flex}}.sidebar--mini{width:68px;padding-left:10px;padding-right:10px}.sidebar--mini .brand-text,.sidebar--mini .sb-item-label,.sidebar--mini .sb-item-tag,.sidebar--mini .sb-nav-section-title span,.sidebar--mini .sb-nav-caret{display:none}.sb-peek-spacer{width:68px;flex-shrink:0}.sidebar--peek{position:fixed;top:0;left:0;bottom:0;z-index:110;box-shadow:10px 0 32px #00000047}.sidebar--mini .brand-row{position:relative;justify-content:center}.sidebar--mini .sb-mini-toggle{position:absolute;top:0;right:0;bottom:0;left:0;width:34px;height:34px;margin:auto;opacity:0;transition:opacity .12s}.sidebar--mini .brand-row:hover .sb-mini-toggle,.sidebar--mini .sb-mini-toggle:focus-visible{opacity:1}.sidebar--mini .brand-row:hover .brand-mark,.sidebar--mini .brand-row:has(.sb-mini-toggle:focus-visible) .brand-mark{visibility:hidden}.sidebar--mini .sb-nav-section-title{justify-content:center;height:1px;margin:10px 4px 8px;padding:0;overflow:hidden;background:var(--border2);border-radius:1px;pointer-events:none}.sidebar--mini .sb-item{justify-content:center;padding:9px 0}.sidebar--mini .sb-item-main{flex:none;justify-content:center}.sidebar--mini .sb-item-badge{position:absolute;top:3px;right:8px;min-width:15px;padding:0 4px;font-size:9.5px;line-height:15px}.sidebar--mini .sb-nav-group-items,.sidebar--mini .sb-item{position:relative}.sb-item-row:hover .sb-pin,.sb-pin:focus-visible,.sb-pin.is-on{color:var(--accent2)}.main-scroll{flex:1;min-height:0;overflow-y:auto;padding:22px 32px 40px;background:linear-gradient(160deg,var(--bg) 0%,var(--bg3) 52%,var(--bg2) 100%)}@media (max-width: 768px){.main-scroll{padding:12px 14px 28px;padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px));padding-bottom:max(28px,env(safe-area-inset-bottom,0px))}}@media (max-width: 768px){.app-topbar-search{flex-shrink:0;justify-content:center;padding:0;width:40px;min-width:40px;max-width:none;height:40px;border-color:transparent;background:transparent}.app-topbar-search-text,.app-topbar-search-kbd{display:none}.app-topbar-search-icon{width:20px;height:20px}}.app-topbar-user-popover-sub{padding-left:22px;font-size:12px}.notif-sample{list-style:none;margin:4px 0 0;padding:0 0 0 12px;border-left:2px solid var(--border);display:grid;gap:2px}.notif-sample-row{all:unset;cursor:pointer;font-size:12px;color:var(--text2);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.notif-sample-row:hover,.notif-sample-row:focus-visible{color:var(--text);text-decoration:underline}.notif-sample-row.is-urgent{color:var(--red)}.notif-sample-more{font-size:12px;color:var(--text3)}.notif-ack{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0 12px}.notif-ack-err{font-size:12px;color:var(--red)}.app-topbar-user-popover-link{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:13px;color:var(--text2);text-decoration:none}.app-topbar-user-popover-link:hover{color:var(--accent)}.app-default-pw-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 16px 0;padding:9px 12px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--amber) 45%,var(--border));background:color-mix(in srgb,var(--amber) 12%,transparent);font-size:13px;color:var(--text)}.app-default-pw-banner-link{font-weight:600;color:var(--accent)}.drill-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--overlay-scrim);display:flex;justify-content:flex-end}.drill-panel{width:min(480px,100vw);height:100%;background:var(--bg);color:var(--text);border-left:1px solid var(--border);box-shadow:var(--shadow-modal);display:flex;flex-direction:column}.drill-h{display:flex;align-items:center;gap:8px;padding:14px 16px 8px;border-bottom:1px solid var(--border)}.drill-title{flex:1;margin:0;font-size:15px;font-weight:600}.drill-sum{margin:0;padding:8px 16px;font-size:13px;color:var(--text2);border-bottom:1px solid var(--border)}.drill-b{flex:1;overflow:auto;padding:4px 0 16px}.drill-b>p{padding:12px 16px;margin:0}.drill-err{color:var(--red)}.drill-list{list-style:none;margin:0;padding:0}.drill-row{display:flex;gap:12px;justify-content:space-between;padding:8px 16px;color:inherit;text-decoration:none;border-bottom:1px solid var(--border);font-size:13px}a.drill-row:hover,a.drill-row:focus-visible{background:var(--bg2)}.drill-row-main,.drill-row-meta{display:flex;flex-direction:column;min-width:0}.drill-row-meta{align-items:flex-end;text-align:right;flex-shrink:0}.drill-row-title{overflow-wrap:anywhere}.drill-row-sub{font-size:12px;color:var(--text3)}.drill-btn{all:unset;cursor:pointer;border-bottom:1px dashed currentColor}.drill-btn:hover,.drill-btn:focus-visible{color:var(--accent)}.drill-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media print{.drill-btn{border-bottom:0}}.grid-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border)}.grid-toolbar:has(>.colpick[hidden]:only-child),.grid-toolbar:has(>[hidden]:only-child){display:none}.grid-toolbar-plain{padding:0 0 8px;border-bottom:none}.colpick{position:relative}.colpick-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.colpick-btn:hover{color:var(--text);border-color:var(--accent)}.colpick-btn.is-filtered{color:var(--accent2);border-color:color-mix(in srgb,var(--accent) 45%,var(--border2))}.colpick-count{font-variant-numeric:tabular-nums;font-weight:500;color:var(--text3)}.colpick-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:40;width:250px;padding:10px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg2);box-shadow:0 10px 28px #00000047}.colpick-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:600;color:var(--text)}.colpick-link{border:none;background:none;padding:0;font:inherit;font-size:12px;color:var(--accent2);cursor:pointer}.colpick-link:disabled{color:var(--text3);cursor:default}.colpick-list{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto}.colpick-list li{display:flex;align-items:center;gap:4px}.colpick-list li>label{flex:1;min-width:0}.colpick-step{display:inline-flex;gap:2px;flex-shrink:0}.colpick-step button{width:22px;height:22px;padding:0;border-radius:5px;border:1px solid transparent;background:none;color:var(--text3);font:inherit;font-size:9px;cursor:pointer}.colpick-step button:hover:not(:disabled){color:var(--text);border-color:var(--border2);background:var(--bg3)}.colpick-step button:disabled{opacity:.3;cursor:default}.colpick-export{margin-top:8px}.colpick-list label{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:6px;font-size:13px;color:var(--text);cursor:pointer}.colpick-list label:hover{background:var(--bg3)}.colpick-list label.is-locked{color:var(--text2);cursor:default}.colpick-list small{margin-left:auto;font-size:10px;color:var(--text3)}.colpick-note{margin:8px 0 0;font-size:11px;color:var(--text3)}.colpick-size{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.colpick-seg{display:flex;border:1px solid var(--border2);border-radius:var(--r);overflow:hidden}.colpick-seg button{flex:1;height:28px;border:none;background:var(--bg3);color:var(--text2);font:inherit;font-size:12px;cursor:pointer}.colpick-seg button+button{border-left:1px solid var(--border2)}.colpick-seg button.is-on{background:var(--accent);color:#fff;font-weight:600}.colpick-fit{width:100%;height:28px;margin-top:6px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font:inherit;font-size:12px;cursor:pointer}.colpick-fit:hover{border-color:var(--accent)}@media (max-width: 767px){.colpick-size{display:none}}body.col-resizing,body.col-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.col-moving,body.col-moving *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}th.col-moving-th{opacity:.45}.col-drop-marker{position:fixed;z-index:1000;width:2px;background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent);pointer-events:none}.colpick-order{margin-top:8px}.colpick-foot{margin:8px 0 0;gap:8px;font-weight:400}.colpick-foot .colpick-note{margin:0}.colpick-foot .colpick-link{flex-shrink:0}table[data-colmeasure]{table-layout:auto!important;width:max-content!important;min-width:0!important}table[data-colmeasure]>*>tr>*{width:auto!important;white-space:nowrap!important}@media print{.grid-toolbar{display:none}}.combobox-wrap{position:relative;width:100%}.combobox-wrap.combobox-wrap--entity{width:100%;min-width:min(100%,320px)}select.combobox-wrap--entity{width:100%;min-width:min(100%,320px);max-width:100%}.combobox-control{display:flex;align-items:center;gap:4px;width:100%;height:var(--field-h);min-height:var(--field-h);padding:0 4px 0 var(--field-pad, 10px);border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);color:var(--text);font-size:var(--field-fs);line-height:1.45}.combobox-control:focus-within{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}.combobox-control.is-open{border-color:var(--accent)}.combobox-control.is-disabled{opacity:.6;pointer-events:none}.combobox-input{flex:1;min-width:0;height:100%;padding:0;border:none!important;border-radius:0;background:none!important;box-shadow:none!important;color:var(--text);font-family:inherit;font-size:inherit;line-height:inherit;outline:none}.combobox-input::placeholder{color:var(--text3)}.combobox-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.combobox-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--r);background:none;color:var(--text3);font-size:12px;line-height:1;cursor:pointer}.combobox-btn:hover{color:var(--text);background:var(--bg4)}.combobox-toggle{font-size:10px}.combobox-panel-shell{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--accent);border-radius:var(--r2);background:var(--bg2);box-shadow:0 12px 32px #00000059}.combobox-panel{margin:0;padding:4px;list-style:none;overflow:auto;flex:1;min-height:0;border:none;background:none;box-shadow:none}.combobox-row{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:var(--r);font-size:13px;color:var(--text2);cursor:pointer}.combobox-row.is-hi{background:var(--bg4);color:var(--text)}.combobox-row.is-selected{font-weight:600}.combobox-row.is-selected.is-hi{box-shadow:inset 3px 0 0 var(--accent)}.combobox-row.is-disabled{opacity:.45;cursor:default}.combobox-row-desc{font-size:11px;color:var(--text3)}.combobox-panel-msg{padding:10px 12px;font-size:12px;color:var(--text3);border-radius:var(--r2)}.combobox-panel-warn{margin:0;padding:4px 10px 6px;font-size:11px;color:var(--warn, #c9a227);border-top:1px solid var(--border2)}.field-sm .combobox-control{height:var(--field-h-sm);min-height:var(--field-h-sm);font-size:var(--field-fs-sm)}.sort-th{display:inline-flex;align-items:center;gap:4px;border:none;background:none;padding:0;margin:0;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;white-space:nowrap}.sort-th:hover{color:var(--text)}.sort-th-icon{font-size:9px;opacity:.35}.sort-th.is-active .sort-th-icon{opacity:1;color:var(--accent)}.table-num .sort-th,th.table-num>.sort-th{justify-content:flex-end}.pager{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:10px 2px 0;font-size:12px;color:var(--text2)}.pager-info{font-variant-numeric:tabular-nums}.pager-size{display:inline-flex;align-items:center;gap:6px}.pager-size select,.sort-select select{border-radius:6px;border:1px solid var(--border);background:var(--bg2);color:var(--text);min-height:var(--field-h-sm);height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.pager-pages{display:inline-flex;align-items:center;gap:3px;margin-left:auto}.pager-btn{min-width:28px;height:28px;padding:0 6px;border-radius:6px;border:1px solid var(--border);background:var(--bg2);color:var(--text2);font:inherit;font-size:12px;cursor:pointer;font-variant-numeric:tabular-nums}.pager-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.pager-btn.is-current{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pager-btn:disabled{opacity:.4;cursor:default}.pager-gap{padding:0 2px;color:var(--text3)}.sort-select{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);margin-bottom:10px}@media (max-width: 640px){.pager-pages{margin-left:0;width:100%;justify-content:center}}.pager-wrap{padding:0 14px 12px}.pager-wrap-top{padding:12px 14px 0}.pager-wrap-top .sort-select{margin-bottom:0}.dt-field,.tm-field{position:relative;display:flex;flex-direction:column;gap:8px;min-width:0}.dt-field-row,.tm-field-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.dt-field-native{position:absolute;left:0;top:0;width:1px!important;height:1px!important;min-height:0!important;opacity:0;pointer-events:none;overflow:hidden}.picker-trigger{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 12px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer}.picker-trigger:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 40%,var(--border2))}.picker-trigger:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:2px}.picker-trigger:disabled{opacity:.55;cursor:not-allowed}.picker-trigger.is-empty .picker-trigger-text{color:var(--text3)}.picker-trigger-icon{display:flex;color:var(--text2);flex:none}.picker-trigger-text{flex:1;min-width:0;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-trigger-chev{color:var(--text3);font-size:11px;flex:none}.picker-panel{border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg2);box-shadow:var(--shadow-modal)}.picker-panel.is-popover{padding:12px 14px}.picker-panel-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.picker-panel-title{margin:0;font-size:14px;font-weight:600;font-family:var(--display)}.picker-panel-body{display:flex;flex-direction:column;gap:10px}.picker-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border2)}.picker-panel-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.picker-sheet-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12000;display:flex;flex-direction:column;justify-content:flex-end}.picker-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:color-mix(in srgb,#000 45%,transparent);cursor:pointer}.picker-panel.is-sheet{position:relative;z-index:1;max-height:min(88vh,640px);overflow:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0));border-bottom-left-radius:0;border-bottom-right-radius:0;animation:picker-sheet-in .22s ease-out}@keyframes picker-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.dt-range-sep{color:var(--text3);font-size:13px;flex:none}.dt-summary{margin:0;font-size:12px;color:var(--text2);line-height:1.45}.cal-month{-webkit-user-select:none;user-select:none}.cal-month-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;margin-bottom:10px}.cal-today-jump{margin-left:auto}.cal-month-title{margin:0;font-size:14px;font-weight:600;font-family:var(--display);color:var(--text)}.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;gap:2px}.cal-wd{font-size:10px;font-weight:600;text-align:center;color:var(--text3);padding:4px 0}.cal-wd.is-off{color:var(--text3);opacity:.75}.cal-day{min-width:0;aspect-ratio:1;min-height:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px;border:1px solid transparent;border-radius:var(--r);background:transparent;color:var(--text);font:inherit;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer}.cal-day:disabled{opacity:.35;cursor:not-allowed}.cal-day.is-readonly{cursor:default;pointer-events:none}.cal-day:hover:not(:disabled):not(.is-outside){border-color:var(--border2);background:var(--bg3)}.cal-day.is-outside{opacity:.35;cursor:default}.cal-day.is-off{background:color-mix(in srgb,var(--bg3) 80%,transparent);color:var(--text3)}.cal-day.is-today .cal-day-num{font-weight:700;color:var(--accent2)}.cal-day.is-today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.cal-day.is-in-range{background:color-mix(in srgb,var(--accent) 12%,var(--bg3));border-radius:0}.cal-day.is-range-start{border-top-left-radius:var(--r);border-bottom-left-radius:var(--r);background:color-mix(in srgb,var(--accent) 22%,var(--bg3))}.cal-day.is-range-end{border-top-right-radius:var(--r);border-bottom-right-radius:var(--r);background:color-mix(in srgb,var(--accent) 22%,var(--bg3))}.cal-day.is-selected{background:var(--accent);color:#fff;font-weight:600}.cal-day-hol{font-size:8px;line-height:1;color:var(--amber);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-presets{display:flex;flex-wrap:wrap;gap:6px}.tm-preset{padding:4px 10px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font:inherit;font-size:11px;cursor:pointer}.tm-preset:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.tm-preset:disabled{opacity:.5;cursor:not-allowed}.leave-cal-layout{display:grid;gap:16px}.leave-cal-main{display:flex;flex-direction:column;gap:16px;min-width:0}@media (min-width: 900px){.leave-cal-layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start}}@media (max-width: 899px){.leave-cal-side{order:-1}}.leave-cal-side{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);padding:14px 16px;min-height:120px}.leave-cal-side-placeholder{margin:0;font-size:13px;color:var(--text3)}.leave-cal-type-chips{display:flex;flex-wrap:wrap;gap:6px}.leave-cal-type-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--border2);background:var(--bg2);color:var(--text2);font:inherit;font-size:12px;cursor:pointer}.leave-cal-type-chip.is-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg2));color:var(--text);font-weight:600}.wcal-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:10px 0 0;padding:10px 12px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);font-size:12px;color:var(--text2)}.wcal-legend-item{display:inline-flex;align-items:center;gap:6px}.wcal-legend-swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--border2);flex:none}.wcal-toolbar-split{display:flex;flex-direction:column;gap:10px;width:100%}.cal-legend{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:11px;color:var(--text2)}.cal-legend-item{display:inline-flex;align-items:center;gap:6px}.cal-legend-swatch{width:12px;height:12px;border-radius:3px;border:1px solid var(--border2)}.cal-legend-swatch.is-work{background:var(--bg2)}.cal-legend-swatch.is-off{background:color-mix(in srgb,var(--bg3) 80%,transparent)}.cal-legend-swatch.is-range{background:color-mix(in srgb,var(--accent) 18%,var(--bg3))}.tm-presets-inline{margin-top:-4px}.tm-spin-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.tm-spin-label{font-size:12px;color:var(--text2);min-width:4.5rem}.tm-spin-fields{display:flex;align-items:center;gap:4px}.tm-spin-select{min-width:4rem;padding:6px 8px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font:inherit;font-variant-numeric:tabular-nums}.tm-spin-sep{font-weight:600;color:var(--text2)}.schedule-block{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);padding:12px 14px;display:flex;flex-direction:column;gap:10px}.schedule-block-h{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.schedule-block-row{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:8px 12px;align-items:start}.schedule-block-k{font-size:13px;color:var(--text2);padding-top:8px}.schedule-block-v{min-width:0}.schedule-block-summary{margin:0;font-size:12px;color:var(--text2);line-height:1.45;padding-top:4px;border-top:1px solid var(--border2)}.dt-summary.err{color:var(--err, #c0392b)}.dt-field-compact .picker-trigger{min-height:32px;padding:4px 10px;font-size:13px}.dt-field-compact .picker-trigger-icon svg{width:14px;height:14px}.page-date-range{flex:0 1 auto;min-width:min(300px,100%);max-width:420px}.leave-section-h>.page-date-range{flex-shrink:1}.fdz{position:relative;min-width:0}.fdz-row{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap}.fdz-zone{margin:8px 0 6px;padding:8px 10px;border:1px dashed var(--border2);border-radius:8px;transition:border-color .12s,background .12s}.fdz-button{display:inline-block;max-width:100%;vertical-align:middle}.fdz-button .fdz-hint{white-space:nowrap}.fdz-btn{position:relative;overflow:hidden;cursor:pointer;flex:none}.fdz-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.fdz-btn.is-disabled{opacity:.5;pointer-events:none}.fdz-hint{color:var(--text3);font-size:12px;min-width:0}.fdz-drop{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;align-items:center;justify-content:center;border:2px dashed var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,var(--bg2, #fff));color:var(--accent);font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none}.fdz.is-drag .fdz-drop{display:flex}.fdz-button .fdz-drop{top:-3px;right:-3px;bottom:-3px;left:-3px;overflow:hidden;font-size:12px}.fdz.is-over .fdz-drop{background:color-mix(in srgb,var(--accent) 24%,var(--bg2, #fff))}.fdz-zone.is-drag{border-color:transparent}.fdz-rejected{list-style:none;margin:6px 0 0;padding:0;color:var(--red);font-size:12px}.upq{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.upq li{display:flex;align-items:center;gap:8px;font-size:12px;padding:4px 8px;border-radius:6px;background:var(--bg3)}.upq li .btn{flex:none;white-space:nowrap}.upq-name{min-width:60px;flex:1 1 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upq-state{flex:none;color:var(--text3)}.upq li.is-error .upq-state{color:var(--red);flex:1 1 0;min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upq li.is-uploading .upq-state{color:var(--accent)}.leave-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.leave-head-actions{display:flex;gap:8px;flex-wrap:wrap}.leave-saved{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;border-color:color-mix(in srgb,var(--green) 45%,var(--border));background:color-mix(in srgb,var(--green) 8%,var(--bg2))}.leave-cal-detail-list .btn{margin-left:6px}.leave-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.leave-tab{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--text2);font:inherit;font-size:14px;padding:7px 14px;border-radius:var(--r2);cursor:pointer}.leave-tab:hover{background:var(--bg3);color:var(--text)}.leave-tab.is-active{background:var(--accent);color:#fff;font-weight:600}.leave-tab-badge{min-width:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}.leave-head+.leave-tabs~.card,.leave-tabs~.card{margin-bottom:16px}.leave-report-monthly{margin-top:12px;padding-top:12px;border-top:1px solid var(--border, #e8e8e8)}.leave-section-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.leave-section-h h2{margin:0;font-size:15px;font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:6px}.leave-section-h:not(:has(.leave-grow))>select:first-of-type:not(:only-of-type),.leave-section-h:not(:has(.leave-grow)) h2+select,.leave-section-h:not(:has(.leave-grow))>.combobox-wrap:first-of-type:not(:only-of-type){margin-left:auto}.leave-section-h .combobox-wrap,.leave-section-h>select{width:auto;min-width:0;flex:0 1 200px;max-width:min(220px,100%)}.leave-section-h .combobox-wrap.combobox-wrap--entity,.leave-section-h>select.combobox-wrap--entity{flex:1 1 320px;max-width:min(380px,100%);min-width:min(260px,100%)}.leave-grow{flex:1}.leave-muted{color:var(--text3);font-size:12px}.leave-empty{padding:18px 4px;color:var(--text2);font-size:13px}.leave-bad{color:var(--red)}.leave-nowrap{white-space:nowrap}.leave-reason{max-width:280px;white-space:pre-wrap;word-break:break-word}.leave-danger{color:var(--red)}.leave-center{text-align:center}.leave-table-wrap{overflow-x:auto}.leave-row-actions{display:flex;gap:4px;justify-content:flex-end;white-space:nowrap}.leave-row-off{opacity:.55}.leave-link{border:none;background:none;padding:0;font:inherit;color:var(--accent2);cursor:pointer;text-align:left}.leave-link:hover{text-decoration:underline}.leave-dot{width:8px;height:8px;border-radius:50%;background:var(--lt-color, var(--accent));flex-shrink:0}.leave-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 7px;border-radius:999px;border:1px solid color-mix(in srgb,var(--lt-color, var(--accent)) 40%,transparent);background:color-mix(in srgb,var(--lt-color, var(--accent)) 12%,transparent);color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}.leave-status{display:inline-flex;padding:2px 9px;border-radius:999px;border:1px solid;font-size:11px;font-weight:600;white-space:nowrap;margin-left:6px}td>.leave-status{margin-left:0}.leave-status-pending{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 40%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}.leave-status-approved{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.leave-status-rejected{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,transparent);background:color-mix(in srgb,var(--red) 10%,transparent)}.leave-status-cancelled{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.leave-flag{display:inline-flex;padding:1px 8px;border-radius:6px;background:var(--bg3);border:1px solid var(--border2);color:var(--text2);font-size:11px}.leave-flag-warn{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent)}.leave-bal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.leave-bal{padding:12px 14px;border-radius:var(--r2);border:1px solid var(--border);border-top:3px solid var(--lt-color, var(--accent));background:var(--bg3)}.leave-bal-name{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text2)}.leave-bal-num{margin:6px 0;font-size:12px;color:var(--text3)}.leave-bal-num strong{font-family:var(--display);font-size:26px;color:var(--text)}.leave-bal-num strong.leave-bad{color:var(--red)}.leave-bal-bar{display:flex;height:6px;border-radius:99px;overflow:hidden;background:var(--bg4)}.leave-bal-used{background:var(--lt-color, var(--accent))}.leave-bal-pend{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--lt-color, var(--accent)) 70%,transparent) 0 4px,transparent 4px 7px)}.leave-bal-foot{margin-top:6px;font-size:11px;color:var(--text3)}.leave-bal-others{margin:10px 0 0}.modal.leave-modal{max-width:min(720px,calc(100vw - 32px))}.modal.leave-req-modal{max-width:min(760px,calc(100vw - 32px))}.leave-req-form{gap:16px 18px}.leave-req-form .form-field{min-width:0}.leave-req-form .form-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.leave-req-form .form-field select,.leave-req-form .form-field textarea{width:100%;max-width:100%;box-sizing:border-box}.leave-field-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.leave-req-modal .leave-req-check-group{display:flex;flex-direction:column;width:100%;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);overflow:hidden}.leave-req-modal .leave-req-check-group .leave-check{display:flex;align-items:flex-start;gap:10px;width:100%;margin:0;padding:10px 12px;font-size:13px;font-weight:400;line-height:1.45;color:var(--text);border-bottom:1px solid var(--border2)}.leave-req-modal .leave-req-check-group .leave-check:last-child{border-bottom:none}.leave-req-modal .leave-doc-field .leave-files{margin-bottom:0}.leave-req-modal .leave-doc-field .leave-req-check-group{margin-top:10px}.leave-req-modal .leave-preview{width:100%}.leave-req-modal .modal-f{flex-wrap:wrap;align-items:center}.leave-req-modal .leave-f-summary{flex:1 1 100%;margin-right:0;order:-1;padding-bottom:2px}@media (min-width: 540px){.leave-req-modal .leave-f-summary{flex:1 1 auto;order:0;padding-bottom:0;min-width:0}}.leave-type-picker{display:flex;flex-wrap:wrap;gap:6px}.leave-type-opt{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font:inherit;font-size:13px;cursor:pointer}.leave-type-opt:hover{color:var(--text);border-color:var(--lt-color, var(--accent))}.leave-type-opt.is-active{color:var(--text);font-weight:600;border-color:var(--lt-color, var(--accent));background:color-mix(in srgb,var(--lt-color, var(--accent)) 16%,var(--bg3))}.leave-help{margin:4px 0 0;font-size:12px;color:var(--text3)}.leave-label{font-size:12px;font-weight:600;color:var(--text2)}.leave-seg{display:inline-flex;border:1px solid var(--border2);border-radius:var(--r2);overflow:hidden;align-self:flex-start}.leave-seg-opt{display:inline-flex;align-items:center;padding:6px 14px;font-size:13px;color:var(--text2);cursor:pointer;border-right:1px solid var(--border2)}.leave-seg-opt:last-child{border-right:none}.leave-seg-opt input{position:absolute;opacity:0;pointer-events:none}.leave-seg-opt.is-active{background:var(--accent);color:#fff;font-weight:600}.leave-preview{padding:10px 12px;border-radius:var(--r2);border:1px dashed var(--border2);background:var(--bg3);font-size:13px;display:flex;flex-direction:column;gap:4px}.leave-preview p{margin:0}.leave-preview-main strong{font-size:20px;font-family:var(--display)}.leave-warn-text{color:var(--red);font-size:12px}.leave-note-text{color:var(--amber);font-size:12px;margin:4px 0 0}.leave-check{display:inline-flex;align-items:flex-start;gap:10px;font-size:13px;font-weight:400;line-height:1.45;color:var(--text);cursor:pointer}.leave-check input[type=checkbox],.leave-check input[type=radio]{width:18px;height:18px;min-height:unset;flex:none;margin-top:2px}.leave-f-summary{margin-right:auto;align-self:center}.leave-pending-list{display:flex;flex-direction:column;gap:10px}.leave-pending{padding:12px 14px;border-radius:var(--r2);border:1px solid var(--border);border-left:4px solid var(--lt-color, var(--accent));background:var(--bg3)}.leave-pending-h{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:14px}.leave-pending-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 4px;font-size:13px}.leave-pending-period{font-weight:600}.leave-pending-reason{margin:4px 0;font-size:13px;color:var(--text);white-space:pre-wrap}.leave-pending-info{font-size:12px;color:var(--text2);margin:6px 0 10px}.leave-pending-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.leave-in{font:inherit;font-size:12px;padding:5px 8px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg2);color:var(--text)}.leave-in:focus{outline:none;border-color:var(--accent)}.leave-note-in{flex:1;min-width:200px}.leave-report-table th,.leave-report-table td{white-space:nowrap}.leave-zero{color:var(--text3)}.leave-pend-note{font-size:10px;color:var(--amber)}.leave-settings-card{margin-bottom:16px}.leave-types-table td{vertical-align:top}.leave-name-cell{display:flex;gap:6px;align-items:center;margin-bottom:4px}.leave-name-cell input[type=color]{width:28px;height:28px;padding:0;border:1px solid var(--border2);border-radius:6px;background:none;cursor:pointer}.leave-types-table td:nth-child(2){min-width:320px}.leave-name-cell .leave-in{flex:1;min-width:0}.leave-in-desc{width:100%;min-width:220px;box-sizing:border-box}.leave-in-num{width:76px;text-align:right}.leave-in-code{width:110px}.leave-in.is-custom{border-color:var(--accent);font-weight:600}.leave-cal-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.leave-cal-nav,.leave-cal-filters{display:flex;align-items:center;gap:8px}.leave-cal-title{margin:0;min-width:150px;text-align:center;font-family:var(--display);font-size:1.1rem;font-weight:600}.leave-cal-today{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;margin-bottom:10px;border-radius:var(--r2);background:var(--bg3);font-size:13px}.leave-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}.leave-cal-wd{padding:6px;font-size:11px;font-weight:600;text-align:center;color:var(--text2);background:var(--bg3);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.leave-cal-wd.is-off{color:var(--text3)}.leave-cal-day{min-height:96px;padding:4px 5px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;min-width:0;outline:none}.leave-cal-day:hover,.leave-cal-day:focus-visible{background:var(--bg3)}.leave-cal-day.is-off{background:color-mix(in srgb,var(--bg3) 60%,transparent)}.leave-cal-day.is-outside{opacity:.45}.leave-cal-day.is-open{box-shadow:inset 0 0 0 2px var(--accent)}.leave-cal-dhead{display:flex;align-items:center;justify-content:space-between}.leave-cal-dnum{font-size:12px;font-weight:600;color:var(--text2)}.leave-cal-day.is-today .leave-cal-dnum{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;background:var(--accent);color:#fff}.leave-cal-count{font-size:10px;color:var(--text3)}.leave-cal-hol{font-size:10px;color:var(--red);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leave-cal-items{display:flex;flex-direction:column;gap:2px;margin-top:3px}.leave-cal-item{padding:1px 6px;border-radius:4px;border:1px solid var(--lt-color, var(--accent));background:color-mix(in srgb,var(--lt-color, var(--accent)) 22%,transparent);color:var(--text);font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leave-cal-item.is-pending{border-style:dashed;background:transparent;color:var(--text2)}.leave-cal-more{font-size:10px;color:var(--text3);padding-left:2px}.leave-cal-detail{margin-top:10px}.leave-cal-detail-h{display:flex;align-items:center;gap:6px;margin-bottom:8px}.leave-cal-detail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}.leave-cal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}.leave-cal-key{display:inline-flex;gap:6px}@media (max-width: 700px){.leave-cal-day{min-height:58px;padding:3px}.leave-cal-items,.leave-cal-hol{display:none}.leave-cal-count{font-size:11px;font-weight:700;color:#fff;background:var(--accent);border-radius:999px;min-width:16px;text-align:center}}.leave-doc-types,.leave-half-ends{display:flex;flex-wrap:wrap;gap:6px 18px}.leave-files{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}.leave-file-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.leave-file-pick .leave-muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leave-file-btn{position:relative;overflow:hidden;cursor:pointer}.leave-file-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.leave-file-btn.is-disabled{opacity:.5;pointer-events:none}.leave-file-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);font-size:12px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leave-file-chip button{border:none;background:none;color:var(--text3);cursor:pointer;font-size:14px;padding:0 4px}.leave-file-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.leave-file-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.leave-approver-table select{min-width:220px;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.leave-steps{display:flex;flex-direction:column;gap:6px}.leave-steps-detail{margin-top:12px;padding:12px;border-radius:var(--r2);border:1px dashed var(--border2);display:flex;flex-direction:column;gap:10px}.leave-steps-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px}.leave-steps-final{align-items:flex-start}.leave-final-list{display:flex;flex-wrap:wrap;gap:6px 16px}.leave-step-info{margin:4px 0;font-size:12px;color:var(--green)}.leave-chain{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.leave-chain-step{border:1px solid var(--border2);border-radius:var(--r2);padding:10px 12px;background:var(--bg3)}.leave-chain-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.leave-chain-no{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700}.leave-chain-body{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-left:32px}.leave-step-track{list-style:none;margin:6px 0;padding:0;display:flex;flex-wrap:wrap;gap:4px;font-size:12px}.leave-step-track li{padding:2px 10px;border-radius:999px;border:1px solid var(--border2);color:var(--text3)}.leave-step-track li+li:before{content:"→ ";color:var(--text3)}.leave-step-track li.is-done{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,transparent)}.leave-step-track li.is-current{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,transparent);font-weight:600}.leave-trail{font-size:12px;line-height:1.45;white-space:nowrap}.leave-chain-warn{margin:6px 0;padding:6px 10px;border-radius:6px;font-size:12.5px;color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent)}.leave-chain-warn-item{display:inline-flex;align-items:center;gap:2px;margin-left:8px;font-weight:600}.co-preview{padding:14px 16px;border:1px dashed var(--border3);border-radius:var(--r);background:var(--bg3)}.co-preview-name{font-size:16px;font-weight:700}.co-preview-line,.co-preview-note{margin-top:3px;font-size:12.5px;color:var(--text2)}.co-preview-note{font-style:italic}.co-logo-row{display:flex;gap:16px;align-items:flex-start;margin-top:14px;flex-wrap:wrap}.co-logo-box{display:flex;align-items:center;justify-content:center;width:160px;height:90px;border:1px dashed var(--border3);border-radius:var(--r);background:#fff;flex:none}.co-logo-img{max-width:144px;max-height:74px;object-fit:contain}.co-logo-main{flex:1 1 260px;min-width:0}.co-preview-logo{max-height:46px;max-width:180px;object-fit:contain;margin-bottom:6px;display:block}.leave-hours-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}.leave-hours-row label{display:inline-flex;flex-direction:row;align-items:center;gap:6px;white-space:nowrap}.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:16px}.dash-kpi{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon val" "lbl  lbl" "sub  sub";gap:2px 10px;align-items:center;padding:14px 16px;text-align:left;font:inherit;color:var(--text);background:var(--bg2);border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:border-color .12s ease,transform .12s ease}.dash-kpi:hover{border-color:var(--accent, #3b82f6);transform:translateY(-1px)}.dash-kpi-icon{grid-area:icon;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;color:var(--accent, #3b82f6);background:color-mix(in srgb,var(--accent, #3b82f6) 14%,transparent)}.dash-kpi-val{grid-area:val;font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.dash-kpi-lbl{grid-area:lbl;margin-top:6px;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text2)}.dash-kpi-sub{grid-area:sub;font-size:12px;color:var(--text3)}.dash-kpi.is-warn .dash-kpi-icon{color:var(--amber, #f59e0b);background:color-mix(in srgb,var(--amber, #f59e0b) 16%,transparent)}.dash-kpi.is-err .dash-kpi-icon{color:var(--red, #ef4444);background:color-mix(in srgb,var(--red, #ef4444) 16%,transparent)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;align-items:start}.dash-card{padding:16px}.dash-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.dash-card-title{display:flex;align-items:center;gap:7px;margin:0;font-size:14px;font-weight:700;color:var(--text)}.dash-count{min-width:20px;padding:1px 7px;border-radius:999px;background:var(--bg3, rgba(127, 127, 127, .18));font-size:11px;font-weight:700;color:var(--text2)}.dash-card-link{font-size:12px;font-weight:600;color:var(--accent, #3b82f6);text-decoration:none;white-space:nowrap}.dash-card-link:hover{text-decoration:underline}.dash-muted{margin:0;font-size:12px;color:var(--text3)}.dash-joblist,.dash-issuelist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.dash-jobrow,.dash-issuerow{display:flex;align-items:center;gap:8px;width:100%;padding:7px 9px;text-align:left;font:inherit;color:var(--text);background:transparent;border:1px solid transparent;border-radius:9px;cursor:pointer}.dash-jobrow:hover,.dash-issuerow:hover{background:var(--bg2);border-color:var(--line)}.dash-job-code,.dash-issue-id{font-family:var(--mono, ui-monospace, monospace);font-size:12px;font-weight:700;color:var(--text2);white-space:nowrap}.dash-job-name,.dash-issue-title{flex:1;min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-job-bar{display:flex;align-items:center;gap:7px;width:132px;flex:0 0 auto}.dash-job-bar .progress-bar-wrap{display:block;flex:1;height:6px;border-radius:999px;background:var(--bg3, rgba(127, 127, 127, .2));overflow:hidden}.dash-job-bar .progress-bar-fill{display:block;height:100%;border-radius:999px}.dash-job-pct{width:62px;font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums;text-align:right}.dash-issue-job{font-family:var(--mono, ui-monospace, monospace);font-size:11px;color:var(--text3);white-space:nowrap}.dash-sev{padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.dash-sev-critical{background:color-mix(in srgb,var(--red, #ef4444) 18%,transparent);color:var(--red, #ef4444)}.dash-sev-high{background:color-mix(in srgb,var(--amber, #f59e0b) 20%,transparent);color:var(--amber, #f59e0b)}.dash-sev-medium{background:color-mix(in srgb,var(--blue, #3b82f6) 16%,transparent);color:var(--blue, #3b82f6)}.dash-sev-low{background:var(--bg3, rgba(127, 127, 127, .18));color:var(--text3)}@media (max-width: 640px){.dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-kpi-val{font-size:22px}.dash-job-bar{display:none}}.dash-leave-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}.dash-leave-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dash-today{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;margin-bottom:14px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg2)}.dash-today-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.dash-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-weight:600;background:color-mix(in srgb,var(--accent, #3b82f6) 14%,transparent);color:var(--accent, #3b82f6)}.dash-pill.is-leave{background:color-mix(in srgb,var(--amber, #f59e0b) 16%,transparent);color:var(--amber, #f59e0b)}.dash-pill.is-wfh{background:color-mix(in srgb,#0f9d8a 16%,transparent);color:#0f9d8a}.dash-pill.is-onsite{background:color-mix(in srgb,var(--violet, #8b5cf6) 16%,transparent);color:var(--violet, #8b5cf6)}.dash-quick{display:flex;gap:8px;flex-wrap:wrap}.dash-top{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:start;margin-bottom:16px}.dash-top>:only-child{grid-column:1 / -1}.dash-todo{scroll-margin-top:70px}.dash-todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.dash-todo-sec{margin:6px 0 2px;font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--text3)}.dash-todo-sec.is-urgent{color:var(--red, #ef4444)}.dash-todo-row{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;text-align:left;font:inherit;color:var(--text);background:transparent;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;cursor:pointer}.dash-todo-row:hover{border-color:var(--accent, #3b82f6);background:var(--bg3)}.dash-todo-row.is-urgent{border-left-color:var(--red, #ef4444)}.dash-todo-row.is-today{border-left-color:var(--amber, #f59e0b)}.dash-todo-mod{flex:none;min-width:64px;padding:1px 8px;border-radius:999px;text-align:center;font-size:11px;font-weight:700;white-space:nowrap;background:color-mix(in srgb,var(--accent, #3b82f6) 14%,transparent);color:var(--accent, #3b82f6)}.dash-todo-text{flex:1;min-width:0;display:flex;flex-direction:column}.dash-todo-title{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-todo-detail{font-size:12px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-todo-go{flex:none;font-size:12px;color:var(--accent, #3b82f6)}.dash-todo-more{margin-top:8px}.dash-clear{margin:0;padding:14px;border-radius:10px;text-align:center;font-weight:600;color:var(--green, #22c55e);background:color-mix(in srgb,var(--green, #22c55e) 10%,transparent)}.dash-office{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.dash-office-num{font-size:13px}.dash-office-num strong{font-size:22px;font-variant-numeric:tabular-nums}.dash-away-counts{display:flex;gap:12px;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--text2)}.dash-away-kind{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:12px;white-space:nowrap}.dash-away-kind.is-wfh{color:#0f9d8a;background:color-mix(in srgb,#0f9d8a 14%,transparent)}.dash-away-kind.is-onsite{color:var(--violet, #8b5cf6);background:color-mix(in srgb,var(--violet, #8b5cf6) 14%,transparent)}.dash-week-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.dash-week-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;border-radius:8px;color:var(--text2);text-decoration:none}.dash-week-day:hover{background:var(--bg3)}.dash-week-day.is-today{color:var(--accent, #3b82f6);font-weight:700}.dash-week-bar-v{display:flex;align-items:flex-end;width:14px;height:28px;border-radius:4px;background:var(--bg3);overflow:hidden}.dash-week-bar-v span{width:100%;background:color-mix(in srgb,var(--accent, #3b82f6) 60%,transparent)}.dash-week-n{font-size:12px;font-variant-numeric:tabular-nums}.dash-week-d{font-size:11px;color:var(--text3)}.dash-kpi-val small{font-size:13px;font-weight:600;color:var(--text3)}.dash-card.is-empty{padding:10px 16px}.dash-card.is-empty .dash-card-head{margin-bottom:2px}@media (max-width: 900px){.dash-top{grid-template-columns:minmax(0,1fr)}.dash-today{flex-direction:column;align-items:stretch}.dash-quick{flex-wrap:nowrap;overflow-x:auto}.dash-quick .btn{flex:none}}.dash-head-actions{display:flex;gap:6px}.dash-grow{flex:1}.dash-scope{padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;color:var(--text2);background:var(--bg3)}.dash-card-foot{margin-top:10px}.dash-late{flex:none;font-size:11px;font-weight:700;color:var(--red, #ef4444)}.dash-sales-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.dash-sales-sum div{display:flex;flex-direction:column}.dash-sales-sum strong{font-size:18px;font-variant-numeric:tabular-nums}.dash-sales-sum strong.is-under{color:var(--amber, #f59e0b)}.dash-sales-sum span{font-size:11px;color:var(--text3)}.dash-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;height:110px;border-bottom:1px solid var(--line)}.dash-bar-col{display:flex;flex-direction:column;align-items:center;min-width:0;cursor:default}.dash-bar-plot{position:relative;flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.dash-bar{width:60%;max-width:18px;border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--accent, #3b82f6) 70%,transparent)}.dash-bar-col.is-now .dash-bar,.dash-bar-col.is-hover .dash-bar{background:var(--accent, #3b82f6)}.dash-bar-target{position:absolute;left:15%;right:15%;height:2px;border-radius:2px;background:var(--text)}.dash-bar-lbl{margin-top:2px;font-size:10px;color:var(--text3);white-space:nowrap}.dash-bar-col.is-now .dash-bar-lbl{color:var(--accent, #3b82f6);font-weight:700}.dash-bars-foot{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:12px;color:var(--text2)}.dash-legend{display:inline-flex;align-items:center;gap:5px}.dash-legend-bar{width:8px;height:12px;border-radius:2px;background:var(--accent, #3b82f6)}.dash-legend-tick{width:12px;height:2px;border-radius:2px;background:var(--text)}.dash-bars-read{font-variant-numeric:tabular-nums}.dash-stack{display:flex;gap:2px;height:14px;margin-bottom:10px;border-radius:4px;overflow:hidden}.dash-stack-seg{min-width:4px}.dash-stack-seg.is-current,.dash-stack-dot.is-current{background:var(--green, #22c55e)}.dash-stack-seg.is-bucket30,.dash-stack-dot.is-bucket30{background:var(--amber, #f59e0b)}.dash-stack-seg.is-bucket60,.dash-stack-dot.is-bucket60{background:#ea580c}.dash-stack-seg.is-bucketOver,.dash-stack-dot.is-bucketOver{background:var(--red, #ef4444)}.dash-stack-legend{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:12px}.dash-stack-legend li{display:flex;align-items:center;gap:6px;color:var(--text2)}.dash-stack-legend strong{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums}.dash-stack-dot{flex:none;width:8px;height:8px;border-radius:2px}.dash-ar-top{padding-top:8px;border-top:1px solid var(--line)}.dash-cust{margin-bottom:16px}.dash-cust-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.dash-cust-sec h3{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--text2)}.dash-cust-sec ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.dash-cust-sec li{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:8px;font-size:13px}.dash-cust-sec li:hover{background:var(--bg3)}.dash-cust-sec li.is-hidden label{color:var(--text3)}.dash-cust-sec label{display:flex;align-items:center;gap:8px;cursor:pointer}.dash-cust-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}a.dash-issuerow{text-decoration:none}@media (max-width: 640px){.dash-stack-legend{grid-template-columns:minmax(0,1fr)}.dash-bar-lbl{font-size:9px}}.dash-kpi-trend{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;min-width:0;margin-top:6px;font-size:11px;color:var(--text3)}.dash-spark{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0}.dash-spark svg{display:block;overflow:visible}.dash-spark-line{stroke:var(--accent, #3b82f6);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.dash-spark-dot{fill:var(--accent, #3b82f6);stroke:var(--bg2);stroke-width:2}.dash-spark-read{font-variant-numeric:tabular-nums;white-space:nowrap}.dash-updated{margin:16px 0 0;font-size:11px;text-align:right;color:var(--text3)}.dash-link-btn{border:0;background:transparent;padding:0;font:inherit;cursor:pointer}.dash-agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.dash-agenda-day{display:flex;gap:12px;padding:6px 0;border-top:1px solid var(--line)}.dash-agenda-day:first-child{border-top:0}.dash-agenda-day.is-weekend{opacity:.75}.dash-agenda-date{flex:none;width:44px;display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--text3)}.dash-agenda-date strong{font-size:16px;color:var(--text);font-variant-numeric:tabular-nums}.dash-agenda-day.is-today .dash-agenda-date,.dash-agenda-day.is-today .dash-agenda-date strong{color:var(--accent, #3b82f6)}.dash-agenda-free{align-self:center}.dash-agenda-day>ul{list-style:none;margin:0;padding:0;flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.dash-agenda-item{display:flex;align-items:flex-start;gap:8px;padding:4px 6px;border-radius:8px;color:var(--text);text-decoration:none}.dash-agenda-item:hover{background:var(--bg3)}.dash-agenda-kind{flex:none;display:inline-flex;align-items:center;gap:4px;min-width:84px;font-size:11px;font-weight:700;color:var(--text2)}.dash-agenda-item.is-holiday .dash-agenda-kind{color:var(--red, #ef4444)}.dash-agenda-item.is-wfh .dash-agenda-kind{color:#0f9d8a}.dash-agenda-item.is-leave .dash-agenda-kind{color:var(--amber, #f59e0b)}.dash-agenda-text{min-width:0;display:flex;flex-direction:column}.dash-agenda-title{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-agenda-detail{font-size:12px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-quota{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-quota li{display:grid;grid-template-columns:minmax(90px,1fr) minmax(80px,2fr) auto;align-items:center;gap:10px;font-size:13px}.dash-quota-name{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-quota-bar{display:flex;gap:2px;height:8px;border-radius:4px;background:var(--bg3);overflow:hidden}.dash-quota-bar .is-used{background:var(--lt-color, var(--accent))}.dash-quota-bar .is-pending{background:color-mix(in srgb,var(--lt-color, var(--accent)) 40%,transparent)}.dash-quota-bar.is-none{background:transparent}.dash-quota-num{font-size:12px;color:var(--text2);white-space:nowrap;font-variant-numeric:tabular-nums}.dash-quota-num strong{color:var(--text)}.dash-team{grid-column:1 / -1}.dash-team-week{display:inline-flex;align-items:center;gap:2px;margin-left:6px;font-weight:500;font-size:12px}.dash-team .dash-card-head{flex-wrap:wrap}.dash-team-dept{max-width:min(220px,100%)}.dash-team-wrap{overflow-x:auto}.dash-team-table td{white-space:nowrap;font-variant-numeric:tabular-nums}.dash-team-name{border:0;background:transparent;padding:0;font:inherit;font-weight:600;color:var(--text);cursor:pointer}.dash-team-name:hover{color:var(--accent, #3b82f6);text-decoration:underline}.dash-team-hrs{display:inline-flex;align-items:center;gap:8px}.dash-team-bar{display:inline-block;width:70px;height:6px;border-radius:3px;background:var(--bg3);overflow:hidden}.dash-team-bar span{display:block;height:100%;background:var(--accent, #3b82f6)}.dash-team-bar.is-over span{background:var(--red, #ef4444)}.dash-flag{font-weight:700}.dash-flag.is-over{color:var(--red, #ef4444)}.dash-flag.is-warn{color:var(--amber, #f59e0b)}.dash-ok{color:var(--green, #22c55e);font-weight:700}.dash-delta.is-good{color:var(--green, #22c55e)}.dash-delta.is-bad{color:var(--red, #ef4444)}.dash-quality-list{list-style:none;margin:0;padding:0}.dash-quality-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.dash-quality-list li:last-child{border-bottom:0}.dash-quality-list li.is-zero{opacity:.6}.dash-quality-main{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-quality-n{font-size:16px;font-variant-numeric:tabular-nums}.dash-duty{list-style:none;margin:8px 0 0;padding:0;font-size:13px}.dash-duty li{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px solid var(--border2);flex-wrap:wrap}.dash-duty li:last-child{border-bottom:none}.dash-duty li.is-mine .dash-duty-name{font-weight:600}.dash-duty-dot{flex:0 0 auto;width:10px;height:10px;border-radius:3px;background:var(--text3)}.dash-duty-name{flex:1 1 120px;min-width:0}.dash-duty-shift{color:var(--text2);font-size:12px}.dash-duty-short{margin:6px 0 0;color:var(--red);font-weight:600;font-size:13px}.modal-ov.print-dialog{z-index:360}.print-modal{max-width:860px;width:min(860px,calc(100vw - 32px))}.print-modal-wide{max-width:1000px;width:min(1000px,calc(100vw - 32px))}.print-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg2);font-size:13px}.print-tools label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.print-tools select,.print-tools input[type=month]{max-width:220px}.print-modal-body{max-height:calc(100vh - 180px);overflow:auto;padding:14px;background:var(--bg3);display:flex;flex-direction:column;gap:14px}.print-sheet{font-family:Sarabun,Noto Sans Thai,Arial,sans-serif;background:#fff;color:#111;padding:14mm 12mm;border-radius:var(--r2);font-size:13px;line-height:1.5;box-shadow:0 1px 4px #0000002e;width:794px;max-width:100%;margin:0 auto;min-height:297mm;box-sizing:border-box;display:flex;flex-direction:column}.print-sheet.print-flow{flex-shrink:0}.doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:12px}.doc-title{margin:0;font-size:18px;font-weight:700}.doc-sub{margin:2px 0 0;font-size:12px;color:#555}.doc-meta{margin:0;display:grid;grid-template-columns:auto auto;gap:2px 10px;font-size:12px;flex:none;white-space:nowrap}.doc-meta>div{display:contents}.doc-meta dt{color:#555}.doc-meta dd{margin:0;font-weight:600}.doc-h3{margin:14px 0 6px;font-size:14px;font-weight:700}.doc-table{width:100%;border-collapse:collapse;table-layout:fixed}.doc-table th,.doc-table td{border:1px solid #bbb;padding:5px 8px;vertical-align:top;text-align:left}.doc-table th{background:#f3f4f6;font-weight:600}.doc-table th[scope=row]{width:30%}.doc-grid{table-layout:auto}.doc-grid thead th{font-size:12px;white-space:nowrap}.doc-grid .doc-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.doc-grid tfoot td,.doc-grid tfoot th{font-weight:700;background:#f9fafb}.doc-note{border:1px solid #bbb;padding:6px 8px;min-height:48px}.doc-box{display:inline-block;width:14px;height:14px;border:1px solid #111;text-align:center;line-height:13px;font-size:12px;margin-right:4px;vertical-align:-2px}.doc-gap{display:inline-block;width:24px}.print-status{margin:0;padding:24px;text-align:center;color:var(--text2)}.doc-nowrap{white-space:nowrap}.doc-write{height:56px}.doc-small{font-size:11px;color:#555}.doc-desc{white-space:pre-wrap;overflow-wrap:anywhere}.doc-muted{color:#777}.doc-signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:32px;margin-top:36px;text-align:center;break-inside:avoid}.doc-sign-line{border-bottom:1px dotted #111;height:36px;margin:0 12px 6px}.doc-sign-role{font-weight:600}.doc-sign-date{font-size:12px;color:#444}.doc-foot{margin:18px 0 0;font-size:11px;color:#777;text-align:right}@media (max-width: 640px){.doc-head{flex-direction:column}.doc-signs{gap:12px}}@media (max-width: 720px){.print-modal-body{padding:10px;align-items:flex-start}.print-modal-body .print-sheet{min-width:640px}}.print-portal{display:none}@media print{@page{size:A4;margin:14mm 12mm}body.doc-printing>*:not(.print-portal){display:none!important}html,body.doc-printing{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}body.doc-printing .print-portal{display:block!important}.print-portal{max-height:none!important;overflow:visible!important}.print-portal .print-sheet{padding:0;border-radius:0;box-shadow:none;font-family:Sarabun,Noto Sans Thai,Arial,sans-serif;min-height:0;height:269mm;width:186mm;margin:0;overflow:hidden}.print-portal .print-sheet.print-flow{height:auto;overflow:visible;padding-top:1mm}.print-flow thead{display:table-header-group}.print-flow tr{break-inside:avoid;page-break-inside:avoid}.print-flow .doc-h3{break-after:avoid;page-break-after:avoid}.print-portal .print-sheet+.print-sheet{break-before:page;page-break-before:always}.print-portal th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.doc-measure{position:absolute;left:-10000px;top:0;visibility:hidden;pointer-events:none}.doc-measure .print-sheet{display:block;min-height:0;box-shadow:none}.doc-measure div[data-m]{display:flow-root}.doc-page-fill{flex:1 1 auto;min-height:0}.doc-carry th,.doc-carry td{font-weight:700;background:#f3f3f3;-webkit-print-color-adjust:exact;print-color-adjust:exact}.doc-carry th{text-align:right}.dsig-wrap{position:relative}.dsig-img{position:absolute;left:50%;bottom:0;transform:translate(-50%);max-width:90%;max-height:34px;object-fit:contain;pointer-events:none}.dsig-foot{margin:6px 0 0;display:flex;gap:8px;align-items:center;font-size:9px;color:#475569;text-align:left;line-height:1.4;break-inside:avoid}.dsig-foot p{margin:0}.dsig-warn{margin:6px 0 0;font-size:11px;color:#b91c1c;font-weight:600}.print-portal .dsig-warn{display:none}.vf-v-sign{position:relative}.dsig-code{position:absolute;right:0;top:-1.5mm;font-size:4.5pt;color:#64748b;letter-spacing:.2px}.vf-v-sign .dsig-img{bottom:0;max-height:9mm}.dsig-panel{margin-top:14px;padding-top:10px;border-top:1px solid var(--border, #e2e8f0)}.dsig-panel h4{margin:0 0 8px;font-size:14px}.dsig-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.dsig-slot{border:1px solid var(--border, #e2e8f0);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;min-height:112px}.dsig-slot-label{font-weight:600;font-size:13px}.dsig-slot-img{height:44px;object-fit:contain;object-position:left center;background:#fff;border-radius:4px}.dsig-slot-meta{font-size:12px;color:var(--muted, #64748b)}.dsig-slot-bad{color:#b91c1c;font-weight:600}.dsig-slot-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.dsig-slot-form input{flex:1 1 130px;min-width:0}.dsig-details summary{cursor:pointer;font-weight:600}.dsig-details .dsig-panel{margin-top:6px;padding-top:6px;border-top:0}.dsig-req{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid var(--border, #e2e8f0)}.dsig-link{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}.dsig-link input{flex:1 1 260px;min-width:0}.dsig-invite{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}.dsig-invite input:not([type=number]){flex:1 1 180px;min-width:0}.sign-page{max-width:760px;margin:24px auto;padding:0 16px 40px;display:grid;gap:14px}.sign-page .card{padding:14px 16px;display:grid;gap:10px}.sign-page label{display:grid;gap:4px}.sign-page .sign-consent{grid-template-columns:auto 1fr;align-items:start;font-size:13px}.dsig-file-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dsig-file-pick .leave-muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsig-file-btn{position:relative;overflow:hidden;cursor:pointer}.dsig-file-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.jrf-modal-body{max-height:calc(100vh - 180px);overflow:auto;padding:14px;background:var(--bg3)}.apr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.apr-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}@media (max-width: 640px){.apr-kpi-grid{grid-template-columns:1fr}}.apr-section{margin-bottom:16px}.apr-section-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.apr-section-title{margin:0;font-family:var(--display);font-size:1rem;font-weight:600;color:var(--text)}.apr-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#5b8df52e;color:var(--accent2);font-size:12px;font-weight:700}.apr-table-wrap{overflow-x:auto;margin-top:10px}.apr-job-table{min-width:860px}.apr-job-name{margin-top:2px;font-size:12px;color:var(--text2)}.apr-job-group{margin-top:2px;font-size:11px;color:var(--text3)}.apr-priority{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid var(--border2);color:var(--text2)}.apr-priority-high{border-color:#f0687873;color:var(--red);background:#f0687814}.apr-priority-medium{border-color:#f0a83266;color:var(--amber);background:#f0a83214}.apr-priority-low{border-color:#1fc98e59;color:var(--green);background:#1fc98e14}.apr-est-input{width:76px;text-align:right;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.apr-est-input:focus{outline:none;border-color:var(--accent)}.apr-actions{display:flex;gap:6px;white-space:nowrap}.apr-job-table .wwl-ot-reject-input{min-width:160px}.apr-kpi-grid-single{grid-template-columns:minmax(0,1fr)}.apr-review-modal{max-width:1120px;width:min(1120px,calc(100vw - 32px))}.apr-review-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:0}.apr-review-doc{max-height:calc(100vh - 140px)}.apr-review-side{display:flex;flex-direction:column;gap:10px;padding:14px;border-left:1px solid var(--border)}.apr-review-side hr{width:100%;border:none;border-top:1px solid var(--border);margin:4px 0}.apr-review-field{display:flex;flex-direction:column;gap:4px;font-size:13px}.apr-review-field small{color:var(--text3);font-size:11px}.apr-review-field textarea{resize:vertical}.apr-review-check{display:flex;gap:8px;align-items:flex-start;font-size:13px;cursor:pointer}@media (max-width: 760px){.apr-review-body{grid-template-columns:1fr}.apr-review-side{border-left:none;border-top:1px solid var(--border)}.apr-review-doc{max-height:none}}.apr-leave-banner{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:13px}.apr-leave-banner .btn{margin-left:auto;text-decoration:none}.audit-page-icon{flex-shrink:0;color:var(--accent2)}.audit-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:16px}.audit-field{display:flex;flex-direction:column;gap:4px;min-width:0}.audit-field label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em}.audit-field input,.audit-field select{min-width:140px}.audit-field input:focus,.audit-field select:focus{outline:none;border-color:var(--accent)}.audit-actions{display:flex;gap:8px;align-items:center;margin-left:auto}.audit-btn{padding:8px 14px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--sans)}.audit-btn:hover{border-color:var(--border3);background:var(--bg4)}.audit-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.audit-btn-primary:hover{filter:brightness(1.05)}.audit-table-wrap{overflow-x:auto;border-radius:var(--r2);border:1px solid var(--border)}.audit-table{width:100%;border-collapse:collapse;font-size:12px}.audit-table th,.audit-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.audit-table th{font-weight:600;color:var(--text3);background:var(--bg3);white-space:nowrap}.audit-table td{color:var(--text2)}.audit-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.audit-mono{font-family:var(--mono);font-size:11px;word-break:break-all}.audit-meta-cell{min-width:120px;max-width:280px}.audit-meta-details summary{cursor:pointer;font-size:11px;font-weight:600;color:var(--accent2);-webkit-user-select:none;user-select:none}.audit-meta-details summary:hover{text-decoration:underline}.audit-meta-pre{margin:8px 0 0;padding:10px;max-height:240px;overflow:auto;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);font-family:var(--mono);font-size:10px;line-height:1.45;white-space:pre-wrap;word-break:break-word;text-align:left}.audit-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;font-size:13px;color:var(--text2)}.audit-pagination button{padding:6px 12px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;font-family:var(--sans)}.audit-pagination button:disabled{opacity:.45;cursor:not-allowed}.audit-error{padding:12px 14px;border-radius:var(--r2);background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);font-size:13px;margin-bottom:14px}@media (max-width: 640px){.audit-toolbar{gap:10px}.audit-field{flex:1 1 100%}.audit-field input,.audit-field select{width:100%;min-width:0}.audit-actions{width:100%;margin-left:0}.audit-btn{flex:1}}.changelog-page-icon{flex-shrink:0;color:var(--accent2)}.changelog-page-head-row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px}.changelog-refresh{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:var(--r3);cursor:pointer}.changelog-refresh:hover:not(:disabled){color:var(--text);border-color:var(--border2)}.changelog-refresh:disabled{opacity:.55;cursor:not-allowed}.changelog-error{margin-bottom:14px;padding:12px 14px;font-size:13px;color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent);border:1px solid color-mix(in srgb,var(--red) 35%,var(--border));border-radius:var(--r3)}.changelog-empty{margin:0;font-size:13px;color:var(--text3)}.changelog-md-card{font-size:14px;line-height:1.6;color:var(--text2)}.changelog-md-card .changelog-md-h1{font-family:var(--display);font-size:1.25rem;font-weight:600;color:var(--text);margin:0 0 18px;padding-bottom:10px;border-bottom:1px solid var(--border)}.changelog-md-card h2{font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--text);margin:22px 0 10px}.changelog-md-card h2:first-of-type{margin-top:0}.changelog-md-card h3{margin:16px 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.changelog-md-card p{margin:0 0 10px}.changelog-md-card ul{margin:0 0 12px;padding-left:1.2rem}.changelog-md-card li{margin-bottom:6px}.changelog-md-card a{color:var(--accent2);text-decoration:underline;text-underline-offset:2px}.changelog-md-card a:hover{color:var(--text)}.changelog-md-card code{font-family:var(--mono);font-size:12px;padding:1px 5px;border-radius:4px;background:var(--bg3);border:1px solid var(--border2)}.changelog-md-card pre{margin:0 0 12px;padding:12px 14px;overflow:auto;font-size:12px;border-radius:var(--r3);background:var(--bg3);border:1px solid var(--border)}.changelog-md-card pre code{padding:0;border:none;background:none}.changelog-md-card hr{margin:20px 0;border:none;border-top:1px solid var(--border)}.devsess-card{max-width:720px;margin-top:16px}.devsess-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.devsess-title{margin:0;font-size:16px}.devsess-desc{margin:4px 0 0;font-size:13px;color:var(--text-muted, inherit)}.devsess-empty{margin:0;font-size:13px}.devsess-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.devsess-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);flex-wrap:wrap}.devsess-current{border-color:color-mix(in srgb,var(--green) 45%,var(--border));background:color-mix(in srgb,var(--green) 8%,transparent)}.devsess-main{min-width:0;flex:1 1 260px}.devsess-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.devsess-badge{font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--green) 45%,var(--border))}.devsess-meta{margin-top:2px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.devsess-actions{display:flex;gap:6px}.devsess-google{max-width:720px;margin:16px 0 0;padding:9px 12px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--green) 45%,var(--border));background:color-mix(in srgb,var(--green) 10%,transparent);font-size:13px;line-height:1.5}.usr-login-admin{display:grid;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r);font-size:13px}.usr-login-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.pl-code{font-family:var(--mono, monospace);font-size:12.5px;color:var(--text2);white-space:nowrap}.pl-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--purple) 45%,transparent);background:color-mix(in srgb,var(--purple) 12%,transparent);color:var(--purple);font-size:11.5px;white-space:nowrap}.pl-table .pl-detail{max-width:44ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-table .pl-next{white-space:nowrap;font-size:12px}.pl-table tr.pl-inactive td{opacity:.6}.pl-table td.pl-loss{color:var(--red)}.pl-status{display:inline-block;padding:2px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);font-size:12px;white-space:nowrap}.pl-status.is-off{border-color:var(--border2);background:var(--bg3);color:var(--text2)}.modal.pl-modal{max-width:860px}.modal.pl-groups{max-width:720px}.modal.pl-import{max-width:920px}.pl-fieldset{border:0;margin:0;padding:0;min-width:0}.pl-sub{margin-top:16px}.pl-flags{margin-top:14px}.pl-flags .leave-check{display:block;margin-bottom:6px}.pl-qty{width:92px;text-align:right}.pl-parts-hint{margin-top:0}.pl-part-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.pl-part-add>:first-child{flex:1 1 280px;min-width:0}.pl-parts-sum{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding:10px 12px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);font-size:13px}.pl-parts-table input,.pl-groups-table input:not([type=checkbox]){min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.pl-groups-table td:first-child input{width:100%}.pl-sched-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.pl-sched-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);border-radius:var(--r);background:color-mix(in srgb,var(--amber) 8%,transparent);font-size:13px}.pl-sched-form{margin-top:8px}.pl-history-table{font-size:13px}.modal-ov.pl-picker-ov{z-index:90}.modal.pl-picker{max-width:900px}.pl-picker-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.pl-picker-filters .sales-quote-seg{margin-bottom:0}.pl-picker-list{max-height:min(52vh,520px);overflow-y:auto}.pl-picker-table tbody tr{cursor:pointer}.pl-picker-table tr.pl-picked td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.pl-picker-table td:first-child{width:34px}.pl-picker-sum{font-size:13px}.sales-price-hint{display:block;margin-top:3px;font-size:11.5px;color:var(--text2)}.sales-price-hint.is-warn{color:var(--amber);font-weight:600}.pl-import-hint{margin-top:0}.pl-import-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.pl-import-counts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;padding:0}.pl-import-counts li{padding:6px 12px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);font-size:13px}.pl-import-counts li.is-create{border-color:color-mix(in srgb,var(--green) 45%,transparent)}.pl-import-counts li.is-update{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.pl-import-counts li.is-error{border-color:var(--red);color:var(--red)}.pl-import-rows{max-height:min(40vh,380px);overflow-y:auto;font-size:13px}.pl-import-rows tr.pl-import-error td{color:var(--red)}.pl-import-rows tr.pl-import-same td{opacity:.6}.pl-import-reason{margin-top:12px}.pl-doc-table{font-size:9.5pt}.pl-doc-table td{vertical-align:top}.pl-doc-table .pl-doc-code{width:22mm;font-family:var(--mono, monospace);font-size:8.5pt;white-space:nowrap}.pl-doc-table .pl-doc-unit{width:16mm;white-space:nowrap}.pl-doc-table .doc-num{width:21mm;text-align:right;white-space:nowrap}.pl-doc-table tr.pl-doc-cat th{text-align:left;font-size:10.5pt;background:#e6ebf5;color:#111}.pl-doc-table tr.pl-doc-group td{font-weight:700;background:#f4f6fa;color:#111}.pl-doc-detail{white-space:pre-line}.pl-import-counts li.dimp-is-warn{border-color:var(--amber);color:var(--amber)}.dimp-skip{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13px}.dimp-warn{color:var(--amber);white-space:nowrap}.pl-import-rows td .dimp-warn{white-space:normal}.proj-page-head-row{display:flex;align-items:flex-start;gap:14px}.proj-page-head-icon{flex-shrink:0;color:var(--accent2);margin-top:4px}.proj-filter-caption{display:inline-flex;align-items:center;gap:6px}.proj-filter-caption-icon{flex-shrink:0;color:var(--text3)}.proj-modal-h-with-icon{align-items:flex-start}.proj-modal-h-title-block{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.proj-modal-h-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r2);background:#5b8df51f;color:var(--accent2);flex-shrink:0}.proj-modal-h-icon-warn{background:#f871711f;color:#f87171}.proj-status-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border2)}.proj-status-active{border-color:#22c55e73;background:#22c55e1a;color:var(--green)}.proj-status-hold{border-color:#eab30873;background:#eab3081a;color:#ca8a04}.proj-status-done{border-color:#5b8df573;background:#5b8df51a;color:var(--accent2)}.proj-status-default{color:var(--text2)}.proj-manage-opt-link{display:inline-flex;align-items:center;gap:5px}.proj-manage-opt-icon{flex-shrink:0;color:var(--accent2);opacity:.9}.proj-modal-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}.proj-modal-tabs button{padding:6px 12px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--surface2);color:var(--text2);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.proj-modal-tabs button:hover{border-color:var(--border);color:var(--text)}.proj-modal-tabs button.is-active{border-color:#5b8df573;background:#5b8df51f;color:var(--accent2)}.proj-financial-intro{margin:0;font-size:12px;color:var(--text3);line-height:1.45}.proj-tab-panel.proj-tab-files{min-height:120px}.proj-attach-in-tab{border-top:none;padding-top:0;margin-top:0}.proj-num{font-family:var(--mono);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.proj-value-money-input{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.proj-attach-input-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.proj-attach-block{border-top:1px solid var(--border);padding-top:12px;margin-top:4px}.proj-attach-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.proj-attach-head-label{font-weight:600;font-size:13px;color:var(--text2)}.proj-modal-file-input-sr-only{position:fixed;width:.01px;height:.01px;opacity:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0;padding:0;margin:0;white-space:nowrap}.proj-attach-file-label{cursor:pointer;display:inline-flex;align-items:center;gap:5px;margin:0}.proj-attach-hint,.proj-attach-empty{font-size:12px;color:var(--text3);line-height:1.45;margin:0}.proj-attach-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.proj-attach-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3)}.proj-attach-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;flex:1}.proj-attach-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:4px;background:var(--bg4);color:var(--text3);flex-shrink:0}.proj-attach-badge-img{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent2)}.proj-attach-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%}.proj-attach-size{font-size:11px;color:var(--text3);font-family:var(--mono);flex-shrink:0}.proj-attach-actions{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0}.proj-attach-thumb-msg{font-size:11px;color:var(--text3);flex-shrink:0;min-width:4.5rem}.proj-attach-thumb-fallback{flex-shrink:0;padding:4px 8px;font-size:11px;font-weight:600;color:var(--accent2);background:#5b8df51f;border:1px solid rgba(91,141,245,.35);border-radius:var(--r2);cursor:pointer}.proj-attach-thumb-fallback:disabled{opacity:.5;cursor:not-allowed}.proj-attach-thumb-btn{flex-shrink:0;padding:0;border:1px solid var(--border2);border-radius:var(--r2);background:var(--surface2);cursor:pointer;overflow:hidden;line-height:0}.proj-attach-thumb-btn:disabled{opacity:.55;cursor:not-allowed}.proj-attach-thumb-img{display:block;width:56px;height:56px;object-fit:cover}.proj-attach-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#0000008c}.proj-attach-preview-panel{max-width:min(96vw,900px);max-height:min(92vh,900px);display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:var(--r2);background:var(--surface);border:1px solid var(--border2);box-shadow:0 16px 48px #00000059}.proj-attach-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.proj-attach-preview-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.proj-attach-preview-body{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center;overflow:auto;border-radius:var(--r2);background:var(--bg3);border:1px solid var(--border)}.proj-attach-preview-img{display:block;max-width:100%;max-height:min(78vh,760px);width:auto;height:auto;object-fit:contain}.proj-attach-preview-err{margin:0;font-size:13px;color:var(--text3)}.proj-code-err{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--amber)}.proj-attach-readonly{margin-top:12px}.proj-attach-readonly-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.proj-attach-readonly-btn{width:100%;padding:5px 8px;text-align:left;font:inherit;font-size:12px;color:var(--accent, #3b82f6);background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-attach-readonly-btn:hover:not(:disabled){background:var(--bg2)}.tabs{display:flex;align-items:center;min-width:0}.tab{display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;color:var(--text2);font:inherit;cursor:pointer;white-space:nowrap}.tab:hover{color:var(--text)}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--r)}.tab-icon{display:inline-flex;opacity:.85}.tab-count{min-width:18px;padding:0 6px;border-radius:999px;background:var(--bg4);color:var(--text2);font-size:11.5px;font-weight:700;line-height:18px;text-align:center}.tab-count-accent{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent2)}.tab-count-warn{background:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--amber)}.tab-count-danger{background:color-mix(in srgb,var(--red) 22%,transparent);color:var(--red)}.tab-dot{width:6px;height:6px;border-radius:50%;background:var(--red)}.tabs-page{gap:18px;margin:0 0 16px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}.tabs-page::-webkit-scrollbar{display:none}.tabs-page .tab{padding:9px 2px 11px;font-size:14px;box-shadow:inset 0 -2px 0 transparent}.tabs-page .tab.is-active{color:var(--text);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.tabs-page .tab.is-active .tab-count{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent2)}.tabs-section{gap:2px;margin:0 18px 4px;padding:3px;align-self:flex-start;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg);overflow-x:auto;scrollbar-width:none}.tabs-section::-webkit-scrollbar{display:none}.tabs-section .tab{padding:6px 13px;font-size:13px;border-radius:var(--r)}.tabs-section .tab.is-active{background:var(--bg3);color:var(--text);font-weight:600}@media (max-width: 768px){.tabs-page{gap:14px}.tabs-page .tab{font-size:13.5px}.tabs-section{margin:0 12px 4px}}.tag-chip{--tag-h: 214;display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border-radius:999px;border:1px solid hsl(var(--tag-h) 70% 60% / .35);background:hsl(var(--tag-h) 70% 55% / .14);color:hsl(var(--tag-h) 75% 78%);font-family:var(--sans);font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=light] .tag-chip{color:hsl(var(--tag-h) 65% 32%);background:hsl(var(--tag-h) 70% 50% / .1)}.tag-chip-btn{cursor:pointer;transition:background .15s,border-color .15s}.tag-chip-btn:hover,.tag-chip-btn.is-active{background:hsl(var(--tag-h) 70% 55% / .28);border-color:hsl(var(--tag-h) 70% 55% / .7)}.tag-chip-add{border-style:dashed}.tag-chips{display:inline-flex;flex-wrap:wrap;gap:4px;min-width:150px;max-width:260px}.tag-more{font-size:11px;color:var(--text3);align-self:center}.tag-empty{color:var(--text3)}.tag-input-wrap{position:relative;display:flex;flex-direction:column;gap:6px}.tag-input{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:5px 8px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);cursor:text}.tag-input:focus-within{border-color:var(--accent)}.tag-input.is-disabled{opacity:.6;cursor:default}.tag-input .tag-chip{font-size:12px;padding:2px 4px 2px 9px}.tag-input input,.form-field .tag-input input{flex:1;min-width:120px;padding:4px 2px;border:none;background:none;color:var(--text);font-family:var(--sans);font-size:13px;outline:none}.tag-chip-x{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:none;color:inherit;font-size:14px;line-height:1;cursor:pointer;opacity:.7}.tag-chip-x:hover{opacity:1;background:hsl(var(--tag-h) 70% 55% / .3)}.tag-suggest{position:absolute;top:42px;left:0;right:0;z-index:20;margin:0;padding:4px;list-style:none;max-height:240px;overflow:auto;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg2);box-shadow:0 8px 24px #00000040}.tag-suggest li{padding:6px 8px;border-radius:var(--r);font-size:13px;color:var(--text2);cursor:pointer}.tag-suggest li.is-hi{background:var(--bg4);color:var(--text)}.tag-popular{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.tag-popular-label,.tag-hint{font-size:11px;color:var(--text3)}.tag-hint{margin:0}.tag-filter{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.tag-filter select{border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;min-height:var(--field-h-sm);height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.tag-filter select.is-active{border-color:var(--accent);color:var(--text)}.leave-sheet .doc-h3{margin:10px 0 4px}.leave-sheet .doc-table th,.leave-sheet .doc-table td{padding:4px 8px}.leave-sheet .doc-write{height:44px}.leave-sheet .doc-signs{margin-top:24px;break-inside:avoid;page-break-inside:avoid}.leave-sheet .doc-sign-line{height:28px}.leave-sheet .doc-foot{break-before:avoid;page-break-before:avoid}.doc-company-line{margin-top:.5mm;color:#444;font-size:8pt;line-height:1.3}.doc-company-logo{float:left;max-height:12mm;max-width:34mm;margin:0 4mm 1mm 0;object-fit:contain}.doc-head:after{content:"";display:block;clear:both}.cert-frame .doc-company-logo,.lc-cert-head .doc-company-logo{float:none;display:block;margin:0 0 2mm;max-height:16mm;max-width:60mm}.cert-frame .doc-company-logo{margin:0 auto 3mm}.print-layout-pick{display:flex;align-items:center;gap:8px;font-size:13px}.print-layout-pick select{font-size:13px;max-width:280px}.leave-sheet.leave-cancelled{position:relative}.leave-cancel-stamp{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%) rotate(-20deg);padding:6px 36px;border:5px solid rgba(204,0,0,.75);border-radius:10px;color:#cc0000bf;font-size:72px;font-weight:800;letter-spacing:8px;pointer-events:none;z-index:2;-webkit-print-color-adjust:exact;print-color-adjust:exact}.tv-summary{display:flex;flex-wrap:wrap;gap:8px 22px;margin:2px 0 12px}.tv-summary>div{display:flex;align-items:baseline;gap:6px}.tv-summary dt{font-size:12px;color:var(--text2)}.tv-summary dd{margin:0;font-weight:700}.tv-table td{vertical-align:top}.modal.tv-modal{width:100%;max-width:min(1080px,calc(100vw - 32px))}.modal.tv-batch-modal{width:100%;max-width:min(820px,calc(100vw - 32px))}.tv-form .tv-wide{grid-column:1 / -1}.tv-vehicle-meta{margin:-4px 0 0;font-size:12px}.tv-form>label,.tv-form>*{min-width:0}.tv-form input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=range]):not([type=submit]):not([type=button]),.tv-form select,.tv-form textarea{width:100%;max-width:100%;box-sizing:border-box}.tv-check{flex-direction:row;align-items:flex-start;gap:10px;line-height:1.45}.tv-person{align-items:center}.tv-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tv-people{display:flex;flex-wrap:wrap;gap:6px 14px}.tv-person{display:flex;align-items:center;gap:6px;font-weight:400}.tv-form .job-member-field.tv-wide{grid-column:1 / -1}.tv-money{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.tv-exp-table{width:100%;table-layout:auto}.tv-exp-table input,.tv-exp-table select{width:100%;min-width:90px}.tv-exp-table td{vertical-align:top}.tv-exp-table td input+input{margin-top:4px}.tv-totals{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:10px 0 0;border-top:1px solid var(--border2);width:100%}.tv-totals>div{display:flex;align-items:baseline;gap:6px}.tv-totals dt{font-size:12px;color:var(--text2)}.tv-totals dd{margin:0}.tv-files{width:100%}.tv-doc-table{font-size:10pt}.tv-doc-table td{vertical-align:top}@media (max-width: 640px){.tv-exp-table,.tv-exp-table thead,.tv-exp-table tbody,.tv-exp-table tr,.tv-exp-table td{display:block;width:100%}.tv-exp-table thead{display:none}.tv-exp-table tr{border-bottom:1px solid var(--border2);padding-bottom:8px;margin-bottom:8px}.tv-exp-table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--text2)}}.tvset-sub{grid-column:1 / -1;margin:4px 0 0;padding-top:14px;border-top:1px solid var(--border2);font-size:13px;font-weight:600;color:var(--text2)}.tvset-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width: 640px){.tvset-signs{grid-template-columns:1fr}}.tv-voucher-draft-banner{margin:0 0 1rem;padding:.5rem .75rem;border:1px dashed var(--warn, #b45309);color:var(--warn, #b45309);font-weight:600;text-align:center;border-radius:4px}.print-sheet.vf-page{--vf-w: 210mm;--vf-h: 148mm;--vf-pw: var(--vf-w);--vf-ph: var(--vf-h);width:var(--vf-pw);max-width:none;height:var(--vf-ph);min-height:0;padding:0;border-radius:0;flex-shrink:0;align-items:center;font-family:Sarabun,Noto Sans Thai,Arial,sans-serif}.vf-page[data-size=pad]{--vf-w: 177mm;--vf-h: 153mm}.vf-page[data-paper=a4]{--vf-pw: 210mm;--vf-ph: 297mm}.vf-form{--vf-line: #b0305c;--vf-tint: #fbe9ef;position:relative;box-sizing:border-box;width:var(--vf-w);height:var(--vf-h);flex:none;padding:7mm 8mm 6mm;display:flex;flex-direction:column;gap:1.6mm;font-size:9pt;line-height:1.25;color:#111}.vf-form[data-kind=payment]{--vf-line: #1f5fa6;--vf-tint: #e6f0fa}.vf-page[data-size=pad] .vf-form{padding:6mm 6mm 5mm;font-size:8.5pt}.vf-form+.vf-form{border-top:.2mm dashed #999}.vf-head{display:flex;align-items:flex-start;gap:3mm}.vf-head-side{width:46mm;flex:none}.vf-banner{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;width:fit-content;max-width:100%;box-sizing:border-box;line-height:1.3;padding:.6mm 1.5mm;border:.25mm dashed #b45309;border-radius:1mm;color:#b45309;font-size:7.5pt;font-weight:600}.vf-title{flex:1;min-width:0;text-align:center;color:var(--vf-line)}.vf-title h2{margin:0;font-size:15pt;font-weight:700;line-height:1.15}.vf-title-en{font-size:10pt;font-weight:700;letter-spacing:.03em}.vf-org{color:#111;font-size:8pt;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vf-no{border:.3mm solid var(--vf-line);border-radius:1.5mm}.vf-no>div{display:flex;align-items:baseline;gap:2mm;padding:.9mm 2mm;white-space:nowrap}.vf-no>div+div{border-top:.3mm solid var(--vf-line)}.vf-no span{color:var(--vf-line)}.vf-no strong{flex:1;text-align:right}.vf-pageno{margin-top:.6mm;font-size:7.5pt;text-align:right;color:#555}.vf-box{border:.3mm solid var(--vf-line);border-radius:1.5mm;padding:.8mm 2.5mm 1.4mm}.vf-row{display:flex;align-items:flex-end;gap:3mm;margin-top:.8mm}.vf-f{flex:1;min-width:0;display:flex;align-items:flex-end;gap:1.5mm}.vf-f-fixed{flex:none}.vf-l{flex:none;white-space:nowrap;color:var(--vf-line);line-height:1.1}.vf-l small{display:block;font-size:6.5pt;color:#444}.vf-v{flex:1;min-width:0;min-height:4.2mm;padding:0 1mm;border-bottom:.25mm dotted var(--vf-line);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vf-v-sign{min-height:6mm;font-weight:400;font-size:8pt;display:flex;align-items:flex-end;justify-content:center}.vf-cb{display:inline-block;flex:none;width:3.2mm;height:3.2mm;border:.3mm solid var(--vf-line);font-size:8pt;font-weight:700;line-height:2.8mm;text-align:center;margin-bottom:.4mm}.vf-note{font-size:7.5pt;margin-top:1mm}.vf-table-wrap{flex:1;min-height:0}.vf-table{width:100%;height:100%;border-collapse:collapse;table-layout:fixed}.vf-table th,.vf-table td{border:.3mm solid var(--vf-line);padding:0 1.5mm;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.vf-table th{background:var(--vf-tint);color:var(--vf-line);font-weight:700;text-align:center;line-height:1.15;padding:.5mm 1mm;-webkit-print-color-adjust:exact;print-color-adjust:exact}.vf-table th small{display:block;font-size:6.5pt;font-weight:600}.vf-table tbody td{height:6mm;border-top-color:var(--vf-tint);border-bottom-color:var(--vf-tint)}.vf-table tbody tr:last-child td{border-bottom-color:var(--vf-line)}.vf-num{text-align:right;font-variant-numeric:tabular-nums}.vf-table tfoot td{height:7mm}.vf-words{display:flex;align-items:center;gap:2mm}.vf-words-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600}.vf-total-l{flex:none;text-align:right;color:var(--vf-line);font-weight:700;line-height:1.05}.vf-total-l small,.vf-words small{display:block;font-size:6pt;font-weight:400;color:#444;line-height:1.05}.vf-table tfoot .vf-num{font-weight:700}.vf-signs{display:grid;grid-template-columns:1fr 1fr;gap:0 6mm}@media print{@page vf-a5{size:210mm 148mm;margin:0}@page vf-pad{size:177mm 153mm;margin:0}@page vf-a4{size:210mm 297mm;margin:0}.print-portal .print-sheet.vf-page{width:var(--vf-pw)!important;height:calc(var(--vf-ph) - .5mm)!important;min-height:0!important;margin:0;overflow:hidden}.print-portal .vf-page[data-page=vf-a5]{page:vf-a5}.print-portal .vf-page[data-page=vf-pad]{page:vf-pad}.print-portal .vf-page[data-page=vf-a4]{page:vf-a4}}.job-member-field{margin-bottom:4px}.job-member-field-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:8px}.job-member-field-label{font-size:13px;font-weight:600;color:var(--text)}.job-member-field-hint{font-size:11px;color:var(--text3)}.job-member-loading{font-size:12px;color:var(--text2);margin:0 0 8px}.job-member-legacy{margin-bottom:10px;padding:8px 10px;border-radius:8px;border:1px dashed var(--border2);background:var(--bg3)}.job-member-legacy-title{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:6px}.job-member-grid{display:flex;flex-wrap:wrap;gap:8px}.job-member-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;border:1px solid var(--border2);background:var(--bg2);color:var(--text2);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.job-member-chip:hover:not(:disabled){border-color:var(--accent, #3b82f6);color:var(--text)}.job-member-chip-on{border-color:#2563eb8c;background:#2563eb1f;color:#1d4ed8}[data-theme=light] .job-member-chip-on{border-color:#3b6fd98c;background:color-mix(in srgb,var(--accent) 14%,var(--bg2));color:var(--accent3)}.job-member-chip-qa.job-member-chip-on{border-color:#7c3aed80;background:#7c3aed1a;color:#6d28d9}.job-member-chip-legacy{font-weight:600;border-style:dashed}.job-member-chip-locked.job-member-chip-on,.job-member-chip-locked.job-member-chip-legacy{cursor:not-allowed;opacity:.92;border-style:solid;border-color:#f0a83273;box-shadow:0 0 0 1px #f0a8321f}.job-member-chip:disabled{cursor:not-allowed;opacity:.85}.job-member-footer{font-size:11px;color:var(--text3);margin:10px 0 0;line-height:1.45}.onsite-h2{margin:0 0 10px;font-size:15px;font-weight:700}.onsite-status-approved{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.onsite-status-pending{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 40%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}.onsite-status-in_progress{color:var(--teal);border-color:color-mix(in srgb,var(--teal) 40%,transparent);background:color-mix(in srgb,var(--teal) 12%,transparent)}.onsite-status-awaiting_eval{color:var(--purple);border-color:color-mix(in srgb,var(--purple) 40%,transparent);background:color-mix(in srgb,var(--purple) 10%,transparent)}.onsite-status-done{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.onsite-status-rejected{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,transparent);background:color-mix(in srgb,var(--red) 10%,transparent)}.onsite-status-cancelled{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.onsite-score{font-weight:700;color:var(--amber);white-space:nowrap}.onsite-score.is-low{color:var(--red)}.onsite-row{cursor:pointer}.onsite-row:hover td{background:var(--bg3)}.onsite-pre{white-space:pre-wrap;word-break:break-word}.onsite-clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:4px;font-size:12.5px;color:var(--text2)}.onsite-mt{margin-top:6px}.onsite-today{border-color:color-mix(in srgb,var(--teal) 45%,var(--border2))}.onsite-today-list,.onsite-pending{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.onsite-today-list li,.onsite-pending-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r2);background:var(--bg2)}.onsite-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.onsite-days>li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding-bottom:10px;border-bottom:1px dashed var(--border)}.onsite-days ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.onsite-day{font-weight:600}.onsite-day.is-today{color:var(--accent)}.modal.onsite-modal{max-width:720px}.modal.onsite-detail{max-width:860px}.onsite-detail .modal-t{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.onsite-detail-b{display:flex;flex-direction:column;gap:14px}.onsite-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0}.onsite-kv>div{min-width:0}.onsite-kv dt{font-size:11.5px;color:var(--text3)}.onsite-kv dd{margin:2px 0 0;word-break:break-word}.onsite-kv-wide{grid-column:1 / -1}.onsite-sec{border-top:1px solid var(--border);padding-top:12px}.onsite-sec h3{margin:0 0 8px;font-size:14px}.onsite-sec textarea{width:100%}.onsite-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px}.onsite-actions-start{justify-content:flex-start}.onsite-checkins td,.onsite-checkins th{padding:5px 8px}.onsite-checkins a{text-decoration:none}.onsite-team-pick{display:flex;flex-wrap:wrap;gap:4px 14px}.onsite-link-box{display:flex;gap:16px;align-items:flex-start;margin-top:10px;padding:12px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg)}.onsite-link-box img{background:#fff;border-radius:6px;padding:4px;flex-shrink:0}.onsite-link-main{flex:1;min-width:0}.onsite-link-main input{width:100%;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.onsite-eval-result p{margin:6px 0}.onsite-eval-avg{display:flex;align-items:center;gap:8px}.onsite-eval-avg strong{font-size:26px}.onsite-eval-items{list-style:none;margin:6px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 18px}.onsite-eval-items li{display:flex;align-items:center;justify-content:space-between;gap:8px}.onsite-sig-img{display:block;max-width:240px;max-height:90px;background:#fff;border:1px solid var(--border);border-radius:6px;margin-top:6px}.onsite-tiles{display:flex;flex-wrap:wrap;gap:10px}.onsite-tile{display:flex;flex-direction:column;gap:2px;min-width:150px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--r2);background:var(--bg2)}.onsite-tile>strong{font-size:24px}.onsite-tile>span{font-size:12px;color:var(--text2)}.onsite-tile-wide{flex:1;min-width:260px}.onsite-tile-wide ul{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px}.onsite-items-table .leave-in{width:100%;min-width:220px}.stars{display:inline-flex;align-items:center;gap:2px}.star{font-size:22px;line-height:1;color:var(--border3);background:none;border:0;padding:2px;cursor:pointer}span.star{cursor:default;font-size:16px;padding:0}.star.is-on{color:#f5b301}button.star:focus-visible{outline:2px solid var(--accent);border-radius:4px}.star-word{margin-left:6px;font-size:12px;color:var(--text2)}.eval-form{display:flex;flex-direction:column;gap:14px}.eval-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.eval-item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--border)}.eval-item-label{font-weight:600}.eval-agreed{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}.eval-agreed legend{font-weight:600;margin-bottom:6px}.eval-who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.eval-form textarea{width:100%}.sig-pad{border:1px dashed var(--border3);border-radius:var(--r2);background:#fff}.sig-canvas{display:block;width:100%;touch-action:none;cursor:crosshair}.sig-pad-f{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;border-top:1px solid #e5e7ef}.sig-hint{font-size:12px;color:#6b7280}.eval-page{min-height:100vh;padding:24px 16px 40px;background:var(--bg);color:var(--text);font-family:var(--sans)}.eval-card{max-width:640px;margin:0 auto;padding:22px 22px 26px;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r3);box-shadow:0 6px 24px #0000000f}.eval-head h1{margin:4px 0 14px;font-size:20px}.eval-brand{font-weight:800;letter-spacing:.02em;color:var(--accent)}.eval-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0 0 12px;padding:12px;border-radius:var(--r2);background:var(--bg3)}.eval-info dt{font-size:11.5px;color:var(--text3)}.eval-info dd{margin:2px 0 0;font-weight:600}.eval-muted{color:var(--text2);font-size:13px}.eval-submit{width:100%;margin-top:14px;padding:12px;font-size:15px}.eval-done{text-align:center;padding:20px 0}.eval-done-mark{width:56px;height:56px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;font-size:28px;color:#fff;background:var(--green)}.eval-foot{max-width:640px;margin:14px auto 0;text-align:center;font-size:12px;color:var(--text3)}.onsite-sheet .onsite-score-table th,.onsite-sheet .onsite-score-table td{padding:3px 6px}.onsite-sheet .onsite-score-table .doc-small{font-weight:400}.onsite-sheet .doc-signs{align-items:flex-end}.onsite-qr{text-align:center;flex-shrink:0}@media (max-width: 640px){.onsite-table thead{display:none}.onsite-table,.onsite-table tbody,.onsite-table tr,.onsite-table td{display:block;width:100%}.onsite-table tr{padding:8px 0;border-bottom:1px solid var(--border)}.onsite-table td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:2px 0;border:0;text-align:right;white-space:normal}.onsite-table td:before{content:attr(data-label);flex-shrink:0;font-size:12px;color:var(--text3);text-align:left}.onsite-table td:empty{display:none}.onsite-kv,.eval-info,.eval-who{grid-template-columns:1fr}.onsite-days>li{grid-template-columns:1fr;gap:4px}.onsite-link-box{flex-direction:column;align-items:center}.onsite-today-list li,.onsite-pending-item{flex-direction:column;align-items:stretch}.eval-card{padding:16px}.eval-head h1{font-size:18px}}.onsite-team-pick .leave-check,.eval-agreed .leave-check{text-transform:none;letter-spacing:normal;font-size:13.5px;font-weight:400;color:var(--text)}.onsite-sheet .doc-write-line{height:26px}.lc-state-requested{color:var(--purple);border-color:color-mix(in srgb,var(--purple) 40%,transparent);background:color-mix(in srgb,var(--purple) 10%,transparent)}.lc-state-pending{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.lc-state-active{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.lc-state-expiring{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}.lc-state-expired,.lc-state-suspended{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,transparent);background:color-mix(in srgb,var(--red) 10%,transparent)}.lc-state-revoked{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.lc-filters{flex-wrap:wrap;gap:8px 10px}.lc-filters input[type=search],.lc-filters select{min-width:0}.lc-filters input[type=search]{flex:1 1 200px}.lc-filters select,.lc-filters .combobox-wrap{flex:0 1 190px;width:auto;min-width:0;max-width:min(220px,100%)}.lc-filters select.combobox-wrap--entity,.lc-filters .combobox-wrap.combobox-wrap--entity{flex:1 1 320px;max-width:min(380px,100%);min-width:min(260px,100%)}.lc-filters input:focus,.lc-filters select:focus{outline:none;border-color:var(--accent)}.lc-key{font-family:var(--mono, monospace);letter-spacing:.04em;white-space:nowrap}.lc-key-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r);border:1px dashed var(--border3);background:var(--bg3)}.lc-key-box .lc-key{font-size:15px;font-weight:600}.modal.lc-modal{max-width:820px}.lc-actions{display:flex;flex-wrap:wrap;gap:6px}.lc-timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--border2)}.lc-timeline li{position:relative;padding:4px 0 10px 14px;font-size:13.5px}.lc-timeline li:before{content:"";position:absolute;left:-6px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--accent)}.lc-timeline .lc-ev-revoke:before,.lc-timeline .lc-ev-suspend:before,.lc-timeline .lc-ev-rekey:before{background:var(--red)}.lc-timeline .lc-ev-deliver:before,.lc-timeline .lc-ev-activate:before,.lc-timeline .lc-ev-resume:before{background:var(--green)}.lc-ev-h{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.lc-verify.is-invalid .eval-done-mark{background:var(--red)}.lc-report-table td,.lc-report-table th{white-space:nowrap}.lc-cert{border:3px double #1f3b73;padding:10mm 12mm;min-height:250mm;box-sizing:border-box;display:flex;flex-direction:column}.lc-cert-head{display:flex;justify-content:space-between;gap:8mm;align-items:flex-start;border-bottom:1px solid #1f3b73;padding-bottom:4mm;margin-bottom:6mm}.lc-cert-org{font-weight:600;color:#1f3b73}.lc-cert-title{margin:2mm 0 1mm;font-size:20pt;color:#1f3b73}.lc-cert-qr{text-align:center}.lc-cert-lead{margin:2mm 0;text-align:center}.lc-cert-customer{text-align:center;font-size:18pt;font-weight:700;margin:1mm 0 3mm}.lc-cert-table th{width:45mm}.lc-cert-table .lc-key{font-size:13pt;font-weight:700}.lc-cert-terms{margin-top:5mm}.lc-sheet .doc-signs.lc-cert-signs{margin-top:auto;display:flex;justify-content:flex-end}.lc-cert-signs .doc-sign{flex:none;width:75mm}.lc-cert-verify{text-align:center;margin-top:4mm}.lc-req-kind{margin:3mm 0;line-height:2}.lc-opt{margin-right:8mm;white-space:nowrap}.lc-hist td{vertical-align:top}.lc-hist td:first-child,.lc-hist td:last-child{white-space:nowrap}.modal.in-modal,.modal.in-detail{max-width:900px}.in-fieldset{border:1px solid var(--border2);border-radius:var(--r);padding:8px 12px 12px;margin:0 0 12px;min-width:0}.in-fieldset legend{padding:0 6px;font-size:13px;font-weight:600;color:var(--text2)}.in-dev-edit td{padding:4px}.in-dev-edit input,.ck-items input:not([type=checkbox]),.ck-items select,.in-check-val,.in-check-note{width:100%;min-width:0;min-height:32px;padding:5px 8px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-family:var(--sans);font-size:13px;box-sizing:border-box}.in-dev-edit input[type=date]{min-width:130px}.in-dev-edit input:focus,.ck-items input:focus,.ck-items select:focus,.in-check-val:focus,.in-check-note:focus{outline:none;border-color:var(--accent)}.in-tpl-pick{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.ck-items td{padding:4px;vertical-align:middle}.ck-items td:nth-child(2){width:55%}.ck-c-req{text-align:center}.ck-active{margin-top:22px}.in-state-open{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.in-state-closed{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}.in-state-confirmed{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.in-state-moved,.in-state-uninstalled{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.leave-flag.in-kind-software{color:var(--accent)}.leave-flag.in-kind-hardware{color:var(--purple)}.leave-flag.in-outdated,.leave-flag.in-w-warn,.leave-flag.in-seat-full{color:var(--amber);margin-left:6px}.leave-flag.in-fail,.leave-flag.in-w-bad,.leave-flag.in-seat-over{color:var(--red);margin-left:6px}.leave-flag.in-w-ok,.leave-flag.in-seat-ok{color:var(--green)}.in-h3{margin:0}.in-lc-list,.in-report-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.in-lc-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:6px 10px;border:1px solid var(--border2);border-radius:var(--r);font-size:13.5px}.in-lc-list li .leave-status{margin-left:auto}.in-report-list li{font-size:13.5px}.in-branch-group+.in-branch-group{margin-top:6px}.in-branch-h{margin:4px 0 6px;font-size:13.5px}.in-check-group{border:1px solid var(--border2);border-radius:var(--r);padding:8px 10px;margin-bottom:10px}.in-check-tpl{font-weight:600;margin-bottom:4px}.in-check-sec-h{font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 4px}.in-check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.in-check-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:6px 8px 6px 10px;border-left:3px solid var(--border2);background:var(--bg3);border-radius:0 var(--r) var(--r) 0}.in-check-list li.is-open{border-left-color:var(--amber)}.in-check-list li.is-fail{border-left-color:var(--red)}.in-check-title{font-size:13.5px;min-width:0}.in-req{color:var(--red);margin-left:3px}.in-check-ctl{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.in-check-val{width:180px}.in-check-note{grid-column:1 / -1}.in-seg{display:inline-flex;border:1px solid var(--border2);border-radius:var(--r);overflow:hidden}.in-seg-b{border:0;border-left:1px solid var(--border2);background:transparent;color:var(--text2);font-family:var(--sans);font-size:12.5px;padding:5px 10px;min-height:30px;cursor:pointer}.in-seg-b:first-child{border-left:0}.in-seg-b:disabled{cursor:default}.in-seg-b.in-seg-pass.is-on{background:var(--green);color:#fff}.in-seg-b.in-seg-fail.is-on{background:var(--red);color:#fff}.in-seg-b.in-seg-na.is-on{background:var(--text3);color:#fff}.in-detail-f{flex-wrap:wrap}@media (max-width: 640px){.in-check-list li{grid-template-columns:minmax(0,1fr)}.in-check-ctl{justify-content:flex-start}.in-check-val{width:100%}}.in-pub-group{margin:14px 0}.in-pub-h{font-size:15px;margin:0 0 4px}.in-pub-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.in-pub-list li{display:flex;gap:8px;align-items:baseline;font-size:14px}.in-pub-title{min-width:0;overflow-wrap:anywhere}.leave-flag.in-r-pass{color:var(--green)}.leave-flag.in-r-fail{color:var(--red)}.leave-flag.in-r-value{color:var(--accent)}.leave-flag.in-r-na,.leave-flag.in-r-none{color:var(--text3)}.in-pub-form{margin-top:16px}.in-pub-agree{margin:10px 0}.in-sheet .in-doc-machine{table-layout:fixed}.in-doc-machine .in-col-h{width:32mm}.in-doc-checks .in-c-no{width:8mm;text-align:center}.in-doc-checks .in-c-box{width:13mm;text-align:center}.in-doc-checks .in-c-note{width:55mm}.in-doc-checks .in-doc-sec td{font-weight:700;background:#f1f3f7}.in-doc-accept{margin-top:4mm}.in-sign-online{margin-top:1mm;font-size:9pt;color:#1f7a3d;text-align:center}.in-doc-transfer th[scope=row]{width:35mm}.in-doc-register{font-size:9pt}.in-doc-register td{vertical-align:top}.pp-empty{text-align:center;color:var(--text2);padding:28px 12px!important}.pp-sub{color:var(--text2);font-size:12px}.pp-bad{color:var(--red);font-weight:600}.pp-nowrap{white-space:nowrap}.pp-back{display:inline-flex;align-items:center;gap:2px;color:var(--text2);font-size:12.5px;text-decoration:none;margin-bottom:2px}.pp-back:hover{color:var(--accent2)}.pp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.pp-kpi{display:flex;flex-direction:column;gap:2px;text-align:left;font:inherit;color:var(--text);background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:10px 14px}.pp-kpi-btn{cursor:pointer}.pp-kpi-btn:hover{border-color:var(--border3)}.pp-kpi-n{font-size:24px;font-weight:700;line-height:1.2}.pp-kpi-n-sm{font-size:15px;line-height:1.7}.pp-kpi-l{font-size:12px;color:var(--text2)}.pp-kpi-red{border-color:var(--red)}.pp-kpi-red .pp-kpi-n{color:var(--red)}.pp-kpi-amber{border-color:var(--amber)}.pp-kpi-amber .pp-kpi-n{color:var(--amber)}.pp-chip{display:inline-block;font-size:11.5px;font-weight:600;line-height:1;padding:4px 8px;border-radius:999px;border:1px solid transparent;white-space:nowrap;vertical-align:middle}.pp-health-green,.pp-st-completed{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.pp-health-yellow,.pp-st-at_risk{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}.pp-health-red,.pp-st-delayed{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,transparent);background:color-mix(in srgb,var(--red) 12%,transparent)}.pp-health-none,.pp-st-not_started{color:var(--text2);border-color:var(--border2);background:var(--bg3)}.pp-st-in_progress{color:var(--accent2);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.pp-progress{position:relative;display:inline-flex;align-items:center;width:110px;height:16px;border-radius:8px;background:var(--bg4);overflow:hidden;vertical-align:middle}.pp-progress i{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--accent) 70%,transparent)}.pp-progress b{position:relative;width:100%;text-align:center;font-size:11px;font-weight:600;color:var(--text)}.pp-row-link{cursor:pointer}.pp-row-link:hover td,.pp-task-row:hover td{background:var(--bg3)}.pp-proj-name{font-weight:600}.pp-seg{display:inline-flex;border:1px solid var(--border2);border-radius:var(--r1);overflow:hidden}.pp-seg button{font:inherit;font-size:12.5px;padding:6px 12px;background:var(--bg2);color:var(--text2);border:0;cursor:pointer}.pp-seg button+button{border-left:1px solid var(--border2)}.pp-seg button.on{background:var(--accent);color:#fff}.pp-init{padding:20px}.pp-init h2{margin:0 0 6px;font-size:16px}.pp-init-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:12px}.pp-init-row .form-field{min-width:240px}.pp-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.pp-check{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text2);cursor:pointer}.pp-undo{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:10px;border:1px solid var(--border2);border-left:3px solid var(--accent);border-radius:var(--r1);background:var(--bg2);font-size:13px}.pp-tasks td{vertical-align:middle}.pp-phase-row td{background:var(--bg3);padding:6px 10px}.pp-phase{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pp-task-row{cursor:pointer}.pp-critical-row td:first-child{box-shadow:inset 3px 0 0 var(--red)}.pp-task-title{font-weight:500}.pp-pct{width:64px;padding:3px 6px;text-align:right}.pp-row-on td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.pp-slip{margin-top:12px;padding:14px 16px}.pp-slip h3,.pp-settings h3{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:6px}.pp-slip-list{list-style:none;margin:8px 0 0;padding:0}.pp-slip-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.pp-baseline-pick{min-width:220px}.pp-settings{display:grid;gap:12px}.pp-settings .card{padding:14px 16px}.pp-hol-add{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.pp-hol-list{max-height:260px;overflow:auto}.pp-legend{margin:0;padding:8px 12px;font-size:12px;color:var(--text2);border-top:1px solid var(--border)}.pp-kpis-sub{margin-top:-4px}.pu-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--bg4);margin-bottom:10px}.pu-bar i{display:block;height:100%}.pu-pass{background:var(--green)}.pu-fail{background:var(--red)}.pu-rest{background:transparent}.pu-select.pp-st-completed{color:var(--green)}.pu-select.pp-st-delayed{color:var(--red)}.pm-done{color:var(--green)}.pid-preview{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.pid-preview h4{margin:0 0 6px}.pid-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 12px;list-style:none;margin:0 0 8px;padding:0;font-size:13px}.pid-warn{max-height:180px;overflow:auto;margin:6px 0 0;padding-left:18px;font-size:12px;color:var(--text2)}.pp-today{margin:0 0 12px;padding:12px 16px;border-left:3px solid var(--red)}.pp-today h2{margin:0 0 6px;font-size:14px}.pp-today ul{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:4px;font-size:13px}.pp-today a{text-decoration:none;font-weight:600}.pt-tasks{background:var(--bg3)}.pt-tasks ul{margin:0;padding-left:18px;font-size:12.5px}.prr-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.prr-sheet{font-size:13px;line-height:1.5}.prr-title{margin:0 0 4px;font-size:20px}.prr-sub{margin:0 0 2px;color:#333}.prr-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.prr-kpis div{border:1px solid #bbb;padding:6px 10px;border-radius:4px}.prr-kpis b{display:block;font-size:16px}.prr-kpis span{font-size:11px;color:#555}.prr-section{margin-top:14px;break-inside:avoid}.prr-section ul{margin:4px 0 0;padding-left:20px}.prr-empty{margin:4px 0 0;color:#666}.pp-cell{display:inline-flex;align-items:center;gap:6px}.pp-celllink{text-decoration:none;color:inherit}.pp-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.pp-dot-green{background:var(--green)}.pp-dot-yellow{background:var(--amber)}.pp-dot-red{background:var(--red)}.pp-dot-none{background:var(--text3)}.pp-health-closed{color:var(--text2);border-color:var(--border2);background:var(--bg3)}.pp-dot-closed{background:var(--text3)}.pp-banner{margin:0 0 12px;padding:10px 14px;border-left:3px solid var(--amber);background:color-mix(in srgb,var(--amber) 10%,transparent);border-radius:var(--r1);font-size:13px}.pp-banner-soft{border-left-color:var(--text3);background:var(--bg3)}.pg-wrap{overflow:auto;max-height:calc(100vh - 330px);min-height:220px;background:var(--bg)}.pg-grid{display:flex;position:relative}.pg-left{position:sticky;left:0;z-index:4;width:280px;flex:none;background:var(--bg);border-right:1px solid var(--border2)}.pg-right{position:relative;flex:none}.pg-head{position:sticky;top:0;z-index:3;height:44px;background:var(--bg2);border-bottom:1px solid var(--border2)}.pg-left-head{z-index:5;display:flex;align-items:center;padding:0 10px;font-size:12px;font-weight:600;color:var(--text2)}.pg-tick-row{position:relative;height:22px}.pg-tick{position:absolute;top:0;height:22px;line-height:22px;font-size:10.5px;color:var(--text2);text-align:center;border-left:1px solid var(--border);overflow:hidden;white-space:nowrap}.pg-tick-top{text-align:left;padding-left:4px;font-weight:600;color:var(--text)}.pg-tick-major{color:var(--text)}.pg-row{display:flex;align-items:center;gap:6px;width:100%;padding:0 10px;box-sizing:border-box;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-size:12.5px;text-align:left}.pg-row-phase{background:var(--bg3);font-weight:600}.pg-row-task{cursor:pointer}.pg-row-task:hover{background:var(--bg3)}.pg-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pg-seq{width:20px;color:var(--text3);font-size:11px;text-align:right;flex:none}.pg-pct{font-size:11px;color:var(--text2)}.pg-dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.pg-body{position:relative}.pg-rowline{position:absolute;left:0;height:1px;background:var(--border)}.pg-weekend{position:absolute;top:0;background:color-mix(in srgb,var(--text) 4%,transparent)}.pg-vline{position:absolute;top:0;width:0;border-left:2px dashed var(--red);z-index:1;pointer-events:auto}.pg-golive{border-left:2px solid var(--green)}.pg-deps{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;color:var(--text2);z-index:1}.pg-deps polyline{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.7}.pg-phase-bar{position:absolute;height:8px;border-radius:2px;opacity:.55}.pg-baseline{position:absolute;height:4px;border-radius:2px;background:var(--text3);opacity:.7}.pg-bar{position:absolute;z-index:2;border-radius:4px;box-sizing:border-box;overflow:hidden;border:1px solid transparent;touch-action:none;-webkit-user-select:none;user-select:none;outline-offset:2px}.pg-bar.pg-editable{cursor:grab}.pg-bar.pg-dragging{cursor:grabbing;opacity:.85;box-shadow:0 2px 10px #00000059;z-index:3}.pg-fill{position:absolute;inset:0 auto 0 0;background:#ffffff47;pointer-events:none}.pg-not_started,.pg-lg.pg-not_started{background:#7a86a8}.pg-in_progress,.pg-lg.pg-in_progress{background:var(--accent)}.pg-completed,.pg-lg.pg-completed{background:var(--green)}.pg-at_risk,.pg-lg.pg-at_risk{background:var(--amber)}.pg-delayed,.pg-lg.pg-delayed{background:var(--red)}.pg-critical{border-color:var(--text);box-shadow:0 0 0 1px var(--red)}.pg-critical-lg{background:transparent!important;border:1px solid var(--text);box-shadow:0 0 0 1px var(--red)}.pg-blocked{background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.28) 0 4px,transparent 4px 8px);outline:2px solid var(--red);outline-offset:0}.pg-locked{opacity:.55;cursor:default!important}.pg-ms{border-radius:2px;transform:rotate(45deg)}.pg-ms .pg-fill{display:none}.pg-handle{position:absolute;top:0;bottom:0;width:7px;cursor:ew-resize;z-index:4}.pg-handle-l{left:0}.pg-handle-r{right:0}.pg-lg{display:inline-block;width:12px;height:8px;border-radius:2px;margin:0 2px 0 8px;vertical-align:middle}.ptm{max-width:640px;width:100%}.ptm-hint{margin:4px 0 0;font-size:12px;color:var(--text2)}.ptm-intro{margin:0 0 12px}.ptm-heading{margin:0;font-size:16px;font-weight:600}.ptm-editor-head{margin:0 0 12px}.ptm-pic{display:grid;gap:6px;grid-template-columns:1fr 1fr}.ptm-clear{display:flex;align-items:center;gap:4px}.ptm-deps{margin-top:14px;padding-top:10px;border-top:1px solid var(--border)}.ptm-deps h3{margin:0 0 6px;font-size:13.5px}.ptm-deps h4{margin:8px 0 4px;font-size:12px;color:var(--text2);font-weight:600}.ptm-dep-list{list-style:none;margin:0;padding:0}.ptm-dep{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:12.5px}.ptm-dep-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ptm-dep-type{color:var(--text2);font-family:var(--mono)}.ptm-lag{width:64px}.ptm-dep-add{display:grid;grid-template-columns:1fr auto 64px auto;gap:6px;margin-top:8px;align-items:center}.modal-ov-nested{z-index:1200}.psd{max-width:720px;width:100%}.psd-lead{margin:0 0 8px}.psd-golive{margin:0 0 8px;padding:8px 10px;border-left:3px solid var(--amber);background:color-mix(in srgb,var(--amber) 10%,transparent);font-size:13px}.psd-ok{margin:0 0 8px;font-size:13px;color:var(--green)}.psd-list{max-height:260px;overflow:auto;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--r1)}@media (max-width: 640px){.ptm-pic{grid-template-columns:1fr}.ptm-dep-add{grid-template-columns:1fr 1fr}.pg-left{width:150px}.pg-wrap{max-height:calc(100vh - 280px)}}.ptp-table input:not([type=checkbox]),.ptp-table select{width:100%;min-width:80px}.ptp-table input.ptp-num{width:84px;min-width:0}.ptp-table td:nth-child(2) input{min-width:220px}.pef-add{display:grid;grid-template-columns:minmax(130px,170px) 70px minmax(110px,160px) 1fr auto;gap:6px;align-items:center}.pef-add .pef-md{width:70px}.pef-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.pef-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap}@media (max-width: 640px){.pef-add{grid-template-columns:1fr 1fr}}.prm{margin-top:12px}.prm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 12px}.prk-heat{display:inline-grid;gap:4px;margin:4px 0 12px}.prk-row{display:grid;grid-template-columns:70px repeat(3,56px);gap:4px;align-items:center}.prk-tick,.prk-axis{font-size:12px;color:var(--muted, #8a93a6);text-align:center}.prk-axis-y{text-align:left}.prk-cell{height:40px;border-radius:6px;border:1px solid transparent;font-weight:700;cursor:pointer;color:inherit}.prk-cell.empty{opacity:.35;cursor:default}.prk-cell.on{outline:2px solid var(--accent, #4f8cff)}.prk-high{background:color-mix(in srgb,#e5484d 35%,transparent)}.prk-medium{background:color-mix(in srgb,#f5a524 35%,transparent)}.prk-low{background:color-mix(in srgb,#30a46c 30%,transparent)}.pp-portfolio{padding:12px 16px;margin-bottom:12px}.pp-portfolio>summary{cursor:pointer}.pp-port-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:10px}.pp-port-grid h3{margin:0 0 6px;font-size:13px}.pp-port-grid ul{margin:0;padding-left:18px}.pp-port-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:color-mix(in srgb,var(--muted, #8a93a6) 25%,transparent)}.pp-port-green{background:var(--green, #30a46c)}.pp-port-yellow{background:var(--amber, #f5a524)}.pp-port-red{background:var(--red, #e5484d)}.pp-health-why{margin:2px 0 0}.pcm-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:8px}.pcm-list li{padding:6px 8px;border-radius:6px;border:1px solid color-mix(in srgb,var(--muted, #8a93a6) 25%,transparent)}.pcm-list li.pcm-unread{border-color:var(--accent, #4f8cff);background:color-mix(in srgb,var(--accent, #4f8cff) 8%,transparent)}.pcm-head{display:flex;gap:8px;align-items:center}.pcm-head .btn{margin-left:auto}.pcm-body{margin:4px 0 0;white-space:pre-wrap;word-break:break-word}.pcm-add{display:flex;gap:6px;align-items:flex-end}.pcm-add textarea{flex:1}.ptm .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ptm .form-field{min-width:0}.ptm input,.ptm select,.ptm textarea{max-width:100%;box-sizing:border-box}@media (max-width: 520px){.ptm .form-grid{grid-template-columns:minmax(0,1fr)}.pef-add{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pef-add .pef-md{width:auto}.pcm-add{flex-direction:column;align-items:stretch}.ptm-dep-add{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ptm-dep-add>*{min-width:0}}@media (max-width: 640px){.pp-kpis{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(150px,46%);overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:4px}.pp-kpi{scroll-snap-align:start}}@media (pointer: coarse){.pg-handle{width:14px}}.pp-bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;position:sticky;top:0;z-index:5;margin:0 0 8px;padding:8px 12px;border-radius:var(--r2);border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg2))}.pp-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}.pp-filter input[type=search]{flex:1 1 200px;min-width:0}.pp-filter select{max-width:100%}.pp-row-new>td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.pg-deps polyline.pg-dep-ghost{stroke-dasharray:4 3;opacity:.45}.jg-color-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--border2);vertical-align:middle;margin-right:6px}.jg-color-swatch-empty{background:var(--surface2)}.jg-color-row{display:flex;align-items:stretch;gap:10px}.jg-color-picker{width:44px;min-width:44px;height:38px;padding:2px;border:1px solid var(--border2);border-radius:8px;background:var(--surface);cursor:pointer;box-sizing:border-box}.jg-color-picker::-webkit-color-swatch-wrapper{padding:2px}.jg-color-picker::-webkit-color-swatch{border:none;border-radius:5px}.jg-color-picker::-moz-color-swatch{border:none;border-radius:5px}.jg-color-hex{flex:1;min-width:0}.jg-color-hint{margin:6px 0 0;font-size:12px;color:var(--text2);line-height:1.4}.job-priority-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border2)}.job-priority-high{border-color:#f8717173;background:#f871711a;color:#f87171}.job-priority-medium{color:var(--text2)}.job-priority-low{border-color:#94a3b866;background:#94a3b814;color:var(--text3)}.job-form-json-hint{font-size:11px;color:var(--text3);margin-top:4px}.job-master-toolbar{flex-wrap:wrap;align-items:flex-start;gap:14px 18px}.job-master-toolbar-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:1;min-width:min(100%,320px)}.job-master-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px;width:100%;max-width:960px}@media (max-width: 900px){.job-master-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.job-master-filter-grid{grid-template-columns:1fr}}.job-master-filter{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}.job-master-filter-label{font-weight:600;text-transform:uppercase;letter-spacing:.06em;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.job-master-filter select,.job-master-filter .combobox-wrap{width:100%;min-width:0}.job-master-filter select:focus{outline:none;border-color:var(--accent)}.job-master-actions{flex-wrap:wrap;justify-content:flex-end}.job-kpi-chips{display:flex;flex-wrap:wrap;gap:6px}.job-kpi-chip{display:inline-flex;align-items:baseline;gap:6px;padding:3px 10px;border:1px solid var(--border2);border-radius:999px;background:var(--surface);font-size:12px;color:var(--text2);white-space:nowrap}.job-kpi-chip b{font-size:13px;color:var(--text);font-variant-numeric:tabular-nums}.job-kpi-total{border-color:var(--accent, #3b82f6)}.job-kpi-active b{color:#22c55e}.job-kpi-done b{color:#14b8a6}.job-kpi-high b{color:#ef4444}.job-kpi-overdue b{color:#b45309}.job-master-compact{align-items:center;justify-content:flex-start;margin-bottom:12px}.job-master-compact .job-master-filter-grid{flex:1;max-width:none;width:auto;grid-template-columns:repeat(5,minmax(0,1fr))}.job-master-compact .job-master-filter{flex-direction:row;align-items:center;gap:6px}.job-master-compact .job-master-filter-label{min-height:0;padding:0;text-transform:none;letter-spacing:0;white-space:nowrap;color:var(--text2)}.job-master-compact .job-master-filter>:not(.job-master-filter-label){flex:1}.job-master-table .job-master-cell-name{max-width:280px}.job-master-name-title{display:block;font-weight:600}.job-master-name-desc{font-size:12px;color:var(--text2);margin-top:4px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-master-proj-stack{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.job-master-proj-code{font-size:11px;padding:2px 8px;border-radius:6px;background:var(--surface2);border:1px solid var(--border2);color:var(--text2)}.job-master-group-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.job-master-group-code{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;border:1px solid var(--border2);background:var(--surface2);color:var(--text)}.job-master-group-name{font-size:12px;color:var(--text2);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-master-cell-deadline{min-width:120px}.job-master-overdue{display:block;font-size:12px;font-weight:600;color:#dc2626}.job-master-done{display:block;font-size:12px;font-weight:600;color:#14b8a6}.job-master-cancelled{display:block;font-size:12px;color:var(--text3)}.job-master-ontrack{display:block;font-size:12px;color:var(--text2)}.job-master-deadline-date{display:block;font-size:11px;color:var(--text3);margin-top:2px}.job-master-team-row{display:flex;flex-wrap:wrap;gap:4px;max-width:140px}.job-master-team-chip{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:28px;padding:0 6px;border-radius:999px;font-size:10px;font-weight:700;background:#3b82f626;color:#2563eb;border:1px solid rgba(59,130,246,.35)}.job-master-team-chip-qa{background:#a855f71f;color:#7c3aed;border-color:#7c3aed59}.job-master-cell-status{min-width:150px}.job-status-break{display:block;height:4px}.job-master-cell-status .job-priority-pill{display:inline-block}.job-modal-tabs{display:flex;gap:0;border-bottom:1px solid var(--border2);margin:-4px 0 16px}.job-modal-tab{padding:10px 16px;font-size:13px;font-weight:600;color:var(--text2);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;border-radius:8px 8px 0 0}.job-modal-tab:hover{color:var(--text);background:var(--surface2)}.job-modal-tab-active{color:var(--accent, #3b82f6);border-bottom-color:var(--accent, #3b82f6)}.job-modal-row-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px;margin-bottom:16px}@media (max-width: 640px){.job-modal-row-3{grid-template-columns:1fr}}.job-md-budget{margin:16px 0 8px;padding:12px 14px;border-radius:10px;background:var(--surface2);border:1px solid var(--border2)}.job-md-budget-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text2);margin-bottom:10px}.job-md-budget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media (max-width: 520px){.job-md-budget-grid{grid-template-columns:1fr}}.job-md-budget-cell{text-align:center;padding:8px;border-radius:8px;background:var(--surface);border:1px solid var(--border2)}.job-md-budget-label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:4px}.job-md-budget-val{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.job-md-budget-dev .job-md-budget-val{color:#2563eb}.job-md-budget-bug .job-md-budget-val{color:#ea580c}.job-md-budget-total .job-md-budget-val{color:#16a34a}.job-md-budget-buffer .job-md-budget-val{color:#7c3aed}.job-modal-status-readonly{cursor:default;max-width:min(100%,260px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-modal-dev-stage-badge{cursor:default;align-self:flex-start;margin-top:4px;border-color:#2563eb59;background:#2563eb14;color:#2563eb}.cust-modal-badges .job-modal-dev-stage-badge--header{align-self:center;margin-top:0}.job-modal-header-dev-stage-caption{font-size:12px;font-weight:500;color:var(--text2);line-height:1.35;max-width:min(100%,220px)}.job-appr-with-stage-block{margin-bottom:4px}.job-appr-with-stage-head{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-bottom:8px}.job-appr-with-stage-col label{font-size:13px;font-weight:600;color:var(--text);display:block;margin-bottom:6px}.job-est-input-readonly{opacity:.85;cursor:not-allowed}.job-next-id-hint{margin:0;font-size:13px;color:var(--text2);line-height:1.5}.job-reject-banner{padding:10px 16px;background:#f0a8321a;border-bottom:1px solid rgba(240,168,50,.35);color:var(--amber);font-size:13px;line-height:1.5}.job-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:6px;border:1px solid var(--border2);border-radius:4px;background:var(--surface2);color:var(--text3);font-size:9px;cursor:pointer;vertical-align:middle;transition:background .1s,color .1s}.job-expand-btn:hover{background:var(--accent, #3b82f6);color:#fff;border-color:transparent}.job-expand-row{background:var(--surface2)}.job-expand-cell{padding:10px 16px 10px 48px;border-bottom:1px solid var(--border2)}.job-expand-content{display:flex;gap:24px;flex-wrap:wrap}.job-expand-section{min-width:200px;flex:1}.job-expand-section-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:8px}.job-expand-member-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.job-expand-member-name{min-width:56px;font-size:11px;font-weight:600;color:var(--text)}.job-expand-bar{flex:1;max-width:120px}.job-expand-pct{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text2);min-width:30px;text-align:right}.job-expand-hrs{font-size:10px;color:var(--text3);min-width:32px;text-align:right}.job-expand-total{font-size:11px;font-weight:600;color:var(--text2);margin-top:6px;padding-top:4px;border-top:1px solid var(--border2)}.job-card-v2{gap:8px}.job-card-progress-row{width:100%}.job-card-progress-label{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--text3);margin-bottom:3px}.job-card-progress-pct{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text2)}.job-card-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.job-card-footer{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:11px;color:var(--text3);margin-top:4px;padding-top:8px;border-top:1px solid var(--border2)}.job-card-edit-btn{margin-left:auto;font-size:11px!important;padding:2px 8px!important;opacity:.65;line-height:1.4}.job-card-edit-btn:hover{opacity:1}.job-view-modal{width:min(680px,calc(100vw - 32px))}.job-view-modal .job-view-modal-title{color:var(--accent2);font-weight:700;font-size:1.125rem}.job-view-overall-progress-wrap{display:flex;align-items:center;gap:12px;margin-bottom:18px}.job-view-overall-progress-bar{flex:1;min-width:0;height:10px;background:var(--bg3);border-radius:6px;overflow:hidden;border:1px solid var(--border2)}.job-view-overall-progress-fill{height:100%;border-radius:5px;transition:width .35s ease}.job-view-overall-progress-fill.stage-1{background:#0ea5e9}.job-view-overall-progress-fill.stage-2{background:#7c3aed}.job-view-overall-progress-fill.stage-3{background:#ea580c}.job-view-overall-progress-fill.stage-4{background:#059669}.job-view-overall-progress-label{flex-shrink:0;font-size:12px;font-weight:600;color:var(--text2);white-space:nowrap;font-variant-numeric:tabular-nums}@media (max-width: 520px){.job-view-overall-progress-wrap{flex-direction:column;align-items:stretch;gap:8px}.job-view-overall-progress-label{text-align:right}}.job-stat-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:20px}@media (max-width: 540px){.job-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.job-stat-card{background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:10px 12px;text-align:center}.job-stat-card-val{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:4px}.job-stat-card-label{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text3)}.job-member-cards{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.job-member-summary-card{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;border:1px solid rgba(124,58,237,.32);background:#7c3aed0f;min-width:180px;flex:1;max-width:280px}.job-member-summary-card-qa{border-color:#ea580c52;background:#ea580c0f}.job-member-summary-av{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.job-member-summary-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px}.job-member-summary-meta{font-size:11px;color:var(--text2);display:flex;flex-wrap:wrap;align-items:center;gap:4px}.job-timeline-section{margin-top:4px}.job-timeline-title{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:12px}.job-timeline{display:flex;flex-direction:column;gap:0;position:relative}.job-timeline:before{content:"";position:absolute;left:15px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#0ea5e973,#7c3aed73 34%,#ea580c73 66%,#05966973);border-radius:2px}.job-timeline-item{display:flex;gap:12px;padding-bottom:16px;position:relative}.job-timeline-step{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;z-index:1;background:var(--surface2);border:2px solid var(--border2);color:var(--text2)}.job-timeline-step.stage-1{background:#0ea5e933;border-color:#0ea5e9;color:#38bdf8}.job-timeline-step.stage-2{background:#7c3aed33;border-color:#7c3aed;color:#c4b5fd}.job-timeline-step.stage-3{background:#ea580c33;border-color:#ea580c;color:#fdba74}.job-timeline-step.stage-4{background:#05966933;border-color:#059669;color:#6ee7b7}[data-theme=light] .job-timeline-step.stage-1{color:#0369a1}[data-theme=light] .job-timeline-step.stage-2{color:#5b21b6}[data-theme=light] .job-timeline-step.stage-3{color:#c2410c}[data-theme=light] .job-timeline-step.stage-4{color:#047857}.job-timeline-body{flex:1;padding-top:4px;min-width:0}.job-timeline-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.job-timeline-av{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0}.job-timeline-name{font-size:13px;font-weight:700;color:var(--text)}.job-timeline-ts{font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums}.job-timeline-badge{padding:1px 6px;border-radius:999px;font-size:10px;font-weight:600}.job-timeline-badge-dev{background:#7c3aed24;color:#c4b5fd;border:1px solid rgba(124,58,237,.35)}.job-timeline-badge-qa{background:#ea580c24;color:#fdba74;border:1px solid rgba(234,88,12,.35)}[data-theme=light] .job-timeline-badge-dev{color:#5b21b6;background:#7c3aed14}[data-theme=light] .job-timeline-badge-qa{color:#c2410c;background:#ea580c14}.job-timeline-detail{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.job-timeline-pct{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.job-timeline-md{font-size:12px;font-weight:600;color:#16a34a;font-variant-numeric:tabular-nums}.job-timeline-test-badge{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600}.job-timeline-test-badge.pass{background:#16a34a1f;color:#16a34a;border:1px solid rgba(22,163,74,.3)}.job-timeline-test-badge.fail{background:#dc26261a;color:#dc2626;border:1px solid rgba(220,38,38,.3)}.job-timeline-note{font-size:12px;color:var(--text2);line-height:1.4;padding:4px 8px;border-left:2px solid var(--border2);margin-left:2px}.job-returned-pill{display:inline-flex;align-items:center;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--amber, #f59e0b) 55%,transparent);background:color-mix(in srgb,var(--amber, #f59e0b) 14%,transparent);color:var(--amber, #f59e0b);font-size:11px;font-weight:700;white-space:nowrap}.job-view-doc{max-height:none;margin:0 -4px;border-radius:var(--r2)}.job-print-btn{margin-top:4px;align-self:flex-start}.job-card-print-btn{margin-left:auto;font-size:11px!important;padding:2px 8px!important;opacity:.8}.job-card-print-btn+.job-card-edit-btn{margin-left:4px}.job-pick-col{width:32px;text-align:center}.job-dl-pill{display:inline-block;margin-top:4px;padding:1px 6px;border-radius:999px;font-size:11px;white-space:nowrap;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.job-dl-pill.is-done{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent)}.job-type-badge{display:inline-block;margin-bottom:2px;padding:0 6px;border-radius:999px;border:1px solid var(--border2);font-size:10.5px;font-weight:600;line-height:1.6;color:var(--text2)}.job-type-new{display:none}.job-type-cr{border-color:#3b82f673;color:#3b82f6}.job-type-bugfix{border-color:#ef444473;color:#ef4444}.job-type-uat{border-color:#a855f773;color:#a855f7}.job-type-implement{border-color:#14b8a673;color:#14b8a6}.job-type-service{border-color:#b4530973;color:#b45309}.job-type-nostage{font-size:12px;color:var(--text3)}@media (max-width: 900px){.job-master-compact .job-master-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.cs-url{font-family:var(--mono, monospace);font-size:12.5px;overflow-wrap:anywhere}.cs-table tr.cs-retired td:first-child{opacity:.75}.cs-detail{margin-top:14px;padding:12px 14px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3)}.modal.cs-modal{max-width:820px}.cs-add{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.cs-add select,.cs-add input{min-width:0;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.cs-add select{flex:1 1 240px}.cs-add input{flex:1 1 180px}.cs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.cs-list li{padding:8px 10px;border:1px solid var(--border2);border-radius:var(--r)}.cs-list li.is-retired{opacity:.7;border-style:dashed}.cs-list-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13.5px}.leave-flag.cs-inherit{color:var(--text3)}.cs-doc-table{font-size:9.5pt}.cs-doc-table td{vertical-align:top}.cs-doc-url{font-family:var(--mono, monospace);overflow-wrap:anywhere}.cs-embed{margin:4px 18px 18px;padding-top:12px;border-top:1px solid var(--border2)}.cs-embed-title{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--text2)}.cs-tag-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cs-tag-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:13px}.cs-tag-list li.is-retired{opacity:.7}.rpt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.rpt-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px}.rpt-field{display:flex;flex-direction:column;gap:5px}.rpt-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.rpt-field select,.rpt-field input{min-width:180px}.rpt-actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}.rpt-paper{background:#6b7280;padding:18px;border-radius:var(--r2);overflow-x:auto}.rpt-preview-hint{margin:0 auto 14px;max-width:210mm;font-size:12px;color:#f3f4f6}.rpt-paper .rpt-sheet{width:210mm;min-height:297mm;box-sizing:border-box;padding:14mm 12mm;margin:0 auto 18px;background:#fff;color:#000;border:none;border-radius:0;box-shadow:0 6px 20px #00000059}.rpt-paper .rpt-sheet-title,.rpt-paper .rpt-person dd,.rpt-paper .rpt-total-item strong,.rpt-paper .rpt-table tfoot th,.rpt-paper .rpt-table td,.rpt-paper .rpt-table th{color:#000}.rpt-paper .rpt-sheet-sub,.rpt-paper .rpt-dim,.rpt-paper .rpt-h3,.rpt-paper .rpt-person dt,.rpt-paper .rpt-total-item span,.rpt-paper .rpt-sign,.rpt-paper .rpt-empty{color:#333}.rpt-paper .rpt-sheet-head{border-bottom:2px solid #000}.rpt-paper .rpt-table th,.rpt-paper .rpt-table td{border:1px solid #999}.rpt-paper .rpt-table thead th,.rpt-paper .rpt-table tfoot th,.rpt-paper .rpt-totals{background:#f0f0f0}.rpt-paper .rpt-totals{border:1px solid #999}.rpt-paper .rpt-sign-line{border-bottom:1px dotted #000}.rpt-paper .rpt-sheet,.rpt-paper .rpt-sheet input,.rpt-paper .rpt-sheet-title,.rpt-paper .rpt-table{font-family:"Sarabun","Noto Sans Thai",var(--sans)}.rpt-paper .rpt-num,.rpt-paper .rpt-total-item strong{font-family:var(--mono)}.rpt-paper .rpt-baht{font-family:"Sarabun","Noto Sans Thai",var(--sans)}.rpt-sheet{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r3);padding:22px 24px;margin-bottom:16px}.rpt-sheet-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between;padding-bottom:12px;margin-bottom:16px;border-bottom:2px solid var(--border2)}.rpt-sheet-title{margin:0;font-family:var(--display);font-size:1.15rem;font-weight:700;color:var(--text)}.rpt-sheet-sub{margin:4px 0 0;font-size:12px;color:var(--text2)}.rpt-person{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0;max-width:100%}.rpt-baht{font-family:var(--sans);margin-right:2px}.rpt-person div{display:flex;flex-direction:column;gap:2px}.rpt-person dt{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.rpt-person dd{margin:0;font-size:13px;font-weight:600;color:var(--text)}.rpt-h3{margin:18px 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.rpt-table{width:100%;border-collapse:collapse;font-size:12px}.rpt-table-narrow{max-width:340px}.rpt-table th,.rpt-table td{border:1px solid var(--border2);padding:6px 9px;text-align:left;vertical-align:top}.rpt-table thead th{background:var(--bg3);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);white-space:nowrap}.rpt-table tfoot th{background:var(--bg3);font-weight:700;color:var(--text)}.rpt-table .rpt-num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.rpt-dim{font-size:11px;color:var(--text3)}.rpt-note{max-width:18rem}.rpt-empty{color:var(--text3);text-align:center}.rpt-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:18px;padding:12px 14px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3)}@media screen and (max-width: 820px){.rpt-totals{grid-template-columns:repeat(3,minmax(0,1fr))}.rpt-sheet{overflow-x:auto}}.rpt-total-item{display:flex;flex-direction:column;gap:3px}.rpt-total-item span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.rpt-total-item strong{font-family:var(--mono);font-size:15px;color:var(--text)}.rpt-signs{display:flex;gap:60px;margin-top:34px;padding-top:6px}.rpt-sign{display:flex;flex-direction:column;gap:4px;min-width:220px;font-size:12px;color:var(--text2);text-align:center}.rpt-sign-line{border-bottom:1px dotted var(--text3);height:38px}@media print{@page{size:A4;margin:14mm 12mm}html,body,#root{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;color:#000!important}.app-shell .sidebar,.app-topbar,.rpt-screen-only,.mobile-nav-backdrop{display:none!important}.app-shell,.main,.main-outlet{display:block!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important;height:auto!important;max-height:none!important}.rpt-doc{display:block}.rpt-doc.rpt-paper{background:none!important;padding:0!important;border-radius:0!important;overflow:visible!important}.rpt-paper .rpt-sheet{width:auto!important;min-height:0!important;padding:0!important;margin:0 0 6mm!important;box-shadow:none!important}.rpt-sheet,.rpt-sheet .rpt-table,.rpt-sheet .rpt-sheet-title,.rpt-sheet-title,.rpt-sheet .rpt-h3,.rpt-sheet .rpt-sign,.rpt-baht{font-family:Sarabun,Noto Sans Thai,Arial,sans-serif!important}.rpt-table .rpt-num,.rpt-total-item strong{font-family:IBM Plex Mono,Sarabun,monospace!important}.rpt-sheet{background:#fff!important;border:none!important;border-radius:0!important;padding:0!important;margin:0 0 6mm!important;break-inside:auto}.rpt-sheet+.rpt-sheet{break-before:page;page-break-before:always}.rpt-sheet-title,.rpt-person dd,.rpt-total-item strong,.rpt-table tfoot th{color:#000!important}.rpt-sheet-sub,.rpt-dim,.rpt-h3,.rpt-person dt,.rpt-total-item span,.rpt-sign{color:#333!important}.rpt-sheet-head{border-bottom:2px solid #000!important}.rpt-table th,.rpt-table td{border:1px solid #999!important}.rpt-table thead th,.rpt-table tfoot th,.rpt-totals{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.rpt-totals{border:1px solid #999!important}.rpt-table{break-inside:auto}.rpt-table tr,.rpt-signs{break-inside:avoid}.rpt-sign-line{border-bottom:1px dotted #000!important}}.perf-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.perf-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px}.perf-field{display:flex;flex-direction:column;gap:5px}.perf-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.perf-field select{min-width:180px}.perf-week-range{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--text3)}.perf-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}@media (max-width: 960px){.perf-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.perf-kpi-grid{grid-template-columns:1fr}}.perf-kpi-band.perf-band-high{border-color:#1fc98e66;background:#1fc98e0f}.perf-kpi-band.perf-band-mid{border-color:#5b8df566;background:#5b8df50f}.perf-kpi-band.perf-band-low{border-color:#f0a83266;background:#f0a8320f}.perf-section{margin-bottom:16px}.perf-table{min-width:940px}.perf-cell-band{min-width:150px}.perf-bar-row{display:flex;align-items:center;gap:8px}.perf-bar-wrap{flex:1;min-width:70px}.perf-bar-wrap-sm{flex:1;min-width:60px;height:5px}.perf-mini-pct{font-family:var(--mono);font-size:11px;color:var(--text2);white-space:nowrap;min-width:34px;text-align:right}.perf-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;border:1px solid var(--border2)}.perf-badge.perf-band-high,.perf-bar-fill.perf-band-high{border-color:#1fc98e73;color:var(--green);background:#1fc98e1f}.perf-bar-fill.perf-band-high{background:var(--green);border:none}.perf-badge.perf-band-mid{border-color:#5b8df573;color:var(--accent2);background:#5b8df51f}.perf-bar-fill.perf-band-mid{background:var(--accent);border:none}.perf-badge.perf-band-low{border-color:#f0a83273;color:var(--amber);background:#f0a8321f}.perf-bar-fill.perf-band-low{background:var(--amber);border:none}.perf-badge.perf-band-na{color:var(--text3)}.perf-bar-fill.perf-band-na{background:var(--border3);border:none}.perf-baht{font-family:var(--sans);margin-right:2px}.perf-weekly-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 10px;font-size:13px}.perf-weekly-table th.table-num,.perf-weekly-table td.table-num{white-space:nowrap}.perf-weekly-none{color:var(--text3)}.perf-weekly-up{color:var(--green);font-weight:600}.perf-weekly-down{color:var(--red);font-weight:600}.perf-hint{margin:12px 0 0;font-size:12px;color:var(--text3)}.perf-hint a{color:var(--accent2)}.perf-low-score{color:var(--red);font-weight:600}.tc-filters{flex-wrap:wrap}.tc-item{display:flex;align-items:center;gap:4px}.tc-item .leave-dot{flex:none}.tc-item small{color:var(--text2)}.tc-kind{flex:none;color:var(--lt-color, var(--accent))}.tc-today{gap:10px}.tc-stat{display:inline-flex;align-items:center;gap:4px}.tc-stat .leave-dot{--lt-color: var(--text2)}.tc-stat-wfh svg{color:#0f9d8a}.tc-stat-office{color:var(--text2)}.tc-today-names{display:inline-flex;flex-wrap:wrap;gap:4px;flex-basis:100%}.tc-today-names .tc-item{display:inline-flex}.tc-legend-wfh svg{color:#0f9d8a}.tc-week th,.tc-week td{vertical-align:top;min-width:90px}.tc-week th:first-child,.tc-week td:first-child{min-width:130px}.tc-week th.is-off,.tc-week td.is-off{background:color-mix(in srgb,var(--bg3) 60%,transparent)}.tc-week th.is-today{box-shadow:inset 0 -2px 0 var(--accent)}.tc-week td .tc-item+.tc-item{margin-top:2px}.tc-week-day{all:unset;cursor:pointer;display:flex;flex-direction:column;font-weight:600}.tc-week-day:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tc-hol{font-weight:400;font-size:10px;color:var(--red)}.tc-dept{font-size:11px}.tc-detail-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.tc-detail-h{margin:0 0 6px;font-size:13px;font-weight:600}.org-tree{--org-line: var(--border3);--org-gap: 22px;--org-link: var(--text2);display:inline-block;min-width:100%;font-size:12.5px}.org-tree ul{display:flex;justify-content:center;margin:0;padding:var(--org-gap) 0 0;position:relative;list-style:none}.org-tree li{position:relative;display:flex;flex-direction:column;align-items:center;padding:var(--org-gap) 5px 0;list-style:none}.org-tree li:before,.org-tree li:after{content:"";position:absolute;top:0;right:50%;width:50%;height:var(--org-gap);border-top:1px solid var(--org-line)}.org-tree li:after{right:auto;left:50%;border-left:1px solid var(--org-line)}.org-tree li:first-child:before,.org-tree li:last-child:after{border-top:0}.org-tree li:last-child:before{border-right:1px solid var(--org-line);border-top-right-radius:6px}.org-tree li:last-child:after{border-left:0}.org-tree li:first-child:after{border-top-left-radius:6px}.org-tree li:only-child:before{display:none}.org-tree li:only-child:after{display:block;border-top:0;border-left:1px solid var(--org-line);border-radius:0}.org-tree ul ul:before{content:"";position:absolute;top:0;left:50%;height:var(--org-gap);border-left:1px solid var(--org-line)}.org-tree .org-roots{padding-top:0;gap:24px;align-items:flex-start}.org-tree .org-roots>li{padding-top:0}.org-tree .org-roots>li:before,.org-tree .org-roots>li:after{display:none}.org-tree li>ul{flex:1 0 auto}.org-riser{flex:1 0 18px;width:0;border-left:1px dashed var(--org-link)}.org-tree li.org-bus-full,.org-tree li.org-bus-start,.org-tree li.org-bus-end{background:repeating-linear-gradient(to right,var(--org-link) 0 4px,transparent 4px 8px) bottom left / 100% 1px no-repeat;-webkit-print-color-adjust:exact;print-color-adjust:exact}.org-tree li.org-bus-start{background-position:bottom right;background-size:50% 1px}.org-tree li.org-bus-end{background-size:50% 1px}.org-tree li.org-bus-pad-both,.org-tree li.org-bus-pad-left,.org-tree li.org-bus-pad-right{--org-pad-line: linear-gradient(var(--org-link), var(--org-link));background:var(--org-pad-line) bottom left / 4px 1px no-repeat,var(--org-pad-line) bottom right / 4px 1px no-repeat;-webkit-print-color-adjust:exact;print-color-adjust:exact}.org-tree li.org-bus-pad-left{background:var(--org-pad-line) bottom left / 4px 1px no-repeat}.org-tree li.org-bus-pad-right{background:var(--org-pad-line) bottom right / 4px 1px no-repeat}.org-tree ul.org-members{display:flex;flex-direction:column;gap:4px;padding:6px}.org-tree ul.org-members:before,.org-tree .org-members li:before,.org-tree .org-members li:after{display:none}.org-tone-0{--org-tone: var(--accent)}.org-tone-1{--org-tone: var(--green)}.org-tone-2{--org-tone: var(--amber)}.org-tone-3{--org-tone: var(--purple)}.org-tone-4{--org-tone: var(--teal)}.org-tone-5{--org-tone: var(--pink)}.org-card{position:relative;display:flex;flex-direction:column;gap:5px;width:176px;padding:9px 10px 8px;background:var(--bg2);border:1px solid var(--border2);border-top:3px solid var(--org-tone);border-radius:var(--r2);text-align:left}.org-card-main,.org-tree .org-member{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0}.org-card-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}.org-avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-size:10.5px;font-weight:700;letter-spacing:.02em;-webkit-print-color-adjust:exact;print-color-adjust:exact}.org-name{font-weight:700;font-size:13.5px;color:var(--text)}.org-off{font-weight:400;font-size:11px;color:var(--text2)}.org-full,.org-pos{font-size:11px;color:var(--text2);overflow-wrap:anywhere}.org-pos{color:var(--org-tone);font-weight:600}.org-tag{align-self:flex-start;padding:1px 7px;border:1px solid var(--border3);border-radius:999px;font-size:10.5px;color:var(--text)}.org-tag-cross{border-color:var(--org-tone)}.org-tag-acting{border-style:dashed;border-color:var(--amber)}.org-toggle{align-self:center;display:inline-flex;align-items:center;gap:3px;margin-top:1px;padding:1px 8px 1px 5px;border:1px solid var(--border2);border-radius:999px;background:var(--bg3);color:var(--text2);font:inherit;font-size:10.5px;cursor:pointer}.org-toggle:hover{color:var(--text);border-color:var(--border3)}.org-toggle svg{transition:transform .12s}.org-toggle.is-open svg{transform:rotate(90deg)}.org-group{width:176px;background:var(--bg2);border:1px solid var(--border2);border-top:3px solid var(--org-tone);border-radius:var(--r2);text-align:left}.org-group-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;padding:6px 10px 5px;border-bottom:1px solid var(--border)}.org-group-name{font-weight:700;font-size:12px;color:var(--org-tone)}.org-group-count{font-size:10.5px;color:var(--text2)}.org-group-acting{flex-basis:100%;font-size:10.5px;color:var(--text2)}.org-tree .org-member{padding:4px;border-radius:var(--r)}.org-member .org-avatar{width:26px;height:26px;font-size:9.5px}.org-member .org-name{font-size:12.5px}.org-loose-h{margin:16px 0 6px;font-size:13px;font-weight:600;color:var(--text)}.org-loose-h span{font-weight:400;color:var(--text2)}.org-loose{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;font-size:12.5px}.org-loose .org-member{display:flex;align-items:center;gap:8px;width:190px;padding:5px 8px;background:var(--bg2);border:1px solid var(--border2);border-left:3px solid var(--org-tone);border-radius:var(--r);text-align:left}.org-card.org-hit,.org-loose .org-member.org-hit,.org-tree .org-member.org-hit{outline:2px solid var(--amber);outline-offset:1px;background:color-mix(in srgb,var(--amber) 14%,var(--bg2))}.org-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px}.org-search{width:min(260px,100%)}.org-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text)}.org-muted{font-size:12.5px;color:var(--text2)}.org-err{margin:0 0 12px;color:var(--red);font-size:13px}.org-scroll{overflow:auto;padding:18px 12px 24px;border:1px solid var(--border);border-radius:var(--r2);background:var(--bg);text-align:center}.org-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:10px 0 0;padding:0;list-style:none;font-size:12px;color:var(--text2)}.org-legend li{display:inline-flex;align-items:center;gap:6px}.org-legend .org-legend-link i{height:0;width:22px;border-radius:0;background:none;border-top:1px dashed var(--text2)}.org-legend i{width:14px;height:4px;border-radius:2px;background:var(--org-tone);-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-sheet.org-sheet{page:orgchart;width:1123px;max-width:none;min-height:0;--bg: #fff;--bg2: #fff;--bg3: #f1f3f8;--border: #d5dae6;--border2: #b9c1d4;--border3: #8a94ad;--text: #111;--text2: #4a5468;--accent: #2f5fcc;--green: #0b7d57;--amber: #9a6207;--purple: #6a4fc0;--teal: #0b8178;--pink: #a84a8a}.org-sheet .org-tree{--org-gap: 12px;zoom:.92;margin-top:12px;text-align:center}.org-sheet .org-card,.org-sheet .org-group{width:164px}.org-sheet .org-tree li{padding-left:4px;padding-right:4px}.org-sheet .org-member .org-avatar{display:none}.org-sheet .org-card .org-avatar{width:26px;height:26px;font-size:9.5px}.org-sheet .org-tree .org-member{padding:2px 4px}.org-sheet .org-tree ul.org-members{gap:2px;padding:4px 6px}.org-sheet .org-name,.org-sheet .org-member .org-name{font-size:12px}.org-sheet .org-full,.org-sheet .org-pos{font-size:10px}.org-sheet .org-card{padding:6px 8px;gap:3px}.org-sheet .org-riser{flex-basis:12px}.org-sheet .org-legend{margin-top:10px}@media print{@page orgchart{size:A4 landscape;margin:12mm}.print-portal .print-sheet.org-sheet{width:273mm;font-family:var(--sans)}.org-card,.org-group{break-inside:avoid;page-break-inside:avoid}}:root{--viz-1: #3987e5;--viz-2: #d95926}[data-theme=light]{--viz-1: #2a78d6;--viz-2: #eb6834}.ov-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:14px}.ov-dept{max-width:min(240px,100%)}.ov-note{font-size:12px}.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));grid-auto-flow:row dense;gap:14px;align-items:start}.ov-section{padding:16px;display:flex;flex-direction:column;gap:16px}.ov-h{margin:0;font-size:15px;font-weight:700}.ov-chart{margin:0}.ov-chart-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-bottom:6px;font-size:13px}.ov-chart-title{font-weight:600}.ov-chart-sub{font-size:12px;color:var(--text3)}.ov-grow{flex:1}.ov-legend{display:inline-flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text2)}.ov-legend-item{display:inline-flex;align-items:center;gap:5px}.ov-key{display:inline-block;flex:none}.ov-key-line{width:14px;height:2px;border-radius:2px}.ov-key-bar{width:8px;height:12px;border-radius:2px}.ov-key.is-s1{background:var(--viz-1)}.ov-key.is-s2{background:var(--viz-2)}.ov-key-tick,.ov-key-tick.is-s1{width:12px;height:2px;background:var(--text)}.ov-plot{position:relative}.ov-plot svg{display:block;width:100%;height:auto;overflow:visible}.ov-gridline{stroke:var(--line);stroke-width:1}.ov-axis{font-size:11px;fill:var(--text3)}.ov-end-label{font-size:11px;font-weight:600;fill:var(--text2)}.ov-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.ov-line.is-s1{stroke:var(--viz-1)}.ov-line.is-s2{stroke:var(--viz-2)}.ov-dot{stroke:var(--bg2);stroke-width:2}.ov-dot.is-s1{fill:var(--viz-1)}.ov-dot.is-s2{fill:var(--viz-2)}.ov-crosshair{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3}.ov-bar{fill:var(--viz-1);opacity:.85}.ov-bar.is-hover{opacity:1}.ov-target{stroke:var(--text);stroke-width:2;stroke-linecap:round}.ov-tip{position:absolute;top:0;transform:translate(-50%);display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--bg2);box-shadow:0 4px 14px #00000040;font-size:12px;white-space:nowrap;pointer-events:none;z-index:2}.ov-tip span{display:inline-flex;align-items:center;gap:5px;color:var(--text2)}.ov-empty{margin:0;padding:18px 12px;border-radius:10px;text-align:center;font-size:12px;color:var(--text3);background:var(--bg3)}.ov-table-wrap{max-height:260px;overflow:auto}.ov-table td,.ov-table th{font-variant-numeric:tabular-nums;white-space:nowrap}.ov-hbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ov-hbars li{display:grid;grid-template-columns:minmax(90px,160px) 1fr 48px;align-items:center;gap:10px;font-size:13px}.ov-hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-hbar-track{height:10px;border-radius:4px;background:var(--bg3);overflow:hidden}.ov-hbar{display:block;height:100%;border-radius:4px;background:var(--viz-1)}.ov-hbar.is-over{background:var(--red, #ef4444)}.ov-hbar-val{text-align:right;font-variant-numeric:tabular-nums}.ov-ar-now{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;font-size:13px}.ov-ar-cell{display:flex;align-items:center;gap:6px;color:var(--text2)}.ov-ar-cell strong{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums}@media (max-width: 640px){.ov-grid,.ov-ar-now{grid-template-columns:minmax(0,1fr)}.ov-hbars li{grid-template-columns:minmax(70px,110px) 1fr 42px}}.ov-threshold{stroke:var(--text2);stroke-width:1.5;stroke-dasharray:6 4}.ov-threshold-label{font-size:10px;fill:var(--text2)}.ov-h{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.ov-status{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700}.ov-status.is-ok{color:var(--green, #22c55e);background:color-mix(in srgb,var(--green, #22c55e) 14%,transparent)}.ov-status.is-over{color:var(--red, #ef4444);background:color-mix(in srgb,var(--red, #ef4444) 14%,transparent)}.ov-alerts{list-style:none;margin:-8px 0 0;padding:8px 10px;border-left:3px solid var(--red, #ef4444);border-radius:6px;background:color-mix(in srgb,var(--red, #ef4444) 7%,transparent);font-size:12px;display:flex;flex-direction:column;gap:2px}.ov-alerts strong{color:var(--red, #ef4444)}.ov-wide{grid-column:1 / -1}.ov-forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px}.ov-mini{margin-top:8px;font-size:12px}.ov-hbar-track{position:relative}.ov-hbar-target{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:var(--text)}@media (max-width: 640px){.ov-forecast{grid-template-columns:minmax(0,1fr)}.ov-mini{display:block;overflow-x:auto}}.ov-reps-wrap{max-height:none}.ov-reps td{vertical-align:middle}.ov-rep-pct{display:inline-flex;align-items:center;gap:6px}.ov-rep-pct .ov-hbar-track{display:inline-block;width:60px;height:6px}.ov-hbar.is-done{background:var(--green, #22c55e)}.ov-sheet{--text: #111;--text2: #333;--text3: #666;--line: #d6d6d6;--bg2: #fff;--bg3: #f1f1f1;--viz-1: #2a78d6;--viz-2: #eb6834;color:#111}.ov-sheet .card{background:#fff;border:1px solid #d6d6d6;color:#111}.ov-sheet .ov-tip{display:none}.ov-sheet .ov-grid{grid-template-columns:minmax(0,1fr)}.ov-sheet .ov-no-print{display:none}.ov-sheet .ov-section{break-inside:avoid;box-shadow:none}.ov-bar-click{cursor:pointer}.ov-drill-links{margin:0 0 8px;font-size:13px;color:var(--text2)}.ov-status.is-acked{color:var(--text2);background:color-mix(in srgb,var(--text2) 12%,transparent)}.ov-alerts li+li{margin-top:8px}.ov-alerts li.is-acked strong{color:var(--text2)}.ov-ack-line{font-size:12px;color:var(--text2);margin-top:2px}.ov-ack-btns{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.ov-cmp{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.ov-cmp-cell{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r2, 8px);min-width:0}.ov-cmp-label{font-size:12px;color:var(--text2)}.ov-cmp-val{font-size:18px;font-variant-numeric:tabular-nums}.ov-cmp-chip{font-size:12px;font-variant-numeric:tabular-nums;color:var(--text2)}.ov-cmp-chip.is-good{color:var(--green)}.ov-cmp-chip.is-bad{color:var(--red)}.ov-cmp-chip.is-none{color:var(--text3)}.ov-cmp-note{margin:8px 0 0;font-size:12px}.ov-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ov-event-line{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3}.ov-event-dot{fill:var(--bg);stroke:var(--text2);stroke-width:1.2}.ov-event-num{font-size:9px;fill:var(--text2);font-weight:700}.ov-event-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--text2)}.ov-event-badge{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:4px;border-radius:50%;border:1px solid var(--text2);font-size:9px;font-weight:700}.ov-event-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 12px;align-items:end;margin:8px 0}.ov-event-form .ov-event-title{grid-column:span 2}.ov-event-actions{display:flex;gap:8px;justify-content:flex-end;grid-column:1 / -1}.ov-event-rows{list-style:none;margin:0;padding:0;font-size:13px}.ov-event-rows li{padding:6px 0;border-bottom:1px solid var(--border)}.ov-event-rows li:last-child{border-bottom:0}@media (max-width: 560px){.ov-event-form .ov-event-title{grid-column:1 / -1}}.training-status-planned{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.training-status-done{color:var(--purple);border-color:color-mix(in srgb,var(--purple) 40%,transparent);background:color-mix(in srgb,var(--purple) 10%,transparent)}.training-status-certified{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.training-status-cancelled{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.modal.training-modal{max-width:820px}.training-topic-edit{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:4px}.training-topic-edit li{display:flex;align-items:center;gap:6px}.training-topic-edit input[type=checkbox]{width:18px;height:18px;min-height:unset;flex:none}.training-topic-edit .leave-in:not(.leave-in-num){flex:1;min-width:0}.training-time{display:flex;align-items:center;gap:6px}.training-time input{flex:1;min-width:0}.training-att-edit td{padding:2px 4px}.training-att-edit .leave-in{width:100%}.training-paste textarea{width:100%;margin-top:6px}.training-check-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:4px 18px}.training-check-list li{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.training-check-list .leave-check,.training-topic-edit .leave-check{text-transform:none;letter-spacing:normal;font-size:13.5px;font-weight:400;color:var(--text)}.training-course{padding:12px 0 14px;border-top:1px solid var(--border)}.training-course-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.training-course-name{flex:1 1 240px;font-weight:600}.training-course-desc{width:100%;margin:6px 0}.training-topic-table .leave-in{width:100%;min-width:140px}.training-topic-table td{padding:3px 6px}.training-topic-table .training-col-min{width:80px}.training-topic-table .leave-in-num{min-width:0;width:70px}.training-topic-table .training-col-on{width:60px}.training-topic-table .training-col-act{width:150px}.training-topic-table .training-subrow .training-topic-title,.training-sheet .training-subrow .training-topic-title,.training-topic-edit .training-subrow,.training-check-list .training-subrow{padding-left:26px}.training-sheet .training-tree .training-mainrow td{font-weight:600;background:#f6f7f9}.training-sheet .training-tree .training-mainrow .doc-small{font-weight:400}.training-sheet .training-tree .training-has-sub td{border-bottom:1px dotted #d0d0d0}.training-sheet .training-tree .training-subrow td{border-top:1px dotted #d0d0d0;border-bottom:1px dotted #d0d0d0;padding-top:2px;padding-bottom:2px;font-size:12px;color:#333}.training-sheet .training-tree .training-sub-last td{border-bottom:1px solid #bbb}.training-sheet .training-done-table{table-layout:fixed;width:100%}.training-sheet .training-done-table .training-col-no{width:11mm}.training-sheet .training-done-table th.training-col-check,.training-sheet .training-done-table td.training-col-check{width:27mm;text-align:center;vertical-align:middle}.training-sheet .training-sub-no{display:inline-block;min-width:30px;color:#666;font-variant-numeric:tabular-nums}.training-check-list.training-check-tree{grid-template-columns:1fr}.training-sheet .training-att-table{margin-top:10px}.training-sheet .training-att-table td{height:26px}.training-sheet .training-att-table th:last-child,.training-sheet .training-att-table td:last-child{width:32%}.cert-sheet{page:cert}.cert-frame{position:relative;min-height:170mm;box-sizing:border-box;padding:16mm 20mm 12mm;border:3px double #8a6d1d;outline:1px solid #c9a94a;outline-offset:-8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;color:#1f2433;background:#fffdf6}.cert-org{font-size:14pt;font-weight:600;letter-spacing:.02em}.cert-title{margin:6px 0 4px;font-size:30pt;font-weight:800;color:#8a6d1d}.cert-lead{font-size:12pt;color:#4b5064}.cert-name{margin:4px 0;font-size:24pt;font-weight:700;border-bottom:1px solid #c9a94a;padding:0 24px 4px}.cert-course{font-size:17pt;font-weight:700}.cert-sub{font-size:11pt;color:#4b5064}.cert-signs{margin-top:auto;padding-top:14mm;display:flex;justify-content:center;gap:40mm;font-size:11pt}.cert-signs .doc-sign-line{width:60mm;border-bottom:1px dotted #333;height:16mm}.cert-no{position:absolute;right:12mm;bottom:8mm;color:#6b7280}@media print{@page cert{size:A4 landscape;margin:10mm}.cert-sheet{break-after:page}}.training-fieldset{border:0;margin:0;padding:0;min-width:0}.training-mt{margin-top:16px}.training-h3{margin:0 0 6px;font-size:14px;font-weight:600}.training-sub{font-size:12px}.training-check-plain{display:flex;align-items:center;gap:6px;min-height:38px;text-transform:none;letter-spacing:normal;font-size:13.5px;font-weight:400;color:var(--text)}.training-topic-scroll{overflow-x:auto}.training-use-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.training-use-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 0;border-top:1px solid var(--border);font-size:13.5px}.training-use-list li>span:nth-child(2){flex:1 1 180px}.training-master-table td{vertical-align:top}.training-master-filters{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 320px}.training-master-filters select{flex:1 1 150px;max-width:260px}.training-master-filters select:focus{outline:none;border-color:var(--accent)}.training-paste-add{align-self:flex-start;margin:6px 0 10px}@media (max-width: 768px){.training-master-filters,.training-master-filters select{flex:0 0 auto}.training-master-filters select{width:calc(50% - 4px);max-width:none}}.training-master-table code{white-space:nowrap}.training-h3.training-mt{margin-top:16px}.sales-fu-search{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;flex:1;min-width:0;max-width:min(640px,100%)}.sales-fu-search input{flex:1;min-width:0;width:auto}.sales-fu-search label{flex-shrink:0;white-space:nowrap}.sales-fu-search select{flex-shrink:0;max-width:9rem}.sales-report-year{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;flex:0 1 auto;min-width:0}.sales-toolbar-label{flex-shrink:0;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.sales-report-year select,.sales-report-year .combo-field{flex-shrink:0;min-width:6.5rem}.sales-quote-modal{width:100%;max-width:min(1450px,calc(100vw - 24px))}.sales-quote-panel{margin-bottom:18px}.sales-quote-panel .ma-sub{margin:0 0 10px}.sales-quote-seg{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.sales-quote-seg-btn{padding:7px 14px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font:inherit;font-size:13px;cursor:pointer}.sales-quote-seg-btn:hover{border-color:var(--border3);color:var(--text);background:var(--bg4)}.sales-quote-seg-btn[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);color:var(--accent2)}.sales-quote-hint{display:block;margin-top:4px;font-size:12px}.sales-quote-more{margin-top:8px}.sales-quote-more>summary{cursor:pointer;color:var(--accent2);font-size:13px;-webkit-user-select:none;user-select:none;list-style:none}.sales-quote-more>summary::-webkit-details-marker{display:none}.sales-quote-more[open]>summary{margin-bottom:10px}.sales-quote-items-stack{display:flex;flex-direction:column;gap:14px;min-width:0}.sales-quote-toolbar-title{margin:0}.sales-quote-modal .sales-items-wrap{overflow-x:visible;overflow-y:visible}.sales-quote-modal .sales-items{min-width:0;table-layout:fixed}.sales-quote-modal .sales-col-desc{width:auto}.sales-quote-modal .sales-line-desc-input{width:100%;min-width:0;box-sizing:border-box}.sales-quote-modal .sales-line-header td.sales-col-desc{padding-right:8px}.sales-quote-totals-bottom{margin-top:4px;padding-top:12px;border-top:1px solid var(--border2)}.sales-quote-totals-bottom .ma-sub{margin:0 0 8px;text-align:right}.sales-quote-totals-bottom .sales-totals{margin:0 0 0 auto;max-width:400px}.sales-quote-line-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.sales-quote-empty-row td{padding:28px 16px!important;text-align:center;color:var(--text2);background:var(--bg2)}.sales-quote-empty-row p{margin:0 0 10px;font-size:13px}.sales-items-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sales-items-head .ma-sub{margin-bottom:8px}.sales-items-wrap{overflow-x:auto;border:1px solid var(--border2);border-radius:var(--r2)}.sales-items{width:100%;min-width:860px;font-size:13px}.sales-items th{font-size:11px;white-space:nowrap}.sales-items td{padding:4px 6px;vertical-align:middle}.sales-items input:not([type=checkbox]):not([type=radio]),.sales-items select{width:100%;min-width:0;padding:4px 6px;font-size:13px}.sales-items input[type=checkbox]{display:block;margin:0 auto}.sales-col-no{width:38px;text-align:center;color:var(--text3)}.sales-col-desc{min-width:0}.sales-col-kind{width:120px}.sales-quote-modal .sales-col-kind{width:108px}.sales-col-num{width:110px;text-align:right}.sales-quote-modal .sales-col-num{width:88px}.sales-quote-modal .sales-col-unit{width:64px}.sales-quote-modal .sales-col-disc{width:136px}.sales-line-disc{display:flex;gap:4px}.sales-line-disc input{min-width:0;flex:1;text-align:right}.sales-line-disc select{width:44px;flex:none;padding-left:4px;padding-right:4px}.sales-quote-modal .sales-col-act{width:118px}.sales-quote-modal td.sales-quote-line-act{padding:4px 10px 4px 4px;overflow:visible}.sales-quote-line-act-inner{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;max-width:100%}.sales-quote-modal .sales-quote-act-move{min-width:30px;padding:4px 6px;border:1px solid var(--border2);background:var(--bg3);color:var(--accent2);line-height:1}.sales-quote-modal .sales-quote-act-move:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 16%,var(--bg3));border-color:var(--accent);color:var(--accent3)}.sales-quote-modal .sales-quote-act-move:disabled{color:var(--text3);background:var(--bg2);border-color:var(--border2);opacity:.65}.sales-quote-modal .sales-quote-act-del{min-width:30px;padding:4px 6px;border:1px solid color-mix(in srgb,var(--red) 40%,var(--border2));background:color-mix(in srgb,var(--red) 10%,var(--bg3));color:var(--red)}.sales-quote-modal .sales-quote-act-del:hover{background:color-mix(in srgb,var(--red) 22%,var(--bg3));border-color:var(--red);color:var(--red)}.sales-quote-modal .sales-quote-act-del .btn-icon{opacity:1}.sales-quote-bill-full{border:1px solid color-mix(in srgb,var(--green) 42%,var(--border2));background:color-mix(in srgb,var(--green) 14%,var(--bg3));color:var(--green);white-space:nowrap}.sales-quote-bill-full:hover:not(:disabled){background:color-mix(in srgb,var(--green) 26%,var(--bg3));border-color:var(--green)}.sales-quote-bill-plan{border:1px solid color-mix(in srgb,var(--amber) 48%,var(--border2));background:color-mix(in srgb,var(--amber) 14%,var(--bg3));color:var(--amber);white-space:nowrap}.sales-quote-bill-plan:hover:not(:disabled){background:color-mix(in srgb,var(--amber) 26%,var(--bg3));border-color:var(--amber)}.sales-quote-bill-full .btn-icon,.sales-quote-bill-plan .btn-icon{opacity:1}.sales-quote-billed-full{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r2);border:1px solid color-mix(in srgb,var(--green) 35%,var(--border2));background:color-mix(in srgb,var(--green) 8%,var(--bg2));color:var(--green);font-size:12px;white-space:nowrap}.sales-quote-billed-full .btn-icon{opacity:1}.sales-quote-billed-plan{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r2);border:1px solid color-mix(in srgb,var(--amber) 45%,var(--border2));background:color-mix(in srgb,var(--amber) 10%,var(--bg2));color:var(--amber);font-size:12px;white-space:nowrap}.sales-quote-billed-plan .btn-icon{opacity:1}.sales-col-num input{text-align:right}.sales-col-unit{width:90px}.sales-col-act{width:104px;white-space:nowrap;text-align:right}.sales-amount{font-variant-numeric:tabular-nums}.sales-line-header td{background:var(--bg2)}.sales-line-header-input{font-weight:600;font-style:italic}.sales-line-sub .sales-col-no{color:var(--text3)}.sales-line-sub td:nth-child(2){padding-left:22px}.sales-totals{margin:14px 0 6px auto;max-width:380px;font-size:13px}.sales-total-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0}.sales-total-minus{color:var(--amber)}.sales-total-grand{margin-top:6px;padding-top:8px;border-top:1px solid var(--border2);font-size:15px;font-weight:700}.sales-total-words{text-align:right;color:var(--text3);font-size:12px}.sales-discount-input{display:flex;gap:6px}.sales-discount-input select{width:120px}.sales-discount-input input{width:110px;text-align:right}.sales-rate-input{width:64px;text-align:right;padding:2px 4px}.sales-row-actions{white-space:nowrap;text-align:right}.sales-doc-items tfoot th{text-align:right}.sales-doc-head-row td{font-weight:600;font-style:italic}.sales-doc-sub{padding-left:18px;color:var(--text2)}.sales-doc-grand th,.sales-doc-grand td{font-weight:700}.sales-doc-words{text-align:right;font-style:italic}.sales-doc-signs{margin-top:26px}.sales-doc-footer{margin-top:8px}@media (max-width: 640px){.sales-totals{max-width:none}}.sales-pct{display:flex;align-items:center;gap:8px;min-width:120px}.sales-pct-num{font-size:12px;color:var(--text2);font-variant-numeric:tabular-nums}.progress-bar-fill.sales-pct-done{background:var(--green)}.progress-bar-fill.sales-pct-near{background:var(--amber)}.progress-bar-fill.sales-pct-behind{background:var(--accent)}.sales-months{margin-top:8px;font-size:12px}.sales-months th,.sales-months td{padding:3px 6px;white-space:nowrap}.sales-target-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sales-spread{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.sales-spread input{width:160px;text-align:right}@media (max-width: 640px){.sales-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.sales-renewals{margin-bottom:14px}.sales-renew-late{color:var(--red);font-size:12px}.sales-fu-group{margin-bottom:16px}.sales-fu-title{margin:0 0 8px;font-size:14px}.sales-fu-late{color:var(--red)}.sales-fu-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sales-fu-item{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg2)}.sales-fu-main{flex:1 1 320px;min-width:0}.sales-fu-who{font-weight:600}.sales-fu-note{display:flex;align-items:center;gap:6px;margin:2px 0;font-size:13px}.sales-fu-meta{font-size:12px}.sales-fu-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sales-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}.sales-chip{padding:5px 12px;border:1px solid var(--border2);border-radius:999px;background:var(--bg2);color:var(--text);font:inherit;font-size:13px;cursor:pointer}.sales-chip:hover{border-color:var(--accent)}.sales-chip.is-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);font-weight:600}.sales-chip-close.is-on{border-color:var(--green);background:color-mix(in srgb,var(--green) 16%,transparent)}.sales-log-modal{width:100%;max-width:min(680px,calc(100vw - 32px))}.sales-log-head{padding:10px 12px;margin-bottom:12px;border-radius:var(--r2);background:var(--bg3)}.sales-log-who{font-weight:600}@media (max-width: 640px){.sales-fu-actions{width:100%}.sales-fu-actions .btn{flex:1 1 auto}}.ma-facts .ma-fact-wide{grid-column:1 / -1}.sales-line-cycle{display:flex;flex-direction:column;gap:4px;margin-top:4px}.sales-line-cycle input{width:100%;text-align:right}.sales-per-cycle{display:block;font-size:11px;font-weight:400;color:var(--amber)}.sales-recurring{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border2)}.sales-recurring-title{margin-bottom:2px;font-size:11px;font-weight:600;color:var(--text3)}.meeting-sheet .mt-agenda{list-style:none;margin:0;padding:0}.meeting-sheet .mt-agenda-item{margin:0 0 10px;break-inside:avoid}.meeting-sheet .mt-agenda-h{margin:8px 0 4px;font-size:13.5px;font-weight:700}.meeting-sheet .mt-agenda-detail{margin:0 0 6px 18px}.meeting-sheet .mt-resolution{margin:0 0 0 18px;padding:6px 10px;border:1px solid #333;border-radius:3px;display:flex;gap:10px;align-items:flex-start}.meeting-sheet .mt-resolution-lb{font-weight:700;white-space:nowrap}.meeting-sheet .mt-resolution .doc-desc{flex:1}.meeting-sheet .doc-write{min-height:56px;margin-left:18px}.meeting-sheet .mt-resolution.doc-write{margin-top:6px}.meeting-sheet .mt-cancelled{color:#b00020;font-weight:700;border:1px solid #b00020;padding:4px 8px;margin:6px 0}.meeting-sheet .mt-signin-table td:nth-child(4){min-width:42mm;height:34px}.meeting-sheet .mt-signin-table td,.meeting-sheet .mt-att-table td{height:24px}.meeting-sheet .mt-closing{margin-top:10px}.meeting-sheet .mt-internal{border:1px dashed #777;padding:6px 10px;background:#fafafa}.meeting-sheet td.doc-write-line{border-bottom:1px dotted #777;height:26px}.meeting-status-draft{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.meeting-status-final{color:var(--purple);border-color:color-mix(in srgb,var(--purple) 40%,transparent);background:color-mix(in srgb,var(--purple) 10%,transparent)}.meeting-status-certified{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.meeting-status-cancelled{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.mt-search{min-width:200px}.modal.meeting-modal,.modal.meeting-detail{width:min(960px,96vw)}.mt-attend-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 14px}.mt-attend-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed var(--border2)}.mt-attend-list li>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-ext-edit .leave-in{width:100%}.mt-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-bottom:6px}.mt-agenda-card{border:1px solid var(--border2);border-radius:8px;padding:10px 12px;margin-bottom:10px;display:grid;gap:8px;background:var(--bg2)}.mt-agenda-card-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mt-agenda-card textarea{width:100%;min-height:64px}.mt-agenda-card .mt-resolution-in{border-left:3px solid var(--accent)}.mt-agenda-card .leave-in{width:100%}.mt-action-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 12px}.mt-sales-refs{display:flex;flex-wrap:wrap;gap:4px 14px}.mt-internal-note{border-left:3px solid var(--text3);padding:6px 10px;background:var(--bg3);border-radius:0 6px 6px 0}.mt-type-pill{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--border2);background:var(--bg2);color:var(--text2);margin-left:6px}.mt-pre{white-space:pre-wrap;margin:2px 0 4px}.mt-agenda-view{margin:0;padding-left:0;list-style:none}.mt-agenda-view>li{padding:6px 0 8px;border-bottom:1px dashed var(--border2)}.mt-agenda-view-h{margin-bottom:2px}.mt-agenda-view-res{padding:6px 10px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:0 6px 6px 0}.mt-people li{display:flex;justify-content:space-between;gap:8px}.mt-attend-leave{color:var(--purple)}.mt-attend-absent{color:var(--red, #c0392b)}.mt-action-view tr.mt-overdue td:nth-child(3){color:var(--red, #c0392b)}.mt-req-summary{margin:0 0 8px;padding:6px 10px;border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.mt-req-view tr.mt-req-accepted td:nth-child(5){color:var(--green);font-weight:600}.mt-req-view tr.mt-req-rejected td{color:var(--text3)}.mt-req-view tr.mt-req-quote td:nth-child(5){color:var(--purple)}.mt-req-view tr.mt-req-superseded td{opacity:.55}.mt-req-edit .mt-agenda-card .leave-in{width:100%}@media (max-width: 560px){.mt-attend-list{grid-template-columns:1fr}.mt-search{min-width:0;width:100%}}.dl-status-draft{color:var(--text2);border-color:var(--border2);background:var(--bg3)}.dl-status-sent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.dl-status-accepted{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent)}.dl-status-conditional{color:var(--amber, #b7791f);border-color:color-mix(in srgb,var(--amber, #b7791f) 45%,transparent);background:color-mix(in srgb,var(--amber, #b7791f) 12%,transparent)}.dl-status-cancelled{color:var(--text3);border-color:var(--border2);background:var(--bg3)}.dl-ml{margin-left:8px}.dl-block{display:block}.dl-kind{font-size:12px;color:var(--text2);white-space:nowrap}.dl-kind code,.dl-resp-title code,.dl-view-main code{font-size:12px}.dl-banner{padding:10px 12px;margin-bottom:12px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);font-size:13.5px}.dl-banner-bad{border-color:color-mix(in srgb,var(--red) 45%,transparent);background:color-mix(in srgb,var(--red) 8%,transparent)}.modal.dl-modal{max-width:860px}.dl-edit-items{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:8px}.dl-edit-items li{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--r)}.dl-edit-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.dl-edit-meta select{min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.dl-lic-pick{display:inline-flex;gap:6px;align-items:center}.dl-lic-pick select{max-width:420px;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.dl-no{min-width:22px;font-weight:600;color:var(--text2)}.dl-edit-items .leave-in{width:100%}.modal.dl-picker{max-width:920px}.dl-pick-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px}.dl-pick-filters input[type=search]{flex:1 1 200px}.dl-pick-filters select,.dl-pick-filters .combobox-wrap{flex:0 1 200px;min-width:0}.dl-pick-filters select.combobox-wrap--entity,.dl-pick-filters .combobox-wrap.combobox-wrap--entity{flex:1 1 320px;max-width:min(380px,100%)}.dl-pick-filters input:focus,.dl-pick-filters select:focus{outline:none;border-color:var(--accent)}.dl-check{text-transform:none;letter-spacing:normal;font-size:13px;font-weight:400;color:var(--text)}.dl-pick-scroll{max-height:min(56vh,520px);overflow:auto}.dl-pick-table td,.dl-pick-table th{padding:5px 8px}.dl-col-check{width:34px;text-align:center}.dl-pick-group td{background:var(--bg3);font-size:13px}.dl-pick-row{cursor:pointer}.dl-pick-row:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}.dl-view-items,.dl-resp-items{list-style:none;margin:0;padding:0;counter-reset:dl}.dl-view-items li,.dl-resp-items li{padding:8px 0;border-bottom:1px solid var(--border)}.dl-view-main,.dl-resp-item-h{display:grid;grid-template-columns:minmax(84px,auto) 1fr auto;gap:4px 12px;align-items:start}.dl-view-main>*,.dl-resp-item-h>*{min-width:0;overflow-wrap:anywhere}.dl-resp-items .dl-resp-item-h{grid-template-columns:1fr auto;gap:2px 12px}.dl-resp-items .dl-resp-item-h .dl-kind{grid-column:1 / -1}.dl-view-items li.is-failed,.dl-resp-items li.is-failed{background:color-mix(in srgb,var(--red) 6%,transparent)}.dl-view-fail{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:4px 0 0 96px;font-size:13px}.dl-fail-check{text-transform:none;letter-spacing:normal;font-weight:400;color:var(--red);white-space:nowrap}.dl-fail-comment{width:100%;box-sizing:border-box;margin-top:6px;padding:8px 10px;border-radius:var(--r);border:1px solid color-mix(in srgb,var(--red) 45%,var(--border2));background:var(--bg3);color:var(--text);font-family:var(--sans);font-size:13px}.dl-fail-comment:focus{outline:none;border-color:var(--accent)}.dl-decision{flex-direction:column;gap:6px}.dl-undelivered{padding:10px 0;border-top:1px solid var(--border)}.dl-undelivered-list{margin:4px 0 0;padding-left:18px;font-size:13.5px}@media (max-width: 640px){.dl-view-main,.dl-resp-item-h{grid-template-columns:1fr auto}.dl-view-main .dl-kind,.dl-resp-item-h .dl-kind{grid-column:1 / -1}.dl-view-fail{margin-left:0}.dl-pick-filters select,.dl-pick-filters input[type=search]{flex:1 1 100%}}.dl-items th.doc-num,.dl-items td.doc-num{width:14mm;text-align:center}.dl-items th:first-child,.dl-items td:first-child{width:9mm}.dl-items .dl-subhead td{font-weight:600;background:#f3f4f7}.dl-sheet .doc-signs.dl-signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:10mm}.dl-sign-online{margin-top:1mm;font-size:9pt;color:#1f7a3d;text-align:center}.dl-cert-body{margin:8mm 0;font-size:12pt;line-height:1.9}.dl-footer{margin-top:4mm;font-style:italic}.dl-code{font-family:var(--mono, monospace)}.dl-accept-items{list-style:none;margin:0;padding:0}.dv-tags{display:inline-flex;flex-wrap:wrap;gap:4px}.dv-tag{display:inline-block;padding:1px 6px;border-radius:4px;border:1px solid var(--border2);font-size:11px;font-weight:600;white-space:nowrap;color:var(--text2)}.dv-tag-rent{border-color:color-mix(in srgb,var(--amber) 45%,transparent);color:var(--amber)}.form-field.dv-field{min-width:0;overflow:hidden}.dv-editor{min-width:0;border:1px solid var(--border2);border-radius:8px;padding:10px 12px}.dv-editor-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600}.dv-editor-wrap{overflow-x:auto}.dv-editor table{width:100%;border-collapse:collapse;font-size:13px}.dv-editor th{padding:4px 6px;font-size:11px;font-weight:600;color:var(--text3);text-align:left;white-space:nowrap}.dv-editor th.dv-group{border-bottom:1px solid var(--border2);text-align:center}.dv-editor td{padding:3px 6px;vertical-align:middle}.dv-editor td.dv-cat{font-weight:600;white-space:nowrap}.dv-editor input[type=number]{width:100%;min-width:62px;text-align:right}.dv-editor .dv-term input[type=number]{min-width:44px}.dv-editor .dv-cycle{min-width:96px}.dv-editor .dv-rent-first{border-left:1px solid var(--border2)}.dv-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dv-summary{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border2);font-size:13px}.dv-summary strong{font-variant-numeric:tabular-nums}.dv-summary-total{margin-left:auto;font-weight:700}.dv-manual{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:13px}.dv-manual input{max-width:180px;text-align:right}.dv-breakdown{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:13px}.dv-breakdown th,.dv-breakdown td{padding:5px 8px;border-bottom:1px solid var(--border2);text-align:left}.dv-breakdown th{font-size:11px;font-weight:600;color:var(--text3)}.dv-breakdown .dv-num{text-align:right}.dv-breakdown tfoot td{border-bottom:0;font-weight:600}.dv-empty{margin:0 0 14px;font-size:13px;color:var(--text2)}.dv-filter{min-width:170px}.psp{max-width:760px}.psp-h{margin:20px 0 8px;font-size:15px;font-weight:700}.psp-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:12px 0}.psp-kpis>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border, #2a3142);border-radius:8px}.psp-kpis b{font-size:18px}.psp-kpis span{font-size:12px;color:var(--muted, #8a93a6)}.psp-health-green{color:var(--green, #30a46c)}.psp-health-yellow{color:var(--amber, #f5a524)}.psp-health-red{color:var(--red, #e5484d)}.psp-phases,.psp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.psp-phase-head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:4px}.psp-dot{display:inline-block;width:10px;height:10px;border-radius:50%}.psp-bar{height:8px;border-radius:4px;background:color-mix(in srgb,var(--muted, #8a93a6) 25%,transparent);overflow:hidden;margin-bottom:3px}.psp-bar>div{height:100%;border-radius:4px}.psp-list li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid color-mix(in srgb,var(--muted, #8a93a6) 20%,transparent)}.psp-late{color:var(--red, #e5484d)}.psh-fresh{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding:10px;border:1px dashed var(--accent, #4f8cff);border-radius:8px}.psh-fresh input{width:100%}.iv-sheet{position:relative;display:flex;flex-direction:column;box-sizing:border-box;min-height:297mm;font-family:Sarabun,Noto Sans Thai,Arial,sans-serif;font-size:12.5px;line-height:1.45;color:#111;font-variant-numeric:tabular-nums}.iv-sheet table{width:100%;border-collapse:collapse}.iv-sheet .iv-head,.iv-sheet .iv-parties,.iv-sheet .iv-summary,.iv-sheet .iv-signs{break-inside:avoid}.iv-head{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;padding-bottom:8px;border-bottom:2px solid #111;margin-bottom:8px}.iv-org .doc-company-logo{float:left;max-height:14mm;max-width:32mm;margin:0 3mm 1mm 0}.iv-org-th{margin:0;font-size:17px;font-weight:700;line-height:1.6}.iv-org-en{margin:0 0 3px;font-size:11px;font-weight:600;color:#333}.iv-org-line{font-size:10.5px;line-height:1.45;color:#222}.iv-title-box{text-align:right;min-width:240px}.iv-title-th{margin:0;font-size:19px;font-weight:700;line-height:1.5}.iv-title-en{margin:0;font-size:11px;font-weight:600;letter-spacing:.3px}.iv-holder{font-size:12px;font-weight:700;margin-top:2px}.iv-set-note{font-size:9.5px;color:#444}.iv-stamp{display:inline-block;margin-top:4px;padding:1px 10px;border:2px solid #111;border-radius:4px;font-weight:700;font-size:12px;transform:rotate(-3deg)}.iv-parties{display:grid;grid-template-columns:1fr 230px;gap:10px;margin-bottom:8px}.iv-section-lb{font-size:10px;font-weight:700;letter-spacing:.3px;color:#444;margin-bottom:2px}.iv-bill{border:1px solid #bbb;border-radius:4px;padding:6px 9px}.iv-buyer-name{font-size:14px;font-weight:700;line-height:1.45}.iv-buyer-addr{white-space:pre-line;overflow-wrap:anywhere}.iv-buyer-meta{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:3px;font-size:11px;color:#222}.iv-docbox{border:1px solid #111;border-radius:4px;overflow:hidden}.iv-field{display:grid;grid-template-columns:105px 1fr;border-top:1px solid #ddd}.iv-field:first-child{border-top:none}.iv-lb{padding:3px 7px;font-size:10px;font-weight:700;background:#f1f1f1}.iv-val{padding:3px 7px;text-align:right;font-size:12px;overflow-wrap:anywhere}.iv-ref{margin-bottom:8px;table-layout:fixed}.iv-ref th,.iv-ref td{border:1px solid #ccc;padding:3px 7px;font-size:11px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.iv-ref th{background:#f1f1f1;font-size:9.5px;font-weight:700}.iv-items{margin-bottom:8px;flex:1}.iv-items tbody tr.iv-fill td{height:100%;background:transparent!important;padding:0}.iv-items thead th{background:#e6e6e6;border-top:1.5px solid #111;border-bottom:1.5px solid #111;padding:4px 6px;font-size:11px;font-weight:700;text-align:center;-webkit-print-color-adjust:exact;print-color-adjust:exact}.iv-items tbody td{padding:4px 6px;border-bottom:1px solid #ddd;vertical-align:top}.iv-items tbody tr:nth-child(2n) td{background:#fafafa}.iv-items tbody tr.iv-fill td{border-bottom:1.5px solid #111}.iv-row-header td{background:#f1f1f1!important}.iv-c-no{width:38px;text-align:center}.iv-c-qty,.iv-c-unit{width:56px;text-align:center}.iv-c-date{width:82px;text-align:center}.iv-c-price,.iv-c-amt{width:84px;text-align:right}.iv-desc{white-space:pre-line;overflow-wrap:anywhere}.iv-main{font-weight:700}.iv-sub{padding-left:12px}.iv-detail{padding-left:12px;font-size:11px;color:#333}.iv-summary{display:grid;grid-template-columns:1fr 310px;gap:12px;align-items:start}.iv-left{display:grid;gap:6px}.iv-box{border:1px solid #ccc;border-radius:4px;padding:5px 9px;font-size:11px}.iv-refs{display:flex;flex-wrap:wrap;gap:2px 14px;margin-bottom:8px;padding:4px 9px;border:1px solid #ccc;border-radius:4px;font-size:11.5px;break-inside:avoid}.iv-refs-lb{font-weight:700;font-size:10px;color:#444}.iv-qr{display:flex;align-items:center;gap:8px;margin-top:5px;padding-top:5px;border-top:1px dashed #bbb;break-inside:avoid}.iv-qr img,.iv-qr>div:first-child{flex:none}.iv-qr-text{font-size:11px;line-height:1.4}.iv-paynote{line-height:1.55}.iv-bank{line-height:1.5}.iv-muted{color:#555}.iv-sum td{white-space:nowrap;padding:3px 8px;border-bottom:1px solid #ddd;font-size:11.5px}.iv-sum td+td{text-align:right;width:95px}.iv-sum .iv-grand td{background:#111;color:#fff;font-size:14px;font-weight:700;padding:6px 8px;border-bottom:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.iv-sum .iv-due td{font-weight:700;border-top:1.5px solid #111}.iv-words{margin-top:6px;padding:4px 8px;border:1px solid #111;border-radius:4px;text-align:center;font-weight:700;font-size:12.5px;break-inside:avoid}.iv-signs{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;margin-top:auto;padding-top:16px;text-align:center}.iv-signs-3{grid-template-columns:repeat(3,1fr);gap:18px}.iv-line{padding:3px 0}.iv-tick{display:inline-block;width:11px;height:11px;border:1px solid #111;margin-right:3px;vertical-align:-1px}.iv-dots{display:inline-block;min-width:110px;border-bottom:1px dotted #111}.iv-dots.iv-short{min-width:60px}.iv-sign-text{font-size:10.5px;min-height:2.6em}.iv-sign-line{border-bottom:1px solid #111;height:26px;margin:0 12px}.iv-sign-role{font-size:10.5px;font-weight:700;margin-top:3px}.iv-sign-date{font-size:10.5px;margin-top:2px}.iv-foot{margin-top:10px;padding-top:5px;border-top:1px solid #ccc;font-size:9.5px;color:#444;text-align:center}.iv-watermark{position:absolute;top:38%;left:0;right:0;text-align:center;font-size:64px;font-weight:800;color:#b4000024;transform:rotate(-20deg);pointer-events:none;letter-spacing:4px}@media print{.print-portal .iv-sheet{font-family:Sarabun,Noto Sans Thai,Arial,sans-serif}.print-portal .iv-sheet.print-flow{min-height:268mm}.iv-sheet table.iv-items{break-inside:auto;page-break-inside:auto}.iv-sheet table.iv-ref,.iv-sheet table.iv-sum{break-inside:avoid}}.iv-tail{flex:none}.iv-parties-next{margin-bottom:8px}.iv-items tbody tr.iv-carry td{padding:4px 6px;font-weight:700;background:#f1f1f1;border-top:1px solid #999;border-bottom:1.5px solid #111;-webkit-print-color-adjust:exact;print-color-adjust:exact}.iv-items tbody tr.iv-carry td.iv-carry-lb{text-align:right;font-size:10.5px;color:#333}.iv-foot{display:flex;align-items:flex-end;gap:12px;text-align:left;flex:none}.iv-foot-text{flex:1;text-align:center}.iv-foot-no{white-space:nowrap;font-variant-numeric:tabular-nums}.iv-c-code{width:78px;font-size:10.5px;overflow-wrap:anywhere}.dpg{--dpg-line: var(--border2);--dpg-head: var(--bg2);--dpg-phase: var(--bg2);--dpg-muted: var(--text2);width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;line-height:1.35;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-sheet .dpg{--dpg-line: #c4c4c4;--dpg-head: #f3f4f6;--dpg-phase: #f7f8fa;--dpg-muted: #555;font-size:11px}.dpg th,.dpg td{border:1px solid var(--dpg-line);padding:3px 6px;vertical-align:middle;text-align:left}.dpg thead th{background:var(--dpg-head);font-weight:600;font-size:11px}.dpg .dpg-c-name{width:34%;overflow-wrap:anywhere}.dpg .dpg-c-pic{width:11%;color:var(--dpg-muted);overflow-wrap:anywhere}.dpg .dpg-c-when{width:14%;white-space:nowrap;color:var(--dpg-muted);font-variant-numeric:tabular-nums}.dpg .dpg-c-days{width:5%;padding-left:2px;padding-right:6px;text-align:right;white-space:nowrap;color:var(--dpg-muted);font-variant-numeric:tabular-nums}.dpg-phase .dpg-c-days{color:inherit}.dpg.dpg-nodates .dpg-c-name{width:40%}.dpg .dpg-c-track{height:20px;padding:0}.dpg-task .dpg-c-name{padding-left:20px}.dpg-phase td{background:var(--dpg-phase);font-weight:600}.dpg-phase .dpg-c-when{color:inherit}.dpg-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:-1px}.dpg-segs{position:relative;height:18px}.dpg-segs span{position:absolute;top:0;bottom:0;box-sizing:border-box;border-left:1px solid var(--dpg-line);padding-left:3px;overflow:hidden;white-space:nowrap;line-height:18px;font-weight:600}.dpg-segs span:first-child{border-left:0}.dpg-weeks span{padding-left:0;text-align:center;font-weight:400;color:var(--dpg-muted)}.dpg-track{position:relative;height:100%;min-height:20px}.dpg-line{position:absolute;top:0;bottom:0;border-left:1px solid var(--dpg-line);opacity:.7}.dpg-bar{position:absolute;top:50%;margin-top:-5px;height:10px;min-width:3px;border-radius:3px;box-sizing:border-box}.dpg-bar-phase{margin-top:-3px;height:6px;border-radius:1px;opacity:.85}.dpg-ms{position:absolute;top:50%;margin-top:-5px;width:10px;height:10px;margin-left:-1px;transform:rotate(45deg);transform-origin:center;outline:1.5px solid #fff}.dp-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:8px}.dp-head .leave-grow{flex:1}.dp-facts{font-size:13px}.dp-facts b{font-weight:600}.dp-note{margin:8px 0 0;font-size:12px;color:var(--text2);white-space:pre-wrap}.dp-scroll{overflow-x:auto}.dp-scroll .dpg{min-width:560px}.modal.dpe-modal{max-width:1080px;width:min(1080px,calc(100vw - 24px))}.dpe-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin-bottom:10px}.dpe-top .form-field{margin:0;min-width:180px}.dpe-top .dpe-tpl{flex:1 1 260px}.dpe-summary{margin:0 0 6px;font-size:13px}.dpe-push{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.dpe-phase{border:1px solid var(--border2);border-radius:var(--r2);margin-top:10px;overflow:hidden}.dpe-phase-h{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg2)}.dpe-phase-h input[type=color]{width:30px;height:28px;padding:1px;flex:none}.dpe-phase-h input[type=text]{flex:1;min-width:0;font-weight:600}.dpe-tasks{width:100%;border-collapse:collapse;font-size:13px}.dpe-tasks th{padding:4px 6px;font-size:11px;font-weight:600;color:var(--text2);text-align:left;white-space:nowrap}.dpe-tasks td{padding:3px 4px;vertical-align:middle}.dpe-tasks input,.dpe-tasks select{width:100%;min-width:0;box-sizing:border-box}.dpe-tasks .dpe-c-type{width:112px}.dpe-tasks .dpe-c-start{width:150px}.dpe-tasks .dpe-c-days{width:70px}.dpe-tasks .dpe-c-unit{width:124px}.dpe-nth{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);white-space:nowrap}.dpe-tasks .dpe-c-end{width:124px;white-space:nowrap;color:var(--text2);font-variant-numeric:tabular-nums}.dpe-tasks .dpe-c-pic{width:128px}.dpe-tasks .dpe-c-x{width:34px;text-align:right}.dpe-add{padding:4px 8px 8px}.dpe-err{color:var(--err, #c0392b);font-size:13px}.dpp-sheet{page:dealplan;width:1123px;min-height:0}.dpp-sheet .dpg .dpg-c-name{width:29%}.dpp-sheet .dpg .dpg-c-pic{width:9%}.dpp-sheet .dpg .dpg-c-when{width:12%}.dpp-sheet .dpg .dpg-c-days{width:4%}.dpp-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 14px;margin:0 0 10px;font-size:12px}.dpp-facts dt{color:#555;font-size:11px}.dpp-facts dd{margin:0;font-weight:600}.dpp-facts .dpp-wide{grid-column:span 2}.dpp-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 0;font-size:11px;color:#555}.dpp-legend .dpg-bar,.dpp-legend .dpg-ms{position:static;display:inline-block;margin-top:0;margin-right:5px;vertical-align:-1px;background:#555}.dpp-legend .dpg-bar{width:22px}.dpp-note{margin:10px 0 0;font-size:12px;white-space:pre-wrap}.dpp-sheet .doc-signs{margin-top:22px}@media print{@page dealplan{size:A4 landscape;margin:12mm}.print-portal .print-sheet.dpp-sheet{width:273mm}.dpp-sheet .dpg tbody{break-inside:auto}.dpp-sheet .dpg-phase{break-after:avoid;page-break-after:avoid}}.qt-sheet{--qt-ink: #0f172a;--qt-muted: #64748b;--qt-line: #e2e8f0;--qt-accent: #1e3a5f;--qt-accent-soft: #f0f4f8;font-size:11px;line-height:1.5;color:var(--qt-ink);display:flex;flex-direction:column}.qt-head{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding-bottom:10px;margin-bottom:10px;border-bottom:2px solid var(--qt-accent)}.qt-org-name{margin:6px 0 0;font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--qt-accent)}.qt-org-line{font-size:9.5px;line-height:1.45;margin-top:4px;color:#334155}.qt-title-block{text-align:right;min-width:188px}.qt-page-label{margin:0 0 4px;font-size:8px;font-weight:600;color:var(--qt-muted);letter-spacing:.04em;text-transform:uppercase}.qt-title-bar{display:inline-block;background:var(--qt-accent);color:#fff;font-weight:700;font-size:12px;padding:7px 16px;letter-spacing:.06em}.qt-title-th{margin:5px 0 0;font-size:11px;font-weight:600;color:#334155}.qt-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22%);gap:16px 16px;margin-bottom:8px;padding:10px 12px;background:var(--qt-accent-soft);border-radius:3px}.qt-fields-col{display:flex;flex-direction:column;gap:3px}.qt-fields-col-meta .qt-field{grid-template-columns:max-content minmax(0,1fr);column-gap:4px;font-size:9.5px}.qt-fields-col:not(.qt-fields-col-meta) .qt-field{grid-template-columns:max-content minmax(0,1fr);column-gap:4px}.qt-field{display:grid;grid-template-columns:118px 1fr;gap:6px;align-items:baseline;min-height:18px;font-size:10.5px}.qt-field-lb{font-weight:600;color:#334155;white-space:nowrap}.qt-field-val{color:var(--qt-ink);font-weight:500;white-space:pre-line;overflow-wrap:anywhere}.qt-customer-code{font-weight:600;color:var(--qt-accent);letter-spacing:.02em;white-space:nowrap}.qt-customer-code-mark{opacity:.85;margin-right:1px}.qt-rev-of{display:block;margin-top:2px;font-size:9px;font-weight:500;color:var(--qt-muted);line-height:1.35}.qt-field-gap{height:10px;flex:none}.qt-lead{margin:0 0 10px;font-size:10px;font-style:italic;color:var(--qt-muted)}.qt-items{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:8px;border:1px solid var(--qt-line);border-radius:2px;overflow:hidden}.qt-items th,.qt-items td{border:none;padding:3px 6px;vertical-align:top}.qt-items thead th{background:var(--qt-accent);color:#fff;font-size:9px;font-weight:600;text-align:center;letter-spacing:.03em;text-transform:uppercase;padding:6px 5px}.qt-items .qt-blank td{height:14px}.qt-items .qt-items-fill td{height:48mm;padding:0;vertical-align:top}.print-sheet.qt-sheet .qt-items{flex:1;min-height:0}.print-sheet.qt-sheet .qt-items-fill td{height:100%}.qt-items .qt-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.qt-items .qt-col-item{width:36px;text-align:center}.qt-items tbody .qt-col-item{color:var(--qt-muted)}.qt-items thead .qt-col-item{color:#fff}.qt-items .qt-col-desc{width:auto}.qt-items .qt-col-qty{width:44px}.qt-items .qt-col-unit{width:44px;text-align:center}.qt-items .qt-col-price{width:72px}.qt-items .qt-col-disc{width:44px}.qt-items .qt-col-net{width:72px}.qt-items .qt-col-ext{width:80px}.qt-items .qt-head-row td{font-weight:700;background:#f8fafc}.qt-items .qt-sub{padding-left:10px;color:#475569;font-size:10px}.qt-pay-block{margin:8px 0;padding:8px 10px 8px 12px;font-size:10px;line-height:1.55;white-space:pre-wrap;flex:none;background:#f8fafc;border-left:3px solid var(--qt-accent);color:#334155}.qt-pay-block .qt-pay-label{color:var(--qt-accent);font-weight:700;font-size:10.5px;margin-bottom:4px}.qt-foot-grid{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;margin-top:8px;flex:none}.qt-foot-box{padding:8px 10px;font-size:10px;line-height:1.55;background:#f8fafc;border-radius:3px;border:1px solid var(--qt-line)}.qt-foot-box dt{font-weight:700;display:inline;color:var(--qt-muted);font-size:9px;text-transform:uppercase;letter-spacing:.03em}.qt-foot-box dd{margin:0 0 6px;display:inline;color:var(--qt-ink)}.qt-foot-box .qt-foot-block{display:block;margin-top:6px;white-space:pre-wrap;color:#334155}.qt-sum{border-collapse:collapse;min-width:228px;font-size:10.5px;border:1px solid var(--qt-line);border-radius:3px;overflow:hidden}.qt-sum td{border:none;border-bottom:1px solid var(--qt-line);padding:5px 10px}.qt-sum tr:last-child td{border-bottom:none}.qt-sum .qt-sum-label{font-weight:600;color:#475569;background:#fff}.qt-sum .qt-sum-val{text-align:right;font-variant-numeric:tabular-nums;min-width:96px;font-weight:600}.qt-sum .qt-grand .qt-sum-label,.qt-sum .qt-grand .qt-sum-val{font-weight:700;background:var(--qt-accent);color:#fff}.qt-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px;padding-top:12px;border-top:1px solid var(--qt-line);text-align:center;font-size:9.5px;break-inside:avoid;flex:none}.qt-sign-title{font-weight:700;margin-bottom:26px;min-height:28px;color:#334155;line-height:1.35}.qt-sign-line{border-bottom:1px solid #94a3b8;margin:0 10px 5px;height:26px}.qt-sign-role{font-size:9px;color:var(--qt-muted)}.quote-terms-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid var(--qt-accent);padding-bottom:10px;margin-bottom:14px}.quote-terms-title{margin:0;font-size:13px;font-weight:700;line-height:1.45;max-width:520px;color:var(--qt-accent)}.quote-terms-meta{text-align:right;font-size:10px;line-height:1.5;color:var(--qt-muted)}.quote-terms-body{flex:1;font-size:10.5px;line-height:1.58;white-space:pre-wrap;color:#334155}.quote-terms-sheet{display:flex;flex-direction:column}.print-sheet.qt-sheet .qt-items.qt-set-list{flex:none;table-layout:auto}.qt-set-list td{padding:6px 8px;border-top:1px solid var(--qt-line)}.qt-set-list .qt-set-no{white-space:nowrap;font-weight:600}.qt-set-list .qt-num{text-align:right;white-space:nowrap}.qt-set-fill{flex:1}.qt-set-attach{margin:0;padding-left:16px}@media print{.qt-sheet{font-family:Sarabun,Noto Sans Thai,Arial,sans-serif}.qt-items thead th,.qt-sum .qt-grand .qt-sum-label,.qt-sum .qt-grand .qt-sum-val,.qt-title-bar,.qt-fields{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.qt-signqr{display:flex;align-items:center;gap:10px;margin-top:8px;padding:6px 8px;border:1px solid #bbb;border-radius:4px;font-size:10.5px;line-height:1.4;break-inside:avoid}.qt-signqr img,.qt-signqr>div:first-child{flex:none}.qt-recur{width:100%;margin:6px 0;border-collapse:collapse;font-size:9pt}.qt-recur caption{padding-bottom:2px;font-weight:700;text-align:left}.qt-recur th,.qt-recur td{padding:2px 6px;border:1px solid #999;text-align:left}.qt-recur .qt-num{text-align:right}.qt-end-keep,.qt-foot-grid,.qt-pay-block,.qt-recur{break-inside:avoid;page-break-inside:avoid}@media print{.print-portal .print-sheet.qt-sheet.print-flow{min-height:268mm}.qt-items thead{display:table-header-group}}.qt-carry td{padding-top:4px;padding-bottom:4px;font-weight:600;border-top:1px solid var(--qt-line);background:var(--qt-accent-soft);-webkit-print-color-adjust:exact;print-color-adjust:exact}.qt-carry .qt-carry-lb{text-align:right;color:var(--qt-muted);font-size:9.5px}.qt-parties-next{margin-bottom:8px}.qt-page-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:6px;padding-top:4px;border-top:1px solid var(--qt-line);font-size:8.5px;line-height:1.35;color:var(--qt-muted);flex:none}.qt-page-foot-no{white-space:nowrap;font-variant-numeric:tabular-nums}.qt-measure{position:absolute;left:-10000px;top:0;visibility:hidden;pointer-events:none}.qt-measure .print-sheet{display:block;min-height:0;box-shadow:none}.qt-measure [data-m]{display:flow-root}.qt-measure tr[data-m]{display:table-row}.ma-pill{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid transparent;font-size:11px;font-weight:600;white-space:nowrap}.ma-pill-ok{border-color:color-mix(in srgb,var(--green) 45%,transparent);color:var(--green)}.ma-pill-warn{border-color:color-mix(in srgb,var(--amber) 45%,transparent);color:var(--amber)}.ma-pill-danger{border-color:color-mix(in srgb,var(--red) 45%,transparent);color:var(--red)}.ma-pill-draft,.ma-pill-off{border-color:var(--border2);color:var(--text2)}.ma-left-warn{color:var(--amber);font-weight:600}.ma-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:0 0 14px}.ma-facts dt{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:2px}.ma-facts dd{margin:0;font-size:13px}.ma-note{margin:0 0 14px;padding:10px 12px;border-left:3px solid var(--border2);background:var(--bg2);font-size:13px;white-space:pre-wrap}.ma-sub{margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--border2);font-size:13px;font-weight:600;color:var(--text2)}.ma-items,.ma-events{list-style:none;margin:0;padding:0;font-size:13px}.ma-items li,.ma-events li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border2)}.ma-items li:last-child,.ma-events li:last-child{border-bottom:none}.ma-item-kind{flex-shrink:0;min-width:68px;font-size:11px;color:var(--text3)}.ma-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ma-event-at{flex-shrink:0;min-width:92px;color:var(--text3)}.ma-file-link{flex:1;min-width:0;padding:0;border:none;background:none;font:inherit;color:var(--accent);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ma-file-link:hover{text-decoration:underline}.ma-item-add .leave-file-btn{flex:0 0 auto}.ma-item-add{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.ma-item-add select,.ma-item-add input{min-width:0;flex:1 1 180px}.ma-item-add input.ma-item-num{flex:0 1 130px}.ma-set-sub{grid-column:1 / -1;margin:4px 0 0;padding-top:14px;border-top:1px solid var(--border2);font-size:13px;font-weight:600;color:var(--text2)}.ma-quota-panel{padding-top:14px}.ma-quota-bar{height:10px;border-radius:6px;background:var(--bg2);border:1px solid var(--border2);overflow:hidden;margin:6px 0 4px}.ma-quota-bar>span{display:block;height:100%;background:var(--accent, #2f6fed)}.ma-quota-bar.is-warn>span{background:#d98a00}.ma-quota-bar.is-over>span{background:#d23b3b}.ma-quota-over{color:#d23b3b;font-weight:600}.ma-quota-entries li{flex-wrap:wrap}.ma-quota-entries .ma-quota-min{margin-left:auto;font-variant-numeric:tabular-nums}.ma-quota-row{display:flex;gap:8px}.ma-quota-row input{flex:1 1 auto;min-width:0}.ma-quota-row select{flex:0 0 110px}.ma-actions{flex-wrap:wrap;gap:8px}@media (max-width: 640px){.ma-facts{grid-template-columns:1fr}}.ma-print-pick{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:13px}.ma-print-pick select{min-width:0;flex:0 1 320px}@media print{.print-portal .ma-print-pick{display:none!important}.print-portal .ma-sheet.print-flow{display:block;page:ma-doc}@page ma-doc{size:A4;margin:14mm 12mm;@bottom-right{content:"หน้า " counter(page) " / " counter(pages);font-family:Sarabun,Noto Sans Thai,Arial,sans-serif;font-size:9pt;color:#6b7280}}}.ma-doc-lead{margin:0 0 12px;font-size:13px;line-height:1.7;text-indent:2em}.ma-doc-clauses{white-space:pre-wrap;font-size:13px;line-height:1.75}.ma-doc-note,.ma-doc-footer{margin:8px 0 0}.ma-doc-signs{margin-top:26px}.doc-grid .ma-doc-qty{width:120px;text-align:center}.doc-grid .ma-doc-amt{width:120px;text-align:right;white-space:nowrap}.ma-tpl-list{margin-top:8px}.ma-tpl-edit{margin-top:14px;padding-top:14px;border-top:1px solid var(--border2)}.ma-tpl-edit textarea{font-family:var(--mono, ui-monospace, monospace);font-size:12.5px;line-height:1.7}.ma-tpl-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.qt-items .mq-col-price{width:96px}.qt-items .mq-col-rate{width:84px;text-align:center}.qt-items .mq-col-qty{width:48px;text-align:center}.qt-items .mq-col-lic{width:84px;text-align:center}.qt-items .mq-due{color:var(--qt-accent);font-weight:600}.mq-lead{font-style:normal}.mq-attach-sum{display:flex;justify-content:flex-end;flex:none}.mq-attach-sum .qt-sum{min-width:320px}.qt-pay-block+.qt-pay-block{margin-top:0}.mq-panel{padding-top:14px}.mq-row-act{white-space:nowrap;text-align:right;width:1%}.mq-row-act>.btn+.btn{margin-left:6px}.mq-wide{grid-column:1 / -1}.mq-lines-wrap{min-width:0;overflow-x:auto}table.mq-lines{table-layout:fixed;width:100%;min-width:660px}.mq-lines td{padding:4px;vertical-align:middle}.mq-lines input{width:100%;min-width:0;box-sizing:border-box}.mq-lines input[type=number]{text-align:right}.mq-lines .mq-l-kind{width:124px}.mq-lines .mq-l-num{width:80px}.mq-lines .mq-l-price{width:120px}.mq-lines .mq-l-act{width:112px;white-space:nowrap;text-align:right}.mq-line-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.mq-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.mq-totals>div{padding:8px 10px;border:1px solid var(--border2);border-radius:6px}.mq-totals dt{font-size:11px;color:var(--text3)}.mq-totals dd{margin:2px 0 0;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.mq-totals .mq-totals-grand{border-color:var(--accent, var(--border2))}@media (max-width: 640px){.mq-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}.mq-sub{grid-column:1 / -1;margin:4px 0 0;padding-top:14px;border-top:1px solid var(--border2);font-size:13px;font-weight:600;color:var(--text2)}.mq-lines th.mq-l-num,.mq-lines th.mq-l-price{text-align:right;white-space:normal;letter-spacing:0;line-height:1.25;vertical-align:bottom}.mq-periods{list-style:none;margin:0;padding:0;border:1px solid var(--border2);border-radius:6px}.mq-periods li{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;font-size:13px}.mq-periods li+li{border-top:1px solid var(--border2)}.mq-periods strong{font-variant-numeric:tabular-nums}.mq-hint{margin:-4px 0 0}.rt-filter{min-width:150px}.rt-table{margin-bottom:14px}.rt-rounds{max-height:320px;overflow-y:auto;margin-bottom:14px;border:1px solid var(--border2);border-radius:8px}.rt-rounds .rt-table{margin-bottom:0}.rt-rounds thead th{position:sticky;top:0;background:var(--bg2)}.rt-events{margin:0 0 14px;padding-left:18px;font-size:13px}.rt-events li{padding:2px 0}.form-field.rt-items-field{min-width:0;overflow:hidden;border:1px solid var(--border2);border-radius:8px;padding:10px 12px}.rt-items-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600}.rt-items-wrap{overflow-x:auto}.rt-items{width:100%;border-collapse:collapse;font-size:13px}.rt-items th{padding:4px 6px;font-size:11px;font-weight:600;color:var(--text3);text-align:left;white-space:nowrap}.rt-items td{padding:3px 6px;vertical-align:middle}.rt-items th.table-num,.rt-items td.table-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.rt-items input{width:100%;min-width:60px}.rt-items td:nth-child(2) input{min-width:150px}.rt-items .rt-col-cat{min-width:108px}.rt-items .rt-col-num input{text-align:right;min-width:70px}.rt-items .rt-col-unit input{min-width:56px}.rt-link{padding:0;border:0;background:none;color:var(--accent, #2563eb);font:inherit;text-decoration:underline;cursor:pointer}.rt-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400}.rt-check input{width:auto}.rt-rev-note{margin:0;font-size:13px}.rt-rev-h{margin:0;padding:12px 16px 8px}.rt-rev-foot{margin:0;padding:8px 16px 12px;font-size:12px}.rt-rev-cats{display:grid;gap:8px}.rt-rev-cat{display:grid;grid-template-columns:90px minmax(80px,1fr) minmax(150px,auto);align-items:center;gap:12px;font-size:13px}.rt-rev-cat-name{font-weight:600}.rt-rev-cat-val{text-align:right;font-variant-numeric:tabular-nums}.rt-rev-bar{display:block;height:8px;border-radius:4px;background:var(--bg2);overflow:hidden}.rt-rev-bar>span{display:block;height:100%;border-radius:4px;background:var(--accent)}.rt-rev-barcell{width:30%;min-width:80px}.rt-rev-details{background:var(--bg2);font-size:12px}.rt-rev-detail{display:inline-block;margin:2px 16px 2px 0}.ho-label{font-size:12px;color:var(--text2)}.ho-callout{margin:0;padding:8px 12px;border-radius:var(--r);font-size:13px;background:color-mix(in srgb,var(--green) 10%,transparent);border:1px solid color-mix(in srgb,var(--green) 35%,transparent)}.ho-callout-warn{background:color-mix(in srgb,var(--amber) 10%,transparent);border-color:color-mix(in srgb,var(--amber) 40%,transparent)}.ho-callout-err{background:color-mix(in srgb,var(--red) 10%,transparent);border-color:color-mix(in srgb,var(--red) 40%,transparent)}.ho-send{display:grid;gap:10px}.ho-dept{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg2)}.ho-dept-off{opacity:.75}.ho-dept-h{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 12px;cursor:pointer}.ho-dept-h input{width:16px;height:16px;accent-color:var(--accent)}.ho-dept-h>span:nth-child(2){display:grid;min-width:0}.ho-why{font-size:12px;color:var(--text2)}.ho-to{font-size:12px;color:var(--text3);white-space:nowrap}.ho-dept-b{border-top:1px dashed var(--border2);padding:10px 12px 12px 38px;display:grid;gap:8px}.ho-dept-fields{display:grid;grid-template-columns:170px 1fr;gap:10px}.ho-lines{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px}.ho-lines li{display:flex;gap:8px;align-items:baseline}.ho-line-desc{flex:1;min-width:0}.ho-unsent{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.ho-panel{display:grid;gap:10px}.ho-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px}.ho-card{position:relative;display:grid;gap:3px;padding:9px 11px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg2);min-width:0}.ho-card-h{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:13px}.ho-card-s{font-size:12px;color:var(--text2);overflow-wrap:anywhere}.ho-card-ref{font-size:12px;font-family:var(--mono);color:var(--accent2)}.ho-card-x{justify-self:start;padding-left:0}.ho-ask{display:grid;gap:8px;padding:10px 12px;border-radius:var(--r2);border:1px solid color-mix(in srgb,var(--red) 40%,transparent);background:color-mix(in srgb,var(--red) 6%,var(--bg2))}.ho-ask-q p{margin:4px 0 0;white-space:pre-wrap}.ho-ask-a{display:flex;gap:8px;align-items:flex-end}.ho-ask-a textarea{flex:1;min-width:0}.ho-files{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ho-file{display:inline-flex;align-items:center}.ho-file-add{cursor:pointer}.ho-tl-wrap summary{cursor:pointer;font-size:13px;color:var(--text2)}.ho-tl{list-style:none;margin:8px 0 0;padding:0;display:grid}.ho-tl li{display:grid;grid-template-columns:112px 14px 1fr;gap:10px;padding-bottom:10px;position:relative}.ho-tl li:after{content:"";position:absolute;left:128px;top:16px;bottom:0;width:2px;background:var(--border2)}.ho-tl li:last-child:after{display:none}.ho-tl-when{font-size:12px;color:var(--text3);text-align:right;font-variant-numeric:tabular-nums}.ho-tl-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--border3);z-index:1}.ho-tl-ok{background:var(--green)}.ho-tl-info{background:var(--accent)}.ho-tl-warn{background:var(--red)}.ho-tl-what{font-size:13px;min-width:0}.ho-tl-msg{display:block;margin-top:2px;padding-left:8px;border-left:3px solid var(--border3);color:var(--text2);white-space:pre-wrap;overflow-wrap:anywhere}.ho-track .ho-track-c{text-align:center;white-space:nowrap}.ho-late{color:var(--red)}.ho-inbox{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:14px;align-items:start}.ho-list{padding:0;overflow:hidden;display:grid}.ho-list-empty{padding:12px}.ho-list-item{display:grid;gap:2px;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--border);border-left:3px solid transparent;background:transparent;color:inherit;font:inherit;cursor:pointer}.ho-list-item:last-child{border-bottom:0}.ho-list-item:hover,.ho-list-item.on{background:var(--bg3)}.ho-list-item.on{border-left-color:var(--accent)}.ho-li-r1{display:flex;justify-content:space-between;gap:8px;align-items:center}.ho-li-r1 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ho-li-r2{font-size:12px;color:var(--text2)}.ho-detail{min-width:0}.ho-task{display:grid;gap:10px}.ho-task-h{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}.ho-task-h h2{margin:0;font-size:16px}.ho-msgs{display:grid;gap:6px}.ho-msgs .ma-note{margin:0}.ho-others{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0;font-size:12.5px}.ho-actions{justify-content:flex-end}.ho-open{display:grid;gap:8px;padding:12px;border-radius:var(--r2);border:1px solid color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 5%,var(--bg2))}.ho-open p{margin:0}.ho-check{display:flex;gap:8px;align-items:center;font-size:13px}.ho-check input{width:16px;height:16px;accent-color:var(--accent)}.ho-open-note{display:flex;gap:8px;align-items:center}.ho-open-note input{flex:1;min-width:0}@media (max-width: 960px){.ho-inbox{grid-template-columns:1fr}.ho-detail-sel{order:-1}}@media (max-width: 600px){.ho-dept-fields{grid-template-columns:1fr}.ho-dept-b{padding-left:12px}.ho-tl li{grid-template-columns:14px 1fr}.ho-tl-when{grid-column:2;text-align:left;order:-1}.ho-tl li:after{left:6px}.ho-ask-a,.ho-open-note{flex-direction:column;align-items:stretch}}.ho-units{display:flex;flex-direction:column;gap:14px}.ho-unit+.ho-unit{border-top:1px solid var(--border);padding-top:12px}.ho-unit-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:8px}.sales-doc .doc-table{font-size:11.5px}.sales-doc .doc-table th,.sales-doc .doc-table td{padding:3px 6px}.sales-doc .doc-h3{margin:12px 0 4px}.sales-doc-key{table-layout:fixed}.sales-doc-key .doc-small{font-weight:400}.sales-doc-months td:first-child,.sales-doc-months th:first-child{width:28%}.sales-doc-short{font-weight:700}.sales-doc .doc-write-line{margin:0 0 10px;border-bottom:1px dotted #111;height:18px}.rel-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 900px){.rel-layout{grid-template-columns:minmax(0,1fr)}}.rel-side{display:flex;flex-direction:column;gap:8px;padding:12px}.rel-side input[type=search]{width:100%}.rel-sw{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;text-align:left;color:var(--text2);background:transparent;border:1px solid transparent;border-radius:var(--r2);cursor:pointer}.rel-sw:hover{background:var(--bg3)}.rel-sw[aria-current=true]{color:var(--text);background:var(--bg3);border-color:var(--border2)}.rel-sw-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--accent2)}.rel-sw-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rel-sw-ver{font-family:var(--mono);font-size:12px;color:var(--text3)}.rel-sw-off .rel-sw-name{color:var(--text3)}.rel-ver{font-family:var(--mono);font-weight:600}.rel-badge{display:inline-block;padding:1px 8px;font-size:12px;white-space:nowrap;border-radius:999px;border:1px solid var(--border2);color:var(--text2)}.rel-badge-planned,.rel-badge-in_dev{color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 40%,var(--border))}.rel-badge-in_qa,.rel-badge-pending_approval{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 40%,var(--border))}.rel-badge-released,.rel-ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,var(--border))}.rel-badge-withdrawn,.rel-bad{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,var(--border))}.rel-badge-cancelled,.rel-row-gone td{color:var(--text3)}.rel-row-gone .rel-ver{text-decoration:line-through}.rel-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.rel-head h2{margin:0;font-size:18px}.rel-steps{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px;padding:0;list-style:none;font-size:12px}.rel-steps li{padding:3px 10px;color:var(--text3);border:1px solid var(--border);border-radius:999px}.rel-steps li[aria-current=step]{color:var(--text);border-color:var(--accent2);background:color-mix(in srgb,var(--accent2) 10%,transparent)}.rel-blockers{margin:10px 0 0;padding:10px 14px 10px 30px;font-size:13px;color:var(--text2);background:color-mix(in srgb,var(--amber) 8%,transparent);border:1px solid color-mix(in srgb,var(--amber) 35%,var(--border));border-radius:var(--r3)}.rel-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.rel-form textarea{width:100%;min-height:72px}.rel-notes textarea{width:100%;min-height:260px;font-family:var(--mono);font-size:13px}.rel-preview{padding:12px 16px;font-size:14px;line-height:1.6;border:1px solid var(--border);border-radius:var(--r3)}.rel-allnotes article+article{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.rel-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.rel-inline input[type=text],.rel-inline input[type=url]{flex:1;min-width:180px}.rel-err{margin:10px 0 0;padding:10px 14px;font-size:13px;color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent);border:1px solid color-mix(in srgb,var(--red) 35%,var(--border));border-radius:var(--r3)}.rel-events{margin:0;padding:0;list-style:none;font-size:13px}.rel-events li{padding:8px 0;border-bottom:1px solid var(--border)}.menu-btn{position:relative;display:inline-block}.menu-btn-list{position:absolute;top:calc(100% + 4px);right:0;z-index:30;min-width:200px;padding:4px;border:1px solid var(--border2);border-radius:10px;background:var(--bg3);box-shadow:0 8px 24px #00000059}.menu-btn-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.menu-btn-item:hover,.menu-btn-item:focus-visible{background:#7f7f7f29}.menu-btn-item.is-active{font-weight:600}.menu-btn-count{display:inline-block;min-width:18px;margin-left:6px;padding:0 6px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center}.print-modal-body .env-sheet,.print-portal .env-sheet{--env-w: 241.3mm;--env-h: 104.8mm;--from-top: 6mm;--from-left: 8mm;--from-fs: 8pt;--to-left: 100mm;--to-top: 40mm;--to-w: 125mm;--to-fs: 11pt;width:var(--env-w);max-width:100%;min-height:0;height:var(--env-h);padding:0;box-shadow:0 1px 4px #0000002e;position:relative;overflow:hidden;font-family:Sarabun,Noto Sans Thai,Arial,sans-serif;color:#111;background:#fff}.env-sheet[data-size=c10][data-pos=window]{--to-left: 22mm;--to-top: 40mm;--to-w: 100mm}.env-sheet[data-size=b5][data-orient=landscape]{--env-w: 250mm;--env-h: 176mm;--from-top: 10mm;--from-left: 12mm;--from-fs: 10pt;--to-left: 62mm;--to-top: 66mm;--to-w: 160mm;--to-fs: 15pt}.env-sheet[data-size=b5][data-orient=portrait]{--env-w: 176mm;--env-h: 250mm;--from-top: 10mm;--from-left: 12mm;--from-fs: 10pt;--to-left: 24mm;--to-top: 105mm;--to-w: 130mm;--to-fs: 15pt}.env-sheet[data-size=a4][data-orient=landscape]{--env-w: 297mm;--env-h: 210mm;--from-top: 12mm;--from-left: 14mm;--from-fs: 11pt;--to-left: 78mm;--to-top: 80mm;--to-w: 190mm;--to-fs: 18pt}.env-sheet[data-size=a4][data-orient=portrait]{--env-w: 210mm;--env-h: 297mm;--from-top: 12mm;--from-left: 14mm;--from-fs: 11pt;--to-left: 30mm;--to-top: 130mm;--to-w: 150mm;--to-fs: 18pt}.env-from{position:absolute;top:var(--from-top);left:var(--from-left);max-width:45%;font-size:var(--from-fs);line-height:1.45;color:#334155}.env-from-name{font-weight:700;color:#0f172a}.env-to{position:absolute;left:var(--to-left);top:var(--to-top);width:var(--to-w);font-size:var(--to-fs);line-height:1.55}.env-to-name{font-weight:700;font-size:1.1em;margin-bottom:2mm}.env-to-addr{white-space:pre-line}.env-to-attn{margin-top:2mm;font-size:.9em}.env-doc-ref{position:absolute;right:8mm;bottom:5mm;max-width:95mm;font-size:7.5pt;color:#64748b;text-align:right;line-height:1.35}.print-modal-body .env-sheet[data-size=b5],.print-modal-body .env-sheet[data-size=a4]{zoom:.62}.print-modal-body .lbl-sheet,.print-portal .lbl-sheet{--lb-w: 99.1mm;--lb-h: 38.1mm;--lb-cols: 2;--lb-top: 15.1mm;--lb-left: 4.65mm;--lb-gap-x: 2.5mm;--lb-fs-name: 11pt;--lb-fs-addr: 9.5pt;--lb-fs-from: 6.5pt;--lb-pw: 210mm;--lb-ph: 297mm;width:var(--lb-pw);height:var(--lb-ph);min-width:0!important;flex:none;max-width:100%;min-height:0;padding:0;margin-bottom:8px;display:block;position:relative;overflow:hidden;font-family:Sarabun,Noto Sans Thai,Arial,sans-serif;color:#111;background:#fff;box-shadow:0 1px 4px #0000002e}.lbl-sheet[data-lb=lb3x8]{--lb-w: 63.5mm;--lb-h: 33.9mm;--lb-cols: 3;--lb-top: 12.9mm;--lb-left: 7.2mm;--lb-fs-name: 9pt;--lb-fs-addr: 7.5pt;--lb-fs-from: 5.5pt}.lbl-sheet[data-sheet=roll]{--lb-top: 0mm;--lb-left: 0mm;--lb-gap-x: 0mm;--lb-cols: 1;--lb-pw: var(--lb-w);--lb-ph: var(--lb-h)}.lbl-sheet[data-lb=lb100x150]{--lb-w: 100mm;--lb-h: 150mm;--lb-fs-name: 18pt;--lb-fs-addr: 14pt;--lb-fs-from: 9pt}.lbl-sheet[data-lb=lb80x50]{--lb-w: 80mm;--lb-h: 50mm;--lb-fs-name: 12pt;--lb-fs-addr: 9.5pt;--lb-fs-from: 7pt}.lbl-sheet[data-lb=lb50x30]{--lb-w: 50mm;--lb-h: 30mm;--lb-fs-name: 8.5pt;--lb-fs-addr: 6.5pt;--lb-fs-from: 5pt}.lbl-grid{display:grid;grid-template-columns:repeat(var(--lb-cols),var(--lb-w));grid-auto-rows:var(--lb-h);column-gap:var(--lb-gap-x);padding:var(--lb-top) 0 0 var(--lb-left)}.lbl-cell{box-sizing:border-box;padding:2.5mm 3.5mm;overflow:hidden;line-height:1.35;break-inside:avoid}.lbl-sheet[data-lb=lb50x30] .lbl-cell{padding:1.5mm 2mm}.lbl-sheet[data-lb=lb50x30] .lbl-from-addr{display:none}.lbl-from{font-size:var(--lb-fs-from);color:#475569;line-height:1.25;margin-bottom:1.2mm;max-height:2.6em;overflow:hidden}.lbl-to-name{font-size:var(--lb-fs-name);font-weight:700}.lbl-to-addr{font-size:var(--lb-fs-addr);white-space:pre-line}.lbl-to-attn{font-size:var(--lb-fs-addr);margin-top:.8mm}.print-modal-body .lbl-cell{outline:1px dashed #cbd5e1;outline-offset:-1px}.print-modal-body .lbl-cell-empty{background:repeating-linear-gradient(45deg,#f8fafc,#f8fafc 6px,#f1f5f9 6px,#f1f5f9 12px)}.print-modal-body .lbl-sheet[data-sheet=a4]{zoom:.62}.print-tools .env-edit{flex:1 1 100%;display:grid;grid-template-columns:1fr 1.6fr 1fr 1fr;gap:8px}.print-tools .env-edit textarea{resize:vertical}.print-tools .env-sender{flex:1 1 100%;display:grid;gap:4px}.print-tools .env-sender textarea{resize:vertical}.env-from-addr{white-space:pre-line}.print-tools .env-prior{flex:1 1 100%;font-size:12.5px;color:var(--muted)}.print-tools .env-prior-err{color:var(--err, #b91c1c)}@media print{@page env-c10{size:241.3mm 104.8mm;margin:0}@page env-b5-l{size:250mm 176mm;margin:0}@page env-b5-p{size:176mm 250mm;margin:0}@page env-a4-l{size:297mm 210mm;margin:0}@page env-a4-p{size:210mm 297mm;margin:0}.print-portal .print-sheet.env-sheet{width:var(--env-w)!important;height:var(--env-h)!important;min-height:0!important;margin:0;box-shadow:none;overflow:visible}.print-portal .env-sheet[data-page=env-c10]{page:env-c10}.print-portal .env-sheet[data-page=env-b5-l]{page:env-b5-l}.print-portal .env-sheet[data-page=env-b5-p]{page:env-b5-p}.print-portal .env-sheet[data-page=env-a4-l]{page:env-a4-l}.print-portal .env-sheet[data-page=env-a4-p]{page:env-a4-p}@page env-lb2x7{size:210mm 297mm;margin:0}@page env-lb3x8{size:210mm 297mm;margin:0}@page env-lb100x150{size:100mm 150mm;margin:0}@page env-lb80x50{size:80mm 50mm;margin:0}@page env-lb50x30{size:50mm 30mm;margin:0}.print-portal .lbl-sheet[data-page=env-lb2x7]{page:env-lb2x7}.print-portal .lbl-sheet[data-page=env-lb3x8]{page:env-lb3x8}.print-portal .lbl-sheet[data-page=env-lb100x150]{page:env-lb100x150}.print-portal .lbl-sheet[data-page=env-lb80x50]{page:env-lb80x50}.print-portal .lbl-sheet[data-page=env-lb50x30]{page:env-lb50x30}.print-portal .print-sheet.lbl-sheet{width:var(--lb-pw)!important;height:var(--lb-ph)!important;min-height:0!important;padding:0!important;margin:0;box-shadow:none;border-radius:0;overflow:hidden}.print-portal .lbl-sheet+.lbl-sheet{break-before:page;page-break-before:always}.print-portal .env-sheet+.env-sheet{break-before:page;page-break-before:always}}.iv-verify{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:9.5px;line-height:1.4;color:#333;break-inside:avoid}.iv-verify img,.iv-verify>div:first-child{flex:none}.pv-table td:nth-child(2),.pv-table th:nth-child(2){white-space:nowrap;min-width:112px}.pv-table .pv-sel{width:32px;text-align:center}.pv-docno{padding:0;border:0;background:none;color:var(--accent2);font:inherit;font-weight:600;white-space:nowrap;cursor:pointer}.pv-docno:hover{text-decoration:underline}.pv-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:132px}.cv-evidence{display:inline-block;margin-right:14px;white-space:nowrap}.cv-declare{margin:10px 0 0}.cv-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;background:var(--accent2);color:#fff;font-size:11px;font-weight:600;vertical-align:middle}.sales-quote-modal .sales-items.cv-lines{min-width:560px}.sales-quote-modal .sales-items-wrap:has(.cv-lines){overflow-x:auto}.cn-ref{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--border2);border-radius:8px;background:var(--bg2)}.cn-ref>div{display:flex;flex-direction:column;gap:2px;min-width:0}.cn-mode{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}.cn-num{width:96px;text-align:right}.cn-line-off td{color:var(--text2)}.cn-hint{margin:6px 0 0;font-size:.85em}.cn-sum{margin:0 0 12px auto;min-width:min(380px,100%);border-collapse:collapse}.cn-sum td{padding:3px 0 3px 16px}.cn-sum td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cn-sum-grand td{border-top:1px solid var(--border2);font-weight:700}.cn-sum-refund td{color:var(--amber);font-weight:600}.cn-nowrap{white-space:nowrap}.cn-reason-cell{max-width:150px}.acct-inv-pay-credited{border-color:color-mix(in srgb,var(--accent) 38%,var(--border2));background:color-mix(in srgb,var(--accent) 10%,var(--bg2));color:var(--accent2)}.print-sheet.wht-sheet{padding:5mm 8mm;font-size:9pt;line-height:1.3;font-family:Sarabun,TH Sarabun New,Noto Sans Thai,Arial,sans-serif;min-height:0;justify-content:flex-start}.wht-sheet table{table-layout:auto}.wht-sheet th,.wht-sheet td{color:#000}.wht-cb{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border:1px solid #000;font-size:9pt;font-weight:700;flex-shrink:0}.wht-cb-light{border-color:#ccc;width:11px;height:11px}.wht-seq{display:inline-block;min-width:60px;height:16px;border:1px solid #888;vertical-align:middle;text-align:center;font-weight:400}.wht-stamp{border:1.5px solid #bbb;border-radius:50%;width:80px;height:80px;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:8pt;color:#888;line-height:1.5;text-align:center}.wht-banner{margin:0 0 4px;padding:3px 8px;border:1px dashed #c2410c;color:#c2410c;text-align:center;font-size:9pt}@media print{.print-portal .print-sheet.wht-sheet{padding:0}}.acct-inv-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.acct-inv-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r2);border:1px solid var(--border2);font-size:11px;font-weight:600;line-height:1.25;white-space:nowrap}.acct-inv-pill svg{flex-shrink:0;opacity:.95}.acct-inv-doc-draft{border-color:var(--border2);background:color-mix(in srgb,var(--text2) 8%,var(--bg2));color:var(--text2)}.acct-inv-doc-void{border-color:color-mix(in srgb,var(--text3) 40%,var(--border2));background:color-mix(in srgb,var(--text3) 10%,var(--bg2));color:var(--text3)}.acct-inv-doc-issued{border-color:color-mix(in srgb,var(--accent) 38%,var(--border2));background:color-mix(in srgb,var(--accent) 12%,var(--bg2));color:var(--accent2)}.acct-inv-pay-paid{border-color:color-mix(in srgb,var(--green) 40%,var(--border2));background:color-mix(in srgb,var(--green) 10%,var(--bg2));color:var(--green)}.acct-inv-pay-partial{border-color:color-mix(in srgb,var(--amber) 45%,var(--border2));background:color-mix(in srgb,var(--amber) 12%,var(--bg2));color:var(--amber)}.acct-inv-pay-unpaid{border-color:color-mix(in srgb,var(--text2) 35%,var(--border2));background:color-mix(in srgb,var(--bg3) 80%,var(--bg2));color:var(--text)}.acct-inv-pay-overdue{border-color:color-mix(in srgb,var(--red) 42%,var(--border2));background:color-mix(in srgb,var(--red) 12%,var(--bg2));color:var(--red)}.acct-queue-ready{border-color:color-mix(in srgb,var(--green) 40%,var(--border2));background:color-mix(in srgb,var(--green) 10%,var(--bg2));color:var(--green)}.acct-queue-wait{border-color:color-mix(in srgb,var(--amber) 45%,var(--border2));background:color-mix(in srgb,var(--amber) 12%,var(--bg2));color:var(--amber)}.acct-queue-ready-note{max-width:260px;white-space:normal}.acct-queue-ready-pick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.acct-queue-ready-log{margin-top:14px;border-top:1px solid var(--border2);padding-top:10px}.acct-queue-ready-log-h{font-size:12px;font-weight:600;color:var(--text2);margin-bottom:6px}.acct-queue-ready-log ul{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.acct-queue-ready-log li{display:flex;align-items:flex-start;gap:8px;font-size:13px}.acct-queue-print-quote{color:var(--accent2)}.acct-queue-print-quote:hover{color:var(--accent3);background:color-mix(in srgb,var(--accent) 14%,var(--bg3))}.acct-subnav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 12px}.acct-subnav-count{display:inline-block;min-width:18px;margin-left:6px;padding:0 6px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center}.acct-subnav-slot{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.acct-subnav-slot>input[type=search]{flex:0 1 320px;min-width:200px}.acct-subnav-slot>.dv-filter{min-width:0}.st-pill{display:inline-block;padding:2px 9px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font-size:12px;white-space:nowrap}.st-pill.is-ok{border-color:color-mix(in srgb,var(--green) 40%,transparent);background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.st-pill.is-accent{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent2)}.st-pill.is-warn{border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent);color:var(--amber)}.st-pill.is-off{opacity:.75}.st-pill-gap{margin-left:6px}.st-qty{font-weight:600}.st-qty.is-low,.st-facts dd.is-low{color:var(--amber)}.st-low-note{display:block;font-size:11.5px;font-weight:600;color:var(--amber)}.st-in{color:var(--green)}.st-out{color:var(--red)}.st-total{margin:10px 2px 0;text-align:right;font-size:13px;color:var(--text2)}.st-total strong{color:var(--text)}.st-low-check{white-space:nowrap}.st-hint{margin:0 0 10px}.modal.st-modal{max-width:980px}.modal.st-modal-sm{max-width:720px}.st-facts{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0 0 12px;padding:10px 14px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3)}.st-facts dt{font-size:11.5px;color:var(--text2)}.st-facts dd{margin:2px 0 0;font-weight:600}.st-moves{font-size:13px}.st-moves td{vertical-align:top}.st-serial-cell{font-family:var(--mono, monospace);font-size:12px;overflow-wrap:anywhere;max-width:320px}.st-lines-head{margin-top:16px}.modal.st-modal .sales-items{min-width:0}.st-lines td{vertical-align:top}.st-lines th:first-child,.st-lines td:first-child{min-width:240px}.st-serials{width:100%;min-width:200px;font-family:var(--mono, monospace);font-size:12.5px}.st-serial-pick{display:flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--mono, monospace);font-size:12.5px}.st-bottom{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;margin-top:14px}.st-bottom .st-notes{flex:1 1 320px;min-width:0}.st-bottom .sales-totals{flex:0 1 340px;margin-left:auto}.st-inline{margin-top:0}.st-po-pick{margin-bottom:10px}.st-count-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.st-count-top input{flex:0 1 320px}.st-count-list{max-height:min(52vh,520px);overflow-y:auto}.st-count-table td{vertical-align:top}.st-count-note{margin-top:12px}.st-doc-party{margin:0 0 10px;font-size:10pt}.st-doc-party p{margin:2px 0}.st-doc-table .st-doc-no{width:9mm;text-align:center}.st-doc-table tfoot td{font-weight:600}.st-doc-table tr.st-doc-grand td{background:#eef1f7;color:#111}.st-doc-serials{font-family:var(--mono, monospace);font-size:8.5pt;overflow-wrap:anywhere}.st-doc-notes{margin:8px 0 0;font-size:10pt}.st-table .st-row-act{width:44px;text-align:center;white-space:nowrap}.modal.sup-time-modal{max-width:760px}.modal.sup-case-modal{max-width:700px}.sup-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sup-week-nav{display:flex;align-items:center;gap:6px}.sup-print-monthly{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.sup-print-monthly input[type=month]{font-family:var(--mono);font-size:13px}.sup-week-range{color:var(--text2);font-family:var(--mono);font-size:12px}.sup-summary{display:flex;flex-wrap:wrap;gap:8px 22px;margin:2px 0 12px}.sup-summary>div{display:flex;align-items:baseline;gap:6px}.sup-summary dt{font-size:12px;color:var(--text2)}.sup-summary dd{margin:0;font-weight:700}.sup-summary dd.sup-warn{color:var(--amber)}.sup-week-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 0 2px}.sup-days{display:flex;flex-direction:column;gap:10px;margin-top:12px}.sup-day{padding:12px 14px}.sup-day-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}.sup-day-h strong{min-width:68px}.sup-day-sum{color:var(--text2);font-family:var(--mono);font-size:12px;flex:1 1 auto}.sup-day-empty{margin:0;font-size:12px}.sup-entries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.sup-entries li{display:flex;align-items:center;gap:10px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);font-size:13px}.sup-entry-time{font-family:var(--mono);font-size:12px;color:var(--text2);min-width:96px}.sup-entry-what{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sup-entry-note{color:var(--text2);font-style:normal}.sup-entry-tags{display:flex;gap:4px}.sup-entry-mins{font-family:var(--mono);font-size:12px;min-width:72px;text-align:right}.sup-entry-btns{display:flex;gap:4px}.sup-chip{display:inline-block;padding:1px 7px;border-radius:999px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);font-size:11px;white-space:nowrap}.sup-chip-ok,.sup-tone-ok{border-color:color-mix(in srgb,var(--green) 45%,transparent);color:var(--green)}.sup-chip-warn,.sup-tone-warn{border-color:color-mix(in srgb,var(--amber) 45%,transparent);color:var(--amber)}.sup-tone-danger{border-color:color-mix(in srgb,var(--red) 45%,transparent);color:var(--red)}.sup-tone-draft{border-color:var(--border3);color:var(--text2)}.sup-quick{display:flex;gap:6px;flex-wrap:wrap}.sup-quick .btn.is-on{border-color:var(--accent);color:var(--accent2)}.sup-table tbody tr.sup-row{cursor:pointer}.sup-sub{color:var(--text2);font-size:11px}.sup-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;margin:0 0 12px}.sup-detail dt{color:var(--text2);font-size:11px}.sup-detail dd{margin:2px 0 0;font-size:13px}.sup-detail-text{margin:0 0 10px;font-size:13px;white-space:pre-wrap}.sup-detail-h{margin:14px 0 6px;font-size:13px}.sup-events{list-style:none;margin:0;padding:0;font-size:12px;color:var(--text2)}.sup-events li{display:flex;gap:10px;padding:3px 0;border-bottom:1px dashed var(--border)}.form-hint{margin:8px 0 0;color:var(--amber);font-size:12px}.sup-chip-row,.sup-time-block,.sup-time-hint,.sup-quick{grid-column:1 / -1}.sup-chip-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:-4px}.sup-chip-row-label{font-size:11px;color:var(--text2)}.sup-time-block{display:flex;gap:12px;flex-wrap:wrap}.sup-time-field{flex:1 1 130px;display:flex;flex-direction:column;gap:5px}.sup-time-input-row{display:flex;gap:6px}.sup-time-input-row input{flex:1 1 auto;min-width:0}.sup-minute-stepper{display:flex;gap:4px}.sup-minute-stepper input{flex:1 1 auto;min-width:0;text-align:center}.sup-minute-stepper .btn{min-width:36px;font-family:var(--mono);font-size:16px;line-height:1}.sup-time-hint{display:flex;align-items:center;gap:12px;margin-top:-6px;font-size:12px;color:var(--text2);font-family:var(--mono)}.btn-link{background:none;border:none;padding:0;color:var(--accent2);font-size:12px;font-family:var(--sans);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--accent3)}.sup-case-peek{margin-top:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2)}.sup-case-peek .sup-detail{margin-bottom:8px}.sup-case-peek .sup-detail-text:last-child{margin-bottom:0}@media (max-width: 640px){.sup-entries li{flex-wrap:wrap}.sup-entry-what{white-space:normal}}@media (max-width: 520px){.sup-quick .btn,.sup-chip-row .btn{min-height:34px;padding:0 10px}.sup-minute-stepper .btn{min-width:44px;min-height:40px}.sup-time-block{gap:10px}.sup-time-field{flex-basis:100%}}.sup-today{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 14px;margin-bottom:12px}.sup-today-shift{display:flex;align-items:center;gap:8px;font-size:14px}.sup-today-times{display:flex;gap:14px;font-size:13px;color:var(--text2)}.sup-day-shift{font-size:12px;color:var(--text2)}.sup-panel-actions{justify-content:flex-end;margin:4px 0 10px}.sup-ot-list{list-style:none;margin:8px 0 12px;padding:0;max-height:280px;overflow-y:auto;font-size:13px}.sup-ot-list li{border-bottom:1px solid var(--border2)}.sup-ot-list label{display:flex;align-items:center;gap:8px;padding:6px 2px;cursor:pointer}.sup-ot-what{flex:1 1 auto;min-width:0}.sup-ot-hrs{font-family:var(--mono);color:var(--text2);white-space:nowrap}.sup-ot-total{margin:10px 0 0}.sup-auto{margin-bottom:10px}.sup-auto-title{min-width:0;white-space:nowrap}.sup-auto-hint{display:block;margin:4px 0 8px;font-size:12px;color:var(--text2)}.sup-auto .sup-entry-time{min-width:132px;white-space:nowrap}.sup-auto .sup-entry-btns .btn{white-space:nowrap}.sup-chip-auto{background:color-mix(in srgb,var(--accent, #3b82f6) 14%,transparent);color:var(--accent, #3b82f6)}.sup-sync-at{font-size:12px;color:var(--text2)}.sup-sync-at.sup-warn{color:var(--amber)}.sup-stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:4px 0 10px}.sup-stat-card{border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;min-width:0}.sup-stat-label{font-size:12px;color:var(--text2)}.sup-stat-value{font-size:22px;font-weight:700;line-height:1.3}.sup-stat-team,.sup-stat-hint{font-size:11px;color:var(--text2)}.sup-stat-team{font-family:var(--mono)}.sup-stat-ok{color:var(--green, #16a34a)}.sup-stat-warn{color:var(--amber)}.sup-stat-danger{color:var(--red, #dc2626)}.sup-stat-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:start}.sup-stat-bar{display:inline-block;width:120px;max-width:50%;height:8px;border-radius:4px;background:var(--border);vertical-align:middle;overflow:hidden}.sup-stat-bar>span{display:block;height:100%;background:var(--accent, #3b82f6)}.sup-stat-barnum{margin-left:8px;font-family:var(--mono);font-size:12px}.sup-timer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:8px 12px;border:1px solid var(--accent);border-radius:var(--r);background:color-mix(in srgb,var(--accent) 8%,transparent)}.sup-timer-clock{font-family:var(--mono);font-size:16px;font-weight:700;min-width:72px}.sup-timer-what{flex:1 1 200px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sup-quick,.sup-quick-add{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sup-quick-add{flex-basis:100%;margin-top:4px}.sup-quick-add input[type=number]{width:76px}.sup-quick-item{display:inline-flex;align-items:center;gap:2px}.sup-today-card .sup-head-actions{margin-bottom:8px}.sup-today-duty{font-weight:400}.sup-queue li.sup-queue-on{border-color:var(--accent)}.sup-queue .sup-entry-mins{min-width:60px}.modal.sup-gap-modal{width:min(860px,96vw);max-width:96vw}.sup-gap-list li>*{min-width:0}.sup-gap-pick>*,.sup-gap-pick select{width:100%;max-width:100%}.sup-gap-list li{flex-wrap:wrap}.sup-gap-pick{flex:2 1 260px;min-width:0}.sup-gap-note{flex:1 1 160px;min-width:0}.sup-stat-score{border-color:var(--accent)}.sup-timer-note{flex:1 1 220px;min-width:0;max-width:420px}.sup-dev-links{list-style:none;margin:0 0 8px;padding:0;font-size:13px}.sup-dev-links li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:3px 0}.sup-dev-kind{display:grid;gap:8px;margin-bottom:12px}.sup-dev-kind label{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border2);border-radius:8px;cursor:pointer}.sup-dev-kind label span{display:flex;flex-direction:column;gap:2px}.sup-dev-kind small{color:var(--text3)}.fv-page{display:flex;flex-direction:column;height:100vh;background:var(--bg, #f4f6fb);color:var(--text, #111)}.fv-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border2, #d6dbe6);background:var(--bg2, #fff)}.fv-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.fv-size{margin-left:10px;font-weight:400;color:var(--text2, #64748b);font-size:.9em}.fv-body{flex:1;min-height:0;display:flex}.fv-pdf{flex:1;width:100%;border:0;background:#525659}.fv-img-wrap{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px;background:#525659}.fv-img{max-width:100%;height:auto;background:#fff;box-shadow:0 2px 12px #00000059}.fv-msg{margin:auto;padding:24px;text-align:center;color:var(--text2, #64748b)}.wwl-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:18px}.wwl-page-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}.wwl-page-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.wwl-page-filters{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end}.wwl-filter-label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.wwl-filter-label select{min-width:200px}.wwl-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:20px}@media (max-width: 1100px){.wwl-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 560px){.wwl-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.wwl-kpi-card{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);padding:12px 14px;text-align:center}.wwl-kpi-val{font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text1);line-height:1.15}.wwl-kpi-lbl{margin-top:6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.wwl-kpi-ot .wwl-kpi-val{color:var(--green)}.wwl-kpi-job .wwl-kpi-val{color:var(--accent2)}.wwl-kpi-act .wwl-kpi-val{color:var(--amber)}.wwl-emp-list{display:flex;flex-direction:column;gap:12px}.wwl-emp-panel{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg2);overflow:hidden}.wwl-emp-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;padding:12px 14px;border-bottom:1px solid var(--border2)}.wwl-emp-panel:has(.wwl-emp-expand) .wwl-emp-row{border-bottom:none}.wwl-emp-row-main{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;flex:1}.wwl-emp-date{font-size:12px;font-family:var(--mono);color:var(--text3)}.wwl-emp-av{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent2);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);flex-shrink:0}.wwl-emp-title{font-weight:700;font-size:14px;color:var(--text1)}.wwl-emp-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.wwl-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}.wwl-badge-total{background:var(--bg3);color:var(--text2);border:1px solid var(--border2)}.wwl-badge-ot{background:#1fc98e1f;color:var(--green);border:1px solid rgba(31,201,142,.35)}.wwl-badge-job{background:#5b8df51f;color:var(--accent2);border:1px solid rgba(91,141,245,.35)}.wwl-badge-act{background:#f0a83224;color:var(--amber);border:1px solid rgba(240,168,50,.35)}.wwl-badge-util{background:#eab30824;color:#ca8a04;border:1px solid rgba(234,179,8,.35)}.wwl-badge-status{background:#f0a83229;color:var(--amber);border:1px solid rgba(240,168,50,.4)}.wwl-emp-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.wwl-expand-btn.is-open{color:var(--accent2)}.wwl-emp-expand{padding:0 14px 14px;border-top:1px solid var(--border2);background:var(--bg3)}.wwl-act-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 10px}.wwl-act-chip{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--bg2);border:1px solid var(--border2);color:var(--text2)}.wwl-job-lines{display:flex;flex-direction:column;gap:10px}.wwl-line-card{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg2);padding:10px 12px}.wwl-line-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:8px}.wwl-line-proj{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;background:#0ea5e926;color:#38bdf8}.wwl-line-jid{font-family:var(--mono);font-weight:700;font-size:13px;color:var(--text1)}.wwl-line-name{font-size:13px;color:var(--text2);flex:1;min-width:0}.wwl-line-hrs{margin-left:auto;font-size:12px;font-weight:700;color:var(--accent2)}.wwl-line-sub{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border2)}.wwl-line-sub:first-of-type{margin-top:0;padding-top:0;border-top:none}.wwl-line-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;margin-bottom:6px}.wwl-line-role{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 7px;border-radius:6px}.wwl-line-role.dev{background:#7c3aed26;color:#c4b5fd}.wwl-line-role.qa{background:#ea580c24;color:#fdba74}.wwl-line-stage{font-size:10px;font-weight:700;padding:2px 8px;border-radius:8px}.wwl-line-stage-st1{background:#0ea5e92e;color:#7dd3fc}.wwl-line-stage-st2{background:#7c3aed2e;color:#c4b5fd}.wwl-line-stage-st3{background:#ea580c2e;color:#fdba74}.wwl-line-stage-st4{background:#05966933;color:#6ee7b7}.wwl-line-pct{font-weight:700;font-variant-numeric:tabular-nums}.wwl-line-tw{color:var(--text3);font-size:11px}.wwl-line-bar-wrap{height:8px;background:var(--bg3);border-radius:6px;overflow:hidden;border:1px solid var(--border2)}.wwl-line-bar-fill{height:100%;border-radius:5px;transition:width .25s ease}.wwl-line-bar-fill.st1{background:#0ea5e9}.wwl-line-bar-fill.st2{background:#7c3aed}.wwl-line-bar-fill.st3{background:#ea580c}.wwl-line-bar-fill.st4{background:#059669}.wwl-week-block{margin-bottom:28px}.wwl-week-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border2)}.wwl-week-title{margin:0;font-size:15px;font-weight:600;color:var(--text1)}.wwl-week-meta{font-size:12px;color:var(--text3);font-family:var(--mono)}.wwl-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.wwl-emp-card{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);padding:14px 16px;text-align:left;cursor:pointer;transition:border-color .15s,background .15s;width:100%;font:inherit;color:inherit}.wwl-emp-card:hover{border-color:var(--accent);background:var(--bg2)}.wwl-emp-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wwl-emp-name{font-weight:600;font-size:14px;margin:0 0 8px}.wwl-emp-stats{margin:0;font-size:12px;line-height:1.5;color:var(--text2)}.modal-ov.wwl-modal-ov{align-items:flex-start;padding:24px 16px}.modal.modal-wwl{max-width:min(920px,calc(100vw - 32px));margin-bottom:40px}.wwl-modal-b{padding:16px 18px 20px;max-height:min(78vh,900px);overflow-y:auto}.wwl-filters{display:flex;flex-wrap:wrap;gap:12px 20px;margin-bottom:16px;align-items:flex-end}.wwl-filters label{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.wwl-ot-readonly{background:var(--bg2)!important;color:var(--accent2);font-weight:600;cursor:default;border-style:dashed!important}.wwl-stage-select{border-width:2px}.wwl-filters select,.wwl-filters input[type=text],.wwl-filters input[type=number]{min-width:160px}.wwl-split{display:grid;grid-template-columns:minmax(0,140px) 1fr;gap:0;border:1px solid var(--border2);border-radius:var(--r2);overflow:hidden;margin-bottom:16px;background:color-mix(in srgb,var(--accent2) 7%,var(--bg2))}@media (max-width: 640px){.wwl-split{grid-template-columns:1fr}}.wwl-split-side{padding:12px 14px;background:color-mix(in srgb,var(--accent2) 12%,var(--bg3));border-right:1px solid var(--border2);font-size:13px;font-weight:600;color:var(--text2)}@media (max-width: 640px){.wwl-split-side{border-right:none;border-bottom:1px solid var(--border2)}}.wwl-split-main{padding:12px 14px;font-size:13px;line-height:1.55;color:var(--text1);background:color-mix(in srgb,var(--accent2) 5%,var(--bg2))}.wwl-job-block{border:1px solid var(--border2);border-radius:var(--r2);margin-bottom:12px;overflow:hidden}.wwl-job-head{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;padding:10px 12px;background:var(--bg3);border-bottom:1px solid var(--border2)}.wwl-job-stage-track{padding:10px 12px;border-bottom:1px solid var(--border2);background:var(--bg3)}.wwl-job-stage-track .job-stage-tracker{margin-bottom:0}.wwl-job-code{font-family:var(--mono);font-weight:600;font-size:13px}.wwl-job-title{font-size:13px;color:var(--text2)}.wwl-job-stage-pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 8px;border-radius:6px;background:#5b8df524;color:var(--accent2);border:1px solid rgba(91,141,245,.35)}.wwl-issue-panel{border-top:1px solid var(--border2);padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--bg2)}.wwl-issue-panel-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.wwl-issue-panel-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);flex:1}.wwl-issue-card{border:1px solid var(--border2);border-left:3px solid var(--accent2);border-radius:var(--r1);padding:10px 12px;background:var(--bg3)}.wwl-issue-card-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.wwl-issue-id{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--text3)}.wwl-issue-title{font-size:13px;font-weight:600;color:var(--text1);flex:1;min-width:0}.wwl-issue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 12px}.wwl-issue-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text3)}.wwl-issue-grid input,.wwl-issue-grid select{min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.wwl-issue-comment{margin-top:8px}.wwl-issue-comment label{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text3)}.wwl-issue-comment textarea{width:100%;resize:vertical}.wwl-job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 14px;padding:12px}.wwl-job-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text3)}.wwl-job-grid input,.wwl-job-grid select{min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.wwl-muted{color:var(--text3);font-size:12px}.wwl-activity-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.wwl-activity-row input[type=text]{flex:1;min-width:120px}.wwl-activity-row input[type=number]{width:88px;flex-shrink:0}@media (max-width: 560px){.wwl-activity-row{flex-wrap:nowrap}.wwl-activity-row input[type=text]{min-width:0}.wwl-activity-row input[type=number]{width:64px}}.wwl-split-main input[type=text],.wwl-split-main input[type=text]:focus,.wwl-split-main input[type=number]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}.wwl-split-ts{display:block;margin-top:12px}.wwl-split-ts-input{width:100%;margin-top:4px}.wwl-btn-activity-del{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;padding:0;border-radius:var(--r1);border:1px solid color-mix(in srgb,var(--red) 40%,var(--border2));background:color-mix(in srgb,var(--red) 12%,var(--bg2));color:var(--red);cursor:pointer}.wwl-btn-activity-del:hover{background:color-mix(in srgb,var(--red) 20%,var(--bg2));border-color:color-mix(in srgb,var(--red) 65%,var(--border2));color:var(--red)}.wwl-btn-activity-del:focus-visible{outline:2px solid color-mix(in srgb,var(--red) 55%,transparent);outline-offset:2px}.wwl-btn-activity-del--compact{width:34px;height:34px;min-width:34px;min-height:34px}.wwl-issue-card-h .wwl-btn-activity-del{margin-left:auto}.wwl-btn-ghost{border:1px dashed var(--border2);background:transparent;color:var(--text2);padding:8px 12px;border-radius:var(--r1);font-size:12px;cursor:pointer;min-height:38px;box-sizing:border-box}.wwl-btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.wwl-empty{font-size:13px;color:var(--text3);margin:12px 0}.wwl-add-job-select{min-width:220px;max-width:100%}.wwl-ot-queue{margin-bottom:18px}.wwl-ot-queue-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.wwl-ot-queue-h{margin:0;font-size:1rem}.wwl-ot-queue-count{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--bg3);border:1px solid var(--border2);font-variant-numeric:tabular-nums}.wwl-ot-queue-sub{margin:0 0 12px;font-size:12px}.wwl-ot-queue-list{display:flex;flex-direction:column;gap:12px}.wwl-ot-card{border:1px solid var(--border2);border-radius:var(--r2);padding:12px 14px;background:var(--bg2)}.wwl-ot-card.is-urgent{border-color:color-mix(in srgb,var(--amber) 55%,var(--border2));box-shadow:0 0 0 1px color-mix(in srgb,var(--amber) 20%,transparent)}.wwl-ot-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px}.wwl-ot-card-name{font-weight:700}.wwl-ot-card-week{font-size:12px;color:var(--text3);font-variant-numeric:tabular-nums}.wwl-badge-urgent{background:color-mix(in srgb,var(--amber) 28%,var(--bg3));color:var(--text1)}.wwl-badge-planned{background:var(--bg3);color:var(--text2)}.wwl-ot-card-note{margin:0 0 8px;font-size:13px}.wwl-ot-card-meta{margin:0 0 8px;font-size:12px;color:var(--text3)}.wwl-ot-lines{margin:0;padding-left:1.2rem;font-size:12px;color:var(--text2)}.wwl-ot-card-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}.wwl-ot-reject-input{flex:1;min-width:140px;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.wwl-badge-ot-apr{background:color-mix(in srgb,#2d8a54 30%,var(--bg3))}.wwl-badge-ot-pend{background:color-mix(in srgb,var(--amber) 28%,var(--bg3))}.wwl-badge-ot-rej{background:color-mix(in srgb,#b44 22%,var(--bg3))}.wwl-ot-modal .wwl-ot-mode-row{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-bottom:12px}.wwl-ot-mode-lbl{font-size:12px;font-weight:600;color:var(--text3)}.wwl-ot-radio{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.wwl-ot-header-note{display:flex;flex-direction:column;gap:6px;font-size:12px;margin-bottom:12px}.wwl-ot-header-note textarea{resize:vertical}.wwl-req{color:var(--amber)}.wwl-ot-lines-editor{display:flex;flex-direction:column;gap:12px;margin-bottom:10px}.wwl-ot-line-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;align-items:end;padding:10px;border:1px solid var(--border2);border-radius:var(--r1);background:var(--bg3)}.wwl-ot-line-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--text3)}.wwl-ot-line-row select,.wwl-ot-line-row input[type=number],.wwl-ot-line-row input[type=text]{min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.wwl-ot-rm{align-self:center}.wwl-ot-sum{font-size:13px;margin:8px 0;color:var(--text2)}.wwl-ot-detail-line{margin:8px 0 4px;font-size:12px}.modal.modal-wwl{max-width:min(1120px,calc(100vw - 32px));max-height:calc(100vh - 48px)}.wwl-modal-h{align-items:flex-start;gap:12px}.wwl-modal-sub{margin:4px 0 0;font-size:12px;color:var(--text2)}.wwl-budget{padding:12px 18px 14px;border-bottom:1px solid var(--border);background:var(--bg3)}.wwl-budget.is-over{background:#f0687814}.wwl-budget-nums{display:flex;flex-wrap:wrap;gap:10px 28px;margin-bottom:10px}.wwl-budget-item{display:flex;flex-direction:column;gap:2px}.wwl-budget-item span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}.wwl-budget-item strong{font-family:var(--mono);font-size:17px;font-variant-numeric:tabular-nums;color:var(--text)}.wwl-budget-job{color:var(--accent2)!important}.wwl-budget-act{color:var(--amber)!important}.wwl-budget-left{color:var(--green)!important}.wwl-budget-over{color:var(--red)!important}.wwl-budget-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--bg4)}.wwl-budget-seg{height:100%;transition:width .18s ease}.wwl-budget-seg-job{background:var(--accent)}.wwl-budget-seg-act{background:var(--amber)}.wwl-budget-note{margin:8px 0 0;font-size:11px;color:var(--text3)}.wwl-budget.is-over .wwl-budget-note{color:var(--red)}.wwl-modal-b{padding:16px 18px;overflow-y:auto;flex:1;min-height:0}.wwl-modal-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:18px;align-items:start}@media (max-width: 920px){.wwl-modal-grid{grid-template-columns:minmax(0,1fr)}.wwl-col-side{order:-1}}@media (max-width: 560px){.wwl-modal-f{flex-wrap:wrap;gap:8px}.wwl-modal-f-info{flex:1 1 100%;text-align:left}.wwl-modal-f .btn{flex:1;justify-content:center}}.wwl-col-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.wwl-col-title{margin:0;font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.wwl-col-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#5b8df52e;color:var(--accent2);font-family:var(--mono);font-size:11px}.wwl-col-head .wwl-add-job-select{margin-left:auto;min-width:220px;max-width:100%}.wwl-jobcard{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);padding:12px 14px;margin-bottom:10px}.wwl-jobcard-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.wwl-jobcard-head .wwl-job-title{flex:1;min-width:120px}.wwl-jobcard-remove{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--r);border:1px solid transparent;background:transparent;color:var(--text3);cursor:pointer}.wwl-jobcard-remove:hover{color:var(--red);border-color:#f0687866;background:#f068781a}.wwl-jobcard-hours{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center}.wwl-hours-label{display:block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:4px}.wwl-hours-control{display:inline-flex;align-items:stretch;border:1px solid var(--border3);border-radius:var(--r2);overflow:hidden;background:var(--bg2)}.wwl-hours-step{width:34px;border:none;background:var(--bg4);color:var(--text);font-size:18px;line-height:1;cursor:pointer}.wwl-hours-step:hover:not(:disabled){background:var(--accent);color:#fff}.wwl-hours-step:disabled{opacity:.4;cursor:not-allowed}.wwl-hours-input{width:78px;border:none;background:transparent;color:var(--text);font-family:var(--mono);font-size:16px;font-weight:600;text-align:center;padding:8px 4px}.wwl-hours-input:focus{outline:2px solid rgba(91,141,245,.45);outline-offset:-2px}.wwl-jobcard-meta{flex:1;min-width:190px;display:flex;flex-direction:column;gap:6px}.wwl-chip-row{display:flex;flex-wrap:wrap;gap:6px}.wwl-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--border2);background:var(--bg2);font-family:var(--mono);font-size:11px;color:var(--text2)}.wwl-chip-quiet{color:var(--text3)}.wwl-jobcard-prog{display:flex;align-items:center;gap:8px}.wwl-jobcard-prog .progress-bar-wrap{flex:1}.wwl-jobcard-burn{font-size:11px;color:var(--text3);white-space:nowrap}.wwl-jobcard-burn.is-warn{color:var(--warn, #b7791f)}.wwl-jobcard-burn.is-over{color:var(--danger, #c53030);font-weight:600}.wwl-jobcard-prog-label{font-family:var(--mono);font-size:11px;color:var(--text3);white-space:nowrap}.wwl-role-toggles{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.wwl-role-toggle{padding:6px 14px;border-radius:999px;border:1px solid var(--border2);background:var(--bg2);color:var(--text2);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.wwl-role-toggle:hover:not(:disabled){border-color:var(--border3);color:var(--text)}.wwl-role-toggle.is-on{background:#5b8df533;border-color:var(--accent);color:var(--accent2)}.wwl-role-people{font-size:11px;color:var(--text3);margin-left:auto}.wwl-role-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 12px;margin-top:10px;padding:10px 12px;border-radius:var(--r2);background:var(--bg2);border:1px solid var(--border)}.wwl-role-panel-dev{border-left:3px solid #7c3aed}.wwl-role-panel-test{border-left:3px solid #ea580c}.wwl-role-panel label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.wwl-role-panel input,.wwl-side-card{border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);padding:12px 14px;margin-bottom:12px}.wwl-side-fields{display:flex;flex-direction:column;gap:10px}.wwl-side-fields label,.wwl-side-note{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}.wwl-side-fields select,.wwl-side-fields input:not([type=checkbox]):not([type=radio]),.wwl-side-note input:not([type=checkbox]):not([type=radio]){width:100%}.wwl-side-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wwl-side-card .wwl-activity-row input[type=text],.wwl-side-card .wwl-activity-row input:focus{outline:none;border-color:var(--accent)}.wwl-side-hint{margin:0 0 8px;font-size:11px;line-height:1.45;color:var(--text3)}.wwl-side-note{margin-top:8px}.wwl-modal-f{align-items:center;gap:10px}.wwl-modal-f-info{margin-right:auto;font-family:var(--mono);font-size:12px;color:var(--text3)}.wwl-ot-reject-reason{margin:8px 0 0;padding:8px 10px;border:1px solid color-mix(in srgb,var(--red, #ef4444) 40%,transparent);border-radius:9px;background:color-mix(in srgb,var(--red, #ef4444) 10%,transparent);font-size:13px;color:var(--text)}.wwl-badge-wait{background:var(--bg4, rgba(127, 127, 127, .18));color:var(--text2)}.wwl-badge-wait.is-overdue{background:color-mix(in srgb,var(--red, #ef4444) 16%,transparent);color:var(--red, #ef4444);font-weight:700}.wwl-ot-sum.is-over{color:var(--red, #ef4444)}.wwl-ot-sum-warn{font-weight:700}.wsh{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px;font-size:12px;color:var(--text2)}.wsh strong{color:var(--text)}.wsh-holidays{color:var(--amber)}.wwl-week-print{margin-left:auto}.ot-print-row{display:flex;justify-content:flex-end;margin-bottom:12px}.ot-req-form{margin-top:8px}.ot-req-form-title{margin:0 0 10px;font-size:1.15rem;font-weight:600}.ot-req-form--modal .ot-req-form-title{display:none}.ot-req-form-intro{margin-top:0;padding:10px 12px;background:color-mix(in srgb,var(--bg2) 88%,var(--border2));border:1px solid var(--border2);border-radius:8px;line-height:1.45}.ot-req-field{margin-bottom:12px}@media (min-width: 640px){.ot-req-form-primary-fields{display:grid;grid-template-columns:minmax(200px,.9fr) minmax(240px,1.3fr);gap:16px 20px;align-items:start}.ot-req-form-primary-fields .ot-req-field{margin-bottom:0}}.ot-req-lines-hint{margin:0 0 8px;font-size:12px}.ot-req-form-actions{margin-top:20px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;align-items:center}.ot-req-modal-meta{margin-bottom:4px}.ot-req-form .wwl-ot-mode-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.ot-req-form .wwl-ot-header-note textarea{width:100%;resize:vertical}.ot-req-modal.modal-wwl .modal-b.wwl-modal-b{max-height:min(85vh,720px);overflow-y:auto}.ot-req-form .wwl-ot-sum{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border2)}.tl-pct{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}.tl-pct-head{grid-column:1 / -1;display:flex;align-items:baseline;gap:8px;font-size:12px;color:var(--text3)}.tl-pct-val{font-weight:700;font-size:15px;color:var(--text);font-variant-numeric:tabular-nums}.tl-pct-bar{position:relative;height:8px;border-radius:999px;background:var(--bg3, rgba(127, 127, 127, .18));overflow:hidden}.tl-pct-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cyan, #06b6d4),var(--blue, #3b82f6));transition:width .15s ease-out}.tl-pct-fill.is-done{background:linear-gradient(90deg,var(--green, #10b981),var(--teal, #14b8a6))}.tl-pct-quick{display:flex;gap:4px;flex-wrap:wrap}.tl-quick-btn{min-width:44px;padding:4px 8px;font:inherit;font-size:12px;font-weight:600;color:var(--text2);background:var(--bg2);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-variant-numeric:tabular-nums}.tl-quick-btn:hover:not(:disabled){border-color:var(--accent, #3b82f6);color:var(--text)}.tl-quick-btn.is-on{background:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6);color:#fff}.tl-quick-btn:disabled{opacity:.5;cursor:not-allowed}.tl-pct-input{width:74px;text-align:right}.tl-issue-add-combo{max-width:100%}.tl-issue-panel{border-top:1px solid var(--line);padding:10px 12px 12px;background:var(--bg2);border-radius:0 0 12px 12px}.tl-issue-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.tl-issue-head-t{font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text3)}.tl-issue-count{min-width:20px;padding:1px 6px;border-radius:999px;background:var(--bg3, rgba(127, 127, 127, .18));font-size:11px;font-weight:700;text-align:center;color:var(--text2)}.tl-pass-all{margin-left:auto;padding:4px 10px;font:inherit;font-size:12px;font-weight:600;color:var(--green, #10b981);background:transparent;border:1px solid var(--green, #10b981);border-radius:8px;cursor:pointer}.tl-pass-all:hover:not(:disabled){background:color-mix(in srgb,var(--green, #10b981) 12%,transparent)}.tl-pass-all:disabled{opacity:.45;cursor:not-allowed}.tl-issue-card{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;background:var(--bg);padding:10px 12px;margin-top:8px}.tl-issue-card.is-passed{border-left-color:var(--green, #10b981)}.tl-issue-card.is-failed{border-left-color:var(--red, #ef4444)}.tl-issue-card-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tl-issue-id{font-family:var(--font-mono, ui-monospace, monospace);font-size:12px;font-weight:700;color:var(--text2)}.tl-issue-title{flex:1;min-width:0;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-issue-del{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:var(--text3);background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer}.tl-issue-del:hover{color:var(--red, #ef4444);border-color:var(--red, #ef4444)}.tl-verdict{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:9px;overflow:hidden}.tl-verdict-btn{padding:5px 12px;font:inherit;font-size:12px;font-weight:600;color:var(--text2);background:var(--bg2);border:0;border-right:1px solid var(--line);cursor:pointer}.tl-verdict-btn:last-child{border-right:0}.tl-verdict-btn:hover:not(:disabled){color:var(--text)}.tl-verdict-btn.is-on-pass{background:var(--green, #10b981);color:#fff}.tl-verdict-btn.is-on-fail{background:var(--red, #ef4444);color:#fff}.tl-verdict-btn.is-on-skip{background:var(--bg3, rgba(127, 127, 127, .2));color:var(--text)}.tl-verdict-btn:disabled{opacity:.5;cursor:not-allowed}.tl-issue-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}.tl-issue-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--text3)}.tl-issue-row select,.tl-issue-row input{min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.tl-issue-row input[type=number]{width:90px;text-align:right}.tl-issue-comment{margin-top:8px}.tl-issue-comment textarea{width:100%;resize:vertical}.tl-issue-empty{margin:4px 0 0;font-size:12px;color:var(--text3)}.tl-foot-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--bg3, rgba(127, 127, 127, .16));font-size:12px;font-weight:600;color:var(--text2)}.tl-foot-chip.is-pass{background:color-mix(in srgb,var(--green, #10b981) 16%,transparent);color:var(--green, #10b981)}.tl-foot-chip.is-fail{background:color-mix(in srgb,var(--red, #ef4444) 16%,transparent);color:var(--red, #ef4444)}@media (max-width: 720px){.tl-pct{grid-template-columns:1fr}.tl-issue-row label{flex:1 1 130px}}.ts-page-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin-bottom:16px}.ts-page-toolbar .ts-field{display:flex;flex-direction:column;gap:4px;min-width:160px}.ts-page-toolbar label{font-size:12px;color:var(--text3)}.ts-table-wrap{overflow-x:auto}.ts-table{width:100%;border-collapse:collapse;font-size:13px}.ts-table th,.ts-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.ts-table th{color:var(--text3);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.ts-table tbody tr:hover td{background:var(--surface2)}.ts-num{text-align:right;font-variant-numeric:tabular-nums}.ts-note{max-width:220px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ts-actions{white-space:nowrap}.ts-pager{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:13px;color:var(--text2)}.ts-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}.ts-badge-pending{background:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--amber)}.ts-badge-approved{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}.ts-badge-rejected{background:color-mix(in srgb,var(--danger) 22%,transparent);color:var(--danger)}.rp-head{margin-bottom:16px}.rp-head-row{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}.rp-head-icon{flex-shrink:0;color:var(--accent2)}.rp-head-titles{flex:1;min-width:200px}.rp-btn-new{margin-left:auto;align-self:center}.rp-link{color:var(--accent2);font-weight:600;text-decoration:none}.rp-link:hover{text-decoration:underline}.rp-banner-err{padding:12px 14px;border-radius:var(--r2);background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);font-size:13px;margin-bottom:14px}.rp-layout{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap}.rp-sidebar{width:100%;max-width:300px;flex-shrink:0;padding:0;overflow:hidden}.rp-sidebar-head{padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg3)}.rp-sidebar-title{font-size:13px;font-weight:700;color:var(--text2)}.rp-role-list{list-style:none;margin:0;padding:8px;max-height:min(70vh,640px);overflow-y:auto}.rp-role-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;padding:12px;margin-bottom:4px;border:none;border-radius:var(--r2);background:transparent;color:var(--text);font-family:var(--sans);font-size:13px;cursor:pointer;transition:background .12s ease}.rp-role-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.rp-role-item.is-active{background:color-mix(in srgb,var(--accent) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.rp-role-item.muted{cursor:default;color:var(--text3)}.rp-role-name{font-weight:700;font-size:14px}.rp-role-meta{font-size:11px;color:var(--text3);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rp-role-slug{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--bg4)}.rp-role-desc{font-size:12px;color:var(--text2);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rp-main{flex:1;min-width:0;padding:18px 20px 20px}.rp-empty-main,.rp-loading-matrix{color:var(--text3);padding:24px 0}.rp-main-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}.rp-role-title{margin:0 0 6px;font-size:20px;font-weight:700}.rp-role-sub{margin:0;font-size:13px;color:var(--text2);line-height:1.45}.rp-main-head-actions{display:flex;gap:8px;flex-shrink:0}.btn-sm{padding:6px 12px;font-size:12px}.rp-perm-err{color:var(--red);font-size:13px;margin:0 0 12px}.rp-matrix-scroll{overflow-x:auto;border-radius:var(--r2);border:1px solid var(--border);margin-bottom:14px}.rp-matrix{width:100%;border-collapse:collapse;font-size:12px;min-width:720px}.rp-matrix th,.rp-matrix td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--border);vertical-align:middle}.rp-matrix thead th{background:var(--bg3);color:var(--text3);font-weight:600;white-space:nowrap}.rp-matrix-mod{text-align:left!important;position:sticky;left:0;z-index:1;background:var(--bg);box-shadow:1px 0 0 var(--border);min-width:140px;font-weight:600;color:var(--text2)}.rp-matrix thead .rp-matrix-mod{background:var(--bg3)}.rp-matrix-act{min-width:52px}.rp-matrix-cell{background:var(--bg)}.rp-na{color:var(--text3);font-size:11px}.rp-check-btn{width:32px;height:32px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3);color:var(--accent);font-size:16px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .12s,background .12s}.rp-check-btn:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.rp-check-btn.is-on{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,var(--border2));color:var(--accent)}.rp-check-btn:disabled{opacity:.5;cursor:not-allowed}.rp-foot-note{font-size:12px;color:var(--text3);line-height:1.5;margin:0 0 16px;max-width:720px}.rp-actions-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.rp-copy-btn{margin-left:auto}@media (max-width: 900px){.rp-copy-btn{margin-left:0}}.rp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:color-mix(in srgb,#000 45%,transparent);display:flex;align-items:center;justify-content:center;padding:20px}.rp-modal{width:100%;max-width:420px;padding:0;overflow:hidden}.rp-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--bg3)}.rp-modal-head h2{margin:0;font-size:16px;font-weight:700}.rp-modal-x{border:none;background:transparent;color:var(--text2);cursor:pointer;padding:4px;border-radius:var(--r2);line-height:0}.rp-modal-x:hover{background:var(--bg4);color:var(--text)}.rp-modal-form{padding:18px;display:flex;flex-direction:column;gap:14px}.rp-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--text2)}.rp-label input,.rp-label textarea{resize:vertical}.rp-modal-hint{margin:0;font-size:12px;color:var(--text3);line-height:1.45}.rp-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.rp-readonly{color:var(--amber);font-weight:600}.page-desc .mu-code-ref{font-family:var(--mono);font-size:12px;color:var(--accent2)}.usr-page-head-row{display:flex;align-items:flex-start;gap:14px}.usr-page-head-icon{flex-shrink:0;color:var(--accent2);margin-top:4px}.usr-modal-h-with-icon{align-items:flex-start}.usr-modal-h-title-block{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:0}.usr-modal-h-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r2);background:#5b8df51f;color:var(--accent2);flex-shrink:0}.usr-modal-h-icon-warn{background:#f871711f;color:#f87171}.usr-label-with-icon{display:inline-flex;align-items:center;gap:6px}.usr-label-icon{flex-shrink:0;color:var(--text3)}.usr-manage-opt-link{display:inline-flex;align-items:center;gap:5px}.usr-manage-opt-icon{flex-shrink:0;color:var(--accent2);opacity:.9}.form-field label .req{color:#f87171}.usr-cell-name{display:flex;align-items:center;gap:10px;min-width:0}.usr-avatar-tiny{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:-.5px;flex-shrink:0}.usr-cell-name-text{display:flex;flex-direction:column;gap:2px;min-width:0}.usr-cell-phone{font-size:11px;color:var(--text3)}.usr-card-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:-.5px;flex-shrink:0}.usr-csat{font-size:12px;color:var(--amber);white-space:nowrap}.usr-role{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border2)}.usr-role-admin{border-color:#f8717173;background:#f871711f;color:#f87171}.usr-role-manager{border-color:#f9731673;background:#f973161f;color:#ea580c}.usr-role-lead{border-color:#a855f773;background:#a855f71f;color:#a855f7}.usr-role-support{border-color:#38bdf873;background:#38bdf81f;color:#0284c7}.usr-role-viewer,.usr-role-default{border-color:var(--border2);background:var(--bg3);color:var(--text3)}.usr-roles-readonly{margin:0;padding:0;list-style:none}.usr-role-li-main{display:inline-flex;align-items:center;gap:8px;min-width:0}.usr-role-li-icon{flex-shrink:0;color:var(--text3)}.usr-roles-readonly li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border2);font-size:14px}.usr-roles-readonly li:last-child{border-bottom:none}.usr-roles-readonly code{font-family:var(--mono);font-size:11px;color:var(--text3)}.cust-card .cust-card-head{align-items:center}.pill-locked{background:#e5484d1f;color:var(--red, #e5484d);border-color:#e5484d59}.usr-locked-note{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:8px;border:1px solid rgba(229,72,77,.35);background:#e5484d14;color:var(--text);font-size:13px}.xrole{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r)}.xrole-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.xrole-hint{font-size:12px;color:var(--text3)}.xrole-empty{margin:0;font-size:13px;color:var(--text2)}.xrole-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.xrole-item{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.xrole-main{display:flex;align-items:center;gap:8px;flex:1 1 280px;min-width:0;flex-wrap:wrap}.xrole-name{font-weight:600;font-size:13px}.xrole-kind{font-size:11px;padding:1px 8px;border-radius:999px;border:1px solid var(--border2);color:var(--text2)}.xrole-note{flex:1 1 180px;min-width:0}.xrole-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.xrole-add select{min-width:220px;flex:1 1 220px}.xrole-chip{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px dashed var(--border3, var(--border2));font-size:11px;color:var(--text2);white-space:nowrap}.stf-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.stf-filters .cust-search{max-width:300px}.stf-filters select,.stf-filters .combo{min-width:150px}.stf-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.stf-chip-count{font-family:var(--mono);font-size:11px;opacity:.85}.stf-chip-warn.cust-filter-chip-active{background:#f0a83226;border-color:#f0a8328c;color:var(--amber)}.stf-name{display:flex;align-items:center;gap:10px;min-width:0}.stf-name-text{display:flex;flex-direction:column;gap:1px;min-width:0}.stf-name-main{font-weight:600;color:var(--text)}.stf-name-sub{font-size:11px;color:var(--text3);font-family:var(--mono)}.stf-row-off td{opacity:.55}.stf-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;border:1px solid var(--border2);background:var(--bg4);color:var(--text2)}.stf-badge-warn{background:#f0a83224;border-color:#f0a83280;color:var(--amber)}.stf-badge-off{background:var(--bg4);color:var(--text3)}.stf-link-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stf-drawer-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000073;display:flex;justify-content:flex-end}.stf-drawer{width:min(480px,100%);height:100%;background:var(--bg2);border-left:1px solid var(--border2);display:flex;flex-direction:column;box-shadow:-12px 0 32px #00000059;animation:stf-slide .18s ease-out}@keyframes stf-slide{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.stf-drawer{animation:none}}.stf-drawer-h{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.stf-drawer-title{flex:1;min-width:0;font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--text)}.stf-drawer-b{flex:1;overflow-y:auto;padding:16px 18px 24px;display:flex;flex-direction:column;gap:18px}.stf-sec-title{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}.stf-field-err{margin:4px 0 0;font-size:12px;color:var(--red)}.stf-switch{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.stf-switch input{position:absolute;opacity:0;pointer-events:none}.stf-switch-track{width:38px;height:22px;border-radius:999px;background:var(--border3);position:relative;transition:background .15s;flex-shrink:0}.stf-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.stf-switch input:checked+.stf-switch-track{background:var(--green)}.stf-switch input:checked+.stf-switch-track:after{transform:translate(16px)}.stf-switch input:focus-visible+.stf-switch-track{outline:2px solid var(--accent);outline-offset:2px}.stf-reports{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.stf-drawer-f{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--border)}.stf-drawer-f-actions{display:flex;gap:8px;flex-wrap:wrap}.stf-danger{border-top:1px dashed var(--border2);padding-top:14px}.wcal-layout{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}@media (min-width: 960px){.wcal-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:stretch}.wcal-layout>.card{display:flex;flex-direction:column;min-height:0;height:100%}}.wcal-list-card{display:flex;flex-direction:column;min-height:0}@media (min-width: 960px){.wcal-list-card{max-height:none;height:100%}}.wcal-list-title{margin:0 0 6px;font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--text)}.wcal-list-sub{margin:0 0 12px;font-size:12px;line-height:1.45;color:var(--text3)}.wcal-list-err{margin:0 0 10px;font-size:13px}.wcal-list-scroll{flex:1;min-height:0;overflow:auto;margin:0 -4px;padding:12px 4px 0;border-top:1px solid var(--border)}.wcal-list-empty{margin:12px 0 0;font-size:13px;color:var(--text3)}.wcal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.wcal-list-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r);border:1px solid var(--border2);background:var(--bg3);color:var(--text);font-family:var(--sans);cursor:pointer;transition:border-color .15s ease,background .15s ease}.wcal-list-item:hover{border-color:var(--accent);background:var(--bg)}.wcal-list-item--current-month{border-color:color-mix(in srgb,var(--accent) 45%,var(--border2));box-shadow:inset 3px 0 0 var(--accent)}.wcal-list-item-date{font-size:12px;font-weight:600;color:var(--text2);letter-spacing:.02em}.wcal-list-item-name{font-size:13px;line-height:1.35;color:var(--text)}@media (max-width: 959px){.wcal-list-card{max-height:none}.wcal-list-scroll{min-height:220px;max-height:min(58vh,560px)}}.wcal-org-card h3{margin:0 0 10px;font-family:var(--display);font-size:1.05rem;font-weight:600;color:var(--text)}.wcal-org-hint{font-size:12px;line-height:1.5;color:var(--text2);margin:0 0 14px}.wcal-org-card .form-field.form-check{margin-bottom:0}.wcal-day-checks{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:16px;padding:12px 14px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3)}.wcal-day-checks label.form-field.form-check{font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.wcal-hpd-row{margin-bottom:16px}.wcal-hpd-row label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);margin-bottom:6px}.wcal-hpd-row input{max-width:140px}.wcal-hpd-row input:focus{outline:none;border-color:var(--accent)}.wcal-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 20px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}.wcal-import-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px;width:100%}@media (min-width: 640px){.wcal-import-wrap{width:auto;align-items:flex-end}}.wcal-import-btn:disabled{opacity:.55;cursor:not-allowed}.wcal-import-hint{font-size:10px;color:var(--text3);line-height:1.35;max-width:280px;text-align:right}.wcal-filter-label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.wcal-filter-label select{min-width:120px}.wcal-filter-label select:focus{outline:none;border-color:var(--accent)}.wcal-month-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wcal-month-nav-icon{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0}.wcal-month-title{font-family:var(--display);font-size:1.15rem;font-weight:600;color:var(--text);min-width:200px;text-align:center}.wcal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.wcal-dow{text-align:center;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);padding:8px 4px}.wcal-cell{aspect-ratio:1;min-height:44px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:6px 4px;cursor:pointer;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease;color:var(--text);font-family:var(--sans)}.wcal-cell:hover:not(.wcal-cell-out){background:var(--bg4);border-color:var(--border3)}.wcal-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wcal-cell-out{opacity:.28;cursor:default;background:transparent;border-color:transparent}.wcal-cell-holiday.wcal-kind-public{background:#f59e0b24;border-color:#f59e0b7a}.wcal-cell-holiday.wcal-kind-company{background:#3b82f624;border-color:#3b82f673}.wcal-cell-holiday.wcal-kind-special{background:#a855f724;border-color:#a855f773}[data-theme=light] .wcal-cell-holiday.wcal-kind-public{background:#d977061f;border-color:#d9770666}[data-theme=light] .wcal-cell-holiday.wcal-kind-company{background:#2563eb1a;border-color:#2563eb61}[data-theme=light] .wcal-cell-holiday.wcal-kind-special{background:#9333ea1a;border-color:#9333ea61}.wcal-cell-today:not(.wcal-cell-holiday){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 55%,transparent)}.wcal-cell-today.wcal-cell-holiday{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 48%,transparent)}.wcal-legend-panel{margin-top:14px;padding:12px 14px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3)}.wcal-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:12px;color:var(--text2)}.wcal-legend-item{display:inline-flex;align-items:center;gap:8px}.wcal-legend-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0;border:1px solid;box-sizing:border-box}.wcal-legend-swatch.wcal-kind-public{background:#f59e0b59;border-color:#f59e0ba6}.wcal-legend-swatch.wcal-kind-company{background:#3b82f659;border-color:#3b82f699}.wcal-legend-swatch.wcal-kind-special{background:#a855f759;border-color:#a855f799}.wcal-legend-swatch.wcal-kind-today{background:var(--bg3);border-color:color-mix(in srgb,var(--accent) 55%,var(--border2));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}.wcal-legend-note{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--border);font-size:11px;line-height:1.45;color:var(--text3)}.wcal-legend-note a{color:var(--accent2);text-decoration:none}.wcal-legend-note a:hover{text-decoration:underline}.wcal-list-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%}.wcal-list-kind{flex-shrink:0;max-width:52%;font-size:10px;font-weight:600;line-height:1.25;padding:3px 8px;border-radius:999px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wcal-list-kind.wcal-kind-public{background:#f59e0b2e;color:#fbbf24;border:1px solid rgba(245,158,11,.4)}.wcal-list-kind.wcal-kind-company{background:#3b82f62e;color:#93c5fd;border:1px solid rgba(59,130,246,.4)}.wcal-list-kind.wcal-kind-special{background:#a855f72e;color:#d8b4fe;border:1px solid rgba(168,85,247,.4)}[data-theme=light] .wcal-list-kind.wcal-kind-public{color:#b45309}[data-theme=light] .wcal-list-kind.wcal-kind-company{color:#1d4ed8}[data-theme=light] .wcal-list-kind.wcal-kind-special{color:#7e22ce}.wcal-modal-kind-readonly{margin:0;font-size:14px;color:var(--text)}.wcal-m-halfday{display:flex;align-items:flex-start;gap:10px;margin-top:4px;font-size:14px;color:var(--text);cursor:pointer}.wcal-m-halfday input{margin-top:3px}.wcal-m-halfday small{display:block;margin-top:2px;font-size:12px;color:var(--text2)}.wcal-cell-num{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}.wcal-cell-lbl{font-size:10px;font-weight:500;color:var(--text2);text-align:center;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.wcal-footnote{margin-top:16px;font-size:13px;color:var(--text2);line-height:1.45}.wcal-footnote-muted{margin:0;font-size:12px;color:var(--text3);line-height:1.45}.wcal-loading{margin:8px 0 0;font-size:13px;color:var(--text3)}.modal.modal-wcal{max-width:min(440px,calc(100vw - 32px))}.modal-wcal .modal-h{align-items:flex-start}.modal-wcal .modal-h .modal-t{margin:0;padding-right:8px}.modal-wcal .modal-b>.wcal-modal-intro{display:block;margin:0 0 14px}.modal-wcal .modal-b .form-field{margin-bottom:14px}.modal-wcal .modal-b .form-field:last-of-type{margin-bottom:0}.modal-wcal .modal-f.wcal-modal-f{justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.wcal-modal-f-actions{display:flex;flex-wrap:wrap;gap:10px;margin-left:auto}@media (max-width: 768px){.modal.modal-wcal{max-width:calc(100vw - 20px);width:calc(100vw - 20px)}}@media (max-width: 600px){.wcal-grid{gap:3px}.wcal-cell{min-height:38px;padding:3px 1px;border-radius:8px;font-size:12px}.wcal-dow{padding:6px 0;font-size:10px;letter-spacing:0}.wcal-legend{gap:8px 12px;font-size:11px}}.wcal-import-opt{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.storage-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:12px 0 4px}.storage-option{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--border2);border-radius:var(--r2);background:var(--bg3);color:inherit;font:inherit;text-align:left;cursor:pointer}.storage-option:hover{border-color:var(--border3)}.storage-option[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--bg3))}.storage-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.storage-option-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:600}.storage-option-desc{font-size:12.5px;line-height:1.5;color:var(--text2)}.storage-badge{padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green);font-size:11px;font-weight:600}.storage-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}.storage-guide{margin:0 0 14px;padding:12px 14px;border:1px solid var(--border2);border-left:3px solid var(--accent);border-radius:var(--r2);background:var(--bg3);font-size:13px;line-height:1.55}.storage-guide ol{margin:6px 0 0;padding-left:20px}.storage-guide li+li{margin-top:4px}.storage-guide a{color:var(--accent2)}.storage-mono{font-family:var(--mono);font-size:12.5px;word-break:break-all}.storage-copy-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font-size:13px}.storage-copy-row .storage-mono{padding:4px 8px;border:1px solid var(--border2);border-radius:var(--r);background:var(--bg3);-webkit-user-select:all;user-select:all}.storage-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;font-size:13px}.storage-row>span{min-width:0}.storage-row+.form-grid{margin-top:14px}.storage-file-input{display:none}.storage-alert{margin:12px 0 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--red) 45%,transparent);border-radius:var(--r2);background:color-mix(in srgb,var(--red) 9%,transparent);color:var(--red);font-size:13px;line-height:1.5}.storage-result{margin:12px 0 0;padding:10px 12px;border-radius:var(--r2);font-size:13px;line-height:1.5}.storage-result-ok{border:1px solid color-mix(in srgb,var(--green) 45%,transparent);background:color-mix(in srgb,var(--green) 9%,transparent);color:var(--green)}.storage-result-bad{border:1px solid color-mix(in srgb,var(--red) 45%,transparent);background:color-mix(in srgb,var(--red) 9%,transparent);color:var(--red)}.storage-ok{color:var(--green)}.storage-banner{margin:0 0 14px}.storage-usage{width:auto;min-width:min(100%,420px);margin:4px 0 0}.storage-usage th[scope=row]{font-weight:500;text-align:left}.storage-result p{margin:6px 0 0}.storage-report-list{margin:4px 0 0;padding-left:20px;font-size:12.5px;word-break:break-word}.doc-prefix-table .doc-prefix-input{width:6.5rem;font-family:ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase}.doc-format-card{display:grid;gap:20px;margin-bottom:0}.doc-format-title{margin:0 0 6px;font-size:1rem;font-weight:600}.doc-format-desc{margin:0 0 10px;font-size:13px}.doc-format-checks{display:flex;flex-wrap:wrap;gap:12px 18px;margin-bottom:4px;padding:14px 16px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3)}.doc-format-checks label.form-field.form-check{margin:0;font-size:13px;color:var(--text)}.doc-format-checks label.form-field.form-check code{font-size:12px}.sys-settings-actions.doc-prefix-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}.doc-prefix-cancel-hint{margin:8px 0 0;font-size:12px}.sys-settings-shell{max-width:760px}.sys-settings-main{min-width:0}.sys-settings-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r3);padding:22px 24px;box-shadow:0 1px #0000000f}.sys-settings-card h2{margin:0 0 10px;font-family:var(--display);font-size:1.15rem;font-weight:600;color:var(--text)}.sys-settings-desc{margin:0 0 22px;font-size:13px;line-height:1.55;color:var(--text2);max-width:52ch}.sys-settings-time-row{display:flex;flex-wrap:wrap;gap:20px 28px;margin-bottom:22px}.sys-settings-time-field{display:flex;flex-direction:column;gap:6px}.sys-settings-time-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}.sys-settings-time-field input[type=time],.sys-settings-time-field input[type=number]{min-width:140px}.sys-settings-time-field input[type=number]{min-width:0;width:110px}.sys-settings-time-field input[type=time]:focus,.sys-settings-time-field input[type=number]:focus{outline:none;border-color:var(--accent)}.sys-settings-hpd-note{margin:-12px 0 20px;font-size:12px;color:var(--text3)}.sys-settings-days-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);margin:0 0 10px}.sys-settings-days{display:flex;flex-wrap:wrap;gap:12px 18px;margin-bottom:22px;padding:14px 16px;border-radius:var(--r2);border:1px solid var(--border2);background:var(--bg3)}.sys-settings-days label.form-field.form-check{margin:0;font-size:13px;color:var(--text)}.sys-settings-actions{margin-top:8px}.sys-settings-placeholder{padding:40px 20px;text-align:center;color:var(--text3);font-size:14px}.sys-settings-link{color:var(--accent2);text-decoration:none;font-weight:500}.sys-settings-link:hover{text-decoration:underline;color:var(--accent3)}.sys-settings-muted{margin:8px 0 0;font-size:13px;color:var(--text3)}.sys-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.sys-tabs-icon{opacity:.7;margin-right:6px}.sys-tab{border:none;background:transparent;color:var(--text2);font:inherit;font-size:14px;padding:7px 14px;border-radius:var(--r2);cursor:pointer}.sys-tab:hover{background:var(--bg3);color:var(--text)}.sys-tab-active{background:var(--accent);color:#fff;font-weight:600}.sys-tab-active:hover{background:var(--accent);color:#fff}.sys-top{display:flex;align-items:center;gap:12px}.sys-top-tabs{flex:1 1 auto;min-width:0}.sys-top-search{flex:0 0 240px;width:240px}.sys-subnav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 16px}.sys-side-icon{display:inline-flex;margin-right:6px;opacity:.85}.sys-main{min-width:0}.sys-main-head{margin:0 0 14px}.sys-main-title{margin:0;font-family:var(--display);font-size:1.15rem;font-weight:600}.sys-main-desc{margin:2px 0 0;font-size:13px;color:var(--text2)}@media (max-width: 700px){.sys-top{flex-wrap:wrap}.sys-top-search{flex:1 1 100%;width:100%}}.sys-main-title:focus{outline:none}.sys-main-title:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r)}.sys-main-head.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.dash-settings{display:flex;flex-direction:column;gap:14px}.dash-settings-group{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px}.dash-settings-group legend{padding:0 6px;font-weight:700}.dash-settings-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 16px;margin-top:8px}.dash-settings-input{display:flex;align-items:center;gap:6px}.dash-settings-input input{max-width:140px}.dash-settings-foot{display:flex;align-items:center;gap:10px}.dash-usage{margin:8px 0;padding-left:18px;font-size:13px}.dash-usage-table{max-width:520px}.dash-owner-table th{text-align:left;font-weight:500;width:38%;vertical-align:top}.dash-owner-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.dash-owner-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--bg3);font-size:12.5px}.dash-owner-x{all:unset;cursor:pointer;font-size:11px;color:var(--text3)}.dash-owner-x:hover,.dash-owner-x:focus-visible{color:var(--red)}.dash-owner-x:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dash-owner-add{width:auto;min-width:140px}.dash-log-wrap{max-height:320px;overflow:auto}.mail-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;border:1px solid;font-size:11px;font-weight:600;line-height:1.4;white-space:nowrap}.mail-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.mail-status-on{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border-color:color-mix(in srgb,var(--green) 35%,transparent)}.mail-status-warn{color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent);border-color:color-mix(in srgb,var(--amber) 35%,transparent)}.mail-status-off{color:var(--text2);background:var(--bg3);border-color:var(--border2)}.mail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 20px;margin:10px 0 0}.mail-facts>div{min-width:0}.mail-facts dt{font-size:11.5px;color:var(--text2)}.mail-facts dd{margin:2px 0 0;font-size:13px;overflow-wrap:anywhere}.mail-ok{color:var(--green);font-weight:600}.mail-bad{color:var(--red);font-weight:600}.mail-mono{font-family:var(--mono);font-size:12px;overflow-wrap:anywhere}.mail-enable{margin:4px 0 14px}.mail-providers{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.mail-guide{margin:0 0 14px;padding:12px 14px;border:1px solid var(--border2);border-left:3px solid var(--accent);border-radius:var(--r2);background:var(--bg3);font-size:13px;line-height:1.55}.mail-guide ol{margin:6px 0 8px;padding-left:20px}.mail-guide li+li{margin-top:4px}.mail-guide p{margin:0}.mail-guide a{color:var(--accent2)}.mail-test-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:8px}.mail-test-row .form-field{flex:1 1 260px;max-width:420px}.mail-result{margin-top:12px;padding:10px 14px;border:1px solid;border-radius:var(--r2);font-size:13px;line-height:1.5}.mail-result p{margin:4px 0 0;color:var(--text)}.mail-result-ok{color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);border-color:color-mix(in srgb,var(--green) 35%,transparent)}.mail-result-bad{color:var(--red);background:color-mix(in srgb,var(--red) 8%,transparent);border-color:color-mix(in srgb,var(--red) 35%,transparent)}.issues-page{padding:0 0 32px}.issues-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}@media (max-width: 900px){.issues-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media (max-width: 560px){.issues-filter-grid{grid-template-columns:1fr!important}}.issues-severity-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.sev-card{border-radius:var(--r2);padding:10px 14px;display:flex;flex-direction:column;gap:2px;border:1px solid transparent}.sev-card-critical{background:#f0687812;border-color:#f0687840;color:var(--red)}.sev-card-high{background:#f0a83212;border-color:#f0a83240;color:var(--amber)}.sev-card-medium{background:#fbbf240d;border-color:#fbbf2433;color:#fcd34d}.sev-card-low{background:#1fc98e12;border-color:#1fc98e40;color:var(--green)}[data-theme=light] .sev-card-critical{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}[data-theme=light] .sev-card-high{background:#fff7ed;border-color:#fdba74;color:#c2410c}[data-theme=light] .sev-card-medium{background:#fffbeb;border-color:#fcd34d;color:#b45309}[data-theme=light] .sev-card-low{background:#f0fdf4;border-color:#86efac;color:#166534}.sev-card-count{font-size:24px;font-weight:800;line-height:1}.sev-card-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.8}.sev-card-sub{font-size:11px;opacity:.65}.issues-kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.kanban-col{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:200px}.kanban-col-header{display:flex;align-items:center;gap:6px;padding:4px 2px 6px;border-bottom:1px solid var(--border2);margin-bottom:2px}.kanban-col-title{font-weight:700;font-size:13px;color:var(--text);flex:1}.kanban-col-count{font-size:11px;font-weight:600;background:var(--bg3);border-radius:10px;padding:1px 7px;color:var(--text2)}.kanban-empty{font-size:12px;color:var(--text3);text-align:center;padding:20px 0}.issue-card{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);padding:10px 12px;cursor:pointer;transition:box-shadow .15s,border-color .15s;display:flex;flex-direction:column;gap:4px}.issue-card:hover{box-shadow:0 2px 12px #00000040;border-color:var(--accent)}.issue-card-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.issue-card-id{font-size:11px;font-weight:700;color:var(--text2);font-family:var(--mono)}.issue-card-job-id{font-size:11px;color:var(--text3);font-family:var(--mono)}.issue-card-type-badge{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:600;margin-left:auto}.issue-card-job-name{font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.issue-card-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.35}.issue-card-footer{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap}.issue-card-date{font-size:11px;color:var(--text3);margin-left:auto}.sev-badge{font-size:10px;padding:1px 7px;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.sev-badge-critical{background:#f068782e;color:var(--red)}.sev-badge-high{background:#f0a8322e;color:var(--amber)}.sev-badge-medium{background:#fbbf2424;color:#fcd34d}.sev-badge-low{background:#1fc98e24;color:var(--green)}[data-theme=light] .sev-badge-critical{background:#fee2e2;color:#b91c1c}[data-theme=light] .sev-badge-high{background:#ffedd5;color:#c2410c}[data-theme=light] .sev-badge-medium{background:#fef3c7;color:#b45309}[data-theme=light] .sev-badge-low{background:#dcfce7;color:#166534}.type-badge-bug{background:#f068782e;color:var(--red)}.type-badge-enhancement{background:#5b8df52e;color:var(--accent2)}.type-badge-design{background:#9d7cf42e;color:var(--purple)}.type-badge-performance{background:#1fc98e24;color:var(--green)}.type-badge-security{background:#f0a83224;color:var(--amber)}[data-theme=light] .type-badge-bug{background:#fee2e2;color:#b91c1c}[data-theme=light] .type-badge-enhancement{background:#dbeafe;color:#1d4ed8}[data-theme=light] .type-badge-design{background:#ede9fe;color:#6d28d9}[data-theme=light] .type-badge-performance{background:#d1fae5;color:#065f46}[data-theme=light] .type-badge-security{background:#fef3c7;color:#92400e}.issue-status-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.issue-status-open{background:#5b8df52e;color:var(--accent2)}.issue-status-inprogress{background:#f0a83226;color:var(--amber)}.issue-status-resolved{background:#1fc98e24;color:var(--green)}.issue-status-closed{background:#64748b2e;color:var(--text2)}[data-theme=light] .issue-status-open{background:#dbeafe;color:#1d4ed8}[data-theme=light] .issue-status-inprogress{background:#fef3c7;color:#b45309}[data-theme=light] .issue-status-resolved{background:#dcfce7;color:#166534}[data-theme=light] .issue-status-closed{background:#e5e7eb;color:#374151}.assignee-chip{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:9px;font-weight:700;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent2);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.qa-pass-panel{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);padding:14px 16px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.qa-pass-panel-title{font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.qa-pass-panel-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--text2)}.qa-pass-panel-stats span{font-weight:700;color:var(--text)}.qa-pass-panel-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.qa-pass-warning{font-size:12px;color:var(--amber)}.issue-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto}.issue-modal{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r3);width:100%;max-width:820px;box-shadow:var(--shadow-modal);display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden}.issue-modal-head{display:flex;align-items:flex-start;gap:10px;padding:18px 20px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.issue-modal-head-info{flex:1;min-width:0}.issue-modal-id{font-size:12px;font-weight:700;color:var(--text2);font-family:var(--mono);margin-bottom:2px}.issue-modal-title{font-size:17px;font-weight:700;color:var(--text);margin:0;line-height:1.3}.issue-modal-close{background:none;border:none;cursor:pointer;font-size:20px;color:var(--text2);padding:2px 6px;border-radius:var(--r);line-height:1}.issue-modal-close:hover{background:var(--bg3)}.issue-modal-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:16px}.issue-modal-cols{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}.issue-field-group{display:flex;flex-direction:column;gap:10px}.issue-field-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px;align-items:start}.issue-field-row>*{min-width:0}.issue-field-label{font-size:12px;font-weight:600;color:var(--text2);padding-top:2px}.issue-field-value{font-size:13px;color:var(--text)}.muted{color:var(--text3);font-style:italic}.issue-modal input[type=text],.issue-modal input[type=date],.issue-modal input[type=number],.issue-modal select,.issue-modal textarea{width:100%}.issue-modal textarea{resize:vertical;min-height:72px}.issue-modal input:focus,.issue-modal select:focus,.issue-modal textarea:focus{outline:none;border-color:var(--accent)}.bug-fix-buffer-card{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);padding:14px;display:flex;flex-direction:column;gap:8px}.bug-fix-buffer-title{font-size:13px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:2px}.bug-fix-buffer-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text2)}.bug-fix-buffer-row .val{font-weight:700;color:var(--text)}.bug-fix-buffer-row.highlight .val{color:var(--accent2)}.bug-fix-buffer-row.warning .val{color:var(--amber)}.bug-fix-buffer-row.danger .val{color:var(--red)}.issue-activity-section{border-top:1px solid var(--border);padding-top:14px}.issue-activity-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:10px}.activity-timeline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:28px}.activity-timeline:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--border2)}.activity-item{position:relative;padding:6px 0 10px;display:flex;flex-direction:column;gap:3px}.activity-item:before{content:"";position:absolute;left:-24px;top:9px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg2);z-index:1}.activity-item-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.activity-actor{font-size:12px;font-weight:700;color:var(--text)}.activity-ts{font-size:11px;color:var(--text3)}.activity-test-badge{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:700}.activity-test-passed{background:#1fc98e24;color:var(--green)}.activity-test-failed{background:#f068782e;color:var(--red)}[data-theme=light] .activity-test-passed{background:#dcfce7;color:#166534}[data-theme=light] .activity-test-failed{background:#fee2e2;color:#b91c1c}.activity-status-change,.activity-md-used{font-size:11px;color:var(--text2)}.activity-comment{font-size:12px;color:var(--text);line-height:1.45;white-space:pre-wrap}.activity-form{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r2);padding:12px;display:flex;flex-direction:column;gap:10px;margin-top:10px}.activity-form-title{font-size:13px;font-weight:700;color:var(--text)}.activity-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.activity-form label{font-size:12px;font-weight:600;color:var(--text2);display:flex;flex-direction:column;gap:4px}.activity-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.activity-form select,.activity-form textarea{width:100%;box-sizing:border-box;min-height:var(--field-h-sm);padding:var(--field-pad-sm);font-size:var(--field-fs-sm)}.activity-form textarea{resize:vertical;min-height:56px}.activity-form input:focus,.activity-form select:focus,.activity-form textarea:focus{outline:none;border-color:var(--accent)}.issue-modal-footer{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--border);flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;display:flex;align-items:center;justify-content:center;padding:24px}.modal-dialog{width:100%;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r3);box-shadow:var(--shadow-modal);display:flex;flex-direction:column}.toast{position:fixed;bottom:28px;right:28px;z-index:400;padding:12px 18px;border-radius:var(--r2);font-size:13px;font-weight:500;max-width:min(400px,calc(100vw - 48px));border:1px solid var(--border2);box-shadow:0 12px 32px #00000059;animation:issue-toast-in .2s ease}@keyframes issue-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-ok{background:var(--bg3);color:var(--green);border-color:#1fc98e59}.toast-err{background:var(--bg3);color:var(--red);border-color:#f0687859}@media (max-width: 900px){.issues-kanban,.issues-severity-row{grid-template-columns:repeat(2,1fr)}.issue-modal-cols{grid-template-columns:1fr}}@media (max-width: 560px){.issues-kanban,.activity-form-row{grid-template-columns:1fr}.issue-field-row{grid-template-columns:minmax(0,1fr);gap:2px}.toast{left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom,0px));max-width:none}}.issue-card.is-draggable{cursor:grab}.issue-card.is-draggable:active{cursor:grabbing}.issue-card.is-dragging{opacity:.45}.issue-card.is-saving{opacity:.6;pointer-events:none}.kanban-col.is-drop-allowed{border-style:dashed}.kanban-col.is-drop-target{border-color:var(--accent);background:var(--bg3)}.issue-title-input{height:auto;min-height:0;padding:4px 0;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;width:100%;font-size:17px;font-weight:700}.issue-field-hint{display:block;margin-top:4px;font-size:11px;color:var(--text3)}.issue-report-sheet .doc-table{font-size:9.5pt}.issue-report-sheet .doc-table th,.issue-report-sheet .doc-table td{padding:3px 5px;vertical-align:top}.issue-report-detail{table-layout:fixed;width:100%}.issue-report-detail td{overflow-wrap:anywhere}.issue-report-detail col.c-id{width:13%}.issue-report-detail col.c-title{width:25%}.issue-report-detail col.c-status{width:10%}.issue-report-detail col.c-sev{width:9%}.issue-report-detail col.c-job{width:20%}.issue-report-detail col.c-who{width:12%}.issue-report-detail col.c-date{width:11%}.issue-report-sub{display:block;color:#555;font-size:8.5pt}.hub-loading{padding:24px 2px;color:var(--text3)}.sup-roster-month{min-width:130px;text-align:center}.sup-roster-scroll{overflow-x:auto;margin-top:8px}.sup-roster{border-collapse:separate;border-spacing:0;font-size:12px}.sup-roster th,.sup-roster td{border-bottom:1px solid var(--border2);padding:2px;text-align:center}.sup-roster-name{position:sticky;left:0;z-index:1;background:var(--bg2);min-width:110px;text-align:left!important;padding:4px 8px!important;white-space:nowrap;font-weight:600}.sup-roster-day{min-width:34px;color:var(--text2);font-weight:500}.sup-roster-day span{display:block;font-size:13px;color:var(--text)}.sup-roster-day small{font-size:10px}.sup-roster-day.is-weekend{background:color-mix(in srgb,var(--text3) 10%,transparent)}.sup-roster-day.is-today span{color:var(--accent, #2f6fed);font-weight:700}.sup-roster-day.is-uncovered{background:color-mix(in srgb,var(--red) 22%,transparent);box-shadow:inset 0 -2px 0 var(--red)}.sup-roster-cell.is-weekend{background:color-mix(in srgb,var(--text3) 6%,transparent)}.sup-roster-btn{display:inline-block;white-space:nowrap;min-width:30px;padding:3px 4px;border-radius:6px;border:1px solid transparent;background:var(--bg3);color:#fff;font-size:11px;font-weight:600;line-height:1.3;cursor:default}button.sup-roster-btn{cursor:pointer}.sup-roster-btn.kind-off{background:transparent;color:var(--text3);border-color:var(--border2);font-weight:400}.sup-roster-btn.kind-standby{border-style:dashed;border-color:color-mix(in srgb,#fff 60%,transparent)}.sup-roster-btn.is-empty{background:transparent;color:var(--text3);border:1px dashed var(--border2);font-weight:400}.sup-roster-btn.is-draft{outline:2px dashed var(--amber);outline-offset:-2px}.sup-roster-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px;color:var(--text2)}.sup-shift-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;background:var(--text3);vertical-align:baseline}.sup-shift-dot.is-off{background:transparent;border:1px solid var(--text3)}.sup-att-summary,.sup-att-table{width:100%;margin-top:10px;font-size:13px}.sup-danger{color:var(--red);font-weight:600}.sup-shift-modal{max-width:760px}.sup-shift-table{width:100%;font-size:13px}.sup-shift-off{opacity:.55}.sup-shift-btns{white-space:nowrap;text-align:right}.sup-shift-sub{margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--border2);font-size:13px;font-weight:600;color:var(--text2)}.sup-shift-check{display:flex;align-items:center;gap:8px}.sup-shift-actions{display:flex;gap:8px;margin-top:8px}.sup-shift-ok{color:var(--green)}.sup-roster-day.is-holiday{background:color-mix(in srgb,var(--orange, #d98a00) 24%,transparent)}.sup-roster-day.is-holiday.is-uncovered{background:color-mix(in srgb,var(--red) 22%,transparent)}.sup-roster-cell.is-holiday{background:color-mix(in srgb,var(--orange, #d98a00) 10%,transparent)}.sup-shift-dot.is-holiday{background:color-mix(in srgb,var(--orange, #d98a00) 60%,transparent)}.sup-holiday-scores{margin-top:16px}.sup-autofill-modal{max-width:820px}.sup-autofill-types{display:flex;flex-direction:column;gap:4px}.sup-autofill-table td{vertical-align:top}.sup-autofill-table td .sup-autofill-slot,.sup-autofill-table td>*+*{margin-top:4px}.sup-autofill-table select{min-width:190px}.sup-autofill-gap{background:color-mix(in srgb,var(--red) 8%,transparent)}.sup-autofill-note{font-size:12px}.sup-autofill-scores{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px}.sup-autofill-scores .is-changed{color:var(--accent, #2f6fed)}.sup-roster-cell.has-swap{position:relative}.sup-roster-cell.has-swap:after{content:"⇄";position:absolute;top:-1px;right:1px;font-size:10px;line-height:1;color:var(--accent, #2f6fed);pointer-events:none}.sup-swap-modes{display:flex;flex-wrap:wrap;gap:4px 18px;margin-bottom:10px}.sup-swap-actions{display:flex;flex-wrap:wrap;gap:6px}.sup-swap-ok{color:var(--green, #2a9d5b)}.sup-swap-warn{color:var(--orange, #d98a00)}.sup-swap-danger{color:var(--red, #d9534f)}.sup-swap-muted{color:var(--text3, #8a8f98)}.sup-swap-modal{width:min(560px,calc(100vw - 32px))}.sup-swap-modal select{width:100%}.sup-swap-modal .form-grid{grid-template-columns:1fr}.sup-swap-reason{display:flex;flex-direction:column;gap:4px;margin-top:10px}.sup-swap-reason input{width:100%}.sup-swap-card>.sup-shift-sub:first-child{border-top:0;margin-top:0;padding-top:0}.sup-view-switch{display:inline-flex;gap:4px}.sup-holiday-toolbar{align-items:center;margin-bottom:8px}.sup-comp-decide{display:flex;flex-direction:column;gap:4px;min-width:200px}
