:root{--bg-primary: #0f1117;--bg-secondary: #1a1d29;--bg-tertiary: #242736;--bg-hover: #2d3044;--text-primary: #e4e6f0;--text-secondary: #9ea2b8;--text-muted: #6b7094;--accent-blue: #4a7dff;--accent-green: #00d68f;--accent-red: #ff4d6a;--accent-yellow: #ffb547;--accent-purple: #9b6dff;--border: #2d3044;--border-focus: #4a7dff;--shadow: 0 4px 24px rgba(0, 0, 0, .3);--radius: 8px;--radius-sm: 4px;--radius-lg: 12px;--font-mono: "JetBrains Mono", "Fira Code", monospace}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;background:var(--bg-primary);color:var(--text-primary)}body{overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}.app-layout{display:flex;height:100vh}.sidebar{width:380px;min-width:380px;background:var(--bg-secondary);border-right:1px solid var(--border);overflow-y:auto;padding:16px}.main-content{flex:1;overflow-y:auto;padding:16px 24px}.app-header{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:16px}.app-header h1{font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.app-header .badge{background:var(--accent-blue);color:#fff;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.section{margin-bottom:16px}.section-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:8px 0;-webkit-user-select:none;user-select:none}.section-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.section-toggle{font-size:12px;color:var(--text-muted);transition:transform .2s}.section-toggle.open{transform:rotate(180deg)}.section-body{padding-top:8px}.form-group{margin-bottom:12px}.form-label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px;font-weight:500}.form-row{display:flex;gap:8px;align-items:center}.form-row .separator{color:var(--text-muted);font-size:12px}input[type=text],input[type=number],input[type=date],select{width:100%;padding:8px 10px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;outline:none;transition:border-color .2s}input:focus,select:focus{border-color:var(--border-focus)}input::placeholder{color:var(--text-muted)}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.toggle-label{font-size:13px;color:var(--text-primary)}.toggle-switch{position:relative;width:36px;height:20px;background:var(--bg-tertiary);border-radius:10px;cursor:pointer;transition:background .2s;border:1px solid var(--border)}.toggle-switch.active{background:var(--accent-blue);border-color:var(--accent-blue)}.toggle-switch .toggle-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:left .2s}.toggle-switch.active .toggle-knob{left:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;font-size:13px;font-weight:600;border:none;border-radius:var(--radius);cursor:pointer;transition:all .2s}.btn-primary{background:var(--accent-blue);color:#fff;width:100%}.btn-primary:hover{background:#5d8aff}.btn-primary:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-hover)}.results-table{width:100%;border-collapse:collapse;font-size:13px}.results-table th{position:sticky;top:0;background:var(--bg-secondary);color:var(--text-secondary);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);z-index:1}.results-table td{padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.results-table tr:hover td{background:var(--bg-hover)}.results-table .positive{color:var(--accent-green)}.results-table .negative{color:var(--accent-red)}.results-table .code-link{color:var(--accent-blue);cursor:pointer;font-weight:600;font-family:var(--font-mono)}.results-table .code-link:hover{text-decoration:underline}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}.stat-card-title{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.stat-card-value{font-size:28px;font-weight:700;font-family:var(--font-mono)}.stat-card-sub{font-size:12px;color:var(--text-secondary);margin-top:4px}.chart-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px}.chart-title{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);width:90vw;max-width:1200px;max-height:90vh;overflow-y:auto;padding:24px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer}.modal-close:hover{color:var(--text-primary)}.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-secondary)}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite;margin-right:12px}@keyframes spin{to{transform:rotate(360deg)}}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:16px}.tab{padding:10px 20px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.expectation-list{list-style:none;padding:0}.expectation-list li{padding:8px 0;border-bottom:1px solid var(--border);font-size:13px;display:flex;justify-content:space-between}.expectation-list .label{color:var(--text-secondary)}.expectation-list .value{font-family:var(--font-mono);font-weight:600}.heatmap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:4px}.heatmap-cell{padding:8px;text-align:center;border-radius:var(--radius-sm);font-size:11px;font-family:var(--font-mono)}.select-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.select-group select{width:auto;min-width:120px}@media(max-width:1024px){.app-layout{flex-direction:column}.sidebar{width:100%;min-width:unset;max-height:50vh;border-right:none;border-bottom:1px solid var(--border)}.stats-grid{grid-template-columns:1fr}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted);text-align:center}.empty-state .icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state h3{font-size:16px;margin-bottom:8px;color:var(--text-secondary)}.empty-state p{font-size:13px;max-width:400px}
