:root{--bg: #f2f2f7;--surface: #ffffff;--border: #d1d1d6;--text: #1c1c1e;--text-muted: #6c6c70;--accent: #0a84ff;--negative: #ff453a}@media (prefers-color-scheme: dark){:root{--bg: #1a1a1a;--surface: #1e1e1e;--border: #333333;--text: #e8e8e8;--text-muted: #999999;--negative: #ff6961}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.muted{color:var(--text-muted)}.error{color:var(--negative);font-size:14px}button{font:inherit;font-size:14px;padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}button.primary{padding:10px 28px;font-size:15px;font-weight:600;border:none;background:var(--accent);color:#fff}.center{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:16px}.login h1{font-size:28px;font-weight:700}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;border-bottom:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700}.account{display:flex;align-items:center;gap:12px;font-size:14px;min-width:0}.account span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{max-width:880px;margin:0 auto;padding:40px 16px}.apps{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.app{height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:28px 16px 24px;border-radius:16px;border:1px solid var(--border);background:var(--surface);color:inherit;text-decoration:none;transition:transform .15s,border-color .15s}.app:hover,.app:focus-visible{transform:translateY(-2px);border-color:var(--accent);outline:none}.app img{border-radius:14px;margin-bottom:8px}.app .name{font-size:16px;font-weight:600}.app .description{font-size:13px;color:var(--text-muted)}@media (max-width: 480px){header{padding:12px 16px}.apps{grid-template-columns:repeat(2,1fr);gap:12px}.app{padding:20px 12px}}
