:root,[data-theme=dark]{color-scheme:dark;--mira-accent: #59e0f2;--mira-accent-deep: #408ceb;--mira-bg: #051c2c;--mira-bg-mid: #08172b;--mira-bg-deep: #03050d;--mira-sidebar: #040a17;--mira-surface: rgba(255, 255, 255, .06);--mira-stroke: rgba(255, 255, 255, .1);--mira-text: rgba(255, 255, 255, .92);--mira-muted: rgba(255, 255, 255, .55);--mira-danger: #ff7878;--mira-warning: #f2b833;--mira-success: #6ee6a0;--mira-input-bg: rgba(3, 5, 13, .55);--mira-space-1: rgba(89, 224, 242, .14);--mira-space-2: rgba(64, 140, 235, .18);--mira-space-3: rgba(5, 28, 44, .9);--mira-space-grad: linear-gradient(165deg, #03050d 0%, #051c2c 45%, #08172b 100%);--radius-s: 8px;--radius-m: 12px;--radius-l: 18px;--font-display: "Exo 2", sans-serif;--font-body: "IBM Plex Sans", system-ui, sans-serif}[data-theme=light]{color-scheme:light;--mira-accent: #1f85ad;--mira-accent-deep: #2e66c7;--mira-bg: #f7f2e6;--mira-bg-mid: #f2ebdb;--mira-bg-deep: #ede6d4;--mira-sidebar: #f5f0e0;--mira-surface: rgba(107, 82, 46, .07);--mira-stroke: rgba(92, 71, 41, .14);--mira-text: rgb(41, 36, 31);--mira-muted: rgb(107, 97, 82);--mira-danger: #c43a3a;--mira-warning: #b47814;--mira-success: #22945c;--mira-input-bg: rgba(255, 255, 255, .78);--mira-space-1: rgba(31, 133, 173, .1);--mira-space-2: rgba(46, 102, 199, .1);--mira-space-3: rgba(242, 235, 219, .9);--mira-space-grad: linear-gradient(165deg, #ede6d4 0%, #f7f2e6 45%, #f2ebdb 100%)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--mira-text);background:var(--mira-bg-deep);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.space-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 20% 10%,var(--mira-space-1),transparent 55%),radial-gradient(ellipse 60% 40% at 85% 20%,var(--mira-space-2),transparent 50%),radial-gradient(ellipse 50% 60% at 50% 100%,var(--mira-space-3),transparent 60%),var(--mira-space-grad)}.space-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1.5px 1.5px at 12% 18%,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 28% 62%,rgba(89,224,242,.8),transparent),radial-gradient(1.5px 1.5px at 44% 28%,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 61% 74%,rgba(255,255,255,.45),transparent),radial-gradient(1.5px 1.5px at 78% 22%,rgba(89,224,242,.65),transparent),radial-gradient(1px 1px at 91% 58%,rgba(255,255,255,.5),transparent),radial-gradient(1px 1px at 18% 88%,rgba(255,255,255,.35),transparent),radial-gradient(1.5px 1.5px at 52% 48%,rgba(64,140,235,.7),transparent);animation:twinkle 8s ease-in-out infinite alternate}.space-bg:after{content:"";position:absolute;width:140vmax;height:140vmax;left:50%;top:55%;translate:-50% -50%;border-radius:50%;border:1px solid rgba(89,224,242,.08);box-shadow:0 0 0 80px #59e0f205,0 0 0 160px #408ceb04;animation:orbit-ring 60s linear infinite}@keyframes twinkle{0%{opacity:.55}to{opacity:1}}@keyframes orbit-ring{0%{rotate:0deg}to{rotate:360deg}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #59e0f259}50%{box-shadow:0 0 24px 4px #59e0f240}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(220%)}}.app-shell{position:relative;z-index:1;min-height:100vh}.login-page{min-height:100vh;display:grid;place-items:center;padding:32px 20px;position:relative;z-index:1}.login-hero{width:min(440px,100%);text-align:center;animation:rise-in .7s ease-out both}.login-brand{font-family:var(--font-display);font-weight:800;font-size:clamp(2.6rem,8vw,3.6rem);letter-spacing:.04em;margin:0 0 8px;background:linear-gradient(120deg,#fff 10%,var(--mira-accent) 55%,var(--mira-accent-deep));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(89,224,242,.25)}.login-tag{margin:0 0 28px;color:var(--mira-muted);font-size:.95rem;letter-spacing:.18em;text-transform:uppercase}.login-panel{text-align:left;padding:28px;border-radius:var(--radius-l);background:linear-gradient(160deg,#ffffff14,#ffffff08);border:1px solid var(--mira-stroke);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 24px 80px #00000073}.login-panel label{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mira-muted);margin-bottom:8px}.login-panel input{width:100%;margin-bottom:16px;padding:12px 14px;border-radius:var(--radius-s);border:1px solid var(--mira-stroke);background:var(--mira-input-bg);color:var(--mira-text);outline:none}.login-panel input:focus{border-color:#59e0f28c;box-shadow:0 0 0 3px #59e0f21f}.btn-primary{width:100%;margin-top:8px;padding:13px 16px;border:none;border-radius:var(--radius-m);cursor:pointer;font-family:var(--font-display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#031018;background:linear-gradient(120deg,var(--mira-accent),var(--mira-accent-deep));animation:pulse-glow 3.5s ease-in-out infinite}.btn-primary:disabled{opacity:.6;cursor:wait;animation:none}.login-error{color:var(--mira-danger);font-size:.9rem;margin:0 0 12px}.login-hint{margin:16px 0 0;font-size:.8rem;color:var(--mira-muted)}.console{display:grid;grid-template-columns:240px 1fr;min-height:100vh;position:relative;z-index:1}@media(max-width:900px){.console{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:5}}.sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--mira-sidebar) 96%,transparent),color-mix(in srgb,var(--mira-bg-deep) 90%,transparent));border-right:1px solid var(--mira-stroke);padding:24px 16px;display:flex;flex-direction:column;gap:16px;min-height:100vh;max-height:100vh;position:sticky;top:0;overflow:hidden}.sidebar-brand{font-family:var(--font-display);font-weight:800;font-size:1.35rem;letter-spacing:.06em;padding:0 8px;flex-shrink:0}.sidebar-brand span{color:var(--mira-accent)}.nav-list{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;overflow-y:auto;padding-right:4px}.nav-item{display:block;padding:10px 12px;border-radius:var(--radius-s);color:var(--mira-muted);transition:background .2s,color .2s}.nav-item:hover,.nav-item.active{background:#59e0f21a;color:var(--mira-text)}.nav-item.active{border:1px solid rgba(89,224,242,.25)}.sidebar-foot{margin-top:auto;padding:12px 8px;border-top:1px solid var(--mira-stroke);flex-shrink:0}.user-chip{font-size:.85rem;margin-bottom:10px}.user-chip strong{display:block;font-family:var(--font-display)}.user-chip span{color:var(--mira-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.btn-ghost{background:transparent;border:1px solid var(--mira-stroke);color:var(--mira-muted);border-radius:var(--radius-s);padding:8px 12px;cursor:pointer;width:100%}.btn-ghost:hover{color:var(--mira-text);border-color:#59e0f259}.main{padding:28px 32px 48px;animation:rise-in .45s ease-out both}.page-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px;margin-bottom:28px}.page-head h1{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,3vw,2.4rem);margin:0 0 6px;letter-spacing:.02em}.page-head p{margin:0;color:var(--mira-muted);max-width:42rem}.status-live{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid rgba(110,230,160,.35);background:#6ee6a014;color:var(--mira-success);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.status-live:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--mira-success);box-shadow:0 0 10px var(--mira-success);animation:twinkle 1.4s ease-in-out infinite alternate}.grid-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}@media(max-width:800px){.grid-stats{grid-template-columns:1fr}}.stat{position:relative;overflow:hidden;padding:20px 22px;border-radius:var(--radius-l);background:linear-gradient(145deg,#ffffff12,#ffffff05);border:1px solid var(--mira-stroke)}.stat:after{content:"";position:absolute;left:0;right:0;height:40%;background:linear-gradient(180deg,transparent,rgba(89,224,242,.08),transparent);animation:scan 4.5s linear infinite;pointer-events:none}.stat-label{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mira-muted);margin-bottom:10px}.stat-value{font-family:var(--font-display);font-weight:800;font-size:2.2rem;line-height:1;color:var(--mira-accent)}.panel{border-radius:var(--radius-l);background:#ffffff0a;border:1px solid var(--mira-stroke);padding:20px;margin-bottom:20px}.panel h2{font-family:var(--font-display);font-size:1.05rem;font-weight:700;margin:0 0 16px;letter-spacing:.04em}.constellation{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.product-orb{padding:16px;border-radius:var(--radius-m);background:linear-gradient(160deg,#59e0f214,#408ceb0a);border:1px solid rgba(89,224,242,.18);transition:transform .25s ease,border-color .25s}.product-orb:hover{transform:translateY(-3px);border-color:#59e0f273}.product-orb h3{margin:0 0 4px;font-family:var(--font-display);font-size:1rem}.product-orb .meta{color:var(--mira-muted);font-size:.8rem;margin-bottom:12px}.product-orb .count{font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--mira-accent)}.modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.module-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-radius:var(--radius-s);background:#03050d59;border:1px solid var(--mira-stroke);font-size:.9rem}.badge{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:999px;border:1px solid currentColor}.badge.online{color:var(--mira-success)}.badge.stub{color:var(--mira-warning)}.badge.planned{color:var(--mira-muted)}.table{width:100%;border-collapse:collapse;font-size:.88rem}.table th{text-align:left;color:var(--mira-muted);font-weight:500;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:0 10px 10px 0;border-bottom:1px solid var(--mira-stroke)}.table td{padding:12px 10px 12px 0;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.empty{color:var(--mira-muted);padding:12px 0}.profiles{display:flex;flex-wrap:wrap;gap:8px}.profile-pill{padding:8px 12px;border-radius:var(--radius-s);background:#408ceb1f;border:1px solid rgba(64,140,235,.28);font-size:.82rem}.profile-pill strong{color:var(--mira-accent);font-weight:600}.product-orb-btn{width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit}.product-orb-btn.selected{border-color:#59e0f2a6;box-shadow:0 0 0 1px #59e0f240}.fleet-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.fleet-toolbar h2{margin:0}.filter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px 16px;margin-bottom:20px}.field-row>label,.field-stack{display:flex;flex-direction:column;gap:6px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mira-muted);min-width:0}.field-row input,.field-row select,.field-row textarea,.field-stack input,.field-stack select,.field-stack textarea,.panel>label input,.panel>label select{width:100%;padding:10px 12px;border-radius:var(--radius-s);border:1px solid var(--mira-stroke);background:var(--mira-input-bg);color:var(--mira-text);font:inherit;text-transform:none;letter-spacing:normal}.field-row input:focus,.field-row select:focus,.field-stack input:focus,.field-stack select:focus,.release-form input:focus,.release-form select:focus,.release-form textarea:focus{outline:1px solid color-mix(in srgb,var(--mira-accent) 55%,transparent);border-color:color-mix(in srgb,var(--mira-accent) 45%,var(--mira-stroke))}.chrome-toggles{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.chrome-toggles .btn-ghost{width:auto;padding:6px 10px;font-size:.75rem}.filter-chip{padding:8px 12px;border-radius:999px;border:1px solid var(--mira-stroke);background:transparent;color:var(--mira-muted);cursor:pointer;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.filter-chip.active,.filter-chip:hover{color:var(--mira-text);border-color:#59e0f273;background:#59e0f21a}.fleet-refresh{width:auto}.ok-banner{color:var(--mira-success);margin:0 0 16px}.release-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}.release-form label{display:flex;flex-direction:column;gap:6px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mira-muted)}.release-form input,.release-form select,.release-form textarea{padding:10px 12px;border-radius:var(--radius-s);border:1px solid var(--mira-stroke);background:var(--mira-input-bg);color:var(--mira-text);font:inherit;text-transform:none;letter-spacing:normal}.release-form .span-2{grid-column:span 2}.release-form .check-label{flex-direction:row;align-items:center;gap:10px;text-transform:none;letter-spacing:normal;font-size:.9rem;color:var(--mira-text);margin-top:22px}@media(max-width:900px){.release-form{grid-template-columns:1fr}.release-form .span-2{grid-column:auto}}.placeholder-page h1{font-family:var(--font-display);margin:0 0 12px}.placeholder-page p{color:var(--mira-muted);line-height:1.55}.chart-map{width:100%}.chart-map-svg{width:100%;height:280px;display:block;border-radius:8px;border:1px solid color-mix(in srgb,var(--mira-cyan) 25%,transparent)}.chart-map-bg{fill:color-mix(in srgb,var(--mira-navy, #0b1c2c) 88%,#000)}.chart-map-pt{fill:var(--mira-cyan, #3de0ff);opacity:.85}.chart-map-wp{fill:#e8a838;stroke:#0b1c2c;stroke-width:.2}.hub-cards{align-items:stretch}.hub-card{display:flex;flex-direction:column;min-height:220px}.hub-card>p{flex:0 0 auto;margin:0 0 12px;color:var(--mira-muted);font-size:.9rem}.hub-card-history{margin-top:auto;padding-top:12px;border-top:1px solid var(--mira-stroke)}.hub-card-history-label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mira-muted);margin-bottom:8px}.hub-timeline-day+.hub-timeline-day{margin-top:14px}.hub-timeline-date{font-family:var(--font-display);font-weight:700;font-size:.85rem;color:var(--mira-accent);margin-bottom:8px}.hub-timeline-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.hub-timeline-list li{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:start}.hub-timeline-time{font-size:.75rem;color:var(--mira-muted);font-variant-numeric:tabular-nums;padding-top:2px}.hub-timeline-list strong{display:block;font-size:.92rem;margin-bottom:2px}.hub-timeline-list p{margin:0;color:var(--mira-muted);font-size:.85rem;line-height:1.4}.hub-timeline-compact .hub-timeline-list li{grid-template-columns:40px 1fr;gap:6px}.hub-timeline-compact .hub-timeline-date{font-size:.75rem}.hub-timeline-snip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hub-event-link{display:block;text-decoration:none;color:inherit;padding:8px 10px;border-radius:8px;border:1px solid transparent;transition:border-color .15s ease,background .15s ease}.hub-event-link:hover{border-color:var(--mira-stroke);background:color-mix(in srgb,var(--mira-accent) 8%,transparent)}.hub-kind-pill{display:inline-block;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase;color:var(--mira-accent);margin-bottom:4px;margin-right:8px}.hub-attach-count{display:inline-block;margin-top:4px;font-size:.72rem;color:var(--mira-muted)}.hub-progress{margin-top:10px}.hub-progress-meta{font-size:.78rem;color:var(--mira-muted);margin-bottom:6px}.hub-progress-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--mira-stroke) 80%,transparent);overflow:hidden}.hub-progress-fill{height:100%;border-radius:inherit;background:var(--mira-accent);transition:width .3s ease}.hub-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.hub-gallery-item h3{font-size:.85rem;margin:0 0 8px}.hub-gallery-img{display:block;width:100%;max-height:280px;object-fit:contain;border-radius:8px;border:1px solid var(--mira-stroke);background:color-mix(in srgb,var(--mira-stroke) 30%,transparent)}
