:root { --bg:#f3f4f6; --card:#fff; --ink:#111827; --muted:#6b7280; --accent:#2563eb; --line:#e5e7eb; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.5 system-ui,-apple-system,sans-serif; }
main { max-width:880px; margin:2rem auto; padding:0 1rem; }
h1 { margin:.2rem 0 1rem; }

/* Dashboard action bar (replaces the burger on the portal) */
.dash-bar { position:sticky; top:0; z-index:10; display:flex; justify-content:space-between; align-items:center;
  gap:1rem; padding:.55rem 1rem; background:var(--card); border-bottom:1px solid var(--line); }
.dash-bar .brand { font-weight:700; color:var(--ink); font-size:1.1rem; text-decoration:none; }
.dash-actions { display:flex; align-items:center; gap:.4rem; }
.iconbtn { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  border-radius:10px; color:var(--muted); text-decoration:none; transition:background .08s, color .08s; }
.iconbtn:hover { background:var(--bg); color:var(--accent); }
.iconbtn svg { width:20px; height:20px; }
.avatar { width:34px; height:34px; border-radius:50%; background:var(--accent); color:var(--accent-ink);
  display:inline-flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:700;
  letter-spacing:.02em; user-select:none; }

/* Dashboard tiles */
.tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:1rem; }
.tile { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6rem;
  min-height:128px; padding:1.25rem 1rem;
  background:var(--card); border:1px solid var(--line); border-radius:16px; text-decoration:none;
  color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(0,0,0,.04);
  transition:transform .08s, border-color .08s, box-shadow .08s; }
.tile:hover { transform:translateY(-2px); border-color:var(--accent); box-shadow:0 4px 14px rgba(0,0,0,.08); }
.tile-icon { font-size:2.25rem; line-height:1; }
.tile-icon img { display:block; width:56px; height:56px; border-radius:14px; }
.tile-label { font-size:1rem; }
.admin-link { margin-top:1.5rem; }
.admin-link a, main a { color:var(--accent); }

/* Auth screens */
.auth { max-width:360px; }
.auth form { display:flex; flex-direction:column; gap:.75rem; background:var(--card);
  padding:1.25rem; border:1px solid var(--line); border-radius:14px; }
.auth label { display:flex; flex-direction:column; gap:.25rem; font-size:.9rem; color:var(--muted); }
.auth input { padding:.6rem; border:1px solid var(--line); border-radius:8px; font-size:1rem; }
.auth button { padding:.55rem .9rem; border:0; border-radius:8px; background:var(--accent);
  color:#fff; font-weight:600; cursor:pointer; }
.auth button:disabled { opacity:.4; cursor:not-allowed; }
.hint { color:var(--muted); font-size:.9rem; }
.error { color:#b91c1c; }
.flash { background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; padding:.5rem .75rem; border-radius:8px; }

/* Buttons (tap-friendly) */
.btn { padding:.6rem .85rem; border:1px solid var(--line); border-radius:10px; background:var(--card);
  color:var(--ink); font-weight:600; font-size:.9rem; cursor:pointer; min-height:44px; }
.btn:hover { border-color:var(--accent); color:var(--accent); }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.btn.primary { background:var(--accent); color:#fff; border-color:var(--accent); }
.btn.primary:hover { color:#fff; filter:brightness(1.06); }

/* Users — stacked cards (mobile-first) */
.users h2 { margin:1.5rem 0 .5rem; font-size:1.1rem; }
.userlist { display:flex; flex-direction:column; gap:.6rem; }
.user-card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:.85rem 1rem; }
.uhead { display:flex; justify-content:space-between; align-items:baseline; gap:.5rem; flex-wrap:wrap; }
.uemail { font-weight:600; word-break:break-word; }
.uemail em { color:var(--muted); font-weight:400; font-style:normal; font-size:.85rem; }
.badges { display:flex; gap:.35rem; flex-shrink:0; }
.badge { font-size:.7rem; font-weight:600; padding:.15rem .5rem; border-radius:999px; white-space:nowrap; }
.badge-admin { background:#eef2ff; color:#3730a3; }
.badge-off { background:#fef2f2; color:#b91c1c; }
.uname { margin:.25rem 0 0; color:var(--muted); font-size:.9rem; }
.uactions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.75rem; }
.uactions form { margin:0; display:flex; gap:.4rem; }
.uactions .reset { flex:1 1 100%; }
.uactions .reset input { flex:1 1 auto; min-width:0; padding:.55rem .6rem; border:1px solid var(--line);
  border-radius:10px; font-size:1rem; min-height:44px; }

/* Add-user card */
.addcard { background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:1rem 1.1rem; margin-top:1.5rem; }
.addcard h2 { margin:0 0 .75rem; }
.add { display:flex; flex-direction:column; gap:.6rem; }
.add input[type=email], .add input[type=text], .add input[type=password] {
  width:100%; padding:.65rem .7rem; border:1px solid var(--line); border-radius:10px; font-size:1rem; min-height:44px; }
.cb { display:flex; gap:.45rem; align-items:center; color:var(--muted); }
.back { margin-top:1.25rem; }

@media (min-width:560px) {
  .add { flex-direction:row; flex-wrap:wrap; align-items:center; }
  .add input[type=email], .add input[type=text], .add input[type=password] { flex:1 1 180px; width:auto; }
}
