/* ============================================================================
   fentho/vistas/vistas.css — LO PROPIO DE CADA SUPERFICIE
   ============================================================================
   Cuando cada superficie era una pagina, cada una llevaba su <style> dentro.
   Con una sola aplicacion ese CSS tiene que estar disponible desde el
   principio, porque se salta de una a otra sin recargar.

   Se comprobo que no hay dos superficies que usen el mismo nombre de clase, asi
   que juntarlas no cambia como se ve ninguna.
   ============================================================================ */

/* ── APRENDER ─────────────────────────────────────────────── */
/* La banda de foco del máster: panel de noche, titular grande y los pasos
     de la sesión listados dentro. */
  .foco{border-radius:26px;background:var(--noche);color:var(--noche-texto);padding:34px 34px 30px;position:relative;overflow:hidden}
  .foco .kick{font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--noche-texto-2)}
  .foco h2{font-family:var(--titular);font-size:clamp(27px,3vw,36px);font-weight:800;letter-spacing:-.04em;line-height:1.05;
    color:var(--noche-texto);text-wrap:pretty;max-width:600px;margin:14px 0 10px}
  .foco .why{font-size:15.5px;line-height:1.6;color:var(--noche-texto-2);max-width:560px}
  .pasos-sesion{display:flex;flex-direction:column;gap:7px;margin:24px 0 26px}
  .paso-s{display:flex;align-items:center;gap:12px;padding:12px 15px;border-radius:14px;background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08)}
  .paso-s .n{width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.09);display:grid;place-items:center;
    font-family:var(--mono);font-size:10.5px;color:var(--noche-texto-2);flex-shrink:0}
  .paso-s .nom{font-size:14.5px;color:var(--noche-texto);flex:1;min-width:0}
  .paso-s .meta{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--noche-texto-2);white-space:nowrap}
  .foco-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .btn-sesion{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 28px;border-radius:16px;
    background:var(--acento);color:var(--acento-texto);font-size:16.5px;font-weight:600;letter-spacing:-.012em;
    box-shadow:0 1px 2px rgba(11,11,12,.14),0 10px 22px -12px rgba(11,11,12,.28);transition:transform .18s var(--muelle)}
  .btn-sesion:hover{transform:translateY(-1.5px)}
  .duraciones{display:flex;gap:3px;padding:3px;border-radius:13px;background:rgba(255,255,255,.06)}
  .duraciones button{height:34px;padding:0 14px;border-radius:10px;font-size:13.5px;color:var(--noche-texto-2);transition:all .16s var(--muelle)}
  .duraciones button[aria-pressed="true"]{background:rgba(255,255,255,.12);color:var(--noche-texto);font-weight:600}
  .foco .mins{font-family:var(--mono);font-size:12.5px;color:var(--noche-texto-2)}

  .zona{border:2px dashed var(--borde-3);border-radius:20px;padding:36px 24px;text-align:center;background:var(--superficie);margin-top:20px}
  .zona b{font-family:var(--titular);font-size:17px;font-weight:700;display:block;margin-bottom:5px}
  .zona span{font-size:13px;color:var(--apagado)}

  .banda{border:1px solid var(--borde);border-radius:20px;background:var(--superficie);padding:24px;margin-top:16px}
  .banda .kick{display:block;margin-bottom:10px}
  .banda h3{font-family:var(--titular);font-size:19px;font-weight:700;letter-spacing:-.025em;margin-bottom:8px}
  .banda p{font-size:14.5px;color:var(--apagado);line-height:1.6}
  .exp-fila{display:flex;align-items:center;gap:14px;padding:15px 17px;border:1px solid var(--borde);border-radius:16px;
    background:var(--superficie);margin-bottom:9px;transition:all .16s var(--muelle);width:100%;text-align:left}
  .exp-fila:hover{transform:translateY(-1px);box-shadow:var(--s-eleva);border-color:var(--borde-3)}
  .exp-fila .col{flex:1;min-width:0}
  .exp-fila .t{font-size:15px;font-weight:600}
  .exp-fila .m{font-family:var(--mono);font-size:11.5px;color:var(--apagado-2);margin-top:3px}
  /* La tira de cifras. Cada una tiene una fila de la base detrás; si no la
     tiene, no está aquí. */
  .cifras{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:12px;margin-top:22px}
  .cifras .cifra{border:1px solid var(--borde);border-radius:16px;background:var(--superficie);padding:15px 17px}
  .cifras .cifra b{display:block;font-family:var(--titular);font-size:26px;font-weight:800;letter-spacing:-.035em;
    color:var(--tinta);line-height:1.1}
  .cifras .cifra span{display:block;font-size:12.5px;color:var(--apagado);margin-top:5px;line-height:1.35}
  .cifras .cifra em{font-family:var(--mono);font-size:10px;font-style:normal;color:var(--apagado-3);letter-spacing:.06em}
  .actividad{display:flex;flex-direction:column;gap:2px;margin-top:12px}
  .act-fila{display:flex;align-items:center;gap:11px;padding:9px 2px;font-size:13.5px;color:var(--tinta-2)}
  .act-fila .pt{width:7px;height:7px;border-radius:50%;flex-shrink:0}
  .act-fila .cuando{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--apagado-3);white-space:nowrap}

/* ── EXPLORER ─────────────────────────────────────────────── */
.filtros{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:22px 0 20px}
  .filtro{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:12px;
    border:1px solid var(--borde-2);background:var(--superficie);font-size:13.5px;color:var(--tinta-2);transition:all .14s var(--muelle)}
  .filtro:hover{border-color:var(--borde-4)}
  .filtro[aria-pressed="true"]{border-color:var(--acento);background:var(--acento-papel);color:var(--acento-link);font-weight:600}
  .filtro .cue{font-family:var(--mono);font-size:10.5px;color:var(--apagado-3)}
  .buscar-expl{display:flex;align-items:center;gap:10px;height:44px;padding:0 15px;border-radius:14px;
    border:1px solid var(--borde-2);background:var(--superficie);max-width:520px}
  .buscar-expl input{flex:1;border:0;outline:none;background:none;font-family:var(--texto);font-size:15px;color:var(--tinta)}
  .resultados{font-family:var(--mono);font-size:11.5px;color:var(--apagado-2);margin-bottom:14px}
  /* La FICHA: el LIBRO se conserva, la tarjeta no lo aplasta.
     El primer intento puso la tapa a lo ancho, como una cabecera de blog: la
     imagen se comía la ficha entera y el título quedaba flotando en un campo
     de color. Un libro no se reconoce por su superficie, se reconoce por su
     forma — y esa forma es vertical.

     Ahora el libro es un objeto pequeño dentro de la tarjeta, con su lomo y su
     canto, y el texto manda. Dos por fila: una experiencia es una decisión de
     semanas y enseñar seis de golpe la abarata. */
  .ficha{display:flex;flex-direction:column;gap:15px;padding:20px;border-radius:16px;
    text-align:left;width:100%;background:var(--papel,#FDFCFA);border:1px solid var(--borde-2);
    transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .24s ease,border-color .2s ease}
  .ficha:hover{transform:translateY(-2px);border-color:var(--borde-4);
    box-shadow:0 2px 4px rgba(41,30,20,.05),0 22px 40px -26px rgba(41,30,20,.42)}
  .ficha:focus-visible{outline:2px solid var(--acento);outline-offset:3px}

  .ficha-top{display:flex;gap:16px;align-items:flex-start}

  /* El libro. Proporción de libro real (2:3), radio asimétrico —cerrado por el
     lomo, redondeado por el corte— y el filo oscuro que le da cuerpo. */
  .tapa{width:78px;height:104px;flex-shrink:0;border-radius:3px 9px 9px 3px;
    position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;
    padding:10px 9px 10px 13px;color:rgba(255,255,255,.95);
    box-shadow:0 2px 4px rgba(41,30,20,.16),0 12px 22px -12px rgba(41,30,20,.5),
               inset 5px 0 0 rgba(0,0,0,.17)}
  .tapa::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(118deg,rgba(255,255,255,.2),rgba(255,255,255,0) 46%)}
  .tapa .mat{font-family:var(--mono);font-size:7px;letter-spacing:.14em;text-transform:uppercase;
    opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;z-index:1}
  .tapa .tit{font-family:var(--titular);font-size:10px;font-weight:800;letter-spacing:-.005em;
    line-height:1.26;overflow-wrap:anywhere;hyphens:auto;position:relative;z-index:1;
    display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}

  .ficha-cab{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
  .ficha h3{font-family:var(--titular);font-size:18px;font-weight:700;letter-spacing:-.028em;
    line-height:1.2;color:var(--tinta);
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .ficha .cuerpo{display:flex;flex-direction:column;gap:11px;min-width:0}
  .ficha p{font-size:13px;color:var(--apagado);line-height:1.55;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  /* La CLASE de experiencia. Discreta y en monoespaciada: informa de que tipo
     de cosa es sin competir con el titulo, que es quien manda en la tarjeta. */
  .ficha .clase{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--apagado-3);display:block;margin-bottom:-2px}
  .autor{display:inline-flex;align-items:center;gap:8px}
  .autor .av{width:22px;height:22px;border-radius:999px;background:linear-gradient(160deg,#F2DACD,#E5DFD4);
    display:grid;place-items:center;font-family:var(--titular);font-size:9px;font-weight:800;color:#8A3C1E;flex-shrink:0}
  .autor span{font-size:12.5px;font-weight:500;color:var(--tinta-2)}
  .ficha .pie{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;
    padding-top:13px;border-top:1px solid var(--borde)}
  .ficha .pie .dato{font-size:11.5px;color:var(--apagado-3)}
  .ficha .pie .punto{width:3px;height:3px;border-radius:50%;background:var(--borde-4);display:block}
  .ficha .precio{margin-left:auto;font-size:13.5px;font-weight:700}

  /* El Aporte trae su propio CSS desde /fentho/aporte.js: es una pieza que
     pintan tres superficies y tenerlo aqui copiado ya provoco que el aro
     heredase el tamano del de `subida.js` y se saliera de la tarjeta. */

  /* Dos columnas SIEMPRE que quepan, y el que decide si caben es el
     contenedor, no la ventana. El primer intento rompía a una columna por
     debajo de 980px de viewport — pero `.contenido-estrecho` mide 960px como
     mucho, así que la condición se cumplía siempre y la rejilla nunca llegaba
     a dos columnas: la segunda experiencia caía debajo, fuera de la vista, y
     el catálogo parecía tener una sola.

     `auto-fit` + `minmax` lo resuelve sin media query: caben dos si hay sitio
     para dos, y sea cual sea el ancho del contenedor. 300px es el punto en
     que la ficha deja de poder enseñar el libro y el título uno al lado del
     otro. */
  .rejilla-libros{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}

/* ── AJUSTES ─────────────────────────────────────────────── */
/* Perfil del máster: cuatro pestañas, tarjetas de estadística, el panel
     oscuro de Fenths con su borde de degradado, y los planes en tarjeta. */
  .tabs{display:inline-flex;gap:3px;padding:3px;border-radius:14px;background:rgba(41,30,20,.05);margin:22px 0 30px}
  .tabs button{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border-radius:11px;
    font-size:14px;color:var(--apagado);transition:all .16s var(--muelle)}
  .tabs button[aria-current="true"]{background:var(--superficie);color:var(--tinta);font-weight:600;
    box-shadow:0 1px 2px rgba(11,11,12,.06),0 4px 10px -6px rgba(11,11,12,.2)}

  .panel{animation:fx-rise .34s var(--muelle) .08s both}

  /* Cabecera de perfil */
  .yo{display:flex;align-items:center;gap:18px;margin-bottom:28px}
  .yo .av{width:64px;height:64px;border-radius:20px;background:var(--noche);color:var(--noche-texto);display:grid;place-items:center;
    font-family:var(--titular);font-size:23px;font-weight:800;letter-spacing:-.02em;flex-shrink:0;
    box-shadow:0 2px 4px rgba(28,22,16,.1),0 18px 34px -18px rgba(28,22,16,.5)}
  .yo h1{font-family:var(--titular);font-size:28px;font-weight:800;letter-spacing:-.035em;line-height:1.1}
  .yo .sub{font-size:14px;color:var(--apagado);margin-top:4px}

  .estad{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
  .est{padding:22px;border-radius:20px;border:1px solid var(--borde);background:var(--superficie);
    box-shadow:0 1px 2px rgba(11,11,12,.04)}
  .est .ic{width:34px;height:34px;border-radius:11px;background:var(--acento-papel);color:var(--acento-link);display:grid;place-items:center;margin-bottom:14px}
  .est .v{font-family:var(--titular);font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1}
  .est .l{font-size:13.5px;color:var(--tinta-2);margin-top:6px}
  .est .n{font-size:12.5px;color:var(--apagado-2);margin-top:4px;line-height:1.45}

  /* Panel de Fenths */
  .fenths-marco{border-radius:28px;padding:1px;background:linear-gradient(160deg,rgba(255,255,255,.14),color-mix(in srgb, var(--acento) 22%, transparent));
    box-shadow:0 2px 4px rgba(11,11,12,.1),0 36px 74px -30px rgba(11,11,12,.56)}
  .fenths-caja{position:relative;border-radius:27px;overflow:hidden;background:var(--noche);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.09);padding:32px 34px;display:flex;flex-direction:column;gap:24px}
  .fenths-caja::before{content:"";position:absolute;inset:-40% 46% 56% -12%;
    background:radial-gradient(closest-side,color-mix(in srgb, var(--acento) 28%, transparent),transparent);pointer-events:none}
  .fenths-caja > *{position:relative}
  .fenths-fila{display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap}
  .fenths-kick{font-family:var(--mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--noche-texto-2)}
  .fenths-cifra{font-family:var(--titular);font-size:58px;font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--noche-texto)}
  .fenths-de{font-size:16px;color:var(--noche-texto-2)}
  .fenths-barra{height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
  .fenths-barra i{display:block;height:100%;border-radius:999px;background:var(--acento);
    transition:width .9s cubic-bezier(.34,1.32,.64,1)}
  .fenths-nota{font-size:13px;color:var(--noche-texto-2)}
  .fenths-acciones{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .btn-noche{height:42px;padding:0 18px;border-radius:13px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13);
    color:var(--noche-texto);font-size:14.5px;transition:all .16s var(--muelle)}
  .btn-noche:hover{background:rgba(255,255,255,.12)}
  .btn-noche.acento{background:var(--acento);color:var(--acento-texto);border-color:var(--acento-osc);font-weight:600}

  .en-que{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:22px}
  .gasto{padding:16px 18px;border-radius:16px;border:1px solid var(--borde);background:var(--superficie)}
  .gasto .v{font-family:var(--titular);font-size:22px;font-weight:800;letter-spacing:-.03em}
  .gasto .l{font-size:12.5px;color:var(--apagado);margin-top:3px}

  .mov{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--borde)}
  .mov:last-child{border-bottom:0}
  .mov .ic{width:30px;height:30px;border-radius:10px;background:var(--superficie-2);color:var(--apagado);display:grid;place-items:center;flex-shrink:0}
  .mov .t{font-size:14px;font-weight:500}
  .mov .f{font-family:var(--mono);font-size:11.5px;color:var(--apagado-2);margin-top:2px}
  .mov .q{margin-left:auto;font-family:var(--mono);font-size:13px;white-space:nowrap}
  .mov .q[data-s="gasto"]{color:var(--tinta-2)}
  .mov .q[data-s="ingreso"]{color:var(--ok-fg)}

  /* Planes */
  .planes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
  @media(max-width:900px){.planes{grid-template-columns:1fr}}
  .plan{display:flex;flex-direction:column;gap:16px;padding:28px 26px;border-radius:24px;border:1px solid var(--borde);
    background:var(--superficie);box-shadow:0 1px 2px rgba(11,11,12,.04)}
  .plan[data-tuyo="1"]{border-color:var(--noche);background:var(--noche);color:var(--noche-texto);
    box-shadow:0 2px 4px rgba(11,11,12,.1),0 26px 52px -24px rgba(11,11,12,.5)}
  .plan .flag{align-self:flex-start;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
    padding:4px 10px;border-radius:7px;background:var(--superficie-2);color:var(--tinta-2)}
  .plan[data-tuyo="1"] .flag{background:rgba(255,255,255,.12);color:var(--noche-texto)}
  .plan h3{font-family:var(--titular);font-size:21px;font-weight:800;letter-spacing:-.025em}
  .plan[data-tuyo="1"] h3{color:var(--noche-texto)}
  .plan .precio{font-family:var(--titular);font-size:36px;font-weight:800;letter-spacing:-.04em;line-height:1}
  .plan .precio small{font-family:var(--texto);font-size:14px;font-weight:500;color:var(--apagado)}
  .plan[data-tuyo="1"] .precio small{color:var(--noche-texto-2)}
  .plan .tag{font-size:14px;color:var(--tinta-2);line-height:1.5}
  .plan[data-tuyo="1"] .tag{color:var(--noche-texto-2)}
  .plan .fen{font-family:var(--mono);font-size:12px;color:var(--acento)}
  .plan[data-tuyo="1"] .fen{color:var(--acento-hover)}
  .plan ul{list-style:none;display:grid;gap:9px;margin:0}
  .plan li{display:flex;gap:9px;font-size:14px;color:var(--tinta-2);line-height:1.45}
  .plan[data-tuyo="1"] li{color:var(--noche-texto-2)}
  .plan li i{color:var(--acento);font-style:normal;flex-shrink:0}
  .plan[data-tuyo="1"] li i{color:var(--acento-hover)}
  .plan .accion{margin-top:auto}

  .fila{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--borde);border-radius:16px;background:var(--superficie);margin-bottom:9px}
  .fila .col{flex:1;min-width:0}
  .fila .et{font-size:14.5px;font-weight:600}
  .fila .hint{font-size:12.5px;color:var(--apagado-2);margin-top:2px}
  .fila .va{font-size:14px;color:var(--tinta)}
  .fila input{height:42px;padding:0 13px;border:1px solid var(--borde-2);border-radius:11px;background:var(--superficie);
    font-family:var(--texto);font-size:14.5px;color:var(--tinta);outline:none;min-width:200px}
  .fila input:focus{border-color:var(--acento);box-shadow:0 0 0 3px var(--acento-papel)}

/* ── Biblioteca · Trabajo y Equipos ────────────────────────────────────────
   Una fila de trabajo tiene que contestar cuatro preguntas de un vistazo —de
   quién es, qué papel tienes, qué es y de dónde salió— sin convertirse en una
   tabla. De ahí dos líneas: la de identidad (tipo, título, papel) y la de
   procedencia, en el gris de lo secundario. */
.obra-lista{display:flex;flex-direction:column;gap:9px}
.obra{display:flex;align-items:center;gap:14px}
.obra-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.obra-linea{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.obra-titulo{font-size:15px;letter-spacing:-.01em;min-width:0}
.obra-sub{font-size:12.5px;color:var(--apagado)}

/* El papel se distingue del tipo por el color: ser viewer de algo es una
   información de otra clase que «esto es un documento». */
.pastilla.papel[data-p="owner"]{background:var(--c-ok-suave);color:var(--c-ok);border-color:transparent}
.pastilla.papel[data-p="editor"]{background:var(--c-info-suave);color:var(--c-info);border-color:transparent}
.pastilla.papel[data-p="viewer"]{background:var(--superficie-2);color:var(--apagado)}

.equipo{display:flex;flex-direction:column;gap:12px}
.equipo-gente{display:flex;flex-wrap:wrap;gap:7px}
.equipo-persona{display:inline-flex;align-items:center;gap:6px;font-size:13px;
  background:var(--superficie-2);border:1px solid var(--borde-2,#E6E0D6);border-radius:999px;padding:4px 6px 4px 11px}
.equipo-persona .icono-btn{width:20px;height:20px;font-size:14px;line-height:1}
.equipo-alta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.equipo-alta input{flex:1;min-width:190px;padding:9px 12px;border-radius:11px;
  border:1px solid var(--borde-2,#E6E0D6);background:var(--superficie,#fff);color:var(--tinta);font-size:14px;font-family:inherit}
.equipo-alta input:focus{outline:none;border-color:var(--acento,#F2552C)}
.equipo-nota{margin-top:2px;font-size:12.5px;line-height:1.5;color:var(--c-error,#B23B22)}
