:root{--color-brand: #0f766e;--color-brand-strong: #0b5f59;--color-brand-soft: #ccfbf1;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-subtle: #94a3b8;--color-inverse: #ffffff;--color-success: #16a34a;--color-success-bg: #dcfce7;--color-warning: #d97706;--color-warning-bg: #fef3c7;--color-danger: #dc2626;--color-danger-bg: #fee2e2;--color-info: #2563eb;--color-info-bg: #dbeafe;--color-disabled: #94a3b8;--color-disabled-bg: #f1f5f9;--shadow-card: 0 1px 2px rgba(15, 23, 42, .06);--shadow-panel: 0 8px 24px rgba(15, 23, 42, .06);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 8px;--radius-xl: 8px;--radius-pill: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 32px;--space-6: 48px;--font-sans: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}html{min-width:320px;min-height:100%;font-size:16px;background:var(--color-bg)}body{min-width:320px;min-height:100vh;margin:0;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}#root{min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}table{width:100%;border-collapse:collapse}h1,h2,p,dl,dt,dd{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app-shell{min-height:100vh;background:var(--color-bg)}.login-screen{display:grid;min-height:100vh;place-items:center;padding:var(--space-4);background:linear-gradient(180deg,#f8fafcf0,#f1f5f9f5),var(--color-bg)}.login-panel{width:min(420px,100%);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-panel)}.login-brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.login-brand h1{margin:0;font-size:22px;line-height:1.2;font-weight:850}.login-brand p{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:14px;font-weight:700}.login-form{display:grid;gap:var(--space-2)}.login-submit{width:100%;margin-top:var(--space-2)}.login-error{display:flex;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-3);margin-bottom:var(--space-3);border:1px solid #fecaca;border-radius:var(--radius-md);color:#991b1b;background:var(--color-danger-bg);font-size:14px;font-weight:750}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:72px;padding:0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.brand-area{display:flex;align-items:center;gap:var(--space-3);min-width:0}.brand-logo{display:grid;flex:0 0 44px;place-items:center;width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-card)}.brand-logo img{width:100%;height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}.brand-copy{min-width:0}.title-row{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.title-row h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:21px;line-height:1.2;font-weight:800;letter-spacing:0}.title-row span{color:var(--color-text-muted);font-size:14px;font-weight:600;white-space:nowrap}.current-time{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1);color:var(--color-text-muted);font-size:13px;font-variant-numeric:tabular-nums}.header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-width:0;height:36px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-md);font-size:14px;font-weight:750;line-height:1;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.button:focus-visible,.icon-button:focus-visible,.app-tab:focus-visible,.text-input:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.button--primary{color:var(--color-inverse);background:var(--color-brand)}.button--primary:hover{background:var(--color-brand-strong)}.button--secondary{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border-strong)}.button--secondary:hover{background:var(--color-surface-muted)}.button--danger{color:var(--color-inverse);background:var(--color-danger);box-shadow:0 8px 16px #dc262629}.button--danger:hover:not(:disabled){background:#b91c1c}.button--danger:disabled{color:#64748b;background:var(--color-disabled-bg);border-color:var(--color-border);box-shadow:none}.icon-button{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);background:var(--color-surface);transition:background-color .15s ease,color .15s ease,border-color .15s ease}.icon-button:hover{color:var(--color-text);background:var(--color-surface-muted)}.status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 11px;border:1px solid transparent;border-radius:var(--radius-pill);font-size:13px;font-weight:750;line-height:1;white-space:nowrap}.status-chip--success{color:#166534;background:var(--color-success-bg);border-color:#bbf7d0}.status-chip--warning{color:#92400e;background:var(--color-warning-bg);border-color:#fde68a}.status-chip--danger{color:#991b1b;background:var(--color-danger-bg);border-color:#fecaca}.status-chip--info{color:#1d4ed8;background:var(--color-info-bg);border-color:#bfdbfe}.status-chip--neutral{color:#475569;background:#f8fafc;border-color:var(--color-border)}.app-tabs{display:flex;align-items:center;gap:var(--space-4);height:52px;padding:0 var(--space-4);overflow:visible;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:52px;padding:0 var(--space-2);border:0;color:var(--color-text-muted);background:transparent;font-size:15px;font-weight:750;white-space:nowrap}.app-tab:hover{color:var(--color-text)}.app-tab--active{color:var(--color-brand)}.app-tab--active:after{content:"";position:absolute;left:var(--space-2);right:var(--space-2);bottom:0;height:3px;border-radius:var(--radius-pill);background:var(--color-brand)}.dashboard{display:grid;gap:12px;width:min(1920px,100%);margin:0 auto;padding:12px var(--space-4)}.dashboard--overview{--overview-log-transfer: 52px;align-content:start;height:calc(100vh - 124px);overflow:hidden;grid-template-rows:88px calc(170px + var(--overview-log-transfer)) 184px minmax(calc(179px - var(--overview-log-transfer)),1fr)}.dashboard--overview .summary-grid,.dashboard--overview .overview-main-grid,.dashboard--overview .event-log-panel{min-height:0}.dashboard--overview .summary-grid{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1fr)}.dashboard--overview .panel{min-height:0}.dashboard--overview .account-card .metric-row{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard--overview .account-card .panel-body{padding-top:8px;padding-bottom:18px}.dashboard--overview .account-card .metric-row>div{padding:8px 10px}.dashboard--overview .account-card .metric-row dt{margin-bottom:3px;font-size:12px}.dashboard--overview .account-card .metric-row dd{font-size:15px}.dashboard--overview .account-card .limit-row{margin-top:10px}.dashboard--overview .risk-box{min-height:48px}.dashboard--overview .risk-box strong{font-size:18px}.dashboard--overview .status-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-2)}.dashboard--overview .status-list div{min-height:28px}.dashboard--overview .check-list li{min-height:34px}.dashboard--overview .check-panel .panel-body{padding-top:8px;padding-bottom:8px}.dashboard--overview .check-panel .check-list li{min-height:31px}.dashboard--overview .operator-state-panel .panel-body{display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--space-2);min-height:0;padding-top:8px;padding-bottom:8px}.dashboard--overview .operator-state-box{min-height:52px}.dashboard--overview .operator-issue-list{min-height:0;overflow:hidden}.dashboard--overview .alert-list li{grid-template-columns:auto minmax(0,1fr) auto;min-height:38px;padding:0 10px}.dashboard--overview .alert-list p{gap:var(--space-1)}.dashboard--overview .alert-list p span{display:none}.dashboard--overview .alert-severity{min-width:46px;height:26px}.overview-main-grid{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.25fr) minmax(0,1fr);gap:var(--space-3);min-height:0}.dashboard--overview .recent-orders-panel,.dashboard--overview .dashboard-holdings-panel,.dashboard--overview .event-log-panel{display:grid;grid-template-rows:auto minmax(0,1fr)}.dashboard--overview .recent-orders-panel .panel-body,.dashboard--overview .dashboard-holdings-panel .panel-body,.dashboard--overview .event-log-panel .panel-body{display:flex;min-height:0}.dashboard--overview .recent-orders-panel .table-wrap,.dashboard--overview .dashboard-holdings-panel .table-wrap{display:flex;flex:1;min-height:100%;overflow:hidden}.dashboard--overview .recent-orders-panel .data-table,.dashboard--overview .dashboard-holdings-panel .data-table{min-width:0;height:100%}.dashboard--overview .event-log-panel .alert-list{flex:1;grid-template-rows:repeat(4,minmax(0,1fr))}.dashboard--overview .event-log-panel .alert-list li{grid-template-columns:minmax(86px,auto) auto minmax(0,1fr) minmax(120px,auto);min-height:0}.dashboard--overview .event-log-panel .panel-body{padding-top:10px;padding-bottom:12px}.dashboard--overview .event-log-panel .alert-list p span{display:inline}.event-source{overflow:hidden;color:var(--color-text-muted);font-size:13px;font-weight:700;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dashboard--overview .event-log-panel .event-filler-row{grid-template-columns:1fr}.dashboard--overview .event-log-panel .event-filler-row span{color:transparent}.dashboard--ml,.dashboard--system{align-content:start;height:calc(100vh - 124px);min-height:0;overflow:hidden}.dashboard--ml{grid-template-rows:minmax(0,1fr)}.dashboard--ml>.content-grid,.dashboard--system>.content-grid{min-height:0}.dashboard--ml>.content-grid{height:100%;grid-template-columns:minmax(300px,.5fr) minmax(0,1.5fr)}.dashboard--ml .panel,.dashboard--system .panel{display:grid;min-height:0}.dashboard--ml .panel{grid-template-rows:auto minmax(0,auto) minmax(0,1fr)}.dashboard--system .panel{grid-template-rows:auto minmax(0,1fr)}.dashboard--ml .panel-body,.dashboard--system .panel-body{min-height:0;overflow:hidden}.dashboard--ml .status-list div,.dashboard--system .status-list div,.dashboard--ml .detail-list div,.dashboard--system .detail-list div{min-height:32px}.dashboard--ml .data-table th,.dashboard--ml .data-table td,.dashboard--system .data-table th,.dashboard--system .data-table td{height:34px}.dashboard--ml .ml-status-grid{grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr)}.dashboard--ml .ml-validation-grid{grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr)}.dashboard--ml .truth-note{padding:10px 12px;font-size:12px}.dashboard--system{grid-template-rows:258px 126px minmax(0,1fr)}.dashboard--system .content-grid{grid-template-columns:minmax(280px,.5fr) minmax(0,1.5fr)}.dashboard--system .system-middle-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dashboard--system .strategy-list,.dashboard--system .alert-list,.dashboard--system .detail-list{max-height:100%;overflow:auto}.dashboard--system .strategy-list li{min-height:40px}.table-filler-row td{color:transparent;pointer-events:none}.summary-grid{display:grid;grid-template-columns:minmax(520px,1.2fr) minmax(280px,1fr) minmax(280px,1fr);gap:var(--space-3)}.summary-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-3)}.content-grid--dashboard{grid-template-columns:.85fr 1.05fr 2.1fr 1.55fr}.status-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-3);padding:12px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-card)}.status-banner--success{background:linear-gradient(90deg,#f0fdf4,#fff);border-color:#86efac}.status-banner--warning{background:linear-gradient(90deg,#fffbeb,#fff);border-color:#fcd34d}.status-banner--danger{background:linear-gradient(90deg,#fef2f2,#fff);border-color:#fca5a5}.status-banner__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-pill);color:var(--color-inverse);background:var(--color-warning)}.status-banner--success .status-banner__icon{background:var(--color-success)}.status-banner--danger .status-banner__icon{background:var(--color-danger)}.status-banner__content{min-width:0}.status-banner__content h2{font-size:19px;line-height:1.3;font-weight:800;letter-spacing:0}.status-banner__content p{margin-top:var(--space-1);color:var(--color-text-muted);font-size:14px}.status-banner__meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);color:var(--color-text-muted);font-size:13px;font-variant-numeric:tabular-nums}.status-banner__meta span+span:before{content:"·";margin-right:var(--space-2);color:var(--color-text-subtle)}.status-banner__actions{display:flex;align-items:center;gap:var(--space-2)}.panel{min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.panel:hover{border-color:var(--color-border-strong)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:42px;padding:12px var(--space-3) 0}.panel-title{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0}.panel-title svg{flex:0 0 auto;color:var(--color-brand)}.panel-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex:0 0 auto}.panel-header h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.4;font-weight:800;letter-spacing:0}.panel-body{padding:12px var(--space-3) var(--space-3)}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.source-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:13px;font-weight:800}.metric-row>div{min-width:0;padding:12px}.metric-row>div+div{border-left:1px solid var(--color-border)}.metric-row dt{margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:13px;font-weight:650}.metric-row dd{display:flex;align-items:baseline;gap:var(--space-1);max-width:100%;overflow:hidden;font-size:16px;line-height:1.2;font-weight:800;letter-spacing:0;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.metric-row dd span{flex:0 0 auto;color:var(--color-text-muted);font-size:12px;font-weight:750}.metric-positive{color:var(--color-brand)}.metric-danger{color:var(--color-danger)}.limit-row{margin-top:12px}.limit-row__label{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:13px;font-weight:750}.limit-row__label strong{color:var(--color-text);font-variant-numeric:tabular-nums}.progress-bar{position:relative;height:8px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-border)}.progress-bar span{position:absolute;inset:0 auto 0 0;min-width:0;border-radius:inherit;background:var(--color-brand)}.risk-box{display:grid;place-items:center;gap:var(--space-1);min-height:62px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.risk-box strong{font-size:19px;line-height:1.2;font-weight:850}.risk-box span{font-size:14px;font-weight:750}.risk-box--success{color:#166534;background:linear-gradient(180deg,#f0fdf4,#fff);border-color:#bbf7d0}.risk-box--danger{color:#991b1b;background:linear-gradient(180deg,#fff1f2,#fff7f7);border-color:#fecaca}.operator-state-box{display:grid;gap:var(--space-1);min-height:68px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.operator-state-box strong{font-size:18px;line-height:1.2;font-weight:850}.operator-state-box span{overflow:hidden;color:var(--color-text-muted);font-size:13px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.operator-state-box--success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.operator-state-box--warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.operator-state-box--danger{color:#991b1b;background:#fff1f2;border-color:#fecaca}.operator-issue-list{display:grid;gap:0;padding:0;margin:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.operator-issue-list li{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-2);min-height:35px;padding:0 10px}.operator-issue-list li+li{border-top:1px solid var(--color-border)}.operator-issue-list li>span:last-child{overflow:hidden;color:var(--color-text-muted);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.status-list{display:grid;gap:var(--space-1);margin-top:12px}.status-list--stacked{margin-top:0}.status-list div{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:32px}.status-list dt{color:var(--color-text-muted);font-size:14px;font-weight:750}.status-list dd{margin:0}.check-list{display:grid;gap:0;padding:0;margin:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.check-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);background:var(--color-surface)}.check-list li+li{border-top:1px solid var(--color-border)}.check-list li>span:nth-child(2){min-width:0;color:var(--color-text);font-size:14px;font-weight:700}.check-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-pill)}.check-icon--success{color:var(--color-success);background:var(--color-success-bg)}.check-icon--warning{color:var(--color-warning);background:var(--color-warning-bg)}.holding-list{display:grid;gap:0;padding:0;margin:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.holding-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-3);background:var(--color-surface)}.holding-list li+li{border-top:1px solid var(--color-border)}.holding-main,.holding-value{display:grid;gap:var(--space-1);min-width:0}.holding-main strong,.holding-value strong{overflow:hidden;color:var(--color-text);font-size:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.holding-main span,.holding-value span{overflow:hidden;color:var(--color-text-muted);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.holding-value{justify-items:end;text-align:right;font-variant-numeric:tabular-nums}.holding-empty{display:grid;place-items:center;min-height:104px;color:var(--color-text-muted);font-size:14px;font-weight:700;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.data-table{min-width:680px;font-size:14px;table-layout:fixed}.data-table thead{background:#f8fafc}.data-table th,.data-table td{height:42px;padding:0 var(--space-3);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table th{color:var(--color-text-muted);font-weight:800}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fafc}.table-actions{display:inline-flex;align-items:center;justify-content:flex-start;gap:var(--space-1);min-width:0}.mini-button{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:28px;padding:0 9px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:12px;font-weight:800;line-height:1;white-space:nowrap}.mini-button:hover{background:var(--color-surface-muted)}.mini-button--danger{color:#991b1b;background:var(--color-danger-bg);border-color:#fecaca}.mini-button--danger:hover{background:#fecaca}.mini-button--secondary{color:var(--color-text)}.table-action-placeholder{color:var(--color-text-subtle);font-size:13px;font-weight:700}.number{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}time{font-variant-numeric:tabular-nums}.text-danger{color:var(--color-danger);font-weight:800}.text-info{color:var(--color-info);font-weight:800}.empty-cell{color:var(--color-text-muted);text-align:center}.alert-list{display:grid;gap:0;padding:0;margin:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.alert-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:42px;padding:0 var(--space-3);background:var(--color-surface)}.alert-list li+li{border-top:1px solid var(--color-border)}.alert-list p{display:flex;align-items:center;gap:var(--space-2);min-width:0}.alert-list p strong{flex:0 0 auto;font-size:14px;font-weight:800}.alert-list p span{min-width:0;overflow:hidden;color:var(--color-text-muted);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.alert-list time{color:var(--color-text-muted);font-size:13px}.alert-severity{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:28px;border-radius:var(--radius-md);font-size:13px;font-weight:800}.alert-severity--warning{color:#92400e;background:var(--color-warning-bg)}.alert-severity--info{color:#1d4ed8;background:var(--color-info-bg)}.alert-severity--success{color:#166534;background:var(--color-success-bg)}.alert-severity--danger{color:#991b1b;background:var(--color-danger-bg)}.empty-alert{color:var(--color-text-muted)}.blocker-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.strategy-list{display:grid;gap:0;padding:0;margin:0;list-style:none;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.strategy-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:48px;padding:0 var(--space-3);background:var(--color-surface)}.strategy-list li+li{border-top:1px solid var(--color-border)}.strategy-list strong{min-width:0;overflow:hidden;color:var(--color-text);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.strategy-list li>div{display:grid;gap:2px;min-width:0}.strategy-list li>div span,.strategy-list li>span{overflow:hidden;color:var(--color-text-muted);font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.detail-list{display:grid;gap:0;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.detail-list div{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:40px;padding:0 var(--space-3);background:var(--color-surface)}.detail-list div+div{border-top:1px solid var(--color-border)}.detail-list dt{color:var(--color-text-muted);font-size:13px;font-weight:750}.detail-list dd{margin:0;color:var(--color-text);font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}.ml-status-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:var(--space-3)}.ml-validation-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:var(--space-3);padding-top:0}.ml-prediction-table,.ml-comparison-table{min-width:560px}.risk-rule-table,.data-quality-table{min-width:980px}.risk-rule-table th:nth-child(2),.risk-rule-table td:nth-child(2),.risk-rule-table th:nth-child(4),.risk-rule-table td:nth-child(4),.data-quality-table th:nth-child(2),.data-quality-table td:nth-child(2),.data-quality-table th:nth-child(4),.data-quality-table td:nth-child(4){width:120px}.truth-note{margin-top:var(--space-3);padding:var(--space-3);border:1px solid #bfdbfe;border-radius:var(--radius-lg);color:#1e3a8a;background:#eff6ff;font-size:13px;font-weight:750;line-height:1.55}.empty-list{color:var(--color-text-muted);font-size:14px}.system-message{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);margin:var(--space-3) var(--space-4) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;font-weight:750}.dashboard .system-message{margin:0}.system-message--danger{color:#991b1b;background:var(--color-danger-bg);border-color:#fecaca}.system-message--info{color:#1d4ed8;background:var(--color-info-bg);border-color:#bfdbfe}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:var(--space-4);background:#0f172a61}.confirm-dialog{width:min(440px,100%);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-panel)}.confirm-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.confirm-header h2{font-size:18px;line-height:1.3}.confirm-header p{margin-top:var(--space-1);color:var(--color-text-muted);font-size:14px}.field-label{display:block;margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:13px;font-weight:800}.text-input{width:100%;height:40px;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);background:#fff}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.dashboard--overview{height:auto;overflow:visible;grid-template-rows:none}.app-header{align-items:flex-start;flex-direction:column;padding-top:var(--space-3);padding-bottom:var(--space-3)}.header-actions{justify-content:flex-start}.app-tabs{flex-wrap:wrap;height:auto;min-height:52px;row-gap:0;padding-top:var(--space-1);padding-bottom:var(--space-1)}.app-tab{height:44px}.summary-grid,.summary-grid--compact,.content-grid,.ml-status-grid,.ml-validation-grid,.overview-main-grid{grid-template-columns:1fr}.status-banner{grid-template-columns:auto 1fr}.status-banner__actions{grid-column:1 / -1}}@media(max-width:720px){.app-header,.app-tabs,.dashboard{padding-right:var(--space-3);padding-left:var(--space-3)}.title-row{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.header-actions{width:100%}.header-actions .button--danger{flex:1 1 160px}.status-banner{grid-template-columns:1fr}.status-banner__icon{width:44px;height:44px}.status-banner__actions,.confirm-actions{align-items:stretch;flex-direction:column}.status-banner__actions .button,.confirm-actions .button{width:100%}.metric-row{grid-template-columns:1fr}.metric-row>div+div{border-top:1px solid var(--color-border);border-left:0}.alert-list li{grid-template-columns:1fr;align-items:flex-start;padding:var(--space-3)}.alert-list p{align-items:flex-start;flex-direction:column;gap:var(--space-1)}.alert-list p span{white-space:normal}}
