:root{--ink:#344767;--ink-2:#2c2c3a;--canvas:#f0f2f5;--paper:#FFFFFF;--line:#e3e6ec;--text:#344767;--muted:#7b809a;--blue:#0070b4;--purple:#ab2e6e;--magenta:#e91e63;--primary:#e91e63;--grad:linear-gradient(195deg,#ab2e6e 0%,#0070b4 100%);--grad-bar:linear-gradient(164deg,#ab2e6e 17%,#0070b4 100%);--grad-active:linear-gradient(160deg,#7d8dd9 14%,#ef1463 100%);--ok:#4CAF50;--ok-bg:#e8f5e9;--warn:#fb8c00;--warn-bg:#fff3e0;--bad:#F44335;--bad-bg:#fdecea;--info-bg:#e8f0fe;--purple-bg:#f5e9f0;--serif:"Inter",system-ui,sans-serif;--sans:"Inter",system-ui,sans-serif;--mono:"IBM Plex Mono",monospace;--radius:.75rem;--shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--hatch-ink:repeating-linear-gradient(45deg,rgba(52,71,103,.16) 0 1px,transparent 1px 6px);font-size:15px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:.9rem;color:var(--text)}a{color:var(--blue)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.topbar{position:relative;display:flex;align-items:center;gap:14px;height:60px;padding:0 var(--gutter);background:var(--grad-bar);color:#fff;box-shadow:0 6px 18px -8px #141a3059}.brand{display:flex;align-items:center;gap:12px;flex:none;text-decoration:none;color:#fff}.brand-logo{background:#fff;border-radius:8px;height:38px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 4px;box-shadow:0 2px 8px #00000024}.brand-logo img{height:56px;width:auto;display:block;flex:none}.brand-name{display:flex;flex-direction:column;line-height:1.15;padding-left:12px;border-left:1px solid rgba(255,255,255,.35)}.brand-name b{font-size:1.05rem;font-weight:800;letter-spacing:.08em}.brand-name small{font-size:.62rem;font-weight:500;opacity:.88;white-space:nowrap}.top-nav{display:flex;gap:2px;align-items:center;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;margin-left:6px}.top-nav::-webkit-scrollbar{display:none}.top-nav a{color:#ffffffe6;font-size:.82rem;font-weight:700;white-space:nowrap;padding:8px 13px;display:flex;align-items:center;text-decoration:none;border-radius:8px;transition:background .15s,color .15s}.top-nav a:hover{background:#ffffff24;color:#fff}.top-nav a.active{background:var(--grad-active);color:#fff;box-shadow:0 3px 10px #0000002e}.top-nav-sep{width:1px;height:22px;background:#ffffff4d;margin:0 6px;flex:none}.top-nav .nav-count{display:inline-block;min-width:18px;padding:0 5px;margin-left:6px;border-radius:9px;background:#fff;color:var(--magenta);font-size:.66rem;line-height:18px;text-align:center;font-weight:800}.top-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex:none}.avatar{width:32px;height:32px;border-radius:50%;background:#fff3;border:1px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex:none;color:#fff}.avatar.lg{width:42px;height:42px;font-size:.85rem;background:var(--grad);border:0}.topbar .finder{margin-left:0;min-width:220px;background:#ffffff29;border-color:#ffffff4d;transition:background .15s}.topbar .finder .material-icons,.topbar .finder input{color:#fff}.topbar .finder input::placeholder{color:#fffc}.topbar .finder:focus-within{background:#fff;border-color:#fff}.topbar .finder:focus-within input{color:var(--text)}.topbar .finder:focus-within .material-icons{color:var(--muted)}.user-wrap{position:relative}.user-btn{display:flex;align-items:center;gap:8px;background:none;border:0;color:#fff;padding:3px 4px 3px 3px;border-radius:99px;transition:background .15s}.user-btn:hover,.user-btn[aria-expanded=true]{background:#ffffff24}.user-txt{display:flex;flex-direction:column;text-align:left;line-height:1.15}.user-txt b{font-size:.78rem;font-weight:700;white-space:nowrap}.user-txt span{font-size:.64rem;opacity:.88;white-space:nowrap}.user-caret{font-size:18px!important;opacity:.85}.user-menu{position:absolute;right:0;top:calc(100% + 10px);width:290px;background:#fff;color:var(--text);border-radius:.75rem;box-shadow:0 20px 50px #00000040;z-index:200;overflow:hidden;animation:ctxIn .12s ease-out}.user-card{display:flex;gap:12px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}.user-card>div{min-width:0}.user-card b{display:block;font-size:.88rem;color:var(--ink)}.user-card span{display:block;font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.user-card em{display:inline-block;font-style:normal;font-size:.64rem;font-weight:700;margin-top:5px;padding:1px 8px;border-radius:99px;background:var(--purple-bg);color:var(--purple)}.user-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:12px 16px;font-size:.84rem;font-weight:600;color:var(--ink);text-align:left}.user-item:hover{background:var(--canvas)}.user-item .material-icons{font-size:18px;color:var(--muted)}.top-progress{position:absolute;left:0;right:0;bottom:0;height:3px;overflow:hidden;background:#fff3}.top-progress:after{content:"";position:absolute;top:0;bottom:0;left:-35%;width:35%;background:linear-gradient(90deg,transparent,#fff,transparent);animation:topProg 1.1s ease-in-out infinite}@keyframes topProg{0%{left:-35%}to{left:100%}}@media (max-width:1400px){.brand-name small{display:none}}@media (max-width:1200px){.user-txt,.user-caret{display:none}.topbar .finder{min-width:170px}}@media (max-width:900px){.topbar{flex-wrap:wrap;height:auto;padding:8px 12px;row-gap:6px}.top-nav{order:3;flex:1 1 100%;margin-left:0}.topbar .finder{flex:1 1 auto;min-width:0}}@media (max-width:640px){.brand-name{display:none}}:root{--page-max:1800px;--gutter:16px}.title-row{display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap}.title-row h1{font-size:1.25rem;font-weight:700;color:var(--ink)}.head-kpis{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;padding-bottom:4px}.hk{background:#fff;border:0;border-radius:.75rem;padding:10px 16px;min-width:110px;position:relative;box-shadow:var(--shadow)}.hk:before{content:"";position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:#b9c2ce}.hk b{display:block;font-size:1.35rem;font-weight:700;color:var(--ink);line-height:1.1}.hk span{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.hk.ok:before{background:var(--ok)}.hk.warn:before{background:var(--warn)}.hk.bad:before{background:var(--bad)}.hk.bad b{color:var(--bad)}.hk.ok b{color:var(--ok)}.page{max-width:var(--page-max);margin:0 auto;padding:18px var(--gutter) 60px;width:100%;animation:fadeUp .3s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.grid{display:grid;gap:16px}.g-4{grid-template-columns:repeat(4,1fr)}.g-3{grid-template-columns:repeat(3,1fr)}.g-2{grid-template-columns:repeat(2,1fr)}.g-side{grid-template-columns:340px 1fr}.g-side-r{grid-template-columns:1fr 340px}@media (max-width:1000px){.g-4,.g-3{grid-template-columns:repeat(2,1fr)}.g-side,.g-side-r{grid-template-columns:1fr}}@media (max-width:640px){.g-4,.g-3,.g-2{grid-template-columns:1fr}.page{padding:14px 14px 50px}}.card{background:var(--paper);border:0;border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px 20px}.card h3{font-size:1rem;font-weight:700;color:var(--ink)}.sub{color:var(--muted);font-size:.8rem;line-height:1.5}.section-label{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:20px 0 10px;display:flex;align-items:center;gap:10px}.section-label:after{content:"";flex:1;height:1px;background:var(--line)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:10px}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.right{text-align:right}.mt{margin-top:14px}.mt-s{margin-top:8px}.mb{margin-bottom:14px}.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;border-radius:.5rem;padding:9px 16px;font-size:.75rem;font-weight:700;line-height:1.2;text-transform:uppercase;letter-spacing:0;transition:all .15s ease-in;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--grad);color:#fff;box-shadow:0 3px 3px #ab2e6e26,0 3px 1px -2px #ab2e6e33}.btn-primary:hover:not(:disabled){box-shadow:0 14px 26px -12px #ab2e6e66,0 4px 23px #ab2e6e26}.btn-ghost{background:#fff;border-color:#d2d6da;color:var(--ink)}.btn-ghost:hover:not(:disabled){border-color:var(--ink);background:#f8f9fa}.btn-ok{background:linear-gradient(195deg,#66bb6a,#43a047);color:#fff}.btn-danger{background:linear-gradient(195deg,#ef5350,#e53935);color:#fff}.btn-warn{background:linear-gradient(195deg,#ffa726,#fb8c00);color:#fff}.btn-sm{padding:6px 11px;font-size:.68rem;border-radius:.4rem}.btn-lg{padding:13px 22px;font-size:.85rem;border-radius:.6rem}.btn-link{background:none;border:0;color:var(--blue);padding:0;font-weight:600;font-size:.82rem;text-transform:none}.mi{font-size:1.2em;line-height:1;vertical-align:-.22em;-webkit-user-select:none;user-select:none}.btn .mi{font-size:16px;vertical-align:0;margin:-2px 0}.btn-sm .mi{font-size:15px}.mi.ok{color:var(--ok)}.mi.bad{color:var(--bad)}.mi.warn{color:#e65100}.mi.muted{color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:.64rem;font-weight:700;letter-spacing:.02em;padding:3px 9px;border-radius:.4rem;border:1px solid transparent;white-space:nowrap;line-height:1.4;text-transform:uppercase}.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.chip.ok{background:var(--ok-bg);color:#2e7d32}.chip.warn{background:var(--warn-bg);color:#e65100}.chip.bad{background:var(--bad-bg);color:#c62828}.chip.info{background:var(--info-bg);color:#0b57d0}.chip.purple{background:var(--purple-bg);color:var(--purple)}.chip.ghost{background:#eef0f4;color:var(--muted)}.banner{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:.6rem;font-size:.84rem;line-height:1.5;margin:10px 0;border:1px solid transparent}.banner>b:first-child{font-size:1rem;flex:none}.banner>.banner-ico{font-size:19px;flex:none;vertical-align:0;margin-top:1px}.banner.info{background:var(--info-bg);color:#1c3f5c;border-color:#cfe0f0}.banner.ok{background:var(--ok-bg);color:#1b5e20;border-color:#c8e6c9}.banner.warn{background:var(--warn-bg);color:#6b4608;border-color:#ffe0b2}.banner.bad{background:var(--bad-bg);color:#7a2626;border-color:#f5c6c6}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:.72rem;font-weight:600;color:var(--muted)}.field .req{color:var(--bad)}.field input,.field select,.field textarea{border:1px solid #d2d6da;border-radius:.5rem;padding:9px 11px;background:#fff;width:100%;font-size:.875rem;color:#495057}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #e91e631f}.field .hint{font-size:.7rem;color:var(--muted)}.field input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.field select:not([multiple]){height:38px}.ss{position:relative}.field .ss input{display:block;padding-right:28px;text-overflow:ellipsis;cursor:pointer}.field .ss input:focus{cursor:text}.ss-caret,.ss-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);background:none;border:0;padding:0;line-height:1}.ss-caret{pointer-events:none;font-size:.7rem}.ss-clear{cursor:pointer;font-size:1.05rem}.ss-clear:hover{color:var(--ink)}.ss-drop{position:fixed;z-index:150;overflow-y:auto;background:#fff;border-radius:.6rem;box-shadow:0 14px 34px #141a3038;padding:6px}.ss-drop button{display:block;width:100%;text-align:left;background:none;border:0;border-radius:.45rem;padding:7px 9px;font-size:.8rem;color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-drop button.on{background:var(--canvas)}.ss-drop button.sel{font-weight:700;color:var(--primary)}.ss-drop button.ss-other{border-top:1px solid var(--line);border-radius:0 0 .45rem .45rem;margin-top:4px;color:var(--blue);font-weight:600;font-size:.76rem}.ss-drop small{display:block;font-size:.68rem;font-weight:400;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.seg{display:inline-flex;border:1px solid #d2d6da;border-radius:.5rem;overflow:hidden;background:#fff}.seg button{background:none;border:0;padding:7px 13px;font-size:.76rem;font-weight:700;color:var(--muted)}.seg button.active{background:var(--grad);color:#fff}.m-check{display:flex;align-items:center;gap:8px;font-size:.84rem;margin-top:8px;cursor:pointer}.m-check input,.tl-row input[type=checkbox]{accent-color:var(--primary)}.field input[type=checkbox],.field input[type=radio]{width:auto;padding:0;border-radius:3px;flex:none}.org-tree{border:1px solid var(--line);border-radius:.6rem;padding:6px 10px 8px;max-height:340px;overflow:auto;background:#fff}.org-tree .org-bar{display:flex;gap:8px;align-items:center;margin:2px 0 6px}.org-tree .org-bar input:not([type=checkbox]){flex:1;min-width:0;height:32px}.org-tree ul{list-style:none;margin:0;padding-left:22px}.org-tree>ul{padding-left:0}.org-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:.8rem}.org-row label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.8rem;font-weight:400;color:var(--ink);min-width:0}.org-row input{accent-color:var(--primary)}.org-row .tw{background:none;border:0;padding:0;width:16px;flex:none;color:var(--muted);font-size:.7rem;cursor:pointer}.org-row .lvl{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.org-row.covered label{color:var(--muted)}.org-states{display:flex;flex-wrap:wrap;gap:4px 18px}.org-states .m-check{margin-top:2px}.tbl{width:100%;border-collapse:collapse;font-size:.8rem}.tbl th{text-align:left;font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}.tbl td{padding:9px 10px;border-bottom:1px solid #eef0f4;vertical-align:top}.tbl tr:hover td{background:#fafbfc}.tbl tr.group td{background:#f4f6fb;font-weight:700}.tbl tr.click{cursor:pointer}.tbl-wrap{overflow-x:auto}.tbl-scroll{max-height:72vh;overflow:auto}.tbl-scroll thead th{position:sticky;top:0;z-index:1;background:var(--paper)}.tbl tr.group .g-btn{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.tbl tr.group .caret{display:inline-block;width:14px;color:var(--muted);transition:transform .15s}.tbl tr.group .caret.open{transform:rotate(90deg)}.tbl tr.more td{text-align:center;padding:6px 10px}.link-btn{background:none;border:0;padding:0;color:var(--blue);font-weight:600;font-size:.76rem;cursor:pointer}.pager{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin-top:12px;font-size:.76rem;color:var(--muted)}.pager .pg-size{display:flex;align-items:center;gap:6px}.pager .pg-size select{border:1px solid #d2d6da;border-radius:.4rem;padding:4px 6px;background:#fff;font-size:.76rem;color:#495057}.pager .pg-btns{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-left:auto}.pager .pg-btns .btn{min-width:32px;justify-content:center}.pager .pg-gap{padding:0 4px}.progress{height:6px;border-radius:99px;background:#e9ecef;overflow:hidden}.progress i{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .4s}.progress i.bad{background:var(--bad)}.crumbs{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted);flex-wrap:wrap;margin-bottom:14px}.crumbs button,.crumbs a{background:none;border:0;color:var(--blue);font-weight:600;font-size:.82rem;padding:0;text-decoration:none}.crumbs .cur{color:var(--ink);font-weight:600}.state-tile{background:var(--paper);border:0;border-radius:var(--radius);padding:16px 18px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow)}.state-tile:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001f}.state-tile h4{font-size:1rem;font-weight:700;color:var(--ink)}.st-meta{color:var(--muted);font-size:.74rem;margin-top:4px}.st-nums{display:flex;gap:18px;margin-top:12px}.st-nums div b{display:block;font-size:1.25rem;font-weight:700;line-height:1.1}.st-nums div span{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.st-nums .b-ok b{color:var(--ok)}.st-nums .b-bad b{color:var(--bad)}.file-card{background:var(--paper);border:1px solid transparent;border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow);text-decoration:none;color:inherit;display:block}.file-card:hover{border-color:var(--purple)}.file-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px #e91e6326}.fc-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.fc-name{font-family:var(--mono);font-size:.82rem;font-weight:600;color:var(--ink)}.fc-meta{font-size:.74rem;color:var(--muted);margin-top:4px;line-height:1.5}.rail{display:flex;flex-direction:column}.rail-item{display:grid;grid-template-columns:34px 1fr;gap:12px;position:relative;padding-bottom:16px}.rail-item:before{content:"";position:absolute;left:16px;top:30px;bottom:0;width:2px;background:var(--line)}.rail-item:last-child:before{display:none}.rail-item .node{width:34px;height:34px;border-radius:50%;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--muted);z-index:1}.rail-item .node span{display:block}.rail-item.done .node,.rail-item.late .node{background:var(--ok);border-color:var(--ok);color:#fff}.rail-item.late .node{background:var(--bad);border-color:var(--bad)}.rail-item.current .node,.rail-item.review .node{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px #e91e6326}.rail-item.bypassed .node{background:var(--hatch-ink);border-style:dashed}.rail-item.locked{opacity:.65}.rail-body{padding-top:5px}.rail-name{font-weight:700;font-size:.86rem;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.legal{font-size:.7rem;color:var(--purple);margin-top:3px;line-height:1.45}.rail-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.74rem;color:var(--muted);margin-top:5px}.late-txt{color:var(--bad);font-weight:600}.ok-txt{color:#2e7d32;font-weight:600}.sub-list{font-size:.74rem;color:var(--muted);margin-top:6px;line-height:1.6;padding-left:2px}.rail-actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.flow-map{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:8px 2px 14px}.station{flex:none;width:210px;background:var(--paper);border:1px solid var(--line);border-radius:.75rem;padding:12px 13px;position:relative;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}.station.bypassed{border-style:dashed;background:#f7f8fa;opacity:.75}.station.custom{border-color:var(--purple)}.station.dragging{opacity:.4}.station.drop-hint{border-color:var(--blue);box-shadow:0 0 0 3px #0070b433}.st-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.st-id{width:28px;height:28px;border-radius:50%;background:var(--grad);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.64rem;font-weight:700;flex:none}.st-id span{display:block}.st-name{font-weight:700;font-size:.82rem;color:var(--ink);line-height:1.35}.st-legal{font-size:.64rem;color:var(--purple);line-height:1.4}.st-subs{font-size:.66rem;color:var(--muted);line-height:1.5}.st-bypass{font-size:.66rem;color:var(--bad);font-style:italic}.st-date{font-size:.7rem;color:var(--muted);border-top:1px dashed var(--line);padding-top:6px;margin-top:2px}.st-actions{display:flex;gap:6px;margin-top:auto;padding-top:6px}.drag-grip{position:absolute;right:8px;bottom:8px;color:#b7bfcb;font-size:.8rem;cursor:grab}.flow-link{flex:none;width:44px;display:flex;align-items:center;justify-content:center;position:relative}.flow-link:before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--line)}.add-node{position:relative;width:24px;height:24px;border-radius:50%;border:1.5px solid #d2d6da;background:#fff;color:var(--muted);font-size:.8rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .15s}.add-node:hover{border-color:var(--primary);color:var(--primary);transform:scale(1.15)}.flow-hint{font-size:.72rem;color:var(--muted);margin-top:4px}.law-panel{background:#faf6f9;border:1px solid #ecd9e4;border-radius:.6rem;padding:12px 14px;margin-top:12px}.law-panel h4{font-size:.78rem;color:var(--purple);margin-bottom:8px}.law-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 16px}.law-grid .li{display:flex;gap:8px;font-size:.74rem;line-height:1.5;color:var(--text)}.law-grid .b{color:var(--purple);font-weight:700;flex:none}.tl-table{display:flex;flex-direction:column;gap:6px}.tl-row{display:grid;grid-template-columns:40px 1fr 160px 200px 110px;gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:.6rem;background:#fff}.tl-row.bypassed{opacity:.6;background:#f7f8fa;grid-template-columns:40px 1fr}.tl-row.done{background:#f4faf7}.tl-row.selected{border-color:var(--primary);background:#fdf6f9}.tl-name{font-size:.82rem;font-weight:700;color:var(--ink)}.tl-row input,.tl-row select{border:1px solid #d2d6da;border-radius:.4rem;padding:6px 8px;font-size:.8rem;width:100%}@media (max-width:900px){.tl-row{grid-template-columns:40px 1fr}.tl-row>*{grid-column:auto}}.timing-warn .tw{font-size:.78rem;background:var(--bad-bg);color:#7a2626;border:1px solid #f5c6c6;border-radius:.5rem;padding:8px 10px;margin-top:8px;line-height:1.5}.timing-warn .tw.ok{background:var(--ok-bg);color:#1b5e20;border-color:#c8e6c9}.gantt-wrap{background:#fbfcfd;border:1px solid var(--line);border-radius:.6rem;padding:10px;margin-top:12px;overflow-x:auto}.wizard-steps{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}.wstep{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;color:var(--muted)}.wstep .n{width:24px;height:24px;border-radius:50%;border:1.5px solid #d2d6da;display:flex;align-items:center;justify-content:center;font-size:.7rem}.wstep.on{color:var(--ink)}.wstep.on .n{background:var(--grad);color:#fff;border-color:transparent}.wstep.done{color:#2e7d32}.wstep.done .n{background:var(--ok);color:#fff;border-color:var(--ok)}.wsep{width:30px;height:1px;background:var(--line)}.fname-box{margin-top:14px;padding:12px 14px;border-radius:.6rem;background:#f4f6fb;border:1px dashed #c6cdd7;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.fname-box .lbl{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.fname-box .val{font-family:var(--mono);font-weight:600;color:var(--ink)}.fname-box .formula{font-size:.66rem;color:var(--muted);margin-left:auto}.stagebar{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.stg{font-size:.62rem;font-weight:700;padding:4px 9px;border-radius:.4rem;background:#eef0f4;color:var(--muted);border:1px solid var(--line);text-transform:uppercase}.stg.done{background:var(--ok-bg);color:#2e7d32;border-color:#c8e6c9}.stg.now{background:var(--grad);color:#fff;border-color:transparent}.clock{margin-top:22px;position:relative}.clock-track{height:10px;border-radius:99px;background:#e9ecef;position:relative}.clock-fill{height:100%;border-radius:99px}.clock-mark{position:absolute;top:-4px;width:2px;height:18px;background:#b7bfcb}.clock-mark span{position:absolute;top:20px;left:-12px;font-size:.6rem;color:var(--muted)}.bars .bar-row{display:grid;grid-template-columns:200px 1fr 60px;gap:10px;align-items:center;font-size:.76rem;margin-top:8px}.bar-track{height:10px;border-radius:99px;background:#e9ecef;overflow:hidden}.bar-fill{height:100%;border-radius:99px}.bname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);font-size:.7rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#34476773;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:fadeUp .15s}.modal{background:#fff;border-radius:.75rem;width:min(560px,100%);max-height:92vh;overflow:auto;padding:22px 24px;box-shadow:0 20px 60px #0000004d}.modal.wide{width:min(900px,100%)}.modal h3{font-size:1.05rem;font-weight:700;color:var(--ink)}.m-sub{color:var(--muted);font-size:.8rem;margin:4px 0 14px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal .stack{gap:12px}#toast-wrap{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:200;max-width:380px}.toast{background:var(--ink);color:#fff;padding:11px 14px;border-radius:.6rem;font-size:.82rem;line-height:1.45;box-shadow:var(--shadow);border-left:4px solid var(--blue);animation:fadeUp .2s}.toast.ok{border-left-color:var(--ok)}.toast.bad{border-left-color:var(--bad)}.toast.warn{border-left-color:var(--warn)}.empty{padding:30px;text-align:center;color:var(--muted);font-size:.85rem}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.84rem;padding:24px}.tree ul{list-style:none;padding-left:14px}.tree li{font-size:.8rem;line-height:1.9}.tree .node-btn{background:none;border:0;padding:0;font-size:.8rem;color:var(--ink);text-align:left}.tree .node-btn.active{color:var(--primary);font-weight:700}.t-ico{font-size:16px;color:#8a94a6;vertical-align:-3px}.node-btn.active .t-ico{color:var(--primary)}.t-ico.bad{color:var(--bad)}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.8rem}.kv dt{color:var(--muted)}.kv dd{font-weight:600;color:var(--ink)}.drop{border:2px dashed #d2d6da;border-radius:.6rem;padding:14px;text-align:center;font-size:.8rem;color:var(--muted);background:#fbfcfd;cursor:pointer}.drop.over{border-color:var(--blue);background:var(--info-bg)}.loc-btns{display:flex;gap:4px}.loc-btns input{flex:1;min-width:0}.loc-btns .btn{height:38px;width:38px;padding:0;flex:none;justify-content:center;font-size:.9rem}.loc-note.ok{color:#2e7d32}.loc-note.warn{color:#8a5a00}.loc-note.bad{color:var(--bad)}.loc-note a{font-weight:600}.geo-browse .geo-col{max-height:62vh;overflow:auto;border:1px solid var(--line);border-radius:8px}.geo-browse .geo-col .tbl thead th{position:sticky;top:0;z-index:1;background:var(--paper)}.geo-browse .tbl td,.geo-browse .tbl th{padding:7px 8px}.geo-chips{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 2px 16px;max-height:160px;overflow:auto}.geo-chips span{font-size:.72rem;background:var(--canvas);border-radius:6px;padding:2px 7px}.bu-sum{margin-right:auto;align-self:center;font-size:.76rem;color:var(--muted)}.bu-list{margin-top:12px;max-height:42vh;overflow:auto;border:1px solid var(--line);border-radius:8px}.bu-list .tbl td{vertical-align:middle;padding:7px 8px}.bu-list .tbl thead th{position:sticky;top:0;z-index:1;background:var(--paper)}.bu-list .tbl td input:not([type=checkbox]):not([type=radio]),.bu-list .tbl td select{width:100%;min-width:120px;padding:6px 8px;font-size:.78rem;height:34px}.bu-list input[type=checkbox]{accent-color:var(--primary)}.bu-file{max-width:260px;font-size:.76rem}.bu-file .mono{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bu-file .muted{font-size:.68rem}.bu-warn{font-size:.68rem;color:#8a5a00;margin-top:2px}.bu-status{font-size:.72rem}.bu-status .progress{margin-bottom:2px}.bu-status .late-txt{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bu-skip td{opacity:.55}.viewer{background:#fff;border-radius:.75rem;width:min(1200px,100%);height:min(92vh,1100px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.viewer-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.viewer-title{flex:1 1 240px;min-width:0;display:flex;flex-direction:column}.viewer-title b{font-size:.9rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-title span{font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.viewer-count{font-size:.74rem;color:var(--muted);min-width:44px;text-align:center}.viewer-body{flex:1;min-height:0;background:#525659;display:flex;align-items:center;justify-content:center;overflow:auto}.viewer-body iframe{width:100%;height:100%;border:0;background:#525659}.viewer-body img{max-width:100%;max-height:100%;object-fit:contain;background:#fff}.viewer-body .loading{color:#fff}.viewer-msg{background:#fff;border-radius:.6rem;padding:22px 26px;text-align:center;font-size:.85rem;max-width:460px}.viewer-msg p{margin-bottom:12px}@media (max-width:700px){.viewer{height:100%;border-radius:0}.modal-overlay:has(.viewer){padding:0}}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.filters .field{min-width:150px}.filters.fit{flex-wrap:nowrap}.filters.fit .field{flex:1 1 0;min-width:0;max-width:260px}.filters.fit>.btn{flex:none}@media (max-width:1100px){.filters.fit{flex-wrap:wrap}.filters.fit .field{flex-basis:150px}}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);background:#fff}.login-brand{position:relative;overflow:hidden;background:var(--grad);color:#fff;padding:40px 56px 48px;display:flex;flex-direction:column}.login-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.14;pointer-events:none}.login-logo,.login-logo-sm{position:relative;align-self:flex-start;background:#fff;border-radius:10px;height:52px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 6px;box-shadow:0 8px 24px #00000026}.login-logo img,.login-logo-sm img{height:78px;width:auto;display:block;flex:none}.login-pitch{position:relative;margin-top:auto;max-width:520px;animation:fadeUp .5s ease both}.login-pitch h1{font-size:3.4rem;font-weight:800;letter-spacing:.08em;line-height:1}.login-full{font-size:1rem;font-weight:600;opacity:.92;margin-top:10px}.login-tag{font-size:1.2rem;line-height:1.5;margin-top:26px;max-width:440px}.login-pitch ul{list-style:none;margin-top:30px;display:flex;flex-direction:column;gap:14px}.login-pitch li{display:flex;align-items:center;gap:12px;font-size:.9rem;opacity:.95}.login-pitch li .material-icons{font-size:18px;width:36px;height:36px;flex:none;border-radius:50%;background:#ffffff29;display:flex;align-items:center;justify-content:center}.login-main{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-form{width:min(400px,100%);display:flex;flex-direction:column;gap:16px;animation:fadeUp .4s ease both}.login-logo-sm{display:none;box-shadow:none;border:1px solid var(--line)}.login-form h2{font-size:1.65rem;font-weight:700;color:var(--ink)}.login-hint{font-size:.88rem;color:var(--muted);margin-top:-10px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field>span{font-size:.76rem;font-weight:700;color:var(--ink)}.login-input{display:flex;align-items:center;gap:10px;height:48px;border:1px solid #d6dbe3;border-radius:10px;padding:0 8px 0 12px;background:#fff;transition:border-color .15s,box-shadow .15s}.login-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #0070b424}.login-input>.material-icons{font-size:19px;color:var(--muted)}.login-input input{flex:1;min-width:0;height:100%;border:0!important;outline:0;box-shadow:none!important;background:transparent;padding:0!important;font-size:.95rem}.login-eye{background:none;border:0;color:var(--muted);display:flex;padding:6px;border-radius:6px}.login-eye:hover{color:var(--ink);background:var(--canvas)}.login-eye .material-icons{font-size:19px}.login-row{display:flex;justify-content:flex-end;margin-top:-8px}.login-submit{height:50px;border:0;border-radius:10px;background:var(--grad-bar);color:#fff;font-size:.98rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 12px 26px -12px #ab2e6eb3;transition:transform .1s,box-shadow .15s,filter .15s}.login-submit:hover{filter:brightness(1.07);box-shadow:0 14px 30px -10px #0070b499}.login-submit:active{transform:translateY(1px)}.login-submit:disabled{opacity:.8;cursor:wait}.login-submit .material-icons{font-size:19px}.login-submit .spinner{width:16px;height:16px;border-color:#ffffff59;border-top-color:#fff}.login-foot{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.74rem;color:var(--muted);margin-top:10px}.login-foot .material-icons{font-size:15px}@media (max-width:900px){.login-page{grid-template-columns:1fr;border-top:5px solid var(--purple)}.login-brand{display:none}.login-logo-sm{display:flex}}.login-page.solo{grid-template-columns:1fr;border-top:5px solid var(--purple)}.login-page.solo .login-logo-sm{display:flex}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#fff;animation:splashIn .35s ease .25s both}@keyframes splashIn{0%{opacity:0}to{opacity:1}}.splash img{height:96px}.splash b{font-size:1rem;font-weight:800;letter-spacing:.32em;color:var(--ink);margin:-18px 0 0 .32em}.splash-bar{position:relative;width:160px;height:3px;border-radius:3px;background:var(--line);overflow:hidden;margin-top:14px}.splash-bar i{position:absolute;top:0;bottom:0;left:-40%;width:40%;border-radius:3px;background:var(--grad-bar);animation:splashBar 1.2s ease-in-out infinite}@keyframes splashBar{0%{left:-40%}to{left:100%}}.splash-lbl{font-size:.74rem;color:var(--muted);margin-top:4px}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:flex;align-items:center;justify-content:center;background:#fff;transition:opacity .4s}.intro.out{opacity:0;pointer-events:none}.intro video,.intro img{width:100%;height:100%;object-fit:contain}.intro-btn{position:absolute;bottom:18px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.85);background:#ffffffbf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);cursor:pointer;box-shadow:var(--shadow)}.intro-btn .material-icons{font-size:24px}.intro-btn:hover{background:#fff;color:var(--primary)}.intro-sound{left:18px}.intro-skip{right:18px}.sk{height:12px;border-radius:6px;background:linear-gradient(90deg,#e4e8ee 25%,#f0f2f6,#e4e8ee 75%);background-size:200% 100%;animation:skShine 1.3s linear infinite}@keyframes skShine{0%{background-position:200% 0}to{background-position:-200% 0}}.skel-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0 18px}.skel-tile{height:88px;border-radius:var(--radius)}.skel-table{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:6px 20px}.skel-row{display:flex;gap:28px;padding:15px 0;border-bottom:1px solid var(--line)}.skel-row:last-child{border-bottom:0}@media (max-width:640px){.skel-tiles{grid-template-columns:repeat(2,1fr)}}.welcome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;align-items:center;justify-content:center;background:#f0f2f5cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;animation:splashIn .25s ease both;transition:opacity .4s}.welcome.out{opacity:0}.welcome-card{position:relative;overflow:hidden;text-align:center;background:#fff;border-radius:1rem;padding:30px 48px 28px;box-shadow:0 30px 80px #141a3038;animation:fadeUp .45s ease both}.welcome-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--grad-bar)}.welcome-card img{height:64px}.welcome-card h2{font-size:1.5rem;font-weight:700;color:var(--ink)}.welcome-card p{font-size:.86rem;color:var(--muted);margin-top:4px}.welcome-card .welcome-sub{color:var(--purple);font-weight:700;margin-top:12px}.kpi-card{background:var(--paper);border:0;border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.kpi-card .lbl{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.kpi-card .val{font-size:1.25rem;font-weight:700;color:var(--ink);margin:4px 0 2px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}.tabs button,.tabs a{background:none;border:0;padding:10px 14px;font-size:.8rem;font-weight:700;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center}.tabs button.active,.tabs a.active{color:var(--primary);border-bottom-color:var(--primary)}.tabs button:hover,.tabs a:hover{color:var(--ink)}.tabs button .cnt{margin-left:6px;font-size:.62rem;background:var(--purple-bg);color:var(--purple);padding:1px 6px;border-radius:99px}.matrix{display:grid;gap:4px;font-size:.66rem}.matrix .cell{height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-weight:700;background:#dce1e8;color:var(--muted)}.matrix .cell.done{background:var(--ok);color:#fff}.matrix .cell.late{background:var(--bad);color:#fff}.matrix .cell.current{background:var(--primary);color:#fff}.matrix .cell.bypassed{background:var(--hatch-ink)}.matrix .cell.review{background:var(--warn);color:#fff}.help-box{display:none}.grid>*{min-width:0}.card{max-width:100%;overflow-x:auto}.page{overflow-x:clip}.presenting .app-head{display:none}.bell-wrap{position:relative}.bell{background:#ffffff26;border:1px solid rgba(255,255,255,.4);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;position:relative}.bell .material-icons{font-size:18px}.bell-count{position:absolute;top:-6px;right:-6px;background:#f44335;color:#fff;font-size:.6rem;font-weight:700;border-radius:99px;padding:1px 5px;min-width:16px;text-align:center}.bell-menu{position:absolute;right:0;top:40px;width:min(380px,90vw);background:#fff;border-radius:.75rem;box-shadow:0 20px 50px #00000040;z-index:200;color:var(--text);overflow:hidden}@media (max-width:640px){.bell-menu{position:fixed;left:12px;right:12px;top:64px;width:auto}}.bell-list{max-height:60vh;overflow:auto}.bell-item{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #eef0f4;padding:10px 12px;font:inherit}.bell-item:hover{background:#fafbfc}.bell-item.unread{background:#fdf6f9}.bell-item .t{font-size:.8rem;font-weight:700;color:var(--ink)}.bell-item .b{font-size:.74rem;color:var(--muted);margin-top:2px;line-height:1.4}.bell-item .d{font-size:.66rem;color:var(--muted);margin-top:3px}.work-list{display:flex;flex-direction:column;gap:6px}.work-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:.6rem;border:1px solid var(--line);background:#fff;text-decoration:none;color:inherit;font-size:.8rem}.work-item:hover{border-color:var(--purple)}.work-item.overdue{border-left:4px solid var(--bad)}.work-item.due-soon{border-left:4px solid var(--warn)}.work-item.open{border-left:4px solid var(--line)}.work-item .f{font-family:var(--mono);font-size:.74rem;color:var(--muted)}.gantt{position:relative;display:flex;align-items:flex-start;min-width:max-content}.gantt-labels{position:sticky;left:0;z-index:2;background:#fbfcfd;flex:none;border-right:1px solid var(--line)}.gantt-lbl{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--ink);white-space:nowrap;overflow:hidden;padding:0 8px 0 4px;border-bottom:1px solid #eef0f4}.gantt-lbl.head{align-items:flex-end;padding-bottom:6px;border-bottom:1px solid var(--line)}.gantt-lbl.sub{color:var(--muted);font-size:.66rem}.gantt-lbl.bypassed{color:#b7bfcb;text-decoration:line-through}.gantt-lbl.current{background:#fdf6f9}.gantt-lbl.clickable{cursor:pointer}.gantt-lbl.clickable:hover{background:#f4f6fb}.gantt-lbl .code{font-family:var(--mono);font-weight:700;font-size:.62rem;flex:none}.gantt-lbl .nm{overflow:hidden;text-overflow:ellipsis}.gantt-lbl .tg{width:14px;height:14px;border:0;background:none;color:var(--muted);font-size:.6rem;padding:0;flex:none;display:inline-block}.gantt-add{position:absolute;right:-10px;z-index:3;width:20px;height:20px;font-size:.72rem}.gantt-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.66rem;color:var(--muted);margin-top:6px;align-items:center}.gantt-legend i{display:inline-block;width:14px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}.tl-row.tl-group{border-left:3px solid var(--purple)}.tl-row.tl-sub{margin-left:22px;background:#fbfcfd;padding:5px 10px;border-color:#eef0f4}.tl-row.tl-sub.done{background:#f4faf7}.tl-row.tl-sub .tl-name{font-weight:600;font-size:.78rem}.tl-row.tl-sub input,.tl-row.tl-sub select{padding:4px 7px;font-size:.76rem}.tl-sub-code{font-family:var(--mono);font-size:.62rem;font-weight:700;color:var(--muted);text-align:center}.tl-toggle{background:none;border:0;color:var(--muted);font-size:.7rem;padding:0 2px}.step-list{display:flex;flex-direction:column;gap:6px}.step-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:.6rem;border:1px solid var(--line);background:#fff;font-size:.8rem}.step-row .num{width:26px;height:26px;border-radius:50%;background:#e9ecef;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.66rem;color:var(--muted);flex:none}.step-row.done .num{background:var(--ok);color:#fff}.step-row.current{border-color:var(--primary);background:#fdf6f9}.step-row.current .num{background:var(--grad);color:#fff}.step-row.locked{opacity:.7}.step-row .t{font-weight:700;color:var(--ink)}.step-row .s{font-size:.72rem;color:var(--muted);margin-top:1px}.sub-list .sp{display:flex;align-items:center;gap:6px}.sub-list .sp b.ok{color:#2e7d32}.sub-list .sp b.pend{color:#b7bfcb}.board{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:16px;align-items:start}@media (max-width:1100px){.board{grid-template-columns:1fr}}.board-col h3{font-size:.9rem;font-weight:700;color:var(--ink);letter-spacing:.02em;text-transform:uppercase}.board-col .lane-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 6px}.board-col .lane-head b{font-size:.9rem;color:var(--ink)}.chain{position:relative;padding-left:6px}.chain:before{content:"";position:absolute;left:23px;top:18px;bottom:18px;width:3px;background:linear-gradient(180deg,#ab2e6e,#0070b4);border-radius:3px;opacity:.35}.cnode{position:relative;display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:start;padding:5px 0}.cnode .dot{width:36px;height:36px;border-radius:50%;background:#fff;border:2.5px solid #c6cdd7;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--muted);position:relative;z-index:1}.cnode.done .dot{background:var(--ok);border-color:var(--ok);color:#fff}.cnode.late .dot{background:var(--bad);border-color:var(--bad);color:#fff}.cnode.current .dot{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px #e91e6326}.cnode.has .dot{border-color:var(--purple);color:var(--purple)}.cnode .badge{position:absolute;top:-4px;left:26px;background:var(--primary);color:#fff;font-size:.6rem;font-weight:700;border-radius:99px;min-width:17px;height:17px;padding:0 5px;display:flex;align-items:center;justify-content:center;z-index:2;box-shadow:0 1px 3px #00000040}.cnode .lbl{font-size:.8rem;font-weight:600;color:var(--ink);line-height:1.3;padding-top:8px}.cnode .lbl small{display:block;font-size:.68rem;color:var(--muted);font-weight:500;margin-top:2px}.cnode .lbl .dates{display:flex;gap:12px;flex-wrap:wrap;font-size:.7rem;color:var(--muted);margin-top:3px}.cnode .lbl .dates b{color:var(--ink)}.hang{display:flex;flex-direction:column;gap:4px;margin:4px 0 2px}.hang a{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;background:#fdf6f9;border:1px solid #f1d6e3;border-radius:.5rem;padding:5px 9px;font-size:.72rem}.hang a:hover,.hang a.sel{border-color:var(--primary);background:#fff;box-shadow:0 0 0 2px #e91e631f}.hang a .n{font-family:var(--mono);font-weight:600;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hang a .d{font-weight:700;font-size:.66rem;padding:1px 6px;border-radius:.3rem}.hang a .d.bad{background:var(--bad-bg);color:#c62828}.hang a .d.warn{background:var(--warn-bg);color:#e65100}.hang a .d.ok{background:var(--ok-bg);color:#2e7d32}.hang .note{font-size:.66rem;color:var(--muted);font-style:italic;padding-left:2px}.lane-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.lane-tabs button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 10px;font-size:.7rem;font-weight:700;color:var(--muted)}.lane-tabs button.on{background:var(--grad);color:#fff;border-color:transparent}.file-head{background:#fff;border-radius:.75rem;padding:12px 14px;box-shadow:var(--shadow);margin-bottom:10px}.file-head .big{font-family:var(--mono);font-weight:700;color:var(--ink);font-size:.9rem}.file-head .devbig{font-size:1.6rem;font-weight:800;color:var(--bad);line-height:1}.file-head .devbig.ok{color:var(--ok)}.hang a .d.proj{background:#ede7f6;color:#5e35b1}.cnode.stuck .dot{border-color:var(--bad);color:var(--bad);box-shadow:0 0 0 4px #c628281f}.cnode.stuck .badge{background:var(--bad)}.view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:99px;background:#fff;padding:2px;align-self:center;margin-left:auto}.view-toggle a{padding:5px 12px;border-radius:99px;font-size:.72rem;font-weight:700;color:var(--muted);text-decoration:none}.view-toggle a.on{background:var(--grad);color:#fff}.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:4px 0 12px;font-size:.8rem}.crumbs a{color:var(--muted);text-decoration:none;font-weight:600}.crumbs a:hover{color:var(--primary)}.crumbs b{color:var(--ink)}.crumbs .sep{color:#c6cdd7}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.68rem;color:var(--muted);margin-left:auto}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px;border:2px solid #c6cdd7;background:#fff}.legend i.ok{background:var(--ok);border-color:var(--ok)}.legend i.cur{border-color:var(--primary)}.legend i.stuck{border-color:var(--bad)}.legend i.has{border-color:var(--purple)}.attention{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#fff;border-left:4px solid var(--bad);border-radius:.6rem;padding:8px 12px;margin-bottom:14px;box-shadow:var(--shadow);font-size:.75rem}.attention b{color:#c62828}.attention a{font-family:var(--mono);font-size:.7rem;background:var(--bad-bg);color:#c62828;border-radius:.3rem;padding:2px 7px;text-decoration:none;font-weight:600}.attention a:hover{background:#c62828;color:#fff}.state-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:18px}.state-card{background:#fff;border-radius:.85rem;box-shadow:var(--shadow);padding:18px 22px 14px;cursor:pointer;border:1px solid transparent;transition:.15s;display:flex;flex-direction:column}.state-card:hover{border-color:var(--primary);transform:translateY(-1px)}.state-card .sc-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.state-card .sc-head h4{font-size:1.2rem;font-weight:700;color:var(--ink)}.state-card .sc-kpis{display:flex;gap:18px;margin:12px 0 10px;flex-wrap:wrap}.state-card .sc-kpis div{font-size:.66rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.state-card .sc-kpis b{display:block;font-size:1.45rem;color:var(--ink);letter-spacing:0;line-height:1.1}.state-card .sc-kpis b.ok{color:var(--ok)}.state-card .sc-kpis b.bad{color:var(--bad)}.state-card .sc-kpis b.warn{color:#e65100}.mini-lane{display:flex;align-items:center;gap:6px;margin-top:6px}.mini-lane .pt{font-size:.62rem;font-weight:700;color:var(--muted);width:52px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-lane .track{display:flex;align-items:center;gap:0;flex:1}.mini-lane .md{position:relative;width:16px;height:16px;border-radius:50%;border:2px solid #c6cdd7;background:#fff;flex:none;margin-right:8px}.mini-lane .md:after{content:"";position:absolute;left:14px;top:5px;width:8px;height:2px;background:#dfe3e8}.mini-lane .md:last-child:after{display:none}.mini-lane .md.has{border-color:var(--purple)}.mini-lane .md.stuck{border-color:var(--bad)}.mini-lane .md.done{background:var(--ok);border-color:var(--ok)}.mini-lane .md span{position:absolute;top:-8px;left:9px;background:var(--primary);color:#fff;font-size:.55rem;font-weight:700;border-radius:99px;min-width:13px;height:13px;padding:0 3px;display:flex;align-items:center;justify-content:center;z-index:1}.mini-lane .md.stuck span{background:var(--bad)}.drill{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:6px}.drill .dcol{background:#fff;border-radius:.75rem;box-shadow:var(--shadow);padding:14px 16px;flex:1 1 380px;min-width:340px;transition:.2s}.drill .dcol.ctx{flex:0 0 220px;min-width:220px;cursor:pointer;opacity:.92}.drill .dcol.ctx:hover{opacity:1;box-shadow:0 0 0 2px #e91e6326}.drill .dcol h3{font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.drill .dcol .dtitle{font-size:1rem;font-weight:700;color:var(--ink);line-height:1.25}.drill .dcol.ctx .chain{padding-left:0}.drill .dcol.ctx .chain:before{left:11px;width:2px}.drill .dcol.ctx .cnode{grid-template-columns:24px 1fr;gap:8px;padding:3px 0}.drill .dcol.ctx .cnode .dot{width:24px;height:24px;font-size:.55rem;border-width:2px}.drill .dcol.ctx .cnode .badge{left:15px;min-width:14px;height:14px;font-size:.55rem}.drill .dcol.ctx .cnode .lbl{font-size:.68rem;padding-top:4px;font-weight:500}.drill .dcol.ctx .hang{display:none}.drill .dcol.ctx .cnode.sel .lbl{color:var(--primary);font-weight:700}.proj-list{display:flex;flex-direction:column;gap:6px;margin:10px 0 14px}.proj-list a{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:.5rem;padding:7px 10px;font-size:.76rem}.proj-list a:hover,.proj-list a.on{border-color:var(--primary);background:#fdf6f9}.proj-list a b{flex:1;color:var(--ink)}.proj-list a small{color:var(--muted)}.pt-toggle{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px}.pt-toggle button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:4px 10px;font-size:.7rem;font-weight:700;color:var(--muted)}.pt-toggle button.on{background:var(--grad);color:#fff;border-color:transparent}.present .page-head,.present .filters,.present .attention,.present .crumbs{display:none}.present .page{padding-top:10px}.hang a.more{justify-content:center;background:#fff;border-style:dashed;color:var(--primary);font-weight:700}.center{text-align:center}.health-bar{display:flex;height:9px;border-radius:99px;overflow:hidden;background:#eef0f4;margin:2px 0 6px}.health-bar i{display:block;height:100%}.health-bar i.ok{background:var(--ok)}.health-bar i.warn{background:#ffa726}.health-bar i.bad{background:var(--bad)}.sc-worst{font-size:.7rem;color:var(--muted);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-worst b{font-family:var(--mono);color:#c62828;font-weight:600}.sc-label{font-size:.66rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:10px 0 2px}.ms-row{margin-top:8px}.ms-row-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.7rem;color:var(--muted);margin-bottom:4px}.ms-row-head b{color:var(--ink);font-size:.76rem}.ms-cells{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}.ms-cell{border-radius:7px;background:#f3f4f7;border:1px solid transparent;text-align:center;padding:5px 2px 4px;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:2px}.ms-cell small{font-size:.6rem;font-weight:700;color:var(--muted);font-family:var(--mono)}.ms-cell b{font-size:.95rem;color:#b0b7c3;line-height:1;font-weight:700}.ms-cell.has{background:#ede7f6;border-color:#d1c4e9}.ms-cell.has small{color:#5e35b1}.ms-cell.has b{color:var(--ink)}.ms-cell.stuck{background:var(--bad-bg);border-color:#ef9a9a}.ms-cell.stuck b,.ms-cell.stuck small{color:#c62828}.ms-cell.done{background:var(--ok-bg)}.ms-cell.done small{color:#2e7d32}.ms-cell.done b{color:#a5d6a7}.ms-cell.fin{background:var(--ok-bg);border-color:#a5d6a7}.ms-cell.fin small,.ms-cell.fin b{color:#2e7d32}.sc-foot{margin-top:auto;padding-top:12px;font-size:.74rem;font-weight:700;color:var(--primary);text-align:right}.tree-sticky{position:sticky;top:12px;max-height:calc(100vh - 150px);overflow:auto}.tree-bar,.checklist-bar{display:flex;gap:6px;align-items:center;margin-bottom:8px}.tree-bar input,.checklist-bar input{flex:1;min-width:0}.tree .tnode{display:flex;align-items:flex-start;gap:2px}.tree .tw{background:none;border:0;padding:0 4px;color:var(--muted);font-size:.7rem;line-height:1.9;cursor:pointer;width:16px;flex:none}.tree .tw:hover{color:var(--primary)}.tree .tmeta{font-weight:400;font-family:var(--sans);font-size:.7rem}.tree .tleaf{padding-left:16px}.tree .tleaf .node-btn{font-size:.72rem;line-height:1.6;padding:2px 0}.checklist{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}.checklist-body{max-height:260px;overflow-y:auto}.checklist-body.tall{max-height:min(55vh,620px)}.check-row{gap:8px;font-size:.78rem;padding:3px 6px;cursor:pointer;border-radius:5px}.check-row:hover{background:#f6f7fa}.check-row.on{background:#fdf6f9}.check-row{flex-wrap:nowrap;align-items:center}.check-row .mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.check-row .muted{white-space:nowrap;flex:none}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{border:1px solid #d2d6da;border-radius:.5rem;padding:8px 11px;background:#fff;font-size:.875rem;color:#495057}input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #e91e631f}.tree-bar,.checklist-bar{margin-bottom:10px}.doc-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.doc-search{min-width:300px;flex:0 1 360px}.tree .tbadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:99px;background:var(--bad-bg);color:#c62828;font-size:.62rem;font-weight:700;vertical-align:1px}.dk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.dk{background:#fff;border-radius:.75rem;box-shadow:var(--shadow);padding:14px 16px;border-left:4px solid #c6cdd7}.dk b{display:block;font-size:1.6rem;font-weight:800;color:var(--ink);line-height:1}.dk span{display:block;font-size:.72rem;font-weight:700;color:var(--ink);margin-top:6px}.dk small{display:block;font-size:.66rem;color:var(--muted);margin-top:2px}.dk.ok{border-left-color:var(--ok)}.dk.warn{border-left-color:#ffa726}.dk.bad{border-left-color:var(--bad)}.dk.bad b{color:var(--bad)}.doc-strip{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.doc-strip .ds{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:#f6f7fa;text-decoration:none;color:var(--ink)}.doc-strip .ds b{font-family:var(--mono);font-size:.7rem}.doc-strip .ds span{font-size:.72rem;font-weight:700;color:var(--muted)}.doc-strip .ds.ok{background:var(--ok-bg);border-color:#a5d6a7}.doc-strip .ds.ok span{color:#2e7d32}.doc-strip .ds.warn{background:var(--warn-bg);border-color:#ffcc80}.doc-strip .ds.warn span{color:#e65100}.doc-strip .ds.bad{background:var(--bad-bg);border-color:#ef9a9a}.doc-strip .ds.bad span{color:#c62828}.doc-strip .ds:hover{border-color:var(--primary)}.picker{position:sticky;top:12px;max-height:calc(100vh - 150px);overflow:auto}.wl{display:flex;flex-direction:column;gap:4px;margin-top:8px}.wl-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name due" "meta due";gap:2px 8px;text-align:left;border:1px solid var(--line);border-radius:8px;background:#fff;padding:7px 10px;cursor:pointer;border-left-width:4px}.wl-row:hover{border-color:var(--primary)}.wl-row.sel{background:#fdf6f9;border-color:var(--primary)}.wl-row.overdue{border-left-color:var(--bad)}.wl-row.due-soon{border-left-color:#ffa726}.wl-row.review{border-left-color:var(--purple)}.wl-row.open{border-left-color:#c6cdd7}.wl-row.done{border-left-color:var(--ok)}.wl-name{grid-area:name;font-size:.74rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wl-meta{grid-area:meta;font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wl-meta b{color:var(--purple)}.wl-meta i{font-style:normal;margin-left:4px}.wl-due{grid-area:due;align-self:center;font-size:.66rem;font-weight:700;padding:2px 7px;border-radius:.3rem;white-space:nowrap;background:#f1f3f6;color:var(--muted)}.wl-due.overdue{background:var(--bad-bg);color:#c62828}.wl-due.due-soon{background:var(--warn-bg);color:#e65100}.wl-due.review{background:#ede7f6;color:#5e35b1}.wl-due.done{background:var(--ok-bg);color:#2e7d32}.ms-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.ms-card{background:#fff;border:1px solid var(--line);border-radius:.75rem;box-shadow:var(--shadow);border-left:4px solid #c6cdd7}.ms-card.done{border-left-color:var(--ok)}.ms-card.late{border-left-color:var(--bad)}.ms-card.current{border-left-color:var(--primary)}.ms-card.review{border-left-color:#ffa726}.ms-card.bypassed{opacity:.7;border-left-color:#e0e3e8}.ms-head{display:grid;grid-template-columns:44px 1fr auto 18px;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;padding:12px 14px;cursor:pointer;color:inherit}.ms-head:hover{background:#fafbfc;border-radius:.75rem}.ms-num{width:40px;height:40px;border-radius:50%;background:#f1f3f6;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:700;font-size:.72rem;color:var(--muted)}.ms-card.done .ms-num,.ms-card.late .ms-num{background:var(--ok);color:#fff}.ms-card.late .ms-num{background:var(--bad)}.ms-card.current .ms-num,.ms-card.review .ms-num{background:var(--grad);color:#fff}.ms-title{min-width:0}.ms-title b{display:block;font-size:.9rem;color:var(--ink)}.ms-title small{display:block;font-size:.7rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-chips{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.ms-tw{color:var(--muted);font-size:.8rem}.ms-body{padding:4px 16px 16px 70px;border-top:1px solid #f0f2f5}@media (max-width:900px){.ms-body{padding-left:16px}.ms-head{grid-template-columns:36px 1fr 18px}.ms-chips{grid-column:1/-1;justify-content:flex-start}}.ms-close{border:1.5px solid var(--blue);border-radius:10px;padding:14px 16px;background:#f7fafd}.ms-subs{margin-top:12px}.sub-progress{height:6px;border-radius:99px;background:#eef0f4;overflow:hidden;margin-bottom:8px}.sub-progress i{display:block;height:100%;background:var(--grad)}.ms-fold{font-size:.7rem;color:var(--muted);padding:4px 0 4px 8px}.work-counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.work-counts .wc{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:.6rem;padding:6px 12px;background:#fff}.work-counts .wc:hover{border-color:var(--primary)}.work-counts .wc b{font-size:1.1rem;color:var(--primary)}.work-counts .wc span{font-size:.74rem;color:var(--ink)}.ms-insert{display:flex;align-items:center;gap:8px;padding:0 0 0 70px;height:22px;margin:-4px 0}.ms-insert .line{flex:1;height:1px;background:#e3e6ea}.ms-insert .add-node{width:24px;height:24px;border-radius:50%;border:1.5px dashed var(--primary);background:#fff;color:var(--primary);font-weight:700;font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.ms-insert .add-node:hover{background:var(--primary);color:#fff;border-style:solid}@media (max-width:900px){.ms-insert{padding-left:16px}}.ms-focus{box-shadow:0 0 0 2px var(--pink,#e91e63),var(--shadow);scroll-margin-top:12px;animation:msFocus 1.6s ease-out 1}@keyframes msFocus{0%{box-shadow:0 0 0 6px #e91e6359}to{box-shadow:0 0 0 2px var(--pink,#e91e63)}}:root{--head-h:60px;--ctx-h:0px}.app-head{position:sticky;top:0;z-index:60;background:var(--canvas)}#ctx-slot{position:absolute;left:0;right:0;top:100%;pointer-events:none}.ctx-bar{pointer-events:auto;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 6px 14px -8px #141a3040;animation:ctxIn .15s ease-out}@keyframes ctxIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ctx-inner{max-width:var(--page-max);margin:0 auto;padding:0 var(--gutter);height:38px;display:flex;align-items:center;gap:10px}.ctx-path{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden}.ctx-path>*{flex-shrink:0}.ctx-path .ctx-file{font-family:var(--mono,ui-monospace,monospace);font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:60px}.ctx-path b{color:var(--ink)}.ctx-sep{color:#c6cdd7}.ctx-top{border:1px solid var(--line);background:#fff;border-radius:7px;padding:4px 10px;font-size:.72rem;font-weight:700;color:var(--muted);cursor:pointer}.ctx-top:hover{color:var(--ink)}.picker,.tree-sticky{top:calc(var(--head-h) + var(--ctx-h) + 12px);max-height:calc(100vh - var(--head-h) - var(--ctx-h) - 28px);transition:top .15s}[id^=ms-]{scroll-margin-top:calc(var(--head-h) + 50px)}.finder{margin-left:auto;position:relative;display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:.5rem;padding:0 8px;background:#fff;min-width:230px}.finder .material-icons{font-size:18px;color:var(--muted)}.finder input{border:0!important;box-shadow:none!important;outline:0;padding:7px 0!important;font-size:.8rem;width:100%;background:transparent}.finder-drop{position:absolute;right:0;top:calc(100% + 6px);width:460px;max-width:90vw;background:#fff;border-radius:.6rem;box-shadow:0 14px 34px #141a3038;padding:6px;z-index:80}.finder-drop button{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;width:100%;text-align:left;background:none;border:0;border-radius:.45rem;padding:7px 9px;cursor:pointer}.finder-drop button.on{background:var(--canvas)}.finder-drop .fn{font-size:.78rem;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finder-drop .fm{grid-column:1;font-size:.7rem;color:var(--muted)}.finder-drop .chip{grid-row:1 / span 2;grid-column:2;align-self:center}.finder-empty{font-size:.76rem;color:var(--muted);padding:8px 9px}@media (max-width:900px){.finder{min-width:0;flex:1 1 100%;margin-left:0}.finder-drop{left:0;right:auto;width:100%}}.mon-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.mon-bar .crumbs{margin:0}.dm{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}.dm-rail{position:sticky;top:calc(var(--head-h,0px) + 12px);padding:10px 8px;display:flex;flex-direction:column;gap:6px}.dm-group-title{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 10px 4px}.dm-rail a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:.5rem;font-size:.8rem;font-weight:600;color:var(--ink);text-decoration:none}.dm-rail a .material-icons{font-size:17px;color:var(--muted)}.dm-rail a:hover{background:var(--canvas)}.dm-rail a.active{background:var(--grad-active);color:#fff}.dm-rail a.active .material-icons{color:#fff}.dm-rail a .dm-cnt{margin-left:auto}.dm-rail a.active .dm-cnt{background:#ffffff40;color:#fff}.dm-cnt{font-size:.64rem;font-weight:700;background:var(--purple-bg);color:var(--purple);padding:1px 7px;border-radius:99px;font-family:var(--mono)}.dm-note{font-size:.7rem;color:var(--muted);padding:6px 10px;line-height:1.45}.dm-find{min-width:200px;padding:6px 10px;border:1px solid #d2d6da;border-radius:.5rem;font-size:.8rem}.dm-body{min-width:0}@media (max-width:900px){.dm{grid-template-columns:1fr}.dm-rail{position:static;flex-direction:row;flex-wrap:wrap;gap:2px}.dm-group{display:contents}.dm-group-title,.dm-note{display:none}}.sheet{width:100%;border-collapse:collapse;font-size:.76rem}.sheet th{position:sticky;top:0;z-index:2;background:#f4f6fb;text-align:left;font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}.sheet td{padding:5px 8px;border-bottom:1px solid #eef0f4;vertical-align:middle}.sheet tr.m td{background:#eef4fb;font-weight:700;color:#1e3a8a}.sheet tr.m td .nm{cursor:pointer}.sheet tr.s td.nm{padding-left:26px}.sheet tr.done td{color:#56607a}.sheet tr.cur td{background:#fffbeb}.sheet tr.added td{background:#f0fdfa}.sheet tr.skipped td{color:#a0a6b5;text-decoration:line-through}.sheet tr.inh td{background:#f7f7f9;color:#8a90a2;font-style:italic}.sheet tr.pending td{background:repeating-linear-gradient(45deg,#fffaf0 0,#fffaf0 6px,#fff 6px,#fff 12px);color:#92400e}.sheet td.num,.sheet th.num{text-align:right;font-variant-numeric:tabular-nums}.sheet td .pos{color:#be123c;font-weight:700}.sheet td .neg{color:#15803d;font-weight:700}.sheet input[type=date],.sheet input[type=number],.sheet select{padding:3px 5px;font-size:.74rem;min-width:0}.sheet input[type=number]{width:58px}.sheet input.rmk{width:100%;min-width:150px;padding:3px 5px;font-size:.72rem}.sheet .chg,.sf .chg,.st-date .chg{outline:2px solid var(--warn);outline-offset:-1px;border-radius:4px}.rec-note{font-size:.66rem;color:var(--muted);margin-top:2px;white-space:nowrap}.rec-note .pos{color:#be123c;font-weight:700}.rec-note .neg{color:#15803d;font-weight:700}.btn-link.bad-link{color:var(--bad);font-size:.66rem}.sheet .office{display:inline-block;font-size:.68rem;border-radius:9px;padding:0 7px;background:#f1f5f9;border:1px solid #cbd5e1;color:#334155;font-weight:600;white-space:nowrap}.sheet .tag{font-size:.58rem;font-weight:700;color:#fff;background:#0f766e;border-radius:6px;padding:0 5px;margin-right:4px;vertical-align:1px}.sheet .tag.pend{background:#f59e0b}.sheet .tag.fixed{background:#64748b}.sheet .tag.par{background:#6366f1}.sheet .tag.opt{background:#94a3b8}.sheet .acts{white-space:nowrap}.sheet .acts button{background:none;border:0;padding:0 3px;cursor:pointer;font-size:.8rem}.sheet .resp{font-size:.7rem;font-weight:600;color:#334155}.sheet-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:10px}.prog2{position:relative;height:9px;border-radius:5px;background:#e2e8f0;margin-top:12px}.prog2 i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--blue)}.prog2 u{position:absolute;top:-3px;bottom:-3px;width:2px;background:#b45309}.fi-name{display:inline-block;max-width:100%;cursor:help;border-radius:4px;outline-offset:2px}.fi-name h3{border-bottom:1px dotted transparent}.fi-name:hover h3,.fi-name:focus-visible h3{border-bottom-color:var(--muted)}.fi-card-wrap{position:fixed;z-index:200;padding-top:6px;width:min(380px,calc(100vw - 16px));cursor:default}.fi-card{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px #141a3029;padding:10px 14px;font-size:.76rem;line-height:1.4}.fi-row{display:contents}.fi-k{color:var(--muted)}.fi-v{color:var(--ink);font-weight:600;overflow-wrap:anywhere}.fi-note{display:block;font-weight:400;color:var(--muted)}.mtrack-wrap{position:relative;margin-top:14px}.mtrack{display:flex;gap:8px;overflow-x:auto;padding:3px 3px 2px}.mt-step{flex:1 1 0;min-width:84px;display:flex;flex-direction:column;gap:3px;cursor:pointer;border-radius:6px;outline-offset:3px}.mt-step.mt-plan{flex:0 0 112px;cursor:default}.mt-step:focus-visible{outline:2px solid var(--blue)}.mt-bar{display:flex;gap:2px;height:9px}.mt-seg{flex:1 1 0;min-width:2px;border-radius:2px;background:#e2e8f0;transition:transform .12s}.mt-seg.done{background:var(--ok)}.mt-seg.now{background:var(--blue);box-shadow:0 0 0 2px #0070b440}.mt-seg.late{background:var(--bad);box-shadow:0 0 0 2px #f4433540}.mt-seg.hold{background:var(--warn);box-shadow:0 0 0 2px #fb8c0040}.mt-seg.skipped{background:var(--hatch-ink),#f1f5f9}.mt-seg.hot{transform:scaleY(1.6)}.mt-step.hot .mt-name{color:var(--ink)}.mt-tip{position:fixed;z-index:200;width:min(340px,calc(100vw - 16px));background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px #141a3029;padding:9px 12px;font-size:.74rem;line-height:1.45;color:var(--text);pointer-events:none;display:flex;flex-direction:column;gap:3px}.mt-tip .muted{font-size:.68rem}.mt-tip-st.done{color:#2e7d32}.mt-tip-st.now{color:var(--blue)}.mt-tip-st.late{color:var(--bad)}.mt-tip-st.hold{color:#b45309}.mt-code{font-family:var(--mono);font-size:.66rem;font-weight:700;color:var(--muted);white-space:nowrap}.mt-name{font-size:.7rem;line-height:1.25;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mt-step.done .mt-code{color:#2e7d32}.mt-step.now .mt-code{color:var(--blue)}.mt-step.late .mt-code{color:var(--bad)}.mt-step.hold .mt-code{color:var(--warn)}.mt-step.now .mt-name,.mt-step.late .mt-name,.mt-step.hold .mt-name{color:var(--ink);font-weight:600}.mt-step.skipped .mt-name{text-decoration:line-through}.cr-card{border:1px solid #fde68a;background:#fffbeb;border-radius:10px;padding:10px 12px;margin-top:8px}.cr-card .t{font-weight:700;font-size:.8rem}.cr-card .s{font-size:.74rem;color:#475569;margin-top:2px}.bell-item .bk{display:inline-block;font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:0 5px;margin-right:6px;background:#e2e8f0;color:#334155;vertical-align:1px}.bell-item .bk-OVERDUE,.bell-item .bk-DELAY,.bell-item .bk-RETURNED{background:#fee2e2;color:#b91c1c}.bell-item .bk-DUE,.bell-item .bk-OFFICE,.bell-item .bk-APPROVAL_DUE{background:#fef3c7;color:#92400e}.bell-item .bk-APPROVED{background:#dcfce7;color:#166534}.ocr-box{margin:10px 0 4px;padding:10px 12px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}.files-layout{display:grid;grid-template-columns:minmax(200px,min(280px,16vw)) minmax(0,1fr);gap:14px;align-items:start}.folder-tree ul{padding-left:12px}.folder-tree .node-btn{line-height:1.7;word-break:break-word}@media (max-width:900px){.files-layout{grid-template-columns:1fr}.folder-tree.tree-sticky{position:static;max-height:320px}}.route{padding-top:4px}.ms-station{width:232px;cursor:pointer;border-top:4px solid #c6cdd7;transition:box-shadow .15s}.ms-station:hover{border-color:#d2d6da;border-top-color:inherit}.ms-station.done{border-top-color:var(--ok)}.ms-station.late{border-top-color:var(--bad)}.ms-station.current{border-top-color:var(--primary)}.ms-station.bypassed{border-style:dashed;opacity:.7}.ms-station.done .st-id{background:var(--ok)}.ms-station.late .st-id{background:var(--bad)}.ms-station.bypassed .st-id,.ms-station:not(.done):not(.late):not(.current) .st-id{background:#c6cdd7}.ms-station.sel{box-shadow:0 0 0 2px var(--primary),var(--shadow)}.ms-station:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.station .st-date b{color:var(--ink)}.st-resp{font-size:.7rem;color:var(--muted)}.station .acts{display:flex;gap:2px;flex-wrap:wrap;margin-top:auto;padding-top:6px;border-top:1px solid #f0f2f5}.station .acts button{background:none;border:1px solid transparent;border-radius:6px;padding:2px 6px;cursor:pointer;font-size:.78rem;color:var(--ink)}.station .acts button:hover{border-color:var(--line);background:#f6f7fa}.station .pos{color:#be123c;font-weight:700}.station .neg{color:#15803d;font-weight:700}.sc-tags{margin-top:3px;font-weight:400}.route-detail{margin-top:6px;padding:10px 12px 0;border-radius:.75rem;background:#f7f8fb}.route-detail .section-label{margin:0 0 2px}.sub-station{width:292px;cursor:default;border-top:3px solid #c6cdd7}.sub-station .st-code{font-size:.74rem;color:var(--muted)}.sub-station.cur{border-top-color:var(--primary);box-shadow:0 0 0 2px #e91e631f,var(--shadow)}.sub-station.done{border-top-color:var(--ok);background:#fbfdfb}.sub-station.skipped{opacity:.6}.sub-station.added{border-top-color:var(--purple)}.sub-station.pending{border-style:dashed;background:#fffdf5}.sub-station .sf-grid{grid-template-columns:1fr 1fr;margin-top:2px}.sub-station .sf input:not([type=checkbox]),.sub-station .sf select{width:100%;min-width:0;padding:5px 6px;font-size:.78rem}.sub-station .sf .row input[type=date]{width:auto;flex:1}.step-card.inh{border:1px solid var(--line);border-radius:.6rem;padding:8px 12px;background:#f7f8fa;font-size:.76rem;margin-bottom:8px}.sf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 12px;margin-top:8px}.sf{min-width:0}.sf.wide{grid-column:1/-1}.sf>span{display:block;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.sf>div{font-size:.78rem;color:var(--ink)}.sf input[type=number]{width:72px}.flow-map.wrap{flex-wrap:wrap;overflow-x:visible;row-gap:14px}.flow-map.wrap .flow-link{width:22px}@media (max-width:640px){.flow-map.wrap .station{width:100%}.flow-map.wrap .flow-link{display:none}}.seg{display:inline-flex;border:1px solid var(--line);border-radius:.5rem;overflow:hidden;background:#fff}.seg button{border:0;background:none;padding:6px 14px;font-size:.76rem;font-weight:600;color:var(--muted);cursor:pointer}.seg button.on{background:var(--primary);color:#fff}.seg button .seg-n{display:inline-block;min-width:20px;margin-left:7px;padding:1px 6px;border-radius:999px;background:#eef0f4;color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.4;text-align:center;font-variant-numeric:tabular-nums}.seg button.on .seg-n{background:#ffffff3d;color:#fff}.action-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 16px 10px;padding:8px 12px;border-radius:.6rem;background:var(--info-bg);border:1px solid #cfe0f0;font-size:.8rem}.tbl tr.ticked td{background:#f3f8fd}.tbadge{display:inline-flex;gap:6px;margin-left:6px;font-size:.66rem;font-weight:600;color:var(--muted);font-family:var(--sans)}.tbadge .bad,.tree .bad{color:var(--bad)}.tree .tdoc{display:flex;gap:4px;align-items:baseline;min-width:0;font-size:.72rem;line-height:1.6}.tree .tdoc .doc-link{min-width:0;font-size:.72rem;text-align:left;white-space:normal;word-break:break-word}.doc-col{min-width:200px}.doc-tbl{table-layout:fixed}.doc-tbl td{overflow-wrap:anywhere}.doc-tbl .g-btn{display:flex;align-items:center;gap:7px;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.doc-tbl .caret{display:inline-block;width:12px;color:var(--muted);transition:transform .15s;flex:none}.doc-tbl .caret.open{transform:rotate(90deg)}.doc-tbl tr.dt-node td{padding-top:7px;padding-bottom:7px;font-size:.78rem}.doc-tbl tr.dt-folder td{background:#f6f7fa}.doc-tbl tr.dt-file td{background:#eef3fb;border-bottom-color:#dfe7f3}.doc-tbl tr.dt-ms td{background:#fff}.doc-tbl tr.dt-ms .g-name{font-weight:600}.doc-tbl .g-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.doc-tbl .g-meta{font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.doc-tbl .dt-level{flex:none;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:.3rem;padding:1px 5px}.doc-tbl .dt-line{display:flex;gap:8px;align-items:flex-start}.doc-tbl .dt-ico{flex:none;width:16px;text-align:center}.doc-tbl tr.dt-miss td{background:#fff8f7}.doc-tbl tr:hover td{filter:brightness(.985)}.doc-acts{white-space:nowrap}.doc-acts .link-btn+.link-btn{margin-left:12px}.link-btn.danger{color:var(--bad)}.applies{border:1px solid var(--line);border-radius:.6rem;padding:8px 12px;margin-top:10px;background:#fbfcfd}.applies-body{margin:4px 0 6px 24px}.applies-list{max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:.4rem;padding:2px 8px;background:#fff}.applies-list .m-check{margin-top:4px}.boundary-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:8px}.boundary-item{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:.6rem;padding:8px;background:#fff}.boundary-thumb{flex:none;width:120px;height:84px;border-radius:.4rem;background:#eef3ea;display:flex;align-items:center;justify-content:center;color:var(--muted)}.boundary-svg .b-poly{fill:#2e7d3238;stroke:#2e7d32}.boundary-svg .b-line{fill:none;stroke:#0b57d0}.boundary-svg .b-point{fill:#c62828;stroke:#fff;stroke-width:1}.boundary-view{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;justify-content:center;width:100%;height:100%;overflow:auto;padding:16px;background:#fff}.boundary-canvas{flex:1 1 420px;max-width:760px;aspect-ratio:640/420;background:#eef3ea;border-radius:.6rem;border:1px solid var(--line)}.boundary-facts{flex:0 1 260px;display:flex;flex-direction:column;gap:8px;font-size:.82rem}.boundary-facts>div>.sub:first-child{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.geo-map{width:100%;border-radius:.6rem;border:1px solid var(--line);background:#dfe6dc;z-index:0}.boundary-canvas .geo-map{height:100%}.site-map-grid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px;align-items:start}.site-map-legend{max-height:460px;overflow:auto;font-size:.78rem}.site-map-legend .swatch{flex:none;width:12px;height:12px;border-radius:3px;margin-top:3px}@media (max-width:900px){.site-map-grid{grid-template-columns:1fr}}.tbl th.grp{text-align:center;border-bottom:1px solid var(--line);font-size:.62rem;letter-spacing:.06em}.tbl .late{color:var(--bad);font-weight:700}.gantt-lbl .gd{flex:none;width:62px;text-align:right;font-size:.62rem;color:var(--muted);font-variant-numeric:tabular-nums}.gantt-lbl .gd.head{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.56rem}.gantt-lbl .gd.late{color:var(--bad);font-weight:700}.dash-bar{margin-bottom:12px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);background:linear-gradient(100deg,#ab2e6e1a,#fff0 32%,#fff0 68%,#0070b41a),#ffffffb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.dash-bar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 8px}.dash-bar .btn-ghost{background:#ffffffb3;border-color:#34476729}.dash-fbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(52,71,103,.16);background:#ffffffb3;border-radius:.5rem;padding:5px 6px 5px 12px;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}.dash-fbtn .cnt{background:var(--grad);color:#fff;border-radius:99px;padding:0 7px;font-size:.66rem;line-height:1.5}.dash-fbtn .mi{font-size:18px}.dash-fbtn:hover{border-color:#ab2e6e73}.dash-fbtn.on{border-color:#ab2e6e73;background:var(--purple-bg);color:var(--purple)}.dash-chips{flex:1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.fchip{display:inline-flex;align-items:center;gap:4px;padding:2px 3px 2px 10px;border-radius:99px;background:var(--purple-bg);color:var(--purple);font-size:.72rem}.fchip b{font-weight:700}.fchip button{border:0;background:none;color:inherit;font-size:1rem;line-height:1;width:20px;height:20px;border-radius:50%;cursor:pointer}.fchip button:hover{background:#ab2e6e29}.fchip-none{font-size:.74rem;color:var(--muted)}.dash-fpanel{padding:8px;border-top:1px solid rgba(52,71,103,.08)}.dash-fpanel .filters{margin:0}.filters.compact{gap:8px}.filters.compact .field{position:relative;gap:0}.filters.compact .field label{position:absolute;top:5px;left:12px;z-index:1;font-size:.56rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}.filters.compact .field input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.filters.compact .field select:not([multiple]){height:42px;padding-top:16px;padding-bottom:2px;font-size:.82rem;background-color:#ffffffb3;border-color:#34476729;transition:border-color .15s,background-color .15s}.filters.compact .field:hover input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.filters.compact .field:hover select:not([multiple]){border-color:#ab2e6e73}.filters.compact .field.set input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.filters.compact .field.set select:not([multiple]){background-color:var(--purple-bg);border-color:#ab2e6e73;color:var(--purple);font-weight:600}.filters.compact .field.set label{color:var(--purple)}.bo-cap{font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 2px 8px}.kpi-card.compact{--tint:var(--ink);position:relative;overflow:hidden;isolation:isolate;padding:10px 14px;box-shadow:inset 0 3px 0 var(--tint),var(--shadow)}.kpi-card.compact:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 95% at 100% 0%,var(--tint),transparent 62%);opacity:.1}.kpi-card.compact .val{font-size:1.2rem;margin:1px 0 0;line-height:1.25;color:var(--tint)}.bo-band{padding:12px;border-radius:calc(var(--radius) + 4px);border:1px solid rgba(255,255,255,.7);box-shadow:inset 0 1px #fffc;background:radial-gradient(rgba(52,71,103,.09) 1px,transparent 1.3px) 0 0/14px 14px,radial-gradient(55% 100% at 0% 0%,rgba(171,46,110,.22),transparent 70%),radial-gradient(50% 100% at 100% 0%,rgba(0,112,180,.22),transparent 70%),radial-gradient(60% 90% at 55% 110%,rgba(73,163,241,.18),transparent 70%),#e9ecf4}.bo-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.bo-tile{--tint:var(--ink);position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-width:0;padding:10px 14px;color:var(--ink);border-radius:var(--radius);background:#fff9;-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 3px 0 var(--tint),0 10px 24px -14px #34476780}.bo-tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(130% 90% at 0% 0%,var(--tint),transparent 60%);opacity:.12}.bo-tile .lbl{font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.bo-num{align-self:flex-start;margin:1px 0 5px -5px;padding:0 5px;border:0;border-radius:.45rem;background:none;font:inherit;font-size:1.3rem;font-weight:700;line-height:1.3;color:var(--tint);cursor:pointer;transition:background .15s}.bo-num:hover{background:#fffc;text-decoration:underline dotted;text-underline-offset:4px}.bo-top{list-style:none;border-top:1px solid var(--line);padding-top:4px}.bo-top li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 -6px;padding:2px 6px;border-radius:.35rem;font-size:.74rem;transition:background .15s}.bo-top li:hover{background:#34476714}.bo-top .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;text-decoration:none;font-size:.74rem;font-weight:500}.bo-top .ac{flex:none;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.bo-more{align-self:flex-start;display:inline-flex;align-items:center;gap:2px;margin-top:5px;padding:2px 6px 2px 10px;border:1px solid transparent;border-radius:999px;background:var(--purple-bg);color:var(--purple);font-size:.68rem;font-weight:700;line-height:1.4;cursor:pointer}.bo-more .mi{font-size:15px}.bo-more:hover{border-color:var(--purple)}.bo-more.open{background:#fff;border-color:var(--purple)}.bo-none{font-size:.7rem;color:var(--muted)}.bo-tile.accent{background:#ffffffc7;box-shadow:0 10px 24px -14px #34476780}.bo-tile.accent:before{display:none}.bo-tile.accent:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}.bo-tile.accent .bo-num span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.bo-tile,.kpi-card.compact{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}.bo-tile:before,.kpi-card.compact:before{transition:opacity .18s ease}.bo-tile:hover{transform:translateY(-1px);background:#ffffff75;box-shadow:inset 0 3px 0 var(--tint),0 0 0 1px #3447671a,0 14px 26px -14px #34476799}.bo-tile:hover:before{opacity:.26}.bo-tile.accent:hover{background:#fff9;box-shadow:0 0 0 1px #3447671a,0 14px 26px -14px #34476799}.kpi-card.compact:hover{transform:translateY(-1px);background:#f3f5f9;box-shadow:inset 0 3px 0 var(--tint),0 0 0 1px #34476714,0 12px 22px -12px #34476773}.kpi-card.compact:hover:before{opacity:.22}.kpi-card.compact.active{background:#f3f5f9;box-shadow:inset 0 3px 0 var(--tint),0 0 0 2px var(--tint),0 12px 22px -12px #34476773}.kpi-card.compact.active:before{opacity:.22}.dash-card{--tint:var(--ink);box-shadow:inset 0 3px 0 var(--tint),var(--shadow)}.dash-card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.dash-card-head h3{margin:0}.dash-cnt{padding:1px 10px;border-radius:99px;font-size:.72rem;font-weight:700;color:#fff;background:var(--tint)}.dash-card .tbl thead th{background:#f6f7fb}.dash-card .tbl tbody tr:hover td{background:#eef1f7}.xt-count{display:inline-block;margin-left:8px;padding:1px 10px;border-radius:999px;background:var(--purple-bg);color:var(--purple);font-size:.8rem;font-weight:700;vertical-align:2px}.xt-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px}.xt-scroll{max-height:calc(92vh - 230px);overflow:auto;border:1px solid var(--line);border-radius:.5rem}.xt-scroll thead th{position:sticky;top:0;z-index:1}.xt th.num,.xt td.num{text-align:right;font-variant-numeric:tabular-nums}.xt thead th{background:#f8f9fb}.xt td{padding:8px 10px}.xt th:first-child,.xt td:first-child{position:sticky;left:0;z-index:1;background:var(--paper);min-width:150px}.xt thead th:first-child{z-index:2;background:#f8f9fb}.xt .xt-name{font-weight:600;font-size:.8rem;text-align:left}.xt-tw{background:none;border:0;padding:0;margin-right:2px;color:var(--muted);vertical-align:-4px;cursor:pointer}.xt-tw .mi{font-size:18px}.xt td.xt-tot{font-weight:700;background:#fbf7fa}.xt tr.xt-sub td{background:#fafbfc;font-size:.74rem;color:var(--muted)}.xt tr.xt-sub td:first-child{padding-left:38px}.xt tr.xt-total td{font-weight:700;border-top:2px solid var(--line);border-bottom:0;background:#f8f9fb}.xt .xt-nil{color:#c3c7d0}.xt-n{background:none;border:0;padding:2px 6px;margin:-2px -6px;border-radius:.35rem;font:inherit;color:var(--blue);font-weight:600;cursor:pointer}.xt-n:hover{background:var(--info-bg);text-decoration:underline}@media (max-width:1280px){.bo-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.bo-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.dv{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,36%);gap:14px;align-items:start}.dv-list{min-width:0}.dv-quick{display:flex;flex-wrap:wrap;gap:6px}.dv-quick .chip{cursor:pointer;text-transform:none;font-size:.72rem;letter-spacing:0;padding:4px 10px;border-radius:99px}.dv-quick .chip.on{background:var(--magenta);color:#fff}.dv-quick .chip:hover:not(.on){filter:brightness(.96)}.dv-tbl{table-layout:fixed}.dv-tbl td{overflow-wrap:anywhere;vertical-align:middle}.dv-tbl .g-btn{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.dv-tbl .g-btn .t-ico{margin-top:1px}.dv-tbl .caret{display:inline-block;width:12px;color:var(--muted);transition:transform .15s;flex:none;margin-top:2px}.dv-tbl .caret.open{transform:rotate(90deg)}.dv-tbl .g-name{font-weight:700;font-size:.8rem;margin-right:8px}.dv-tbl .g-name.mono{font-size:.76rem}.dv-tbl .g-meta{display:block;font-weight:500;color:var(--muted);font-size:.72rem;margin-top:2px}.dv-tbl tr.dv-group td{background:#f3f5f9;padding-top:8px;padding-bottom:8px}.dv-tbl tr.dv-site td{background:var(--purple-bg)}.dv-tbl tr.dv-folder td{background:#f8f2f6}.dv-tbl tr.dv-doc{cursor:pointer}.dv-tbl tr.dv-doc:hover td{background:#fafbfd}.dv-tbl tr.dv-doc.on td{background:#fdf2f7}.dv-tbl tr.dv-doc.on td:first-child{box-shadow:inset 3px 0 0 var(--magenta)}.dv-tbl tr.dv-miss td{background:#fff8f7}.dv-tbl .sub-in{color:var(--muted);font-size:.74rem}.dv-name{display:flex;gap:10px;align-items:center;background:none;border:0;padding:0 0 0 20px;font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0;width:100%}.dv-name b{display:block;font-weight:600;font-size:.8rem;overflow-wrap:anywhere}.dv-name .sub{display:block;font-size:.7rem}.ftype{flex:none;display:inline-flex;align-items:center;justify-content:center;width:30px;height:34px;border-radius:5px;background:#90a4ae;color:#fff;font-size:.56rem;font-weight:800;letter-spacing:.02em}.ftype.pdf{background:#d32f2f}.ftype.img{background:#2e7d32}.ftype.map{background:#0070b4}.ftype.doc{background:#3f51b5}.ftype.xls{background:#1b5e20}.ftype.zip{background:#6d4c41}.ftype.miss{background:var(--bad-bg);color:var(--bad);font-size:.9rem;border:1px dashed var(--bad)}.dv-pane{position:sticky;top:12px;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 24px)}.dv-pane .doc-pv{flex:none;height:min(52vh,460px);border-radius:0}.dv-pane .doc-pv .viewer-msg{color:#fff;text-align:center}.dv-meta{padding:12px 14px;overflow:auto}.dv-meta h4{margin:0;font-size:.9rem;overflow-wrap:anywhere}.dv-meta dl{display:grid;grid-template-columns:96px 1fr;gap:6px 10px;margin:10px 0 12px;font-size:.78rem}.dv-meta dt{color:var(--muted)}.dv-meta dd{margin:0;min-width:0;overflow-wrap:anywhere}.dv-meta .danger{color:var(--bad)}.dv-empty{padding:48px 18px;text-align:center;color:var(--muted)}.dv-empty .material-icons{font-size:2.4rem;opacity:.5}@media (max-width:1180px){.dv{grid-template-columns:1fr}.dv-pane{position:static;max-height:none}}.applies .opt{display:block;border:1px solid var(--line);border-radius:.6rem;padding:9px 12px;margin-top:8px;cursor:pointer;background:#fff}.applies .opt.on{border-color:var(--magenta);background:#fdf6f9}.applies .opt input{margin-right:6px}.applies .opt .sub{display:block;margin:3px 0 0 22px}.applies .opt+.applies-body{margin-top:8px}.file-facts{font-size:.68rem;color:var(--muted);margin-top:2px;line-height:1.35}.mj{border:1px solid #E4E1F5;border-radius:12px;background:#fff;margin:0 0 14px;overflow:hidden}.mj-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;background:#f6f5fc;color:#3b2f86;font-size:.8rem}.mj-head .material-icons{color:#4b3d9e;font-size:18px}.mj-sp{flex:1 1 auto}.mj-pill{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid #E3E6EC;border-radius:999px;background:#fff;font-size:.72rem;font-weight:600;color:var(--ink);text-decoration:none}.mj-pill:hover{border-color:#8d82d6}.mj-grid,.mj-list{width:100%;border-collapse:collapse;font-size:.78rem}.mj-grid th,.mj-list th{background:#f8f9fb;text-align:left;font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid #E3E6EC;white-space:nowrap}.mj-grid td,.mj-list td{padding:8px 10px;border-bottom:1px solid #EEF0F4;vertical-align:top}.mj-grid td:nth-child(n+3),.mj-grid th:nth-child(n+3){border-left:1px solid #F1F2F6;min-width:140px}.mj-grid tr.m td,.mj-list tr.m td{font-weight:700;background:#fafafc}.mj-grid .hl{background:#fdf2f7}.mj-vh{display:block;border:0;background:none;padding:0;text-align:left;cursor:pointer;color:var(--ink);text-transform:none;letter-spacing:0}.mj-vh b{display:block;font-size:.76rem}.mj-vh span{display:block;font-size:.66rem;font-weight:500;color:var(--muted)}.mj-tick{display:inline-block;width:15px;height:15px;border-radius:50%;background:#3a3d77;color:#fff;font-size:9px;line-height:15px;text-align:center;margin-right:5px}.mj-tick.last{background:#c46a00}.mj-last{color:#9a4a00;font-weight:600}.mj-sub{font-size:.66rem;color:var(--muted);margin-top:2px}.mj-join{display:flex;align-items:center;gap:8px;padding:9px 14px;background:#eeebfb;color:#3b2f86;font-size:.78rem;font-weight:700}.mj-join .material-icons{font-size:18px}.mj-list tr.cur td{background:#fdf6f9}.mj-st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.66rem;font-weight:700;white-space:nowrap}.mj-st.done{background:#e9eaf4;color:#3a3d77}.mj-st.prog{background:#e6effb;color:#1d4e89}.mj-st.open{background:#f1f2f6;color:#5a6478}.mj-st.skip{background:#f1f2f6;color:#7b809a}
