:root{--main:#1b7f5c;--bg:#f4f7f5;--ink:#14231c;--mute:#5b6b63;--warn:#b45309;--bad:#b91c1c;--card:#fff;--line:#cbd5d0}@media(prefers-color-scheme:dark){:root{--bg:#0f1713;--ink:#e6f0ea;--mute:#9db0a6;--card:#18231d;--line:#2c3b33}}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:var(--bg);color:var(--ink);padding-bottom:72px}header.top{background:var(--main);color:#fff;padding:10px 14px;position:sticky;top:0;z-index:5}header.top small{opacity:.85;display:block}nav.tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid var(--line);z-index:5}nav.tabs button{flex:1;padding:12px 4px;border:0;background:none;color:var(--mute);font-size:13px}nav.tabs button.on{color:var(--main);font-weight:700;border-top:3px solid var(--main)}main{max-width:760px;margin:0 auto;padding:8px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0}.card h3{margin:0 0 4px;font-size:16px}.muted{color:var(--mute);font-size:13px}.row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}button.btn,a.btn{background:var(--main);color:#fff;border:0;border-radius:10px;padding:10px 14px;font-size:14px;text-decoration:none;display:inline-block}button.btn.ghost{background:none;color:var(--main);border:1px solid var(--main)}button.btn.warn{background:var(--warn)}button.btn:disabled{opacity:.5}button.chip{border:1px solid var(--main);background:none;color:var(--ink);border-radius:16px;padding:6px 12px}button.chip.on{background:var(--main);color:#fff}input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);margin:4px 0;font-size:15px}.banner{padding:8px 12px;border-radius:8px;margin:8px 0}.banner.ok{background:#d1fae5;color:#065f46}.banner.warn{background:#fef3c7;color:#92400e}.banner.bad{background:#fee2e2;color:#991b1b}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}.tri{display:flex;gap:4px}.tri button{flex:1;padding:6px 2px;border:1px solid var(--line);background:none;color:var(--ink);border-radius:6px;font-size:12px}.tri button.sel{background:var(--main);color:#fff;border-color:var(--main)}.tri button.sel.off{background:var(--bad);border-color:var(--bad)}
