:root{--primary: #0b57d0;--primary-hover: #0a4bb5;--on-primary: #ffffff;--primary-container: #d3e3fd;--on-primary-container: #041e49;--background: #f7f8fa;--surface: #ffffff;--surface-variant: #eef0f4;--surface-container: #f1f3f6;--on-surface: #1b1c1e;--on-surface-variant: #44474e;--outline: #c4c6cf;--outline-variant: #e2e3e8;--error: #b3261e;--success: #1e6b32;--success-container: #d7ecd9;--warn: #8a5000;--elev-1: 0 1px 2px rgba(0, 0, 0, .14), 0 1px 3px rgba(0, 0, 0, .06);--elev-2: 0 2px 6px rgba(0, 0, 0, .14), 0 1px 2px rgba(0, 0, 0, .08);color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:Roboto,Segoe UI,system-ui,Helvetica Neue,Arial,sans-serif;background:var(--background);color:var(--on-surface);font-size:14px;-webkit-font-smoothing:antialiased}.mono{font-family:Roboto Mono,ui-monospace,Menlo,Consolas,monospace}.muted{color:var(--on-surface-variant);font-size:12.5px}.app{max-width:1160px;margin:0 auto;padding:16px 16px 64px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:4px 0 16px}.masthead h1{font-size:20px;font-weight:500;margin:0}.head-right{display:inline-flex;align-items:center;gap:16px}.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--outline-variant);font-size:13px;line-height:1;box-shadow:var(--elev-1)}.chip-dot{width:8px;height:8px;border-radius:50%;background:var(--on-surface-variant)}.chip.env.real .chip-dot{background:var(--success)}.chip.env.simulator .chip-dot{background:var(--warn)}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--on-surface-variant);cursor:pointer}.toggle input{accent-color:var(--primary)}.panes{display:flex;gap:16px;align-items:flex-start}.pane{display:flex;flex-direction:column;gap:16px;min-width:0}.pane-main{flex:1.5 1 0}.pane-side{flex:1 1 0}@media(max-width:900px){.panes{flex-direction:column}.pane{width:100%}}.settings{margin-bottom:16px}.settings-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.settings-group{margin-top:14px;border-top:1px solid var(--outline-variant);padding-top:14px}.settings-label{display:block;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--on-surface-variant);margin-bottom:8px}.settings-sim{display:flex;flex-direction:column;gap:0}.btn-settings{height:38px;padding:0 16px;border-radius:19px;border:1px solid var(--outline);background:var(--surface);color:var(--on-surface-variant);font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}.btn-settings:hover{background:var(--surface-variant)}.btn-settings.active{background:var(--primary-container);border-color:transparent;color:var(--on-primary-container)}.card{min-width:0;background:var(--surface);border:1px solid var(--outline-variant);border-radius:12px;box-shadow:var(--elev-1);padding:16px}.card h2{font-size:13px;font-weight:500;color:var(--on-surface-variant);margin:0 0 14px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-head h2{margin:0}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.field{display:flex;flex-direction:column;gap:4px;flex:1 1 140px}.field label{font-size:12px;color:var(--on-surface-variant)}input,select{background:var(--surface);border:1px solid var(--outline);color:var(--on-surface);border-radius:4px;padding:9px 12px;font-size:14px;font-family:inherit}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}button{font-family:inherit;font-size:14px;font-weight:500;height:38px;padding:0 18px;border-radius:19px;border:1px solid var(--outline);background:var(--surface);color:var(--primary);cursor:pointer;transition:background .15s ease,box-shadow .15s ease}button:hover:not(:disabled){background:#0b57d00f}button:disabled{opacity:.38;cursor:not-allowed}button.filled{background:var(--primary);border-color:transparent;color:var(--on-primary);box-shadow:var(--elev-1)}button.filled:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--elev-2)}button.text{border-color:transparent;background:transparent;padding:0 12px}button.text:hover:not(:disabled){background:#0b57d00f}button.danger{color:var(--error)}button.danger:hover:not(:disabled){background:#b3261e0f}button.icon{height:26px;width:26px;padding:0;border-radius:6px;border-color:transparent;color:var(--on-surface-variant);font-size:16px;line-height:1}button.icon:hover:not(:disabled){background:var(--surface-variant)}.probe{font-size:12.5px}.probe.ok{color:var(--success)}.probe.off{color:var(--error)}.machine{display:flex;flex-direction:column;gap:8px}.mrow{display:grid;grid-template-columns:88px auto minmax(0,1fr);gap:6px 10px;align-items:center;padding:7px 10px;background:var(--surface-container);border-radius:8px}.mrow-region{font-size:12px;color:var(--on-surface-variant);overflow-wrap:anywhere}.mrow-state{justify-self:start;font-size:12.5px;font-weight:500;color:var(--on-primary-container);background:var(--primary-container);border-radius:6px;padding:3px 8px;white-space:nowrap}.mrow-events{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.ev-chip{font-family:Roboto Mono,ui-monospace,Menlo,Consolas,monospace;font-size:10.5px;color:var(--primary);background:var(--surface);border:1px solid var(--outline-variant);border-radius:5px;padding:1px 6px}.ev-none{color:var(--on-surface-variant);font-size:12px}.machine-more{align-self:flex-start;margin-top:2px;padding-left:0;padding-right:0;font-size:12.5px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000006b;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:min(1000px,100%);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border-radius:12px;box-shadow:var(--elev-2)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--outline-variant)}.modal-head h3{margin:0;font-size:15px;font-weight:500}.modal-body{padding:16px;overflow-y:auto}.lock{font-size:10px;cursor:help}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:12px;margin-top:10px}.detail-region{min-width:0;background:var(--surface-container);border-radius:8px;padding:10px}.detail-region-head{font-size:11px;font-weight:500;color:var(--on-surface-variant);margin-bottom:6px}.detail-state{min-width:0;border:1px solid var(--outline-variant);border-radius:6px;background:var(--surface);padding:6px 8px;margin-bottom:6px}.detail-state.current{border-color:var(--primary);background:var(--primary-container)}.detail-state-key{font-size:12px;font-weight:500;display:block;margin-bottom:2px;overflow-wrap:anywhere}.detail-tr{display:block;font-size:10.5px;color:var(--on-surface-variant);overflow-wrap:anywhere}.detail-to{color:var(--on-surface)}.detail-any{font-size:10.5px;color:var(--on-surface-variant);margin-top:4px;overflow-wrap:anywhere}.tlist{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto}.trow{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:5px 8px 5px 10px;background:var(--surface-container);border-radius:8px;font-size:13px}.tag{font-size:11px;color:var(--on-surface-variant);background:var(--surface-variant);border-radius:5px;padding:1px 7px}.trow-id{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trow-badges{display:inline-flex;gap:4px}.badge{font-size:11px;font-weight:500;border-radius:6px;padding:2px 8px;white-space:nowrap}.badge.on{color:var(--success);background:var(--success-container)}.badge.backend{color:var(--on-primary-container);background:var(--primary-container)}.badge.neutral{color:var(--on-surface-variant);background:var(--surface-variant)}.tlist-empty{padding:14px;text-align:center;color:var(--on-surface-variant)}.slider-row{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:13px}.slider-row input[type=range]{flex:1;padding:0;border:none;accent-color:var(--primary)}.log{max-height:240px;overflow-y:auto;font-family:Roboto Mono,ui-monospace,Menlo,Consolas,monospace;font-size:12px;border:1px solid var(--outline-variant);border-radius:8px;background:var(--surface-container)}.log-empty{padding:16px;color:var(--on-surface-variant);text-align:center}.log-entry{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;padding:5px 10px;border-bottom:1px solid var(--outline-variant);align-items:baseline}.log-entry:last-child,.trace-entry:last-child{border-bottom:none}.log-entry .t,.trace-entry .t{color:var(--on-surface-variant);white-space:nowrap}.log-entry .arrow{font-weight:500;white-space:nowrap}.log-entry.w2a .arrow{color:var(--primary)}.log-entry.a2w .arrow{color:var(--success)}.log-entry>span:last-child{min-width:0;overflow-wrap:anywhere}.log-entry .name{color:var(--on-surface)}.log-entry .args{color:var(--on-surface-variant)}.trace-entry{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 8px;padding:6px 10px;border-bottom:1px solid var(--outline-variant);font-family:Roboto Mono,ui-monospace,Menlo,Consolas,monospace;font-size:12px}.trace-entry .t{grid-column:1;grid-row:1}.trace-event{grid-column:2;grid-row:1;color:var(--primary);font-weight:500;overflow-wrap:anywhere}.trace-state{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;gap:4px 8px}.trace-region{display:inline-flex;gap:4px}.trace-region-name{color:var(--on-surface-variant)}.trace-region-state{color:var(--on-surface)}.scan{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border-radius:8px;background:#263238;color:#eceff1}.scan-frame{position:relative;flex:0 0 auto;width:40px;height:40px;border-radius:6px;border:1px solid rgba(144,202,249,.5);overflow:hidden}.scan-sweep{position:absolute;left:8%;right:8%;height:2px;background:linear-gradient(90deg,transparent,#90caf9,transparent);box-shadow:0 0 8px #90caf9;animation:scan-sweep 1.3s ease-in-out infinite}@keyframes scan-sweep{0%{top:12%}50%{top:80%}to{top:12%}}.scan-text{font-size:13.5px;font-weight:500}.result{display:flex;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;border-radius:8px;font-size:13.5px;font-weight:500}.result-dot{width:9px;height:9px;border-radius:50%}.result.ok{background:var(--success-container);color:var(--success)}.result.ok .result-dot{background:var(--success)}.result.fail{background:#f9dedc;color:var(--error)}.result.fail .result-dot{background:var(--error)}.toast-host{position:fixed;z-index:100;right:16px;bottom:16px;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}@media(max-width:560px){.toast-host{left:16px;right:16px;width:auto}}.toast{pointer-events:auto;display:flex;gap:10px;align-items:flex-start;padding:12px 12px 12px 14px;border-radius:8px;background:var(--surface);color:var(--on-surface);border:1px solid var(--outline-variant);border-left:4px solid var(--outline);box-shadow:var(--elev-2);animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--error)}.toast.warn{border-left-color:var(--warn)}.toast.info{border-left-color:var(--primary)}.toast-dot{flex:0 0 auto;width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--on-surface-variant)}.toast.success .toast-dot{background:var(--success)}.toast.error .toast-dot{background:var(--error)}.toast.warn .toast-dot{background:var(--warn)}.toast.info .toast-dot{background:var(--primary)}.toast-body{flex:1;min-width:0}.toast-title{font-size:13.5px;font-weight:500}.toast-detail{font-size:12px;color:var(--on-surface-variant);margin-top:2px;word-break:break-word}.toast-close{height:auto;padding:0 4px;background:transparent;border:none;color:var(--on-surface-variant);font-size:16px;line-height:1;border-radius:4px}.toast-close:hover:not(:disabled){background:#0000000f}
