:root{--bg:#f6f8fc;--surface:#ffffff;--surface2:#f5f7fb;--canvas:#f7f9fc;--ink:#1f2d3d;--ink2:#66758a;--muted:#98a3b5;--line:#e5eaf2;--line2:#eef2f8;--nav:#ffffff;--nav-hover:#edf4ff;--blue:#0b5cff;--blue-hover:#0a52e6;--blue-weak:#edf4ff;--green:#0e9f6e;--green-weak:#e8f8ef;--amber:#d18b00;--amber-weak:#fff6e8;--red:#e34d59;--red-weak:#fdecec;--info:#0b5cff;--shadow-0:none;--shadow-1:0 1px 2px rgba(31,45,61,0.04),0 8px 24px rgba(31,45,61,0.05);--shadow-2:0 16px 40px rgba(31,45,61,0.14);--shadow:var(--shadow-1);--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--radius:var(--radius-lg);--sidebar-width:232px;--sidebar-collapsed:76px;--topbar-height:60px;--content-max:1440px;--brand-ink:#1f2d3d;--tabbar-height:64px}*{box-sizing:border-box}html{width:100%;max-width:100%;overscroll-behavior-x:none;text-size-adjust:100%}body,html{overflow-x:clip}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5}.app-shell,.content,.main,body{width:100%;max-width:100%;min-width:0}button,input,select{font:inherit}button{cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.app-select-trigger,.btn,.create-btn,.crumb-flag,.drawing-badge,.equip-badge,.health-pill,.icon-btn,.project-tab,.risk-badge,.settings-tab,.ws-chip,a.btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-align:center}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);position:fixed;inset:0 auto 0 0;z-index:30;display:flex;flex-direction:column;background:var(--nav);border-right:1px solid var(--line);padding:16px 12px 12px;color:var(--ink2)}.brand-videopro{display:block;padding:4px 8px 8px;margin-bottom:0}.brand-logo-full{width:134px;height:28px;display:flex;align-items:center}.brand-logo-full svg{width:134px;height:28px;display:block}.brand-product{display:flex;align-items:baseline;gap:8px;margin-top:6px;padding-left:2px}.brand-product-name{font-size:12px;font-weight:650;letter-spacing:.02em;color:#5e6e82}.ws-switcher{position:relative;z-index:4;margin:4px 4px 18px}.ws-switcher-row{width:100%;min-height:56px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;border:1px solid #dde5f0;background:#fafbfd;color:#253041;font:inherit;text-align:left;cursor:pointer}.ws-switcher-row:hover{background:#edf4ff;border-color:#c9daf8}.ws-switcher-row.is-open{background:#edf4ff;border-color:#0b5cff}.ws-switcher-row:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(11,92,255,.18)}.ws-mark{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#0b5cff;color:#fff;font-size:13px;font-weight:700;line-height:1}.ws-switcher-copy{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.ws-switcher-name{font-size:14px;font-weight:600;color:#253041;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-switcher-meta{font-size:11px;font-weight:500;color:#5e6e82}.ws-switcher-caret{flex-shrink:0;color:#5e6e82;font-size:12px;line-height:1}.ws-switcher-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;display:grid;grid-gap:2px;gap:2px;padding:8px;border-radius:12px;border:1px solid #dde5f0;background:#fff;box-shadow:0 8px 24px rgba(31,45,61,.08)}.ws-switcher-option{width:100%;min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#253041;font-size:13px;font-weight:600;text-align:left;cursor:pointer}.ws-switcher-option.is-current,.ws-switcher-option:hover{background:#edf4ff;color:#0b5cff}.ws-switcher-sep{height:1px;margin:4px 2px;background:#dde5f0}.ws-switcher-hint{padding:6px 10px 4px;font-size:11px;color:#5e6e82}.ws-chip{display:inline-flex;align-items:center;justify-content:center;height:25px;padding:0 9px;border-radius:999px;background:#edf4ff;border:1px solid #d8e6ff;color:var(--blue);font-size:9px;font-weight:700;line-height:1;text-align:center}.ws-chip.ghost{background:#fff;border-color:#e2e8f2;color:#6a788a}.nav-label{padding:12px 12px 8px;color:#a0acba;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.nav-link{width:calc(100% - 8px);display:flex;align-items:center;gap:10px;margin:2px 4px;padding:10px 12px;border-radius:var(--radius-md);color:var(--ink2);font-weight:600;font-size:13px;background:transparent;border:1px solid transparent}.nav-link svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav-link:hover{color:var(--ink)}.nav-link.active,.nav-link:hover{background:var(--blue-weak);border-color:transparent}.nav-link.active{color:var(--blue);box-shadow:inset 3px 0 0 var(--blue);font-weight:750}.nav-link.active svg{stroke:var(--blue)}.sidebar-footer{margin-top:auto;padding-top:12px;display:grid;grid-gap:6px;gap:6px;border-top:1px solid var(--line)}.side-info{border-radius:14px;background:#fff;border:1px solid #e5ebf4;padding:10px 12px}.side-info-t{font-size:9px;color:#95a1b2}.side-info-b{font-size:11px;color:#344256;font-weight:680;margin-top:4px}.main{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));min-width:0}.mobile-search-btn,.nav-backdrop,.nav-toggle{display:none}.table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.topbar{height:var(--topbar-height);position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(160%) blur(16px);backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid var(--line)}.crumb-stack{display:flex;flex-direction:column;gap:4px}.crumb-flag{height:24px;width:max-content;padding:0 10px;border-radius:999px;background:#edf4ff;border:1px solid #d8e6ff;color:var(--blue);font-size:9px;font-weight:700}.crumb{font-size:13px;color:#768395}.crumb b{color:var(--ink);font-weight:650}.top-actions{gap:10px}.search-shell,.top-actions{display:flex;align-items:center}.search-shell{position:relative}.search{width:280px;height:36px;padding:0 48px 0 14px;border-radius:999px;border:1px solid #dfe7f3;background:#f4f7fb;outline:none;color:#1f2329;font-size:13px}.search:focus{border-color:#b9d0ff;box-shadow:0 0 0 4px rgba(11,92,255,.1)}.search-hint{position:absolute;right:8px;min-width:38px;height:24px;border-radius:999px;background:#f5f8fd;border:1px solid #e4ebf5;color:#8e9aac;display:grid;place-items:center;font-size:10px;font-weight:700;pointer-events:none;z-index:1}.search-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;max-height:min(70vh,460px);overflow:auto;border-radius:16px;border:1px solid #e1e8f3;background:#fff;box-shadow:0 18px 40px rgba(20,36,70,.12);padding:8px}.search-group-label,.search-panel-empty,.search-panel-foot{padding:10px 12px;color:#6b778a;font-size:12px}.search-group-label{font-weight:700;color:#3d4a5f;letter-spacing:.02em}.search-item{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:10px;padding:10px 12px;cursor:pointer}.search-item:focus-visible,.search-item:hover{background:#f3f7ff;outline:none}.search-item-title{font-size:13px;font-weight:650;color:#1f2329}.search-item-meta{margin-top:2px;font-size:12px;color:#7a8699}.search-panel-foot a{color:#0b5cff;text-decoration:none;font-weight:600}.create-btn,.icon-btn,.user-chip{border:1px solid #e1e8f3;background:#fff}.icon-btn{min-width:36px;min-height:36px;width:36px;height:36px;padding:0;border-radius:var(--radius-md);color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.icon-btn:hover{background:rgba(11,92,255,.08);border-color:#d6e3ff;color:var(--blue)}.icon-btn:active{transform:translateY(1px)}.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(11,92,255,.12)}.create-btn{justify-content:center;height:42px;padding:0 18px;border-radius:999px;border:0;background:linear-gradient(135deg,#0b5cff,#2f76ff);box-shadow:0 10px 24px rgba(11,92,255,.22);color:#fff;font-size:12px;font-weight:700;line-height:1;text-align:center}.create-btn,.user-chip{display:inline-flex;align-items:center;gap:8px}.user-chip{height:40px;padding:0 8px 0 4px;border-radius:999px;cursor:pointer;font:inherit;color:inherit;transition:background .15s ease,border-color .15s ease}.user-chip:hover,.user-chip[aria-expanded=true]{background:rgba(11,92,255,.06);border-color:#d6e3ff}.user-chip:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(11,92,255,.12)}.avatar{width:34px;height:34px;border-radius:999px;background:linear-gradient(135deg,#0b5cff,#3b82ff);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:750}.user-text{display:flex;flex-direction:column;line-height:1.25}.user-text b{font-size:12px;color:#1f2329;font-weight:740}.user-text span{font-size:10px;color:#8a94a3}.health-pill{height:28px;padding:0 10px;border-radius:999px;border:1px solid #d8e6ff;background:#edf4ff;color:var(--blue);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-align:center}.health-pill.error{background:#fff4f4;border-color:#f3d0d3;color:var(--red)}.content{padding:20px 32px 32px;width:100%;max-width:none;margin:0}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.page-head.compact{margin-bottom:14px}.page-head h1{font-size:28px;font-weight:800;letter-spacing:-.025em;margin:0 0 4px}.page-head p{margin:0;font-size:13px;color:#8d99a8}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;height:auto;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);color:var(--ink2);font-weight:600;font-size:13px;line-height:1;text-align:center;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.btn:hover:not(:disabled){background:var(--surface2);border-color:#d5deea}.btn:active:not(:disabled){background:var(--blue-weak)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(11,92,255,.14)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:none}.btn.primary:hover:not(:disabled){background:var(--blue-hover);border-color:var(--blue-hover);box-shadow:none}.btn.ghost{background:transparent;border-color:transparent;color:#5a6b7d;box-shadow:none}.btn.ghost:hover:not(:disabled){background:#f3f7fc;color:#243447}a.btn,a.btn.primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;text-align:center;white-space:nowrap}.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:16px;border-radius:0;border:0;background:transparent;box-shadow:none}.kpi{padding:22px 24px;position:relative;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-1)}.kpi+.kpi:before{display:none}.k-label{font-size:13px;font-weight:650;color:#7b8794}.k-value{font-size:34px;font-weight:800;letter-spacing:-.04em;line-height:1.1;margin-top:8px;color:var(--ink);display:flex;align-items:baseline;gap:6px}.k-unit{font-size:14px;font-weight:650;letter-spacing:0;color:var(--ink2)}.k-value.danger{color:var(--red)}.k-foot{font-size:12px;color:#9aa7b5;margin-top:6px}.grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:14px;gap:14px}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.span-6{grid-column:span 6}.span-12{grid-column:span 12}.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:20px 22px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.title{font-size:15px;font-weight:780}.desc{font-size:11px;color:#93a0af;margin-top:3px}.project-row{display:grid;grid-template-columns:minmax(180px,1fr) 100px 110px 100px 150px;grid-gap:14px;gap:14px;align-items:center;min-height:74px}.dashboard-more{margin-top:16px;padding:16px}.dashboard-more>summary{cursor:pointer;font-weight:700;color:var(--ink)}.dashboard-more[open]>summary{margin-bottom:16px}.project-main b{font-size:13px;font-weight:750}.project-main div{font-size:11px;color:var(--muted);margin-top:4px}.progress{height:6px;background:#edf0f4;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--blue);border-radius:99px}.attention{padding:11px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:10px 1fr auto;grid-gap:10px;gap:10px;align-items:start}.attention:first-child{border-top:0;padding-top:0}.marker{width:7px;height:7px;border-radius:50%;margin-top:5px;background:var(--amber)}.marker.high{background:var(--red)}.a-title{font-size:12px;font-weight:680}.a-meta{font-size:10px;color:var(--muted);margin-top:4px}.mini-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.mini-row:first-child{border-top:0}.mini-row b{font-size:12px}.mini-row span{font-size:11px;color:var(--muted)}.status-line{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:650}.placeholder-note{font-size:12px;color:var(--muted);line-height:1.6}.loading-screen{min-height:100vh;display:grid;place-items:center;color:#5e6e82;font-weight:650}.workspace-switch{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;padding:0;border:0;background:transparent;text-align:left}.workspace-switch:disabled{cursor:default}.workspace-caret{font-size:10px;font-weight:750;color:var(--blue)}.tenant-menu{display:grid;grid-gap:6px;gap:6px;margin-top:10px}.tenant-option{height:32px;padding:0 10px;border-radius:10px;border:1px solid #e2e8f2;background:#fff;color:#344256;font-size:12px;font-weight:680;text-align:left}.tenant-option.active,.tenant-option:hover{border-color:#d6e3ff;background:#edf4ff;color:var(--blue)}.form-error{margin:4px 0 10px;color:var(--red);font-size:12px;font-weight:650}.project-row-head{min-height:34px;color:#8490a2;font-size:10px;font-weight:700}.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(23,32,46,.28);display:flex;align-items:center;justify-content:center;padding:24px}.modal-layer{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;max-width:100%;max-height:100%}.modal-nested-overlay{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(16,24,40,.36);pointer-events:auto}.modal-card{width:min(480px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-2)}.form-grid label,.modal-card label,.surface>label{display:block;font-size:11px;color:#7d8999;margin:10px 0 6px}.form-grid .input,.surface>.input{width:100%}.modal-card input:not([type=checkbox]):not([type=file]):not([type=radio]):not([type=hidden]),.modal-card select{width:100%;height:42px;border:1px solid #dfe7f3;border-radius:12px;padding:0 12px;outline:none;background:#fff}.modal-card input:not([type=checkbox]):not([type=file]):not([type=radio]):not([type=hidden]):focus,.modal-card select:focus{border-color:#b9d0ff;box-shadow:0 0 0 4px rgba(11,92,255,.1)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.toast{position:fixed;right:28px;bottom:28px;z-index:90;min-width:180px;max-width:min(420px,calc(100vw - 48px));padding:12px 16px;border-radius:14px;background:#1f2d3d;color:#fff;font-size:13px;font-weight:680;box-shadow:0 12px 32px rgba(16,24,40,.2)}.toast.success{background:#0e9f6e}.toast.error{background:#e34d59}.toast.warning{background:#d18b00}.toast.info{background:#0b5cff}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-bubble{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);padding:6px 10px;border-radius:8px;background:#1f2d3d;color:#fff;font-size:11px;font-weight:650;white-space:nowrap;pointer-events:none;z-index:50;box-shadow:0 8px 20px rgba(16,24,40,.18)}.popover-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:220px;padding:8px;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-2)}.popover-panel.resource-more-menu.is-portal{position:fixed;right:auto;top:auto;z-index:2100}.popover-item{width:100%;display:flex;align-items:center;min-height:36px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#344256;font-size:13px;font-weight:650;text-align:left;cursor:pointer}.popover-item:hover:not(:disabled){background:#f5f8fc}.popover-item:disabled{opacity:.5;cursor:not-allowed}.popover-item.is-warning{color:#b54708}.popover-item.is-danger{color:#b42318}.popover-sep{height:1px;margin:6px 4px;background:#eef2f7}.popover-meta{padding:8px 12px 10px}.popover-meta b{display:block;font-size:13px;color:#1f2329}.popover-meta span{display:block;margin-top:2px;font-size:11px;color:#8a94a3}.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.settings-tab{height:36px;padding:0 16px;border-radius:999px;border:1px solid #e1e8f3;background:#fff;color:#6f7c90;font-size:12px;font-weight:700;white-space:nowrap}.settings-tab.active{background:#edf4ff;border-color:#d6e3ff;color:var(--blue)}.import-steps{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.import-step{font-size:11px;color:#8a94a3;font-weight:700}.import-step.active{color:var(--blue)}.import-note{margin:0 0 14px;padding:10px 12px;border-radius:12px;background:#edf4ff;color:#344256;font-size:12px}.btn:disabled{opacity:.6;cursor:not-allowed}.login-page{min-height:100vh;display:grid;place-items:center;padding:40px 20px}.login-card{width:min(420px,100%);background:#fff;border:1px solid #e6edf6;border-radius:24px;padding:36px 32px;box-shadow:0 16px 40px rgba(16,24,40,.06)}.login-card h1{margin:16px 0 6px;font-size:24px}.login-card p{margin:0 0 24px;color:var(--muted);font-size:12px}.login-card label{display:block;font-size:11px;color:#7d8999;margin-bottom:6px}.login-card input{width:100%;height:42px;border:1px solid #dfe7f3;border-radius:12px;padding:0 12px;margin-bottom:14px;outline:none}.login-card input:focus{border-color:#b9d0ff;box-shadow:0 0 0 4px rgba(11,92,255,.1)}.login-card .btn.primary{width:100%;margin-top:8px}.login-logo svg{width:180px;height:auto}.project-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-radius:var(--radius-xl);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1);padding:22px 24px 20px;margin-bottom:16px}.project-nav{display:flex;gap:4px;min-height:48px;align-items:center;padding:0;border-radius:0;background:transparent;border:0;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto}.project-nav-mobile{display:none}.project-nav-mobile .resource-more{margin-left:auto}.project-tab{height:46px;padding:0 14px;border:0;border-radius:0;background:transparent;color:var(--ink2);font-size:13px;font-weight:600;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}.project-tab.active{background:transparent;color:var(--blue);border-bottom-color:var(--blue);font-weight:700}@media (max-width:1440px){.search{width:280px}}@media (max-width:1280px){:root{--sidebar-width:220px}.topbar{padding:0 18px}.search{width:220px}.user-text{display:none}.span-12,.span-4,.span-6,.span-8{grid-column:span 12}.kpi-strip{grid-template-columns:repeat(2,1fr)}.sidebar-footer{display:none}}.subnav{gap:8px}.subnav,.toolbar{display:flex;flex-wrap:wrap;margin-bottom:14px}.toolbar{gap:10px}.input,.select,.toolbar .input,.toolbar .select{height:38px;border:1px solid #dfe7f3;border-radius:12px;padding:0 12px;background:#fff}textarea.input{height:auto;min-height:88px;padding:10px 12px;resize:vertical;font:inherit}.warn-text{color:#c47a12;font-size:12px;font-weight:650}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.checkbox-row{display:flex;align-items:flex-start;gap:8px;margin:10px 0;font-size:13px}.procurement-card-list{display:none}@media (max-width:900px){.procurement-aggregate-table{display:none}.procurement-card-list{display:grid;grid-gap:10px;gap:10px}.procurement-card{border:1px solid #e4ebf5;border-radius:14px;padding:12px 14px;background:#fff}.procurement-card header{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.procurement-card p{margin:4px 0;color:#5b6575;font-size:13px}}.tablewrap{overflow:auto}.list-pager{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:12px;color:#5b6575}.procurement-aggregate-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:#fff;box-shadow:0 1px 0 var(--line)}.mw-more-tabs{position:relative}.mw-more-tabs>summary{list-style:none;cursor:pointer}.mw-more-tabs>summary::-webkit-details-marker{display:none}.mw-more-menu{position:absolute;right:0;z-index:30;display:flex;flex-direction:column;min-width:148px;padding:8px;background:#fff;border:1px solid #e6edf6;border-radius:12px;box-shadow:var(--shadow-2)}.mw-more-menu button{border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;color:#1c2733}.mw-more-menu button:hover{background:var(--blue-weak)}.notify-attention{margin-top:16px}.notify-attention h2{margin:0 0 8px;font-size:14px}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:10px;color:#8490a2;font-weight:700;padding:8px 10px}.data-table td,.data-table th{border-bottom:1px solid var(--line)}.data-table td{padding:12px 10px;font-size:12px;vertical-align:top}.data-table tbody tr{cursor:pointer}.data-table tbody tr.row-focus,.data-table tbody tr:hover{background:#f7faff}.risk-badge{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:999px;background:#f3f6fa;color:#5e6e82;font-size:10px;font-weight:700;line-height:1;text-align:center}.risk-badge.soon{background:#fff6e8;color:#d18b00}.risk-badge.undated{background:#f3f6fa;color:#5e6e82}.risk-badge.high,.risk-badge.overdue{background:#fff4f4;color:#e34d59}button.attention{width:100%;background:transparent;border-left:0;border-right:0;border-bottom:0}.clickable-row{cursor:pointer}.modal-card.wide{width:min(640px,calc(100vw - 24px));max-height:90vh;overflow:auto}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.card-header-main{min-width:0;flex:1 1}.card-header-title{font-size:15px;font-weight:780;letter-spacing:-.01em;color:#1c2733}.card-header-desc{font-size:12px;color:#7b8794;margin-top:4px;line-height:1.45}.card-header-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}.panel-block{min-width:0}.empty-panel{padding:28px 20px;border:1px dashed var(--line);border-radius:var(--radius-lg);background:var(--surface2);text-align:center}.empty-panel.compact{padding:16px 12px}.empty-panel-title{font-size:13px;font-weight:720;color:#3d4c5c}.empty-panel-desc{margin:6px 0 0;font-size:12px;color:#8a97a6;line-height:1.45}.attention-list{display:flex;flex-direction:column;gap:10px}.attention-row{position:relative;display:grid;grid-template-columns:4px 1fr auto;grid-gap:12px;gap:12px;width:100%;padding:12px 14px;border:1px solid #e6edf6;border-radius:14px;background:#fff;text-align:left;box-shadow:0 1px 2px rgba(16,24,40,.03);transition:box-shadow .15s ease,border-color .15s ease,transform .15s ease}.attention-row:hover{border-color:#d6e3f7;box-shadow:0 8px 20px rgba(16,24,40,.08);transform:translateY(-1px)}.attention-rail{display:block;width:4px;border-radius:99px;background:#c5d0dc;align-self:stretch}.attention-rail.tone-danger,.attention-row.tone-danger .attention-rail{background:#e34d59}.attention-rail.tone-warn,.attention-row.tone-warn .attention-rail{background:#d18b00}.attention-rail.tone-neutral,.attention-row.tone-neutral .attention-rail{background:#9aa7b5}.attention-body{min-width:0}.attention-top{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.attention-title{font-size:13px;font-weight:720;color:#1c2733;line-height:1.35}.attention-meta{margin-top:4px;font-size:11px;color:#8490a2;display:flex;flex-wrap:wrap;gap:4px}.attention-aside{text-align:right;flex-shrink:0}.attention-date-label{font-size:10px;color:#93a0af;font-weight:650}.attention-date{margin-top:4px;font-size:12px;font-weight:720;color:#3d4c5c}.attention-date.tone-danger{color:#e34d59}.attention-date.tone-warn{color:#d18b00}.issue-recent-list{display:flex;flex-direction:column;min-height:0}.issue-recent-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;width:100%;min-height:56px;height:auto;padding:8px 2px;border:0;border-bottom:1px solid var(--line2);border-radius:0;background:transparent;text-align:left;box-shadow:none;cursor:pointer}.issue-recent-row:last-child{border-bottom:0}.issue-recent-row:hover{background:#f7faff}.issue-recent-row.is-resolved{opacity:.72}.issue-recent-main{min-width:0;flex:1 1}.issue-recent-title{font-size:13px;font-weight:720;color:#1c2733;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-height:2.6em}.issue-recent-meta{margin-top:2px;display:flex;flex-wrap:nowrap;gap:8px;font-size:11px;color:#8490a2;align-items:center;min-width:0}.issue-recent-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-recent-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:88px;padding:8px 2px;color:var(--ink2);font-size:12px;text-align:center}.issue-recent-empty b{color:var(--ink);font-size:13px}.priority-chip,.status-chip,.type-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:720;line-height:1;background:#f3f6fa;color:#5e6e82;white-space:nowrap}.type-chip{background:#edf4ff;color:#0b5cff}.priority-chip.tone-danger,.status-chip.tone-danger{background:#fff4f4;color:#e34d59}.priority-chip.tone-warn,.status-chip.tone-warn{background:#fff6e8;color:#d18b00}.status-chip.tone-ok{background:#e8f8ef;color:#0e9f6e}.status-chip.tone-info{background:#edf4ff;color:#0b5cff}.priority-chip.tone-neutral,.status-chip.tone-neutral{background:#f3f6fa;color:#5e6e82}.form-label-hint{margin-left:6px;font-size:10px;font-weight:600;color:#93a0af}.procurement-summary{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:#f5f8fc;color:#4f5f72;font-size:12px;font-weight:650}.modal-card.form-sheet{width:min(720px,calc(100vw - 24px));max-height:min(92vh,900px);min-height:0;padding:0;display:flex;flex-direction:column;overflow:hidden}.form-sheet-header{padding:22px 24px 12px;border-bottom:1px solid #eef2f7;flex-shrink:0}.form-sheet-header .title{font-size:17px}.form-sheet-body{padding:16px 24px 8px;overflow:auto;flex:1 1;min-height:0}.form-sheet-footer{margin-top:0;padding:14px 24px 20px;border-top:1px solid #eef2f7;flex:0 0 auto;background:#fff}.form-section{margin-bottom:18px;padding:0;border:0;border-radius:0;background:transparent}.form-section-title{font-size:12px;font-weight:780;color:#2a3848;margin-bottom:6px;letter-spacing:-.01em}.form-hint{margin:6px 0 0;font-size:11px;color:#8490a2;line-height:1.45}.form-field-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.form-char-count{flex-shrink:0;margin-top:6px;font-size:10px;font-weight:650;color:#93a0af}.form-char-count.is-over{color:#d18b00}.form-textarea{width:100%;min-height:96px;resize:vertical;border:1px solid #dfe7f3;border-radius:12px;padding:10px 12px;font:inherit;line-height:1.45;outline:none;background:#fff}.form-textarea:focus{border-color:#b9d0ff;box-shadow:0 0 0 4px rgba(11,92,255,.08)}.modal-card.form-sheet label{margin-top:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 12px;gap:0 12px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.projects-page-head{align-items:center;margin-bottom:18px}.projects-page-head h1{font-size:30px}.project-create-btn{min-height:42px;padding:0 18px;border-radius:12px;box-shadow:0 7px 18px rgba(11,92,255,.18)}.project-create-btn>span{font-size:19px;font-weight:500;margin-top:-1px}.project-filter-bar{display:flex;align-items:center;gap:18px;min-height:58px;margin-bottom:14px;padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 4px 14px rgba(27,46,78,.04)}.project-filter-group{display:flex;align-items:center;gap:10px;min-width:0}.project-filter-bar>.project-filter-group:first-child{padding-left:0;border-left:0}.project-filter-label{color:#8794a6;font-size:11px;font-weight:700;white-space:nowrap}.project-filter-bar .project-scope-tabs{gap:3px;flex-wrap:nowrap;margin:0;padding:4px;border-radius:12px;background:#f3f6fa}.project-scope-tab.project-tab{height:32px;padding:0 13px;margin:0;border:0;border-radius:9px;color:#66768a;font-size:12px;font-weight:650}.project-scope-tab.project-tab:hover{color:#34445a;background:rgba(255,255,255,.64)}.project-scope-tab.project-tab.active{color:var(--blue);background:#fff;border:0;box-shadow:0 2px 8px rgba(34,61,99,.1)}.project-lifecycle-group{padding-left:18px;border-left:1px solid var(--line)}.project-filter-bar .lifecycle-filter{flex-wrap:nowrap;gap:3px;padding:4px;border-radius:12px;background:#f3f6fa}.project-filter-bar .lifecycle-filter-btn{min-height:32px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:#66768a;font-size:12px;font-weight:650}.project-filter-bar .lifecycle-filter-btn:hover{color:#34445a;background:rgba(255,255,255,.64)}.project-filter-bar .lifecycle-filter-btn.active{color:var(--blue);background:#fff;box-shadow:0 2px 8px rgba(34,61,99,.1)}.project-filter-count{margin-left:auto;padding-right:8px;color:#8794a6;font-size:12px;font-weight:650;white-space:nowrap}.project-list-surface{overflow:hidden;padding:0}.project-list-surface .project-row{grid-template-columns:minmax(260px,1fr) 92px 110px 150px 176px 40px;gap:20px;min-height:92px;padding:0 22px;border-top:1px solid var(--line2);transition:background .15s ease}.project-list-surface .project-row:not(.project-row-head):hover{background:#f9fbff}.project-list-surface .project-row-head{min-height:44px;border-top:0;background:#f8fafd;color:#8090a5;font-size:10px;letter-spacing:.04em}.project-list-surface .project-main{min-width:0;padding:14px 0}.project-list-surface .project-main b{display:block;overflow:hidden;color:var(--ink);font-size:14px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.project-list-surface .project-main:hover b{color:var(--blue)}.project-list-surface .relation-badges{margin-top:7px}.project-manager-name{color:#35445a;font-size:13px;font-weight:650}.project-manager-name.is-empty{color:#a06a00}.project-progress-cell{display:grid;align-content:center;grid-gap:10px;gap:10px;min-width:0}.project-progress-copy{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.project-progress-copy strong{color:#28384f;font-size:13px;font-weight:760}.project-progress-copy span{color:#9aa6b5;font-size:10px}.project-progress-cell .progress{width:100%;height:6px;border-radius:999px;background:#e8edf4}.project-date-cell{display:grid;align-content:center;grid-gap:7px;gap:7px;min-width:0}.project-date-cell>div{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:baseline;grid-gap:8px;gap:8px}.project-date-cell span{color:#9aa6b5;font-size:10px}.project-date-cell strong{overflow:hidden;color:#59697e;font-size:11px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.project-row-action{display:flex;align-items:center;justify-content:flex-end;min-width:0}.project-row-action .resource-more-trigger{width:34px;min-width:34px;height:34px;padding:0;border-color:transparent;background:transparent;color:#7d8a9c;font-size:0;box-shadow:none}.project-row-action .resource-more-trigger:before{content:"•••";font-size:13px;letter-spacing:1px}.project-row-action .resource-more-trigger:hover{border-color:#dce5f1;background:#f2f6fb;color:#34445a}@media (max-width:1360px){.project-filter-bar{align-items:flex-start;flex-wrap:wrap}.project-filter-count{align-self:center}.project-list-surface .project-row{grid-template-columns:minmax(220px,1fr) 82px 94px 128px 158px 36px;gap:14px}}.kpi-strip.compact{margin:12px 0 8px}.status-spread{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}.equip-badge{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700;line-height:1;text-align:center}.equip-badge,.equip-badge.pending_purchase{background:#f3f6fa;color:#5e6e82}.equip-badge.ordered{background:#edf4ff;color:#0b5cff}.equip-badge.received{background:#e8f8f4;color:#0b8a78}.equip-badge.installing{background:#fff6e8;color:#d18b00}.equip-badge.installed{background:#e8f8ef;color:#0e9f6e}.drawer-card{margin-left:auto;width:min(480px,100%);height:100vh;background:#fff;border-left:1px solid #e6edf6;padding:24px;overflow:auto;box-shadow:-16px 0 40px rgba(16,24,40,.08)}.muted-line{font-size:10px;color:#9aa7b5;margin-top:2px}.legacy-hint{font-size:11px;color:#d18b00;margin-top:6px}.drawing-badge{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;border-radius:999px;font-size:10px;font-weight:700;line-height:1;text-align:center}.drawing-badge,.drawing-badge.draft{background:#f3f6fa;color:#5e6e82}.drawing-badge.in_review{background:#fff6e8;color:#d18b00}.drawing-badge.approved{background:#e8f8ef;color:#0e9f6e}.drawing-badge.superseded{background:#edf0f4;color:#7a8796}.drawing-badge.voided{background:#fdecec;color:#c81e1e}.drawer-card.wide-drawer{width:min(720px,100%)}.select.compact{height:28px;padding:0 8px;font-size:12px}.data-table tbody tr.no-pointer{cursor:default}.records-action-table td.col-actions,.records-action-table th.col-actions{position:-webkit-sticky;position:sticky;right:0;background:#fff;box-shadow:-8px 0 8px -8px rgba(16,24,40,.12);white-space:nowrap;min-width:148px;width:148px;z-index:1}.records-action-table .row-actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center}.records-action-table tbody tr.row-focus td.col-actions,.records-action-table tbody tr:hover td.col-actions{background:#f7faff}.procurement-aggregate-table .col-actions{min-width:268px;width:auto}.modal-card.form-sheet.records-detail-modal{width:min(880px,calc(100vw - 24px))}.modal-card.form-sheet.records-detail-modal .modal-body{flex:1 1 auto}.records-detail-modal .tablewrap{overflow:visible}.records-create-actions{margin:0 0 10px}.records-detail-modal .records-history{margin-top:16px;padding-top:14px;border-top:1px solid #eef2f7}.records-detail-modal .records-history h3{margin:0 0 8px;font-size:13px;font-weight:700;color:#1c2733}.modal-backdrop:has(.confirm-action-modal){z-index:100}.system-status-page{min-height:100vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:48px 28px;max-width:560px;margin:0 auto}.system-status-brand{margin:0;color:var(--brand-ink);font-weight:700;letter-spacing:.02em}.system-status-page h1{margin:8px 0 0;font-size:28px;color:var(--brand-ink)}.system-status-page p{margin:0;color:var(--ink2)}.system-status-meta{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;color:var(--muted)}.system-status-actions{display:flex;gap:10px;margin-top:8px}.settings-about-product{margin:8px 0 4px;font-size:18px;font-weight:700;color:var(--brand-ink)}.settings-about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 20px;gap:14px 20px;margin:18px 0 0}.settings-about-grid dt{font-size:12px;color:var(--muted)}.settings-about-grid dd{margin:4px 0 0;font-weight:650;color:var(--ink)}.integration-list-card,.integration-secret-card,.integration-setup-card{display:grid;grid-gap:14px;gap:14px;margin-bottom:14px}.integration-copy-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.integration-copy-row>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.integration-copy-row code,.integration-copy-row span,.integration-secret-card code{overflow-wrap:anywhere}.integration-secret-card{border-color:#f2c46f;background:#fffaf0}.integration-credential-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.integration-credential-row>div{display:grid;grid-gap:4px;gap:4px}.integration-credential-row small,.integration-credential-row span{color:var(--muted)}@media (max-width:680px){.integration-copy-row,.integration-credential-row{align-items:stretch;flex-direction:column}}.error-text{color:var(--red)}@media (min-width:1024px){.mobile-search-btn,.mobile-search-sheet,.nav-backdrop,.nav-toggle{display:none!important}.sidebar{transform:none}}@media (max-width:1023px){.sidebar{transform:translateX(-105%);transition:transform .22s ease;box-shadow:16px 0 40px rgba(16,24,40,.12);width:min(280px,calc(100vw - 48px))}.app-shell.nav-open .sidebar{transform:translateX(0)}.main{margin-left:0;width:100%}.nav-toggle{display:inline-flex;min-width:44px;min-height:44px;width:44px;height:44px}.nav-backdrop{display:block;position:fixed;inset:0;z-index:25;background:rgba(23,32,46,.36);opacity:0;pointer-events:none;transition:opacity .2s ease}.nav-backdrop.visible{opacity:1;pointer-events:auto}.topbar{height:64px;padding:0 14px;gap:10px}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.crumb-flag{font-size:10px}.icon-btn{min-width:44px;min-height:44px;width:44px;height:44px}.create-btn{height:44px;padding:0 14px}.page-head{flex-direction:column;align-items:stretch}.kpi-strip{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}}@media (max-width:639px){.desktop-search{display:none}.mobile-search-btn{display:inline-flex}.mobile-search-sheet{position:fixed;inset:0;z-index:70;background:#fff;display:flex;flex-direction:column;padding:12px}.mobile-search-bar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.mobile-search-bar .search{flex:1 1;width:auto;min-width:0}.mobile-search-sheet .search-panel{position:static;width:100%;max-height:none;flex:1 1;overflow:auto;box-shadow:none;border:1px solid #e6edf6}.search-hint,.user-text{display:none}.kpi-strip{grid-template-columns:1fr}.project-nav-desktop{display:none}.project-nav-mobile{display:flex}.project-nav,.subnav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.drawer-card,.drawer-card.wide-drawer{width:100%}.card-header{flex-direction:column;align-items:stretch}.card-header-actions{justify-content:flex-start}.modal-card.form-sheet{width:100%;max-height:calc(100vh - 24px);border-radius:18px}.form-sheet-body{padding:14px 16px 8px}.form-sheet-footer,.form-sheet-header{padding-left:16px;padding-right:16px}.attention-row,.issue-recent-row{grid-template-columns:4px 1fr}.attention-aside{grid-column:2;text-align:left;margin-top:4px}}@media (min-width:640px) and (max-width:1023px){.mobile-search-btn,.mobile-search-sheet{display:none!important}.desktop-search{display:block}.desktop-search .search{width:min(220px,28vw)}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-header-main{min-width:0;flex:1 1}.modal-header-title{font-size:16px;font-weight:780;letter-spacing:-.01em;color:#1c2733}.modal-header-desc{font-size:12px;color:#7b8794;margin-top:4px;line-height:1.45}.modal-close{width:36px;height:36px;border-radius:999px;border:1px solid #e6edf6;background:#fff;color:#5b6570;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.modal-close:hover{background:#f5f8fc;color:#101828}.modal-body{display:flex;flex-direction:column;gap:2px;min-width:0}.modal-card.form-sheet .modal-header{margin-bottom:0;padding:22px 24px 12px;border-bottom:1px solid #eef2f7;flex-shrink:0}.modal-card.form-sheet .modal-body{padding:16px 24px 12px;overflow:auto;flex:1 1;min-height:0;max-height:min(64dvh,640px);overscroll-behavior:contain}.modal-card.form-sheet .modal-actions.form-sheet-footer{margin-top:0;flex:0 0 auto}.modal-backdrop:has(.drawer-card){display:flex;justify-content:flex-end;align-items:stretch;padding:0;place-items:unset}.modal-backdrop:has(.drawer-card) .modal-layer{height:100%;max-height:100%}.modal-card.drawer-card{margin:0;width:min(480px,100%);height:100dvh;max-height:100dvh;border-radius:0;border-left:1px solid #e6edf6;box-shadow:-16px 0 40px rgba(16,24,40,.08);display:flex;flex-direction:column;overflow:hidden}.modal-card.drawer-card .modal-header{flex:0 0 auto}.modal-card.drawer-card .modal-body{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.modal-card.drawer-card .form-sheet-footer,.modal-card.drawer-card .modal-actions{flex:0 0 auto}.modal-card.drawer-card.wide-drawer{width:min(720px,100%)}.modal-card.drawer-card.drawing-detail-drawer{width:min(900px,92vw)}.entity-list{display:flex;flex-direction:column;gap:8px}.entity-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%;padding:12px 14px;border:1px solid #e6edf6;border-radius:14px;background:#fff;text-align:left;cursor:default;transition:border-color .15s ease,box-shadow .15s ease}.entity-row:hover{border-color:#d6e3ff;box-shadow:0 2px 8px rgba(16,24,40,.04)}.entity-row.is-focus{border-color:#b9d0ff;box-shadow:0 0 0 3px rgba(11,92,255,.12)}.entity-row.is-muted{opacity:.72}.entity-row-main{min-width:0;flex:1 1;border:0;margin:0;padding:0;background:transparent;box-shadow:none;text-align:left;color:inherit;cursor:pointer}.entity-row-main:focus{outline:none}.entity-row-main:focus-visible{border-radius:8px;box-shadow:0 0 0 3px rgba(11,92,255,.12)}.entity-row-title{font-size:13px;font-weight:720;color:#1c2733;line-height:1.35}.entity-row-meta{display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:4px;font-size:11px;color:#8490a2;line-height:1.4}.entity-row-aside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;max-width:48%}.entity-row-facts{gap:4px 10px;font-size:11px;color:#8490a2}.badge-row,.entity-row-facts{display:flex;flex-wrap:wrap;justify-content:flex-end}.badge-row{align-items:center;gap:6px}.progress-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#edf4ff;color:#0b5cff;font-size:10px;font-weight:740;line-height:1}.meta-inline{display:inline-flex;align-items:baseline;gap:4px}.meta-inline-label{color:#93a0af}.view-toggle{display:inline-flex;padding:2px;border:1px solid #e2e8f2;border-radius:10px;background:#f5f8fc;gap:2px}.view-toggle-btn{height:28px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:#5b6570;font-size:12px;font-weight:680;cursor:pointer}.view-toggle-btn.active{background:#fff;color:#0b5cff;box-shadow:0 1px 2px rgba(16,24,40,.06)}.plan-timeline{margin-top:4px;overflow-x:auto;overflow-y:hidden;border:1px solid #e6edf6;border-radius:14px;background:#fff;-webkit-overflow-scrolling:touch}.plan-timeline-inner{min-width:100%;--plan-label-w:248px}.plan-timeline-sticky{position:-webkit-sticky;position:sticky;left:0;z-index:3;flex-shrink:0;width:var(--plan-label-w,248px);box-sizing:border-box;border-right:1px solid #eef2f7;background:#fff}.plan-timeline-head,.plan-timeline-row,.plan-timeline-stage-head{display:flex;align-items:stretch;min-width:100%}.plan-timeline-head{position:-webkit-sticky;position:sticky;top:0;z-index:4;border-bottom:1px solid #eef2f7;background:#f8fafc}.plan-timeline-head-label{display:flex;align-items:flex-end;padding:10px 14px 12px;font-size:11px;font-weight:740;color:#5e6e82;background:#f8fafc;z-index:5}.plan-timeline-ruler{position:relative;flex-shrink:0;min-height:52px;background:#f8fafc}.plan-timeline-months{position:relative;height:22px}.plan-timeline-month{position:absolute;top:0;height:22px;padding:4px 8px 0;font-size:11px;font-weight:740;color:#344256;white-space:nowrap;overflow:hidden;border-right:1px solid #e6edf6;box-sizing:border-box}.plan-timeline-ticks{position:relative;height:28px}.plan-timeline-tick{position:absolute;top:0;height:28px;padding:4px 8px 0;font-size:10px;font-weight:640;color:#8490a2;border-right:1px solid #f0f3f8;box-sizing:border-box}.plan-timeline-stage-head{border-bottom:1px solid #eef2f7;background:#f5f8fc}.plan-timeline-stage-label{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;font-size:12px;font-weight:740;color:#344256;background:#f5f8fc;z-index:3}.plan-timeline-stage-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#edf2f7;color:#5e6e82;font-size:10px;font-weight:720}.plan-timeline-stage-track{position:relative;flex-shrink:0;min-height:36px;background:#f8fafc}.plan-timeline-row{border-bottom:1px solid #f0f3f8;transition:background .15s ease}.plan-timeline-row:hover{background:#fafcff}.plan-timeline-row.is-focus .plan-timeline-task,.plan-timeline-row.is-focus .plan-timeline-track{box-shadow:inset 0 0 0 2px rgba(11,92,255,.18)}.plan-timeline-row.is-overdue .plan-timeline-task-name{color:#b42318}.plan-timeline-task{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border:0;text-align:left;cursor:pointer;background:#fff}.plan-timeline-task:hover{background:#fafcff}.plan-timeline-task-name{font-size:13px;font-weight:720;color:#1c2733;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-timeline-task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;color:#8490a2}.plan-timeline-track{position:relative;flex-shrink:0;min-height:56px;padding:14px 0;border:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--plan-day-w, 28px) - 1px),#f3f6fb calc(var(--plan-day-w, 28px) - 1px),#f3f6fb var(--plan-day-w,28px));cursor:pointer;text-align:left}.plan-timeline-today-line{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#0b5cff;opacity:.55;pointer-events:none;z-index:2}.plan-timeline-today-line--head{top:0;bottom:0;opacity:.85}.plan-timeline-today-line--head:before{content:"今天";position:absolute;top:2px;left:4px;padding:1px 5px;border-radius:4px;background:#0b5cff;color:#fff;font-size:9px;font-weight:720;line-height:1.4;white-space:nowrap}.plan-timeline-bar{position:absolute;top:50%;height:22px;margin-top:-11px;border-radius:8px;background:linear-gradient(180deg,#3d7dff,#0b5cff);box-shadow:0 1px 2px rgba(11,92,255,.22);z-index:1;min-width:8px}.plan-timeline-bar.is-done{background:linear-gradient(180deg,#6b9bff,#4a7ef0);opacity:.72}.plan-timeline-bar.is-overdue{background:linear-gradient(180deg,#f97066,#d92d20);box-shadow:0 1px 2px rgba(217,45,32,.22)}.plan-timeline-bar-placeholder{position:absolute;top:50%;left:12px;transform:translateY(-50%);padding:4px 10px;border-radius:8px;border:1px dashed #d0d7e2;background:#f5f7fa;color:#93a0af;font-size:11px;font-weight:640;z-index:1}@media (max-width:900px){.entity-row{flex-direction:column;align-items:stretch}.entity-row-aside{align-items:flex-start;max-width:none}.badge-row,.entity-row-facts{justify-content:flex-start}.plan-timeline-inner{--plan-label-w:180px}.modal-card.form-sheet .form-sheet-footer,.modal-card.form-sheet .modal-body,.modal-card.form-sheet .modal-header{padding-left:16px;padding-right:16px}}@media (max-width:639px){.plan-timeline-inner{--plan-label-w:148px}.plan-timeline-task-meta .progress-chip{display:none}.modal-card.drawer-card,.modal-card.drawer-card.wide-drawer{width:100%}}.app-select{position:relative;display:inline-flex;min-width:0;vertical-align:middle}.permission-toolbar .app-select,.toolbar .app-select{min-width:140px}.form-grid .app-select,.modal-card .app-select,.surface .app-select,.surface>.app-select{display:flex;width:100%}.app-select-trigger{width:100%;height:38px;gap:8px;justify-content:space-between;padding:0 12px;border:1px solid #dfe7f3;border-radius:12px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.modal-card .app-select-trigger{height:42px}.app-select.compact .app-select-trigger{height:28px;padding:0 8px;font-size:12px;border-radius:8px}.member-role-select{min-width:118px}.app-select-trigger:hover:not(:disabled){border-color:#c5d4ef;background:#fbfcff}.app-select-trigger.is-open,.app-select-trigger:focus-visible{outline:none;border-color:#b9d0ff;box-shadow:0 0 0 4px rgba(11,92,255,.1)}.app-select-trigger:disabled{opacity:.55;cursor:not-allowed;background:#f7f9fc}.app-select-value{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.app-select-trigger.is-placeholder .app-select-value{color:var(--muted)}.app-select-chevron{flex-shrink:0;color:#7a8796;transition:transform .15s ease}.app-select-trigger.is-open .app-select-chevron{transform:rotate(180deg);color:var(--blue)}.app-select-menu{position:fixed;z-index:2000;margin:0;padding:6px;list-style:none;overflow-y:auto;overscroll-behavior:contain;border:1px solid #dfe7f3;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(16,24,40,.12),0 2px 8px rgba(16,24,40,.06)}.app-select-option{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;padding:8px 10px;border-radius:10px;color:var(--ink);cursor:pointer;line-height:1.25}.app-select-option-label{flex:1 1;min-width:0}.app-select-option.is-active,.app-select-option:hover{background:var(--blue-weak)}.app-select-option.is-selected{background:rgba(11,92,255,.1);color:var(--blue);font-weight:650}.app-select-option.is-selected.is-active,.app-select-option.is-selected:hover{background:rgba(11,92,255,.14)}.app-select-check{flex-shrink:0;color:var(--blue)}.app-select-empty{padding:10px 12px;color:var(--muted);font-size:13px}@media (max-width:639px){.app-select-menu{border-radius:16px}.app-select-option{min-height:42px}}.team-subtabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.contact-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.contact-toolbar .input{min-width:180px}.contact-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.contact-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 18px;background:var(--surface);box-shadow:var(--shadow-1)}.contact-card.is-primary{border-color:#c9dbff;box-shadow:inset 0 0 0 1px rgba(11,92,255,.08)}.contact-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.contact-card-name{font-size:15px;font-weight:720;color:#1c2733}.contact-card-company{margin-top:4px;font-size:12px;color:#6b7a8d;font-weight:600}.contact-card-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.contact-card-meta{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:#8490a2}.contact-card-phone{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.contact-phone-link{color:var(--blue);font-weight:700;font-size:14px;text-decoration:none}.contact-phone-link:hover{text-decoration:underline}.contact-card-extra{margin-top:8px;display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:#8490a2}.contact-card-actions{margin-top:12px;padding-top:10px;border-top:1px solid #eef2f7}.form-grid .span-2{grid-column:1/-1}.overview-contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.overview-contact-card{border:1px solid #e4ebf5;border-radius:12px;padding:12px 14px;background:#fff}.overview-contact-type{font-size:11px;font-weight:720;color:#0b5cff}.overview-contact-name{margin-top:6px;font-size:14px;font-weight:720;color:#1c2733}.overview-contact-company{margin-top:4px;font-size:12px;color:#6b7a8d}.overview-contact-phone-row{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}@media (max-width:900px){.overview-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.overview-contact-grid{grid-template-columns:1fr}.contact-toolbar .input{width:100%}}.app-checkbox,.form-grid label.app-checkbox,.mini-row label.app-checkbox,.modal-card label.app-checkbox,.surface>label.app-checkbox{display:flex;font-size:14px;color:#1c2733;margin:8px 0 0}.app-checkbox{align-items:flex-start;gap:10px;min-height:44px;padding:8px 10px;border-radius:12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;box-sizing:border-box}.app-checkbox:hover:not(.is-disabled){background:#f5f8ff}.app-checkbox.is-disabled{opacity:.55;cursor:not-allowed}.app-checkbox-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-checkbox-box{width:20px;height:20px;margin-top:2px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #c5d0de;border-radius:6px;background:#fff;color:#fff;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.app-checkbox:hover:not(.is-disabled) .app-checkbox-box{border-color:#0b5cff;background:#f3f7ff}.app-checkbox.is-checked .app-checkbox-box,.app-checkbox.is-indeterminate .app-checkbox-box{border-color:#0b5cff;background:#0b5cff}.app-checkbox-input:focus-visible+.app-checkbox-box{box-shadow:0 0 0 4px rgba(11,92,255,.18);border-color:#0b5cff}.app-checkbox-icon{display:block}.app-checkbox-copy{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:1px}.app-checkbox-label{font-size:14px;font-weight:650;color:#1c2733;line-height:1.35}.app-checkbox-description{font-size:12px;font-weight:500;color:#7d8999;line-height:1.4}.app-checkbox-error{font-size:12px;color:#e34d59}.app-checkbox.is-compact{min-height:40px;margin:0;padding:6px 4px;width:auto}.app-checkbox.is-compact .app-checkbox-label{font-size:13px;font-weight:600}.file-upload-field{width:100%;margin-top:10px}.file-upload-label{display:block;font-size:11px;font-weight:650;color:#7d8999;margin:0 0 8px}.file-upload-required{color:#e34d59}.file-upload-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-upload-dropzone{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:148px;padding:22px 18px;border:1px dashed #c9d7ee;border-radius:14px;background:#f6f9ff;color:#0b5cff;cursor:pointer;text-align:center;outline:none;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.file-upload-dropzone:focus-visible,.file-upload-dropzone:hover{background:#edf4ff;border-color:#0b5cff}.file-upload-dropzone.is-dragover{background:#dce9ff;border-color:#0b5cff;border-style:solid;box-shadow:0 0 0 4px rgba(11,92,255,.12)}.file-upload-field.is-disabled .file-upload-card,.file-upload-field.is-disabled .file-upload-dropzone{opacity:.55;cursor:not-allowed;pointer-events:none}.file-upload-icon{color:#0b5cff;margin-bottom:4px}.file-upload-title{font-size:14px;font-weight:720;color:#1c2733}.file-upload-subtitle{font-size:12px;color:#6b7a8d}.file-upload-hint{margin-top:4px;font-size:11px;line-height:1.45;color:#8d99a8;max-width:28em}.file-upload-card{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 12px 12px 14px;border:1px solid #e4ebf5;border-radius:14px;background:#fff}.file-card-icon{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#edf4ff;color:#0b5cff}.file-card-meta{min-width:0;flex:1 1}.file-card-name{font-size:13px;font-weight:700;color:#1c2733;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card-sub{margin-top:2px;font-size:12px;color:#7d8999}.file-card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.file-card-remove{min-width:36px;padding:0 10px;font-size:18px;line-height:1}.file-upload-error{margin-top:8px;font-size:12px;color:#e34d59}.skip-upload-note{margin-top:10px}.permission-groups{display:flex;flex-direction:column;gap:16px}.modal-toolbar{flex-shrink:0;padding:12px 24px;border-bottom:1px solid #eef2f7;background:#fff}.modal-card.form-sheet.permission-modal{width:min(960px,calc(100vw - 48px));height:min(900px,calc(100dvh - 48px));max-height:min(900px,calc(100dvh - 48px));min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"header" "toolbar" "body" "footer";overflow:hidden}.modal-card.form-sheet.permission-modal .modal-header{grid-area:header}.modal-card.form-sheet.permission-modal .modal-toolbar{grid-area:toolbar}.modal-card.form-sheet.permission-modal .modal-body{grid-area:body;display:block;flex:unset;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}.modal-card.form-sheet.permission-modal .form-sheet-footer,.modal-card.form-sheet.permission-modal .modal-actions{grid-area:footer}.perm-identity{margin-top:6px}.perm-identity-name{font-size:15px;font-weight:720;color:#1c2733}.perm-identity-email,.perm-identity-role{margin-top:2px;font-size:12px;color:#7d8999}.perm-toolbar{display:flex;flex-direction:column;gap:10px}.perm-toolbar-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.perm-toolbar-field{align-items:center;gap:8px;font-weight:650}.modal-card label.perm-toolbar-field,.perm-toolbar-field{display:flex;margin:0;font-size:12px;color:#5b6570}.perm-toolbar-field .app-select{min-width:180px}.perm-granted{margin-left:auto;font-size:12px;font-weight:650;color:#5b6570}.perm-search{margin-left:auto;width:min(240px,100%);height:36px}.perm-groups{display:flex;flex-direction:column;gap:12px}.perm-group-card{border:1px solid #e4ebf5;border-radius:16px;background:#fff;overflow:hidden}.perm-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#f8fbff;border-bottom:1px solid #eef2f7}.perm-group-head h3{margin:0;font-size:13px;font-weight:780;color:#1c2733}.perm-group-head .app-select{min-width:132px}.perm-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:8px 14px;border-top:1px solid #eef2f7}.perm-row:first-child{border-top:0}.perm-row:hover{background:#f5f8ff}.perm-row-label{font-size:14px;font-weight:650;color:#1c2733;min-width:0}.perm-checks{display:grid;grid-template-columns:76px 76px 76px;align-items:center;justify-items:start;grid-gap:4px 10px;gap:4px 10px;flex-shrink:0;width:248px}.modal-card label.app-checkbox.perm-check,.perm-checks .app-checkbox.perm-check{display:inline-flex;align-items:center;width:auto;max-width:100%;min-height:40px;margin:0;padding:4px 2px;gap:8px;white-space:nowrap}.perm-check .app-checkbox-copy{min-width:0;padding-top:0}.perm-check .app-checkbox-label{font-size:13px;font-weight:650;white-space:nowrap}.perm-footer-status{margin-right:auto;font-size:12px;color:#7d8999}.permission-modal .form-sheet-footer{align-items:center;flex:0 0 auto}.perm-confirm-card{position:relative;z-index:1;pointer-events:auto;width:min(360px,calc(100% - 32px));padding:18px 18px 14px;border-radius:16px;background:#fff;box-shadow:0 18px 40px rgba(16,24,40,.18)}.perm-confirm-title{font-size:14px;font-weight:720;color:#1c2733;line-height:1.45}.perm-confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}@media (max-width:639px){.file-upload-dropzone{min-height:132px}.file-upload-card{flex-wrap:wrap}.file-card-actions{width:100%;justify-content:flex-end}.perm-row{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}.perm-checks{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.modal-card label.app-checkbox.perm-check,.perm-checks .app-checkbox.perm-check{min-height:44px}.perm-granted,.perm-search{margin-left:0;width:100%}.perm-toolbar-field{width:100%}.perm-toolbar-field .app-select{flex:1 1;min-width:0}.modal-toolbar{padding-left:16px;padding-right:16px}}.join-page{min-height:100vh;padding:24px 16px}.join-card h2{margin:4px 0 8px;font-size:22px;line-height:1.3}.join-identity,.join-kicker,.join-meta{margin:0 0 8px;color:var(--muted);font-size:13px}.join-blocked{margin:12px 0 0;color:#b42318;font-size:14px}.join-perms{margin:12px 0 18px;padding:12px 14px;border:1px solid #e6edf6;border-radius:14px;background:#f8fbff}.join-perms-title{font-size:12px;color:#7d8999;margin-bottom:8px}.join-perms ul{margin:0;padding-left:18px}.join-perms li{margin:4px 0;font-size:13px}.join-actions,.join-card .btn{display:flex;width:100%;margin-top:8px}.join-card .btn{min-height:44px;position:relative;z-index:2;touch-action:manipulation}.join-actions{flex-direction:column;gap:8px}.join-progress{margin:0 0 8px;padding:10px 12px;border-radius:12px;background:#eef4ff;color:#0b5cff;font-size:13px}.join-qr{display:block;border:1px solid #e6edf6;border-radius:12px;background:#fff}.join-qr,.join-qr-placeholder{width:176px;height:176px;margin:16px auto 8px}.join-qr-placeholder{display:grid;place-items:center;color:var(--muted);font-size:12px;border:1px dashed #dfe7f3;border-radius:12px}.guest-chip{height:34px;padding:0 12px;border-radius:999px;border:1px solid #d7e4ff;background:#eef4ff;color:#0b5cff;font-size:12px;display:inline-flex;align-items:center;white-space:nowrap}.onboard-stack{margin-bottom:14px}.onboard-card .title{margin-bottom:8px}.onboard-card p{margin:0 0 8px;color:var(--muted);font-size:13px}.onboard-card .mini-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #eef3f9}.onboard-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.invite-table{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.invite-row{display:grid;grid-template-columns:minmax(0,1.4fr) 90px minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 14px;border:1px solid #e6edf6;border-radius:14px;background:#fff}.invite-row-actions{display:flex;gap:8px;justify-content:flex-end}.invite-member-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto;margin-top:12px}@media (max-width:720px){.join-card,.login-card{width:100%;max-width:420px;padding:28px 20px}.invite-row{grid-template-columns:1fr}.guest-chip{max-width:42vw;overflow:hidden;text-overflow:ellipsis}.onboard-card .mini-row{flex-direction:column;align-items:flex-start}}.drawing-info-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 16px;gap:12px 16px;margin-bottom:8px}.drawing-info-label{font-size:11px;color:#7d8999;margin-bottom:4px}.drawing-info-value{font-size:13px;color:#1c2733;word-break:break-word}.drawing-info-span{grid-column:1/-1}.drawing-version-head{margin-top:18px;align-items:center}.modal-card.drawer-card.drawing-detail-drawer .modal-body{min-width:0}.drawing-version-list{display:flex;flex-direction:column;gap:10px;min-width:0}.drawing-version-card{min-width:0;padding:14px;border:1px solid #e6edf6;border-radius:16px;background:#fff}.drawing-version-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.drawing-version-file{margin:8px 0 4px;font-size:13px;color:#1c2733;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.drawing-version-meta{font-size:12px;color:#7d8999;margin-bottom:10px}.drawing-version-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.drawing-version-actions .btn{min-height:36px}.confirm-action-modal .confirm-reason-field{display:grid;grid-gap:8px;gap:8px;margin:16px 0 8px}.confirm-reason-input{width:100%;min-height:96px;resize:vertical}.confirm-irreversible{color:#b42318;font-weight:600;margin:0 0 8px}.btn.danger{background:#b42318;border-color:#b42318;color:#fff}.btn.warning{background:#b54708;border-color:#b54708;color:#fff}.resource-more{position:relative;display:inline-flex;flex-shrink:0}.resource-more-menu{z-index:50}.resource-more-item{display:block;width:100%;text-align:left;border:0;background:transparent;padding:8px 10px;border-radius:8px;cursor:pointer}.resource-more-item:hover{background:#f5f8fc}.resource-more-item.is-warning{color:#b54708}.resource-more-item.is-danger{color:#b42318}.lifecycle-filter{display:flex;flex-wrap:wrap;gap:8px}.lifecycle-filter-btn{border:1px solid #d7e2ef;background:#fff;border-radius:999px;padding:6px 12px;cursor:pointer}.lifecycle-filter-btn.active{background:#0b63ce;border-color:#0b63ce;color:#fff}.action-history{margin:0;padding-left:18px}.action-history-title{font-weight:600}.action-history-reason{margin-top:4px;font-size:13px}.search-history-toggle{display:flex;align-items:center;gap:6px;color:#667085;font-size:12px}@media (max-width:640px){.resource-more-menu{left:auto;right:0;min-width:min(220px,calc(100vw - 32px))}.confirm-action-modal .modal-card,.modal-card.confirm-action-modal{width:min(100vw - 24px,480px)}}.version-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:5;min-width:180px;padding:10px;border:1px solid #e6edf6;border-radius:12px;background:#fff;box-shadow:0 12px 28px rgba(16,24,40,.12)}.modal-card.drawing-preview-card{width:min(1200px,calc(100vw - 64px));height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;padding:18px 20px}.modal-card.drawing-preview-card .modal-body{flex:1 1;min-height:0;display:flex;flex-direction:column}.drawing-preview-frame{flex:1 1;width:100%;min-height:0;border:0;background:#525252}.drawing-preview-status{margin:auto;text-align:center;color:#5e6e82}.drawing-preview-actions,.drawing-preview-zoom{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:12px}.drawing-preview-image-wrap{flex:1 1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center}.drawing-preview-image{max-width:100%;max-height:100%;object-fit:contain;transform-origin:center top}@media (max-width:720px){.drawing-info-grid{grid-template-columns:1fr}.modal-card.drawer-card.drawing-detail-drawer,.modal-card.drawing-preview-card{width:100%;height:100vh;max-height:100vh;border-radius:0}.drawing-version-actions .btn{min-height:44px}}.sidebar-nav{flex:1 1;min-height:0;overflow-y:auto;padding-bottom:8px}.sidebar-collapse{margin:4px 4px 10px}.app-shell.is-collapsed{--sidebar-width:var(--sidebar-collapsed)}.app-shell.is-collapsed .brand-product,.app-shell.is-collapsed .nav-label,.app-shell.is-collapsed .nav-link-text,.app-shell.is-collapsed .sidebar-footer-label,.app-shell.is-collapsed .ws-switcher-caret,.app-shell.is-collapsed .ws-switcher-copy{display:none}.app-shell.is-collapsed .ws-switcher{margin:0 4px 12px}.app-shell.is-collapsed .ws-switcher-row{min-height:48px;justify-content:center;padding:8px}.app-shell.is-collapsed .ws-switcher-menu{min-width:200px;right:auto}.app-shell.is-collapsed .nav-link{width:48px;margin-inline:auto;padding:10px;justify-content:center}.app-shell.is-collapsed .brand-videopro{padding:8px 0 12px;display:flex;justify-content:center}.app-shell.is-collapsed .brand-logo-full{width:36px;overflow:hidden}.topbar-title{font-size:16px;font-weight:700;color:var(--ink);letter-spacing:-.02em}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1}.notify-empty{padding:16px 14px 12px;max-width:280px}.notify-empty b{display:block;font-size:13px;margin-bottom:6px}.notify-empty span{color:var(--ink2);font-size:12px;line-height:1.5}.notify-unread-dot{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#e11d48;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.icon-btn,.mobile-notify-trigger{position:relative}.notify-panel{width:min(360px,calc(100vw - 16px));padding:8px 0 6px}.notify-panel-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px 8px}.notify-panel-head .text-btn{border:0;background:none;color:var(--blue);font-size:12px;font-weight:600;cursor:pointer}.notify-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left}.notify-item.is-unread{background:var(--blue-weak)}.notify-item-meta{font-size:11px;color:var(--ink2)}.notify-item-title{font-weight:650}.notify-item-body{font-size:12px;color:var(--ink2);line-height:1.4}.notify-all-link{color:var(--blue);font-weight:650}.notify-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.notify-filter-label{font-size:13px;color:var(--ink2);flex:0 0 auto}.notify-filter-chips{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.app-filter-chip{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid #e1e8f3;background:#fff;color:var(--ink);border-radius:999px;height:34px;padding:0 12px;font-size:13px;line-height:1;cursor:pointer;box-shadow:none}.app-filter-chip:hover{background:var(--blue-weak);border-color:#d6e3ff}.app-filter-chip.is-active{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:650}.app-filter-chip:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.app-filter-chip:disabled{opacity:.55;cursor:not-allowed}@media (max-width:720px){.notify-filter-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.notify-filter-chips .app-filter-chip{flex:0 0 auto}}.notify-list{display:grid;grid-gap:10px;gap:10px}.notify-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;border:1px solid #e1e8f3;border-radius:var(--radius-md);background:#fff;padding:12px}.notify-card.is-unread{border-color:#d6e3ff;background:#f7fbff}.notify-card-main{border:0;background:none;text-align:left;min-width:0;cursor:pointer}.notify-card-cat{display:inline-block;font-size:11px;color:var(--blue);font-weight:650;margin-bottom:4px}.notify-card-main strong{display:block}.notify-card-main p{margin:4px 0 0;color:var(--ink2);font-size:13px}.notify-card-meta{display:block;margin-top:6px;font-size:12px;color:#7a8699}.notify-card-more{position:relative}.notify-more-menu{position:absolute;right:0;top:36px;z-index:5;min-width:140px;background:#fff;border:1px solid #e1e8f3;border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:6px}.notify-more-menu button{display:block;width:100%;border:0;background:none;text-align:left;padding:8px;border-radius:8px}.notify-more-menu button:hover{background:var(--blue-weak)}.muted-text{color:var(--ink2);font-size:13px}@media (max-width:720px){.notify-panel{width:min(100vw - 16px,360px)}.notify-card{grid-template-columns:minmax(0,1fr)}}.app-empty-icon{width:40px;height:40px;margin:0 auto 12px;border-radius:var(--radius-md);background:var(--blue-weak);color:var(--blue);display:grid;place-items:center}.app-empty-action{margin-top:14px}.app-skeleton{display:grid;grid-gap:12px;gap:12px}.app-skeleton-line{height:12px;border-radius:8px;background:linear-gradient(90deg,#eef2f8,#f7f9fc 50%,#eef2f8);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.app-skeleton-line.lg{height:28px;width:40%}.app-skeleton-card{height:88px;border-radius:var(--radius-lg);background:linear-gradient(90deg,#eef2f8,#f7f9fc 50%,#eef2f8);background-size:200% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.project-head-main h1{margin:6px 0 8px;font-size:clamp(22px,2.2vw,28px);font-weight:750;letter-spacing:-.03em;line-height:1.25}.project-head-meta{margin:0;font-size:13px}.project-list{display:flex;flex-direction:column;gap:8px}.project-list-row{display:grid;grid-template-columns:1fr auto auto;grid-gap:16px;gap:16px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);text-align:left}.project-list-row:hover{border-color:#d5e3fb;background:#fbfcff}.mobile-tabbar{display:none}.popover-panel.is-portal{position:fixed;right:auto;top:auto;z-index:2100}.mobile-tabbar-user .user-text{display:none}.mobile-tabbar-user .user-chip{border:0;background:transparent;height:auto;min-height:0;padding:0;box-shadow:none}.overview-contact-role{margin-top:4px;font-size:12px;color:var(--ink2)}.search-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-next{display:flex;flex-direction:column;gap:10px}.dashboard-next-item{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line2);font-size:13px}.dashboard-next-item:last-child{border-bottom:0;padding-bottom:0}.overview-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}@media (max-width:1023px){.app-shell.is-collapsed{--sidebar-width:min(280px,calc(100vw - 48px))}.app-shell.is-collapsed .brand-product,.app-shell.is-collapsed .nav-label,.app-shell.is-collapsed .nav-link-text,.app-shell.is-collapsed .sidebar-footer-label,.app-shell.is-collapsed .ws-switcher-caret,.app-shell.is-collapsed .ws-switcher-copy{display:block}.app-shell.is-collapsed .ws-switcher-copy{display:flex}.app-shell.is-collapsed .ws-switcher{margin:4px 4px 18px}.app-shell.is-collapsed .ws-switcher-row{min-height:56px;justify-content:flex-start;padding:10px 12px}.app-shell.is-collapsed .nav-link{width:calc(100% - 8px);margin:2px 4px;padding:10px 12px;justify-content:flex-start}.mobile-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:35;height:var(--tabbar-height);background:rgba(255,255,255,.96);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding-bottom:env(safe-area-inset-bottom)}.mobile-tabbar .mobile-notify-trigger,.mobile-tabbar a,.mobile-tabbar button{border:0;background:transparent;color:var(--ink2);font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0;width:100%;padding:0}.mobile-tabbar a.active,.mobile-tabbar button.active{color:var(--blue)}.mobile-tabbar-plus{width:44px;height:44px;margin-top:-10px;border-radius:var(--radius-md)!important;background:var(--blue)!important;color:#fff!important;font-size:22px!important}.content{padding-bottom:calc(var(--tabbar-height) + 24px)}.desktop-quick-create,.desktop-user-menu,.sidebar-collapse{display:none}.overview-summary-grid,.project-list-row{grid-template-columns:1fr}}@media (max-width:639px){.project-head{flex-direction:column}.kpi-strip{grid-template-columns:1fr 1fr}}.sidebar{overflow:hidden}.sidebar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;pointer-events:none;opacity:.28;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(237,244,255,.9)),repeating-linear-gradient(90deg,transparent 0 22px,rgba(11,92,255,.05) 22px 23px),repeating-linear-gradient(0deg,transparent 0 22px,rgba(11,92,255,.05) 22px 23px)}.topbar{gap:16px}.topbar-tabs{display:flex;align-items:stretch;gap:2px;flex:1 1;min-width:0;overflow-x:auto;height:100%}.topbar-tab{height:100%;border:0;background:transparent;color:var(--ink2);font-size:13px;font-weight:650;padding:0 12px;white-space:nowrap;border-bottom:3px solid transparent}.topbar-tab.active{color:var(--blue);font-weight:800;border-bottom-color:var(--blue)}.topbar .search{width:min(280px,26vw);height:36px;border-radius:var(--radius-pill);background:#f4f7fb}.kpi-cockpit{display:flex;align-items:center;justify-content:space-between;gap:12px;height:140px;padding:22px 24px;border-radius:18px}.kpi-copy{min-width:0}.kpi-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.kpi-icon svg{width:22px;height:22px}.kpi-icon.tone-blue{background:var(--blue-weak);color:var(--blue)}.kpi-icon.tone-amber{background:var(--amber-weak);color:var(--amber)}.kpi-icon.tone-green{background:var(--green-weak);color:var(--green)}.kpi-icon.tone-red{background:var(--red-weak);color:var(--red)}.cockpit-grid{display:grid;grid-gap:16px;gap:16px;margin-bottom:16px}.cockpit-grid-main,.cockpit-grid-ops,.dashboard-row-2,.dashboard-row-3{grid-template-columns:minmax(0,36fr) minmax(0,27fr) minmax(0,37fr)}.cockpit-grid-overview{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.cockpit-card{height:380px;padding:20px 22px;display:flex;flex-direction:column;overflow:hidden;border-radius:18px}.cockpit-card.is-sm{height:280px}.cockpit-card .card-header{margin-bottom:10px}.cockpit-card .card-header-title{font-size:16px}.cockpit-card .card-header-desc{display:none}.cockpit-card-body{flex:1 1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.cockpit-card-foot{padding-top:8px;margin-top:auto}.executive-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.executive-kpis>a{display:flex;min-width:0;min-height:124px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);flex-direction:column;box-shadow:0 1px 2px rgba(31,45,61,.03);transition:border-color .15s ease,transform .15s ease}.executive-kpis>a:hover{border-color:#bfd1f3;transform:translateY(-1px)}.executive-kpis span{color:var(--ink2);font-size:12px;font-weight:700}.executive-kpis strong{margin-top:8px;color:var(--ink);font-size:30px;line-height:1;letter-spacing:-.04em}.executive-kpis small{margin-top:auto;color:var(--muted);font-size:11px}.executive-kpis>a.is-risk strong{color:var(--red)}.executive-detail-grid,.executive-main-grid{display:grid;grid-gap:16px;gap:16px;align-items:stretch;margin-bottom:16px}.executive-main-grid{grid-template-columns:minmax(0,1.65fr) minmax(320px,.7fr)}.executive-detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr)}.executive-portfolio,.executive-risk-panel,.executive-team-panel,.executive-today-panel{min-width:0;padding:20px 22px;box-shadow:none}.executive-project-list,.executive-today-list{display:flex;flex-direction:column}.executive-project-row{display:grid;grid-template-columns:10px minmax(180px,1.25fr) minmax(120px,.7fr) minmax(170px,1fr);grid-gap:12px;gap:12px;align-items:center;min-height:62px;border-top:1px solid var(--line2)}.executive-project-row:hover,.executive-today-row:hover{background:#f8faff}.executive-health-dot{width:8px;height:8px;border-radius:50%}.executive-health-dot.tone-ok{background:var(--green)}.executive-health-dot.tone-warn{background:var(--amber)}.executive-health-dot.tone-danger{background:var(--red)}.executive-project-name,.executive-project-progress{min-width:0}.executive-project-name b,.executive-project-name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.executive-project-name b{color:var(--ink);font-size:13px}.executive-project-name span,.executive-project-progress>span{color:var(--muted);font-size:11px}.executive-project-progress .app-progress{margin-top:6px}.executive-project-signals{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.executive-project-signals span{padding:3px 7px;border-radius:999px;background:var(--surface2);color:var(--ink2);font-size:10px}.executive-project-signals .is-risk{background:var(--red-weak);color:var(--red)}.executive-project-signals .is-ok{background:var(--green-weak);color:var(--green)}.executive-decision-panel{padding:24px;border-radius:16px;background:linear-gradient(150deg,#132847,#1b3d70);color:#fff;box-shadow:0 16px 34px rgba(19,40,71,.16)}.executive-eyebrow{color:#a9c8f4;font-size:11px;font-weight:760;letter-spacing:.08em}.executive-decision-panel h2{margin:8px 0 4px;font-size:24px;letter-spacing:-.03em}.executive-decision-panel>p{margin:0;color:#bdd0ea;font-size:12px}.executive-decision-list{display:grid;grid-gap:4px;gap:4px;margin-top:18px}.executive-decision-list a{display:grid;grid-template-columns:34px 1fr auto;grid-gap:10px;gap:10px;align-items:center;min-height:46px;padding:0 10px;border-top:1px solid rgba(255,255,255,.1)}.executive-decision-list strong{font-size:20px}.executive-decision-list span{color:#e8f0fb;font-size:12px}.executive-decision-list em{color:#9fc4f7;font-size:10px;font-style:normal}.executive-today-row{display:grid;grid-template-columns:minmax(190px,1fr) 100px 110px 90px;grid-gap:12px;gap:12px;align-items:center;min-height:58px;border-top:1px solid var(--line2);font-size:12px}.executive-today-row>div b,.executive-today-row>div span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.executive-today-row>div span,.executive-today-row>span{color:var(--ink2)}.executive-today-row .tone-ok{color:var(--green)}.executive-today-row .tone-warn{color:var(--amber)}.executive-today-row .tone-danger{color:var(--red);font-weight:720}.executive-risk-panel .risk-list-head,.executive-risk-panel .risk-list-row{grid-template-columns:minmax(100px,1fr) 68px minmax(120px,1.2fr) 48px}.executive-analytics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.executive-chart-panel{min-width:0;min-height:300px;padding:20px;box-shadow:none;overflow:hidden}.executive-chart-panel .chart-columns,.executive-chart-panel .chart-donut-panel{height:220px}.executive-team-panel{margin-bottom:16px}.executive-team-panel .workload-head,.executive-team-panel .workload-row{grid-template-columns:36px minmax(180px,1fr) 80px 80px minmax(160px,.7fr)}@media (max-width:1439px){.executive-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.executive-analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1199px){.executive-detail-grid,.executive-main-grid{grid-template-columns:1fr}.executive-decision-panel{order:-1}}@media (max-width:767px){.executive-analytics-grid,.executive-kpis{grid-template-columns:1fr}.executive-project-row{grid-template-columns:10px minmax(0,1fr);padding:10px 0}.executive-project-progress,.executive-project-signals{grid-column:2}.executive-project-signals{justify-content:flex-start}.executive-today-row{grid-template-columns:1fr 1fr;padding:10px 0}}.chart-foot-link,button.chart-foot-link{color:var(--blue);font-size:12px;font-weight:650;background:none;border:0;padding:0;cursor:pointer}.chart-filter{display:flex;gap:4px;padding:2px;border-radius:999px;background:#f4f7fb}.chart-filter button{height:24px;padding:0 10px;border:0;background:transparent;color:var(--ink2);font-size:11px;font-weight:700;border-radius:999px;cursor:pointer}.chart-filter button.is-active{background:#fff;color:var(--blue);box-shadow:0 1px 2px rgba(31,45,61,.08)}.chart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:10px}.chart-summary div{padding:8px 10px;border-radius:12px;background:#f6f8fc}.chart-summary b{display:block;font-size:18px;letter-spacing:-.03em}.chart-summary span{font-size:11px;color:var(--ink2)}.chart-donut-panel{display:flex;align-items:center;gap:16px;flex:1 1;min-height:0}.chart-donut{position:relative;width:148px;height:148px;flex-shrink:0;margin:0}.chart-donut-svg{width:100%;height:100%}.chart-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;padding:18px;text-align:center}.chart-donut-center b{font-size:22px;letter-spacing:-.04em}.chart-donut-center span{font-size:11px;color:var(--ink2);line-height:1.3}.chart-legend{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;flex:1 1;min-width:0}.chart-legend li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink2)}.chart-legend i{width:8px;height:8px;border-radius:99px;flex-shrink:0}.chart-legend b{margin-left:auto;color:var(--ink)}.chart-columns{display:flex;align-items:stretch;gap:12px;flex:1 1;min-height:132px;padding:4px 4px 0}.chart-col{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.chart-col-track{flex:1 1;width:100%;max-width:42px;background:#eef2f8;border-radius:12px 12px 8px 8px;display:flex;align-items:flex-end;overflow:hidden}.chart-col-fill{width:100%;border-radius:12px 12px 6px 6px}.chart-col-value{font-size:12px;font-weight:750;color:var(--ink)}.chart-col-label{font-size:11px;color:var(--ink2);text-align:center;white-space:nowrap}.chart-bars{display:grid;grid-gap:12px;gap:12px;padding:8px 0 4px}.chart-bar-row{display:grid;grid-template-columns:72px 1fr 36px;grid-gap:10px;gap:10px;align-items:center}.chart-bar-label,.chart-bar-value{font-size:12px;color:var(--ink2)}.chart-bar-value{text-align:right;color:var(--ink);font-weight:700}.chart-bar-track{height:8px;border-radius:99px;background:#eef2f8;overflow:hidden}.chart-bar-fill{height:100%;border-radius:99px}.app-progress{height:6px;border-radius:99px;background:#eef2f8;overflow:hidden}.app-progress span{display:block;height:100%;background:var(--blue)}.app-progress.tone-green span{background:var(--green)}.app-progress.tone-amber span{background:var(--amber)}.app-progress.tone-red span{background:var(--red)}.chart-empty{flex:1 1;display:grid;place-items:center;text-align:center;color:var(--ink2);font-size:12px;padding:12px}.chart-empty b{display:block;color:var(--ink);font-size:13px;margin-bottom:4px}.status-chip.compact{height:20px;padding:0 7px;font-size:10px}.activity-feed,.risk-list,.workload-list{display:grid;min-height:0}.risk-list-head,.workload-head{display:grid;grid-gap:8px;gap:8px;font-size:11px;color:#93a0af;padding-bottom:6px;border-bottom:1px solid var(--line2)}.risk-list-head,.risk-list-row{grid-template-columns:1.1fr 72px 1.5fr 52px}.risk-list-row{display:grid;grid-gap:8px;gap:8px;align-items:center;height:48px;padding:0;border:0;border-bottom:1px solid var(--line2);background:transparent;text-align:left;width:100%;cursor:pointer}.risk-list-row:hover{background:#f7faff}.risk-list-row b,.risk-list-row span,.risk-list-row time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.activity-time,.risk-list-row time,.workload-person span{font-size:12px;color:var(--ink2)}.activity-item{display:grid;grid-template-columns:36px 1fr;grid-gap:10px;gap:10px;align-items:start;width:100%;padding:8px 0;border:0;background:transparent;text-align:left;cursor:pointer}.activity-item+.activity-item{border-top:1px solid var(--line2)}.activity-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center}.activity-icon.tone-blue{background:var(--blue-weak);color:var(--blue)}.activity-icon.tone-amber{background:var(--amber-weak);color:var(--amber)}.activity-icon.tone-green{background:var(--green-weak);color:var(--green)}.activity-icon.tone-red{background:var(--red-weak);color:var(--red)}.activity-title{font-size:13px;font-weight:750;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-project,.activity-time{margin-top:2px}.workload-head{grid-template-columns:1.6fr 52px 52px 88px;padding-left:36px}.workload-row{display:grid;grid-template-columns:28px 1fr 52px 52px 88px;grid-gap:8px;gap:8px;align-items:center;min-height:48px;padding:4px 0;border-bottom:1px solid var(--line2)}.workload-row:last-child{border-bottom:0}.workload-person b{display:block;font-size:13px}.workload-meter{display:grid;grid-template-columns:1fr auto;grid-gap:6px;gap:6px;align-items:center}.workload-meter em{font-style:normal;font-size:11px;font-weight:750}.avatar.sm{width:28px;height:28px;font-size:11px}.cockpit-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.metric-tile{min-height:148px;display:flex;flex-direction:column;padding:18px 20px}.metric-tile-head{display:flex;justify-content:space-between;gap:12px}.metric-tile-value{font-size:28px;font-weight:800;letter-spacing:-.03em;margin-top:8px}.today-stack{display:none;margin-bottom:16px}.project-head{background:transparent;border:0;box-shadow:none;padding:4px 0 8px;margin-bottom:8px}a.kpi{text-decoration:none;color:inherit}.quick-action-bar{display:flex;align-items:center;gap:8px;min-height:56px;max-height:72px;margin-bottom:16px;padding:8px 14px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-1);overflow-x:auto;overflow-y:hidden}.quick-action-bar b{font-size:13px;color:var(--ink2);white-space:nowrap}.quick-action-bar .btn{height:32px;min-height:32px;padding:0 12px;flex-shrink:0;text-decoration:none;display:inline-flex;align-items:center}.onboard-stack{display:grid;grid-gap:12px;gap:12px;margin-bottom:16px}.workload-row.is-button{width:100%;background:transparent;border:0;text-align:left;cursor:pointer}.onboard-card{padding:16px 18px}.project-page{width:100%;max-width:1480px;margin:0 auto}.project-page .project-head{align-items:center;padding:22px 24px;margin-bottom:0;border:1px solid var(--line);border-radius:16px 16px 0 0;background:var(--surface);box-shadow:none}.project-breadcrumb,.project-head-actions,.project-head-identity,.project-head-meta{display:flex;align-items:center}.project-head-identity{min-width:0;gap:14px}.project-head-mark{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:12px;background:linear-gradient(145deg,#0b5cff,#1649c6);color:#fff;font-size:18px;font-weight:800;box-shadow:0 8px 18px rgba(11,92,255,.2)}.project-breadcrumb{gap:6px;color:var(--muted);font-size:11px}.project-breadcrumb a{color:var(--ink2)}.project-page .project-head-main h1{margin:3px 0 6px;font-size:clamp(22px,2vw,27px);font-weight:780}.project-head-meta{flex-wrap:wrap;gap:8px;color:var(--ink2);font-size:12px}.project-head-meta>span:not(:last-child):after{content:"";display:inline-block;width:3px;height:3px;margin-left:8px;border-radius:50%;vertical-align:middle;background:#c5ceda}.project-head-meta .project-status-badge{padding:3px 8px;border-radius:999px;background:var(--blue-weak);color:var(--blue);font-weight:720}.project-head-meta .project-status-badge:after{display:none!important}.project-head-actions{gap:8px;flex-shrink:0}.project-page>.project-nav{min-height:52px;margin-bottom:20px;padding:0 18px;border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;background:var(--surface)}.project-workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:18px;gap:18px;align-items:start;margin-bottom:18px}.project-workspace-main{min-width:0;padding:0;overflow:hidden;box-shadow:none}.project-workspace-section{padding:22px 24px;border-bottom:1px solid var(--line2)}.project-workspace-section:last-child{border-bottom:0}.project-workspace-section.project-inline-issues{border:0;border-bottom:0;border-radius:0;box-shadow:none}.project-brief-list{display:flex;flex-direction:column}.project-brief-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--line2)}.project-brief-row:last-child{border-bottom:0}.project-brief-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--blue-weak);color:var(--blue);font-size:12px;font-weight:760}.project-brief-copy{min-width:0}.project-brief-meta{display:flex;align-items:center;gap:8px;font-size:12px}.project-brief-meta span{color:var(--muted)}.project-brief-copy p{margin:5px 0 0;color:var(--ink);font-size:13px;line-height:1.55}.project-brief-copy small{display:block;margin-top:5px;color:var(--red);font-size:11px}.project-brief-tags{display:flex;gap:5px}.project-brief-tags span{padding:3px 7px;border-radius:999px;background:var(--surface2);color:var(--ink2);font-size:10px;white-space:nowrap}.project-brief-tags .is-ok{background:var(--green-weak);color:var(--green)}.project-brief-tags .is-risk{background:var(--amber-weak);color:var(--amber)}.project-brief-empty{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:64px;padding:0 16px;border:1px dashed #cad6e6;border-radius:var(--radius-md);background:#fafcff;color:var(--ink2);text-align:left}.project-brief-empty b{color:var(--blue);font-size:12px}.project-workspace-rail{display:grid;grid-gap:14px;gap:14px;position:-webkit-sticky;position:sticky;top:calc(var(--topbar-height) + 18px)}.project-workspace-rail .project-status-summary{padding:20px;box-shadow:none}.project-workspace-rail .project-status-main{grid-template-columns:1fr;gap:16px}.project-workspace-rail .project-progress-primary>strong{font-size:40px}.project-workspace-rail .project-alert-summary{grid-template-columns:1fr 1fr}.project-rail-guide{padding:18px 20px;border-color:#1c355d;background:#152a4a;color:#fff;box-shadow:none}.project-rail-guide b,.project-rail-guide p,.project-rail-guide span{display:block}.project-rail-guide span{color:#a9c4ec;font-size:11px;font-weight:700}.project-rail-guide b{margin-top:6px;font-size:15px}.project-rail-guide p{margin:4px 0 0;color:#c7d7ed;font-size:12px}.project-focus-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(320px,2fr);grid-gap:16px;gap:16px;margin-bottom:16px}.project-next-summary,.project-status-summary{min-width:0;padding:20px 22px}.project-status-main{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(260px,1fr);grid-gap:24px;gap:24px;align-items:end;padding:8px 0 18px}.project-progress-primary{display:grid;grid-gap:7px;gap:7px}.project-progress-primary>span{color:var(--ink2);font-size:12px;font-weight:720}.project-progress-primary>strong{color:var(--ink);font-size:36px;line-height:1;letter-spacing:-1px}.project-progress-primary>small{min-height:18px;color:var(--muted);font-size:12px}.project-task-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.project-task-summary>div{padding:12px;border-radius:var(--radius-md);background:var(--surface2)}.project-task-summary span,.project-task-summary strong{display:block}.project-task-summary strong{color:var(--ink);font-size:20px}.project-task-summary span{margin-top:3px;color:var(--ink2);font-size:11px}.project-alert-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.project-alert-summary a{display:grid;grid-template-columns:1fr auto;grid-gap:2px 10px;gap:2px 10px;padding:11px 13px;border:1px solid var(--line2);border-radius:var(--radius-md);color:var(--ink);text-decoration:none;background:#fffaf2}.project-alert-summary a:hover{border-color:#f2c879}.project-alert-summary span{font-size:12px;font-weight:720}.project-alert-summary strong{grid-row:1/3;grid-column:2;align-self:center;font-size:22px;color:var(--amber)}.project-alert-summary small{color:var(--muted);font-size:11px}.project-status-editor{margin-top:16px;padding-top:12px;border-top:1px solid var(--line2)}.project-status-editor>summary{width:-moz-fit-content;width:fit-content;color:var(--blue);cursor:pointer;font-size:12px;font-weight:720}.project-editor-row{display:grid;grid-template-columns:84px minmax(160px,1fr) auto;grid-gap:10px;gap:10px;align-items:center;margin-top:12px}.project-editor-row label{color:var(--ink2);font-size:12px;font-weight:720}.project-workspace-rail .project-editor-row{grid-template-columns:minmax(0,1fr)}.project-workspace-rail .project-editor-row>*{width:100%;min-width:0}.project-progress-breakdown{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.project-progress-breakdown span{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid var(--line2);border-radius:7px;color:var(--ink2);background:var(--canvas);font-size:11px;white-space:nowrap}.project-progress-breakdown b{color:var(--ink)}.platform-live-state{display:inline-flex;align-items:center;gap:7px;padding:0 10px;min-height:30px;border:1px solid #dce8df;border-radius:var(--radius-pill);background:#f7fbf8;color:#587163;font-size:11px;font-weight:650;white-space:nowrap}.platform-live-state>span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(14,159,110,.1)}.workspace-command-header{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:20px;gap:20px;margin-bottom:16px;padding:24px 26px 0;overflow:hidden;border:1px solid #dfe7f2;border-radius:18px;background:radial-gradient(circle at 92% 0,rgba(11,92,255,.11),transparent 32%),linear-gradient(180deg,#ffffff,#fbfcff)}.workspace-command-header:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(180deg,var(--blue),#75a4ff)}.workspace-command-actions,.workspace-command-copy{position:relative;z-index:1}.workspace-command-eyebrow{color:var(--blue);font-size:11px;font-weight:760;letter-spacing:.035em}.workspace-command-copy h1{margin:6px 0 4px;color:#17263a;font-size:28px;line-height:1.2;letter-spacing:-.035em}.workspace-command-copy p{margin:0;color:var(--ink2);font-size:13px}.workspace-command-actions{display:flex;align-items:flex-start;gap:8px}.workspace-view-switch{grid-column:1/-1;display:flex;gap:2px;margin:8px -4px 0;border-top:1px solid var(--line2)}.workspace-view-switch button{display:inline-flex;align-items:center;gap:7px;min-height:50px;padding:0 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--ink2);font-size:13px;font-weight:680}.workspace-view-switch button:hover{color:var(--ink);background:rgba(11,92,255,.025)}.workspace-view-switch button.active{color:var(--blue);border-bottom-color:var(--blue)}.workspace-view-switch b{min-width:20px;padding:2px 6px;border-radius:var(--radius-pill);background:var(--surface2);color:var(--ink2);font-size:10px;text-align:center}.workspace-view-switch button.active b{background:var(--blue-weak);color:var(--blue)}.dashboard-context-strip{display:flex;align-items:center;gap:22px;min-height:42px;margin:-4px 0 16px;padding:0 16px;border:1px solid var(--line2);border-radius:12px;background:rgba(255,255,255,.66);color:var(--ink2);font-size:11px}.dashboard-context-strip span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.dashboard-context-strip i{width:7px;height:7px;border-radius:50%}.dashboard-context-strip .tone-blue{background:var(--blue)}.dashboard-context-strip .tone-green{background:var(--green)}.dashboard-context-strip .tone-amber{background:var(--amber)}.dashboard-context-strip .tone-red{background:var(--red)}.project-progress-meta{color:var(--blue);font-weight:720}.project-lifecycle{display:grid;grid-template-columns:160px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:center;margin-bottom:18px;padding:16px 20px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.project-lifecycle-title small,.project-lifecycle-title span{display:block}.project-lifecycle-title span{color:var(--ink);font-size:13px;font-weight:760}.project-lifecycle-title small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.4}.project-lifecycle-track{display:grid;grid-template-columns:repeat(6,minmax(95px,1fr));min-width:0}.project-lifecycle-stage{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);grid-gap:8px;gap:8px;align-items:center;min-width:0}.project-lifecycle-stage:not(:last-child):after{content:"";position:absolute;top:13px;left:26px;right:6px;height:2px;background:#e7ebf2}.project-lifecycle-dot{position:relative;z-index:1;display:grid;place-items:center;width:26px;height:26px;border:2px solid #dfe5ee;border-radius:50%;background:#fff;color:var(--muted);font-size:10px;font-weight:760}.project-lifecycle-stage>div{position:relative;z-index:1;min-width:0;padding-right:7px;background:#fff}.project-lifecycle-stage b,.project-lifecycle-stage small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-lifecycle-stage b{color:var(--ink2);font-size:11px}.project-lifecycle-stage small{margin-top:1px;color:var(--muted);font-size:9px}.project-lifecycle-stage.is-complete .project-lifecycle-dot{border-color:var(--green);background:var(--green);color:#fff}.project-lifecycle-stage.is-complete:not(:last-child):after{background:#7bcbb0}.project-lifecycle-stage.is-active .project-lifecycle-dot{border-color:var(--blue);background:var(--blue-weak);color:var(--blue);box-shadow:0 0 0 4px rgba(11,92,255,.08)}.project-lifecycle-stage.is-active b{color:var(--blue)}@media (max-width:1199px){.platform-live-state{display:none}.project-lifecycle{grid-template-columns:1fr;gap:12px;overflow:hidden}.project-lifecycle-track{overflow-x:auto;padding-bottom:4px}}@media (max-width:767px){.workspace-command-header{display:none}.dashboard-context-strip{align-items:flex-start;flex-direction:column;gap:7px;padding:12px 14px}.project-lifecycle{margin:0 0 14px;padding:14px;border-radius:12px}.project-lifecycle-track{grid-template-columns:repeat(6,132px)}}.project-next-summary .activity-feed{margin-top:2px}.overview-focus-issues{margin-bottom:16px;padding:18px 20px}.overview-secondary{margin-bottom:16px;overflow:hidden}.overview-secondary>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;list-style:none}.overview-secondary>summary::-webkit-details-marker{display:none}.overview-secondary>summary small,.overview-secondary>summary span{display:block}.overview-secondary>summary b{color:var(--ink);font-size:14px}.overview-secondary>summary small{margin-top:3px;color:var(--muted);font-size:12px}.overview-secondary>summary em{color:var(--blue);font-size:12px;font-style:normal;font-weight:720;white-space:nowrap}.overview-secondary[open]>summary{border-bottom:1px solid var(--line2)}.overview-secondary[open]>summary em{font-size:0}.overview-secondary[open]>summary em:after{content:"收起";font-size:12px}.overview-secondary>.overview-info-grid{margin:0;padding:16px}.overview-secondary>.overview-info-grid>.surface{background:var(--surface2);border-color:var(--line2);box-shadow:none}.overview-secondary>.cockpit-metric-grid{padding:0 16px 16px}.overview-info-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,3fr) minmax(0,4fr);grid-gap:14px;gap:14px;margin-bottom:16px}.overview-card{min-width:0;padding:16px 18px;display:flex;flex-direction:column;overflow:hidden}.overview-card.is-compact{min-height:120px}.overview-card.is-standard{min-height:180px}.overview-card.is-primary{min-height:260px}.overview-card.is-empty,.overview-card.is-empty.is-compact,.overview-card.is-empty.is-primary,.overview-card.is-empty.is-standard{min-height:120px}.overview-card-body{display:flex;flex-direction:column;min-width:0}.overview-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:4px 2px 2px}.overview-empty-icon{width:28px;height:28px;margin-bottom:4px;border-radius:var(--radius-md);background:var(--blue-weak);color:var(--blue);display:grid;place-items:center}.issue-recent-empty b,.overview-empty b{display:block;color:var(--ink);font-size:13px}.overview-empty span{font-size:12px;color:var(--ink2);line-height:1.45}.overview-empty-action{margin-top:6px}.overview-team-meta{margin-top:10px;font-size:12px;color:var(--ink2)}.overview-contact-list{display:flex;flex-direction:column}.overview-contact-row{padding:8px 0;border-bottom:1px solid var(--line2)}.overview-contact-row:last-child{border-bottom:0}.overview-contact-phone{display:inline-block;margin-top:2px;font-size:12px;color:var(--blue);text-decoration:none}.overview-latest{margin-top:12px;padding-top:10px;border-top:1px solid var(--line2)}.overview-latest em{font-style:normal;font-size:11px;font-weight:720;color:var(--muted)}.overview-latest b{display:block;margin-top:4px;font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overview-latest span{display:block;margin-top:2px;font-size:12px;color:var(--ink2)}.overview-kv{display:grid;grid-template-columns:1fr auto;grid-gap:6px 12px;gap:6px 12px;margin:0;font-size:13px}.overview-kv dt{color:var(--ink2)}.overview-kv dd{margin:0;font-weight:720;color:var(--ink)}.overview-progress-line{display:flex;flex-direction:column;gap:4px;margin-top:10px}.overview-progress-line span{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.overview-progress-line em{font-style:normal;font-weight:720;color:var(--ink2)}.overview-ready-flag{margin-top:10px;display:inline-flex;align-self:flex-start;height:22px;padding:0 8px;border-radius:999px;background:var(--green-weak);color:var(--green);font-size:11px;font-weight:720;align-items:center}.overview-info-grid .overview-contact-grid{display:grid;grid-gap:8px;gap:8px}.overview-info-grid .overview-contact-card{padding:8px 0;border-bottom:1px solid var(--line2);box-shadow:none}@media (max-width:1199px){.project-workspace-grid{grid-template-columns:minmax(0,1fr) 320px}.project-focus-grid{grid-template-columns:1fr}.overview-info-grid{grid-template-columns:1fr 1fr}.overview-info-grid>.is-primary,.overview-info-grid>.is-wide{grid-column:1/-1}}@media (max-width:767px){.project-page .project-head{display:none}.project-workspace-section{padding:18px 16px}.project-brief-row{grid-template-columns:32px minmax(0,1fr)}.project-brief-tags{grid-column:2}.project-brief-empty{align-items:flex-start;flex-direction:column;justify-content:center;gap:4px}.project-next-summary,.project-status-summary{padding:16px}.project-status-main{gap:16px}.project-alert-summary,.project-editor-row,.project-status-main{grid-template-columns:1fr}.overview-focus-issues{padding:16px}.overview-secondary>summary{align-items:flex-start;padding:16px}.overview-info-grid{grid-template-columns:1fr}.overview-info-grid>.is-primary,.overview-info-grid>.is-wide{grid-column:auto}}@media (min-width:1024px){.project-page .project-head{margin-bottom:20px;border-radius:16px}.project-nav-desktop{display:none}}@media (max-width:1439px){.cockpit-grid-main,.cockpit-grid-ops,.dashboard-row-2,.dashboard-row-3{grid-template-columns:1fr 1fr}.cockpit-grid-main>:last-child,.cockpit-grid-ops>:last-child,.dashboard-row-2>:last-child,.dashboard-row-3>:last-child{grid-column:1/-1;height:280px}}@media (max-width:1279px){.cockpit-metric-grid,.kpi-strip,.onboard-stack{grid-template-columns:1fr 1fr}.cockpit-grid-overview{grid-template-columns:1fr}.cockpit-card,.cockpit-card.is-sm{height:auto;min-height:260px}}@media (max-width:1023px){.project-page{max-width:none}.project-workspace-grid{grid-template-columns:1fr}.project-workspace-rail{position:static;grid-row:1}.topbar-tabs{display:none}.cockpit-grid,.cockpit-grid-main,.cockpit-grid-ops,.cockpit-metric-grid,.dashboard-row-2,.dashboard-row-3,.kpi-strip,.onboard-stack{grid-template-columns:1fr}.cockpit-grid-main>:last-child,.cockpit-grid-ops>:last-child,.dashboard-row-2>:last-child,.dashboard-row-3>:last-child{grid-column:auto}.today-stack{display:grid;grid-gap:10px;gap:10px}.risk-list-head,.risk-list-row,.workload-head,.workload-row{grid-template-columns:1fr auto}.risk-list-head span:nth-child(n+3),.workload-head{display:none}}.relation-badges{display:flex;flex-wrap:wrap;gap:6px}.org-owner-grid,.org-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-top:12px}.org-owner-card,.org-template-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.org-owner-card p,.org-template-card p{margin:8px 0 0;color:var(--muted);font-size:12px}.work-mobile{display:none}.mw-me{display:flex;flex-direction:column;gap:16px;max-width:560px}@media (max-width:1023px){.app-shell,body,html{min-height:100dvh}.work-desktop{display:none!important;width:0!important;height:0!important;overflow:hidden!important;position:absolute!important;pointer-events:none!important}.login-page{padding:24px 16px;min-height:100dvh}.login-card{width:100%;max-width:420px;padding:28px 20px}.work-mobile{display:block}.nav-backdrop,.nav-toggle,.sidebar{display:none!important}.main{margin-left:0;width:100%}.content{padding:12px 16px calc(var(--tabbar-height) + env(safe-area-inset-bottom, 0px) + 16px)}.mw-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;justify-content:space-between;min-height:52px;padding:env(safe-area-inset-top,0) 8px 8px;background:rgba(246,248,252,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.mw-topbar,.mw-topbar-left{display:flex;align-items:center;gap:8px}.mw-topbar-left{min-width:0;flex:1 1}.mw-topbar-brand{display:flex;align-items:center;flex-shrink:0;line-height:0}.mw-topbar-logo{display:block;height:22px;width:104px}.mw-topbar-copy{min-width:0}.mw-topbar-title{font-size:17px;font-weight:750;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mw-topbar-sub{font-size:12px;color:var(--ink2);margin-top:2px}.mw-topbar-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.mw-search-sheet{position:fixed;inset:0;z-index:80;background:#fff;display:flex;flex-direction:column;padding:env(safe-area-inset-top,0) 12px 12px}.mw-search-bar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.mw-search-bar .search{flex:1 1;width:auto;min-width:0;min-height:44px}.mw-search-body{flex:1 1;overflow:auto;-webkit-overflow-scrolling:touch}.mobile-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:35;box-sizing:border-box;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom, 0px));padding-bottom:env(safe-area-inset-bottom,0);background:rgba(255,255,255,.96);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-tabbar a,.mobile-tabbar button{border:0;background:transparent;color:var(--ink2);font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;width:100%;padding:0}.mobile-tabbar a.active,.mobile-tabbar button.active{color:var(--blue)}.mw-tab-ico{font-size:16px;line-height:1}.mw-tab-notify{position:relative}.mobile-tabbar-plus{width:56px!important;height:56px!important;margin:-18px auto 0;border-radius:50%!important;background:var(--blue)!important;color:#fff!important;font-size:28px!important;box-shadow:0 8px 18px rgba(11,92,255,.28)}.mw-sheet-backdrop{position:fixed;inset:0;z-index:90;background:rgba(23,32,46,.36);display:flex;align-items:flex-end}.mw-sheet{width:100%;max-height:min(88dvh,100%);background:#fff;border-radius:16px 16px 0 0;padding:0 0 env(safe-area-inset-bottom,0);display:flex;flex-direction:column}.mw-sheet-handle{width:36px;height:4px;border-radius:99px;background:#d8dee8;margin:10px auto 0}.mw-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 10px 16px}.mw-sheet-head h2{margin:0;font-size:17px}.mw-sheet-body{overflow:auto;-webkit-overflow-scrolling:touch;padding:0 8px 16px}.mw-create-list{display:flex;flex-direction:column}.mw-create-item{min-height:48px;width:100%;border:0;background:transparent;text-align:left;padding:12px;font-size:16px;border-bottom:1px solid var(--line2)}.mw-create-hint{margin:12px;color:var(--ink2);font-size:13px}.project-head,.project-nav-desktop{display:none}.mw-exec-subs,.mw-project-tabs,.project-nav-mobile{display:flex;overflow-x:clip;flex-wrap:wrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px 12px;padding:0 16px;gap:8px}.mw-chip-scroll::-webkit-scrollbar,.notify-filter-chips::-webkit-scrollbar,.project-nav-mobile::-webkit-scrollbar{display:none}.subnav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.mw-home,.mw-me,.mw-notify,.mw-projects{display:flex;flex-direction:column;gap:16px}.mw-hello h1{margin:4px 0 0;font-size:26px;font-weight:800;letter-spacing:-.03em}.mw-empty,.mw-hello p{margin:4px 0 0;color:var(--ink2);font-size:13px}.mw-section{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}.mw-section h2,.mw-section-head h2{margin:0 0 12px;font-size:17px;font-weight:750}.mw-section-head{display:flex;align-items:center;justify-content:space-between}.mw-more{font-size:13px;color:var(--blue);font-weight:650}.mw-kpi{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.mw-kpi-card{min-height:92px;max-height:116px;display:flex;flex-direction:column;justify-content:space-between;padding:12px 14px;border-radius:14px;background:var(--surface2);border:1px solid var(--line2)}.mw-kpi-card span{font-size:12px;color:var(--ink2)}.mw-kpi-card strong{font-size:26px;font-weight:800;letter-spacing:-.03em}.mw-mini-row{align-items:center;justify-content:space-between;min-height:44px;font-size:14px}.mw-list-card,.mw-mini-row{display:flex;border-top:1px solid var(--line2)}.mw-list-card{flex-direction:column;gap:4px;padding:12px 0;min-height:64px}.mw-list-card strong{font-size:15px}.mw-list-card span{font-size:12px;color:var(--ink2)}.mw-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;justify-items:stretch}.mw-chip,.mw-chip-btn{min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:650;white-space:nowrap;color:var(--ink2)}.mw-actions .mw-chip-btn{display:flex;align-items:center;justify-content:center;width:100%;text-align:center;line-height:1;box-sizing:border-box}.mw-actions .mw-chip-btn:last-child:nth-child(odd){grid-column:1/-1;max-width:calc(50% - 5px);justify-self:center}.mw-chip-btn:active,.mw-chip.active{background:var(--blue-weak);border-color:#c9dcff;color:var(--blue)}.mw-chip-scroll{display:flex;gap:8px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.mw-segmented{display:grid;grid-template-columns:1fr 1fr;background:var(--surface2);border-radius:12px;padding:4px}.mw-segmented button{min-height:40px;border:0;background:transparent;border-radius:10px;font-weight:700;color:var(--ink2)}.mw-segmented button.active{background:#fff;color:var(--ink);box-shadow:var(--shadow-1)}.mw-project-cards{display:flex;flex-direction:column;gap:12px}.mw-project-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);min-height:120px}.mw-project-card strong{font-size:16px;line-height:1.35;overflow-wrap:anywhere}.mw-project-code{font-size:12px;color:var(--ink2)}.mw-project-meta{display:flex;flex-wrap:wrap;gap:6px}.mw-project-owners{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink2)}.mw-overview .quick-action-bar{display:flex;flex-wrap:wrap;max-height:none;min-height:0;order:-1}.mw-overview .quick-action-bar .btn{min-height:40px;height:40px}.mw-overview .kpi-strip{grid-template-columns:1fr 1fr;gap:10px}.mw-overview .kpi,.mw-overview .kpi-cockpit{min-height:92px;max-height:116px;padding:12px 14px}.mw-overview .k-value{font-size:26px;margin-top:4px}.mw-overview .k-foot{display:none}.mw-overview .kpi-icon{width:36px;height:36px}.mw-overview .kpi-icon svg{width:16px;height:16px}.mw-overview .cockpit-grid,.mw-overview .cockpit-metric-grid,.mw-overview .overview-info-grid{display:flex;flex-direction:column;gap:12px}.mw-overview .cockpit-card,.mw-overview .cockpit-card.is-sm,.mw-overview .overview-card{min-height:0;height:auto}.mw-overview .overview-info-grid .mw-order-team{order:1}.mw-overview .overview-info-grid .mw-order-issues{order:2}.mw-overview .overview-info-grid .mw-order-contacts{order:3}.mw-overview .overview-info-grid .mw-order-procurement{order:4}.mw-overview .overview-info-grid .mw-order-drawings{order:5}.mw-overview .overview-info-grid .mw-order-delivery{order:6}.mw-notify-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.mw-notify .page-head{display:none}.mw-notify .notify-filter-row{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.mw-notify .notify-filter-chips{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px}.mw-notify .notify-card{display:flex;align-items:stretch;padding:0}.mw-notify .notify-card-main{min-height:72px;text-align:left;padding:14px 12px}.mw-me-profile{display:flex;gap:12px;align-items:center;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px}.mw-me-avatar{width:52px;height:52px;border-radius:50%;background:var(--blue-weak);color:var(--blue);display:grid;place-items:center;font-weight:800;font-size:20px}.mw-me-profile strong{font-size:18px}.mw-me-profile p{margin:2px 0 0;color:var(--ink2);font-size:13px}.mw-me-list{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.mw-me-list a{min-height:48px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--line2);font-size:15px}.mw-me-list a:last-child{border-bottom:0}.mw-me-logout{min-height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--red);font-weight:700}.modal-backdrop:not(:has(.drawer-card)){align-items:flex-end;padding:0}.modal-backdrop:not(:has(.drawer-card)) .modal-layer{width:100%}.modal-backdrop:not(:has(.drawer-card)) .modal-card{width:100%;max-width:100%;max-height:min(92dvh,100%);border-radius:16px 16px 0 0;display:flex;flex-direction:column;overflow:hidden}.modal-card.drawer-card,.modal-card.drawer-card.wide-drawer{width:100%;height:100dvh;max-height:100dvh}.app-select-trigger,.modal-card input:not([type=checkbox]):not([type=file]):not([type=radio]):not([type=hidden]),.modal-card select,.modal-card textarea{min-height:44px}.app-shell,.content,.main,body,html{overflow-x:clip;overscroll-behavior-x:none;max-width:100%}canvas,iframe,img,svg,video{max-width:100%}.form-grid,.page-head,.permission-toolbar,.surface,.toolbar{min-width:0;max-width:100%}.page-head p{display:none}.page-head h1{font-size:22px;margin:0 0 10px}.form-grid,.surface .form-grid{grid-template-columns:1fr}.mw-settings-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin:0 0 14px;max-width:100%}.mw-settings-nav .settings-tab{display:flex;width:100%;min-width:0;height:40px;padding:0 8px;justify-content:center;box-sizing:border-box}.mw-settings-nav .settings-tab:last-child:nth-child(odd){grid-column:1/-1}.team-subtabs{display:flex;flex-wrap:wrap;overflow:visible;gap:8px;margin:0 0 12px;max-width:100%}.mw-chip-scroll,.mw-project-tabs,.notify-filter-chips,.notify-filter-row,.project-nav-mobile,.quick-action-bar,.subnav{max-width:100%;min-width:0;overscroll-behavior-x:contain}.contact-toolbar .input,.content .app-select,.content .input,.content .search{min-width:0;max-width:100%}.contact-card-grid{grid-template-columns:1fr}.modal-actions{flex-wrap:wrap}.permission-toolbar,.toolbar{display:flex;flex-wrap:wrap;gap:8px}.permission-toolbar>.input,.toolbar>.input{flex:1 1 100%;min-width:0;width:100%;max-width:100%}.permission-toolbar .app-select,.surface .toolbar .app-select,.toolbar .app-select{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);min-width:0;width:auto}.table-scroll,.tablewrap{overflow-x:clip;overflow-y:visible;max-width:100%}.procurement-aggregate-table .col-actions,.records-action-table td.col-actions,.records-action-table th.col-actions{position:static;min-width:0;width:auto;max-width:100%;white-space:normal;box-shadow:none}.data-table .toolbar-actions,.records-action-table .row-actions{flex-wrap:wrap;justify-content:flex-start}.data-table{display:block;width:100%}.data-table thead{display:none}.data-table tbody{gap:12px}.data-table tbody,.data-table tr{display:flex;flex-direction:column}.data-table tr{gap:8px;width:100%;box-sizing:border-box;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}.data-table td{display:block;width:100%;max-width:100%;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-align:left}.data-table td:first-child{font-size:15px;font-weight:700}.data-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:4px;font-size:11px;font-weight:650;color:var(--ink2)}.mw-member-list{display:flex;flex-direction:column;gap:12px}.mw-member-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-1)}.mw-member-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.mw-member-name{border:0;background:transparent;padding:0;font-size:16px;font-weight:750;text-align:left;color:var(--blue)}.mw-member-email,.mw-member-perm{margin:6px 0 0;font-size:12px;color:var(--ink2);overflow-wrap:anywhere;word-break:break-word}.mw-member-meta{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;margin:12px 0 0}.mw-member-meta dt{font-size:11px;color:var(--ink2)}.mw-member-meta dd{margin:2px 0 0;font-size:13px;font-weight:650}.mw-member-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:12px}.mw-member-actions .app-select,.mw-member-actions .btn{display:block;width:100%;min-height:40px}.mw-member-actions .app-select.compact .app-select-trigger{height:40px;min-height:40px;width:100%}}