:root{color-scheme:dark;--bg:#0f1115;--panel:#171a21;--text:#f4f1ea;--muted:#a8a29a;--accent:#c9a227;--border:#2a2f3a}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:radial-gradient(circle at top,#1a1f2b 0,var(--bg) 55%);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}.eyebrow{margin:0 0 .75rem;color:var(--accent);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}h1,h2{margin:0 0 1rem;line-height:1.15}h1{font-size:clamp(2rem,4vw,2.5rem)}.lede{margin:0;color:var(--muted);font-size:1.05rem;line-height:1.6}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--border);background:color-mix(in srgb,var(--panel) 95%,black);padding:1.5rem 1rem}.brand{display:flex;gap:.75rem;align-items:center;margin-bottom:2rem}.brand-mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:linear-gradient(135deg,#c9a227,#8a6d1d);color:#111;font-weight:700}.brand-title{margin:0;font-weight:700}.brand-subtitle{margin:0;color:var(--muted);font-size:.85rem}.sidebar-nav{display:flex;flex-direction:column;gap:.35rem}.nav-link,.nav-sublink{display:block;padding:.55rem .75rem;border-radius:.5rem;color:var(--text);text-decoration:none}.nav-sublink{margin-left:.75rem;font-size:.92rem;color:var(--muted)}.nav-link.active,.nav-sublink.active{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text)}.main-column{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--panel) 70%,transparent)}.main-content{padding:1.5rem}.login-card,.panel{border:1px solid var(--border);border-radius:1rem;background:color-mix(in srgb,var(--panel) 92%,black);padding:1.75rem}.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem}.login-card{width:min(480px,100%)}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:.6rem;padding:.7rem 1rem;border:1px solid transparent;text-decoration:none;cursor:pointer;font:inherit}.button.primary{background:var(--accent);color:#111;font-weight:600}.button.ghost{background:transparent;border-color:var(--border);color:var(--text)}.guild-select,.user-menu{display:flex;align-items:center;gap:.75rem}.guild-select{min-width:220px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:.5rem;padding:.5rem .75rem}.placeholder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem;gap:1rem;margin-top:1.5rem}.placeholder-card{border:1px dashed var(--border);border-radius:.75rem;padding:1rem}.installer{max-width:960px}.installer-steps{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:1.5rem 0}.installer-steps li{padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:.85rem}.installer-steps li.active{border-color:var(--accent);color:var(--accent)}.installer-panel{margin-top:1.5rem;padding:1.5rem;border:1px solid var(--border);border-radius:.75rem;background:color-mix(in srgb,var(--panel) 90%,black)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1rem;border-radius:.5rem;border:1px solid transparent;cursor:pointer;text-decoration:none;font-weight:600}.btn-primary{background:linear-gradient(135deg,#c9a227,#8a6d1d);color:#111}.btn-secondary{background:var(--panel);color:var(--text);border-color:var(--border)}.check-list{list-style:none;padding:0;margin:1rem 0}.check-item{display:grid;grid-gap:.25rem;gap:.25rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.check-pass{color:#6ee7b7}.check-fail{color:#fca5a5}.check-warn{color:#fcd34d}.check-item.check-pass strong:before{content:"✓ ";color:#6ee7b7}.check-item.check-fail strong:before{content:"✗ ";color:#fca5a5}.check-item.check-warn strong:before{content:"! ";color:#fcd34d}.blueprint-list,.mode-options{display:grid;grid-gap:1rem;gap:1rem;margin:1rem 0 1.5rem}.blueprint-card,.mode-card{display:grid;grid-gap:.35rem;gap:.35rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem;cursor:pointer}.blueprint-card.selected,.mode-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.blueprint-card input,.mode-card input{position:absolute;opacity:0}.plan-summary{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.summary-chip{padding:.25rem .6rem;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:.85rem}.plan-group ul{list-style:none;padding:0}.plan-group li{padding:.5rem 0;border-bottom:1px solid var(--border)}.plan-group .muted{display:block;color:var(--muted);font-size:.85rem}.installer-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.alert-error{padding:.75rem 1rem;border-radius:.5rem;background:color-mix(in srgb,#7f1d1d 40%,var(--panel));border:1px solid #991b1b;margin:1rem 0}.loading-spinner{width:2.5rem;height:2.5rem;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:1.5rem auto}.resource-table{width:100%;border-collapse:collapse;margin-top:1rem}.resource-table td,.resource-table th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border)}@keyframes spin{to{transform:rotate(1turn)}}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0}.data-table{width:100%;border-collapse:collapse;margin-top:1rem}.data-table td,.data-table th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.status-badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 20%,var(--panel));color:var(--accent);font-size:.8rem}.tree-list{list-style:none;padding-left:0}.tree-list ul{margin:.35rem 0 .75rem 1rem;padding-left:1rem;border-left:1px solid var(--border)}.permission-matrix{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:.5rem;gap:.5rem}.discord-preview-embed{border-left:4px solid var(--accent);padding:.75rem 1rem;background:#2b2d31;border-radius:.35rem;margin-top:.75rem}.discord-preview{min-height:200px}.error-text{color:#f87171}.button-row{display:flex;gap:.75rem;margin-top:1rem}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}}