:root{
  --bg:#f5f6f8; --card:#ffffff; --ink:#1c2430; --muted:#5d6878; --line:#dde2e8;
  --accent:#0f5c8c; --accent-soft:#e6f0f7; --err:#a1261b; --err-soft:#fdecea;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#12161c; --card:#1b2129; --ink:#e8ecf1; --muted:#9aa5b4; --line:#2c3440;
    --accent:#5fa8d8; --accent-soft:#1d2d3b; --err:#f08a80; --err-soft:#3a1f1c;
  }
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
main{max-width:880px;margin:0 auto;padding:24px 16px 48px}
h1{font-size:1.5rem;margin:0 0 4px}
.sub{color:var(--muted);margin:0 0 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
label{display:block;font-weight:600;margin:14px 0 4px}
input[type=text],input[type=password]{width:100%;font-size:1.05rem;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);outline:none}
input:focus{border-color:var(--accent)}
button,.btn{display:inline-block;margin-top:18px;padding:10px 18px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none}
.err{margin-top:14px;padding:10px 12px;border-radius:8px;background:var(--err-soft);color:var(--err);font-size:.92rem}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.top a{color:var(--muted);font-size:.92rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
a.app{display:block;text-decoration:none;color:var(--ink)}
a.app:hover{border-color:var(--accent)}
.app h2{font-size:1.02rem;margin:0 0 6px}
.app p{margin:0;color:var(--muted);font-size:.9rem}
.tag{display:inline-block;margin-top:10px;font-size:.75rem;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 8px}
h3{font-size:.9rem;margin:26px 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
code,textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}
textarea{width:100%;min-height:90px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.hint{font-size:.83rem;color:var(--muted);margin-top:4px}
