:root{color-scheme:dark;--ink: rgba(255, 255, 255, .94);--ink-dim: rgba(255, 255, 255, .62);--glass: rgba(12, 18, 26, .38);--glass-border: rgba(255, 255, 255, .16);--warn: #e4c47c;--bad: #f0847a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,sans-serif;color:var(--ink);background:#0a0e15;overflow:hidden;-webkit-font-smoothing:antialiased}.app{position:fixed;top:0;right:0;bottom:0;left:0}.scene{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene-layer{position:absolute;top:0;right:0;bottom:0;left:0;animation:fadein 3.2s ease both}@keyframes fadein{0%{opacity:0}to{opacity:1}}.scene-img{position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;width:108%;height:108%;object-fit:cover}.kb-a{animation-name:kenburns-a;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.kb-b{animation-name:kenburns-b;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}@keyframes kenburns-a{0%{transform:scale(1) translate(0)}to{transform:scale(1.07) translate(-1.2%,-.8%)}}@keyframes kenburns-b{0%{transform:scale(1.07) translate(1%,.6%)}to{transform:scale(1) translate(0)}}.scene-layer .scene-img{animation-fill-mode:both}.scene-layer:has(.scene-img){will-change:opacity}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,10,16,.55) 0%,rgba(6,10,16,.18) 12%,transparent 22%),linear-gradient(0deg,rgba(6,10,16,.55) 0%,transparent 28%)}.flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:#eaf2ff;mix-blend-mode:screen;transition:opacity 90ms ease-out}.scene-stale{filter:grayscale(.45) contrast(.86) brightness(.92)}.hud-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:26px 32px;pointer-events:none;text-shadow:0 1px 12px rgba(0,0,0,.45)}.machine{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:6px}.summary{font-size:22px;font-weight:600;letter-spacing:-.01em}.clockbox{text-align:right}.clock{font-size:34px;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:.04em}.suntimes{font-size:12px;color:var(--ink-dim);margin-top:4px;letter-spacing:.06em}.hud-bottom{position:absolute;left:0;right:0;bottom:0;display:flex;gap:10px;flex-wrap:wrap;align-content:flex-end;align-items:stretch;padding:22px 32px;max-height:55vh}.card{flex:0 0 auto;background:var(--glass);border:1px solid var(--glass-border);border-radius:14px;padding:12px 16px;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);min-width:150px;max-width:260px;box-shadow:0 8px 28px #00000047}.card-title{font-size:13.5px;font-weight:600;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub{font-size:11.5px;color:var(--ink-dim);margin-top:4px;letter-spacing:.02em}.card.warn{border-color:#e4c47c8c}.card.warn .card-title{color:var(--warn)}.card.bad{border-color:#f0847a99}.card.bad .card-title{color:var(--bad)}.card.slim{padding:9px 14px;min-width:unset}.card.dim .card-sub{color:#ffffff80}.dot{font-size:10px;vertical-align:1px;margin-right:2px}.dot.ok{color:#9fd8a4}.dot.warn{color:var(--warn)}.dot.bad{color:var(--bad)}.dot.dim{color:#fff6}.card .dot.ok{animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.card.clickable{cursor:pointer;transition:border-color .2s,transform .15s}.card.clickable:hover{border-color:#ffffff61;transform:translateY(-2px)}.auto-rail{position:absolute;top:118px;right:32px;display:flex;flex-direction:column;gap:4px;align-items:stretch;background:#0c121a4d;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:8px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);max-width:230px}.rail-label{background:none;border:none;cursor:pointer;text-align:left;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);padding:2px 6px 5px;font-family:inherit}.rail-label:hover{color:var(--ink)}.rail-item{display:flex;align-items:baseline;gap:7px;background:none;border:none;border-radius:8px;padding:5px 8px;cursor:pointer;text-align:left;color:var(--ink-dim);font-size:11.5px;font-family:inherit;transition:background .15s}.rail-item:hover{background:#ffffff17;color:var(--ink)}.rail-dot{font-size:8.5px;flex-shrink:0}.rail-dot.ok{color:#9fd8a4}.rail-dot.warn{color:var(--warn)}.rail-dot.bad{color:var(--bad)}.rail-dot.dim{color:#ffffff59}.rail-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-detail{font-size:10px;flex-shrink:0;margin-left:auto;padding-left:8px}.rail-item.problem{background:#ffffff0f}.rail-item.warn,.rail-item.warn .rail-detail{color:var(--warn)}.rail-item.bad{color:var(--bad);animation:pulse 2s ease-in-out infinite}.rail-item.bad .rail-detail{color:var(--bad)}@media(max-width:640px){.auto-rail{top:88px;right:16px;left:auto;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 32px);gap:2px}.rail-label{display:none}.rail-item{padding:4px 7px;font-size:10.5px}.rail-detail{display:none}}.machine-bar{position:absolute;top:118px;left:32px;display:flex;flex-direction:column;gap:4px;align-items:stretch;background:#0c121a4d;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:8px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);max-width:220px}.mtab{display:flex;align-items:center;gap:7px;background:none;border:1px solid transparent;border-radius:8px;padding:6px 9px;cursor:pointer;text-align:left;color:var(--ink-dim);font-size:12px;font-family:inherit;transition:background .15s,border-color .15s}.mtab:hover{background:#ffffff17;color:var(--ink)}.mtab.active{background:#ffffff1a;border-color:var(--glass-border);color:var(--ink)}.mtab-dot{font-size:8px;flex-shrink:0}.mtab-dot.on{color:#9fd8a4}.mtab-dot.off{color:#ffffff4d}.mtab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtab-wx{margin-left:auto;padding-left:8px;font-size:12px;flex-shrink:0}.mtab-empty{font-size:11px;color:var(--ink-dim);padding:4px 6px}@media(max-width:640px){.machine-bar{top:88px;left:16px;flex-direction:row;flex-wrap:wrap;max-width:55vw;gap:2px}.mtab{padding:4px 7px;font-size:10.5px}.mtab-wx{padding-left:5px}}.panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080e59}.panel{position:fixed;top:0;right:0;bottom:0;width:min(480px,92vw);background:#0a0f17b8;backdrop-filter:blur(22px) saturate(1.1);-webkit-backdrop-filter:blur(22px) saturate(1.1);border-left:1px solid var(--glass-border);padding:22px 22px 18px;display:flex;flex-direction:column;animation:slidein .24s ease;overflow:hidden}@keyframes slidein{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.panel-close{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--ink-dim);font-size:15px;cursor:pointer;padding:6px}.panel-close:hover{color:var(--ink)}.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-right:30px}.panel-title{font-size:16px;font-weight:650}.panel-sub{display:block;font-size:11.5px;font-weight:400;color:var(--ink-dim);margin-top:3px}.panel-btn{background:#ffffff14;border:1px solid var(--glass-border);color:var(--ink);border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer;flex-shrink:0}.panel-btn:hover{background:#ffffff24}.rows{overflow-y:auto;display:flex;flex-direction:column;gap:6px}.row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:11px 13px;cursor:pointer;text-align:left;color:var(--ink);font-size:12.5px}.row:hover{background:#ffffff1a}.row-main{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-side{color:var(--ink-dim);font-size:11px;flex-shrink:0}.row.error .row-main,.row.dead .row-main{color:var(--bad)}.row.waiting .row-main,.row.failing .row-main{color:var(--warn)}.log{overflow-y:auto;font-size:11px;line-height:1.55;font-family:ui-monospace,SF Mono,Menlo,monospace}.log-line{display:flex;gap:8px;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.045)}.log-t{color:#ffffff59;flex-shrink:0}.log-k{color:#ffffff73;width:58px;flex-shrink:0}.log-x{color:var(--ink-dim);word-break:break-all}.log-line.user .log-x{color:var(--ink)}.log-line.assistant .log-x{color:#c7dbeecc}.log-line.tool .log-x{color:#ffffff80}.log-line.error .log-x,.log-line.error .log-k{color:var(--bad)}.log-line.dim .log-x{color:#fff6}.log-section{margin:10px 0 4px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}.hud-bottom.mode-compact{gap:8px;padding:16px 24px}.hud-bottom.mode-compact .card{min-width:132px;max-width:200px;padding:10px 12px}.hud-bottom.mode-compact .card-title{font-size:12.5px}.hud-bottom.mode-compact .card-sub{font-size:10.5px}.hud-bottom.mode-chip{gap:6px;padding:12px 16px}.hud-bottom.mode-chip .card{min-width:unset;max-width:150px;padding:8px 12px;border-radius:10px}.hud-bottom.mode-chip .card-title{font-size:12px}@media(max-width:760px){.hud-top{padding:16px 18px}.summary{font-size:16px}.clock{font-size:24px}.suntimes{font-size:10px}}@media(prefers-reduced-motion:reduce){.scene-img{animation:none!important}.dot.ok{animation:none}}
