:root{color-scheme:dark;font-family:Microsoft YaHei UI,Segoe UI,sans-serif;background:#070b10;color:#dce9ef;font-synthesis:none;text-rendering:optimizeLegibility;--panel: rgba(13, 20, 27, .92);--panel-strong: rgba(18, 28, 36, .96);--line: rgba(126, 231, 255, .16);--line-strong: rgba(126, 231, 255, .34);--text-muted: #82949f;--cyan: #72e6ff;--amber: #ffb45c;--danger: #ff6f61;--green: #80f2b3}*{box-sizing:border-box}body{margin:0;min-width:1180px;height:100vh;height:100dvh;overflow:hidden;background:linear-gradient(rgba(114,230,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(114,230,255,.045) 1px,transparent 1px),radial-gradient(circle at 76% 18%,rgba(255,180,92,.12),transparent 26%),#070b10;background-size:34px 34px,34px 34px,auto,auto}button,label{font:inherit}.app-shell{display:grid;grid-template-rows:62px minmax(0,1fr) 78px;gap:10px;height:100vh;height:100dvh;max-height:100dvh;padding:10px 12px;overflow:hidden}.topbar,.side-panel,.viewport-column,.review-panel,.stats-bar{border:1px solid var(--line);background:linear-gradient(180deg,#0f1820f5,#080d12f5);box-shadow:0 18px 60px #0000004d}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px}.brand-block,.panel-title-row,.viewport-header,.review-actions,.metric,.suggestion-title{display:flex;align-items:center}.brand-block{gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(114,230,255,.38);background:#0b1820;color:var(--cyan);font-weight:800;letter-spacing:0}h1,h2,p{margin:0}h1{font-size:19px;letter-spacing:0}h2{font-size:16px;letter-spacing:0}.brand-block p,.eyebrow,.viewport-meta,.load-message,.metric span,.axis-note p,.suggestion-box li{color:var(--text-muted)}.brand-block p{margin-top:2px;font-size:12px}.eyebrow{display:block;margin-bottom:4px;font-size:10px;font-weight:800;letter-spacing:0}.preset-group,.role-switch,.format-row{display:flex;gap:6px}.segmented{min-width:68px;height:34px;border:1px solid var(--line);background:#0b141b;color:#b7c8d1;cursor:pointer}.segmented:hover,.segmented.active{border-color:var(--line-strong);color:#fff;background:linear-gradient(180deg,#72e6ff2e,#72e6ff0f)}.workspace{display:grid;grid-template-columns:286px minmax(500px,1fr) 350px;gap:10px;min-height:0;overflow:hidden}.side-panel,.viewport-column,.review-panel{min-height:0;overflow:hidden}.side-panel{overflow:hidden}.import-panel,.review-panel{display:flex;flex-direction:column;gap:12px;padding:14px}.import-panel{height:100%;overflow-y:auto;scrollbar-color:rgba(114,230,255,.34) rgba(255,255,255,.04)}.review-panel{overflow-y:auto;scrollbar-color:rgba(114,230,255,.34) rgba(255,255,255,.04)}.panel-title-row{justify-content:space-between}.panel-title-row svg{color:var(--cyan)}.drop-zone{display:grid;place-items:center;gap:8px;width:100%;min-height:150px;border:1px dashed rgba(114,230,255,.35);background:linear-gradient(135deg,rgba(114,230,255,.08),transparent),#080f15d6;color:#d8edf4;cursor:pointer;text-align:center}.drop-zone.dragging{border-color:var(--amber);background:#ffb45c14}.drop-zone svg{color:var(--cyan)}.drop-zone strong{font-size:17px}.drop-zone span,.control-block label{color:var(--text-muted);font-size:12px}.picker-button{display:inline-flex;align-items:center;justify-content:center;min-width:116px;height:32px;margin-top:4px;border:1px solid rgba(255,180,92,.48);background:linear-gradient(180deg,#ffb45c33,#ffb45c0f);color:#ffe5c2!important;font-size:12px;font-weight:800}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.format-row span{flex:1;border:1px solid var(--line);padding:8px 0;color:var(--amber);text-align:center;font-size:12px;font-weight:800}.control-block{display:grid;gap:9px}.load-message{display:flex;gap:8px;align-items:flex-start;min-height:52px;padding:12px;border:1px solid rgba(255,180,92,.18);background:#ffb45c0d;font-size:12px;line-height:1.45}.load-message.error{color:#ffc2bc;border-color:#ff6f6157;background:#ff6f6112}.load-message.ready{color:#bcffd6;border-color:#80f2b357;background:#80f2b312}.model-inspector{position:relative;display:grid;gap:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.inspector-title{display:flex;align-items:center;gap:7px;color:#e7f7fc;font-size:13px}.caret{color:var(--cyan);font-size:12px}.inspector-section{display:grid;gap:7px}.inspector-section>span{color:#71828d;font-size:10px;font-weight:800;letter-spacing:0}.inspector-list{display:grid;gap:3px}.inspector-row{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:8px;min-height:30px;width:100%;border:1px solid transparent;background:transparent;color:#b8c8d0;text-align:left;cursor:pointer}.inspector-row:hover{border-color:#72e6ff29;background:#ffffff09}.inspector-row.active{border-color:#72e6ff73;background:#27aeda;color:#fff}.inspector-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;color:inherit}.wire-opacity-control{display:grid;grid-template-columns:1fr;gap:6px;margin:4px 0 4px 32px;padding:8px;border:1px solid var(--line);background:#72e6ff0b}.wire-opacity-control span,.wire-opacity-control b{color:#c9dce4;font-size:11px}.wire-opacity-control input{width:100%;accent-color:var(--cyan)}.inspector-glint{position:absolute;top:12px;right:2px;color:var(--amber);opacity:.7}.viewport-column{display:grid;grid-template-rows:58px minmax(0,1fr);overflow:hidden}.viewport-header{justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--line);min-width:0}.viewport-header h2{max-width:min(60vw,760px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-meta{display:flex;gap:10px;font-size:12px}.viewport-meta span{border:1px solid var(--line);padding:7px 10px;background:#ffffff08}.model-viewport{min-height:0;position:relative;overflow:hidden}.model-viewport canvas{display:block;width:100%;height:100%}.triangle-card{position:relative;border:1px solid var(--line);background:linear-gradient(rgba(114,230,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(114,230,255,.04) 1px,transparent 1px),#040a0e9e;background-size:22px 22px;padding:14px 12px 12px}.triangle-source{position:absolute;top:10px;right:10px;color:var(--amber);font-size:10px;font-weight:800}.triangle-card svg{display:block;width:100%;height:clamp(150px,24vh,200px)}.triangle-card line,.triangle-ring,.triangle-frame{fill:none;stroke:#72e6ff3d;stroke-width:.7}.triangle-score{fill:#72e6ff33;stroke:var(--cyan);stroke-width:1.4}.score-dot{fill:var(--amber)}.score-value{fill:#fff5e6;font-size:7px;font-weight:800}.triangle-labels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.triangle-labels span{border-top:1px solid var(--line);padding-top:8px;color:#c8d9e1;font-size:12px;text-align:center}.review-actions{gap:8px}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;min-width:122px;border:1px solid rgba(255,180,92,.52);background:linear-gradient(180deg,#ffb45c3d,#ffb45c14);color:#fff4e4;cursor:pointer}.primary-action:disabled{opacity:.5;cursor:not-allowed}.state-chip{display:inline-flex;align-items:center;gap:6px;min-width:0;height:38px;padding:0 10px;border:1px solid var(--line);color:var(--text-muted);font-size:12px;flex:1}.state-chip.ready{color:var(--green)}.state-chip.error{color:#ffc2bc}.spin{animation:spin .9s linear infinite}.axis-notes{display:grid;gap:8px}.axis-note{border-left:2px solid rgba(114,230,255,.42);padding:8px 10px;background:#ffffff08}.axis-note b{color:#eef9ff;font-size:13px}.axis-note p{margin-top:5px;font-size:12px;line-height:1.42}.suggestion-box{margin-top:auto;border:1px solid rgba(255,180,92,.22);background:#ffb45c0e;padding:12px}.suggestion-title{gap:8px;color:#ffe4bf;font-size:13px;font-weight:800}.suggestion-box ol{margin:10px 0 0;padding-left:20px}.suggestion-box li{margin:6px 0;font-size:12px;line-height:1.35}.report-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#02070ac2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.report-modal{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1080px,calc(100vw - 48px));max-height:calc(100dvh - 48px);border:1px solid rgba(126,231,255,.32);background:linear-gradient(rgba(114,230,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(114,230,255,.035) 1px,transparent 1px),linear-gradient(180deg,#0d161dfa,#04080cfa);background-size:22px 22px,22px 22px,auto;box-shadow:0 26px 90px #0000009e;overflow:hidden}.report-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line)}.report-header h2{font-size:22px}.icon-action{display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);background:#ffffff08;color:#d8edf4;cursor:pointer}.icon-action:hover{border-color:var(--line-strong);color:#fff}.report-body{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(420px,1.35fr);gap:14px;min-height:0;padding:16px;overflow-y:auto;scrollbar-color:rgba(114,230,255,.34) rgba(255,255,255,.04)}.report-score-block,.report-axis-grid,.report-views,.report-fix-list,.report-footnote{border:1px solid var(--line);background:#050c11b8}.report-score-block{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;grid-column:1 / -1;padding:16px}.overall-score{display:grid;place-items:center;min-height:120px;border:1px solid rgba(255,180,92,.34);background:linear-gradient(180deg,#ffb45c29,#ffb45c0a)}.overall-score span,.overall-score small{color:#ffd9aa;font-size:12px;font-weight:800}.overall-score strong{color:#fff5e6;font-size:58px;line-height:.95}.report-score-block p{color:#dce9ef;font-size:15px;line-height:1.7}.report-axis-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;grid-column:1 / -1;overflow:hidden}.report-axis{display:grid;gap:6px;padding:12px;background:#ffffff06}.report-axis span{color:var(--text-muted);font-size:12px}.report-axis strong{color:var(--cyan);font-size:24px}.report-views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}.report-view-card{min-width:0;margin:0;border:1px solid rgba(126,231,255,.16);background:#ffffff06;overflow:hidden}.report-view-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#0b1117}.report-view-card figcaption{display:grid;gap:5px;min-height:74px;padding:9px}.report-view-card span{color:#eef9ff;font-size:13px;font-weight:800}.report-view-card small{color:var(--text-muted);font-size:12px;line-height:1.35}.report-empty-view{display:flex;align-items:center;gap:8px;grid-column:1 / -1;min-height:160px;padding:14px;color:var(--text-muted)}.report-fix-list{padding:14px}.report-fix-list ol{margin:12px 0 0;padding-left:20px}.report-fix-list li{margin:8px 0;color:#c8d9e1;font-size:13px;line-height:1.45}.report-footnote{display:flex;align-items:center;gap:8px;padding:12px 14px;color:#9eb3bd;font-size:12px}.stats-bar{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:1px;overflow:hidden;min-height:0}.metric{gap:9px;padding:10px 12px;background:#ffffff06;min-width:0}.metric svg{color:var(--cyan);flex:0 0 auto}.metric span{display:block;margin-bottom:4px;font-size:11px}.metric strong{display:block;color:#f4fbff;font-size:16px;white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1200px){body{min-width:0}.app-shell{grid-template-rows:auto minmax(0,1fr) 150px;overflow-y:auto}.topbar,.workspace,.stats-bar{grid-template-columns:1fr}.topbar{gap:14px;align-items:flex-start;flex-direction:column}.workspace{display:grid}.model-viewport{min-height:420px}.stats-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.report-backdrop{padding:12px}.report-modal{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.report-body,.report-score-block,.report-views{grid-template-columns:1fr}}
