
  /* ═══════════════════════════════════════════════════════════════
     THEMIS · MI CASO — línea "mono folios / Piel Tinta"
     La sala del cliente como EXPEDIENTE: carpeta, pestañas, foliado.
     Todo color deriva de :root — nada suelto.
     ═══════════════════════════════════════════════════════════════ */
  :root{
    color-scheme:light;
    --bg:#fbfbfc; --bg-alt:#f6f5f0; --elev:#ffffff;
    --ink:#131416; --ink-muted:#3f4146;
    --hair:#e8e7e2; --hair-strong:#d9d8d3; --gray:#6b7280;
    --crit:#a4574b; --med:#a8894e; --med-text:#765f2d; --ok:#6e8b6d; --ok-text:#4d684c; --info:#64748b;
    --shadow:0 1px 2px rgba(0,0,0,.04); --on-ink:#ffffff;
    --muted:var(--gray); /* compat: portal.js usa var(--muted) inline */
    --serif:Charter,'Iowan Old Style',Palatino,Georgia,serif;
    --sans:system-ui,-apple-system,'Segoe UI',sans-serif;
    --mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  }
  :root[data-theme="dark"]{
    color-scheme:dark;
    --bg:#141312; --bg-alt:#1b1a18; --elev:#1e1d1b;
    --ink:#f3f1ec; --ink-muted:#b7b3ab;
    --hair:#2b2926; --hair-strong:#3a3835; --gray:#8f8a82;
    --crit:#c47f71; --med:#c6a86a; --med-text:#c6a86a; --ok:#8fae8e; --ok-text:#8fae8e; --info:#8ba0bb;
    --shadow:0 1px 2px rgba(0,0,0,.35); --on-ink:#141312;
  }

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0;min-width:320px;min-height:100vh;
    background:var(--bg);color:var(--ink);
    font-family:var(--sans);font-size:14px;line-height:1.5;
    -webkit-font-smoothing:antialiased;overflow-x:hidden;
  }
  a{color:var(--ink)}
  button,input,textarea,select{font:inherit;color:inherit;letter-spacing:0}
  button{cursor:pointer}
  button:disabled{cursor:not-allowed;opacity:.5}
  :focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px}
  ::selection{color:var(--ink);background:color-mix(in srgb,var(--ink) 14%,var(--bg-alt))}
  @media (prefers-color-scheme:dark){ ::selection{color:var(--bg);background:var(--ink-muted)} }

  h1,h2,h3,h4{margin:0 0 .6rem;color:var(--ink);font-family:var(--serif);font-weight:500;line-height:1.14;letter-spacing:-.01em}
  h1{font-size:clamp(1.7rem,3.4vw,2.4rem)}
  h1 em,h2 em,h3 em{font-style:italic;font-weight:400;color:var(--ink-muted)}
  h2{font-size:clamp(1.3rem,2.4vw,1.65rem)}
  h3{font-size:1.06rem}
  h4{font-size:.95rem}
  p{margin:0 0 1rem}
  small{color:var(--gray)}
  ul{margin:.5rem 0;padding-left:1.1rem;color:var(--ink-muted)}
  li{margin:.2rem 0;font-size:.86rem}

  /* ════════════ shell / cabecera ════════════ */
  .tm-shell{min-height:100vh;display:grid;grid-template-rows:auto auto 1fr auto}
  .demo-band{
    font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--gray);text-align:center;padding:7px 12px;
    background:var(--bg-alt);border-bottom:1px solid var(--hair);
  }
  .tm-header{
    position:sticky;top:0;z-index:20;
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    min-height:58px;padding:.6rem clamp(1rem,3vw,2.4rem);
    border-bottom:1px solid var(--hair);
    background:var(--bg);
  }
  .tm-brand{display:inline-flex;align-items:baseline;gap:.65rem;color:var(--ink);text-decoration:none}
  .tm-brand strong{font:500 1.35rem/1 var(--serif);letter-spacing:.02em}
  .tm-brand strong::after{content:"\00a7";margin-left:.35rem;color:var(--gray);font-size:.8rem;vertical-align:1px}
  .tm-brand span{color:var(--gray);font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase}
  .tm-nav{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}
  #session-email{font-family:var(--mono);font-size:.72rem}

  .theme-toggle{
    display:inline-flex;align-items:center;gap:7px;
    border:1px solid var(--hair-strong);background:var(--elev);color:var(--ink);
    border-radius:5px;padding:6px 12px;font-size:12px;box-shadow:var(--shadow);white-space:nowrap;
  }
  .theme-toggle:hover{border-color:var(--gray)}
  .theme-toggle svg{width:14px;height:14px;flex:none}

  /* ════════════ botones ════════════ */
  .tm-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    min-height:36px;padding:.5rem .9rem;
    color:var(--ink);font-size:.78rem;font-weight:500;text-decoration:none;white-space:nowrap;
    border:1px solid var(--hair-strong);border-radius:5px;background:var(--elev);box-shadow:var(--shadow);
  }
  .tm-btn:hover{border-color:var(--gray)}
  .tm-btn--accent{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
  .tm-btn--accent:hover{filter:brightness(1.12);border-color:var(--ink)}
  .tm-btn--ghost{color:var(--ink-muted);border-color:transparent;background:none;box-shadow:none}
  .tm-btn--ghost:hover{background:var(--bg-alt);border-color:var(--hair)}
  .tm-link-button{
    width:auto;padding:.4rem 0;color:var(--ink-muted);font:500 .78rem/1.4 var(--sans);
    text-decoration:underline;text-underline-offset:3px;border:0;background:none;box-shadow:none;
  }
  .tm-link-button:hover{color:var(--ink)}
  @media (prefers-reduced-motion:no-preference){
    .tm-btn,.theme-toggle{transition:border-color .2s ease,filter .2s ease,background .2s ease}
  }

  /* ════════════ tipos base ════════════ */
  .tm-kicker{
    font-family:var(--mono);font-size:.68rem;font-weight:400;
    letter-spacing:.13em;text-transform:uppercase;color:var(--gray);
  }
  .tm-lede{max-width:52rem;color:var(--ink-muted);font:400 1.02rem/1.5 var(--serif);font-style:italic}
  .tm-note{color:var(--gray);font-size:.82rem}
  .tm-section{margin-top:clamp(1.6rem,4vw,2.6rem);padding-top:1.2rem;border-top:1px dotted var(--hair-strong)}

  /* ════════════ cards / grids ════════════ */
  .tm-card{
    min-width:0;padding:clamp(.9rem,2vw,1.2rem);
    border:1px solid var(--hair);border-radius:6px;
    background:var(--elev);box-shadow:var(--shadow);
  }
  a.tm-card{display:block;text-decoration:none}
  a.tm-card:hover{border-color:var(--gray)}
  .tm-card--raised{box-shadow:var(--shadow)}
  .tm-card--accent{border-top:1px solid var(--line-dark)}
  .tm-grid{display:grid;gap:.8rem}
  .tm-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tm-stack{display:grid;gap:.8rem}

  /* KPIs del pulso — cifra serif, rótulo legible */
  .tm-grid--3 > .tm-card strong{font-family:var(--serif);font-size:1.7rem;font-weight:500;letter-spacing:-.01em;display:block;font-variant-numeric:tabular-nums}
  .tm-grid--3 > .tm-card p{margin:.35rem 0 0;font-family:var(--sans);font-size:.8rem;color:var(--gray)}

  /* ════════════ formularios ════════════ */
  .tm-field{display:grid;gap:.35rem;margin-bottom:.85rem}
  .tm-field > span,.tm-field > label{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-muted)}
  .tm-field input,.tm-field textarea,.tm-field select{
    width:100%;min-width:0;padding:.65rem .75rem;
    color:var(--ink);border:1px solid var(--hair-strong);border-radius:5px;outline:0;background:var(--elev);
  }
  .tm-field textarea{min-height:104px;resize:vertical}
  .tm-field input:focus,.tm-field textarea:focus,.tm-field select:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 9%,transparent)}
  input::placeholder,textarea::placeholder{color:var(--gray)}
  input[type="file"]{max-width:100%;font-size:.78rem;color:var(--ink-muted)}
  input[type="file"]::file-selector-button{
    margin-right:.6rem;padding:.4rem .7rem;font:500 .74rem var(--sans);color:var(--ink);
    border:1px solid var(--hair-strong);border-radius:5px;background:var(--bg-alt);cursor:pointer;
  }

  /* ════════════ pills / sellos ════════════ */
  .tm-pill{
    display:inline-flex;align-items:center;gap:6px;max-width:100%;
    padding:.2rem .55rem;
    font-family:var(--mono);font-size:.62rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ink-muted);white-space:normal;
    border:1px solid var(--hair-strong);border-radius:99px;background:var(--bg-alt);
  }
  .tm-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gray);flex:none}
  .tm-pill--critical{color:var(--crit);border-color:color-mix(in srgb,var(--crit) 42%,var(--hair))}
  .tm-pill--critical::before{background:var(--crit)}
  .tm-pill--high{color:var(--med-text);border-color:color-mix(in srgb,var(--med) 42%,var(--hair))}
  .tm-pill--high::before{background:var(--med)}
  .tm-pill--ok{color:var(--ok-text);border-color:color-mix(in srgb,var(--ok) 42%,var(--hair))}
  .tm-pill--ok::before{background:var(--ok)}

  /* ════════════ alertas ════════════ */
  .tm-alert{
    margin:.8rem 0;padding:.85rem 1rem;
    border:1px solid var(--hair);border-left:3px solid var(--med);border-radius:0 6px 6px 0;
    background:var(--bg-alt);
  }
  .tm-alert--danger{border-left-color:var(--crit)}
  .tm-alert--success{border-left-color:var(--ok)}
  .tm-alert strong{font-family:var(--serif);font-weight:500;font-size:.95rem}
  .tm-alert p{margin:.4rem 0;font-family:var(--serif);font-size:.9rem;line-height:1.6;color:var(--ink)}
  .tm-alert ul{list-style:none;margin:.5rem 0 0;padding:.5rem 0 0;border-top:1px dotted var(--hair-strong)}
  .tm-alert li{font-family:var(--mono);font-size:.68rem;color:var(--gray);line-height:1.8;margin:0}
  .tm-alert li::before{content:"[·] ";color:var(--info)}
  .tm-alert small{display:block;margin-top:.55rem;font-family:var(--mono);font-size:.64rem;letter-spacing:.03em;color:var(--gray)}

  .tm-hidden{display:none !important}

  /* ════════════ archivador (sidebar de asuntos) ════════════ */
  .tm-client-shell{width:min(1240px,calc(100% - 2rem));margin-inline:auto;padding:1.4rem 0 4rem}
  .tm-eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem;flex-wrap:wrap}
  .tm-client-shell > .tm-eyebrow-row{padding-bottom:1rem;border-bottom:1px solid var(--hair-strong);margin-bottom:1.6rem}
  .tm-client-layout{display:grid;grid-template-columns:264px minmax(0,1fr);gap:1.4rem;align-items:start}
  .tm-client-sidebar{position:sticky;top:96px}
  .tm-client-sidebar > .tm-kicker{display:block;padding:0 2px .6rem}
  .tm-list{display:grid;gap:.5rem}
  .tm-list-button{
    width:100%;padding:.8rem .85rem;color:var(--ink);text-align:left;
    border:1px solid var(--hair);border-left:3px solid transparent;border-radius:0 6px 6px 0;
    background:var(--elev);box-shadow:var(--shadow);
  }
  .tm-list-button:hover{background:var(--bg-alt)}
  .tm-list-button[aria-current="true"]{background:var(--bg-alt);color:var(--ink);font-weight:600}
  .tm-list-button strong{font-family:var(--serif);font-weight:500;font-size:.92rem;line-height:1.3;display:block}
  .tm-list-button small{font-family:var(--sans);font-size:.76rem}

  /* ════════════ la carpeta del expediente ════════════ */
  #matter-detail{
    position:relative;
    background:var(--bg-alt);border:1px solid var(--hair-strong);
    border-radius:6px;padding:14px;
    box-shadow:var(--shadow);gap:0;
  }

  /* hero doble: carátula con membrete + qué sigue */
  .tm-client-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr);gap:.85rem;margin-bottom:1rem}
  .tm-client-hero section{padding:1.1rem 1.25rem}
  .tm-client-hero .tm-card--accent{border-top:1px solid var(--line-dark)}
  .tm-client-hero h2{
    font-size:clamp(1.15rem,2.2vw,1.5rem);margin:.45rem 0 .5rem;
    padding-bottom:.55rem;border-bottom:2px solid var(--ink); /* membrete */
  }
  .tm-client-hero .tm-lede{margin-bottom:.6rem;font-size:.95rem}
  .tm-client-hero p{margin:.25rem 0;font-size:.85rem;color:var(--ink-muted)}
  .tm-next-action{border-left:1px solid var(--hair-strong)}
  .tm-next-action h3{font-size:1rem;margin:.45rem 0 .4rem}

  /* pestañas de carpeta */
  .tm-client-tabs{
    display:flex;gap:5px;overflow-x:auto;
    padding:14px 6px 0;margin:0 -2px;
    border-bottom:1px solid var(--hair-strong);
    scrollbar-width:thin;
  }
  .tm-client-tabs button{
    flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;
    min-height:44px;padding:.6rem .8rem .55rem;
    font-family:var(--sans);font-size:12.5px;font-weight:500;
    color:var(--ink-muted);
    border:1px solid var(--hair-strong);border-bottom:none;border-radius:6px 6px 0 0;
    background:var(--hair);
  }
  .tm-client-tabs button::before{
    content:"";width:6px;height:6px;border-radius:50%;flex:none;
    background:var(--hair-strong);border:1px solid color-mix(in srgb,var(--gray) 30%,transparent);
  }
  .tm-client-tabs button:hover{color:var(--ink)}
  .tm-client-tabs button[aria-selected="true"]{color:var(--ink);background:var(--elev)}
  .tm-client-tabs button[aria-selected="true"]::before{background:var(--ink);border-color:var(--ink)}
  @media (prefers-reduced-motion:no-preference){
    .tm-client-tabs button{transition:color .2s ease,background .2s ease}
  }

  /* la página del folio */
  .tm-client-panel{
    display:none;position:relative;
    background:var(--elev);border:1px solid var(--hair);border-top:none;border-radius:0 0 4px 4px;
    padding:1.5rem 1.6rem 1.8rem;
  }
  .tm-client-panel.is-active{display:block}
  .tm-client-panel > h3{font-size:1.15rem;margin:.35rem 0 .35rem}
  .tm-client-panel .tm-card{background:var(--bg);border-color:var(--hair)}
  .tm-client-panel .tm-card h3{font-size:1rem;margin-bottom:.35rem}
  .tm-client-panel .tm-card p{margin:.3rem 0;font-size:.85rem;color:var(--ink-muted)}
  .tm-client-panel .tm-card > strong{font-family:var(--serif);font-weight:500}
  .tm-client-panel .tm-card--accent{border-top:1px solid var(--line-dark)}

  /* objetivo compartido dentro del plan */
  section.tm-next-action{
    padding:1rem 1.2rem;margin-bottom:1rem;
    background:var(--bg-alt);border:1px solid var(--hair);border-left:1px solid var(--hair-strong);border-radius:0 6px 6px 0;
  }
  section.tm-next-action h3{margin:.4rem 0 .35rem}
  section.tm-next-action p{margin:0;font-family:var(--sans);font-size:13px;color:var(--ink-muted)}

  /* ════════════ mensajes — burbujas tinta ════════════ */
  #messages{gap:.7rem}
  .tm-message{
    max-width:78%;padding:.75rem .95rem;
    border:1px solid var(--hair);border-radius:6px;
    background:var(--elev);box-shadow:var(--shadow);
  }
  .tm-client-panel .tm-message{background:var(--elev)}
  .tm-message p{margin:0;font-size:.88rem;line-height:1.55;color:var(--ink)}
  .tm-message small{display:block;margin-top:.45rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gray)}
  .tm-message--client{
    margin-left:auto;
    border-color:var(--hair);background:var(--bg-alt);
  }
  .tm-client-panel .tm-message--client{background:var(--bg-alt)}
  .tm-message--client small{text-align:right}

  /* ════════════ evidencia ════════════ */
  .tm-evidence-panel{
    margin-top:.4rem;padding:.9rem 1rem .9rem 1.1rem;
    border:1px solid var(--hair);border-left:1px solid var(--hair-strong);border-radius:0 6px 6px 0;
    background:var(--bg-alt);
  }
  .tm-evidence-panel > strong{font-family:var(--mono);font-size:.78rem;font-weight:400}
  .tm-upload{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}

  .tm-empty{
    padding:1.2rem;color:var(--gray);text-align:center;
    font-family:var(--serif);font-style:italic;font-size:.9rem;
    border:1px dashed var(--hair-strong);border-radius:6px;background:var(--bg-alt);
  }

  /* ════════════ login / activación ════════════ */
  .tm-login{width:min(430px,calc(100% - 2rem));margin:clamp(2rem,8vh,5.5rem) auto;padding:1.6rem 1.7rem 1.4rem}
  .tm-login h1{font-size:1.6rem;margin:.5rem 0 .4rem}
  .tm-login .tm-btn{width:100%;margin-top:.4rem}
  .tm-login .tm-link-button{display:block;margin:.75rem auto 0}

  /* ════════════ pie y toast ════════════ */
  .tm-footer{
    padding:1.1rem clamp(1rem,3vw,2.4rem);
    color:var(--gray);font-size:.74rem;border-top:1px solid var(--hair);background:var(--bg-alt);
  }
  .tm-footer [data-themis-release]{font-family:var(--mono);font-size:.66rem;letter-spacing:.05em}
  .tm-toast{
    position:fixed;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:80;
    max-width:min(440px,calc(100% - 2rem));padding:.75rem 1.1rem;
    color:var(--on-ink);font-size:.8rem;border-radius:5px;background:var(--ink);box-shadow:var(--shadow);
  }

  /* ═══════════ aparición sobria (sin springs, staggers ni scroll-timeline) ═══════════ */
  @media (prefers-reduced-motion:no-preference){
    .tm-client-panel.is-active{animation:folioIn .25s ease both}
    @keyframes folioIn{from{opacity:0}to{opacity:1}}
    .tm-toast{transition:opacity .25s ease}
  }
  /* re-render tras una acción: sin re-animación de entrada (portal.js pone la clase) */
  body.tm-rerender .tm-client-panel.is-active,
  body.tm-rerender .tm-stack > *,
  body.tm-rerender .tm-client-hero section,
  body.tm-rerender #matter-detail{animation:none !important;transition:none !important}
  /* cambio de tema suave (fallback sin View Transitions) */
  @media (prefers-reduced-motion:no-preference){
    body,.tm-header,.tm-footer,.tm-card,.tm-client-panel,#matter-detail,.demo-band{transition:background-color .3s ease,border-color .3s ease,color .3s ease}
  }
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}

  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
    .tm-section{opacity:1 !important;transform:none !important}
  }

  /* ════════════ responsive ════════════ */
  @media (max-width:980px){
    .tm-client-layout{grid-template-columns:minmax(0,1fr)}
    .tm-client-sidebar{position:static;min-width:0}
    .tm-list{min-width:0;max-width:100%;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);overflow-x:auto;padding-bottom:.4rem}
  }
  @media (max-width:720px){
    .tm-header{position:static;align-items:flex-start}
    .tm-brand span{display:none}
    .tm-client-hero{grid-template-columns:1fr}
    .tm-grid--2,.tm-grid--3{grid-template-columns:1fr}
    .tm-message{max-width:94%}
    .tm-client-panel{padding:1.2rem .9rem 1.4rem}
    .tm-client-panel > h3{max-width:100%}
    .tm-client-shell > .tm-eyebrow-row{align-items:flex-start;flex-direction:column}
  }
  @media (max-width:460px){
    .tm-client-shell{width:min(100% - .9rem,1240px)}
    .tm-nav .tm-btn{padding:.4rem .6rem}
  }
  
/* === FIX HEADER (15-jul): toggle limpio inline-flex + esconder release dev-metadata === */
.tm-theme-toggle{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 11px;color:var(--ink);font-family:var(--sans);font-size:12px;border:1px solid var(--hair-strong);border-radius:5px;background:var(--elev);box-shadow:var(--shadow);white-space:nowrap;cursor:pointer;line-height:1}
.tm-theme-toggle:hover{border-color:var(--gray)}
.tm-theme-toggle svg{width:14px;height:14px;flex:none}
.tm-theme-toggle span{font-family:var(--sans);font-size:12px;color:var(--ink-muted)}
.ws-release,[data-themis-release]{display:none !important}

/* PL-4.7 · tablero de seguimiento y cronología cliente (3 hitos) */
.tm-status-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:1rem}
.tm-status-link{display:block;color:inherit;text-decoration:none;min-width:0}
.tm-status-link .tm-status-card{height:100%}
.tm-status-card{border-left:3px solid var(--hair-strong)}
.tm-status-card[data-status-badge="attorney_reviewing"]{border-left-color:var(--med)}
.tm-status-card[data-status-badge="delivered"]{border-left-color:var(--ok)}
.tm-status-card > strong{display:block;margin:.55rem 0 .25rem;font-family:var(--serif);font-size:1rem}
.tm-pill--review{color:var(--med-text);border-color:color-mix(in srgb,var(--med) 42%,var(--hair))}
.tm-pill--review::before{background:var(--med)}
.tm-pill--analysis{color:var(--info);border-color:color-mix(in srgb,var(--info) 42%,var(--hair))}
.tm-pill--analysis::before{background:var(--info)}
.tm-client-timeline{position:relative;display:grid;gap:0;margin-top:1rem;padding-left:1.4rem;border-left:2px solid var(--hair-strong);max-height:32rem;overflow-y:auto}
.tm-client-milestone{position:relative;padding:.15rem 0 1.2rem}
.tm-client-milestone::before{content:"";position:absolute;left:-1.75rem;top:.34rem;width:.58rem;height:.58rem;border-radius:50%;background:var(--gray);box-shadow:0 0 0 4px var(--elev)}
.tm-client-milestone.is-current::before{background:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--ink) 12%,var(--elev))}
.tm-client-milestone time{display:block;margin-bottom:.2rem;color:var(--gray);font-family:var(--mono);font-size:.65rem;letter-spacing:.04em}
.tm-client-milestone strong{font-family:var(--serif);font-size:1rem;font-weight:500}
.tm-client-milestone p{margin:.25rem 0 0;color:var(--ink-muted);font-size:.84rem}
.tm-scope-ledger{display:grid;margin:1rem 0 0;border:1px solid var(--hair);border-radius:6px;background:var(--bg)}
.tm-scope-ledger > div{display:grid;grid-template-columns:minmax(100px,.3fr) minmax(0,1fr);gap:.8rem;padding:.7rem .85rem;border-bottom:1px dotted var(--hair-strong)}
.tm-scope-ledger > div:last-child{border-bottom:0}
.tm-scope-ledger dt{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink)}
.tm-scope-ledger dd{margin:0;color:var(--ink-muted);font-family:var(--sans);font-size:13px;line-height:1.55;overflow-wrap:anywhere}
@media (max-width:720px){.tm-status-board{grid-template-columns:1fr}.tm-scope-ledger > div{grid-template-columns:1fr;gap:.2rem}}

/* ═══════════ F-7 · lenguaje humano + micro-loops de colaboración ═══════════ */
/* pasos guiados 1-2 de un micro-loop (subir doc, aprobar propuesta) */
.tm-microsteps{
  display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin:.6rem 0 .7rem;padding:0;list-style:none;
  counter-reset:tmstep;
}
.tm-microsteps li{
  position:relative;margin:0;padding-left:1.5rem;
  font-family:var(--sans);font-size:13px;color:var(--ink-muted);line-height:1.45;
}
.tm-microsteps li::before{
  counter-increment:tmstep;content:counter(tmstep);
  position:absolute;left:0;top:-.05rem;
  display:inline-grid;place-items:center;width:1.05rem;height:1.05rem;
  font-family:var(--mono);font-size:.6rem;font-weight:400;color:var(--on-ink);
  background:var(--ink);border-radius:50%;
}
.tm-microsteps li b{color:var(--ink);font-weight:600}

/* confirmación visible y persistente al terminar un micro-loop */
.tm-confirmed{
  display:flex;gap:.45rem;align-items:flex-start;margin:.6rem 0 0;padding:.55rem .7rem;
  color:var(--ok-text);font-family:var(--sans);font-size:.82rem;line-height:1.45;
  background:color-mix(in srgb,var(--ok) 10%,var(--elev));
  border:1px solid color-mix(in srgb,var(--ok) 34%,var(--hair));border-radius:6px;
}
.tm-evidence-panel.is-done{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 7%,var(--bg-alt))}

/* aprobación guiada de propuesta — panel inline en 2 pasos */
.tm-approve{margin-top:.7rem}
.tm-approve-panel{
  margin-top:.7rem;padding:.85rem .95rem;
  background:var(--bg-alt);border:1px solid var(--hair-strong);border-left:1px solid var(--hair-strong);border-radius:0 6px 6px 0;
}
.tm-approve-panel .tm-microsteps{margin-top:0}
.tm-approve-check{
  display:flex;gap:.55rem;align-items:flex-start;margin:.2rem 0 .8rem;
  font-family:var(--sans);font-size:.84rem;line-height:1.45;color:var(--ink);cursor:pointer;
}
.tm-approve-check input{width:1.05rem;height:1.05rem;margin-top:.12rem;flex:none;accent-color:var(--ink);cursor:pointer}
.tm-approve-panel .tm-btn{width:100%}

/* móvil 390px: tap targets cómodos y sin overflow horizontal */
@media (max-width:430px){
  .tm-upload{flex-direction:column;align-items:stretch}
  .tm-upload .tm-btn{width:100%}
  .tm-evidence-panel input[type="file"]{width:100%}
  .tm-microsteps{gap:.35rem .8rem}
}

/* ═══ Rediseño Tinta (jul-30): estados punto+texto, plegables, header móvil ═══ */
/* estado sobrio: punto semántico de 7px + texto humano (spec Tinta) */
.tm-state{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:12.5px;color:var(--ink-muted)}
.tm-state .dot{width:7px;height:7px;border-radius:50%;background:var(--info);flex:none}
.tm-state .dot.ok{background:var(--ok)}
.tm-state .dot.med{background:var(--med)}
.tm-state .dot.crit{background:var(--crit)}
.tm-state .dot.info{background:var(--info)}

/* bloque plegable con hairlines (patrón del spec) */
.tm-fold{margin-top:1.2rem;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.tm-fold + .tm-fold{border-top:0;margin-top:0}
.tm-fold > summary{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  min-height:44px;padding:.6rem 2px;cursor:pointer;list-style:none;
  color:var(--ink);font-family:var(--serif);font-size:1rem;font-weight:500;
}
.tm-fold > summary::-webkit-details-marker{display:none}
.tm-fold > summary::after{content:"\FF0B";color:var(--gray);font-family:var(--sans);font-size:.9rem;flex:none}
.tm-fold[open] > summary::after{content:"\2212"}
.tm-fold > .tm-fold-body{padding:.2rem 2px 1rem}

/* descarga como enlace textual, no pill */
.tm-doc-download{
  display:inline-block;margin-top:.35rem;
  color:var(--ink);font-family:var(--sans);font-size:13px;font-weight:500;
  text-decoration:underline;text-underline-offset:3px;
}

/* recuperar contraseña: mini formulario inline en la tarjeta de login */
.tm-forgot{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--hair)}
.tm-forgot .tm-btn{width:100%}

/* error persistente en formularios hasta reintentar */
.tm-form-error{margin:.6rem 0 .8rem}

/* header legible en móvil: controles con texto real y toque cómodo */
#session-email{overflow-wrap:anywhere}
@media (max-width:720px){
  .tm-nav{gap:.4rem}
  .tm-nav .tm-btn,.tm-nav .tm-theme-toggle{min-height:44px}
}
