/* ══════════════════════════════════════════════════════════════
   VYRO PORTAL — portal.css  (Light Mode — Azia Inspired)
   Clean, professional, project-management-style light theme
══════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#0a0c10;--bg2:#0f1218;--surface:#111520;--surface2:#161b28;
  --border:#1e2535;--text:#dde4f0;--text2:#7a8aa5;--text3:#3a4560;
  --accent:#e02020;--accent2:#f97316;--success:#10b981;--warning:#f59e0b;
  --danger:#ef4444;--gold:#eab308;--purple:#a855f7;--teal:#14b8a6;
  --blue:#3b82f6;--lime:#84cc16;
  --shadow:0 1px 3px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.2);
  --shadow-lg:0 4px 16px rgba(0,0,0,.45);
  --r:14px;--r-sm:10px;--r-lg:18px;--r-pill:999px;
  --font:'DM Sans',system-ui,-apple-system,sans-serif;
  --mob-h:72px;
}
html{font-size:16px;color-scheme:dark;overscroll-behavior:none;overscroll-behavior-y:none;height:100%;width:100%;overflow:hidden;position:fixed}
body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;-webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;}
button{font-family:var(--font);cursor:pointer;border:none;outline:none;background:none;color:var(--text);}
input,textarea,select{font-family:var(--font);outline:none;color:var(--text);}
a{text-decoration:none;color:inherit;}
.hidden{display:none!important;}
input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #111520 inset;-webkit-text-fill-color:var(--text);caret-color:var(--text);}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}

/* Form inputs — light theme */
input,select,textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 14px;font-family:'DM Sans';font-size:.9rem;width:100%;transition:border-color .2s;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(224,32,32,.08)}
select option{background:var(--surface);color:var(--text)}

@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes pulse-bg{0%,100%{opacity:.4}50%{opacity:.7}}
@keyframes wave{0%{transform:rotate(0)}25%{transform:rotate(14deg)}50%{transform:rotate(0)}75%{transform:rotate(-8deg)}100%{transform:rotate(0)}}
@keyframes glow-pulse{0%,100%{box-shadow:0 0 20px rgba(224,32,32,0.1)}50%{box-shadow:0 0 30px rgba(224,32,32,0.18)}}

/* ── LOGIN ──────────────────────────────────────────────────── */
.login-shell{display:flex;height:100vh;overflow:hidden;position:relative;background:#080a0f;}
.login-blob{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;animation:pulse-bg 5s ease-in-out infinite;}
.login-blob-1{width:400px;height:400px;background:rgba(224,32,32,0.06);top:-100px;left:-60px;}
.login-blob-2{width:300px;height:300px;background:rgba(224,32,32,0.04);bottom:-60px;right:8%;}
.login-blob-3{width:200px;height:200px;background:rgba(224,32,32,0.03);top:35%;right:-40px;animation-delay:2.5s;}
.login-left{width:50%;flex-shrink:0;padding:64px;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1;background:linear-gradient(135deg,#7f1d1d 0%,#b91c1c 40%,#e02020 100%);position:relative;overflow:hidden;}
.login-left::before{content:'';position:absolute;top:-80px;right:-80px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.06)}
.login-left::after{content:'';position:absolute;bottom:-60px;left:-60px;width:250px;height:250px;border-radius:50%;background:rgba(255,255,255,.04)}
.login-brand-row{display:flex;align-items:center;gap:10px;margin-bottom:44px;}
.login-brand-icon{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;}
.login-brand-name{font-size:17px;font-weight:700;letter-spacing:-.4px;color:#fff;}
.login-headline{font-size:34px;font-weight:700;line-height:1.2;letter-spacing:-.5px;margin-bottom:14px;color:#fff;text-align:center;}
.login-headline span{color:rgba(255,255,255,.85);}
.login-sub{font-size:14px;color:rgba(255,255,255,0.75);line-height:1.7;max-width:380px;margin-bottom:32px;text-align:center;}
.login-feat{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(255,255,255,0.8);margin-bottom:12px;}
.login-feat-dot{width:6px;height:6px;border-radius:50%;background:#fff;flex-shrink:0;opacity:.6;}
.login-right{width:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:40px;z-index:2;}
.login-card{width:100%;background:#111520;border-radius:20px;padding:44px;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:fadeUp .5s ease-out;border:1px solid #1e2535;}
.login-card-title{font-size:22px;font-weight:700;margin-bottom:4px;color:#dde4f0;text-align:center;}
.login-card-sub{font-size:13px;color:#8392a5;margin-bottom:28px;text-align:center;}
.login-field{margin-bottom:16px;}
.login-field label{display:block;font-size:11px;font-weight:600;color:#8392a5;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;}
.login-field input{width:100%;padding:12px 16px;border-radius:10px;border:1.5px solid #1e2535;background:#161b28;font-size:14px;transition:border .15s,box-shadow .15s;color:#dde4f0;}
.login-field input:focus{border-color:#e02020;box-shadow:0 0 0 3px rgba(224,32,32,0.1);}
.login-field input::placeholder{color:#b4bdce;}
.login-field input:disabled{opacity:.5;}
.login-btn{width:100%;padding:13px;border-radius:10px;background:#e02020;color:#fff;font-size:14px;font-weight:700;box-shadow:0 4px 14px rgba(224,32,32,0.25);transition:transform .15s,box-shadow .15s,background .15s;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;}
.login-btn:hover:not(:disabled){background:#c81818;transform:translateY(-1px);box-shadow:0 6px 20px rgba(224,32,32,0.35);}
.login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.login-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;}
.login-error{margin-top:12px;padding:10px 14px;border-radius:10px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25);font-size:12px;font-weight:600;color:#ef4444;text-align:center;}
.login-btn-ghost{width:100%;padding:11px;border-radius:10px;background:transparent;color:#8392a5;font-size:13px;font-weight:600;border:1px solid #1e2535;margin-top:8px;transition:border-color .15s,color .15s;}
.login-btn-ghost:hover{border-color:#8392a5;color:#dde4f0;}
.login-divider{display:flex;align-items:center;gap:10px;margin:20px 0 16px;color:#3a4458;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:#1e2535;}
.login-google-btn{width:100%;padding:12px;border-radius:10px;background:#fff;color:#1a1a2e;font-size:13px;font-weight:600;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center;gap:10px;transition:box-shadow .15s,transform .15s;}
.login-google-btn:hover{box-shadow:0 4px 14px rgba(0,0,0,.15);transform:translateY(-1px);}
.login-google-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.login-invite-msg{font-size:12px;color:#a3b3c8;text-align:center;margin-bottom:12px;font-weight:500;}
.login-invite-note{font-size:11px;color:#3a4458;text-align:center;margin-top:10px;}
/* Pending badge on admin tab */
.admin-tab-badge{display:inline-flex;align-items:center;justify-content:center;background:#e02020;color:#fff;font-size:10px;font-weight:700;border-radius:99px;min-width:16px;height:16px;padding:0 4px;margin-left:5px;vertical-align:middle;}
/* Approval card in admin panel */
.approval-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px 20px;display:flex;align-items:center;gap:14px;margin-bottom:10px;}
.approval-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#e2e8f0;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#1b2e4b;}
.approval-info{flex:1;min-width:0;}
.approval-name{font-weight:600;font-size:.9rem;color:#1b2e4b;}
.approval-email{font-size:.78rem;color:#8392a5;margin-top:1px;}
.approval-meta{font-size:.72rem;color:#a0aec0;margin-top:3px;}
.approval-actions{display:flex;gap:8px;flex-shrink:0;}
/* Invite link result box */
.invite-link-box{margin-top:12px;padding:12px;border-radius:8px;background:#f0fdf4;border:1px solid #bbf7d0;font-size:.8rem;color:#166534;word-break:break-all;line-height:1.5;}

/* Login tickers */
.login-tickers{display:flex;gap:24px;margin-top:36px;justify-content:center}
.login-ticker{text-align:center}
.login-ticker-num{display:block;font-family:'Bebas Neue',sans-serif;font-size:2rem;color:#fff;letter-spacing:.02em;line-height:1}
.login-ticker-label{font-size:.7rem;color:rgba(255,255,255,.6);margin-top:2px;letter-spacing:.04em}

/* Login particles */
.login-particles{position:absolute;inset:0;z-index:0;pointer-events:none}

/* Login footer */
.login-footer{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-size:.7rem;color:rgba(255,255,255,.4);z-index:1}

/* Welcome overlay */
.welcome-overlay{position:fixed;inset:0;z-index:99999;background:rgba(10,12,16,.96);display:flex;align-items:center;justify-content:center;transition:opacity .5s}
.welcome-overlay.welcome-fade{opacity:0;pointer-events:none}
.welcome-content{text-align:center;animation:fadeUp .4s ease-out}
.welcome-wave{font-size:3rem;animation:wave 1s ease-in-out}
.welcome-text{font-size:1.5rem;font-weight:700;color:var(--text);margin-top:12px}
.welcome-sub{font-size:1rem;color:var(--text2);margin-top:4px}

/* Quote widget */
.quote-widget{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 24px;margin-bottom:20px;position:relative}
.quote-text{font-size:.9rem;color:var(--text);line-height:1.6;font-style:italic}
.quote-author{font-size:.75rem;color:var(--text3);margin-top:8px}

/* Streak badge */
.streak-badge{display:inline-flex;align-items:center;gap:4px;background:#1a1200;border:1px solid #3d2800;color:#f97316;font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:20px}

/* Clock */
.clock-widget{display:flex;flex-direction:column;align-items:flex-end}
.clock-time{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;color:var(--text);letter-spacing:.04em;line-height:1}
.clock-date{font-size:.65rem;color:var(--text3)}
/* Clock inside dark hero — override to white */
#live-clock .clock-time{color:rgba(255,255,255,.95)!important}
#live-clock .clock-date{color:rgba(255,255,255,.5)!important}

/* Recently viewed */
.recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.recent-card{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:all .15s}
.recent-card:hover{box-shadow:var(--shadow);border-color:var(--text3)}
.recent-icon{font-size:1.1rem}
.recent-info{flex:1;min-width:0}
.recent-name{font-size:.8rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-time{font-size:.65rem;color:var(--text3)}

/* Avatar upload */
.avatar-preview-wrap{display:flex;justify-content:center;margin:16px 0}
.avatar-preview{width:100px;height:100px;border-radius:50%;background:var(--bg);border:3px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden}

/* Skeleton enhancements */
.skeleton-card-wrap{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;animation:pulse-bg 1.5s ease-in-out infinite}
.skeleton-bar{background:var(--border);border-radius:4px;animation:pulse-bg 1.5s ease-in-out infinite}
.skeleton-circle{border-radius:50%;background:var(--border);animation:pulse-bg 1.5s ease-in-out infinite}

/* Sparkline canvas in stat cards */
.dash-stat-card{position:relative;overflow:hidden}
.dash-stat-sparkline{position:absolute;bottom:0;left:0;right:0;height:30px;opacity:.5}

/* ── PORTAL ──────────────────────────────────────────────── */
#portal{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--bg);position:relative;}
.portal-blob{display:none;}
.portal-blob-1,.portal-blob-2,.portal-blob-3{display:none;}

/* ── TOP NAVIGATION BAR ────────────────────────────────── */
.topnav{position:fixed;top:0;left:0;right:0;height:60px;background:#0a0c10;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:0;padding:0 20px;z-index:100;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.topnav-left{display:flex;align-items:center;flex-shrink:0}
.topnav-logo{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:.06em;color:var(--text);font-weight:700;margin-right:8px}
.topnav-menu{display:flex;align-items:center;gap:2px;flex:1;min-width:0}
.topnav-item{color:var(--text2);font-size:.82rem;font-weight:500;padding:7px 11px;border-radius:6px;cursor:pointer;transition:all .15s;text-decoration:none;white-space:nowrap}
.topnav-item:hover{color:var(--text);background:var(--bg)}
.topnav-item.active{color:var(--accent);background:rgba(224,32,32,.06);font-weight:600}
.topnav-right{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:8px}
.topnav-icon-btn{background:transparent;border:1px solid var(--border);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text2);font-size:.9rem;transition:all .15s;position:relative}
.topnav-icon-btn:hover{background:var(--bg);color:var(--text)}
.topnav-avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;cursor:pointer}

/* Dropdown menus */
.topnav-dropdown{position:relative}
.topnav-dropdown-menu{display:none;position:absolute;top:100%;left:0;margin-top:4px;background:#111520;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.45);min-width:200px;max-width:calc(100vw - 32px);padding:6px;z-index:200}
.topnav-dropdown:hover .topnav-dropdown-menu{display:block}
.topnav-dropdown-menu a{display:block;padding:8px 14px;border-radius:6px;color:var(--text2);font-size:.85rem;cursor:pointer;transition:all .12s;text-decoration:none}
.topnav-dropdown-menu a:hover{background:var(--bg);color:var(--text)}

/* Legacy header — removed */
.notif-dot{position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:2px solid #0a0c10;font-size:0;}

/* Notification dropdown */
.notif-dropdown{position:fixed;top:60px;right:24px;width:340px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);z-index:500;overflow:hidden;}
.nd-head{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--text);}
.nd-mark{font-size:11px;color:var(--accent);cursor:pointer;font-weight:600;}
.nd-list{max-height:min(340px,55vh);overflow-y:auto;}
.nd-item{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:flex-start;transition:background .12s;}
.nd-item:hover{background:var(--bg);}
.nd-item.unread{background:rgba(224,32,32,0.04);}
.nd-ico{font-size:16px;flex-shrink:0;margin-top:1px;}
.nd-body{flex:1;min-width:0;}
.nd-msg{font-size:12px;color:var(--text2);line-height:1.45;}
.nd-time{font-size:11px;color:var(--text3);margin-top:2px;font-style:italic;}
.nd-empty{padding:28px;text-align:center;color:var(--text3);font-size:12px;font-style:italic;}

/* ── MAIN CONTENT AREA ───────────────────────────────────── */
.main-content{flex:1;margin-left:0;margin-top:60px;display:flex;flex-direction:column;overflow:hidden;z-index:2;position:relative;background:var(--bg);overscroll-behavior:contain}

/* ── PANELS ──────────────────────────────────────────────── */
.panels{flex:1;position:relative;overflow:hidden;}
.panel{position:absolute;inset:0;display:none;flex-direction:column;overflow:hidden;}
.panel.active{display:flex;}
.page-scroll{flex:1;overflow-y:auto;display:flex;flex-direction:column;overscroll-behavior:none;-webkit-overflow-scrolling:touch;background:var(--bg)}
.page-head{padding:0 20px 14px;flex-shrink:0;color:var(--text)}
.page-head h2{font-size:24px;font-weight:600;margin-bottom:2px;color:var(--text)}
.page-head p{font-size:12px;color:var(--text2);font-style:italic;}
.page-body{flex:1;padding:0 20px 24px;color:var(--text)}
.search-input{width:100%;padding:10px 14px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);font-size:13px;margin-bottom:16px;transition:border .15s;color:var(--text)}
.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(224,32,32,0.06);}
.search-input::placeholder{color:var(--text3);}
.empty-state{text-align:center;padding:40px 20px;color:var(--text2);font-style:italic;}
.empty-state span{display:block;font-size:32px;margin-bottom:8px;}
.empty-state p{font-size:13px;line-height:1.6;}
.primary-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--r-sm);background:var(--accent);color:#fff;font-size:12px;font-weight:700;box-shadow:0 2px 8px rgba(224,32,32,0.2);}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:.05em;color:var(--accent);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.vibe-greet{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:4px;font-style:italic;}
.vibe-title{font-size:26px;font-weight:600;color:var(--text);margin-bottom:2px;}
.vibe-title .wave{display:inline-block;animation:wave 1.5s ease-in-out infinite;transform-origin:70% 70%;}
.vibe-sub{font-size:12px;color:var(--text2);margin-bottom:20px;font-style:italic;}
.vibe-search{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);margin-bottom:20px;transition:border .15s;}
.vibe-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(224,32,32,0.06);}
.vibe-search span{font-size:14px;color:var(--text2);}
.vibe-search input{flex:1;border:none;background:transparent;font-size:13px;color:var(--text)}
.vibe-search input::placeholder{color:var(--text3);}

/* ── APP CARDS ───────────────────────────────────────────── */
/* ── APP ROWS ── */
.apps-cat-btn{padding:5px 14px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .12s;white-space:nowrap;}
.apps-cat-btn.active,.apps-cat-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
.apps-group{margin-bottom:24px;}
.apps-cat-header{display:flex;align-items:center;gap:8px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:8px;padding:0 2px;}
.apps-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.apps-group-rows{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.app-row{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border);}
.app-row:last-child{border-bottom:none;}
.app-row:hover{background:var(--bg);}
.app-row-badge{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:#fff;flex-shrink:0;}
.app-row-info{flex:1;min-width:0;}
.app-row-name{font-size:.95rem;font-weight:700;color:var(--text);}
.app-row-desc{font-size:.75rem;color:var(--text3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.app-row-arrow{font-size:.85rem;color:var(--text3);flex-shrink:0;}
.app-row-admin{display:flex;gap:4px;flex-shrink:0;}
/* legacy refs */
.app-card{display:none;}.app-name,.app-cat,.app-logo,.app-logo-ph,.app-card-glow{}
.app-desc{font-size:11px;color:var(--text2);line-height:1.5;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1;font-style:italic;}
.app-open-btn{display:none;}
.card-admin-actions{display:flex;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);position:relative;z-index:1;}
.btn-sm{padding:4px 10px;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;transition:all .12s;}
.btn-sm:hover{opacity:.8;}
.btn-edit{background:rgba(224,32,32,0.06);color:var(--accent);border:1px solid rgba(224,32,32,0.15);}
.btn-del{background:rgba(239,68,68,0.06);color:var(--danger);border:1px solid rgba(239,68,68,0.12);}
.btn-outline{background:var(--surface);color:var(--text2);border:1px solid var(--border);}
/* Legacy app-card nth-child rules removed — app-card is display:none */
.app-card:nth-child(6n+3) .app-logo,.app-card:nth-child(6n+3) .app-logo-ph{animation:float 3.2s ease-in-out infinite .8s;}
.app-card:nth-child(6n+4) .app-logo,.app-card:nth-child(6n+4) .app-logo-ph{animation:float 3.8s ease-in-out infinite .2s;}
.app-card:nth-child(6n+5) .app-logo,.app-card:nth-child(6n+5) .app-logo-ph{animation:float 3.4s ease-in-out infinite .6s;}
.app-card:nth-child(6n+6) .app-logo,.app-card:nth-child(6n+6) .app-logo-ph{animation:float 3.6s ease-in-out infinite 1s;}

/* ── RESOURCES ───────────────────────────────────────────── */
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;}
.res-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;transition:all .2s;cursor:pointer;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.res-card:hover{background:var(--surface2);border-color:var(--text3);transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.res-icon{font-size:24px;margin-bottom:6px;}
.res-title{font-size:13px;font-weight:600;margin-bottom:2px;color:var(--text)}
.res-desc{font-size:11px;color:var(--text2);line-height:1.5;font-style:italic;}
.res-cat-badge{font-size:9px;font-weight:600;color:var(--accent);background:rgba(224,32,32,0.06);padding:2px 8px;border-radius:var(--r-pill);display:inline-block;margin-top:auto;width:fit-content;}

/* ── TOOLS STRIP ─────────────────────────────────────────── */
.tools-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;margin:20px 0 10px;font-style:italic;}
.tools-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;}
.tools-row::-webkit-scrollbar{height:0;}
.tool-pill{flex-shrink:0;padding:8px 16px;border-radius:var(--r-sm);font-size:11px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px;}
.tool-pill:hover{background:var(--surface2);color:var(--text);border-color:var(--text3);}
.tool-pill span{font-size:14px;}

/* ── EMBEDS ──────────────────────────────────────────────── */
.embed-wrap{display:flex;flex-direction:column;position:absolute;inset:0;overflow:hidden;}
.embed-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:3;}
.embed-title{font-size:13px;font-weight:600;color:var(--text)}
.embed-bar-right{display:flex;gap:6px;}
.embed-btn{padding:5px 10px;border-radius:var(--r-sm);background:var(--surface);color:var(--text2);font-size:12px;font-weight:600;transition:all .12s;text-decoration:none;display:inline-flex;align-items:center;cursor:pointer;border:1px solid var(--border);}
.embed-btn:hover{background:var(--bg);color:var(--text);}
.embed-frame{flex:1;position:relative;overflow:hidden;}
.embed-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;}
.embed-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:var(--bg);font-size:13px;color:var(--text2);z-index:2;}
.embed-spin{width:24px;height:24px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;}

/* ── BOTTOM NAV (mobile only) ────────────────────────────── */
.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:72px;background:var(--surface);border-top:1px solid var(--border);z-index:900;align-items:center;justify-content:space-around;padding:0 12px 8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));}
.mob-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 14px;border-radius:10px;font-size:10px;font-weight:600;color:var(--text3);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;line-height:1}
.mob-item.active{color:var(--accent);background:rgba(224,32,32,.06)}
.mob-svg{width:20px;height:20px;flex-shrink:0}
.mob-more-menu{position:fixed;bottom:calc(var(--mob-h) + 8px);right:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-lg);z-index:950;overflow:hidden;min-width:180px;}
.mob-more-item{display:block;padding:12px 16px;font-size:13px;font-weight:500;color:var(--text2);border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.mob-more-item:last-child{border-bottom:none;}
.mob-more-item:hover,.mob-more-item.active{background:rgba(224,32,32,.04);color:var(--accent);}

/* ── Entertainment mode (section color switching) ────────── */
.ent-mode .vi-sub-btn.active{color:var(--accent2)!important;background:rgba(249,115,22,.06)!important}
.ent-mode .db-row:hover{border-left-color:var(--accent2)}
.ent-mode .dash-section-title{color:var(--accent2)}
.ent-mode .section-title{color:var(--accent2)}
.ent-mode .db-controls input[type="text"]:focus{border-color:var(--accent2)}
.ent-mode .btn-primary{background:var(--accent2)!important}
.ent-mode .btn-primary:hover{background:#ea6c10!important}

/* ── MODALS ──────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal{background:var(--surface);border-radius:var(--r-lg);padding:28px;padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-lg);border:1px solid var(--border);width:480px;max-width:100%;max-height:88vh;overflow-y:auto;animation:fadeUp .3s ease-out;}
.modal h3{font-size:17px;font-weight:700;margin-bottom:2px;color:var(--text)}
.modal-sub{font-size:12px;color:var(--text2);margin-bottom:18px;font-style:italic;}
.modal-field{margin-bottom:12px;}
.modal-field label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px;}
.modal-field input,.modal-field select,.modal-textarea{width:100%;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);font-size:13px;transition:border .15s;color:var(--text)}
.modal-field input:focus,.modal-field select:focus,.modal-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(224,32,32,0.06);}
.modal-textarea{resize:vertical;min-height:80px;font-family:var(--font);}
.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.modal-actions{display:flex;gap:8px;margin-top:16px;}
.modal-cancel{flex:1;padding:10px;border-radius:var(--r-sm);background:var(--bg);color:var(--text2);font-size:12px;font-weight:600;border:1px solid var(--border);transition:background .12s;}
.modal-cancel:hover{background:var(--bg2);}
.modal-save{flex:2;padding:10px;border-radius:var(--r-sm);background:var(--accent);color:#fff;font-size:12px;font-weight:700;box-shadow:0 2px 8px rgba(224,32,32,0.2);}

/* ── ADMIN ───────────────────────────────────────────────── */
.admin-tabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;}
.admin-tab{padding:8px 16px;border-radius:var(--r-sm);font-size:12px;font-weight:600;color:var(--text2);background:var(--surface);border:1px solid var(--border);transition:all .12s;}
.admin-tab:hover{background:var(--bg);color:var(--text);}
.admin-tab.active{background:rgba(224,32,32,0.06);color:var(--accent);border-color:rgba(224,32,32,0.15);}
.admin-user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.admin-user-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;box-shadow:var(--shadow)}
.auc-top{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.auc-avatar{width:40px;height:40px;border-radius:50%;color:#fff;font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.auc-info{min-width:0;}.auc-name{font-size:13px;font-weight:600;color:var(--text)}.auc-email{font-size:11px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.auc-meta{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap;}
.auc-role{font-size:11px;font-weight:600;color:#fff;padding:2px 8px;border-radius:var(--r-pill);}
.auc-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);}
.auc-status.active{color:var(--success);background:rgba(16,185,129,0.08);border:1px solid rgba(16,185,129,0.15);}
.auc-status.inactive{color:var(--danger);background:rgba(239,68,68,0.06);border:1px solid rgba(239,68,68,0.12);}
.auc-actions{display:flex;gap:6px;}
.activity-list{display:flex;flex-direction:column;gap:4px;}
.activity-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);}
.activity-item:hover{background:var(--bg);}
.act-ico{font-size:16px;flex-shrink:0;}.act-body{flex:1;min-width:0;}.act-msg{font-size:12px;color:var(--text2);line-height:1.45;}.act-time{font-size:11px;color:var(--text3);margin-top:2px;}
.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}
.settings-section h3{font-size:14px;font-weight:700;margin-bottom:4px;color:var(--text)}.settings-desc{font-size:12px;color:var(--text2);margin-bottom:12px;font-style:italic;}
.tab-toggle-list{display:flex;flex-direction:column;gap:6px;}
.tab-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);transition:border-color .12s;}
.tab-toggle-row:hover{border-color:var(--text3);}
.tab-toggle-info{display:flex;align-items:center;gap:10px;}.tab-toggle-icon{font-size:18px;}.tab-toggle-name{font-size:13px;font-weight:600;color:var(--text)}
.toggle-switch{display:flex;align-items:center;gap:8px;cursor:pointer;}
.toggle-switch input{display:none;}
.toggle-track{width:38px;height:22px;border-radius:11px;background:var(--border);position:relative;transition:background .2s;flex-shrink:0;}
.toggle-switch input:checked+.toggle-track{background:var(--accent);}
.toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.15);transition:transform .2s;}
.toggle-switch input:checked+.toggle-track .toggle-thumb{transform:translateX(16px);}
.toggle-label{font-size:11px;font-weight:600;color:var(--text2);min-width:48px;}

/* ── SKELETON LOADING ─────────────────────────────────────── */
@keyframes shimmer2{0%{opacity:.6}50%{opacity:.3}100%{opacity:.6}}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-card{pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 12px!important;}
.skeleton-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(90deg,var(--bg) 25%,var(--bg2) 50%,var(--bg) 75%);background-size:200%;animation:shimmer 1.4s infinite;}
.skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--bg) 25%,var(--bg2) 50%,var(--bg) 75%);background-size:200%;animation:shimmer 1.4s infinite;}
.skeleton-line.sm{height:8px;margin-top:-2px;}
/* Database skeleton rows */
.skeleton-row{pointer-events:none}
.skeleton-row .skeleton-circle{width:32px;height:32px;border-radius:50%;background:var(--bg);animation:shimmer2 1.5s infinite}
.skeleton-row .skeleton-bar{height:12px;border-radius:4px;background:var(--bg);animation:shimmer2 1.5s infinite;margin-bottom:4px}
.skeleton-row .skeleton-bar.sm{height:8px;width:60%}

/* ── PTR ─────────────────────────────────────────────────── */
.ptr-indicator{position:fixed;top:0;left:50%;transform:translateX(-50%) translateY(-60px);z-index:9999;display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);opacity:0;transition:transform .25s ease,opacity .25s ease;pointer-events:none;}
.ptr-indicator.visible{pointer-events:auto;}
.ptr-indicator.loading .ptr-spinner{animation:spin .6s linear infinite;}
.ptr-indicator.ready .ptr-text{color:var(--accent);font-weight:700;}
.ptr-spinner{width:18px;height:18px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;}
.ptr-text{font-size:12px;font-weight:600;color:var(--text2);white-space:nowrap;}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(min-width:769px){
  .mobile-nav{display:none!important}
}
@media(max-width:900px){.apps-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:768px){
  /* Layout */
  .topnav-menu{display:none}
  .topnav{padding:0 12px}
  .main-content{margin-top:60px;margin-left:0!important;width:100%!important;max-width:100vw!important}
  .panels{width:100%!important}
  .panel{width:100%!important;overflow-x:hidden!important}
  .page-scroll{width:100%!important;overflow-x:hidden!important;padding:0 12px!important}

  /* Typography — smaller on mobile */
  h2{font-size:1.2rem!important}
  h3{font-size:1rem!important}
  .page-head h2{font-size:1.1rem!important}
  .section-title,.dash-section-title{font-size:1rem!important}

  /* Mobile nav */
  .mobile-nav{display:flex!important}

  /* Database controls */
  .db-controls{flex-direction:column!important;gap:8px!important}
  .db-controls input,.db-controls select{width:100%!important;max-width:100%!important;font-size:.8rem!important}
  .export-btn{width:100%!important}

  /* Database rows */
  .db-row{padding:8px 6px!important;font-size:.78rem!important;gap:6px!important}
  .db-header{font-size:.65rem!important;padding:6px!important;gap:6px!important}
  .db-avatar{width:28px!important;height:28px!important}
  .db-name{font-size:.8rem!important}
  .db-meta{font-size:.65rem!important}

  /* Hide less important columns on mobile */
  .db-row>:nth-child(n+5),.db-header>:nth-child(n+5){display:none!important}

  /* Detail panel — full screen on mobile */
  .detail-panel{width:100vw!important;left:0!important;right:0!important;top:60px!important;padding:16px!important}
  .detail-close{top:12px!important;right:12px!important;font-size:1.6rem!important;padding:8px 12px!important;z-index:10!important;background:var(--bg)!important;border-radius:8px!important;color:var(--text)!important}
  .detail-avatar-lg{width:60px!important;height:60px!important}

  /* Sub nav */
  .vi-sub-nav{overflow-x:auto!important;-webkit-overflow-scrolling:touch;justify-content:flex-start!important;padding:6px 8px!important;gap:2px!important;flex-wrap:nowrap!important}
  .vi-sub-btn{font-size:.7rem!important;padding:6px 10px!important;white-space:nowrap!important;flex-shrink:0!important}

  /* Dashboard */
  .dash-stats{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}
  .dash-stat-value{font-size:1.5rem!important}
  .dash-stat-label{font-size:.65rem!important}
  .dash-actions{grid-template-columns:1fr!important;gap:6px!important}
  .dash-action{padding:12px!important;font-size:.8rem!important}
  .dash-prospects{gap:8px!important}
  .dash-p-card{padding:10px 8px!important}
  .dash-p-avatar{width:40px!important;height:40px!important}
  .dash-p-name{font-size:.72rem!important}

  /* Graph */
  #dashGraph{height:200px!important}
  .dash-graph-legend{gap:12px!important}
  .dash-graph-leg-item{font-size:.75rem!important}
  .dash-graph-leg-item strong{font-size:1.1rem!important}

  /* Notifications */
  .notif-dropdown{position:fixed!important;top:auto!important;bottom:calc(var(--mob-h) + 8px)!important;left:8px!important;right:8px!important;width:auto!important;max-height:60vh!important}

  /* Bulk bar */
  .bulk-bar{left:0!important;padding:8px 12px!important;font-size:.78rem!important}
  .bulk-bar button{padding:6px 10px!important;font-size:.72rem!important}

  /* Evaluator forms */
  .eval-form{padding:0!important}
  .form-grid{grid-template-columns:1fr!important}
  .form-actions{flex-direction:column!important;gap:8px!important}
  .form-actions button{width:100%!important}

  /* Cards */
  .card{padding:16px!important;border-radius:12px!important}
  .card-sm{padding:12px!important}

  /* Result hero */
  .result-hero{padding:20px!important}
  .vyro-score{font-size:3rem!important}

  /* Leaderboard */
  .leaderboard-table th,.leaderboard-table td{padding:6px 8px!important;font-size:.75rem!important}

  /* Activity feed */
  .activity-item{padding:10px 0!important}

  /* Login */
  .login-shell{flex-direction:column!important;overflow-y:auto!important}
  .login-left{padding:40px 24px 32px!important;align-items:center!important;text-align:center!important;width:100%!important}
  .login-left::before,.login-left::after{display:none}
  .login-headline{font-size:24px!important}
  .login-sub{font-size:13px!important;margin-bottom:20px!important}
  .login-brand-row{margin-bottom:24px!important}
  .login-feat{justify-content:center}
  .login-tickers{gap:16px!important;margin-top:24px!important}
  .login-ticker-num{font-size:1.4rem!important}
  .login-ticker-label{font-size:.6rem!important}
  .login-right{width:100%!important;min-width:unset!important;padding:16px!important;margin-left:0!important}
  .login-card{padding:28px 20px!important;border-radius:16px!important}

  /* Notification panel mobile */
  .notif-panel{position:fixed!important;top:auto!important;bottom:70px!important;left:8px!important;right:8px!important;width:auto!important;max-height:60vh!important}

  /* Online widget */
  .online-widget{margin-bottom:12px!important}
  .online-avatars{gap:4px!important}

  /* Quote widget */
  .quote-widget{padding:14px 16px!important}
  .quote-text{font-size:.82rem!important}

  /* Recently viewed */
  .recent-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}

  /* Channels */
  .ch-sidebar{max-height:200px!important;overflow-y:auto!important}

  /* Messages inbox */
  .msg-convo-detail{min-height:300px!important}

  /* Clock */
  .clock-widget{display:none!important}
}
@media(max-width:640px){
  .modal{padding:20px;border-radius:var(--r);max-width:calc(100vw - 32px);}.modal-row{grid-template-columns:1fr;}.admin-user-grid{grid-template-columns:1fr;}
  #portal{padding-bottom:var(--mob-h);}
  .main-content{padding-bottom:0;}
  .login-left{padding:24px 16px!important;width:100%!important}.login-headline{font-size:20px!important}.login-feat{font-size:11px!important}.login-tickers{gap:12px!important}.login-ticker-num{font-size:1.2rem!important}.login-right{width:100%!important;min-width:unset!important;padding:12px!important;margin-left:0!important}.login-card{padding:24px 16px!important}
  .recent-grid{grid-template-columns:1fr 1fr!important}
  .dash-stat-card{padding:10px!important}
  .msg-inbox-layout{grid-template-columns:1fr!important}
  .ch-layout{grid-template-columns:1fr!important}
  .task-columns{grid-template-columns:1fr!important}
  .page-head{padding:0 16px 10px;}.page-head h2{font-size:22px;}.page-body{padding:0 16px 24px;}
  .apps-grid{grid-template-columns:1fr!important;gap:10px;}
  .app-card{padding:14px;flex-direction:row;gap:12px;text-align:left;align-items:center;}
  .app-card .app-logo,.app-card .app-logo-ph{width:44px;height:44px;margin-bottom:0;flex-shrink:0;}
  .app-card .app-name{font-size:14px;text-align:left;}.app-card .app-cat{text-align:left;}.app-card .app-desc{text-align:left;}
  .app-card .app-card-glow{display:none;}
  .app-card .card-admin-actions{border-top:none;padding-top:0;margin-top:0;flex-direction:column;margin-left:auto;}
  .res-grid{grid-template-columns:1fr!important;}
  .embed-wrap{position:absolute;inset:0;}.embed-bar{padding:6px 12px;min-height:34px;}.embed-title{font-size:11px;}
  .vibe-title{font-size:22px;}.tools-row{gap:6px;}.tool-pill{padding:7px 12px;font-size:10px;}
  .mob-more-menu{bottom:calc(var(--mob-h) + 6px);right:6px;border-radius:var(--r);}
}
@media(max-width:380px){.apps-grid{grid-template-columns:1fr!important;}.page-head h2{font-size:18px;}.vibe-title{font-size:20px;}}
@media(max-width:320px){.page-head h2{font-size:16px;}.login-card{padding:20px 12px!important;}.dash-stat-card{padding:8px!important;}.vi-sub-btn{padding:5px 10px;font-size:.72rem;}}

/* ── Mobile touch targets — min 44px for WCAG compliance ── */
@media(max-width:768px){
  .topnav-icon-btn{width:44px!important;height:44px!important;}
  .topnav-avatar{width:44px!important;height:44px!important;font-size:.8rem!important;}
  .mob-item{min-height:44px!important;}
  .auc-avatar{width:44px!important;height:44px!important;}
  .vi-sub-btn{min-height:40px;display:flex;align-items:center;}
}

/* ══════════════════════════════════════════════════════════════
   VYROINDEX STYLES — Merged into Portal (Light Mode)
   ══════════════════════════════════════════════════════════════ */

/* ── VyroIndex CSS Variables ─────────────────────────────── */
.text-accent{color:var(--accent)}
.text-muted{color:var(--text2)}
.text-sm{font-size:.85rem}
.text-xs{font-size:.75rem}
.text-success{color:var(--success)}
.text-center{text-align:center}
code,.mono{font-family:'DM Mono',monospace}
h1 .text-accent,h2 .text-accent,h3 .text-accent{color:var(--accent)}

/* ── VyroIndex Panel Scroll ─────────────────────────────── */
#panel-s-database,#panel-s-athlete,#panel-s-portal,#panel-s-pipeline,#panel-s-compare,
#panel-e-database,#panel-e-evaluator,#panel-e-pipeline,#panel-e-compare,
#panel-reports{overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch;padding-bottom:80px;}

/* ── VyroIndex Sub-Nav ──────────────────────────────────── */
.vi-sub-nav{display:flex;align-items:center;justify-content:flex-start;gap:4px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10;position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch}
.vi-sub-btn{background:transparent;color:var(--text2);padding:6px 16px;font-size:.8rem;border-radius:6px;font-weight:500;white-space:nowrap;border:none;cursor:pointer;transition:all .15s;font-family:var(--font);}
.vi-sub-btn:hover{color:var(--text);background:var(--bg)}
.vi-sub-btn.active{color:var(--accent);background:rgba(224,32,32,0.06)}

/* ── VyroIndex Database Controls ────────────────────────── */
.db-controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:center}
.db-controls input[type="text"]{max-width:300px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 14px;font-family:var(--font);font-size:.9rem;outline:none;transition:border-color .2s}
.db-controls input[type="text"]:focus{border-color:var(--accent)}
.db-controls select{max-width:160px;width:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 14px;font-family:var(--font);font-size:.9rem;outline:none}
.db-controls select option{background:var(--surface);color:var(--text)}

/* ── VyroIndex Database List ────────────────────────────── */
.db-list{display:flex;flex-direction:column;gap:6px}
.db-row{display:grid;grid-template-columns:30px 44px 1fr 100px 70px 80px 80px 120px 100px;gap:12px;align-items:center;padding:10px 16px;background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s;font-size:.85rem;border-left:3px solid transparent}
.db-row:hover{background:var(--bg);border-left-color:var(--accent)}
.db-header{display:grid;grid-template-columns:30px 44px 1fr 100px 70px 80px 80px 120px 100px;gap:12px;padding:6px 16px;font-size:.7rem;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;font-weight:700;background:var(--surface);border-bottom:2px solid var(--border)}
.db-header>div{color:var(--text2);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}
.db-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:var(--bg);border:2px solid var(--border)}
.db-name{font-weight:600;color:var(--text)}
.db-meta{color:var(--text3);font-size:.75rem}
.db-pagination{display:flex;justify-content:center;gap:8px;margin-top:20px;align-items:center}

/* ── VyroIndex Detail Panel ─────────────────────────────── */
.detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9998;opacity:0;pointer-events:none;transition:opacity .2s}
.detail-overlay.open{opacity:1;pointer-events:auto}
.detail-panel{position:fixed;top:60px;right:0;bottom:0;width:420px;background:var(--bg);border-left:1px solid var(--border);z-index:9999;overflow-y:auto;padding:20px;transform:translateX(100%);transition:transform .3s ease;box-shadow:-4px 0 24px rgba(0,0,0,.25);visibility:visible}
.detail-panel.open{transform:translateX(0)!important}
.detail-close{background:rgba(255,255,255,.15);color:var(--text);font-size:1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;position:absolute;top:12px;right:12px;border:1px solid rgba(255,255,255,.2);cursor:pointer;z-index:10;backdrop-filter:blur(6px);transition:background .15s}
.detail-close:hover{background:rgba(255,255,255,.3)}
.detail-avatar-lg{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--border);margin-bottom:12px}
.contact-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.78rem;text-decoration:none;transition:border-color .2s}
.contact-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ── Detail panel inputs ────────────────────────────────── */
.detail-panel select,.detail-panel textarea,.detail-panel input{background:var(--surface)!important;border:1px solid var(--border)!important;color:var(--text)!important;border-radius:8px!important;padding:10px 14px!important;font-family:'DM Sans',sans-serif!important;font-size:.85rem!important;width:100%!important;outline:none!important;-webkit-appearance:none!important;appearance:none!important}
.detail-panel select:focus,.detail-panel textarea:focus,.detail-panel input:focus{border-color:var(--accent)!important}
.detail-panel select option{background:var(--surface)!important;color:var(--text)!important}
.detail-panel textarea{resize:vertical!important;min-height:60px!important}
.detail-panel label{display:block;font-size:.7rem;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.detail-panel .contact-btn{background:var(--bg)!important;border:1px solid var(--border)!important;color:var(--text)!important;border-radius:8px!important;padding:8px 14px!important;font-size:.8rem!important;text-decoration:none!important;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.detail-panel .contact-btn:hover{border-color:var(--accent)!important;color:var(--accent)!important}
.detail-panel .pill{padding:4px 12px;border-radius:20px;font-size:.72rem;font-weight:600;text-transform:uppercase}
.detail-panel .pill-signed{background:rgba(16,185,129,.08);color:var(--success)}
.detail-panel .btn-primary{background:var(--accent)!important;color:#fff!important;border:none!important}
.detail-panel .btn-ghost{background:transparent!important;color:var(--text2)!important;border:1px solid var(--border)!important}

/* ── VyroIndex Evaluator Forms ──────────────────────────── */
.eval-form{max-width:800px;margin:0 auto;padding:24px;color:var(--text)}
.form-step{display:none}
.form-step.active{display:block}
.step-indicator{display:flex;gap:8px;margin-bottom:24px}
.step-dot{width:10px;height:10px;border-radius:50%;background:var(--border)}
.step-dot.active{background:var(--accent)}
.step-dot.done{background:var(--success)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:.75rem;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 14px;font-family:var(--font);font-size:.9rem;width:100%;outline:none;transition:border-color .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent)}
.form-group select option{background:var(--surface);color:var(--text)}
.form-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}

/* ── VyroIndex Buttons ──────────────────────────────────── */
.btn-primary{background:var(--accent);color:#fff;padding:10px 20px;font-size:.85rem;font-weight:600;border-radius:8px;border:none;cursor:pointer;transition:all .2s;font-family:var(--font)}
.btn-primary:hover{background:#c01818;transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border);padding:10px 20px;font-size:.85rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;font-family:var(--font)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-ghost.btn-sm,.btn-primary.btn-sm{padding:6px 14px;font-size:.78rem;border-radius:6px}
.btn-ghost.btn-xs{padding:4px 10px;font-size:.72rem;border-radius:5px}
.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);padding:6px 14px;font-size:.78rem;border-radius:6px;cursor:pointer}
.btn-danger:hover{background:var(--danger);color:#fff}

/* ── VyroIndex Result Cards ─────────────────────────────── */
.result-hero{text-align:center;padding:32px;border-radius:16px;margin-bottom:24px;background:var(--surface)}
.vyro-score{font-family:'Bebas Neue',sans-serif;font-size:5rem;line-height:1;color:var(--accent)}
.score-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin:8px 0}
.score-bar-fill{height:100%;border-radius:4px;transition:width .6s ease}
.breakdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
.breakdown-item{text-align:center}
.breakdown-value{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;color:var(--accent)}
.breakdown-label{font-size:.7rem;color:var(--text2);text-transform:uppercase;letter-spacing:.06em}

/* ── VyroIndex Zone Badges ──────────────────────────────── */
.zone-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.zone-development{background:rgba(239,68,68,.1);color:#ef4444}
.zone-emerging{background:rgba(249,115,22,.1);color:#f97316}
.zone-recruitable{background:rgba(234,179,8,.1);color:#eab308}
.zone-priority{background:rgba(132,204,22,.1);color:#84cc16}
.zone-bluechip{background:rgba(34,197,94,.1);color:#22c55e}
.zone-elite{background:rgba(20,184,166,.1);color:#14b8a6}
.zone-franchise{background:rgba(59,130,246,.1);color:#3b82f6}
.zone-legacy{background:rgba(168,85,247,.1);color:#a855f7}
.zone-momentum{background:rgba(249,115,22,.1);color:#f97316}
.zone-influence{background:rgba(234,179,8,.1);color:#eab308}
.zone-authority{background:rgba(34,197,94,.1);color:#22c55e}
.zone-icon{background:rgba(168,85,247,.1);color:#a855f7}

/* ── VyroIndex Pipeline Pills ───────────────────────────── */
.pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.pill-evaluating{background:rgba(131,146,165,.1);color:var(--text2)}
.pill-under_consideration{background:rgba(59,130,246,.1);color:var(--blue)}
.pill-outreach_sent{background:rgba(249,115,22,.1);color:var(--accent2)}
.pill-responded{background:rgba(234,179,8,.1);color:var(--gold)}
.pill-meeting{background:rgba(132,204,22,.1);color:var(--lime)}
.pill-offer{background:rgba(20,184,166,.1);color:var(--teal)}
.pill-signed{background:rgba(16,185,129,.08);color:var(--success)}
.pill-passed{background:rgba(239,68,68,.08);color:var(--danger)}

/* ── VyroIndex Stars ────────────────────────────────────── */
.stars{display:inline-flex;gap:2px;color:#eab308}
.star-empty{color:var(--border)}

/* ── VyroIndex Cards ────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:var(--shadow)}
.card-sm{padding:16px;border-radius:12px}

/* ── VyroIndex Grid Helpers ─────────────────────────────── */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mt-16{margin-top:16px}
.mt-24{margin-top:24px}
.mb-16{margin-bottom:16px}
.mb-24{margin-bottom:24px}
.fade-in{animation:fadeUp .35s ease forwards}

/* ── VyroIndex Kanban Board ─────────────────────────────── */
.kanban-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:16px;min-height:400px}
.kanban-col{min-width:220px;flex:1;background:var(--bg);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column}
.kanban-col-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.kanban-col-title{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.04em;color:var(--text)}
.kanban-col-count{font-size:.72rem;color:var(--text2);background:var(--surface);padding:2px 8px;border-radius:10px}
.kanban-cards{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1;overflow-y:auto;max-height:calc(100vh - 240px)}
.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer;transition:border-color .2s;box-shadow:var(--shadow)}
.kanban-card:hover{border-color:var(--accent)}
.kanban-card-name{font-weight:600;font-size:.85rem;margin-bottom:4px;color:var(--text)}
.kanban-card-meta{font-size:.72rem;color:var(--text2)}

/* ── VyroIndex Compare ──────────────────────────────────── */
.compare-container{display:grid;grid-template-columns:1fr 60px 1fr;gap:0;align-items:start}
.compare-side{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:var(--shadow)}
.compare-vs{display:flex;align-items:center;justify-content:center}
.compare-vs span{font-family:'Bebas Neue',sans-serif;font-size:2rem;color:var(--accent)}

/* ── VyroIndex Stats Grid ───────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;box-shadow:var(--shadow)}
.stat-value{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;color:var(--text)}
.stat-label{font-size:.75rem;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}

/* ── VyroIndex Responsive Overrides ─────────────────────── */
@media(max-width:1024px){
  .db-row{grid-template-columns:30px 36px 1fr 80px 60px 80px 100px;font-size:.8rem}
  .db-row>:nth-child(8),.db-row>:nth-child(9),.db-header>:nth-child(8),.db-header>:nth-child(9){display:none}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .breakdown-grid{grid-template-columns:repeat(2,1fr)}
  .detail-panel{width:360px}
}
@media(max-width:768px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .grid-2{grid-template-columns:1fr}
  .kanban-board{flex-direction:column}
  .kanban-col{min-width:auto}
  .kanban-cards{max-height:300px}
  .compare-container{grid-template-columns:1fr;gap:16px}
  .compare-vs{padding:8px 0}
  .db-row{grid-template-columns:30px 28px 1fr 70px;font-size:.78rem}
}
@media(max-width:480px){
  .stat-card{padding:14px}
  .stat-value{font-size:1.8rem}
}

/* Detail overlay/panel — ensure open state */
.detail-panel.open{transform:translateX(0)!important;visibility:visible!important;display:block!important}
.detail-overlay.open{opacity:1!important;pointer-events:auto!important}

/* ═══ DASHBOARD ═══ */
.dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}
.dash-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 20px;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow)}
.dash-stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.dash-stat-value{font-family:'Bebas Neue',sans-serif;font-size:2.4rem;letter-spacing:.04em;color:var(--text)}
.dash-stat-label{font-size:.75rem;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}
.dash-section{margin-bottom:28px}
.dash-section-title{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:.05em;color:var(--accent);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.dash-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dash-action{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 12px;color:var(--text);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:left;font-family:'DM Sans',sans-serif;box-shadow:var(--shadow)}
.dash-action:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-lg)}
.dash-recent{display:flex;flex-direction:column;gap:2px}
.dash-recent-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--surface);border-radius:10px;transition:background .15s}
.dash-recent-item:hover{background:var(--bg)}
.dash-recent-icon{font-size:1.2rem;flex-shrink:0}
.dash-recent-info{flex:1;min-width:0}
.dash-recent-name{font-weight:600;font-size:.9rem;color:var(--text)}
.dash-recent-meta{font-size:.75rem;color:var(--text3);margin-top:2px}
.dash-recent-time{font-size:.7rem;color:var(--text3);flex-shrink:0}
/* dash-stats + dash-actions mobile handled in main 768px block */
@media(max-width:480px){.dash-actions{grid-template-columns:1fr}}

/* Top prospects cards on home */
.dash-prospects{overflow-x:auto;position:relative;padding-bottom:8px}
.dash-prospects-track{display:flex;gap:12px;width:max-content}
@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.dash-p-card{min-width:120px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 10px;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow)}
.dash-p-card:hover{box-shadow:var(--shadow-lg);border-color:var(--text3)}
.dash-p-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;margin:0 auto 8px;background:var(--bg)}
.dash-p-name{font-size:.8rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-p-meta{font-size:.65rem;color:var(--text3);margin-top:2px}

/* Dashboard bar chart */
.dash-bar-section{margin-bottom:28px}
.dash-bar-labels{display:flex;justify-content:space-between;margin-bottom:10px}
.dash-bar-label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text2);cursor:pointer;transition:color .15s}
.dash-bar-label:hover{color:var(--text)}
.dash-bar-label strong{color:var(--text);font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:.03em;margin-left:4px}
.dash-bar-icon{font-size:1.1rem}
.dash-bar-track{display:flex;height:32px;border-radius:10px;overflow:hidden;background:var(--bg);border:1px solid var(--border)}
.dash-bar-fill{transition:width .8s ease}
.dash-bar-sports{background:linear-gradient(90deg,#e02020,#ff4040)}
.dash-bar-ent{background:linear-gradient(90deg,#f97316,#fb923c)}
.dash-bar-total{text-align:center;margin-top:8px;font-size:.75rem;color:var(--text3)}
.dash-bar-total strong{color:var(--text2);font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:.03em}

/* Dashboard graph */
.dash-graph-section{margin-bottom:28px}
.dash-graph-legend{display:flex;gap:24px;margin-bottom:12px;flex-wrap:wrap}
.dash-graph-leg-item{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text2)}
.dash-graph-leg-item strong{color:var(--text);font-family:'Bebas Neue',sans-serif;font-size:1.3rem;margin-left:4px}
.dash-leg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.dash-graph-section canvas{background:var(--surface);border:1px solid var(--border)}

/* ── Leaderboard ──────────────────────────────────────────── */
.leaderboard-table{width:100%;border-collapse:collapse}
.leaderboard-table th{text-align:left;padding:8px 12px;font-size:.7rem;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}
.leaderboard-table td{padding:10px 12px;font-size:.85rem;border-bottom:1px solid var(--border);color:var(--text)}
.leaderboard-rank{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;color:var(--accent);width:30px}

/* ── Export button ────────────────────────────────────────── */
.export-btn{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text2);padding:8px 14px;font-size:.78rem;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .15s}
.export-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ── Onboarding ───────────────────────────────────────────── */
.onboard-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:9999;display:flex;align-items:center;justify-content:center}
.onboard-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:40px;max-width:500px;width:90%;text-align:center;box-shadow:var(--shadow-lg)}
.onboard-step-dots{display:flex;gap:8px;justify-content:center;margin:20px 0}
.onboard-dot{width:8px;height:8px;border-radius:50%;background:var(--border)}
.onboard-dot.active{background:var(--accent)}
.onboard-title{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:.04em;margin-bottom:8px;color:var(--text)}
.onboard-desc{color:var(--text2);font-size:.9rem;line-height:1.6;margin-bottom:24px}
.onboard-btn{background:var(--accent);color:#fff;border:none;padding:12px 32px;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif}

/* ── Shortcuts modal ──────────────────────────────────────── */
.shortcuts-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;text-align:left}
.shortcut-key{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-family:'DM Mono',monospace;font-size:.8rem;color:var(--text);text-align:center}
.shortcut-desc{font-size:.85rem;color:var(--text2);padding:4px 0}

/* ── Read-only badge ──────────────────────────────────────── */
.readonly-badge{background:var(--bg);color:var(--text3);padding:3px 10px;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}

/* ── Audit log ────────────────────────────────────────────── */
.audit-table{width:100%;border-collapse:collapse;font-size:.8rem}
.audit-table th{text-align:left;padding:6px 10px;color:var(--text3);text-transform:uppercase;font-size:.7rem;border-bottom:1px solid var(--border)}
.audit-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text2)}

/* ── Bulk Operations ─────────────────────────────────────────── */
.bulk-bar{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;gap:16px;z-index:400;box-shadow:0 -2px 10px rgba(0,0,0,.06)}
.bulk-bar span{font-size:.85rem;color:var(--text2);font-weight:600}
.bulk-bar button{background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 16px;font-size:.8rem;cursor:pointer;font-family:'DM Sans',sans-serif}
.bulk-bar button:hover{border-color:var(--accent);color:var(--accent)}
.db-row.selected{background:rgba(224,32,32,.04);border-left-color:var(--accent)!important}
.bulk-check{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}

/* ── Activity Feed ───────────────────────────────────────────── */
.activity-feed{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}
.activity-feed .activity-item{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);transition:background .1s}
.activity-feed .activity-item:last-child{border-bottom:none}
.activity-feed .activity-item:hover{background:var(--bg)}
.activity-icon{font-size:1rem;flex-shrink:0;width:24px;text-align:center;padding-top:2px}
.activity-content{flex:1;min-width:0}
.activity-text{font-size:.82rem;color:var(--text2);line-height:1.4}
.activity-text strong{color:var(--text)}
.activity-time{font-size:.7rem;color:var(--text3);margin-top:2px}

/* ── Detail Panel Header Bar ─────────────────────────────────── */
.detail-header-bar{position:sticky;top:0;background:#111520;padding:16px 20px;margin:-20px -20px 16px;border-bottom:1px solid var(--border);z-index:2}
.detail-header-bar h3{font-size:1.1rem;margin:0;color:var(--text)}

/* Entertainment database grid — 7 columns (avatar, name, platform, niche, followers, engagement, pipeline) */
#panel-e-database .db-header,
#panel-e-database .db-row{grid-template-columns:44px 1fr 90px 90px 90px 80px 90px!important}
@media(max-width:1024px){
  #panel-e-database .db-header,#panel-e-database .db-row{grid-template-columns:36px 1fr 80px 80px 70px!important}
  #panel-e-database .db-header>:nth-child(n+6),#panel-e-database .db-row>:nth-child(n+6){display:none!important}
}
@media(max-width:768px){
  #panel-e-database .db-header,#panel-e-database .db-row{grid-template-columns:28px 1fr 70px 70px!important}
  #panel-e-database .db-header>:nth-child(n+5),#panel-e-database .db-row>:nth-child(n+5){display:none!important}
}
/* Prevent name text overflow */
#panel-e-database .db-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#panel-e-database .db-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

/* Profile avatar image */
.topnav-avatar-wrap{position:relative;cursor:pointer}
.topnav-avatar-img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}
/* Profile dropdown menu */
.profile-menu{position:absolute;top:48px;right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.1);min-width:220px;z-index:300;overflow:hidden}
.profile-menu-header{padding:16px;border-bottom:1px solid var(--border)}
.profile-menu-item{display:block;padding:10px 16px;color:var(--text2);font-size:.85rem;cursor:pointer;transition:all .12s;text-decoration:none;border:none;background:none;width:100%;text-align:left}
.profile-menu-item:hover{background:var(--bg);color:var(--text)}

/* ── Claim System ────────────────────────────────────────────── */
.claim-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600;vertical-align:middle;margin-left:4px}
.claim-mine{background:rgba(16,185,129,.08);color:#10b981}
.claim-other{background:rgba(249,115,22,.08);color:#f97316}
.claim-signed{background:rgba(59,130,246,.08);color:#3b82f6}
.claim-btn{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:.8rem;cursor:pointer;color:var(--text);font-family:'DM Sans',sans-serif;transition:all .15s}
.claim-btn:hover{border-color:var(--accent);color:var(--accent)}
.signed-lock{opacity:.6}
.kanban-card.signed-lock{cursor:default}
.signed-banner{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);border-radius:10px;padding:12px 16px;margin-bottom:16px;display:flex;align-items:center;gap:10px;font-size:.85rem;color:#3b82f6}

/* ── Pipeline View Toggle ────────────────────────────────────── */
.pipeline-toggle-btn{background:transparent;border:none;padding:6px 14px;font-size:.78rem;font-weight:600;color:var(--text2);border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .12s}
.pipeline-toggle-btn:hover{color:var(--text)}
.pipeline-toggle-btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}

/* ── Floating Modals ────────────────────────────────────────── */
.floating-modal{position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px}
.floating-modal-content{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;max-width:440px;width:100%;box-shadow:0 16px 48px rgba(0,0,0,.12);max-height:90vh;overflow-y:auto}
.floating-modal-content .form-group{margin-bottom:12px}
.floating-modal-content .form-group label{display:block;font-size:.8rem;font-weight:600;color:var(--text2);margin-bottom:4px}
.floating-modal-content h3{font-size:1.1rem;color:var(--text)}

/* ── Integrations Cards ─────────────────────────────────────── */
.integrations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}

/* ── Recruiting Board ──────────────────────────────────────── */
.board-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.board-col{background:var(--bg);border:1px solid var(--border);border-radius:12px;min-height:300px}
.board-col-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.9rem;font-weight:600;color:var(--text);border-bottom:3px solid;border-radius:12px 12px 0 0;background:var(--surface)}
.board-count{font-size:.75rem;color:var(--text3);background:var(--bg);padding:2px 8px;border-radius:10px}
.board-cards{padding:8px;display:flex;flex-direction:column;gap:8px}
.board-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:box-shadow .15s}
.board-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.06)}
.board-card-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}
@media(max-width:768px){.board-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.board-grid{grid-template-columns:1fr}}

/* ── Prospect Compare Cards ────────────────────────────────── */
.compare-cards-container{display:flex;gap:24px;align-items:stretch;justify-content:center;flex-wrap:wrap}
.compare-prospect-card{flex:1;min-width:280px;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;text-align:center}
.compare-card-a{border-top:4px solid #ef4444}
.compare-card-b{border-top:4px solid #3b82f6}
.compare-card-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;margin:0 auto 12px;display:block;border:3px solid var(--border)}
.compare-card-photo-placeholder{width:80px;height:80px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text3);font-size:1.5rem;font-weight:700;border:3px solid var(--border)}
.compare-card-name{font-size:1.15rem;font-weight:700;color:var(--text);margin-bottom:4px}
.compare-card-meta{font-size:.8rem;color:var(--text3);margin-bottom:10px}
.compare-card-stars{margin-bottom:8px}
.compare-card-score{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;line-height:1}
.compare-card-score-label{font-size:.7rem;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px}
.compare-card-details{text-align:left;display:flex;flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.compare-card-detail{display:flex;justify-content:space-between;font-size:.82rem}
.compare-card-detail span{color:var(--text3)}
.compare-card-detail strong{color:var(--text);font-weight:600}
.compare-card-contacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;justify-content:center}
.compare-vs-badge{display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:1.6rem;color:var(--text3);padding:0 8px;flex-shrink:0}
@media(max-width:768px){.compare-cards-container{flex-direction:column;align-items:center}.compare-vs-badge{padding:8px 0}}

/* ── Compare Autocomplete ──────────────────────────────────── */
.compare-autocomplete{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);z-index:100;max-height:320px;overflow-y:auto}
.compare-autocomplete:empty{display:none}
.compare-ac-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .1s;border-bottom:1px solid var(--border)}
.compare-ac-item:last-child{border-bottom:none}
.compare-ac-item:hover{background:var(--bg)}
.compare-selected-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:rgba(224,32,32,.06);border:1px solid rgba(224,32,32,.15);border-radius:8px;font-size:.8rem;color:var(--accent);font-weight:600;margin-top:6px}

/* ── Form Grid ─────────────────────────────────────────────── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}}

/* ── Print Styles ──────────────────────────────────────────── */
@media print{
  .topnav,.mobile-nav,.mob-more-menu,.no-print,.btn-ghost,.btn-primary,.topnav-dropdown,.portal-blob{display:none!important}
  .main-content{padding:0!important;margin:0!important}
  .panel{position:static!important;overflow:visible!important}
  .page-scroll{overflow:visible!important;height:auto!important}
  body{overflow:visible!important}
}

/* Detail avatar placeholder */
.detail-avatar-placeholder{width:80px;height:80px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:var(--text3);margin:0 auto 12px;border:2px solid var(--border)}

/* ══════════════════════════════════════════════════════════════
   MESSAGING SYSTEM
   ══════════════════════════════════════════════════════════════ */

/* Nav badge */
.msg-nav-badge{background:#e02020;color:#fff;font-size:.6rem;padding:1px 5px;border-radius:10px;margin-left:4px;vertical-align:top;font-weight:700}
.msg-nav-badge.hidden{display:none}

/* Inbox layout */
.msg-inbox-layout{display:grid;grid-template-columns:340px 1fr;gap:0;background:#111520;border:1px solid var(--border);border-radius:14px;overflow:hidden;min-height:500px}
@media(max-width:768px){.msg-inbox-layout{grid-template-columns:1fr;min-height:auto}}

/* Conversation list */
.msg-convo-list{border-right:1px solid var(--border);overflow-y:auto;max-height:600px}
.msg-convo-item{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s;position:relative}
.msg-thread-del{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:transparent;border:none;color:var(--text3);font-size:.9rem;cursor:pointer;display:none;align-items:center;justify-content:center;transition:all .15s}
.msg-convo-item:hover .msg-thread-del{display:flex}
.msg-thread-del:hover{background:rgba(239,68,68,.12);color:#ef4444}
.msg-convo-item:hover{background:var(--bg)}
.msg-convo-item.active{background:var(--bg);border-left:3px solid var(--accent)}
.msg-convo-item.msg-unread{background:rgba(239,68,68,.08)}
.msg-convo-avatar{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:700;flex-shrink:0}
.msg-convo-info{flex:1;min-width:0}
.msg-convo-name{font-size:.85rem;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}
.msg-convo-preview{font-size:.75rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.msg-convo-time{font-size:.65rem;color:var(--text3);flex-shrink:0}
.msg-unread-dot{background:#e02020;color:#fff;font-size:.55rem;padding:1px 5px;border-radius:10px;font-weight:700}
.msg-unread-badge{background:#e02020;color:#fff;font-size:.7rem;padding:2px 8px;border-radius:12px;vertical-align:middle;margin-left:6px}

/* Conversation detail */
.msg-convo-detail{display:flex;flex-direction:column}
.msg-detail-header{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg)}
.msg-detail-name{font-size:1rem;font-weight:600;color:var(--text)}
.msg-detail-email{font-size:.75rem;color:var(--text3)}
.msg-detail-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}

/* DM bubbles */
.msg-dm{max-width:75%;padding:10px 14px;border-radius:14px;font-size:.85rem;line-height:1.5}
.msg-dm-other{background:var(--bg);color:var(--text);align-self:flex-start;border-bottom-left-radius:4px}
.msg-dm-mine{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.msg-dm-subject{font-weight:600;margin-bottom:4px;font-size:.8rem}
.msg-dm-text{white-space:pre-wrap}
.msg-dm-time{font-size:.65rem;opacity:.6;margin-top:4px}

/* Comment thread (in prospect detail panels) */
.msg-thread{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-top:12px}
.msg-thread-title{font-size:.8rem;font-weight:600;color:var(--text);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg);display:flex;align-items:center;gap:8px}
.msg-count{background:var(--accent);color:#fff;font-size:.6rem;padding:1px 6px;border-radius:10px;font-weight:700}
.msg-thread-list{max-height:220px;overflow-y:auto;padding:10px 14px;display:flex;flex-direction:column;gap:8px}
.msg-empty{color:var(--text3);font-size:.8rem;text-align:center;padding:20px 12px}
.msg-bubble{padding:8px 12px;border-radius:10px;background:var(--bg);font-size:.8rem}
.msg-bubble.msg-mine{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25)}
.msg-bubble-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.msg-author{font-weight:600;color:var(--text);font-size:.75rem}
.msg-time{color:var(--text3);font-size:.65rem}
.msg-text{color:var(--text);line-height:1.4;white-space:pre-wrap}
.msg-del-btn{font-size:.6rem;color:var(--text3);cursor:pointer;background:none;border:none;padding:2px 0;margin-top:4px;opacity:.6}
.msg-del-btn:hover{color:#ef4444;opacity:1}

/* Compose area */
.msg-compose{display:flex;gap:8px;padding:10px 14px;align-items:flex-end}
.msg-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:10px;font-size:.8rem;font-family:inherit;resize:vertical;background:var(--surface);color:var(--text)}
.msg-input:focus{outline:none;border-color:var(--accent)}
.msg-send-btn{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}
.msg-send-btn:hover{opacity:.9}

/* ══════════════════════════════════════════════════════════════
   ADMIN PANEL ENHANCEMENTS
   ══════════════════════════════════════════════════════════════ */

.admin-section{margin-bottom:24px}
.admin-section-title{font-size:.9rem;font-weight:600;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.admin-role-chip{padding:4px 12px;border-radius:8px;font-size:.75rem;font-weight:500}

/* Activity Timeline */
.activity-timeline{display:flex;flex-direction:column;gap:0}
.activity-timeline-item{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:#111520}
.activity-timeline-item:first-child{border-radius:14px 14px 0 0}
.activity-timeline-item:last-child{border-radius:0 0 14px 14px;border-bottom:none}
.activity-timeline-item:only-child{border-radius:14px}
.activity-timeline-icon{width:32px;height:32px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}
.activity-timeline-content{flex:1;min-width:0}
.activity-timeline-text{font-size:.8rem;color:var(--text);line-height:1.4}
.activity-timeline-time{font-size:.7rem;color:var(--text3);margin-top:2px}

/* ══════════════════════════════════════════════════════════════
   GLOBAL SEARCH
   ══════════════════════════════════════════════════════════════ */
.gs-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;backdrop-filter:blur(4px)}
.gs-modal{background:var(--surface);border-radius:16px;width:90%;max-width:640px;box-shadow:0 20px 60px rgba(0,0,0,.2);overflow:hidden}
.gs-header{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}
.gs-icon{font-size:1.1rem;opacity:.5}
.gs-input{flex:1;border:none;outline:none;font-size:1rem;background:transparent;color:var(--text);font-family:inherit}
.gs-input::placeholder{color:var(--text3)}
.gs-kbd{font-size:.65rem;padding:2px 8px;border-radius:4px;background:var(--bg);color:var(--text3);border:1px solid var(--border);cursor:pointer;font-family:monospace}
.gs-results{max-height:420px;overflow-y:auto;padding:8px 0}
.gs-empty{padding:40px 20px;text-align:center;color:var(--text3);font-size:.9rem}
.gs-group{padding:4px 0}
.gs-group-label{font-size:.7rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;padding:8px 18px 4px;display:flex;align-items:center;gap:6px}
.gs-group-count{background:var(--bg);padding:1px 6px;border-radius:8px;font-size:.6rem}
.gs-result{display:flex;align-items:center;gap:12px;padding:10px 18px;cursor:pointer;transition:background .1s}
.gs-result:hover{background:var(--bg)}
.gs-result-icon{font-size:1.1rem;width:28px;text-align:center;flex-shrink:0}
.gs-result-info{flex:1;min-width:0}
.gs-result-title{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-result-sub{font-size:.72rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ══════════════════════════════════════════════════════════════
   PROSPECT TIMELINE
   ══════════════════════════════════════════════════════════════ */
.tl-section{margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.tl-title{font-size:.8rem;font-weight:600;color:var(--text);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg);display:flex;align-items:center;gap:8px}
.tl-list{max-height:300px;overflow-y:auto;padding:0}
.tl-empty{padding:20px;text-align:center;color:var(--text3);font-size:.8rem}
.tl-item{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}
.tl-item:last-child{border-bottom:none}
.tl-icon{width:26px;height:26px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}
.tl-content{flex:1;min-width:0}
.tl-text{font-size:.78rem;color:var(--text);line-height:1.4}
.tl-meta{font-size:.65rem;color:var(--text3);margin-top:2px}

/* ══════════════════════════════════════════════════════════════
   TASKS
   ══════════════════════════════════════════════════════════════ */
.task-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:768px){.task-columns{grid-template-columns:1fr}}
.task-col{background:var(--bg);border-radius:14px;padding:12px;min-height:200px}
.task-col-title{font-size:.8rem;font-weight:600;color:var(--text);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.task-col-count{background:var(--surface);padding:2px 8px;border-radius:10px;font-size:.65rem;color:var(--text3)}
.task-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:8px;cursor:pointer;transition:transform .15s,box-shadow .15s}
.task-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.06)}
.task-card-title{font-size:.82rem;font-weight:600;color:var(--text);margin-bottom:6px}
.task-card-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.task-priority{font-size:.6rem;padding:2px 8px;border-radius:6px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.task-priority-urgent{background:rgba(239,68,68,.15);color:#ef4444}
.task-priority-high{background:rgba(249,115,22,.15);color:#f97316}
.task-priority-medium{background:rgba(234,179,8,.15);color:#eab308}
.task-priority-low{background:rgba(34,197,94,.15);color:#22c55e}
.task-due{font-size:.7rem;color:var(--text3)}
.task-due-overdue{color:#ef4444;font-weight:600}
.task-assignee{font-size:.7rem;color:var(--text2)}
.task-prospect-link{font-size:.65rem;color:var(--accent);cursor:pointer}
.task-category-icon{font-size:.75rem}
.task-badge{background:#ef4444;color:#fff;font-size:.55rem;padding:1px 5px;border-radius:8px;font-weight:700}

/* ══════════════════════════════════════════════════════════════
   DEALS
   ══════════════════════════════════════════════════════════════ */
.deal-status{font-size:.65rem;padding:2px 8px;border-radius:6px;font-weight:600}
.deal-status-prospecting{background:rgba(139,92,246,.15);color:#8b5cf6}
.deal-status-negotiating{background:#eff6ff;color:#3b82f6}
.deal-status-pending_approval{background:rgba(234,179,8,.15);color:#eab308}
.deal-status-active{background:rgba(34,197,94,.15);color:#22c55e}
.deal-status-completed{background:#ecfdf5;color:#10b981}
.deal-status-cancelled{background:rgba(239,68,68,.15);color:#ef4444}
.deal-value{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;color:var(--accent);letter-spacing:.02em}

/* ══════════════════════════════════════════════════════════════
   GROUP CHANNELS
   ══════════════════════════════════════════════════════════════ */
.ch-layout{display:grid;grid-template-columns:240px 1fr;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;min-height:500px}
@media(max-width:768px){.ch-layout{grid-template-columns:1fr;min-height:auto}}
.ch-sidebar{background:#1b2e4b;color:#fff;overflow-y:auto}
.ch-sidebar-title{font-size:.75rem;font-weight:600;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.08em;padding:16px 16px 8px}
.ch-item{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;transition:background .15s;color:rgba(255,255,255,.7);font-size:.85rem}
.ch-item:hover{background:rgba(255,255,255,.08)}
.ch-item.active{background:rgba(255,255,255,.12);color:#fff;border-left:3px solid var(--accent)}
.ch-item-icon{font-size:1rem}
.ch-item-name{flex:1}
.ch-item-badge{background:#e02020;color:#fff;font-size:.55rem;padding:1px 5px;border-radius:8px;font-weight:700}
.ch-main{display:flex;flex-direction:column}
.ch-header{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg)}
.ch-header-name{font-size:1rem;font-weight:600;color:var(--text)}
.ch-messages{flex:1;overflow-y:auto;padding:16px 20px;max-height:400px;display:flex;flex-direction:column;gap:10px}
.ch-msg{display:flex;gap:10px;align-items:flex-start}
.ch-msg-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.65rem;font-weight:700;flex-shrink:0}
.ch-msg-content{flex:1;min-width:0}
.ch-msg-header{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}
.ch-msg-author{font-size:.8rem;font-weight:600;color:var(--text)}
.ch-msg-time{font-size:.65rem;color:var(--text3)}
.ch-msg-text{font-size:.82rem;color:var(--text);line-height:1.5;white-space:pre-wrap}
.ch-msg-del{font-size:.6rem;color:var(--text3);cursor:pointer;background:none;border:none;padding:0;margin-top:2px;opacity:.5}
.ch-msg-del:hover{color:#ef4444;opacity:1}
.ch-compose{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:flex-end}
.ch-empty{padding:60px 20px;text-align:center;color:var(--text3);font-size:.9rem}

/* ══════════════════════════════════════════════════════════════
   NOTIFICATION CENTER
   ══════════════════════════════════════════════════════════════ */
.notif-panel{position:absolute;top:52px;right:16px;width:360px;max-width:calc(100vw - 32px);max-height:min(480px,70vh);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.12);overflow:hidden;z-index:200}
.notif-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}
.notif-header-title{font-size:.9rem;font-weight:600;color:var(--text)}
.notif-mark-read{font-size:.72rem;color:var(--accent);cursor:pointer}
.notif-list{max-height:min(380px,60vh);overflow-y:auto}
.notif-item{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}
.notif-item:hover{background:var(--bg)}
.notif-item.unread{background:rgba(239,68,68,.08)}
.notif-item-icon{width:28px;height:28px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.notif-item-content{flex:1;min-width:0}
.notif-item-title{font-size:.8rem;font-weight:500;color:var(--text)}
.notif-item-body{font-size:.72rem;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-item-time{font-size:.6rem;color:var(--text3);margin-top:2px}
.notif-empty{padding:40px 20px;text-align:center;color:var(--text3);font-size:.85rem}
.notif-badge{position:absolute;top:-2px;right:-2px;background:#e02020;color:#fff;font-size:.5rem;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 0 0 2px var(--bg)}

/* Pipeline badge */
.pipeline-badge{font-size:.65rem;padding:2px 8px;border-radius:6px;background:var(--bg);color:var(--text2);text-transform:capitalize}

/* ══════════════════════════════════════════════════════════════
   ANALYTICS
   ══════════════════════════════════════════════════════════════ */
.funnel-bar{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.funnel-label{width:140px;font-size:.8rem;color:var(--text);text-align:right;text-transform:capitalize}
.funnel-track{flex:1;height:32px;background:var(--bg);border-radius:6px;overflow:hidden;position:relative}
.funnel-fill{height:100%;border-radius:6px;display:flex;align-items:center;padding-left:10px;font-size:.7rem;color:#fff;font-weight:600;min-width:30px;transition:width .4s ease}
.funnel-dropoff{font-size:.7rem;color:var(--text3);width:80px;text-align:right}
.scorecard{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:12px}
.scorecard-header{display:flex;align-items:center;gap:12px}
.scorecard-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:700}
.scorecard-name{font-weight:600;color:var(--text);font-size:.9rem}
.scorecard-role{font-size:.7rem;color:var(--text3)}
.scorecard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.scorecard-stat{text-align:center;padding:8px;background:var(--bg);border-radius:8px}
.scorecard-stat-val{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;color:var(--text)}
.scorecard-stat-label{font-size:.6rem;color:var(--text3);text-transform:uppercase;letter-spacing:.04em}

/* ===== BRANDS MODULE ===== */
.brand-db-row{grid-template-columns:42px 1fr 1fr 1fr 100px 110px 1fr!important}
.brand-badge{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:#fff;flex-shrink:0}
.brand-badge-lg{width:52px;height:52px;border-radius:14px;font-size:1.1rem}
/* Kanban board */
.brand-kanban{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}
.brand-kanban-col{flex:1;min-width:130px;border:2px solid var(--border);border-radius:12px;padding:14px 12px;cursor:pointer;transition:all .18s;background:var(--surface)}
.brand-kanban-col:hover{border-color:var(--accent);background:var(--surface2)}
.brand-kanban-active{background:var(--surface2)!important}
.brand-kanban-header{font-size:.82rem;font-weight:700;color:var(--text2);margin-bottom:8px}
.brand-kanban-chip{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600;margin-top:4px}
/* Brand profile overlay */
#brand-profile-overlay{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center}
#brand-profile-overlay .ap-sheet,#brand-profile-overlay .bpro-sheet{background:var(--bg);border-radius:20px 20px 0 0;width:100%;max-width:900px;height:92vh;overflow:hidden;display:flex;flex-direction:column;position:relative}
#brand-profile-overlay .brand-profile-avatar{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;color:#fff;flex-shrink:0}

/* ══════════════════════════════════════════════════════════════
   HOME HERO — compact, static, no collapse
   ══════════════════════════════════════════════════════════════ */
.home-hero{
  background:linear-gradient(135deg,#1b2e4b 0%,#243b55 100%);
  padding:18px 32px 18px;
  position:relative;
  overflow:hidden;
  flex-shrink:0;
  width:100%;
}
.hero-bg-pattern{position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent,transparent 20px,rgba(255,255,255,.02) 20px,rgba(255,255,255,.02) 40px);pointer-events:none}
/* Compact bar hidden — collapse feature removed */
.hero-compact{display:none!important}
.hero-expanded{position:relative}
.hero-shortcut-btn{width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.7);font-size:.85rem;cursor:pointer;flex-shrink:0}

/* Override verbose greeting header sizing — keep title line compact */
.home-hero .hero-expanded h2{font-size:1.2rem!important}
.home-hero .hero-expanded [data-hero-avatar]{width:38px!important;height:38px!important;font-size:.82rem!important}

/* Stat grid — slimmer */
.hero-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;position:relative}
.hero-stat-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 14px;cursor:pointer;transition:background .15s}
.hero-stat-card:hover{background:rgba(255,255,255,.13)}
.hero-stat-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.45);margin-bottom:4px}
.hero-stat-val{font-size:1.5rem;font-weight:700;color:#fff;line-height:1;font-family:'Bebas Neue',sans-serif}
.hero-stat-sub{font-size:.62rem;color:rgba(255,255,255,.35);margin-top:2px}

/* Collapsed state — disabled (kept selector a no-op for legacy markup) */
.home-hero.hero-collapsed{padding:18px 32px 18px}

/* ══════════════════════════════════════════════════════════════
   MOBILE — HOME PAGE
   ══════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  /* Hero — tight on phones */
  .home-hero{padding:12px 14px 12px}
  .home-hero.hero-collapsed{padding:12px 14px 12px}
  .home-hero .hero-expanded h2{font-size:1rem!important}
  .hero-stats-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}
  .hero-stat-card{padding:8px 8px}
  .hero-stat-val{font-size:1.25rem}
  .hero-stat-label{font-size:.55rem;margin-bottom:2px}
  .hero-stat-sub{display:none}
  .hero-shortcut-btn{display:none}
  .clock-widget{display:none!important}

  /* page-scroll on home — no horizontal padding fighting hero */
  #panel-home .page-scroll{padding:0!important}
  #panel-home .page-body{padding:0 12px 24px!important}

  /* All 2-col grids → single col */
  .home-two-col{grid-template-columns:1fr!important}

  /* Dash sections — more breathing room */
  .dash-section{padding:14px!important;border-radius:12px!important;margin-bottom:12px!important}
  .dash-section-title{font-size:.8rem!important;margin-bottom:10px!important}

  /* Quick action buttons — bigger tap targets */
  .dash-action{padding:14px 10px!important;font-size:.82rem!important;min-height:48px}

  /* Todo input */
  #todo-input{font-size:16px!important} /* prevents iOS zoom */

  /* Today's Focus items */
  .home-two-col .dash-section:first-child > div > div{padding:12px 10px!important}

  /* Deal digest rows */
  #digest-ticker-inner > div{padding:10px 8px!important;font-size:.78rem!important}

  /* Prospects horizontal scroll */
  .dash-prospects{padding-bottom:8px}
  .dash-p-card{min-width:120px!important;padding:10px 8px!important}

  /* Team stats */
  .dash-stats{grid-template-columns:repeat(2,1fr)!important}

  /* Command center metrics */
  .cc-metrics{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}
  .cc-metric{padding:14px!important}
  .cc-metric-value{font-size:1.8rem!important}
  .cc-split-60-40,.cc-split-50-50{grid-template-columns:1fr!important}

  /* Leaderboard — simpler on mobile */
  .leaderboard-table th:nth-child(n+4),.leaderboard-table td:nth-child(n+4){display:none!important}
}

/* ══════════════════════════════════════════════════════════════
   PIPELINE BOARD
   ══════════════════════════════════════════════════════════════ */

/* Wrapper — fills panel */
.pipeline-wrap{display:flex;flex-direction:column;height:100%;overflow:hidden}

/* Header */
.pipeline-hdr{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0;flex-shrink:0;gap:12px;flex-wrap:wrap}
.pipeline-hdr-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pipeline-title{font-size:1.5rem;font-weight:800;color:var(--text);margin:0}
.pipeline-pills{display:flex;gap:6px;flex-wrap:wrap}
.pipe-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--bg2);border:1px solid var(--border);font-size:.7rem;font-weight:600;color:var(--text2)}
.pipe-pill.warn{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.3);color:#f59e0b}
.pipeline-hdr-right{display:flex;align-items:center;gap:10px;flex-shrink:0}

/* My/All toggle */
.pipe-toggle-group{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:2px}
.pipe-toggle{padding:5px 14px;border-radius:6px;font-size:.78rem;font-weight:600;color:var(--text2);transition:all .18s;background:transparent}
.pipe-toggle.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* Tabs bar */
.pipeline-tabs-bar{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 24px;flex-shrink:0;margin-top:16px}
.pipe-tab{padding:10px 18px;border:none;background:none;font-size:.82rem;font-weight:600;color:var(--text2);cursor:pointer;position:relative;transition:color .18s;display:flex;align-items:center;gap:6px}
.pipe-tab:hover{color:var(--text)}
.pipe-tab.on{color:var(--accent)}
.pipe-tab.on::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent);border-radius:2px 2px 0 0}
.pipe-tab-ct{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--bg2);border-radius:999px;font-size:.65rem;font-weight:700;color:var(--text2)}
.pipe-tab.on .pipe-tab-ct{background:rgba(224,32,32,.1);color:var(--accent)}

/* Body / scroll area */
.pipeline-body{flex:1;overflow-y:auto;overflow-x:auto;padding:20px 24px 32px}

/* Empty states */
.pipe-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;text-align:center;padding:40px}
.pipe-empty-state h3{font-size:1.1rem;font-weight:700;color:var(--text);margin:0 0 8px}
.pipe-empty-state p{color:var(--text2);font-size:.85rem;max-width:340px;line-height:1.6;margin:0 0 20px}
.pipe-cta-btn{padding:10px 22px;background:var(--accent);color:#fff;border:none;border-radius:9px;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s}
.pipe-cta-btn:hover{opacity:.88}

/* Kanban board */
.kanban-board{display:flex;gap:14px;min-height:480px;align-items:flex-start}
.kanban-col{flex:1;min-width:220px;max-width:300px;display:flex;flex-direction:column;gap:0}
.kanban-col-hdr{display:flex;justify-content:space-between;align-items:center;padding:10px 0 10px;border-bottom:2px solid var(--border);margin-bottom:10px}
.kanban-col-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2)}
.kanban-col-ct{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--bg2);border-radius:999px;font-size:.7rem;font-weight:700;color:var(--text2)}

/* Drop zone */
.kanban-cards-zone{display:flex;flex-direction:column;gap:8px;min-height:60px;border-radius:10px;transition:background .18s;padding:2px 0}
.kanban-cards-zone.drag-over{background:rgba(224,32,32,.04);outline:2px dashed rgba(224,32,32,.3);outline-offset:-2px}
.kanban-drop-hint{text-align:center;padding:20px 12px;font-size:.75rem;color:var(--text3);border:1.5px dashed var(--border);border-radius:10px;opacity:.6}

/* Kanban card */
.kanban-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;transition:box-shadow .18s,transform .18s,border-color .18s;user-select:none}
.kanban-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-1px);border-color:rgba(224,32,32,.2)}
.kanban-card.dragging{opacity:.5;transform:rotate(1deg)}
.kanban-card.is-stuck{border-left:3px solid #f59e0b;background:rgba(245,158,11,.06)}

.kc-top{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px}
.kc-avatar{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#f97316);color:#fff;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.kc-info{flex:1;min-width:0}
.kc-name{font-size:.85rem;font-weight:700;color:var(--text);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kc-sub{font-size:.72rem;color:var(--text2);margin-top:2px}
.kc-tp{display:inline-block;padding:1px 6px;background:rgba(59,130,246,.1);color:#3b82f6;border-radius:4px;font-size:.6rem;font-weight:700;margin-left:4px;vertical-align:middle}
.kc-stuck-badge{font-size:.65rem;font-weight:700;color:#f59e0b;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.25);border-radius:6px;padding:2px 6px;flex-shrink:0;white-space:nowrap}

.kc-footer{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.kc-tag{display:inline-block;padding:2px 7px;background:var(--bg);border:1px solid var(--border);border-radius:5px;font-size:.65rem;font-weight:600;color:var(--text2)}
.kc-tag.assign{background:rgba(59,130,246,.06);border-color:rgba(59,130,246,.2);color:#3b82f6}
.kc-last{font-size:.65rem;color:var(--text3);margin-left:auto;white-space:nowrap}
.kc-stars{font-size:.7rem;margin-top:4px;line-height:1}

/* Signed Roster */
.signed-roster-grid{display:flex;flex-direction:column;gap:10px}
.signed-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 18px;cursor:pointer;transition:box-shadow .18s,border-color .18s}
.signed-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.07);border-color:rgba(34,197,94,.25)}
.signed-card-av{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.signed-card-body{flex:1;min-width:0}
.signed-card-name{font-size:.92rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.signed-card-meta{font-size:.75rem;color:var(--text2);margin-top:2px}
.signed-card-date{font-size:.7rem;color:var(--text3);margin-top:3px}
.signed-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.signed-deal-badge{font-size:.72rem;font-weight:600;color:#22c55e;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);padding:3px 9px;border-radius:6px}
.signed-deal-badge.zero{color:var(--text3);background:var(--bg);border-color:var(--border)}
.signed-profile-btn{font-size:.72rem;font-weight:600;color:var(--accent);background:transparent;border:none;cursor:pointer;padding:0;opacity:.8;transition:opacity .15s}
.signed-profile-btn:hover{opacity:1}

/* ── Detail Panel (slide-in from right) ── */
.pipe-detail-overlay{position:absolute;inset:0;background:rgba(0,0,0,.3);z-index:50;display:flex;justify-content:flex-end;backdrop-filter:blur(1px)}
.pipe-detail-panel{width:min(420px,95vw);height:100%;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;transform:translateX(100%);transition:transform .32s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;padding:24px;gap:0;position:relative}
.pipe-detail-panel.open{transform:translateX(0)}

.pd-close-btn{position:absolute;top:16px;right:16px;background:transparent;color:var(--text2);font-size:1.2rem;border:none;cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s}
.pd-close-btn:hover{background:var(--bg2)}

/* Detail athlete header */
.pd-athlete-hdr{display:flex;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border);margin-top:8px}
.pd-av-wrap{position:relative;width:52px;height:52px;border-radius:12px;flex-shrink:0;overflow:hidden}
.pd-av-img{width:100%;height:100%;object-fit:cover;display:block}
.pd-av-fallback{width:100%;height:100%;background:linear-gradient(135deg,var(--accent),#f97316);color:#fff;font-size:1rem;font-weight:700;align-items:center;justify-content:center;border-radius:12px}
.pd-athlete-info{flex:1;min-width:0}
.pd-athlete-name{font-size:1.05rem;font-weight:800;color:var(--text);line-height:1.2;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pd-tp-tag{display:inline-block;padding:2px 7px;background:rgba(59,130,246,.1);color:#3b82f6;border-radius:5px;font-size:.62rem;font-weight:700}
.pd-athlete-meta{font-size:.75rem;color:var(--text2);margin-top:3px}
.pd-athlete-school{font-size:.72rem;color:var(--text3);margin-top:2px}
.pd-signed-tag{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:.72rem;font-weight:600;color:#22c55e;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);padding:3px 9px;border-radius:6px}
.pd-stuck-tag{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:.72rem;font-weight:600;color:#f59e0b;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.25);padding:3px 9px;border-radius:6px}

/* Quick actions row */
.pd-quick-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}
.pd-q-btn{padding:7px 14px;border-radius:8px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;border:1px solid var(--border);background:var(--surface);color:var(--text)}
.pd-q-btn:hover{border-color:var(--accent);color:var(--accent)}
.pd-q-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.pd-q-btn.primary:hover{opacity:.88}
.pd-q-btn.danger{color:var(--danger);border-color:rgba(239,68,68,.25);background:rgba(239,68,68,.04)}
.pd-q-btn.danger:hover{background:rgba(239,68,68,.1)}

/* Sections */
.pd-section{margin-bottom:18px}
.pd-section-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text2);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}
.pd-mini-btn{font-size:.65rem;font-weight:600;color:var(--accent);background:transparent;border:1px solid rgba(224,32,32,.3);border-radius:5px;padding:2px 7px;cursor:pointer;transition:all .15s}
.pd-mini-btn:hover{background:rgba(224,32,32,.06)}

/* Stage pills */
.pd-stage-row{display:flex;flex-wrap:wrap;gap:6px}
.pd-stage-btn{padding:6px 12px;border-radius:8px;font-size:.75rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text2);transition:all .18s}
.pd-stage-btn:hover{border-color:var(--sc,var(--accent));color:var(--sc,var(--accent))}
.pd-stage-btn.on{background:var(--sc,var(--accent));color:#fff;border-color:var(--sc,var(--accent))}
.pd-stage-btn.sign-btn{border-color:rgba(34,197,94,.4);color:#16a34a;background:rgba(34,197,94,.05)}
.pd-stage-btn.sign-btn:hover{background:#22c55e;color:#fff;border-color:#22c55e}

/* Assignee select */
.pd-select{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:.83rem;color:var(--text);background:var(--surface);appearance:auto}

/* Deals list */
.pd-deals-list{display:flex;flex-direction:column;gap:6px}
.pd-deal-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}
.pd-deal-brand{font-size:.8rem;font-weight:600;color:var(--text);flex:1}
.pd-deal-amt{font-size:.8rem;font-weight:700;color:var(--text);white-space:nowrap}
.pd-deal-status{font-size:.72rem;font-weight:600;white-space:nowrap}
.pd-empty-row{font-size:.78rem;color:var(--text3);padding:8px 0}

/* Notes */
.pd-notes-ta{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:.82rem;color:var(--text);background:var(--surface);resize:vertical;min-height:80px;font-family:var(--font);transition:border-color .2s}
.pd-notes-ta:focus{border-color:var(--accent);outline:none}

/* Database pipeline button */
.db-action-pipeline{display:block;width:100%;padding:10px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:.83rem;font-weight:600;cursor:pointer;text-align:left;transition:opacity .15s;margin-bottom:6px}
.db-action-pipeline:hover{opacity:.88}

/* Mobile pipeline */
@media(max-width:768px){
  .pipeline-hdr{padding:14px 16px 0}
  .pipeline-body{padding:16px 12px 24px}
  .kanban-board{flex-direction:column;min-height:0}
  .kanban-col{min-width:0;max-width:100%}
  .pipe-detail-panel{width:100%}
  .pd-stage-row{flex-direction:column}
  .pd-stage-btn{text-align:center}
}

/* ══════════════════════════════════════════════════════════════
   DEAL DETAIL PANEL
   ══════════════════════════════════════════════════════════════ */
.deal-detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:8500;display:flex;justify-content:flex-end}
.deal-detail-panel{width:min(480px,100vw);height:100%;background:var(--bg);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transform:translateX(100%);transition:transform .32s cubic-bezier(0.4,0,0.2,1)}
.deal-detail-panel.open{transform:translateX(0)}

/* Header */
.ddp-header{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 16px;border-bottom:1px solid var(--border);flex-shrink:0}
.ddp-deal-title{font-size:1.05rem;font-weight:700;color:var(--text);line-height:1.3}
.ddp-close-btn{background:var(--surface);border:1px solid var(--border);color:var(--text2);width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;transition:background .15s}
.ddp-close-btn:hover{background:var(--surface2)}
.ddp-edit-btn{background:var(--accent);color:#fff;border:none;padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .15s}
.ddp-edit-btn:hover{opacity:.88}

/* Body */
.ddp-body{flex:1;overflow-y:auto;padding:0 20px 32px}

/* Value block */
.ddp-value-block{display:flex;align-items:stretch;gap:0;margin:18px 0 20px;border:1px solid var(--border);border-radius:12px;overflow:hidden}
.ddp-value-item{flex:1;padding:14px 16px}
.ddp-value-divider{width:1px;background:var(--border)}
.ddp-value-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:4px}
.ddp-value-num{font-size:1.3rem;font-weight:800;color:var(--text)}

/* Sections */
.ddp-section{margin-bottom:20px}
.ddp-section-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.ddp-row{display:flex;justify-content:space-between;align-items:flex-start;padding:7px 0;border-bottom:1px solid rgba(0,0,0,.04);gap:12px}
.ddp-row-col{flex-direction:column;gap:4px}
.ddp-label{font-size:.78rem;color:var(--text3);flex-shrink:0;min-width:90px}
.ddp-val{font-size:.82rem;color:var(--text);font-weight:500;text-align:right}
.ddp-notes{font-size:.82rem;color:var(--text);line-height:1.55;white-space:pre-wrap}
.ddp-link{font-size:.82rem;color:var(--accent);text-decoration:none;font-weight:500;text-align:right}
.ddp-link:hover{text-decoration:underline}
.ddp-link-btn{display:block;width:100%;padding:9px 14px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--accent);font-size:.82rem;font-weight:600;cursor:pointer;text-align:left;transition:background .15s}
.ddp-link-btn:hover{background:var(--surface2)}

/* Mobile */
@media(max-width:768px){
  .deal-detail-panel{width:100%}
}

/* ══════════════════════════════════════════════════════════════
   ADDITIONAL MOBILE POLISH
   ══════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  /* Panels: 16px side padding (not 32px) */
  .panel > [style*="padding:32px"]{padding:20px 16px!important}
  .panel > div > [style*="padding:32px"]{padding:20px 16px!important}

  /* Tables scroll horizontally */
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  .db-list,.db-row,.db-header{overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* Cards stack vertically (generic grid in panels) */
  .panel [style*="grid-template-columns:repeat(auto-fill"]{grid-template-columns:1fr!important}
  .panel [style*="display:grid"][style*="1fr 1fr"]{grid-template-columns:1fr!important}

  /* Topnav: only logo + right icons on mobile */
  .topnav-menu{display:none!important}
  .topnav-left{flex:1}

  /* Min font sizes */
  body{font-size:14px}
  .modal-field label,.modal-sub,.nd-msg,.nd-time{font-size:12px!important}

  /* Modal full-screen on small screens */
  .modal-overlay{padding:0!important;align-items:flex-end!important}
  .modal{width:100%!important;max-width:100%!important;max-height:92vh!important;border-radius:var(--r-lg) var(--r-lg) 0 0!important;padding:24px 16px!important;overflow-y:auto!important}
}

/* ══════════════════════════════════════════════════════════════
   MOBILE DEEP OPTIMIZATION — Phase 2
   Critical fixes for smooth mobile-first usage
══════════════════════════════════════════════════════════════ */

/* ── 1. iOS INPUT ZOOM PREVENTION ─────────────────────────────
   Any input with font-size < 16px triggers auto-zoom on iOS.
   Force 16px on all interactive fields when on mobile.           */
@media(max-width:768px){
  input,select,textarea,
  .modal-field input,.modal-field select,.modal-textarea,
  .detail-panel input,.detail-panel select,.detail-panel textarea,
  .form-group input,.form-group select,.form-group textarea,
  .search-input,.vibe-search input,.msg-input,.gs-input,
  .db-controls input,.db-controls select,
  .ch-compose input,.ch-compose textarea,
  .pd-select,.pd-notes-ta{
    font-size:16px!important;
  }
}

/* ── 2. BOTTOM NAV PADDING — extend to full 768px range ───────
   Mobile nav shows at ≤768px but padding-bottom was only at
   ≤640px. Content 641–768px was hiding behind bottom nav.        */
@media(max-width:768px){
  #portal{padding-bottom:var(--mob-h)!important}
  .page-scroll{padding-bottom:calc(var(--mob-h) + 20px)!important}
  #panel-s-database,#panel-s-athlete,#panel-s-portal,
  #panel-s-pipeline,#panel-s-compare,
  #panel-e-database,#panel-e-evaluator,
  #panel-e-pipeline,#panel-e-compare,
  #panel-reports{padding-bottom:calc(var(--mob-h) + 20px)!important}
}

/* ── 3. TOUCH ACTIONS — eliminate 300ms tap delay ────────────── */
@media(max-width:768px){
  button,.mob-item,.vi-sub-btn,.app-row,.db-row,.task-card,
  .kanban-card,.board-card,.res-card,.recent-card,
  .dash-action,.dash-p-card,.login-btn,.modal-save,.modal-cancel,
  .btn-primary,.btn-ghost,.topnav-icon-btn,.topnav-avatar{
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
}

/* ── 4. SAFE-AREA INSETS — notched devices ────────────────────── */
@media(max-width:768px){
  .modal{padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}
  .floating-modal-content{
    padding-bottom:calc(24px + env(safe-area-inset-bottom))!important
  }
  .bulk-bar{padding-bottom:calc(12px + env(safe-area-inset-bottom))!important}
  .ch-compose,.msg-compose{
    padding-bottom:calc(12px + env(safe-area-inset-bottom))!important
  }
}

/* ── 5. FLOATING MODALS — bottom-sheet style ──────────────────── */
@media(max-width:640px){
  .floating-modal{
    padding:0!important;
    align-items:flex-end!important;
  }
  .floating-modal-content{
    border-radius:20px 20px 0 0!important;
    max-width:100%!important;
    max-height:92vh!important;
    width:100%!important;
    overflow-y:auto!important;
  }
}

/* ── 6. GLOBAL SEARCH — mobile keyboard aware ────────────────── */
@media(max-width:768px){
  .gs-overlay{padding-top:4vh!important;align-items:flex-start}
  .gs-modal{width:100%!important;max-width:100%!important;border-radius:0 0 16px 16px!important}
  .gs-results{max-height:55vh!important}
}

/* ── 7. SUB-NAV — momentum scroll + hide scrollbar ───────────── */
.vi-sub-nav{
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.vi-sub-nav::-webkit-scrollbar{display:none}

/* ── 8. SCROLL MOMENTUM everywhere ───────────────────────────── */
.page-scroll,.msg-convo-list,.msg-detail-messages,.gs-results,
.nd-list,.kanban-cards,.tl-list,.msg-thread-list,
.ch-messages,.notif-list,.detail-panel{
  -webkit-overflow-scrolling:touch;
}

/* ── 9. TOPNAV tightening on very small screens ──────────────── */
@media(max-width:380px){
  .topnav{padding:0 8px!important}
  .topnav-logo{font-size:1.25rem!important;margin-right:0!important}
  .topnav-right{gap:2px!important;margin-left:2px!important}
  .topnav-icon-btn{width:38px!important;height:38px!important}
}

/* ── 10. BRAND DB ROW — override to 2 cols on mobile ─────────── */
@media(max-width:768px){
  .brand-db-row{grid-template-columns:42px 1fr 90px!important}
  .brand-db-row>:nth-child(n+4){display:none!important}
}

/* ── 11. ACTIVITY PANEL — ensure content scrolls ─────────────── */
@media(max-width:768px){
  .activity-timeline{overflow-y:auto;max-height:60vh}
  .scorecard-stats{grid-template-columns:repeat(2,1fr)!important}
  .funnel-label{width:100px!important;font-size:.72rem!important}
}

/* ── 12. DETAIL PANEL — safe area + scroll ────────────────────── */
@media(max-width:768px){
  .detail-panel{
    padding-bottom:calc(16px + env(safe-area-inset-bottom))!important;
    overflow-y:auto!important;
  }
  .detail-header-bar{
    position:sticky;top:0;z-index:5;
  }
}

/* ── 12b. NO OVERSCROLL ANYWHERE ON MOBILE ───────────────────── */
/* Trap every internal scroller so swipe-bounce never reaches the body */
.page-scroll,.ap-scroll,.detail-panel,.modal-overlay,.modal,
.msg-convo-list,.msg-detail-messages,.msg-thread-list,
.gs-results,.nd-list,.kanban-cards,.tl-list,
.ch-messages,.notif-list,.activity-timeline,
.db-list,.compare-container,.dash-stats{
  overscroll-behavior:none!important;
  overscroll-behavior-y:none!important;
  overscroll-behavior-x:none!important;
  -webkit-overflow-scrolling:touch;
}
/* Belt-and-suspenders for iOS Safari rubber-band on the document */
html,body{
  overscroll-behavior:none!important;
  overscroll-behavior-y:none!important;
  touch-action:pan-y;
}

/* ── 13. HOME HERO — compact on mobile ───────────────────────── */
@media(max-width:768px){
  .home-hero{padding:20px 16px 16px!important}
  .home-hero h2{font-size:1.1rem!important}
  .home-hero-actions{flex-direction:column!important;gap:8px!important}
  .home-hero-actions .btn-primary,.home-hero-actions .btn-ghost{width:100%!important;justify-content:center!important}
}

/* ── 13b. ATHLETE PROFILE HERO — NIL Value + Comparables ───── */
.ap-hero-panels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:14px 0 4px;
}
.ap-hero-panels .nil-panel,
.ap-hero-panels .comps-panel{
  margin:0;
  height:100%;
  box-sizing:border-box;
}
@media(max-width:768px){
  .ap-hero-panels{grid-template-columns:1fr;gap:10px;margin:10px 0 4px}
}

@media(max-width:400px){
  .ap-hero-panels{grid-template-columns:1fr;gap:8px;margin:8px 0 4px}
}

/* ── 14. PROFILE MENU — full-width on mobile ─────────────────── */
@media(max-width:480px){
  .profile-menu{position:fixed!important;top:auto!important;bottom:calc(var(--mob-h) + 8px)!important;right:8px!important;left:8px!important;min-width:unset!important}
}

/* ── 15. DYNAMIC VIEWPORT HEIGHT — iOS keyboard safe ────────── */
@supports(height:100svh){
  @media(max-width:768px){
    #portal{height:100svh!important}
  }
}

/* ══════════════════════════════════════════════════════════════
   16. USER PREFS — adaptive personalization layer
   ══════════════════════════════════════════════════════════════ */

/* Hero theme accent — set via inline --hero-accent on .home-hero */
.home-hero[data-themed="1"]{
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--hero-accent, #243b55) 78%, #0a0f1a) 0%,
    color-mix(in srgb, var(--hero-accent, #243b55) 92%, #1a1f2c) 100%);
}
.home-hero[data-themed="1"] .hero-bg-pattern{opacity:.7}
.home-hero[data-themed="1"] .hero-stat-card:hover{background:rgba(255,255,255,.16)}
.hero-accent-line{margin-top:6px;font-size:.78rem;color:rgba(255,255,255,.78);font-weight:500;line-height:1.35}
@media(max-width:540px){.hero-accent-line{display:none}}

/* Goal strip — sits below hero stats grid */
.goal-strip{margin-top:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:14px}
.goal-strip-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55);flex-shrink:0}
.goal-strip-text{font-size:.85rem;color:#fff;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goal-strip-bar{flex:2;min-width:120px;height:8px;background:rgba(255,255,255,.12);border-radius:6px;overflow:hidden}
.goal-strip-fill{height:100%;background:linear-gradient(90deg, #fff, rgba(255,255,255,.7));border-radius:6px;transition:width .4s}
.goal-strip-pct{font-size:.78rem;color:#fff;font-weight:700;flex-shrink:0;min-width:42px;text-align:right;font-family:'Bebas Neue',sans-serif;letter-spacing:.04em}
@media(max-width:768px){
  .goal-strip{padding:8px 10px;gap:8px;margin-top:10px}
  .goal-strip-label{display:none}
  .goal-strip-text{font-size:.75rem}
  .goal-strip-pct{font-size:.7rem;min-width:36px}
}

/* ── Header pill — global sport switcher ────────────────────── */
.ups-header-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 10px 6px 9px;border-radius:999px;
  background:var(--surface);border:1.5px solid var(--border);
  color:var(--text);font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:600;
  cursor:pointer;transition:all .14s;position:relative;
  --ups-c: var(--accent);
}
.ups-header-pill:hover{border-color:var(--ups-c);color:var(--ups-c)}
.ups-header-ico{font-size:.95rem;line-height:1}
.ups-header-lbl{white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
.ups-header-caret{font-size:.7rem;color:var(--text2);margin-left:1px}
.ups-header-dot{position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--ups-c);box-shadow:0 0 0 2px var(--surface)}
@media(max-width:768px){
  .ups-header-pill{padding:5px 8px 5px 8px;font-size:.72rem}
  .ups-header-lbl{max-width:80px}
}
@media(max-width:480px){
  .ups-header-lbl{display:none}
  .ups-header-caret{display:none}
}

/* ── Filter strip — drops above any list page ───────────────── */
.ups-strip{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 14px;margin-bottom:14px;
  background:var(--surface);border:1px solid var(--border);border-radius:12px;
}
.ups-strip.ups-empty{justify-content:space-between}
.ups-empty-text{font-size:.82rem;color:var(--text2)}
.ups-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);font-weight:600;flex-shrink:0}
.ups-pills{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0}
.ups-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 8px 4px 10px;border-radius:999px;
  background:color-mix(in srgb, var(--ups-c) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--ups-c) 35%, transparent);
  color:var(--ups-c);font-size:.74rem;font-weight:600;
  --ups-c: var(--accent);
}
.ups-pill-ico{font-size:.85rem;line-height:1}
.ups-pill-lbl{line-height:1}
.ups-pill-x{
  width:16px;height:16px;border-radius:50%;border:none;
  background:transparent;color:inherit;cursor:pointer;
  font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;opacity:.7
}
.ups-pill-x:hover{background:rgba(0,0,0,.08);opacity:1}
.ups-add-btn{
  padding:5px 10px;border-radius:8px;border:1px dashed var(--border);
  background:transparent;color:var(--text2);font-size:.74rem;font-weight:600;cursor:pointer;
  font-family:'DM Sans',sans-serif;
}
.ups-add-btn:hover{border-color:var(--accent);color:var(--accent);border-style:solid}
.ups-show-all{
  padding:5px 10px;border-radius:8px;border:1px solid var(--border);
  background:transparent;color:var(--text2);font-size:.74rem;font-weight:600;cursor:pointer;
  font-family:'DM Sans',sans-serif;flex-shrink:0
}
.ups-show-all:hover{border-color:var(--accent);color:var(--accent)}
.ups-show-all.ups-active{background:var(--accent);color:#fff;border-color:var(--accent)}
@media(max-width:768px){
  .ups-strip{padding:8px 10px;gap:6px;margin-bottom:10px;border-radius:10px}
  .ups-label{display:none}
  .ups-pill{font-size:.7rem;padding:3px 7px 3px 8px}
  .ups-add-btn,.ups-show-all{font-size:.7rem;padding:4px 8px}
}

/* ── Switcher popover ───────────────────────────────────────── */
.ups-switcher{
  position:fixed;z-index:9999;
  width:280px;background:var(--surface);
  border:1px solid var(--border);border-radius:12px;
  box-shadow:0 12px 36px rgba(0,0,0,.18);
  overflow:hidden;font-family:'DM Sans',sans-serif;
}
.ups-switcher-head{padding:12px 14px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);font-weight:700;border-bottom:1px solid var(--border)}
.ups-switcher-list{padding:6px;max-height:320px;overflow-y:auto}
.ups-switcher-row{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border-radius:8px;cursor:pointer;
  transition:background .12s;
}
.ups-switcher-row:hover{background:var(--bg)}
.ups-switcher-row.on{background:color-mix(in srgb, var(--accent) 8%, transparent)}
.ups-switcher-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin:0}
.ups-row-ico{font-size:1.05rem;line-height:1;width:20px;text-align:center}
.ups-row-lbl{font-size:.85rem;color:var(--text);flex:1}
.ups-switcher-foot{padding:8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px}
.ups-switcher-done{
  padding:8px 14px;border-radius:8px;border:none;
  background:var(--accent);color:#fff;font-weight:600;font-size:.8rem;cursor:pointer;
  font-family:'DM Sans',sans-serif;
}
.ups-switcher-done:hover{filter:brightness(1.08)}
@media(max-width:768px){
  .ups-switcher{
    width:calc(100vw - 24px);max-width:360px;
    right:12px!important;left:auto;top:60px!important;
    max-height:calc(100vh - var(--mob-h, 0px) - 80px);
    overflow:hidden;display:flex;flex-direction:column;
  }
  .ups-switcher-list{flex:1;min-height:0}
}

/* ── Toast ──────────────────────────────────────────────────── */
.ups-toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--text);color:var(--surface);
  padding:10px 18px;border-radius:999px;font-size:.82rem;font-weight:600;
  box-shadow:0 8px 28px rgba(0,0,0,.22);
  opacity:0;pointer-events:none;transition:all .25s;z-index:99999;
  font-family:'DM Sans',sans-serif;
}
.ups-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ══════════════════════════════════════════════════════════════
   17. ONBOARDING V2 — adaptive setup flow
   ══════════════════════════════════════════════════════════════ */
.onb-v2{background:rgba(8,12,22,.55);backdrop-filter:blur(6px)}
.onb-v2 .onb-shell{
  background:var(--surface);border:1px solid var(--border);border-radius:18px;
  width:min(560px, calc(100vw - 32px));max-height:calc(100vh - 48px);
  display:flex;flex-direction:column;
  box-shadow:0 24px 64px rgba(0,0,0,.32);
  font-family:'DM Sans',sans-serif;overflow:hidden;
}
.onb-progress{display:flex;gap:4px;padding:14px 22px 0;flex-shrink:0}
.onb-bar{flex:1;height:4px;background:rgba(128,128,128,.25);border-radius:4px;transition:background .3s}
.onb-bar.done{background:var(--accent)}
.onb-step-num{padding:8px 22px 0;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text2);font-weight:700}
.onb-body{padding:18px 26px;overflow-y:auto;flex:1;min-height:0}
.onb-foot{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:14px 22px;border-top:1px solid var(--border);background:var(--surface);flex-shrink:0
}
.onb-btn-back{
  padding:9px 16px;border-radius:10px;border:1px solid var(--border);
  background:transparent;color:var(--text2);font-weight:600;cursor:pointer;font-size:.85rem;
  font-family:'DM Sans',sans-serif;
}
.onb-btn-back:hover{color:var(--text);border-color:var(--text2)}
.onb-btn-next{
  padding:10px 22px;border-radius:10px;border:none;
  background:var(--accent);color:#fff;font-weight:700;cursor:pointer;font-size:.88rem;
  font-family:'DM Sans',sans-serif;transition:all .14s;
}
.onb-btn-next:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}
.onb-btn-next:disabled{opacity:.4;cursor:not-allowed}

/* Welcome step */
.onb-welcome{text-align:center;padding:14px 0 4px}
.onb-logo-mark{
  width:62px;height:62px;border-radius:16px;
  background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #ff6b6b));
  color:#fff;font-size:1.8rem;font-weight:800;font-family:'Bebas Neue',sans-serif;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;box-shadow:0 8px 24px color-mix(in srgb, var(--accent) 35%, transparent);
}
.onb-title{font-size:1.6rem;font-weight:700;color:var(--text);margin-bottom:8px;line-height:1.2}
.onb-desc{font-size:.95rem;color:var(--text2);line-height:1.5;max-width:420px;margin:0 auto 12px}
.onb-meta{font-size:.75rem;color:var(--text2);opacity:.7;margin-top:8px}

/* Question step */
.onb-q-title{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.25}
.onb-q-sub{font-size:.85rem;color:var(--text2);line-height:1.5;margin-bottom:18px}
.onb-grid{display:grid;gap:10px}
.onb-grid-sports{grid-template-columns:repeat(4,1fr)}
.onb-grid-focus{grid-template-columns:repeat(2,1fr)}
.onb-grid-classes{grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:540px){
  .onb-grid-sports{grid-template-columns:repeat(2,1fr)}
  .onb-grid-focus{grid-template-columns:1fr}
  .onb-grid-classes{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:380px){
  .onb-grid-sports{grid-template-columns:repeat(2,1fr);gap:8px}
}

/* Sport card */
.onb-card{
  --c: var(--accent);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;padding:14px 8px;border-radius:12px;
  background:var(--surface);border:1.5px solid var(--border);color:var(--text);
  cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif;
}
.onb-card:hover{border-color:var(--c);transform:translateY(-1px)}
.onb-card.on{
  border-color:var(--c);
  background:color-mix(in srgb, var(--c) 10%, transparent);
  box-shadow:0 6px 16px color-mix(in srgb, var(--c) 22%, transparent);
}
.onb-card-ico{font-size:1.5rem;line-height:1}
.onb-card-lbl{font-size:.78rem;font-weight:600;text-align:center;line-height:1.2}

/* Focus card */
.onb-focus-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  padding:16px;border-radius:14px;text-align:left;
  background:var(--surface);border:1.5px solid var(--border);color:var(--text);
  cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif;
}
.onb-focus-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.onb-focus-card.on{
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 8%, transparent);
  box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 22%, transparent);
}
.onb-focus-ico{font-size:1.4rem;line-height:1;margin-bottom:2px}
.onb-focus-lbl{font-size:1rem;font-weight:700;color:var(--text)}
.onb-focus-desc{font-size:.78rem;color:var(--text2);line-height:1.35}

/* Class chip */
.onb-chip{
  padding:10px 12px;border-radius:10px;
  background:var(--surface);border:1.5px solid var(--border);color:var(--text);
  font-size:.82rem;font-weight:600;cursor:pointer;transition:all .12s;
  font-family:'DM Sans',sans-serif;text-align:center;
}
.onb-chip:hover{border-color:var(--accent)}
.onb-chip.on{
  border-color:var(--accent);background:var(--accent);color:#fff;
}

/* Goal step */
.onb-goal-row{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 0 6px;font-size:.95rem;color:var(--text);
}
.onb-goal-label{color:var(--text2);font-size:.9rem}
.onb-goal-sel,.onb-goal-input{
  padding:8px 12px;border-radius:8px;border:1.5px solid var(--border);
  background:var(--surface);color:var(--text);font-size:.9rem;font-weight:600;
  font-family:'DM Sans',sans-serif;outline:none;
}
.onb-goal-sel:focus,.onb-goal-input:focus{border-color:var(--accent)}
.onb-goal-input{width:80px;text-align:center}

.onb-tertiary{display:flex;justify-content:center;margin-top:14px}
.onb-tertiary-btn{
  background:none;border:none;color:var(--text2);
  font-size:.82rem;font-weight:600;cursor:pointer;text-decoration:underline;
  font-family:'DM Sans',sans-serif;
}
.onb-tertiary-btn:hover{color:var(--accent)}

/* ══════════════════════════════════════════════════════════════
   18. NIL VALUE — score badge + breakdown panel
   ══════════════════════════════════════════════════════════════ */
.nil-badge{
  --nil-c:#0ea5e9;
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 13px;border-radius:999px;
  background:color-mix(in srgb, var(--nil-c) 12%, transparent);
  border:1.5px solid color-mix(in srgb, var(--nil-c) 40%, transparent);
  font-family:'DM Sans',sans-serif;
}
.nil-badge-lbl{font-size:.62rem;font-weight:800;color:var(--nil-c);letter-spacing:.1em;text-transform:uppercase}
.nil-badge-val{font-size:.95rem;font-weight:700;color:var(--text);font-family:'Bebas Neue',sans-serif;letter-spacing:.04em}
.nil-badge-tier{font-size:.65rem;font-weight:700;color:var(--nil-c);text-transform:uppercase;letter-spacing:.06em}

.nil-panel{
  --nil-c:#0ea5e9;
  background:var(--surface);border:1px solid var(--border);
  border-left:3px solid var(--nil-c);
  border-radius:12px;padding:14px 16px;margin-bottom:16px;
  font-family:'DM Sans',sans-serif;
}
.nil-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.nil-head-l{display:flex;flex-direction:column;gap:4px;min-width:0}
.nil-tier-pill{
  display:inline-block;align-self:flex-start;
  padding:2px 9px;border-radius:999px;
  background:color-mix(in srgb, var(--nil-c) 16%, transparent);
  color:var(--nil-c);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
}
.nil-title{font-size:.78rem;color:var(--text2);font-weight:600}
.nil-head-r{text-align:right;flex-shrink:0}
.nil-range{font-size:1.4rem;font-weight:700;color:var(--text);font-family:'Bebas Neue',sans-serif;letter-spacing:.04em;line-height:1}
.nil-mid{font-size:.7rem;color:var(--text2);margin-top:3px}
.nil-digest{
  margin-top:10px;padding:8px 11px;border-radius:8px;
  background:color-mix(in srgb, var(--nil-c) 7%, transparent);
  font-size:.78rem;color:var(--text);
}
.nil-details{margin-top:10px}
.nil-details summary{
  cursor:pointer;font-size:.75rem;color:var(--text2);font-weight:600;
  padding:4px 0;list-style:none;
}
.nil-details summary::-webkit-details-marker{display:none}
.nil-details summary::before{content:'▸ ';transition:transform .15s;display:inline-block}
.nil-details[open] summary::before{transform:rotate(90deg)}
.nil-factors{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:10px;background:var(--surface2);border-radius:8px}
.nil-factor{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;font-size:.78rem}
.nil-factor-lbl{color:var(--text2);font-weight:600}
.nil-factor-mult{color:var(--text);font-weight:700;font-family:'DM Mono','SF Mono',monospace;font-size:.78rem;min-width:60px;text-align:right}
.nil-factor-hint{color:var(--text3);font-size:.7rem;text-align:right;min-width:80px}
.nil-disclaimer{font-size:.68rem;color:var(--text3);margin-top:8px;font-style:italic;line-height:1.4}
@media(max-width:540px){
  .nil-panel{padding:12px}
  .nil-range{font-size:1.2rem}
  .nil-factor{grid-template-columns:1fr auto;gap:6px}
  .nil-factor-hint{display:none}
}

/* ══════════════════════════════════════════════════════════════
   19. COMPARABLES — similar-athlete panel
   ══════════════════════════════════════════════════════════════ */
.comps-panel{
  background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:14px 16px;margin-bottom:16px;
  font-family:'DM Sans',sans-serif;
}
.comps-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.comps-title{font-size:.78rem;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.06em}
.comps-sub{font-size:.7rem;color:var(--text2)}
.comps-insight{
  font-size:.78rem;color:var(--text);font-weight:500;
  padding:8px 11px;background:var(--surface2);border-radius:8px;margin-bottom:10px;
}
.comps-empty{color:var(--text2)}
.comps-empty-msg{font-size:.8rem;color:var(--text2);padding:6px 0}
.comps-list{display:flex;flex-direction:column;gap:6px}
.comps-row{
  display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;
  padding:8px 10px;border-radius:9px;background:var(--surface2);
  cursor:pointer;transition:all .12s;
}
.comps-row:hover{background:var(--bg);transform:translateX(2px)}
.comps-row-avatar{
  width:34px;height:34px;border-radius:50%;object-fit:cover;
  background:var(--surface);border:1px solid var(--border);flex-shrink:0;
}
.comps-row-avatar-ph{
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;font-weight:700;color:var(--text2);
}
.comps-row-main{min-width:0}
.comps-row-name{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comps-row-meta{font-size:.7rem;color:var(--text2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.comps-row-stats{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0;min-width:60px}
.comps-stars{font-size:.72rem;color:#f59e0b;letter-spacing:1px}
.comps-comp{font-size:.7rem;color:var(--text2);font-family:'DM Mono','SF Mono',monospace}
.comps-row-outcome{font-size:.7rem;color:var(--text);font-weight:600;text-align:right;min-width:90px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}

/* Inline tags variant */
.comps-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.comps-inline-label{font-size:.7rem;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.comps-inline-tags{display:flex;gap:5px;flex-wrap:wrap}
.comps-inline-tag{
  display:inline-block;padding:3px 9px;border-radius:999px;
  background:var(--surface2);color:var(--text);font-size:.7rem;font-weight:600;
  cursor:pointer;border:1px solid var(--border);
}
.comps-inline-tag:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:540px){
  .comps-panel{padding:12px}
  .comps-row{grid-template-columns:auto 1fr auto;gap:8px;padding:7px 9px}
  .comps-row-stats{display:none}
  .comps-row-outcome{min-width:auto;max-width:90px;font-size:.66rem}
  .comps-row-avatar{width:30px;height:30px}
}

/* ── Onboarding mobile polish ─────────────────────────────── */
@media(max-width:540px){
  .onb-v2 .onb-shell{
    width:100%;height:100%;max-height:100%;
    border-radius:0;border:none;
  }
  .onb-progress{padding:14px 16px 0}
  .onb-step-num{padding:6px 16px 0;font-size:.62rem}
  .onb-body{padding:14px 18px}
  .onb-foot{padding:12px 16px}
  .onb-title{font-size:1.35rem}
  .onb-desc{font-size:.88rem}
  .onb-q-title{font-size:1.05rem}
  .onb-q-sub{font-size:.78rem;margin-bottom:14px}
  .onb-card-ico{font-size:1.35rem}
  .onb-card-lbl{font-size:.74rem}
  .onb-focus-card{padding:13px}
  .onb-focus-ico{font-size:1.25rem}
  .onb-focus-lbl{font-size:.92rem}
  .onb-focus-desc{font-size:.72rem}
  .onb-chip{padding:9px 8px;font-size:.76rem}
  .onb-btn-back{padding:8px 12px;font-size:.78rem}
  .onb-btn-next{padding:9px 16px;font-size:.82rem}
  /* Goal step — stack the inline form */
  .onb-goal-row{flex-direction:column;align-items:stretch;gap:8px;padding:8px 0}
  .onb-goal-row .onb-goal-label{text-align:left;font-size:.82rem}
  .onb-goal-sel,.onb-goal-input{width:100%;padding:10px 12px;font-size:.95rem}
}


/* ════════════════════════════════════════════════════════════════
 * 20. SPORTS DATABASE V2 — UNIFIED DB SHELL + INLINE TAGS
 * ════════════════════════════════════════════════════════════════ */

/* Header bar */
.db2-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.db2-header-l{display:flex;align-items:center;gap:14px;flex-wrap:wrap}

/* Tab bar — pill style scope toggles */
.db2-tab-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.db2-tab{
  background:transparent;border:1px solid var(--border);color:var(--text2);
  padding:7px 14px;border-radius:999px;font-size:.82rem;font-weight:600;
  cursor:pointer;transition:all .15s ease;letter-spacing:.02em;
}
.db2-tab:hover{border-color:var(--text2);color:var(--text);background:var(--surface2)}
.db2-tab.active{
  background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 0 0 3px rgba(224,32,32,.15);
}

/* Inline tags — [M] [W] [TP] in name cells and profile headers */
.db2-tag{
  display:inline-block;font-family:'JetBrains Mono','Menlo',monospace;
  font-size:.7rem;font-weight:700;letter-spacing:.02em;
  padding:1px 5px;margin-right:4px;border-radius:3px;
  vertical-align:baseline;line-height:1.2;
  white-space:nowrap;
}
.db2-tag-m{ color:#3b82f6; background:rgba(59,130,246,.1); border:1px solid rgba(59,130,246,.25); }
.db2-tag-w{ color:#EAB308; background:rgba(234,179,8,.1);  border:1px solid rgba(234,179,8,.3); }

/* TP — gradient flashing red */
.db2-tag-tp{
  color:#fff;
  background:linear-gradient(90deg,#DC2626 0%,#F87171 50%,#DC2626 100%);
  background-size:200% 100%;
  border:1px solid rgba(220,38,38,.6);
  animation: db2-tp-flash 1.6s ease-in-out infinite, db2-tp-pulse 1.6s ease-in-out infinite;
  text-shadow:0 1px 1px rgba(0,0,0,.2);
}
@keyframes db2-tp-flash {
  0%,100% { background-position: 0% 50%; }
  50%     { background-position: 100% 50%; }
}
@keyframes db2-tp-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(220,38,38,.55); }
  50%     { box-shadow: 0 0 0 4px rgba(220,38,38,0); }
}

/* Tag in profile header (larger) */
.db2-tag-lg{
  font-size:.78rem;
  padding:3px 8px;
  margin-right:6px;
  border-radius:4px;
}

/* Sport theme color override for [M] — uses --hero-accent if defined on parent */
[data-themed="1"] .db2-tag-m{
  color: var(--hero-accent);
  background: color-mix(in srgb, var(--hero-accent) 12%, transparent);
  border-color: color-mix(in srgb, var(--hero-accent) 35%, transparent);
}

/* NIL narrative paragraph (replaces factor table for non-admins) */
.nil-narrative{
  margin:14px 0 0;
  padding:14px 16px;
  background:rgba(255,255,255,.03);
  border-left:3px solid var(--nil-c, var(--accent));
  border-radius:0 8px 8px 0;
  font-size:.92rem;
  line-height:1.55;
  color:var(--text);
}
.nil-admin-only{
  margin-top:14px;
  border:1px dashed rgba(234,179,8,.3);
  border-radius:6px;
  padding:6px 10px;
  background:rgba(234,179,8,.04);
}
.nil-admin-only summary{
  cursor:pointer;font-size:.78rem;font-weight:700;
  color:#EAB308;letter-spacing:.04em;text-transform:uppercase;
}

/* Reduced-motion respect */
@media (prefers-reduced-motion: reduce) {
  .db2-tag-tp { animation: none; }
}

/* Mobile */
@media (max-width:540px){
  .db2-header{flex-direction:column;align-items:flex-start;gap:10px}
  .db2-tab-bar{width:100%;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .db2-tab{flex:0 0 auto;font-size:.78rem;padding:6px 12px}
  .db2-tag{font-size:.65rem;padding:1px 4px}
}

/* DB v2 — 10-column grid (placeholder, avatar, name, sport, pos, class, stars, rating, rank, pipeline) */
.db2-row{
  grid-template-columns: 30px 44px 1fr 110px 70px 60px 80px 70px 70px 100px !important;
}
.db2-header{
  grid-template-columns: 30px 44px 1fr 110px 70px 60px 80px 70px 70px 100px !important;
}
@media (max-width:760px){
  .db2-row{ grid-template-columns: 30px 36px 1fr 80px 60px 80px 100px !important; }
  .db2-row > :nth-child(8), .db2-row > :nth-child(9), .db2-row > :nth-child(10),
  .db2-header > :nth-child(8), .db2-header > :nth-child(9), .db2-header > :nth-child(10){ display:none !important; }
}

/* ══════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION PASS (v87)
   Touch targets, font sizes, safe areas, responsive polish.
   Scoped to max-width:768px and max-width:480px.
   ══════════════════════════════════════════════════════════════ */

/* ── A. STOP iOS ZOOM ON FOCUS ─────────────────────────────────
   iOS Safari zooms when input font-size < 16px. Force 16px on all
   text inputs at mobile widths to kill the auto-zoom behavior. */
@media (max-width:768px){
  input[type="text"],input[type="email"],input[type="password"],
  input[type="tel"],input[type="url"],input[type="search"],
  input[type="number"],input[type="date"],input[type="time"],
  input[type="datetime-local"],select,textarea,
  .search-input,.modal-field input,.modal-field select,.modal-textarea,
  .detail-panel input,.detail-panel select,.detail-panel textarea,
  .vibe-search input,.login-field input,.pd-select,
  .gs-input,.ap-modal-input{
    font-size: 16px !important;
  }
}

/* ── B. TOUCH TARGETS — 44px MINIMUM ──────────────────────────
   Apple HIG + WCAG require 44x44px minimum tap targets. */
@media (max-width:768px){
  button,.btn,.btn-primary,.btn-ghost,.btn-secondary,
  .action-btn,.dash-action,.topnav-btn,.icon-btn,
  .ap-btn,.ap-qa-btn,.ap-btn-icon,
  .pipe-btn,.filter-chip,.db2-tab,
  .kanban-btn,.task-btn,.deal-btn{
    min-height: 44px;
  }
  /* Icon-only buttons — square, not stretched */
  .icon-btn,.ap-btn-icon,.topnav-btn.icon-only,
  .modal-close,.detail-close{
    min-width: 44px; min-height: 44px;
  }
  /* Small inline chips/tags are excluded — they're labels, not tap targets */
  .chip.inline,.tag.inline,.ap-tag,.db2-tag{ min-height: auto; }
}

/* ── C. SAFE AREA INSETS (notched phones) ─────────────────────
   iPhone X+ needs bottom padding to clear the home indicator.   */
@media (max-width:768px){
  .modal,.floating-modal .modal,.ap-modal,.detail-panel{
    padding-bottom: calc(16px + env(safe-area-inset-bottom,0px)) !important;
  }
  .topnav{ padding-top: calc(8px + env(safe-area-inset-top,0px)); }
  .bottom-nav,.ap-quick-actions{
    padding-bottom: calc(8px + env(safe-area-inset-bottom,0px));
  }
}

/* ── D. DASHBOARD / HOME TIGHTENING ────────────────────────────*/
@media (max-width:480px){
  .dash-stat-card{ padding: 10px !important; }
  .dash-stat-card .num,.stat-num{
    font-size: 1.4rem !important; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
  }
  .dash-stat-card .label,.stat-label{ font-size: .7rem !important; }
  .page-head{ padding: 12px 14px !important; }
  .page-head h2{ font-size: 17px !important; line-height: 1.2; }
  .apps-grid{ gap: 10px !important; }
  .app-card{ padding: 14px !important; }
  .vi-sub-btn{ min-height: 36px; padding: 8px 12px; }
}

/* ── E. PROFILE PAGE MOBILE POLISH ─────────────────────────────*/
@media (max-width:768px){
  /* Tabs — fade hint for horizontal scroll */
  .ap-tabs{
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    mask-image: linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 24px),transparent);
    -webkit-mask-image: linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 24px),transparent);
  }
  .ap-tab{ scroll-snap-align: start; min-height: 44px; }
  /* Quick actions — let them scroll instead of crowding */
  .ap-quick-actions{
    flex-wrap: nowrap !important; overflow-x: auto !important;
    max-height: none !important; -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
  }
  .ap-qa-btn{
    flex: 0 0 auto; scroll-snap-align: start;
    min-height: 44px; padding: 10px 16px; font-size: .85rem;
  }
  /* Hero panels stack cleanly */
  .ap-hero-panels{ display: flex !important; flex-direction: column !important; gap: 12px !important; }
  /* Modal inputs — breathing room */
  .ap-modal-input{ padding: 12px 14px !important; min-height: 44px; }
  .ap-modal{ max-height: 90vh !important; border-radius: 16px 16px 0 0 !important; align-self: flex-end; width: 100% !important; max-width: 100% !important; }
  .ap-modal-overlay{ align-items: flex-end !important; padding: 0 !important; }
  .ap-modal-footer .ap-btn{ min-height: 44px; padding: 0 18px; }
}

/* ── F. PIPELINE BOARD MOBILE ──────────────────────────────────*/
@media (max-width:768px){
  .pipe-board,.kanban-board,.board-columns{
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .pipe-column,.kanban-column{
    scroll-snap-align: start;
    min-width: 280px;
  }
  .pipe-card,.kanban-card{
    padding: 12px; min-height: 60px;
  }
  /* Filter chips — scroll horizontally instead of wrapping */
  .pipe-filters,.filter-chips{
    flex-wrap: nowrap !important; overflow-x: auto;
    -webkit-overflow-scrolling: touch; padding-bottom: 4px;
  }
  .filter-chip{ flex: 0 0 auto; }
}

/* ── G. DATABASE / SPORTS DB MOBILE ────────────────────────────*/
@media (max-width:640px){
  /* Table wrap — better scroll */
  .table-wrap,.db-table-wrap{
    -webkit-overflow-scrolling: touch;
    overflow-x: auto;
  }
  /* Filter drawer — slide in from bottom, not side */
  .db-filter-panel.mobile-open{
    position: fixed; left: 0; right: 0; bottom: 0; top: auto;
    max-height: 75vh; border-radius: 16px 16px 0 0;
    padding-bottom: calc(16px + env(safe-area-inset-bottom,0px));
  }
}

/* ── H. NAV / TOPBAR MOBILE ────────────────────────────────────*/
@media (max-width:480px){
  .topnav{ padding-left: 12px !important; padding-right: 12px !important; gap: 8px !important; }
  .topnav-search{ max-width: 140px; }
  .topnav-user-dropdown,.notif-panel,.notif-dropdown{
    right: 8px !important; left: 8px !important;
    max-width: calc(100vw - 16px) !important;
  }
  .topnav-logo{ font-size: 1rem !important; }
  .topnav-btn{ padding: 6px 10px !important; }
}

/* ── I. MODALS — BOTTOM SHEET STYLE ON PHONES ──────────────────
   Full-width modals anchored to bottom feel native on mobile.   */
@media (max-width:480px){
  .modal-overlay,.floating-modal{
    align-items: flex-end !important;
    padding: 0 !important;
  }
  .modal-overlay .modal,.floating-modal .modal{
    width: 100% !important; max-width: 100% !important;
    border-radius: 16px 16px 0 0 !important;
    max-height: 90vh !important;
    padding-bottom: calc(20px + env(safe-area-inset-bottom,0px)) !important;
  }
  .modal .form-grid{ grid-template-columns: 1fr !important; }
}

/* ── J. GLOBAL SEARCH MOBILE ───────────────────────────────────*/
@media (max-width:640px){
  .gs-overlay{ padding-top: 8vh !important; padding-left: 12px; padding-right: 12px; }
  .gs-panel{ width: 100% !important; max-width: 100% !important; }
  .gs-input{ padding: 14px 16px !important; }
  .gs-result{ padding: 12px !important; min-height: 44px; }
}

/* ── K. DETAIL PANEL — FULL SCREEN ON PHONES ───────────────────*/
@media (max-width:640px){
  .detail-panel{
    top: 0 !important; width: 100% !important;
    padding-top: calc(16px + env(safe-area-inset-top,0px)) !important;
  }
  .detail-close{ top: calc(12px + env(safe-area-inset-top,0px)) !important; }
}

/* ── L. REMOVE TAP HIGHLIGHT + SMOOTH SCROLL ───────────────────*/
@media (max-width:768px){
  *{ -webkit-tap-highlight-color: transparent; }
  button,a,.clickable{ -webkit-tap-highlight-color: rgba(224,32,32,.15); }
  body,html{ -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  /* Smoother momentum scroll everywhere */
  .scroll-area,.panel-body,.modal-body,.detail-panel,
  .gs-results,.pipe-board,.kanban-board,.table-wrap{
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
}

/* ── M. FORM POLISH ON PHONES ──────────────────────────────────*/
@media (max-width:768px){
  label{ font-size: .8rem; }
  .form-field{ margin-bottom: 14px; }
  /* Selects keep native chevron for better UX on phones */
  select{ background-position: right 12px center !important; padding-right: 36px !important; }
  /* Textareas — more room to breathe */
  textarea{ min-height: 80px; }
}

/* ── N. STICKY HEADERS DON'T EAT SCROLL ROOM ───────────────────*/
@media (max-width:640px){
  .page-head{ position: relative !important; }
  .sub-nav,.tab-bar{ position: sticky; top: 0; z-index: 10; }
}

/* ── O. BUTTON SPACING FOR THUMBS ──────────────────────────────*/
@media (max-width:480px){
  .btn-row,.action-row,.modal-footer{
    gap: 10px !important;
  }
  .btn-row .btn,.action-row .btn,.modal-footer .btn{
    flex: 1; min-height: 44px;
  }
}
