/* ============================================================
   Cultura Racing RD — Sistema de diseño (tokens de Claude Design)
   ============================================================ */
:root{
  --racing-red:#E10600;--racing-red-dark:#B00500;--racing-red-soft:#FF2A24;
  --racing-black:#121212;--pure-black:#000;--white:#fff;--mascot-brown:#6E4B2A;--rd-blue:#002D62;
  --gold:#FFD700;--silver:#C0C0C0;--bronze:#CD7F32;
  --success:#16A34A;--warning:#F59E0B;--error:#DC2626;--info:#2563EB;
  --bg:#F5F5F7;--surface:#fff;--surface-2:#F0F0F3;--border:#E5E5EA;
  --text:#121212;--muted:#6B7280;--disabled:#9CA3AF;
  --shadow:0 2px 8px rgba(0,0,0,.06);--shadow-lg:0 8px 30px rgba(0,0,0,.12);
}
:root[data-theme="dark"]{
  --bg:#0E0E0E;--surface:#1C1C1E;--surface-2:#242426;--border:#2A2A2C;
  --text:#fff;--muted:#A1A1AA;--disabled:#6B7280;
  --shadow:0 2px 10px rgba(0,0,0,.5);--shadow-lg:0 10px 34px rgba(0,0,0,.6);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}
a{color:inherit;text-decoration:none}
.mi{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:'liga';display:inline-block;vertical-align:middle;user-select:none}
.disp{font-family:'Saira Condensed',sans-serif}
.num{font-family:'Rajdhani',sans-serif;font-variant-numeric:tabular-nums}
img{max-width:100%}
@keyframes crPulse{0%,100%{opacity:1}50%{opacity:.5}}

/* -------- Header web 72px -------- */
.hdr{position:sticky;top:0;z-index:40;height:72px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:20px;padding:0 24px}
.hdr .logo{height:38px;width:auto}
.hdr .search{flex:1;max-width:520px;height:44px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--muted)}
.hdr .search input{border:none;background:transparent;outline:none;flex:1;font:400 14px 'Inter';color:var(--text)}
.hdr .spacer{flex:1}
.hdr .actions{display:flex;align-items:center;gap:14px;color:var(--muted)}
.hdr .actions .badge{position:absolute;top:-4px;right:-6px;background:var(--racing-red);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 3px}
.hdr .av{width:36px;height:36px;border-radius:999px;overflow:hidden;border:2px solid var(--racing-red)}
.pill{font:600 12px 'Inter';color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 10px}
.pill.on{background:var(--racing-red);color:#fff;border-color:var(--racing-red)}
/* Saltos entre el sitio y el panel (Admin · Ver sitio): van arriba, junto al
   idioma, porque no son una sección más sino un cambio de sitio. */
.pill-ir{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;color:var(--text);white-space:nowrap}
.pill-ir:hover{border-color:var(--racing-red);color:var(--racing-red)}
@media(max-width:768px){.pill-ir span{display:none}}
/* En el móvil la barra superior tiene que caber: si no, la página entera se
   desplaza en horizontal y el contenido se ve cortado por la derecha. */
@media(max-width:768px){
  .hdr{gap:10px;padding:0 12px}
  .hdr .logo{height:30px}
  .hdr .spacer{display:none}
  .hdr .search{min-width:0;height:40px}
  .hdr .actions{gap:12px}
}
@media(max-width:520px){
  /* Buscar ya tiene su propio botón en la barra de abajo */
  .hdr .search{display:none}
}

/* -------- Layout 3 columnas -------- */
/* La plataforma entera queda centrada con aire en los dos extremos de la pantalla:
   el lateral izquierdo se corre a la derecha y el derecho a la izquierda.
   La barra superior (.hdr) NO se toca: sigue a ancho completo. */
.shell{display:flex;width:100%;max-width:1500px;margin:0 auto;min-height:calc(100vh - 72px)}
/* El menú se queda fijo al desplazar la página, pero SE PUEDE DESPLAZAR él
   solo: al ir añadiendo módulos ya no cabía entero y lo de abajo (Publicar,
   Configuración) quedaba fuera de la pantalla sin forma de llegar. */
.nav{width:260px;flex:none;border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:2px;background:var(--surface);position:sticky;top:72px;height:calc(100vh - 72px);
     overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.nav::-webkit-scrollbar{width:8px}
.nav::-webkit-scrollbar-track{background:transparent}
.nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}
.nav::-webkit-scrollbar-thumb:hover{background:var(--muted)}
/* Los enlaces no se encogen cuando el menú no cabe: si no, se aplastarían */
.nav a{flex:none}
/* Publicar se queda SIEMPRE a la vista, abajo del todo, aunque el menú se
   desplace. El halo del color del fondo tapa los enlaces que pasan por detrás. */
.nav > .btn-primary{position:sticky;bottom:0;flex:none;margin-top:6px;box-shadow:0 0 0 10px var(--surface)}
.nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:var(--text);font:500 15px 'Inter'}
.nav a:hover{background:var(--surface-2)}
.nav a.active{background:var(--racing-red);color:#fff;font-weight:700}
.main{flex:1;min-width:0;padding:24px 40px}
/* Columna del inicio: deja aire a izquierda y derecha para que las publicaciones
   no ocupen todo el ancho de la pantalla y las fotos se vean mejor. */
.feed-col{max-width:720px;margin:0 auto}
.rail{width:340px;flex:none;padding:24px 22px;border-left:1px solid var(--border);background:var(--surface)}
@media(max-width:1024px){.rail{display:none}}
@media(max-width:768px){.nav{display:none}.main{padding:16px;max-width:100%}}

/* -------- Botones -------- */
.btn{height:44px;border:none;border-radius:12px;font:600 14px 'Inter';cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px}
.btn-primary{background:var(--racing-red);color:#fff}
.btn-primary:hover{background:var(--racing-red-dark)}
.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text)}
.btn-success{background:var(--success);color:#fff}
.btn-block{width:100%}
.btn-vote{background:var(--racing-red);color:#fff}

/* -------- Chips / pestañas --------
   Van en una fila que se DESLIZA a izquierda y derecha (carrusel), tanto en
   pantalla grande como en el móvil: nunca se parten en dos líneas. */
.chips{display:flex;gap:8px;flex-wrap:nowrap;margin-bottom:20px;overflow-x:auto;
  scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none;height:0}
.chip{height:36px;padding:0 16px;display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);font:600 13px 'Inter';cursor:pointer;flex:none;white-space:nowrap}
.chip.on{background:var(--racing-red);color:#fff;border-color:var(--racing-red)}
/* Flechas para deslizar la fila de chips (solo aparecen si no cabe) */
.chips-wrap{position:relative}
.chips-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:30px;height:30px;border:1px solid var(--border);
  border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;display:none;align-items:center;justify-content:center;
  box-shadow:var(--shadow);font-size:14px;line-height:1}
.chips-arrow.show{display:flex}
.chips-arrow.left{left:-6px}
.chips-arrow.right{right:-6px}

/* -------- Barra de historias -------- */
.stories{display:flex;gap:14px;overflow-x:auto;padding:6px 2px 12px;margin-bottom:6px;scrollbar-width:none;-ms-overflow-style:none}
.stories::-webkit-scrollbar{display:none;height:0;width:0}
.story{text-align:center;flex:none;width:66px}
.story .ring{width:62px;height:62px;border-radius:999px;padding:2px;margin:0 auto;background:linear-gradient(45deg,var(--racing-red),var(--racing-red-soft))}
.story .ring.seen{background:var(--border)}
/* Mejores amigos: anillo verde (como Instagram) */
.story .ring.cf{background:linear-gradient(45deg,#16A34A,#4ADE80)}
.story .ago{font:600 9px 'Inter';color:var(--muted);margin-top:1px}
.story .ring>div{width:100%;height:100%;border-radius:999px;border:2px solid var(--surface);overflow:hidden;background:var(--surface-2)}
.story .ring img{width:100%;height:100%;object-fit:cover}
.story .nm{font:500 10px 'Inter';color:var(--text);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* -------- Tarjeta de post -------- */
.post{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:18px}
.post .top{display:flex;align-items:center;gap:10px;padding:12px 14px}
.post .top .av{width:38px;height:38px;border-radius:999px;overflow:hidden;border:2px solid var(--racing-red);flex:none}
.post .top .av img{width:100%;height:100%;object-fit:cover}
.post .name{font:600 14px 'Inter';color:var(--text);display:flex;align-items:center;gap:4px}
.post .name a{color:inherit}
.post .name a:hover{color:var(--racing-red)}
.post .sub{font:400 12px 'Inter';color:var(--muted)}
/* La publicación tiene SIEMPRE la misma proporción (4:3, un poco más ancha que alta).
   Da igual que la foto sea vertical, cuadrada u horizontal: se adapta al marco. */
/* El marco toma la forma REAL de la primera foto o video (--marco, que pone
   el servidor con los topes 4:5 … 1.91:1). Con `cover` siempre se llena, así
   que nunca quedan bandas negras a los lados. */
.post .media-wrap{position:relative;display:block;width:100%;aspect-ratio:var(--marco,1);overflow:hidden;background:var(--surface-2)}
.post .media{width:100%;height:100%;object-fit:cover;display:block;background:var(--surface-2)}

/* -------- Video en el inicio --------
   Se ve QUIETO, solo su portada, como si fuera una foto. No arranca solo: nadie
   quiere que un video se le ponga a sonar sin haberlo pedido. Al hacer clic se
   abre el visor grande y ahí sí se reproduce. */
.cr-video{position:absolute;inset:0;display:block;cursor:pointer}
.cr-video video{pointer-events:none}                    /* no se toca: el clic es del enlace */
.cr-video video::-webkit-media-controls{display:none !important}
.cr-vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:66px;height:66px;
  display:flex;align-items:center;justify-content:center;border-radius:999px;color:#fff;
  background:rgba(10,10,11,.42);backdrop-filter:blur(3px);pointer-events:none}

/* -------- Botón Seguir / Siguiendo de la publicación --------
   Va pegado a los ⋯. Rojo mientras no sigues; en cuanto sigues se apaga y
   pasa a decir «Siguiendo» (pulsándolo otra vez se deja de seguir). */
.cr-follow{border:1.5px solid var(--racing-red);background:var(--racing-red);color:#fff;
  font:700 12px 'Inter';padding:5px 12px;border-radius:999px;cursor:pointer;white-space:nowrap;line-height:1}
.cr-follow.on{background:transparent;color:var(--muted);border-color:var(--border)}
.cr-follow.claro{border-color:#ffffff5c;background:transparent;color:#fff}
.cr-follow.claro:not(.on){background:var(--racing-red);border-color:var(--racing-red)}

/* Overlay del vehículo dentro de la imagen (abajo a la derecha) */
.veh-overlay{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:8px;background:rgba(10,10,11,.62);backdrop-filter:blur(6px);padding:5px 12px 5px 5px;border-radius:999px;border:1px solid rgba(255,255,255,.14)}
.veh-overlay img{width:30px;height:30px;border-radius:999px;object-fit:cover;border:1.5px solid var(--racing-red)}
.veh-overlay .vn{color:#fff;font:700 13px 'Saira Condensed';letter-spacing:.02em;line-height:1;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post .acts{display:flex;align-items:center;padding:12px 14px 6px;color:var(--text)}
.post .acts .left{display:flex;align-items:center;gap:16px;flex:1}
.post .meta{padding:0 14px 14px}
.verified{color:var(--info)}

/* -------- Ranking -------- */
.rank-title{font-weight:800;font-size:34px;letter-spacing:.02em;line-height:1}
.king-banner{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:22px;background:#0b0b0c;border:1px solid var(--border)}
.king-banner img.bg{width:100%;height:260px;object-fit:cover;display:block;opacity:.9}
.king-banner .ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,11,.92) 0%,rgba(10,10,11,.55) 45%,rgba(225,6,0,.25) 100%)}
.king-banner .stripe{position:absolute;top:0;bottom:0;left:0;width:14px;background:repeating-linear-gradient(-45deg,var(--racing-red) 0 10px,var(--racing-red-dark) 10px 20px)}
.king-tag{position:absolute;left:26px;top:22px;display:inline-flex;align-items:center;gap:7px;background:var(--gold);color:#3a2c00;padding:6px 12px;border-radius:999px;font:800 12px 'Inter';letter-spacing:.06em}
.king-name{position:absolute;left:26px;bottom:22px}
.king-votes{position:absolute;right:26px;top:50%;transform:translateY(-50%);text-align:right}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin-bottom:24px}
/* min-width:0 + corte de palabra = las 3 columnas caben también en el móvil */
.podium .col{flex:1;text-align:center;min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.podium{gap:8px}}
.podium .ph{width:100%;aspect-ratio:1;border-radius:16px;overflow:hidden;margin-bottom:8px}
.podium .ph img{width:100%;height:100%;object-fit:cover}
.rank-list{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.rank-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--border)}
.rank-row:first-child{border-top:none}
.rank-row .thumb{width:52px;height:52px;border-radius:12px;overflow:hidden;flex:none;border:1px solid var(--border)}
.rank-row .thumb img{width:100%;height:100%;object-fit:cover}

/* mini rey (rail) */
.rail .card{border-radius:16px;overflow:hidden;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);margin-bottom:18px}
.rail h4{font:800 13px 'Saira Condensed';letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:0 0 12px;padding:0 2px}

/* -------- Bottom nav (móvil) -------- */
.bottomnav{display:none}
@media(max-width:768px){
  .bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--surface);border-top:1px solid var(--border);align-items:center;justify-content:space-around;z-index:45}
  .bottomnav a{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted);font:500 10px 'Inter'}
  .bottomnav a.active{color:var(--racing-red)}
  .bottomnav .fab{position:absolute;left:50%;top:-14px;transform:translateX(-50%);width:56px;height:56px;border-radius:999px;background:var(--racing-red);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(225,6,0,.4);border:4px solid var(--surface);color:#fff}
  body{padding-bottom:70px}
}

/* -------- Auth -------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);padding:36px 32px}
.field{height:50px;border:1.5px solid var(--border);border-radius:14px;display:flex;align-items:center;gap:10px;padding:0 14px;background:var(--surface);margin-bottom:12px}
.field:focus-within{border-color:var(--racing-red)}
.field input{border:none;background:transparent;outline:none;flex:1;font:400 14px 'Inter';color:var(--text)}
.divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--muted);font:400 12px 'Inter'}
.divider:before,.divider:after{content:'';flex:1;height:1px;background:var(--border)}
.soc{display:flex;gap:8px}
.soc button{flex:1;height:48px;border:1.5px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);font:600 13px 'Inter';cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}
.soc button[disabled]{background:var(--surface-2);color:var(--disabled);cursor:not-allowed}
.soc .dev{font:600 8px 'Inter';color:var(--warning);text-transform:uppercase}
.alert{background:rgba(220,38,38,.1);border:1px solid rgba(220,38,38,.3);color:var(--error);border-radius:12px;padding:10px 14px;font:500 13px 'Inter';margin-bottom:14px}
.ok{background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.3);color:var(--success);border-radius:12px;padding:10px 14px;font:500 13px 'Inter';margin-bottom:14px}

/* -------- Backend admin -------- */
.admin{display:flex;min-height:100vh}
/* Igual que el menú de la web: se desplaza solo cuando no cabe entero */
.sidebar{width:260px;flex:none;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh;
         overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.sidebar::-webkit-scrollbar{width:8px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}
.sidebar a{flex:none}
/* El botón de salir, siempre visible abajo */
.sidebar > form:last-child{position:sticky;bottom:0;flex:none;background:var(--surface);padding-top:8px}
.sidebar .brand{display:flex;align-items:center;gap:10px;padding:6px 10px 16px}
.sidebar .brand img{height:34px}
.sidebar a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--text);font:500 14px 'Inter';margin-bottom:1px}
.sidebar a:hover{background:var(--surface-2)}
.sidebar a.active{background:var(--racing-red);color:#fff}
.admin-main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}
.topbar{height:64px;flex:none;display:flex;align-items:center;gap:16px;padding:0 24px;background:var(--surface);border-bottom:1px solid var(--border)}
.topbar .crumb{font:500 13px 'Inter';color:var(--muted)}
.topbar .crumb b{color:var(--text)}
.admin-body{flex:1;padding:24px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.metric .ic{width:38px;height:38px;border-radius:10px;background:rgba(225,6,0,.12);display:flex;align-items:center;justify-content:center;color:var(--racing-red)}
.metric .val{font-weight:700;font-size:30px;color:var(--text);margin-top:12px;line-height:1}
.metric .m-lb{font:500 13px 'Inter';color:var(--muted)}
.card2{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.tbl{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.tbl .thead,.tbl .trow{display:grid;align-items:center;padding:12px 16px}
.tbl .thead{background:var(--surface-2);font:700 11px 'Inter';letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tbl .trow{border-top:1px solid var(--border)}
.stpill{font:600 11px 'Inter';padding:3px 9px;border-radius:999px}
.form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.form-row label{font:600 12px 'Inter';color:var(--text)}
.form-row .hint{font:400 11px 'Inter';color:var(--muted)}
.form-row input[type=text],.form-row input[type=password],.form-row input[type=email],.form-row select{height:44px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);padding:0 14px;font:400 14px 'Inter';outline:none}
.form-row input:focus,.form-row select:focus{border-color:var(--racing-red)}
.switch{display:inline-flex;align-items:center;gap:10px;font:600 13px 'Inter';color:var(--text)}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.sidebar{width:72px}.sidebar a span:not(.mi),.sidebar .brand span{display:none}}

/* -------- Explorar (grid) hover -------- */
.exp-cell .exp-ov{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;display:flex;align-items:center;gap:6px;background:linear-gradient(0deg,rgba(0,0,0,.7),transparent);opacity:0;transition:opacity .15s}
.exp-cell:hover .exp-ov{opacity:1}
.exp-cell:hover img{transform:scale(1.04)}
.exp-cell img{transition:transform .25s}

/* -------- Detalle de post a pantalla completa (lightbox) -------- */
.lb{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:100;display:flex;align-items:center;justify-content:center}
.lb-close{position:absolute;top:16px;left:18px;z-index:5;cursor:pointer;width:40px;height:40px;border-radius:999px;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff;border:1px solid rgba(255,255,255,.18)}
.lb-close:hover{background:rgba(0,0,0,.7)}
.lb-inner{display:flex;width:100%;height:100%;max-width:1500px;max-height:100vh}
.lb-img{flex:1;min-width:0;background:#000;display:flex;align-items:center;justify-content:center}
.lb-img img{max-width:100%;max-height:100vh;object-fit:contain}
.lb-panel{width:420px;flex:none;background:var(--surface);display:flex;flex-direction:column;height:100vh;border-left:1px solid var(--border)}
.lb-panel .ph{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--border)}
.lb-panel .ph .av{width:40px;height:40px;border-radius:999px;overflow:hidden;border:2px solid var(--racing-red);flex:none}
.lb-panel .ph .av img{width:100%;height:100%;object-fit:cover}
.lb-cmts{flex:1;overflow-y:auto;padding:16px}
.lb-cmt{display:flex;gap:10px;margin-bottom:16px}
.lb-cmt .cav{width:32px;height:32px;border-radius:999px;overflow:hidden;flex:none}
.lb-cmt .cav img{width:100%;height:100%;object-fit:cover}
.lb-acts{display:flex;align-items:center;gap:18px;padding:12px 16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text)}
.lb-input{display:flex;align-items:center;gap:10px;padding:12px 16px}
.lb-input input{flex:1;border:none;background:transparent;outline:none;font:400 14px 'Inter';color:var(--text)}
@media(max-width:860px){.lb-inner{flex-direction:column}.lb-panel{width:100%;height:auto;flex:1}.lb-img{max-height:45vh}}

/* -------- Visor de historias a pantalla completa -------- */
.sv{position:fixed;inset:0;background:#000;z-index:100;display:flex;align-items:center;justify-content:center}
.sv-frame{position:relative;width:100%;max-width:460px;height:100vh;background:#000;overflow:hidden}
.sv-frame>img{width:100%;height:100%;object-fit:cover}
.sv-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent 22%,transparent 72%,rgba(0,0,0,.6))}
.sv-bars{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:4px;z-index:3}
.sv-bars span{flex:1;height:3px;border-radius:999px;background:rgba(255,255,255,.35);overflow:hidden}
.sv-bars span.on{background:#fff}
/* La barra se rellena mientras corre la historia (el ancho lo mueve el JS) */
.sv-bars span i{display:block;height:100%;width:0;background:#fff;border-radius:999px}
.sv-top{position:absolute;top:26px;left:12px;right:12px;display:flex;align-items:center;gap:9px;z-index:3;color:#fff}
.sv-top .av{width:34px;height:34px;border-radius:999px;overflow:hidden;border:2px solid #fff}
.sv-top .av img{width:100%;height:100%;object-fit:cover}
.sv-reply{position:absolute;bottom:16px;left:12px;right:12px;display:flex;align-items:center;gap:8px;z-index:3}
.sv-reply .box{flex:1;height:42px;border:1.5px solid rgba(255,255,255,.5);border-radius:999px;display:flex;align-items:center;padding:0 16px;color:rgba(255,255,255,.85);font:400 13px 'Inter'}
/* Enviar aparece al escribir; corazón y compartir se apartan mientras tanto */
.sv-reply [hidden]{display:none!important}
.sv-nav{position:absolute;top:0;bottom:0;width:35%;z-index:2}
.sv-nav.prev{left:0}.sv-nav.next{right:0}

/* -------- Toast -------- */
.cr-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:200;background:var(--racing-black);color:#fff;border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 30px rgba(0,0,0,.35);font:500 13px 'Inter';opacity:0;transition:opacity .25s,transform .25s;max-width:92vw}
.cr-toast.show{opacity:1;transform:translate(-50%,0)}
.cr-toast-btn{border:none;background:none;color:var(--racing-red-soft);font:700 13px 'Inter';cursor:pointer;white-space:nowrap}

/* -------- Modal de colecciones -------- */
.cr-modal-ov{position:fixed;inset:0;z-index:210;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:20px}
.cr-modal{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-lg)}
.cr-modal-h{padding:16px 18px;font:800 16px 'Saira Condensed';letter-spacing:.03em;text-transform:uppercase;color:var(--text);border-bottom:1px solid var(--border)}
.cr-modal-list{max-height:46vh;overflow-y:auto;padding:6px}
.cr-col{width:100%;text-align:left;border:none;background:none;color:var(--text);font:500 14px 'Inter';padding:12px 14px;border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:6px}
.cr-col:hover{background:var(--surface-2)}
.cr-modal-new{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}
.cr-newname{flex:1;height:40px;border:1.5px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:0 12px;font:400 13px 'Inter';outline:none}
.cr-newbtn{border:none;background:var(--racing-red);color:#fff;border-radius:10px;padding:0 14px;font:600 13px 'Inter';cursor:pointer}
.cr-modal-close{width:100%;border:none;background:none;color:var(--muted);font:600 14px 'Inter';padding:14px;cursor:pointer;border-top:1px solid var(--border)}

/* -------- Chat / DM -------- */
.chat-list a{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid var(--border);border-radius:10px;color:var(--text)}
.chat-list a:hover{background:var(--surface-2)}
.chat-list .av{width:52px;height:52px;border-radius:999px;overflow:hidden;flex:none}
.chat-list .av img{width:100%;height:100%;object-fit:cover}
.chat-box{display:flex;flex-direction:column;height:calc(100vh - 140px);border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--surface)}
.chat-hd{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}
.chat-hd .av{width:38px;height:38px;border-radius:999px;overflow:hidden}
.chat-hd .av img{width:100%;height:100%;object-fit:cover}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}
.bubble{max-width:70%;padding:9px 13px;font:400 14px/1.35 'Inter';border-radius:16px}
.bubble.them{align-self:flex-start;background:var(--surface);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}
.bubble.me{align-self:flex-end;background:var(--racing-red);color:#fff;border-bottom-right-radius:4px}
.bubble .shared{display:block;border-radius:12px;overflow:hidden;background:rgba(0,0,0,.15);width:200px}
.bubble .shared img{width:100%;height:120px;object-fit:cover;display:block}
.chat-input{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface)}
.chat-input input{flex:1;height:40px;border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:0 16px;font:400 14px 'Inter';color:var(--text);outline:none}

/* utilidades */
.container-narrow{max-width:1280px;margin:0 auto}
.muted{color:var(--muted)}
.section-title{font:800 26px 'Saira Condensed';letter-spacing:.02em;color:var(--text)}
.badge-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font:800 10px 'Inter'}
.badge-king{background:var(--gold);color:#3a2c00}
.badge-dev{background:var(--warning);color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.05em}

/* ---- Recortador / uploader de imágenes ---- */
.cr-uploader{margin-bottom:8px}
.cr-uploader .cr-drop{position:relative;border:2px dashed var(--border);border-radius:14px;cursor:pointer;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center;background:var(--surface-2);transition:border-color .15s,background .15s}
.cr-uploader.drag .cr-drop{border-color:var(--racing-red);background:rgba(225,6,0,.06)}
.cr-uploader .cr-preview{position:absolute;inset:0;background-size:cover;background-position:center}
.cr-uploader .cr-hint{position:relative;z-index:1;padding:14px;color:var(--muted);font:500 13px 'Inter'}
.cr-uploader.has-img .cr-hint{background:rgba(0,0,0,.45);color:#fff;align-self:flex-end;width:100%;border-radius:0}
.cr-uploader.avatar .cr-drop{width:120px;height:120px;border-radius:50%;margin:0 auto}
.cr-uploader.cover .cr-drop{width:100%;height:170px}
.cr-uploader.veh .cr-drop{width:100%;height:200px}

/* Modal del recortador */
.crop-ov{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.crop-box{background:var(--surface);border-radius:16px;width:min(560px,96vw);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.crop-h{font:700 15px 'Saira Condensed','Inter';letter-spacing:.04em;text-transform:uppercase;color:var(--text);padding:14px 16px;border-bottom:1px solid var(--border)}
.crop-stage{background:#111;max-height:60vh;overflow:hidden}
.crop-img{max-width:100%;display:block}
.crop-tools{display:flex;gap:8px;justify-content:center;padding:10px}
.crop-btn{width:42px;height:42px;border-radius:10px;border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font-size:18px;cursor:pointer}
.crop-actions{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--border)}
.crop-actions .btn{flex:1;justify-content:center}

/* ---- Combobox marca/modelo con búsqueda ---- */
.cr-combo{position:relative}
.cr-combo>input{width:100%}
.cr-combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--surface);border:1.5px solid var(--border);
  border-radius:12px;max-height:260px;overflow:auto;box-shadow:0 12px 30px rgba(0,0,0,.18);display:none}
.cr-combo-list.open{display:block}
.cr-combo-item{padding:10px 14px;cursor:pointer;font:500 14px 'Inter';color:var(--text)}
.cr-combo-item:hover,.cr-combo-item.active{background:var(--surface-2);color:var(--racing-red)}

/* ---- Carrusel de fotos en publicaciones ---- */
/* Ocupa TODO el marco 4:3 de la publicación: así todas las fotos del carrusel
   miden lo mismo y no queda espacio en blanco aunque tengan formas distintas. */
.cr-carousel{position:absolute;inset:0;width:100%;height:100%}
.cr-carousel .cr-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;height:100%;scrollbar-width:none}
.cr-carousel .cr-track::-webkit-scrollbar{display:none}
.cr-carousel .cr-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:center;display:block}
.cr-cbtn{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;border-radius:50%;
  background:rgba(0,0,0,.4);color:#fff;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}
.cr-cbtn.prev{left:8px}.cr-cbtn.next{right:8px}
.cr-cbtn.hide{display:none}
.cr-count{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.55);color:#fff;font:700 11px 'Inter';padding:2px 9px;border-radius:99px;z-index:2}
.cr-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:5px;z-index:2}
.cr-dots span{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5)}
.cr-dots span.on{background:#fff;width:8px;height:8px}

/* En pantalla completa la foto se ve ENTERA, tal como se subió (sin el marco 4:3) */
.lb-img .cr-carousel{position:relative;inset:auto;width:100%;height:100%}
.lb-img .cr-carousel .cr-track{height:100%}
.lb-img .cr-carousel .cr-track img{object-fit:contain;background:#000}

/* ---- Autocompletar @menciones y #hashtags ---- */
.cr-mention-wrap{position:relative}
.cr-suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:var(--surface);
  border:1.5px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.18);display:none}
.cr-suggest.open{display:block}
.cr-sg-item{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer}
.cr-sg-item:hover,.cr-sg-item.on{background:var(--surface-2)}
.cr-sg-item img{width:34px;height:34px;border-radius:999px;object-fit:cover;flex:none;background:var(--surface-2)}
.cr-sg-hash{width:34px;height:34px;border-radius:10px;background:var(--surface-2);color:var(--racing-red);
  display:flex;align-items:center;justify-content:center;font:800 16px 'Inter';flex:none}
.cr-sg-name{font:600 14px 'Inter';color:var(--text)}
.cr-sg-sub{font:400 12px 'Inter';color:var(--muted)}

/* ---- Comentarios en hilo (A2): respuestas anidadas, me gusta y fijado ---- */
.cmt{display:flex;gap:10px;margin-bottom:14px;align-items:flex-start}
.cmt .cav{width:32px;height:32px;border-radius:999px;overflow:hidden;flex:none;background:var(--surface-2)}
.cmt .cav img{width:100%;height:100%;object-fit:cover;display:block}
.cmt .cbody{flex:1;min-width:0}
.cmt .ctext{font:400 13px/1.45 'Inter';color:var(--text);overflow-wrap:anywhere}
.cmt .ctext b a{color:var(--text)}
.cmt .cmeta{display:flex;align-items:center;gap:12px;margin-top:3px}
.cmt .cmeta>span,.cmt .cmeta>button{font:600 11px 'Inter';color:var(--muted);background:none;border:none;padding:0;cursor:pointer}
.cmt .cmeta>button:hover{color:var(--text)}
.cmt .clike{background:none;border:none;padding:2px;cursor:pointer;flex:none;line-height:0}
/* El fijado se distingue de un vistazo, como en Instagram */
.cmt .cpin{display:inline-flex;align-items:center;gap:3px;font:700 10px 'Inter';letter-spacing:.04em;
  text-transform:uppercase;color:var(--racing-red);margin-bottom:2px}
/* Las respuestas van sangradas y con avatar más pequeño */
.cmt.rep{margin-bottom:11px}
.cmt.rep .cav{width:24px;height:24px}
.cmt.rep .ctext{font-size:12.5px}
.creplies{margin-top:9px;padding-left:14px;border-left:2px solid var(--border)}
.creplies:empty{margin:0;padding:0;border:none}
.cmore{background:none;border:none;padding:0;margin-top:8px;cursor:pointer;font:700 11px 'Inter';color:var(--muted)}
.cmore:hover{color:var(--text)}
/* Resalta el comentario al que se está respondiendo */
.cmt.replying>.cbody{outline:2px solid var(--racing-red);outline-offset:6px;border-radius:8px}
.lb-cancel-reply{background:none;border:none;color:var(--muted);cursor:pointer;padding:0 4px;line-height:0}

/* ---- Elegidor de filtros de color (A12) ---- */
.fx-vista{background:#000;display:flex;align-items:center;justify-content:center;max-height:44vh;overflow:hidden}
.fx-vista img{max-width:100%;max-height:44vh;display:block}
.fx-tira{display:flex;gap:10px;overflow-x:auto;padding:12px;scrollbar-width:thin}
.fx-op{background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;flex:none}
.fx-mini{width:58px;height:58px;border-radius:10px;overflow:hidden;border:1.5px solid var(--border);display:block}
.fx-op.on .fx-mini{border-color:var(--racing-red);border-width:2.5px}
.fx-mini img{width:100%;height:100%;object-fit:cover;display:block}
.fx-op i{font:600 10.5px 'Inter';font-style:normal;color:var(--muted);max-width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-op.on i{color:var(--racing-red);font-weight:800}

/* ---- Historia de TEXTO (A7) ---- */
.sv-texto{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:9% 8%}
.sv-texto p{margin:0;color:#fff;font:800 30px/1.32 'Saira Condensed','Inter',sans-serif;
  text-shadow:0 2px 10px rgba(0,0,0,.35);word-break:break-word;max-height:100%;overflow:hidden}
@media (max-width:520px){.sv-texto p{font-size:24px}}
