*{box-sizing:border-box}:root{color:#f8fafc;background:#020817;--background: hsl(222.2 84% 4.9%);--foreground: hsl(210 40% 98%);--card: hsl(222.2 47.4% 7.2%);--card-foreground: hsl(210 40% 98%);--popover: hsl(222.2 47.4% 7.2%);--popover-foreground: hsl(210 40% 98%);--primary: hsl(210 40% 98%);--primary-foreground: hsl(222.2 47.4% 11.2%);--secondary: hsl(217.2 32.6% 17.5%);--secondary-foreground: hsl(210 40% 98%);--muted: hsl(217.2 32.6% 17.5%);--muted-foreground: hsl(215 20.2% 65.1%);--accent: hsl(217.2 32.6% 17.5%);--accent-foreground: hsl(210 40% 98%);--destructive: hsl(0 62.8% 50.6%);--destructive-foreground: hsl(210 40% 98%);--border: hsl(217.2 32.6% 17.5%);--input: hsl(217.2 32.6% 17.5%);--ring: hsl(212.7 26.8% 83.9%);--radius: 8px;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;background:radial-gradient(circle at 12% 10%,rgba(44,214,255,.16),transparent 28%),radial-gradient(circle at 80% 2%,rgba(62,242,169,.14),transparent 24%),linear-gradient(135deg,#071012,#0a1718 48%,#0d1517);color:#e9fffb}.home-screen,.workspace-screen{min-height:100vh}.home-screen{padding:28px;overflow:auto;height:100vh}.topbar,.workspace-topbar,.section-head,.workspace-actions,.workspace-title,.panel-head,.project-title-row,.modal-head,.detail-head,.card-actions{display:flex;align-items:center}.topbar,.workspace-topbar,.section-head,.project-title-row,.modal-head,.detail-head{justify-content:space-between}.brand-lockup,.workspace-title{display:flex;gap:14px;align-items:center;min-width:0}.brand-mark{width:48px;height:48px;border:1px solid rgba(87,244,212,.32);display:grid;place-items:center;color:#5bf4d2;background:#0b1f21c7;box-shadow:0 0 28px #5bf4d229}h1,h2,h3,p{margin:0}h1{font-size:clamp(24px,3vw,38px);line-height:1.08;letter-spacing:0}.brand-lockup p,.workspace-title span,.section-head span,.project-meta,.eyebrow,.muted,.empty-detail p,.field span,.metric-tile span,.point-row span,.kpi-card span{color:#8ea3ad}.primary-button,.ghost-button,.sync-button,.icon-button,.segmented button{border:1px solid rgba(91,244,210,.22);color:#eafffb;background:#0d2325e0;min-height:40px;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;background:linear-gradient(135deg,#13c8ad,#2478ff);border-color:#ffffff47;font-weight:700;box-shadow:0 12px 32px #13c8ad38}.sync-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;color:#5bf4d2;white-space:nowrap}.ghost-button{padding:0 16px}.icon-button{width:40px;height:40px;display:inline-grid;place-items:center;padding:0}.icon-button:hover,.primary-button:hover,.sync-button:hover,.ghost-button:hover,.segmented button:hover,.icon-button.active{transform:translateY(-1px);border-color:#5bf4d294;box-shadow:0 0 22px #5bf4d224}.icon-button.danger{color:#ff8aa0;border-color:#ff5a7a4d}.icon-button:disabled,.primary-button:disabled,.sync-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:28px 0}.kpi-card{min-height:112px;display:flex;align-items:center;gap:16px;padding:20px;border:1px solid rgba(255,255,255,.09);background:#091b1db8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.kpi-icon{width:52px;height:52px;display:grid;place-items:center;background:#ffffff0f}.kpi-card strong{display:block;margin-top:4px;font-size:34px;line-height:1}.tone-green .kpi-icon,.tone-green strong{color:#49f2a9}.tone-cyan .kpi-icon,.tone-cyan strong{color:#49d8ff}.tone-amber .kpi-icon,.tone-amber strong{color:#ffd166}.tone-rose .kpi-icon,.tone-rose strong{color:#ff6d8b}.project-section{padding:22px;border:1px solid rgba(255,255,255,.08);background:#061214ad;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.section-head{gap:16px;margin-bottom:18px}.section-head h2{font-size:22px}.search-box{display:flex;align-items:center;gap:8px;min-width:min(360px,42vw);height:42px;padding:0 12px;border:1px solid rgba(91,244,210,.2);background:#0a1a1ceb}.search-box input{flex:1;min-width:0;border:0;outline:0;color:#eafffb;background:transparent}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{min-width:0;overflow:hidden;border:1px solid rgba(255,255,255,.09);background:#0b1d1fdb}.project-card:hover{border-color:#5bf4d270}.project-visual{position:relative;height:178px;overflow:hidden;background:#091617}.project-visual img{width:100%;height:100%;object-fit:cover}.project-visual-grid{height:100%;display:grid;place-items:center;color:#55f1d2;background:linear-gradient(rgba(91,244,210,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(91,244,210,.11) 1px,transparent 1px),linear-gradient(135deg,#2a9bff2e,#49f2a917);background-size:24px 24px,24px 24px,auto}.project-mode-badge{position:absolute;right:12px;top:12px;padding:5px 10px;border:1px solid rgba(91,244,210,.35);background:#061113d1;color:#5bf4d2;font-size:12px;font-weight:800}.project-card-body{padding:16px}.project-title-row{gap:10px}.project-title-row h3{margin-top:4px;font-size:17px;line-height:1.35}.project-meta{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0;font-size:13px}.card-actions{gap:8px}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border:1px solid rgba(91,244,210,.32);color:#5bf4d2;background:#5bf4d214;white-space:nowrap;font-size:12px;font-weight:800}.status-project-维护{color:#ffd166;border-color:#ffd16652;background:#ffd16614}.status-project-停用{color:#9aa6b2;border-color:#9aa6b247;background:#9aa6b212}.workspace-screen{display:flex;flex-direction:column;height:100vh;overflow:hidden}.workspace-topbar{min-height:72px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:#051113e6}.workspace-title h1{max-width:54vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:23px}.workspace-actions{gap:10px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a}.segmented.compact{display:flex}.segmented button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;min-width:44px;background:transparent;box-shadow:none}.segmented button.active{background:#5bf4d229;border-color:#5bf4d280}.workspace-grid{flex:1;min-height:0;display:grid;grid-template-columns:var(--left-panel-width, 330px) 8px minmax(420px,1fr) 372px;gap:10px;padding:14px}.left-panel,.right-panel,.viewport-panel{min-height:0;border:1px solid rgba(255,255,255,.08);background:#071416c7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.left-panel,.right-panel{overflow:auto;padding:14px}.panel-resizer{min-height:0;cursor:col-resize;border:1px solid rgba(91,244,210,.12);background:linear-gradient(180deg,transparent,rgba(91,244,210,.2),transparent),#07141685}.panel-resizer:hover{border-color:#5bf4d27a;background:linear-gradient(180deg,transparent,rgba(91,244,210,.42),transparent),#091f21b8}.panel-section{padding:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff09}.panel-section+.panel-section{margin-top:12px}.project-state{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px;align-items:center}.project-state strong{display:block;font-size:24px;line-height:1}.project-state span{font-size:12px}.panel-head{justify-content:space-between;gap:10px;margin-bottom:10px}.panel-head-actions{display:flex;align-items:center;gap:8px}.panel-head h2,.panel-head h3{font-size:16px}.object-list,.point-list{display:grid;gap:8px}.object-item,.point-row{width:100%;min-height:42px;border:1px solid rgba(255,255,255,.08);color:#e9fffb;background:#061214bd}.object-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 10px;text-align:left}.object-item.active,.point-row.active{border-color:#5bf4d28a;background:#5bf4d21c}.object-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.object-item em{font-style:normal;color:#5bf4d2}.object-editor{display:grid;grid-template-columns:1fr 74px 40px;gap:8px;margin-top:10px}.point-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:8px 10px;text-align:left}.point-row strong,.point-row span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.point-row strong{font-size:13px}.point-row span{margin-top:2px;font-size:12px}.point-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 14px currentColor}.points-section{max-height:48vh;overflow:auto}.add-point-panel{display:grid;gap:10px}.wide-button{width:100%}.sync-panel .field+.field,.sync-panel .form-grid+.field{margin-top:8px}.source-list{display:grid;gap:10px;max-height:460px;overflow:auto;padding-right:2px}.source-card{padding:10px;border:1px solid rgba(91,244,210,.14);background:#061214ad}.source-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.source-actions{display:flex;gap:6px}.compact-toggle{min-width:0;margin-top:0}.compact-toggle span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e9fffb;font-weight:700}.toggle-row{min-height:36px;margin-top:10px;display:flex;align-items:center;gap:9px;color:#d9fff7;font-size:13px}.toggle-row input{width:17px;height:17px;accent-color:#13c8ad}.sync-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.sync-meta span{min-width:0;display:flex;align-items:center;gap:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px;color:#8ea3ad;background:#ffffff0a;font-size:12px}.remote-list{display:grid;gap:8px}.remote-item{display:grid;grid-template-columns:1fr 40px;align-items:center;gap:8px;min-height:54px;padding:8px 10px;border:1px solid rgba(255,255,255,.08);background:#061214bd}.remote-item strong,.remote-item span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-item strong{font-size:13px}.remote-item span{margin-top:3px;color:#8ea3ad;font-size:12px}.deformation-panel{display:grid;gap:10px}.deformation-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.deformation-kpis .metric-tile{min-height:58px;padding:9px}.deformation-kpis .metric-tile strong{font-size:14px}.benchmark-row{display:flex;flex-wrap:wrap;gap:6px}.benchmark-row span{padding:5px 7px;border:1px solid rgba(91,244,210,.26);background:#ffffff0a;font-size:12px}.deformation-list{display:grid;gap:8px;max-height:280px;overflow:auto}.deformation-item{padding:9px;border:1px solid rgba(255,255,255,.08);background:#061214bd}.deformation-title,.deformation-axis{display:flex;align-items:center;justify-content:space-between;gap:8px}.deformation-title strong{font-size:14px}.deformation-title span{font-size:12px;font-weight:800}.deformation-values{display:grid;gap:4px;margin:8px 0;color:#d9fff7;font-size:12px}.deformation-axis span{min-width:0;color:#8ea3ad;font-size:12px}.deformation-axis.two-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;justify-content:stretch;row-gap:4px}.deformation-item em{display:block;margin-top:7px;color:#72868e;font-size:11px;font-style:normal}.viewport-panel{position:relative;overflow:hidden}.data-viewport{overflow:auto}.viewport-toolbar{position:absolute;z-index:5;top:14px;left:14px;right:14px;display:flex;align-items:center;gap:8px;pointer-events:none}.viewport-toolbar>*{pointer-events:auto}.viewport-toolbar .segmented{background:#061113d6}.asset-name{min-width:0;max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 12px;border:1px solid rgba(255,255,255,.09);color:#a8bcc4;background:#061113b8;font-size:12px}.plan-viewport,.three-viewport{width:100%;height:100%;min-height:420px;background:linear-gradient(rgba(91,244,210,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(91,244,210,.07) 1px,transparent 1px),#071214;background-size:28px 28px;touch-action:none;-webkit-user-select:none;user-select:none}.plan-viewport.tool-add{cursor:crosshair}.plan-stage{position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;border:1px solid rgba(91,244,210,.25);background:#102022;box-shadow:0 18px 70px #0000005c}.plan-image{width:100%;height:100%;object-fit:contain;display:block;background:#081214}.default-plan{position:relative;width:100%;height:100%;overflow:hidden;background:linear-gradient(135deg,#132a28,#0d1b20 48%,#102b34)}.terrain-band{position:absolute;left:-6%;width:112%;height:30%;opacity:.9;transform:rotate(-8deg)}.band-a{top:5%;background:#346848b8}.band-b{top:28%;background:#235b59a6}.band-c{top:55%;background:#264259ad}.rail-line{position:absolute;left:6%;right:8%;height:8px;background:#d1b15f;transform:rotate(9deg);box-shadow:0 18px #d1b15fd1}.rail-main{top:48%}.rail-side{top:56%}.retaining-wall{position:absolute;left:8%;top:22%;width:42%;height:12%;border:1px solid rgba(255,255,255,.18);background:repeating-linear-gradient(90deg,rgba(255,255,255,.13) 0 2px,transparent 2px 30px);transform:rotate(-8deg)}.foundation-grid{position:absolute;right:9%;bottom:10%;display:grid;grid-template-columns:repeat(6,28px);gap:10px}.foundation-grid span{width:28px;height:28px;border:1px solid rgba(91,244,210,.26);background:#5bf4d214}.map-marker{position:absolute;transform:translate(-50%,-50%);border:0;padding:0;background:transparent;color:var(--marker-color)}.map-marker span{display:block;width:22px;height:22px;border:3px solid currentColor;border-radius:50%;background:#060e10d6;box-shadow:0 0 26px currentColor}.map-marker.selected span{width:30px;height:30px}.map-marker em{position:absolute;top:26px;left:50%;transform:translate(-50%);padding:3px 6px;border:1px solid currentColor;color:#eafffb;background:#060e10db;white-space:nowrap;font-size:12px;font-style:normal}.point-hover-card{position:absolute;z-index:12;width:268px;padding:10px;border:1px solid rgba(91,244,210,.32);color:#e9fffb;background:#051113f5;box-shadow:0 18px 42px #00000057,0 0 24px #5bf4d21f;pointer-events:none}.hover-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.hover-head strong,.hover-head span{display:block;min-width:0}.hover-head strong{color:#f3fffb;font-size:15px}.hover-head span{margin-top:2px;color:#8ea3ad;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hover-head em{flex:0 0 auto;padding:3px 7px;border:1px solid currentColor;background:#ffffff0a;font-size:12px;font-style:normal;font-weight:800}.hover-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.hover-metrics span{min-width:0;padding:6px;color:#8ea3ad;background:#ffffff0b;font-size:11px}.hover-metrics b{display:block;margin-top:2px;color:#eafffb;font-size:12px;font-weight:800}.hover-chart{height:66px;margin-top:8px;border:1px solid rgba(255,255,255,.07);background:linear-gradient(rgba(91,244,210,.06) 1px,transparent 1px),#ffffff06;background-size:100% 18px}.three-viewport canvas{display:block;width:100%;height:100%}.three-viewport.adding{cursor:crosshair}.scene-badge{position:absolute;z-index:4;right:16px;bottom:16px;padding:8px 10px;border:1px solid rgba(91,244,210,.35);color:#5bf4d2;background:#061113d1;font-size:12px}.right-panel{display:flex;flex-direction:column;gap:12px}.empty-detail{align-items:center;justify-content:center;text-align:center}.empty-detail svg{color:#5bf4d2}.detail-head{gap:12px}.detail-head h2{margin-top:4px;font-size:20px}.detail-head small{display:block;margin-top:4px;color:#8ea3ad;font-size:12px}.data-page{min-height:100%;padding:74px 16px 16px;overflow:auto}.data-head,.data-chart-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.data-head{margin-bottom:14px}.data-head span,.data-chart-head span{color:#8ea3ad;font-size:12px}.data-head h2{margin-top:4px;font-size:22px}.data-filters{display:grid;grid-template-columns:40px 40px auto minmax(190px,1fr) 150px 128px;align-items:center;gap:8px;min-width:min(780px,68%)}.copy-hint{min-width:72px;color:#5bf4d2;font-size:12px;white-space:nowrap}.compact-search{min-width:0;height:38px}.data-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.data-kpis .metric-tile{min-height:66px}.data-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:12px;min-height:0}.data-table-card,.data-chart-card{min-width:0;border:1px solid rgba(255,255,255,.08);background:#ffffff09}.data-table-card{overflow:auto}.data-table{min-width:900px}.data-table-row{width:100%;display:grid;grid-template-columns:92px 112px 132px 102px 102px 102px 72px 150px;gap:10px;align-items:center;min-height:44px;padding:0 12px;border:0;border-bottom:1px solid rgba(255,255,255,.07);color:#dffcf6;background:transparent;text-align:left}.data-table-row.head{position:sticky;z-index:2;top:0;min-height:38px;color:#8ea3ad;background:#08181bf5;font-size:12px;font-weight:700}.data-table-row:not(.head):hover,.data-table-row.active{background:#5bf4d217}.data-table-row strong,.data-table-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.data-table-row strong{color:#f3fffb;font-size:13px}.data-chart-card{display:grid;align-content:start;gap:12px;padding:12px}.data-chart-head h3{margin-top:3px;font-size:20px}.status-strip{display:flex;flex-wrap:wrap;gap:8px}.status-strip span{padding:6px 8px;border:1px solid rgba(91,244,210,.22);background:#ffffff0a;font-size:12px}.readonly-grid .metric-tile{min-height:58px;padding:10px}.readonly-grid .metric-tile strong{font-size:14px}.deformation-values.expanded{margin-top:12px}.direction-grid{display:grid;gap:10px;margin-top:12px}.direction-card{padding:10px;border:1px solid rgba(91,244,210,.14);background:#061214ad}.direction-card strong{display:block;margin-bottom:8px;color:#f3fffb;font-size:13px}.direction-card div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px}.direction-card span{min-width:0;color:#9fb4bb;font-size:12px;overflow-wrap:anywhere}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-tile,.chart-block,.detail-form{border:1px solid rgba(255,255,255,.08);background:#ffffff09}.metric-tile{min-height:72px;padding:12px}.metric-tile strong{display:block;margin-top:8px;color:#f3fffb;font-size:18px;line-height:1.18;overflow-wrap:anywhere}.chart-block{padding:12px 10px 4px}.chart-block h3,.detail-form h3{margin:0 0 10px;font-size:15px}.detail-form{padding:12px}.field{display:grid;gap:6px}.field+.field,.form-grid+.field,.field+.form-grid,.form-grid+.form-grid{margin-top:10px}.field span{font-size:12px}input,select,textarea{width:100%;min-width:0;border:1px solid rgba(255,255,255,.1);outline:0;color:#e9fffb;background:#040d0fc2}input,select{height:38px;padding:0 10px}textarea{min-height:72px;resize:vertical;padding:9px 10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.modal-backdrop{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:22px;background:#0000008f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-card{width:min(560px,100%);max-height:calc(100vh - 44px);overflow:auto;padding:18px;border:1px solid rgba(91,244,210,.26);background:#081719;box-shadow:0 22px 80px #0000006b}.modal-head{margin-bottom:16px}.upload-drop{position:relative;min-height:82px;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px dashed rgba(91,244,210,.38);color:#a8f5e2;background:#5bf4d20f}.upload-drop input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@media(max-width:1180px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid{grid-template-columns:var(--left-panel-width, 320px) 8px minmax(380px,1fr);grid-template-rows:minmax(0,1fr) 360px}.right-panel{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-head,.metric-grid{grid-column:span 1}.data-main{grid-template-columns:1fr}.data-filters{min-width:0;grid-template-columns:40px 40px auto 1fr 132px 112px}}@media(max-width:820px){body{overflow:auto}.home-screen,.workspace-screen{height:auto;min-height:100vh;overflow:visible}.topbar,.workspace-topbar,.section-head{align-items:stretch;flex-direction:column}.kpi-grid,.project-grid,.workspace-grid,.right-panel{grid-template-columns:1fr}.workspace-grid{grid-template-rows:auto;height:auto}.panel-resizer{display:none}.viewport-panel{height:58vh;min-height:460px}.data-viewport{height:auto;min-height:0}.data-head,.data-filters{grid-template-columns:1fr}.data-filters .icon-button{width:100%}.data-head{align-items:stretch;flex-direction:column}.data-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.search-box{width:100%;min-width:0}.workspace-title h1{max-width:100%}}@media(max-width:560px){.home-screen{padding:16px}.kpi-grid,.project-grid{gap:12px}.workspace-grid{padding:10px;gap:10px}.workspace-actions{flex-wrap:wrap}.form-grid,.form-grid.three,.metric-grid,.data-kpis{grid-template-columns:1fr}}body{color:var(--foreground);background:var(--background)}button,input,select,textarea{border-radius:calc(var(--radius) - 2px)}.app-shell{color:var(--foreground);background:var(--background)}.brand-lockup p,.workspace-title span,.section-head span,.project-meta,.eyebrow,.muted,.empty-detail p,.field span,.metric-tile span,.point-row span,.kpi-card span,.remote-item span,.sync-meta span,.data-head span,.data-chart-head span,.detail-head small,.detail-head>div>span{color:var(--muted-foreground)}.topbar,.workspace-topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--background) 94%,white 6%);box-shadow:none}.brand-mark,.kpi-card,.project-section,.project-card,.left-panel,.right-panel,.viewport-panel,.panel-section,.source-card,.remote-item,.deformation-item,.metric-tile,.chart-block,.detail-form,.data-table-card,.data-chart-card,.point-hover-card,.modal-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--card-foreground);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.brand-mark{color:var(--foreground);width:44px;height:44px}.primary-button,.ghost-button,.sync-button,.icon-button,.segmented button{min-height:40px;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);color:var(--secondary-foreground);background:var(--secondary);box-shadow:none}.primary-button{color:var(--primary-foreground);background:var(--primary);border-color:var(--primary);font-weight:600}.sync-button{color:var(--foreground)}.icon-button:hover,.primary-button:hover,.sync-button:hover,.ghost-button:hover,.segmented button:hover,.icon-button.active{transform:none;border-color:var(--ring);background:var(--accent);color:var(--accent-foreground);box-shadow:none}.primary-button:hover{background:color-mix(in srgb,var(--primary) 90%,black 10%)}.icon-button.danger{color:var(--destructive-foreground);border-color:color-mix(in srgb,var(--destructive) 58%,var(--border));background:color-mix(in srgb,var(--destructive) 18%,var(--secondary))}.search-box,input,select,textarea{border:1px solid var(--input);background:var(--background);color:var(--foreground);box-shadow:none}.search-box input{border:0;background:transparent}input:focus,select:focus,textarea:focus,.search-box:focus-within{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 24%,transparent)}.segmented{border:1px solid var(--border);border-radius:var(--radius);background:var(--background)}.segmented button{border-color:transparent;background:transparent}.segmented button.active{border-color:var(--border);background:var(--secondary)}.status-pill,.project-mode-badge,.scene-badge,.benchmark-row span,.status-strip span,.hover-head em{border:1px solid var(--border);border-radius:calc(var(--radius) - 3px);color:var(--foreground);background:var(--secondary)}.status-project-维护{color:#f8c630;border-color:#8a6905;background:#3b2d02}.status-project-停用{color:var(--muted-foreground);border-color:var(--border);background:var(--muted)}.tone-green .kpi-icon,.tone-green strong{color:#21c45d}.tone-cyan .kpi-icon,.tone-cyan strong{color:#0da2e7}.tone-amber .kpi-icon,.tone-amber strong{color:#f59f0a}.tone-rose .kpi-icon,.tone-rose strong{color:#f2406a}.kpi-icon,.sync-meta span,.hover-metrics span,.direction-card,.readonly-grid .metric-tile,.data-table-row:not(.head):hover,.data-table-row.active,.object-item.active,.point-row.active{border-radius:calc(var(--radius) - 2px);background:var(--secondary)}.object-item,.point-row,.remote-item,.source-card,.deformation-item{border-color:var(--border);background:color-mix(in srgb,var(--card) 88%,white 4%)}.object-item,.point-row{border-radius:calc(var(--radius) - 2px)}.object-item.active,.point-row.active,.project-card:hover{border-color:var(--ring)}.project-visual,.plan-image,.plan-stage{background:var(--background)}.project-visual-grid,.plan-viewport,.three-viewport{background:linear-gradient(hsl(217.2 32.6% 17.5% / .42) 1px,transparent 1px),linear-gradient(90deg,hsl(217.2 32.6% 17.5% / .42) 1px,transparent 1px),var(--background);background-size:28px 28px;color:var(--muted-foreground)}.default-plan{background:linear-gradient(135deg,#0b101e,#0f1729)}.panel-resizer{border:1px solid var(--border);border-radius:var(--radius);background:var(--secondary)}.panel-resizer:hover{border-color:var(--ring);background:var(--accent)}.data-table-row.head{color:var(--muted-foreground);background:var(--secondary)}.data-table-row{border-bottom-color:var(--border)}.metric-tile strong,.data-chart-head h3,.hover-head strong,.direction-card strong,.point-row strong,.remote-item strong{color:var(--foreground)}.point-hover-card{background:var(--popover);color:var(--popover-foreground);box-shadow:0 18px 50px #00000059}.hover-chart{border-color:var(--border);background:var(--background)}.modal-backdrop{background:#020617b8}.modal-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--card-foreground);box-shadow:0 18px 50px #00000059}.upload-drop{border-color:var(--border);border-radius:var(--radius);color:var(--muted-foreground);background:var(--background)}.upload-drop:hover{border-color:var(--ring);color:var(--foreground);background:var(--accent)}.copy-hint{color:var(--muted-foreground)}
