:root { --green:#5ca060; --green-d:#4a8a4e; --ink:#1f2937; --muted:#6b7280; --line:#e5e7eb; --bg:#f9fafb; --card:#fff; --red:#b91c1c; --amber:#b45309; --blue:#1d4ed8; }
* { box-sizing:border-box; }
html, body { margin:0; font-family:"Poppins", system-ui, sans-serif; background:var(--bg); color:var(--ink); font-size:14px; }
a { color:var(--green-d); text-decoration:none; } a:hover { text-decoration:underline; }
.wrap { max-width:1200px; margin:0 auto; padding:24px 20px; }
.center { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.top { display:flex; align-items:center; gap:24px; padding:12px 20px; background:#fff; border-bottom:1px solid var(--line); }
.top .brand { font-weight:600; color:var(--ink); }
.top nav a { margin-right:16px; color:var(--muted); font-weight:500; } .top nav a.on { color:var(--ink); border-bottom:2px solid var(--green); padding-bottom:4px; }
.top .me { margin-left:auto; display:flex; gap:10px; align-items:center; color:var(--muted); }
.pill { font-size:11px; padding:2px 8px; border-radius:999px; background:#eef2f7; color:var(--muted); } .pill-admin { background:#e8f5e9; color:var(--green-d); }
.card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:28px; box-shadow:0 1px 2px rgba(0,0,0,.03); }
.login { width:100%; max-width:400px; text-align:left; }
.login .logo { font-size:40px; text-align:center; } .login h1 { text-align:center; font-size:20px; margin:4px 0 18px; }
.muted { color:var(--muted); } .small { font-size:12px; } .tag { font-size:11px; color:var(--amber); }
.lbl { display:block; font-weight:500; margin:12px 0 6px; }
.fld { width:100%; border:1px solid var(--line); border-radius:10px; padding:11px 13px; font-size:15px; background:#fff; font-family:inherit; }
.fld:focus { outline:none; box-shadow:0 0 0 2px rgba(92,160,96,.3); border-color:transparent; }
.code { letter-spacing:10px; text-align:center; font-size:24px; font-weight:600; }
textarea.fld { min-height:160px; resize:vertical; }
.btn { display:inline-block; border:none; border-radius:10px; background:var(--green); color:#fff; font-size:15px; font-weight:600; cursor:pointer; padding:11px 18px; margin-top:14px; font-family:inherit; }
.btn:hover { filter:brightness(1.05); } .btn.full { width:100%; } .btn.ghost { background:#fff; color:var(--ink); border:1px solid var(--line); } .btn.danger { background:#fff; color:var(--red); border:1px solid #fecaca; }
.btn.sm { padding:6px 10px; font-size:12px; margin:0; }
button.link { background:none; border:none; color:var(--green-d); cursor:pointer; padding:0; font:inherit; font-size:12px; }
.check { display:flex; gap:8px; align-items:center; margin-top:12px; color:var(--muted); } .check input { accent-color:var(--green); width:16px; height:16px; }
.row-between { display:flex; justify-content:space-between; margin-top:14px; }
.flash { border-radius:10px; padding:10px 14px; margin-bottom:16px; font-size:13px; }
.flash-error { background:#fef2f2; color:var(--red); border:1px solid #fecaca; } .flash-ok { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; }
h1.page { font-size:22px; margin:0 0 16px; display:flex; align-items:center; gap:12px; } h1.page .count { font-size:13px; color:var(--muted); font-weight:400; }
table.grid { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
table.grid th, table.grid td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
table.grid th { font-size:12px; color:var(--muted); font-weight:500; background:#fafafa; }
table.grid tr:last-child td { border-bottom:none; }
.state { font-size:12px; padding:2px 8px; border-radius:999px; font-weight:500; white-space:nowrap; }
.state-working { background:#e0f2fe; color:var(--blue); } .state-blocked { background:#fef3c7; color:var(--amber); }
.state-done { background:#e8f5e9; color:var(--green-d); } .state-failed, .state-stopped { background:#fee2e2; color:var(--red); } .state-unknown { background:#eef2f7; color:var(--muted); }
.chip { display:inline-block; font-size:11px; padding:1px 7px; border-radius:6px; background:#f3f4f6; color:var(--ink); margin-right:4px; }
.actions a, .actions button { margin-right:8px; }
.repos { display:flex; gap:14px; flex-wrap:wrap; margin-top:6px; } .repos label { display:flex; gap:6px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:8px 12px; cursor:pointer; background:#fff; }
.two { display:grid; grid-template-columns:2fr 1fr; gap:20px; } @media (max-width:900px) { .two { grid-template-columns:1fr; } }
pre.prompt { white-space:pre-wrap; background:#fafafa; border:1px solid var(--line); border-radius:10px; padding:12px; font-size:13px; }
dl.kv { display:grid; grid-template-columns:140px 1fr; gap:6px 12px; margin:0; } dl.kv dt { color:var(--muted); } dl.kv dd { margin:0; }
.term-page { background:#111; margin:0; } .term-bar { display:flex; align-items:center; gap:14px; padding:8px 14px; background:#1b1b1b; color:#ddd; font-size:13px; border-bottom:1px solid #333; } .term-bar a { color:#9ad; }
#term { position:absolute; top:40px; left:0; right:0; bottom:0; padding:6px; }
.empty { color:var(--muted); padding:24px; text-align:center; }
select.fld { padding:9px 12px; }
