:root{--bg:#050b15;--surface:#0b192b;--surface2:#10243b;--line:rgba(133,171,222,.18);--text:#f4f8ff;--muted:#8ca3c1;--blue:#4d93ff;--green:#43f49a;--violet:#8f6cff;--danger:#ff6b7d;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit}.boot button,.offline-bar button,.dialog-actions button{border:0;cursor:pointer}
#shell{position:fixed;inset:0;background:radial-gradient(circle at 16% 8%,rgba(77,147,255,.17),transparent 30%),radial-gradient(circle at 85% 90%,rgba(67,244,154,.1),transparent 32%),linear-gradient(145deg,#030812,#071525 55%,#091b30)}
#workspace{position:absolute;inset:0;width:100%;height:100%;border:0;background:#07111f;display:block;padding:0;margin:0}
.boot{position:absolute;inset:0;z-index:50;display:grid;place-items:center;padding:calc(18px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));background:radial-gradient(circle at 20% 15%,rgba(77,147,255,.18),transparent 34%),radial-gradient(circle at 78% 80%,rgba(143,108,255,.12),transparent 34%),linear-gradient(145deg,#030812,#081728);transition:opacity .3s ease,visibility .3s ease}.boot.hide{opacity:0;visibility:hidden;pointer-events:none}
.boot-card{width:min(520px,94vw);padding:32px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,rgba(16,36,60,.88),rgba(6,17,32,.92));box-shadow:0 32px 100px rgba(0,0,0,.46),inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(18px)}
.brand-row{display:flex;align-items:center;gap:16px}.brand-mark{width:68px;height:68px;flex:0 0 auto;border-radius:21px;display:grid;place-items:center;color:#03101a;font-size:32px;font-weight:1000;background:linear-gradient(145deg,var(--blue),var(--green));box-shadow:0 16px 38px rgba(54,160,255,.26),inset 0 1px rgba(255,255,255,.42)}.brand-mark.small{width:44px;height:44px;border-radius:14px;font-size:21px}.eyebrow{display:block;color:#82a6d5;font-size:9px;font-weight:900;letter-spacing:.15em}.boot h1{margin:3px 0 0;font-size:31px;letter-spacing:-.045em}.boot p{margin:18px 0 20px;color:var(--muted);font-size:14px}.progress{height:7px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.07);box-shadow:inset 0 1px 3px rgba(0,0,0,.5)}.progress span{display:block;width:14%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--violet),var(--green));box-shadow:0 0 18px rgba(67,244,154,.4);transition:width .45s ease}
.status-row{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;margin-top:13px;color:#a9bad0;font-size:11px}.status-row b{color:var(--green);font-variant-numeric:tabular-nums}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(67,244,154,.08),0 0 15px rgba(67,244,154,.6)}.status-dot.warn{background:#ffc35d;box-shadow:0 0 0 5px rgba(255,195,93,.08)}.status-dot.error{background:var(--danger);box-shadow:0 0 0 5px rgba(255,107,125,.08)}
.slow-actions{display:flex;gap:9px;margin-top:18px}.primary,.secondary{min-height:42px;border-radius:13px;padding:10px 15px;font-weight:850}.primary{background:linear-gradient(135deg,var(--blue),var(--green));color:#04111b;box-shadow:0 10px 25px rgba(60,154,255,.2)}.secondary{background:#142842;color:#dbe9fa;border:1px solid var(--line)!important}.slow-actions button{flex:1}
.offline-bar{position:fixed;left:50%;top:calc(12px + var(--safe-top));transform:translateX(-50%);z-index:80;width:min(640px,calc(100vw - 24px));padding:10px 12px;border:1px solid rgba(255,195,93,.28);border-radius:14px;background:rgba(34,25,12,.94);box-shadow:0 16px 44px rgba(0,0,0,.35);color:#f2d7a5;font-size:11px;align-items:center;justify-content:space-between;gap:12px}.offline-bar:not([hidden]){display:flex}.offline-bar button{padding:7px 11px;border-radius:9px;background:#4a3518;color:#ffe4ae;font-weight:800}
.quick-actions{position:fixed;right:calc(14px + var(--safe-right));bottom:calc(14px + var(--safe-bottom));z-index:40;display:flex;gap:8px;padding:6px;border:1px solid var(--line);border-radius:17px;background:rgba(5,14,27,.82);box-shadow:0 16px 44px rgba(0,0,0,.28);backdrop-filter:blur(14px);opacity:.3;transition:opacity .18s ease,transform .18s ease}.quick-actions:hover,.quick-actions:focus-within{opacity:1;transform:translateY(-2px)}.quick-actions button{width:38px;height:38px;border:0;border-radius:11px;background:#12233a;color:#cfe1f7;font-size:18px;cursor:pointer}.quick-actions button:hover{background:#1a3555;color:#fff}.quick-actions button[hidden]{display:none}
.quick-actions .install-action{width:auto;min-width:82px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#236ad3,#168b65);color:#fff}.install-action b{font-size:11px;letter-spacing:.01em}
dialog{width:min(470px,calc(100vw - 24px));border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#10243b,#071525);color:var(--text);box-shadow:0 32px 100px rgba(0,0,0,.58);padding:22px}dialog::backdrop{background:rgba(1,5,12,.72);backdrop-filter:blur(8px)}.dialog-head{display:flex;align-items:center;gap:12px}.dialog-head b{display:block;font-size:18px}.dialog-head span{display:block;color:var(--muted);font-size:11px;margin-top:3px}dialog ol{margin:18px 0;padding-left:22px;color:#b8c8da;font-size:13px;line-height:1.75}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}.dialog-actions button{min-width:105px}
@media(max-width:650px){.boot-card{padding:25px 21px;border-radius:24px}.brand-mark{width:58px;height:58px;border-radius:18px;font-size:27px}.boot h1{font-size:26px}.quick-actions{opacity:.88}.slow-actions{flex-direction:column}.quick-actions .install-action{min-width:76px;padding:0 10px}}
@media(display-mode:standalone){.quick-actions{bottom:calc(10px + var(--safe-bottom))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
