:root{
  --teal:#98c2c0; --teal-deep:#4f8a85; --bg:#e6f1f0;
  --ink:#333; --muted:#5b5b5b; --accent:#2f5d57; --accent-deep:#244a45;
  --line:#e2e2e2; --card:#fff;
  --display:"DM Serif Display",Georgia,serif;
  --body:"Open Sans","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--body);color:var(--ink);
  background:linear-gradient(160deg,#98c2c0 0%,#4f8783 45%,#1f3b3a 100%);
  min-height:100vh;min-height:100svh}
.auth-wrap{min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:24px}
.auth-card{width:100%;max-width:420px;background:var(--card);border-radius:14px;
  padding:34px 30px 30px;box-shadow:0 24px 60px -24px rgba(0,0,0,.45)}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.brand-logo{height:38px;width:auto;max-width:100%}
.brand-dot{width:30px;height:30px;border-radius:50%;background:var(--teal);flex:none}
.brand strong{font-family:var(--display);font-size:22px;color:#111;letter-spacing:.01em}
h1{font-family:var(--display);font-weight:400;font-size:28px;margin:0 0 6px;color:var(--ink)}
.sub{margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.5}
label{display:block;font-size:13px;font-weight:600;margin:14px 0 6px;color:var(--ink)}
input[type=text],input[type=email],input[type=password]{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;
  font-size:16px;font-family:inherit;color:var(--ink);background:#fff}
input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
button{width:100%;margin-top:20px;padding:13px 18px;border:0;border-radius:999px;
  background:var(--accent);color:#fff;font-family:inherit;font-weight:700;font-size:15px;
  letter-spacing:.02em;cursor:pointer;transition:background .2s}
button:hover{background:var(--accent-deep)}
.flash{margin:4px 0 14px;padding:11px 14px;border-radius:8px;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.flash.ok{background:#e7f3ec;color:#1e6b43;border:1px solid #bfe0ce}
.flash.err{background:#fbe7ee;color:#92244b;border:1px solid #f0c3d3}
.flash.info{background:#eaf1f4;color:#2c5566;border:1px solid #cbe0e8}
.foot{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);
  font-size:14px;color:var(--muted);text-align:center;line-height:1.7}
.foot a{color:var(--accent);font-weight:600;text-decoration:none}
.foot a:hover{text-decoration:underline}
/* admin table */
.admin-wrap{max-width:900px;margin:40px auto;padding:0 20px;font-family:var(--body);color:var(--ink)}
.admin-wrap h1{font-family:var(--display)}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);font-size:14px}
th{background:#f3f7f7;font-weight:700}
td .act{display:inline-block;margin-right:8px;color:var(--accent);font-weight:600;text-decoration:none}
.tag{font-size:12px;padding:2px 8px;border-radius:999px;font-weight:700}
.tag.pending{background:#fff3e0;color:#9a5a00}
.tag.active{background:#e7f3ec;color:#1e6b43}
.tag.disabled{background:#eee;color:#777}
.bar{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:10px 0 22px}
.bar a{color:var(--accent);font-weight:600;text-decoration:none}
.inline-form{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}
.inline-form input{flex:1;min-width:200px}
.inline-form button{width:auto;margin:0;padding:11px 20px}
