*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#f4f3f0;
  --white:#ffffff;
  --surface:#fafaf8;
  --border:#e5e3dc;
  --text:#1a1916;
  --muted:#8a8780;
  --muted2:#b5b2a8;
  --c1:#ff5c35;
  --c2:#3b5bff;
  --c3:#00c48c;
  --c4:#f59e0b;
  --c5:#a855f7;
  --c6:#ec4899;
  --c7:#14b8a6;
  --c8:#6366f1;
}

body{
  background:var(--bg);
  color:var(--text);
  font-family:'Cabinet Grotesk',sans-serif;
  min-height:100vh;
}

body::before{
  content:'';position:fixed;inset:0;
  background-image:radial-gradient(circle,rgba(0,0,0,.06) 1px,transparent 1px);
  background-size:24px 24px;
  pointer-events:none;z-index:0;
}

.wrap{position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:0 28px 60px;}

/* HEADER */
header{display:flex;align-items:center;gap:20px;padding:18px 0;border-bottom:1.5px solid var(--border);margin-bottom:32px;}
.logo{font-size:22px;font-weight:900;letter-spacing:-1px;background:linear-gradient(135deg,#ff5c35,#3b5bff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.logo-tag{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);-webkit-text-fill-color:var(--muted);}
.brand{display:flex;align-items:center;gap:12px;}
.logo-sep{width:1px;height:20px;background:var(--border);flex-shrink:0;}
.company-logo{height:32px;width:auto;display:block;filter:saturate(1.6) contrast(1.12);}
[data-theme="dark"] .company-logo{background:#fff;padding:5px 9px;border-radius:7px;height:30px;box-sizing:content-box;}
.header-right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.hdr-btn{padding:8px 18px;border-radius:8px;border:1.5px solid var(--border);background:var(--white);color:var(--text);font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;}
.hdr-btn:hover{border-color:#3b5bff;color:#3b5bff;}
.hdr-btn.filled{background:#1a1916;color:#fff;border-color:#1a1916;}
.hdr-btn.filled:hover{background:#333;}
.avatar-group{display:flex;}
.hdr-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;margin-left:-8px;cursor:pointer;}
.hdr-avatar:first-child{margin-left:0;}

/* User switcher */
.user-switcher{
  position:relative;display:flex;align-items:center;gap:9px;
  padding:6px 12px 6px 6px;border-radius:10px;border:1.5px solid var(--border);
  background:var(--white);cursor:pointer;transition:border-color .15s;user-select:none;
}
.user-switcher:hover{border-color:#3b5bff;}
.us-avatar{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex-shrink:0;}
.us-avatar.sm{width:26px;height:26px;font-size:10px;}
.us-info{display:flex;flex-direction:column;gap:1px;}
.us-name{font-size:12px;font-weight:800;color:var(--text);line-height:1;}
.us-role{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;line-height:1;}
.us-caret{font-size:10px;color:var(--muted);}
/* Role colour labels */
.role-admin{color:#ff5c35;}
.role-app-manager{color:#00a37a;}
.role-member{color:#3b5bff;}
.role-viewer{color:#8a8780;}
/* Dropdown */
.us-dropdown{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:var(--white);border:1.5px solid var(--border);border-radius:14px;
  box-shadow:0 12px 36px rgba(0,0,0,.14);min-width:240px;overflow:hidden;z-index:500;
}
.us-dropdown.open{display:block;}
.us-dropdown-label{padding:10px 14px 6px;font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);}
.us-dropdown-item{
  display:flex;align-items:center;gap:10px;padding:9px 14px;
  cursor:pointer;transition:background .12s;
}
.us-dropdown-item:hover{background:var(--bg);}
.us-dropdown-item.active{background:#f4f3f0;}
.us-item-info{flex:1;}
.us-item-name{font-size:13px;font-weight:700;color:var(--text);}
.us-item-dept{font-size:11px;color:var(--muted);font-weight:600;}
.us-item-role{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--bg);}
.us-item-role.role-admin{color:#ff5c35;background:#fff0ec;}
.us-item-role.role-app-manager{color:#00a37a;background:#e6faf5;}
.us-item-role.role-member{color:#3b5bff;background:#eef1ff;}
.us-item-role.role-viewer{color:#8a8780;background:#f4f3f0;}

/* Admin scope banner */
.admin-scope-banner{
  display:flex;align-items:center;gap:8px;
  padding:10px 28px;
  background:#e6faf5;border-bottom:1.5px solid #b3eed9;
  font-size:13px;font-weight:700;color:#00705a;flex-shrink:0;
}
.scope-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* HERO */
.hero{background:linear-gradient(135deg,#1a1916 60%,#2d2a26);border-radius:20px;padding:36px 40px;display:flex;align-items:center;gap:40px;margin-bottom:28px;overflow:hidden;position:relative;}
.hero::before{content:'';position:absolute;right:-60px;top:-60px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(59,91,255,.3),transparent 70%);}
.hero::after{content:'';position:absolute;right:200px;bottom:-80px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,92,53,.25),transparent 70%);}
.hero-text h1{font-size:32px;font-weight:900;color:#fff;letter-spacing:-1px;line-height:1.15;margin-bottom:8px;}
.hero-text p{font-size:14px;color:rgba(255,255,255,.5);max-width:380px;line-height:1.6;}
.hero-stats{display:flex;gap:24px;margin-left:auto;position:relative;z-index:1;}
.hstat{text-align:center;}
.hstat-val{font-size:36px;font-weight:900;color:#fff;line-height:1;}
.hstat-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:1px;text-transform:uppercase;margin-top:4px;}
/* ── Rotating hero ── */
.hero-rotator{padding:0;display:block;min-height:196px;}
.hero-slide{position:absolute;inset:0;padding:32px 40px;display:flex;align-items:center;gap:40px;opacity:0;visibility:hidden;transition:opacity .55s ease;pointer-events:none;z-index:1;}
.hero-slide.active{opacity:1;visibility:visible;pointer-events:auto;}
.hero-date{font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:8px;}
.hero-greeting{display:flex;align-items:center;gap:12px;}
.hero-name{background:linear-gradient(90deg,#ff8a6a,#ffc861);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.hero-wave{display:inline-block;transform-origin:70% 70%;animation:heroWave 2.4s ease-in-out infinite;font-size:30px;}
@keyframes heroWave{0%,60%,100%{transform:rotate(0deg);}10%{transform:rotate(14deg);}20%{transform:rotate(-8deg);}30%{transform:rotate(14deg);}40%{transform:rotate(-4deg);}50%{transform:rotate(10deg);}}
.hero-callouts{font-size:14px;color:rgba(255,255,255,.55);display:flex;gap:18px;flex-wrap:wrap;line-height:1.5;}
.hero-resume{display:flex;gap:8px;margin-top:16px;align-items:center;flex-wrap:wrap;}
.hero-resume-label{font-size:12px;color:rgba(255,255,255,.4);}
.hero-chip{background:rgba(255,255,255,.08);color:#fff;font-size:13px;font-weight:700;padding:6px 12px;border-radius:8px;cursor:pointer;border:none;font-family:'Cabinet Grotesk',sans-serif;transition:background .15s;}
.hero-chip:hover{background:rgba(255,255,255,.16);}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.hero-btn{background:rgba(255,255,255,.08);color:#fff;font-size:13px;font-weight:700;padding:9px 16px;border-radius:9px;cursor:pointer;border:none;font-family:'Cabinet Grotesk',sans-serif;transition:background .15s;}
.hero-btn:hover{background:rgba(255,255,255,.16);}
.hero-btn.primary{background:#3b5bff;}
.hero-btn.primary:hover{background:#4f6dff;}
.hero-eyebrow{font-size:13px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;}
.hero-stats-cards{gap:14px;}
.hero-stats-cards .hstat-card{background:rgba(255,255,255,.06);border-radius:10px;padding:12px 18px;}
.hstat-val.good{color:#5dca8f;}
.hstat-val.warn{color:#ffc861;}
.hero-dots{position:absolute;bottom:14px;left:40px;display:flex;gap:6px;z-index:2;}
.hero-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.25);cursor:pointer;transition:all .2s;padding:0;border:none;}
.hero-dot.active{background:rgba(255,255,255,.85);width:18px;border-radius:3px;}

/* FILTER BAR */
.filter-bar{display:flex;align-items:center;gap:8px;background:transparent;border:none;padding:0;margin-bottom:24px;flex-wrap:wrap;}
.search-wrap{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--border);border-radius:10px;padding:10px 14px;flex:1;min-width:220px;transition:border-color .15s,box-shadow .15s;position:relative;}
.search-wrap:focus-within{border-color:#3b5bff;box-shadow:0 0 0 3px rgba(59,91,255,.12);}
.search-icon{font-size:16px;color:var(--muted);}
.search-wrap input{border:none;background:transparent;font-family:'Cabinet Grotesk',sans-serif;font-size:14px;font-weight:500;color:var(--text);outline:none;width:100%;}
.search-wrap input::placeholder{color:var(--muted2);}
.divider-v{display:none;}
/* Icon-led filter chips — leading icon + chevron, both as backgrounds */
select.fselect{border:1px solid var(--border);background-color:var(--white);border-radius:9px;padding:9px 30px 9px 34px;font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;outline:none;transition:border-color .15s,background-color .15s,color .15s;appearance:none;background-repeat:no-repeat,no-repeat;background-position:left 11px center,right 11px center;}
select.fselect:hover{border-color:var(--muted2);}
select.fselect:focus{border-color:#3b5bff;box-shadow:0 0 0 3px rgba(59,91,255,.12);}
.ff-admin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%238a8780' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21v-1a6 6 0 0 1 6-6h4a6 6 0 0 1 6 6v1'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");}
.ff-category{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%238a8780' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5v6l9 9 6-6-9-9H3z'/%3E%3Ccircle cx='7.5' cy='9.5' r='1.4' fill='%238a8780' stroke='none'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");}
.ff-status{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%238a8780' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='3' fill='%238a8780' stroke='none'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");}
.ff-access{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%238a8780' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");}
/* Active (non-default) filter — highlight so set filters stand out */
select.fselect.is-active{border-color:#3b5bff;background-color:#eef2ff;color:#1e40af;}
[data-theme="dark"] select.fselect.is-active{border-color:#3b5bff;background-color:#1a2547;color:#a9c2ff;}

/* DEPT PILLS */
.dept-tabs{display:flex;flex-wrap:wrap;margin-bottom:24px;background:var(--white);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.dept-pill{padding:9px 16px;background:var(--white);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,color .15s;display:flex;align-items:center;gap:7px;white-space:nowrap;border:none;border-top:1px solid var(--border);border-left:1px solid var(--border);margin-top:-1px;margin-left:-1px;border-radius:0;}
.dept-pill .pill-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.dept-pill:hover{background:var(--bg);}
.dept-pill.active{background:#1a1916;color:#fff;}
.pill-count{font-family:'DM Mono',monospace;font-size:11px;opacity:.45;}
.dept-pill.active .pill-count{opacity:.65;}

/* SECTION HEADER */
.section-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.section-title{font-size:18px;font-weight:800;letter-spacing:-.5px;}
.section-count{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);}

/* VIEW TOGGLE */
.view-toggle{margin-left:auto;display:flex;gap:4px;}
.view-btn{width:34px;height:34px;border-radius:8px;border:1.5px solid var(--border);background:var(--white);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--muted);}
.view-btn.active{background:#1a1916;color:#fff;border-color:#1a1916;}
.view-btn:hover:not(.active){border-color:#1a1916;color:#1a1916;}

/* APP GRID */
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:32px;}

/* LIST VIEW */
.app-grid.list-view{grid-template-columns:1fr;gap:10px;}
.app-grid.list-view .app-card{padding:16px 20px;display:flex;align-items:center;gap:16px;}
.app-grid.list-view .app-card.featured{grid-column:span 1;}
.app-grid.list-view .card-top{margin-bottom:0;flex-shrink:0;}
.app-grid.list-view .app-icon{width:44px;height:44px;font-size:20px;}
.app-grid.list-view .card-meta{min-width:180px;}
.app-grid.list-view .card-badges{margin-bottom:0;flex-shrink:0;}
.app-grid.list-view .app-desc{flex:1;margin-bottom:0;font-size:12px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.app-grid.list-view .card-footer{border-top:none;padding-top:0;flex-shrink:0;margin-left:auto;}
.app-grid.list-view .list-hide{display:none;}

/* TABLE VIEW */
.table-wrap{background:var(--white);border:1.5px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 1px 0 #d8d5ce,0 2px 0 #d0cdc6,0 6px 20px rgba(0,0,0,.08),0 16px 40px rgba(0,0,0,.07);margin-bottom:32px;}
.app-table{width:100%;border-collapse:collapse;}
.app-table thead tr{background:var(--bg);border-bottom:1.5px solid var(--border);}
.app-table th{padding:11px 16px;text-align:left;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);white-space:nowrap;cursor:pointer;user-select:none;}
.app-table th:hover{color:var(--text);}
.app-table tbody tr{border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.app-table tbody tr:last-child{border-bottom:none;}
.app-table tbody tr:hover{background:#f9f8f5;}
.app-table td{padding:12px 16px;font-size:13px;vertical-align:middle;}
.td-app{display:flex;align-items:center;gap:10px;}
.td-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.td-name{font-weight:800;font-size:13px;}
.td-type{font-size:11px;color:var(--muted);font-weight:600;}
.td-admin{display:flex;align-items:center;gap:7px;}
.td-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;flex-shrink:0;}
.td-actions{display:flex;gap:6px;justify-content:flex-end;}

/* TILES VIEW */
.tiles-wrap{margin-bottom:32px;}
.tiles-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px;}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;cursor:pointer;position:relative;animation:cardIn .3s ease backwards;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:16px 10px 14px;transition:background .12s,box-shadow .12s;}
.tile:hover{background:#eceae5;box-shadow:0 2px 8px rgba(0,0,0,.08);}
.tile-dots{position:absolute;top:6px;right:8px;background:none;border:none;cursor:pointer;font-size:14px;color:#666;padding:2px 4px;border-radius:4px;line-height:1;opacity:.6;transition:opacity .12s,background .12s;}
.tile-dots:hover{opacity:1;background:rgba(0,0,0,.06);}
.tile-icon-wrap{width:72px;height:72px;border-radius:0;background:transparent;border:none;display:flex;align-items:center;justify-content:center;font-size:58px;line-height:1;position:relative;overflow:visible;box-shadow:none;margin-bottom:2px;}
.tile:hover .tile-icon-wrap{transform:none;box-shadow:none;border-color:transparent;}
.tile-overlay{display:none;}
.tile-status-dot{display:none;}
.tile-dept-bar{display:none;}
.tile-name{font-size:12px;font-weight:400;text-align:center;margin-top:8px;line-height:1.35;width:100%;color:#323130;}
.tile-type{display:none;}

/* APP CARD */
.app-card{background:var(--white);border:1.5px solid var(--border);border-radius:16px;padding:22px;cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease;position:relative;overflow:hidden;animation:cardIn .35s ease backwards;box-shadow:0 1px 0 #d8d5ce,0 2px 0 #d0cdc6,0 6px 20px rgba(0,0,0,.1),0 16px 40px rgba(0,0,0,.1),0 32px 56px rgba(0,0,0,.07);}
.app-card:hover{transform:translateY(-8px);box-shadow:0 1px 0 #d8d5ce,0 2px 0 #d0cdc6,0 10px 30px rgba(0,0,0,.13),0 24px 56px rgba(0,0,0,.13),0 48px 80px rgba(0,0,0,.09);}
@keyframes cardIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.card-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px;}
.app-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.1);}
.card-meta{flex:1;}
.app-name{font-size:16px;font-weight:800;letter-spacing:-.3px;margin-bottom:3px;}
.app-type{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);}
.card-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.cbadge{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:3px 9px;border-radius:99px;}
.cbadge.active{background:#dcfce7;color:#16a34a;}
.cbadge.inactive{background:#fee2e2;color:#dc2626;}
.cbadge.internal{background:#dbeafe;color:#1d4ed8;}
.cbadge.external{background:#f3e8ff;color:#7c3aed;}
.cbadge.dept{background:#f1f5f9;color:#475569;}
.cbadge.access-all{background:#fef9c3;color:#a16207;}
.cbadge.access-admin{background:#ffedd5;color:#c2410c;}
.cbadge.access-custom{background:#ede9ff;color:#6d28d9;}
.cbadge.pending{background:#fef9c3;color:#a16207;}
.app-desc{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:14px;}
.card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border);}
.admin-info{display:flex;align-items:center;gap:7px;}
.admin-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;}
.admin-name{font-size:11px;font-weight:700;color:var(--muted);}
.card-actions{display:flex;gap:6px;}
.cta-btn{padding:6px 13px;border-radius:7px;font-family:'Cabinet Grotesk',sans-serif;font-size:12px;font-weight:700;cursor:pointer;border:1.5px solid;transition:all .15s;}
.cta-btn.open{background:#1a1916;color:#fff;border-color:#1a1916;}
.cta-btn.open:hover{background:#333;}
.cta-btn.info{background:transparent;color:var(--muted);border-color:var(--border);}
.cta-btn.info:hover{border-color:#1a1916;color:#1a1916;}
.cta-btn.docs{background:#eff6ff;color:#3b5bff;border-color:#bfdbfe;}
.cta-btn.docs:hover{background:#dbeafe;border-color:#3b5bff;}
.app-card.featured{grid-column:span 2;background:linear-gradient(135deg,#1a1916,#2d2a26);border-color:#333;color:#fff;}
.app-card.featured .app-desc{color:rgba(255,255,255,.5);}
.app-card.featured .admin-name{color:rgba(255,255,255,.4);}
.app-card.featured .card-footer{border-color:rgba(255,255,255,.1);}
.app-card.featured .cta-btn.info{color:rgba(255,255,255,.4);border-color:rgba(255,255,255,.15);}
.app-card.featured .app-type{color:rgba(255,255,255,.4);}
.app-card.featured .cbadge.dept{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);}

/* NO RESULTS */
.no-results{text-align:center;padding:60px 20px;color:var(--muted);grid-column:1/-1;}
.no-results .nr-icon{font-size:52px;margin-bottom:14px;display:block;line-height:1;}
.no-results h3{font-size:20px;font-weight:800;color:var(--text);margin-bottom:6px;}
.no-results p{font-size:13px;color:var(--muted);font-weight:600;margin-bottom:18px;max-width:260px;margin-left:auto;margin-right:auto;}
.nr-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--white);border:1.5px solid var(--border);border-radius:20px;font-size:12px;font-weight:700;color:var(--text);cursor:pointer;transition:border-color .12s,background .12s;}
.nr-btn:hover{border-color:#3b5bff;color:#3b5bff;background:rgba(59,91,255,.06);}
/* Admin table empty state */
.admin-empty-state{text-align:center;padding:48px 20px;}
.admin-empty-state .ae-icon{font-size:36px;margin-bottom:10px;display:block;opacity:.7;}
.admin-empty-state p{font-size:13px;font-weight:600;color:var(--muted);}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s;backdrop-filter:blur(4px);}
#editUserModal,#addModal,#modal{z-index:300;}

/* Custom confirm dialog */
.confirm-box{
  background:var(--white);border-radius:20px;
  padding:36px 32px 28px;
  width:100%;max-width:380px;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  box-shadow:0 24px 64px rgba(0,0,0,.22);
  animation:confirmPop .18s cubic-bezier(.34,1.56,.64,1);
}
@keyframes confirmPop{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
.confirm-icon{font-size:40px;line-height:1;margin-bottom:4px;}
.confirm-title{font-size:18px;font-weight:900;letter-spacing:-.4px;color:var(--text);text-align:center;}
.confirm-msg{font-size:13px;color:var(--muted);font-weight:600;text-align:center;line-height:1.5;margin-bottom:6px;}
.confirm-actions{display:flex;gap:10px;margin-top:8px;width:100%;}
.confirm-actions .maction{flex:1;justify-content:center;}
.maction.danger-solid{
  background:#dc2626;color:#fff;border-color:#dc2626;
}
.maction.danger-solid:hover{background:#b91c1c;border-color:#b91c1c;}

/* Access edit button in permissions table */
.access-edit-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 12px;border-radius:8px;border:1.5px solid var(--border);
  background:var(--bg);color:var(--text);font-family:'Cabinet Grotesk',sans-serif;
  font-size:12px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;
}
.access-edit-btn:hover{border-color:#3b5bff;color:#3b5bff;background:#eef1ff;}
.access-edit-icon{font-size:13px;color:var(--muted);}

/* Dept access type toggle buttons */
.dept-access-type-btn{
  padding:8px 16px;border-radius:9px;border:1.5px solid var(--border);
  background:var(--bg);color:var(--text);font-family:'Cabinet Grotesk',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;
}
.dept-access-type-btn.active{background:#1a1916;color:#fff;border-color:#1a1916;}
.dept-access-type-btn:hover:not(.active){border-color:#1a1916;}

/* Dept checklist */
.dept-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.dept-check-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:10px;border:1.5px solid var(--border);
  cursor:pointer;transition:all .15s;background:var(--bg);user-select:none;
}
.dept-check-item:hover{border-color:#ccc;}
.dept-check-item.checked{border-color:#1a1916;background:#fff;}
.dept-check-box{
  width:18px;height:18px;border-radius:5px;border:1.5px solid #ccc;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:900;flex-shrink:0;transition:all .15s;
}
.dept-check-item.checked .dept-check-box{background:#1a1916;border-color:#1a1916;color:#fff;}
.dept-check-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.dept-check-label{font-size:13px;font-weight:700;}

/* Permissions access badges */
.access-badge{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 11px;border-radius:99px;border:1.5px solid;
  font-size:11px;font-weight:800;white-space:nowrap;letter-spacing:.2px;
}
.access-everyone{background:#e6faf5;color:#00a37a;border-color:#b3eed9;}
.access-admin{background:#f4f3f0;color:#555;border-color:#d0cdc6;}
.access-dept{/* color/bg set inline per dept */}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal{background:var(--white);border-radius:20px;width:540px;max-width:95vw;max-height:85vh;overflow-y:auto;transform:translateY(20px);transition:transform .2s;box-shadow:0 24px 60px rgba(0,0,0,.2);}
.modal-overlay.open .modal{transform:translateY(0);}
.modal-header{padding:28px 28px 20px;border-bottom:1.5px solid var(--border);display:flex;align-items:flex-start;gap:16px;}
.modal-body{padding:24px 28px;}
.modal-close{margin-left:auto;width:32px;height:32px;border-radius:8px;border:1.5px solid var(--border);background:transparent;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;}
.modal-close:hover{background:#1a1916;color:#fff;border-color:#1a1916;}
.modal-app-name{font-size:22px;font-weight:900;letter-spacing:-.5px;}
.modal-app-type{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:3px;}
.modal-tabs{display:flex;gap:0;border-bottom:1.5px solid var(--border);margin-bottom:20px;}
.modal-tab{padding:10px 18px;font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-1.5px;transition:all .15s;}
.modal-tab.active{color:#1a1916;border-bottom-color:#1a1916;}
.modal-tab:hover:not(.active){color:var(--text);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.modal-desc{font-size:14px;line-height:1.65;color:#444;margin-bottom:20px;}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;}
.info-cell{background:var(--bg);border-radius:10px;padding:12px 14px;}
.info-cell-label{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.info-cell-val{font-size:13px;font-weight:700;}
/* ── Billing tab ── */
.renewal-card{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-radius:12px;padding:16px 18px;border:1px solid var(--border);background:var(--bg);}
.renewal-card.warn{background:#fef9ec;border-color:#f3d68a;}
.renewal-card.danger{background:#fdecec;border-color:#f3b0b0;}
[data-theme="dark"] .renewal-card.warn{background:#332806;border-color:#6b5410;}
[data-theme="dark"] .renewal-card.danger{background:#331414;border-color:#6b2020;}
.renewal-eyebrow{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.renewal-date{font-size:20px;font-weight:900;letter-spacing:-.3px;}
.renewal-badge{font-size:12px;font-weight:800;padding:7px 14px;border-radius:99px;white-space:nowrap;background:#dcfce7;color:#15803d;}
.renewal-badge.warn{background:#fde9b8;color:#b45309;}
.renewal-badge.danger{background:#f8c4c4;color:#b91c1c;}
[data-theme="dark"] .renewal-badge{background:#14402a;color:#4ade80;}
[data-theme="dark"] .renewal-badge.warn{background:#5a4410;color:#fbbf24;}
[data-theme="dark"] .renewal-badge.danger{background:#5a1a1a;color:#fca5a5;}
.seat-bar{height:5px;border-radius:99px;background:var(--border);margin-top:7px;overflow:hidden;}
.seat-bar-fill{height:100%;border-radius:99px;background:#3b5bff;}
.seat-bar-fill.full{background:#dc2626;}
.autorenew{display:inline-flex;align-items:center;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:3px 10px;border-radius:99px;}
.autorenew.on{background:#dcfce7;color:#15803d;}
.autorenew.off{background:var(--border);color:var(--muted);}
[data-theme="dark"] .autorenew.on{background:#14402a;color:#4ade80;}
.billing-empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:36px 20px;color:var(--muted);font-size:13px;font-weight:600;line-height:1.5;}
.billing-empty-icon{font-size:34px;opacity:.6;}
.mbadge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:3px 10px;border-radius:99px;}
.mbadge.active{background:#dcfce7;color:#16a34a;}
.mbadge.inactive{background:#fee2e2;color:#dc2626;}
.mbadge.internal{background:#dbeafe;color:#1d4ed8;}
.mbadge.external{background:#f3e8ff;color:#7c3aed;}
.modal-actions{display:flex;gap:10px;}
.maction{flex:1;padding:12px;border-radius:10px;font-family:'Cabinet Grotesk',sans-serif;font-size:14px;font-weight:800;cursor:pointer;border:1.5px solid;transition:all .15s;text-align:center;display:flex;align-items:center;justify-content:center;}
.maction.primary{background:#1a1916;color:#fff;border-color:#1a1916;}
.maction.primary:hover{background:#333;}
.maction.secondary{background:transparent;color:var(--text);border-color:var(--border);}
.maction.secondary:hover{border-color:#1a1916;}

/* DOCS */
.guide-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.guide-step{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:var(--bg);border-radius:10px;}
.step-num{width:24px;height:24px;border-radius:99px;background:#1a1916;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.step-text{font-size:13px;line-height:1.55;}
.step-text strong{font-weight:800;display:block;margin-bottom:2px;}
.doc-links{display:flex;flex-direction:column;gap:8px;}
.doc-link{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--white);cursor:pointer;text-decoration:none;color:var(--text);transition:border-color .15s,box-shadow .15s;}
.doc-link:hover{border-color:#3b5bff;box-shadow:0 2px 8px rgba(59,91,255,.1);}
.doc-link-icon{font-size:18px;flex-shrink:0;}
.doc-link-label{font-size:13px;font-weight:700;flex:1;}
.doc-link-tag{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);}
.doc-link-arrow{font-size:14px;color:var(--muted2);margin-left:auto;}

/* ADD APP FORM */
.form-divider{display:flex;align-items:baseline;gap:8px;font-size:12px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--text);margin:22px 0 14px;padding-top:16px;border-top:1px solid var(--border);}
.form-divider span{font-size:10px;font-weight:600;letter-spacing:.3px;text-transform:none;color:var(--muted);}
.form-row{display:flex;gap:12px;margin-bottom:14px;}
.form-group{display:flex;flex-direction:column;flex:1;}
.form-group:not(:last-child){margin-bottom:0;}
.form-label{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.form-input{border:1.5px solid var(--border);border-radius:9px;padding:9px 12px;font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:600;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s;width:100%;}
.form-input:focus{border-color:#3b5bff;background:#fff;}
.form-input::placeholder{color:var(--muted2);}
select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;}
textarea.form-input{min-height:80px;}
.form-error{background:#fee2e2;color:#dc2626;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:700;margin-bottom:4px;}

/* ===================== ADMIN PANEL ===================== */
.admin-btn{background:#1a1916 !important;color:#fff !important;border-color:#1a1916 !important;}
.admin-btn:hover{background:#333 !important;border-color:#333 !important;}

.admin-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(0,0,0,.45);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;
  padding:24px 16px;
  opacity:0;pointer-events:none;
  transition:opacity .22s ease;
}
.admin-overlay.open{opacity:1;pointer-events:all;}

/* Inner panel container */
.admin-panel{
  background:var(--bg);
  width:100%;max-width:1340px;
  max-height:90vh;
  border-radius:16px;
  display:flex;flex-direction:column;
  overflow:hidden;
  transform:translateY(20px);
  transition:transform .22s ease;
  box-shadow:0 24px 64px rgba(0,0,0,.22);
}
.admin-overlay.open .admin-panel{transform:translateY(0);}

/* Top bar */
.admin-topbar{
  display:flex;align-items:center;gap:16px;
  padding:14px 28px;
  border-bottom:1.5px solid var(--border);
  background:var(--white);
  flex-shrink:0;
  position:relative;
  border-radius:16px 16px 0 0;
}
.admin-back-btn{
  padding:7px 16px;border-radius:8px;border:1.5px solid var(--border);
  background:var(--bg);color:var(--text);font-family:'Cabinet Grotesk',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;
}
.admin-back-btn:hover{border-color:#1a1916;background:#1a1916;color:#fff;}
.admin-title{
  position:absolute;left:50%;transform:translateX(-50%);
  font-size:16px;font-weight:900;letter-spacing:-.4px;
}
.admin-topbar-right{margin-left:auto;}
.admin-user-avatar{
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;color:#fff;cursor:pointer;
}

/* Tab pills */
.admin-tabs-bar{
  display:flex;gap:6px;padding:16px 28px 0;
  border-bottom:1.5px solid var(--border);
  background:var(--white);flex-shrink:0;
  flex-wrap:wrap;
}
.admin-tab-pill{
  padding:9px 20px;border-radius:8px 8px 0 0;border:1.5px solid transparent;
  border-bottom:none;background:transparent;color:var(--muted);
  font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:700;
  cursor:pointer;transition:all .15s;margin-bottom:-1.5px;
}
.admin-tab-pill:hover:not(.active){color:var(--text);background:var(--bg);}
.admin-tab-pill.active{
  background:var(--bg);color:#1a1916;
  border-color:var(--border);border-bottom-color:var(--bg);
}

/* Body scroll area */
.admin-body{flex:1;overflow-y:auto;padding:28px;}

/* Mobile responsive */
@media(max-width:640px){
  .admin-overlay{padding:0;}
  .admin-panel{max-width:100%;max-height:100%;border-radius:0;height:100vh;}
  .admin-topbar{padding:12px 16px;border-radius:0;}
  .admin-tabs-bar{padding:12px 16px 0;gap:4px;}
  .admin-tab-pill{padding:8px 12px;font-size:12px;}
  .admin-body{padding:16px;}
  .admin-title{font-size:14px;}
}

/* Panel sections */
.admin-panel-section{display:none;}
.admin-panel-section.active{display:block;}

/* Section header */
.admin-section-head{
  display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap;
}
.admin-section-title{font-size:18px;font-weight:900;letter-spacing:-.4px;flex:1;}
.admin-action-btn{
  padding:9px 18px;border-radius:9px;border:1.5px solid #1a1916;
  background:#1a1916;color:#fff;font-family:'Cabinet Grotesk',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;
}
.admin-action-btn:hover{background:#333;border-color:#333;}
/* INTEGRATIONS */
.admin-section-sub{flex-basis:100%;font-size:13px;color:var(--muted);font-weight:500;margin-top:-8px;}
.intg-list{display:flex;flex-direction:column;gap:12px;}
.intg-card{border:1px solid var(--border);border-radius:12px;background:var(--white);overflow:hidden;}
.intg-head{display:flex;align-items:center;gap:14px;padding:15px 18px;}
.intg-icon{width:42px;height:42px;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.intg-meta{flex:1;min-width:0;}
.intg-name{font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.intg-cat{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:99px;}
.intg-desc{font-size:13px;color:var(--muted);font-weight:500;margin-top:3px;}
.intg-status{font-size:11px;font-weight:800;letter-spacing:.3px;padding:4px 10px;border-radius:99px;white-space:nowrap;}
.intg-status.connected{background:#dcfce7;color:#15803d;}
.intg-status.needs{background:#fef3c7;color:#b45309;}
.intg-status.off{background:var(--bg);color:var(--muted);}
[data-theme="dark"] .intg-status.connected{background:#14402a;color:#4ade80;}
[data-theme="dark"] .intg-status.needs{background:#3b2800;color:#fbbf24;}
[data-theme="dark"] .intg-status.off{background:#252320;color:var(--muted);}
.intg-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0;cursor:pointer;}
.intg-switch input{opacity:0;width:0;height:0;}
.intg-slider{position:absolute;inset:0;background:var(--muted2);border-radius:99px;transition:background .2s;}
.intg-slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;}
.intg-switch input:checked + .intg-slider{background:#3b5bff;}
.intg-switch input:checked + .intg-slider::before{transform:translateX(18px);}
.intg-config-btn{padding:7px 14px;border-radius:8px;border:1px solid var(--border);background:var(--white);color:var(--text);font-family:'Cabinet Grotesk',sans-serif;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:border-color .15s;}
.intg-config-btn:hover{border-color:var(--muted2);}
.intg-body{display:none;padding:2px 18px 18px;border-top:1px solid var(--border);}
.intg-body.open{display:block;}
.intg-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px;}
.intg-field-label{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;display:block;}
.intg-input{width:100%;border:1.5px solid var(--border);background:var(--bg);border-radius:8px;padding:9px 12px;font-family:'DM Mono',monospace;font-size:12px;color:var(--text);outline:none;transition:border-color .15s;}
.intg-input:focus{border-color:#3b5bff;}
.intg-input[readonly]{color:var(--muted);cursor:default;}
.intg-input-row{display:flex;gap:8px;align-items:center;}
.intg-copy-btn{padding:9px 12px;border:1.5px solid var(--border);background:var(--white);border-radius:8px;cursor:pointer;font-size:13px;flex-shrink:0;color:var(--text);}
.intg-copy-btn:hover{border-color:var(--muted2);}
.intg-note{font-size:12px;color:var(--muted);line-height:1.55;margin-top:14px;background:var(--bg);border-radius:8px;padding:10px 12px;}
.intg-actions{display:flex;gap:8px;margin-top:14px;align-items:center;}
.intg-saved{font-size:12px;font-weight:700;color:#15803d;opacity:0;transition:opacity .2s;}
.intg-saved.show{opacity:1;}
.admin-cancel-btn{
  padding:9px 18px;border-radius:9px;border:1.5px solid var(--border);
  background:transparent;color:var(--text);font-family:'Cabinet Grotesk',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;
}
.admin-cancel-btn:hover{border-color:#1a1916;}

/* Invite form */
.admin-invite-form{
  background:var(--white);border:1.5px solid var(--border);
  border-radius:14px;padding:18px 20px;margin-bottom:18px;
}
.aform-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
.aform-group{display:flex;flex-direction:column;flex:1;min-width:140px;}
.aform-label{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.aform-input{
  border:1.5px solid var(--border);border-radius:9px;padding:9px 12px;
  font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:600;
  color:var(--text);background:var(--bg);outline:none;transition:border-color .15s;width:100%;
}
.aform-input:focus{border-color:#3b5bff;background:#fff;}
select.aform-input{
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;
}

/* Admin search */
.admin-search-wrap{
  display:flex;align-items:center;gap:8px;background:var(--white);
  border:1.5px solid var(--border);border-radius:9px;padding:7px 13px;
  min-width:220px;transition:border-color .15s;
}
.admin-search-wrap:focus-within{border-color:#3b5bff;}
.admin-search-icon{font-size:15px;color:var(--muted);}
.admin-search-input{
  border:none;background:transparent;font-family:'Cabinet Grotesk',sans-serif;
  font-size:13px;font-weight:500;color:var(--text);outline:none;width:100%;
}
.admin-search-input::placeholder{color:var(--muted2);}

/* Admin table */
.admin-table-outer{
  position:relative;
  border-radius:16px;
  border:1.5px solid var(--border);
  box-shadow:0 1px 0 #d8d5ce,0 2px 0 #d0cdc6,0 6px 20px rgba(0,0,0,.08);
  overflow:hidden;
}
/* Right-edge fade — shows there's more to scroll */
.admin-table-outer::after{
  content:'';
  position:absolute;top:0;right:0;bottom:17px;
  width:64px;
  background:linear-gradient(to right,transparent,rgba(255,255,255,.92));
  pointer-events:none;
  border-radius:0 16px 0 0;
  transition:opacity .2s;
}
.admin-table-outer.scrolled-end::after{opacity:0;}
/* Left-edge fade — shows there's more to the left */
.admin-table-outer::before{
  content:'';
  position:absolute;top:0;left:0;bottom:17px;
  width:64px;
  background:linear-gradient(to left,transparent,rgba(255,255,255,.92));
  pointer-events:none;
  border-radius:16px 0 0 0;
  opacity:0;transition:opacity .2s;z-index:1;
}
.admin-table-outer.scrolled-start::before{opacity:1;}
.admin-table-wrap{
  background:var(--white);
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:auto;
  scrollbar-color:#b5b2a8 #ede9e2;
}
.admin-table-wrap::-webkit-scrollbar{height:10px;}
.admin-table-wrap::-webkit-scrollbar-track{background:#ede9e2;}
.admin-table-wrap::-webkit-scrollbar-thumb{background:#b5b2a8;border-radius:99px;border:2px solid #ede9e2;}
.admin-table-wrap::-webkit-scrollbar-thumb:hover{background:#8a8780;}
.admin-table{width:100%;border-collapse:collapse;min-width:700px;}
.admin-table thead tr{background:var(--bg);border-bottom:1.5px solid var(--border);}
.admin-table th{
  padding:11px 16px;text-align:left;font-size:10px;font-weight:800;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.admin-table tbody tr{border-bottom:1px solid var(--border);transition:background .12s;}
.admin-table tbody tr:last-child{border-bottom:none;}
.admin-table tbody tr:hover{background:#f9f8f5;}
.admin-table td{padding:13px 16px;font-size:13px;vertical-align:middle;white-space:nowrap;}

/* Column resize handle */
.admin-table th{position:relative;}
.col-resize-handle{
  position:absolute;right:0;top:12%;bottom:12%;
  width:4px;cursor:col-resize;
  user-select:none;z-index:1;
  border-radius:99px;
  background:#d0cdc6;
  transition:background .15s, width .15s, right .15s;
}
.col-resize-handle:hover{
  background:#3b5bff;
  width:4px;
}
.col-resize-handle.dragging{
  background:#3b5bff;
  width:4px;
}

/* User cell */
.auser-cell{display:flex;align-items:center;gap:10px;}
.auser-avatar{
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;color:#fff;flex-shrink:0;
}
.auser-name{font-weight:800;font-size:13px;}
.auser-email{font-size:11px;color:var(--muted);font-weight:600;}

/* Role badges */
.role-badge{
  display:inline-flex;align-items:center;
  font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  padding:3px 10px;border-radius:99px;
}
.role-badge.admin{background:#fef3c7;color:#92400e;}
.role-badge.member{background:#dbeafe;color:#1e40af;}
.role-badge.viewer{background:#f1f5f9;color:#475569;}

/* Status badge */
.status-badge{
  display:inline-flex;align-items:center;
  font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  padding:3px 10px;border-radius:99px;
}
.status-badge.active{background:#dcfce7;color:#16a34a;}
.status-badge.inactive{background:#fee2e2;color:#dc2626;}
.status-badge.pending{background:#fef9c3;color:#a16207;}

/* Essential badge */
.ess-badge{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  padding:3px 9px;border-radius:99px;
}
.ess-badge.on{background:#fef9c3;color:#a16207;}
.ess-badge.off{background:#f1f5f9;color:var(--muted);}

/* Icon cell */
.aapp-cell{display:flex;align-items:center;gap:10px;}
.aapp-icon{
  width:34px;height:34px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
}
.aapp-name{font-weight:800;font-size:13px;}
.aapp-type{font-size:11px;color:var(--muted);font-weight:600;}

/* Inline selects inside table */
.admin-inline-select{
  border:1.5px solid var(--border);background:var(--bg);border-radius:8px;
  padding:6px 28px 6px 10px;font-family:'Cabinet Grotesk',sans-serif;
  font-size:12px;font-weight:700;color:var(--text);cursor:pointer;outline:none;
  transition:border-color .15s;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center;
}
.admin-inline-select:focus{border-color:#3b5bff;background:#fff;}

/* Row action buttons */
.admin-row-actions{display:flex;gap:6px;justify-content:flex-end;}
.admin-icon-btn{
  width:30px;height:30px;border-radius:7px;border:1.5px solid var(--border);
  background:transparent;cursor:pointer;font-size:13px;
  display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--muted);
}
.admin-icon-btn:hover{border-color:#1a1916;color:#1a1916;background:var(--bg);}
.admin-icon-btn.danger:hover{border-color:#dc2626;color:#dc2626;background:#fff5f5;}
.admin-icon-btn.success:hover{border-color:#16a34a;color:#16a34a;background:#f0fdf4;}

/* Dept dot */
.admin-dept-dot{
  display:inline-block;width:8px;height:8px;border-radius:50%;
  margin-right:6px;flex-shrink:0;
}
/* ===================== END ADMIN PANEL ===================== */

/* ===================== REQUEST MODALS ===================== */
.req-success{
  display:flex;flex-direction:column;align-items:center;
  padding:28px 16px 8px;text-align:center;
}
.req-success-icon{font-size:44px;line-height:1;margin-bottom:14px;}
.req-success-title{font-size:18px;font-weight:800;color:var(--text);margin-bottom:8px;}
.req-success-msg{font-size:13px;font-weight:600;color:var(--muted);line-height:1.6;max-width:320px;}

.req-info-box{
  background:var(--bg);border:1.5px solid var(--border);
  border-radius:12px;padding:14px 16px;
  display:flex;flex-direction:column;gap:8px;
}
.req-info-row{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.req-info-key{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.req-info-val{font-size:13px;font-weight:700;color:var(--text);}
.req-info-note{
  font-size:11px;font-weight:600;color:var(--muted);
  border-top:1px solid var(--border);padding-top:10px;margin-top:2px;line-height:1.55;
}

/* ===================== TOAST ===================== */
#appHubToast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(80px);
  background:#1a1916;color:#fff;
  font-family:'Cabinet Grotesk',sans-serif;font-size:13px;font-weight:700;
  padding:11px 22px;border-radius:99px;
  box-shadow:0 8px 32px rgba(0,0,0,.22);
  pointer-events:none;z-index:9999;
  transition:transform .3s cubic-bezier(0.22,1,0.36,1), opacity .3s ease;
  opacity:0;white-space:nowrap;
}
#appHubToast.toast-show{
  transform:translateX(-50%) translateY(0);
  opacity:1;
}
#appHubToast.toast-hide{
  transform:translateX(-50%) translateY(80px);
  opacity:0;
}

/* ===================== CARD FEATURES ===================== */
.restrict-chip{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:800;letter-spacing:.3px;
  padding:2px 8px;border-radius:6px;margin-top:4px;
  background:#fef3c7;color:#92400e;border:1px solid #fde68a;
}
.restrict-chip.inactive-chip{background:#fee2e2;color:#991b1b;border-color:#fca5a5;}
.app-card.featured .restrict-chip{background:rgba(255,255,255,.12);color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.2);}

.fav-btn{
  background:none;border:none;cursor:pointer;
  font-size:16px;color:rgba(0,0,0,.2);
  transition:color .15s,transform .2s cubic-bezier(.34,1.56,.64,1);
  padding:0 2px;line-height:1;flex-shrink:0;
}
.fav-btn:hover{color:rgba(0,0,0,.5);}
.fav-btn.active{color:#f59e0b;}
.fav-btn.active:hover{color:#d97706;}
.app-card.featured .fav-btn{color:rgba(255,255,255,.25);}
.app-card.featured .fav-btn:hover{color:rgba(255,255,255,.6);}
.app-card.featured .fav-btn.active{color:#fbbf24;}

.tile-fav{
  position:absolute;top:5px;left:6px;
  background:none;border:none;cursor:pointer;
  font-size:13px;color:rgba(0,0,0,.2);
  transition:color .15s;padding:2px;z-index:2;line-height:1;
}
.tile-fav:hover{color:rgba(0,0,0,.5);}
.tile-fav.active{color:#f59e0b;}
.tile-restricted{opacity:.65;}
.tile-icon-wrap{position:relative;}
.tile-lock{
  position:absolute;bottom:-2px;right:-4px;
  font-size:12px;line-height:1;
}

.cta-btn.req-btn{background:#fef3c7;color:#92400e;border-color:#fde68a;}
.cta-btn.req-btn:hover{background:#fde68a;border-color:#d97706;}

/* USAGE BAR */
.usage-bar-wrap{display:flex;align-items:center;gap:7px;width:100%;}
.usage-bar{flex:1;height:5px;background:var(--border);border-radius:99px;overflow:hidden;min-width:40px;}
.usage-bar-fill{height:100%;border-radius:99px;}

/* ===================== MOBILE RESPONSIVE ===================== */
/* ===================== DARK MODE ===================== */
[data-theme="dark"] {
  --bg:#111110;
  --white:#1c1b19;
  --surface:#161513;
  --border:#2e2c28;
  --text:#f0ede8;
  --muted:#9a9790;
  --muted2:#65625e;
}
[data-theme="dark"] body::before{
  background-image:radial-gradient(circle,rgba(255,255,255,.04) 1px,transparent 1px);
}
[data-theme="dark"] .hero{
  background:linear-gradient(135deg,#252320 60%,#2d2a26);
}
[data-theme="dark"] .filter-bar,
[data-theme="dark"] .app-card,
[data-theme="dark"] .table-wrap,
[data-theme="dark"] .modal,
[data-theme="dark"] .admin-panel,
[data-theme="dark"] .us-dropdown,
[data-theme="dark"] .confirm-box{
  box-shadow:0 1px 0 #2a2825,0 2px 0 #252320,0 6px 20px rgba(0,0,0,.4),0 16px 40px rgba(0,0,0,.35);
}
[data-theme="dark"] .form-input:focus,
[data-theme="dark"] .aform-input:focus{ background:var(--white); }
[data-theme="dark"] .app-table thead tr{ background:var(--surface); }
[data-theme="dark"] .app-table tbody tr:hover{ background:#222120; }
[data-theme="dark"] .admin-scope-banner{ background:#0d2a20;border-color:#1a4a35; }
[data-theme="dark"] .cbadge.active{ background:#14402a;color:#4ade80; }
[data-theme="dark"] .cbadge.inactive{ background:#3b1212;color:#f87171; }
[data-theme="dark"] .cbadge.internal{ background:#1e2d4a;color:#60a5fa; }
[data-theme="dark"] .cbadge.external{ background:#2d1a4a;color:#c084fc; }
[data-theme="dark"] .restrict-chip{ background:#3b2a0a;color:#fbbf24;border-color:#78480f; }
[data-theme="dark"] .restrict-chip.inactive-chip{ background:#3b1212;color:#fca5a5;border-color:#7f1d1d; }
[data-theme="dark"] .req-info-box{ background:var(--surface); }
[data-theme="dark"] .us-dropdown-item:hover{ background:var(--surface); }
[data-theme="dark"] .us-dropdown-item.active{ background:#252320; }
[data-theme="dark"] .dept-pill.active{ background:#3b5bff;border-color:#3b5bff;color:#fff; }
[data-theme="dark"] .dept-pill.active *{ color:#fff; }
[data-theme="dark"] .dept-pill.active .pill-count{ opacity:.7;color:#fff; }
[data-theme="dark"] .view-btn.active{ background:#3b5bff;border-color:#3b5bff;color:#fff; }
[data-theme="dark"] select.fselect,
[data-theme="dark"] .sort-select{ background-color:var(--white); }
[data-theme="dark"] .hdr-btn.filled{ background:var(--text);color:var(--bg);border-color:var(--text); }
[data-theme="dark"] .lf-google-btn{ background:var(--white);color:var(--text); }

/* ── Dark mode contrast fixes ─────────────────────────────────── */
/* Modal tab active — hardcoded #1a1916 → readable */
[data-theme="dark"] .modal-tab.active{ color:var(--text);border-bottom-color:var(--text); }
/* Modal description body text — hardcoded #444 → readable */
[data-theme="dark"] .modal-desc{ color:rgba(240,237,232,.8); }
/* Admin tab active — hardcoded #1a1916 → readable */
[data-theme="dark"] .admin-tab-pill.active{ color:var(--text);border-color:var(--border);border-bottom-color:var(--bg); }
/* Modal close button — browser UA sets color:black on buttons, override it */
[data-theme="dark"] .modal-close{ color:var(--text); }
/* Fav/heart star button — near-invisible black → clearly visible */
[data-theme="dark"] .fav-btn{ color:rgba(255,255,255,.45); }
[data-theme="dark"] .fav-btn:hover{ color:rgba(255,255,255,.80); }
/* Open button — blends into dark card, needs visible contrast */
[data-theme="dark"] .cta-btn.open{ background:#3b5bff;color:#fff;border-color:#3b5bff; }
[data-theme="dark"] .cta-btn.open:hover{ background:#4f6dff;border-color:#4f6dff; }
/* mbadge (in modal info grid) — light pastels → dark equivalents */
[data-theme="dark"] .mbadge.active{ background:#14402a;color:#4ade80; }
[data-theme="dark"] .mbadge.inactive{ background:#3b1212;color:#f87171; }
[data-theme="dark"] .mbadge.internal{ background:#1e2d4a;color:#60a5fa; }
[data-theme="dark"] .mbadge.external{ background:#2d1a4a;color:#c084fc; }
/* status-badge (admin table) — light pastels → dark equivalents */
[data-theme="dark"] .status-badge.active{ background:#14402a;color:#4ade80; }
[data-theme="dark"] .status-badge.inactive{ background:#3b1212;color:#f87171; }
[data-theme="dark"] .status-badge.pending{ background:#3b2800;color:#fbbf24; }
/* role-badge (admin users table) — light pastels → dark equivalents */
[data-theme="dark"] .role-badge.admin{ background:#3b2a0a;color:#fbbf24; }
[data-theme="dark"] .role-badge.member{ background:#1e2d4a;color:#60a5fa; }
[data-theme="dark"] .role-badge.viewer{ background:#252320;color:var(--muted); }
/* ess-badge essential marker — light yellow → dark equivalent */
[data-theme="dark"] .ess-badge.on{ background:#3b2800;color:#fbbf24; }
[data-theme="dark"] .ess-badge.off{ background:#252320;color:var(--muted); }
/* cta-btn.docs — light blue island → dark equivalent */
[data-theme="dark"] .cta-btn.docs{ background:#192240;color:#93b4fd;border-color:#1e3a6a; }
[data-theme="dark"] .cta-btn.docs:hover{ background:#1e2d5a;border-color:#3b5bff; }
/* cta-btn.info hover — hardcoded #1a1916 → readable */
[data-theme="dark"] .cta-btn.info:hover{ border-color:var(--text);color:var(--text); }
/* req-btn (yellow request button on cards) — light amber → dark */
[data-theme="dark"] .cta-btn.req-btn{ background:#3b2800;color:#fbbf24;border-color:#78480f; }
[data-theme="dark"] .cta-btn.req-btn:hover{ background:#4a3300;border-color:#d97706; }

/* ── Search suggestions dropdown ─────────────────────────────── */
.search-suggest{
  display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:600;
  background:var(--white);border:1.5px solid var(--border);border-radius:12px;
  box-shadow:0 8px 32px rgba(0,0,0,.13);overflow:hidden;
}
.search-suggest.open{display:block;}
.sug-item{
  display:flex;align-items:center;gap:10px;padding:9px 14px;
  cursor:pointer;border-bottom:1px solid var(--border);transition:background .08s;
}
.sug-item:last-child{border-bottom:none;}
.sug-item:hover,.sug-item.sug-focused{background:var(--bg);}
.sug-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.sug-name{font-size:13px;font-weight:700;color:var(--text);}
.sug-meta{font-size:11px;color:var(--muted);font-weight:600;}
.sug-empty{padding:13px 16px;color:var(--muted);font-size:13px;font-weight:600;text-align:center;}

/* ── Sortable admin column headers ───────────────────────────── */
.sortable-th{cursor:pointer;user-select:none;white-space:nowrap;}
.sortable-th:hover{color:var(--text);}
.sort-arrow{font-style:normal;opacity:.75;margin-left:1px;}

/* ── Dark mode: tile view ────────────────────────────────────── */
[data-theme="dark"] .tile{border-color:var(--border);}
[data-theme="dark"] .tile:hover{background:#252320;}
[data-theme="dark"] .tile-name{color:var(--text);}
[data-theme="dark"] .tile-fav{color:rgba(255,255,255,.45);}
[data-theme="dark"] .tile-fav:hover{color:rgba(255,255,255,.80);}
/* ── Dark mode: toast ────────────────────────────────────────── */
[data-theme="dark"] #appHubToast{background:var(--text);color:var(--bg);}

/* ===================== SORT SELECT ===================== */
.sort-wrap{ display:flex;align-items:center;margin-left:6px; }
.sort-select{
  border:1.5px solid var(--border);background:var(--white);border-radius:8px;
  padding:7px 28px 7px 12px;font-family:'Cabinet Grotesk',sans-serif;
  font-size:13px;font-weight:700;color:var(--text);cursor:pointer;outline:none;
  transition:border-color .15s;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
}
.sort-select:focus{ border-color:#3b5bff; }

/* ===================== REQUEST BADGE ===================== */
.req-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;border-radius:99px;
  background:#dc2626;color:#fff;
  font-size:10px;font-weight:800;
  margin-left:7px;padding:0 5px;
  animation:badgePop .25s cubic-bezier(.34,1.56,.64,1);
}
@keyframes badgePop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}

@media (max-width: 900px) {
  .wrap { padding: 0 16px; }

  header {
    flex-wrap: wrap;
    gap: 10px;
    padding: 14px 0;
  }
  .header-right {
    gap: 8px;
    flex-wrap: wrap;
  }
  .user-switcher { order: -1; }
  .hdr-btn, .hdr-btn.filled { padding: 7px 12px; font-size: 12px; }
  #btnAdmin { display: none !important; }

  .hero {
    flex-direction: column;
    align-items: flex-start;
    padding: 24px 22px;
    gap: 20px;
  }
  .hero-text h1 { font-size: 24px; }
  .hero-stats { margin-left: 0; gap: 16px; }
  .hstat-val { font-size: 28px; }

  .filter-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 12px 14px;
  }
  .divider-v { display: none; }
  .filter-group { justify-content: space-between; }
  .filter-group select { flex: 1; }
  .search-wrap { min-width: unset; }

  .dept-pill { padding: 8px 12px; font-size: 12px; }

  .app-grid { grid-template-columns: 1fr; }
  .app-card.featured { grid-column: span 1; }

  .tiles-grid { grid-template-columns: repeat(4, 1fr); }

  .modal {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 92dvh;
    border-radius: 20px 20px 0 0;
    margin-top: auto;
  }
  .modal-overlay {
    align-items: flex-end;
  }
  #modal { align-items: flex-end; }

  .modal-actions { flex-wrap: wrap; }
  .maction { flex: 1 1 calc(50% - 5px); min-width: 120px; }

  .info-grid { grid-template-columns: 1fr 1fr; }

  .section-header { flex-wrap: wrap; gap: 8px; }
  .view-toggle { order: 3; }
}

@media (max-width: 560px) {
  .hero-stats { flex-wrap: wrap; gap: 12px; }
  .hstat { min-width: 60px; }
  .tiles-grid { grid-template-columns: repeat(3, 1fr); }
  .header-right { width: 100%; }
  .us-info { display: none; }
  .filter-group { flex-direction: column; align-items: flex-start; }
  .maction { flex: 1 1 100%; }
}
