/* MistXI GM dashboard — builds on main.css tokens and the portal (pf-*) look */

.gm-shell{align-items:flex-start;padding-top:40px;}
.gm-card{max-width:1120px;width:100%;}
.gm-card .btn,.gm-card .btn:visited{color:#fff!important;}

/* Header */
.gm-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;border-radius:18px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.09);}
.gm-head-left{display:flex;gap:14px;align-items:center;min-width:0;}
.gm-crest{width:56px;height:56px;border-radius:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:24px;background:rgba(140,215,217,.10);border:2px solid rgba(140,215,217,.28);}
.gm-name{font-size:22px;font-weight:900;letter-spacing:-.02em;}
.gm-sub{font-size:13px;color:var(--muted);margin-top:4px;}
.gm-head-right{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}

/* Pills (shared with portal look) */
.gm-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);color:rgba(255,255,255,.82);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;}
.gm-card a.btn{text-decoration:none;}
.gm-card a.gm-pill,.gm-card a.gm-pill:visited{color:rgba(255,255,255,.82);text-decoration:none;}
.gm-pill:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.18);}
.gm-pill:disabled{opacity:.5;cursor:default;}

/* Tabs */
.gm-tabs{display:flex;gap:6px;margin:18px 0 16px;padding:5px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);overflow-x:auto;}
.gm-tab{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:10px;border:1px solid transparent;background:none;color:rgba(255,255,255,.66);font:inherit;font-size:14px;font-weight:800;cursor:pointer;white-space:nowrap;}
.gm-tab:hover{color:#fff;background:rgba(255,255,255,.05);}
.gm-tab[aria-selected="true"]{color:#fff;background:rgba(140,215,217,.12);border-color:rgba(140,215,217,.28);}
.gm-count{min-width:20px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:900;background:rgba(255,255,255,.08);}
.gm-count-hot{background:rgba(255,190,50,.18);color:#ffd27a;}

/* Toolbar */
.gm-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;}
.gm-toolbar .gm-grow{flex:1;}
.gm-input,.gm-select{padding:9px 12px;border-radius:10px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.12);color:var(--text);font:inherit;font-size:14px;}
.gm-input:focus,.gm-select:focus{outline:none;border-color:rgba(140,215,217,.55);}
.gm-input{min-width:0;width:100%;max-width:320px;}
.gm-check{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--muted);cursor:pointer;}

/* Request cards */
.gm-list{display:grid;gap:12px;}
.gm-req{border-radius:16px;background:rgba(0,0,0,.20);border:1px solid rgba(255,255,255,.08);padding:16px;display:grid;gap:12px;}
.gm-req-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;}
.gm-req-login{font-size:18px;font-weight:900;}
.gm-req-login code{font-size:inherit;background:none;padding:0;}
.gm-meta{font-size:12px;color:var(--muted);margin-top:3px;}
.gm-kv{display:grid;grid-template-columns:90px 1fr;gap:6px 14px;font-size:14px;}
.gm-k{font-size:12px;opacity:.6;padding-top:2px;}
.gm-v{font-weight:700;overflow-wrap:anywhere;}
.gm-reason{white-space:pre-wrap;font-weight:600;}
.gm-req-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.gm-req-actions .gm-input{flex:1;max-width:none;min-width:180px;}
.gm-btn{padding:9px 16px;border-radius:10px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;border:1px solid;}
.gm-btn:disabled{opacity:.5;cursor:default;}
.gm-approve{background:rgba(100,220,140,.16);border-color:rgba(100,220,140,.35);color:#7BFFB6;}
.gm-approve:hover:not(:disabled){background:rgba(100,220,140,.26);}
.gm-deny{background:rgba(220,80,80,.12);border-color:rgba(220,80,80,.30);color:#ff9b9b;}
.gm-deny:hover:not(:disabled){background:rgba(220,80,80,.22);}

/* Status badges */
.gm-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid;}
.gm-b-pending{background:rgba(255,190,50,.10);border-color:rgba(255,190,50,.28);color:#ffd27a;}
.gm-b-approved{background:rgba(80,210,130,.12);border-color:rgba(80,210,130,.28);color:#7fe8a8;}
.gm-b-denied{background:rgba(220,70,70,.10);border-color:rgba(220,70,70,.28);color:#ff9b9b;}
.gm-b-info{background:rgba(140,215,217,.10);border-color:rgba(140,215,217,.28);color:#a8e6e8;}
.gm-b-warn{background:rgba(255,150,60,.10);border-color:rgba(255,150,60,.30);color:#ffb37a;}

/* Tables (sessions, history, audit) */
.gm-table-wrap{border-radius:14px;border:1px solid rgba(255,255,255,.08);overflow:hidden;background:rgba(0,0,0,.18);}
.gm-table{width:100%;border-collapse:collapse;font-size:13px;}
.gm-table th{text-align:left;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:10px 12px;background:rgba(255,255,255,.03);border-bottom:1px solid rgba(255,255,255,.08);}
.gm-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:top;}
.gm-table tr:last-child td{border-bottom:none;}
.gm-table tbody tr:hover td{background:rgba(255,255,255,.025);}
.gm-strong{font-weight:800;}
.gm-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;}
.gm-dim{color:var(--muted);font-size:12px;}
.gm-kill{padding:6px 12px;border-radius:9px;font:inherit;font-size:12px;font-weight:800;cursor:pointer;background:rgba(220,80,80,.10);border:1px solid rgba(220,80,80,.28);color:#ff9b9b;white-space:nowrap;}
.gm-kill:hover:not(:disabled){background:rgba(220,80,80,.22);}
.gm-kill:disabled{opacity:.5;cursor:default;}
.gm-details{font-size:12px;color:var(--muted);overflow-wrap:anywhere;}

/* States */
.gm-empty{padding:34px 16px;text-align:center;color:var(--muted);border-radius:14px;border:1px dashed rgba(255,255,255,.10);}
.gm-error{padding:12px 14px;border-radius:12px;background:rgba(220,70,70,.08);border:1px solid rgba(220,70,70,.25);color:#ffb0b0;font-size:14px;margin-bottom:12px;}
.gm-gate{text-align:center;padding:40px 20px;}
.gm-gate h2{margin:0 0 8px;}
.gm-more{display:flex;justify-content:center;margin-top:12px;}
.gm-skel{height:96px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);animation:gm-pulse 1.6s ease-in-out infinite;}
@keyframes gm-pulse{0%,100%{opacity:.45}50%{opacity:.85}}

/* Toast */
.gm-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:50;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:700;background:rgba(12,16,20,.95);border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 40px rgba(0,0,0,.5);max-width:calc(100vw - 32px);}
.gm-toast-ok{border-color:rgba(100,220,140,.40);}
.gm-toast-bad{border-color:rgba(220,80,80,.45);}

/* Mobile: tables become stacked cards */
@media (max-width:760px){
  .gm-head{flex-direction:column;align-items:flex-start;}
  .gm-head-right{justify-content:flex-start;}
  .gm-input{max-width:none;}
  .gm-table thead{display:none;}
  .gm-table,.gm-table tbody,.gm-table tr,.gm-table td{display:block;width:100%;}
  .gm-table tr{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.07);}
  .gm-table tr:last-child{border-bottom:none;}
  .gm-table td{border:none;padding:3px 0 3px 104px;position:relative;min-height:22px;}
  .gm-table td::before{content:attr(data-label);position:absolute;left:0;top:5px;width:96px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-family:var(--font);}
  .gm-table td.gm-td-action{padding:8px 0 2px;}
  .gm-table td.gm-td-action::before{content:none;}
  .gm-table td.gm-td-action .gm-kill{width:100%;padding:9px 12px;}
  .gm-card{padding:14px;}
  .gm-shell{padding-left:0;padding-right:0;padding-top:16px;}
  .gm-head{padding:16px;}
  .gm-tab{padding:9px 11px;font-size:13px;}
  .gm-req{padding:14px;}
  .gm-kv{grid-template-columns:76px 1fr;}
}
