:root{--bg:#f3f4f7;--card:#fff;--ink:#111;--muted:#666;--line:#ececec;--purple:#6c35ff;--violet:#7b3cff;--soft:#dcceff;--neg:#d92d20;--neg-bg:#fde8e6;--radius:24px}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:Segoe UI,Yu Gothic UI,Hiragino Sans,Meiryo,sans-serif;font-size:14px;line-height:1.6}a{color:var(--purple)}.topbar{background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.topbar .brand{align-items:center;gap:10px;min-width:0;display:flex}.topbar .brand a{color:var(--ink);font-weight:700;text-decoration:none}.topbar .brand .sep{color:#bfbfbf}.topbar .brand .app{color:var(--purple);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.topbar .user{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.topbar .user .email{overflow-wrap:anywhere}.btn{font:inherit;cursor:pointer;background:var(--purple);color:#fff;border:0;border-radius:999px;align-items:center;gap:8px;padding:8px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--violet)}.btn.ghost{background:var(--bg);color:var(--ink)}.btn.ghost:hover{background:var(--soft);color:var(--purple)}.page{max-width:1100px;margin:0 auto;padding:32px 24px 64px}.page h1{margin:0 0 6px;font-size:22px}.page .lead{color:var(--muted);margin:0 0 24px}.apps{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.appcard{background:var(--card);border-radius:var(--radius);color:var(--ink);border:2px solid #0000;padding:22px 24px;text-decoration:none;display:block}a.appcard:hover{border-color:var(--soft)}.appcard .slug{color:var(--purple);letter-spacing:.04em;font-size:12px;font-weight:600}.appcard h2{margin:4px 0 6px;font-size:16px}.appcard p{color:var(--muted);margin:0;font-size:13px}.appcard.disabled{opacity:.55}.tag{background:var(--line);color:var(--muted);vertical-align:2px;border-radius:999px;margin-left:6px;padding:1px 9px;font-size:11px;font-weight:600;display:inline-block}.center{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.panel{background:var(--card);border-radius:var(--radius);text-align:center;width:100%;max-width:420px;padding:36px 32px}.panel h1{margin:0 0 6px;font-size:20px}.panel p{color:var(--muted);margin:0 0 22px}.panel .alert{background:var(--neg-bg);color:var(--neg);text-align:left;border-radius:12px;margin-bottom:18px;padding:10px 14px;font-size:13px}.panel .note{color:var(--muted);margin:18px 0 0;font-size:12px}.appframe{flex-direction:column;height:100dvh;display:flex}.appframe iframe{background:var(--bg);border:0;flex:1;width:100%}@media (max-width:600px){.topbar{padding:10px 16px}.page{padding:24px 16px 48px}}
