:root{--bg: #f4f7fb;--card: #ffffff;--line: #dbe3ef;--text: #13233a;--subtext: #5b6c83;--primary: #1f6feb;--ok: #138a36;--warn: #b86b00}*{box-sizing:border-box;margin:0;padding:0;font-family:Segoe UI,Arial,sans-serif}body{background:var(--bg);color:var(--text);min-height:100vh;padding:24px}.simulator-shell{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:280px 1fr;gap:16px}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}.app-header{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.title-wrap h1{font-size:1.25rem;margin-bottom:2px}.title-wrap p{color:var(--subtext);font-size:.9rem}.status-badge{background:#159b3e1f;color:var(--ok);padding:8px 12px;border-radius:999px;font-size:.85rem;font-weight:600}.status-badge--run{background:#1f6feb24;color:var(--primary)}.section-title{font-size:.95rem;margin-bottom:12px;color:var(--subtext);text-transform:uppercase;letter-spacing:.5px}.controls{display:grid;gap:12px}.control-item label{display:block;font-size:.84rem;margin-bottom:6px;color:var(--subtext)}.control-item input,.control-item select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.button-group{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}button{border:none;padding:10px;border-radius:8px;font-weight:600;cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:#eaf1ff;color:#184591}.simulator-content{display:grid;gap:16px}.simulator-view{min-height:240px;border:2px dashed #b9cae5;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#6d81a1;background:linear-gradient(180deg,#f9fbff,#f0f5ff);text-align:center;padding:16px}.simulator-view--data{align-items:flex-start;justify-content:flex-start;text-align:left;color:var(--text)}.data-panel-body{width:100%;font-size:.92rem;line-height:1.45}.data-panel-body p+p{margin-top:10px;color:var(--subtext)}.data-panel-meta{margin-top:8px;font-size:.8rem;word-break:break-all}.pipeline-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px}.step-card{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdff;text-align:center;font-size:.84rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.step-card .step-status{display:block;margin-top:4px;color:var(--subtext);font-size:.78rem}.step-card.is-pending{opacity:.92}.step-card.is-active{border-color:var(--primary);background:#f0f6ff;box-shadow:0 0 0 2px #1f6feb33;animation:step-pulse 1.1s ease-in-out infinite}.step-card.is-success{border-color:#138a3673;background:#f4fbf6}.step-card.is-success .step-status{color:var(--ok)}@keyframes step-pulse{0%,to{box-shadow:0 0 0 2px #1f6feb2e}50%{box-shadow:0 0 0 4px #1f6feb1f}}.text-warn{color:var(--warn)}.layer-block{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.layer-block-title{font-size:.95rem;margin-bottom:10px;color:var(--text);font-weight:700}.layer-count{font-weight:500;color:var(--subtext)}.layer-empty{margin:0;font-size:.88rem;color:var(--subtext)}.audit-summary{margin-bottom:4px}.audit-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.82rem}.audit-table th,.audit-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}.audit-table th{background:#f4f7fb;color:var(--subtext);font-weight:600}.audit-table code{font-size:.85rem;background:#eef3fb;padding:2px 6px;border-radius:4px}.cell-ellipsis{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.silver-validation-section{margin-top:14px;display:grid;gap:12px}.silver-validation-card{border:1px solid var(--line);border-radius:10px;background:#f7fbff;padding:12px 14px}.silver-validation-title{font-size:.9rem;margin-bottom:10px;color:var(--text)}.validation-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.validation-metric{border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 10px}.validation-metric strong{display:block;margin-top:4px;font-size:1rem}.validation-metric small{color:var(--subtext);font-size:.78rem}@media(max-width:920px){.simulator-shell,.pipeline-steps,.validation-metrics{grid-template-columns:1fr}}
