:root{--phase-blue:#2563eb;--phase-violet:#7c3aed;--phase-amber:#b45309}
.view{animation:none}.kpi-trend.up{color:#047857}.kpi-trend.down{color:#b91c1c}.phase-table .phase-row-actions{background:white}.phase-table th:last-child,.phase-table td:last-child{position:sticky;right:0;background:white}.phase-table th:last-child{background:#f8fafc}.phase-pager button:disabled{opacity:.45;cursor:not-allowed}.phase-chart .phase-up{fill:#b91c1c}
.relation-tooltip .phase-table th:last-child,.relation-tooltip .phase-table td:last-child{position:static;background:transparent}.relation-tooltip .phase-table tbody tr:hover{background:transparent}
button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #2563eb;outline-offset:3px}::selection{background:#ccfbf1;color:#134e4a}
.phase-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;margin-bottom:18px;background:#ecfdf5;color:#166534;border:1px solid #a7f3d0;border-radius:10px;font-size:12px;line-height:1.7}.phase-banner strong{font-size:14px}.phase-banner span{display:block}.phase-banner button{flex-shrink:0}
.phase-tools{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.phase-tools input{min-width:230px;flex:1}.phase-tools input,.phase-tools select,.phase-form input,.phase-form select,.phase-form textarea,.phase-import select{padding:9px 11px;background:white;border:1px solid #cbd5e1;border-radius:7px;color:#0f172a;min-width:0}.phase-muted{font-size:12px;color:#475569;line-height:1.7}.phase-empty{text-align:center;padding:48px 20px;color:#475569}.phase-meta{display:flex;flex-wrap:wrap;gap:16px;margin:10px 0;color:#475569;font-size:12px}.phase-meta b{color:#0f172a}.phase-table-wrap{overflow:auto}.phase-table{width:100%;font-size:12px;font-variant-numeric:tabular-nums}.phase-table th{background:#f8fafc;white-space:nowrap}.phase-table td{white-space:nowrap}.phase-table tbody tr:hover{background:#f0fdfa}.phase-table button{font-size:12px}.phase-table .phase-row-actions{display:flex;gap:6px}.phase-link{border:0;background:transparent;color:#1d4ed8;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.phase-num{text-align:right}.phase-up{color:#b91c1c}.phase-down{color:#047857}.phase-row-actions button{border:0;background:none;color:#1d4ed8;cursor:pointer;padding:5px}.phase-row-actions .danger{color:#b91c1c}
.phase-section{margin:18px 0;background:white;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.phase-section>summary{padding:15px 18px;cursor:pointer;font-weight:650;list-style-position:inside}.phase-section>div{padding:0 18px 18px}.phase-section h3{font-size:15px;margin:0 0 12px}.phase-chart{width:100%;height:auto;max-height:235px}.phase-price-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0}.phase-price-controls select{padding:8px;border:1px solid #cbd5e1;border-radius:6px;background:white;max-width:100%}.phase-chart text{fill:#475569;font-size:11px}.phase-chart circle{cursor:help}.phase-trend-stats{display:flex;gap:28px;flex-wrap:wrap;font-size:12px;margin:12px 0}.phase-trend-stats strong{display:block;font-size:21px;color:#0f172a;margin:4px 0}
.phase-dialog{border:0;border-radius:14px;padding:0;width:min(840px,calc(100vw - 28px));max-height:90vh;color:#0f172a;box-shadow:0 18px 70px #0f172a40;margin:auto}.phase-dialog::backdrop{background:#0f172a80}.phase-dialog header,.phase-dialog footer{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fafc}.phase-dialog h2{font-size:18px}.phase-dialog main{padding:20px 22px;overflow:auto;max-height:65vh}.phase-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.phase-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#334155}.phase-form input,.phase-form select{width:100%;font-size:14px}.phase-dialog footer{justify-content:flex-end;flex-wrap:wrap}.phase-error{padding:12px;color:#991b1b;background:#fef2f2;border-radius:7px;font-size:12px;margin:12px 0;max-height:170px;overflow:auto}.phase-success{background:#ecfdf5;color:#166534;padding:12px;border-radius:7px;font-size:12px;margin:12px 0}.phase-import{display:flex;gap:12px;align-items:center;margin:15px 0;flex-wrap:wrap}.phase-file-label{display:inline-block;position:relative}.phase-file-label input{max-width:100%}.phase-pager{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;gap:12px;flex-wrap:wrap;font-size:12px;color:#475569}.phase-pager button{margin-left:6px}
.relation-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.relation-board{position:relative;min-width:0;overflow:auto;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.relation-canvas{position:relative;width:780px;height:700px;transform-origin:top left}.relation-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.relation-lines path{stroke:#94a3b8;stroke-width:1.5;fill:none}.relation-lines path.active{stroke:#0d9488;stroke-width:2.8}.relation-node{position:absolute;width:178px;min-height:132px;text-align:left;border:1px solid #cbd5e1;border-radius:9px;background:white;padding:0;cursor:pointer;overflow:hidden;color:#334155;box-shadow:0 3px 8px #0f172a08}.relation-node:hover,.relation-node.selected{border-color:#0d9488;box-shadow:0 5px 14px #0f766e1a}.relation-node.dim{opacity:.3}.relation-node header{padding:10px 12px;background:var(--node-bg,#e0f2fe);color:var(--node-fg,#075985);font-weight:700;font-size:13px;display:flex;justify-content:space-between}.relation-node small{font-size:10px;font-weight:400}.relation-node ul{list-style:none;padding:9px 12px;font-size:11px;line-height:1.9}.relation-node li.key{color:#1d4ed8;font-weight:600}.relation-inspector{background:white;border:1px solid #e2e8f0;border-radius:10px;padding:18px;align-self:start;min-width:0}.relation-inspector h3{font-size:16px;margin:0 0 8px}.relation-inspector h4{font-size:13px;margin:20px 0 8px}.relation-inspector p{font-size:12px;color:#475569;line-height:1.8}.relation-inspector table{font-size:11px}.relation-inspector td{white-space:normal;overflow-wrap:anywhere}.relation-inspector button{margin-top:16px}.relation-legend{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0;font-size:12px;color:#475569}.relation-legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px}.relation-tooltip{position:fixed;z-index:1000;width:300px;max-width:calc(100vw - 24px);background:#0f172a;color:#e2e8f0;border-radius:9px;padding:14px;box-shadow:0 10px 26px #0f172a30;pointer-events:none;font-size:11px}.relation-tooltip strong{display:block;color:white;font-size:13px;margin-bottom:7px}.relation-tooltip td,.relation-tooltip th{padding:5px;border-color:#334155;color:#e2e8f0;background:transparent;white-space:normal;overflow-wrap:anywhere}.relation-tooltip p{line-height:1.7;margin-top:5px}.phase-subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.phase-subnav button.active{background:#0d9488;color:white;border-color:#0d9488}.phase-alert{display:inline-block;color:#9a3412;background:#fff7ed;padding:4px 7px;border-radius:4px;font-size:11px}.phase-mobile-menu{display:none}.phase-demo-tag{font-size:11px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;padding:4px 8px;border-radius:5px;white-space:nowrap}.nav-group-label{padding:16px 18px 7px;font-size:10px;color:#94a3b8;letter-spacing:.07em}.nav-item{cursor:pointer}.kpi-card.c1{background:#f0fdfa}.kpi-card.c2{background:#eff6ff}.kpi-card.c3{background:#f5f3ff}.kpi-card.c4{background:#fffbeb}
@media(max-width:1200px){.relation-layout{grid-template-columns:1fr}.relation-inspector{display:block}.search-box{display:none}}
@media(max-width:760px){.sidebar{position:fixed;z-index:100;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .18s ease}.app.menu-open .sidebar{transform:translateX(0)}.app.menu-open:after{content:'';position:fixed;inset:0;background:#0f172a60;z-index:90}.topbar{padding:10px 12px;height:auto;min-height:62px;gap:10px}.topbar-title{font-size:15px}.topbar-sub{font-size:10px}.topbar-actions{gap:3px}.topbar-actions .icon-btn,.user-chip,.phase-demo-tag{display:none}.phase-mobile-menu{display:inline-flex;border:1px solid #cbd5e1;background:white;border-radius:6px;padding:9px}.content{padding:14px;min-width:0}.main{width:100%;min-width:0}.phase-banner{align-items:flex-start;flex-direction:column}.phase-tools input{min-width:150px;width:100%}.phase-form{grid-template-columns:1fr}.phase-dialog main{padding:16px}.phase-trend-stats{gap:14px}.phase-tools .btn{padding:8px 10px}.phase-dialog header,.phase-dialog footer{padding:14px}.relation-inspector{padding:14px}.relation-canvas{width:780px}.phase-meta{gap:8px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.simple-tabs{display:flex;gap:25px;border-bottom:1px solid #dce3ec;margin-bottom:18px}.simple-tabs button{border:0;border-bottom:2px solid transparent;padding:12px 4px;background:none;font-size:13px;color:#64748b;cursor:pointer}.simple-tabs button.active{color:#0d9488;border-bottom-color:#0d9488;font-weight:650}.simple-parent{display:flex;align-items:center;gap:18px;padding:0 0 14px;color:#64748b;font-size:12px}.simple-business .card-head{padding:18px 20px}.simple-business{box-shadow:none}.content[data-view="products"] .kpi-grid,.content[data-view="datahub"] .kpi-grid,.content[data-view="settings"] .kpi-grid{display:none}.content[data-view="datahub"] .restock-alert-banner{display:none}.content[data-view="datahub"] .grid-2{display:block}.content[data-view="datahub"] .grid-2>.card{margin-bottom:18px}

/* 原版视觉恢复，增强功能不覆盖原有概览。 */
.kpi-card.c1,.kpi-card.c2,.kpi-card.c3,.kpi-card.c4{background:#fff}.restored-details{background:#fff;border:1px solid var(--border);border-radius:14px;margin-top:18px;overflow:hidden}.restored-details>summary{padding:16px 20px;font-weight:600;font-size:13px;cursor:pointer;color:#0f172a}.restored-details .simple-tabs,.restored-details .phase-section{display:none}.restored-details .simple-business{margin:0;border:0;border-radius:0}.restored-details .card-head .phase-muted{display:none}.phase-section{margin-top:18px}.phase-table th:last-child,.phase-table td:last-child{position:static}
