:root{--bg: #0f172a;--surface: #111827;--surface-2: #1f2937;--surface-3: #2b364a;--text: #e5e7eb;--text-muted: #94a3b8;--accent: #f59e0b;--error: #f87171;--success: #34d399;--border-muted: rgb(148 163 184 / 22%);--border-strong: rgb(148 163 184 / 36%);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:IBM Plex Sans,Inter,sans-serif;background:radial-gradient(circle at 20% 10%,#1d4ed8 0%,transparent 35%),radial-gradient(circle at 82% 88%,#0f766e 0%,transparent 34%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,pre,textarea{font-family:IBM Plex Mono,SFMono-Regular,Menlo,monospace}a{color:#93c5fd;text-decoration:none;transition:color .16s ease}a:hover{text-decoration:underline;color:#bfdbfe}button{border:0;border-radius:10px;background:var(--accent);color:#111827;font-weight:600;padding:10px 14px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}button:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 8px 18px #0f172a59}button:disabled{opacity:.65;cursor:not-allowed}button.warning{background:#f87171;color:#fff}button.secondary{background:#334155;color:#e2e8f0}textarea,input{width:100%;background:#0b1220;color:var(--text);border:1px solid var(--surface-3);border-radius:10px;padding:10px;transition:border-color .16s ease,box-shadow .16s ease}textarea:focus,input:focus{outline:none;border-color:#93c5fdd9;box-shadow:0 0 0 3px #3b82f633}.app-root{min-height:100vh;display:flex;flex-direction:column}.route-progress{position:fixed;inset:0 0 auto;height:3px;z-index:80;pointer-events:none;opacity:0;transition:opacity .16s ease}.route-progress.visible{opacity:1}.route-progress-fill{display:block;width:100%;height:100%;transform-origin:left center;background:linear-gradient(90deg,#f59e0b,#fb7185,#38bdf8);box-shadow:0 0 10px #38bdf873;transition:transform .22s ease-out}.app-header{position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172acc;border-bottom:1px solid rgb(148 163 184 / 20%);display:flex;align-items:center;justify-content:space-between;padding:calc(12px + var(--safe-top)) 16px 12px;gap:10px;flex-wrap:wrap}.app-header-title{display:flex;align-items:center;gap:10px}.app-header-title h1{margin:0;font-size:20px}.badge{border:1px solid rgb(148 163 184 / 35%);border-radius:999px;font-size:12px;color:var(--text-muted);padding:3px 8px}.badge.status.online{border-color:#34d39973;color:#6ee7b7}.badge.status.connecting,.badge.status.closing{border-color:#f59e0b73;color:#fcd34d}.badge.status.offline{border-color:#f8717173;color:#fca5a5}.badge.status.stale{border-color:#fbbf247f;color:#fde68a}.app-nav{display:flex;align-items:center;gap:12px}.app-nav-actions{display:flex;align-items:center;gap:10px}.app-header-status{margin-left:auto;display:flex;align-items:center;gap:8px}.status-popover{position:relative}.status-popover>summary{list-style:none}.status-popover>summary::-webkit-details-marker{display:none}.status-trigger{border:1px solid rgb(148 163 184 / 35%);border-radius:999px;background:#0f172ad1;color:#dbeafe;padding:4px 10px;display:inline-flex;align-items:center;gap:8px;min-height:30px}.status-trigger.online{border-color:#34d39973}.status-trigger.offline{border-color:#f8717173}.status-trigger.stale{border-color:#fbbf247f}.status-dot{width:8px;height:8px;border-radius:999px;flex:0 0 auto}.status-dot.online{background:#34d399}.status-dot.offline{background:#f87171}.status-trigger-label{font-size:12px;font-weight:600}.status-trigger-meta{font-size:11px;color:var(--text-muted)}.status-popover-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(280px,calc(100vw - 24px));border:1px solid rgb(148 163 184 / 28%);background:#0f172af5;border-radius:10px;padding:10px;display:grid;gap:6px;box-shadow:0 12px 28px #02061773;z-index:30}.status-popover-panel p{margin:0;font-size:13px;color:var(--text-muted)}.status-timeline{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-muted);display:grid;gap:6px}.status-line{display:grid;grid-template-columns:62px 1fr auto;gap:8px;align-items:center;font-size:12px}.status-line-label{color:var(--text-muted)}.status-line-value{color:#dbeafe}.status-line-time{color:var(--text-muted)}.status-copy-button{margin-top:4px;width:100%}.app-nav a.active{color:#fff}.app-nav a{display:inline-flex;align-items:center;min-height:36px}.link-button{background:transparent;color:#93c5fd;border:0;padding:0}.app-nav-actions .link-button{padding:6px 8px;border-radius:8px;min-height:34px}.app-nav-actions .link-button:hover{background:#3b82f61f}details summary{cursor:pointer;color:#bfdbfe}.app-main{width:min(980px,100%);margin:0 auto;padding:20px 16px calc(40px + var(--safe-bottom))}.install-banner{border-top:1px solid rgb(148 163 184 / 20%);border-bottom:1px solid rgb(148 163 184 / 20%);background:#1e293bbf;color:#bfdbfe;font-size:13px;padding:8px 16px}.offline-banner{border-top:1px solid rgb(248 113 113 / 35%);border-bottom:1px solid rgb(248 113 113 / 35%);background:#7f1d1d59;color:#fecaca;font-size:13px;padding:8px 16px}.diagnostics-card{gap:12px}.diagnostics-title h2,.diagnostics-title p{margin:0}.diagnostics-section{border:1px solid var(--border-muted);border-radius:12px;background:#0f172a7a;padding:10px 12px;overflow:clip}.diagnostics-section summary{display:flex;align-items:center;justify-content:space-between;font-weight:600}.diagnostics-section summary:after{content:"+";color:var(--text-muted)}.diagnostics-section[open] summary:after{content:"−"}.diagnostics-section>:not(summary){margin-top:10px;animation:diagnostics-reveal .18s ease}@keyframes diagnostics-reveal{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.diagnostics-health{border:1px solid rgb(148 163 184 / 22%);border-radius:12px;background:linear-gradient(120deg,#0f172ab3,#1e293b7a);padding:10px 12px;display:grid;gap:10px}.diagnostics-health-head{align-items:center}.health-score-pill{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;letter-spacing:.02em;border:1px solid rgb(148 163 184 / 30%)}.health-score-pill.stable{color:#bbf7d0;border-color:#34d39973;background:#064e3b5c}.health-score-pill.degraded{color:#fde68a;border-color:#fbbf2473;background:#78350f5c}.health-score-pill.critical{color:#fecaca;border-color:#f8717173;background:#7f1d1d5c}.health-score-value{font-size:22px;line-height:1}.health-score-meter{height:8px;border-radius:999px;background:#334155a8;overflow:hidden}.health-score-fill{display:block;height:100%;border-radius:inherit;transition:width .22s ease}.health-score-fill.stable{background:linear-gradient(90deg,#34d399,#10b981)}.health-score-fill.degraded{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.health-score-fill.critical{background:linear-gradient(90deg,#fb7185,#ef4444)}.diagnostics-signal-pills{display:flex;flex-wrap:wrap;gap:8px}.signal-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid rgb(148 163 184 / 30%);background:#0f172aa8;padding:4px 10px;font-size:12px}.signal-pill strong{font-size:11px;letter-spacing:.03em;text-transform:uppercase}.signal-pill.good{border-color:#34d3995c;color:#bbf7d0}.signal-pill.warn{border-color:#fbbf245c;color:#fde68a}.signal-pill.danger{border-color:#f871715c;color:#fecaca}.diagnostics-meta{gap:6px}.diagnostics-bars{display:grid;gap:10px}.diag-chart-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.diag-chart-card{border:1px solid var(--border-muted);border-radius:10px;background:#0f172a8c;padding:9px 10px;display:grid;gap:8px}.diag-sparkline{width:100%;height:64px;display:block}.diag-sparkline-baseline{stroke:#94a3b859;stroke-width:1}.diag-sparkline-line{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.diag-sparkline-line.tone-info{stroke:#60a5fa}.diag-sparkline-line.tone-warn{stroke:#f59e0b}.diag-sparkline-line.tone-danger{stroke:#fb7185}.diag-bar-row{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:8px}.diag-bar{height:8px;border-radius:999px;background:#334155a6;overflow:hidden}.diag-fill{display:block;height:100%;border-radius:inherit;transition:width .22s ease}.diag-fill.tone-info{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.diag-fill.tone-warn{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.diag-fill.tone-danger{background:linear-gradient(90deg,#fb7185,#f43f5e)}.diagnostics-events{gap:8px}.diagnostics-event{border:1px solid rgb(148 163 184 / 20%);border-radius:10px;background:#0f172a9e;padding:10px;display:grid;gap:8px}.diagnostics-event p{margin:0}.diagnostics-event.is-neutral{border-color:#94a3b83d}.diagnostics-event.is-warn{border-color:#fbbf245c}.diagnostics-event.is-danger{border-color:#f8717166}.diagnostics-event-head{align-items:center}.diagnostics-event-payload{border:1px solid rgb(148 163 184 / 20%);border-radius:8px;background:#0206174d;padding:8px 10px}.diagnostics-event-payload summary{font-size:12px;color:var(--text-muted)}.diagnostics-event-payload pre{margin:8px 0 0;white-space:pre-wrap;overflow-x:auto}body[data-display-mode=standalone] .app-header{background:#020617e5}.page{display:grid;gap:16px}.pull-refresh-page{overscroll-behavior-y:contain}.pull-refresh-indicator{height:0;overflow:hidden;display:flex;justify-content:center;align-items:flex-end;transition:height .14s ease}.pull-refresh-indicator.is-refreshing{transition-duration:.22s}.pull-refresh-chip{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1;border:1px solid rgb(148 163 184 / 35%);background:#0f172ae0;border-radius:999px;padding:6px 10px;margin-bottom:4px}.pull-refresh-spinner{width:12px;height:12px;border-radius:999px;border:2px solid rgb(148 163 184 / 38%);border-top-color:#38bdf8;transition:transform 80ms linear}.pull-refresh-spinner.is-spinning{animation:spin .85s linear infinite}.login-page{margin-top:20px;gap:14px}.login-hero{background:linear-gradient(125deg,#1e293beb,#1e3a8a47,#111827e0)}.login-title{display:grid;gap:6px}.login-title h2{margin:0}.login-kicker{display:inline-flex;width:fit-content;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#bfdbfe;border:1px solid rgb(147 197 253 / 35%);border-radius:999px;padding:3px 8px}.login-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.login-card{gap:14px}.login-card-primary{border-color:#93c5fd73;box-shadow:inset 0 0 0 1px #93c5fd29}.login-card-head{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.login-card-head h3{margin:0 0 4px}.login-icon{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#dbeafe;border:1px solid rgb(147 197 253 / 35%);background:#1e293bcc}.login-primary-button{background:linear-gradient(120deg,#f59e0b,#f97316)}.device-key-panel{border:1px solid rgb(148 163 184 / 26%);border-radius:10px;background:#0f172a6b;padding:10px 12px;display:grid;gap:4px}.device-key-title{font-size:12px}.login-footnote{text-align:center;font-size:13px}.cli-install-page{margin-top:20px}.cli-install-hero h2{margin:0}.cli-install-back-link{align-self:center;font-size:13px}.cli-install-list{margin:0;padding-left:20px;display:grid;gap:12px}.cli-install-list li{display:grid;gap:8px}.cli-install-list p,.cli-install-code-block{margin:0}.qr-approve-card{width:min(640px,100%);margin:0 auto}.qr-head{display:flex;align-items:center;gap:10px}.qr-head h1{margin:0;font-size:24px}.qr-state-badge{border-radius:999px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#dbeafe;border:1px solid rgb(147 197 253 / 35%);background:#1e293bc7;padding:4px 9px}.qr-progress{border:1px dashed rgb(148 163 184 / 28%);border-radius:12px;background:#0f172a73;padding:10px}.loading-state-inline{place-items:center;text-align:center}.loading-state-inline .loading-skeleton{width:min(280px,100%)}.scan-surface{position:relative;width:min(500px,100%);margin:0 auto;border-radius:12px;overflow:hidden;border:1px solid rgb(148 163 184 / 28%);background:#02061799}.qr-reader{width:100%;min-height:280px}.camera-permission-warning{padding:16px;margin:16px 0;background:linear-gradient(135deg,#b453092e,#d977061f);border:1px solid rgb(251 146 60 / 35%);border-radius:10px}.camera-permission-warning p{margin:0 0 12px;color:#fed7aa}.camera-permission-warning strong{color:#fef3c7;font-size:15px}.camera-help-steps{margin:12px 0 0;padding-left:24px;color:#fde68a;font-size:13px;line-height:1.6}.camera-help-steps li{margin:6px 0}.scan-frame{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border:2px solid rgb(59 130 246 / 58%);border-radius:12px;pointer-events:none}.scan-frame:after{content:"";position:absolute;left:6%;width:88%;height:2px;top:12%;background:linear-gradient(90deg,transparent,rgb(56 189 248),transparent);box-shadow:0 0 14px #38bdf8cc;animation:scan-sweep 1.8s ease-in-out infinite}.qr-success-card{place-items:center;text-align:center}.qr-success-icon{width:58px;height:58px;border-radius:999px;display:grid;place-items:center;font-size:14px;font-weight:800;color:#064e3b;background:#6ee7b7;box-shadow:0 0 #34d39973;animation:success-pulse 1.5s ease-out infinite}@keyframes scan-sweep{0%{top:10%;opacity:.4}50%{top:88%;opacity:1}to{top:10%;opacity:.4}}@keyframes success-pulse{0%{box-shadow:0 0 #34d39973}to{box-shadow:0 0 0 14px #34d39900}}@keyframes active-outline{0%{opacity:.1}50%{opacity:.45}to{opacity:.1}}@keyframes activity-pulse{0%{box-shadow:0 0 #34d39999}to{box-shadow:0 0 0 8px #34d39900}}.card{background:linear-gradient(180deg,#111827f2,#111827e0);border:1px solid var(--border-muted);border-radius:14px;padding:16px;transition:border-color .18s ease,box-shadow .18s ease}.card:hover{border-color:var(--border-strong);box-shadow:0 12px 28px #02061752}.stack{display:grid;gap:12px}.row{display:flex}.row.align-center{align-items:center}.row.between{justify-content:space-between;align-items:center}.row.gap-sm{gap:8px}.muted{margin:0;color:var(--text-muted)}.error{margin:0;color:var(--error)}.success{margin:0;color:var(--success)}.divider{display:flex;align-items:center;text-align:center;color:var(--text-muted);font-size:14px;margin:8px 0}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid rgb(148 163 184 / 20%)}.divider:before{margin-right:12px}.divider:after{margin-left:12px}.loading-spinner{display:flex;justify-content:center;padding:20px}.spinner{width:40px;height:40px;border:4px solid rgb(148 163 184 / 20%);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pill{border-radius:999px;font-size:12px;padding:2px 8px}.pill.online{color:#064e3b;background:#6ee7b7}.pill.offline{color:#7f1d1d;background:#fca5a5}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.stat{background:linear-gradient(130deg,#1e293be5,#334155d9);border:1px solid rgb(148 163 184 / 20%);border-radius:12px;padding:10px;display:grid;gap:6px;transition:transform .16s ease,border-color .16s ease}.stat:hover{transform:translateY(-1px);border-color:#93c5fd59}.stat-head{display:flex;align-items:center;gap:8px}.stat-icon{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.04em;color:#e2e8f0;border:1px solid rgb(148 163 184 / 35%)}.stat-sessions .stat-icon{background:linear-gradient(135deg,#3b82f666,#2563eb47);border-color:#60a5fa73}.stat-machines .stat-icon{background:linear-gradient(135deg,#10b98166,#05966942);border-color:#34d39973}.stat-online .stat-icon{background:linear-gradient(135deg,#f59e0b66,#d9770647);border-color:#fbbf2473}.stat strong{font-size:22px;line-height:1}.stat .label{font-size:12px;color:var(--text-muted)}.list{margin:0;list-style:none;padding:0}.list-item{border:1px solid rgb(148 163 184 / 20%);background:#0f172a99;border-radius:10px;padding:12px;display:flex;justify-content:space-between;gap:10px;align-items:center;transition:border-color .16s ease,transform .16s ease,background .16s ease}.list-item:hover{transform:translateY(-1px);border-color:#93c5fd59}.entity-list{display:grid;gap:10px}.entity-card{background:linear-gradient(180deg,#0f172ab3,#0f172a94);position:relative}.entity-card.is-active{border-color:#34d39973;box-shadow:inset 0 0 0 1px #34d3992e}.entity-card.is-active:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:10px;border:1px solid rgb(52 211 153 / 26%);pointer-events:none;animation:active-outline 1.8s ease-out infinite}.entity-main p{margin:0}.entity-heading{min-height:20px}.entity-icon{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:.05em}.entity-icon.session{color:#bfdbfe;border:1px solid rgb(59 130 246 / 40%);background:#1e3a8a40}.entity-icon.machine{color:#bbf7d0;border:1px solid rgb(16 185 129 / 38%);background:#0596693d}.entity-actions{min-width:132px;justify-content:flex-end}.activity-dot{width:8px;height:8px;border-radius:999px}.activity-dot.online{background:#34d399;box-shadow:0 0 #34d39999;animation:activity-pulse 1.5s ease-out infinite}.activity-dot.offline{background:#f87171}.entity-link{font-weight:600;display:inline-flex;align-items:center;min-height:32px;padding:4px 8px;border-radius:8px}.entity-link:hover{background:#3b82f61f;text-decoration:none}.empty-state{border:1px dashed rgb(148 163 184 / 32%);border-radius:12px;background:#0f172a7f;padding:16px;display:grid;gap:6px}.empty-state h3,.empty-state h4,.empty-state p{margin:0}.empty-state-hero{place-items:center;text-align:center;gap:8px}.empty-state-icon{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#dbeafe;border:1px solid rgb(147 197 253 / 42%);background:#1e3a8a42}.empty-state-link{margin-top:2px}.machine-title{gap:4px}.machine-title h2{margin:0}.machine-meta-grid{display:grid;gap:8px}.machine-meta-grid p{margin:0}.action-group{flex-wrap:wrap}.json-panel{border:1px solid rgb(148 163 184 / 20%);border-radius:10px;background:#0f172a6b;padding:10px 12px}.json-panel summary{font-weight:600;text-decoration:none}.json-panel pre{margin:10px 0 0;max-height:240px;overflow:auto;white-space:pre-wrap}.machine-form-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.input-with-prefix{position:relative}.input-prefix{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--text-muted);pointer-events:none}.input-with-prefix input{padding-left:58px}.daemon-header{align-items:flex-start}.daemon-session-list{display:grid;gap:10px}.daemon-session-card{border:1px solid rgb(148 163 184 / 20%);background:#0f172a99;border-radius:12px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.daemon-session-actions{justify-items:end;gap:8px}.daemon-session-actions .entity-link{min-height:30px}.daemon-session-card.is-running{border-color:#34d3996b;box-shadow:inset 0 0 0 1px #34d39926}.daemon-session-card.is-idle{border-color:#f8717157}.daemon-session-main p{margin:0}.danger-zone-card{border-color:#f8717159;background:linear-gradient(180deg,#401010d1,#240a0ac7)}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617b3;display:grid;place-items:center;padding:16px;z-index:40}.confirm-dialog{width:min(460px,100%);animation:fade-up .18s ease}.confirm-dialog h3{margin:0}.confirm-safeguard{gap:8px}.confirm-safeguard label{font-size:12px}.confirm-actions{justify-content:flex-end}.toast-stack{position:fixed;right:16px;top:calc(16px + var(--safe-top));width:min(360px,calc(100vw - 24px));display:grid;gap:10px;z-index:60}.toast-card{border:1px solid rgb(148 163 184 / 30%);border-radius:12px;padding:10px 12px;background:#0f172af2;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;animation:fade-up .18s ease}.toast-card strong{display:block;margin-bottom:2px}.toast-card p{margin:0;color:var(--text-muted);font-size:13px}.toast-card.tone-success{border-color:#34d3997a}.toast-card.tone-error{border-color:#f871717a}.toast-card.tone-info{border-color:#93c5fd73}.toast-dismiss{border:0;background:transparent;color:var(--text-muted);font-size:18px;padding:0;min-width:22px;min-height:22px;box-shadow:none;transform:none;filter:none}.toast-dismiss:hover{color:#fff;box-shadow:none;transform:none;filter:none}.push-log-panel{border:1px solid var(--border-muted);border-radius:10px;background:#0f172a61;padding:8px 10px}.push-log-item{border:1px solid var(--border-muted);border-radius:9px;padding:8px 10px;background:#0f172a8c;display:grid;gap:4px}.push-log-item p{margin:0}.push-log-item.tone-success{border-color:#34d3995c}.push-log-item.tone-error{border-color:#f871715c}.push-log-item.tone-info{border-color:#93c5fd5c}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-item{border:1px solid rgb(148 163 184 / 20%);border-radius:10px;padding:10px;background:#0f172a99}.message-item pre{margin:8px 0 0;overflow-x:auto;white-space:pre-wrap}.session-runtime-list{max-height:260px;overflow-y:auto}.session-runtime-strip{position:sticky;top:calc(var(--safe-top) + 62px);z-index:9;border:1px solid rgb(148 163 184 / 28%);border-radius:12px;background:linear-gradient(120deg,#020617eb,#0f172af0);box-shadow:0 14px 24px #0206175c;padding:10px 12px;display:grid;gap:8px}.session-runtime-strip-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.session-runtime-strip-meta{display:flex;flex-wrap:wrap;gap:8px}.session-runtime-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid rgb(148 163 184 / 28%);border-radius:999px;padding:4px 10px;font-size:12px;color:#cbd5e1;background:#0f172ab8}.session-runtime-pill.active{border-color:#34d3996b;color:#bbf7d0;background:#064e3b57}.session-runtime-pill.inactive{border-color:#f8717166;color:#fecaca;background:#7f1d1d4d}.session-runtime-pill.thinking{border-color:#3b82f66b;color:#bfdbfe;background:#1e40af3d}.session-runtime-pill.tool{border-color:#93c5fd57;color:#dbeafe}button.session-runtime-pill{font:inherit;cursor:pointer}button.session-runtime-pill.approval{transition:border-color .16s ease,background-color .16s ease,color .16s ease}button.session-runtime-pill.approval:hover{border-color:#60a5fa85;color:#eff6ff}button.session-runtime-pill.approval.has-pending{border-color:#fb923c73;color:#fed7aa;background:#7c2d1252}button.session-runtime-pill.approval.has-pending:hover{border-color:#fb923c9e;color:#ffedd5}.session-runtime-item{border:1px solid rgb(148 163 184 / 20%);border-radius:10px;padding:10px;background:#0f172a94;display:grid;gap:6px}.runtime-time{font-size:12px}.message-list{list-style:none;margin:0;max-height:500px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;scrollbar-gutter:stable;padding:8px}.message-row{display:flex;width:100%}.message-row-full{width:100%}.message-row-sent{justify-content:flex-end}.message-row-received{justify-content:flex-start}.message-row-system{justify-content:center}.load-more-messages{display:flex;justify-content:center;padding:8px 0;margin-bottom:8px}.load-more-button{background:linear-gradient(135deg,#1e293be5,#1e3a8a59);border:1px solid rgb(59 130 246 / 35%);color:#93c5fd;font-size:12px;font-weight:600;padding:8px 16px;border-radius:999px;cursor:pointer;transition:all .2s ease}.load-more-button:hover:not(:disabled){background:linear-gradient(135deg,#1e3a8a7f,#3b82f640);border-color:#3b82f68c;color:#bfdbfe;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f640}.load-more-button:disabled{opacity:.6;cursor:not-allowed}.load-more-container{display:flex;justify-content:center;padding:16px 0 8px;margin-top:8px;border-top:1px solid rgb(148 163 184 / 15%)}.thinking-indicator{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:12px;background:linear-gradient(135deg,#3b82f61f,#2563eb14);border:1px solid rgb(59 130 246 / 28%);border-radius:10px}.thinking-spinner{width:16px;height:16px;border:2px solid rgb(59 130 246 / 25%);border-top-color:#60a5fa;border-radius:50%;animation:thinking-spin .8s linear infinite}@keyframes thinking-spin{to{transform:rotate(360deg)}}.thinking-text{color:#93c5fd;font-size:13px;font-weight:500}.message-list::-webkit-scrollbar{width:8px}.message-list::-webkit-scrollbar-track{background:#0f172a66;border-radius:4px}.message-list::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:4px;transition:background .2s ease}.message-list::-webkit-scrollbar-thumb:hover{background:#94a3b88c}.message-list-shell{position:relative}.message-new-indicator{position:absolute;right:14px;bottom:14px;border-radius:999px;padding:7px 14px;background:linear-gradient(135deg,#38bdf8,#3b82f6);color:#eff6ff;border:1px solid rgb(191 219 254 / 45%);box-shadow:0 4px 12px #3b82f666,0 0 #3b82f699;font-size:12px;font-weight:600;letter-spacing:.01em;z-index:2;cursor:pointer;transition:all .2s ease;animation:new-message-pulse 2s ease-in-out infinite}.message-new-indicator:hover{transform:translateY(-2px);box-shadow:0 6px 16px #3b82f67f,0 0 #3b82f699}@keyframes new-message-pulse{0%,to{box-shadow:0 4px 12px #3b82f666,0 0 #3b82f699}50%{box-shadow:0 4px 12px #3b82f666,0 0 0 8px #3b82f600}}.message-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.message-filter-chip{border:1px solid rgb(148 163 184 / 28%);background:#0f172a8f;color:var(--text-muted);border-radius:999px;font-size:11px;font-weight:600;padding:4px 10px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,color .16s ease}.message-filter-chip:hover{border-color:#94a3b873;background:#0f172ac2}.message-filter-chip.active{border-color:#3b82f68c;background:#3b82f629;color:#bfdbfe}.message-view-hint{margin:-2px 0 8px;font-size:12px}.message-view-hint-link{font-size:12px;padding:0;min-height:auto}.message-date-group{display:flex;flex-direction:column;gap:8px}.message-date-divider{display:flex;align-items:center;justify-content:center;padding:12px 0;position:relative}.message-date-divider:before,.message-date-divider:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,rgb(148 163 184 / 25%),transparent)}.message-date-divider span{background:linear-gradient(135deg,#1e293bf2,#1e3a8a59);color:#cbd5e1;font-size:11px;font-weight:600;letter-spacing:.03em;padding:5px 14px;border-radius:999px;border:1px solid rgb(148 163 184 / 25%);margin:0 12px;box-shadow:0 2px 8px #0206174d}.message-group-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.message-bubble{max-width:75%;padding:10px 14px;border-radius:16px;position:relative;width:fit-content;animation:message-fade-in .3s ease}@keyframes message-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-bubble:has(.message-code-block),.message-bubble:has(.message-table-wrap){max-width:92%}.message-bubble.sent{align-self:flex-end;max-width:70%;background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid rgb(59 130 246 / 35%);box-shadow:0 2px 8px #2563eb40;color:#fff;border-bottom-right-radius:4px}.message-bubble.received{align-self:flex-start;max-width:80%;background:var(--surface-2);border:1px solid rgb(148 163 184 / 20%);border-bottom-left-radius:4px}.message-bubble.system{align-self:center;background:transparent;border:1px dashed rgb(148 163 184 / 30%);color:var(--text-muted);font-size:13px;max-width:90%;text-align:center}.message-header{display:flex;justify-content:flex-start;align-items:center;gap:8px;margin-bottom:4px}.message-sender{font-size:12px;font-weight:600;opacity:.8}.message-bubble.sent .message-sender{color:#ffffffd9}.message-bubble.received .message-sender{color:var(--accent)}.message-time{font-size:11px;opacity:.6;margin-left:auto}.message-details-toggle{border:1px solid rgb(148 163 184 / 35%);background:#0f172ab8;color:var(--text-muted);border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.02em;padding:2px 8px;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.message-details-toggle:hover{border-color:#94a3b88c;background:#0f172ad1}.message-bubble.sent .message-details-toggle{border-color:#ffffff59;background:#ffffff1f;color:#ffffffeb}.message-bubble.sent .message-details-toggle:hover{border-color:#ffffff8c;background:#fff3}.message-kind-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:10px;line-height:1;letter-spacing:.04em;text-transform:uppercase;font-weight:700;padding:3px 8px;border:1px solid transparent}.message-kind-badge.tool{color:#93c5fd;background:#3b82f62e;border-color:#3b82f647}.message-kind-badge.permission{color:#fcd34d;background:#eab3082e;border-color:#eab30847}.message-kind-badge.thinking{color:#5eead4;background:#14b8a62e;border-color:#14b8a647}.message-kind-badge.lifecycle{color:#a7f3d0;background:#10b9812e;border-color:#10b98147}.message-kind-badge.error{color:#fca5a5;background:#ef444433;border-color:#ef44444d}.message-kind-badge.event{color:#c4b5fd;background:#8b5cf62e;border-color:#8b5cf647}.message-bubble.received.message-kind-tool{border-color:#3b82f659}.message-bubble.received.message-kind-permission{border-color:#eab30859}.message-bubble.received.message-kind-thinking{border-color:#14b8a659}.message-bubble.received.message-kind-lifecycle{border-color:#10b98159}.message-bubble.received.message-kind-error{border-color:#ef444473}.message-bubble.received.message-kind-event{border-color:#8b5cf659}.tool-execution-card{border-width:1px;transition:all .2s ease}.tool-execution-card.pending{border-color:#3b82f66b;background:linear-gradient(135deg,#1e3a8a26,#3b82f614);box-shadow:0 2px 8px #3b82f626}.tool-execution-card.ok{border-color:#34d3996b;background:linear-gradient(135deg,#064e3b26,#34d39914);box-shadow:0 2px 8px #34d39926}.tool-execution-card.error{border-color:#f871717a;background:linear-gradient(135deg,#7f1d1d26,#f8717114);box-shadow:0 2px 8px #f8717126}.tool-execution-payload{border:1px solid rgb(148 163 184 / 24%);border-radius:8px;background:#0206176b;padding:7px 9px}.tool-execution-payload>summary{font-size:12px}.tool-execution-payload+.tool-execution-payload{margin-top:6px}.message-body{word-break:break-word}.message-detail-panel{margin-top:10px;padding:10px;border-radius:10px;border:1px solid rgb(148 163 184 / 28%);background:#0f172aa8;display:grid;gap:8px}.message-detail-grid{margin:0;display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}.message-detail-grid>div{min-width:0}.message-detail-grid dt{font-size:10px;text-transform:uppercase;letter-spacing:.04em;opacity:.72;margin:0}.message-detail-grid dd{margin:2px 0 0;font-size:12px;line-height:1.35;word-break:break-word}.message-detail-json{margin:0;font-size:11px;line-height:1.4;white-space:pre-wrap;max-height:180px;overflow:auto;padding:8px;border-radius:8px;border:1px solid rgb(148 163 184 / 26%);background:#02061794}.message-text{margin:0;line-height:1.58;font-size:14px;color:#e2e8f0;word-break:break-word}.message-heading{margin:10px 0 8px;line-height:1.35;font-weight:700;letter-spacing:.01em;color:#f8fafc}.message-h1{font-size:1.12rem}.message-h2{font-size:1.04rem}.message-h3{font-size:.99rem}.message-h4,.message-h5,.message-h6{font-size:.94rem}.message-hr{margin:12px 0;border:0;border-top:1px solid rgb(148 163 184 / 34%)}.message-relation{margin:8px 0 0;font-size:11px;line-height:1.35;border-left:2px solid rgb(148 163 184 / 40%);padding-left:8px;opacity:.92}.message-relation.pending{color:#fcd34d;border-left-color:#eab30899}.message-relation.success{color:#86efac;border-left-color:#22c55e99}.message-relation.error{color:#fca5a5;border-left-color:#ef4444b3}.message-relation.info{color:#93c5fd;border-left-color:#3b82f699}.message-text>*:first-child{margin-top:0}.message-text>*:last-child{margin-bottom:0}.message-text p,.message-text li{white-space:pre-wrap}.message-text p{margin:0 0 10px}.message-text p:last-child{margin-bottom:0}.message-text pre{margin:8px 0 0;padding:0;border-radius:10px;border:1px solid rgb(148 163 184 / 24%);background:#0f172ab8;overflow-x:auto}.message-code-block{margin:10px 0 0;border:1px solid rgb(148 163 184 / 28%);box-shadow:0 2px 8px #0206174d;transition:border-color .18s ease,box-shadow .18s ease}.message-code-block:hover{border-color:#94a3b86b;box-shadow:0 4px 12px #0206176b}.message-code-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px 8px;border-bottom:1px solid rgb(148 163 184 / 22%);background:#0f172ae0}.message-code-lang{font-size:11px;color:#cbd5e1;text-transform:lowercase;font-weight:600;letter-spacing:.02em;opacity:.8}.message-code-copy{font-size:11px;border-radius:6px;padding:5px 10px;background:#3b82f626;border:1px solid rgb(59 130 246 / 30%);color:#93c5fd;transition:all .2s ease;font-weight:600;letter-spacing:.01em}.message-code-copy:hover{background:#3b82f640;border-color:#3b82f67f;color:#bfdbfe;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.message-code-block>code{display:block;padding:11px 13px;white-space:pre;line-height:1.55;font-size:12.5px;background:#020617eb;color:#e5e7eb}.message-code-block>code[data-lang=javascript],.message-code-block>code[data-lang=typescript],.message-code-block>code[data-lang=jsx],.message-code-block>code[data-lang=tsx]{color:#fbbf24}.message-code-block>code[data-lang=python]{color:#60a5fa}.message-code-block>code[data-lang=rust],.message-code-block>code[data-lang=go]{color:#fb923c}.message-code-block>code[data-lang=json]{color:#34d399}.message-code-block>code[data-lang=css],.message-code-block>code[data-lang=scss]{color:#a78bfa}.message-code-block>code[data-lang=html],.message-code-block>code[data-lang=xml]{color:#f87171}.message-code-block>code[data-lang=bash],.message-code-block>code[data-lang=shell],.message-code-block>code[data-lang=sh]{color:#86efac}.message-text code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.92em}.message-text del{opacity:.72;text-decoration-thickness:1.4px}.message-text :not(pre)>code{padding:2px 7px;border-radius:6px;background:#1e293bb8;border:1px solid rgb(148 163 184 / 26%);font-size:.9em;font-weight:550}.message-text a{color:#7dd3fc;text-decoration:none;position:relative;transition:color .2s ease}.message-text a:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .25s ease}.message-text a:hover{color:#bae6fd}.message-text a:hover:after{transform:scaleX(1);transform-origin:left}.message-text ul,.message-text ol{margin:8px 0 0;padding-left:22px}.message-text ul li,.message-text ol li{margin:5px 0;padding-left:4px}.message-text ul li::marker{color:#60a5fa}.message-text ol li::marker{color:#60a5fa;font-weight:600}.message-task-list{margin:6px 0 0;padding-left:0;list-style:none;display:grid;gap:8px}.message-task-item{display:flex;align-items:flex-start;gap:10px;padding:6px 8px;border-radius:8px;transition:background .15s ease}.message-task-item:hover{background:#3b82f614}.message-task-item input{width:16px;height:16px;margin-top:2px;accent-color:#60a5fa;cursor:pointer;border-radius:4px}.message-task-item input:checked+span{opacity:.7;text-decoration:line-through}.message-blockquote{margin:8px 0 0;padding:10px 12px;border-left:3px solid rgb(56 189 248 / 55%);color:#dbeafe;background:#0e74901a;border-radius:0 8px 8px 0}.message-blockquote p+p{margin-top:6px}.message-table-wrap{margin-top:8px;overflow-x:auto;border-radius:10px;border:1px solid rgb(148 163 184 / 22%);box-shadow:0 1px 6px #0206173d}.message-table{width:100%;border-collapse:collapse;min-width:320px;font-size:12px}.message-table th,.message-table td{border:1px solid rgb(148 163 184 / 24%);padding:8px 10px;vertical-align:top;transition:background .15s ease}.message-bubble.sent .message-text{color:#eff6ff}.message-bubble.sent .message-heading{color:#f8fbff}.message-bubble.sent .message-hr{border-top-color:#ffffff5c}.message-bubble.sent .message-text a{color:#e0f2fe}.message-bubble.sent .message-text :not(pre)>code{background:#ffffff24;border-color:#ffffff3d;color:#f8fafc}.message-table th{background:linear-gradient(180deg,#1e293bd9,#1e293bb8);color:#e2e8f0;font-weight:600;text-align:left;position:sticky;top:0;z-index:1}.message-table tbody tr:nth-child(2n){background:#1e293b40}.message-table tbody tr:hover{background:#3b82f61f}.message-json{margin:0;font-size:12px;white-space:pre-wrap;overflow-x:auto;opacity:.9}.message-bubble.system .message-header{justify-content:center}.message-bubble.system .message-sender{display:none}.message-context-menu{position:fixed;background:linear-gradient(135deg,#1e293bfa,#0f172afa);border:1px solid rgb(148 163 184 / 35%);border-radius:12px;padding:6px;box-shadow:0 8px 24px #02061799,0 0 0 1px #94a3b81a;z-index:100;min-width:160px;animation:context-menu-appear .15s ease;transform-origin:top left}@keyframes context-menu-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.message-context-menu button{width:100%;background:transparent;border:0;border-radius:8px;padding:10px 12px;text-align:left;color:#e5e7eb;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease;display:flex;align-items:center;gap:8px;min-height:auto}.message-context-menu button:hover{background:#3b82f626;transform:none;box-shadow:none;filter:none}.message-context-menu button:active{background:#3b82f640}.chat-input-card{position:sticky;bottom:0;background:linear-gradient(180deg,#111827f2,#111827fa);border:1px solid rgb(148 163 184 / 20%);border-radius:14px;padding:12px 16px;margin-top:auto}.session-approval-fab{position:fixed;right:16px;bottom:calc(88px + var(--safe-bottom));z-index:18;display:inline-flex;align-items:center;gap:8px;border:1px solid rgb(251 146 60 / 60%);border-radius:999px;padding:8px 12px;background:linear-gradient(135deg,#9a3412eb,#c2410ce5);color:#fff7ed;font-size:12px;font-weight:600;box-shadow:0 8px 24px #7c2d1273;cursor:pointer;transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease}.session-approval-fab:hover{transform:translateY(-2px);border-color:#fed7aac2;box-shadow:0 10px 28px #7c2d128c}.session-approval-fab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ffedd53d;border:1px solid rgb(255 237 213 / 40%);color:#ffedd5;font-size:11px;line-height:1}.control-warning{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin-bottom:12px;background:linear-gradient(135deg,#b453092e,#d977061f);border:1px solid rgb(251 146 60 / 35%);border-radius:10px;animation:warning-pulse 2s ease-in-out infinite}@keyframes warning-pulse{0%,to{box-shadow:0 0 #fb923c66}50%{box-shadow:0 0 0 4px #fb923c00}}.control-warning-icon{font-size:20px;line-height:1;flex-shrink:0}.control-warning-text{flex:1}.control-warning-text strong{display:block;color:#fed7aa;font-size:13px;font-weight:600;margin-bottom:4px}.control-warning-text p{color:#fde68a;font-size:12px;margin:0;line-height:1.4}.chat-input-form{display:flex;gap:10px;align-items:flex-end}.chat-input-form textarea{flex:1;min-height:40px;max-height:120px;resize:none;border-radius:20px;padding:10px 16px}.chat-input-form button{border-radius:50%;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}@media(max-width:760px){.message-bubble.sent{max-width:80%}.message-bubble.received{max-width:88%}.message-bubble:has(.message-code-block),.message-bubble:has(.message-table-wrap){max-width:95%}.message-list{max-height:350px}.session-runtime-strip{top:calc(var(--safe-top) + 58px)}.chat-input-form{flex-direction:column}.chat-input-form button{width:100%;border-radius:20px;height:44px}.session-approval-fab{right:12px;bottom:calc(96px + var(--safe-bottom));padding:8px 11px;font-size:11px}.message-detail-grid{grid-template-columns:1fr}.message-details-toggle{font-size:9px;padding:2px 7px}.message-filter-chip{font-size:10px;padding:4px 9px}.message-code-block>code{font-size:12px;padding:10px 12px}}.loading-card{min-height:120px;place-items:center;text-align:center;gap:10px}.loading-skeleton{width:min(360px,100%);display:grid;gap:8px}.skeleton-line{height:10px;border-radius:999px;background:linear-gradient(100deg,#1e293bcc,#475569a6,#1e293bcc);background-size:220% 100%;animation:skeleton-shimmer 1.3s ease infinite}.skeleton-line.line-long{width:92%}.skeleton-line.line-mid{width:74%}.skeleton-line.line-short{width:48%}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.loading-card .spinner{width:24px;height:24px;border-radius:999px;border:3px solid rgb(148 163 184 / 30%);border-top-color:var(--accent);animation:spin .8s linear infinite;margin:0 auto}@media(max-width:760px){.app-header{flex-direction:column;align-items:flex-start;gap:8px}.app-header-title{flex-wrap:wrap;gap:6px}.app-header-status{margin-left:0;width:100%}.app-nav{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.app-nav-actions{gap:8px;justify-content:flex-end}.status-popover{width:100%}.status-trigger{width:100%;justify-content:flex-start}.status-trigger-label{flex:1 1 auto}.status-trigger-meta{margin-left:auto}.app-nav a,.app-nav button,.app-nav-actions .link-button{min-height:40px}.status-popover-panel{right:auto;left:0}.app-main{padding:14px 12px calc(28px + var(--safe-bottom))}.card{padding:12px}.row.between{flex-direction:column;align-items:flex-start;gap:8px}.list-item{flex-direction:column;align-items:flex-start}.list-item>div:last-child{width:100%;justify-content:space-between}.entity-actions{width:100%;justify-content:space-between;gap:10px}.entity-link{min-height:36px;padding:6px 10px}.machine-form-grid,.login-method-grid{grid-template-columns:1fr}.qr-head h1{font-size:20px}.scan-frame{top:10px;right:10px;bottom:10px;left:10px}.daemon-session-card{grid-template-columns:1fr}.confirm-actions{width:100%}.confirm-actions button{flex:1}.toast-stack{right:12px;left:12px;width:auto}.row.gap-sm{flex-wrap:wrap}button{min-height:40px}}
