:root{--bg: #0d1117;--bg-elev: #161b22;--bg-elev-2: #1c2330;--border: #2a313c;--text: #e6edf3;--text-dim: #9aa7b4;--accent: #4f8cff;--accent-hover: #6ea0ff;--green: #2ea043;--amber: #d29922;--gray: #6e7681;--radius: 16px;--shadow: 0 8px 30px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(1200px 700px at 70% -10%,#18233a 0%,var(--bg) 55%);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.centered{display:flex;align-items:center;justify-content:center;height:100%}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-bg{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px;display:flex;flex-direction:column;gap:14px}.login-logo{font-size:28px;font-weight:700;text-align:center}.login-sub{margin:0 0 6px;text-align:center;color:var(--text-dim);font-size:14px}.login-card input{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);font-size:16px;outline:none}.login-card input:focus{border-color:var(--accent)}.login-card button{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:600;cursor:pointer}.login-card button:hover:not(:disabled){background:var(--accent-hover)}.login-card button:disabled{opacity:.55;cursor:default}.login-error{color:#ff7b72;font-size:14px;text-align:center}.page{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--border);background:#0d1117b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.brand{font-weight:700;font-size:17px}.topbar .brand:first-child{margin-right:auto}.topbar .brand+.ghost-btn,.topbar .brand+a{margin-left:auto}.ghost-btn{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:10px;padding:8px 14px;font-size:14px;cursor:pointer;text-decoration:none}.ghost-btn:hover{color:var(--text);border-color:var(--gray)}.content{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:32px 24px 64px}.greeting{font-size:26px;font-weight:700;margin:4px 0 28px}.error-banner{background:#2d1416;border:1px solid #5c2326;color:#ff9b94;padding:12px 16px;border-radius:10px;margin-bottom:20px}.cat-section{margin-bottom:34px}.cat-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 14px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.card{display:flex;align-items:flex-start;gap:16px;text-align:left;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:20px;color:var(--text);cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease;font:inherit}.card:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);background:var(--bg-elev-2)}.card:disabled{cursor:default;opacity:.55}.card-emoji{font-size:28px;line-height:1;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-elev-2);border-radius:12px;flex-shrink:0}.card-body{flex:1;min-width:0}.card-title-row{display:flex;align-items:center;gap:8px;justify-content:space-between}.card-title{font-weight:600;font-size:16px}.card-desc{margin:6px 0 0;color:var(--text-dim);font-size:13px;line-height:1.45}.badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}.badge-live{background:#2ea04326;color:#4ddb6f}.badge-wip{background:#d2992226;color:#e3b341}.badge-planned{background:#6e768126;color:var(--gray)}.app-view{height:100%}.embed-frame{flex:1;width:100%;border:none;background:#fff}.placeholder{text-align:center;padding:80px 20px;color:var(--text-dim)}.placeholder-emoji{font-size:56px;margin-bottom:12px}.placeholder h1{color:var(--text);margin:0 0 8px}.muted{color:var(--gray);font-size:14px}@media (max-width: 600px){.content{padding:24px 16px 48px}.greeting{font-size:22px}}
