/* Shared admin layout; public pages do not load this stylesheet. */
.admin-page .recording-manager-actions [data-refresh-recording] { color: var(--admin-purple-dark); background: var(--admin-purple-soft); border-color: var(--admin-line-strong); }
.admin-page .resource-refresh-dialog { width: min(560px, calc(100% - 30px)); max-height: calc(100% - 30px); }
.admin-page .resource-refresh-name { margin: 0; color: var(--admin-ink-soft); font: 600 14px/1.7 var(--body); overflow-wrap: anywhere; }
.admin-page .resource-refresh-help { margin: -7px 0 0; color: var(--admin-muted); font-size: 12px; line-height: 1.7; }
.admin-page .resource-refresh-options { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.admin-page .resource-refresh-options legend { padding: 0 0 10px; color: var(--admin-muted); font-size: 12px; }
.admin-page .resource-refresh-options label { position: relative; display: flex; flex: 1 1 auto; align-items: center; gap: 8px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--admin-line-strong); border-radius: 9px; background: var(--admin-paper); cursor: pointer; }
.admin-page .resource-refresh-options input[type="radio"] { flex: none; width: 16px; height: 16px; margin: 0; padding: 0; accent-color: var(--admin-purple-dark); }
.admin-page .resource-refresh-options input:checked + span { color: var(--admin-purple-dark); font-weight: 650; }
.admin-page .resource-refresh-options:disabled label { opacity: .65; cursor: wait; }
.admin-page .resource-refresh-options label:focus-within { outline: 2px solid var(--admin-purple); outline-offset: 2px; }
.admin-page .resource-refresh-feedback:empty, .admin-page #resource-refresh-status:empty, .admin-page #resource-refresh-results:empty { display: none; }
.admin-page #resource-refresh-status { margin: 0; color: var(--admin-ink-soft); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.admin-page #resource-refresh-results { display: grid; gap: 9px; margin-top: 12px; }
.admin-page .resource-refresh-result { padding: 13px 15px; border: 1px solid var(--admin-line); border-radius: 10px; }
.admin-page .resource-refresh-result > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.admin-page .resource-refresh-result strong { font-size: 13px; }
.admin-page .resource-refresh-result span { padding: 2px 8px; border-radius: 5px; color: var(--admin-muted); background: var(--admin-bg); font-size: 11px; }
.admin-page .resource-refresh-result p { margin: 6px 0 0; color: var(--admin-muted); font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.admin-page .resource-refresh-result[data-state="refreshed"] span { color: var(--admin-green); background: var(--admin-green-soft); }
.admin-page .resource-refresh-result[data-state="not_found"] span { color: var(--admin-amber); background: var(--admin-amber-soft); }
.admin-page .resource-refresh-result[data-state="failed"] span { color: var(--admin-red); background: var(--admin-red-soft); }
.admin-page .resource-refresh-dialog button:focus-visible, .admin-page [data-refresh-recording]:focus-visible { outline: 2px solid var(--admin-purple); outline-offset: 3px; }
.admin-page .resource-refresh-dialog button:disabled { opacity: .6; cursor: wait; }
.admin-page .resource-refresh-dialog .dialog-head button { width: 44px; height: 44px; flex: none; }
.admin-page .resource-refresh-dialog .form-foot > button { min-height: 44px; }
@media (max-width: 620px) {
  .admin-page .recording-manager-actions { justify-content: flex-start; }
  .admin-page .recording-manager-actions [data-refresh-recording] { min-height: 44px; }
  .admin-page .resource-refresh-dialog form { padding: 20px; }
  .admin-page .resource-refresh-dialog .form-foot { flex-direction: row; align-items: center; }
  .admin-page .resource-refresh-dialog .form-foot .primary-button { width: auto; flex: 1; }
}
.admin-page .flv-auto-panel { padding: 20px 24px; margin-bottom: 20px; border: 1px solid var(--admin-line); border-radius: 16px; background: var(--admin-paper); }
.admin-page .flv-auto-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.admin-page .flv-auto-heading > div:first-child { min-width: 0; }
.admin-page .flv-auto-heading strong { font-size: 16px; color: var(--admin-ink); }
.admin-page .flv-auto-panel p { margin: 8px 0 0; color: var(--admin-muted); font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.admin-page .flv-auto-panel [data-index-auto-message] { border-top: 1px solid var(--admin-line); margin-top: 16px; padding-top: 12px; }
.admin-page .flv-auto-panel [data-index-auto-counts] { font-variant-numeric: tabular-nums; color: var(--admin-purple-dark); }
.admin-page .flv-auto-panel [data-index-auto-counts]:not([hidden]) { display: flex; flex-wrap: wrap; gap: 2px 6px; }
.admin-page .flv-auto-panel [data-index-auto-counts] span { white-space: nowrap; }
.admin-page .flv-auto-heading .flv-index-actions { flex-shrink: 0; }
.admin-page .flv-index-row { display: flex; align-items: center; gap: 16px; padding-top: 14px; margin-top: 14px; border-top: 1px solid var(--admin-line); }
.admin-page .flv-index-copy { display: grid; flex: 1; min-width: 0; gap: 5px; font-size: 12px; color: var(--admin-muted); overflow-wrap: anywhere; }
.admin-page .flv-index-copy b { color: var(--admin-ink-soft); font-size: 13px; }
.admin-page .flv-index-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-page .flv-index-actions button { min-height: 38px; padding: 7px 14px; border: 1px solid var(--admin-line); border-radius: 10px; background: var(--admin-purple-soft); color: var(--admin-purple); font: inherit; font-size: 12px; white-space: nowrap; cursor: pointer; transition: background .18s ease, border-color .18s ease; }
.admin-page .flv-index-actions button:hover:not(:disabled) { background: #e8dcf1; border-color: var(--admin-purple); }
.admin-page .flv-index-actions button:focus-visible { outline: 2px solid var(--admin-purple); outline-offset: 3px; }
.admin-page .flv-index-actions button:disabled { opacity: .6; cursor: wait; }
.admin-page .flv-index-copy progress { width: 100%; height: 6px; accent-color: var(--admin-purple); }
.admin-page .flv-index-row[data-state="failed"] [data-index-message] { color: #ad3e5b; }
@media (max-width: 620px) { .admin-page .flv-index-row { align-items: stretch; flex-direction: column; gap: 10px; } .admin-page .flv-index-actions button { flex: 1; min-height: 44px; } }
@media (max-width: 620px) { .admin-page .flv-auto-panel { padding: 18px; } .admin-page .flv-auto-heading { align-items: stretch; flex-direction: column; gap: 14px; } }
html:has(.admin-page) { min-width: 0; }
.admin-page { --admin-space: 20px; --admin-card-pad: 24px; --admin-radius: 16px; --admin-control-height: 44px; font-size: 14px; }
.admin-page .admin-layout { grid-template-columns: 236px minmax(0, 1fr); }
.admin-page .admin-sidebar { padding: 24px 16px 18px; height: 100dvh; }
.admin-page .admin-brand { padding: 0 10px 20px; }
.admin-page .admin-brand img { width: 42px; height: 42px; }
.admin-page .admin-brand b { font-size: 22px; }
.admin-page #admin-nav { flex: 1; display: flex; flex-direction: column; gap: 4px; padding-bottom: 16px; scrollbar-width: none; }
.admin-page #admin-nav::-webkit-scrollbar { display: none; }
.admin-page .sidebar-label { flex: none; display: block; margin: 20px 13px 8px; color: var(--admin-faint); font-size: 11px; line-height: 1.5; letter-spacing: .12em; }
.admin-page .sidebar-label:first-child { margin-top: 0; }
.admin-page #admin-nav button { flex: none; min-height: 43px; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 10px; border-radius: 9px; padding: 0 12px; }
.admin-page #admin-nav button b { display: block; font-size: 13px; font-weight: 600; }
.admin-page #admin-nav button > span { width: 26px; height: 26px; background: transparent; }
.admin-page #admin-nav button.active::before { display: block; left: 0; top: 12px; bottom: 12px; width: 3px; }
.admin-page #admin-nav button.active > span { border-color: transparent; box-shadow: none; background: transparent; }
.admin-page #admin-nav button:hover { transform: none; }
.admin-page .admin-account-link { display: flex; flex: none; justify-content: space-between; padding: 12px; margin: 0 0 8px; border-top: 1px solid var(--admin-line); background: transparent; color: var(--admin-muted); font-size: 13px; }
.admin-page .admin-account-link:hover, .admin-page .admin-account-link.active { color: var(--admin-purple-dark); background: var(--admin-purple-soft); }
.admin-page .admin-user { flex: none; padding: 10px 10px 0; }
.admin-page .admin-content { padding: 32px clamp(24px, 3vw, 48px) 56px; }
.admin-page .admin-content > * { max-width: 1320px; }
.admin-page .admin-topbar { align-items: center; min-height: 84px; margin-bottom: 28px; padding-bottom: 24px; border-bottom: 1px solid var(--admin-line); }
.admin-page .admin-topbar > div:first-child { min-width: 0; }
.admin-page .admin-topbar h1 { font-size: 28px; line-height: 1.3; letter-spacing: 0; }
.admin-page #panel-description { display: block; margin-top: 8px; color: var(--admin-muted); font-size: 13px; line-height: 1.65; }
.admin-page .admin-topbar p { font-size: 12px; font-weight: 500; margin-bottom: 6px; }
.admin-page .admin-actions, .admin-page #admin-sync-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-page .admin-actions { flex: none; }
.admin-page .admin-actions a, .admin-page .admin-actions button { min-height: 40px; padding: 0 14px; font-size: 13px; }
.admin-page .primary-button { box-shadow: none; background: var(--admin-purple-dark); min-height: var(--admin-control-height); border-radius: 9px; font-size: 13px; }
.admin-page .primary-button:hover { background: #8655a3; box-shadow: none; }
.admin-page .admin-card { border-radius: var(--admin-radius); padding: var(--admin-card-pad); box-shadow: 0 4px 18px rgba(52,38,62,.025); }
.admin-page .card-heading, .admin-page .dialog-head { gap: 16px; align-items: center; }
.admin-page .card-heading > div:first-child { min-width: 0; }
.admin-page .card-heading > div > span, .admin-page .dialog-head > div > span { font-size: 11px; line-height: 1.5; letter-spacing: .08em; }
.admin-page .card-heading h2, .admin-page .dialog-head h2, .admin-page .panel-toolbar h2 { font: 650 18px/1.5 var(--display); margin: 4px 0 0; }
.admin-page .card-heading p, .admin-page .panel-toolbar p { font-size: 13px; line-height: 1.7; margin: 6px 0 0; }
.admin-page .card-heading .switch-control b { font: 600 13px/1.5 var(--body); }
.admin-page .status-pill { min-height: 28px; font: 500 12px/1.5 var(--body) !important; }
.admin-page .panel-toolbar { min-height: 0; padding: 0 0 20px; margin-bottom: var(--admin-space); gap: 16px; }
.admin-page .panel-toolbar > div { min-width: 0; }
.admin-page .panel-toolbar > button { flex-shrink: 0; }
.admin-page .settings-form { gap: var(--admin-space); padding: var(--admin-card-pad); }
.admin-page .settings-group { display: grid; min-width: 0; gap: var(--admin-space); }
.admin-page .settings-form label, .admin-page .streamer-dialog label { min-width: 0; }
.admin-page .settings-form label > span, .admin-page .streamer-dialog label > span { font-size: 13px; }
.admin-page .settings-form label > small { color: var(--admin-muted); font-size: 12px; font-weight: 400; line-height: 1.65; }
.admin-page .settings-form input:not([type="checkbox"]):not([type="radio"]), .admin-page .settings-form select, .admin-page .streamer-dialog input:not([type="checkbox"]):not([type="radio"]) { min-width: 0; height: var(--admin-control-height); font-size: 14px; }
.admin-page .settings-form textarea { min-height: 128px; font-size: 14px; line-height: 1.7; }
.admin-page .form-grid.two { gap: var(--admin-space); align-items: start; }
.admin-page .toggle-label { width: auto; max-width: 100%; line-height: 1.6; }
.admin-page .toggle-label span { min-width: 0; white-space: normal; }
.admin-page .settings-subsection { padding: 20px; gap: 18px; border-radius: 12px; background: #fcfbfd; }
.admin-page .settings-subsection > header { align-items: center; gap: 16px; }
.admin-page .settings-subsection > header > div { min-width: 0; }
.admin-page .settings-subsection > header small { font: 600 11px/1.5 var(--body); letter-spacing: .08em; }
.admin-page .settings-subsection > header h3 { margin: 4px 0 0; font: 650 16px/1.5 var(--display); }
.admin-page .settings-subsection > header p { margin-top: 4px; font-size: 12px; }
.admin-page .form-foot { border-top: 1px solid var(--admin-line); margin-top: 4px; padding-top: 20px; font-size: 12px; line-height: 1.65; }
.admin-page .form-foot > span { min-width: 0; }
.admin-page .form-foot > button { flex: none; }
.admin-page .settings-tabs { display: flex; width: fit-content; max-width: 100%; gap: 4px; padding: 4px; margin-bottom: 20px; border: 1px solid var(--admin-line); border-radius: 12px; background: #efebf3; }
.admin-page .settings-tabs button { min-height: 40px; padding: 0 22px; border-radius: 8px; background: transparent; color: var(--admin-muted); font-size: 13px; font-weight: 600; white-space: nowrap; }
.admin-page .settings-tabs button[aria-selected="true"] { background: #fff; color: var(--admin-purple-dark); box-shadow: 0 2px 7px rgba(52,38,62,.07); }
.admin-page .settings-save-bar { padding: 16px 0 0; background: #fff; }
.admin-page .compact-field { width: min(100%, 440px); }
.admin-page .preference-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.admin-page .settings-form .preference-row { display: flex; justify-content: space-between; align-items: center; padding: 20px; gap: 16px; border: 1px solid var(--admin-line); border-radius: 12px; background: #fcfbfd; cursor: pointer; }
.admin-page .preference-row > span { display: grid; gap: 5px; min-width: 0; }
.admin-page .preference-row b { font-size: 14px; font-weight: 600; color: var(--admin-ink-soft); }
.admin-page .preference-row small { font-weight: 400; font-size: 12px; color: var(--admin-muted); line-height: 1.65; }
.admin-page .preference-row input { flex: none; width: 19px; height: 19px; padding: 0; accent-color: var(--admin-purple-dark); }
.admin-page .site-control-card, .admin-page .password-card, .admin-page .playback-diagnostic-card { margin: 0; }
.admin-page .site-control-card::before { display: none; }
.admin-page .site-control-layout { grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 20px; align-items: start; }
.admin-page .site-control-config, .admin-page .site-control-state { padding: 20px; }
.admin-page .automatic-fields { grid-template-columns: minmax(0,1fr) minmax(120px,.65fr); }
.admin-page .sync-plan-grid { grid-template-columns: minmax(0,1fr) minmax(0,.9fr); }
.admin-page .sync-cursor-note, .admin-page .site-control-network-note { font-size: 12px; }
.admin-page .welcome-card { min-height: 112px; padding: 24px; border-radius: var(--admin-radius); box-shadow: none; }
.admin-page .welcome-card h2 { font-size: 22px; }
.admin-page .archive-track { display: none; }
.admin-page .metric-grid { gap: 16px; margin-top: 20px; }
.admin-page .metric-grid article { min-height: 128px; border-radius: var(--admin-radius); padding: 20px; box-shadow: none; }
.admin-page .metric-grid article::before { display: none; }
.admin-page .metric-grid strong { font-size: 30px; font-variant-numeric: tabular-nums; }
.admin-page .admin-columns { gap: 20px; margin-top: 20px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.admin-page .signal-visual, .admin-page .archive-ruler { display: none; }
.admin-page .connection-card, .admin-page .recent-card { display: flex; flex-wrap: wrap; align-content: start; gap: 16px; }
.admin-page .connection-card .card-heading, .admin-page .recent-card .card-heading { width: 100%; }
.admin-page .connection-card p, .admin-page .recent-card p { flex: 1 1 200px; margin: 0; align-self: center; font-size: 13px; }
.admin-page .overview-shortcuts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 20px; }
.admin-page .overview-shortcuts button { position: relative; display: grid; gap: 6px; padding: 20px 42px 20px 20px; border: 1px solid var(--admin-line); border-radius: 12px; background: #fff; text-align: left; }
.admin-page .overview-shortcuts span { font-size: 14px; font-weight: 600; }
.admin-page .overview-shortcuts small { color: var(--admin-muted); font-size: 12px; line-height: 1.6; }
.admin-page .overview-shortcuts b { position: absolute; right: 18px; top: 20px; color: var(--admin-purple); }
.admin-page .overview-shortcuts button:hover { border-color: #cdb9d9; background: #fcfaff; }
.admin-page .diagnostic-heading { align-items: flex-start; flex-wrap: wrap; }
.admin-page .diagnostic-heading > div:first-child { flex: 1 1 350px; }
.admin-page .diagnostic-route { margin-top: 24px; }
.admin-page .diagnostic-route section { min-width: 0; }
.admin-page .diagnostic-route section strong { font-size: 25px; }
.admin-page .recording-manager-card, .admin-page .event-log-card { padding: 0; }
.admin-page .recording-manager-search, .admin-page .event-log-filters { padding: 20px 24px; }
.admin-page .recording-manager-item { padding: 20px 24px; }
.admin-page .recording-manager-foot span { text-align: center; line-height: 1.65; }
.admin-page .streamer-admin-item, .admin-page .comment-admin-item { border-radius: var(--admin-radius); box-shadow: none; }
.admin-page .folder-copy { min-width: 0; }
.admin-page .protection-status-grid article { box-shadow: none; background: #fcfbfd; }
.admin-page .toast-region { max-width: calc(100vw - 32px); }
.admin-mobile-bar, .admin-menu-close, .admin-menu-backdrop { display: none; }
@media (max-width: 1180px) and (min-width: 861px) {
  .admin-page .admin-topbar { flex-wrap: wrap; }
  .admin-page .admin-actions { width: 100%; justify-content: flex-start; }
  .admin-page .site-control-layout, .admin-page .sync-plan-grid, .admin-page .binding-grid { grid-template-columns: 1fr; }
  .admin-page .settings-subsection > header { flex-wrap: wrap; }
  .admin-page .diagnostic-route { grid-template-columns: minmax(0,1fr) 24px minmax(0,1fr) 24px minmax(0,1fr); }
}
@media (max-width: 860px) {
  .admin-page .admin-layout { display: block; }
  .admin-page .admin-mobile-bar { position: sticky; top: 0; z-index: 21; display: flex; justify-content: space-between; align-items: center; min-height: 60px; padding: 10px 20px; border-bottom: 1px solid var(--admin-line); background: #fff; }
  .admin-page .admin-mobile-bar > span { font: 700 19px var(--display); color: var(--admin-purple-dark); }
  .admin-page .admin-mobile-bar b { margin-left: 6px; font: 500 12px var(--body); color: var(--admin-muted); }
  .admin-page #admin-menu-toggle { min-height: 40px; padding: 0 12px; border: 1px solid var(--admin-line); border-radius: 9px; color: var(--admin-ink-soft); background: #fff; font-size: 13px; }
  .admin-page #admin-menu-toggle span { margin-left: 8px; }
  .admin-page .admin-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 31; display: flex; width: min(300px,88vw); height: 100dvh; padding: 24px 16px 18px; border-right: 1px solid var(--admin-line); transform: translateX(-100%); visibility: hidden; transition: transform .22s ease, visibility .22s; background: #fff; gap: 0; }
  .admin-page .admin-brand span, .admin-page .admin-brand small { display: block; }
  .admin-page .admin-menu-close { display: grid; position: absolute; right: 16px; top: 18px; width: 36px; height: 36px; place-items: center; border-radius: 9px; color: var(--admin-muted); background: #f5f2f7; font-size: 24px; }
  .admin-page #admin-nav { overflow-x: hidden; overflow-y: auto; scrollbar-width: none; }
  .admin-page #admin-nav button i { position: static; min-width: 20px; font-size: 11px; }
  .admin-page .admin-user, .admin-page .admin-user > span { display: flex; }
  .admin-page .admin-menu-backdrop { display: block; position: fixed; inset: 0; z-index: 30; width: 100%; height: 100%; background: rgba(29,22,36,.4); backdrop-filter: blur(2px); }
  .admin-page.admin-menu-open { overflow: hidden; }
  .admin-page.admin-menu-open .admin-sidebar { visibility: visible; transform: translateX(0); }
  .admin-page .admin-content { padding: 24px 20px 40px; }
  .admin-page .admin-topbar { flex-wrap: wrap; gap: 18px; }
  .admin-page .admin-actions { width: 100%; justify-content: flex-start; }
  .admin-page .site-control-layout { grid-template-columns: 1fr; }
  .admin-page .settings-subsection > header { flex-wrap: wrap; }
}
@media (max-width: 620px) {
  .admin-page { --admin-space: 18px; --admin-card-pad: 18px; --admin-radius: 14px; }
  .admin-page .admin-content { padding: 20px 14px 32px; }
  .admin-page .admin-mobile-bar { padding-inline: 14px; }
  .admin-page .admin-topbar { align-items: stretch; margin-bottom: 20px; padding-bottom: 20px; }
  .admin-page .admin-topbar h1 { font-size: 25px; }
  .admin-page .admin-actions a { display: inline-flex; width: auto; min-height: 38px; }
  .admin-page #admin-sync-actions { width: 100%; }
  .admin-page #admin-sync-actions button { flex: 1; }
  .admin-page .admin-columns, .admin-page .overview-shortcuts, .admin-page .preference-grid, .admin-page .sync-plan-grid, .admin-page .form-grid.two { grid-template-columns: 1fr; }
  .admin-page .metric-grid { gap: 12px; margin-top: 16px; }
  .admin-page .metric-grid article { padding: 16px; min-height: 118px; }
  .admin-page .metric-grid strong { font-size: 26px; }
  .admin-page .welcome-card { padding: 20px; }
  .admin-page .welcome-card h2 { font-size: 20px; }
  .admin-page .card-heading { flex-wrap: wrap; }
  .admin-page .settings-subsection, .admin-page .site-control-config { padding: 16px; }
  .admin-page .settings-subsection > header { align-items: flex-start; }
  .admin-page .settings-tabs { width: 100%; gap: 2px; padding: 4px; }
  .admin-page .settings-tabs button { flex: 1; padding: 0 6px; min-height: 42px; font-size: 12px; }
  .admin-page .settings-save-bar { gap: 12px; padding-top: 14px; }
  .admin-page .automatic-fields { grid-template-columns: 1fr; }
  .admin-page .preference-grid { gap: 12px; }
  .admin-page .settings-form .preference-row { padding: 16px; }
  .admin-page .diagnostic-heading > div:first-child { flex-basis: auto; }
  .admin-page .recording-manager-search, .admin-page .recording-manager-item, .admin-page .event-log-filters { padding: 18px; }
  .admin-page .diagnostic-actions { width: 100%; }
  .admin-page .overview-shortcuts { gap: 12px; }
  .admin-page .overview-shortcuts button { padding-block: 16px; }
  .admin-page .folder-copy { display: block; grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .admin-page *, .admin-page *::before, .admin-page *::after { transition: none !important; animation: none !important; }
}
