:root{--bg:#0b0c10;--card:#11131a;--text:#e7eaf0;--muted:#9aa3b2;--ok:#1f8a70;--err:#c0392b;--bd:#222636;}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit}
.container{max-width:920px;margin:0 auto;padding:16px}
.topbar{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:rgba(11,12,16,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--bd);z-index:10}
.brandlink{text-decoration:none;font-weight:700}
.btn{background:#2d6cdf;border:none;color:white;padding:10px 12px;border-radius:10px;font-weight:600}
.btn-small{padding:8px 10px;border-radius:10px}
.btn-ghost{background:transparent;border:1px solid var(--bd);color:var(--text)}
.inline{display:inline}
.card{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:14px;margin:14px 0}
label{display:block;margin:10px 0;color:var(--muted);font-size:.95rem}
input,select{width:100%;padding:10px;border-radius:12px;border:1px solid var(--bd);background:#0f1117;color:var(--text);margin-top:6px}
.row{display:flex;gap:10px;align-items:center}
.row input[type="checkbox"]{width:auto;margin:0}
.row > *{flex:1}
.row .btn{flex:0 0 auto}
.flash{margin:12px 16px;border-radius:14px;padding:10px 12px;border:1px solid var(--bd)}
.flash.ok{background:rgba(31,138,112,.18);border-color:rgba(31,138,112,.35)}
.flash.err{background:rgba(192,57,43,.18);border-color:rgba(192,57,43,.35)}
.muted{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.tile{display:block;text-decoration:none;background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:14px}
.tile.disabled{opacity:.5}
.tile-title{font-weight:700}
.tile-sub{color:var(--muted);margin-top:6px}
.working{position:fixed;left:12px;right:12px;bottom:12px;background:rgba(17,19,26,.95);border:1px solid var(--bd);border-radius:16px;padding:10px 12px;display:flex;gap:10px;align-items:center;z-index:999}
.hidden{display:none}
.spinner{width:16px;height:16px;border:2px solid var(--bd);border-top-color:var(--text);border-radius:999px;animation:spin 0.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dbg{position:fixed;left:12px;right:12px;bottom:70px;max-height:55vh;background:#0f1117;border:1px solid var(--bd);border-radius:16px;overflow:hidden;z-index:1000}
.dbg-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--bd);background:rgba(17,19,26,.95)}
.dbg-actions{display:flex;gap:8px}
#dbgPre{margin:0;padding:10px 12px;overflow:auto;max-height:calc(55vh - 46px);font-size:12px;line-height:1.35}
@media (max-width:560px){.grid{grid-template-columns:1fr}.row{flex-direction:column;align-items:stretch}}
