:root{--color-primary:#7a76f5;--color-primary-50:#f3f2ff;--color-primary-100:#e7e6ff;--color-primary-200:#d2d0ff;--color-primary-300:#b7b3ff;--color-primary-400:#9993fb;--color-primary-500:#7a76f5;--color-primary-600:#625ee0;--color-primary-700:#4f4bc2;--color-bg:#fbfbff;--color-surface:#fff;--color-sidebar:#f6f5ff;--color-border:#e8e8f0;--color-text:#111827;--color-muted:#6b7280;--color-soft:#9ca3af;--color-success:#16a34a;--color-success-bg:#eafaf0;--color-danger:#ef4444;--color-danger-bg:#feecec;--color-warning:#f59e0b;--color-warning-bg:#fff7e6;--color-info:#3b82f6;--color-info-bg:#eef5ff;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--shadow-card:0 8px 28px #1118270a;--shadow-soft:0 4px 14px #1118270f}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(circle at top left, #7a76f514, transparent 26%), radial-gradient(circle at 80% 0%, #3b82f60d, transparent 18%), var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0;font-family:Avenir Next,Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif}.sim-app{flex-direction:column;max-width:1440px;min-height:100vh;margin:0 auto;padding:24px;display:flex}.sim-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);background:#ffffffd9;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:16px 24px;display:flex}.sim-header__left{align-items:center;gap:12px;display:flex}.sim-header__logo{align-items:center;gap:10px;display:flex}.sim-header__title{color:var(--color-text);letter-spacing:-.03em;font-size:1.25rem;font-weight:800}.sim-header__badge{background:var(--color-primary-100);color:var(--color-primary-700);letter-spacing:.05em;border-radius:999px;padding:4px 8px;font-size:.6875rem;font-weight:700}.sim-nav{background:var(--color-primary-50);border-radius:var(--radius-md);border:1px solid #7a76f514;padding:4px;display:flex}.sim-nav__link{border-radius:var(--radius-sm);color:var(--color-muted);padding:8px 18px;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s}.sim-nav__link--active{background:var(--color-surface);color:var(--color-primary-700);box-shadow:var(--shadow-soft)}.sim-header__right{align-items:center;gap:16px;display:flex}.sim-status-chip{color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:.8125rem;font-weight:600;display:flex}.sim-status-dot{border-radius:50%;width:8px;height:8px}.sim-status-dot--online{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.sim-status-dot--offline{background:var(--color-danger);box-shadow:0 0 8px var(--color-danger)}.sim-user-identity{border-left:1px solid var(--color-border);align-items:center;gap:10px;padding-left:16px;display:flex}.sim-user-avatar{background:linear-gradient(135deg, var(--color-primary-200), var(--color-primary));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:flex}.sim-user-info{flex-direction:column;display:flex}.sim-user-name{color:var(--color-text);font-size:.875rem;font-weight:700}.sim-user-role{color:var(--color-muted);font-size:.75rem}.sim-header__clock{color:var(--color-muted);background:var(--color-primary-50);border-radius:var(--radius-sm);padding:4px 8px;font-family:monospace;font-size:.875rem;font-weight:600}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:20px;display:flex}.card--polished{background:#fffffff2}.card__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:4px;padding-bottom:12px;display:flex}.card__title{color:var(--color-text);letter-spacing:-.02em;font-size:1rem;font-weight:700}.sim-form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.field__control{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-height:40px;color:var(--color-text);background:#fff;outline:0;padding:0 14px;font-size:.875rem;transition:all .2s}.field__control:focus{border-color:var(--color-primary-300);box-shadow:0 0 0 4px #7a76f51f}.checkbox-field{cursor:pointer}.checkbox-field input{accent-color:var(--color-primary);width:16px;height:16px}.button{border-radius:var(--radius-md);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-size:.875rem;font-weight:700;transition:all .18s;display:inline-flex}.button:disabled{opacity:.5;cursor:not-allowed}.button--primary{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-600));color:#fff;box-shadow:0 4px 12px #7a76f533}.button--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #7a76f547}.button--secondary{background:var(--color-primary-50);color:var(--color-primary-700)}.button--secondary:hover:not(:disabled){background:var(--color-primary-100)}.button--danger{background:linear-gradient(135deg, var(--color-danger), #dc2626);color:#fff}.button--danger:hover:not(:disabled){transform:translateY(-1px)}.button--large{min-height:48px;font-size:1rem}.badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:0 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--failed{background:var(--color-danger-bg);color:var(--color-danger)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.badge--neutral{background:var(--color-primary-50);color:var(--color-primary-700)}.sim-checklist{flex-direction:column;gap:8px;list-style:none;display:flex}.sim-checklist li{color:var(--color-soft);align-items:center;gap:8px;padding:4px 0;font-size:.8125rem;font-weight:600;display:flex}.sim-checklist li:before{content:"○";font-weight:700}.sim-checklist li.sim-check--pass{color:var(--color-success)}.sim-checklist li.sim-check--pass:before{content:"✓"}.sim-manual-layout{grid-template-columns:320px 1fr 340px;align-items:start;gap:24px;display:grid}.sim-manual-col{flex-direction:column;gap:24px;min-width:0;display:flex}.sim-manual-col--wide{grid-column:span 1}.card--chassis{border-radius:var(--radius-xl);color:#fff;background:#111827;border:4px solid #1f2937;flex-direction:column;gap:20px;padding:24px;display:flex;box-shadow:0 20px 50px #0000004d}.sim-chassis-header{border-bottom:2px solid #374151;justify-content:space-between;align-items:center;padding-bottom:16px;display:flex}.sim-chassis-title h4{color:#fff;font-size:1.125rem;font-weight:800}.sim-chassis-code{color:var(--color-soft);background:#1f2937;border-radius:4px;margin-top:4px;padding:2px 6px;font-family:monospace;font-size:.75rem;display:inline-block}.sim-chassis-badges{gap:8px;display:flex}.sim-chassis-body{flex-direction:column;gap:20px;display:flex}.sim-chassis-empty{text-align:center;color:var(--color-soft);border-radius:var(--radius-md);background:#1f2937;border:2px dashed #374151;padding:48px 24px}.sim-empty-icon{margin-bottom:12px;font-size:2rem}.sim-slot-matrix-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.sim-chassis-slot{border-radius:var(--radius-md);cursor:pointer;color:#fff;text-align:center;background:#1f2937;border:2px solid #374151;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;transition:all .2s;display:flex}.sim-chassis-slot:hover:not(:disabled){border-color:var(--color-primary-400);background:#253047}.sim-chassis-slot--selected{box-shadow:0 0 12px #7a76f566;border-color:var(--color-primary)!important;background:#7a76f526!important}.sim-chassis-slot--low{border-color:var(--color-warning)}.sim-chassis-slot--out{opacity:.4;cursor:not-allowed}.sim-chassis-slot__code{color:var(--color-primary-300);font-family:monospace;font-size:.875rem;font-weight:800}.sim-chassis-slot__product{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:.75rem;font-weight:600;overflow:hidden}.sim-chassis-slot__stock-bar{background:#374151;border-radius:2px;width:100%;height:4px;overflow:hidden}.sim-chassis-slot__stock-fill{background:var(--color-success);height:100%}.sim-chassis-slot--low .sim-chassis-slot__stock-fill{background:var(--color-warning)}.sim-chassis-slot--out .sim-chassis-slot__stock-fill{background:var(--color-danger)}.sim-chassis-slot__qty{color:var(--color-soft);font-size:.6875rem}.sim-chassis-slot__price{color:#fff;font-size:.8125rem;font-weight:700}.sim-lcd-display{border-radius:var(--radius-sm);color:#10b981;letter-spacing:.05em;text-shadow:0 0 6px #10b98199;background:#0b130e;border:3px solid #374151;justify-content:space-between;align-items:center;padding:14px 18px;font-family:monospace;font-size:.9375rem;font-weight:700;display:flex;box-shadow:inset 0 2px 10px #000c}.sim-lcd-text{text-transform:uppercase}.sim-lcd-timer{color:var(--color-warning);text-shadow:0 0 6px #f59e0b99;font-size:.8125rem}.sim-vend-executor{display:flex}.sim-qr-box{flex-direction:column;align-items:center;display:flex}.sim-qr-image{background:#fff}.sim-balance{flex-direction:column;gap:10px;display:flex}.sim-balance__row{color:var(--color-muted);justify-content:space-between;font-size:.875rem;display:flex}.sim-balance__row strong{color:var(--color-text)}.sim-balance__row--highlight{border-top:1px dashed var(--color-border);color:var(--color-text);padding-top:10px;font-size:1.05rem;font-weight:700}.sim-balance__row--highlight strong{color:var(--color-primary-700)}.sim-panel--full{grid-column:1/-1;margin-top:8px}.sim-events-table-container{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;overflow-x:auto}.sim-timeline-table{border-collapse:collapse;text-align:left;width:100%;font-size:.8125rem}.sim-timeline-table th{background:var(--color-primary-50);color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);padding:12px 16px;font-size:.75rem;font-weight:700}.sim-timeline-table td{vertical-align:middle;border-bottom:1px solid #e8e8f0cc;padding:12px 16px}.sim-timeline-table tr:hover td{background:#fafaff}.sim-category-tag{border-radius:4px;padding:2px 6px;font-size:.6875rem;font-weight:800}.sim-category-tag--api{background:var(--color-info-bg);color:var(--color-info)}.sim-category-tag--mqtt{background:var(--color-primary-50);color:var(--color-primary-700)}.sim-category-tag--sys{color:var(--color-muted);background:#1118270f}.sim-auto-layout{flex-direction:column;gap:24px;display:flex}.sim-auto-kpi-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:16px;display:grid}.sim-auto-kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);flex-direction:column;gap:6px;padding:14px 12px;display:flex}.sim-auto-kpi-label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.02em;font-size:.6875rem;font-weight:700;line-height:1.2}.sim-auto-kpi-value{color:var(--color-text);letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.sim-auto-grid{grid-template-columns:320px 1fr 320px;align-items:start;gap:24px;display:grid}.sim-auto-machine-manager{flex-direction:column;gap:8px;display:flex}.sim-auto-machine-table{width:100%}.sim-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.sim-dot--healthy{background:var(--color-success)}.sim-dot--failed{background:var(--color-danger)}.sim-dot--pending{background:var(--color-warning)}.sim-params-list{flex-direction:column;display:flex}.sim-param-row{color:var(--color-muted);justify-content:space-between;align-items:center;font-size:.78rem;font-weight:600;display:flex}.sim-throughput-chart-box{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#7a76f505}.sim-run-table-container{overflow-x:auto}.sim-progress-bar-bg{background:var(--color-border);width:100%}.sim-run-info-list,.sim-outcome-breakdown{flex-direction:column;display:flex}@media (width<=1200px){.sim-manual-layout{grid-template-columns:300px 1fr}.sim-manual-col:last-child{grid-column:1/-1}.sim-auto-grid{grid-template-columns:300px 1fr}.sim-auto-grid>.sim-auto-col:last-child{grid-column:1/-1}.sim-auto-kpi-row{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=900px){.sim-manual-layout,.sim-auto-grid{grid-template-columns:1fr}.sim-auto-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.sim-chassis-board-wrapper{max-height:520px;padding-right:6px;overflow:auto}.sim-chassis-board-wrapper::-webkit-scrollbar{width:8px;height:8px}.sim-chassis-board-wrapper::-webkit-scrollbar-track{background:#111827;border-radius:99px}.sim-chassis-board-wrapper::-webkit-scrollbar-thumb{background:#374151;border-radius:99px}.sim-chassis-board-wrapper::-webkit-scrollbar-thumb:hover{background:#4b5563}.sim-chassis-board{flex-direction:column;gap:16px;min-width:max-content;display:flex}.sim-chassis-board-row{grid-template-columns:28px minmax(0,1fr);align-items:center;gap:12px;display:grid}.sim-chassis-board-row-label{color:var(--color-soft);text-align:center;font-size:1.125rem;font-weight:800}.sim-chassis-board-row-cells{gap:12px;display:grid}.sim-chassis-slot--empty{opacity:.25;pointer-events:none;cursor:default!important;background:#111827!important;border:2px dashed #374151!important}
