.btn{min-height:var(--button-height);display:inline-flex;align-items:center;justify-content:center;gap:.46rem;padding:.62rem .95rem;border-radius:var(--radius);border:1px solid transparent;font-weight:800;line-height:1.1;letter-spacing:0;white-space:normal;transition:transform var(--speed) ease,border-color var(--speed) ease,background var(--speed) ease,color var(--speed) ease,box-shadow var(--speed) ease}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.99)}
.btn:disabled,.btn.disabled,[aria-disabled=true].btn{pointer-events:none;opacity:.54}
.btn-sm{min-height:34px;padding:.45rem .68rem;font-size:.8rem}
.btn-brass,.btn-primary{color:#160b03;border-color:rgba(255,145,56,.72);background:linear-gradient(135deg,var(--signal-hover),var(--signal));box-shadow:0 10px 26px rgba(255,122,26,.22)}
.btn-brass:hover,.btn-primary:hover{color:#120801;border-color:rgba(255,185,112,.86);background:linear-gradient(135deg,#ffad61,var(--signal-hover));box-shadow:0 16px 34px rgba(255,122,26,.28)}
.btn-darkline,.btn-secondary,.btn-surface{color:var(--text-soft);border-color:var(--line);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018))}
.btn-darkline:hover,.btn-secondary:hover,.btn-surface:hover,.btn-darkline.active{color:var(--text);border-color:rgba(37,200,232,.42);background:rgba(37,200,232,.11);box-shadow:0 10px 24px rgba(37,200,232,.10)}
.btn-danger-soft,.btn-danger{color:#ffd7da;border-color:rgba(255,90,99,.34);background:rgba(255,90,99,.13)}
.btn-danger-soft:hover,.btn-danger:hover{color:#fff;border-color:rgba(255,90,99,.70);background:rgba(255,90,99,.22)}
.button-link{padding:0;border:0;color:var(--text-soft);background:transparent;font-weight:800}
.button-link:hover,.signin-link:hover{color:var(--signal-hover)}
.btn:focus-visible,.primary-nav a:focus-visible,.workspace-nav-item:focus-visible,.admin-sidebar a:focus-visible,.channel-tabs button:focus-visible,.avatar-button:focus-visible,.auth-tab:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;box-shadow:var(--focus)}
.panel,.route-panel,.admin-panel{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,rgba(21,29,38,.94),rgba(12,17,24,.94));box-shadow:var(--shadow-sm)}
.route-card{border-radius:var(--radius-md)}
.status-chip,.creator-badge,.identity-badge,.menu-badge,.nav-count,.account-status{min-height:24px;display:inline-flex;align-items:center;justify-content:center;gap:.36rem;width:max-content;max-width:100%;padding:.24rem .56rem;border:1px solid var(--line);border-radius:999px;color:var(--text-soft);background:rgba(255,255,255,.045);font-size:.72rem;font-weight:850;line-height:1.15;text-transform:uppercase;white-space:nowrap}
.status-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.82}
.creator-badge::before,.identity-badge::before,.menu-badge::before,.nav-count::before,.account-status::before{content:none}
.status-chip.state-success,.status-chip.state-ok,.status-chip.state-clear,.status-chip.success,.status-chip.state-ready,.status-chip.state-published,.status-chip.state-active,.status-chip.state-done,.identity-badge.verified,.creator-badge.verified,.account-status.verified{color:#bff8d3;border-color:rgba(67,209,125,.34);background:rgba(67,209,125,.11)}
.status-chip.state-warning,.status-chip.state-retry,.status-chip.warning,.status-chip.state-queued,.status-chip.state-retrying,.status-chip.state-review,.status-chip.state-under-review{color:#ffe3a6;border-color:rgba(255,194,71,.38);background:rgba(255,194,71,.12)}
.status-chip.state-error,.status-chip.state-removed,.status-chip.state-restricted,.status-chip.danger,.status-chip.state-failed,.status-chip.state-unrecoverable,.status-chip.state-blocked,.status-chip.state-banned,.status-chip.state-suspended,.status-chip.state-cancelled{color:#ffc1c6;border-color:rgba(255,90,99,.42);background:rgba(255,90,99,.13)}
.status-chip.state-uploading,.status-chip.state-override,.status-chip.info,.status-chip.state-public,.status-chip.state-running,.status-chip.state-processing,.status-chip.state-uploaded,.creator-badge.creator,.identity-badge.creator{color:#baf4ff;border-color:rgba(37,200,232,.36);background:rgba(37,200,232,.12)}
.status-chip.money,.status-chip.state-monetized,.creator-badge.monetized,.identity-badge.money,.identity-badge.admin{color:#ffd4b0;border-color:rgba(255,122,26,.42);background:rgba(255,122,26,.14)}
.status-chip.state-private,.status-chip.state-unlisted,.creator-badge.rising,.identity-badge.rising,.identity-badge.staff{color:#d9deea;border-color:rgba(176,183,195,.25);background:rgba(176,183,195,.09)}
.state-running::before,.state-processing::before,.state-queued::before,.state-retrying::before{animation:statusPulse 1.35s ease-in-out infinite}
@keyframes statusPulse{50%{opacity:.28;transform:scale(.66)}}
.form-control,.form-select,textarea.form-control{min-height:var(--input-height);border:1px solid rgba(247,248,250,.13);border-radius:var(--radius);color:var(--text);background-color:#0c1219;box-shadow:none}
.form-control::placeholder{color:#697483}
.form-control:focus,.form-select:focus{color:var(--text);border-color:rgba(37,200,232,.62);background-color:#0f1720;box-shadow:var(--focus)}
.form-control.is-valid{border-color:rgba(67,209,125,.64);background-image:none}
.form-control.is-invalid{border-color:rgba(255,90,99,.72);background-image:none}
label{color:var(--text-soft);font-size:.92rem;font-weight:750}
.form-field,.vertical-form{display:grid;gap:var(--space-3)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
.form-grid>div,.form-grid>label{display:grid;gap:var(--space-2)}
.span-2{grid-column:1/-1}
.label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}
.label-row>span,.field-status,.form-grid small,.vertical-form small{color:var(--muted-2);font-size:.8rem}
.field-status.is-good{color:var(--green)}
.field-status.is-bad{color:var(--red)}
.check-card,.terms-check,.setting-tile{cursor:pointer}
.check-card,.terms-check{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:rgba(255,255,255,.035)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;margin:2px 0 0;accent-color:var(--signal)}
.empty-state,.empty-inline{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-7);border:1px dashed rgba(37,200,232,.28);border-radius:var(--radius-lg);color:var(--muted);text-align:center;background:rgba(37,200,232,.045)}
.empty-state.compact,.empty-inline{padding:var(--space-5)}
.empty-state h2,.empty-state h3,.empty-inline h3{margin:0;color:var(--text)}
.empty-state p,.empty-inline p{max-width:520px;margin:0}
.nav-ring{width:48px;height:48px;display:inline-block;border:2px solid rgba(37,200,232,.36);border-radius:50%;background:linear-gradient(var(--cyan),var(--cyan)) center / 2px 70% no-repeat,linear-gradient(90deg,var(--cyan),var(--cyan)) center / 70% 2px no-repeat;box-shadow:0 0 0 8px rgba(37,200,232,.06)}
.table-responsive{overflow-x:auto;border-radius:var(--radius-lg)}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text-soft);--bs-table-border-color:transparent;margin:0}
.account-table,.studio-table,.admin-table{border-collapse:separate;border-spacing:0 3px}
.account-table thead th,.studio-table thead th,.admin-table thead th{padding:.66rem .78rem;border:0;color:var(--muted);background:#0d141c;font-size:.76rem;font-weight:850;text-transform:uppercase}
.account-table tbody tr,.studio-table tbody tr,.admin-table tbody tr{background:rgba(255,255,255,.035);transition:background var(--speed) ease,transform var(--speed) ease}
.account-table tbody tr:hover,.studio-table tbody tr:hover,.admin-table tbody tr:hover{background:rgba(37,200,232,.07);transform:translateY(-1px)}
.account-table tbody td,.studio-table tbody td,.admin-table tbody td{padding:.55rem .7rem;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);vertical-align:middle}
.account-table tbody td:first-child,.studio-table tbody td:first-child,.admin-table tbody td:first-child{border-left:1px solid var(--line-soft);border-radius:var(--radius-md) 0 0 var(--radius-md)}
.account-table tbody td:last-child,.studio-table tbody td:last-child,.admin-table tbody td:last-child{border-right:1px solid var(--line-soft);border-radius:0 var(--radius-md) var(--radius-md) 0}
td>span:not(.status-chip),td small{display:block;margin-top:.22rem;color:var(--muted-2);font-size:.78rem;line-height:1.35}
.table-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.table-video{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:var(--space-3);min-width:260px}
.table-video img{width:92px;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:#05080c}
.table-video strong,td strong{display:block;color:var(--text);font-size:.92rem;line-height:1.35}
.inline-form{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}
.dropdown-menu{border:1px solid rgba(247,248,250,.14);border-radius:var(--radius-lg);color:var(--text);background:#0c1219;box-shadow:var(--shadow-lg)}
.dropdown-item{color:var(--text-soft)}
.dropdown-item:hover,.dropdown-item:focus{color:var(--text);background:rgba(37,200,232,.10)}
.tubirate-toasts{top:76px;width:min(390px,calc(100vw - 1rem))}
.tubirate-toast{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--text);background:var(--surface-2);box-shadow:var(--shadow-md)}
.tubirate-toast .toast-header{color:var(--text);border-bottom:1px solid var(--line-soft);background:rgba(255,255,255,.03)}
.toast-dot{width:9px;height:9px;margin-right:var(--space-2);border-radius:50%;background:var(--cyan)}
.toast-success .toast-dot{background:var(--green)}
.toast-error .toast-dot{background:var(--red)}
.toast-warning .toast-dot{background:var(--amber)}
.toast-body-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.toast-undo-button{border:0;background:transparent;color:var(--cyan);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.toast-undo-button:hover,.toast-undo-button:focus-visible{color:var(--text);text-decoration:underline}
.card-dismissed{opacity:0;transform:translateY(6px) scale(.98);transition:opacity var(--speed) ease,transform var(--speed) ease}


.badge-row{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);max-width:100%;vertical-align:middle}
.cell-stack{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}
.icon-frame{--icon-size:32px;display:inline-flex;align-items:center;justify-content:center;width:var(--icon-size);height:var(--icon-size);flex:0 0 var(--icon-size);line-height:1;overflow:hidden;border-radius:var(--radius);color:var(--cyan)}
.icon-frame>.ui-icon,.kpi-icon>.ui-icon{display:block;max-width:65%;max-height:65%;width:20px;height:20px;flex-shrink:0}
.icon-frame-xs{--icon-size:20px}
.icon-frame-sm{--icon-size:28px}
.icon-frame-md{--icon-size:36px}
.icon-frame-lg{--icon-size:44px}
.form-grid label,.vertical-form>label{display:grid;gap:var(--space-2);min-width:0}
.form-grid>div>label{display:block;margin-bottom:var(--space-2)}
.form-grid small,.vertical-form small{margin-top:var(--space-1);color:var(--muted)}
[data-form-feedback]{font-size:.82rem;color:var(--muted)}
[data-form-feedback][data-state=error]{color:var(--red)}
[data-form-feedback][data-state=success]{color:var(--green)}

.list-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:.82rem}
.pagination-links{display:flex;gap:4px;flex-wrap:wrap}.pagination-links a,.list-pagination button,.list-pagination select{padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text)}
.pagination-links [aria-current=page]{border-color:var(--cyan);color:var(--cyan)}
.session-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-block:16px}.private-ip{display:grid;gap:4px;overflow-wrap:anywhere}.private-ip>span,.private-ip small{color:var(--muted);font-size:.8rem}.private-ip details{font-size:.8rem}.private-ip dl{display:grid;grid-template-columns:auto 1fr;gap:6px;margin-top:8px}.private-ip dd{margin:0}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}

/* Consent prompt: compact floating preference card, never a raw full-width footer block. */
.consent-banner{position:fixed;left:18px;bottom:18px;z-index:1090;width:min(620px,calc(100vw - 36px));display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px 14px;border:1px solid rgba(37,200,232,.20);border-radius:14px;background:linear-gradient(145deg,rgba(16,23,32,.98),rgba(8,12,18,.98));box-shadow:0 24px 70px rgba(0,0,0,.54),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(18px)}
.consent-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,122,26,.28);border-radius:11px;color:var(--signal);background:rgba(255,122,26,.08)}
.consent-icon .ui-icon{width:21px;height:21px}
.consent-copy{min-width:0}
.consent-copy strong{display:block;margin-bottom:2px;color:var(--text);font-size:.86rem;font-weight:900}
.consent-copy p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.4}
.consent-copy a{display:inline-block;margin-top:3px;color:var(--cyan);font-size:.68rem;font-weight:800}
.consent-copy a:hover{color:#a9f3ff}
.consent-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.consent-actions .btn{min-height:34px;padding:.46rem .68rem;font-size:.72rem}

/* 2026-09-08 — consent card specificity guard against framework/footer styles. */
.public-body .consent-banner{display:grid;position:fixed;left:18px;bottom:18px;z-index:1090;width:min(620px,calc(100vw - 36px));grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px 14px;border:1px solid rgba(37,200,232,.20);border-radius:14px;background:linear-gradient(145deg,rgba(16,23,32,.98),rgba(8,12,18,.98));box-shadow:0 24px 70px rgba(0,0,0,.54)}
.public-body .consent-banner .consent-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}


/* Fast search discovery ---------------------------------------------------- */
.global-search{position:relative}
.global-search-suggestions{position:absolute;z-index:1080;left:0;right:0;top:calc(100% + 8px);padding:6px;background:rgba(10,16,20,.98);border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 18px 48px rgba(0,0,0,.36);max-height:360px;overflow:auto}
.global-search-suggestion{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--text-primary,#f5f7f8)}
.global-search-suggestion:hover,.global-search-suggestion:focus{background:rgba(39,190,221,.09)}
.global-search-suggestion span{text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;color:var(--text-muted,#82919a)}
.global-search-suggestion strong{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Shared avatar sizing belongs to the global component layer. Several admin and
   workspace pages render channel avatars without loading video.css; keeping the
   geometry here prevents intrinsic image dimensions from blowing up layouts. */
.avatar,.channel-avatar-fallback,.workspace-avatar,.watch-avatar,.comment-avatar,.creator-discovery-avatar{display:grid;place-items:center;overflow:hidden;flex:0 0 auto;border:1px solid rgba(37,200,232,.22);border-radius:50%;color:#071014;background:linear-gradient(135deg,var(--cyan),var(--signal));font-weight:900;object-fit:cover}
.avatar{width:38px;height:38px;font-size:.9rem}
.avatar img,.workspace-avatar img,.watch-avatar img,.comment-avatar img,.creator-discovery-avatar img{width:100%;height:100%;object-fit:cover}
.table-identity>.avatar{width:38px;height:38px;flex:0 0 38px}
.workspace-profile>.workspace-avatar{width:50px;height:50px;flex:0 0 50px}
