:root{
  --bg:#0b1422; --bg2:#172236; --txt:#e9eef7; --muted:#a9b3c5;
  --accent:#0c6dff; --ok:#18b36b; --warn:#e7b416; --err:#e34b4b;
  --card:#101a2b; --border:#243049;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--txt);font-family:system-ui,Segoe UI,Arial}

.wrap{max-width:1000px;margin:0 auto;padding:16px}

.topbar{background:var(--bg2);border-bottom:1px solid var(--border)}
.topbar .brand{font-weight:700}
.topbar .menu a{margin-left:12px;text-decoration:none;color:var(--txt);opacity:.9}
.topbar .menu a.accent{color:#fff;background:var(--accent);padding:8px 12px;border-radius:10px}
.topbar .menu a.danger{color:#fff;background:#b94242;padding:8px 12px;border-radius:10px}

.content{padding:24px 0}
.foot{border-top:1px solid var(--border);padding:16px 0;color:var(--muted)}

h1,h2{margin:0 0 12px}
p{margin:0 0 10px}
.muted{color:var(--muted)}
.small{font-size:.9rem}
.mt-s{margin-top:8px}

.card{background:var(--card);border:1px solid var(--border);border-radius:12px}
.p{padding:16px}
.form{padding:16px;display:flex;flex-direction:column;gap:12px;max-width:420px}
.form label{display:flex;flex-direction:column;gap:6px}
.form input{background:#0e1829;border:1px solid var(--border);color:var(--txt);padding:10px;border-radius:10px}
.form button{background:var(--accent);color:#fff;border:0;padding:10px 14px;border-radius:10px;cursor:pointer}

.flashes{margin-bottom:12px}
.flash{padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#0e1829}
.flash.ok{border-color:#1f6e53}
.flash.warn{border-color:#8b6d22}
.flash.error{border-color:#8c2b2b}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:12px 0}
.link{display:block;padding:14px;text-decoration:none;color:var(--txt)}
.link:hover{border-color:var(--accent)}
.link-title{font-weight:600;margin-bottom:6px}
.link-url{color:var(--muted);font-size:.9rem;word-break:break-all}
