:root{--bg:#f6f7f9;--panel:#ffffff;--ink:#1a1f29;--muted:#6b7280;--line:#e5e7eb;--brand:#2f6df0;--good:#16a34a;--warn:#d97706;--bad:#dc2626;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:var(--brand);text-decoration:none}.nav{display:flex;align-items:center;gap:1.25rem;background:var(--panel);border-bottom:1px solid var(--line);padding:0 1.5rem;height:56px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.nav .brand{font-weight:700;letter-spacing:-.01em}.nav a{color:var(--muted);font-weight:500;padding:4px 2px}.nav a.active,.nav a:hover{color:var(--ink)}.nav .spacer{flex:1 1}.nav .who{color:var(--muted);font-size:13px}.wrap{max-width:1100px;margin:0 auto;padding:1.75rem 1.5rem}h1{font-size:20px;margin:0 0 .25rem;letter-spacing:-.01em}.sub{color:var(--muted);margin:0 0 1.5rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:1rem;gap:1rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}.card .label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.card .value{font-size:26px;font-weight:650;margin-top:6px;letter-spacing:-.02em}.card .value.small{font-size:15px;font-weight:550}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:1.25rem}.panel h2{font-size:14px;margin:0;padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.7rem 1.1rem;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:550;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}.empty{padding:2rem 1.1rem;color:var(--muted)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#eef2f7;color:#334155}.badge.review{background:#fef3c7;color:#92400e}.badge.blocked{background:#fee2e2;color:#991b1b}.badge.approved,.badge.done,.badge.published{background:#dcfce7;color:#166534}.badge.running{background:#dbeafe;color:#1e40af}button{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:6px 12px;border-radius:8px;cursor:pointer}button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}button.ghost{color:var(--muted)}button:hover{filter:brightness(.98)}.login{max-width:360px;margin:8vh auto}.login .panel{padding:1.5rem}.login input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;margin-top:.5rem;font:inherit}.login button{width:100%;margin-top:1rem}.err{color:var(--bad);margin-top:.75rem;font-size:13px}.note{color:var(--muted);font-size:12px;margin-top:1rem}