.app-shell{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--color-primary);color:#fff;display:flex;flex-direction:column;padding:var(--space-5) var(--space-3)}.app-sidebar-brand{font-weight:700;font-size:var(--text-md);padding:0 var(--space-2);margin-bottom:var(--space-6);letter-spacing:-.01em}.app-nav{display:flex;flex-direction:column;gap:2px;flex:1}.app-nav-link{padding:9px var(--space-3);border-radius:var(--radius-sm);color:#ffffffbf;text-decoration:none;font-size:var(--text-sm);font-weight:500}.app-nav-link:hover{background:#ffffff14;color:#fff}.app-nav-link.active{background:#ffffff24;color:#fff}.app-sidebar-footer{border-top:1px solid rgba(255,255,255,.15);padding-top:var(--space-3);margin-top:var(--space-4)}.app-sidebar-user{font-size:var(--text-xs);color:#fff9;padding:0 var(--space-2);margin-bottom:var(--space-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-sidebar-logout{width:100%;text-align:left;padding:8px var(--space-2);background:transparent;border:none;color:#ffffffbf;font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-sm)}.app-sidebar-logout:hover{background:#ffffff14;color:#fff}.app-main{flex:1;min-width:0;padding:var(--space-6) var(--space-7)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.page-title{font-size:var(--text-xl)}.page-description{color:var(--color-ink-muted);font-size:var(--text-sm);margin-top:var(--space-1)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;cursor:pointer;transition:background-color .12s ease,border-color .12s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-md{padding:8px 16px;font-size:var(--text-base)}.btn-sm{padding:5px 12px;font-size:var(--text-sm)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-tint)}.btn-ghost{background:transparent;color:var(--color-ink-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-border);color:var(--color-ink)}.btn-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-tint)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field-label{font-size:var(--text-sm);font-weight:600;color:var(--color-ink)}.field-input{padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%}.field-input:focus{border-color:var(--color-primary)}.field-input-error{border-color:var(--color-danger)}.field-hint{font-size:var(--text-xs);color:var(--color-ink-muted);margin:0}.field-error{font-size:var(--text-xs);color:var(--color-danger);margin:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:var(--text-xs);font-weight:600}.badge-neutral{background:var(--color-border);color:var(--color-ink-muted)}.badge-primary{background:var(--color-primary-tint);color:var(--color-primary)}.badge-success{background:var(--color-success-tint);color:var(--color-success)}.badge-danger{background:var(--color-danger-tint);color:var(--color-danger)}.badge-warning{background:var(--color-warning-tint);color:var(--color-warning)}.empty-state{padding:var(--space-7) var(--space-4);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.empty-state-title{font-weight:600;margin:0 0 var(--space-1)}.empty-state-description{color:var(--color-ink-muted);font-size:var(--text-sm);margin:0 0 var(--space-4)}.banner{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);border:1px solid transparent}.banner-neutral{background:var(--color-border)}.banner-danger{background:var(--color-danger-tint);color:var(--color-danger);border-color:#efc9c9}.banner-warning{background:var(--color-warning-tint);color:var(--color-warning);border-color:#eedbb0}.banner-success{background:var(--color-success-tint);color:var(--color-success);border-color:#c9e2d2}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);background-image:linear-gradient(180deg,var(--color-primary-tint) 0%,var(--color-bg) 320px)}.auth-panel{width:380px;padding:var(--space-6) var(--space-6) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 24px #1a1d1f0f}.auth-title{font-size:var(--text-xl);color:var(--color-primary)}.auth-subtitle{margin:var(--space-2) 0 var(--space-5);color:var(--color-ink-muted);font-size:var(--text-sm)}.auth-form{margin-top:var(--space-4)}.auth-switch{margin:var(--space-5) 0 0;font-size:var(--text-sm);color:var(--color-ink-muted);text-align:center}.auth-switch a{color:var(--color-primary);font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.loading-text{color:var(--color-ink-muted);font-size:var(--text-sm)}.project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.project-card-link{text-decoration:none;color:inherit}.project-card{padding:var(--space-4);transition:border-color .12s ease}.project-card-link:hover .project-card{border-color:var(--color-primary)}.project-card-name{font-weight:600;font-size:var(--text-md);margin-bottom:var(--space-1)}.project-card-domain{color:var(--color-ink-muted);font-size:var(--text-sm);font-family:var(--font-mono)}.project-card-status{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-ink-muted)}.new-project-form{padding:var(--space-5);margin-bottom:var(--space-5)}.new-project-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.new-project-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.ga4-step{padding:var(--space-5);margin-bottom:var(--space-4)}.ga4-step-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;font-size:var(--text-md);margin-bottom:var(--space-3)}.ga4-explain{background:var(--color-primary-tint);border-radius:var(--radius-sm);padding:var(--space-4);margin-bottom:var(--space-4)}.ga4-explain ul{margin:var(--space-2) 0 0 var(--space-5);padding:0}.ga4-explain li{margin-bottom:var(--space-2)}.ga4-explain-en{color:var(--color-ink-muted);font-size:var(--text-sm);margin-top:var(--space-3)}.ga4-property-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.ga4-property{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer}.ga4-property-selected{border-color:var(--color-primary);background:var(--color-primary-tint)}.ga4-property-id{color:var(--color-ink-muted);font-size:var(--text-xs);font-family:var(--font-mono)}.ga4-consent{display:flex;gap:var(--space-2);align-items:flex-start;margin:var(--space-4) 0}.ga4-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.ga4-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.project-card-wrap .project-card-setting{display:inline-block;margin-top:var(--space-2);font-size:var(--text-xs)}.invite-form{padding:var(--space-4);margin-bottom:var(--space-5)}.invite-form-row{display:grid;grid-template-columns:2fr 1fr auto;gap:var(--space-4);align-items:end}.invite-form-row .field{margin-bottom:0}.member-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.member-table th,.member-table td{padding:10px var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);font-size:var(--text-sm)}.member-table th{color:var(--color-ink-muted);font-size:var(--text-xs);background:var(--color-bg)}.member-table tbody tr:last-child td{border-bottom:none}.test-table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.test-table th,.test-table td{padding:10px var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);font-size:var(--text-sm)}.test-table th{color:var(--color-ink-muted);font-weight:600;font-size:var(--text-xs);text-transform:none;background:var(--color-bg)}.test-table tbody tr:last-child td{border-bottom:none}.test-table-name{font-weight:600}.test-table-url{color:var(--color-ink-muted);font-size:var(--text-xs)}.test-table-actions{display:flex;gap:var(--space-2);align-items:center;justify-content:flex-end}.status-menu{padding:5px 8px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);background:var(--color-surface)}.test-form-page{max-width:760px}.form-section{padding:var(--space-5);margin-bottom:var(--space-5)}.form-section-title{font-size:var(--text-md);margin-bottom:var(--space-4)}.form-section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.form-section-header-row .form-section-title{margin-bottom:0}.form-section-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.url-condition-row{display:grid;grid-template-columns:180px 1fr;gap:var(--space-3);margin-bottom:var(--space-2)}.condition-row{display:grid;grid-template-columns:160px 1fr auto;gap:var(--space-3);align-items:start;padding:var(--space-3);background:var(--color-bg);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.condition-row-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-2)}.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;padding-top:8px}.checkbox-label{display:flex;align-items:center;gap:4px;font-size:var(--text-sm)}.ratio-sum{font-size:var(--text-sm);font-weight:600;color:var(--color-ink-muted)}.ratio-sum-error{color:var(--color-danger)}.variant-row{display:grid;grid-template-columns:160px 90px 1fr auto;gap:var(--space-3);align-items:start;padding:var(--space-3);background:var(--color-bg);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.variant-ratio-field{display:flex;align-items:center;gap:4px}.variant-code{font-family:var(--font-mono);font-size:var(--text-xs);resize:vertical}.goal-row{display:grid;grid-template-columns:60px 1fr 1fr auto;gap:var(--space-3);align-items:center;padding:var(--space-3);background:var(--color-bg);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.goal-primary-radio{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);white-space:nowrap}.form-footer-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) 0}.probability-bar-wrap{display:flex;align-items:center;gap:var(--space-2);min-width:160px}.probability-bar-track{flex:1;height:8px;background:var(--color-border);border-radius:999px;overflow:hidden}.probability-bar-fill{height:100%;border-radius:999px}.probability-bar-strong{background:var(--color-success)}.probability-bar-mild{background:var(--color-primary)}.probability-bar-weak{background:var(--color-border-strong)}.probability-bar-label{font-size:var(--text-xs);color:var(--color-ink-muted);width:36px;text-align:right}.stat-block{padding:var(--space-3) 0}.stat-block-label{font-size:var(--text-xs);color:var(--color-ink-muted);margin-bottom:2px}.stat-block-value{font-size:var(--text-lg);font-weight:700}.stat-block-sub{font-size:var(--text-xs);color:var(--color-ink-muted);margin-top:2px}.chart-svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--color-border);stroke-width:1}.chart-axis{stroke:var(--color-border-strong);stroke-width:1}.chart-whisker{stroke:var(--color-ink);stroke-width:1.5}.chart-axis-label{font-size:11px;fill:var(--color-ink-muted);font-family:var(--font-mono)}.chart-value-label{font-size:13px;font-weight:700;fill:var(--color-ink);font-family:var(--font-mono)}.chart-category-label{font-size:12px;font-weight:600;fill:var(--color-ink);font-family:var(--font-ui)}.chart-sub-label{font-size:10px;fill:var(--color-ink-muted);font-family:var(--font-mono)}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);list-style:none;padding:0;margin:var(--space-2) 0 0;font-size:var(--text-sm)}.chart-legend li{display:flex;align-items:center;gap:6px}.chart-legend-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.chart-legend-note{color:var(--color-ink-muted);font-size:var(--text-xs)}.chart-caption{font-size:var(--text-xs);color:var(--color-ink-muted);margin:var(--space-2) 0 0}.chart-empty{color:var(--color-ink-muted);font-size:var(--text-sm)}.chart-block+.chart-block{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.chart-block-title{font-size:var(--text-base);margin-bottom:var(--space-2)}.test-report-page{max-width:900px}.report-section{padding:var(--space-5);margin-bottom:var(--space-5)}.report-table{width:100%;border-collapse:collapse;margin-top:var(--space-2)}.report-table th,.report-table td{padding:10px var(--space-3);text-align:left;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);vertical-align:middle}.report-table th{color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:600}.report-table tbody tr:last-child td{border-bottom:none}.report-baseline-label{font-size:var(--text-xs);color:var(--color-ink-muted)}.segment-controls{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:var(--space-3);align-items:end;margin:var(--space-3) 0 var(--space-4)}.segment-controls .field{margin-bottom:0}.segment-value-cell{font-weight:600;border-right:1px solid var(--color-border);vertical-align:top}:root{--color-bg: #FAFAF7;--color-surface: #FFFFFF;--color-ink: #1A1D1F;--color-ink-muted: #5B6168;--color-border: #E2E1DA;--color-border-strong: #C7C5BB;--color-primary: #2B3A67;--color-primary-hover: #1F2B4D;--color-primary-tint: #EBEEF6;--color-accent: #C08A2E;--color-accent-tint: #FBF1DF;--color-success: #2F6844;--color-success-tint: #E8F2EC;--color-danger: #B23B3B;--color-danger-tint: #FBECEC;--color-warning: #A6690E;--color-warning-tint: #FBF1DF;--font-ui: "Inter", -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Consolas, monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 26px;--line-height-tight: 1.3;--line-height-base: 1.6;--sidebar-width: 232px;--header-height: 56px;--radius-sm: 4px;--radius-md: 6px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--shadow-panel: 0 1px 2px rgba(26, 29, 31, .06)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:600;line-height:var(--line-height-tight);letter-spacing:-.01em}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
