:root { --bg:#0f1420; --card:#1a2232; --text:#e6ebf5; --dim:#8a94a8; --accent:#4da3ff;
        --up:#ff5b5b; --down:#4d7dff; --warn:#ffb020; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text);
       font-family:-apple-system,'Apple SD Gothic Neo','Noto Sans KR',sans-serif; }
.topnav { display:flex; gap:20px; align-items:center; padding:12px 24px;
          background:var(--card); border-bottom:1px solid #26304a; }
.topnav a { color:var(--dim); text-decoration:none; }
.topnav a:hover, .topnav .brand { color:var(--text); }
.topnav .right { margin-left:auto; }
main { max-width:1200px; margin:0 auto; padding:24px; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.card { background:var(--card); border:1px solid #26304a; border-radius:10px; padding:14px; }
.badge { display:inline-block; padding:2px 10px; border-radius:12px; font-size:12px; }
.badge.expansion { background:#153f2a; color:#5fd38a; }
.badge.peak { background:#4a3414; color:var(--warn); }
.badge.contraction { background:#46181d; color:var(--up); }
.badge.trough { background:#15304a; color:var(--accent); }
.badge.unknown { background:#333; color:var(--dim); }
.stale-warn { color:var(--warn); font-size:12px; }
.dim { color:var(--dim); }
.login-body { display:flex; align-items:center; justify-content:center; height:100vh;
              background:var(--bg); }
.login-box { background:var(--card); padding:40px; border-radius:12px; display:flex;
             flex-direction:column; gap:12px; width:300px; }
.login-box input, .login-box button { padding:10px; border-radius:8px; border:1px solid #26304a; }
.login-box button { background:var(--accent); color:#fff; border:none; cursor:pointer; }
table.list { width:100%; border-collapse:collapse; }
table.list td, table.list th { padding:8px 10px; border-bottom:1px solid #26304a; text-align:left; }
