:root{
  --primary: #f97316;
  --primary-hover: #ea580c;
  --primary-soft: rgba(249,115,22,.16);
  --accent: #fb923c;
  --success: #10b981;
  --danger: #dc2626;
  --warning: #eab308;
  --info: #0ea5e9;
  --bg-body: #0a0a0a;
  --bg-sidebar: #141414;
  --bg-card: #1f1f1f;
  --bg-card-hover: #2a2a2a;
  --bg-input: #171717;
  --text-main: #fafafa;
  --text-muted: #a3a3a3;
  --text-dim: #737373;
  --border: #2d2d2d;
  --border-strong: #404040;
  --shadow-card: 0 18px 45px -18px rgba(0,0,0,.72);
  --shadow-pop: 0 30px 60px -16px rgba(0,0,0,.8);
  --radius: 16px;
  --radius-sm: 12px;
  --sidebar-w: 260px;
  --sidebar-wc: 76px;
  --trans: 180ms cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  background:
    radial-gradient(circle at 20% 20%, rgba(96,165,250,.12), transparent 28%),
    radial-gradient(circle at 80% 10%, rgba(34,211,238,.10), transparent 22%),
    radial-gradient(circle at 80% 80%, rgba(139,92,246,.10), transparent 24%),
    linear-gradient(135deg, #040814 0%, var(--bg-body) 50%, #050b19 100%);
  color: var(--text-main);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
  position: relative;
  overflow-x: hidden;
}
a{ color: var(--primary); text-decoration:none; }
a:hover{ color: var(--primary-hover); }
h1,h2,h3,h4{ color: var(--text-main); margin: 0 0 .75rem; letter-spacing:-.01em; }
h1{ font-size: 1.875rem; font-weight: 700; }
h2{ font-size: 1.35rem; font-weight:600; }
h3{ font-size: 1.05rem; font-weight:600; }
p{ margin: 0 0 .75rem; color: var(--text-muted); }
code, kbd, pre{ font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace; background: var(--bg-input); padding:.15rem .4rem; border-radius:6px; font-size:.85em; border:1px solid var(--border); }
hr{ border:0; border-top:1px solid var(--border); margin: 1.25rem 0; }

body::before,
body::after{
  content:'';
  position: fixed;
  inset: auto;
  pointer-events:none;
  z-index:-1;
}
body::before{
  top:-10rem;
  left:-8rem;
  width:26rem;
  height:26rem;
  background: radial-gradient(circle, rgba(96,165,250,.18), transparent 70%);
  filter: blur(24px);
}
body::after{
  right:-8rem;
  bottom:-10rem;
  width:28rem;
  height:28rem;
  background: radial-gradient(circle, rgba(34,211,238,.14), transparent 70%);
  filter: blur(28px);
}

/* ================= LAYOUT ================= */
.app-shell{ display:flex; min-height:100vh; }
.main-content{
  flex:1; min-width:0;
  margin-left: var(--sidebar-w);
  padding: 1.75rem 2rem;
  transition: margin-left var(--trans);
}
body.sidebar-collapsed .main-content{ margin-left: var(--sidebar-wc); }
@media (max-width: 900px){
  .main-content{ margin-left:0; padding: 1rem; }
}
@media (max-width: 900px){
  .app-shell{ flex-direction:column; }
  .sidebar{
    position: relative;
    top: auto;
    left: auto;
    bottom: auto;
    width: 100%;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--border);
    z-index: 30;
  }
  body.sidebar-collapsed .sidebar{
    width: 100%;
  }
  .sidebar-brand{
    justify-content: flex-start;
    padding: 1rem 1rem .85rem;
    min-height: 72px;
  }
  .sidebar-toggle{
    right: .75rem;
    top: .75rem;
  }
  .sidebar-nav{
    max-height: none;
    overflow: visible;
    padding: .35rem .75rem .75rem;
  }
  .nav-label{
    padding: .8rem .5rem .3rem;
  }
  body.sidebar-collapsed .nav-label{
    opacity: 1;
    height: auto;
    padding: .8rem .5rem .3rem;
  }
  body.sidebar-collapsed .nav-link{
    justify-content: flex-start;
    padding: .6rem .75rem;
  }
  body.sidebar-collapsed .nav-link span{
    opacity: 1;
    width: auto;
    overflow: visible;
  }
  body.sidebar-collapsed .nav-link::after{
    display:none;
  }
  body.sidebar-collapsed .sidebar-footer{
    display:none;
  }
  .sidebar-footer{
    padding: .75rem .9rem;
  }
  .main-content{
    margin-left: 0 !important;
    padding: 1rem;
  }
}

/* ================= SIDEBAR ================= */
.sidebar{
  position: fixed; top:0; left:0; bottom:0;
  width: var(--sidebar-w);
  background: var(--bg-sidebar);
  border-right:1px solid var(--border);
  display:flex; flex-direction:column;
  transition: width var(--trans);
  z-index: 40;
  overflow: hidden;
}
body.sidebar-collapsed .sidebar{ width: var(--sidebar-wc); }
.sidebar-brand{
  display:flex; align-items:center; justify-content:center;
  padding: 1.25rem 1rem 1rem;
  border-bottom:1px solid var(--border);
  min-height: 88px;
  position: relative;
}
.sidebar-brand img{ max-width:100%; max-height:64px; object-fit:contain; transition: all var(--trans); }
body.sidebar-collapsed .sidebar-brand img{ max-height:40px; }
.sidebar-toggle{
  position:absolute; top:.5rem; right:.5rem;
  width:28px; height:28px; border-radius:8px;
  background: var(--bg-card); border:1px solid var(--border);
  color: var(--text-muted); cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  transition: all var(--trans);
}
.sidebar-toggle:hover{ color: var(--text-main); border-color: var(--border-strong); }

.sidebar-nav{ flex:1; overflow-y:auto; padding:.75rem .5rem 1rem; }
.sidebar-nav::-webkit-scrollbar{ width:6px; }
.sidebar-nav::-webkit-scrollbar-thumb{ background: var(--border); border-radius:3px; }
.nav-label{
  padding: 1rem .75rem .35rem;
  font-size: .68rem; text-transform: uppercase; letter-spacing:.08em;
  color: var(--text-dim); font-weight:600;
}
body.sidebar-collapsed .nav-label{ opacity:0; height:.5rem; padding:0; overflow:hidden; }
.nav-item{ margin: 2px 0; }
.nav-link{
  display:flex; align-items:center; gap:.75rem;
  padding: .6rem .75rem;
  border-radius: 10px;
  color: var(--text-muted);
  font-weight:500; font-size:.9rem;
  transition: background var(--trans), color var(--trans);
  white-space:nowrap;
  position: relative;
}
.nav-link i{ width:20px; text-align:center; font-size:1rem; flex-shrink:0; }
.nav-link span{ transition: opacity var(--trans); }
body.sidebar-collapsed .nav-link{ justify-content:center; padding:.65rem .5rem; }
body.sidebar-collapsed .nav-link span{ opacity:0; width:0; overflow:hidden; }
body.sidebar-collapsed .nav-link::after{
  content: attr(data-tip);
  position:absolute; left: calc(100% + 8px); top:50%; transform:translateY(-50%);
  background: var(--bg-card); color: var(--text-main);
  padding: .35rem .6rem; border-radius:6px; font-size:.78rem;
  border:1px solid var(--border); box-shadow: var(--shadow-pop);
  opacity:0; pointer-events:none; transition: opacity var(--trans);
  white-space:nowrap; z-index: 60;
}
body.sidebar-collapsed .nav-link:hover::after{ opacity:1; }
.nav-link:hover{ background: var(--bg-card); color: var(--text-main); }
.nav-link.active{
  background: var(--primary-soft);
  color: var(--primary);
  box-shadow: inset 3px 0 0 var(--primary);
}
.sidebar-footer{
  padding: .85rem 1rem; border-top:1px solid var(--border);
  font-size:.78rem; color: var(--text-muted);
}
body.sidebar-collapsed .sidebar-footer{ text-align:center; padding: .75rem .35rem; }
body.sidebar-collapsed .sidebar-footer p:not(:first-child){ display:none; }

/* ================= CARDS ================= */
.card{
  background: var(--bg-card);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.25rem 1.35rem;
  box-shadow: var(--shadow-card);
  margin-bottom: 1rem;
  position: relative;
  overflow: hidden;
}
.card-strong{ background: linear-gradient(160deg, var(--bg-card), var(--bg-card-hover)); border-color: var(--border-strong); }
.card::before,
.stat-card::before,
.btn::before{
  content:'';
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, rgba(255,255,255,.08), transparent 28%, transparent 72%, rgba(255,255,255,.04));
  pointer-events:none;
  opacity:.55;
}
.card-title{ display:flex; align-items:center; gap:.6rem; margin: 0 0 1rem; font-size: 1rem; font-weight:600; }
.card-title i{ color: var(--primary); }
.card-actions{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top: 1rem; }

.grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.grid-2{ display:grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; }
.stack{ display:flex; flex-direction:column; gap: 1rem; }

.stat-card{
  background: var(--bg-card); border:1px solid var(--border);
  border-radius: var(--radius); padding: 1.15rem 1.25rem;
  display:flex; align-items:center; gap: 1rem;
  transition: all var(--trans);
  position: relative;
  overflow: hidden;
}
.stat-card:hover{ border-color: var(--border-strong); transform: translateY(-1px); }
.stat-card .stat-icon{
  width:44px; height:44px; border-radius:12px;
  background: var(--primary-soft); color: var(--primary);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:1.15rem;
}
.stat-card .stat-value{ font-size:1.5rem; font-weight:700; color: var(--text-main); line-height:1; }
.stat-card .stat-label{ font-size:.78rem; color: var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin-top:.25rem; }

/* ================= BUTTONS ================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding: .6rem 1.1rem;
  background: linear-gradient(135deg, var(--primary), var(--primary-hover));
  color:#fff;
  border:1px solid transparent; border-radius: var(--radius-sm);
  font-weight:600; font-size:.88rem; cursor:pointer;
  text-decoration:none; line-height:1;
  transition: all var(--trans);
  position: relative;
  overflow: hidden;
  box-shadow: 0 14px 30px -16px rgba(96,165,250,.9);
}
.btn:hover{ background: linear-gradient(135deg, var(--primary-hover), var(--accent)); transform: translateY(-1px); box-shadow: 0 16px 30px -14px rgba(96,165,250,.7), 0 0 0 1px rgba(255,255,255,.06) inset; color:#fff; }
.btn:active{ transform: translateY(0); }
.btn-secondary{ background: var(--bg-card); color: var(--text-main); border-color: var(--border-strong); }
.btn-secondary:hover{ background: var(--bg-card-hover); box-shadow:none; color: var(--text-main); }
.btn-ghost{ background: transparent; color: var(--text-muted); border-color: var(--border); }
.btn-ghost:hover{ background: var(--bg-card); color: var(--text-main); box-shadow:none; }
.btn-danger{ background: var(--danger); }
.btn-danger:hover{ background: #dc2626; box-shadow: 0 6px 16px -6px var(--danger); }
.btn-success{ background: var(--success); }
.btn-success:hover{ background: #059669; box-shadow: 0 6px 16px -6px var(--success); }
.btn-sm{ padding: .4rem .75rem; font-size:.8rem; }

/* ================= FORMS ================= */
label{ display:block; font-size:.78rem; font-weight:500; color: var(--text-muted); margin-bottom:.35rem; }
input[type=text], input[type=password], input[type=email], input[type=url],
input[type=number], input[type=search], select, textarea{
  width:100%; padding: .6rem .75rem;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)) , var(--bg-input); color: var(--text-main);
  border:1px solid var(--border); border-radius: var(--radius-sm);
  font-family: inherit; font-size: .9rem;
  transition: border-color var(--trans), box-shadow var(--trans);
}
input:focus, select:focus, textarea:focus{
  outline:none; border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-soft), 0 0 28px rgba(96,165,250,.14);
}
input[type=file]{
  padding: .5rem; background: var(--bg-input); border:1px dashed var(--border);
  border-radius: var(--radius-sm); color: var(--text-muted); width:100%;
}
input[type=file]::file-selector-button{
  background: var(--bg-card); color: var(--text-main);
  border:1px solid var(--border-strong); border-radius:6px;
  padding: .4rem .75rem; margin-right:.75rem; cursor:pointer;
  font-family: inherit; font-size:.82rem;
}

/* ================= ALERTS / BADGES ================= */
.alert{ padding: .8rem 1rem; border-radius: var(--radius-sm); margin-bottom:1rem; border:1px solid transparent; font-size:.9rem; }
.alert.ok, .alert-success{ background: rgba(16,185,129,.12); color: var(--success); border-color: rgba(16,185,129,.3); }
.alert.err, .alert-danger{ background: rgba(239,68,68,.12); color: var(--danger); border-color: rgba(239,68,68,.3); }
.alert-warning{ background: rgba(245,158,11,.12); color: var(--warning); border-color: rgba(245,158,11,.3); }
.alert-info{ background: rgba(14,165,233,.12); color: var(--info); border-color: rgba(14,165,233,.3); }

.badge{ display:inline-flex; align-items:center; gap:.3rem; padding:.15rem .55rem; border-radius:999px; font-size:.72rem; font-weight:600; background: var(--bg-input); color: var(--text-muted); border:1px solid var(--border); }
.badge-primary{ background: var(--primary-soft); color: var(--primary); border-color: transparent; }
.badge-success{ background: rgba(16,185,129,.15); color: var(--success); border-color: transparent; }
.badge-danger{ background: rgba(239,68,68,.15); color: var(--danger); border-color: transparent; }

/* ================= EMPTY STATE ================= */
.empty-state{
  text-align:center; padding: 2.5rem 1rem;
  color: var(--text-muted);
}
.empty-state i{ font-size: 2.5rem; color: var(--text-dim); margin-bottom: 1rem; display:block; }
.empty-state h3{ color: var(--text-main); margin: .5rem 0; }

/* ================= TABLES ================= */
table.data{ width:100%; border-collapse: collapse; margin-top:.5rem; font-size:.88rem; }
table.data th, table.data td{ padding:.7rem .8rem; border-bottom:1px solid var(--border); text-align:left; }
table.data th{ color: var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:.03em; font-size:.72rem; }
table.data tbody tr:hover{ background: var(--bg-card-hover); }

/* ================= UTILITIES ================= */
.text-muted{ color: var(--text-muted); }
.text-dim{ color: var(--text-dim); }
.text-primary{ color: var(--primary); }
.text-success{ color: var(--success); }
.text-danger{ color: var(--danger); }
.mb-0{margin-bottom:0!important;} .mb-1{margin-bottom:.5rem;} .mb-2{margin-bottom:1rem;} .mb-3{margin-bottom:1.5rem;}
.mt-0{margin-top:0!important;} .mt-1{margin-top:.5rem;} .mt-2{margin-top:1rem;} .mt-3{margin-top:1.5rem;}
.flex{display:flex;} .flex-1{flex:1;} .items-center{align-items:center;} .justify-between{justify-content:space-between;} .gap-1{gap:.5rem;} .gap-2{gap:1rem;}
.wrap-narrow{max-width:1100px; margin: 0 auto;}

/* ================= COMPAT ALIASES (Fase 3b)
 * Páginas legadas ainda usam nomes antigos de variáveis e classes.
 * Este bloco garante que continuem renderizando corretamente enquanto
 * a migração para o Design System é finalizada. NÃO remover sem antes
 * refatorar todos os inline <style> das páginas de admin/import.
 * ========================================================== */
:root{
  --sidebar-width: var(--sidebar-w);
  --sidebar-width-collapsed: var(--sidebar-wc);
  --shadow: var(--shadow-card);
  --card-bg: var(--bg-card);
  --text: var(--text-main);
  --glass: rgba(255,255,255,.05);
}
.app-container{ display:flex; min-height:100vh; }

/* ================= RESULT CARD (Entrega 1) =================
 * Card padronizado consumido por movies_client_request.php e
 * series_client_request.php. Renderizado por assets/result_card.php.
 * ========================================================== */
.result-cards-grid{
  display:grid; gap:1rem;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  margin-top: 1rem;
}
.result-card{
  display:flex; gap:1rem;
  background: var(--bg-card);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: .85rem;
  box-shadow: var(--shadow-card);
  transition: all var(--trans);
  position: relative;
  overflow: hidden;
}
.result-card:hover{ border-color: var(--border-strong); transform: translateY(-1px) perspective(900px) rotateX(1deg); }
.result-card--ja_tem, .result-card--importado{ box-shadow: inset 3px 0 0 var(--success), var(--shadow-card); }
.result-card--falta{ box-shadow: inset 3px 0 0 var(--danger), var(--shadow-card); }
.result-card--pendente{ box-shadow: inset 3px 0 0 var(--warning), var(--shadow-card); }

.result-card__poster{
  flex: 0 0 92px; width: 92px; height: 138px;
  border-radius: var(--radius-sm); overflow: hidden;
  background: var(--bg-input);
  display:flex; align-items:center; justify-content:center;
}
.result-card__poster img{ width:100%; height:100%; object-fit:cover; display:block; }
.result-card__poster--empty span{ font-size: 2rem; opacity: .6; }

.result-card__body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:.5rem; }
.result-card__head{ display:flex; flex-direction:column; gap:.4rem; }
.result-card__title{
  font-size: .98rem; font-weight: 700; margin:0;
  color: var(--text-main);
  overflow:hidden; text-overflow:ellipsis; display:-webkit-box;
  -webkit-line-clamp:2; -webkit-box-orient: vertical;
}
.result-card__year{ color: var(--text-muted); font-weight: 500; font-size: .85em; }
.result-card__badges{ display:flex; gap:.3rem; flex-wrap:wrap; }

.result-card__detail{
  font-size: .82rem; color: var(--text-muted); margin:0;
  line-height: 1.45;
}

.result-card__gaps{
  font-size:.78rem; color: var(--text-muted);
  background: rgba(245,158,11,.08);
  border:1px solid rgba(245,158,11,.2);
  border-radius: var(--radius-sm);
  padding:.5rem .65rem;
}
.result-card__gaps strong{ color: var(--warning); font-weight:600; }
.result-card__gaps ul{ margin:.25rem 0 0; padding-left:1.1rem; }

.result-card__trail{
  display:flex; flex-wrap:wrap; gap:.25rem;
  padding-top:.15rem;
}
.result-card__trail .trail-step{
  font-size:.65rem; padding:.1rem .4rem;
  background: var(--bg-input); color: var(--text-dim);
  border:1px solid var(--border); border-radius:999px;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  text-transform: lowercase;
}

.result-card__actions{ display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.15rem; }
.result-card__meta{ font-size:.7rem; color: var(--text-dim); margin-top:auto; letter-spacing:.03em; }

@media (max-width: 520px){
  .result-card{ flex-direction: column; }
  .result-card__poster{ width:100%; height: 180px; flex: 0 0 auto; }
}

/* ================= NEON REQUEST SURFACE ================= */
.request-shell,
.search-box,
.movie-card,
.serie-card,
.modal-content,
.warning-content,
.toast{
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.movie-card,
.serie-card{
  box-shadow: var(--shadow-card), 0 0 0 1px rgba(255,255,255,.03) inset;
}
.movie-card:hover,
.serie-card:hover{
  box-shadow: var(--shadow-pop), 0 0 0 1px rgba(96,165,250,.16) inset;
}

/* ================= PUBLIC REQUEST PAGES ================= */
body.request-public-page{
  padding: 20px;
}
.request-public-shell{
  max-width: 1160px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.request-public-hero,
.request-public-panel,
.request-public-banner,
.request-public-note{
  border:1px solid rgba(96,165,250,.14);
  border-radius: 24px;
  background: linear-gradient(160deg, rgba(10,18,36,.82), rgba(10,18,36,.48));
  box-shadow: 0 20px 50px -24px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(18px);
  position: relative;
  overflow: hidden;
}
.request-public-hero,
.request-public-banner,
.request-public-note{
  animation: requestFadeInUp .7s ease both;
}
.request-public-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1.5rem;
  padding: 28px;
}
.request-public-hero::after,
.request-public-panel::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(135deg, rgba(255,255,255,.04), transparent 24%, transparent 76%, rgba(255,255,255,.02));
}
.request-public-hero-copy{
  display:flex;
  flex-direction:column;
  gap: .6rem;
  min-width: 0;
}
.request-public-title{
  margin:0;
  font-size: clamp(2rem, 3.2vw, 3.35rem);
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.05;
  background: linear-gradient(90deg, var(--text-main), var(--primary) 42%, var(--accent) 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}
.request-public-subtitle{
  margin:0;
  color: var(--text-muted);
  font-size: 1rem;
  line-height: 1.7;
  max-width: 68ch;
}
.request-public-logo{
  max-width: 140px;
  filter: drop-shadow(0 0 22px var(--primary-soft));
  flex: 0 0 auto;
}
.request-public-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap: .5rem;
  margin-top: .25rem;
}
.request-public-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.42rem .75rem;
  border-radius:999px;
  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  color: var(--text-muted);
  font-size: .8rem;
  white-space: nowrap;
}
.request-public-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  color:#fff;
}
.request-public-banner .request-public-banner-copy{
  display:flex;
  align-items:center;
  gap:.8rem;
  min-width:0;
}
.request-public-banner i{
  font-size: 1.4rem;
  flex: 0 0 auto;
}
.request-public-banner .request-public-banner-value{
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -.03em;
  text-align:right;
  flex:0 0 auto;
}
.request-public-panel{
  padding: 14px;
}
.request-public-search-row{
  display:flex;
  align-items:center;
  gap: .85rem;
  background: rgba(5,10,20,.58);
  border-radius: 18px;
  padding: .6rem .8rem;
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
.request-public-search-row:focus-within{
  border-color: color-mix(in oklab, var(--primary) 55%, transparent);
  box-shadow: 0 0 0 3px var(--primary-soft), inset 0 1px 0 rgba(255,255,255,.03);
}
.request-public-search-icon{
  color: var(--text-dim);
  font-size: 1.08rem;
  flex: 0 0 auto;
}
.request-public-search-input{
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  color: var(--text-main);
  font-size: 1rem;
  outline: none;
}
.request-public-search-input::placeholder{
  color: var(--text-dim);
}
.request-public-search-button{
  padding: .85rem 1.4rem;
  background: linear-gradient(135deg, var(--primary), var(--primary-hover));
  border: none;
  border-radius: 14px;
  color: #fff;
  font-size: .95rem;
  cursor: pointer;
  font-weight: 700;
  transition: all var(--trans);
  box-shadow: 0 18px 32px -20px color-mix(in oklab, var(--primary) 70%, transparent);
}
.request-public-search-button:hover:not(:disabled){
  background: linear-gradient(135deg, var(--primary-hover), var(--accent));
  transform: translateY(-1px);
}
.request-public-search-button:disabled{
  opacity:.7;
  cursor:not-allowed;
  transform:none;
}
.content-category-badge{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .7rem;
  border-radius:999px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.02em;
  margin: .4rem 0 .65rem;
  white-space: nowrap;
}
.content-category-badge--server{
  background: linear-gradient(135deg, rgba(34,197,94,.18), rgba(14,165,233,.18));
  color: #86efac;
  border: 1px solid rgba(34,197,94,.28);
}
.content-category-badge--missing{
  background: rgba(148,163,184,.08);
  color: var(--text-muted);
  border: 1px solid rgba(148,163,184,.18);
}
.serie-card.partial{
  opacity: .94;
  border: 1px solid rgba(251,191,36,.42);
  box-shadow: 0 22px 45px -22px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 1px rgba(251,191,36,.08);
}
.request-public-note{
  padding: 1rem 1.15rem;
  display:flex;
  gap:.7rem;
  align-items:flex-start;
  color: var(--text-muted);
}
.request-public-note i{
  color: #22d3ee;
  margin-top: .12rem;
}
.request-public-foot{
  text-align:center;
  padding: 2rem 0 1rem;
  color: var(--text-dim);
  font-size: .9rem;
}
@keyframes requestFadeInUp{
  from{ opacity:0; transform: translateY(14px); }
  to{ opacity:1; transform: translateY(0); }
}
@media (max-width: 768px){
  body.request-public-page{
    padding: 12px;
  }
  .request-public-shell{
    gap: .85rem;
  }
  .request-public-hero{
    flex-direction: column;
    align-items: center;
    text-align:center;
    padding: 18px 16px;
  }
  .request-public-logo{
    max-width: 104px;
  }
  .request-public-banner,
  .request-public-search-row{
    flex-direction: column;
    align-items: stretch;
    gap: .7rem;
  }
  .request-public-banner{
    padding: .95rem 1rem;
  }
  .request-public-banner .request-public-banner-copy{
    width:100%;
    align-items:flex-start;
  }
  .request-public-banner .request-public-banner-value{
    text-align:left;
    width:100%;
    font-size: 1.25rem;
  }
  .request-public-panel,
  .request-public-note{
    padding-left: 12px;
    padding-right: 12px;
  }
  .request-public-note{
    align-items:flex-start;
  }
  .request-public-search-row{
    padding: .7rem;
  }
  .request-public-search-icon{
    display:none;
  }
  .request-public-search-input,
  .request-public-search-button{
    width:100%;
    min-height: 48px;
  }
  .request-public-search-button{
    width:100%;
  }
  .request-public-pill-row{
    justify-content:center;
  }
  .request-public-pill{
    white-space: normal;
  }
  .request-public-subtitle{
    font-size: .95rem;
    line-height: 1.6;
  }
  .request-public-title{
    font-size: clamp(1.6rem, 8vw, 2rem);
    line-height: 1.1;
  }
  .request-public-foot{
    padding-top: 1.4rem;
  }
  .results-area,
  .results-grid{
    grid-template-columns: 1fr !important;
    gap: 14px;
  }
  .movie-card,
  .serie-card{
    border-radius: 18px;
  }
  .movie-poster-wrapper,
  .serie-card img{
    height: 240px;
  }
  .movie-info,
  .serie-info{
    padding: 14px;
    gap: 8px;
  }
  .movie-title,
  .serie-title{
    font-size: 15px;
    min-height: 0;
    line-height: 1.3;
  }
  .movie-meta,
  .serie-meta{
    flex-wrap: wrap;
    font-size: 11px;
    gap: 6px 8px;
  }
  .movie-info .content-category-badge,
  .serie-info .content-category-badge,
  .content-category-badge{
    white-space: normal;
    line-height: 1.4;
    padding: .5rem .7rem;
  }
  .movie-plot-shell,
  .serie-plot-shell{
    padding: 10px 11px;
  }
  .movie-plot-preview,
  .movie-plot-full,
  .serie-plot-preview,
  .serie-plot-full{
    font-size: 13px;
  }
  .btn-request,
  .btn-primary{
    min-height: 48px;
  }
  #requestStatus,
  #requestEtaBox,
  #requestLogBox{
    position: relative !important;
    top: auto !important;
    z-index: auto !important;
    margin-bottom: 12px !important;
    padding: 12px 12px !important;
    border-radius: 14px !important;
  }
  #requestStatusText,
  #requestEtaText{
    font-size: 13px !important;
    line-height: 1.55 !important;
  }
  #requestLogLines{
    max-height: 240px !important;
  }
}
@media (max-width: 560px){
  .results-area,
  .results-grid{
    grid-template-columns: 1fr !important;
  }
  .request-public-banner .request-public-banner-value{
    font-size: 1.1rem;
  }
  .request-public-title{
    font-size: 1.55rem;
  }
  .movie-poster-wrapper,
  .serie-card img{
    height: 220px;
  }
  .movie-title,
  .serie-title{
    font-size: 14px;
  }
}
@media (prefers-reduced-motion: reduce){
  .request-public-hero,
  .request-public-panel,
  .request-public-banner,
  .request-public-note{
    animation:none !important;
  }
}
