:root{color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}button,input{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{--bg: #f5f5f7;--surface: rgba(255, 255, 255, .86);--surface-solid: #ffffff;--surface-muted: #f1f2f6;--text: #1d1d1f;--text-muted: #6e6e73;--border: rgba(60, 60, 67, .14);--border-strong: rgba(60, 60, 67, .24);--primary: #007aff;--primary-contrast: #ffffff;--primary-soft: rgba(0, 122, 255, .08);--success: #107c41;--warning: #b45309;--danger: #d92d20;--shadow: 0 18px 60px rgba(0, 0, 0, .08);--shadow-soft: 0 8px 28px rgba(0, 0, 0, .06);--scope-sdr-fg: #185d41;--scope-sdr-bg: #def7e9;--scope-hdr-fg: #7c2d12;--scope-hdr-bg: #ffedd5;--diagnostic-fg: #7c2d12;--diagnostic-bg: #fff7ed;--diagnostic-border: #fed7aa;min-height:100vh;background:var(--bg);color:var(--text)}.app-shell.dark{--bg: #111114;--surface: rgba(30, 30, 34, .82);--surface-solid: #1c1c20;--surface-muted: #242428;--text: #f5f5f7;--text-muted: #a1a1a8;--border: rgba(235, 235, 245, .12);--border-strong: rgba(235, 235, 245, .22);--primary: #0a84ff;--primary-soft: rgba(10, 132, 255, .16);--success: #1f9d55;--warning: #ffd60a;--danger: #ff453a;--shadow: 0 18px 60px rgba(0, 0, 0, .36);--shadow-soft: 0 8px 28px rgba(0, 0, 0, .26);--scope-sdr-fg: #34c759;--scope-sdr-bg: rgba(52, 199, 89, .16);--scope-hdr-fg: #ff9f0a;--scope-hdr-bg: rgba(255, 159, 10, .16);--diagnostic-fg: #ffd60a;--diagnostic-bg: rgba(255, 214, 10, .12);--diagnostic-border: rgba(255, 214, 10, .32)}.file-input{height:1px;left:-9999px;opacity:0;position:fixed;width:1px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px;padding:0 22px;border-bottom:1px solid var(--border);background:var(--surface);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{align-items:center;background:linear-gradient(135deg,#0a84ff,#30d158);border-radius:8px;box-shadow:0 10px 24px #0a84ff3d;color:#fff;display:flex;height:42px;justify-content:center;width:42px}.brand h1,.brand p,.panel-head h2,.results-toolbar h2,.card-title-row h3,.diagnostics p{margin:0}.brand h1{font-size:17px;font-weight:750;letter-spacing:0}.brand p{color:var(--text-muted);font-size:12px;margin-top:2px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.button,.icon-button{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;justify-content:center;transition:background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease,transform .18s ease}.button{gap:8px;min-height:42px;padding:0 15px;font-size:14px;font-weight:650;white-space:nowrap}.button.primary{background:var(--primary);border:1px solid var(--primary);color:var(--primary-contrast)}.button.primary:hover:not(:disabled){background:#0064d2;border-color:#0064d2}.dark .button.primary:hover:not(:disabled){background:#2596ff;border-color:#2596ff}.button.secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.button.secondary:hover:not(:disabled){background:var(--surface-solid);border-color:var(--border-strong)}.button.excel{background:var(--success);border:1px solid var(--success);color:#fff}.button.excel:hover:not(:disabled){background:#0e6b38}.dark .button.excel:hover:not(:disabled){background:#26b866}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px)}.icon-button{background:var(--surface);border:1px solid var(--border);color:var(--text);height:42px;width:42px}.icon-button:hover:not(:disabled){background:var(--surface-solid);border-color:var(--border-strong)}.icon-button.subtle{height:36px;width:36px}.icon-button.tiny{flex:0 0 auto;height:30px;width:30px}button:disabled{opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid rgba(10,132,255,.34);outline-offset:2px}.app-switcher{position:relative}.app-switcher-menu{background:var(--surface-solid);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);display:grid;gap:2px;min-width:240px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:50}.app-switcher-item{align-items:center;border-radius:8px;color:var(--text);display:grid;gap:10px;grid-template-columns:8px 1fr;padding:10px 12px;text-decoration:none;transition:background .16s ease}.app-switcher-item:hover{background:var(--primary-soft)}.app-switcher-item .dot{background:transparent;border:1px solid var(--border-strong);border-radius:999px;height:8px;width:8px}.app-switcher-item.current .dot{background:var(--primary);border-color:var(--primary)}.app-switcher-item strong{display:block;font-size:13px;font-weight:700;line-height:1.3}.app-switcher-item.current strong{color:var(--primary)}.app-switcher-item small{color:var(--text-muted);display:block;font-size:11px;margin-top:2px}.workspace{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:20px;width:min(1540px,100%);margin:0 auto;padding:22px 28px 34px}.source-panel,.mode-card,.wide-card,.diagnostics{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft)}.source-panel{align-self:start;min-height:calc(100vh - 142px);padding:18px}.panel-head,.results-toolbar,.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.eyebrow{display:block;margin-bottom:5px;color:var(--text-muted);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.panel-head h2,.results-toolbar h2,.card-title-row h3{color:var(--text);font-size:18px;line-height:1.2}.source-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.source-summary div,.metric,.primaries div{min-width:0;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.source-summary span,.metric span,.primaries span{display:block;color:var(--text-muted);font-size:12px;font-weight:650}.source-summary strong,.metric strong,.primaries strong{display:block;min-width:0;margin-top:4px;overflow:hidden;color:var(--text);font-size:16px;text-overflow:ellipsis;white-space:nowrap}.database-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 314px);overflow:auto;padding-right:2px}.database-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid);cursor:pointer;transition:border-color .16s ease,background .16s ease}.database-row:hover{border-color:var(--border-strong);background:var(--surface)}.database-row input{width:16px;height:16px;accent-color:var(--primary)}.database-row-main{min-width:0}.database-row-main strong,.database-row-main small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.database-row-main strong{color:var(--text);font-size:13px}.database-row-main small{margin-top:3px;color:var(--text-muted);font-size:12px}.results{display:flex;min-width:0;flex-direction:column;gap:16px}.results-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-soft);min-height:64px;padding:14px 18px}.accuracy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.mode-card,.wide-card{min-width:0;padding:18px}.mode-headline,.metric-line{display:flex;align-items:center;gap:10px;min-width:0;margin-top:18px}.mode-headline strong,.metric-line strong{min-width:0;overflow:hidden;color:var(--text);font-size:19px;text-overflow:ellipsis;white-space:nowrap}.scope-pill{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:800}.scope-sdr{color:var(--scope-sdr-fg);background:var(--scope-sdr-bg)}.scope-hdr{color:var(--scope-hdr-fg);background:var(--scope-hdr-bg)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.export-line{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:10px;align-items:center;margin-top:14px}.export-line code{min-width:0;overflow:hidden;padding:10px 12px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:var(--surface-muted);font-family:JetBrains Mono,Cascadia Mono,Consolas,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.export-line .icon-button{height:38px;width:38px}.max-gamut-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) minmax(320px,1.5fr);gap:16px;align-items:center;margin-top:18px}.max-gamut-layout p{margin:8px 0 0;overflow:hidden;color:var(--text-muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.big-number{padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--primary-soft)}.big-number strong{display:block;color:var(--primary);font-size:28px;line-height:1;font-weight:750}.big-number span{display:block;margin-top:7px;color:var(--text-muted);font-size:13px;font-weight:700}.primaries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.whitepoint-table{display:flex;flex-direction:column;gap:10px;margin-top:16px}.whitepoint-row{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid)}.whitepoint-cells{display:grid;grid-template-columns:minmax(150px,220px) repeat(2,minmax(220px,1fr));gap:12px;align-items:center}.whitepoint-row .export-line{margin-top:0}.whitepoint-head-actions{display:flex;gap:12px;align-items:center}.variant-toggle{display:inline-flex;padding:4px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);gap:4px}.variant-toggle button{padding:6px 12px;border:none;border-radius:6px;color:var(--text-muted);background:transparent;font-size:12px;font-weight:650;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.variant-toggle button:hover:not(:disabled):not(.active){color:var(--text)}.variant-toggle button.active{color:var(--text);background:var(--surface-solid);box-shadow:0 1px 4px #00000014}.variant-toggle button:disabled{opacity:.4;cursor:not-allowed}.whitepoint-observer strong,.whitepoint-observer span,.whitepoint-cell strong,.whitepoint-cell small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitepoint-observer strong{color:var(--text);font-size:14px}.whitepoint-observer span,.whitepoint-cell small{margin-top:3px;color:var(--text-muted);font-size:12px}.whitepoint-cell{display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:8px;align-items:center}.whitepoint-cell small{grid-column:2}.diagnostics{display:flex;gap:12px;padding:14px 16px;color:var(--diagnostic-fg);background:var(--diagnostic-bg);border-color:var(--diagnostic-border);box-shadow:none}.diagnostics p+p{margin-top:4px}.empty-panel,.empty-result{display:flex;align-items:center;justify-content:center;gap:10px;min-height:112px;border:1px dashed var(--border-strong);border-radius:10px;color:var(--text-muted);background:var(--surface-muted);font-weight:650}.empty-result{margin-top:16px}@media(max-width:1120px){.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:16px 22px;gap:12px}.topbar-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.workspace{grid-template-columns:1fr}.source-panel{min-height:auto}.database-list{max-height:280px}.accuracy-grid,.max-gamut-layout,.whitepoint-cells{grid-template-columns:1fr}.whitepoint-cell small{grid-column:auto}}@media(max-width:640px){.topbar,.workspace{padding-right:16px;padding-left:16px}.button{flex:1 1 150px}.accuracy-grid,.metric-grid,.source-summary,.primaries{grid-template-columns:1fr}.mode-headline,.metric-line{align-items:flex-start;flex-direction:column}.mode-headline strong,.metric-line strong{white-space:normal}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
