/* OceanVault — estilo do painel */
:root{
  --bg:#0f172a; --bg2:#1e293b; --card:#ffffff; --ink:#0f172a; --muted:#64748b;
  --line:#e2e8f0; --brand:#0ea5e9; --brand2:#0284c7; --ok:#16a34a; --okbg:#dcfce7;
  --err:#dc2626; --errbg:#fee2e2; --radius:12px;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  background:#f1f5f9;color:var(--ink);line-height:1.5}
a{color:var(--brand2);text-decoration:none}
a:hover{text-decoration:underline}
code{background:#f1f5f9;padding:1px 6px;border-radius:5px;font-size:.88em}

/* Topbar */
.topbar{display:flex;justify-content:space-between;align-items:center;
  background:var(--bg);color:#fff;padding:12px 24px}
.topbar .brand a{color:#fff;font-weight:700;font-size:1.1rem}
.topbar nav{display:flex;gap:18px;align-items:center}
.topbar nav a{color:#cbd5e1}
.topbar nav a:hover{color:#fff;text-decoration:none}
.topbar .user{color:#94a3b8;font-size:.9rem}
.topbar .logout{color:#fca5a5}

.container{max-width:1080px;margin:0 auto;padding:28px 24px}
.container.auth{max-width:420px;margin-top:8vh}

.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.page-head h1{font-size:1.5rem;margin:0}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;margin-bottom:18px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.card.center{text-align:center}
.card.help{background:#f8fafc}
.card.danger{border-color:#fecaca;background:#fef2f2}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.grid.two{grid-template-columns:1fr 1fr}
.grid.stats{grid-template-columns:repeat(3,1fr)}
.stat .num{font-size:2.2rem;font-weight:700;color:var(--brand2)}

.muted{color:var(--muted)}
.small{font-size:.85rem}
.big-code{font-size:3.5rem;font-weight:800;color:var(--brand)}

/* Botões */
.btn{display:inline-block;padding:9px 16px;border-radius:9px;border:1px solid var(--line);
  background:#fff;color:var(--ink);font-size:.92rem;cursor:pointer;font-weight:500}
.btn:hover{text-decoration:none;border-color:#cbd5e1}
.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.primary:hover{background:var(--brand2)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--brand2)}
.btn.danger{color:var(--err);border-color:#fca5a5}
.btn.danger:hover{background:var(--errbg)}

/* Forms */
label{display:block;margin:12px 0;font-weight:500;font-size:.92rem}
input,select,textarea{width:100%;padding:10px 12px;margin-top:5px;border:1px solid var(--line);
  border-radius:9px;font-size:.95rem;font-family:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);border-color:var(--brand)}
fieldset{border:1px solid var(--line);border-radius:9px;margin:14px 0;padding:12px}
.radio{display:inline-block;margin-right:18px;font-weight:400}
.radio input{width:auto;margin-right:6px}

/* Login */
.login-card{max-width:380px;margin:0 auto;text-align:center}
.login-brand{font-size:1.5rem;margin-bottom:4px}
.login-card form{text-align:left;margin-top:18px}
.login-card .btn{width:100%;margin-top:10px}

/* Flash */
.flash{padding:12px 16px;border-radius:9px;margin-bottom:16px;font-size:.92rem;word-break:break-word}
.flash.ok{background:var(--okbg);color:#166534}
.flash.error{background:var(--errbg);color:#991b1b}

/* Site cards */
.site-card .site-top{display:flex;justify-content:space-between;align-items:start;gap:8px}
.site-card h3{margin:0 0 4px}
.site-meta{margin:10px 0}
.site-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.badge{background:#e0f2fe;color:#0369a1;padding:2px 10px;border-radius:20px;font-size:.75rem;white-space:nowrap}
.badge.off{background:#f1f5f9;color:#94a3b8}

/* Tabelas */
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.row-actions{white-space:nowrap}

/* Admin nav */
.admin-nav{display:flex;gap:6px;margin-bottom:22px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.admin-nav a{padding:10px 16px;color:var(--muted);border-bottom:2px solid transparent;font-weight:500}
.admin-nav a.active{color:var(--brand2);border-bottom-color:var(--brand)}

/* Dropzone */
.dropzone{border:2px dashed #cbd5e1;border-radius:12px;padding:28px;text-align:center;
  margin:16px 0;background:#f8fafc;transition:.15s}
.dropzone.over{border-color:var(--brand);background:#eff6ff}
.dropzone input{width:auto;margin:6px auto;display:block}

.code{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:9px;overflow-x:auto;
  font-size:.82rem;line-height:1.5}
details summary{cursor:pointer;list-style:none}
.foot{text-align:center;padding:24px;font-size:.82rem}

@media(max-width:640px){
  .grid.stats{grid-template-columns:1fr}
  .grid.two{grid-template-columns:1fr}
  .topbar{flex-direction:column;gap:10px}
}
