/* Bootcamp Skilland · base: reset, tipografía, layout y componentes comunes.
   Las vistas añaden lo suyo en styles/views/*.css con prefijo propio. */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:var(--data);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- tipografía ---------- */
.eyebrow{font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:600;color:var(--accent-text)}
.eyebrow--sky{color:var(--data)}
.eyebrow--muted{color:var(--muted)}
.kicker{display:inline-flex;align-items:center;gap:10px;font-size:var(--fs-xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;font-weight:600;color:var(--ink)}
.kicker::before{content:"";width:22px;height:3px;background:var(--accent);border-radius:2px;flex:none}
.t-1{font-size:clamp(30px,5.2vw,var(--fs-3xl));font-weight:700;line-height:1.02;letter-spacing:var(--ls-tight);color:var(--ink)}
.t-2{font-size:clamp(22px,3.2vw,var(--fs-2xl));font-weight:600;line-height:1.08;letter-spacing:-.022em;color:var(--ink)}
.t-3{font-size:var(--fs-lg);font-weight:600;line-height:1.25;letter-spacing:-.012em;color:var(--ink)}
.t-4{font-size:var(--fs-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.lead{font-size:clamp(16px,1.6vw,19px);line-height:1.5;color:var(--text);font-weight:400;max-width:62ch}
.muted{color:var(--muted)}
.small{font-size:var(--fs-sm)}
.num-grande{font-size:clamp(84px,14vw,var(--fs-num));font-weight:700;line-height:.82;letter-spacing:-.06em;color:var(--accent);font-variant-numeric:tabular-nums}
.oro{color:var(--accent-text)}
strong{font-weight:600;color:var(--ink)}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-5)}
#app{padding-top:calc(var(--nav-h) + var(--sp-6));padding-bottom:var(--sp-8);min-height:80vh}
.seccion{margin-top:var(--sp-7)}
.seccion__cab{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4);
  padding-bottom:var(--sp-3);border-bottom:1px solid var(--rule)}
.pila>*+*{margin-top:var(--sp-4)}
.fila{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.rejilla-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}
.rejilla-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}
@media (max-width:860px){.rejilla-3{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.rejilla-2,.rejilla-3{grid-template-columns:1fr}.wrap{padding:0 var(--sp-4)}}
.hr{height:1px;background:var(--rule);border:0;margin:var(--sp-5) 0}

/* ---------- barra superior ---------- */
.topbar{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--nav-h);background:var(--card);border-bottom:1px solid var(--rule)}
.topbar__in{height:100%;display:flex;align-items:center;gap:var(--sp-4)}
.marca{display:flex;align-items:center;gap:10px;color:var(--ink);flex:none}
.marca:hover{text-decoration:none}
.marca img{height:30px;width:auto}
.marca__txt{font-weight:700;font-size:17px;letter-spacing:-.02em;color:var(--ink)}
.marca__txt span{font-weight:400;color:var(--sky)}
.migas{display:flex;align-items:center;gap:6px;min-width:0;flex:1;font-size:var(--fs-sm);color:var(--muted);overflow:hidden;white-space:nowrap}
.migas a{color:var(--muted)}
.migas a:hover{color:var(--ink)}
.migas__sep{opacity:.6}
.migas__actual{color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis}
.topbar__acc{display:flex;align-items:center;gap:var(--sp-2);flex:none;margin-left:auto}
.guardado{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:6px 10px;border-radius:var(--r-pill);border:1px solid var(--rule);color:var(--muted);background:transparent}
.guardado::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.guardado[data-estado="guardado"]{color:var(--ok)}
.guardado[data-estado="guardando"]{color:var(--data)}
.guardado[data-estado="local"]{color:var(--warn);border-color:var(--accent)}
.guardado[data-estado="conflicto"]{color:var(--danger);border-color:var(--danger)}
@media (max-width:720px){
  :root{--nav-h:96px}
  .topbar__in{flex-wrap:wrap;align-content:center;row-gap:6px}
  .migas{order:3;flex-basis:100%}
  .marca__txt{font-size:15px}
}

/* ---------- tarjetas y planos ---------- */
.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);padding:var(--sp-5)}
.card--plano{background:transparent}
.card--inv{background:var(--invert-bg);color:var(--invert-text-2);border-color:transparent}
.card--inv .t-1,.card--inv .t-2,.card--inv .t-3,.card--inv strong{color:var(--invert-text)}
.card--inv .eyebrow{color:var(--invert-label)}
.card--oro{border-left:3px solid var(--accent)}
.plano-inv{background:var(--invert-bg);color:var(--invert-text-2);border-radius:var(--r-lg);padding:var(--sp-6)}
.plano-inv .eyebrow{color:var(--invert-label)}
.plano-inv strong,.plano-inv .t-2,.plano-inv .t-3{color:var(--invert-text)}

/* ---------- etiquetas, chips, listas con guion ---------- */
.tag{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 9px;border-radius:var(--r-pill);border:1px solid var(--rule-strong);color:var(--muted);white-space:nowrap}
.tag--oro{border-color:var(--accent);color:var(--accent-text)}
.tag--sky{border-color:var(--data);color:var(--data)}
.tag--solido{background:var(--invert-bg);border-color:var(--invert-bg);color:var(--invert-text)}
.borrador{display:inline-flex;align-items:center;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  padding:2px 7px;border-radius:var(--r-pill);background:var(--data-soft);color:var(--data);white-space:nowrap}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 12px;border-radius:var(--r-pill);border:1px solid var(--rule-strong);
  background:var(--card);color:var(--text);font-size:var(--fs-sm);font-weight:500;line-height:1.2;transition:border-color .15s,background .15s}
.chip:hover{border-color:var(--accent)}
.chip[aria-pressed="true"],.chip--on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
:root[data-theme="dark"] .chip[aria-pressed="true"],:root[data-theme="dark"] .chip--on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip[aria-pressed="true"],:root:not([data-theme="light"]) .chip--on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}}
.chip--sm{min-height:26px;padding:3px 9px;font-size:12px}
.chip--linear{border-color:var(--data);color:var(--data);font-weight:600;letter-spacing:.02em}
.chip--linear:hover{text-decoration:none;background:var(--data-soft)}
.chip__x{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;color:inherit;opacity:.7}
.chip__x:hover{opacity:1}
.dash>li{position:relative;padding-left:20px}
.dash>li+li{margin-top:6px}
.dash>li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:1.5px;background:var(--accent)}

/* ---------- botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 18px;border-radius:var(--r-pill);
  background:var(--accent);color:var(--on-accent);font-weight:600;font-size:var(--fs-sm);letter-spacing:.01em;border:1px solid var(--accent);white-space:nowrap}
.btn:hover{text-decoration:none;filter:brightness(1.05)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong)}
.btn--ghost:hover{border-color:var(--accent);filter:none}
.btn--sm{min-height:32px;padding:5px 12px;font-size:12px}
.btn--navy{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.btn-icon{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);color:var(--muted);flex:none}
.btn-icon:hover{color:var(--ink);background:var(--card-2)}
.btn-icon--peligro:hover{color:var(--danger)}
.btn-add{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--accent-text);padding:6px 2px}
.btn-add:hover{color:var(--ink)}
.icon{width:18px;height:18px;flex:none}
.icon--sm{width:14px;height:14px}

/* ---------- arrastrar ---------- */
.handle{cursor:grab;color:var(--muted);display:inline-grid;place-items:center;width:24px;height:32px;flex:none;touch-action:none}
.handle:hover{color:var(--ink)}
.handle:active{cursor:grabbing}
.sortable-ghost{opacity:.35}
.sortable-chosen,.sortable-drag{box-shadow:var(--shadow-drag)!important}
.sortable-fallback{box-shadow:var(--shadow-drag)!important;opacity:.95!important}
.arrastrable{cursor:grab}

/* ---------- estados de ficha ---------- */
.estado{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--rule-strong);color:var(--muted);white-space:nowrap}
.estado--en-curso{border-color:var(--accent);color:var(--accent-text)}
.estado--cerrada{background:var(--ink);border-color:var(--ink);color:var(--bg)}
:root[data-theme="dark"] .estado--cerrada{background:var(--sky);border-color:var(--sky);color:var(--navy)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .estado--cerrada{background:var(--sky);border-color:var(--sky);color:var(--navy)}}
.caja{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);transition:border-color .15s}
.caja--en-curso{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.caja--cerrada{background:var(--navy);border-color:var(--navy);color:var(--invert-text-2)}
.caja--cerrada .t-3,.caja--cerrada strong,.caja--cerrada .caja__titulo{color:#fff}
.caja--cerrada .muted,.caja--cerrada .caja__meta{color:var(--invert-text-2)}
.caja--cerrada .eyebrow{color:var(--sky)}
:root[data-theme="dark"] .caja--cerrada{background:#060F24;border-color:var(--sky)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .caja--cerrada{background:#060F24;border-color:var(--sky)}}

/* ---------- barra de progreso ---------- */
.progreso{height:4px;border-radius:2px;background:var(--rule);overflow:hidden}
.progreso>span{display:block;height:100%;background:var(--accent);border-radius:2px}

/* ---------- formularios ---------- */
.input,.textarea,.select{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--rule-strong);border-radius:var(--r-md);background:var(--card);
  color:var(--text);font-size:var(--fs-md);line-height:1.45;transition:border-color .15s}
.input:hover,.textarea:hover{border-color:var(--muted)}
.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(213,167,73,.22)}
.input::placeholder,.textarea::placeholder{color:var(--muted);opacity:.8}
.textarea{resize:vertical;min-height:84px;display:block}
.textarea--auto{resize:none;overflow:hidden;min-height:40px}
.input--num{max-width:180px;font-variant-numeric:tabular-nums}
.input--fecha{max-width:200px}
.es-borrador .input,.es-borrador .textarea,.es-borrador .lista__input{border-style:dashed}
.campo{padding:var(--sp-5) 0;border-top:1px solid var(--rule)}
.campo:first-child{border-top:0;padding-top:0}
.campo__cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-bottom:var(--sp-3)}
.campo__label{font-size:var(--fs-md);font-weight:600;color:var(--ink);line-height:1.35;flex:1 1 280px}
.campo__ayuda{font-size:var(--fs-sm);color:var(--muted);margin-top:-6px;margin-bottom:var(--sp-3)}
.campo__pendiente{padding:var(--sp-4);border:1px dashed var(--rule-strong);border-radius:var(--r-md);color:var(--muted);font-size:var(--fs-sm)}

/* opción (segmentado) y puntuación */
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{min-height:36px;padding:6px 14px;border-radius:var(--r-pill);border:1px solid var(--rule-strong);font-size:var(--fs-sm);font-weight:500;background:var(--card);color:var(--text)}
.seg button:hover{border-color:var(--accent)}
.seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}
.score{display:inline-flex;gap:6px}
.score button{width:40px;height:40px;border-radius:var(--r-md);border:1px solid var(--rule-strong);font-weight:600;font-variant-numeric:tabular-nums;background:var(--card);color:var(--text)}
.score button:hover{border-color:var(--accent)}
.score button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.score button.score--bajo{background:rgba(213,167,73,.18);border-color:var(--accent)}

/* check */
.check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;line-height:1.4}
.check input{position:absolute;opacity:0;pointer-events:none}
.check__caja{width:24px;height:24px;flex:none;border-radius:6px;border:1.5px solid var(--rule-strong);display:grid;place-items:center;color:transparent;background:var(--card);margin-top:-1px}
.check input:checked+.check__caja{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.check input:focus-visible+.check__caja{outline:2px solid var(--focus);outline-offset:2px}
.check:hover .check__caja{border-color:var(--accent)}
.check__txt{font-weight:500;color:var(--ink)}

/* lista */
.lista{display:flex;flex-direction:column;gap:6px}
.lista__fila{display:flex;align-items:flex-start;gap:4px;background:var(--card);border-radius:var(--r-md)}
.lista__fila .handle{height:40px}
.lista__input{flex:1;min-width:0}
.lista__fila .btn-icon{margin-top:4px}
.lista__vacia{color:var(--muted);font-size:var(--fs-sm)}

/* tabla (pasa a fichas apiladas por debajo de 760 px) */
.tabla-wrap{border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden;background:var(--card)}
.tabla{width:100%;border-collapse:collapse;table-layout:fixed}
.tabla th{font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 10px;
  background:var(--card-2);border-bottom:1px solid var(--rule);vertical-align:bottom}
.tabla td{padding:6px;border-bottom:1px solid var(--rule);vertical-align:top}
.tabla tr:last-child td{border-bottom:0}
.tabla td .input,.tabla td .textarea{border-color:transparent;background:transparent;padding:7px 8px;font-size:var(--fs-sm)}
.tabla td .input:hover,.tabla td .textarea:hover{border-color:var(--rule-strong)}
.tabla td .input:focus,.tabla td .textarea:focus{border-color:var(--accent);background:var(--card)}
.tabla .col-acc{width:44px}
.tabla .celda-fija{font-weight:600;color:var(--ink);font-size:var(--fs-sm);padding:12px 10px}
.tabla .chip{min-height:28px;padding:3px 9px;font-size:12px}
.tabla .seg button{min-height:28px;padding:3px 9px;font-size:12px}
.tabla .check{padding:8px}
.tabla__pie{padding:8px 12px;border-top:1px solid var(--rule)}
.tabla .personas{display:flex;flex-wrap:wrap;gap:4px;padding:4px 2px}
@media (max-width:760px){
  .tabla,.tabla tbody,.tabla tr,.tabla td{display:block;width:100%}
  .tabla thead{display:none}
  .tabla tr{padding:10px 8px;border-bottom:1px solid var(--rule)}
  .tabla td{border:0;padding:2px 0 8px}
  .tabla td::before{content:attr(data-label);display:block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:2px 8px 4px}
  .tabla td.col-acc{width:auto;text-align:right;padding:0}
  .tabla td.col-acc::before{display:none}
  .tabla td .input,.tabla td .textarea{border-color:var(--rule)}
}

/* personas */
.personas{display:flex;flex-wrap:wrap;gap:6px}

/* linear */
.linear{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.linear .input{max-width:160px;min-height:32px;padding:5px 10px;font-size:var(--fs-sm)}

/* ---------- cabecera de sesión (común) ---------- */
.ses-cab{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-6);align-items:end;padding-bottom:var(--sp-6);border-bottom:1px solid var(--rule)}
.ses-cab__num{font-size:clamp(110px,18vw,200px);font-weight:700;line-height:.78;letter-spacing:-.07em;color:var(--accent);font-variant-numeric:tabular-nums}
.ses-cab__meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--sp-3)}
.ses-cab__titulo{margin-bottom:var(--sp-3)}
.ses-cab__pregunta{font-size:clamp(17px,1.8vw,21px);font-weight:500;line-height:1.4;color:var(--ink);max-width:56ch;padding-left:var(--sp-4);border-left:3px solid var(--accent)}
.ses-cab__objetivo{margin-top:var(--sp-4);color:var(--muted);max-width:70ch}
.ses-cab__nav{display:flex;gap:8px;margin-top:var(--sp-4);flex-wrap:wrap}
@media (max-width:640px){.ses-cab{grid-template-columns:1fr;gap:var(--sp-3)}.ses-cab__num{font-size:96px}}

/* frameworks como filas editoriales */
.fw-filas{border-top:1px solid var(--rule)}
.fw-fila{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(0,1.4fr);gap:var(--sp-4);padding:var(--sp-4) 0;border-bottom:1px solid var(--rule);align-items:baseline}
.fw-fila__n{font-size:var(--fs-sm);font-weight:600;color:var(--accent-text);font-variant-numeric:tabular-nums}
.fw-fila__nombre{font-weight:600;color:var(--ink);font-size:var(--fs-lg);line-height:1.3;letter-spacing:-.01em}
.fw-fila__res{color:var(--muted)}
@media (max-width:640px){.fw-fila{grid-template-columns:36px minmax(0,1fr)}.fw-fila__res{grid-column:2}}

/* lista de fichas arrastrables (común) */
.fichas-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3)}
.ficha-caja{display:flex;flex-direction:column;gap:10px;padding:var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-4);min-height:176px;color:inherit;cursor:pointer}
.ficha-caja:hover{text-decoration:none;border-color:var(--accent)}
.ficha-caja__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ficha-caja__codigo{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.caja--cerrada .ficha-caja__codigo{color:var(--accent)}
.ficha-caja__titulo{font-size:var(--fs-lg);font-weight:600;line-height:1.25;color:var(--ink);letter-spacing:-.01em}
.ficha-caja__fw{font-size:var(--fs-sm);color:var(--muted);line-height:1.4}
.ficha-caja__pie{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;font-size:var(--fs-xs);color:var(--muted)}
.ficha-caja .handle{margin:-6px -8px 0 0}
.ficha-caja--trans{border-style:dashed}
.caja--cerrada .handle{color:var(--invert-text-2)}

/* salidas y deberes */
.salidas{display:grid;gap:8px}
.deberes{border-top:1px solid var(--rule)}
.deber{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:var(--sp-3);align-items:center;padding:var(--sp-3) 0;border-bottom:1px solid var(--rule)}
.deber__txt{font-weight:500;color:var(--ink)}
.deber__vence{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:640px){.deber{grid-template-columns:1fr;gap:6px}.deber>*:not(.deber__txt){justify-self:start}}

/* ---------- vista de ficha (común) ---------- */
.ficha-cab{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-5);align-items:end;padding-bottom:var(--sp-5);border-bottom:1px solid var(--rule)}
.ficha-cab__codigo{font-size:clamp(64px,10vw,112px);font-weight:700;line-height:.8;letter-spacing:-.06em;color:var(--accent);margin-bottom:var(--sp-3)}
.ficha-cab__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:var(--sp-3)}
.ficha-cab__dueno{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
@media (max-width:720px){.ficha-cab{grid-template-columns:1fr}}
.ficha-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--sp-6);margin-top:var(--sp-6);align-items:start}
.ficha-lateral{position:sticky;top:calc(var(--nav-h) + var(--sp-4));display:grid;gap:var(--sp-4)}
@media (max-width:1000px){.ficha-cuerpo{grid-template-columns:1fr}.ficha-lateral{position:static;order:-1}}
.ficha-fw__nombre{font-size:var(--fs-lg);font-weight:600;color:var(--invert-text);line-height:1.3;margin:6px 0 10px}
.ficha-fw p{font-size:var(--fs-sm);line-height:1.55}
.ficha-fw__obj{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid rgba(255,255,255,.14)}
.ficha-salida{font-weight:500;color:var(--ink)}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--rule);margin-bottom:var(--sp-5)}
.tab{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--muted);font-size:var(--fs-sm);font-weight:500}
.tab:hover{color:var(--ink);text-decoration:none}
.tab[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
.tab__punto{width:8px;height:8px;border-radius:50%;border:1px solid var(--rule-strong)}
.tab__punto--en-curso{border-color:var(--accent);background:transparent;box-shadow:inset 0 0 0 2px var(--accent)}
.tab__punto--cerrada{background:var(--ink);border-color:var(--ink)}
:root[data-theme="dark"] .tab__punto--cerrada{background:var(--sky);border-color:var(--sky)}
.tab-add{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;color:var(--accent-text);font-size:var(--fs-sm);font-weight:600}
.ficha-form{background:var(--card);border:1px solid var(--rule);border-radius:var(--r-lg);padding:var(--sp-6)}
@media (max-width:640px){.ficha-form{padding:var(--sp-4)}}
.ficha-acciones{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-5);align-items:center}

/* ---------- puerta de acceso y avisos ---------- */
.capa{position:fixed;inset:0;z-index:80;background:rgba(11,27,61,.55);display:grid;place-items:center;padding:var(--sp-4)}
.puerta{width:100%;max-width:440px;background:var(--card);border-radius:var(--r-lg);padding:var(--sp-6);border:1px solid var(--rule)}
.puerta .t-2{margin:8px 0 10px}
.puerta form{display:grid;gap:var(--sp-3);margin-top:var(--sp-4)}
.puerta__error{color:var(--danger);font-size:var(--fs-sm)}
.avisos{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:90;display:grid;gap:8px;max-width:min(380px,calc(100vw - 32px))}
.aviso{background:var(--navy);color:#fff;padding:12px 16px;border-radius:var(--r-md);font-size:var(--fs-sm);border-left:3px solid var(--accent);box-shadow:var(--shadow-drag)}
.aviso--conflicto{border-left-color:var(--sky)}
.vacio{padding:var(--sp-6);text-align:center;color:var(--muted);border:1px dashed var(--rule-strong);border-radius:var(--r-lg)}
.pie{border-top:1px solid var(--rule);margin-top:var(--sp-8);padding:var(--sp-5) 0;font-size:var(--fs-sm);color:var(--muted)}

/* ---------- ajustes de integración ---------- */
.ficha-cab>div{min-width:0}
.tag{max-width:100%}
.tag--largo,.ficha-cab__meta .tag{white-space:normal;text-align:left;line-height:1.3}
.tabla td .input--fecha{max-width:none;min-width:0;padding-right:4px}
.tabla td input[type="date"]{font-size:12px}
.ficha-aviso-cerrada{display:flex;align-items:center;gap:8px;margin-bottom:var(--sp-4);padding:10px 14px;border-radius:var(--r-md);background:var(--invert-bg);color:var(--invert-text);font-size:var(--fs-sm)}
.topbar__quien{white-space:nowrap}
@media (max-width:1000px){.ficha-lateral{order:0}}
@media (max-width:420px){.topbar__quien{padding:3px 8px}.guardado{padding:5px 8px}}
