@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{color:#eaedf0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#061328;font-family:IBM Plex Sans,sans-serif;font-weight:400;line-height:1.5}html,body,#root{background:#061328;min-height:100%}body{color:#eaedf0;overscroll-behavior-y:none;background:#061328;min-height:100dvh;margin:0}:root{--bg:#061328;--bg-surface:#09162d;--bg-card:#0c1834;--bg-muted:#102046;--border:#17305f;--border-strong:#24457e;--text:#eaedf0;--text-muted:#b9c6eb;--brand:#66f98d;--brand-dark:#2a8f4b;--brand-soft:#66f98d1f;--danger:#f16363;--danger-soft:#f1636324;--shadow:0 14px 36px #0106132e;--radius-panel:12px;--radius-control:10px;--radius-chip:999px}*{box-sizing:border-box}body{color:var(--text)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.shell{min-height:100dvh;padding:max(14px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:var(--bg);position:relative}.shell:before{content:"";opacity:.34;pointer-events:none;background-image:linear-gradient(#4067ac6b 1px,#0000 1px),linear-gradient(90deg,#4067ac6b 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000c,#0000 94%);mask-image:linear-gradient(#000c,#0000 94%)}.shell-trace{pointer-events:none;opacity:.72;mix-blend-mode:screen;position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#000000e0,#0000 94%);mask-image:linear-gradient(#000000e0,#0000 94%)}.shell-trace svg{width:100%;height:100%;display:block}.shell-trace path{fill:none;stroke-linecap:round;stroke-linejoin:round}.trace-group{--trace-duration:18s;--trace-delay:0s;--trace-pulse-delay:0s;--trace-track:#66f98d1c;--trace-glow-color:#66f98d38;--trace-core-color:#84ffa8d6;--trace-packet-color:#c6ffd6e0;--trace-node-color:#79ff9bad}.trace-primary{--trace-glow-color:#66f98d42;--trace-core-color:#90ffb2e6}.trace-secondary{--trace-track:#66f98d17;--trace-glow-color:#66f98d2e;--trace-core-color:#7effa4bd}.trace-tertiary{--trace-track:#66f98d14;--trace-glow-color:#66f98d29;--trace-core-color:#8affaead}.trace-quaternary{--trace-track:#66f98d12;--trace-glow-color:#66f98d24;--trace-core-color:#76ff9e9e}.trace-track{stroke:var(--trace-track);stroke-width:1px}.trace-glow{stroke:var(--trace-glow-color);stroke-width:6px;filter:blur(2px);stroke-dasharray:6 94;animation:trace-run var(--trace-duration) linear infinite, trace-flicker 2.8s steps(2, end) infinite;animation-delay:var(--trace-delay), var(--trace-pulse-delay)}.trace-core{stroke:var(--trace-core-color);stroke-width:1.8px;stroke-dasharray:4 96;filter:drop-shadow(0 0 6px #66f98d2e);animation:trace-run var(--trace-duration) linear infinite;animation-delay:var(--trace-delay)}.trace-packet{stroke:var(--trace-packet-color);stroke-width:2.4px;stroke-dasharray:1.25 98.75;filter:drop-shadow(0 0 8px #98ffb77a);animation:trace-run calc(var(--trace-duration) * .64) linear infinite, trace-flicker 1.8s steps(2, end) infinite;animation-delay:calc(var(--trace-delay) * 1.35), var(--trace-pulse-delay)}.shell-trace circle{fill:var(--trace-node-color)}.trace-node{opacity:.26;filter:drop-shadow(0 0 5px #66f98d47);animation:3.6s ease-in-out infinite trace-node-pulse;animation-delay:var(--trace-node-delay);transform-origin:50%;transform-box:fill-box}.trace-node-1{opacity:.28}.trace-node-2{opacity:.14}.shell:after{content:"";pointer-events:none;background:linear-gradient(#02081414,#02081447);position:absolute;inset:0}.frame{z-index:1;width:min(1120px,100%);margin:0 auto;padding:4px 0 28px;position:relative}.masthead{text-align:left;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:8px 0 12px;display:flex}.eyebrow,.panel-kicker{color:var(--brand);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.masthead h1,.panel-header h2,.inventory-header h2{letter-spacing:-.04em;text-transform:none;margin:8px 0 0;font-family:IBM Plex Sans,sans-serif;font-size:clamp(24px,2.6vw,32px);line-height:1}.lead{color:var(--text-muted);margin:10px 0 0;font-size:15px}.hero-panel{background:0 0}.hero-block{align-items:center;gap:14px;display:flex}.brand-logo-shell{aspect-ratio:1;width:min(84px,18vw);box-shadow:none;background:0 0;border:0;border-radius:999px;place-items:center;padding:4px;display:grid}.brand-logo{filter:drop-shadow(0 8px 16px #0000002e);border-radius:999px;flex:none;width:100%;height:auto}.hero-copy{flex-direction:column;gap:0;display:flex}.hero-copy .eyebrow{font-size:11px}.hero-copy h1{margin-top:0}.identity-chip{border:1px solid var(--border);border-radius:var(--radius-control);background:#09162ee0;align-items:center;gap:12px;padding:8px 10px 8px 8px;display:inline-flex}.identity-mark{background:var(--brand);color:#04111c;border-radius:999px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.identity-chip strong,.identity-chip span{display:block}.identity-chip strong{font-size:13px}.identity-chip span{color:var(--text-muted);font-size:12px}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--shadow)}.panel-header{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.panel-header h2,.inventory-header h2{font-size:clamp(22px,2vw,28px)}.login-layout,.workspace-grid{grid-template-columns:1fr;gap:16px;width:100%;margin-top:0;display:grid}.workspace-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.login-panel,.control-panel,.session-panel,.inventory-panel{padding:20px}.banner{border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--bg-muted);align-items:center;gap:10px;margin-top:12px;padding:12px 14px;display:flex}.banner strong{font-size:13px}.banner span{color:var(--text-muted);font-size:13px}.error-banner{background:var(--danger-soft);border-color:#f163633d}.compact-banner{margin-top:0}.control-form{flex-direction:column;gap:14px;margin-top:0;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field input,.field select{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-surface);min-height:46px;color:var(--text);outline:none;padding:0 14px}.field input::placeholder{color:#b9c6eb66}.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%23B9C6EB' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:42px}.field input:focus,.field select:focus{border-color:var(--brand-dark)}.repo-picker{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg-surface)}.repo-picker summary{cursor:pointer;min-height:46px;color:var(--text);align-items:center;padding:0 14px;list-style:none;display:flex}.repo-picker summary::-webkit-details-marker{display:none}.repo-picker-list{border-top:1px solid var(--border);flex-direction:column;gap:10px;max-height:220px;padding:0 14px 14px;display:flex;overflow:auto}.repo-picker-empty{color:var(--text-muted);padding:14px;font-size:13px}.repo-option{color:var(--text);align-items:center;gap:10px;font-size:14px;display:flex}.repo-option input{width:16px;height:16px;margin:0}.primary-button,.secondary-button,.ghost-button,.danger-button{border-radius:var(--radius-control);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;min-height:42px;padding:0 16px;transition:background .16s,border-color .16s,transform .16s;display:inline-flex}.primary-button{background:var(--brand);color:#04111c;font-weight:700}.secondary-button{color:var(--text);border-color:var(--border);background:#ffffff09}.ghost-button{color:var(--brand);border-color:var(--border-strong);background:0 0}.danger-button{color:#ffb5b5;background:0 0;border-color:#f163633d}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.danger-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled,.danger-button:disabled{opacity:.62;cursor:default;transform:none}.session-card{border-radius:var(--radius-panel);background:var(--bg-surface);border:1px solid var(--border);flex-direction:column;gap:14px;margin-top:0;padding:16px;display:flex}.session-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.session-row span{color:var(--text-muted);font-size:13px}.session-row strong,.session-row a{font-size:14px;font-weight:600}.session-row a{color:var(--brand)}.session-actions{flex-wrap:wrap;gap:10px 12px;display:flex}.password-row{align-items:center;gap:10px;display:inline-flex}.password-row code{background:var(--bg-muted);border:1px solid var(--border);min-height:40px;color:var(--text);border-radius:12px;align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.inventory-header{justify-content:space-between;align-items:end;gap:16px;display:flex}.inventory-panel{width:100%;max-width:none;margin:14px 0 0}.sandbox-list{gap:14px;margin-top:16px;display:grid}.sandbox-card{border-radius:var(--radius-panel);background:var(--bg-surface);border:1px solid var(--border);padding:16px}.sandbox-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sandbox-card h3{margin:0;font-size:16px}.sandbox-card p{color:var(--text-muted);margin:4px 0 0;font-size:12px}.status-pill{letter-spacing:.12em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;min-width:86px;min-height:30px;padding:0 12px;font-size:11px;font-weight:700;display:inline-flex}.status-started,.status-running{background:var(--brand-soft);color:var(--brand)}.status-stopped,.status-unknown{color:var(--text-muted);background:#ffffff0f}.sandbox-meta,.sandbox-timestamps,.sandbox-actions{flex-wrap:wrap;gap:10px 14px;margin-top:12px;display:flex}.sandbox-meta span,.sandbox-timestamps span{color:var(--text-muted);font-size:13px}.sandbox-projects{gap:10px;margin-top:14px;display:grid}.sandbox-projects-label{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700}.sandbox-project-list{flex-wrap:wrap;gap:10px;display:flex}.project-chip{border:1px solid var(--border-strong);min-height:32px;color:var(--text-primary);background:#ffffff0a;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;text-decoration:none;transition:border-color .15s,transform .15s,background .15s;display:inline-flex}.project-chip:hover{border-color:var(--brand);background:#ffffff14;transform:translateY(-1px)}.project-workspace{color:var(--brand-warm)}.project-repository{color:var(--text-primary)}.sandbox-projects-loading,.sandbox-projects-error{color:var(--text-muted);font-size:13px}.sandbox-projects-error{color:#ff9c8a}.empty-state{border-radius:var(--radius-panel);border:1px dashed var(--border-strong);min-height:140px;color:var(--text-muted);text-align:center;background:var(--bg-surface);place-items:center;margin-top:16px;padding:18px;display:grid}.loading-panel{gap:12px;padding:20px;display:grid}.pulse{background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a) 0 0/200% 100%;border-radius:999px;animation:1.5s linear infinite shimmer}.pulse-title{width:180px;height:16px}.pulse-block{border-radius:16px;width:100%;height:78px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes trace-run{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100px}}@keyframes trace-flicker{0%,to{opacity:.84}50%{opacity:.62}}@keyframes trace-node-pulse{0%,to{opacity:.14;transform:scale(.88)}45%{opacity:.54;transform:scale(1.22)}70%{opacity:.2;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.trace-glow,.trace-core,.trace-packet,.trace-node,.pulse{animation:none}}@media (width<=920px){.masthead,.workspace-grid,.inventory-header,.sandbox-card-header,.session-row{flex-direction:column;align-items:flex-start}.workspace-grid,.field-grid{grid-template-columns:1fr}.frame{width:100%;padding-top:4px}.hero-block{align-items:center}.brand-logo-shell{width:min(74px,24vw)}.masthead{align-items:flex-start}}@media (width<=640px){.login-panel,.control-panel,.session-panel,.inventory-panel{padding:16px}.masthead{padding-top:2px}.password-row,.primary-button,.ghost-button,.danger-button,.control-form .secondary-button,.session-card .secondary-button,.sandbox-actions .secondary-button{width:100%}.identity-chip{align-items:center;width:100%}.identity-chip .secondary-button{flex:none;width:auto;margin-left:auto}.password-row{flex-direction:column;align-items:stretch}}
