:root { --bg:#0f1117; --panel:#171a23; --border:#2a2f3c; --text:#e6e8ee; --muted:#9aa1b2; --accent:#5eb1ef; --danger:#e4636f; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:-apple-system,"Segoe UI",Pretendard,sans-serif; }
.screen { min-height:100vh; }
#login-screen { display:flex; align-items:center; justify-content:center; padding:16px; }
#login-screen[hidden] { display:none; }
.login-card { width:100%; max-width:340px; display:flex; flex-direction:column; gap:14px; padding:32px; background:var(--panel); border:1px solid var(--border); border-radius:12px; }
h1,h2,h3,p { margin-top:0; }
.login-card h1 { margin-bottom:0; font-size:20px; }
.sub,.muted { color:var(--muted); }
.sub { margin:-8px 0 8px; font-size:13px; }
label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:13px; }
input { padding:10px 12px; border:1px solid var(--border); border-radius:8px; background:#1e222d; color:var(--text); font-size:14px; }
button { border:0; border-radius:8px; padding:10px 16px; background:var(--accent); color:#0f1117; font-weight:600; cursor:pointer; }
button.ghost { background:transparent; color:var(--muted); border:1px solid var(--border); }
.error { color:var(--danger); font-size:13px; }
.topbar { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; border-bottom:1px solid var(--border); }
.topbar h1 { margin:0; font-size:18px; }
.landing { width:min(960px,100%); margin:0 auto; padding:80px 24px; }
.eyebrow { color:var(--accent); font-size:12px; font-weight:700; letter-spacing:.12em; }
.landing h2 { margin-bottom:8px; font-size:32px; }
.view-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:32px; }
.view-card { min-height:240px; padding:28px; border:1px solid var(--border); border-radius:14px; background:var(--panel); color:var(--text); text-decoration:none; transition:border-color .15s,transform .15s; }
.view-card:hover,.view-card:focus-visible { border-color:var(--accent); transform:translateY(-2px); outline:none; }
.view-icon { display:grid; width:36px; height:36px; place-items:center; border-radius:9px; background:#1e3145; color:var(--accent); font-weight:800; font-size:20px; }
.view-card h3 { margin:20px 0 10px; font-size:20px; }
.view-card p { margin:0; color:var(--muted); line-height:1.6; }
@media (max-width:640px) { .landing { padding:48px 20px; } .landing h2 { font-size:26px; } .view-grid { grid-template-columns:1fr; } }
