/* Expedientes: estilos propios del módulo (se cargan después de app.css). Movimiento "Corporate":
   ease-out cubic-bezier(.23,1,.32,1), 150–280 ms, sólo transform/opacity, fill-mode backwards, sin animar con teclado. */

/* Lista + detalle */
.exp-shell{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:16px;align-items:start}
.exp-aside{position:sticky;top:76px;display:flex;flex-direction:column;max-height:calc(100dvh - 190px);overflow:hidden;padding:12px}
.exp-aside-head{display:grid;gap:8px;padding:2px 2px 10px;border-bottom:1px solid var(--line)}
.exp-aside-head .search{max-width:none}
.exp-list{flex:1;min-height:0;overflow:auto;padding-top:8px;display:grid;align-content:start;gap:4px;overscroll-behavior:contain}
.exp-item{display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px;border-radius:var(--r-md);text-align:left;border:1px solid transparent;transition:background-color var(--t-fast) ease,border-color var(--t-fast) ease}
.exp-item[aria-selected=true]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}
@media(hover:hover){.exp-item:hover:not([aria-selected=true]){background:var(--surface-2)}}
.exp-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.exp-item-meta{display:grid;gap:2px;min-width:0}
.exp-item-meta b{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-item-meta small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-item-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.exp-main{min-width:0}

/* Detalle */
.exp-detail{display:grid;gap:16px;min-width:0}
.exp-detail[aria-busy=true]{opacity:.65;transition:opacity var(--t-fast) ease}
.exp-headcard{overflow:hidden}
.exp-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:18px 20px 6px}
.exp-head .who small{margin-top:3px}
.exp-title{font-size:18px}
.exp-head-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.exp-tabs{margin:0;padding:0 14px}
.exp-pane{display:grid;gap:16px;min-width:0;animation:expPaneIn 220ms cubic-bezier(.23,1,.32,1) backwards}
@keyframes expPaneIn{from{opacity:0;transform:translateY(6px)}}
.exp-loading{display:grid;padding:20px}
.exp-loading .muted{margin-top:14px;font-size:13px}
.exp-section{min-width:0;overflow:hidden}
.exp-section .card-head{flex-wrap:wrap}
.table-wrap.flush{border:0;border-radius:0}
.exp-empty-line{padding:22px 14px!important;color:var(--muted);text-align:center;white-space:normal!important}
.exp-muted{color:var(--muted);font-size:12.5px;align-self:center}
.exp-strong{color:var(--ink);font-weight:600}
.exp-pre{white-space:pre-line}

/* Información */
.exp-info{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.exp-box{position:relative;display:grid;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:0}
.exp-box small{color:var(--muted);font-size:12px;font-weight:550}
.exp-box b{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-box.wide-text{grid-column:span 2}
.exp-box-act{justify-self:start;margin-top:4px}

/* Documentos */
.exp-docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:12px}
.exp-card{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);min-width:0}
.exp-card.featured{background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%)}
.exp-card h4{font-size:14.5px;color:var(--ink)}
.exp-card p{color:var(--ink-2);font-size:12.5px;line-height:1.5}
.exp-card p strong{color:var(--ink)}
.exp-state{display:flex;gap:6px;flex-wrap:wrap}
.exp-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.exp-acts .btn.sm{white-space:nowrap}
.exp-pane .btn.loading:not(.primary)::after,.drawer .btn.loading:not(.primary)::after{border-color:var(--ink-2) var(--ink-2) transparent transparent}
.exp-add-list{display:grid;gap:10px}
.exp-add-item{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2)}
.exp-add-no{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.exp-add-no small{display:block;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.06em}
.exp-add-no b{color:var(--ink);font-size:15px}
.exp-add-parts{display:grid;gap:8px;min-width:0}

/* Portal */
.exp-portal-msg{min-height:18px;margin-bottom:8px;color:var(--muted);font-size:12.5px}
.exp-portal-msg.is-error{color:var(--bad);font-weight:550}
.exp-portal-list{display:grid;gap:8px}
.exp-portal-file{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.exp-portal-copy{display:grid;gap:3px;min-width:0}
.exp-portal-copy b{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.exp-portal-copy small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.exp-portal-copy .link{justify-self:start;font-size:12.5px;color:var(--accent-strong);font-weight:550}
.exp-portal-choice{display:flex;align-items:center;gap:10px;flex:none;color:var(--ink-2);font-size:12.5px;font-weight:550;white-space:nowrap}

/* Paneles (confirmar adéndum, canales de envío, soportes) */
.exp-amounts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.exp-amounts>div{display:grid;gap:4px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}
.exp-amounts small{color:var(--muted);font-size:12px}
.exp-amounts b{color:var(--ink);font-size:17px}
.exp-fieldset{border:0;padding:0;margin:0;display:grid;gap:8px}
.exp-fieldset legend{color:var(--ink-2);font-size:12.5px;font-weight:550;margin-bottom:6px}
.choice.is-disabled{opacity:.55;cursor:not-allowed}
.choice span{display:grid;gap:2px}
.choice b{color:var(--ink);font-weight:600}
.exp-channels .choice{width:100%;text-align:left;background:var(--surface)}
.exp-channels .choice svg{width:20px;height:20px;flex:none;color:var(--accent-strong)}
@media(hover:hover){.exp-channels .choice:hover{border-color:var(--accent);background:var(--accent-soft)}}
.exp-support-row{display:grid;gap:10px}

/* Generador de documentos (plantillas del sistema actual en iframe) */
.exp-gen{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:12px;background:rgba(6,21,41,.55);animation:expFade 200ms ease backwards}
.exp-gen.closing{opacity:0;transition:opacity 160ms ease}
@keyframes expFade{from{opacity:0}}
.exp-gen-panel{display:flex;flex-direction:column;width:min(1320px,100%);height:calc(100dvh - 24px);background:var(--surface);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);animation:expGenIn 260ms cubic-bezier(.23,1,.32,1) backwards;outline:none}
@keyframes expGenIn{from{opacity:0;transform:translateY(10px) scale(.99)}}
.exp-gen-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.exp-gen-panel>header small{color:var(--muted);font-size:12px;font-weight:550}
.exp-gen-panel>header h2{font-size:17px;margin-top:2px}
.exp-gen-panel>header p{color:var(--muted);font-size:12.5px;margin-top:2px}
.exp-gen-panel>header .btn{font-size:20px;line-height:1}
.exp-gen-panel iframe{flex:1;width:100%;border:0;background:#fff}
.exp-gen-load{flex:1;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--ink-2)}
.exp-gen-load .spin{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--accent);animation:spin 800ms linear infinite}
body.exp-gen-open{overflow:hidden}

/* Responsivo */
@media(max-width:900px){
  .exp-shell{grid-template-columns:minmax(0,1fr)}
  .exp-aside{position:static;max-height:none}
  .exp-list{max-height:340px}
  .exp-add-item{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:560px){
  .exp-head{padding:16px 14px 4px}
  .exp-tabs{padding:0 6px}
  .exp-box.wide-text{grid-column:auto}
  .exp-docs{grid-template-columns:minmax(0,1fr)}
  .exp-portal-file{flex-direction:column;align-items:flex-start}
  .exp-amounts{grid-template-columns:minmax(0,1fr)}
  .exp-gen{padding:0}
  .exp-gen-panel{height:100dvh;border-radius:0}
}
@media(prefers-reduced-motion:reduce){
  .exp-pane,.exp-gen,.exp-gen-panel{animation:none}
  .exp-gen-load .spin{animation-duration:1600ms}
}
