:root{--navy:#0a1f36;--navy-2:#162f4d;--navy-soft:#eaf0f7;--primary:#0a1f36;--primary-bright:#1d4ed8;--primary-dark:#071526;--primary-soft:#eaf0f7;--brand:#f05528;--brand-soft:#fff3ee;--accent:#f05528;--accent-orange:#f05528;--hero:linear-gradient(135deg, #071526 0%, #0a1f36 50%, #162f4d 100%);--text:#0f172a;--text-2:#334155;--muted:#64748b;--faint:#94a3b8;--bg:#f4f6f9;--surface:#fff;--surface-2:#f8fafc;--border:#e2e8f0;--skeleton:#e2e8f0;--skeleton-highlight:#f8fafc;--success:#15803d;--success-soft:#f0fdf4;--warning:#b45309;--warning-soft:#fffbeb;--danger:#dc2626;--danger-soft:#fef2f2;--info:#0369a1;--info-soft:#f0f9ff;--ai:#6366f1;--ai-soft:#eef2ff;--grad-brand:linear-gradient(135deg, #0a1f36 0%, #162f4d 100%);--grad-ok:linear-gradient(135deg, #10b981 0%, #059669 100%);--grad-warn:linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--grad-bad:linear-gradient(135deg, #ef4444 0%, #dc2626 100%);--grad-info:linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);--grad-mute:linear-gradient(135deg, #94a3b8 0%, #64748b 100%);--grad-ai:linear-gradient(135deg, #818cf8 0%, #6366f1 100%);--grad-cyan:linear-gradient(135deg, #22d3ee 0%, #0891b2 100%);--radius-button:8px;--radius-card:12px;--radius-dialog:16px;--radius-sheet:20px;--radius-full:999px;--shadow-card:0 1px 3px #0f172a0d, 0 4px 12px -2px #0f172a0a;--shadow-floating:0 10px 25px -3px #0f172a1f;--card:var(--surface);--line:var(--border);--line-2:#edf2f7;--red:var(--danger);--red-soft:var(--danger-soft);--grey:var(--faint);--ok:var(--success);--ok-soft:var(--success-soft);--warn:var(--warning);--warn-soft:var(--warning-soft);--radius:var(--radius-card);--ink:#0a1f36;--side-bg:#0a1f36;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e8eef6;--side-bg:#070e19;--navy:#1f3a5f;--navy-2:#2a4b75;--navy-soft:#1a2a42;--primary:#1f3a5f;--primary-dark:#e8eef6;--primary-soft:#1a2a42;--brand-soft:#f0552824;--text:#e2e8f0;--text-2:#c3cfdd;--muted:#8b9cb3;--faint:#63758d;--bg:#0b1220;--surface:#121b2b;--surface-2:#182336;--border:#25334a;--line-2:#1d2a3f;--skeleton:#1d2a3f;--skeleton-highlight:#25334a;--success:#4ade80;--success-soft:#4ade801f;--warning:#fbbf24;--warning-soft:#fbbf241f;--danger:#f87171;--danger-soft:#f871711f;--info:#38bdf8;--info-soft:#38bdf81f;--ai:#a5b4fc;--ai-soft:#a5b4fc1f;--shadow-card:0 1px 2px #0006;--shadow-floating:0 12px 28px #00000080}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,h4,p,ol,ul,dl{margin:0}h1{letter-spacing:-.3px;color:var(--ink);font-size:24px;font-weight:800;line-height:1.25}h2{letter-spacing:-.2px;color:var(--ink);font-size:20px;font-weight:800;line-height:1.3}h3{color:var(--ink);font-size:15.5px;font-weight:700;line-height:1.35}h4{color:var(--ink);font-size:14px;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}table{border-collapse:collapse;width:100%}a{color:inherit;text-decoration:none}.grow{flex:1;min-width:0}.small{font-size:12px}.nowrap,.row.nowrap{flex-wrap:nowrap}@keyframes tecon-enter{0%{opacity:0}to{opacity:1}}.page-enter{animation:.2s ease-out tecon-enter}@media (prefers-reduced-motion:reduce){.page-enter{animation:none}}.skeleton{background:linear-gradient(90deg, var(--skeleton) 30%, var(--skeleton-highlight) 50%, var(--skeleton) 70%);background-size:300% 100%;border-radius:8px;animation:1.3s linear infinite tecon-shimmer}@keyframes tecon-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.hero-card{background:var(--hero);border-radius:var(--radius-card);color:#fff;margin-bottom:20px;padding:20px;box-shadow:0 8px 18px #0b7f3f47}.hero-card-head{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.hero-card-avatar{border:2px solid #fff;border-radius:50%;display:inline-flex}.hero-card-eyebrow{letter-spacing:.6px;text-transform:uppercase;color:#ffffffbf;margin-bottom:4px;font-size:11px;font-weight:700}.hero-card h2{color:#fff;margin:0;font-size:24px;font-weight:800;line-height:1.25}.hero-card-desc{color:#ffffffd9;margin-top:4px;font-size:14px;line-height:1.45}.hero-card-right{align-items:center;gap:8px;display:flex}.count-badge{border-radius:var(--radius-full);background:var(--accent);color:#fff;border:2px solid #fff;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:10px;font-weight:800;display:inline-flex}.app{flex-direction:column;min-height:100vh;display:flex}.hdr{z-index:40;background:var(--bg);border-bottom:1px solid var(--border);height:56px;color:var(--ink);align-items:center;gap:14px;padding:0 20px;display:flex;position:sticky;top:0}.hdr-mega{border:1px solid var(--border);border-radius:var(--radius-button);background:var(--surface);height:36px;color:var(--ink);cursor:pointer;align-items:center;gap:8px;padding:0 14px;font-weight:700;display:inline-flex;box-shadow:0 2px 4px #0b3b2a0a}.hdr-mega:hover,.hdr-mega.on{background:var(--surface-2);border-color:var(--primary);color:var(--ink)}.hdr-logo img{height:40px;display:block}.hdr-mod{border-left:1px solid var(--border);color:var(--ink);align-items:center;gap:8px;padding-left:14px;font-size:15.5px;font-weight:700;display:inline-flex}.hdr-btn{border-radius:var(--radius-button);height:36px;color:var(--ink);align-items:center;gap:8px;padding:0 14px;font-size:13.5px;font-weight:700;display:inline-flex}.hdr-btn:hover{background:var(--surface-2);color:var(--ink)}.hdr-btn b{background:var(--accent);color:#fff;border-radius:var(--radius-full);border:2px solid #fff;padding:2px 7px;font-size:10.5px;font-weight:800}.hdr-btn.has{color:var(--ink)}.hdr-icon{border-radius:var(--radius-button);width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.hdr-icon:hover{background:var(--surface-2);color:var(--ink)}.hdr-user{border-left:1px solid var(--border);align-items:center;gap:10px;padding-left:14px;display:flex}.hdr .who span{color:var(--muted)}.who{flex-direction:column;line-height:1.25;display:flex}.who b{color:var(--ink);font-size:13px;font-weight:700}.who span{color:var(--muted);font-size:12px}.mega-group{padding:12px 14px 0}.mega-group:last-child{padding-bottom:14px}.mega-label{color:var(--ink);align-items:center;gap:8px;margin-bottom:4px;font-size:13.5px;font-weight:700;display:flex}.mega-label svg{color:var(--ink)}.mega-link{border-left:1px solid var(--border);color:var(--text-2);margin-left:7px;padding:6px 0 6px 15px;font-weight:500;display:block}.mega-link:hover{color:var(--ink);border-left-color:var(--primary)}.mega-link.on{color:var(--ink);border-left:3px solid var(--primary);padding-left:13px;font-weight:700}.body{flex:1;min-height:0;display:flex}.side{background:var(--surface);width:244px;height:calc(100vh - 56px);color:var(--text);border-right:1px solid var(--border);flex-direction:column;flex:none;padding:16px 12px;display:flex;position:sticky;top:56px;overflow-y:auto;box-shadow:1px 0 3px #0b3b2a05}.side-group+.side-group{margin-top:10px}.side-label{width:100%;color:var(--ink);border-radius:var(--radius-button);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;font-weight:700;display:flex}.side-label:hover{background:var(--surface-2)}.side-label svg:first-child{color:var(--ink)}.side-chev{color:var(--muted);transition:transform .15s}.side-group.shut .side-chev{transform:rotate(-90deg)}.side-item{color:var(--text-2);border-radius:0 var(--radius-button) var(--radius-button) 0;border-left:2px solid #0000;align-items:center;gap:8px;margin-left:14px;padding:7px 12px 7px 16px;font-size:13.5px;font-weight:500;display:flex;position:relative}.side-item:hover{color:var(--ink);background:var(--surface-2)}.side-item.on{color:var(--ink);background:var(--primary-soft);border-left:3px solid var(--primary);padding-left:15px;font-weight:700}.side-badge{background:var(--accent);color:#fff;border-radius:var(--radius-full);padding:1px 6px;font-size:10.5px;font-weight:800}.side-reset{color:var(--muted);cursor:pointer;border:0;border-top:1px solid var(--border);background:0 0;align-items:center;gap:8px;margin-top:auto;padding:12px 10px 4px;font-size:12.5px;display:flex}.side-reset:hover{color:var(--ink)}.content{flex:1;min-width:0;padding:24px 32px 56px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.3px;color:var(--ink);font-size:24px;font-weight:800;line-height:1.25}.page-head p{max-width:820px;color:var(--text-2);margin-top:6px}.eyebrow{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px;font-weight:700}.muted{color:var(--muted);font-size:13.5px;line-height:1.5}.back{color:var(--muted);align-items:center;gap:4px;margin-bottom:10px;font-size:13px;display:inline-flex}.back:hover{color:var(--ink)}.picker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.picker .select{max-width:380px}.project-head{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;flex-wrap:wrap;align-items:center;gap:24px;padding:18px 22px;display:flex}.project-head h1{margin:6px 0;font-size:22px;font-weight:600}.head-kpis{flex-wrap:wrap;align-items:center;gap:26px;display:flex}.head-kpis>div:not(.team){flex-direction:column;gap:3px;display:flex}.head-kpis span{color:var(--muted);font-size:12px}.head-kpis b{font-size:18px;font-weight:600}.head-kpis small{color:var(--muted);font-size:12.5px;font-weight:400}.team{gap:3px;display:flex}.team .avatar{border:2px solid #fff}.tabbar{background:var(--surface);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);border-top:0;gap:2px;margin-bottom:18px;padding:0 12px;display:flex;overflow-x:auto}.tabbar a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:11px 12px;display:flex}.tabbar a:hover{color:var(--text)}.tabbar a.on{color:var(--ink);border-bottom-color:var(--navy);font-weight:600}.count{background:var(--line-2);color:var(--muted);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.tabbar a.on .count{background:var(--navy);color:#fff}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.span2{grid-column:span 2}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.end{justify-content:flex-end}.scroll-x{overflow-x:auto}.card{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:0;min-width:0;padding:20px}.card.clickable{cursor:pointer;transition:box-shadow .2s,transform .2s}.card.clickable:hover{box-shadow:var(--shadow-floating)}.card.nopad{padding:0;overflow:hidden}.card.nopad>.card-head{margin:0;padding:16px 20px 8px}.card.nopad>.list{padding:0 20px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-head h3{color:var(--ink);font-size:15.5px;font-weight:700;line-height:1.35}.setup{border-color:var(--border)}.stat{border-radius:var(--radius-card);color:var(--text);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);flex-direction:column;min-width:0;padding:16px 18px;display:flex}.stat-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.stat-icon-bubble{background:var(--surface-2);width:28px;height:28px;color:var(--ink);border-radius:50%;flex:none;place-items:center;display:grid}.stat-label{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:700}.stat-value{letter-spacing:-.3px;white-space:nowrap;color:var(--text);font-variant-numeric:tabular-nums;margin-top:2px;font-size:24px;font-weight:800;line-height:1.15}.stat-sub{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.4}.stat.ok{border-top:3px solid var(--success)}.stat.ok .stat-value{color:var(--success)}.stat.warn{border-top:3px solid var(--warning)}.stat.warn .stat-value{color:var(--warning)}.stat.bad{border-top:3px solid var(--danger)}.stat.bad .stat-value{color:var(--danger)}.stat.info{border-top:3px solid var(--info)}.stat.info .stat-value{color:var(--info)}.stat.mute{border-top:3px solid var(--muted)}.stat.ai{border-top:3px solid var(--ai)}.badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.badge.brand{background:var(--primary-soft);color:var(--ink)}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.bad{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.mute{background:var(--surface-2);color:var(--muted)}.badge.ai{background:var(--ai-soft);color:var(--ai)}.ok-text{color:var(--success);font-weight:600}.bad-text{color:var(--danger);font-weight:600}.warn-text{color:var(--warning);font-weight:600}.btn{border-radius:var(--radius-button);border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;height:44px;color:var(--ink);justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:700;transition:background .15s,box-shadow .15s,border-color .15s;display:inline-flex;overflow:hidden}.btn:hover{background:var(--surface-2)}.btn.primary,.btn.navy{background:var(--primary);color:#fff;border-color:#0000;box-shadow:0 4px 10px #0b7f3f4d}.btn.primary:hover,.btn.navy:hover{background:var(--navy-2);border-color:#0000}.btn.danger{background:var(--danger);color:#fff;border-color:#0000;box-shadow:0 4px 10px #dc26264d}.btn.ghost{color:var(--ink);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--primary-soft)}.btn.ai{background:var(--surface);border-color:var(--border);color:var(--ai)}.btn.ai:hover{background:var(--ai-soft)}.btn.sm{height:36px;padding:0 12px;font-size:13px}.btn.lg{height:50px;padding:0 20px;font-size:15px}.btn:disabled{opacity:.5;box-shadow:none;cursor:default}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.icon-btn{border-radius:var(--radius-button);cursor:pointer;color:var(--muted);background:0 0;border:0;place-items:center;padding:8px;transition:background .15s,color .15s;display:grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.subtabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;display:inline-flex}.subtabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;font-size:13.5px;font-weight:500;transition:color .15s;display:flex}.subtabs button:hover{color:var(--ink)}.subtabs button.on{color:var(--ink);border-bottom-color:var(--primary);font-weight:700}.subtabs button.on .count{background:var(--primary);color:#fff;border-radius:var(--radius-full);padding:1px 7px;font-size:11px}.ai-note{background:var(--ai-soft);border-left:3px solid var(--ai);color:var(--text);border-radius:6px;align-items:flex-start;gap:10px;padding:11px 14px;font-size:13.5px;line-height:1.6;display:flex}.ai-note svg{color:var(--ai);flex:none;margin-top:3px}.reveal{animation:.35s ease-out reveal}@keyframes reveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.tbl th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap;padding:9px 10px;font-size:12px;font-weight:500}.card:not(.nopad) .tbl th{background:0 0}.tbl td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:10px;font-size:13.5px}.tbl b{font-weight:600}.tbl.pad th:first-child,.tbl.pad td:first-child{padding-left:20px}.tbl.pad th:last-child,.tbl.pad td:last-child{padding-right:20px}.tbl.compact td{padding:6px 8px}.tbl tr.group td{background:var(--surface-2);font-size:12.5px;font-weight:600}.tbl tr.hl td{background:var(--warning-soft)}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-2)}.tbl .r{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.tbl .c{text-align:center}.tbl tfoot td{border-top:1px solid var(--line);border-bottom:0;font-weight:600}.tbl.att td.c{color:var(--grey);font-variant-numeric:tabular-nums}.tbl.att td.on{color:var(--ink);background:var(--surface-2);font-weight:600}.matrix td.c,.matrix th.c{text-align:center}.matrix th.c{white-space:normal;min-width:92px;line-height:1.3}.matrix td:first-child{min-width:240px}.matrix input{cursor:pointer;width:16px;height:16px;accent-color:var(--navy)}.progress{background:var(--line-2);border-radius:3px;flex:1;min-width:40px;height:6px;overflow:hidden}.progress.thin{height:5px}.progress-bar{background:var(--navy);border-radius:3px;height:100%;transition:width .4s}.progress-bar.ok{background:var(--ok)}.progress-bar.bad{background:var(--red)}.progress-bar.warn{background:#c98a1b}.field{color:var(--text-2);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field input,.field select,.field textarea,.input,.search,.select{border:1px solid var(--border);border-radius:var(--radius-button);background:var(--surface);height:44px;color:var(--text);padding:0 16px;font-size:14px;transition:border-color .15s,box-shadow .15s}.input.lg{height:50px}.field textarea,textarea.input{height:auto;padding:12px 16px}.field input:focus,.field select:focus,.field textarea:focus,.input:focus,.search:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 1.5px var(--primary);outline:none}.field input:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}.input.num{text-align:right;font-variant-numeric:tabular-nums;width:100px}.search{width:280px;max-width:100%}.seg{background:0 0;gap:6px;display:inline-flex}.seg button{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:var(--radius-button);cursor:pointer;height:36px;padding:0 14px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.seg button:hover{background:var(--surface-2)}.seg button.on{background:var(--primary-soft);color:var(--ink);border-color:var(--primary)}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:13.5px;display:flex}.list-item:last-child{border-bottom:0}.list-item .sub{color:var(--muted);margin-top:2px;font-size:12px}.list-item.link:hover{color:var(--ink)}.btnlike{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;width:100%;padding:12px 16px}.btnlike:hover{background:var(--surface-2)}.btnlike.sel{background:var(--primary-soft)}.card:not(.nopad) .btnlike{padding-left:0;padding-right:0}.ico{color:#fff;background:var(--grad-brand);border-radius:14px;flex:none;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 3px 8px #0b8a434d}.ico.sm{border-radius:11px;width:34px;height:34px}.ico.brand{background:var(--grad-brand);box-shadow:0 3px 8px #0b8a434d}.ico.ok{background:var(--grad-ok);box-shadow:0 3px 8px #14b57d4d}.ico.warn{background:var(--grad-warn);box-shadow:0 3px 8px #f08a244d}.ico.bad{background:var(--grad-bad);box-shadow:0 3px 8px #e11d2a4d}.ico.info{background:var(--grad-info);box-shadow:0 3px 8px #1a548b4d}.ico.mute{background:var(--grad-mute);box-shadow:0 3px 8px #64748b4d}.ico.ai{background:var(--grad-ai);box-shadow:0 3px 8px #7a5af04d}.ico.cyan{background:var(--grad-cyan);box-shadow:0 3px 8px #23a7de4d}.plain:hover b{color:var(--ink)}.timeline{flex-direction:column;gap:12px;display:flex}.tl-item{grid-template-columns:48px 1fr auto;gap:10px;font-size:13px;line-height:1.45;display:grid}.tl-date{color:var(--muted);padding-top:1px;font-size:12px}.callout{border-radius:var(--radius-card);color:var(--text-2);border:0;align-items:flex-start;gap:12px;padding:14px 16px;font-size:13px;line-height:1.45;display:flex}.callout-bullet{color:#fff;background:var(--info);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:13px;font-weight:800;display:grid}.callout-title{color:var(--ink);margin-bottom:2px;font-size:14px;font-weight:600}.callout.info{background:var(--info-soft)}.callout.info .callout-bullet{background:var(--info)}.callout.warn{background:var(--warning-soft);color:var(--warning)}.callout.warn .callout-bullet{background:var(--warning)}.callout.bad{background:var(--danger-soft);color:var(--danger)}.callout.bad .callout-bullet{background:var(--danger)}.callout.ok{background:var(--success-soft);color:var(--success)}.callout.ok .callout-bullet{background:var(--success)}.empty{text-align:center;color:var(--muted);padding:36px 20px;font-size:13.5px}.avatar{color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.avatar.h0{background:var(--grad-brand)}.avatar.h1{background:var(--grad-warn)}.avatar.h2{background:var(--grad-info)}.avatar.h3{background:var(--grad-bad)}.avatar.h4{background:var(--grad-cyan)}.avatar.h5{background:var(--grad-ai)}.person{align-items:center;gap:8px;font-weight:500;display:inline-flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;color:var(--text);border-radius:6px;padding:6px 11px;font-size:13px}.chip:hover,.chip.on{border-color:var(--border);background:var(--navy-soft);color:var(--ink)}.tag{background:var(--line-2);border-radius:4px;padding:3px 8px;font-size:12.5px}.ul{padding-left:18px;font-size:13.5px;line-height:1.7}.sec{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px;font-size:11px;font-weight:600}.kv{grid-template-columns:150px 1fr;gap:8px 12px;font-size:13.5px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500}.quote{color:var(--muted);font-size:13.5px;font-style:italic;line-height:1.6}.legend{color:var(--muted);gap:14px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:2px;width:10px;height:10px;display:inline-block}.steps{display:flex}.step{flex:1;padding:10px 10px 4px 0;position:relative}.step-dot{background:var(--line-2);width:26px;height:26px;color:var(--muted);z-index:1;border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid;position:relative}.step.done .step-dot{background:var(--ok);color:#fff}.step.current .step-dot{background:var(--navy);color:#fff;box-shadow:0 0 0 4px var(--navy-soft)}.step:before{content:"";background:var(--line-2);height:2px;position:absolute;top:22px;left:26px;right:0}.step.done:before{background:var(--ok)}.step:last-child:before{display:none}.step b{margin-top:8px;font-size:12.5px;font-weight:500;display:block}.steps.small .step b{font-size:12px}.chain{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);padding:12px 14px}.chain-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600}.chain-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.chain-sep{color:var(--grey);flex:none}.chain-node{border:1px solid var(--line);background:var(--surface);border-radius:6px;flex-direction:column;min-width:0;padding:5px 9px;display:flex}.chain-node span{color:var(--muted);font-size:10.5px}.chain-node b{white-space:nowrap;text-overflow:ellipsis;max-width:190px;font-size:12px;font-weight:600;overflow:hidden}a.chain-node:hover,.chain-node.done{border-color:var(--border)}.chain-node.done b{color:var(--ok)}.chain-node.now{border-color:var(--navy);background:var(--navy-soft)}.chain-node.now b{color:var(--ink)}.chain-node.bad{border-color:var(--border);background:var(--red-soft)}.chain-node.bad b{color:var(--red)}.chain-node.todo{border-style:dashed}.chain-node.todo b{color:var(--muted);font-weight:500}.gt{padding:0 0 14px;font-size:13px}.gt-head,.gt-row{grid-template-columns:300px 1fr;display:grid}.gt-head{border-bottom:1px solid var(--line);color:var(--muted);height:32px;font-size:12px}.gt-left{align-items:center;gap:6px;min-width:0;padding:8px 12px 8px 20px;display:flex}.gt-right{margin-right:20px;position:relative}.gt-head .gt-right span{border-left:1px solid var(--line);white-space:nowrap;height:100%;padding:8px 0 0 4px;position:absolute;top:0}.gt-body{margin-top:22px;position:relative}.gt-row{border-bottom:1px solid var(--line-2);min-height:34px}.gt-row.stage{background:var(--surface-2);cursor:pointer;font-weight:600}.gt-row.click{cursor:pointer}.gt-row.click:hover .gt-left{color:var(--info)}.gt-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.gt-crew{color:var(--muted);white-space:nowrap;font-size:11.5px}.gt-summary{background:#9aa6b6;border-radius:3px;height:6px;position:absolute;top:14px}.gt-base{background:var(--border);border-radius:2px;height:4px;position:absolute;top:24px}.gt-bar{background:var(--border);border-radius:4px;height:14px;position:absolute;top:7px;overflow:hidden}.gt-bar i{background:var(--navy-2);position:absolute;inset:0 auto 0 0}.gt-bar.done i{background:var(--ok)}.gt-bar.late i{background:var(--red)}.gt-bar.late{background:var(--danger-soft)}.gt-flag{color:var(--red);font-size:11px;font-weight:600;position:absolute;top:7px}.gt-today{background:var(--red);z-index:2;pointer-events:none;width:1px;position:absolute;top:-22px;bottom:0}.gt-today span{color:var(--red);white-space:nowrap;font-size:11px;font-weight:600;position:absolute;top:0;left:5px}.gt-legend{color:var(--muted);flex-wrap:wrap;gap:18px;padding:12px 20px 0;font-size:12px;display:flex}.lg{vertical-align:middle;border-radius:3px;width:18px;height:6px;margin-right:4px;display:inline-block}.lg.base{background:var(--border);height:4px}.lg.act{background:var(--navy-2)}.lg.late{background:var(--red)}.lg.today{background:var(--red);width:1px;height:12px}.lg.budget{background:var(--border)}.lg.fc{background:var(--navy-2)}.mini-gantt{background:var(--line-2);border-radius:4px;height:8px;position:relative}.mini-gantt i{background:var(--navy-2);border-radius:4px;position:absolute;top:0;bottom:0}.bars{flex-direction:column;gap:3px;display:flex}.bars i{border-radius:3px;height:6px;display:block}.b-budget{background:var(--border)}.b-fc{background:var(--navy-2)}.b-fc.over{background:var(--red)}.cf-chart{width:100%;height:220px;display:block}.cf-chart rect:hover{opacity:.85}.cf-axis{color:var(--muted);text-align:center;grid-template-columns:repeat(12,1fr);margin-top:4px;font-size:11px;display:grid}.kanban{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px;display:grid}.kanban.five{grid-template-columns:repeat(5,minmax(0,1fr))}.kcol{background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--radius);flex-direction:column;gap:8px;min-height:200px;padding:10px;display:flex}.kcol-head{align-items:center;gap:6px;padding:2px 4px 6px;font-size:13px;font-weight:600;display:flex}.kcard{background:var(--surface);border:1px solid var(--line);text-align:left;cursor:pointer;border-radius:6px;flex-direction:column;gap:7px;padding:11px;font-size:13px;line-height:1.4;display:flex}.kcard:hover{border-color:var(--border)}.kcard-task{color:var(--info);background:var(--info-soft);border-radius:4px;align-self:flex-start;padding:2px 7px;font-size:12px}.overlay{z-index:50;background:#0f3a2a47;justify-content:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.overlay.center{z-index:55;justify-content:center;align-items:center;padding:20px}@keyframes fade{0%{opacity:0}}.drawer{background:var(--surface);border-top-left-radius:var(--radius-sheet);border-bottom-left-radius:var(--radius-sheet);flex-direction:column;width:620px;max-width:100%;height:100%;animation:.25s cubic-bezier(.33,1,.68,1) slide;display:flex;box-shadow:-10px 0 36px #0284c726}@keyframes slide{0%{opacity:.4;transform:translate(40px)}}.modal{background:var(--surface);border-radius:var(--radius-dialog);width:640px;max-width:100%;max-height:90vh;box-shadow:var(--shadow-floating);flex-direction:column;animation:.24s cubic-bezier(.33,1,.68,1) tecon-enter;display:flex;overflow:hidden}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px;display:flex}.drawer-head h2{letter-spacing:-.2px;color:var(--ink);font-size:20px;font-weight:800;line-height:1.3}.drawer-body{flex:1;padding:20px 24px;overflow-y:auto}.drawer-foot{border-top:1px solid var(--border);padding:16px 24px}.check{cursor:pointer;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;display:flex}.strike{color:var(--muted);text-decoration:line-through}.comment{gap:10px;padding:8px 0;font-size:13.5px;display:flex}.comment p{margin-top:2px}.crit{border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:7px 0;font-size:13.5px;display:flex}.crit-empty{border:2px solid var(--grey);border-radius:50%;flex:none;width:18px;height:18px}.crit-list{padding:0 20px 14px 58px;font-size:13.5px;line-height:1.8}.choice{border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:11px 14px;display:flex}.choice.on{border-color:var(--navy);background:var(--navy-soft)}.wizard{max-width:1100px}.cal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-h{text-align:center;color:var(--muted);padding:4px 0;font-size:11px}.cal-d{aspect-ratio:1;background:var(--surface-2);cursor:pointer;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:13px;display:flex}.cal-d.has{background:var(--surface);border-color:var(--line);font-weight:600}.cal-d.today{border-color:var(--navy)}.cal-d.sel{background:var(--navy);color:#fff;border-color:var(--navy)}.dot{background:var(--ok);border-radius:50%;width:5px;height:5px}.dot.bad{background:var(--red)}.dot.warn{background:var(--warn)}.cal-d.miss{background:var(--surface);border:1px dashed var(--warn);color:var(--warn)}.cal-d.sel .dot{background:var(--surface)}.pipeline{flex-wrap:wrap;gap:16px;font-size:13.5px;display:flex}.pipeline span{align-items:center;gap:6px;display:flex}.chat{flex-direction:column;gap:14px;display:flex}.msg{gap:10px;max-width:80%;font-size:13.5px;line-height:1.5;display:flex}.msg>div{background:var(--surface-2);border:1px solid var(--line-2);border-radius:8px;padding:9px 12px}.msg.staff{flex-direction:row-reverse;align-self:flex-end}.msg.staff>div{background:var(--navy-soft);border-color:var(--border)}.msg-head{margin-bottom:2px;font-size:12px}.photo{aspect-ratio:4/3;background-color:#d3cdc2;background-image:linear-gradient(90deg,#ffffff80 2px,#0000 2px),linear-gradient(#ffffff80 2px,#0000 2px);background-size:46px 46px;border-radius:6px;align-items:flex-end;display:flex;position:relative;overflow:hidden}.photo.v1{background-color:#bfb8ac;background-size:34px 34px}.photo.v2{background-color:#dcd6cb;background-size:58px 58px}.photo span{color:#fff;background:#0f3a2abf;border-radius:4px;margin:8px;padding:2px 8px;font-size:12px}.photo.flagged{outline:2px solid var(--red);outline-offset:-2px}.photo.flagged:after{content:"";border:2px dashed var(--red);border-radius:50%;width:44px;height:44px;position:absolute;top:22%;left:58%}.photo-empty{aspect-ratio:4/3;border:1px dashed var(--grey);color:var(--muted);text-align:center;border-radius:6px;place-items:center;padding:8px;font-size:13px;display:grid}.check-row{border-bottom:1px solid var(--line-2);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.check-row:last-child{border-bottom:0}.pf{gap:6px;display:inline-flex}.pf button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12.5px;font-weight:500}.pf button.pass.on{background:var(--ok);border-color:var(--ok);color:#fff}.pf button.fail.on{background:var(--red);border-color:var(--red);color:#fff}.mic{background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:60px;height:60px;display:grid}.mic.rec{background:var(--red);animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #b4231866}50%{box-shadow:0 0 0 12px #b4231800}}.wave{align-items:center;gap:3px;height:32px;display:flex}.wave i{background:var(--navy-2);border-radius:2px;width:3px;animation:.9s ease-in-out infinite wave}@keyframes wave{0%,to{height:6px}50%{height:26px}}.stepper{align-items:center;gap:14px;display:flex}.stepper button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;place-items:center;width:34px;height:34px;display:grid}.stepper b{text-align:center;min-width:20px;font-size:17px}.login{grid-template-columns:minmax(320px,440px) 1fr;min-height:100vh;display:grid}.login-brand{background:var(--hero);color:#fff;flex-direction:column;justify-content:space-between;gap:40px;padding:48px 40px;display:flex;box-shadow:4px 0 24px #0284c726}.login-brand img{background:var(--surface);border-radius:var(--radius-button);width:170px;padding:12px 18px;box-shadow:0 4px 14px #0284c726}.login-brand h1{letter-spacing:-.3px;font-size:28px;font-weight:800;line-height:1.25}.login-brand p{color:#ffffffd9;margin-top:14px;font-size:15px;line-height:1.6}.login-brand>span{color:#fff9;font-size:12px}.login-main{flex-direction:column;justify-content:center;gap:36px;max-width:920px;padding:56px 48px;display:flex}.login-form{background:var(--surface);border-radius:var(--radius-card);max-width:380px;box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:32px;display:flex}.login-form h2{color:var(--ink);letter-spacing:-.3px;margin-bottom:6px;font-size:24px;font-weight:800}.login-form .btn{height:46px;margin-top:4px;font-size:15px}.login-accounts{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.login-acc{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-button);cursor:pointer;align-items:center;gap:10px;padding:12px 14px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.login-acc:hover{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--shadow-card)}.login-acc>span:last-child{flex-direction:column;min-width:0;display:flex}.login-acc b{color:var(--ink);font-size:13.5px;font-weight:700}.login-acc small{color:var(--muted);font-size:12px}.portal{background:var(--bg);min-height:100vh}.portal-bar{z-index:30;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:10px 24px;display:flex;position:sticky;top:0}.portal-bar img{width:110px}@media (max-width:1180px){.g4,.g3,.kanban,.kanban.five{grid-template-columns:repeat(2,minmax(0,1fr))}.who,.hdr-mod{display:none}}@media (max-width:860px){.hdr-btn .lbl{display:none}.hdr-btn{padding:0 8px}.hdr{gap:8px;padding:0 12px}.hdr-mega span,.hdr-btn{gap:0;font-size:0}.hdr-btn b{margin-left:4px;font-size:11px}.hdr-user{padding-left:8px}.side{display:none}.g2,.g3,.g4,.kanban,.kanban.five{grid-template-columns:minmax(0,1fr)}.span2{grid-column:auto}.content{padding:16px 16px 40px}.card{overflow-x:auto}.tbl{min-width:620px}.gt{min-width:760px}.drawer{width:100%}.login{grid-template-columns:1fr}.login-brand{gap:16px;padding:24px 16px}.login-main{padding:24px 16px}}.hero{background:var(--navy);color:#fff;border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;padding:24px 28px;display:flex}.hero-date{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:12px;font-weight:600}.hero-hi{color:#cbd5e1;margin-top:8px;font-size:14px}.hero h1{letter-spacing:-.01em;margin:4px 0 10px;font-size:26px;font-weight:800;color:#fff!important}.hero-role{color:#fff;background:#ffffff26;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.hero-stats{background:#00000040;border:1px solid #ffffff26;border-radius:8px;grid-template-columns:repeat(4,minmax(130px,auto));display:grid}.hero-stats>div{border-left:1px solid #ffffff24;padding:12px 18px}.hero-stats>div:first-child{border-left:0}.hero-stats b{color:#fff;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800;display:block}.hero-stats b.hot{color:#ffb4a8}.hero-stats span{color:var(--faint);margin-top:2px;font-size:12px;display:block}.home-title{color:var(--ink);margin:0 0 10px;font-size:16px;font-weight:600}.quick{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px;display:grid}.quick-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;padding:12px 14px;display:flex}.quick-tile:hover{border-color:var(--navy-2)}.quick-tile b{color:var(--ink);font-weight:600;display:block}.quick-tile small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.quick-ico{background:var(--navy-soft);width:38px;height:38px;color:var(--ink);border-radius:8px;flex:none;place-items:center;display:grid}.quick-tile:hover .quick-ico{background:var(--navy);color:#fff}.mods{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:24px;display:grid}.mod-card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--navy);border-radius:var(--radius);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.mod-card:hover{border-color:var(--navy-2);border-top-color:var(--navy)}.mod-card b{color:var(--ink);margin-top:6px;font-weight:600}.mod-card small{color:var(--muted);flex:1;font-size:12px;line-height:1.45}.mod-ico{color:var(--info)}.mod-foot{color:var(--info);align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:500;display:inline-flex}@media (max-width:1180px){.quick,.mods,.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stats>div:nth-child(3){border-left:0}}.content.narrow{max-width:1320px;margin:0 auto;padding-left:32px;padding-right:32px}.check{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.kanban.six{grid-template-columns:repeat(6,minmax(0,1fr))}.kcol.drop{outline-offset:-2px;outline:2px dashed #b9c6d6}.kcard[draggable=true]{cursor:grab}.strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:8px 12px;display:flex}.strip-label{color:var(--ink);align-items:center;gap:6px;margin-right:6px;font-weight:600;display:inline-flex}.strip-item{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.strip-item:hover{border-color:var(--navy-2)}.card-sub{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:12px 14px}.textarea{border:1px solid var(--line);background:var(--surface);resize:vertical;border-radius:6px;width:100%;padding:8px 10px}.input{border:1px solid var(--line);background:var(--surface);border-radius:6px;min-width:0;height:34px;padding:0 10px}.tbl.compact td,.tbl.compact th{padding:6px 8px;font-size:13px}input.cell{border:1px solid var(--line);text-align:right;background:var(--surface);border-radius:4px;width:76px;height:28px;padding:0 6px}input.cell.wide{width:112px}input.cell.name{text-align:left;width:100%;min-width:140px}input.cell.unit{text-align:left;width:52px}.tbl.compact input.cell.wide{width:96px}.quote-add{border:1px dashed var(--line);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;padding:12px;display:flex}.quote-add .field{flex:0 120px;min-width:96px}.quote-add .field.grow{flex:220px}@media (max-width:600px){.quote-add .field,.quote-add .field.grow{flex:100%}.quote-add .btn{justify-content:center;width:100%}}.kv.totals{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;grid-template-columns:1fr auto;padding:12px 14px}.kv.totals dd{text-align:right;font-variant-numeric:tabular-nums}.print-doc{font-size:13.5px}.mbars{border-bottom:1px solid var(--line);grid-template-columns:repeat(6,1fr);align-items:end;gap:18px;height:220px;padding-top:22px;display:grid;position:relative}.mbar{flex-direction:column;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.mbar-fill{background:var(--navy-2);border-radius:4px 4px 0 0;width:56%;max-width:64px;min-height:2px}.mbar-val{color:var(--text);white-space:nowrap;margin-bottom:4px;font-size:12px;font-weight:600}.mbars-target{z-index:1;pointer-events:none;border-top:2px dashed #9aa6b5;position:absolute;left:0;right:0}.mbars-axis{text-align:center;color:var(--muted);grid-template-columns:repeat(6,1fr);gap:18px;margin-top:6px;font-size:12px;display:grid}.target-key{vertical-align:middle;border-top:2px dashed #9aa6b5;width:16px;margin-right:4px;display:inline-block}.funnel{gap:10px;display:grid}.funnel-row{grid-template-columns:76px 1fr 28px;align-items:center;gap:10px;font-size:13px;display:grid}.funnel-row b{text-align:right}.funnel-bar{background:var(--line-2);border-radius:3px;height:14px;overflow:hidden}.funnel-bar i{background:var(--navy-2);height:100%;display:block}@media print{body *{visibility:hidden}.print-doc,.print-doc *{visibility:visible}.print-doc{background:var(--surface);padding:24px;position:absolute;inset:0}.print-doc .row-actions{display:none}body>:not(:has(.print-doc)){display:none}.overlay:has(.print-doc){max-height:none;position:static;overflow:visible}.overlay:has(.print-doc) .modal{max-height:none;position:static;overflow:visible}.overlay:has(.print-doc) .drawer-body{max-height:none;position:static;overflow:visible}body{background:var(--surface)}}.legend i.target-key{border-radius:0;width:16px;height:0}.nowrap-cell{white-space:nowrap}.row-actions{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.kcard-actions{border-top:1px solid var(--line-2);opacity:.55;gap:2px;margin-top:2px;padding-top:6px;transition:opacity .15s;display:flex}.kcard:hover .kcard-actions,.kcard:focus-within .kcard-actions{opacity:1}.chip-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:4px;padding:3px 6px;font-size:12px;display:inline-flex}.chip-btn:hover{background:var(--navy-soft);color:var(--ink)}.kcard-actions{opacity:1}.menu{display:inline-flex;position:relative}.menu-pop{z-index:70;background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;min-width:200px;padding:4px;display:flex;position:fixed;box-shadow:0 12px 28px #0f3a2a24}.menu-pop.up{top:auto;bottom:calc(100% + 4px)}.menu-item{text-align:left;cursor:pointer;white-space:nowrap;color:var(--text);background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item.danger{color:var(--red)}.menu-item svg{color:var(--muted);flex:none}.menu-item.danger svg{color:var(--red)}.btn.danger{background:var(--red);border-color:var(--red);color:#fff}.btn.danger:hover{background:#8f1c13}.bell{display:inline-flex;position:relative}.bell>button{position:relative}.bell-dot{background:var(--red);color:#fff;border:2px solid var(--navy);border-radius:9px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:700;display:grid;position:absolute;top:2px;right:0}.portal-bar .bell-dot{border-color:#fff}.bell-pop{background:var(--surface);width:400px;max-width:calc(100vw - 24px);color:var(--text);border:1px solid var(--line);z-index:80;border-radius:10px;position:absolute;top:calc(100% + 10px);right:-8px;overflow:hidden;box-shadow:0 18px 40px #06122138}.bell-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.bell-head b{flex:1;font-size:15px}.seg.sm button{padding:4px 10px;font-size:12.5px}.bell-list{max-height:440px;overflow-y:auto}.bell-item{text-align:left;border:0;border-bottom:1px solid var(--line-2);background:var(--surface);cursor:pointer;grid-template-columns:1fr auto;gap:2px 10px;width:100%;padding:11px 14px 11px 22px;display:grid;position:relative}.bell-item:hover,.bell-item.unread{background:var(--surface-2)}.bell-item.unread:before{content:"";background:var(--info);border-radius:50%;width:7px;height:7px;position:absolute;top:17px;left:9px}.bell-kind{letter-spacing:.03em;color:var(--info);text-transform:uppercase;font-size:11px;font-weight:600}.bell-item .bell-kind{grid-column:1}.bell-time{color:var(--muted);white-space:nowrap;grid-area:1/2;font-size:11.5px}.bell-title{grid-column:1/-1;font-size:13.5px;font-weight:500}.bell-sub{color:var(--muted);grid-column:1/-1;font-size:12px}.toasts{z-index:1000;pointer-events:none;flex-direction:column;gap:10px;width:520px;max-width:calc(100vw - 32px);display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-floating);cursor:pointer;align-items:center;gap:12px;padding:14px 16px;animation:.24s cubic-bezier(.33,1,.68,1) toast-down;display:flex}.toast-ico{flex:none;place-items:center;display:grid}.toast-body{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:0;display:flex}.toast-body b{color:var(--ink);font-size:14px;font-weight:600}.toast-body span:last-child{color:var(--text-2);font-size:13px}@keyframes toast-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}body:has(.bell-pop) .toasts{display:none}input.cell.att-in{text-align:center;background:0 0;border-color:#0000;width:38px;height:26px;padding:0 2px}input.cell.att-in:hover,input.cell.att-in:focus{border-color:var(--line);background:var(--surface)}.portal-wrap{max-width:1120px;margin:0 auto;padding-left:24px;padding-right:24px}.portal-hero{background:var(--navy);color:#fff;padding:28px 0 30px}.portal-hero h1{color:#fff;margin:4px 0 6px;font-size:26px}.portal-hello{opacity:.7;font-size:14px}.portal-addr{opacity:.75;align-items:center;gap:6px;font-size:13.5px;display:flex}.portal-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.portal-kpis>div{background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;flex-direction:column;gap:5px;padding:12px 14px;display:flex}.portal-kpis span{opacity:.75;align-items:center;gap:5px;font-size:12.5px;display:flex}.portal-kpis b{font-size:22px}.portal-kpis small{opacity:.7;font-size:12px}.portal-kpis .progress{background:#ffffff2e;flex:none}.portal-kpis .progress-bar{background:var(--surface)}.portal-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;gap:20px;padding-top:24px;padding-bottom:48px;display:grid}.portal-sec{align-items:center;gap:8px;margin:4px 0 -2px;font-size:16px;display:flex}.portal-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.field-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}@media (max-width:860px){.portal-grid,.portal-kpis{grid-template-columns:1fr}.portal-wrap{padding-left:16px;padding-right:16px}.portal-bar{padding:10px 16px}.portal-who,.hide-sm{display:none}.portal-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.subtabs{flex-wrap:nowrap;max-width:100%;overflow-x:auto}.subtabs button{white-space:nowrap}.check-row{grid-template-columns:1fr}.pf button{padding:10px 18px;font-size:14px}.field-bar{flex-direction:column;align-items:stretch}.hdr-logo img{height:40px;padding:2px 6px}.hdr-user{padding-left:4px}}.np{grid-template-columns:264px minmax(0,1fr);align-items:start;gap:20px;display:grid}.np-side{flex-direction:column;gap:14px;display:flex;position:sticky;top:76px}.np-main{min-width:0}.vsteps{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:2px;padding:8px;display:flex}.vstep{text-align:left;width:100%;font:inherit;color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;display:flex}.vstep:disabled{cursor:default}.vstep.done{color:var(--text);cursor:pointer}.vstep.done:hover{background:var(--surface-2)}.vstep.current{background:var(--navy-soft);color:var(--ink);font-weight:600}.vstep i{background:var(--line-2);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:12px;font-style:normal;font-weight:600;display:grid}.vstep.done i{background:var(--ok);color:#fff}.vstep.current i{background:var(--navy);color:#fff}.np-sum{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.np-sum-head{border-bottom:1px solid var(--line-2);flex-direction:column;gap:2px;margin-bottom:12px;padding-bottom:12px;display:flex}.np-sum-head b{font-size:15px}.np-sum dl{grid-template-columns:auto 1fr;gap:8px 12px;margin:0;font-size:13px;display:grid}.np-sum dt{color:var(--muted)}.np-sum dd{text-align:right;margin:0}.np-foot{z-index:5;background:var(--bg);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 0 16px;display:flex;position:sticky;bottom:0}.pick-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.pick{border:1px solid var(--line);background:var(--surface);text-align:left;font:inherit;cursor:pointer;color:var(--text);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.pick:hover{border-color:var(--border)}.pick.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--navy-soft)}.pick-val{color:var(--ink);margin-top:4px;font-weight:600}.team-pick{align-items:flex-end;gap:12px;display:flex}@media (max-width:860px){.np{grid-template-columns:minmax(0,1fr)}.np-side{position:static}.np-sum{display:none}.vsteps{flex-direction:row;overflow-x:auto}.vstep{flex:none;width:auto}.vstep span{white-space:nowrap}.vstep:not(.current) span{display:none}}.tbl.att td.short{color:var(--warning);background:var(--warning-soft);font-weight:600}.att-legend{color:var(--muted);gap:16px;padding:10px 20px 16px;font-size:12px;display:flex}.att-legend span{align-items:center;gap:6px;display:inline-flex}.att-legend i{border:1px solid var(--line);border-radius:3px;width:12px;height:12px}.att-legend i.on{background:var(--surface-2)}.att-legend i.short{background:var(--warning-soft)}.site-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.ai-tip{color:var(--ai);align-items:flex-start;gap:5px;margin-top:4px;font-size:12px;display:flex}.ai-tip svg{flex:none;margin-top:2px}.crew-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:4px 14px;font-size:12px;display:flex}.crew-legend b{color:var(--ink)}.tbl.crewplan td.c,.tbl.crewplan th.c{text-align:center;min-width:58px;padding:6px 4px}.tbl.crewplan tr.grp td{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 20px;font-size:12px;font-weight:600}.tbl.crewplan td:first-child,.tbl.crewplan th:first-child{padding-left:20px}.tbl.crewplan td.busy{background:var(--surface-2)}.tbl.crewplan td.clash{background:var(--warning-soft)}.pchip{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:4px;margin:1px;padding:0 4px;font-size:11px;font-weight:600;display:inline-block}.tbl.crewplan td.clash .pchip{color:var(--warning);border-color:var(--border)}.tbl.la th.c,.tbl.la td.c{text-align:center;min-width:40px;padding:6px 2px;font-size:12px}.tbl.la td.c.on{background:linear-gradient(var(--navy-2), var(--navy-2)) center / 100% 10px no-repeat}.tbl.la td.c.on.clash{background:linear-gradient(#e0a23a,#e0a23a) 50%/100% 10px no-repeat}.tbl.la tfoot td{font-weight:600}.ready{flex-wrap:wrap;gap:4px;max-width:280px;display:flex}.check-line{cursor:pointer;align-items:center;gap:8px;padding:5px 0;font-size:14px;display:flex}.viol-fields{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.viol-fields .cell{width:56px}.viol-fields .input{min-width:180px}.att-pick{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;max-height:50vh;display:grid;overflow:auto}.crit-edit{align-items:center;gap:6px;display:inline-flex}.crit-tools{opacity:0;transition:opacity .15s;display:inline-flex}.crit-list li:hover .crit-tools,.crit-tools:focus-within{opacity:1}.crit-tools .icon-btn{width:26px;height:26px}@media (hover:none){.crit-tools{opacity:1}}.chg-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chg-line .grow{min-width:160px}.recv-line{border:1px solid var(--line);border-radius:6px;gap:8px;padding:12px;display:grid}.tbl.rfq th.best{color:var(--ok)}.tbl.rfq .input.num{width:96px}.mark{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.mark b{font-size:12.5px;font-weight:600}.ins-matrix td,.ins-matrix th{font-size:13px}.ins-matrix th:not(:first-child),.ins-matrix td:not(:first-child){text-align:center;white-space:nowrap}.ins-head{margin-bottom:4px}.stage-strip{gap:2px;margin-bottom:4px;display:flex}.stage-strip i{background:var(--line);border-radius:3px;flex:1;height:6px}.stage-strip i.approved{background:var(--ok)}.stage-strip i.review{background:var(--warn)}.stage-strip i.doing{background:var(--info)}.design-steps{gap:10px;display:grid}.design-step{border:1px solid var(--line);border-left-width:3px;border-radius:6px;gap:4px;padding:10px 12px;display:grid}.design-step.approved{border-left-color:var(--ok)}.design-step.review{border-left-color:var(--warn)}.design-step.doing{border-left-color:var(--info)}.design-note{background:var(--info-soft);border-radius:4px;padding:6px 8px;font-size:13px}.roadmap{display:grid}.rm{grid-template-columns:18px 1fr;gap:10px;padding-bottom:12px;font-size:13.5px;display:grid;position:relative}.rm:before{content:"";background:var(--line);width:2px;position:absolute;top:14px;bottom:0;left:8px}.rm:last-child:before{display:none}.rm i{border:2px solid var(--line);background:var(--card);z-index:1;border-radius:50%;width:14px;height:14px;margin-top:2px;position:relative}.rm.done i{background:var(--ok);border-color:var(--ok)}.rm.now i{border-color:var(--info);box-shadow:0 0 0 3px var(--info-soft)}.rm.todo b{color:var(--muted);font-weight:500}.rm .sub{color:var(--muted);font-size:12px}.bim-view{touch-action:none;height:min(62vh,560px);min-height:320px}.bim-view canvas{display:block}.bim-foot{border-top:1px solid var(--line-2);align-items:center;gap:12px;padding:10px 16px;display:flex}.bim-panel{padding:4px 20px 16px}.share-qr{place-items:center;display:grid}.room-tabs{flex-wrap:wrap;gap:6px;display:flex}.room-tabs button{border:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--text);border-radius:18px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.room-tabs button.on{background:var(--navy);border-color:var(--navy);color:#fff}.room-tabs button b{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:0 6px;font-size:11px}.room-tabs button.on b{color:#fff;background:#fff3}.finish-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.finish-card{border:1px solid var(--line);background:var(--card);text-align:left;font:inherit;color:inherit;border-radius:8px;grid-template-rows:auto 1fr auto;display:grid;position:relative;overflow:hidden}.finish-card .photo{aspect-ratio:16/9;border-radius:0}.finish-card>.btn{justify-self:start;margin:0 12px 12px}.finish-card>.menu{background:var(--card);border-radius:6px;position:absolute;top:6px;right:6px}.finish-card.pick{cursor:pointer;padding:0}.finish-card.pick.on{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy-soft)}.finish-body{align-content:start;gap:4px;padding:10px 12px;display:grid}.finish-body .badge{justify-self:start}.pkg-compare{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.pkg-col{border:1px solid var(--line);border-radius:8px;align-content:start;gap:6px;padding:12px;display:grid}.pkg-price{font-size:20px;font-weight:600}@media (max-width:860px){.pkg-compare{grid-template-columns:minmax(0,1fr)}}.print-title{text-align:center;letter-spacing:.02em;margin:18px 0 2px;font-size:17px}.print-signs{text-align:center;gap:12px;margin-top:22px;font-size:13px;display:grid}.print-name{margin-top:44px;font-weight:600}.modal .drawer-body>*+*{margin-top:14px}.modal .field .input.num{width:100%}.picker{min-width:0;position:relative}.picker-in{width:100%}.picker-in::placeholder{color:var(--muted)}.picker-pop{z-index:80;background:var(--surface);border:1px solid var(--line);border-radius:8px;max-height:300px;padding:4px;position:fixed;overflow:auto;box-shadow:0 12px 32px #0f1e3729}.picker-group{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:600}.picker-opt{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:13.5px;display:flex}.picker-opt.on{background:var(--surface-2)}.picker-opt.cur{font-weight:600}.picker-empty{color:var(--muted);padding:10px;font-size:12.5px}.pager{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex}.tag-chip{background:var(--surface-2);border-radius:6px;align-items:center;gap:2px;padding:2px 2px 2px 9px;font-size:12.5px;display:inline-flex}.tag-chip .icon-btn{width:22px;height:22px}.pick-list{max-height:340px;overflow:auto}.modal.wide{width:980px}.xl-steps{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.xl-steps li{color:var(--muted);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 4px;font-size:12.5px;display:flex}.xl-steps li span{background:var(--surface);border:1px solid var(--line);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:600;display:grid}.xl-steps li.on{color:var(--text);font-weight:600}.xl-steps li.on span{background:var(--navy);color:#fff;border-color:var(--navy)}.xl-steps li.done span{background:var(--ok);color:#fff;border-color:#0000}.xl-box{text-align:center;border:1px solid var(--line);color:var(--text);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:180px;padding:26px 16px;display:flex}.xl-box.drop{cursor:pointer;background:var(--surface-2);border-style:dashed;border-width:2px}.xl-box.drop:hover{border-color:var(--navy)}.xl-preview{border:1px solid var(--line);border-radius:8px;max-height:46vh;overflow:auto}.xl-preview th{background:var(--surface);z-index:1;position:sticky;top:0}tr.xl-bad td{background:var(--red-soft)}tr.xl-skip td{color:var(--muted)}.role-card{flex-direction:column;gap:4px;padding:14px 16px;display:flex}.flow-row{border-bottom:1px solid var(--line);grid-template-columns:190px 1fr;align-items:center;gap:12px;padding-bottom:12px;display:grid}.flow-row:last-child{border-bottom:0;padding-bottom:0}.flow-steps{flex-wrap:wrap;gap:6px;display:flex}.flow-step{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 3px;font-size:12.5px;display:inline-flex}.flow-step i{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10.5px;font-style:normal;font-weight:600;display:grid}.co-preview{border:1px dashed var(--line);border-radius:8px;flex-direction:column;gap:4px;padding:14px;font-size:12.5px;display:flex}.list-item.on{background:var(--surface-2)}button.list-item{text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0}.audit-filters{flex-wrap:wrap}@media (max-width:720px){.flow-row{grid-template-columns:1fr;gap:6px}}.sheet-wrap{z-index:1000;background:#06122161;animation:.2s fade;position:fixed;inset:0}.sheet{background:var(--surface);width:580px;max-width:100%;animation:.28s cubic-bezier(.2,.8,.2,1) sheet-in;position:absolute;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:10px 0 36px -14px #10345c59}@keyframes sheet-in{0%{transform:translate(-100%)}to{transform:none}}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.sheet-head img{height:44px}.sheet-back{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:6px 4px;font-weight:600;display:inline-flex}.sheet-band{background:var(--surface-2);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);padding:10px 24px;font-size:11.5px;font-weight:700}.sheet-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:12px;display:grid}.sheet-tile{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:flex-start;gap:12px;min-width:0;padding:12px;display:flex}.sheet-tile:hover{background:var(--surface-2)}.sheet-tile.on{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.sheet-ico{color:#fff;border-radius:12px;place-items:center;width:40px;min-width:40px;height:40px;margin-top:2px;display:grid;box-shadow:0 1px 2px #10345c2e}.sheet-txt{min-width:0}.sheet-txt b{color:var(--ink);font-size:14.5px;font-weight:700;display:block}.sheet-txt small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;display:block;overflow:hidden}.tone-home{background:var(--navy)}.tone-sales{background:#e11d48}.tone-projects{background:#ea580c}.tone-quality{background:#0891b2}.tone-supply{color:var(--ink);background:#f59e0b}.tone-finance{background:#059669}.tone-system{background:#4f46e5}.sheet-drill{padding-bottom:16px}.sheet-drill .mega-group{padding:12px 24px 0}@media (max-width:600px){.sheet-grid{grid-template-columns:1fr}}.att-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:6px 0;display:grid}.att-img{position:relative}.att-img>button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.att-img img,.att-img .photo{aspect-ratio:4/3;object-fit:cover;border-radius:6px;width:100%;display:block}.att-x{color:#fff;cursor:pointer;background:#0000008c;border:0;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:4px;right:4px}.att-file{border:1px solid var(--line);border-radius:6px;align-items:center;gap:10px;margin:6px 0;padding:8px 10px;font-size:13px;display:flex}.att-big .photo{aspect-ratio:4/3;width:100%}.btn.ghost{color:var(--muted);background:0 0;border-style:dashed}.att-block{margin-top:14px}.mention{color:var(--navy-2);background:var(--navy-soft);border-radius:4px;padding:0 3px;font-weight:600}.mention-box{position:relative}.mention-pop{background:var(--surface);border:1px solid var(--line);z-index:5;border-radius:8px;padding:4px;position:absolute;bottom:100%;left:0;right:90px;box-shadow:0 8px 24px #0000001f}.mention-pop button{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:13.5px;display:flex}.mention-pop button:hover{background:var(--navy-soft)}.mention-pop .muted{margin-left:auto}.link-btn{color:var(--navy-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:2px 0;font-size:12px;display:inline-flex}.link-btn:hover{text-decoration:underline}tr.link{cursor:pointer}tr.link:hover td{background:var(--navy-soft)}.sub-wrap>td{background:var(--surface-2);padding:10px 16px 14px}.sub-tbl{background:var(--surface);border:1px solid var(--line);border-radius:6px}.sub-row td{vertical-align:middle;padding:4px 6px}.sub-row .input,.sub-row .select{height:32px;font-size:13px}.att-img .photo{align-items:flex-end;display:flex}.att-img .photo span{margin:6px;font-size:11px;line-height:1.3}.att-img .att-x{z-index:2;opacity:0;transition:opacity .15s}.att-img:hover .att-x,.att-img:focus-within .att-x{opacity:1}@media (hover:none){.att-img .att-x{opacity:1}}.appr-list{flex-direction:column;display:flex}.appr-row{border-bottom:1px solid var(--line-2);border-left:3px solid var(--grey);grid-template-columns:170px minmax(0,1fr) 120px auto;align-items:center;gap:16px;padding:14px 20px 14px 17px;display:grid}.appr-row:last-child{border-bottom:0}.appr-row:hover{background:var(--surface-2)}.appr-row.g-site{border-left-color:var(--navy-2)}.appr-row.g-quality{border-left-color:var(--ok)}.appr-row.g-supply{border-left-color:var(--info)}.appr-row.g-money{border-left-color:var(--warn)}.appr-row.g-sales{border-left-color:var(--ai)}.appr-kind{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.appr-tag{color:var(--text);background:var(--line-2);border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.appr-age{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.appr-age.late{color:var(--warn);font-weight:600}.appr-main{flex-direction:column;gap:2px;min-width:0;display:flex}.appr-main b{font-size:14px}.appr-main .sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.appr-proj{color:var(--navy-2);font-size:12px}.appr-amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.appr-act{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}@media (max-width:760px){.appr-row{grid-template-columns:1fr auto;gap:8px 12px;padding:12px 14px 12px 12px}.appr-kind{flex-direction:row;grid-column:1/-1;align-items:center}.appr-main{grid-column:1/-1}.appr-amt{text-align:left}.grid.g4.two-on-phone{grid-template-columns:repeat(2,minmax(0,1fr))}}.legal-page{--legal-brand:#0284c7;--legal-brand-hover:#0369a1;--legal-brand-light:#38bdf8;--legal-brand-soft:#f0f9ff;--legal-brand-border:#0284c740;--legal-deep:#0f172a;--legal-darkest:#020617;--legal-ink:#0f172a;--legal-ink-muted:#334155;--legal-muted:#797d8a;--legal-line:#e2e8f0;--legal-surface-2:#f8fafc;--legal-sans:"Raleway", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--legal-num-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;background:var(--surface);min-height:100vh;color:var(--legal-ink-muted);font-family:var(--legal-sans);font-variant-numeric:lining-nums tabular-nums;-webkit-font-feature-settings:"lnum" 1, "tnum" 1;font-feature-settings:"lnum" 1, "tnum" 1;flex-direction:column;display:flex}.legal-header{z-index:100;background:radial-gradient(90% 65% at 50% -20%,#2a251f 0%,#1e1e1e 60%,#141414 100%);border-bottom:1px solid #ca9c6a47;padding:16px 0;position:sticky;top:0;overflow:hidden;box-shadow:0 4px 20px #00000047}.legal-header:before{content:"";pointer-events:none;background-image:linear-gradient(90deg,#ca9c6a0f 1px,#0000 1px),linear-gradient(#ca9c6a0f 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}.legal-header-inner{box-sizing:border-box;z-index:2;justify-content:flex-start;align-items:center;max-width:960px;margin:0 auto;padding:0 24px;display:flex;position:relative}.legal-logo-box{color:#fff;align-items:center;gap:14px;text-decoration:none;transition:opacity .2s;display:flex}.legal-logo-box:hover{opacity:.92}.legal-logo-box img{background:var(--surface);object-fit:contain;border:1px solid #ca9c6a59;border-radius:8px;width:44px;height:44px;padding:3px;box-shadow:0 2px 10px #0000004d}.legal-logo-text{flex-direction:column;display:flex}.legal-logo-text strong{color:#fff;letter-spacing:-.01em;font-size:1.25rem;font-weight:800;line-height:1.2}.legal-logo-text span{font-family:var(--legal-sans);letter-spacing:.14em;color:var(--legal-brand-light,#e9ba87);text-transform:uppercase;font-size:.72rem;font-weight:700}.legal-container{box-sizing:border-box;flex:1;width:100%;max-width:960px;margin:0 auto;padding:40px 24px 70px}.legal-content{width:100%}.legal-content h1{color:var(--legal-deep);letter-spacing:-.025em;margin-bottom:8px;font-size:clamp(1.8rem,3.2vw,2.3rem);font-weight:850;line-height:1.25}.legal-subtitle{color:var(--legal-muted);margin-bottom:20px;font-size:1rem;line-height:1.55}.legal-meta{color:var(--legal-muted);border-bottom:1px solid var(--legal-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:16px;font-size:.88rem;display:flex}.legal-content h2{color:var(--legal-deep);border-bottom:2px solid #ca9c6a40;align-items:center;gap:10px;margin:36px 0 14px;padding-bottom:8px;font-size:1.25rem;font-weight:800;display:flex}.legal-content h2 svg{color:var(--legal-brand)}.legal-content h3{color:var(--legal-deep);margin:22px 0 10px;font-size:1.05rem;font-weight:700}.legal-content p,.legal-content li{color:var(--legal-ink-muted);font-size:.96rem;line-height:1.7}.legal-content ul,.legal-content ol{margin:12px 0;padding-left:24px}.legal-content li{margin-bottom:8px}.legal-highlight-box{background:var(--legal-brand-soft);border-left:4px solid var(--legal-brand);border-top:1px solid var(--legal-brand-border);border-right:1px solid var(--legal-brand-border);border-bottom:1px solid var(--legal-brand-border);border-radius:12px;margin:24px 0;padding:18px 22px}.legal-highlight-box strong{color:var(--legal-deep);font-size:1.02rem}.legal-warning-box{background:#fff9f8;border:1px solid #c0392b33;border-left:4px solid #c0392b;border-radius:12px;margin:24px 0;padding:18px 22px}.legal-warning-box strong{color:#c0392b;font-size:1.02rem}.legal-form-card{background:var(--legal-surface-2);border:1px solid var(--legal-line);border-radius:14px;margin:28px 0;padding:28px 26px;box-shadow:0 4px 14px #1e1e1e08}.legal-form-group{margin-bottom:18px}.legal-form-group label{color:var(--legal-deep);margin-bottom:7px;font-size:.9rem;font-weight:650;display:block}.legal-form-group input,.legal-form-group textarea,.legal-form-group select{border:1px solid var(--legal-line);background:var(--surface);width:100%;color:var(--legal-deep);border-radius:8px;padding:11px 15px;font-family:inherit;font-size:.94rem;transition:border-color .15s,box-shadow .15s}.legal-form-group input:focus,.legal-form-group textarea:focus{border-color:var(--legal-brand);outline:none;box-shadow:0 0 0 3px #ca9c6a33}.legal-footer{background:var(--surface);border-top:1px solid var(--legal-line);text-align:center;color:var(--legal-muted);margin-top:auto;padding:40px 24px 30px;font-size:.88rem}.legal-footer-links{flex-wrap:wrap;justify-content:center;gap:20px;margin-bottom:14px;display:flex}.legal-footer-links a{color:var(--legal-ink-muted);font-weight:550;text-decoration:none;transition:color .15s}.legal-footer-links a:hover{color:var(--legal-brand)}.legal-footer-company{color:var(--legal-deep);margin-bottom:6px;font-weight:600}.legal-footer-contact{color:var(--legal-muted);font-size:.84rem}.legal-footer-contact a{color:var(--legal-brand);text-decoration:underline;transition:color .15s}.legal-footer-contact a:hover{color:var(--legal-brand-hover)}.legal-footer-contact .phone-num{font-family:var(--legal-num-font);font-variant-numeric:lining-nums tabular-nums;-webkit-font-feature-settings:"lnum" 1, "tnum" 1;font-feature-settings:"lnum" 1, "tnum" 1;letter-spacing:.02em;font-weight:700}@media (max-width:640px){.legal-header{padding:12px 0}.legal-header-inner{padding:0 16px}.legal-container{padding:24px 16px 48px}.legal-logo-box{gap:10px}.legal-logo-box img{width:38px;height:38px}.legal-logo-text strong{font-size:1rem}.legal-logo-text span{font-size:.6rem}.legal-content h1{font-size:1.5rem}}input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#0f172a!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}input:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#0f172a!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}input:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#0f172a!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.login-page-container{background:var(--bg);grid-template-columns:minmax(360px,480px) 1fr;min-height:100vh;display:grid}.login-brand-panel{color:#fff;background:linear-gradient(165deg,#0b1320 0%,#0f172a 45%,#1e293b 100%);flex-direction:column;justify-content:space-between;gap:40px;padding:56px 48px;display:flex;position:relative;overflow:hidden;box-shadow:6px 0 28px #0f172a40}.login-brand-panel:before{content: ;pointer-events:none;background:radial-gradient(circle,#f0552826 0%,#0000 70%);border-radius:50%;width:320px;height:320px;position:absolute;top:-100px;left:-100px}.brand-logo-card{background:var(--surface);z-index:2;border-radius:12px;align-items:center;width:fit-content;padding:10px 20px;display:inline-flex;box-shadow:0 4px 16px #0003}.brand-logo-card img{object-fit:contain;width:auto;height:36px;display:block}.brand-hero-content{z-index:2;flex-direction:column;gap:16px;display:flex}.brand-badge{letter-spacing:.1em;text-transform:uppercase;color:#ff8c66;background:#f0552826;border:1px solid #f055284d;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:11px;font-weight:800;display:inline-block}.brand-hero-content h1{letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1.3;color:#fff!important}.brand-hero-content p{color:var(--faint);font-size:14.5px;line-height:1.6}.brand-highlights{flex-direction:column;gap:12px;margin-top:12px;display:flex}.brand-highlight-item{color:#cbd5e1;align-items:center;gap:10px;font-size:13.5px;display:flex}.brand-highlight-item svg{color:#f05528;flex-shrink:0}.brand-footer-info{z-index:2;color:var(--muted);flex-direction:column;gap:8px;font-size:12.5px;display:flex}.brand-footer-links{align-items:center;gap:12px;display:flex}.brand-footer-links a{color:var(--faint);transition:color .15s}.brand-footer-links a:hover{color:#fff}.login-main-panel{justify-content:center;align-items:center;padding:48px 32px;display:flex}.login-card-wrap{width:100%;max-width:440px}.login-form-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;gap:18px;padding:36px 32px;display:flex;box-shadow:0 10px 30px -4px #0f172a14}.login-form-header h2{color:var(--text);margin-bottom:4px;font-size:22px;font-weight:800}.login-form-header p{color:var(--muted);font-size:13.5px}.login-field{flex-direction:column;gap:6px;display:flex}.login-field label{color:var(--text-2);font-size:13px;font-weight:700}.input-with-icon{align-items:center;display:flex;position:relative}.input-with-icon .input-icon{color:var(--faint);pointer-events:none;position:absolute;left:14px}.input-with-icon input{border:1px solid var(--border);border-radius:10px;width:100%;height:46px;padding:0 16px 0 42px;font-size:14.5px;transition:all .15s;color:#0f172a!important;background:#fff!important}.input-with-icon input:focus{border-color:#f05528;outline:none;box-shadow:0 0 0 3px #f0552826}.login-callout-error{background:var(--danger-soft);color:#dc2626;border:1px solid #fecaca;border-radius:8px;padding:12px 14px;font-size:13px;font-weight:500}.login-submit-btn{color:#fff;cursor:pointer;background:#f05528;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:48px;margin-top:4px;font-size:15px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 4px 12px #f0552840}.login-submit-btn:hover:not(:disabled){background:#dc4315;transform:translateY(-1px);box-shadow:0 6px 16px #f0552859}.login-submit-btn:disabled{opacity:.6;cursor:not-allowed}.login-quick-section{border-top:1px dashed var(--border);margin-top:10px;padding-top:18px}.login-quick-label{letter-spacing:.05em;color:var(--faint);text-align:center;margin-bottom:10px;font-size:11px;font-weight:800}.login-quick-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.quick-acc-btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex}.quick-acc-btn:hover{background:var(--brand-soft);border-color:#f05528;box-shadow:0 2px 8px #f055281f}.quick-acc-icon{color:#f05528;flex-shrink:0}.quick-acc-text{flex-direction:column;min-width:0;display:flex}.quick-acc-text strong{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.quick-acc-text small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}@media (max-width:860px){.login-page-container{grid-template-columns:1fr}.login-brand-panel{gap:24px;padding:32px 20px}.login-main-panel{padding:32px 16px}.login-form-card{padding:24px 20px}.login-quick-grid{grid-template-columns:1fr}}.hdr-mobile-toggle{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;display:none}.hdr-mobile-toggle:hover{background:var(--surface-2)}.hdr-proj-picker-wrap{align-items:center;display:flex;position:relative}.proj-switcher-container{position:relative}.proj-switcher-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:10px;height:38px;padding:0 12px;transition:all .15s;display:inline-flex;box-shadow:0 1px 2px #0f172a0a}.proj-switcher-btn:hover,.proj-switcher-btn.active{background:var(--surface-2);border-color:var(--border)}.proj-switcher-icon{background:var(--navy-soft);width:24px;height:24px;color:var(--ink);border-radius:6px;flex-shrink:0;place-items:center;display:grid}.proj-switcher-info{flex-direction:column;max-width:260px;line-height:1.2;display:flex}.proj-switcher-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.proj-switcher-meta{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.proj-code{color:var(--text-2);font-weight:600}.proj-status.tone-info{color:#0284c7;font-weight:600}.proj-status.tone-warn{color:#b45309;font-weight:600}.proj-status.tone-ok{color:#15803d;font-weight:600}.proj-switcher-chevron{color:var(--faint);transition:transform .2s}.proj-switcher-chevron.rotated{transform:rotate(180deg)}.proj-dropdown-panel{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:12px;flex-direction:column;width:360px;max-height:480px;animation:.15s ease-out tecon-enter;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 12px 32px -4px #0f172a29}.proj-search-box{border-bottom:1px solid var(--border);background:var(--surface-2);align-items:center;gap:8px;padding:10px 14px;display:flex}.proj-search-icon{color:var(--faint);flex-shrink:0}.proj-search-box input{width:100%;color:var(--text);background:0 0;border:none;outline:none;font-size:13px}.proj-list-scroll{flex-direction:column;gap:2px;max-height:340px;padding:6px;display:flex;overflow-y:auto}.proj-option-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px 10px;transition:background .12s;display:flex}.proj-option-item:hover{background:var(--surface-2)}.proj-option-item.current{background:var(--navy-soft)}.proj-item-ico{background:var(--surface-2);width:32px;height:32px;color:var(--ink);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.proj-item-ico.all{background:var(--brand-soft);color:#f05528}.proj-item-body{flex-direction:column;flex:1;min-width:0;display:flex}.proj-item-line1{justify-content:space-between;align-items:center;gap:6px;display:flex}.proj-item-body strong{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.proj-item-body small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.proj-badge-mini{border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700}.proj-badge-mini.tone-info{background:var(--info-soft);color:#0369a1}.proj-badge-mini.tone-warn{background:var(--warning-soft);color:#b45309}.proj-badge-mini.tone-ok{background:var(--success-soft);color:#15803d}.proj-check-ico{color:#f05528;flex-shrink:0}.proj-group-title{letter-spacing:.06em;color:var(--faint);padding:8px 10px 4px;font-size:10.5px;font-weight:800}.proj-dropdown-divider{background:var(--border);height:1px;margin:4px 6px}.proj-empty-msg{text-align:center;color:var(--muted);padding:24px 16px;font-size:13px}.proj-dropdown-footer{border-top:1px solid var(--border);background:var(--surface-2);padding:8px 12px}.proj-new-link{color:#f05528;justify-content:center;align-items:center;gap:8px;padding:6px 0;font-size:13px;font-weight:600;text-decoration:none;display:flex}.proj-new-link:hover{text-decoration:underline}.hdr-quick-nav{align-items:center;gap:4px;margin-left:8px;display:flex}.hdr-quick-link{height:32px;color:var(--text-2);border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;text-decoration:none;transition:all .12s;display:inline-flex}.hdr-quick-link:hover{background:var(--surface-2);color:var(--text)}.hdr-quick-link.on{background:var(--navy-soft);color:var(--ink)}.side{background:var(--surface);border-right:1px solid var(--border);flex-shrink:0;width:260px;padding:12px 0 32px;overflow-y:auto}.side-nav-inner{flex-direction:column;gap:6px;display:flex}.side-group{margin-bottom:4px}.side-label{cursor:pointer;letter-spacing:.04em;text-transform:uppercase;width:100%;color:var(--muted);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 16px;font-size:12px;font-weight:800;transition:color .12s;display:flex}.side-label:hover,.side-group.contains-active .side-label{color:var(--ink)}.side-group-icon{color:var(--ink);opacity:.75}.side-items-list{flex-direction:column;gap:1px;display:flex}.side-item{color:var(--text-2);border-left:3px solid #0000;align-items:center;gap:10px;padding:7px 16px 7px 22px;font-size:13px;font-weight:500;text-decoration:none;transition:all .12s;display:flex}.side-item-dot{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:5px;height:5px}.side-item.on .side-item-dot{background:#f05528}@media (max-width:1024px){.hdr-mobile-toggle{display:flex}.hdr-quick-nav{display:none}.side{z-index:50;transition:transform .25s cubic-bezier(.16,1,.3,1);position:fixed;top:56px;bottom:0;left:0;transform:translate(-100%);box-shadow:10px 0 30px #00000026}.side.mobile-open{transform:translate(0)}.side-mobile-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:45;background:#0f172a66;position:fixed;inset:56px 0 0}}.hdr-project-stripe{background:linear-gradient(90deg,#f05528 0%,#0ea5e9 50%,#10b981 100%);height:3px;position:absolute;top:0;left:0;right:0}.hdr-breadcrumb-item{align-items:center;gap:8px;min-width:0;display:flex}.hdr-bread-sep{color:var(--faint);flex-shrink:0}.hdr-page-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:13.5px;font-weight:700;overflow:hidden}.side{transition:width .2s cubic-bezier(.16,1,.3,1)}.side.collapsed{width:64px!important}.side-collapse-bar{border-bottom:1px solid var(--border);margin-bottom:8px;padding:0 12px 8px}.side-collapse-btn{cursor:pointer;width:100%;color:var(--muted);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;font-weight:600;transition:all .12s;display:flex}.side-collapse-btn:hover{background:var(--surface-2);color:var(--ink)}.side.collapsed .side-collapse-btn{justify-content:center;padding:6px 0}.side.collapsed .side-item{border-left:none;border-radius:8px;justify-content:center;margin:2px 8px;padding:9px 0}.side.collapsed .side-item-dot{width:8px;height:8px}.side.collapsed .side-item.on{background:var(--navy-soft);color:#f05528}.side-rail-divider{background:var(--border);height:1px;margin:8px 12px}.proj-command-center{flex-direction:column;gap:16px;display:flex}.proj-command-breadcrumb{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.proj-back-link{color:var(--ink);align-items:center;gap:4px;font-weight:600;text-decoration:none;transition:color .12s;display:inline-flex}.proj-back-link:hover{color:#f05528}.proj-bread-sep{color:#cbd5e1}.proj-bread-current{color:var(--text-2);font-weight:600}.proj-bread-tab{color:var(--text);font-weight:700}.proj-header-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px 28px;display:flex;box-shadow:0 1px 3px #0f172a0d}.proj-header-main{flex-direction:column;flex:1;gap:8px;min-width:320px;display:flex}.proj-header-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.proj-code-badge{letter-spacing:.04em;color:var(--ink);background:var(--navy-soft);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800}.proj-type-pill{color:var(--text-2);background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:600}.proj-lag-pill{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.proj-lag-pill.warning{background:var(--warning-soft);color:#b45309}.proj-lag-pill.on-time{background:var(--success-soft);color:#15803d}.proj-title-heading{margin:2px 0 4px;font-size:26px;font-weight:800;line-height:1.25;color:var(--ink)!important}.proj-meta-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;display:flex}.proj-meta-item{align-items:center;gap:6px;display:inline-flex}.proj-meta-item svg{color:var(--faint)}.proj-meta-item b{color:var(--text-2);font-weight:600}.proj-meta-sep{color:#cbd5e1}.proj-header-aside{align-items:center;min-width:260px;display:flex}.proj-timeline-box{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;width:100%;padding:14px 18px;display:flex}.proj-timeline-dates{color:var(--text-2);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.proj-progress-head{color:var(--text-2);justify-content:space-between;align-items:baseline;margin-top:4px;font-size:12.5px;display:flex}.proj-progress-head b{color:var(--ink);font-size:16px;font-weight:800}.proj-progress-track{background:var(--border);border-radius:999px;width:100%;height:8px;overflow:hidden}.proj-progress-bar{background:linear-gradient(90deg,#0a1f36,#0ea5e9);border-radius:999px;height:100%;transition:width .4s}.proj-progress-foot{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.proj-kpi-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.proj-kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:14px 16px;display:flex;box-shadow:0 1px 3px #0f172a0a}.proj-kpi-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.proj-kpi-label{letter-spacing:.04em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.proj-kpi-icon{border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.proj-kpi-icon.money{background:var(--navy-soft);color:var(--ink)}.proj-kpi-icon.progress{background:var(--info-soft);color:#0369a1}.proj-kpi-icon.diary{background:var(--brand-soft);color:#f05528}.proj-kpi-icon.quality{background:var(--success-soft);color:#15803d}.proj-kpi-value{color:var(--text);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.proj-kpi-sub{color:var(--muted);margin-top:3px;font-size:12px}.proj-tab-bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:4px;padding:4px;display:flex;overflow-x:auto;box-shadow:0 1px 2px #0f172a08}.proj-tab-btn{color:var(--text-2);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .12s;display:inline-flex}.proj-tab-btn:hover{background:var(--surface-2);color:var(--text)}.proj-tab-btn.active{background:var(--navy);color:#fff;box-shadow:0 2px 6px #0a1f3633}.proj-tab-content{margin-top:4px}.proj-view-mode-toggle{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:2px;padding:2px;display:inline-flex}.view-mode-btn{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;transition:all .12s;display:grid}.view-mode-btn:hover{color:var(--text)}.view-mode-btn.on{background:var(--navy-soft);color:var(--ink)}.proj-grid-cards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.proj-card-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:16px;flex-direction:column;gap:14px;padding:20px;transition:all .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0f172a0a}.proj-card-item:hover{border-color:var(--border);transform:translateY(-2px);box-shadow:0 10px 24px -4px #0f172a1a}.proj-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.proj-card-header-left{align-items:center;gap:6px;min-width:0;display:flex}.proj-card-code{color:var(--ink);background:var(--navy-soft);white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:800}.proj-card-type{color:var(--muted);background:var(--surface-2);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600;overflow:hidden}.proj-card-title{color:var(--text);margin:0;font-size:17px;font-weight:800;line-height:1.35}.proj-card-meta-list{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.proj-card-meta-line{align-items:center;gap:8px;display:flex}.proj-card-icon{color:var(--faint);flex-shrink:0}.proj-card-scale-tag{color:var(--text-2);background:var(--surface-2);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.proj-card-val-tag{color:var(--ink);margin-left:auto;font-size:12.5px;font-weight:800}.proj-card-progress-section{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:5px;padding:10px 12px;display:flex}.proj-card-progress-label{color:var(--text-2);justify-content:space-between;font-size:12px;display:flex}.proj-card-progress-label b{color:var(--ink);font-weight:800}.proj-card-progress-track{background:var(--border);border-radius:999px;width:100%;height:6px;overflow:hidden}.proj-card-progress-fill{background:linear-gradient(90deg,#0a1f36,#0ea5e9);border-radius:999px;height:100%}.proj-card-progress-sub{color:var(--muted);justify-content:space-between;margin-top:2px;font-size:11px;display:flex}.proj-card-lag-text{align-items:center;gap:4px;font-weight:600;display:inline-flex}.proj-card-lag-text.warn{color:#b45309}.proj-card-lag-text.ok{color:#15803d}.proj-card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:10px;display:flex}.proj-card-leader{align-items:center;gap:8px;display:flex}.proj-card-leader-name{color:var(--text-2);font-size:12px;font-weight:600}.proj-card-action-btn{color:#f05528;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:12.5px;font-weight:700;transition:transform .15s;display:inline-flex}.proj-card-item:hover .proj-card-action-btn{transform:translate(3px)}.proj-tbl-code{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:800}@media (max-width:1024px){.proj-kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.proj-kpi-grid{grid-template-columns:1fr}.proj-header-card{padding:16px}}.side-item-icon{color:var(--muted);flex-shrink:0;transition:color .12s}.side-item:hover .side-item-icon{color:var(--text)}.side-item.on .side-item-icon{color:#f05528}.hdr-dropdowns-wrap{align-items:center;margin-left:12px;display:flex}.top-nav-bar{align-items:center;gap:2px;display:flex}.top-nav-item{position:relative}.top-nav-btn{letter-spacing:.02em;height:36px;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:0 10px;font-size:12.5px;font-weight:700;transition:all .12s;display:inline-flex}.top-nav-btn:hover{background:var(--surface-2);color:var(--text)}.top-nav-btn.on{background:var(--navy-soft);color:var(--ink)}.top-nav-btn.open{background:var(--border);color:var(--text)}.top-nav-chevron{color:var(--faint);transition:transform .15s}.top-nav-chevron.rotated{transform:rotate(180deg)}.top-nav-dropdown-menu{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:10px;flex-direction:column;gap:2px;min-width:230px;padding:6px;animation:.12s ease-out tecon-enter;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 12px 28px -4px #0f172a29}.top-nav-dropdown-header{letter-spacing:.06em;color:var(--faint);border-bottom:1px solid var(--border);margin-bottom:4px;padding:6px 10px 4px;font-size:10.5px;font-weight:800}.top-nav-dropdown-link{color:var(--text-2);white-space:nowrap;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .12s;display:flex}.top-nav-dropdown-link:hover{background:var(--surface-2);color:var(--ink)}.top-nav-dropdown-link.current{background:var(--navy-soft);color:var(--ink);font-weight:700}.top-dropdown-icon{color:var(--muted);flex-shrink:0}.top-nav-dropdown-link:hover .top-dropdown-icon{color:#f05528}.side-group-heading{letter-spacing:.05em;color:var(--faint);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;padding:8px 16px 4px;font-size:11px;font-weight:800;overflow:hidden}.side-item{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;border-left:3px solid #0000;align-items:center;gap:10px;padding:7px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:all .12s;display:flex;overflow:hidden}.side-item:hover{background:var(--surface-2);color:var(--text)}.side-item.on{background:var(--navy-soft);color:var(--ink);border-left-color:#f05528;font-weight:700}.side-item .grow{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.side-project-mode{flex-direction:column;display:flex}.side-back-to-projects{background:var(--surface-2);color:var(--ink);border-radius:8px;align-items:center;gap:8px;margin:0 10px 8px;padding:8px 14px;font-size:12px;font-weight:700;text-decoration:none;transition:all .12s;display:flex}.side-back-to-projects:hover{background:var(--border);color:#f05528}.side-project-header-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;margin:0 10px 12px;padding:10px 14px;display:flex;box-shadow:0 1px 3px #0f172a0a}.side-project-code-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.side-proj-code{color:var(--ink);background:var(--navy-soft);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:800}.side-proj-badge{border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.side-proj-badge.tone-info{background:var(--info-soft);color:#0369a1}.side-proj-badge.tone-warn{background:var(--warning-soft);color:#b45309}.side-proj-badge.tone-ok{background:var(--success-soft);color:#15803d}.side-proj-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:13px;font-weight:700;overflow:hidden}@media (max-width:1024px){.hdr-dropdowns-wrap{display:none}}.proj-quick-actions-bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:flex;box-shadow:0 1px 2px #0f172a08}.proj-quick-title{letter-spacing:.05em;color:var(--faint);margin-right:4px;font-size:11px;font-weight:800}.proj-quick-action-btn{background:var(--surface-2);border:1px solid var(--border);height:32px;color:var(--text-2);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:600;transition:all .12s;display:inline-flex}.proj-quick-action-btn:hover{background:var(--brand-soft);color:#f05528;border-color:#f05528;transform:translateY(-1px)}.proj-kpi-card.click{cursor:pointer;transition:all .15s}.proj-kpi-card.click:hover{border-color:var(--border);transform:translateY(-2px);box-shadow:0 4px 14px #0f172a14}.hdr-btn,.hdr-user .who b,.hdr-user .who span{white-space:nowrap}.hdr-user .who span{text-overflow:ellipsis;max-width:160px;display:block;overflow:hidden}.pf-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;display:grid}.pf-main{min-width:0}.pf-cards{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-bottom:18px;display:grid}.pf-card,.pf-today-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);min-width:0;padding:14px 16px}.pf-card h3{letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:12px;font-weight:700}.pf-donut-wrap{align-items:center;gap:16px;display:flex}.pf-donut{border-radius:50%;flex:none;place-items:center;width:92px;height:92px;display:grid}.pf-donut span{background:var(--surface);width:62px;height:62px;color:var(--text);border-radius:50%;place-items:center;font-size:22px;font-weight:800;display:grid}.pf-legend{flex:1;min-width:0;margin:0;padding:0;font-size:13px;list-style:none}.pf-legend li{white-space:nowrap;align-items:center;gap:8px;padding:4px 0;display:flex}.pf-legend i{border-radius:3px;flex:none;width:10px;height:10px}.pf-legend small{text-align:right;width:38px;color:var(--muted)}.pf-note{margin-top:10px;font-size:12.5px}.pf-note span{align-items:center;gap:5px;display:inline-flex}.pf-money{grid-template-columns:1fr auto;gap:7px 12px;margin:0;font-size:13px;display:grid}.pf-money dt{color:var(--text-2)}.pf-money dd{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-weight:700}.pf-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.pf-chips{flex-wrap:wrap;gap:6px;display:flex}.pf-search{background:var(--surface);border:1px solid var(--border);height:34px;color:var(--muted);border-radius:8px;align-items:center;gap:6px;padding:0 10px;display:flex}.pf-search input{background:0 0;border:0;outline:0;width:220px;font-size:13px}.pf-list{flex-direction:column;gap:8px;display:flex}.pf-empty{text-align:center;padding:24px}.pf-today{flex-direction:column;gap:12px;display:flex;position:sticky;top:72px}.pf-today-head{background:var(--navy);color:#fff;border-radius:var(--radius-card);justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;display:flex}.pf-today-head b{letter-spacing:.4px;text-transform:uppercase;font-size:15px}.pf-today-box h4{margin:0 0 8px;font-size:14px}.pf-more{align-items:center;gap:3px;font-size:12.5px;display:inline-flex}.pf-today-item{border-top:1px solid var(--border);color:var(--text);align-items:flex-start;gap:8px;padding:8px 0;font-size:13px;text-decoration:none;display:flex}.pf-today-item small{color:var(--muted);font-size:12px;display:block}.pf-today-item .badge{flex:none}@media (max-width:1200px){.pf-layout{grid-template-columns:minmax(0,1fr)}.pf-today{position:static}}@media (max-width:760px){.pf-search input{width:150px}}.side-tree summary{cursor:pointer;list-style:none}.side-tree summary::-webkit-details-marker{display:none}.side-count{color:var(--muted);background:var(--surface-2);border-radius:10px;padding:1px 7px;font-size:11.5px}.side-tree-leaf{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:5px 10px 5px 40px;font-size:13px;text-decoration:none;display:block;overflow:hidden}.side-tree-leaf:hover{background:var(--surface-2);color:var(--text)}.pf-legend .grow{text-overflow:ellipsis;min-width:0;overflow:hidden}.pf-legend b{text-align:right;min-width:18px}.pf-donut{width:84px;height:84px}.pf-donut span{width:58px;height:58px}.pf-today-item .badge{white-space:nowrap}.pf-mine{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.pf-mine b{color:var(--text);font-size:30px;font-weight:800}.pf-mine span{color:var(--muted);font-size:12.5px}.pf-roles{grid-template-columns:1fr 1fr;gap:6px 16px;margin:0;font-size:13px;display:grid}.pf-roles div{border-top:1px solid var(--border);justify-content:space-between;padding-top:6px;display:flex}.pf-roles dt{color:var(--text-2)}.pf-roles dd{margin:0;font-weight:700}.pf-parties{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-bottom:18px;display:grid}.pf-party{--tint:#eef4ff;--party:#1d4ed8;background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--party);border-radius:var(--radius-card);box-shadow:var(--shadow-card);min-width:0;padding:14px 16px}.pf-party.sub{--tint:#fff4ec;--party:#ea580c}.pf-party.supplier{--tint:#effaf3;--party:#15803d}.pf-party h3{letter-spacing:.4px;text-transform:uppercase;color:var(--party);margin:0 0 10px;font-size:12px;font-weight:700}.pf-party-big small{color:var(--muted);font-size:12px;display:block}.pf-party-big b{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.pf-party-bar{background:var(--tint);border-radius:4px;height:8px;margin:10px 0 12px;position:relative;overflow:hidden}.pf-party-bar i{border-radius:4px;position:absolute;inset:0 auto 0 0}.pf-party-bar .req{background:var(--party);opacity:.3}.pf-party-bar .paid{background:var(--party)}.pf-party dl{grid-template-columns:1fr auto;gap:7px 12px;margin:0;font-size:13px;display:grid}.pf-party dt{color:var(--text-2)}.pf-party dd{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.pf-party .strong{border-top:1px solid var(--border);padding-top:7px;font-weight:700}.pf-party dt.strong{color:var(--text)}.pf-pcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);color:var(--text);padding:14px 18px;text-decoration:none;display:block}.pf-pcard:hover{border-color:var(--navy)}.pf-pcard-head{align-items:flex-start;gap:8px;display:flex}.pf-pcard-title{flex:1;min-width:0}.pf-pcard-title b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;display:block;overflow:hidden}.pf-pcard-title small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;display:block;overflow:hidden}.pf-pcard-body{grid-template-columns:minmax(0,1.6fr) 84px minmax(0,1fr);align-items:center;gap:20px;margin:14px 0;display:grid}.pf-pcard-dates{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.pf-pcard-dates small,.pf-pcard-bars small,.pf-pcard-foot small{color:var(--muted);white-space:nowrap;margin-bottom:4px;font-size:12px;display:block}.pf-pcard-dates .d{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:6px;padding:4px 8px;font-size:12.5px;font-weight:600;display:inline-block}.pf-pcard-dates .d.start{color:#1d4ed8;background:#eef4ff}.pf-pcard-dates .d.end{color:#be123c;background:#fff1f2}.pf-pcard-dates .d.over{background:var(--danger-soft);color:var(--danger)}.pf-pcard-ring{border-radius:50%;place-items:center;width:84px;height:84px;display:grid}.pf-pcard-ring span{background:var(--surface);text-align:center;border-radius:50%;place-content:center;width:64px;height:64px;line-height:1.1;display:grid}.pf-pcard-ring b{font-size:17px}.pf-pcard-ring small{color:var(--muted);font-size:11px}.pf-pcard-bars{flex-direction:column;gap:8px;display:flex}.pf-pcard-bars>div{grid-template-columns:110px 1fr 40px;align-items:center;gap:8px;font-size:13px;display:grid}.pf-pcard-bars small{margin:0}.pf-pcard-bars b{text-align:right}.pf-hbar{background:var(--border);border-radius:4px;height:8px;overflow:hidden}.pf-hbar i{border-radius:4px;height:100%;display:block}.pf-hbar .plan{background:#2563eb}.pf-hbar .act{background:#f59e0b}.pf-pcard-foot{border-top:1px solid var(--border);grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding-top:12px;display:grid}@media (max-width:760px){.pf-pcard-body{grid-template-columns:1fr}.pf-pcard-ring{display:none}.pf-pcard-foot{grid-template-columns:repeat(2,1fr)}}.pf-pcard-foot b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14.5px}.pf-list{gap:12px}.snav{flex-direction:column;gap:4px;padding:0 8px;display:flex}.snav-search{border:1px solid var(--border);background:var(--surface-2);height:32px;color:var(--muted);border-radius:8px;align-items:center;gap:6px;margin:4px 2px 6px;padding:0 8px;display:flex}.snav-search:focus-within{border-color:var(--navy);background:var(--surface)}.snav-search input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:13px}.snav-search button{color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.snav-block{flex-direction:column;gap:1px;padding-bottom:6px;display:flex}.snav-head{letter-spacing:.5px;text-transform:uppercase;color:var(--muted);align-items:center;gap:5px;padding:8px 8px 4px;font-size:11px;font-weight:700;display:flex}.snav-empty{color:var(--muted);padding:8px;font-size:13px}.snav-leaf{border-radius:7px;align-items:center;display:flex;position:relative}.snav-leaf:hover{background:var(--surface-2)}.snav-leaf.on{background:var(--navy-soft)}.snav-leaf.on:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:-8px}.snav-link{min-width:0;color:var(--text-2);cursor:pointer;flex:1;align-items:center;gap:9px;padding:6px 8px;font-size:13.5px;text-decoration:none;display:flex}.snav-leaf.on .snav-link{color:var(--ink);font-weight:600}.snav-ico{color:var(--muted);flex:none}.snav-leaf.on .snav-ico{color:var(--accent)}.snav-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.snav-text small{color:var(--muted);font-size:11px;font-weight:400;display:block}.snav-group{border-radius:8px}.snav-group-btn{width:100%;color:var(--text);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;padding:8px;font-size:13.5px;font-weight:600;display:flex}.snav-group-btn:hover{background:var(--surface-2)}.snav-group.current>.snav-group-btn .snav-ico{color:var(--accent)}.snav-count{color:var(--muted);background:var(--surface-2);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.snav-chev{color:var(--muted);transition:transform .12s}.snav-group.open .snav-chev{transform:rotate(90deg)}.snav-group-body{border-left:1px solid var(--border);margin:0 0 6px 15px;padding-left:8px}.snav-sub{color:var(--muted);padding:8px 8px 2px;font-size:11px;font-weight:600}.snav-rail-group{border-bottom:1px solid var(--border);margin-bottom:6px;padding-bottom:6px}.side.collapsed .snav-link{justify-content:center}.soon-dot{background:#cbd5e1;border-radius:50%;flex:none;width:6px;height:6px}.soon-pill{color:#c2410c;vertical-align:middle;background:#fff4ec;border:1px solid #fed7aa;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600}.soon-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 12px;display:flex}.soon-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow-x:auto}.soon-ghost td i{background:var(--surface-2);border-radius:5px;width:70%;height:10px;display:block}.soon-note{text-align:center;color:var(--muted);margin:0;padding:16px;font-size:13px}.top-nav-dropdown-menu.wide{flex-direction:row;gap:4px;min-width:0}.top-nav-col{flex-direction:column;gap:2px;min-width:220px;display:flex}.top-nav-dropdown-link .grow{white-space:nowrap}.top-nav-item:nth-last-child(-n+3) .top-nav-dropdown-menu{left:auto;right:0}.snav-module{letter-spacing:.2px;color:#fff;align-items:center;gap:10px;padding:4px 8px 12px;font-size:15px;font-weight:800;display:flex}.snav-module svg{background:var(--accent);color:#fff;border-radius:8px;width:30px;height:30px;padding:7px}.side{--side-text:#c7d3e3;--side-muted:#7f93ad;--side-hover:#ffffff12;--side-line:#ffffff1a;background:var(--side-bg);color:var(--side-text);border-right:0}.side .side-collapse-bar{border-bottom-color:var(--side-line)}.side .side-collapse-btn{color:var(--side-muted)}.side .side-collapse-btn:hover{background:var(--side-hover);color:#fff}.side .snav-search{border-color:var(--side-line);color:var(--side-muted);background:#ffffff0f}.side .snav-search:focus-within{background:#ffffff1a;border-color:#ffffff4d}.side .snav-search input{color:#fff}.side .snav-search input::placeholder,.side .snav-head,.side .snav-sub,.side .snav-empty,.side .snav-text small{color:var(--side-muted)}.side .snav-link,.side .side-tree-leaf{color:var(--side-text)}.side .snav-ico,.side .snav-chev{color:var(--side-muted)}.side .snav-leaf:hover,.side .snav-group-btn:hover,.side .side-tree-leaf:hover{background:var(--side-hover);color:#fff}.side .snav-leaf:hover .snav-link,.side .snav-leaf:hover .snav-ico{color:#fff}.side .snav-leaf.on{background:#f0552829}.side .snav-leaf.on .snav-link{color:#fff;font-weight:700}.side .snav-leaf.on .snav-ico{color:var(--accent)}.side .snav-group-btn{color:#fff;font-weight:700}.side .snav-group-btn .snav-ico{color:#9fb3cc}.side .snav-group.current>.snav-group-btn .snav-ico{color:var(--accent)}.side .snav-count{color:var(--side-text);background:#ffffff14}.side .snav-group-body{border-left-color:var(--side-line)}.side .soon-dot{background:#4b6382}.side .side-back-to-projects{color:var(--side-text);background:#ffffff0f}.side .side-back-to-projects:hover{background:var(--side-hover);color:#fff}.side .side-project-header-box{border-color:var(--side-line);box-shadow:none;background:#ffffff0f}.side .side-proj-name{color:#fff}.side .side-proj-code{color:#fff;background:#ffffff1f}.side-modules,.side-account{display:none}.hdr-desk{display:contents}@media (max-width:1024px){.side{flex-direction:column;padding:12px 0 0;display:flex;width:min(320px,86vw)!important}.side-collapse-bar,.hdr-desk,.hdr-user{display:none}.side-nav-inner{flex:1}.side-modules{border-bottom:1px solid var(--side-line);grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;padding:0 12px 12px;display:grid}.side-modules a{color:var(--side-text);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;font-size:11px;font-weight:600;line-height:1.2;text-decoration:none;display:flex}.side-modules a svg{color:var(--side-muted)}.side-modules a.on{color:#fff;background:#f0552829}.side-modules a.on svg{color:var(--accent)}.side-account{background:var(--side-bg);border-top:1px solid var(--side-line);align-items:center;gap:10px;margin-top:12px;padding:12px;display:flex;position:sticky;bottom:0}.side-account .who-m{min-width:0;color:var(--side-muted);flex-direction:column;flex:1;font-size:12px;display:flex}.side-account .who-m b{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.side-account button{width:36px;height:36px;color:var(--side-text);cursor:pointer;background:#ffffff0f;border:0;border-radius:8px;place-items:center;display:grid}.side-account button:hover{color:#fff;background:#ffffff1f}.side .snav-link,.side .snav-group-btn{min-height:40px}.hdr-logo img{height:26px!important}}:root[data-theme=dark] .pf-party{--tint:#ffffff14;--party:#60a5fa}:root[data-theme=dark] .pf-party.sub{--party:#fb923c}:root[data-theme=dark] .pf-party.supplier{--party:#4ade80}@media (max-width:1480px){.hdr{gap:10px}.hdr-btn .lbl{display:none}}:has(>table.tbl){overflow-x:auto}.tbl th,.tbl td{white-space:nowrap}.tbl td>div{text-overflow:ellipsis;max-width:360px;overflow:hidden}.tbl td.wrap,.tbl td.wrap>div{white-space:normal;min-width:240px}@media (max-width:760px){.tbl th:first-child,.tbl td:first-child{z-index:1;background:var(--surface);box-shadow:inset -1px 0 0 var(--line);position:sticky;left:0}.tbl td>div{max-width:220px}}.card.tcard{padding:0;overflow:hidden}.tcard-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.tcard-bar .subtabs{margin:0}.tcard-search{border:1px solid var(--border);border-radius:var(--radius-button);background:var(--surface);width:260px;max-width:100%;height:36px;color:var(--muted);align-items:center;gap:6px;padding:0 10px;display:flex}.tcard-search:focus-within{border-color:var(--ink)}.tcard-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:13.5px}.tcard-search button{color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.tcard-bar .select{width:auto;height:36px}.tcard-body{overflow-x:auto}.tcard .pager{padding:10px 16px}@media (max-width:760px){.tcard-bar{padding:10px 12px}.tcard-search{order:10;width:100%}.grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
