/* Clear Mint — Master Admin styles (standalone admin console + login gate).
   Layered on clearmint.css + cm-v6.css. */

/* ---------- Login gate ---------- */
.adm-login { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
  background:radial-gradient(1200px 600px at 50% -10%, #0D3B2E 0%, #07241B 55%, #04150F 100%); }
.adm-login-card { width:420px; max-width:100%; background:#fff; border-radius:22px; padding:38px 36px;
  box-shadow:0 30px 70px rgba(0,0,0,.45); }
.adm-login-brand { display:flex; align-items:center; gap:12px; margin-bottom:26px; }
.adm-login-brand img { height:38px; }
.adm-login-brand .nm { font-family:var(--font-serif); font-size:21px; font-weight:700; color:var(--ink-900); white-space:nowrap; }
.adm-login-brand .sub { font-size:11px; font-weight:700; color:var(--gold); letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.adm-login-brand > div { display:flex; flex-direction:column; }
.adm-shield-pill { display:inline-flex; align-items:center; gap:7px; background:var(--emerald); color:#EAF3EC;
  font-size:11.5px; font-weight:700; padding:7px 13px; border-radius:999px; margin-bottom:18px; letter-spacing:.02em; white-space:nowrap; }
.adm-login-title { font-family:var(--font-serif); font-size:25px; font-weight:700; color:var(--ink-900); margin:0 0 4px; }
.adm-login-sub { font-size:13.5px; color:var(--ink-500); margin:0 0 26px; }
.adm-field { margin-bottom:16px; }
.adm-field label { display:block; font-size:12.5px; font-weight:700; color:var(--ink-700); margin-bottom:7px; }
.adm-input { width:100%; height:46px; padding:0 14px; border:1.5px solid var(--line); border-radius:12px;
  font-family:inherit; font-size:14px; color:var(--ink-900); background:#fff; transition:.15s; }
.adm-input:focus { outline:none; border-color:var(--forest); box-shadow:0 0 0 3px rgba(27,94,74,.12); }
.adm-input-wrap { position:relative; }
.adm-input-wrap .eye { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--ink-400); cursor:pointer; }
.adm-login-btn { width:100%; height:48px; border:0; border-radius:12px; background:var(--emerald); color:#fff;
  font-family:inherit; font-size:14.5px; font-weight:700; cursor:pointer; transition:.15s; display:flex; align-items:center; justify-content:center; gap:8px; }
.adm-login-btn:hover { background:var(--forest); }
.adm-login-err { background:var(--red-100); color:var(--red-500); font-size:12.5px; font-weight:600;
  padding:10px 13px; border-radius:10px; margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.adm-login-foot { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-400); text-align:center; line-height:1.6; }

/* ---------- Admin shell ---------- */
.adm-app { min-height:100vh; background:var(--bg); }
.adm-topbar { position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:18px;
  padding:0 30px; height:64px; background:linear-gradient(90deg,#0D3B2E,#0A2C22); color:#EAF3EC; }
.adm-topbar img { height:30px; }
.adm-topbar .brand { display:flex; align-items:center; gap:11px; }
.adm-topbar .brand .nm { font-family:var(--font-serif); font-size:18px; font-weight:700; color:#fff; white-space:nowrap; }
.adm-topbar .badge { display:inline-flex; align-items:center; gap:6px; background:rgba(212,169,93,.18); color:var(--gold);
  font-size:11px; font-weight:800; padding:5px 11px; border-radius:999px; letter-spacing:.03em; white-space:nowrap; }
.adm-topbar .env { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:rgba(234,243,236,.7); white-space:nowrap; }
.adm-topbar .spacer { flex:1; }
.adm-topbar .who { display:flex; flex-direction:column; align-items:flex-end; line-height:1.25; white-space:nowrap; }
.adm-topbar .who .n { font-size:13px; font-weight:700; color:#fff; }
.adm-topbar .who .e { font-size:11.5px; color:rgba(234,243,236,.6); }
.adm-topbar .ava { width:36px; height:36px; border-radius:999px; background:var(--gold); color:#3A2E12; flex:0 0 36px;
  font-weight:800; font-size:13px; display:flex; align-items:center; justify-content:center; }
.adm-signout { display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15);
  color:#EAF3EC; font-family:inherit; font-size:12.5px; font-weight:700; padding:8px 13px; border-radius:10px; cursor:pointer; transition:.15s; }
.adm-signout:hover { background:rgba(255,255,255,.16); }
.adm-body { max-width:1340px; margin:0 auto; padding:28px 30px 70px; }

/* ---------- Sidebar shell (13-module console) ---------- */
.adm-shell { display:flex; min-height:calc(100vh - 64px); }
.adm-side { width:248px; flex:0 0 248px; background:linear-gradient(180deg,#0E3A2C,#0A2418); padding:16px 12px 24px; position:sticky; top:64px; height:calc(100vh - 64px); overflow-y:auto; }
.adm-side-grp { font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:rgba(212,175,55,.7); padding:14px 12px 7px; }
.adm-navitem { display:flex; align-items:center; gap:11px; width:100%; text-align:left; border:0; background:none; color:rgba(234,243,236,.82); font-family:inherit; font-size:13.5px; font-weight:600; padding:10px 12px; border-radius:10px; cursor:pointer; transition:.14s; margin-bottom:1px; }
.adm-navitem:hover { background:rgba(255,255,255,.06); color:#fff; }
.adm-navitem.on { background:rgba(212,175,55,.16); color:#F2D88A; }
.adm-navitem .ic { flex:0 0 18px; display:flex; }
.adm-navitem .lk { width:13px; margin-left:auto; opacity:.6; }
.adm-main { flex:1; min-width:0; max-width:1180px; margin:0 auto; padding:26px 30px 70px; }
.adm-rolepick { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#EAF3EC; font-family:inherit; font-size:12.5px; font-weight:700; padding:7px 11px; border-radius:9px; cursor:pointer; }
.adm-rolepick option { color:#16241D; }
.adm-deny { background:#fff; border:1px solid var(--line); border-radius:16px; padding:48px; text-align:center; color:var(--ink-500); }

/* ---------- Toggle switch ---------- */
.adm-toggle { width:42px; height:24px; border-radius:999px; background:var(--line); position:relative; cursor:pointer; transition:.18s; flex-shrink:0; border:0; padding:0; }
.adm-toggle.on { background:var(--green-500); }
.adm-toggle::after { content:""; position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:999px; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:.18s; }
.adm-toggle.on::after { left:20px; }

/* ---------- Integration card ---------- */
.adm-intg { border:1px solid var(--line); border-radius:16px; padding:18px; background:#fff; display:flex; flex-direction:column; transition:.15s; }
.adm-intg:hover { box-shadow:var(--shadow-card); }
.adm-intg-top { display:flex; align-items:flex-start; gap:12px; margin-bottom:12px; }
.adm-intg-name { font-weight:800; font-size:14.5px; color:var(--ink-900); }
.adm-intg-cat { font-size:11.5px; color:var(--ink-400); margin-top:1px; }
.adm-statusdot { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; }
.adm-statusdot .d { width:8px; height:8px; border-radius:999px; }
.adm-keyrow { display:flex; align-items:center; gap:8px; margin-top:7px; }
.adm-keyrow .k { flex:1; font-family:var(--font-mono,monospace); font-size:11.5px; color:var(--ink-500); background:var(--mint-50);
  border:1px solid var(--line); border-radius:8px; padding:7px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.adm-intg-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:14px; }

/* ---------- Modal ---------- */
.adm-modal-bg { position:fixed; inset:0; background:rgba(13,31,23,.5); backdrop-filter:blur(2px); z-index:60;
  display:flex; align-items:center; justify-content:center; padding:24px; }
.adm-modal { width:520px; max-width:100%; max-height:90vh; overflow-y:auto; background:#fff; border-radius:20px; box-shadow:var(--shadow-pop); }
.adm-modal-head { display:flex; align-items:center; justify-content:space-between; padding:22px 24px 0; }
.adm-modal-title { font-family:var(--font-serif); font-size:20px; font-weight:700; color:var(--ink-900); }
.adm-modal-x { width:34px; height:34px; border-radius:10px; border:1px solid var(--line); background:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; color:var(--ink-500); }
.adm-modal-x:hover { background:var(--mint-50); }
.adm-modal-body { padding:18px 24px 24px; }
.adm-modal-foot { display:flex; gap:10px; justify-content:flex-end; padding:0 24px 24px; }
.adm-select { width:100%; height:44px; padding:0 12px; border:1.5px solid var(--line); border-radius:10px; font-family:inherit; font-size:13.5px; color:var(--ink-900); background:#fff; cursor:pointer; }
.adm-select:focus { outline:none; border-color:var(--forest); }

/* role / plan / status pills */
.adm-tag { display:inline-flex; align-items:center; gap:5px; border-radius:999px; padding:3px 10px; font-size:11px; font-weight:800; }
.adm-row-actions { display:flex; gap:6px; justify-content:flex-end; }
.adm-ibtn { width:32px; height:32px; border-radius:9px; border:1px solid var(--line); background:#fff; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink-500); transition:.15s; }
.adm-ibtn:hover { background:var(--mint-50); color:var(--ink-900); }
.adm-ibtn.danger:hover { background:var(--red-100); color:var(--red-500); border-color:var(--red-100); }

.adm-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.adm-grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:1080px){ .adm-grid-3{grid-template-columns:1fr 1fr;} .adm-grid-2{grid-template-columns:1fr;} }
@media (max-width:720px){ .adm-grid-3{grid-template-columns:1fr;} }

.adm-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:80;
  background:var(--ink-900); color:#fff; font-size:13px; font-weight:600; padding:12px 20px; border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.3); display:flex; align-items:center; gap:9px; animation:admrise .25s ease; }
@keyframes admrise { from{opacity:0; transform:translate(-50%,10px);} to{opacity:1; transform:translate(-50%,0);} }
