/* ── Dashboard Layout ───────────────────────────────────────── */
.tv-dash-page{padding:2.5rem 0 4rem;min-height:calc(100vh - var(--tv-header-h))}
.tv-dash-wrap{max-width:1100px}
.tv-dash-topbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--tv-border-light)}
.tv-dash-user{display:flex;align-items:center;gap:.9rem}
.tv-dash-avatar{width:46px;height:46px;border-radius:9999px;background:var(--tv-grad-cta);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;color:#050c14;flex-shrink:0}
.tv-dash-username{font-weight:700;color:var(--tv-text);font-size:1rem}
.tv-dash-email{font-size:.8rem;color:var(--tv-text-muted)}
.tv-dash-topbar-actions{display:flex;gap:.6rem}

/* Status row */
.tv-dash-status-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
@media(max-width:900px){.tv-dash-status-row{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.tv-dash-status-row{grid-template-columns:1fr}}
.tv-status-card{border-radius:var(--tv-radius);border:1px solid var(--tv-border-light);background:var(--tv-grad-card);padding:1.1rem 1.25rem}
.tv-status-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--tv-text-muted);margin-bottom:.4rem;font-weight:600}
.tv-status-val{font-size:1rem;font-weight:700;color:var(--tv-text)}
.tv-status-sub{font-size:.75rem;color:var(--tv-text-muted);margin-top:.2rem}
.tv-status--success{color:#34d399}
.tv-status--warning{color:#fbbf24}
.tv-status--danger{color:#f87171}
.tv-status--neutral{color:var(--tv-text-muted)}

/* Main grid */
.tv-dash-main{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;align-items:start}
@media(max-width:900px){.tv-dash-main{grid-template-columns:1fr}}

.tv-dash-panel{border-radius:var(--tv-radius-lg);border:1px solid var(--tv-border-light);background:rgba(10,18,32,.7);padding:1.5rem;margin-bottom:1.25rem}
.tv-dash-panel h2{font-size:1rem;font-weight:700;color:var(--tv-text);margin-bottom:.5rem}
.tv-dash-panel p{font-size:.85rem;color:var(--tv-text-muted);line-height:1.6;margin-bottom:.5rem}

.tv-dash-empty{text-align:center;padding:1.5rem 0;display:flex;flex-direction:column;align-items:center;gap:.75rem}
.tv-dash-empty p{color:var(--tv-text-muted);font-size:.85rem}

/* Tool access */
.tv-tool-access-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
@media(max-width:480px){.tv-tool-access-grid{grid-template-columns:1fr}}
.tv-tool-access-item{display:flex;align-items:center;gap:.55rem;padding:.65rem .9rem;border-radius:var(--tv-radius-sm);border:1px solid var(--tv-border-light);font-size:.83rem;background:rgba(10,18,32,.5)}
.tv-tool-access-item.active{border-color:rgba(31,184,166,.25);background:rgba(31,184,166,.06);color:var(--tv-text)}
.tv-tool-access-item.locked{color:var(--tv-text-muted)}
.tv-tool-status-icon{flex-shrink:0;color:var(--tv-primary)}
.tv-tool-access-item.locked .tv-tool-status-icon{color:var(--tv-text-dim)}
.tv-tool-access-name{flex:1;font-weight:500}
.tv-tool-upgrade-link{font-size:.72rem;color:var(--tv-primary);white-space:nowrap;flex-shrink:0}

/* Quick links */
.tv-quick-links{display:flex;flex-direction:column;gap:.5rem}
.tv-quick-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--tv-radius-sm);border:1px solid var(--tv-border-light);background:rgba(10,18,32,.5);color:var(--tv-text-muted);font-size:.85rem;font-weight:500;transition:all .2s}
.tv-quick-link:hover{border-color:rgba(31,184,166,.3);background:rgba(31,184,166,.06);color:var(--tv-primary)}
.tv-quick-link svg{flex-shrink:0;color:var(--tv-primary)}

/* Dashboard ref */
.tv-dash-ref-label{font-size:.78rem;color:var(--tv-text-muted);margin-bottom:.4rem}

/* ── Admin Panel ────────────────────────────────────────────── */
.tv-admin-page{padding:2.5rem 0 4rem;min-height:calc(100vh - var(--tv-header-h))}
.tv-admin-wrap{max-width:1200px}
.tv-admin-header{margin-bottom:2rem}
.tv-admin-header h1{font-size:1.75rem;font-weight:800;color:var(--tv-text);margin-bottom:.35rem;letter-spacing:-.02em}
.tv-admin-header p{color:var(--tv-text-muted);font-size:.9rem}

.tv-admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}
@media(max-width:640px){.tv-admin-stats{grid-template-columns:1fr}}
.tv-admin-stat{border-radius:var(--tv-radius);border:1px solid var(--tv-border-light);background:var(--tv-grad-card);padding:1.25rem;text-align:center}
.tv-admin-stat .val{display:block;font-size:2rem;font-weight:800;color:var(--tv-text)}
.tv-admin-stat .lbl{display:block;font-size:.78rem;color:var(--tv-text-muted);margin-top:.25rem;text-transform:uppercase;letter-spacing:.1em}

.tv-admin-panel{border-radius:var(--tv-radius-lg);border:1px solid var(--tv-border-light);background:rgba(10,18,32,.7);padding:1.5rem}
.tv-admin-panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem}
.tv-admin-panel-head h2{font-size:1.1rem;font-weight:700;color:var(--tv-text)}
.tv-admin-search-wrap{display:flex;gap:.6rem}
.tv-admin-input{padding:.55rem .9rem;border-radius:var(--tv-radius-sm);border:1px solid var(--tv-border-light);background:rgba(5,12,20,.7);color:var(--tv-text);font-size:.85rem;min-width:220px;outline:none}
.tv-admin-input:focus{border-color:rgba(31,184,166,.4)}
.tv-admin-select{width:100%;padding:.55rem .9rem;border-radius:var(--tv-radius-sm);border:1px solid var(--tv-border-light);background:rgba(5,12,20,.8);color:var(--tv-text);font-size:.88rem;outline:none}
.tv-admin-select:focus{border-color:rgba(31,184,166,.4)}

.tv-admin-table-wrap{overflow-x:auto;border-radius:var(--tv-radius-sm);border:1px solid var(--tv-border-light);margin-bottom:1rem}
.tv-admin-table{width:100%;border-collapse:collapse;font-size:.82rem}
.tv-admin-table th{padding:.75rem 1rem;text-align:left;color:var(--tv-text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--tv-border-light);background:rgba(5,12,20,.5);white-space:nowrap}
.tv-admin-table td{padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.04);color:var(--tv-text-muted);vertical-align:middle}
.tv-admin-table tr:last-child td{border-bottom:none}
.tv-admin-table tr:hover td{background:rgba(31,184,166,.03)}
.tv-admin-loading{text-align:center;color:var(--tv-text-muted);padding:2rem}

.tv-admin-pagination{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin-top:1rem}
.tv-page-btn{padding:.4rem .85rem;border-radius:var(--tv-radius-sm);border:1px solid var(--tv-border-light);background:transparent;color:var(--tv-text-muted);font-size:.8rem;cursor:pointer;transition:all .2s}
.tv-page-btn:hover,.tv-page-btn.active{background:var(--tv-primary);color:#050c14;border-color:var(--tv-primary)}

/* Status badges in table */
.tv-admin-badge{display:inline-block;padding:.15rem .55rem;border-radius:4px;font-size:.72rem;font-weight:600}
.tv-admin-badge--active{background:rgba(16,185,129,.15);color:#34d399}
.tv-admin-badge--pending{background:rgba(245,158,11,.15);color:#fbbf24}
.tv-admin-badge--inactive,.tv-admin-badge--signup,.tv-admin-badge--not_started{background:rgba(255,255,255,.06);color:var(--tv-text-muted)}
.tv-admin-badge--granted,.tv-admin-badge--done{background:rgba(31,184,166,.15);color:var(--tv-primary)}
.tv-admin-badge--suspended{background:rgba(239,68,68,.15);color:#f87171}

/* Modal */
.tv-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:1.5rem}
.tv-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(6px)}
.tv-modal-box{position:relative;z-index:1;background:#0a1220;border:1px solid var(--tv-border);border-radius:var(--tv-radius-lg);width:100%;max-width:480px;box-shadow:var(--tv-shadow-glow)}
.tv-modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--tv-border-light)}
.tv-modal-head h3{font-size:1.05rem;font-weight:700;color:var(--tv-text)}
.tv-modal-close{background:none;border:none;color:var(--tv-text-muted);font-size:1.1rem;cursor:pointer;padding:.25rem;line-height:1}
.tv-modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}
.tv-modal-body .tv-form-group label{font-size:.82rem;font-weight:600;color:var(--tv-text-muted);margin-bottom:.35rem}
.tv-modal-foot{display:flex;justify-content:flex-end;gap:.65rem;padding:1.1rem 1.5rem;border-top:1px solid var(--tv-border-light)}
