/* EWYB IGA — design system : #111, DM Mono / DM Sans, accents ambre. */
:root{
  --bg:#111; --panel:#181818; --panel2:#1e1e1e; --line:#2a2a2a;
  --txt:#e9e9e9; --mut:#8a8a8a; --amber:#e0a13a; --amber-dim:#8a6a2a;
  --green:#5cc98a; --red:#e06a6a; --blue:#6a9ce0;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--txt);
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  font-size:14px; line-height:1.55;
}
a{color:var(--amber);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:'DM Mono',ui-monospace,monospace}

/* Layout */
.shell{display:flex;min-height:100vh}
.side{width:220px;background:#141414;border-right:1px solid var(--line);padding:20px 0;flex-shrink:0}
.brand{font-family:'DM Mono',monospace;font-size:16px;letter-spacing:1px;padding:0 20px 18px;color:var(--amber)}
.brand small{display:block;color:var(--mut);font-size:10px;letter-spacing:.5px;margin-top:2px}
.nav a{display:block;padding:9px 20px;color:var(--txt);font-size:13px;border-left:2px solid transparent}
.nav a:hover{background:#1a1a1a;text-decoration:none}
.nav a.active{border-left-color:var(--amber);color:var(--amber);background:#181818}
.side-foot{padding:16px 20px;margin-top:24px;border-top:1px solid var(--line);color:var(--mut);font-size:11px}
.main{flex:1;padding:28px 34px;max-width:1100px}
.pagehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
h1{font-family:'DM Mono',monospace;font-size:19px;font-weight:500;margin:0}
.muted{color:var(--mut)}

/* Cards & grid */
.grid{display:grid;gap:16px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px}
.stat{font-family:'DM Mono',monospace;font-size:26px;color:var(--amber)}
.stat-l{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.5px}

/* Table */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--mut);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--line)}
td{padding:11px 12px;border-bottom:1px solid #232323}
tr:hover td{background:#1a1a1a}

/* Badges */
.badge{display:inline-block;font-family:'DM Mono',monospace;font-size:10px;padding:2px 7px;border-radius:3px;border:1px solid var(--line)}
.b-consented{color:var(--green);border-color:var(--green)}
.b-pending{color:var(--amber);border-color:var(--amber-dim)}
.b-error{color:var(--red);border-color:var(--red)}
.b-disabled{color:var(--mut)}
.b-group{color:var(--blue);border-color:#33506e}
.b-directory_role{color:var(--amber);border-color:var(--amber-dim)}
.b-app_role{color:var(--green);border-color:#2e5e42}

/* Forms */
label{display:block;font-size:12px;color:var(--mut);margin:12px 0 5px}
input,select,textarea{width:100%;background:#111;border:1px solid var(--line);color:var(--txt);padding:9px 11px;border-radius:5px;font-family:'DM Mono',monospace;font-size:13px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--amber)}
.btn{display:inline-block;background:var(--amber);color:#111;border:0;padding:9px 15px;border-radius:5px;font-weight:600;cursor:pointer;font-size:13px;font-family:'DM Sans'}
.btn:hover{text-decoration:none;filter:brightness(1.05)}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--txt)}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-danger{background:transparent;border:1px solid var(--red);color:var(--red)}
form.inline{display:inline}

/* Flash */
.flash{background:#1a2620;border:1px solid #2e5e42;color:var(--green);padding:10px 14px;border-radius:6px;margin-bottom:18px;font-size:13px}
.errbox{background:#2a1414;border:1px solid #6a2a2a;color:#e79a9a;padding:10px 14px;border-radius:6px;margin-bottom:14px;font-size:13px}

/* Login */
.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh}
.login{width:340px}
.login .brand{text-align:center;padding-bottom:8px}

/* Misc */
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
.pager{display:flex;gap:8px;margin-top:16px;align-items:center;font-size:13px}
.kv{display:grid;grid-template-columns:160px 1fr;gap:6px 14px;font-size:13px}
.kv .k{color:var(--mut)}
.note{color:var(--mut);font-size:12px;margin-top:8px}
