/* Mataró · Facturación (hoja "Solicitar factura", huecos en páginas y Admin → Facturas) · mobile-first */
.fx-lock,.fx-lock body{overflow:hidden}
.fx-sheet{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center}
.fx-back{position:absolute;inset:0;background:rgba(40,38,34,.45);animation:fxFade .2s ease}
.fx-card{position:relative;background:var(--white);width:100%;max-height:94vh;max-height:94dvh;display:flex;flex-direction:column;border-radius:16px 16px 0 0;box-shadow:0 -10px 40px rgba(0,0,0,.18);animation:fxUp .25s ease;overflow:hidden}
.fx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 12px;border-bottom:1px solid var(--line);flex:none}
.fx-head h2{font-size:1.9rem;margin:2px 0 0;line-height:1.1}
.fx-head .kicker{letter-spacing:.18em;font-size:.66rem}
.fx-x{background:none;border:0;font-size:2rem;line-height:1;width:44px;height:44px;margin:-6px -10px 0 0;cursor:pointer;color:var(--ink);flex:none}
.fx-body{padding:16px 20px calc(20px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:14px;min-width:0}
.fx-body .field{min-width:0}
.fx-body .field input,.fx-body .field select{font-size:16px;min-height:48px;padding:12px 13px;-webkit-appearance:none;appearance:none;border-radius:0;max-width:100%}
.fx-body .field select{background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236e6b63' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:34px;text-overflow:ellipsis}
.fx-body .field input[aria-invalid],.fx-body .field select[aria-invalid]{border-color:#b4543f;background-color:#fff7f4}
.fx-row{display:grid;grid-template-columns:1fr;gap:14px}
.fx-hint{font-size:.78rem;color:var(--muted);line-height:1.4}
.fx-hint.good{color:var(--ok)} .fx-hint.bad{color:#b4543f} .fx-hint.warn{color:#9a6a2f}
.fx-hint .link-btn{font-size:.78rem;color:inherit;padding:0 2px}
.fx-opt{text-transform:none;letter-spacing:0;font-size:.75rem}
.fx-file{display:flex;align-items:center;border:1px dashed var(--line);padding:12px 13px;min-height:48px;cursor:pointer;background:var(--cream);font-size:.88rem;color:var(--muted);text-transform:none;letter-spacing:0}
.fx-file input{position:absolute;opacity:0;width:1px;height:1px}
.fx-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-file span.bad{color:#b4543f}
.fx-file:focus-within{outline:2px solid var(--sage-dd);outline-offset:1px}
.fx-saved>div{display:flex;gap:8px;overflow-x:auto;padding:6px 0 2px;-webkit-overflow-scrolling:touch}
.fx-chip{flex:none;border:1px solid var(--line);background:var(--white);padding:9px 12px;text-align:left;font:inherit;font-size:.82rem;cursor:pointer;max-width:220px;min-height:44px}
.fx-chip small{display:block;color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-chip.on{border-color:var(--sage-dd);background:var(--cream)}
.fx-sum{border:1px solid var(--line);background:var(--cream);padding:0 14px}
.fx-sum summary{display:flex;justify-content:space-between;gap:10px;padding:13px 0;cursor:pointer;list-style:none;font-size:.9rem;min-height:44px;align-items:center}
.fx-sum summary::-webkit-details-marker{display:none}
.fx-sum summary span::after{content:" ▾";color:var(--muted)}
.fx-sum[open] summary{border-bottom:1px solid var(--line)}
.fx-sum-row{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;padding:7px 0}
.fx-sum-row span:first-child{min-width:0;overflow-wrap:anywhere}
.fx-sum-row span:last-child{white-space:nowrap}
.fx-plazo{font-size:.82rem;margin:0;padding:10px 12px;border-left:2px solid var(--accent);background:var(--cream)}
.fx-err-sum{border:1px solid #e1b7ab;background:#fff4f0;color:#8a3f2d;padding:10px 12px;font-size:.84rem;display:flex;flex-direction:column;gap:3px}
.fx-err-sum[hidden]{display:none}
.fx-done{align-items:center;text-align:center}
.fx-done svg{color:var(--accent)}
.fx-done code{font-size:.78rem;word-break:break-all}
.fx-actions{display:flex;gap:10px;flex-wrap:wrap}
.fx-actions .btn{flex:1 1 120px;padding:14px 16px}
.fx-demo{display:inline-block;font:500 .58rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border:1px dashed var(--accent);padding:3px 6px;vertical-align:middle}
.fx-ok{display:flex;gap:10px;align-items:flex-start;margin:6px 0 12px}
.fx-ok svg{flex:none;color:var(--accent);margin-top:2px}
.fx-err-box{background:#fff4f0;border:1px solid #e1b7ab;color:#8a3f2d;padding:10px 12px;font-size:.84rem;margin:0}
.fx-inline{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.fx-link{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:6px 0;font:inherit;font-size:.8rem;color:var(--ink);text-decoration:underline;cursor:pointer;min-height:36px;white-space:nowrap}
.fx-link.muted{color:var(--muted);text-decoration:none;cursor:default}
.fx-profiles{display:flex;flex-direction:column}
.fx-prof{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.fx-prof>div:first-child{min-width:0;flex:1 1 220px}
.fx-prof b{font-weight:400;display:block;overflow-wrap:anywhere}
.fx-prof span{font-size:.8rem;color:var(--muted)}
.fx-track-note{margin:10px 0 0;font-size:.85rem;background:rgba(255,255,255,.14);padding:8px 12px;display:inline-block}
@keyframes fxUp{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
@keyframes fxFade{from{opacity:0}to{opacity:1}}
@media (min-width:640px){
  .fx-sheet{align-items:center;padding:24px}
  .fx-card{max-width:560px;border-radius:4px;max-height:92vh}
  .fx-row{grid-template-columns:1fr 1.4fr}
  .fx-head{padding:24px 28px 14px} .fx-body{padding:20px 28px 26px}
}
@media (prefers-reduced-motion:reduce){.fx-card,.fx-back{animation:none}}

/* ---------- Admin → Facturas ---------- */
.fxa-grid{display:grid;grid-template-columns:1fr;gap:22px}
@media (min-width:1100px){.fxa-grid{grid-template-columns:1.1fr .9fr}}
.fxa-grid .card-a{margin-top:0}
.fxa-grid>*{min-width:0}
.fxa-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}
.fxa-filters button{border:1px solid var(--line);background:#fff;padding:8px 13px;font:inherit;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.fxa-filters button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.fxa-filters input{flex:1 1 200px;border:1px solid var(--line);padding:8px 12px;font:inherit;font-size:16px;min-width:0}
.fxa-st{display:inline-block;padding:4px 9px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;border-radius:20px;white-space:nowrap}
.fxa-st.timbrada{background:#e6efe3;color:#45603f} .fxa-st.pendiente{background:#f5ecd9;color:#7d5d22}
.fxa-st.cancelada{background:#eee;color:#666;text-decoration:line-through} .fxa-st.error{background:#fbe3dc;color:#963c27}
.fxa-st.cancelacion-en-proceso{background:#efe6f5;color:#5e3f78}
.fxa-act{display:flex;flex-wrap:wrap;gap:2px 4px}
.fxa-act .link-btn{padding:4px 5px;font-size:.78rem;white-space:nowrap}
.fxa-cfg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px}
.fxa-cfg .full{grid-column:1/-1}
.fxa-cfg label{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;gap:5px}
.fxa-cfg input,.fxa-cfg select{width:100%;max-width:100%;border:1px solid var(--line);padding:10px 11px;font:inherit;font-size:16px;text-transform:none;letter-spacing:0;color:var(--ink);background:#fff;min-width:0}
.fxa-mode{display:flex;border:1px solid var(--line)}
.fxa-mode button{flex:1;padding:10px;border:0;background:#fff;font:inherit;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.fxa-mode button.on{background:var(--ink);color:#fff}
.fxa-mode button.on.live{background:#963c27}
.fxa-note{font-size:.78rem;color:var(--muted);margin:8px 0 0}
.fxa-warn{background:#fff4f0;border:1px solid #e1b7ab;color:#8a3f2d;padding:10px 12px;font-size:.8rem;margin:10px 0 0}
.fxa-global-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.fxa-global-sum div{background:var(--cream);padding:12px}
.fxa-global-sum b{display:block;font-family:var(--serif);font-size:1.35rem;font-weight:400}
.fxa-global-sum span{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fxa-list{max-height:220px;overflow:auto;border:1px solid var(--line);font-size:.8rem}
.fxa-list div{display:flex;justify-content:space-between;gap:10px;padding:7px 10px;border-bottom:1px solid var(--line)}
.fxa-dialog{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(40,38,34,.45)}
.fxa-dialog>div{background:#fff;max-width:480px;width:100%;padding:24px;max-height:92vh;overflow:auto}
.fxa-dialog h3{font-family:var(--serif);font-size:1.6rem;margin:0 0 6px;font-weight:400}
.fxa-dialog label{display:flex;flex-direction:column;gap:5px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.fxa-dialog [hidden],.fxa-dialog label[hidden]{display:none!important}
.fxa-dialog select,.fxa-dialog input{border:1px solid var(--line);padding:10px 11px;font:inherit;font-size:16px;text-transform:none;letter-spacing:0;color:var(--ink)}
.fxa-dialog .row{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.fxa-dialog .row .btn{flex:1 1 140px;padding:13px 16px}
@media (max-width:700px){
  .fxa-cfg{grid-template-columns:minmax(0,1fr)}
  .fxa-global-sum{grid-template-columns:1fr 1fr}
  .admin .card-a table.fxa-table{min-width:0}
  .fxa-table,.fxa-table tbody{display:block;width:100%}
  .fxa-table thead{display:none}
  .fxa-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .fxa-table tr:last-child{border-bottom:0}
  .fxa-table td{border:0;padding:2px 0;min-width:0!important;overflow-wrap:anywhere}
  .fxa-table td[data-l="Fecha"],.fxa-table td[data-l="Receptor"],.fxa-table td[data-l="Estado"]{grid-column:1}
  .fxa-table td[data-l="Pedido"]{grid-column:1;grid-row:1}
  .fxa-table td[data-l="Fecha"]{grid-column:2;grid-row:1;text-align:right}
  .fxa-table td[data-l="Total"]{grid-column:2;grid-row:2;text-align:right;align-self:start}
  .fxa-table td[data-l="Pedido"]::before,.fxa-table td[data-l="Fecha"]::before,.fxa-table td[data-l="Total"]::before,.fxa-table td[data-l="Receptor"]::before{content:none!important}
  .fxa-table td[data-l]::before{content:attr(data-l) " · ";color:var(--muted);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
  .fxa-table td.fxa-c-act{grid-column:1/-1}
}
