:root{color:#172033;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{border:1px solid #c5ced9;background:#fff;border-radius:5px;padding:6px 8px;color:#172033;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button.primary{background:#195fb8;border-color:#195fb8;color:#fff}button.ghost{background:#fff;color:#364456}input,select,textarea{width:100%;border:1px solid #c5ced9;border-radius:5px;padding:5px 7px;background:#fff;min-width:0}textarea{resize:vertical;min-height:54px}label{display:grid;gap:5px;font-size:12px;color:#536171}table{width:100%;min-width:100%;border-collapse:collapse;font-size:12px}th,td{border-bottom:1px solid #e4e9ef;padding:5px 7px;text-align:left;vertical-align:top}th{background:#f7f9fb;color:#536171;font-weight:600;position:sticky;top:0}.app-shell{display:grid;grid-template-columns:118px 300px minmax(680px,1fr) 280px;height:100vh;overflow:hidden}.nav-sidebar,.config-sidebar,.detail-panel{background:#fff;border-right:1px solid #dce3ea;padding:12px;overflow:auto;min-height:0}.detail-panel{border-right:0;border-left:1px solid #dce3ea}.nav-sidebar{display:flex;flex-direction:column;background:#111827;color:#e5edf7;padding:10px 8px}.nav-sidebar h1{display:grid;gap:2px;font-size:17px;margin:2px 6px 14px;letter-spacing:0}.nav-sidebar h1 small{color:#9fb0c4;font-size:12px;font-weight:650}.nav-menu-stack{flex:1}.nav-bottom-actions{display:grid;gap:5px;margin-top:auto}.menu-group{display:grid;gap:5px;margin-bottom:12px}.menu-group h2{margin:0 6px 2px;color:#8fa2b8;font-size:11px;font-weight:650}.menu-item{display:grid;gap:2px;width:100%;border:0;border-radius:5px;background:transparent;color:#d8e1ec;padding:7px 6px;text-align:left}.menu-item:hover,.menu-item.active{background:#253246;color:#fff}.menu-item span{font-size:12px;font-weight:650}.menu-item small{color:#93a4b8;font-size:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#1118276b}.modal-card{display:grid;gap:10px;width:min(420px,100%);border:1px solid #dce3ea;border-radius:6px;padding:16px;background:#fff;color:#172033;box-shadow:0 18px 40px #11182738}.modal-card h2,.modal-card p{margin:0}.modal-card p{color:#364456;line-height:1.6}.modal-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.manual-modal{width:min(920px,100%);max-height:min(760px,90vh);grid-template-rows:auto minmax(0,1fr)}.manual-content{max-height:min(660px,74vh);margin:0;overflow:auto;white-space:pre-wrap;word-break:break-word;border:1px solid #dce3ea;border-radius:6px;padding:12px 14px;background:#f8fafc;color:#172033;font:13px/1.65 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.config-header{position:sticky;top:-12px;z-index:2;background:#fff;border-bottom:1px solid #e4e9ef;padding:2px 0 9px;margin-bottom:2px}.eyebrow{margin:0 0 3px;color:#687789;font-size:11px;font-weight:650}.config-sidebar h2,.detail-panel h2,.topbar h2{font-size:14px;margin:0}.panel{display:grid;gap:8px;border-top:1px solid #e4e9ef;padding:10px 0}.workspace{padding:12px;overflow:auto;min-height:0}.topbar{position:sticky;top:-12px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-12px -12px 10px;padding:10px 12px;background:#f4f6f8f5;border-bottom:1px solid #dce3ea}.muted{color:#687789;margin:4px 0 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:7px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.subpanel{display:grid;gap:7px;border:1px solid #e4e9ef;border-radius:6px;padding:8px;background:#fafbfd}.subpanel h3{margin:0;font-size:13px}.critical-config-stack{display:grid;gap:8px}.critical-config-card{display:grid;gap:8px;border:1px solid #d8e0ea;border-radius:6px;padding:9px;background:#fff}.critical-config-card.required{border-color:#f2b8b5;background:#fff8f7}.critical-config-card.pass{border-color:#b9dec4;background:#f5fbf7}.critical-config-card.optional.required{border-color:#d8e0ea;background:#fff}.critical-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.critical-config-head h3{margin:0;color:#172033;font-size:13px}.critical-config-head p{margin:3px 0 0;color:#687789;font-size:11px;line-height:1.45}.status-pill{flex:0 0 auto;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:650}.status-pill.required{background:#fee2e2;color:#991b1b}.status-pill.pass{background:#dcfce7;color:#166534}.status-pill.optional{background:#e5e7eb;color:#4b5563}.required-field>span:first-child:after{content:" *";color:#b91c1c}.config-details{border:1px solid #e1e7ef;border-radius:6px;background:#fbfcfe;padding:0}.config-details summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:8px 9px;color:#172033;font-weight:650}.config-details summary small{color:#687789;font-size:11px;font-weight:500}.config-details>:not(summary){margin:0 9px 8px}.config-details[open]{padding-bottom:1px}.prominent-filter{background:#f7fbff;border-color:#cfe0f5}.filter-group{display:grid;gap:5px}.filter-label{color:#536171;font-size:12px;font-weight:650}.center-filter-buttons{display:flex;flex-wrap:wrap;gap:5px}.center-filter-buttons button{min-height:28px;padding:4px 9px;border-color:#b9c6d5;background:#fff}.center-filter-buttons button.active{background:#195fb8;border-color:#195fb8;color:#fff}.checkbox-line{display:flex;align-items:center;gap:8px}.checkbox-line input{width:auto}.measure-editor{display:grid;gap:6px;max-height:260px;overflow:auto}.measure-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:6px;align-items:center}.measure-row input,.measure-row select,.measure-row button{min-height:30px;padding:5px 6px;font-size:12px}.button-row{display:flex;gap:6px;flex-wrap:wrap}.demo-actions{display:grid;grid-template-columns:1fr;gap:6px}.inline-file,.file-control{position:relative;overflow:hidden}.inline-file input,.file-control input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-control span,.inline-file{display:inline-flex;align-items:center;justify-content:center;min-height:30px;border:1px solid #c5ced9;border-radius:5px;background:#fff;color:#172033;padding:6px 8px}.check-row{display:flex;align-items:center;gap:8px;color:#172033}.check-row input{width:auto}.warning-box{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:6px;padding:8px 10px;margin-bottom:10px}.warning-box button,.info-box button{margin-top:8px}.info-box{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;border-radius:6px;padding:8px 10px;margin-bottom:10px}.rule-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:#536171;font-size:12px}.rule-list button{border-color:#d6dee7;background:#f7f9fb;padding:4px 7px;max-width:100%;overflow-wrap:anywhere}.grid-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:10px}.workspace-nav{position:sticky;top:51px;z-index:2;display:grid;gap:5px;padding:7px 0 8px;margin-bottom:2px;background:#f4f6f8}.workspace-tabs,.workspace-subtabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.workspace-tabs button,.workspace-subtabs button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:5px 8px;text-align:left;background:#fff;white-space:nowrap}.workspace-tabs button{min-width:0}.workspace-subtabs button{min-width:0;border-color:#d4dde8;background:#fbfcfe}.workspace-tabs button.active{border-color:#195fb8;background:#eaf2ff;color:#164b91}.workspace-subtabs button.active{border-color:#5b7fa8;background:#eef4fb;color:#1f4b78}.workspace-tabs span,.workspace-subtabs span{font-size:12px;font-weight:650}.workspace-tabs small,.workspace-subtabs small{color:#687789;font-size:10px}.multi-measure-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.mini-chart-stack{display:grid;gap:8px}.chart-card,.table-card{background:#fff;border:1px solid #dce3ea;border-radius:6px;padding:10px;min-width:0}.chart-card h3,.table-card h3{margin:0 0 8px;font-size:14px}.center-individual-card{grid-column:1 / -1}.center-individual-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:10px}.chart-pane{min-width:0}.chart{width:100%;height:auto;display:block}.heatmap{width:100%;min-width:640px;height:auto;display:block}.heatmap-text{fill:#172033;font-size:10px;pointer-events:none}.axis{stroke:#8290a0;stroke-width:1}.grid-line{stroke:#e7ecf2;stroke-width:1}.axis-label,.visit-label{fill:#687789;font-size:11px}.chart-title{fill:#172033;font-size:15px;font-weight:650}.chart-legend text,.chart-footnote{fill:#536171;font-size:11px}.threshold-line{stroke:#b91c1c;stroke-width:1.6;stroke-dasharray:6 4}.threshold-label{fill:#991b1b;font-size:11px}.subject-line{stroke-width:1.5;opacity:.68}.overall-line{stroke:#111827;stroke-width:2.4;stroke-dasharray:7 4;opacity:.82}.overall-point{fill:#111827;stroke:#fff;stroke-width:1.2}.point{fill:#fff;stroke:#475569;stroke-width:1.4;cursor:pointer}.point-success{fill:#16a34a;stroke:#fff;stroke-width:1.3;cursor:pointer}.point-failure{fill:#dc2626;stroke:#fff;stroke-width:1.3;cursor:pointer}.box-body{fill:#dbeafe;stroke:#195fb8;stroke-width:1.2}.box-median{stroke:#b91c1c;stroke-width:1.8}.box-whisker{stroke:#475569;stroke-width:1.2}.diagonal{stroke:#94a3b8;stroke-dasharray:4 4}.hist-bar{fill:#9ec5fe;stroke:#fff}.density-area{fill:#bfdbfe;stroke:#195fb8;stroke-width:1.2;opacity:.72}.violin-area{fill:#c7d2fe;stroke:#4338ca;stroke-width:1.2;opacity:.68}.data-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:10px}.table-card{overflow-x:auto;overflow-y:visible}.wide-table{grid-column:1 / -1}.wide-table table{min-width:max-content}.dataset-meta{display:flex;flex-wrap:wrap;gap:6px}.dataset-meta span{border:1px solid #d9e1ea;border-radius:5px;background:#f7f9fb;padding:4px 7px;color:#384556}.dataset-profile-table td,.dataset-raw-table td{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-table{margin-bottom:12px;border-color:#d7dee8;background:#fbfcfe}.table-scroll{overflow:auto;border:1px solid #e4e9ef;border-radius:6px;background:#fff}.compact-scroll{max-height:220px}.table-scroll .compact-table{margin-bottom:0}.cell-success{background:#ecfdf3;color:#166534;cursor:pointer}.cell-failure{background:#fef2f2;color:#991b1b;cursor:pointer}.cell-missing{background:#fff7ed;color:#9a3412}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 7px;font-size:11px;line-height:1.4;background:#e5e7eb;color:#374151}.badge.error{background:#fee2e2;color:#991b1b}.badge.warning{background:#ffedd5;color:#9a3412}.badge.info{background:#e0f2fe;color:#075985}.detail-list{display:grid;grid-template-columns:72px 1fr;gap:8px 10px}.detail-list dt{color:#687789}.detail-list dd{margin:0;overflow-wrap:anywhere}.detail-trend{display:grid;gap:6px;margin-top:16px}.detail-trend h3{margin:0;font-size:13px}.detail-trend svg{width:100%;height:auto;display:block}@media(max-width:1180px){.app-shell{grid-template-columns:104px 280px minmax(520px,1fr)}.detail-panel{grid-column:1 / -1;border-left:0;border-top:1px solid #dce3ea}}@media(max-width:820px){.app-shell,.data-grid{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}body{overflow:auto}.nav-sidebar,.config-sidebar,.workspace,.detail-panel{height:auto;overflow:visible}.nav-sidebar{border-right:0;border-bottom:1px solid #dce3ea}.menu-group{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.menu-group h2{grid-column:1 / -1}.topbar,.workspace-nav,.config-header{position:static}}
