:root{--bg:#F5F7FB;--surface:#FFFFFF;--line:#E6EAF1;--ink:#0F1B33;--ink2:#5B6679;--side:#0C1A38;--side2:#182A52;--sideInk:#B8C3D9;--accent:#E58B3A;--eyebrow:#9A5B16;--pri:#1F3A78;--priText:#1F3A78;--priSoft:#E8EEFA;--ok:#14805A;--okSoft:#E0F2E8;--warn:#9A5A06;--warnSoft:#FBEED6;--crit:#B3261E;--critSoft:#FBE4E1;--muted:rgba(15,27,51,.07);--shadow:0 1px 2px rgba(15,27,51,.04),0 8px 24px rgba(15,27,51,.05);--cBlue:#2A78D6;--cOrange:#EB6834;--cTeal:#1BAF7A;--cPurple:#8E5CD9;--cYellow:#C99A06;--cPink:#D5418F;--grid:#E3E8F0;--font:"Be Vietnam Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;--fs-base:14.5px;--fs-small:12.5px;--fs-h1:28px;--fs-h2:17px;--fs-nav:14.5px;--touch:44px;--nav-h:60px;--safe-b:env(safe-area-inset-bottom,0px)}:root[data-theme=dark]{--bg:#0A1120;--surface:#111A2D;--line:rgba(255,255,255,.09);--ink:#E8EDF7;--ink2:#98A5BC;--side:#060B17;--side2:#14223F;--sideInk:#A9B6CE;--eyebrow:#E0A25C;--pri:#3B5FCB;--priText:#8FA8F5;--priSoft:#17244A;--ok:#5CCB8E;--okSoft:rgba(92,203,142,.15);--warn:#E9AE4C;--warnSoft:rgba(233,174,76,.15);--crit:#F28B82;--critSoft:rgba(242,139,130,.15);--muted:rgba(255,255,255,.08);--shadow:0 1px 2px rgba(0,0,0,.35);--cBlue:#3987E5;--cOrange:#D95926;--cTeal:#199E70;--cPurple:#9B6FE3;--cYellow:#B88A05;--cPink:#E0559D;--grid:rgba(255,255,255,.1)}@media(max-width:1366px){:root{--fs-base:14px;--fs-small:12px;--fs-h1:26px;--fs-h2:16.5px;--fs-nav:14px}}@media(min-width:1680px){:root{--fs-base:15px;--fs-small:13px;--fs-h1:30px;--fs-h2:18px;--fs-nav:15px}}@media(max-width:900px){:root{--fs-base:16px;--fs-small:13.5px;--fs-h1:clamp(21px,6vw,26px);--fs-h2:17.5px;--fs-nav:16px}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--priText);outline-offset:2px}a{color:var(--priText)}h1{margin:4px 0 2px;font-size:var(--fs-h1);font-weight:700;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere}h2{margin:0;font-size:var(--fs-h2);font-weight:700;line-height:1.25}.sub-h{margin:4px 0 0;font-size:var(--fs-base);font-weight:700}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--eyebrow)}.muted{color:var(--ink2)}.small{font-size:var(--fs-small)}.row{display:flex;flex-wrap:wrap;gap:16px}.row>*{min-width:0}.grow{flex:1 1 300px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.scroll-x{overflow-x:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-weight:600;text-align:center}.btn:hover{border-color:var(--priText)}.btn.pri{background:var(--pri);border-color:var(--pri);color:#fff}.btn.danger{color:var(--crit)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn[aria-pressed=true]{background:var(--priSoft);border-color:var(--priText);color:var(--priText);font-weight:700}.big-btn{min-height:48px;font-size:15px;align-self:flex-start;padding:10px 22px}.icon-btn{width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;position:relative}.input,select.input,textarea.input{width:100%;min-width:0;min-height:40px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}label.f,div.f{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-small);font-weight:500;min-width:0}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.fs{grid-column:1 / -1;border:1px solid var(--line);border-radius:10px;padding:8px 12px}.slot-pick{display:flex;gap:6px}.slot-pick .input{flex:1;min-width:0}.badge{display:inline-flex;align-items:center;padding:1px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:20px;white-space:nowrap}.b-info{background:var(--priSoft);color:var(--priText)}.b-ok{background:var(--okSoft);color:var(--ok)}.b-warn{background:var(--warnSoft);color:var(--warn)}.b-crit{background:var(--critSoft);color:var(--crit)}.b-muted{background:var(--muted);color:var(--ink2)}.err{padding:10px 14px;border-radius:10px;background:var(--critSoft);color:var(--crit);font-weight:500}.okmsg{padding:10px 14px;border-radius:10px;background:var(--okSoft);color:var(--ok);font-weight:500}.confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;border-radius:10px;background:var(--critSoft)}.temp-pw{font-size:18px;font-weight:700;letter-spacing:.06em;padding:6px 10px;border-radius:8px;background:var(--muted);user-select:all}.pw-field{display:flex;gap:8px;align-items:center}.pw-field .input{flex:1 1 auto;min-width:0}.seg{display:inline-flex;max-width:100%;padding:3px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}.seg button{min-height:36px;padding:4px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink2);font-weight:500}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 3px #0000002e}.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:10px 12px;border-bottom:2px solid transparent;color:var(--ink2);font-weight:500;min-height:42px}.tabs button[aria-selected=true]{color:var(--priText);border-bottom-color:var(--priText);font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font-size:var(--fs-small);font-weight:600}.chip[aria-pressed=true]{background:var(--priSoft);border-color:var(--priText);color:var(--priText)}.chip b{font-variant-numeric:tabular-nums}.chip[data-tone=crit] b{color:var(--crit)}.chip[data-tone=warn] b{color:var(--warn)}.period-pick{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.period-dates{display:flex;gap:8px;flex-wrap:wrap}.period-dates .f{min-width:150px}.ss{position:relative}.ss-input{width:100%;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--ink2) 50%),linear-gradient(135deg,var(--ink2) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}.ss-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:min(320px,50vh);overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px #0000002e}.ss-list li[role=option]{padding:9px 10px;border-radius:8px;cursor:pointer;font-weight:400;min-height:40px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.ss-list li[data-active=true]{background:var(--priSoft)}.ss-list li[aria-selected=true]{font-weight:700}.ss-empty{padding:9px 10px}select.perm{font-size:12px;min-height:34px;padding:4px 8px}select.perm[data-v=role]{border-color:var(--ok);color:var(--ok)}select.perm[data-v=allow]{background:var(--okSoft);color:var(--ok);font-weight:600}select.perm[data-v=deny]{background:var(--critSoft);color:var(--crit);font-weight:600}select.perm[data-v=none]{color:var(--ink2)}@media(max-width:900px){.input,select.input,textarea.input{font-size:16px;min-height:46px}.btn{min-height:var(--touch)}.icon-btn{width:var(--touch);height:var(--touch)}.big-btn{align-self:stretch}.form{grid-template-columns:minmax(0,1fr)}.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.chip{min-height:var(--touch);justify-content:center;text-align:center;padding:4px 6px;line-height:1.2}.tabs button{min-height:var(--touch);padding:8px 10px}.seg{display:flex}.seg button{flex:1 1 0;min-height:var(--touch);padding:4px 6px;white-space:nowrap;font-size:var(--fs-small)}.period-pick{align-items:stretch;width:100%}.period-pick .seg button{padding:4px 6px;white-space:nowrap;font-size:var(--fs-small)}.period-dates .f{flex:1}select.perm{min-height:var(--touch);font-size:14px}}.target-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:10px}.target-row{display:flex;gap:8px;align-items:flex-end;border:1px solid var(--line);border-radius:12px;padding:8px 12px 12px;margin:0;min-width:0}.target-row legend{font-weight:600;padding:0 4px}.target-row .f{flex:1 1 0;min-width:0}.check{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch);cursor:pointer}.check input{width:18px;height:18px}.warnbox{padding:10px 14px;border-radius:10px;background:var(--warnSoft);color:var(--ink)}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.target-row:has(.hm-field){flex-direction:column;align-items:stretch}.hm-in{display:flex;align-items:center;gap:6px}.hm-in .input{flex:0 0 72px;width:72px;min-width:72px;text-align:right}.hm-in span{font-weight:400;color:var(--ink2)}.debt-sheet{display:flex;flex-direction:column;gap:12px}.debt-table{width:100%;border-collapse:collapse;min-width:900px}.debt-table th,.debt-table td{border:1px solid var(--line);padding:6px 8px;vertical-align:middle}.debt-table thead th,.debt-table tfoot th{background:var(--bg);font-weight:600;text-align:center}.debt-table td.num{text-align:right;font-variant-numeric:tabular-nums}.debt-table .input{min-width:90px;padding:6px 8px}.debt-table td.num .input{text-align:right}.debt-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px 16px;margin:0}.debt-sum dt{font-size:var(--fs-small);color:var(--ink2)}.debt-sum dd{margin:0;font-variant-numeric:tabular-nums}.debt-adv{display:flex;gap:6px}.debt-adv .input{max-width:160px}.reprint-hint{color:var(--warn);margin-top:4px}.asset-map{margin-top:12px;max-height:60vh;overflow:auto;border-top:1px solid var(--line);padding-top:12px}.tech-sheet{display:flex;flex-direction:column;gap:10px}.tech-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.tech-actions{display:inline-flex;gap:8px}.tech-tool{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);min-width:0}.pad{padding:20px 22px}.kpi{flex:1 1 150px;padding:18px 20px;display:flex;flex-direction:column;gap:6px}.kpi .v{font-size:32px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.bar{height:8px;border-radius:999px;background:var(--muted);overflow:hidden}.bar>span{display:block;height:100%;border-radius:999px;background:var(--cBlue)}table.t{width:100%;border-collapse:collapse}.t th{text-align:left;font-size:12px;font-weight:600;color:var(--ink2);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.t td b{white-space:nowrap}.t td{padding:10px 14px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;vertical-align:middle}.t tr:last-child td{border-bottom:0}.t tbody tr:hover{background:var(--bg)}.t tr[data-click=true]{cursor:pointer}.t td.num,.t th.num{text-align:right}.t.compact td{padding:8px}.rlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px;margin:0;padding:0;list-style:none}.rcard{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.rcard[data-tone=ok]{border-left-color:var(--ok)}.rcard[data-tone=warn]{border-left-color:var(--warn)}.rcard[data-tone=crit]{border-left-color:var(--crit)}.rcard[data-tone=info]{border-left-color:var(--priText)}.rcard-main{display:flex;flex-direction:column;gap:6px;padding:12px 14px 10px;border-radius:14px 14px 0 0;min-width:0}.rcard-main[data-click=true]{cursor:pointer}.rcard-main[data-click=true]:hover{background:var(--bg)}.rcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.rcard-code{font-size:var(--fs-base);font-weight:800;color:var(--priText);overflow-wrap:anywhere;min-width:0}.rcard-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.rcard-sub{color:var(--ink2);font-size:var(--fs-small);overflow-wrap:anywhere}.rcard-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,76px),1fr));gap:6px 12px;margin:2px 0 0}.rcard-facts>div{min-width:0}.rcard-facts>div[data-wide=true]{grid-column:1 / -1}.rcard-facts dt{font-size:12px;color:var(--ink2)}.rcard-facts dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.rcard-progress{display:flex;flex-direction:column;gap:4px}.rcard-progress-label{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-small)}.rcard-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:10px 14px 12px;border-top:1px solid var(--line)}.rcard-actions:empty{display:none}.rcard-actions .note{margin-right:auto;font-size:var(--fs-small);color:var(--ink2)}.ltools{display:flex;flex-direction:column;gap:8px}.ltools-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ltools-search{flex:1 1 260px;max-width:460px}.ltools-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ltools-filters .input{width:auto;min-width:160px}.ltools-count{font-size:var(--fs-small);color:var(--ink2)}.lstate{padding:28px 16px;text-align:center;color:var(--ink2)}.lstate.err{text-align:left}.lmore{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 0}.skeleton{height:96px;border-radius:14px;background:linear-gradient(90deg,var(--muted),var(--bg),var(--muted));background-size:200% 100%;animation:sk 1.2s linear infinite}@keyframes sk{0%{background-position:200% 0}to{background-position:0 0}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a11208c;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:40;overflow-y:auto}.modal{width:min(720px,100%);background:var(--surface);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:14px;min-width:0}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-body{display:flex;flex-direction:column;gap:14px;min-width:0}.modal-head h2{min-width:0;overflow-wrap:anywhere}.modal-foot{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid var(--line)}.thumbs{display:flex;flex-wrap:wrap;gap:8px}.thumbs img{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:zoom-in}.thumb{position:relative;display:inline-flex}.thumb-del{position:absolute;top:-6px;right:-6px;min-width:24px;height:24px;padding:0 6px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--crit);font:inherit;font-size:12px;cursor:pointer}.thumb-del.sure{background:var(--crit);color:#fff;border-color:var(--crit)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:50}.lightbox img{max-width:94vw;max-height:90vh;object-fit:contain}.viewer{z-index:70;flex-direction:column;background:#000000f0}.viewer img{max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);user-select:none;-webkit-user-select:none}.viewer-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 8px) 8px 8px 16px;background:linear-gradient(rgba(0,0,0,.6),transparent);color:#fff}.viewer-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;opacity:.9}.viewer-btn{border:0;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}.viewer-close{width:48px;height:48px;border-radius:50%;background:#ffffff24}.viewer-close:hover{background:#ffffff42}.viewer-bottom{position:absolute;left:0;right:0;bottom:0;padding:10px 8px calc(env(safe-area-inset-bottom,0px) + 10px);background:linear-gradient(transparent,#000000b3);display:flex;flex-direction:column;align-items:center;gap:8px}.viewer-note{background:#ffffff29;color:#fff;font-size:13px;padding:6px 12px;border-radius:14px}.viewer-actions{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}.viewer-action{flex-direction:column;gap:4px;min-width:72px;padding:8px 6px;border-radius:12px;font-size:12px}.viewer-action:hover{background:#ffffff1f}.drop{border:2px dashed var(--line);border-radius:12px;padding:14px;text-align:center;color:var(--ink2)}.drop[data-over=true]{border-color:var(--priText);background:var(--priSoft)}.paste{border:2px dashed var(--line);border-radius:12px;padding:16px;text-align:center;color:var(--ink2);background:var(--bg)}.paste[data-over=true],.paste:focus{border-color:var(--priText);background:var(--priSoft);outline:none}.doc-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:13px;color:var(--ink);text-decoration:none;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0}.notif[data-unread=true]{background:var(--priSoft)}.notif:hover{background:var(--bg)}.kcard{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);display:flex;flex-direction:column;gap:6px;cursor:pointer}.kcard:hover{border-color:var(--priText)}@media(max-width:900px){.kpi .v{font-size:clamp(22px,7vw,30px)}.t th,.t td{padding:10px}.ltools{position:sticky;top:var(--top-h,0px);z-index:6;margin:0 -14px;padding:8px 14px;background:var(--bg);border-bottom:1px solid transparent}.ltools-row{flex-wrap:nowrap}.rcard-actions .note{flex:1 1 100%}.ltools-search{max-width:none;flex:1 1 0;min-width:0}.modal-back{align-items:flex-end;padding:0;overflow:hidden}.modal{width:100%;max-height:92vh;max-height:92dvh;overflow:hidden;border-radius:20px 20px 0 0;padding:0;gap:0;animation:sheet-in .18s ease-out}.modal-head{flex:none;padding:12px 16px 10px;border-bottom:1px solid var(--line)}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px calc(16px + var(--safe-b));gap:12px}.modal-foot{flex:none;padding:10px 16px calc(10px + var(--safe-b))}.modal-body:has(+.modal-foot){padding-bottom:16px}.modal-foot .btn{flex:1 1 140px}}@keyframes sheet-in{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}@media(max-width:640px){.card.pad{padding:16px 14px}}.push-note{padding:10px 12px;border-radius:10px;background:var(--warnSoft);color:var(--warn);font-size:var(--fs-small)}.push-denied{color:var(--crit)}.push-devices{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.push-devices li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.legacy-notice{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--warnSoft);color:var(--warn);font-size:13px;line-height:1.4;border-bottom:1px solid var(--line)}.legacy-notice>span{flex:1 1 auto;margin-right:10px}.legacy-notice .icon-btn{flex:none}.shell{display:flex;min-height:100vh}.side{width:248px;flex:none;background:var(--side);color:var(--sideInk);padding:22px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:4px 8px 16px;border-bottom:1px solid var(--side2)}.brand-sub{font-size:10px;letter-spacing:.32em;color:var(--sideInk)}.nav-label{padding:0 12px 4px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.nav-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:8px 12px;border:0;border-radius:10px;background:transparent;color:var(--sideInk);text-align:left;font-size:var(--fs-nav)}.nav-btn:hover{background:var(--side2)}.nav-btn[aria-current=page]{background:var(--side2);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.side-user{margin-top:auto;font-size:var(--fs-small);border-top:1px solid var(--side2);padding:12px 6px 0}.side-user-name{color:#fff;font-weight:600}.main{flex:1;min-width:0;display:flex;flex-direction:column}.content{padding:28px 32px 40px;display:flex;flex-direction:column;gap:20px;max-width:1440px;width:100%;min-width:0}.top{display:flex;flex-wrap:nowrap;align-items:center;gap:10px 14px;padding:12px 32px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.top>*{flex-shrink:0}.top-left{flex:0 0 auto;min-width:0;display:flex;align-items:center;gap:10px}.top-brand{font-size:15px}.top-menu{display:none}.top-greet{font-size:var(--fs-small);font-weight:600;color:var(--ink2);white-space:nowrap}.bell-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--crit);color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center}.top>.slogan{flex:1 1 0;min-width:0;flex-shrink:1}.slogan{font-size:clamp(10px,.82vw,12.5px);font-weight:700;letter-spacing:.06em;color:var(--eyebrow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slogan i{font-style:normal;color:var(--ink2);font-weight:400}.logo-img{display:block;height:auto;max-width:100%;user-select:none;-webkit-user-drag:none}.logo-side{width:172px}.logo-top{display:none;width:auto;height:30px}.logo-login{width:min(240px,62vw);margin:4px auto 0}.logo-doc{width:150px}.page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}.page-head>div:first-child{min-width:0}.page-head-right{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.page-meta{margin-top:2px}.copyright{margin-top:auto;padding:14px 32px 18px;text-align:center;font-size:12px;color:var(--ink2);border-top:1px solid var(--line)}.copyright.on-dark{border:0;color:#ffffffb3;padding:0}.login{min-height:100vh;display:flex;flex-direction:column;gap:18px;align-items:center;justify-content:center;padding:16px;background:var(--side)}.login>.card{margin-top:auto}.login>.copyright{margin-top:auto}.bottom-nav{display:none}.drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#060b1773;z-index:40;display:flex}.drawer{width:min(320px,86vw);height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:4px 0 24px #00000040;animation:drawer-in .18s ease-out;padding-bottom:var(--safe-b)}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:none}}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:16px;border-bottom:1px solid var(--line)}.drawer-list{flex:1;overflow-y:auto;padding:8px}.drawer-foot{padding:8px;border-top:1px solid var(--line)}.drawer-item{display:block;width:100%;text-align:left;min-height:48px;padding:10px 14px;border:0;border-radius:10px;background:transparent;font-size:var(--fs-base);font-weight:500}.drawer-item[aria-current=page]{background:var(--priSoft);color:var(--priText);font-weight:700}.drawer-item.danger{color:var(--crit)}.offline-bar{position:sticky;top:0;z-index:30;padding:8px 16px;background:var(--warnSoft);color:var(--warn);font-weight:600;text-align:center;font-size:var(--fs-small)}@media(max-width:1366px){.top{gap:10px;padding:10px 24px}.top-greet{font-size:12px}.slogan{letter-spacing:.03em}}@media(max-width:1200px){.top-greet{display:none}}@media(max-width:900px){.side{display:none}.content{padding:14px 14px 20px;gap:14px}.main{padding-bottom:calc(var(--nav-h) + var(--safe-b))}.top{position:sticky;top:0;z-index:15;display:grid;grid-template-columns:48px 48px minmax(0,1fr) 48px 48px;grid-template-areas:"menu . logo theme bell" "motto motto motto motto motto";gap:2px 4px;padding:6px 10px}.top-menu{display:inline-flex;grid-area:menu}.top-theme{grid-area:theme}.top-bell{grid-area:bell}.top-left{grid-area:logo;justify-content:center}.top-left .top-brand,.top-desk{display:none}.logo-top{display:block;height:32px}.top .slogan{grid-area:motto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:clamp(8px,2.35vw,10px);letter-spacing:0;line-height:1.3}.top .icon-btn{width:48px;height:48px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.top .icon-btn svg{width:26px;height:26px;stroke-width:1.8}.top .bell-count{top:-5px;right:-5px}.page-head{align-items:flex-start}.page-head .eyebrow{display:none}.copyright:not(.on-dark){padding:12px 16px}.bottom-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--line);z-index:20}.bottom-nav button{min-width:0;border:0;background:transparent;color:var(--ink2);font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 2px}.bottom-nav button span{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.bottom-nav button[aria-current=page]{color:var(--priText);font-weight:700}body.kb-open .bottom-nav{display:none}body.kb-open .main{padding-bottom:0}}@media(max-width:380px){.logo-top{height:28px}}@media(max-width:340px){.top{grid-template-columns:44px 44px minmax(0,1fr) 44px 44px}.top .icon-btn{width:44px;height:44px}.top .icon-btn svg{width:24px;height:24px}}@media print{.side,.top,.bottom-nav,.tabs,.no-print,.chat-fab{display:none!important}.content,.main{padding:0!important}body{background:#fff}.logo-doc{width:130px}}html{scroll-padding-top:var(--top-h,0px)}.stages{display:flex;flex-direction:column;gap:8px}.stage{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.stage .n{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;background:var(--muted)}.stage[data-s=COMPLETED] .n{background:var(--okSoft);color:var(--ok)}.stage[data-s=IN_PROGRESS] .n,.stage[data-s=READY] .n{background:var(--priSoft);color:var(--priText)}.stage[data-s=BLOCKED] .n{background:var(--critSoft);color:var(--crit)}.stage-panel{grid-column:1 / -1;min-width:0}.stage-summary{font-size:14px;color:var(--ink2)}.stage-actions{display:flex;flex-direction:column}.qty{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px;margin-top:6px}.qty div{background:var(--bg);border-radius:8px;padding:4px 8px;font-size:12px}.qty b{display:block;font-size:15px}.color-card{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.size-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px}.excess-reason{padding:10px 12px;border-radius:12px;background:var(--warnSoft);color:var(--ink)}.qty-list{display:flex;flex-direction:column;gap:8px;--qty-grid:minmax(38px,64px) repeat(var(--qty-refs),minmax(46px,96px)) repeat(var(--qty-ins),minmax(0,1fr)) var(--qty-fill)}.qty-head,.qty-line,.qty-total{display:grid;grid-template-columns:var(--qty-grid);gap:8px;align-items:center}.qty-head{position:sticky;top:64px;z-index:1;background:var(--surface);font-size:12px;font-weight:600;color:var(--ink2);padding:6px 10px;border-bottom:1px solid var(--line)}.qty-head span:not(:first-child),.qty-ref,.qty-total>*:not(:first-child){text-align:right}.qty-group{border:1px solid var(--line);border-radius:12px;background:var(--bg);overflow:hidden}.qty-color{padding:6px 10px;font-weight:700;background:var(--muted)}.qty-line{padding:6px 10px;border-top:1px solid var(--line)}.qty-size{font-weight:700;font-size:16px}.qty-ref b{font-size:16px;font-variant-numeric:tabular-nums}.qty-field{display:block;min-width:0}.qty-in{width:100%;min-height:46px;text-align:right;font-size:18px;font-weight:600;padding:6px 10px;font-variant-numeric:tabular-nums}.qty-fill{min-height:46px;padding:6px 10px}.qty-total{padding:4px 10px;font-weight:600}.qty-total b{font-size:16px}.process{white-space:pre-wrap;font-family:inherit;font-size:14px;margin:4px 0 0;padding:10px 12px;border-radius:10px;background:var(--muted);overflow-wrap:anywhere}.process.formula{background:var(--warnSoft)}.process.revoked{text-decoration:line-through;opacity:.7}.process-history{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.process-history li{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.reuse-panel{padding:12px 14px;border:1px solid var(--ok);border-radius:12px;background:var(--okSoft)}.reuse-panel ul{margin:6px 0;padding-left:20px}.tech-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.perm-cards{display:flex;flex-direction:column;gap:8px}.perm-card{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);min-width:0}.perm-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.perm-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:8px 10px}.perm-cell{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:var(--fs-small);color:var(--ink2)}.perm-cell select.perm{width:100%;min-width:0;text-overflow:ellipsis}@media(max-width:900px){.stage{padding:12px 10px;gap:8px}.qty-head{top:var(--top-h,0px)}.stage-actions{position:sticky;bottom:calc(var(--nav-h) + var(--safe-b));z-index:3;display:flex;flex-direction:column;margin:0 -10px;padding:8px 10px;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 16px #0f1b330f}body.kb-open .stage-actions{bottom:0}.qty{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.tech-grid{grid-template-columns:1fr}}@media(max-width:640px){.stages .stage{min-width:0}.qty-list{gap:6px;--qty-grid:34px repeat(var(--qty-refs),44px) repeat(var(--qty-ins),minmax(0,1fr)) var(--qty-fill)}.qty-head{padding:6px 8px}.qty-line,.qty-total{padding:5px 8px;gap:6px}.qty-in{min-height:48px;font-size:19px;padding:4px 8px}.qty-fill{padding:4px 8px;min-width:48px}}.mywork-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin-bottom:12px}.mywork-tabs[data-n="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:560px){.mywork-tabs[data-n="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}}.mywork-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:var(--touch);white-space:nowrap}.mywork-count{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--priText);color:var(--surface);font-size:12px;line-height:22px;text-align:center}.mywork-count[data-zero=true]{background:var(--muted);color:var(--ink2)}.mywork-list{display:flex;flex-direction:column;gap:10px}.mywork-card{display:flex;flex-direction:column;gap:6px}.mywork-card.tappable{cursor:pointer}.mywork-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.mywork-item{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.mywork-stage{font-weight:700;color:var(--priText)}.mywork-card .btn{width:100%;min-height:48px;font-size:16px}.work-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.work-facts>div{display:flex;flex-direction:column;gap:2px;min-width:0}.work-panel{margin-bottom:12px}.work-done{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.work-more{margin-bottom:12px}.work-more summary{cursor:pointer;min-height:var(--touch);display:flex;align-items:center}@media(max-width:640px){.work-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.mywork-tabs button{padding:4px;font-size:15px}}.stage-time{margin-top:2px}.tool-form{background:var(--warnSoft);padding:12px;border-radius:12px}.tool-kind{display:contents}.amend-box{background:var(--muted);padding:12px;border-radius:12px}.correct-actions{display:flex;flex-direction:column;gap:8px}.tool-photo{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.tool-photo[data-missing=true]{border-color:var(--warn);background:var(--warnSoft)}.shelf{display:flex;flex-direction:column;gap:3px;width:max-content}.shelf-row{display:flex;gap:2px;align-items:center}.cell{width:16px;height:16px;border-radius:3px;border:0;padding:0;background:var(--muted)}.cell.big{width:26px;height:24px;font-size:10px;line-height:24px;color:var(--ink2);border-radius:4px}.cell[data-st=new]{background:var(--cBlue);color:#fff}.cell[data-st=shoot]{background:var(--cOrange);color:#fff}.cell[data-st=use]{background:var(--cTeal);color:#fff}.cell[data-st=stored]{background:#8a97b0;color:#fff}.cell[data-st=wait]{background:var(--crit);color:#fff}.cell[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:1px;font-weight:700}.hbar-chart{margin:12px 0 0;display:flex;flex-direction:column;gap:14px}.hbar-group{display:flex;flex-direction:column;gap:10px}.hbar-group-title{text-transform:uppercase;letter-spacing:.04em;font-weight:600}.hbar-row{display:grid;grid-template-columns:96px minmax(80px,1fr) auto;align-items:center;gap:10px}.hbar-label{font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbar-track{position:relative;height:20px;border-radius:0 6px 6px 0;border-left:1px solid var(--line)}.hbar-stack{position:absolute;left:0;top:0;bottom:0;display:flex;gap:2px;min-width:0;transition:width .3s}.hbar-stack span{min-width:3px;height:100%}.hbar-stack span:last-child{border-radius:0 4px 4px 0}.hbar-marker{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);opacity:.6}.legend-marker{width:2px!important;height:12px!important;border-radius:0!important;background:var(--ink);opacity:.6}.hbar-value{white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums}.hbar-note{color:var(--ink2)}.delta{font-size:12.5px;font-weight:600}.delta-v,.delta .muted{white-space:nowrap}.delta.up{color:var(--ok)}.delta.down{color:var(--crit)}.delta.flat{color:var(--ink2)}.delta .muted{font-weight:400}.chart-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px}.chart-head .big{font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.line-chart{margin:0;display:flex;flex-direction:column;gap:6px}.line-plot{position:relative;width:100%;min-width:0}.line-plot svg{display:block;overflow:visible}.line-grid{stroke:var(--grid);stroke-width:1}.line-cross{stroke:var(--ink2);stroke-width:1;stroke-dasharray:3 3}.line-dot{stroke:var(--surface);stroke-width:2}.line-value{font-size:11.5px;font-weight:600;fill:var(--ink)}.line-x{font-size:10.5px;fill:var(--ink2)}.lt-kpi{flex:1 1 140px;display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-left:4px solid;border-radius:10px;background:var(--bg)}.lt-kpi b{font-size:18px}.lt-orders summary{cursor:pointer;font-weight:600;padding:6px 0}.lt-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}.lt-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;color:var(--ink);text-decoration:none}.lt-row:hover{background:var(--bg)}.lt-name{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lt-total{flex:none;text-align:right;font-weight:600;font-size:13px}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink2)}.chart-legend i,.col-tooltip i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.col-chart{margin:0;display:flex;flex-direction:column;gap:8px}.col-tooltip{min-height:22px;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px}.col-plot{display:grid;grid-template-columns:52px minmax(0,1fr);gap:6px}.col-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--ink2);text-align:right;padding-bottom:18px;margin-top:-7px}.col-area{position:relative;min-width:0}.col-grid{position:absolute;left:0;right:0;height:1px;background:var(--grid)}.col-buckets{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:stretch;gap:2px}.col-bucket{flex:1 1 0;min-width:0;display:flex;flex-direction:column;cursor:pointer;border-radius:6px}.col-bucket.on,.col-bucket:hover{background:var(--muted)}.col-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px;padding:0 2px}.col-bar{flex:1 1 0;max-width:22px;min-height:0;border-radius:4px 4px 0 0}.col-stack{position:relative;flex:0 1 26px;display:flex;flex-direction:column-reverse;gap:2px;min-height:0}.col-stack span{min-height:2px}.col-stack span:last-child{border-radius:4px 4px 0 0}.col-total{position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding-bottom:2px;font-style:normal;font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap}.col-x{height:18px;font-size:10.5px;color:var(--ink2);text-align:center;white-space:nowrap;overflow:visible}.rank-bars{display:flex;flex-direction:column;gap:4px}.rank-row{display:grid;grid-template-columns:minmax(110px,220px) minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 8px;border:0;border-radius:8px;background:transparent;text-align:left;color:var(--ink)}.rank-row:hover,.rank-row.on{background:var(--muted)}.rank-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.rank-track{height:12px;border-radius:6px;background:var(--muted);overflow:hidden}.rank-track span{display:block;height:100%;border-radius:6px}.rank-value{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}@media(max-width:640px){.rank-row{grid-template-columns:minmax(0,1fr) auto}.rank-track{grid-column:1/-1;grid-row:2}}@media(max-width:560px){.hbar-row{grid-template-columns:76px minmax(0,1fr);row-gap:2px}.hbar-value{grid-column:2;white-space:normal}}.payslip-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;background:var(--bg)}.payslip-group{margin:6px 0 4px;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}.payslip-table td{padding:7px 10px}.payslip .kpi{flex:1 1 220px;min-width:0}.payslip .kpi .v{font-size:clamp(20px,5.6vw,30px);overflow-wrap:anywhere}.checkin-status,.checkin-today{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.checkin .big-btn{min-height:64px;font-size:20px}@media(max-width:640px){.payslip .row{gap:10px}.payslip .kpi{flex:1 1 100%;padding:14px 16px}}@media print{.payslip{box-shadow:none!important;border:0!important}}.hr-card{display:flex;flex-direction:column;gap:10px}.hr-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.hr-head h2{margin:0}.hr-month{width:auto;min-width:0;max-width:170px}.hr-actions{display:flex;gap:8px;flex-wrap:wrap}.hr-free summary{cursor:pointer;list-style:none;min-height:var(--touch);display:flex;align-items:center}.hr-free summary::-webkit-details-marker{display:none}.hr-free summary:after{content:"\203a";margin-left:auto;font-size:20px;color:var(--ink2);transition:transform .15s}.hr-free[open] summary:after{transform:rotate(90deg)}.hr-free-list{display:flex;flex-wrap:wrap;gap:6px}.hr-free-list .btn{min-height:var(--touch);padding:6px 10px;font-size:var(--fs-small)}@media(max-width:900px){.hr-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;border-bottom:0;margin-bottom:12px}.hr-tabs button{min-height:var(--touch);padding:6px 4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:13px;line-height:1.2;white-space:normal;text-align:center}.hr-tabs button[aria-selected=true]{background:var(--priSoft);border-color:var(--priText);color:var(--priText)}.hr-actions .btn{flex:1 1 auto}}.device-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.device-list{display:flex;flex-direction:column;gap:10px}.device-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.device-actions .input{flex:1 1 220px;min-width:0}:root{--chat-blue:#0068FF;--chat-head:linear-gradient(90deg,#0068FF,#0190F3);--chat-bg:#E2E9F1;--chat-other:#FFFFFF;--chat-mine:#DBEBFF;--chat-ink:#081C36;--chat-ink2:#7589A3;--chat-bar:#FFFFFF}:root[data-theme=dark]{--chat-blue:#3D8BFF;--chat-head:linear-gradient(90deg,#0B3E8F,#0B5BBE);--chat-bg:#0B1322;--chat-other:#1A2438;--chat-mine:#173A6B;--chat-ink:#E8EDF7;--chat-ink2:#98A5BC;--chat-bar:#111A2D}.chat-fab{position:fixed;right:20px;bottom:20px;z-index:25;width:58px;height:58px;border-radius:50%;border:3px solid #fff;background:var(--chat-head);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #00286e59;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:left .2s,right .2s,top .2s}.chat-fab[data-dragging=true]{cursor:grabbing;transform:scale(1.08);box-shadow:0 12px 30px #00286e73}.chat-fab:hover{filter:brightness(1.08)}.chat-fab-count{position:absolute;top:-5px;right:-5px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#f43b3b;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;pointer-events:none}.chat-fab[data-side=right] .chat-fab-count{right:auto;left:-5px}.chat-panel{position:fixed;right:20px;bottom:20px;z-index:45;width:min(400px,calc(100vw - 40px));height:min(680px,calc(100vh - 40px));display:flex;flex-direction:column}.chat-heads{position:relative;z-index:1;display:flex;justify-content:flex-end;gap:10px;padding:0 4px 12px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex:none}.chat-heads::-webkit-scrollbar{display:none}.chat-head-btn{position:relative;flex:none;width:52px;height:52px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.chat-head-btn .chat-avatar{width:52px;height:52px;flex:none;font-size:18px;border:2px solid #fff;box-shadow:0 4px 12px #00000040}.chat-avatar-list{background:var(--chat-head)!important;color:#fff!important}.chat-head-btn[aria-selected=true] .chat-avatar{border-color:var(--chat-blue);box-shadow:0 0 0 3px #fff,0 4px 14px #0000004d}.chat-head-btn[aria-selected=true]:after{content:"";position:absolute;left:50%;bottom:-12px;margin-left:-8px;border:8px solid transparent;border-bottom-color:#fff}.chat-window{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border-radius:14px;box-shadow:0 18px 48px #0000004d}.chat-page{display:flex;flex-direction:column;height:min(680px,calc(100vh - 220px));min-height:420px;overflow:hidden;padding:0}.chat-head{display:flex;align-items:center;gap:6px;padding:8px 10px;min-height:56px;background:var(--chat-head);color:#fff;flex:none}.chat-head .icon-btn{color:#fff;background:transparent;border:0;min-width:40px;min-height:40px;font-size:22px}.chat-head .icon-btn:hover{background:#ffffff26}.chat-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-h2);font-weight:700}.chat-body{flex:1;min-height:0;display:flex;flex-direction:column}.chat-actions{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.chat-threads{flex:1;overflow-y:auto;padding:4px 0 8px}.chat-thread{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;background:transparent;text-align:left;min-height:68px;color:var(--ink)}.chat-thread:hover{background:var(--bg)}.chat-thread[data-unread=true] b,.chat-thread[data-unread=true] .chat-preview{font-weight:700;color:var(--ink)}.chat-avatar{flex:0 0 48px;height:48px;border-radius:50%;background:var(--priSoft);color:var(--priText);display:flex;align-items:center;justify-content:center;font-weight:700;overflow:hidden}.chat-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.chat-avatar[data-kind=ANNOUNCE]{background:var(--warnSoft);color:var(--warn)}.chat-avatar[data-kind=GROUP]{background:var(--okSoft);color:var(--ok)}.chat-thread-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-thread-top{display:flex;justify-content:space-between;gap:8px}.chat-thread-top b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.chat-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-unread{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#f43b3b;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.chat-msgs{flex:1;overflow-y:auto;padding:10px 10px 12px;display:flex;flex-direction:column;gap:3px;background:var(--chat-bg)}.chat-day{align-self:center;margin:10px 0 6px;padding:3px 12px;border-radius:12px;background:#0000002e;color:#fff;font-size:12px;font-weight:600}:root[data-theme=dark] .chat-day{background:#ffffff1f}.chat-msg{display:flex;align-items:flex-end;gap:6px;max-width:86%;align-self:flex-start}.chat-msg[data-first=true]{margin-top:6px}.chat-msg[data-mine=true]{align-self:flex-end;justify-content:flex-end}.chat-msg-avatar{flex:0 0 30px;height:30px;align-self:flex-start;border-radius:50%;background:var(--priSoft);color:var(--priText);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.chat-msg[data-first=false] .chat-msg-avatar{background:transparent}.chat-msg-main{min-width:0;display:flex;flex-direction:column;gap:3px}.chat-msg[data-mine=true] .chat-msg-main{align-items:flex-end}.chat-bubble{padding:8px 12px 6px;border-radius:12px;background:var(--chat-other);color:var(--chat-ink);border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 1px #0000000d;min-width:52px}.chat-msg[data-mine=true] .chat-bubble{background:var(--chat-mine);border-color:#0068ff1f}.chat-sender{font-size:12px;color:var(--chat-ink2);margin-bottom:2px;font-weight:600}.chat-bubble-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.4}.chat-time{font-size:11px;color:var(--chat-ink2);margin-top:3px}.chat-system{align-self:center;max-width:90%;text-align:center;color:var(--chat-ink2);background:var(--chat-other);padding:4px 12px;border-radius:12px;margin:6px 0}.chat-picture{display:block;max-width:220px;padding:0;border-radius:12px;overflow:hidden;border:1px solid rgba(0,0,0,.08);background:transparent;cursor:zoom-in}.chat-picture img{display:block;width:100%;height:auto;max-height:320px;object-fit:cover;-webkit-touch-callout:none}.chat-older{align-self:center;margin:4px 0 8px;min-height:36px;font-size:13px}.chat-compose-wrap{background:var(--chat-bar);border-top:1px solid var(--line);flex:none}.chat-pending{position:relative;display:inline-block;margin:8px 10px 0}.chat-pending img{display:block;max-height:110px;max-width:180px;border-radius:10px;border:1px solid var(--line)}.chat-pending .icon-btn{position:absolute;top:-8px;right:-8px;width:28px;height:28px;min-height:0;border-radius:50%;background:var(--surface);border:1px solid var(--line)}.chat-compose{display:flex;gap:4px;padding:6px 8px;align-items:flex-end}.chat-input{flex:1;min-width:0;resize:none;min-height:44px;max-height:120px;padding:11px 8px;border:0;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:16px;line-height:1.35}.chat-input::placeholder{color:var(--chat-ink2)}.chat-tool,.chat-send{flex:none;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--chat-ink2);display:flex;align-items:center;justify-content:center;cursor:pointer}.chat-tool:hover{background:var(--bg)}.chat-send{color:var(--chat-blue)}.chat-send[data-busy=true]{opacity:.5}.chat-readonly{padding:12px;border-top:1px solid var(--line);text-align:center}.chat-form{padding:12px;gap:12px;overflow-y:auto}.chat-people{display:flex;flex-direction:column;gap:8px;min-height:0}.chat-people-list{display:flex;flex-direction:column;gap:2px;max-height:min(46vh,340px);overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:4px}.chat-person{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;min-height:52px;cursor:pointer}.chat-person:hover{background:var(--bg)}.chat-person input{width:20px;height:20px;flex:none}.chat-person .chat-thread-main b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-group-head{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}.chat-group-pic{position:relative;width:72px;height:72px;border-radius:50%;border:0;padding:0;overflow:hidden;background:var(--okSoft);color:var(--ok);font-size:28px;font-weight:700;cursor:pointer;flex:none}.chat-group-pic img{width:100%;height:100%;object-fit:cover}.chat-group-pic em{position:absolute;left:0;right:0;bottom:0;font-size:10px;font-style:normal;background:#00000080;color:#fff;padding:2px 0}.chat-rename{flex:1 1 200px;display:flex;gap:8px;align-items:flex-end}.chat-rename .f{flex:1}.chat-members-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.chat-msg-main{-webkit-touch-callout:none}@media(pointer:coarse){.chat-bubble{user-select:none;-webkit-user-select:none}}.chat-more{flex:none;align-self:center;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:var(--chat-ink2);font-size:18px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s}.chat-msg:hover .chat-more,.chat-more:focus-visible{opacity:1}.chat-more:hover{background:#0000000f}.chat-msg[data-mine=true] .chat-more{order:-1}@media(pointer:coarse){.chat-more{display:none}}.chat-flash .chat-bubble,.chat-flash .chat-picture{animation:chat-flash 1.6s ease}@keyframes chat-flash{0%,60%{box-shadow:0 0 0 3px var(--chat-blue)}to{box-shadow:0 0 0 0 transparent}}.chat-forwarded{display:flex;align-items:center;gap:4px;font-size:12px;font-style:italic;color:var(--chat-ink2);margin-bottom:2px}.chat-forwarded svg{width:14px;height:14px}.chat-quote{display:flex;gap:8px;align-items:center;width:100%;margin:2px 0 6px;padding:4px 8px;border:0;border-left:3px solid var(--chat-blue);border-radius:4px;background:#0068ff12;color:var(--chat-ink);text-align:left;cursor:pointer;font:inherit}.chat-quote img,.chat-replying img,.chat-sheet-preview img{width:40px;height:40px;border-radius:6px;object-fit:cover;flex:none}.chat-quote>span,.chat-replying>span{min-width:0;display:flex;flex-direction:column;font-size:12.5px}.chat-quote span span,.chat-replying span span,.chat-sheet-gist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--chat-ink2)}.chat-pinned-mark{font-size:11px}.chat-pins{flex:none;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 2px 6px #0000000d;max-height:40%;overflow-y:auto}.chat-pin{display:flex;align-items:center;gap:8px;padding:6px 10px;min-height:48px}.chat-pin+.chat-pin{border-top:1px solid var(--line)}.chat-pin-icon{color:var(--chat-blue);display:flex}.chat-pin-text{flex:1;min-width:0;display:flex;flex-direction:column;border:0;background:transparent;text-align:left;color:var(--ink);font:inherit;font-size:13px;cursor:pointer;padding:0}.chat-pin-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2)}.chat-pin-more{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--chat-blue);border-radius:14px;padding:4px 10px;font-size:12.5px;font-weight:600;cursor:pointer;min-height:30px}.chat-replying{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line);color:var(--chat-blue)}.chat-replying>span{flex:1;color:var(--chat-ink)}.chat-replying .icon-btn{flex:none;width:36px;height:36px;min-height:0}.chat-toast{position:absolute;left:50%;bottom:76px;transform:translate(-50%);z-index:3;max-width:90%;padding:8px 14px;border-radius:18px;background:#000000c7;color:#fff;font-size:13px;text-align:center;pointer-events:none}.chat-body{position:relative}.chat-sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.chat-sheet{width:min(420px,100%);max-height:min(640px,calc(100vh - 32px));display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--surface);color:var(--ink);border-radius:16px;box-shadow:0 18px 48px #0000004d;overflow:hidden}.chat-sheet-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.chat-sheet-preview{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--chat-bg);min-width:0}.chat-sheet-preview>span{min-width:0;display:flex;flex-direction:column;font-size:13px}.chat-menu{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.chat-menu-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer;min-height:72px}.chat-menu-item svg{color:var(--chat-blue)}.chat-menu-item:hover{background:var(--bg)}.chat-sheet-cancel{width:100%}.chat-pick-list{flex:1;min-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:4px}.chat-pick-list .chat-avatar{flex-basis:40px;height:40px}.chat-sheet-foot{display:flex;gap:8px;justify-content:flex-end}@media(max-width:900px){.chat-fab{right:12px;bottom:calc(var(--nav-h) + var(--safe-b) + 12px);width:54px;height:54px}body.kb-open .chat-fab{display:none}.chat-panel{top:0;right:0;bottom:0;left:0;width:auto;height:auto;padding:calc(env(safe-area-inset-top,0px) + 10px) 0 0;background:#00000073}.chat-heads{padding:0 10px 12px}.chat-window{border-radius:14px 14px 0 0;padding-bottom:var(--safe-b)}.chat-sheet-back{align-items:flex-end;padding:0}.chat-sheet{width:100%;border-radius:16px 16px 0 0;padding-bottom:calc(var(--safe-b) + 14px);max-height:85vh}.chat-page{height:calc(100vh - 230px - var(--nav-h));height:calc(100dvh - 230px - var(--nav-h))}}.pcc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.pcc-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-left:4px solid var(--line)}.pcc-kpi[data-tone=crit]{border-left-color:var(--crit)}.pcc-kpi[data-tone=warn]{border-left-color:var(--warn)}.pcc-kpi[data-tone=info]{border-left-color:var(--priText)}.pcc-kpi-n{font-size:26px;font-weight:800;line-height:1.1}.pcc-kpi[data-tone=crit]:not([data-zero=true]) .pcc-kpi-n{color:var(--crit)}.pcc-kpi[data-tone=warn]:not([data-zero=true]) .pcc-kpi-n{color:var(--warn)}.pcc-kpi[data-zero=true] .pcc-kpi-n{color:var(--ink2)}.pcc-kpi-l{font-size:var(--fs-small);color:var(--ink2);font-weight:600}.pcc-kpi[aria-pressed=true],.pcc-pipe-step[aria-pressed=true]{outline:2px solid var(--priText);outline-offset:-1px;background:var(--priSoft)}.pcc-pipe{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px}.pcc-pipe-step{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:8px 6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer}.pcc-pipe-n{font-size:20px;font-weight:800}.pcc-pipe-step[data-zero=true] .pcc-pipe-n{color:var(--ink2);font-weight:500}.pcc-pipe-l{font-size:var(--fs-small);color:var(--ink2);text-align:center;line-height:1.25}.pcc-list{display:flex;flex-direction:column;gap:6px}.pcc-row{display:grid;grid-template-columns:minmax(190px,1.3fr) minmax(220px,1.6fr) 140px minmax(150px,auto);gap:14px;align-items:center;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:10px;cursor:pointer}.pcc-row:hover{border-color:var(--priText)}.pcc-row[data-tone=crit]{border-left-color:var(--crit)}.pcc-row[data-tone=warn]{border-left-color:var(--warn)}.pcc-id,.pcc-where,.pcc-due,.pcc-who{display:flex;flex-direction:column;gap:3px;min-width:0}.pcc-code{font-size:var(--fs-base)}.pcc-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcc-due[data-tone=crit] b{color:var(--crit)}.pcc-due[data-tone=warn] b{color:var(--warn)}.pcc-who [data-long=true]{color:var(--warn);font-weight:600}.pcc-act{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.pcc-why{color:var(--crit)}.pcc-st.st-BLOCKED{color:var(--crit);font-weight:700}.pcc-st.st-READY{color:var(--priText);font-weight:600}.pcc-st.st-IN_PROGRESS{color:var(--ok);font-weight:600}.pcc-track{display:grid;grid-template-columns:repeat(11,1fr);gap:3px;max-width:320px}.pcc-seg{height:8px;border-radius:3px;background:var(--line)}.pcc-seg[data-s=COMPLETED]{background:var(--ok)}.pcc-seg[data-s=IN_PROGRESS]{background:var(--priText)}.pcc-seg[data-s=READY]{background:var(--priSoft);box-shadow:inset 0 0 0 1.5px var(--priText)}.pcc-seg[data-s=BLOCKED]{background:var(--crit)}.pcc-seg[data-current=true]{height:12px;margin-top:-2px}.pcc-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,1fr);gap:10px;overflow-x:auto;align-items:start;padding-bottom:6px}.pcc-col{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;max-height:calc(100vh - 330px);min-height:160px;overflow-y:auto}.pcc-col-head{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-10px;background:var(--surface);padding:4px 0}.pcc-card{display:flex;flex-direction:column;gap:4px;padding:10px;border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:10px;background:var(--bg);cursor:pointer}.pcc-card[data-tone=crit]{border-left-color:var(--crit)}.pcc-card[data-tone=warn]{border-left-color:var(--warn)}.pcc-card-top{display:flex;justify-content:space-between;gap:6px}.pcc-card [data-late=true]{color:var(--crit);font-weight:700}@media(max-width:1200px){.pcc-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"id due act" "where where act"}.pcc-id{grid-area:id}.pcc-where{grid-area:where}.pcc-due{grid-area:due}.pcc-who{grid-area:who}.pcc-act{grid-area:act}}@media(max-width:900px){.pcc-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pcc-kpi{padding:8px 10px;min-height:var(--touch)}.pcc-kpi-n{font-size:22px}.pcc-pipe{grid-template-columns:repeat(3,minmax(0,1fr))}.pcc-pipe-step{min-height:var(--touch)}.pcc-pipe-n{font-size:18px}.pcc-view{display:none}.pcc-track{max-width:none}}.board-tabs{margin-bottom:14px}.board-tabs button{white-space:nowrap}.board-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.board-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.board-exports{position:relative}.board-exports summary{list-style:none;cursor:pointer;min-height:var(--touch);padding:6px 12px;font-size:var(--fs-small)}.board-exports summary::-webkit-details-marker{display:none}.board-exports-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:180px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.board-exports-menu a{padding:10px 12px;border-radius:8px;color:var(--ink);text-decoration:none;min-height:var(--touch);display:flex;align-items:center}.board-exports-menu a:hover{background:var(--bg)}.kpi2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.kpi2{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);text-align:left;color:var(--ink);font:inherit}button.kpi2{cursor:pointer}button.kpi2:hover{border-color:var(--priText)}.kpi2-label{font-size:var(--fs-small);color:var(--ink2)}.kpi2-value{font-size:clamp(22px,6vw,28px);font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.kpi2-value small{font-size:13px;font-weight:500;color:var(--ink2)}.kpi2-value[data-tone=crit]{color:var(--crit)}.kpi2-value[data-tone=warn]{color:var(--warn)}.kpi2-go{position:absolute;top:10px;right:12px;color:var(--ink2);font-size:18px}.board-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:16px}.board-sec{display:flex;flex-direction:column;gap:10px;min-width:0}.board-empty{margin:0;padding:18px 0;color:var(--ink2);text-align:center}.big-figure{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.board-skeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px}.board-skeleton span{height:92px;border-radius:16px;background:var(--muted);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.board-skeleton span{animation:none}}.alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.alerts button{width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);padding:10px 12px;min-height:var(--touch);font:inherit;cursor:pointer}.alerts button:hover{background:var(--bg)}.hbar-row.pick{cursor:pointer;border-radius:8px}.hbar-row.pick:hover,.hbar-row.pick:focus-visible{background:var(--bg)}.flow-filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;justify-content:space-between}.series-chips{display:flex;flex-wrap:wrap;gap:6px}.series-chip{display:inline-flex;align-items:center;gap:6px;min-height:var(--touch);padding:4px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink2);font:inherit;font-size:var(--fs-small);cursor:pointer}.series-chip i{width:10px;height:10px;border-radius:3px}.series-chip[aria-pressed=false] i{opacity:.35}.series-chip[aria-pressed=true]{color:var(--ink);border-color:var(--ink2)}.flow-cust{flex:1 1 220px;max-width:320px;min-width:0}.abc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.abc-col{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.abc-col b{font-size:24px}.work-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.work-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);min-width:0}.work-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.work-top a{color:var(--ink);text-decoration:none}.work-progress .small{display:flex;justify-content:space-between;margin-bottom:4px}.work-progress .bar span{background:var(--cBlue)}.countdown{font-variant-numeric:tabular-nums;font-weight:600;color:var(--priText)}.countdown[data-late=true]{color:var(--crit)}.clock-today{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.history li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}.history li:first-child{border-top:0}.history a{color:var(--ink);text-decoration:none}@media(min-width:1024px){.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.board-sec.wide{grid-column:1/-1}}@media(max-width:640px){.kpi2-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi2{padding:12px}.board-bar{flex-direction:column;align-items:stretch}.board-meta{justify-content:space-between}.flow-cust{max-width:none}}.board-bar .period-pick{min-width:0;max-width:100%}.board-bar .seg{flex-wrap:wrap}.board-bar .seg button{flex:1 1 auto}.pnl-table{display:flex;flex-direction:column;margin-top:10px;font-variant-numeric:tabular-nums}.pnl-row{display:grid;grid-template-columns:minmax(64px,.8fr) repeat(3,minmax(0,1fr));gap:6px;padding:7px 0;border-bottom:1px solid var(--line);align-items:baseline}.pnl-row>span{white-space:nowrap}.pnl-row>span:not(:first-child){text-align:right}.pnl-headrow{font-size:var(--fs-small);color:var(--ink2);font-weight:600}.pnl-result{font-weight:700}.pnl-result[data-tone=ok]{color:var(--ok)}.pnl-result[data-tone=crit]{color:var(--crit)}.stage-clock{font-variant-numeric:tabular-nums;white-space:nowrap}.stage-clock b{font-size:15px}.stage-clock[data-over=true]{color:var(--crit)}.inv-low{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none}.alerts{max-height:520px;overflow-y:auto}.wt-stats{display:flex;flex-wrap:wrap;gap:6px}.wt-stat{padding:4px 10px;border-radius:999px;background:var(--bg);font-size:var(--fs-small);color:var(--ink2);white-space:nowrap}.wt-stat b{color:var(--ink);font-variant-numeric:tabular-nums}.wt-stat[data-tone=crit]{background:var(--critSoft);color:var(--crit)}.wt-stat[data-tone=crit] b{color:var(--crit)}.wt-head,.wt-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1fr) 96px minmax(0,1.3fr);gap:14px;align-items:center}.wt-head[data-targets=false],.wt-list[data-targets=false] .wt-row{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1fr) 96px}.wt-head{padding:0 12px 6px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}.wt-list{list-style:none;margin:0;padding:0;max-height:560px;overflow-y:auto}.wt-list li{border-bottom:1px solid var(--line)}.wt-list li:last-child{border-bottom:0}.wt-row{padding:10px 12px;color:var(--ink);text-decoration:none;min-height:var(--touch);border-left:3px solid transparent}.wt-row:hover{background:var(--bg)}.wt-row[data-level=over]{border-left-color:var(--crit)}.wt-row[data-level=near]{border-left-color:var(--cOrange)}.wt-order{display:flex;flex-direction:column;min-width:0}.wt-item{font-size:var(--fs-small);color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wt-stage{font-weight:600;color:var(--priText)}.wt-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wt-tag{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--bg);font-size:var(--fs-small);color:var(--ink2)}.wt-tag[data-tone=crit]{color:var(--crit)}.wt-clock{display:flex;flex-direction:column;line-height:1.15;min-width:0}.wt-hms{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;white-space:nowrap}.wt-days{font-size:11px;font-weight:600;color:var(--ink2);white-space:nowrap}.wt-row[data-level=over] .wt-hms,.wt-row[data-level=over] .wt-days{color:var(--crit)}.wt-target{display:flex;flex-direction:column;gap:4px;min-width:0}.wt-bar{display:block;height:6px;border-radius:3px;background:var(--bg);overflow:hidden}.wt-bar>span{display:block;height:100%;border-radius:3px;background:var(--cTeal)}.wt-row[data-level=near] .wt-bar>span{background:var(--cOrange)}.wt-row[data-level=over] .wt-bar>span{background:var(--crit)}.wt-note{font-size:var(--fs-small);color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wt-more{padding:8px 12px 0;font-size:var(--fs-small);color:var(--ink2)}@media(max-width:760px){.wt-head{display:none}.wt-row,.wt-list[data-targets=false] .wt-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"order clock" "stage who" "target target";gap:6px 12px}.wt-order{grid-area:order}.wt-clock{grid-area:clock;justify-self:end;align-items:flex-end}.wt-stage{grid-area:stage}.wt-who{grid-area:who;justify-self:end}.wt-target{grid-area:target}}.cost-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.cost-form .input{width:100%;min-width:0}.costing{display:flex;flex-direction:column;gap:12px;margin-top:12px}.costing>summary{cursor:pointer;min-height:var(--touch);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.costing fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 12px 12px;margin:0;min-width:0}.costing legend{font-weight:600;padding:0 4px}.frame-norm+.frame-norm{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.frame-norm .cost-form{margin-top:6px}.costing .row-actions{display:flex;gap:8px;flex-wrap:wrap}.quote{display:flex;flex-direction:column;gap:12px}.quote>.btn{align-self:flex-start}.quote-head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.quote-head>div{display:flex;flex-direction:column;gap:2px;background:var(--priSoft);border-radius:10px;padding:10px;min-width:0}.quote-head b{font-size:18px;white-space:nowrap}.quote-lines{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.quote-lines th,.quote-lines td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left}.quote-lines .num{text-align:right;white-space:nowrap}.quote-lines tr.total td{font-weight:700;background:var(--muted)}.item-costing{display:inline-flex;gap:6px;flex-wrap:wrap}.item-costing select{min-width:130px}.item-costing input{width:84px}@media(max-width:480px){.cost-form,.quote-head{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-head b{font-size:16px}.quote-lines{font-size:var(--fs-small)}}.month-card{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}div.month-card{cursor:default}.month-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.month-card-total{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.month-card-total b{font-size:18px;white-space:nowrap}.month-card-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:0}.month-card-lines>div{display:flex;flex-direction:column;min-width:0}.month-card-lines dt{font-size:var(--fs-small);color:var(--ink2)}.month-card-lines dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.inv-tabs{margin-bottom:14px}.inv-tabs button{white-space:nowrap}.inv-section{display:flex;flex-direction:column;gap:14px}.inv-bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;justify-content:space-between}.inv-bar .seg{flex-wrap:wrap}.inv-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.inv-row-actions{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.inv-cat{min-width:200px}.inv-search{flex:1 1 220px;max-width:340px}.inv-alerts{display:inline-flex;flex-wrap:wrap;gap:4px}td[data-tone=crit],span[data-tone=crit]{color:var(--crit)}.linklike{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.inv-kpis{display:flex;flex-wrap:wrap;gap:10px}.inv-kpi{flex:1 1 150px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink2);font:inherit;text-align:left;cursor:pointer;min-height:var(--touch)}.inv-kpi>span{font-size:var(--fs-small)}.inv-kpi b{font-size:clamp(20px,1.2vw + 10px,24px);line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.inv-kpi b small{font-size:var(--fs-small);font-weight:500;color:var(--ink2);margin-left:3px}.inv-kpi[data-wide]{flex:1.6 1 220px}.inv-kpi[data-tone=warn]{border-left-color:var(--warn)}.inv-kpi[data-tone=warn] b{color:var(--warn)}.inv-kpi[data-tone=crit]{border-left-color:var(--crit)}.inv-kpi[data-tone=crit] b{color:var(--crit)}.inv-kpi:hover{background:var(--bg)}.inv-level{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;max-width:100%}.inv-level-bar{display:block;flex:0 1 72px;min-width:28px;height:6px;border-radius:3px;background:var(--grid);overflow:hidden}.inv-level-bar>span{display:block;height:100%;border-radius:3px;background:var(--cTeal)}.inv-level[data-low=true] .inv-level-bar>span{background:var(--crit)}.inv-level[data-low=true] b{color:var(--crit)}.voucher-head{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:8px}.voucher-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.voucher-lines{display:flex;flex-direction:column;gap:10px;margin-top:12px}.voucher-line{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1.8fr) minmax(0,1.2fr) minmax(90px,auto) auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:12px}.voucher-line:not([data-kind=IN]){grid-template-columns:minmax(0,3fr) minmax(0,2fr) auto}.voucher-line .vl-del{align-self:end}.vl-qty-in{display:flex;gap:6px;align-items:center}.vl-qty-in .input:first-child{flex:1;min-width:0}.vl-qty-in select.input{width:auto;flex:none}.vl-unit{color:var(--ink2);white-space:nowrap}.recv-in .input{width:140px}@media(max-width:760px){.voucher-line,.voucher-line:not([data-kind=IN]){grid-template-columns:1fr 1fr}.voucher-line .vl-item{grid-column:1 / -1}}.inv-units-f{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:12px 0;display:flex;flex-direction:column;gap:8px;min-width:0}.inv-units-f legend{padding:0 4px;font-weight:600}.inv-unit-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.inv-unit-row .input{flex:1 1 90px;min-width:0;max-width:180px}.auto-form{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.norm-in{width:90px;min-width:0}.norm-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.count-in{width:120px;text-align:right}.screen-list{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.screen-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}.screen-items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.screen-items li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;min-height:var(--touch)}.screen-edit{display:flex;flex-direction:column;gap:8px}.screen-row{display:grid;grid-template-columns:28px minmax(0,1.4fr) minmax(0,1.2fr) auto;gap:8px;align-items:end}.screen-no{align-self:center;font-weight:700;color:var(--ink2)}.batch-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}@media(max-width:640px){.screen-row{grid-template-columns:28px 1fr 1fr}.screen-row>:nth-child(n+4){grid-column:2 / -1}}.table-wrap{overflow-x:auto;max-width:100%}.table-wrap>table{min-width:640px}@media(max-width:760px){.inv-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.inv-tabs::-webkit-scrollbar{display:none}}.inv-subtabs{flex-wrap:wrap;margin-bottom:4px}.inv-period{align-items:center}.inv-note{margin:8px 0 0;color:var(--ink2)}.inv-chart+.inv-chart{margin-top:14px}.inv-summary{display:block;max-width:420px}.vl-amount{align-self:end;padding-bottom:10px;white-space:nowrap}.norm-size{width:120px}a.inv-kpi,a.inv-kpi span{text-decoration:none}.inv-section h3{margin:12px 0 6px;font-size:var(--fs-base);font-weight:650;line-height:1.3}
/*# sourceMappingURL=app.css.map */
