.shell{z-index:1;max-width:1180px;margin:0 auto;padding:1.25rem 1.25rem 3rem;position:relative}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;animation:.55s both rise;display:flex}.brand{align-items:center;gap:.85rem;display:flex}.brand-mark{background:linear-gradient(145deg, var(--teal), var(--teal-deep));color:#f4fffc;width:3rem;height:3rem;font-family:var(--font-display);letter-spacing:-.04em;box-shadow:var(--shadow);border-radius:12px;place-items:center;font-weight:800;display:grid}.brand-text{flex-direction:column;gap:.1rem;display:flex}.brand-text strong{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.35rem;font-weight:800}.brand-text em{color:var(--ink-muted);font-size:.85rem;font-style:normal}.nav{color:var(--ink-muted);flex-wrap:wrap;gap:.35rem 1rem;font-size:.95rem;font-weight:600;display:flex}.nav a:hover{color:var(--teal-deep)}.main{animation:.65s 80ms both rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.topbar{align-items:flex-start}}.badge{letter-spacing:.02em;text-transform:uppercase;font-size:.75rem;font-weight:700;font-family:var(--font-mono);border-radius:999px;align-items:center;padding:.28rem .65rem;display:inline-flex}.badge-ok{color:var(--ok);background:#15803d1f}.badge-warn{color:var(--amber);background:#b4530924}.badge-danger{color:var(--danger);background:#b91c1c1f}.badge-neutral{color:var(--ink-muted);background:#14212b14}.timeline{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.timeline li{grid-template-columns:1rem 1fr;gap:.85rem;display:grid;position:relative}.timeline li:not(:last-child):before{content:"";background:linear-gradient(var(--teal), transparent);width:2px;position:absolute;top:1.1rem;bottom:-.85rem;left:.4rem}.timeline-dot{background:var(--teal);border-radius:50%;width:.85rem;height:.85rem;margin-top:.2rem;box-shadow:0 0 0 4px #0f766e26}.timeline--live .timeline-dot{color:#fff;background:var(--teal);place-items:center;width:1.15rem;height:1.15rem;font-size:.7rem;font-weight:700;display:grid;box-shadow:0 0 0 4px #0f766e1f}.timeline-dot--running{background:#0f766e;animation:1.2s ease-in-out infinite timeline-pulse}.timeline-dot--failed{background:#b91c1c;box-shadow:0 0 0 4px #b91c1c26}.timeline-dot--waiting{background:#94a3b8;box-shadow:0 0 0 4px #94a3b826}.timeline-dot--completed{background:var(--teal)}.timeline-step--active .timeline-body{border-color:#0f766e73;box-shadow:0 0 0 1px #0f766e33}.timeline-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.85rem 1rem}.timeline-meta{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;display:flex}.timeline-meta strong{text-transform:none}.timeline-meta span,.timeline-body p{color:var(--ink-muted);font-size:.9rem}.timeline-running-tag{letter-spacing:.04em;text-transform:uppercase;color:#0f766e;margin-top:.35rem;font-size:.75rem;font-weight:600;display:inline-block}@keyframes timeline-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 4px #0f766e26}50%{transform:scale(1.08);box-shadow:0 0 0 8px #0f766e14}}.investigation-banner{border-radius:var(--radius);background:linear-gradient(135deg,#b91c1c1f,#0f766e14);border:1px solid #b91c1c59;gap:.35rem;margin-bottom:1rem;padding:1rem 1.15rem;display:grid}.investigation-banner--done{background:linear-gradient(135deg,#0f766e1f,#0f766e0a);border-color:#0f766e59}.investigation-banner strong{letter-spacing:.06em;text-transform:uppercase;font-size:.85rem}.investigation-banner p{color:var(--ink-muted);margin:0}.vibration-trail{font-family:var(--mono,ui-monospace, monospace);color:var(--ink);margin:.25rem 0 0;font-size:.95rem}.diagnosis-result{gap:.85rem;display:grid}.diagnosis-result .result-headline{margin:0;font-size:1.15rem}.page{gap:1.25rem;display:grid}.hero{border-radius:calc(var(--radius) + 4px);background:linear-gradient(135deg, #0f766e29, transparent 55%), var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);gap:.55rem;padding:1.4rem 1.5rem;display:grid}.hero h1{font-size:clamp(1.8rem,4vw,2.6rem)}.hero p{max-width:42rem;color:var(--ink-muted);line-height:1.5}.demo-note{color:var(--ink-muted);margin:.35rem 0 0;font-size:.85rem}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.stat span{color:var(--ink-muted);margin-bottom:.35rem;font-size:.85rem;display:block}.stat strong{font-family:var(--font-display);letter-spacing:-.04em;font-size:1.8rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1.1rem 1.2rem}.panel h2{margin-bottom:.85rem;font-size:1.15rem}.fleet-section{gap:.85rem;display:grid}.fleet-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;display:flex}.fleet-section-head h2{margin:0;font-size:1.15rem}.fleet-seed-msg{color:var(--teal-deep);margin:.35rem 0 0;font-size:.85rem}.fleet-sim-status{margin-top:.25rem;font-size:.82rem}.fleet-sim-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}@media (width<=720px){.fleet-sim-actions{width:100%}.fleet-sim-actions .seed-btn{flex:auto}}.machine-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.activity-incident-panel{gap:.85rem;display:grid}.activity-incident-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:.15rem;display:flex}.activity-incident-head h2{margin-bottom:.25rem}.activity-incident-head h2 a{color:var(--teal-deep)}.activity-incident-head h2 a:hover{text-decoration:underline}.activity-incident-meta{font-size:.9rem}.activity-incident-badges{flex-wrap:wrap;gap:.4rem;display:flex}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem .4rem}.table th{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.table a{color:var(--teal-deep);font-weight:700}.stack{gap:1rem;display:grid}.split{grid-template-columns:1.2fr .8fr;align-items:start;gap:1rem;display:grid}.split-top{align-items:start}.muted{color:var(--ink-muted);line-height:1.5}.error{color:var(--danger);font-weight:600}.summary-box{color:var(--ink);background:#0f766e0f;border-radius:12px;padding:.9rem 1rem;line-height:1.55}.summary-box.markdown-body :first-child{margin-top:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{font-family:var(--font-display);letter-spacing:-.02em;margin:1rem 0 .4rem}.markdown-body h3{font-size:1.15rem}.markdown-body h4{font-size:1rem}.markdown-body p,.markdown-body ul,.markdown-body ol{margin:.45rem 0}.markdown-body ul,.markdown-body ol{padding-left:1.25rem}.markdown-body hr{border:0;border-top:1px solid var(--line);margin:.85rem 0}.markdown-body code{font-family:var(--font-mono);background:#14212b0f;border-radius:4px;padding:.1rem .3rem;font-size:.88em}.markdown-body strong{font-weight:700}.wo-card{border-bottom:1px solid var(--line);gap:.45rem;padding:.75rem 0;display:grid}.wo-card:last-of-type{border-bottom:0;padding-bottom:0}.wo-badges{flex-wrap:wrap;gap:.4rem;display:flex}.reasoning-box{background:#14212b0a;border-radius:12px;padding:.75rem .85rem}.reasoning-box span{color:var(--ink-muted);margin-bottom:.35rem;font-size:.78rem;display:block}.reasoning-box p{margin:0;line-height:1.5}.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.meta-grid div{background:#14212b0a;border-radius:12px;padding:.75rem .85rem}.meta-grid span{color:var(--ink-muted);margin-bottom:.25rem;font-size:.78rem;display:block}.meta-grid strong{font-family:var(--font-mono);font-size:.92rem}@media (width<=900px){.stats,.split,.meta-grid{grid-template-columns:1fr}}.critical-banner{border-radius:var(--radius);background:linear-gradient(120deg, #b91c1c1f, transparent 60%), var(--surface);border:1px solid #b91c1c59;gap:.85rem;padding:1rem 1.15rem;animation:.4s both rise;display:grid}.critical-banner-head{gap:.2rem;display:grid}.critical-banner-head strong{font-family:var(--font-display);letter-spacing:-.03em;color:var(--danger)}.critical-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.critical-list li{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding-top:.65rem;display:flex}.critical-list p{color:var(--ink-muted);max-width:40rem;margin:.35rem 0 0;line-height:1.45}.critical-actions{gap:.5rem;display:flex}.approve-btn,.reject-btn{cursor:pointer;border:0;border-radius:999px;padding:.55rem .95rem;font-weight:700;transition:transform .15s,opacity .15s}.approve-btn{background:var(--danger);color:#fff8f8}.reject-btn{color:var(--ink);border:1px solid var(--line);background:0 0}.approve-btn:hover:not(:disabled),.reject-btn:hover:not(:disabled){transform:translateY(-1px)}.approve-btn:disabled,.reject-btn:disabled{opacity:.55;cursor:wait}.critical-msg{color:var(--teal-deep);margin:0;font-size:.85rem}.machine-card{background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);gap:.85rem;padding:1rem 1.1rem 1.1rem;animation:.55s both rise;display:grid}.machine-card-main{color:inherit;gap:.75rem;display:grid}.machine-card-main:hover .machine-card-header h3{color:var(--teal-deep)}.machine-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.machine-card-header h3{margin:0 0 .2rem;font-size:1.15rem;transition:color .15s}.machine-card-name{font-size:.95rem;font-weight:600}.machine-card-loc{margin-top:.2rem;font-size:.82rem}.machine-visual{border-radius:var(--radius);border:1px solid var(--line);background:radial-gradient(circle at 50% 40%,#0f766e29,#0000 62%),linear-gradient(#14212b0a,#14212b14);place-items:center;min-height:11.5rem;display:grid;position:relative;overflow:hidden}.live-chip{z-index:2;letter-spacing:.02em;text-transform:uppercase;font-size:.75rem;font-weight:700;font-family:var(--font-mono);border:1px solid var(--line);background:#ffffffe0;border-radius:999px;align-items:center;gap:.4rem;padding:.28rem .65rem;display:inline-flex;position:absolute;top:.65rem;left:.65rem}.live-chip--on{color:var(--ok);border-color:#15803d40}.live-chip--off{color:var(--ink-muted)}.live-dot{background:currentColor;border-radius:50%;width:.5rem;height:.5rem}.live-chip--on .live-dot{animation:1.6s ease-out infinite livePulse;box-shadow:0 0 #15803d73}.pump-svg,.machine-svg{transform-origin:50%;width:min(100%,220px);height:auto}.pump-impeller{transform-box:fill-box;transform-origin:50%}.machine-card--running .pump-impeller{animation:2.4s linear infinite impellerSpin}.machine-card--running .pump-svg,.machine-card--running .machine-svg{animation:2.8s ease-in-out infinite softVibrate}.machine-card--running .pump-shaft{animation:2s ease-in-out infinite shaftGlow}.machine-card--stressed .machine-visual{background:radial-gradient(circle at 50% 40%,#b4530938,#0000 62%),linear-gradient(#b453090f,#14212b14)}.machine-card--stressed .pump-impeller{animation:1.1s linear infinite impellerSpin}.machine-card--stressed .pump-svg,.machine-card--stressed .machine-svg{animation:.45s ease-in-out infinite hardShake}.machine-card--stressed .pump-casing,.machine-card--stressed .pump-motor{filter:hue-rotate(-18deg)saturate(1.15)}.machine-card--stopped .machine-visual{filter:grayscale(.55)brightness(.95)}.machine-card--stopped .pump-impeller,.machine-card--stopped .pump-svg,.machine-card--stopped .machine-svg,.machine-card--stopped .pump-shaft{animation:none}.machine-card-actions{flex-wrap:wrap;gap:.5rem;display:flex}.machine-card-actions .seed-btn{flex:auto;min-width:9rem}.seed-btn{background:var(--ink);color:#f7fafc;cursor:pointer;border:0;border-radius:999px;padding:.7rem 1.1rem;font-weight:600;transition:transform .18s,background .18s}.seed-btn-ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.seed-btn-ghost:hover:not(:disabled){color:var(--teal-deep);background:#0f766e1a}.seed-btn:hover:not(:disabled){background:var(--teal-deep);transform:translateY(-1px)}.seed-btn:disabled{opacity:.6;cursor:wait}@keyframes impellerSpin{to{transform:rotate(360deg)}}@keyframes softVibrate{0%,to{transform:translate(0)}50%{transform:translate(.5px,-.5px)}}@keyframes hardShake{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-1.5px,.5px)rotate(-.4deg)}75%{transform:translate(1.5px,-.5px)rotate(.4deg)}}@keyframes shaftGlow{0%,to{opacity:.85}50%{opacity:1}}@keyframes livePulse{0%{box-shadow:0 0 #15803d73}70%{box-shadow:0 0 0 8px #15803d00}to{box-shadow:0 0 #15803d00}}@media (width<=720px){.machine-card-actions{flex-direction:column}.machine-card-actions .seed-btn{width:100%}}.charts{gap:1rem;display:grid}.chart-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:1rem}.chart-panel header{justify-content:space-between;gap:1rem;margin-bottom:.5rem;display:flex}.chart-panel h3{font-size:1rem}.chart-panel span{color:var(--ink-muted);font-size:.8rem}.chart-frame{width:100%;min-height:220px}.empty{color:var(--ink-muted)}:root{--bg:#e8eef2;--bg-elevated:#f4f7f9;--surface:#ffffffb8;--ink:#14212b;--ink-muted:#5a6b78;--line:#14212b1f;--teal:#0f766e;--teal-deep:#0b4f4a;--amber:#b45309;--danger:#b91c1c;--ok:#15803d;--font-display:"Syne", sans-serif;--font-body:"Public Sans", sans-serif;--font-mono:"IBM Plex Mono", monospace;--radius:14px;--shadow:0 18px 40px #14212b14}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);font-family:var(--font-body);background:radial-gradient(circle at 12% 8%, #0f766e24, transparent 42%), radial-gradient(circle at 88% 0%, #b453091a, transparent 36%), linear-gradient(180deg, #dfe8ee 0%, var(--bg) 48%, #d7e1e8 100%);background-attachment:fixed;margin:0}body:before{content:"";pointer-events:none;opacity:.35;z-index:0;background-image:linear-gradient(#14212b0a 1px,#0000 1px),linear-gradient(90deg,#14212b0a 1px,#0000 1px);background-size:28px 28px;position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input{font:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0}p{margin:0}.mono{font-family:var(--font-mono)}
