:root{color-scheme:light;font-family:Inter,Microsoft YaHei,PingFang SC,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:#f4f7fb;color:#142033;font-synthesis:none;text-rendering:geometricPrecision}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{min-height:100vh;background:linear-gradient(180deg,#ffffffe0,#f4f7fbf5),#f4f7fb}.file-input{display:none}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 28px;border-bottom:1px solid #dce5f1;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border:1px solid #cdd8e8;border-radius:8px;color:#0a7d79;background:#eef9f6}.brand h1,.brand p,.panel-head h2,.results-toolbar h2,.card-title-row h3,.diagnostics p{margin:0}.brand h1{font-size:21px;line-height:1.15}.brand p{margin-top:3px;color:#64748b;font-size:13px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid transparent;border-radius:8px;font-weight:650;transition:background-color .16s ease,border-color .16s ease,color .16s ease,opacity .16s ease}.button{padding:0 14px;white-space:nowrap}.button.primary{color:#fff;background:#0a7d79;border-color:#0a7d79}.button.primary:hover:not(:disabled){background:#086a67}.button.secondary{color:#203046;background:#fff;border-color:#cdd8e8}.button.secondary:hover:not(:disabled){background:#f7fafc;border-color:#aebfd5}.button:disabled,.icon-button:disabled{opacity:.48}.icon-button{width:38px;height:38px;padding:0;color:#334155;background:#fff;border-color:#cdd8e8}.icon-button:hover:not(:disabled){background:#eef6ff;border-color:#98b7db}.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{border:1px solid #dce5f1;border-radius:8px;background:#fff;box-shadow:0 12px 30px #14203312}.source-panel{align-self:start;min-height:calc(100vh - 112px);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:#69758a;font-size:11px;font-weight:800;letter-spacing:0;text-transform:uppercase}.panel-head h2,.results-toolbar h2,.card-title-row h3{color:#142033;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 #e1e8f2;border-radius:8px;background:#f8fbff}.source-summary span,.metric span,.primaries span{display:block;color:#64748b;font-size:12px;font-weight:650}.source-summary strong,.metric strong,.primaries strong{display:block;min-width:0;margin-top:4px;overflow:hidden;color:#172033;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.database-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 284px);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 #e1e8f2;border-radius:8px;background:#fff}.database-row:hover{border-color:#aebfd5}.database-row input{width:16px;height:16px;accent-color:#0a7d79}.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:#1e293b;font-size:13px}.database-row-main small{margin-top:3px;color:#64748b;font-size:12px}.results{display:flex;min-width:0;flex-direction:column;gap:16px}.results-toolbar{min-height:64px}.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:#122033;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:#185d41;background:#def7e9}.scope-hdr{color:#7c2d12;background:#ffedd5}.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 #d9e2ef;border-radius:8px;color:#25415f;background:#f8fbff;font-family:JetBrains Mono,Cascadia Mono,Consolas,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.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:#64748b;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.big-number{padding:16px;border:1px solid #d7e4f0;border-radius:8px;background:#eef8ff}.big-number strong{display:block;color:#064e7a;font-size:28px;line-height:1}.big-number span{display:block;margin-top:7px;color:#48627c;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 #e1e8f2;border-radius:8px;background:#fbfdff}.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:3px;border:1px solid #d9e2ef;border-radius:8px;background:#f1f5f9}.variant-toggle button{padding:5px 12px;border:none;border-radius:6px;color:#475569;background:transparent;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.variant-toggle button:hover:not(:disabled):not(.active){color:#142033;background:#fff9}.variant-toggle button.active{color:#064e7a;background:#fff;box-shadow:0 1px 2px #0f172a14}.variant-toggle button:disabled{color:#cbd5e1;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:#142033;font-size:14px}.whitepoint-observer span,.whitepoint-cell small{margin-top:3px;color:#64748b;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:#7c2d12;background:#fff7ed;border-color:#fed7aa;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 #bfd0e3;border-radius:8px;color:#64748b;background:#fbfdff;font-weight:650}.empty-result{margin-top:16px}@media(max-width:1120px){.topbar{align-items:flex-start;flex-direction:column}.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}}
