:root{color-scheme:light dark;--fg: #1a1a1a;--muted: #666;--border: #d0d0d0;--accent: #2b5fff;--err: #b00020}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f6f7f9;color:var(--fg);display:flex;min-height:100vh;align-items:center;justify-content:center}.card{background:#fff;width:min(24rem,92vw);margin:2rem;padding:2rem;border-radius:12px;box-shadow:0 1px 3px #00000014,0 8px 24px #0000000f}.logo{display:block;max-width:230px;height:auto;margin:0 auto 1.25rem}h1{font-size:1.25rem;margin:0 0 .25rem;text-align:center}.muted{color:var(--muted);font-size:.9rem;text-align:center;margin-top:0}label{display:block;margin:.9rem 0 .3rem;font-size:.85rem;font-weight:600}input{width:100%;padding:.6rem .7rem;border:1px solid var(--border);border-radius:8px;font-size:1rem}button{width:100%;margin-top:1.25rem;padding:.65rem 1rem;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer}button:disabled{opacity:.6;cursor:default}button.secondary{margin-top:.75rem;background:#fff;color:var(--accent);border:1px solid var(--accent)}.err{color:var(--err);font-size:.9rem}ul{padding-left:1.2rem}.card.portal,.card.apps{width:min(52rem,96vw)}.portal-main{display:flex;gap:1.5rem;margin-top:1.5rem}.portal-nav{display:flex;flex-direction:column;gap:.25rem;flex:0 0 12rem}.portal-content{flex:1 1 auto;min-width:0}.portal-content .section:first-of-type{margin-top:0;padding-top:0;border-top:0}.nav-item{width:100%;margin:0;padding:.55rem .75rem;text-align:left;background:none;color:var(--fg);border:0;border-radius:8px;font-size:.95rem;font-weight:600}.nav-item:hover{background:#f2f3f5}.nav-item.active{background:var(--accent);color:#fff}.nav-back{margin-top:.75rem;padding:.55rem .75rem;color:var(--muted);font-size:.9rem;text-decoration:none}@media(max-width:640px){.portal-main{flex-direction:column;gap:1rem}.portal-nav{flex-direction:row;flex:none;gap:.5rem;overflow-x:auto;padding-bottom:.25rem}.nav-item{width:auto;white-space:nowrap}.nav-back{margin-top:0;align-self:center;white-space:nowrap}}.app-grid{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:1rem}.app-card{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.25rem .75rem;border:1px solid var(--border);border-radius:12px;color:var(--fg);text-align:center;text-decoration:none}.app-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #00000014}.app-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:12px;background:var(--accent);color:#fff;font-size:1.4rem;font-weight:700}.app-name{font-size:.9rem;font-weight:600;word-break:break-word}.section{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.section h2{font-size:1rem;margin:0 0 .25rem}.ok{color:#0a7d33;font-size:.9rem}.secret{display:block;margin:.5rem 0;padding:.6rem .7rem;background:#f2f3f5;border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;word-break:break-all}.passkeys{list-style:none;padding:0}.passkeys li{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--muted)}button.link{width:auto;margin:0;padding:.2rem .4rem;background:none;color:var(--err);font-size:.85rem;font-weight:600}.signout{display:block;margin-top:1.75rem;text-align:center;color:var(--muted);font-size:.9rem}
