:root{--bg: hsl(48 7% 11%);--bg-soft: hsl(40 6% 15%);--panel: hsl(38 8% 17% / .78);--panel-strong: hsl(35 10% 14% / .92);--border: hsl(43 11% 29% / .65);--text: hsl(40 22% 90%);--muted: hsl(40 12% 67%);--accent: hsl(43 96% 55%);--success: hsl(145 58% 73%);--warn: hsl(39 83% 72%);--log: hsl(186 72% 55%);--radius-lg: 14px;--radius-md: 10px;--shadow: 0 30px 60px hsl(0 0% 0% / .36)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:DM Sans,sans-serif;color:var(--text);background:radial-gradient(circle at 10% 20%,hsl(35 38% 18% / .55),transparent 45%),radial-gradient(circle at 80% 0%,hsl(56 50% 14% / .4),transparent 40%),linear-gradient(135deg,#1b1a18,#161513);padding:0}.app-shell{width:100%;min-height:100vh;border-radius:0;border:1px solid hsl(40 8% 28% / .4);background:linear-gradient(160deg,#24221eeb,#1e1c1ae6);box-shadow:var(--shadow);overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rise-in .36s ease-out}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid var(--border);background:#262421f2}.window-dots{display:flex;gap:8px}.dot{width:10px;height:10px;border-radius:50%}.dot.red{background:#e75a55}.dot.yellow{background:#fac342}.dot.green{background:#4ed086}.host-text{font-size:.95rem;color:#e3d7bf;letter-spacing:.02em}.connection-pill{font-family:JetBrains Mono,monospace;font-size:.78rem;color:#0d5936;background:#a9e5be;border-radius:999px;padding:5px 12px}.connection-pill.is-up{color:#0d5936;background:#a9e5be}.connection-pill.is-down{color:#661915;background:#f0afad}.layout-grid{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 52px)}.sidebar{border-right:1px solid var(--border);background:linear-gradient(180deg,#201f1dcc,#191815d1);padding:22px 0}.menu-group{margin-bottom:22px}.menu-group p{margin:0 16px 10px;color:var(--muted);font-size:.73rem;letter-spacing:.11em}.menu-item{display:block;width:100%;text-align:left;padding:10px 16px;margin:4px 0;color:#d8d3ca;text-decoration:none;border-top:none;border-right:none;border-bottom:none;transition:all .16s ease;border-left:2px solid transparent;cursor:pointer}.menu-item:hover{color:#f7f4ed;background:#302d2780}.menu-item.active{border-left-color:var(--accent);background:#302c27d1}.danger-item{color:#f18c83}.content{padding:16px}.error-banner{margin-bottom:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid hsl(1 52% 52% / .6);background:#4521218c;color:#f5b3b2}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.metric-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.metric-card span{font-size:.75rem;letter-spacing:.11em;color:var(--muted)}.metric-card strong{display:block;margin-top:5px;font-family:JetBrains Mono,monospace;font-size:2rem;line-height:1}.metric-card small{color:#c2bbae}.project-section,.log-section{margin-top:14px}.project-index-compact{max-width:1180px;margin-left:auto;margin-right:auto}.project-index-compact .wizard-steps,.project-index-compact .project-form,.project-index-compact .project-list,.project-index-compact>h2,.project-index-compact>.project-actions,.project-index-compact>.stats-grid{max-width:1100px;margin-left:auto;margin-right:auto}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.detail-meta{margin:4px 0 0;color:var(--muted);font-size:.9rem}.tab-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.tab-link{border:1px solid hsl(41 16% 41%);background:#292724;color:#e2ded4;border-radius:10px;padding:8px 12px;text-decoration:none;text-transform:capitalize;font-family:JetBrains Mono,monospace;font-size:.82rem}.tab-link.active{border-color:#e0b748;color:#f6d379}.wizard-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.wizard-step{border:1px solid hsl(41 16% 41%);background:#292724;color:#e2ded4;border-radius:10px;padding:9px 10px;text-align:center;font-family:JetBrains Mono,monospace;cursor:pointer}.wizard-step.active{border-color:#e0b748;color:#f6d379}.wizard-nav{grid-column:1 / -1;display:flex;justify-content:space-between;gap:8px}.wizard-error{flex:1 1 100%;color:#f5b3b2;font-size:.86rem;border:1px solid hsl(1 52% 52% / .6);border-radius:10px;background:#4521218c;padding:8px 10px}.wizard-field-errors{grid-column:1 / -1;border:1px solid hsl(1 52% 52% / .6);border-radius:10px;background:#4521218c;padding:8px 10px}.wizard-field-errors p{margin:0;color:#f5b3b2;font-size:.84rem}.wizard-inline-help{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:10px;background:#221f1cd1;padding:8px 10px;color:var(--muted)}h2{font-size:.83rem;letter-spacing:.08em;color:#c5bfb5;margin:0 0 10px}.project-list{display:grid;gap:8px}.project-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:16px;margin-bottom:20px;padding:20px;border-radius:var(--radius-md);border:1px solid var(--border);background:#221f1cd1;align-items:start}.project-form-compact{grid-template-columns:minmax(0,1fr);max-width:780px}.project-form input,.project-form select{width:100%;max-width:480px;border-radius:8px;border:1px solid hsl(41 15% 36%);background:#1f1d19;color:var(--text);padding:10px 14px;font-family:inherit;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease}.project-form input:focus,.project-form select:focus{outline:none;border-color:#e0b748;box-shadow:0 0 0 2px #e0b74826}.project-form>button,.project-form>.ghost-btn{grid-column:1 / -1;justify-self:start;max-width:max-content;padding-left:20px;padding-right:20px}.project-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;background:var(--panel-strong);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;transition:transform .15s ease,border-color .15s ease}.project-row:hover{transform:translateY(-1px);border-color:#9c8d63cc}.project-building{border-color:#ecb827e6;box-shadow:inset 0 0 0 1px #ecb8274d}.project-main h3{margin:0;font-size:1.15rem}.project-main p{margin:6px 0 0;color:#c2baad;font-size:.95rem}.project-title-wrap{display:flex;align-items:center;gap:10px}.status{border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;text-transform:lowercase}.status-running{background:#c5f1d8;color:#22593a}.status-building{background:#ffeab8;color:#714f23}.status-stopped,.status-error,.status-unknown{background:#d3c1bb;color:#563d34}.project-actions{display:flex;gap:8px}.ghost-btn{min-width:90px;border:1px solid hsl(41 16% 41%);background:#292724;color:#e2ded4;border-radius:10px;padding:10px 12px;font-family:JetBrains Mono,monospace;font-size:.95rem;cursor:pointer;transition:border-color .16s ease,color .16s ease}.ghost-btn:hover:enabled{border-color:#e0b748;color:#f6d379}.ghost-btn:disabled{opacity:.42;cursor:not-allowed}.terminal{border-radius:var(--radius-md);border:1px solid var(--border);background:#191f1ee0;min-height:200px;padding:10px 12px;font-family:JetBrains Mono,monospace;font-size:.93rem}.terminal p{margin:0 0 7px;color:var(--log)}.auth-shell{min-height:calc(100vh - 36px);display:grid;place-items:center}.auth-card{width:min(92vw,420px);border-radius:14px;border:1px solid var(--border);background:#24221eeb;padding:24px;box-shadow:var(--shadow)}.auth-card h1{margin:0;font-size:1.8rem}.auth-card p{margin:6px 0 14px;color:var(--muted)}.auth-card label{display:block;margin-bottom:6px;font-size:.83rem;color:#dbd4c7}.auth-card input{width:100%;border-radius:10px;border:1px solid hsl(41 15% 36%);background:#1f1d19;color:var(--text);padding:10px 12px;margin-bottom:12px;font-family:JetBrains Mono,monospace}.auth-btn{border:1px solid hsl(43 76% 52%);background:#ebb537;color:#332c19;border-radius:10px;padding:11px 24px;font-weight:700;cursor:pointer;white-space:nowrap}.auth-card .auth-btn{width:100%}.auth-help-toggle{width:100%;margin-top:8px;border:1px solid hsl(41 16% 41%);background:#2c2a26;color:#e2ded4;border-radius:10px;padding:10px 12px;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.82rem}.auth-help-toggle:hover{background:#34322d}.auth-help-panel{margin-top:12px;border:1px solid var(--border);border-radius:10px;background:#221f1ce6;padding:12px}.auth-help-panel h2{margin:0 0 8px;font-size:.86rem;letter-spacing:.08em}.auth-help-panel ol{margin:0;padding-left:18px;color:#d9d4c9;display:grid;gap:6px;font-size:.86rem}.auth-help-links{margin-top:10px;display:grid;gap:7px}.auth-help-links a{color:#f6d379;text-decoration:none;font-size:.84rem}.auth-help-links a:hover{text-decoration:underline}.auth-btn:hover:enabled{background:#eebe4f}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.error-text{margin:0 0 12px;font-size:.86rem;color:#f2a9a6}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 980px){.layout-grid{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);padding:8px 0}.menu-group{margin-bottom:6px}.stats-grid,.project-row,.project-form{grid-template-columns:1fr}.project-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.project-index-compact,.project-index-compact .wizard-steps,.project-index-compact .project-form,.project-index-compact .project-list,.project-index-compact>h2,.project-index-compact>.project-actions,.project-index-compact>.stats-grid{max-width:none}.ghost-btn{min-width:80px}}
