@font-face {
  font-family: 'GMarketSans';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansLight.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'GMarketSans';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansMedium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'GMarketSans';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansBold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root{
  --bg:#f7f7f5;
  --surface:#ffffff;
  --text:#171717;
  --muted:#767676;
  --line:#e7e7e3;
  --accent:#1f1f1f;
  --soft:#f0f0ed;
  --danger:#9d2b2b;
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'GMarketSans', Pretendard, 'Pretendard Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans KR', sans-serif;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.site-header{
  position:sticky; top:0; z-index:20;
  background:rgba(247,247,245,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.header-inner,.container,.footer{
  width:min(1180px,calc(100% - 36px));
  margin:0 auto;
}
.header-inner{
  min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brand{display:flex;align-items:baseline;gap:8px;font-weight:700}
.brand-handle{color:var(--muted);font-size:14px;font-weight:500}
.channel-link{
  border:1px solid var(--line);background:var(--surface);border-radius:999px;
  padding:10px 14px;font-size:14px;font-weight:700;
}
.container{padding:78px 0 90px}
.hero{max-width:780px;margin-bottom:42px}
.eyebrow{
  margin:0 0 14px;color:var(--muted);font-size:12px;font-weight:700;
  letter-spacing:.15em;
}
h1{font-size:clamp(36px,6vw,68px);line-height:1.05;letter-spacing:-.05em;margin:0 0 20px}
.hero-description{font-size:17px;color:var(--muted);margin:0;line-height:1.7}
.toolbar{
  display:grid;grid-template-columns:160px minmax(260px,1fr) 190px 190px;
  gap:12px;align-items:end;margin-bottom:22px;
}
.stat-card,.field{
  min-height:80px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);
}
.stat-card{display:flex;flex-direction:column;justify-content:center;padding:14px 18px}
.stat-label,.field>span{font-size:12px;color:var(--muted);font-weight:700}
.stat-card strong{font-size:24px;margin-top:3px}
.field{display:flex;flex-direction:column;padding:11px 14px 10px}
.field input,.field select{
  border:0;outline:0;background:transparent;color:var(--text);padding:8px 0 0;
}
.result-meta{color:var(--muted);font-size:13px;margin:0 2px 16px}
.video-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
}
.video-card{
  overflow:hidden;background:var(--surface);border:1px solid var(--line);
  border-radius:22px;transition:transform .18s ease,border-color .18s ease;
}
.video-card:hover{transform:translateY(-2px);border-color:#d7d7d1}
.thumb{
  aspect-ratio:16/9;background:#e9e9e6;display:block;position:relative;overflow:hidden;
}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-placeholder{
  width:100%;height:100%;display:grid;place-items:center;color:#999;font-size:13px;
}
.card-body{padding:18px}
.card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.card-title{font-size:17px;line-height:1.45;margin:0;font-weight:700;letter-spacing:-.02em}
.badge{
  flex:0 0 auto;border:1px solid var(--line);background:var(--soft);border-radius:999px;
  padding:6px 9px;font-size:11px;font-weight:700;color:#555;
}
.badge.mixed{background:#f3eee7}
.badge.unknown{background:#f3ebeb;color:#783737}
.dates{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0 12px}
.date-chip{
  background:var(--soft);border-radius:999px;padding:6px 9px;font-size:12px;font-weight:700;
}
.source,.note{font-size:13px;color:var(--muted);line-height:1.55;margin:6px 0 0}
.empty-state{
  text-align:center;padding:70px 20px;border:1px dashed #d7d7d1;border-radius:22px;color:var(--muted);
}
.empty-state strong{color:var(--text)}
.admin-panel{
  margin-top:36px;border-top:1px solid var(--line);padding-top:36px;
}
.admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.admin-heading h2{margin:0;font-size:30px}
.admin-card{
  background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;margin:14px 0;
}
.admin-card h3{margin:0 0 12px}
.admin-help{color:var(--muted);font-size:13px;line-height:1.6}
.admin-row,.admin-actions{display:flex;gap:9px;flex-wrap:wrap}
.admin-row input{min-width:260px;flex:1}
.admin-row input,.video-form input,.video-form select{
  border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 11px;
}
.admin-row button,.admin-actions button,.file-button,.video-form button,.ghost-button,.danger-button{
  border:0;border-radius:10px;padding:10px 13px;background:#1f1f1f;color:#fff;font-weight:700;
}
.ghost-button{background:var(--soft)!important;color:#333!important}
.danger-button{background:var(--danger)!important}
.file-button{display:inline-flex;align-items:center;cursor:pointer}
.video-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.video-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.video-form .wide{grid-column:1/-1}
.admin-item{
  display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-top:1px solid var(--line);
}
.admin-item:first-child{border-top:0}
.admin-item small{color:var(--muted)}
.admin-item button{border:0;background:#f1e7e7;color:#822c2c;border-radius:9px;padding:8px 10px}
.footer{
  border-top:1px solid var(--line);min-height:80px;display:flex;align-items:center;justify-content:space-between;
  color:var(--muted);font-size:12px;
}
.admin-entry{border:0;background:transparent;color:#999;padding:8px}
@media (max-width:900px){
  .toolbar{grid-template-columns:1fr 1fr}
  .video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .container{padding-top:48px}
  .toolbar{grid-template-columns:1fr}
  .video-grid{grid-template-columns:1fr}
  .video-form{grid-template-columns:1fr}
  .video-form .wide{grid-column:auto}
  .admin-heading{flex-direction:column}
}


.result-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 2px 16px;
}
.result-header .result-meta{
  margin:0;
}
.view-toggle{
  display:flex;
  gap:6px;
  padding:4px;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:12px;
}
.view-toggle-btn{
  width:36px;
  height:34px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#777;
  font-size:18px;
  line-height:1;
}
.view-toggle-btn.active{
  background:var(--soft);
  color:var(--text);
}
.video-grid.list-view{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.video-grid.list-view .video-card{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:center;
  border-radius:16px;
  overflow:hidden;
}
.video-grid.list-view .video-card:hover{
  transform:none;
}
.video-grid.list-view .thumb{
  width:150px;
  aspect-ratio:16/9;
  height:auto;
}
.video-grid.list-view .card-body{
  padding:14px 16px;
  min-width:0;
}
.video-grid.list-view .card-top{
  align-items:center;
}
.video-grid.list-view .card-title{
  font-size:15px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.video-grid.list-view .badge,
.video-grid.list-view .source,
.video-grid.list-view .note,
.video-grid.list-view .card-link{
  display:none;
}
.video-grid.list-view .dates{
  margin:8px 0 0;
  gap:5px;
}
.video-grid.list-view .date-chip{
  padding:4px 7px;
  font-size:11px;
}
@media (max-width:620px){
  .result-header{
    align-items:center;
  }
  .video-grid.list-view .video-card{
    grid-template-columns:112px minmax(0,1fr);
  }
  .video-grid.list-view .thumb{
    width:112px;
  }
  .video-grid.list-view .card-body{
    padding:10px 12px;
  }
  .video-grid.list-view .card-title{
    font-size:14px;
  }
}


/* UX improvements */
.toolbar{
  grid-template-columns:150px minmax(250px,1.35fr) minmax(150px,.7fr) minmax(155px,.72fr) minmax(170px,.8fr) auto;
}
.reset-filter-button{
  min-height:80px;
  align-self:stretch;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text);
  padding:0 17px;
  font-weight:700;
  white-space:nowrap;
}
.reset-filter-button:hover{
  background:var(--soft);
}
.reset-filter-button:focus-visible,
.view-toggle-btn:focus-visible,
.load-more-button:focus-visible,
.channel-link:focus-visible,
.card-link:focus-visible,
.thumb:focus-visible{
  outline:3px solid rgba(23,23,23,.18);
  outline-offset:2px;
}
.loading-state{
  min-height:160px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:var(--muted);
  font-size:14px;
}
.loading-state[hidden]{display:none}
.loading-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  animation:archivePulse 1.1s ease-in-out infinite;
}
@keyframes archivePulse{
  0%,100%{opacity:.28;transform:scale(.8)}
  50%{opacity:1;transform:scale(1.15)}
}
.load-more-wrap{
  display:flex;
  justify-content:center;
  margin-top:28px;
}
.load-more-button{
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface);
  padding:12px 24px;
  font-weight:700;
  color:var(--text);
}
.load-more-button:hover{background:var(--soft)}
.video-card .card-title a{
  color:inherit;
  text-decoration:none;
}
.video-card .card-title a:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
.result-meta strong{color:var(--text)}
.result-submeta{
  margin-left:6px;
  color:#999;
}
@media (max-width:1080px){
  .toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .reset-filter-button{min-height:80px}
}
@media (max-width:700px){
  .toolbar{grid-template-columns:1fr 1fr}
  .stat-card,.field,.reset-filter-button{min-height:72px}
}
@media (max-width:520px){
  .toolbar{grid-template-columns:1fr}
  .reset-filter-button{min-height:48px}
  .result-header{align-items:flex-start}
}


.settings-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.settings-grid label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:12px;
  font-weight:700;
  color:var(--muted);
}
.settings-grid input{
  border:1px solid var(--line);
  background:#fff;
  border-radius:10px;
  padding:11px 12px;
  color:var(--text);
}
.settings-grid .wide{grid-column:1/-1}
.favicon-row{
  display:flex;
  align-items:center;
  gap:14px;
}
.favicon-preview{
  width:48px;
  height:48px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--soft);
  overflow:hidden;
  font-size:13px;
  color:var(--muted);
}
.favicon-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.sync-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:16px 0;
}
.sync-summary div{
  border:1px solid var(--line);
  border-radius:14px;
  padding:13px 14px;
  background:var(--soft);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.sync-summary span{
  color:var(--muted);
  font-size:11px;
  font-weight:700;
}
.sync-summary strong{
  font-size:21px;
}
.sync-button{
  border:0;
  border-radius:12px;
  padding:13px 18px;
  background:#1f1f1f;
  color:#fff;
  font-weight:700;
}
.sync-button:disabled{
  opacity:.55;
  cursor:wait;
}
.admin-status{
  margin-top:12px;
  min-height:20px;
  font-size:13px;
  line-height:1.55;
  color:var(--muted);
}
.admin-status.success{
  padding:12px 14px;
  border-radius:12px;
  background:#ecf8f0;
  color:#27613a;
}
.admin-status.error{
  padding:12px 14px;
  border-radius:12px;
  background:#faeeee;
  color:#842e2e;
}
.admin-status.loading{
  padding:12px 14px;
  border-radius:12px;
  background:var(--soft);
  color:var(--text);
}
.admin-card code{
  padding:2px 5px;
  border-radius:5px;
  background:var(--soft);
}
@media (max-width:620px){
  .settings-grid{grid-template-columns:1fr}
  .settings-grid .wide{grid-column:auto}
  .sync-summary{grid-template-columns:1fr}
}


/* Channel branding hero */
.hero.hero-branded{
  max-width:none;
  margin-bottom:42px;
}
.hero-banner-wrap{
  position:relative;
  min-height:260px;
  border-radius:30px;
  overflow:hidden;
  background:linear-gradient(135deg,#f2eafd 0%,#ede8ff 35%,#f9f6ff 100%);
  border:1px solid rgba(215,215,209,.9);
  box-shadow:0 22px 60px rgba(106,93,145,.10);
}
.hero-banner-image{
  position:absolute; inset:0;
  background-image:linear-gradient(135deg,#efe9ff 0%,#ece7fa 40%,#faf7ff 100%);
  background-size:cover;
  background-position:center;
  transform:scale(1.01);
}
.hero-banner-image.has-image{filter:saturate(1.02)}
.hero-banner-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.52) 55%,rgba(247,247,245,.92));
}
.hero-profile-row{
  position:relative;
  display:flex;
  align-items:flex-end;
  gap:26px;
  padding:0 28px;
  margin-top:-78px;
}
.hero-avatar{
  width:156px; height:156px;
  border-radius:50%;
  overflow:hidden;
  border:7px solid rgba(255,255,255,.97);
  box-shadow:0 16px 38px rgba(62,47,86,.12);
  background:linear-gradient(135deg,#d7c9ff,#cdb8ff);
  display:grid; place-items:center;
  flex:0 0 auto;
}
.hero-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.hero-avatar-fallback{
  font-size:82px; line-height:1; font-weight:700; color:#fff;
}
.hero-copy{
  padding-bottom:10px;
  max-width:780px;
}
.hero-handle{
  margin:0 0 12px;
  font-size:clamp(24px,4vw,42px);
  font-weight:700;
  letter-spacing:-.04em;
  color:#5d4d83;
}
.hero.hero-branded h1{
  font-size:clamp(34px,5vw,58px);
  margin-bottom:16px;
}
.hero.hero-branded .hero-description{
  max-width:760px;
}
@media (max-width:820px){
  .hero-banner-wrap{min-height:220px}
  .hero-profile-row{padding:0 20px;gap:18px;margin-top:-54px;align-items:flex-end}
  .hero-avatar{width:118px;height:118px;border-width:6px}
  .hero-avatar-fallback{font-size:58px}
}
@media (max-width:620px){
  .hero-profile-row{flex-direction:column;align-items:flex-start;margin-top:-44px}
  .hero-copy{padding-bottom:0}
  .hero-handle{font-size:30px}
}


/* v4: compact mobile channel header */
@media (max-width:620px){
  .container{padding-top:28px}
  .hero.hero-branded{margin-bottom:26px}
  .hero-banner-wrap{display:none}
  .hero-profile-row{
    margin-top:0;
    padding:0;
    flex-direction:row;
    align-items:center;
    gap:14px;
  }
  .hero-avatar{
    width:72px;
    height:72px;
    border-width:4px;
    box-shadow:0 8px 22px rgba(62,47,86,.10);
  }
  .hero-avatar-fallback{font-size:34px}
  .hero-copy{padding:0;min-width:0}
  .hero-copy .eyebrow{display:none}
  .hero-handle{
    margin:0 0 5px;
    font-size:15px;
    font-weight:700;
    letter-spacing:-.01em;
  }
  .hero.hero-branded h1{
    margin:0 0 7px;
    font-size:28px;
    line-height:1.12;
    letter-spacing:-.045em;
  }
  .hero.hero-branded .hero-description{
    margin:0;
    font-size:13px;
    line-height:1.5;
  }
}

@media (min-width:621px) and (max-width:820px){
  .hero-banner-wrap{min-height:170px}
  .hero-profile-row{margin-top:-44px}
  .hero-avatar{width:104px;height:104px}
}


/* v5 visual refinement: white + lavender archive */
:root{
  --bg:#faf9fc;
  --surface:#ffffff;
  --text:#1b1920;
  --muted:#797582;
  --line:#ebe8ef;
  --accent:#5f4d82;
  --accent-soft:#f1ecfb;
  --lavender:#d8c9f6;
  --lavender-strong:#7a64a4;
  --soft:#f5f3f8;
  --radius:20px;
}
body{
  background:
    radial-gradient(circle at 8% 0%, rgba(220,207,247,.28), transparent 28rem),
    var(--bg);
}
.site-header{
  background:rgba(250,249,252,.88);
  border-bottom:1px solid rgba(232,228,238,.9);
}
.brand-main{letter-spacing:-.02em}
.channel-link{
  border-color:#e6e0ef;
  transition:.18s ease;
}
.channel-link:hover{
  background:var(--accent-soft);
  border-color:#d9cdeb;
  color:#5f4d82;
}

/* Hero */
.hero-banner-wrap{
  min-height:246px;
  border-radius:28px;
  border-color:#ebe5f1;
  box-shadow:0 22px 55px rgba(85,67,118,.10);
}
.hero-banner-overlay{
  background:
    linear-gradient(90deg,rgba(250,249,252,.10),rgba(250,249,252,.02) 40%,rgba(250,249,252,.16)),
    linear-gradient(180deg,rgba(255,255,255,.04),rgba(250,249,252,.72) 82%,rgba(250,249,252,.98));
}
.hero-avatar{
  border-color:#fff;
  box-shadow:0 14px 34px rgba(77,58,108,.16);
}
.hero-handle{color:#6d5794}
.hero-stats{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.hero-stats span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid #e8e1f1;
  background:rgba(255,255,255,.82);
  color:#716c79;
  font-size:12px;
  font-weight:700;
  box-shadow:0 5px 18px rgba(76,59,104,.04);
}
.hero-stats b{
  color:#5f4d82;
  font-size:13px;
}

/* Filter area: one composed card instead of six tall cards */
.toolbar-panel{
  margin:0 0 24px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:24px;
  background:rgba(255,255,255,.88);
  box-shadow:0 12px 34px rgba(60,48,80,.055);
}
.toolbar-primary{
  display:grid;
  grid-template-columns:150px minmax(300px,1fr);
  gap:10px;
}
.filter-extra{
  display:grid;
  grid-template-columns:repeat(3,minmax(150px,1fr)) auto;
  gap:10px;
  margin-top:10px;
}
.toolbar-panel .stat-card,
.toolbar-panel .field{
  min-height:68px;
  border:1px solid #ece8f0;
  border-radius:16px;
  background:#fff;
}
.toolbar-panel .stat-card{
  padding:11px 15px;
}
.toolbar-panel .stat-card strong{
  font-size:21px;
}
.toolbar-panel .field{
  padding:9px 13px 8px;
}
.toolbar-panel .field input,
.toolbar-panel .field select{
  font-size:15px;
}
.search-control{
  display:flex;
  align-items:center;
  gap:8px;
}
.search-icon{
  color:#9a8eac;
  font-size:20px;
  line-height:1;
  transform:rotate(-12deg);
}
.search-control input{
  min-width:0;
  flex:1;
}
.reset-filter-button{
  min-height:68px;
  align-self:stretch;
  border:0;
  border-radius:16px;
  background:#2a2730;
  color:#fff;
  padding:0 18px;
  font-size:13px;
  font-weight:700;
  transition:.18s ease;
}
.reset-filter-button:hover{
  background:#5f4d82;
}
.mobile-filter-toggle{display:none}

/* Result header */
.result-header{
  padding:2px 2px 0;
}
.result-meta strong{color:#514660}
.result-submeta{color:#8d8497}
.view-toggle{
  border-color:#e8e3ed;
  box-shadow:0 5px 16px rgba(60,48,80,.04);
}
.view-toggle-btn.active{
  background:var(--accent-soft);
  color:#604e82;
}

/* Cards */
.video-grid{gap:20px}
.video-card{
  border-color:#ece8f0;
  border-radius:20px;
  box-shadow:0 7px 24px rgba(60,48,80,.045);
}
.video-card:hover{
  transform:translateY(-4px);
  border-color:#ddd3ea;
  box-shadow:0 15px 36px rgba(77,58,108,.10);
}
.card-title{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.badge{
  border-color:#e4deea;
  background:#f6f2fa;
  color:#685a76;
}
.badge.mixed{
  background:#f2ecfb;
  color:#665180;
}
.badge.unknown{
  background:#f7f1f3;
  color:#885766;
}
.date-chip{
  background:#f4f0f8;
  color:#5d5069;
}
.card-link{
  background:#29262e;
  transition:.18s ease;
}
.card-link:hover{
  background:#665184;
}

/* Admin visual consistency */
.admin-card{
  border-color:#eae5ef;
  box-shadow:0 8px 24px rgba(60,48,80,.04);
}
.sync-button,
.admin-row button,
.admin-actions button{
  background:#5f4d82;
}

/* Tablet */
@media (max-width:900px){
  .toolbar-primary{grid-template-columns:130px minmax(0,1fr)}
  .filter-extra{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reset-filter-button{min-height:60px}
}

/* Mobile: compact hero + collapsible filter panel */
@media (max-width:620px){
  .site-header .header-inner{
    min-height:56px;
  }
  .brand-main{font-size:14px}
  .brand-handle{font-size:11px}
  .channel-link{
    padding:7px 10px;
    font-size:11px;
  }

  .container{
    width:min(100% - 24px,1180px);
    padding-top:18px;
  }
  .hero.hero-branded{
    margin-bottom:18px;
  }
  .hero-profile-row{
    gap:11px;
  }
  .hero-avatar{
    width:58px;
    height:58px;
    border-width:3px;
    box-shadow:0 6px 16px rgba(62,47,86,.10);
  }
  .hero-avatar-fallback{font-size:29px}
  .hero-handle{
    margin-bottom:3px;
    font-size:13px;
  }
  .hero.hero-branded h1{
    margin-bottom:0;
    font-size:23px;
    line-height:1.12;
  }
  .hero.hero-branded .hero-description{
    display:none;
  }
  .hero-stats{
    margin-top:7px;
    gap:5px;
  }
  .hero-stats span{
    padding:4px 7px;
    font-size:10px;
  }
  .hero-stats b{font-size:10px}

  .toolbar-panel{
    margin-bottom:16px;
    padding:10px;
    border-radius:18px;
  }
  .toolbar-primary{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
  }
  .toolbar-panel .stat-card{
    grid-column:1/-1;
    min-height:auto;
    padding:9px 11px;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .toolbar-panel .stat-card strong{
    margin:0;
    font-size:17px;
  }
  .search-field{
    min-width:0;
  }
  .toolbar-panel .field{
    min-height:58px;
    border-radius:14px;
    padding:7px 10px 7px;
  }
  .toolbar-panel .field>span{
    font-size:10px;
  }
  .toolbar-panel .field input,
  .toolbar-panel .field select{
    padding-top:5px;
    font-size:14px;
  }

  .mobile-filter-toggle{
    min-width:72px;
    border:1px solid #e2d9ec;
    border-radius:14px;
    background:#f3eef9;
    color:#604e82;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:0 10px;
    font-size:13px;
    font-weight:700;
  }
  .filter-count{
    min-width:18px;
    height:18px;
    display:inline-grid;
    place-items:center;
    border-radius:999px;
    background:#604e82;
    color:#fff;
    font-size:10px;
  }
  .filter-chevron{transition:transform .18s ease}
  .mobile-filter-toggle[aria-expanded="true"] .filter-chevron{
    transform:rotate(180deg);
  }

  .filter-extra{
    display:none;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:8px;
  }
  .toolbar-panel.mobile-open .filter-extra{
    display:grid;
  }
  .filter-extra .field:nth-child(3){
    grid-column:1/-1;
  }
  .reset-filter-button{
    grid-column:1/-1;
    min-height:44px;
    border-radius:13px;
    margin-top:0;
  }

  .result-header{
    margin-bottom:10px;
  }
  .result-meta{
    font-size:12px;
  }
  .result-submeta{
    display:block;
    margin-top:2px;
  }
  .view-toggle{
    padding:3px;
  }
  .view-toggle-btn{
    width:32px;
    height:30px;
    font-size:16px;
  }

  .video-grid{
    gap:12px;
  }
  .video-card{
    border-radius:16px;
  }
  .card-body{
    padding:14px;
  }
  .card-title{
    font-size:15px;
  }

  .video-grid.list-view .video-card{
    grid-template-columns:104px minmax(0,1fr);
  }
  .video-grid.list-view .thumb{
    width:104px;
  }
  .video-grid.list-view .card-body{
    padding:9px 10px;
  }
  .video-grid.list-view .card-title{
    font-size:13px;
  }
}

/* Narrow phone */
@media (max-width:390px){
  .hero-stats span:nth-child(2){display:none}
  .toolbar-primary{grid-template-columns:minmax(0,1fr) 68px}
}


/* v7 integrated archive UX */
.active-filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:-12px 2px 20px;
}
.active-filter-chips[hidden]{display:none}
.active-filter-chip{
  border:1px solid #e2d8ed;
  background:#f4effa;
  color:#604e82;
  border-radius:999px;
  padding:6px 9px;
  font-size:12px;
  font-weight:700;
}
.active-filter-chip span{margin-left:3px;color:#9b8baa}
.result-total{color:#8a8490}
.result-divider{margin:0 5px;color:#bbb4c1}

/* Multi-date display */
.dates{align-items:center}
.year-summary-chip{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  background:#e9e0f6;
  color:#5c477d;
  font-size:12px;
  font-weight:700;
  border:1px solid #ded0ed;
}
.date-extra[hidden]{display:none!important}
.date-extra:not([hidden]){display:contents}
.date-more-btn{
  border:1px solid #e1d8e8;
  background:#fff;
  color:#725f86;
  border-radius:999px;
  padding:5px 8px;
  font-size:11px;
  font-weight:700;
}
.unknown-date-chip{background:#f7f0f3;color:#855665}

/* Better hierarchy inside cards */
.source{font-size:12px;color:#918b96}
.note{
  display:inline-flex;
  padding:5px 8px;
  border-radius:9px;
  background:#faf3f5;
  color:#8a5867;
  font-size:11px;
}

/* Admin: unresolved-date review */
.admin-review-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}
.admin-count-badge{
  flex:0 0 auto;
  background:#f1eafa;
  color:#654e85;
  border:1px solid #e3d8ee;
  border-radius:999px;
  padding:6px 9px;
  font-size:12px;
  font-weight:700;
}
.admin-unknown-list{
  display:flex;
  flex-direction:column;
  margin-top:12px;
}
.admin-unknown-item{
  display:grid;
  grid-template-columns:124px minmax(0,1fr);
  gap:14px;
  padding:14px 0;
  border-top:1px solid var(--line);
}
.admin-unknown-item:first-child{border-top:0}
.admin-unknown-thumb{
  aspect-ratio:16/9;
  border-radius:12px;
  overflow:hidden;
  background:#f0edf3;
}
.admin-unknown-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.admin-unknown-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.admin-unknown-top strong{font-size:14px;line-height:1.45}
.admin-reason-badge{
  flex:0 0 auto;
  padding:5px 7px;
  border-radius:8px;
  background:#faf1f4;
  color:#875866;
  font-size:10px;
  font-weight:700;
}
.admin-unknown-body p{
  margin:7px 0;
  color:#817b85;
  font-size:12px;
  line-height:1.55;
}
.admin-youtube-link{
  display:inline-flex;
  color:#665184;
  font-size:12px;
  font-weight:700;
}

/* Mobile refinements */
@media (max-width:620px){
  /* On phones, keep only the total archive stat in the hero. */
  .hero-stats span:not(:first-child){display:none!important}
  .hero-stats span:first-child{padding:4px 8px}

  .active-filter-chips{
    margin:-8px 0 13px;
    gap:5px;
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:none;
  }
  .active-filter-chips::-webkit-scrollbar{display:none}
  .active-filter-chip{flex:0 0 auto;font-size:11px;padding:5px 8px}

  .result-total{display:block;margin-bottom:2px}
  .result-divider{display:none}

  /* Keep cards short: first 3 date pieces, remainder behind +N. */
  .dates .date-chip,
  .dates .year-summary-chip{font-size:11px;padding:5px 7px}

  .admin-unknown-item{
    grid-template-columns:90px minmax(0,1fr);
    gap:10px;
  }
  .admin-unknown-top{display:block}
  .admin-reason-badge{display:inline-flex;margin-top:5px}
  .admin-unknown-body p{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
  }
}


/* v7.1: make collapsed multi-date chips actually stay hidden */
.video-grid .date-extra[hidden],
.video-grid.list-view .date-extra[hidden]{
  display:none!important;
}
.video-grid .date-extra:not([hidden]),
.video-grid.list-view .date-extra:not([hidden]){
  display:contents;
}


/* v8: timeline archive view */
.video-grid.timeline-view{
  display:block;
}
.timeline-year{
  margin:0 0 38px;
}
.timeline-year-heading{
  position:sticky;
  top:74px;
  z-index:4;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0 12px;
  background:linear-gradient(180deg,var(--bg) 72%,rgba(250,249,252,0));
}
.timeline-year-heading h2{
  margin:0;
  font-size:34px;
  letter-spacing:-.045em;
  color:#4f4263;
}
.timeline-year-heading span{
  padding:5px 8px;
  border-radius:999px;
  background:#eee7f7;
  color:#746088;
  font-size:11px;
  font-weight:700;
}
.timeline-month{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:18px;
  padding:10px 0 22px;
  border-top:1px solid #ece7f0;
}
.timeline-month>h3{
  margin:6px 0 0;
  color:#8b8197;
  font-size:13px;
}
.timeline-items{display:flex;flex-direction:column}
.timeline-item{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:14px;
  align-items:center;
  min-height:86px;
  padding:10px 0;
  border-bottom:1px solid #f0edf3;
}
.timeline-thumb{
  display:block;
  width:118px;
  aspect-ratio:16/9;
  border-radius:11px;
  overflow:hidden;
  background:#eeeaf1;
}
.timeline-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.timeline-item-date{
  display:flex;
  gap:7px;
  align-items:center;
  margin-bottom:5px;
  color:#675677;
  font-size:12px;
  font-weight:700;
}
.timeline-item-date span{
  color:#94899f;
  font-size:10px;
  font-weight:700;
}
.timeline-title{
  display:block;
  font-size:15px;
  line-height:1.45;
  font-weight:700;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.timeline-years{
  margin-top:5px;
  color:#958a9e;
  font-size:11px;
}
.timeline-unknown .timeline-year-heading h2{font-size:24px;color:#855f6b}

/* v8: simplified multi-date cards */
.year-summary-chip{
  width:100%;
  justify-content:flex-start;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.date-more-btn{
  background:#f6f2f9;
  border-color:#e4dceb;
  color:#6c587d;
}
.date-extra[hidden]{display:none!important}
.date-extra:not([hidden]){display:contents}

/* v8: admin tabs */
.admin-tabs{
  display:flex;
  gap:6px;
  margin:14px 0;
  padding:5px;
  border:1px solid #e8e2ed;
  border-radius:15px;
  background:#f7f4fa;
  overflow-x:auto;
}
.admin-tab{
  flex:1 0 auto;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#776d80;
  padding:10px 13px;
  font-size:13px;
  font-weight:700;
}
.admin-tab.active{
  background:#fff;
  color:#59466f;
  box-shadow:0 4px 13px rgba(71,53,91,.08);
}
.admin-tab-count{
  display:inline-grid;
  place-items:center;
  min-width:18px;
  height:18px;
  margin-left:4px;
  padding:0 5px;
  border-radius:999px;
  background:#eadff5;
  color:#6a5384;
  font-size:10px;
}
.admin-tab-panel[hidden]{display:none!important}

@media (max-width:620px){
  .view-toggle-btn{width:31px}
  .timeline-year{margin-bottom:26px}
  .timeline-year-heading{top:60px;padding-top:8px}
  .timeline-year-heading h2{font-size:27px}
  .timeline-month{
    display:block;
    padding:8px 0 17px;
  }
  .timeline-month>h3{
    margin:0 0 5px;
    font-size:12px;
  }
  .timeline-item{
    grid-template-columns:84px minmax(0,1fr);
    gap:10px;
    min-height:68px;
    padding:8px 0;
  }
  .timeline-thumb{width:84px;border-radius:8px}
  .timeline-title{font-size:13px}
  .timeline-item-date{font-size:11px;margin-bottom:3px}
  .timeline-years{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .year-summary-chip{font-size:10px}
  .date-more-btn{font-size:10px;padding:5px 7px}
  .admin-tabs{position:sticky;top:60px;z-index:7;background:rgba(247,244,250,.95);backdrop-filter:blur(10px)}
}


/* v8.1 precision-aware timeline */
.timeline-year-only-group{
  margin-top:10px;
  border-top:1px dashed #ded5e7;
  padding-top:16px;
}
.timeline-year-only-group>h3{
  color:#6e5a82;
  font-weight:700;
}
.timeline-year-only-group .timeline-item{
  background:linear-gradient(90deg,rgba(243,238,249,.72),rgba(255,255,255,0));
  border-radius:12px;
  padding-left:10px;
  padding-right:10px;
}
.timeline-unknown-group{
  border-top:1px dashed #eadadf;
}
.timeline-unknown-group>h3{
  color:#8b5f6c;
  font-weight:700;
}
.precision-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 6px;
  border-radius:999px;
  font-size:9px!important;
  font-weight:700!important;
  line-height:1.2;
}
.precision-badge.month-only{
  background:#f1ebf8;
  color:#6c5882!important;
}
.precision-badge.year-only{
  background:#eee8f4;
  color:#665473!important;
}
.precision-badge.unknown{
  background:#f8edef;
  color:#8a5866!important;
}
.timeline-item.month-only .timeline-item-date{
  color:#69567b;
}
.timeline-item.year-only .timeline-item-date{
  color:#62536e;
}
.timeline-item.unknown .timeline-item-date{
  color:#855f6b;
}

/* make archive grouping easier to scan */
.timeline-month>h3{
  position:relative;
  padding-left:10px;
}
.timeline-month>h3::before{
  content:"";
  position:absolute;
  left:0;
  top:.42em;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#b7a5ca;
}
.timeline-year-only-group>h3::before{
  background:#8d73a8;
}
.timeline-unknown-group>h3::before{
  background:#a96e7d;
}

@media (max-width:620px){
  .timeline-year-only-group{
    padding-top:12px;
  }
  .timeline-year-only-group .timeline-item{
    padding-left:7px;
    padding-right:7px;
  }
  .precision-badge{
    display:none;
  }
  .timeline-item-date{
    flex-wrap:wrap;
  }
}


/* v9 usability pass 1 */
.search-match{
  margin:10px 0 0;
  padding:8px 10px;
  border-radius:11px;
  background:#f8f5fb;
  color:#6f6875;
  font-size:12px;
  line-height:1.55;
}
.search-match>span{
  display:inline-flex;
  margin-right:7px;
  color:#8b7b99;
  font-size:10px;
  font-weight:700;
}
mark{
  padding:0 2px;
  border-radius:3px;
  background:#eadcf8;
  color:#4f3b67;
}

.year-jump-bar{
  display:flex;
  gap:6px;
  overflow-x:auto;
  margin:-7px 0 18px;
  padding:2px 1px 7px;
  scrollbar-width:thin;
  scrollbar-color:#d8cce5 transparent;
}
.year-jump-bar[hidden]{display:none}
.year-jump-chip{
  flex:0 0 auto;
  border:1px solid #e4ddeb;
  background:#fff;
  color:#796e83;
  border-radius:999px;
  padding:7px 10px;
  font-size:11px;
  font-weight:700;
  transition:.16s ease;
}
.year-jump-chip:hover,
.year-jump-chip.active{
  border-color:#d5c5e7;
  background:#efe7f8;
  color:#59436e;
}

/* Skeleton loading */
.loading-state{
  display:block;
  color:#8a8490;
}
.loading-state[hidden]{display:none}
.loading-message{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-bottom:16px;
  font-size:12px;
}
.skeleton-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.skeleton-card{
  overflow:hidden;
  border:1px solid #eeeaf1;
  border-radius:20px;
  background:#fff;
}
.skeleton-thumb{
  aspect-ratio:16/9;
  background:linear-gradient(90deg,#f0edf3 20%,#f7f4f9 38%,#f0edf3 56%);
  background-size:220% 100%;
  animation:skeletonShimmer 1.35s linear infinite;
}
.skeleton-body{padding:16px}
.skeleton-body span{
  display:block;
  height:12px;
  margin-bottom:9px;
  border-radius:999px;
  background:linear-gradient(90deg,#f0edf3 20%,#f7f4f9 38%,#f0edf3 56%);
  background-size:220% 100%;
  animation:skeletonShimmer 1.35s linear infinite;
}
.skeleton-body span:nth-child(1){width:86%;height:15px}
.skeleton-body span:nth-child(2){width:62%}
.skeleton-body span:nth-child(3){width:44%}
@keyframes skeletonShimmer{to{background-position:-220% 0}}

/* Mobile default list is intentionally denser */
@media (max-width:900px){
  .skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .skeleton-grid{grid-template-columns:1fr;gap:10px}
  .skeleton-card{
    display:grid;
    grid-template-columns:104px minmax(0,1fr);
    align-items:center;
    border-radius:15px;
  }
  .skeleton-thumb{width:104px;aspect-ratio:16/9}
  .skeleton-body{padding:10px 11px}
  .year-jump-bar{
    margin-top:-4px;
    margin-bottom:12px;
    scrollbar-width:none;
  }
  .year-jump-bar::-webkit-scrollbar{display:none}
  .year-jump-chip{padding:6px 9px;font-size:10px}
  .search-match{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    font-size:11px;
    line-height:1.55;
    padding:7px 8px 8px;
  }

  .search-match.description-search-match{
    -webkit-line-clamp:3;
    line-height:1.6;
    padding-bottom:9px;
  }
}


/* v10 conservative YYMM candidate review */
.date-candidate-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:10px 0;
  padding:11px 12px;
  border:1px solid #dfd2ec;
  border-radius:13px;
  background:#f7f2fc;
}
.date-candidate-box>div:first-child{min-width:0}
.date-candidate-label{
  display:inline-block;
  margin-right:7px;
  color:#7c6690;
  font-size:10px;
  font-weight:700;
}
.date-candidate-box strong{color:#57416c;font-size:14px}
.date-candidate-box small{
  display:block;
  margin-top:4px;
  color:#8c8295;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.date-candidate-actions{display:flex;gap:6px;flex:0 0 auto}
.date-candidate-actions button{
  border:0;
  border-radius:9px;
  padding:7px 9px;
  font-size:11px;
  font-weight:700;
}
.candidate-apply-btn{background:#604b7c;color:#fff}
.candidate-ignore-btn{background:#ebe7ee;color:#665d6d}
.admin-review-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.candidate-status{font-size:10px;color:#7b6d85}
@media(max-width:620px){
  .date-candidate-box{display:block}
  .date-candidate-actions{margin-top:9px}
  .date-candidate-actions button{flex:1}
}


/* v10.1 date candidate source clarity */
.date-candidate-heading{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:5px;
}
.candidate-source-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 6px;
  border-radius:999px;
  font-size:9px;
  font-weight:700;
}
.candidate-source-badge.title{
  background:#ede6f8;
  color:#634e7e;
}
.candidate-source-badge.description{
  background:#eef1f6;
  color:#596576;
}
.date-candidate-info strong{
  display:block;
  margin-bottom:3px;
}
.date-candidate-info small{
  display:block;
  line-height:1.45;
}
@media (max-width:620px){
  .date-candidate-box{
    align-items:flex-start;
  }
  .date-candidate-actions{
    width:100%;
  }
  .date-candidate-actions button{
    flex:1;
  }
}


/* v11 manual dates + playlist classification */
.card-badges{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
  flex:0 0 auto;
}
.badge.playlist{
  background:#eee6fb;
  border-color:#ddcef1;
  color:#624881;
}
.filter-extra{
  grid-template-columns:repeat(4,minmax(135px,1fr)) auto;
}

.manual-date-box{
  margin-top:10px;
  padding:11px;
  border:1px solid #e8e1ee;
  border-radius:12px;
  background:#faf8fc;
}
.manual-date-label{
  display:block;
  color:#604d78;
  font-size:11px;
  font-weight:700;
  margin-bottom:3px;
}
.manual-date-box small{
  color:#918699;
  font-size:10px;
}
.manual-date-row{
  display:flex;
  gap:7px;
  margin-top:8px;
}
.manual-date-row input{
  min-width:0;
  flex:1;
  border:1px solid #ded5e5;
  border-radius:9px;
  background:#fff;
  padding:9px 10px;
  font-size:12px;
}
.manual-date-row button{
  border:0;
  border-radius:9px;
  background:#5f4d82;
  color:#fff;
  padding:9px 12px;
  font-size:11px;
  font-weight:700;
}
.admin-review-badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:5px;
}
.admin-content-badge{
  display:inline-flex;
  padding:5px 7px;
  border-radius:8px;
  font-size:10px;
  font-weight:700;
}
.admin-content-badge.playlist{
  background:#eee5fa;
  color:#60497a;
}
.admin-classify-search{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:12px 0;
  color:#7a7380;
  font-size:11px;
  font-weight:700;
}
.admin-classify-search input{
  width:100%;
  border:1px solid #e2dce7;
  border-radius:11px;
  padding:10px 11px;
  background:#fff;
}
.admin-content-list{
  display:flex;
  flex-direction:column;
}
.admin-content-item{
  display:grid;
  grid-template-columns:84px minmax(0,1fr) auto;
  gap:11px;
  align-items:center;
  padding:10px 0;
  border-top:1px solid var(--line);
}
.admin-content-item:first-child{border-top:0}
.admin-content-thumb{
  width:84px;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:9px;
  background:#f0edf3;
}
.admin-content-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.admin-content-copy{min-width:0}
.admin-content-copy strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
}
.admin-content-copy small{
  display:block;
  margin-top:4px;
  color:#918a96;
  font-size:10px;
}
.content-type-toggle{
  border:1px solid #ddd4e6;
  border-radius:9px;
  background:#fff;
  color:#675676;
  padding:8px 9px;
  font-size:10px;
  font-weight:700;
}
.content-type-toggle.is-playlist{
  background:#f1eafa;
  border-color:#dfd0ee;
  color:#60487c;
}
.precision-badge.playlist-undated{
  background:#eee7f8;
  color:#614d79!important;
}
.timeline-playlists .timeline-year-heading h2{
  color:#614a7d;
}
.timeline-playlist-undated-group>h3{
  color:#735a8a;
  font-weight:700;
}
.timeline-playlist-undated-group>h3::before{
  background:#80639b;
}

@media (max-width:900px){
  .filter-extra{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .filter-extra{grid-template-columns:1fr 1fr}
  .filter-extra .field:nth-child(4){grid-column:1/-1}
  .manual-date-row{flex-direction:column}
  .manual-date-row button{width:100%}
  .admin-content-item{
    grid-template-columns:68px minmax(0,1fr);
  }
  .admin-content-thumb{width:68px}
  .content-type-toggle{
    grid-column:1/-1;
    width:100%;
  }
}


/* v12 admin compact playlist candidate list */
.admin-classify-search{
  max-width:560px;
}
.admin-content-list{
  max-height:540px;
  overflow:auto;
  padding-right:4px;
}
.admin-content-item{
  min-height:68px;
}
.admin-content-copy small{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}


/* v13 admin layout */
.admin-mode-open .site-header{
  position:sticky;
  top:0;
  z-index:30;
}
.admin-mode-open #adminPanel{
  margin-top:18px;
  border-top:0;
  padding-top:0;
}
.admin-mode-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding:9px 12px;
  border:1px solid #e4dbea;
  border-radius:12px;
  background:#f5f0fa;
  color:#665477;
  font-size:12px;
  font-weight:700;
}
.admin-back-link{
  color:#5c4773;
  text-decoration:none;
  padding:6px 9px;
  border-radius:8px;
  background:#fff;
  border:1px solid #e0d6e8;
}
.admin-content-card{
  min-height:420px;
}
.admin-content-toolbar{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:10px;
}
.admin-content-toolbar .admin-classify-search{
  flex:1;
  max-width:none;
  margin:0;
}
.admin-content-note{
  margin:0 0 2px;
  color:#958c9b;
  font-size:10px;
  white-space:nowrap;
}
.admin-content-list{
  max-height:620px;
}
@media (max-width:620px){
  .admin-mode-bar{
    position:sticky;
    top:58px;
    z-index:9;
  }
  .admin-content-toolbar{
    display:block;
  }
  .admin-content-note{
    margin-top:7px;
    white-space:normal;
  }
  .admin-tabs{
    top:101px;
  }
}


/* v14 multi-year playlist */
.badge.playlist-multiyear{
  background:#f4ecff;
  border-color:#dfd0f2;
  color:#684d85;
}
.precision-badge.playlist-multiyear{
  background:#f0e7fa;
  color:#684d85!important;
}
.timeline-playlist-multiyear-group>h3{
  color:#694f84;
  font-weight:700;
}
.timeline-playlist-multiyear-group>h3::before{
  background:#8768a5;
}
.admin-content-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:7px;
  min-width:168px;
}
.playlist-scope-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
}
.playlist-scope-actions>span{
  grid-column:1/-1;
  text-align:right;
  color:#8a7c94;
  font-size:9px;
  font-weight:700;
}
.playlist-scope-btn{
  border:1px solid #e1d7e8;
  border-radius:8px;
  background:#fff;
  color:#6e5c79;
  padding:7px 6px;
  font-size:9px;
  font-weight:700;
}
.playlist-scope-btn.active{
  background:#eee5f8;
  border-color:#d6c4e7;
  color:#5e4579;
}
@media (max-width:620px){
  .admin-content-actions{
    grid-column:1/-1;
    min-width:0;
  }
  .playlist-scope-actions>span{
    text-align:left;
  }
}


/* v14.2 content classification action layout */
.admin-tab-icon{
  display:inline-grid;
  place-items:center;
  width:18px;
  height:18px;
  margin-right:4px;
  border-radius:6px;
  background:#f0e8f8;
  color:#654b7e;
  font-size:11px;
  font-weight:700;
  vertical-align:-2px;
}

.admin-content-item{
  grid-template-columns:84px minmax(0,1fr) minmax(220px,260px);
  align-items:start;
}

.admin-content-actions{
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.content-action-btn{
  box-sizing:border-box;
  width:100%;
  min-height:38px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  border:1px solid #ddd4e6;
  border-radius:10px;
  background:#fff;
  color:#675676;
  padding:8px 10px;
  font-size:10px;
  line-height:1.25;
  font-weight:700;
  text-align:left;
  white-space:normal;
}

.content-action-btn:hover{
  background:#faf7fc;
}

.content-action-icon{
  flex:0 0 22px;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:#f2edf6;
  color:#60497a;
  font-size:12px;
  font-weight:700;
}

.content-type-toggle{
  grid-column:auto;
  padding:8px 10px;
}

.content-type-toggle.is-playlist{
  background:#f6f1fb;
  border-color:#dacbe8;
}

.content-type-toggle.is-playlist .content-action-icon{
  background:#e9dcf5;
}

.playlist-scope-block{
  width:100%;
  padding:9px;
  border:1px solid #ebe3f0;
  border-radius:11px;
  background:#fbf9fc;
}

.playlist-scope-current{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
  color:#92869a;
  font-size:9px;
}

.playlist-scope-current strong{
  color:#62516f;
  font-size:10px;
}

.playlist-scope-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
}

.playlist-scope-actions>span{
  display:none;
}

.playlist-scope-btn{
  padding:8px 10px;
  font-size:10px;
}

.playlist-scope-btn.active{
  background:#eee5f8;
  border-color:#ceb9e2;
  color:#5b4177;
}

.playlist-scope-btn.active .content-action-icon{
  background:#dcc8ed;
  color:#50356d;
}

@media (max-width:900px){
  .admin-content-item{
    grid-template-columns:76px minmax(0,1fr);
  }

  .admin-content-thumb{
    width:76px;
  }

  .admin-content-actions{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    margin-top:2px;
  }

  .content-type-toggle{
    width:100%;
    grid-column:auto;
  }

  .playlist-scope-block{
    box-sizing:border-box;
  }

  .playlist-scope-actions{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:620px){
  .admin-content-item{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:10px;
    padding:13px 0;
  }

  .admin-content-thumb{
    width:72px;
  }

  .admin-content-copy strong{
    white-space:normal;
    line-height:1.35;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
  }

  .admin-content-copy small{
    white-space:normal;
    line-height:1.4;
  }

  .admin-content-actions{
    grid-column:1/-1;
    width:100%;
    min-width:0;
    gap:7px;
  }

  .content-action-btn{
    min-height:42px;
    padding:9px 11px;
    font-size:11px;
  }

  .playlist-scope-actions{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  .playlist-scope-btn{
    min-width:0;
  }

  .playlist-scope-btn span:last-child{
    overflow-wrap:anywhere;
  }
}

@media (max-width:390px){
  .playlist-scope-actions{
    grid-template-columns:1fr;
  }
}


/* v14.3 description-change review */
.description-change-review{
  margin-top:10px;
  padding:11px;
  border:1px solid #e4d5ee;
  border-radius:12px;
  background:#faf6fd;
}
.description-change-head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
}
.description-change-head span{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  background:#eadcf5;
  color:#624779;
  font-size:9px;
  font-weight:700;
}
.description-change-head strong{
  color:#5e5265;
  font-size:11px;
}
.description-change-review small{
  display:block;
  margin-top:4px;
  color:#84788b;
  font-size:10px;
  line-height:1.45;
}
.accept-description-date-btn{
  width:100%;
  margin-top:9px;
  border:1px solid #d6c3e5;
  border-radius:9px;
  background:#eee3f7;
  color:#5e4677;
  padding:9px 10px;
  font-size:10px;
  font-weight:700;
}


/* v14.4 콘텐츠 분류 목록 폭/겹침 개선 */
.admin-tab-panel[data-admin-panel="content"] .admin-card{
  width:100%;
  max-width:none;
}

.admin-content-card{
  overflow:visible;
}

.admin-content-list{
  width:100%;
  max-height:none;
  overflow:visible;
  padding-right:0;
}

.admin-content-item{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  grid-template-areas:
    "thumb copy"
    "actions actions";
  gap:10px 14px;
  align-items:start;
  padding:16px 0;
}

.admin-content-thumb{
  grid-area:thumb;
  width:112px;
  aspect-ratio:16/9;
}

.admin-content-copy{
  grid-area:copy;
  min-width:0;
  padding-top:2px;
}

.admin-content-copy strong{
  display:block;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.45;
  font-size:13px;
  word-break:keep-all;
  overflow-wrap:anywhere;
}

.admin-content-copy small{
  display:block;
  margin-top:6px;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.45;
  font-size:10px;
}

.admin-content-actions{
  grid-area:actions;
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(180px,0.9fr) minmax(320px,1.5fr);
  gap:10px;
  align-items:stretch;
}

.admin-content-actions > .content-type-toggle{
  width:100%;
  height:100%;
  min-height:48px;
}

.playlist-scope-block{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin:0;
  padding:10px;
}

.playlist-scope-current{
  margin-bottom:8px;
}

.playlist-scope-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
}

.playlist-scope-btn{
  width:100%;
  min-width:0;
  min-height:42px;
}

.content-action-btn{
  box-sizing:border-box;
  min-width:0;
  white-space:normal;
  overflow:visible;
}

.content-action-btn span:last-child{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
}

@media (min-width:1100px){
  .admin-content-item{
    grid-template-columns:128px minmax(0,1fr) minmax(420px,520px);
    grid-template-areas:"thumb copy actions";
    gap:16px;
    align-items:center;
  }

  .admin-content-thumb{
    width:128px;
  }

  .admin-content-actions{
    display:grid;
    grid-template-columns:minmax(160px,.8fr) minmax(250px,1.25fr);
    gap:10px;
  }
}

@media (max-width:760px){
  .admin-content-item{
    grid-template-columns:92px minmax(0,1fr);
    grid-template-areas:
      "thumb copy"
      "actions actions";
    gap:10px 12px;
  }

  .admin-content-thumb{
    width:92px;
  }

  .admin-content-actions{
    grid-template-columns:1fr;
  }

  .playlist-scope-actions{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:480px){
  .admin-content-item{
    grid-template-columns:76px minmax(0,1fr);
    gap:9px 10px;
  }

  .admin-content-thumb{
    width:76px;
  }

  .playlist-scope-actions{
    grid-template-columns:1fr;
  }

  .content-action-btn{
    min-height:44px;
  }
}


/* v14.5 다년도 플레이리스트 표시 보정 */
.multiyear-date-chip{
  background:#f1e8fa;
  border-color:#dccbed;
  color:#654a80;
  font-weight:700;
}
.playlist-undated-chip{
  background:#f4f1f7;
  border-color:#e2dbe8;
  color:#75697d;
}


/* v15 usability cleanup */

/* Public summary: only useful public-facing total remains. */
.hero-stats-public{
  display:flex;
}
.hero-stats-public span{
  padding:6px 10px;
}

/* Admin mode behaves as a dedicated workspace. */
body.admin-mode-open .public-archive-ui{
  display:none !important;
}
body.admin-mode-open main.container{
  padding-top:14px;
}
body.admin-mode-open #adminPanel{
  margin-top:0;
}
body.admin-mode-open .site-header .channel-link{
  display:none;
}
body.admin-mode-open .site-header{
  box-shadow:0 1px 0 rgba(73,55,87,.08);
}
body.admin-mode-open .header-inner{
  min-height:52px;
}

/* View switcher: icon + text, clearer on mobile. */
.view-toggle{
  gap:5px;
}
.view-toggle-btn{
  width:auto;
  min-width:58px;
  height:34px;
  padding:0 9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.view-icon{
  font-size:13px;
  line-height:1;
}
.view-label{
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
}

/* Timeline playlists form one visually separate hub. */
.timeline-playlist-hub{
  margin-top:28px;
  padding:16px;
  border:1px solid #e4d8ed;
  border-radius:18px;
  background:#faf7fc;
}
.timeline-playlist-hub .timeline-year-heading{
  padding-bottom:12px;
  border-bottom:1px solid #e8dfee;
}
.timeline-playlist-hub .timeline-year-heading > div{
  min-width:0;
}
.timeline-section-note{
  margin:4px 0 0;
  color:#8b8091;
  font-size:10px;
  font-weight:500;
}
.timeline-playlist-hub .timeline-month{
  margin-top:14px;
  padding:12px;
  border-radius:14px;
  background:#fff;
}
.timeline-playlist-hub .timeline-month h3{
  display:flex;
  align-items:center;
  gap:6px;
}
.timeline-playlist-hub .timeline-month h3 small{
  font-size:9px;
  color:#998da0;
  font-weight:700;
}

/* Review status overview. */
.admin-review-overview{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:12px;
}
.admin-review-overview-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid #e5dde9;
  border-radius:12px;
  background:#fff;
}
.admin-review-overview-item span{
  color:#776b7d;
  font-size:10px;
  font-weight:700;
}
.admin-review-overview-item strong{
  font-size:18px;
  color:#574463;
}
.admin-review-overview-item.description-change{
  background:#faf6fd;
}
.admin-review-complete{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border:1px solid #d9e6dc;
  border-radius:12px;
  background:#f6faf7;
}
.admin-review-complete[hidden]{
  display:none;
}
.admin-review-complete-icon{
  width:28px;
  height:28px;
  flex:0 0 28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e4f0e7;
  color:#4d7056;
  font-weight:700;
}
.admin-review-complete strong,
.admin-review-complete small{
  display:block;
}
.admin-review-complete strong{
  color:#4e6554;
  font-size:11px;
}
.admin-review-complete small{
  margin-top:2px;
  color:#839087;
  font-size:9px;
}
.admin-empty-complete{
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px;
  border:1px dashed #dbe4dd;
  border-radius:12px;
  background:#fbfdfb;
}
.admin-empty-complete>span{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#e6f0e8;
  color:#54705a;
  font-weight:700;
}
.admin-empty-complete strong{
  display:block;
  color:#56695a;
  font-size:11px;
}
.admin-empty-complete p{
  margin:3px 0 0;
  color:#8a948c;
  font-size:10px;
}

/* Mobile control spacing and readability. */
@media (max-width:620px){
  .toolbar-primary{
    gap:8px;
  }
  .mobile-filter-toggle{
    min-height:40px;
    padding:0 12px;
  }
  .result-header{
    gap:9px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .result-meta{
    width:100%;
  }
  .view-toggle{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
  }
  .view-toggle-btn{
    width:100%;
    min-width:0;
    height:38px;
  }
  .view-label{
    display:inline;
    font-size:10px;
  }
  .admin-review-overview{
    grid-template-columns:1fr;
  }
  .admin-review-complete{
    grid-column:auto;
  }
  .timeline-playlist-hub{
    padding:12px;
    margin-top:20px;
  }
}


/* v16 findability + mobile navigation */

/* Search autocomplete */
.search-field{
  position:relative;
}
.search-suggestions{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 6px);
  z-index:45;
  overflow:hidden;
  border:1px solid #ddd5e4;
  border-radius:12px;
  background:#fff;
  box-shadow:0 12px 28px rgba(50,38,59,.14);
}
.search-suggestions[hidden]{
  display:none;
}
.search-suggestion-item{
  width:100%;
  border:0;
  border-top:1px solid #f0ebf2;
  background:#fff;
  padding:9px 11px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  gap:8px;
  align-items:start;
  text-align:left;
  cursor:pointer;
}
.search-suggestion-item:first-child{
  border-top:0;
}
.search-suggestion-item:hover,
.search-suggestion-item:focus-visible{
  background:#faf7fc;
  outline:none;
}
.search-suggestion-kind{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:3px 5px;
  border-radius:7px;
  background:#f0e9f6;
  color:#69517d;
  font-size:9px;
  font-weight:700;
}
.search-suggestion-copy{
  min-width:0;
}
.search-suggestion-copy strong{
  display:block;
  color:#3e3543;
  font-size:11px;
  line-height:1.4;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.search-suggestion-copy small{
  display:block;
  margin-top:2px;
  color:#958b99;
  font-size:9px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Year count chips */
.year-jump-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.year-jump-chip small{
  min-width:18px;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  color:inherit;
  font-size:8px;
  line-height:1.2;
}

/* Card hierarchy: date -> title -> source */
.card-meta-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.card-meta-row .dates{
  margin:0;
  min-width:0;
}
.card-meta-row .card-badges{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin:0;
}
.card-meta-row .badge{
  white-space:nowrap;
}
.video-card .card-title{
  margin-top:0;
}
.badge.playlist{
  background:#eee6f8;
  border-color:#dacbe8;
  color:#604978;
}
.badge.mixed{
  background:#f3eef8;
  border-color:#e0d6e9;
  color:#725f7e;
}
.badge.unknown{
  background:#f4f1f5;
  border-color:#e3dde6;
  color:#756c7a;
}

/* Mobile: keep only the compact search/filter panel sticky once reached */
@media (max-width:620px){
  .toolbar-panel{
    position:sticky;
    top:52px;
    z-index:28;
    margin-left:-12px;
    margin-right:-12px;
    padding:9px 12px;
    border-left:0;
    border-right:0;
    border-radius:0 0 14px 14px;
    box-shadow:0 8px 18px rgba(28,22,33,.08);
  }
  .toolbar-primary{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px;
    align-items:end;
  }
  .toolbar-primary .stat-card{
    display:none;
  }
  .toolbar-primary .search-field{
    min-width:0;
  }
  .search-control{
    min-height:40px;
  }
  .mobile-filter-toggle{
    min-width:72px;
    min-height:40px;
  }
  .filter-extra{
    padding-top:9px;
  }
  .search-suggestions{
    position:fixed;
    left:12px;
    right:12px;
    top:102px;
    max-height:52vh;
    overflow:auto;
  }
  .year-jump-bar{
    gap:6px;
  }
  .year-jump-chip{
    min-height:38px;
    padding:0 10px;
  }
  .card-meta-row{
    flex-direction:column;
    gap:6px;
  }
  .card-meta-row .card-badges{
    justify-content:flex-start;
  }
}


/* v17 navigation cleanup */

.search-control{
  position:relative;
}
.search-control input{
  padding-right:38px;
}
.clear-search-btn{
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-50%);
  width:26px;
  height:26px;
  border:0;
  border-radius:50%;
  background:#f0ebf3;
  color:#796d80;
  font-size:18px;
  line-height:1;
  display:grid;
  place-items:center;
}
.clear-search-btn[hidden]{
  display:none;
}
.clear-search-btn:hover{
  background:#e9e1ee;
}
.search-suggestion-item.is-active{
  background:#f4eef8;
  outline:1px solid #decfe9;
  outline-offset:-1px;
}

.empty-state{
  padding:28px 18px;
}
.empty-reset-btn{
  margin-top:12px;
  border:1px solid #d9cce2;
  border-radius:10px;
  background:#f3ecf8;
  color:#604d73;
  padding:9px 12px;
  font-size:10px;
  font-weight:700;
}

.back-to-top{
  position:fixed;
  right:18px;
  bottom:22px;
  z-index:32;
  width:42px;
  height:42px;
  border:1px solid #d7cbe0;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#5f4d70;
  box-shadow:0 8px 20px rgba(42,34,49,.14);
  font-size:18px;
  font-weight:700;
  backdrop-filter:blur(8px);
}
.back-to-top[hidden]{
  display:none;
}
.back-to-top:hover{
  background:#f5eff9;
}

@media (max-width:620px){
  .back-to-top{
    right:14px;
    bottom:18px;
    width:40px;
    height:40px;
  }
}


/* v18 experimental context navigation */

/* Existing metadata itself becomes interactive; no extra visible action buttons. */
.date-context-link{
  appearance:none;
  font:inherit;
  cursor:pointer;
}
.date-context-link:hover,
.date-context-link:focus-visible{
  border-color:#cbb8dc;
  background:#f2eaf8;
  color:#5f4478;
  outline:none;
}

.source-context-link{
  appearance:none;
  border:0;
  background:none;
  padding:0;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:transparent;
  text-underline-offset:3px;
}
.source-context-link:hover,
.source-context-link:focus-visible{
  color:#604a77;
  text-decoration-color:#cdbbda;
  outline:none;
}

/* Only appears while a search query is active. */
.search-match-reason{
  display:inline-flex;
  margin:-2px 0 7px;
  padding:3px 6px;
  border-radius:999px;
  background:#f2edf6;
  color:#75657e;
  font-size:9px;
  font-weight:700;
}

/* Month navigation exists only inside timeline view/year sections. */
.timeline-month-nav{
  display:flex;
  align-items:center;
  gap:6px;
  overflow-x:auto;
  margin:0 0 11px;
  padding:2px 0 4px;
  scrollbar-width:none;
}
.timeline-month-nav::-webkit-scrollbar{
  display:none;
}
.timeline-month-jump{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:28px;
  border:1px solid #e1d9e7;
  border-radius:999px;
  background:#fff;
  color:#74677b;
  padding:4px 8px;
  font-size:9px;
  font-weight:700;
}
.timeline-month-jump small{
  min-width:17px;
  padding:1px 4px;
  border-radius:999px;
  background:#f1edf4;
  color:#8a7d91;
  text-align:center;
  font-size:8px;
}
.timeline-month-jump:hover,
.timeline-month-jump:focus-visible{
  border-color:#cdbbd9;
  background:#f8f4fa;
  color:#5f4a70;
  outline:none;
}

.timeline-month{
  scroll-margin-top:118px;
}

@media (max-width:620px){
  .search-match-reason{
    margin-bottom:6px;
  }
  .timeline-month-nav{
    margin-left:-2px;
    margin-right:-2px;
    padding-left:2px;
    padding-right:2px;
  }
  .timeline-month-jump{
    min-height:31px;
    padding:5px 9px;
  }
  .timeline-month{
    scroll-margin-top:112px;
  }
}


/* v18.2 mobile search suggestion collapse */
.search-suggestion-list{
  overflow:visible;
}

.search-suggestion-more{
  width:100%;
  border:0;
  border-top:1px solid #ece6ef;
  background:#faf7fc;
  color:#624c76;
  padding:9px 11px;
  font-size:10px;
  font-weight:700;
  text-align:center;
}

.search-suggestion-more:hover,
.search-suggestion-more:focus-visible{
  background:#f3edf8;
  outline:none;
}

@media (max-width:620px){
  .search-suggestions{
    max-height:none;
    overflow:hidden;
  }

  .search-suggestions.is-expanded{
    max-height:52vh;
    display:flex;
    flex-direction:column;
  }

  .search-suggestions.is-expanded .search-suggestion-list{
    overflow-y:auto;
    overscroll-behavior:contain;
  }

  .search-suggestions.is-expanded .search-suggestion-more{
    flex:0 0 auto;
    position:sticky;
    bottom:0;
  }

  .search-suggestion-item{
    min-height:48px;
  }
}


/* v19 dedicated admin page */
.admin-page{
  background:#f7f4f9;
}
.admin-page .admin-page-container{
  padding-top:18px;
  padding-bottom:40px;
}
.admin-page #adminPanel{
  display:block;
  margin:0;
  padding:0;
  border:0;
}
.admin-page #adminPanel[hidden]{
  display:block;
}
.admin-page .admin-mode-bar{
  position:static;
}
.admin-page .admin-site-header{
  position:sticky;
  top:0;
  z-index:40;
}
.admin-page .admin-bootstrap{
  display:none !important;
}
.admin-public-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
@media (max-width:620px){
  .admin-page .admin-page-container{
    padding-top:10px;
  }
  .admin-page .admin-tabs{
    top:52px;
  }
}


/* v19.2: avoid fallback title flash while site-config.json is loading */
.site-config-pending #mainTitle{
  visibility:hidden;
}

/* Keep the hero height stable while the saved title is being resolved. */
.site-config-pending .hero-copy #mainTitle{
  min-height:1.25em;
}


/* v19.4 Pretendard typography + desktop header refinement */
body{
  font-family:Pretendard, "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;
  font-weight:300;
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  letter-spacing:-.012em;
}

h1,h2,h3,
.brand-main,
.card-title,
.timeline-title{
  font-family:Pretendard, "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight:700;
  word-break:keep-all;
}

h1{
  letter-spacing:-.045em;
  line-height:1.1;
}

.hero-description,
.search-match,
.source,
.card-meta,
.timeline-meta{
  line-height:1.68;
}

button,
input,
select{
  font-family:Pretendard, "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.card-title{
  letter-spacing:-.025em;
  line-height:1.45;
}

.search-suggestion-copy strong{
  letter-spacing:-.018em;
  line-height:1.5;
}

/* Header: title and handle read as one brand lockup instead of two unrelated labels. */
.site-header{
  background:rgba(247,247,245,.94);
}

.header-inner{
  min-height:64px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-width:0;
  font-weight:700;
}

.brand-main{
  font-size:15px;
  line-height:1;
  letter-spacing:-.025em;
  white-space:nowrap;
}

.brand-handle{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 9px;
  border:1px solid #e3e0e6;
  border-radius:999px;
  background:#fff;
  color:#746b79;
  font-size:11px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.01em;
  white-space:nowrap;
}

.channel-link{
  padding:9px 13px;
  font-size:12px;
  font-weight:700;
  letter-spacing:-.015em;
}

@media (min-width:621px){
  .header-inner{
    min-height:62px;
  }

  .brand{
    gap:9px;
  }

  .brand-main{
    position:relative;
    padding-right:10px;
  }

  .brand-main::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    width:1px;
    height:14px;
    background:#ded9e1;
    transform:translateY(-50%);
  }

  .brand-handle{
    border:0;
    background:transparent;
    padding:0;
    min-height:auto;
    color:#8a818e;
    font-size:12px;
    font-weight:500;
  }
}

@media (max-width:620px){
  h1{
    letter-spacing:-.035em;
    line-height:1.16;
  }

  .card-title{
    line-height:1.48;
  }

  .hero-description{
    line-height:1.72;
  }

  .brand{
    gap:7px;
  }

  .brand-main{
    font-size:14px;
  }

  .brand-handle{
    min-height:24px;
    padding:4px 7px;
    font-size:10px;
  }
}


/* v19.5 site guide */
.header-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.site-help-button{
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  border:1px solid #e3e0e6;
  border-radius:999px;
  background:#fff;
  color:#746b79;
  font-size:14px;
  font-weight:700;
  line-height:1;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;
}

.site-help-button:hover,
.site-help-button:focus-visible,
.site-help-button[aria-expanded="true"]{
  background:#f2edf6;
  border-color:#d4c7df;
  color:#5c4770;
  outline:none;
}

.site-help-button:active{
  transform:scale(.96);
}

.site-help-panel{
  position:fixed;
  z-index:80;
  top:70px;
  right:max(18px,calc((100vw - 1180px)/2));
  width:min(380px,calc(100vw - 36px));
  padding:20px;
  border:1px solid #e3dde7;
  border-radius:18px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 48px rgba(45,34,53,.16);
  backdrop-filter:blur(14px);
}

.site-help-panel[hidden],
.site-help-backdrop[hidden]{
  display:none;
}

.site-help-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}

.site-help-eyebrow{
  margin:0 0 5px;
  color:#8b8090;
  font-size:9px;
  font-weight:700;
  letter-spacing:.13em;
}

.site-help-head h2{
  margin:0;
  font-size:17px;
  line-height:1.35;
  letter-spacing:-.03em;
}

.site-help-close{
  flex:0 0 auto;
  width:30px;
  height:30px;
  border:0;
  border-radius:999px;
  background:#f5f2f6;
  color:#756b79;
  font-size:18px;
  line-height:1;
}

.site-help-intro{
  margin:12px 0 14px;
  color:#6f6673;
  font-size:12px;
  line-height:1.65;
}

.site-help-list{
  display:grid;
  gap:1px;
  overflow:hidden;
  border:1px solid #ebe6ee;
  border-radius:13px;
  background:#ebe6ee;
}

.site-help-list>div{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:10px 11px;
  background:#fff;
}

.site-help-list strong{
  color:#4c4053;
  font-size:11px;
  font-weight:700;
}

.site-help-list span{
  color:#7d7381;
  font-size:10px;
  line-height:1.55;
}

.site-help-note{
  margin:12px 0 0;
  padding:9px 10px;
  border-radius:10px;
  background:#f7f3f9;
  color:#7a6d80;
  font-size:10px;
  line-height:1.55;
}

.site-help-note b{
  color:#5f4a70;
}

.site-help-backdrop{
  display:none;
}

@media (max-width:620px){
  .header-actions{
    gap:6px;
  }

  .site-help-button{
    width:32px;
    height:32px;
    font-size:13px;
  }

  .site-help-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:79;
    background:rgba(27,22,30,.28);
    backdrop-filter:blur(2px);
  }

  .site-help-panel{
    top:auto;
    right:10px;
    bottom:10px;
    left:10px;
    width:auto;
    max-height:min(76vh,620px);
    overflow-y:auto;
    padding:18px;
    border-radius:20px;
    box-shadow:0 -12px 42px rgba(32,25,37,.2);
  }

  body.site-help-open{
    overflow:hidden;
  }

  .site-help-head h2{
    font-size:16px;
  }

  .site-help-intro{
    font-size:11px;
  }

  .site-help-list>div{
    grid-template-columns:68px minmax(0,1fr);
    padding:10px;
  }

  .site-help-list strong{
    font-size:10px;
  }

  .site-help-list span,
  .site-help-note{
    font-size:10px;
  }
}


/* v20 user navigation polish */
.empty-state-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:7px;
  margin-top:14px;
}

.empty-secondary-btn,
.empty-reset-btn{
  min-height:36px;
  border-radius:999px;
  padding:8px 12px;
  font-size:10px;
  font-weight:700;
}

.empty-secondary-btn{
  border:1px solid #ddd7e1;
  background:#fff;
  color:#6d626f;
}

.empty-secondary-btn:hover,
.empty-secondary-btn:focus-visible{
  border-color:#cbbfd1;
  background:#faf7fb;
  outline:none;
}

.empty-reset-btn{
  border:1px solid #604e82;
  background:#604e82;
  color:#fff;
}

@media (max-width:620px){
  .empty-state-actions{
    gap:6px;
  }

  .empty-secondary-btn,
  .empty-reset-btn{
    min-height:38px;
    padding:8px 11px;
    font-size:10px;
  }

  .site-help-share{
    min-height:42px;
    font-size:11px;
  }
}


/* v20.1 quick share + multiyear timeline polish */
.timeline-item.playlist-multiyear .timeline-item-date{
  color:#6d5a78;
}

.timeline-item.playlist-multiyear .timeline-years{
  margin-top:4px;
  color:#8a7d91;
  font-size:9px;
  line-height:1.5;
}




/* v20.2 cleaner result header */
.result-header{
  align-items:center;
}

.result-meta{
  min-width:0;
}

.view-toggle{
  flex:0 0 auto;
}

@media (max-width:620px){
  .result-header{
    gap:8px;
  }

  .view-toggle{
    margin-left:auto;
  }
}


/* v20.3 desktop hero handle refinement */
@media (min-width:621px){
  .hero-handle{
    margin:0 0 8px;
    transform:translateY(4px);
    font-size:10px;
    line-height:1.2;
    font-weight:500;
    letter-spacing:.015em;
  }
}


/* v21 admin operations phase 1 */
.admin-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}

.admin-dashboard-card{
  min-height:92px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  padding:15px 16px;
  border:1px solid #e5dfe8;
  border-radius:16px;
  background:#fff;
}

.admin-dashboard-card span{
  color:#84788a;
  font-size:10px;
  font-weight:700;
}

.admin-dashboard-card strong{
  color:#342d38;
  font-size:22px;
  line-height:1.1;
}

.admin-dashboard-card-wide strong{
  font-size:13px;
  line-height:1.45;
}

.admin-health-summary{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:12px 0;
}

.admin-health-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border-radius:999px;
  background:#f4f0f6;
  color:#6f6177;
  font-size:9px;
  font-weight:700;
}

.admin-health-chip b{
  color:#4f4059;
}

.admin-health-ok{
  color:#55725c;
  font-size:11px;
  font-weight:700;
}

.admin-health-list{
  display:grid;
  gap:7px;
}

.admin-health-item{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:12px;
  align-items:start;
  padding:10px 11px;
  border:1px solid #ece6ef;
  border-radius:12px;
  background:#fff;
}

.admin-health-type{
  font-size:9px;
  font-weight:700;
  color:#746679;
}

.admin-health-item strong{
  display:block;
  color:#463c4a;
  font-size:11px;
  line-height:1.45;
}

.admin-health-item small{
  display:block;
  margin-top:3px;
  color:#8b808e;
  font-size:9px;
  line-height:1.45;
}

.admin-health-item.severity-high{
  border-left:3px solid #9d2b2b;
}

.admin-health-item.severity-medium{
  border-left:3px solid #9b7a32;
}

.admin-health-item.severity-low{
  border-left:3px solid #7a7180;
}

.admin-sync-actions{
  display:flex;
  gap:8px;
  align-items:center;
}

.sync-apply-button{
  min-height:42px;
  border:1px solid #604e82;
  border-radius:12px;
  background:#604e82;
  color:#fff;
  padding:10px 15px;
  font-weight:700;
}

.sync-apply-button:disabled{
  cursor:not-allowed;
  opacity:.42;
}

.sync-preview-panel{
  margin-top:14px;
  padding:14px;
  border:1px solid #e4dce8;
  border-radius:15px;
  background:#faf8fb;
}

.sync-preview-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
}

.sync-preview-grid>div{
  padding:10px;
  border:1px solid #ebe5ee;
  border-radius:11px;
  background:#fff;
}

.sync-preview-grid span{
  display:block;
  color:#887d8c;
  font-size:9px;
  font-weight:700;
}

.sync-preview-grid strong{
  display:block;
  margin-top:4px;
  color:#43394a;
  font-size:17px;
}

.sync-preview-details{
  display:grid;
  gap:6px;
  max-height:420px;
  overflow:auto;
  margin-top:12px;
}

.sync-preview-item{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:9px;
  padding:9px 10px;
  border-radius:10px;
  background:#fff;
  border:1px solid #eee8f0;
}

.sync-preview-kind{
  color:#684e78;
  font-size:9px;
  font-weight:700;
}

.sync-preview-item strong{
  display:block;
  color:#43394a;
  font-size:10px;
  line-height:1.4;
}

.sync-preview-item small{
  display:block;
  margin-top:3px;
  color:#8e838f;
  font-size:9px;
  line-height:1.45;
}

@media (max-width:760px){
  .admin-dashboard-grid{
    grid-template-columns:1fr 1fr;
  }

  .admin-dashboard-card-wide{
    grid-column:1/-1;
  }

  .sync-preview-grid{
    grid-template-columns:1fr 1fr;
  }

  .admin-health-item,
  .sync-preview-item{
    grid-template-columns:1fr;
    gap:5px;
  }

  .admin-sync-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .admin-sync-actions button{
    width:100%;
  }
}


/* v22 review queue + admin history */
.admin-review-queue-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 12px;
}

.admin-review-filter-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.admin-review-filter-chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #e4dce8;
  border-radius:999px;
  background:#fff;
  color:#756a79;
  font-size:9px;
  font-weight:700;
}

.admin-review-filter-chip b{
  min-width:17px;
  padding:1px 5px;
  border-radius:999px;
  background:#f2edf4;
  color:#65566e;
  font-size:8px;
}

.admin-review-filter-chip.active{
  border-color:#766087;
  background:#f4eff7;
  color:#594665;
}

.admin-review-filter-chip.active b{
  background:#fff;
}

.admin-review-sort{
  flex:0 0 auto;
  display:grid;
  gap:5px;
}

.admin-review-sort span{
  color:#8a7f8e;
  font-size:9px;
  font-weight:700;
}

.admin-review-sort select{
  min-height:34px;
  border:1px solid #dfd8e3;
  border-radius:10px;
  background:#fff;
  padding:6px 28px 6px 9px;
  color:#5f5463;
  font-size:9px;
}

.admin-review-reason-detail{
  margin:8px 0 7px;
  padding:8px 10px;
  border-radius:10px;
  background:#f7f3f8;
  color:#75677c;
  font-size:9px;
  line-height:1.5;
}

.admin-empty-complete.muted{
  opacity:.78;
}

.admin-small-button{
  min-height:34px;
  padding:7px 10px;
  border:1px solid #dfd8e3;
  border-radius:10px;
  background:#fff;
  color:#6b5e70;
  font-size:9px;
  font-weight:700;
}

.admin-history-list{
  display:grid;
  gap:8px;
  margin-top:12px;
}

.admin-history-item{
  display:grid;
  grid-template-columns:148px minmax(0,1fr);
  gap:14px;
  padding:12px 13px;
  border:1px solid #ebe5ee;
  border-radius:13px;
  background:#fff;
}

.admin-history-meta{
  display:grid;
  align-content:start;
  gap:5px;
}

.admin-history-action{
  width:max-content;
  max-width:100%;
  padding:4px 7px;
  border-radius:999px;
  background:#f2edf4;
  color:#634f70;
  font-size:8px;
  font-weight:700;
}

.admin-history-meta time{
  color:#938896;
  font-size:8px;
  line-height:1.4;
}

.admin-history-body strong{
  display:block;
  color:#453b49;
  font-size:11px;
  line-height:1.45;
}

.admin-history-video-id{
  display:block;
  margin-top:2px;
  color:#9b919d;
  font-size:8px;
}

.admin-history-change{
  display:grid;
  gap:4px;
  margin-top:7px;
}

.admin-history-change span{
  color:#817584;
  font-size:9px;
  line-height:1.5;
  word-break:break-word;
}

.admin-history-change b{
  display:inline-block;
  min-width:29px;
  margin-right:4px;
  color:#5e5263;
}

@media (max-width:760px){
  .admin-review-queue-toolbar{
    align-items:stretch;
    flex-direction:column;
  }

  .admin-review-sort{
    width:100%;
  }

  .admin-review-sort select{
    width:100%;
  }

  .admin-review-filter-chips{
    flex-wrap:nowrap;
    overflow-x:auto;
    padding-bottom:2px;
    scrollbar-width:none;
  }

  .admin-review-filter-chips::-webkit-scrollbar{
    display:none;
  }

  .admin-review-filter-chip{
    flex:0 0 auto;
  }

  .admin-history-item{
    grid-template-columns:1fr;
    gap:7px;
  }

  .admin-history-meta{
    grid-template-columns:max-content 1fr;
    align-items:center;
  }

  .admin-history-meta time{
    text-align:right;
  }
}


/* v22.1 simple history undo */
.admin-history-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.admin-history-undo-btn{
  flex:0 0 auto;
  min-height:30px;
  padding:6px 9px;
  border:1px solid #d9d0de;
  border-radius:9px;
  background:#fff;
  color:#6a5874;
  font-size:8px;
  font-weight:700;
}

.admin-history-undo-btn:hover,
.admin-history-undo-btn:focus-visible{
  border-color:#bfaec9;
  background:#f7f2f9;
  outline:none;
}

.admin-history-undo-btn:disabled{
  cursor:not-allowed;
  opacity:.45;
}

.admin-history-item.is-undo{
  background:#faf9fb;
}

.admin-history-item.is-undo .admin-history-action{
  background:#ece9ef;
  color:#786f7d;
}

@media (max-width:760px){
  .admin-history-title-row{
    gap:8px;
  }
}


/* v22.4 admin authentication gate */
.admin-page.admin-locked .admin-tabs,
.admin-page.admin-locked .admin-tab-panel{
  display:none !important;
}

.admin-page.admin-locked .admin-heading{
  display:none;
}

.admin-page.admin-locked .admin-panel{
  max-width:620px;
  margin-left:auto;
  margin-right:auto;
}

.admin-page.admin-locked .admin-auth-card{
  margin-top:44px;
  padding:34px 30px;
  text-align:center;
}

.admin-page.admin-locked .admin-auth-card .admin-help{
  max-width:420px;
  margin-left:auto;
  margin-right:auto;
}

.admin-auth-lock-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  margin:0 auto 12px;
  border:1px solid #ded5e3;
  border-radius:50%;
  background:#f7f3f9;
  color:#66536f;
  font-size:18px;
  font-weight:700;
}

.admin-login-row{
  max-width:440px;
  margin:16px auto 0;
}

.admin-login-row input{
  min-width:0;
}

.admin-mode-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.admin-logout-btn{
  min-height:30px;
  padding:6px 9px;
  border:1px solid #ded7e2;
  border-radius:9px;
  background:#fff;
  color:#766a7b;
  font-size:8px;
  font-weight:700;
}

.admin-logout-btn:hover,
.admin-logout-btn:focus-visible{
  border-color:#c6b8cc;
  background:#f8f4f9;
  outline:none;
}

@media (max-width:620px){
  .admin-page.admin-locked .admin-auth-card{
    margin-top:24px;
    padding:26px 18px;
  }

  .admin-login-row{
    display:grid;
    grid-template-columns:1fr;
  }

  .admin-login-row button{
    width:100%;
  }
}


/* v23 admin action links + restore points */
.admin-dashboard-action{
  appearance:none;
  width:100%;
  text-align:left;
  font:inherit;
  color:inherit;
  cursor:pointer;
}

.admin-dashboard-action small{
  display:block;
  margin-top:8px;
  color:#7d6d84;
  font-size:8px;
  font-weight:700;
}

.admin-dashboard-action:hover,
.admin-dashboard-action:focus-visible{
  border-color:#cfc2d6;
  background:#fcf9fd;
  outline:none;
  transform:translateY(-1px);
}

.admin-health-chip{
  appearance:none;
  cursor:pointer;
  font:inherit;
}

.admin-health-chip.active{
  border-color:#c8b8d1;
  background:#f2ebf5;
}

.admin-health-item{
  align-items:center;
}

.admin-health-go{
  flex:0 0 auto;
  margin-left:auto;
  padding:6px 9px;
  border:1px solid #ddd4e1;
  border-radius:9px;
  background:#fff;
  color:#6f6077;
  font-size:8px;
  font-weight:700;
  cursor:pointer;
}

.admin-health-go:hover,
.admin-health-go:focus-visible{
  border-color:#c4b4cc;
  background:#f8f4fa;
  outline:none;
}

.admin-content-mode{
  display:grid;
  gap:5px;
  min-width:150px;
}

.admin-content-mode span{
  font-size:8px;
  font-weight:700;
  color:#766b7c;
}

.admin-content-mode select{
  min-height:38px;
}

.admin-focus-item{
  outline:2px solid #b9a2c5;
  outline-offset:3px;
  transition:outline-color .25s ease;
}

.admin-backup-list{
  display:grid;
  gap:9px;
  margin-top:10px;
}

.admin-backup-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}

.admin-backup-item > div{
  display:grid;
  gap:3px;
  min-width:0;
}

.admin-backup-item strong{
  font-size:10px;
}

.admin-backup-item small{
  color:var(--muted);
  font-size:8px;
}

.admin-backup-restore-btn{
  flex:0 0 auto;
  min-height:32px;
  padding:7px 10px;
  border:1px solid #d8cedd;
  border-radius:9px;
  background:#fff;
  color:#66536f;
  font-size:8px;
  font-weight:700;
  cursor:pointer;
}

.admin-backup-restore-btn:hover,
.admin-backup-restore-btn:focus-visible{
  border-color:#baa7c4;
  background:#f7f1f9;
  outline:none;
}

.admin-backup-restore-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

@media (max-width:620px){
  .admin-health-item{
    grid-template-columns:1fr;
  }

  .admin-health-go{
    margin-left:0;
    justify-self:start;
  }

  .admin-content-mode{
    width:100%;
  }

  .admin-backup-item{
    align-items:flex-start;
    flex-direction:column;
  }

  .admin-backup-restore-btn{
    width:100%;
  }
}


/* v23.2 dashboard / history refresh icons */
.admin-heading-actions{
  display:flex;
  align-items:center;
  gap:7px;
}

.admin-icon-button{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  padding:0;
  border:1px solid #ddd6e1;
  border-radius:9px;
  background:#fff;
  color:#716477;
  cursor:pointer;
}

.admin-icon-button svg{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.admin-icon-button:hover,
.admin-icon-button:focus-visible{
  border-color:#c2b4c9;
  background:#f8f4fa;
  color:#594762;
  outline:none;
}

.admin-icon-button:active svg{
  transform:rotate(25deg);
}


/* v24 video format: standard vs Shorts */
.thumb{
  position:relative;
}

.video-format-icon{
  position:absolute;
  right:8px;
  bottom:8px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(18,18,18,.82);
  color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.14);
  backdrop-filter:blur(4px);
}

.video-format-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.video-format-icon .format-play{
  fill:currentColor;
  stroke:none;
}

.video-format-icon.is-shorts{
  border-radius:10px 6px 10px 6px;
}

.list-view .video-format-icon{
  right:6px;
  bottom:6px;
  width:24px;
  height:24px;
}

.list-view .video-format-icon svg{
  width:15px;
  height:15px;
}

.video-format-admin-block{
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--line);
}

.video-format-btn.active{
  border-color:#bdaec6;
  background:#f3edf6;
}

@media (max-width:620px){
  .video-format-icon{
    width:24px;
    height:24px;
    right:6px;
    bottom:6px;
  }
}


/* v24.1 admin content progressive loading */
.admin-content-load-more-wrap{
  display:flex;
  justify-content:center;
  margin-top:14px;
}

.admin-content-load-more{
  min-width:150px;
  min-height:38px;
  padding:8px 16px;
  border:1px solid #d8d1dc;
  border-radius:10px;
  background:#fff;
  color:#65596b;
  font-size:9px;
  font-weight:700;
  cursor:pointer;
}

.admin-content-load-more:hover,
.admin-content-load-more:focus-visible{
  border-color:#bfaec8;
  background:#f8f4fa;
  outline:none;
}

/* v25.0 stabilization pass 1 — consolidated final overrides */

:root{
  --type-strong:600;
  --type-medium:550;
  --type-soft:500;
}

.card-title,.video-grid.list-view .card-title,.timeline-title,
.admin-content-copy strong,.admin-unknown-top > strong{
  font-weight:var(--type-strong);
  letter-spacing:-.018em;
}
.card-title{line-height:1.42}
.date-chip,.date-context-link{
  font-weight:var(--type-medium);
  letter-spacing:-.008em;
  line-height:1.25;
}
.year-summary-chip,.badge,.precision-badge,.admin-content-badge,.admin-reason-badge{
  font-weight:500!important;
  letter-spacing:-.008em;
}
.source,.note,.card-meta,.timeline-meta,.timeline-years,.timeline-source,.admin-content-copy small{
  font-weight:var(--type-soft);
  letter-spacing:-.008em;
}
h1,h2,h3,.brand-main{font-weight:700}

.thumb,.timeline-thumb{position:relative}
.video-format-icon{
  position:absolute;right:8px;bottom:8px;width:26px;height:26px;
  display:grid;place-items:center;border-radius:9px;
  background:rgba(23,21,26,.72);color:#fff;
  box-shadow:0 2px 7px rgba(0,0,0,.10);backdrop-filter:blur(4px);
}
.video-format-icon svg{
  width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;
}
.video-format-icon .format-play{fill:currentColor;stroke:none}
.video-format-icon.is-shorts{border-radius:10px 6px 10px 6px}
.list-view .video-format-icon,.timeline-thumb .video-format-icon{
  width:22px;height:22px;right:6px;bottom:6px;
}
.list-view .video-format-icon svg,.timeline-thumb .video-format-icon svg{
  width:14px;height:14px;
}

/* every multi-date card: 3 columns */
.video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  align-items:stretch;
}
.video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid .year-summary-chip{
  grid-column:1/-1;width:auto;max-width:100%;white-space:normal;
  overflow:visible;text-overflow:clip;line-height:1.35;
  justify-content:flex-start;padding:7px 10px;
}
.video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-chip,
.video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-extra:not([hidden]) .date-chip{
  width:100%;min-width:0;justify-content:center;text-align:center;
  padding:6px 5px;white-space:nowrap;
}
.video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-extra:not([hidden]){display:contents}
.video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid .date-more-btn{
  grid-column:1/-1;justify-self:start;
}

/* list/timeline metadata */
.video-grid.list-view .source{
  display:block;margin-top:4px;font-size:10px;line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.video-grid.list-view .source-context-link{
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;
}
.timeline-source{
  margin-top:4px;color:#8b828f;font-size:9px;line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.timeline-item-date{
  margin-bottom:3px;font-weight:var(--type-medium);letter-spacing:-.008em;
}
.timeline-title{line-height:1.42}

.video-card{box-shadow:0 4px 14px rgba(60,48,80,.035)}
.video-card:hover{
  transform:translateY(-2px);border-color:#e0d8e8;
  box-shadow:0 8px 20px rgba(77,58,108,.065);
}

.empty-state-actions{
  display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:14px;
}
.empty-state-actions .empty-secondary-btn,
.empty-state-actions .empty-reset-btn{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  min-height:36px;height:36px;margin:0;padding:0 13px;border-radius:999px;
  font-size:10px;line-height:1;font-weight:700;white-space:nowrap;
}
.empty-state-actions .empty-secondary-btn{
  border:1px solid #ddd7e1;background:#fff;color:#6d626f;
}
.empty-state-actions .empty-reset-btn{
  border:1px solid #604e82;background:#604e82;color:#fff;
}

/* stable compact toolbar */
.toolbar-sticky-sentinel{
  display:block;width:100%;height:1px;margin-top:-1px;pointer-events:none;
}
.toolbar-fixed-placeholder[hidden]{display:none}

@media (min-width:621px){
  .toolbar-panel{position:relative;top:auto}
  .toolbar-panel:not(.is-compact-sticky) .filter-extra{
    grid-template-columns:
      minmax(150px,1fr) minmax(150px,1fr) minmax(150px,1fr)
      minmax(150px,1fr) minmax(170px,1fr) auto;
  }
  .toolbar-panel:not(.is-compact-sticky) .reset-filter-button{
    justify-self:end;min-width:108px;
  }

  .toolbar-panel.is-compact-sticky{
    position:fixed;top:72px;left:50%;right:auto;
    width:min(1180px,calc(100% - 36px));margin:0;
    transform:translateX(-50%);z-index:38;
    padding:7px 9px;border-radius:16px;
    background:rgba(255,255,255,.97);
    box-shadow:0 12px 28px rgba(38,31,43,.10);
    backdrop-filter:blur(12px);
  }
  .toolbar-panel.is-compact-sticky .stat-card{display:none}
  .toolbar-panel.is-compact-sticky .field > span{display:none}
  .toolbar-panel.is-compact-sticky .field{
    min-height:42px;padding:4px 8px 3px;border-radius:12px;
  }
  .toolbar-panel.is-compact-sticky .field input,
  .toolbar-panel.is-compact-sticky .field select{
    font-size:13px;line-height:1.25;
  }
  .toolbar-panel.is-compact-sticky .search-control{min-height:32px}
  .toolbar-panel.is-compact-sticky .search-icon{font-size:17px}
  .toolbar-panel.is-compact-sticky .filter-extra{margin-top:0;gap:6px}
  .toolbar-panel.is-compact-sticky .reset-filter-button{
    min-height:42px;border-radius:12px;padding:0 11px;font-size:12px;white-space:nowrap;
  }
  .toolbar-panel.is-compact-sticky .field select{
    width:100%;min-width:0;padding-right:20px;text-overflow:ellipsis;
  }
  body.compact-toolbar-active .timeline-year-heading{top:132px}
  body.compact-toolbar-active .timeline-playlists .timeline-year-heading{top:auto}
}

@media (min-width:901px){
  .toolbar-panel.is-compact-sticky{
    display:grid;
    grid-template-columns:minmax(300px,1.35fr) minmax(660px,3fr);
    align-items:center;gap:7px;
  }
  .toolbar-panel.is-compact-sticky .toolbar-primary{display:block}
  .toolbar-panel.is-compact-sticky .filter-extra{
    grid-template-columns:
      minmax(142px,1.12fr) minmax(104px,.82fr) minmax(108px,.86fr)
      minmax(108px,.86fr) minmax(136px,1.04fr) auto;
  }
  .toolbar-panel.is-compact-sticky #yearFilter{
    font-size:12.5px;letter-spacing:-.015em;
  }
}
@media (min-width:621px) and (max-width:900px){
  .toolbar-panel.is-compact-sticky .toolbar-primary{grid-template-columns:1fr}
  .toolbar-panel.is-compact-sticky .filter-extra{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* mobile current 5-filter layout */
@media (max-width:620px){
  .filter-extra{grid-template-columns:1fr 1fr;gap:8px}
  .filter-extra .field:nth-child(1),
  .filter-extra .field:nth-child(2),
  .filter-extra .field:nth-child(3),
  .filter-extra .field:nth-child(4){grid-column:auto}
  .filter-extra .field:nth-child(5){grid-column:1/-1}
  .filter-extra .reset-filter-button{grid-column:1/-1}

  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;
  }
  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-chip,
  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-extra:not([hidden]) .date-chip{
    padding:5px 3px;font-size:9.5px;
  }

  .empty-state-actions .empty-secondary-btn,
  .empty-state-actions .empty-reset-btn{
    min-height:38px;height:38px;padding:0 12px;
  }
  .card-title,.video-grid.list-view .card-title,.timeline-title{font-weight:500}
  .date-chip,.date-context-link{font-weight:500}
}

/* admin video-format confidence */
.video-format-admin-block{
  margin-top:9px;padding-top:9px;border-top:1px solid var(--line);
}
.video-format-current strong{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;
}
.video-format-confidence{
  display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;
  border-radius:999px;font-size:8px;line-height:1;font-style:normal;font-weight:700;
}
.video-format-confidence.confidence-low{background:#f8ecef;color:#8d5664}
.video-format-confidence.confidence-medium{background:#f6f0e4;color:#806b3f}
.video-format-confidence.confidence-high{background:#edf4ef;color:#57705d}
.video-format-confidence.confidence-manual{background:#f0ebf5;color:#685875}
.video-format-reason{
  display:block;margin-top:4px;color:#8b808e;font-size:8px;line-height:1.45;
}
.video-format-btn.active{border-color:#bdaec6;background:#f3edf6}

/* admin density */
.admin-page .admin-card{
  margin:10px 0;padding:18px;border-color:#ece7ef;border-radius:16px;box-shadow:none;
}
.admin-page .admin-dashboard-card{
  min-height:82px;padding:13px 14px;border-color:#ebe5ee;border-radius:14px;box-shadow:none;
}
.admin-page .admin-health-card,
.admin-page .admin-content-card,
.admin-page .admin-history-card{
  border-color:#e8e1eb;background:rgba(255,255,255,.82);
}
.admin-page .admin-content-item,
.admin-page .admin-health-item,
.admin-page .admin-review-item{
  border-color:#eee9f1;box-shadow:none;
}
.admin-page .playlist-scope-block,
.admin-page .video-format-admin-block{
  background:#faf8fb;border-color:#ece6ef;border-radius:11px;
}


/* v25.1 compact date label size + clearer admin format review */
@media (min-width:621px){
  .toolbar-panel.is-compact-sticky #typeFilter{
    font-size:11px;
    letter-spacing:-.01em;
  }
}

.video-format-reason.needs-review{
  color:#8a5d66;
  font-weight:500;
}

.video-format-confirm-btn{
  width:100%;
  margin:8px 0 7px;
  justify-content:center;
  border-color:#d8cde0;
  background:#f7f2fa;
  color:#63526f;
}

.video-format-confirm-btn.attention{
  border-color:#cdb8d6;
  background:#f1e8f5;
  color:#5e476d;
}

.video-format-confirm-btn:hover,
.video-format-confirm-btn:focus-visible{
  border-color:#bba7c5;
  background:#eee4f3;
  outline:none;
}


/* v25.3 bulk YouTube Shorts verification */
.admin-video-format-verify{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 12px;
  padding:13px 14px;
  border:1px solid #e8e0ec;
  border-radius:13px;
  background:#faf8fb;
}
.admin-video-format-verify > div{min-width:0}
.admin-video-format-verify strong{
  display:block;
  margin-bottom:3px;
  font-size:12px;
  color:#5d4d68;
}
.admin-video-format-verify .admin-help{
  margin:0;
  max-width:680px;
}
.admin-video-format-verify button{
  flex:0 0 auto;
  min-height:38px;
}
@media (max-width:620px){
  .admin-video-format-verify{
    align-items:stretch;
    flex-direction:column;
  }
  .admin-video-format-verify button{width:100%}
}


/* v25.4 Shorts preview -> apply flow */
.admin-video-format-preview{
  margin:12px 0 16px;
  padding:14px;
  border:1px solid #e5dce9;
  border-radius:14px;
  background:#fff;
}

.format-preview-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-bottom:10px;
}

.format-preview-summary > div{
  padding:10px 11px;
  border:1px solid #eee8f0;
  border-radius:11px;
  background:#faf8fb;
}

.format-preview-summary span{
  display:block;
  margin-bottom:3px;
  color:#918695;
  font-size:8px;
  font-weight:700;
}

.format-preview-summary strong{
  color:#51445a;
  font-size:15px;
}

.format-preview-note{
  margin:0 0 12px;
  padding:9px 10px;
  border-radius:10px;
  background:#f7f3f9;
  color:#76677e;
  font-size:9px;
  line-height:1.5;
}

.format-preview-group{
  margin-top:12px;
}

.format-preview-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
}

.format-preview-heading strong{
  font-size:11px;
  color:#584961;
}

.format-preview-heading span{
  color:#918695;
  font-size:8px;
}

.format-preview-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}

.format-preview-item{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-width:0;
  padding:7px;
  border:1px solid #eee9f1;
  border-radius:10px;
  background:#fcfbfd;
}

.format-preview-thumb{
  width:72px;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:7px;
  background:#f0edf2;
}

.format-preview-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.format-preview-copy{
  min-width:0;
}

.format-preview-copy strong{
  display:block;
  overflow:hidden;
  color:#504754;
  font-size:9px;
  line-height:1.35;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.format-preview-copy small{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:#918894;
  font-size:7px;
  line-height:1.4;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.format-preview-open{
  color:#6a5875;
  font-size:8px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}

.format-preview-actions{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #eee8f0;
}

.format-preview-apply{
  border-color:#c9b7d2!important;
  background:#f1e9f5!important;
  color:#5d4969!important;
}

@media (max-width:700px){
  .format-preview-summary{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .format-preview-list{
    grid-template-columns:1fr;
  }

  .format-preview-item{
    grid-template-columns:68px minmax(0,1fr);
  }

  .format-preview-open{
    grid-column:2;
    justify-self:start;
  }

  .format-preview-actions{
    flex-direction:column;
  }

  .format-preview-actions button{
    width:100%;
  }
}


/* v25.5 stratified Shorts preview samples */
.format-preview-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  margin-top:8px;
  padding:0 11px;
  border:1px solid #ddd2e2;
  border-radius:999px;
  background:#fff;
  color:#6d5b78;
  font-size:8px;
  font-weight:700;
}

.format-preview-more:hover,
.format-preview-more:focus-visible{
  border-color:#c5b5cf;
  background:#f8f4fa;
  outline:none;
}

.format-preview-reviewed-count{
  margin-right:auto;
  align-self:center;
  color:#908693;
  font-size:8px;
  font-weight:700;
}

@media (max-width:700px){
  .format-preview-reviewed-count{
    width:100%;
    margin-right:0;
    text-align:left;
  }
}


/* v25.7 staged Shorts diagnostics */
.admin-video-format-stage-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:7px;
}
.admin-video-format-stage-actions button{min-height:36px}
.admin-video-format-stage-actions button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.admin-video-format-diagnostic{
  margin:10px 0 14px;
  padding:12px;
  border:1px solid #e8e0ec;
  border-radius:12px;
  background:#fcfbfd;
}
.format-diagnostic-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
}
.format-diagnostic-grid > div{
  padding:8px;
  border:1px solid #eee8f0;
  border-radius:9px;
  background:#fff;
}
.format-diagnostic-grid span{
  display:block;
  color:#998f9b;
  font-size:7px;
  font-weight:700;
}
.format-diagnostic-grid strong{
  display:block;
  margin-top:2px;
  color:#55495b;
  font-size:12px;
}
.format-diagnostic-message{
  margin:9px 0 0;
  font-size:9px;
  line-height:1.5;
}
.format-diagnostic-message.ok{color:#5d735f}
.format-diagnostic-message.warn{color:#8a5d66}
@media (max-width:700px){
  .admin-video-format-stage-actions{
    width:100%;
    flex-direction:column;
  }
  .admin-video-format-stage-actions button{width:100%}
  .format-diagnostic-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* v25.8 PC multi-date card + timeline playlist regression fix */

/* PC 카드: 플레이리스트 배지가 날짜 영역 폭을 잡아먹어
   3열 날짜 숫자가 겹치던 문제를 막는다. */
@media (min-width:621px){
  .video-grid:not(.list-view):not(.timeline-view) .card-meta-row:has(.dates.multi-date-grid){
    display:block;
  }

  .video-grid:not(.list-view):not(.timeline-view) .card-meta-row:has(.dates.multi-date-grid) .dates{
    width:100%;
    min-width:0;
  }

  .video-grid:not(.list-view):not(.timeline-view) .card-meta-row:has(.dates.multi-date-grid) .card-badges{
    justify-content:flex-start;
    margin-top:7px;
  }

  /* PC에서도 모바일과 비슷한 크기로 날짜 숫자를 유지 */
  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-chip,
  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid > .date-extra:not([hidden]) .date-chip{
    min-width:0;
    padding:5px 4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9.5px;
    line-height:1.25;
  }

  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid .year-summary-chip{
    font-size:10px;
  }

  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid .date-more-btn{
    font-size:9.5px;
  }
}

/* 연도·월 보기의 플레이리스트 허브:
   일반 타임라인의 76px 월 라벨 열을 상속해서 긴 '다년도 플레이리스트'
   제목과 영상 목록이 겹치던 문제를 제거한다. */
.timeline-playlist-hub .timeline-month{
  display:block;
  grid-template-columns:none;
  gap:0;
}

.timeline-playlist-hub .timeline-month > h3{
  margin:0 0 9px;
  padding-left:10px;
  min-width:0;
  white-space:normal;
  line-height:1.4;
}

.timeline-playlist-hub .timeline-month > .timeline-items{
  width:100%;
  min-width:0;
}

.timeline-playlist-hub .timeline-item{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}

.timeline-playlist-hub .timeline-item-body{
  min-width:0;
}

.timeline-playlist-hub .timeline-title,
.timeline-playlist-hub .timeline-source,
.timeline-playlist-hub .timeline-years{
  max-width:100%;
}

@media (max-width:620px){
  .timeline-playlist-hub .timeline-month > h3{
    margin-bottom:6px;
  }
}


/* v25.10 PC date chip consistency + badge alignment */

/* PC 카드형: 단일 날짜도 다중 날짜와 동일한 작은 칩 크기로 통일 */
@media (min-width:621px){
  .video-grid:not(.list-view):not(.timeline-view) .dates > .date-chip,
  .video-grid:not(.list-view):not(.timeline-view) .dates > .date-context-link{
    min-width:0;
    padding:5px 7px;
    font-size:9.5px;
    line-height:1.25;
  }

  .video-grid:not(.list-view):not(.timeline-view) .dates:not(.multi-date-grid){
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
  }

  /* 다년도/혼합연도 카드의 상태 배지는 가운데 떠보이지 않게 왼쪽 정렬 */
  .video-grid:not(.list-view):not(.timeline-view) .card-badges{
    justify-content:flex-start;
    text-align:left;
  }

  .video-grid:not(.list-view):not(.timeline-view) .card-badges .badge{
    margin-left:0;
    margin-right:auto;
  }

  /* 다중 날짜 카드에서는 배지를 날짜 영역 바로 아래 왼쪽에 붙임 */
  .video-grid:not(.list-view):not(.timeline-view) .card-meta-row:has(.dates.multi-date-grid) .card-badges{
    display:flex;
    width:100%;
    justify-content:flex-start;
    margin-top:7px;
  }
}


/* v25.11 card metadata compacting
   - status badges -> thumbnail top-left
   - mobile date +N toggle -> summary row */

/* Thumbnail status badges: shared by PC/mobile card/list views */
.thumb-status-badges{
  position:absolute;
  top:9px;
  left:9px;
  z-index:3;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  max-width:calc(100% - 54px);
  pointer-events:none;
}

.thumb-status-badges .badge{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(39,28,48,.80);
  color:#f5eef9;
  box-shadow:0 2px 8px rgba(0,0,0,.12);
  backdrop-filter:blur(6px);
  font-size:9px;
  line-height:1;
  font-weight:700!important;
  white-space:nowrap;
}

.thumb-status-badges .badge.playlist,
.thumb-status-badges .badge.mixed,
.thumb-status-badges .badge.unknown{
  background:rgba(39,28,48,.80);
  border-color:rgba(255,255,255,.22);
  color:#f5eef9;
}

/* Old body badge area is no longer used in card view. */
.video-grid:not(.timeline-view) .card-badges{
  display:none!important;
}

/* Date structure shared by card views */
.date-summary-row{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  min-width:0;
}

.date-chip-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  width:100%;
  min-width:0;
}

.date-chip-grid > .date-chip,
.date-chip-grid > .date-extra:not([hidden]) .date-chip{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  justify-content:center;
  text-align:center;
}

.date-chip-grid > .date-extra:not([hidden]){
  display:contents;
}

.mobile-date-summary-chip,
.date-mobile-toggle{
  display:none;
}

/* PC keeps the familiar text "날짜 N개 더보기". */
@media (min-width:621px){
  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:7px;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-summary-row .year-summary-chip{
    width:100%;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-chip-grid > .date-chip,
  .video-grid:not(.list-view):not(.timeline-view) .date-chip-grid > .date-extra:not([hidden]) .date-chip{
    padding:5px 4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9.5px;
    line-height:1.25;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-more-desktop{
    align-self:flex-start;
  }
}

/* Mobile: year summary + compact +N control on one line,
   first three dates remain on the second line.
   When opened, +N becomes − and the remaining dates flow below. */
@media (max-width:620px){
  .thumb-status-badges{
    top:7px;
    left:7px;
    gap:4px;
    max-width:calc(100% - 48px);
  }

  .thumb-status-badges .badge{
    min-height:20px;
    padding:3px 6px;
    font-size:8px;
  }

  .video-grid:not(.list-view):not(.timeline-view) .dates.multi-date-grid{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:6px;
    margin-top:11px;
    margin-bottom:10px;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-summary-row{
    justify-content:space-between;
    gap:7px;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-summary-row .year-summary-chip{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    margin:0;
    padding:5px 7px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9.5px;
  }

  .mobile-date-summary-chip{
    display:inline-flex;
    flex:1 1 auto;
    min-width:0;
    align-items:center;
    padding:5px 7px;
    border:1px solid #ded0ed;
    border-radius:999px;
    background:#e9e0f6;
    color:#5c477d;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9.5px;
    line-height:1.25;
    font-weight:700;
  }

  .date-mobile-toggle{
    flex:0 0 auto;
    display:inline-grid;
    place-items:center;
    min-width:31px;
    height:27px;
    padding:0 8px;
    border:1px solid #ded4e6;
    border-radius:999px;
    background:#f6f2f9;
    color:#675478;
    font-size:10px;
    line-height:1;
    font-weight:700;
  }

  .date-mobile-toggle[aria-expanded="true"]{
    min-width:27px;
    padding:0 7px;
    font-size:15px;
  }

  .date-more-desktop{
    display:none!important;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-chip-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }

  .video-grid:not(.list-view):not(.timeline-view) .date-chip-grid > .date-chip,
  .video-grid:not(.list-view):not(.timeline-view) .date-chip-grid > .date-extra:not([hidden]) .date-chip{
    padding:5px 3px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:9.5px;
    line-height:1.2;
  }

  /* Single date cards keep the same compact chip sizing. */
  .video-grid:not(.list-view):not(.timeline-view) .dates:not(.multi-date-grid) .date-chip{
    padding:5px 7px;
    font-size:9.5px;
    line-height:1.25;
  }
}

/* List view also gets thumbnail overlay badges without increasing row height. */
.video-grid.list-view .thumb-status-badges{
  top:6px;
  left:6px;
  max-width:calc(100% - 38px);
}

.video-grid.list-view .thumb-status-badges .badge{
  min-height:18px;
  padding:3px 5px;
  font-size:7px;
}


/* v25.13 loading placeholder + retry + dialog focus polish */
#heroTotal,
#videoCount{
  display:inline-block;
  min-width:3.2ch;
}

#videoCount{
  min-width:4.6ch;
}

.count-placeholder{
  position:relative;
  color:transparent!important;
  user-select:none;
}

.count-placeholder::after{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:100%;
  height:.72em;
  transform:translateY(-50%);
  border-radius:999px;
  background:linear-gradient(
    90deg,
    rgba(105,88,124,.10) 0%,
    rgba(105,88,124,.20) 48%,
    rgba(105,88,124,.10) 100%
  );
  background-size:220% 100%;
  animation:archive-count-pulse 1.35s ease-in-out infinite;
}

@keyframes archive-count-pulse{
  0%{background-position:100% 0;opacity:.72}
  50%{opacity:1}
  100%{background-position:-100% 0;opacity:.72}
}

@media (prefers-reduced-motion:reduce){
  .count-placeholder::after{
    animation:none;
  }
}

.public-retry-btn{
  margin-top:12px;
}

.public-retry-btn:disabled{
  opacity:.58;
  cursor:wait;
}

/* Keep the guide's keyboard focus visibly inside the dialog. */
.site-help-panel :focus-visible{
  outline:2px solid rgba(99,74,128,.58);
  outline-offset:3px;
}


/* v25.14 thumbnail click cue + card CTA cleanup */
.thumb{
  cursor:pointer;
}

.thumb img{
  transition:filter .18s ease, transform .22s ease;
}

@media (hover:hover) and (pointer:fine){
  .thumb::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    z-index:2;
    width:42px;
    height:42px;
    transform:translate(-50%,-50%) scale(.9);
    border-radius:50%;
    background:rgba(255,255,255,.90);
    box-shadow:0 5px 18px rgba(20,12,28,.16);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }

  .thumb::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    z-index:3;
    margin-left:2px;
    width:0;
    height:0;
    transform:translate(-45%,-50%) scale(.9);
    border-top:7px solid transparent;
    border-bottom:7px solid transparent;
    border-left:11px solid rgba(60,44,76,.88);
    opacity:0;
    pointer-events:none;
    transition:opacity .18s ease, transform .18s ease;
  }

  .thumb:hover img{
    filter:brightness(1.08);
    transform:scale(1.015);
  }

  .thumb:hover::after,
  .thumb:hover::before{
    opacity:1;
    transform:translate(-50%,-50%) scale(1);
  }

  .thumb:hover::before{
    transform:translate(-45%,-50%) scale(1);
  }
}

@media (prefers-reduced-motion:reduce){
  .thumb img,
  .thumb::after,
  .thumb::before{
    transition:none!important;
  }

  .thumb:hover img{
    transform:none;
  }
}


/* v25.15 small accessibility + deployment visibility polish */
.admin-mode-label{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.admin-build-version{
  display:inline-flex;
  align-items:center;
  padding:3px 6px;
  border:1px solid #ded4e7;
  border-radius:999px;
  background:#fff;
  color:#887b93;
  font-size:9px;
  font-weight:700;
  line-height:1;
  letter-spacing:.02em;
}

.view-toggle-btn[aria-pressed="true"]{
  background:var(--soft);
  color:var(--text);
}


/* v26.0 step 1 - deploy patch ZIP inspection */
.admin-deploy-step-badge{
  flex:0 0 auto;display:inline-flex;align-items:center;padding:6px 9px;
  border:1px solid #ded4e8;border-radius:999px;background:#f6f1fa;
  color:#6b577d;font-size:10px;font-weight:700;
}
.deploy-upload-box{margin-top:16px}
.deploy-file-button{
  display:flex;align-items:center;gap:12px;padding:16px;border:1px dashed #d7cce0;
  border-radius:14px;background:#faf8fc;cursor:pointer;
  transition:border-color .16s ease,background .16s ease;
}
.deploy-file-button:hover{border-color:#a995ba;background:#f7f2fa}
.deploy-file-icon{
  flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:11px;
  background:#66507c;color:#fff;font-size:9px;font-weight:700;letter-spacing:.06em;
}
.deploy-file-button strong{display:block;font-size:13px}
.deploy-file-button small{display:block;margin-top:3px;color:#918899;font-size:10px}
.deploy-preview{margin-top:14px}
.deploy-summary-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px}
.deploy-summary-grid>div{
  min-width:0;padding:11px 12px;border:1px solid #e6dfea;border-radius:11px;background:#fff;
}
.deploy-summary-grid span{display:block;color:#918798;font-size:9px;font-weight:700}
.deploy-summary-grid strong{
  display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#554562;font-size:11px;
}
.deploy-validation-banner{
  display:flex;flex-direction:column;gap:3px;margin-top:10px;padding:10px 12px;
  border-radius:11px;font-size:10px;
}
.deploy-validation-banner.success{border:1px solid #d6e6dc;background:#f4faf6;color:#42614c}
.deploy-validation-banner.error{border:1px solid #ead7dc;background:#fcf5f6;color:#7c4e58}
.deploy-validation-banner strong{font-size:11px}
.deploy-file-list-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;
  padding-bottom:7px;border-bottom:1px solid #ece6ef;color:#62536e;font-size:11px;
}
.deploy-file-list-head span{color:#968d9d;font-size:9px}
.deploy-file-list{display:flex;flex-direction:column}
.deploy-file-row{
  display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center;
  padding:9px 0;border-bottom:1px solid #f0ecf2;
}
.deploy-file-state{
  display:grid;place-items:center;width:20px;height:20px;border-radius:50%;
  font-size:9px;font-weight:700;
}
.deploy-file-row.allowed .deploy-file-state{background:#edf7f0;color:#477153}
.deploy-file-row.blocked .deploy-file-state{background:#faecef;color:#9a5260}
.deploy-file-row.ignored .deploy-file-state{background:#f0edf2;color:#827987}
.deploy-file-copy{min-width:0}
.deploy-file-copy strong{
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;
}
.deploy-file-copy small{display:block;margin-top:2px;color:#948c99;font-size:9px}
.deploy-next-step{
  display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;
  padding:12px;border:1px solid #e4dce9;border-radius:12px;background:#f9f6fb;
}
.deploy-next-step strong{display:block;font-size:11px;color:#5e4c6a}
.deploy-next-step p{margin:3px 0 0;color:#918796;font-size:9px;line-height:1.5}
.deploy-next-step button{
  flex:0 0 auto;border:0;border-radius:9px;padding:9px 11px;background:#d9d3dd;
  color:#8f8793;font-size:10px;font-weight:700;cursor:not-allowed;
}
@media(max-width:760px){
  .deploy-summary-grid{grid-template-columns:1fr 1fr}
  .deploy-next-step{align-items:stretch;flex-direction:column}
  .deploy-next-step button{width:100%}
}


/* v26.0 step 2 - GitHub commit deployment */
.deploy-repository-info{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:3px 10px;
  align-items:center;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid #e6dfea;
  border-radius:11px;
  background:#fbf9fc;
}
.deploy-repository-info span{
  grid-row:1/3;
  color:#918798;
  font-size:9px;
  font-weight:700;
}
.deploy-repository-info strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#5c4969;
  font-size:11px;
}
.deploy-repository-info small{
  color:#9a91a0;
  font-size:9px;
}
.deploy-commit-result{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px 9px;
  margin-top:10px;
  padding:11px 12px;
  border:1px solid #d5e5da;
  border-radius:11px;
  background:#f3faf5;
  color:#42604b;
}
.deploy-commit-result strong{
  flex:0 0 100%;
  font-size:11px;
}
.deploy-commit-result span{
  font-size:10px;
  font-weight:700;
}
.deploy-commit-result a{
  font-size:10px;
  font-weight:700;
  text-decoration:underline;
}
.deploy-commit-result small{
  flex:0 0 100%;
  color:#73887a;
  font-size:9px;
}
#deployPatchCommitBtn:not(:disabled){
  background:#5f4b73;
  color:#fff;
  cursor:pointer;
}
#deployPatchCommitBtn:not(:disabled):hover{
  background:#503f61;
}


/* v26.0 step 3E - deploy ZIP drag & drop */
.deploy-file-button{
  outline:none;
}

.deploy-file-button.is-dragover{
  border-color:#7f6993;
  background:#f3edf8;
  box-shadow:0 0 0 3px rgba(109,82,132,.10);
}

.deploy-file-button.is-dragover .deploy-file-icon{
  transform:translateY(-1px) scale(1.04);
  background:#59416f;
}

.deploy-file-button:focus-visible{
  border-color:#8e75a5;
  box-shadow:0 0 0 3px rgba(109,82,132,.12);
}

.deploy-file-icon{
  transition:transform .16s ease, background .16s ease;
}

@media (prefers-reduced-motion:reduce){
  .deploy-file-icon{
    transition:none;
  }
}


/* v26.0 step 3F - deploy header cleanup */
.deploy-upload-box-first{
  margin-top:0;
}


/* v26.0 Step 4 - deployment status monitor */
.deploy-live-status{
  margin-top:10px;
  padding:12px;
  border:1px solid #e3dce7;
  border-radius:12px;
  background:#fbf9fc;
}

.deploy-live-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.deploy-live-head>div{
  min-width:0;
}

.deploy-live-head strong{
  display:block;
  color:#584764;
  font-size:11px;
}

.deploy-live-head small{
  display:block;
  margin-top:2px;
  color:#9a91a0;
  font-size:9px;
}

.deploy-live-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:10px;
}

.deploy-live-item{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  padding:9px 10px;
  border:1px solid #ece6ef;
  border-radius:10px;
  background:#fff;
}

.deploy-live-dot{
  flex:0 0 auto;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#c9c2ce;
}

.deploy-live-item>div{
  min-width:0;
}

.deploy-live-item strong{
  display:block;
  color:#65566f;
  font-size:10px;
}

.deploy-live-item small{
  display:block;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#9a919f;
  font-size:8.5px;
}

.deploy-live-item.waiting .deploy-live-dot{
  background:#b59365;
  animation:deploy-status-pulse 1.2s ease-in-out infinite;
}

.deploy-live-item.success .deploy-live-dot{
  background:#5f8b69;
}

.deploy-live-item.error .deploy-live-dot{
  background:#b76572;
}

.deploy-live-item.muted{
  background:#f6f4f7;
}

.deploy-live-item.muted .deploy-live-dot{
  background:#c9c4cd;
}

.deploy-live-summary{
  margin:9px 0 0;
  color:#867c8d;
  font-size:9px;
  line-height:1.5;
}

@keyframes deploy-status-pulse{
  0%,100%{opacity:.45;transform:scale(.92)}
  50%{opacity:1;transform:scale(1.08)}
}

@media(max-width:760px){
  .deploy-live-grid{
    grid-template-columns:1fr;
  }
}

@media(prefers-reduced-motion:reduce){
  .deploy-live-item.waiting .deploy-live-dot{
    animation:none;
  }
}


/* v26.1 admin dashboard / health / settings polish */
.admin-deploy-summary-strip{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid #e8e1eb;
  border-radius:13px;
  background:#faf8fb;
}

.admin-deploy-summary-strip>div{
  display:flex;
  align-items:baseline;
  gap:6px;
  min-width:0;
}

.admin-deploy-summary-strip span{
  color:#968b9b;
  font-size:9px;
  font-weight:700;
}

.admin-deploy-summary-strip strong{
  color:#594b62;
  font-size:10px;
  font-weight:700;
}

.admin-deploy-summary-strip>div+div::before{
  content:"";
  width:1px;
  height:12px;
  margin-right:2px;
  background:#e0d8e4;
}

.admin-deploy-summary-link{
  margin-left:auto;
  color:#715784;
  font-size:9px;
  font-weight:700;
  text-decoration:none;
}

.admin-deploy-summary-link:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}

.admin-health-criteria{
  margin:10px 0 12px;
  padding:11px;
  border:1px solid #ebe5ee;
  border-radius:12px;
  background:#fbfafc;
}

.admin-health-criteria-title{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:8px;
}

.admin-health-criteria-title strong{
  color:#584b61;
  font-size:10px;
}

.admin-health-criteria-title span{
  color:#998f9d;
  font-size:8.5px;
}

.admin-health-criteria-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}

.health-criterion{
  min-width:0;
  padding:8px 9px;
  border:1px solid #eee9f0;
  border-radius:9px;
  background:#fff;
}

.health-criterion b{
  display:inline-block;
  margin-bottom:4px;
  padding:2px 6px;
  border-radius:999px;
  font-size:8px;
}

.health-criterion span{
  display:block;
  color:#8d838f;
  font-size:8.5px;
  line-height:1.45;
}

.criterion-error b{
  background:#f8e9ec;
  color:#9b4856;
}

.criterion-review b{
  background:#f6f0e5;
  color:#896c39;
}

.criterion-info b{
  background:#efedf2;
  color:#746d79;
}

.admin-health-type-wrap{
  display:flex;
  align-items:flex-start;
  gap:5px;
  min-width:0;
}

.admin-health-level{
  flex:0 0 auto;
  padding:2px 5px;
  border-radius:999px;
  font-size:7.5px;
  font-weight:700;
}

.severity-high .admin-health-level{
  background:#f8e9ec;
  color:#9b4856;
}

.severity-medium .admin-health-level{
  background:#f6f0e5;
  color:#896c39;
}

.severity-low .admin-health-level{
  background:#efedf2;
  color:#746d79;
}

.admin-health-item{
  grid-template-columns:150px minmax(0,1fr) auto;
  align-items:center;
}

.admin-health-go{
  white-space:nowrap;
}

/* settings */
.admin-settings-card,
.admin-data-export-card{
  overflow:hidden;
}

.admin-settings-heading{
  margin-bottom:15px;
}

.admin-settings-heading h3,
.admin-data-export-card h3{
  margin:0;
}

.admin-settings-heading .admin-help{
  margin:5px 0 0;
}

.admin-settings-grid{
  gap:12px;
}

.admin-setting-field{
  min-width:0;
  padding:12px;
  border:1px solid #ece6ef;
  border-radius:12px;
  background:#fbfafc;
}

.admin-setting-field>span,
.admin-setting-label{
  color:#746979 !important;
  font-size:9px !important;
  font-weight:700 !important;
}

.admin-setting-field input[type="text"]{
  min-height:40px;
  margin-top:1px;
  border-color:#e3dce7;
  background:#fff;
}

.admin-favicon-control{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:2px;
}

.admin-favicon-control .favicon-preview{
  width:52px;
  height:52px;
  border-radius:13px;
  box-shadow:0 4px 12px rgba(80,58,94,.06);
}

.admin-favicon-picker{
  min-width:0;
  flex:1;
}

.admin-file-picker-row{
  display:flex;
  align-items:center;
  min-width:0;
  overflow:hidden;
  border:1px solid #e3dce7;
  border-radius:10px;
  background:#fff;
}

.admin-file-select-btn{
  flex:0 0 auto;
  min-height:38px;
  padding:0 12px;
  border:0;
  border-right:1px solid #e5dfe8;
  border-radius:0;
  background:#f4eff7;
  color:#655071;
  font-size:9px;
  font-weight:700;
  cursor:pointer;
}

.admin-file-name{
  min-width:0;
  padding:0 11px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#746a79;
  font-size:9px;
}

.admin-favicon-picker>small{
  display:block;
  margin-top:5px;
  color:#a096a4;
  font-size:8px;
}

.admin-settings-footer{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:12px;
}

.admin-settings-footer .admin-status{
  flex:1;
  margin-top:0;
}

.admin-primary-compact,
.admin-secondary-compact{
  min-height:38px;
  padding:9px 14px;
  border-radius:10px;
  font-size:9.5px;
  font-weight:700;
  cursor:pointer;
}

.admin-primary-compact{
  border:1px solid #674d7d;
  background:#674d7d;
  color:#fff;
}

.admin-secondary-compact{
  flex:0 0 auto;
  border:1px solid #ddd4e2;
  background:#fff;
  color:#66576e;
}

.admin-data-export-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-top:16px;
  padding-bottom:16px;
}

.admin-data-export-copy{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}

.admin-data-export-copy .admin-help{
  margin:4px 0 0;
}

.admin-data-export-icon{
  flex:0 0 auto;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#f0e9f5;
  color:#6c557b;
  font-size:8px;
  font-weight:700;
  letter-spacing:.03em;
}

@media(max-width:760px){
  .admin-deploy-summary-strip{
    flex-wrap:wrap;
  }

  .admin-deploy-summary-link{
    margin-left:0;
  }

  .admin-health-criteria-grid{
    grid-template-columns:1fr;
  }

  .admin-health-item{
    grid-template-columns:1fr;
  }

  .admin-settings-footer,
  .admin-data-export-card{
    flex-direction:column;
    align-items:stretch;
  }

  .admin-secondary-compact{
    width:100%;
  }
}


/* v26.2 admin sync + content top UI */
.admin-section-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.admin-section-heading h3{
  margin:2px 0 0;
}

.admin-section-heading .admin-help{
  margin:5px 0 0;
  max-width:720px;
}

.admin-section-kicker,
.admin-mini-label{
  display:block;
  color:#9a88a5;
  font-size:7.5px;
  font-weight:700;
  letter-spacing:.08em;
}

.admin-section-note{
  flex:0 0 auto;
  padding:5px 8px;
  border:1px solid #e8e0ec;
  border-radius:999px;
  background:#faf7fb;
  color:#7a6b82;
  font-size:8px;
  font-weight:700;
}

/* sync */
.admin-sync-card{
  padding:18px;
}

.admin-sync-summary{
  margin:0 0 12px;
  gap:8px;
}

.admin-sync-summary>div{
  min-height:78px;
  padding:11px 12px;
  border-color:#e8e2eb;
  background:#fbfafc;
}

.admin-sync-summary span{
  font-size:8.5px;
}

.admin-sync-summary strong{
  margin-top:2px;
  color:#3e3544;
  font-size:19px;
}

.admin-sync-summary small{
  margin-top:3px;
  color:#9a909f;
  font-size:7.5px;
}

.admin-sync-flow{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.admin-sync-flow-step{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:11px;
  border:1px solid #e8e1eb;
  border-radius:12px;
  background:#fff;
}

.admin-sync-step-no{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:#f0e9f5;
  color:#705b80;
  font-size:9px;
  font-weight:700;
}

.admin-sync-flow-step strong{
  display:block;
  color:#55495c;
  font-size:9.5px;
}

.admin-sync-flow-step small{
  display:block;
  margin-top:3px;
  color:#948a99;
  font-size:8px;
  line-height:1.4;
}

.admin-sync-flow-step .sync-button,
.admin-sync-flow-step .sync-apply-button{
  min-height:36px;
  padding:8px 12px;
  border-radius:9px;
  font-size:9px;
}

/* content */
.admin-content-heading{
  margin-bottom:10px;
}

.admin-content-guide{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:10px;
}

.admin-content-guide>div{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:8px;
  padding:9px 10px;
  border:1px solid #ebe5ee;
  border-radius:10px;
  background:#fbfafc;
}

.admin-content-guide b{
  align-self:start;
  padding:2px 6px;
  border-radius:999px;
  background:#eee7f3;
  color:#6d587b;
  font-size:7.5px;
  white-space:nowrap;
}

.admin-content-guide span{
  color:#827786;
  font-size:8px;
  line-height:1.45;
}

.admin-content-guide span strong{
  color:#66576f;
  font-size:inherit;
}

.admin-video-format-verify-compact{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:12px;
  border:1px solid #e7e0eb;
  border-radius:12px;
  background:#fff;
}

.admin-video-format-copy>strong{
  display:block;
  margin-top:2px;
  color:#55485d;
  font-size:10px;
}

.admin-video-format-copy .admin-help{
  margin:4px 0 0;
  max-width:640px;
  font-size:8px;
}

.admin-format-flow-text{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  color:#8b7f91;
  font-size:7.5px;
  font-weight:700;
}

.admin-format-flow-text i{
  color:#b0a6b5;
  font-style:normal;
}

.admin-video-format-verify-compact .admin-video-format-stage-actions{
  display:flex;
  gap:6px;
  flex-wrap:nowrap;
}

.admin-video-format-verify-compact .ghost-button{
  min-height:34px;
  padding:8px 10px;
  border-radius:9px;
  font-size:8.5px;
  white-space:nowrap;
}

@media(max-width:820px){
  .admin-section-heading{
    flex-direction:column;
  }

  .admin-section-note{
    align-self:flex-start;
  }

  .admin-sync-flow{
    grid-template-columns:1fr;
  }

  .admin-content-guide{
    grid-template-columns:1fr;
  }

  .admin-video-format-verify-compact{
    grid-template-columns:1fr;
  }

  .admin-video-format-verify-compact .admin-video-format-stage-actions{
    flex-wrap:wrap;
  }
}

@media(max-width:560px){
  .admin-sync-flow-step{
    grid-template-columns:auto minmax(0,1fr);
  }

  .admin-sync-flow-step .sync-button,
  .admin-sync-flow-step .sync-apply-button{
    grid-column:1/-1;
    width:100%;
  }
}


/* v26.3 compact system status */
.admin-system-strip{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:34px;
  margin:-4px 0 12px;
  padding:6px 9px;
  border:1px solid #ebe5ee;
  border-radius:11px;
  background:#fff;
}

.admin-system-title{
  display:flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
  padding-right:9px;
  border-right:1px solid #eee8f0;
}

.admin-system-title strong{
  color:#62536b;
  font-size:8.5px;
}

.admin-system-title>span:last-child{
  color:#8e8393;
  font-size:8px;
  font-weight:700;
}

.admin-system-dot,
.admin-system-items i{
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#cbc5ce;
}

.admin-system-dot.success,
.admin-system-items i.success{
  background:#669272;
}

.admin-system-dot.error,
.admin-system-items i.error{
  background:#b76370;
}

.admin-system-dot.waiting,
.admin-system-items i.waiting{
  background:#b79a6d;
}

.admin-system-dot.muted,
.admin-system-items i.muted{
  background:#cbc5ce;
}

.admin-system-items{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex:1;
}

.admin-system-items>span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-width:0;
  color:#8c8190;
  font-size:8px;
  white-space:nowrap;
}

.admin-system-items b{
  color:#62576a;
  font-size:8px;
}

.admin-system-refresh{
  width:26px;
  height:26px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#918597;
  cursor:pointer;
}

.admin-system-refresh:hover{
  background:#f5f1f7;
  color:#6d5b78;
}

.admin-system-refresh:disabled{
  opacity:.45;
  cursor:wait;
}

.admin-system-refresh svg{
  width:13px;
  height:13px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media(max-width:760px){
  .admin-system-strip{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .admin-system-title{
    border-right:0;
    padding-right:0;
  }

  .admin-system-items{
    order:3;
    flex-basis:100%;
    flex-wrap:wrap;
    gap:6px 10px;
  }

  .admin-system-refresh{
    margin-left:auto;
  }
}


/* v26.4 daily automatic YouTube sync */
.admin-auto-sync-strip{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  margin:-3px 0 10px;
  padding:6px 9px;
  border:1px solid #e8e2eb;
  border-radius:10px;
  background:#fbfafc;
  color:#887d8d;
  font-size:8px;
}

.admin-auto-sync-strip>div{
  display:flex;
  align-items:center;
  gap:5px;
}

.admin-auto-sync-strip strong{
  color:#605269;
  font-size:8.5px;
}

.admin-auto-sync-strip>span{
  margin-left:auto;
  color:#6e6077;
  font-weight:700;
  white-space:nowrap;
}

.admin-auto-sync-strip small{
  color:#a097a4;
  font-size:7.5px;
  white-space:nowrap;
}

.admin-auto-sync-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#669272;
  box-shadow:0 0 0 3px rgba(102,146,114,.10);
}

@media(max-width:620px){
  .admin-auto-sync-strip{
    flex-wrap:wrap;
  }

  .admin-auto-sync-strip>span{
    margin-left:0;
  }

  .admin-auto-sync-strip small{
    flex-basis:100%;
  }
}


/* v26.5 automatic review queue + weekly backup */
.admin-new-review-strip{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:32px;
  margin:-5px 0 12px;
  padding:6px 9px;
  border:1px solid #ebe5ee;
  border-radius:10px;
  background:#fbfafc;
}

.admin-new-review-strip>div:first-child{
  display:flex;
  align-items:center;
  gap:5px;
  flex:0 0 auto;
}

.admin-new-review-strip strong{
  color:#65566e;
  font-size:8.5px;
}

.admin-new-review-strip>div:first-child>span:last-child{
  color:#8b8090;
  font-size:8px;
  font-weight:700;
}

.admin-new-review-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#6d9577;
}

.admin-new-review-strip.has-review .admin-new-review-dot{
  background:#b18c50;
}

.admin-new-review-breakdown{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
}

.admin-new-review-breakdown button{
  min-height:24px;
  padding:4px 7px;
  border:1px solid #e2dae7;
  border-radius:999px;
  background:#fff;
  color:#6f5e78;
  font-size:7.5px;
  font-weight:700;
  cursor:pointer;
}

.admin-new-review-breakdown button:hover{
  background:#f5f0f7;
}

.admin-new-review-ok{
  margin-left:auto;
  color:#6d8b75;
  font-size:7.5px;
  font-weight:700;
}

.admin-auto-backup-strip{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:29px;
  margin:-5px 0 10px;
  padding:5px 9px;
  border:1px solid #ece6ef;
  border-radius:9px;
  background:#fff;
  color:#918694;
  font-size:7.5px;
}

.admin-auto-backup-strip>div{
  display:flex;
  align-items:center;
  gap:5px;
}

.admin-auto-backup-strip strong{
  color:#675970;
  font-size:8px;
}

.admin-auto-backup-strip small{
  margin-left:auto;
  color:#a096a4;
  font-size:7.2px;
}

.admin-auto-backup-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  background:#6d9276;
  box-shadow:0 0 0 3px rgba(109,146,118,.08);
}

@media(max-width:680px){
  .admin-new-review-strip,
  .admin-auto-backup-strip{
    flex-wrap:wrap;
  }

  .admin-new-review-ok,
  .admin-auto-backup-strip small{
    margin-left:0;
  }

  .admin-new-review-breakdown{
    flex-basis:100%;
  }

  .admin-auto-backup-strip small{
    flex-basis:100%;
  }
}


/* v26.6 dashboard + mobile polish */

/* desktop: system + latest-sync state share one quiet row */
.admin-ops-status-row{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);
  gap:8px;
  margin-bottom:12px;
}

.admin-ops-status-row .admin-system-strip,
.admin-ops-status-row .admin-new-review-strip{
  margin:0;
  min-height:34px;
}

/* healthy data card collapses to a quiet status line */
.admin-health-card.is-healthy{
  padding-top:14px;
  padding-bottom:14px;
}

.admin-health-card.is-healthy .admin-review-heading{
  margin-bottom:0;
}

.admin-health-card.is-healthy .admin-review-heading .admin-help,
.admin-health-card.is-healthy .admin-health-criteria,
.admin-health-card.is-healthy .admin-health-list{
  display:none;
}

.admin-health-card.is-healthy .admin-health-summary{
  margin:8px 0 0;
}

.admin-health-card.is-healthy .admin-health-ok{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 8px;
  border-radius:999px;
  background:#f1f6f2;
  color:#55725c;
  font-size:9px;
}

/* mobile admin header is intentionally compact */
@media(max-width:620px){
  .admin-page .container{
    padding-top:18px;
  }

  .admin-mode-bar{
    gap:8px;
    padding:8px 9px;
    border-radius:12px;
  }

  .admin-mode-label{
    min-width:0;
  }

  .admin-build-version{
    max-width:150px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .admin-mode-actions{
    gap:5px;
  }

  .admin-mode-actions a,
  .admin-mode-actions button{
    min-height:32px;
    padding:7px 9px;
    font-size:8px;
  }

  .admin-heading{
    margin:14px 0 10px;
    gap:4px;
  }

  .admin-heading .eyebrow{
    margin-bottom:4px;
    font-size:8px;
  }

  .admin-heading h2{
    margin:0;
    font-size:24px;
    line-height:1.15;
  }

  /* tabs remain horizontally swipeable without the browser scrollbar */
  .admin-tabs{
    top:52px;
    margin:10px 0 12px;
    gap:3px;
    padding:4px;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-snap-type:x proximity;
  }

  .admin-tabs::-webkit-scrollbar{
    display:none;
  }

  .admin-tab{
    min-width:max-content;
    padding:9px 11px;
    font-size:10px;
    scroll-snap-align:start;
  }

  .admin-tab-count{
    min-width:16px;
    height:16px;
    padding:0 4px;
    font-size:8px;
  }

  /* deployment summary wraps without forcing horizontal overflow */
  .admin-deploy-summary-strip{
    display:grid;
    grid-template-columns:1fr auto;
    gap:5px 8px;
    padding:8px 9px;
  }

  .admin-deploy-summary-strip>div{
    min-width:0;
  }

  .admin-deploy-summary-strip>div+div::before{
    display:none;
  }

  .admin-deploy-summary-strip>div:nth-child(2){
    grid-column:1/-1;
  }

  .admin-deploy-summary-link{
    grid-column:2;
    grid-row:1;
    align-self:center;
  }

  .admin-ops-status-row{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    margin-bottom:10px;
  }

  .admin-ops-status-row .admin-system-strip,
  .admin-ops-status-row .admin-new-review-strip{
    margin:0;
  }

  .admin-system-strip{
    min-height:0;
    padding:7px 8px;
  }

  .admin-system-title{
    padding-right:0;
  }

  .admin-system-items{
    gap:5px 8px;
  }

  .admin-system-items>span{
    font-size:7.5px;
  }

  .admin-new-review-strip{
    min-height:0;
    padding:7px 8px;
  }

  /* Six dashboard cards become a clean 3x2 grid instead of leaving one orphan. */
  .admin-dashboard-grid{
    gap:8px;
  }

  .admin-dashboard-card,
  .admin-dashboard-card-wide{
    grid-column:auto;
    min-height:96px;
    padding:12px;
  }

  .admin-dashboard-card-wide strong{
    font-size:10px;
    line-height:1.45;
  }

  .admin-page .admin-health-card{
    margin-top:10px;
  }

  .admin-health-card.is-healthy{
    padding:12px;
  }

  .admin-health-card.is-healthy .admin-review-heading{
    align-items:center;
  }

  .admin-health-card.is-healthy .admin-review-heading h3{
    font-size:15px;
  }

  .admin-health-card.is-healthy .admin-health-summary{
    margin-top:6px;
  }

  .admin-health-card:not(.is-healthy) .admin-health-criteria-grid{
    grid-template-columns:1fr;
  }

  .admin-health-card:not(.is-healthy) .admin-health-criteria-title{
    display:block;
  }

  .admin-health-card:not(.is-healthy) .admin-health-criteria-title span{
    display:block;
    margin-top:3px;
  }
}

@media(max-width:390px){
  .admin-dashboard-grid{
    grid-template-columns:1fr;
  }

  .admin-dashboard-card,
  .admin-dashboard-card-wide{
    min-height:80px;
  }
}


/* v26.7 Gmarket Sans typography */
body{
  font-weight:300;
  word-break:keep-all;
}

button,
input,
select,
textarea{
  font-family:'GMarketSans', Pretendard, 'Pretendard Variable', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans KR', sans-serif;
}

button,
select,
input[type="button"],
input[type="submit"]{
  font-weight:500;
}

h1,h2,h3,h4,h5,h6,
strong,b,
.brand,
.admin-tab.active{
  font-weight:700;
}

/* Keep dense utility copy readable at Gmarket Sans' wider metrics. */
.admin-help,
.card-note,
.hero-description,
.video-format-reason,
.deploy-live-summary{
  letter-spacing:-.015em;
}

@media(max-width:620px){
  .admin-tab{
    letter-spacing:-.02em;
  }

  .admin-system-items>span,
  .admin-deploy-summary-strip,
  .admin-new-review-strip{
    letter-spacing:-.015em;
  }
}


/* v26.7.1 - public video titles use Gmarket Sans in every view */
.card-title,
.card-title a,
.video-grid.list-view .card-title,
.video-grid.list-view .card-title a,
.timeline-title,
.timeline-title a,
.timeline-item .timeline-title,
.timeline-playlist-hub .timeline-title{
  font-family:'GMarketSans', Pretendard, 'Pretendard Variable',
    -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Noto Sans KR', sans-serif;
  font-weight:500;
}

/* Keep title rhythm consistent across grid / list / year-month timeline. */
.card-title,
.video-grid.list-view .card-title,
.timeline-title{
  letter-spacing:-.02em;
}


/* v27.0 automatic sync diagnostics */
.admin-auto-sync-dot.waiting{
  background:#a89caf;
}
.admin-auto-sync-dot.success{
  background:#6d9276;
}
.admin-auto-sync-dot.error{
  background:#a8646a;
  box-shadow:0 0 0 3px rgba(168,100,106,.09);
}

.admin-auto-sync-diagnostics{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:-5px 0 10px;
  padding:9px 10px;
  border:1px solid #e9e3ec;
  border-radius:11px;
  background:#fbfafc;
}

.auto-sync-diagnostic-copy{
  min-width:0;
}

.auto-sync-diagnostic-copy strong{
  display:block;
  color:#5e5166;
  font-size:9px;
  line-height:1.45;
}

.auto-sync-diagnostic-copy small{
  display:block;
  margin-top:2px;
  color:#948a97;
  font-size:7.5px;
  line-height:1.5;
}

.auto-sync-diagnostic-actions{
  display:flex;
  flex:0 0 auto;
  gap:6px;
}

.auto-sync-diagnostic-actions .admin-small-button{
  min-height:30px;
  padding:6px 9px;
  font-size:7.5px;
}

.auto-sync-diagnostic-actions .admin-small-button.primary{
  border-color:#6b5780;
  background:#6b5780;
  color:#fff;
}

#autoSyncRunStatus{
  margin:-3px 0 9px;
}

@media(max-width:620px){
  .admin-auto-sync-diagnostics{
    align-items:stretch;
    flex-direction:column;
  }

  .auto-sync-diagnostic-actions{
    width:100%;
  }

  .auto-sync-diagnostic-actions .admin-small-button{
    flex:1;
  }
}


/* v27.3 privacy-friendly visitor analytics */
.admin-visitor-dashboard-card{
  margin:0 0 10px;
  padding:11px 12px;
  border:1px solid #e9e3ec;
  border-radius:13px;
  background:#fbfafc;
}
.admin-visitor-dashboard-head,
.admin-visitor-section-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.admin-visitor-dashboard-head strong,
.admin-visitor-section-head strong{font-size:10px;color:#5e5166}
.admin-visitor-dashboard-head small,
.admin-visitor-section-head small{font-size:7.5px;color:#978c9a}
.admin-visitor-dashboard-grid,
.admin-visitor-summary-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px;
}
.admin-visitor-dashboard-grid>div,
.admin-visitor-summary-grid>div{
  padding:9px 10px;border:1px solid #eee8f0;border-radius:10px;background:#fff;
}
.admin-visitor-dashboard-grid span,
.admin-visitor-summary-grid span{display:block;color:#8a7f8d;font-size:8px;font-weight:500}
.admin-visitor-dashboard-grid strong,
.admin-visitor-summary-grid strong{display:block;margin-top:3px;color:#4b404f;font-size:16px;font-weight:700}
.admin-visitor-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:10px;margin-top:12px}
.admin-visitor-section{padding:12px;border:1px solid #eae4ed;border-radius:12px;background:#fff}
.admin-visitor-recent-section{margin-top:10px}
.admin-visitor-daily,.admin-visitor-list{display:grid;gap:5px;margin-top:9px}
.visitor-day-row{display:grid;grid-template-columns:42px minmax(0,1fr) 28px 34px;gap:7px;align-items:center;min-height:24px}
.visitor-day-row>span,.visitor-day-row>small{color:#918695;font-size:7.5px}
.visitor-day-row>strong{color:#5d5164;font-size:8px;text-align:right}
.visitor-day-bar{height:6px;border-radius:999px;background:#f0ebf3;overflow:hidden}
.visitor-day-bar i{display:block;height:100%;border-radius:999px;background:#9b88aa}
.admin-visitor-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px 8px;border-radius:8px;background:#faf8fb}
.admin-visitor-list-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5c4e64;font-size:8px}
.admin-visitor-list-row span{color:#65586c;font-size:8px}
.admin-visitor-list-row small{color:#948a97;font-size:7px;white-space:nowrap}
.admin-visitor-list-row.recent{grid-template-columns:110px minmax(0,1fr) auto}
@media(max-width:760px){
  .admin-visitor-dashboard-grid,.admin-visitor-summary-grid{grid-template-columns:1fr 1fr}
  .admin-visitor-grid{grid-template-columns:1fr}
}
@media(max-width:420px){
  .admin-visitor-list-row,.admin-visitor-list-row.recent{grid-template-columns:1fr auto}
  .admin-visitor-list-row small{grid-column:1/-1}
}


/* v27.4 lifetime visit counter */
.admin-visitor-dashboard-grid,
.admin-visitor-summary-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.admin-visitor-dashboard-grid .visitor-lifetime,
.admin-visitor-summary-grid .visitor-lifetime{
  background:#f7f3fa;
  border-color:#dfd4e6;
}

.admin-visitor-dashboard-grid .visitor-lifetime strong,
.admin-visitor-summary-grid .visitor-lifetime strong{
  color:#5f4c70;
}

@media(max-width:760px){
  .admin-visitor-dashboard-grid,
  .admin-visitor-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .admin-visitor-dashboard-grid .visitor-lifetime,
  .admin-visitor-summary-grid .visitor-lifetime{
    grid-column:1/-1;
  }
}

@media(max-width:390px){
  .admin-visitor-dashboard-grid,
  .admin-visitor-summary-grid{
    grid-template-columns:1fr;
  }

  .admin-visitor-dashboard-grid .visitor-lifetime,
  .admin-visitor-summary-grid .visitor-lifetime{
    grid-column:auto;
  }
}


/* v27.6 compact visitor detail tabs */
.admin-visitor-daily-section{
  margin-top:12px;
}

.admin-visitor-detail-section{
  margin-top:10px;
  padding:0;
  overflow:hidden;
}

.visitor-detail-tabbar{
  display:flex;
  gap:4px;
  padding:7px;
  border-bottom:1px solid #ece6ef;
  background:#faf8fb;
}

.visitor-detail-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:32px;
  padding:6px 11px;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:#817487;
  font:inherit;
  font-size:8px;
  font-weight:500;
  cursor:pointer;
}

.visitor-detail-tab:hover{
  background:#f2edf5;
  color:#5f5167;
}

.visitor-detail-tab.active{
  border-color:#dfd4e6;
  background:#fff;
  color:#5f4c70;
  font-weight:700;
  box-shadow:0 1px 3px rgba(67,48,77,.05);
}

.visitor-detail-count{
  min-width:19px;
  padding:1px 5px;
  border-radius:999px;
  background:#eee8f1;
  color:#796a81;
  font-size:7px;
  text-align:center;
}

.visitor-detail-tab.active .visitor-detail-count{
  background:#e5dbea;
  color:#5f4c70;
}

.visitor-detail-panel{
  padding:11px 12px 10px;
}

.visitor-detail-panel[hidden]{
  display:none !important;
}

.visitor-detail-head{
  margin-bottom:7px;
}

.visitor-list-scroll{
  max-height:390px;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:3px;
}

.visitor-list-scroll .admin-visitor-list{
  margin-top:0;
}

.visitor-pagination{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-top:9px;
  padding-top:8px;
  border-top:1px solid #f0ebf2;
}

.visitor-pagination[hidden]{
  display:none !important;
}

.visitor-pagination span{
  min-width:45px;
  color:#817587;
  font-size:7.5px;
  text-align:center;
}

.visitor-pagination .admin-small-button{
  min-width:46px;
}

@media(max-width:620px){
  .visitor-detail-tabbar{
    padding:6px;
  }

  .visitor-detail-tab{
    flex:1;
    padding:6px 7px;
  }

  .visitor-list-scroll{
    max-height:420px;
  }

  .visitor-pagination{
    justify-content:center;
  }
}
