:root{
  --bg:#f6f7f9; --panel:#ffffff; --border:#e2e5ea; --text:#1f2430; --muted:#6b7280;
  --accent:#2563eb; --accent-dark:#1d4ed8; --danger:#dc2626; --ok:#16a34a; --warn:#d97706;
}
*{box-sizing:border-box;}
body{
  margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--text);
}
.wrap{max-width:1180px;margin:0 auto;padding:24px;}
.wrap.narrow{max-width:420px;padding-top:60px;}
h1{font-size:22px;margin:0 0 4px;}
.sub{color:var(--muted);font-size:14px;}
.panel{
  background:var(--panel); border:1px solid var(--border); border-radius:10px;
  padding:18px 20px; margin-bottom:16px;
}
.panel h2{font-size:14px;margin:0 0 12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
input[type=text],input[type=email],input[type=password]{
  border:1px solid var(--border); border-radius:6px; padding:9px 10px; font-size:14px;
  flex:1; min-width:180px; background:#fff; width:100%;
}
label.field{display:block;font-size:13px;font-weight:600;margin:12px 0 6px;}
button{
  border:none; border-radius:6px; padding:9px 16px; font-size:14px; cursor:pointer;
  background:var(--accent); color:#fff; font-weight:500;
}
button:hover{background:var(--accent-dark);}
button.secondary{background:#fff;color:var(--text);border:1px solid var(--border);}
button.secondary:hover{background:#f0f1f3;}
button.danger{background:#fff;color:var(--danger);border:1px solid #f3caca;}
button.danger:hover{background:#fef2f2;}
button:disabled{opacity:.5;cursor:not-allowed;}
button.full{width:100%;padding:11px;font-size:15px;margin-top:16px;}
.note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5;}
.error-box{background:#fef2f2;border:1px solid #f3caca;color:#991b1b;padding:10px 12px;border-radius:6px;font-size:13px;margin-top:12px;display:none;}
.error-box.show{display:block;}
.ok-box{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:10px 12px;border-radius:6px;font-size:13px;margin-top:12px;display:none;}
.ok-box.show{display:block;}
nav.topbar{
  display:flex;justify-content:space-between;align-items:center;padding:12px 24px;
  background:#fff;border-bottom:1px solid var(--border);
}
nav.topbar .brand{font-weight:700;}
nav.topbar a{color:var(--muted);text-decoration:none;font-size:13px;margin-left:16px;}
nav.topbar a:hover{color:var(--text);}
.banner{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;}
.banner.trial{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;}
.banner.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a;}
.banner.expired{background:#fef2f2;color:#991b1b;border:1px solid #f3caca;}
.drop{
  border:2px dashed var(--border); border-radius:10px; padding:28px; text-align:center;
  color:var(--muted); cursor:pointer; transition:.15s; background:#fafbfc;
}
.drop.drag{border-color:var(--accent); background:#eff6ff; color:var(--accent-dark);}
.filelist{margin-top:12px; display:flex; flex-wrap:wrap; gap:8px;}
.chip{
  background:#eef1f5; border-radius:14px; padding:5px 10px 5px 12px; font-size:13px;
  display:flex; align-items:center; gap:6px;
}
.chip button{background:none;color:var(--muted);padding:0 2px;font-size:14px;font-weight:700;}
.chip button:hover{color:var(--danger);}
.status-line{font-size:13px;padding:4px 0;border-bottom:1px solid #f1f2f4;}
.status-ok{color:var(--ok);} .status-err{color:var(--danger);} .status-skip{color:var(--warn);}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{
  text-align:left;background:#f3f4f6;padding:8px;font-weight:600;color:var(--muted);
  text-transform:uppercase;font-size:11px;letter-spacing:.03em;border-bottom:1px solid var(--border);
  white-space:nowrap;
}
td{padding:4px;border-bottom:1px solid #f1f2f4;vertical-align:top;}
td input{width:100%;border:1px solid transparent;border-radius:4px;padding:6px 7px;font-size:13px;background:transparent;}
td input:focus{border-color:var(--accent);background:#fff;outline:none;}
.del-btn{background:none;color:var(--muted);font-size:14px;padding:4px 8px;}
.del-btn:hover{color:var(--danger);}
.table-wrap{overflow-x:auto;}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:10px;}
.count{font-size:13px;color:var(--muted);}
.empty{color:var(--muted);font-size:14px;padding:30px 0;text-align:center;}
.plan-cards{display:flex;gap:14px;flex-wrap:wrap;}
.plan-card{flex:1;min-width:200px;border:1.5px solid var(--border);border-radius:10px;padding:18px;text-align:center;}
.plan-card .price{font-size:24px;font-weight:700;margin:8px 0;}
.plan-card.current{border-color:var(--ok);background:#f0fdf4;}

/* ---- Branding: logo + footer ---- */
nav.topbar .brand{display:flex;align-items:center;gap:10px;}
nav.topbar .brand img{height:24px;width:auto;display:block;}
.auth-logo{display:block;margin:0 auto 16px;height:42px;width:auto;}
footer.site-footer{
  max-width:1180px;margin:32px auto 0;padding:16px 24px 28px;
  border-top:1px solid var(--border);color:var(--muted);font-size:12px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;
}
footer.site-footer .footer-brand{display:flex;align-items:center;gap:8px;}
footer.site-footer img{height:16px;width:auto;opacity:.85;}
footer.site-footer a{color:var(--accent);text-decoration:none;font-weight:600;}
footer.site-footer a:hover{text-decoration:underline;}
.auth-footer{text-align:center;margin-top:22px;color:var(--muted);font-size:12px;display:flex;align-items:center;justify-content:center;gap:6px;}
.auth-footer img{height:14px;width:auto;opacity:.85;}
.auth-footer a{color:var(--accent);text-decoration:none;font-weight:600;}
.auth-footer a:hover{text-decoration:underline;}
