:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#242424;background:#f4f6f8;--blue:#1d699b;--red:#c1304a;--yellow:#e3b023;--ink:#3a3a39;--ok:#23844f;--line:#dfe4e8;--soft:#eef4f7}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#f4f6f8}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:#687078}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef5f9,#f8f4f1)}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 18px 60px #00000012}.brand-mark{width:52px;height:52px;border-radius:16px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.7rem}.auth-card h1{margin-bottom:8px}.auth-card p{color:#667079;margin-top:0}.auth-card label{margin-top:14px}.remember-row{display:flex!important;align-items:center;gap:9px;margin-top:15px!important;color:#596169;font-size:.88rem}.remember-row input{width:auto;margin:0}.remember-row span{line-height:1.25}.topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);padding:11px 16px;display:flex;align-items:center;justify-content:space-between}.topbar small{display:block;color:#7b8288;margin-top:2px}main{max-width:860px;margin:0 auto;padding:18px 16px 96px}.screen{display:none}.screen.active{display:block}.screen h1{font-size:1.55rem;margin:12px 0 4px}.screen h2{font-size:1.1rem;margin:24px 0 10px}.screen h3{font-size:1rem;margin:0 0 10px}.hero-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hero-row h2{margin:22px 0 8px}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;margin:10px 0;box-shadow:0 2px 10px #00000008}.card.soft{background:#f9fbfc}.card.clickable{cursor:pointer}.card.clickable:active{transform:scale(.995)}label{display:block;font-size:.82rem;color:#596169;margin-top:9px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd3d9;border-radius:10px;background:#fff;color:#242424;margin-top:5px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1d699b18}button{border:0;border-radius:10px;padding:11px 14px;font-weight:700;background:#e9eef1;color:#283038}.primary{background:var(--blue);color:#fff}.primary:hover{filter:brightness(.96)}.primary:disabled{opacity:.45;cursor:not-allowed}.ghost{background:#eef2f4;color:#333}.danger-link{background:transparent;color:#a62d3d;padding:3px 6px}.small{padding:8px 10px;font-size:.82rem}.compact{padding:9px 12px;width:auto}.big{width:100%;padding:14px;margin-top:18px}.icon{padding:5px 10px;font-size:1.3rem}.row{display:flex;gap:8px;align-items:end}.row>*:first-child{flex:1}.grid2,.grid3{display:grid;gap:10px}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr 1fr}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.metrics article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}.metrics span{display:block;font-size:.75rem;color:#717981}.metrics b{display:block;font-size:1.18rem;margin-top:4px}.list>div,.list>article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px;margin:8px 0}.empty{color:#7a8288}.list-title{display:flex;gap:10px;justify-content:space-between;align-items:start}.list-title strong{white-space:nowrap}.subline{font-size:.82rem;color:#737b82;margin-top:4px}.notice{padding:11px 12px;border-radius:11px;background:#edf3f6;margin:10px 0}.notice.ok{background:#e6f5ec;color:#1c6a3f}.notice.bad{background:#fff0ef;color:#923041}.notice.warn{background:#fff6dd;color:#70580f}.preview{width:100%;max-height:310px;object-fit:contain;border-radius:12px;margin-top:10px;background:#f3f5f6;border:1px solid var(--line)}.item-top{display:flex;justify-content:space-between;align-items:center}.item-row{border-left:4px solid var(--blue)}.actions{display:flex;gap:9px;margin:16px 0}.actions>*{flex:1}.stepbar{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:6px 0 18px}.stepbar span{font-size:.72rem;text-align:center;padding:7px 3px;border-radius:999px;background:#e8ecef;color:#747c82}.stepbar span.on{background:var(--blue);color:#fff;font-weight:700}.check-list{display:grid;gap:8px}.check-row{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px}.check-row input{width:auto;margin:0}.check-row.common{border-style:dashed;background:#fbfaf7}.allocation-card{border-left:5px solid var(--red)}.allocation-card.complete{border-left-color:var(--ok)}.allocation-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.allocation-tools{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.allocation-tools button{padding:8px 10px;font-size:.78rem}.alloc-row{display:grid;grid-template-columns:minmax(110px,1fr) 124px 125px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #eef1f3}.counter{display:grid;grid-template-columns:34px 42px 34px;align-items:center;text-align:center}.counter button{padding:7px}.counter b{font-variant-numeric:tabular-nums}.money-input{display:flex;align-items:center;gap:5px}.money-input input{margin:0}.alloc-status{display:block;margin-top:8px;font-weight:650}.person-total{display:flex;justify-content:space-between;gap:12px;align-items:center}.person-total b:last-child{font-size:1.1rem}.segmented{display:flex;gap:6px;overflow:auto;padding-bottom:3px;margin:12px 0}.segmented button{white-space:nowrap;padding:8px 10px;font-size:.78rem}.segmented button.on{background:var(--ink);color:#fff}.status{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:700;background:#e8ecef}.status.unrequested{background:#f0f0f0}.status.requested{background:#fff1c7;color:#6b5506}.status.partial{background:#ffe2cc;color:#7b3d0d}.status.paid{background:#def3e5;color:#1d693c}.status.review,.status.allocation{background:#e7eff8;color:#285779}.status.finalized{background:#def3e5;color:#1d693c}.person-charge{margin:12px 0}.charge-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:9px;align-items:start;padding:10px 0;border-top:1px solid #eef1f3}.charge-row input[type=checkbox]{width:auto;margin:3px 0}.charge-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.backlink{background:transparent;padding:4px 0;color:var(--blue);margin:3px 0 8px}.ticket-image{width:100%;max-height:520px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#f5f6f7}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.detail-grid .card{margin:0}.bottomnav{position:fixed;z-index:30;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;align-items:center;padding:7px 8px calc(7px + env(safe-area-inset-bottom))}.bottomnav button{background:transparent;padding:6px 11px;color:#474f55;font-size:1.1rem}.bottomnav button span{display:block;font-size:.64rem;font-weight:600;margin-top:1px}.bottomnav .navplus{width:48px;height:48px;padding:0;border-radius:50%;background:var(--red);color:#fff;font-size:1.55rem;box-shadow:0 4px 12px #c1304a3d}.modal{position:fixed;z-index:100;inset:0;background:#0008;display:grid;place-items:end center;padding:14px}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px 20px 14px 14px;padding:16px}.modal-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.modal-head h2{margin:0}.toast{position:fixed;z-index:120;left:50%;bottom:88px;transform:translateX(-50%);background:#222;color:#fff;padding:10px 14px;border-radius:999px;box-shadow:0 8px 28px #0004;max-width:90vw;text-align:center}.toast.bad{background:#8b2c3a}.spinner{display:inline-block;width:18px;height:18px;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:640px){.metrics{grid-template-columns:1fr}.grid2,.grid3{grid-template-columns:1fr 1fr}.grid3 label:first-child{grid-column:1/-1}.alloc-row{grid-template-columns:1fr 116px}.alloc-row .money-input{grid-column:1/-1}.hero-row{align-items:center}.stepbar span{font-size:.65rem}.detail-grid{grid-template-columns:1fr}.topbar{padding-top:max(11px,env(safe-area-inset-top))}}@media(max-width:420px){.grid2,.grid3{grid-template-columns:1fr}.grid3 label:first-child{grid-column:auto}.actions{position:sticky;bottom:68px;background:#f4f6f8;padding:8px 0;margin-bottom:0}.auth-card{padding:22px}.hero-row .compact{font-size:.78rem}}
.ocr-panel{margin:12px 0;padding:13px;border:1px solid #cfdbe3;border-radius:13px;background:#f7fafc}.ocr-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.ocr-head small{display:block;color:#687078;margin-top:3px}.ocr-panel .big{margin-top:10px}.ocr-panel #downloadOcrDiagnosticsBtn{margin-top:9px;display:inline-flex}.ocr-panel #downloadOcrDiagnosticsBtn.hidden{display:none}.ocr-panel .notice{font-size:.84rem}.item-row.ocr-review{border-left-color:var(--yellow);background:#fffdf7}

/* 0.10.0 · solicitudes agrupadas */
.charge-batch{position:sticky;top:58px;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:12px}
.charge-batch-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.charge-batch-actions button{padding:8px 10px;font-size:.78rem}
.charge-meta{display:block}
.batch-request-people{display:grid;gap:7px;margin:12px 0}
.batch-request-person{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f9fbfc}
@media(max-width:640px){.charge-batch{position:static;display:block}.charge-batch-actions{margin-top:10px;justify-content:stretch}.charge-batch-actions button{flex:1}.charge-batch-actions .primary{flex-basis:100%}}
.confirm-request-check{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#f9fbfc;margin-top:12px;color:#343b40}.confirm-request-check input{width:auto;margin:2px 0 0}.confirm-request-check span{line-height:1.35}

.batch-person-copy{display:flex;align-items:baseline;gap:0;min-width:0;flex-wrap:wrap}.batch-person-sep{color:#737b82;white-space:pre}.batch-person-count{display:inline;margin:0}.batch-request-person strong{white-space:nowrap}

/* 1.4.32 · selección y confirmación de pagos recibidos por lote */
.charge-batch-actions .ghost:disabled{opacity:.45;cursor:not-allowed}
.batch-payment-rows{display:grid;gap:9px;max-height:42vh;overflow-y:auto;padding:3px 2px;margin:12px 0}
.batch-payment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f9fbfc}
.batch-payment-row>span:first-child{min-width:0;overflow-wrap:anywhere}
.batch-payment-row .subline{display:block;margin-top:4px}
.batch-payment-amount{display:flex;align-items:center;gap:5px;min-width:130px}
.batch-payment-amount input{width:105px;margin:0;text-align:right}
@media(max-width:420px){.batch-payment-row{align-items:flex-start;flex-direction:column}.batch-payment-amount{align-self:flex-end}}

/* 0.10.3 · hora del ticket y concepto recomendado para solicitudes */
.ticket-meta-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(135px,1fr) minmax(110px,.8fr);gap:10px}
.payment-concept-box{padding:11px 12px;border-radius:11px;background:#e7f2fa;color:#174e73;margin:10px 0;border:1px solid #bdd8e9}
.payment-concept-box>b{color:#174e73}.payment-concept-list{display:grid;gap:7px;margin-top:8px}.payment-concept-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.payment-concept-row code{display:block;overflow-wrap:anywhere;padding:9px 10px;border:1px solid #b8d4e6;border-radius:9px;background:#f8fcff;color:#123f5d;font-family:inherit;font-weight:650}.payment-concept-row button{margin:0;background:#d6eaf6;color:#174e73}.payment-concept-row button:hover{background:#c9e2f1}
@media(max-width:640px){.ticket-meta-grid{grid-template-columns:1fr 1fr}.ticket-meta-grid label:first-child{grid-column:1/-1}}@media(max-width:420px){.ticket-meta-grid{grid-template-columns:1fr}.ticket-meta-grid label:first-child{grid-column:auto}}

/* 0.10.5 · edición y eliminación segura de tickets */
.danger{background:#a62d3d;color:#fff}.danger:hover{filter:brightness(.96)}.danger:disabled{opacity:.45;cursor:not-allowed}
.ticket-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0 6px}.ticket-detail-actions button{width:100%}
@media(max-width:520px){.ticket-detail-actions{grid-template-columns:1fr}}

.ticket-photo-field{display:block;font-size:.82rem;color:#596169;margin-top:9px}.field-label{display:block;margin-bottom:7px}.image-source-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:5px 0 7px}.image-source-btn{border:1px solid #cbd3d9;background:#f8fafb;min-height:46px}.image-source-btn:active{transform:scale(.99)}.ticket-photo-field>small{display:block;margin-top:5px}@media(max-width:420px){.image-source-actions{grid-template-columns:1fr}}


/* 0.10.8 · resumen detallado por persona */
.person-breakdown{padding:0;overflow:hidden}
.person-breakdown-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px 14px 11px;background:#f7fafc;border-bottom:1px solid var(--line)}
.person-breakdown-head h3{margin:0}.person-breakdown-head>strong{font-size:1.15rem;white-space:nowrap}
.person-breakdown-columns{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:7px 14px;background:#fbfcfd;color:#737b82;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.person-breakdown-columns span:last-child{text-align:right}
.person-breakdown-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 14px;border-top:1px solid #eef1f3}
.person-breakdown-line strong{white-space:nowrap}.person-breakdown-line .subline{margin-top:3px}
.person-breakdown-total{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 14px;background:#f0f6fa;border-top:1px solid #dce8ef;font-weight:750}
.person-breakdown-total strong{font-size:1.08rem}.ticket-person-view-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;align-items:center;padding:0 0 12px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.ticket-person-view-head>b{font-size:1.05rem}.ticket-person-view-head>span{grid-column:1;color:#737b82;font-size:.82rem}.ticket-person-view-head>strong{grid-column:2;grid-row:1/3;font-size:1.18rem}
@media(max-width:420px){.person-breakdown-head,.person-breakdown-line,.person-breakdown-total{padding-left:11px;padding-right:11px}}

/* 0.11.0 · catálogo visual y clasificación automática */
.visual-title{display:flex;align-items:center;gap:10px;min-width:0}.visual-title>div{min-width:0}.visual-title.compact{gap:8px}.visual-title.merchant-hero{align-items:center}.visual-title h1,.visual-title h3{margin-top:0}
.visual-badge{--vb-bg:#eaf3f8;--vb-fg:#1d699b;width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:inline-grid;place-items:center;background:var(--vb-bg);color:var(--vb-fg);border:1px solid color-mix(in srgb,var(--vb-fg) 18%,transparent)}
.visual-badge.visual-small{width:34px;height:34px;flex-basis:34px}.visual-badge svg{display:block}
.visual-tone-blue{--vb-bg:#e5f1fa;--vb-fg:#1d699b}.visual-tone-aqua{--vb-bg:#e3f6fb;--vb-fg:#177b9b}.visual-tone-coral{--vb-bg:#fff0ec;--vb-fg:#c5523f}.visual-tone-orange{--vb-bg:#fff2df;--vb-fg:#b86318}.visual-tone-amber{--vb-bg:#fff5d9;--vb-fg:#9a7111}.visual-tone-brown{--vb-bg:#f5eee8;--vb-fg:#7c5439}.visual-tone-pink{--vb-bg:#fcecf4;--vb-fg:#ad4d78}.visual-tone-green{--vb-bg:#e8f5ec;--vb-fg:#2f7d4c}.visual-tone-burgundy{--vb-bg:#f6e9ed;--vb-fg:#8b3650}.visual-tone-violet{--vb-bg:#f0eafa;--vb-fg:#7049a6}.visual-tone-gray{--vb-bg:#eef1f3;--vb-fg:#59666f}
.item-visual-preview{display:flex;align-items:center;gap:9px;margin:8px 0 2px;padding:8px 10px;border:1px solid #dbe5eb;border-radius:11px;background:#f8fbfd;color:#30414c}.item-visual-preview span{display:flex;flex-direction:column;gap:1px}.item-visual-preview b{font-size:.82rem}.item-visual-preview small{font-size:.7rem;color:#73808a}
.person-breakdown-line .visual-title{align-items:center}.ticket-person-view-head.visual-title{grid-template-columns:auto minmax(0,1fr) auto}.ticket-person-view-head.visual-title>.visual-badge{grid-row:1/3}.ticket-person-view-head.visual-title>div{display:flex;flex-direction:column}.ticket-person-view-head.visual-title>div>b{font-size:1.05rem}.ticket-person-view-head.visual-title>div>span{color:#737b82;font-size:.82rem;margin-top:2px}.ticket-person-view-head.visual-title>strong{grid-column:3;grid-row:1/3}
@media(max-width:420px){.visual-badge{width:40px;height:40px;flex-basis:40px}.visual-badge.visual-small{width:32px;height:32px;flex-basis:32px}.item-visual-preview{padding:7px 9px}}

.ticket-photo-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.ticket-photo-thumb{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;min-height:110px}.ticket-photo-thumb img{display:block;width:100%;height:150px;object-fit:contain;background:#f3f5f6}.ticket-photo-thumb .photo-label{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;font-size:.72rem;color:#5d6870}.ticket-photo-thumb button{padding:4px 7px;font-size:.7rem;background:#fff0ef;color:#923041}.multi-photo-note{font-size:.78rem;color:#56636d}.ticket-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ticket-image-grid .ticket-image{height:260px}.photo-source-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#e8f2f8;color:#245f84;font-size:.68rem;font-weight:700}@media(max-width:520px){.ticket-photo-gallery,.ticket-image-grid{grid-template-columns:1fr 1fr}.ticket-photo-thumb img{height:135px}.ticket-image-grid .ticket-image{height:220px}}

/* 0.11.5 · elección de modo de reparto */
.mode-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.mode-choice-card{display:flex;flex-direction:column;align-items:flex-start;min-height:235px}.mode-choice-card h2{margin:5px 0 6px}.mode-choice-card p{color:#66727a;flex:1;margin-top:0}.mode-choice-card .big{width:100%}.mode-choice-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8f2f8;font-size:1.35rem}@media(max-width:640px){.mode-choice-grid{grid-template-columns:1fr}.mode-choice-card{min-height:0}}

.ocr-pick-button{margin-top:7px;width:auto;padding:7px 10px;font-size:.76rem}
.ocr-picker-photo{margin:14px 0 22px}.ocr-picker-photo h3{margin-bottom:4px}
.ocr-picker-stage{position:relative;width:100%;background:#eef2f4;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ocr-picker-stage img{display:block;width:100%;height:auto}
.ocr-region{position:absolute;padding:0;border:2px solid #1976d2;background:#2196f32b;border-radius:4px;min-width:8px;min-height:8px}
.ocr-region:hover,.ocr-region:focus{background:#2196f355;outline:2px solid #fff}
.ocr-picker-list{margin-top:8px}.ocr-picker-list summary{cursor:pointer;font-weight:700;color:var(--blue)}
.ocr-picker-list>div{display:grid;gap:6px;margin-top:8px}.ocr-text-choice{text-align:left;padding:8px 10px;background:#eef5fb;border:1px solid #cfe1ef;color:#244d69;font-weight:600}
.ocr-picker-help{background:#eaf4fb;color:#245a7a}

/* Hito 29: acciones del editor más compactas en móvil. */
@media(max-width:520px){
  .ticket-editor-actions{gap:7px;padding:5px 0;align-items:center}
  .ticket-editor-actions #cancelTicketBtn{flex:.72}
  .ticket-editor-actions #saveTicketDataBtn{flex:1.28}
  .ticket-editor-actions button{min-height:40px;padding:8px 9px;font-size:.86rem;line-height:1.15}
}

.label-mobile{display:none}
@media(max-width:520px){.ticket-editor-actions .label-desktop{display:none}.ticket-editor-actions .label-mobile{display:inline}.ticket-editor-actions button{font-size:.82rem;padding:7px 8px;min-height:38px}}

/* 0.12.0 · reparto público por participantes */
.participant-public-page{background:#f4f7f9;min-height:100vh}.participant-shell{min-height:100vh}.participant-topbar{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);padding:13px max(18px,env(safe-area-inset-left));display:flex;justify-content:center}.participant-topbar>div{width:min(720px,100%);display:flex;flex-direction:column;gap:1px}.participant-topbar b{font-size:1rem}.participant-topbar small{color:#737d84}.participant-main{width:min(720px,calc(100% - 24px));margin:18px auto;padding-bottom:calc(30px + env(safe-area-inset-bottom))}.participant-loading{display:flex;align-items:center;gap:12px}.participant-spinner{width:22px;height:22px;border:3px solid #d5e4ed;border-top-color:var(--blue);border-radius:50%;animation:irtspin .9s linear infinite}@keyframes irtspin{to{transform:rotate(360deg)}}
.participant-ticket-hero{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.participant-ticket-hero h1{font-size:1.18rem;margin:0}.participant-ticket-hero p{margin:3px 0 0;color:#6d777e}.participant-ticket-hero>strong{font-size:1.25rem;white-space:nowrap;color:#174f72}.participant-identity-list{display:grid;gap:9px;margin-top:14px}.participant-identity{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:#f8fbfd;border:1px solid #d8e3ea;padding:13px 14px;color:#1e2c35}.participant-identity span{font-weight:750}.participant-identity small{color:#6d777e;font-weight:500}.participant-confirm-person{margin:12px 0;padding:13px;border:1px solid #cfe1ec;border-radius:13px;background:#eef7fc;display:grid;gap:5px}.participant-confirm-person span{color:#596a74}.participant-confirm-person>div{display:flex;gap:8px;margin-top:6px}.participant-confirm-person button{flex:1}.participant-person-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0}.participant-person-bar>div{display:flex;flex-direction:column}.participant-person-bar small{color:#6d777e}.participant-person-bar b{font-size:1.05rem}.participant-help{margin:10px 0 13px}.participant-items{display:grid;gap:10px}.participant-item{padding:13px}.participant-item.loading{opacity:.6;pointer-events:none}.participant-item-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.participant-item-head h3{font-size:1rem;margin:0}.participant-item-head p{margin:3px 0 0;color:#6d777e;font-size:.82rem}.participant-item-head>strong{white-space:nowrap}.participant-unit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid #edf1f3}.participant-unit-row>span{color:#65717a;font-size:.82rem}.participant-unit-row .counter{display:grid;grid-template-columns:40px 36px 40px;align-items:center;gap:4px}.participant-unit-row .counter button{width:40px;height:40px;padding:0;font-size:1.2rem}.participant-unit-row .counter b{text-align:center}.participant-item-mine{margin-top:9px;padding:8px 10px;border-radius:9px;background:#f1f7fa;color:#315b70}.participant-shared{margin-top:12px;width:100%;background:#eef4f7;color:#2f566a;border:1px solid #d2e0e7}.participant-shared.selected{background:#e5f5ec;color:#287247;border-color:#bfe1cb}.participant-total-card{position:sticky;bottom:10px;z-index:10;margin:12px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#eaf4fb;border-color:#cfe1ee}.participant-total-card strong{font-size:1.35rem;color:#145b8a}.participant-complete{width:100%}.participant-footnote{text-align:center;color:#788289;font-size:.76rem;line-height:1.4}.participant-done-card{text-align:center;padding:25px 18px}.participant-done-icon{margin:0 auto 10px;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e4f5ea;color:#25814b;font-size:1.7rem;font-weight:800}.participant-done-card h1{margin:0 0 7px}.participant-done-card p{color:#66727a}.participant-done-card>strong{display:block;font-size:1.65rem;color:#145b8a;margin:15px 0}.participant-done-card button{width:100%}
@media(max-width:520px){.participant-main{width:min(100% - 16px,720px);margin-top:10px}.participant-ticket-hero{padding:11px}.participant-ticket-hero h1{font-size:1.04rem}.participant-ticket-hero>strong{font-size:1.08rem}.participant-identity{padding:12px}.participant-unit-row{align-items:flex-end}.participant-unit-row>span{max-width:130px}.participant-total-card{bottom:8px}}
.participant-share-groups{margin-top:14px;border-top:1px solid #e5edf2;padding-top:12px;display:grid;gap:10px}.participant-share-groups h4{font-size:.88rem;margin:0;color:#315b70}.participant-share-group{background:#f7fafc;border:1px solid #dbe7ee;border-radius:11px;padding:11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;align-items:center}.participant-share-group b{font-size:.86rem}.participant-share-group small{display:block;color:#627580;font-size:.76rem;margin-top:3px}.participant-share-group .participant-shared{width:auto;min-width:104px;margin:0;padding:9px}.participant-share-group .participant-shared:disabled{opacity:.55;cursor:not-allowed}.participant-share-group .participant-share-amount{grid-column:1/-1;font-weight:700;color:#287247}.participant-share-picker{grid-column:1/-1;background:#fff;border:1px solid #c7dce8;border-radius:10px;padding:11px;display:grid;gap:9px}.participant-share-picker label{font-weight:700;font-size:.84rem}.participant-share-picker select{display:block;width:100%;min-height:42px;margin-top:7px}.participant-share-picker-actions{display:flex;gap:7px;flex-wrap:wrap}.participant-share-picker-actions button{flex:1;min-width:125px}.unit-group-admin{margin-top:11px;padding:11px;background:#f5f9fc;border:1px solid #dbe5ec;border-radius:11px}.unit-group-admin p{margin:4px 0 9px;color:#576b78;font-size:.83rem}.unit-group-row{display:flex;align-items:center;justify-content:space-between;gap:9px;border-top:1px solid #e0e8ed;padding:9px 0}.unit-group-row small{display:block;color:#647782;margin-top:3px}.unit-group-row>div:last-child{display:flex;gap:5px}.unit-group-modal label{display:block;margin-bottom:10px}.unit-group-modal input,.unit-group-modal select{width:100%;margin-top:4px}

/* 0.12.0 · panel administrador del reparto por enlace */
.participant-share-admin{display:grid;gap:12px}.share-admin-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.share-admin-head>div{display:flex;flex-direction:column;gap:2px}.share-admin-head small{color:#6f7a82}.share-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.share-link-row input{font-size:.78rem;background:#f8fafb}.share-progress{display:grid;gap:6px}.share-progress-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border:1px solid #e1e7eb;border-radius:10px;background:#fbfcfd}.share-progress-row>span{display:flex;flex-direction:column}.share-progress-row small{color:#758087}.share-admin-actions{display:flex;flex-wrap:wrap;gap:8px}.share-admin-actions button{flex:1;min-width:145px}
@media(max-width:520px){.share-link-row{grid-template-columns:1fr}.share-link-row button{width:100%}.share-admin-actions{display:grid;grid-template-columns:1fr}.share-admin-actions button{width:100%}}

/* 0.13.0 · imágenes de resumen compartibles */
.ticket-share-summary-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 4px}
.ticket-share-summary-actions button{flex:1;min-width:180px}
.share-preview-inline-actions{display:flex;justify-content:flex-end;margin:8px 0 12px}
.share-preview-layout{display:grid;gap:14px}
.share-preview-list{display:grid;gap:8px}
.share-preview-item{text-align:left;padding:11px 12px;border:1px solid #d8e3ea;background:#f8fbfd;color:#22313b;border-radius:12px}
.share-preview-item b{display:block;font-size:.92rem}
.share-preview-item small{display:block;color:#6e7a82;font-size:.75rem;margin-top:3px;font-weight:500}
.share-preview-item.active{background:#eaf4fb;border-color:#bfd7e8;box-shadow:0 0 0 2px #1d699b14 inset}
.share-preview-stage{display:grid;gap:10px}
.share-preview-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.share-preview-toolbar b{display:block;font-size:1rem;color:#173a52}
.share-preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.share-preview-frame{padding:12px;border:1px solid #d7e2e9;border-radius:16px;background:#f6f9fb}
.share-preview-frame img{display:block;width:100%;height:auto;border-radius:12px;background:#fff;box-shadow:0 1px 8px #0000000f}
.share-preview-note{margin:0}
@media(min-width:680px){.share-preview-layout{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:640px){.ticket-share-summary-actions{display:grid;grid-template-columns:1fr}.ticket-share-summary-actions button{min-width:0}.share-preview-toolbar{display:grid}.share-preview-actions{justify-content:stretch}.share-preview-actions button{flex:1}}

/* 0.14.0 · fotos temporales para OCR y una sola imagen optimizada */
.ticket-photo-thumb.temporary{padding-bottom:8px;transition:border-color .15s,box-shadow .15s;position:relative}
.ticket-photo-thumb.keep-selected{border-color:#1d699b;box-shadow:0 0 0 2px #1d699b22}
.ticket-photo-thumb.recommended:not(.keep-selected){border-color:#bfd8e8}
.ticket-photo-thumb .choose-photo{display:block;width:calc(100% - 14px);margin:0 7px;padding:7px 8px;font-size:.74rem}
.photo-badges{position:absolute;z-index:2;left:7px;right:7px;top:7px;display:flex;gap:5px;flex-wrap:wrap;pointer-events:none}
.photo-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:.66rem;font-weight:800;box-shadow:0 2px 8px #0002}
.recommended-badge{background:#fff5d9;color:#7a5a0d}
.keep-badge{background:#e5f1fa;color:#155c88}
.ticket-photo-thumb.temporary img{padding-top:0}
@media(max-width:520px){.photo-badges{left:5px;right:5px;top:5px}.photo-badge{font-size:.61rem;padding:3px 6px}.ticket-photo-thumb .choose-photo{font-size:.7rem}}

/* 0.14.1 · optimización segura de fotografías históricas */
.storage-before-after{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.storage-before-after>div{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #dce5eb;border-radius:12px;background:#f9fbfc}
.storage-before-after span{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:#768189;font-weight:750}
.storage-before-after b{color:#23343e}
.optimize-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.optimize-photo-card{padding:9px;border:2px solid transparent;border-radius:14px;background:#f8fafb;box-shadow:0 0 0 1px #dfe6ea inset}
.optimize-photo-card.selected{border-color:var(--blue);background:#eef7fc}
.optimize-photo-image{position:relative;border-radius:10px;overflow:hidden;background:#eef1f3}
.optimize-photo-image img{display:block;width:100%;height:180px;object-fit:contain;background:#f3f5f6}
.optimize-photo-image span{position:absolute;left:7px;bottom:7px;padding:4px 7px;border-radius:999px;background:#17242dcc;color:#fff;font-size:.68rem;font-weight:750}
.optimize-photo-meta{display:flex;flex-direction:column;gap:2px;margin:8px 1px}
.optimize-photo-meta b{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.optimize-photo-meta small{font-size:.7rem;color:#737f87}
.optimize-photo-card .choose-old-photo{width:100%}
@media(max-width:620px){.optimize-photo-grid{grid-template-columns:1fr 1fr}.optimize-photo-image img{height:145px}}
@media(max-width:390px){.optimize-photo-grid{grid-template-columns:1fr}.optimize-photo-image img{height:210px}.storage-before-after{grid-template-columns:1fr}}

/* 0.15.0 · portada pública y cuentas */
.public-landing{min-height:100vh;background:linear-gradient(180deg,#f7fafc 0,#eef5f8 100%);color:#24333c}
.landing-topbar{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:18px}
.landing-brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:#24333c}.landing-brand>span:last-child{display:flex;flex-direction:column}.landing-brand small{font-size:.7rem;color:#73808a;margin-top:1px}.landing-brand-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#1d699b;color:#fff;font-size:1.35rem;font-weight:850}
.landing-login-button,.landing-primary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:11px;font-weight:800;background:#1d699b;color:#fff;padding:11px 17px}.landing-login-button{background:#fff;color:#1d699b;border:1px solid #cddfe9}
.landing-main{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:38px 0 60px}.landing-hero{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);gap:54px;align-items:center;padding:48px 0 64px}.landing-copy h1{font-size:clamp(2.3rem,5vw,4.3rem);line-height:1.02;letter-spacing:-.045em;margin:13px 0 20px;color:#173a52;max-width:760px}.landing-copy>p{font-size:1.12rem;line-height:1.65;color:#5f6f79;max-width:690px}.landing-kicker{display:inline-flex;padding:7px 11px;border-radius:999px;background:#e5f1fa;color:#1d699b;font-weight:800;font-size:.78rem}.landing-hero-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:28px}.landing-primary{padding:13px 20px}.landing-private-note{font-size:.82rem;color:#76828a}
.landing-demo-card{background:#fff;border:1px solid #dce6ec;border-radius:26px;padding:22px;box-shadow:0 24px 60px #173a5214;transform:rotate(1.2deg)}.landing-demo-head,.landing-demo-row,.landing-demo-total{display:flex;justify-content:space-between;gap:18px;align-items:center}.landing-demo-head{padding:6px 4px 20px;border-bottom:1px solid #e8eef2;color:#173a52;font-weight:850;font-size:1.04rem}.landing-demo-row{padding:16px 4px;border-bottom:1px solid #eef2f4;font-size:.9rem}.landing-demo-row b{color:#173a52}.landing-demo-total{margin-top:17px;padding:14px 16px;border-radius:15px;background:#eaf5ee;color:#276e45;font-weight:750}.landing-demo-total strong{font-size:1.25rem}
.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.landing-features article{background:#fff;border:1px solid #dde7ec;border-radius:20px;padding:24px}.landing-features h2{font-size:1.05rem;margin:13px 0 7px;color:#173a52}.landing-features p{font-size:.88rem;color:#65737c;line-height:1.55;margin:0}.landing-feature-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#edf5f9;font-size:1.25rem}
.landing-security{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.landing-security>div{display:flex;gap:11px;align-items:flex-start;padding:18px 20px;border:1px solid #dce6ec;border-radius:17px;background:#f9fbfc}.landing-security p{margin:0;font-size:.84rem;line-height:1.5;color:#62717a}.landing-security b{color:#304650}.landing-footer{text-align:center;color:#849099;font-size:.76rem;padding:18px 16px 32px}
/* 1.4.10 · Modalidades sin anuncios, sin pasarela de cobro */
.landing-secondary,.landing-pending-action{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:11px;border:1px solid #b9cfdd;background:#fff;color:#1d699b;text-decoration:none;font-weight:800;text-align:center;min-height:44px}
.landing-disabled,.landing-pending-action{cursor:default;background:#eff3f5;color:#657681;border-color:#d6e0e5}
.landing-plan-jump{display:inline-block;margin-top:9px;color:#1d699b;font-weight:750;text-underline-offset:3px}
.landing-plans{padding:54px 0 18px;scroll-margin-top:22px}.landing-section-intro{max-width:740px;margin:0 auto 23px;text-align:center}.landing-section-intro h2{color:#173a52;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.15;margin:14px 0 9px}.landing-section-intro p{color:#62747e;line-height:1.6}.landing-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.landing-plan-card{background:#fff;border:1px solid #d9e6ed;border-radius:21px;padding:25px;display:flex;flex-direction:column;align-items:stretch;box-shadow:0 9px 28px #173a5209}.landing-plan-card h3{color:#173a52;margin:10px 0 0;font-size:1.2rem}.landing-plan-supporter{border:2px solid #1d699b;background:#f9fcff}.landing-plan-badge{display:inline-flex;align-self:flex-start;background:#e6f1f7;color:#1d699b;border-radius:999px;font-size:.75rem;font-weight:850;padding:6px 11px}.landing-price{font-size:2rem;line-height:1.15;font-weight:850;color:#173a52;margin:13px 0}.landing-price small{display:block;font-size:.8rem;color:#687780;font-weight:600;margin-top:4px}.landing-plan-card ul{padding-left:22px;line-height:1.55;color:#425560;margin:2px 0 21px;flex:1}.landing-plan-card li{margin:7px 0}.landing-plan-disclaimer{font-size:.8rem;text-align:center;color:#697b85;margin:16px auto 0;max-width:840px;line-height:1.6}
@media(max-width:760px){.landing-plan-grid{grid-template-columns:1fr}.landing-plans{padding-top:35px}}
/* 1.4.11 · apariencia opcional de Colaborador, sin afectar a las cuentas Gratis/Interno */
body[data-irt-theme="ocean"]{--blue:#14758d;--red:#b84c63;--soft:#e8f5f7}
body[data-irt-theme="violet"]{--blue:#6750a4;--red:#ae3f71;--soft:#f1edfa}
body[data-irt-theme="forest"]{--blue:#267b55;--red:#a54b3a;--soft:#eaf4ed}
body[data-irt-density="compact"] #appView .card{padding:10px 12px;margin:7px 0;border-radius:11px}
body[data-irt-density="compact"] #appView main{padding-top:10px}
body[data-irt-density="compact"] #appView .list>div,body[data-irt-density="compact"] #appView .list>article{padding:9px 10px;margin:6px 0}
body[data-irt-density="compact"] #appView .metrics{gap:6px}
body[data-irt-density="compact"] #appView .metrics article{padding:9px}
.supporter-badge{display:inline-flex;align-items:center;padding:3px 8px;margin-top:3px;border-radius:999px;background:#fff3d8;color:#845412;border:1px solid #efd6a8;font-size:.68rem;font-weight:800;line-height:1.4}
.supporter-appearance{padding:16px 0;margin-top:12px;border-top:1px solid #dce5eb;border-bottom:1px solid #dce5eb}
.supporter-appearance h3{color:#2d4a5c;margin:0 0 6px}.supporter-appearance>.muted{font-size:.81rem;line-height:1.5}
.appearance-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.appearance-choice{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #d7e1e7;border-radius:11px;margin:0;background:#fafcfd;cursor:pointer;font-weight:700}
.appearance-choice:has(input:checked){border-color:var(--blue);background:var(--soft)}
.appearance-choice input{width:17px;height:17px;flex:0 0 17px;margin:0;accent-color:var(--blue)}
.appearance-swatch{width:23px;height:23px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #c6d4dc}
.appearance-density{margin-top:14px}
@media(max-width:420px){.appearance-options{grid-template-columns:1fr 1fr}.appearance-choice{padding:8px;gap:6px;font-size:.75rem}}
.account-top-actions{display:flex;gap:7px;align-items:center}.accounts-grid{display:grid;gap:10px}.account-user-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.account-user-main{display:flex;flex-direction:column;min-width:0}.account-user-main small{color:#758087;margin-top:3px}.account-user-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.account-owner-badge{display:inline-flex;width:max-content;border-radius:999px;padding:3px 7px;margin-top:5px;background:#e5f1fa;color:#1d699b;font-size:.68rem;font-weight:800}.account-disabled{opacity:.68}.account-create-help{font-size:.8rem;color:#6f7c84;line-height:1.45}.account-password-hint{font-size:.76rem;color:#6f7c84}
@media(max-width:760px){.landing-hero{grid-template-columns:1fr;gap:32px;padding-top:28px}.landing-demo-card{transform:none}.landing-features,.landing-security{grid-template-columns:1fr}.landing-copy h1{font-size:clamp(2.2rem,11vw,3.5rem)}.account-user-card{grid-template-columns:1fr}.account-user-actions{justify-content:stretch}.account-user-actions button{flex:1}}
@media(max-width:480px){.landing-topbar{width:min(100% - 22px,1120px);padding-top:14px}.landing-brand small{display:none}.landing-login-button{padding:9px 12px;font-size:.82rem}.landing-main{width:min(100% - 22px,1120px);padding-top:14px}.landing-hero{padding-bottom:38px}.landing-copy>p{font-size:1rem}.landing-demo-card{padding:17px}.landing-demo-row{font-size:.82rem}.landing-hero-actions{align-items:stretch}.landing-primary,.landing-hero-actions .landing-secondary{width:100%}.landing-private-note{text-align:center;width:100%}}

/* 0.15.1 · Mi cuenta y cambio de contraseña */
.my-account-summary{display:grid;gap:8px;margin:10px 0 18px;padding:12px;border:1px solid #dce5ea;border-radius:13px;background:#f8fbfd}
.my-account-summary>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:start}
.my-account-summary span{font-size:.75rem;color:#778188;text-transform:uppercase;letter-spacing:.02em;font-weight:700}
.my-account-summary b{overflow-wrap:anywhere;color:#273943}
.my-account-password-title{margin:18px 0 3px}
@media(max-width:520px){.account-top-actions{gap:4px}.account-top-actions button{padding:7px 8px;font-size:.72rem}.my-account-summary>div{grid-template-columns:78px minmax(0,1fr)}}

/* 0.15.2 · estados de participantes no bloqueantes */
.share-progress-side{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}.share-progress-side>strong{white-space:nowrap}.share-progress-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.share-progress-action,.share-selection-reset{padding:6px 8px;font-size:.72rem}.share-selection-reset{border-color:#e6c0c0;color:#9c3333}.participant-reset{width:100%;margin-top:8px;border-color:#e6c0c0;color:#9c3333}.share-close-unfinished{margin:8px 0 14px;padding-left:20px;color:#4d5961}.share-close-unfinished li{margin:5px 0}
@media(max-width:520px){.share-progress-row{align-items:flex-start}.share-progress-side{display:grid;justify-items:end}.share-progress-actions{display:grid;grid-template-columns:1fr}.share-progress-action,.share-selection-reset{width:100%}}

/* 0.15.8 · selector OCR limpio y nombres comerciales multilínea */
.ocr-region.selected{background:#1976d266;border-color:#0c5ca8;box-shadow:0 0 0 2px #fff,0 0 0 4px #1976d2;z-index:3}
.ocr-text-choice.selected{background:#d9edf9;border-color:#79b8dc;color:#174f72}
.ocr-picker-selection{display:grid;gap:8px;margin-top:10px;padding:11px;border:1px solid #cfe1ee;border-radius:12px;background:#f4f9fc}
.ocr-picker-selection>small{font-weight:700;color:#526875}
.ocr-picker-selection-text{font-weight:700;background:#fff}
.ocr-picker-selection-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px}
.ocr-picker-selection-actions button{min-height:40px}
.ocr-picker-row-alternatives{display:grid;gap:6px}
.ocr-picker-row-alternatives>small{color:#63737e}
.ocr-picker-alt-buttons,.ocr-picker-item-alternatives>div{display:flex;flex-wrap:wrap;gap:6px}
.ocr-picker-alt{padding:7px 9px;background:#fff;border:1px solid #bfd6e5;color:#245a7a;font-size:.78rem;text-align:left}
.ocr-picker-item-alternatives{display:grid;gap:7px;margin-top:10px;padding:11px;border:1px solid #f0d8a5;border-radius:12px;background:#fff9ea}
.ocr-picker-item-alternatives small{color:#6e6757}
@media(max-width:520px){
  .ocr-picker-selection-actions{grid-template-columns:1fr 1.45fr}
  .ocr-picker-alt{font-size:.74rem;padding:7px 8px}
  .ocr-picker-photo .muted{line-height:1.35}
}

.ticket-detected-fields{margin-top:14px;padding-top:12px;border-top:1px solid #e6ebef}.card>.ticket-photo-field:first-child{margin-top:0}

/* Hito 45: consolidación opcional de líneas similares. */
.item-editor-tools{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.merge-similar-list{display:grid;gap:8px;margin:12px 0}.merge-similar-option{align-items:flex-start}.merge-similar-option>span{min-width:0;flex:1}.merge-similar-option small{display:block;color:#687078;margin-top:4px;line-height:1.35}.merge-similar-option strong{white-space:nowrap;color:#173a52}.merge-similar-result{margin-top:6px;font-weight:700;color:#1d699b}.merge-similar-actions{display:flex;gap:8px;margin-top:14px}.merge-similar-actions>*{flex:1}@media(max-width:420px){.hero-row{align-items:flex-start}.item-editor-tools{max-width:68%;}.item-editor-tools .compact{padding:8px 9px;font-size:.74rem}}

/* 0.16.1 · administración, migración y roles */
.account-role-badge{display:inline-flex;width:max-content;border-radius:999px;padding:3px 7px;background:#edf3f6;color:#315d74;font-size:.7rem;font-weight:750;margin-top:5px}
.account-role-editor{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:10px 0 2px}.account-role-editor label{flex:1;min-width:180px;margin:0}.account-role-editor select{margin-top:4px}.account-role-editor button{margin-bottom:1px}
.admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.admin-metrics article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}.admin-metrics span{display:block;font-size:.73rem;color:#6f7980}.admin-metrics b{display:block;font-size:1.05rem;margin-top:4px;overflow-wrap:anywhere}
.admin-info-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:9px 0;border-top:1px solid #edf1f3}.admin-info-row:first-child{border-top:0}.admin-info-row span{color:#6a747c;font-size:.82rem}.admin-info-row b{text-align:right;overflow-wrap:anywhere;max-width:70%}
.admin-account-stats{display:grid;gap:8px}.admin-account-stat{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-account-stat>div:first-child{display:flex;flex-direction:column;gap:2px}.admin-account-stat small{color:#6f7a82}.admin-account-stat-numbers{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-size:.78rem}.admin-account-stat-numbers strong{font-size:.92rem;color:#1d699b}
.admin-roles-list{display:grid;gap:8px;margin:10px 0 14px}.admin-role-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:11px;border:1px solid #e0e7eb;border-radius:11px;background:#fafcfd}.admin-role-row>div:first-child{display:flex;flex-direction:column;gap:3px}.admin-role-row small{color:#6f7a82}.admin-role-row em{font-style:normal;color:#476578;font-size:.72rem}.admin-role-row>div:last-child{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.admin-permissions{display:grid;gap:7px}.admin-permission-check{display:flex;gap:10px;align-items:flex-start;border:1px solid #e0e7eb;border-radius:11px;padding:10px;background:#fafcfd}.admin-permission-check input{width:auto;margin:3px 0 0}.admin-permission-check span{display:flex;flex-direction:column}.admin-permission-check small{color:#6f7a82;margin-top:2px}
.admin-backup-card{display:grid;gap:10px}.admin-preview{border:1px solid #d6e3eb;background:#f7fbfd;border-radius:12px;padding:12px}.admin-preview h3{margin-top:0}.admin-count-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.admin-count-grid>div{padding:9px;border-radius:10px;background:#fff;border:1px solid #e0e7eb}.admin-count-grid span{display:block;font-size:.69rem;color:#707b83}.admin-count-grid b{display:block;margin-top:2px;font-size:.94rem}
.admin-import-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-import-compare>div{border:1px solid #dfe7ec;border-radius:11px;padding:10px;background:#fff}.admin-import-compare h4{margin:0 0 8px}
.admin-diagnostics{display:grid}.danger{background:#a72d3f;color:#fff}
@media(max-width:720px){.admin-metrics{grid-template-columns:1fr 1fr}.admin-count-grid{grid-template-columns:1fr 1fr}.admin-import-compare{grid-template-columns:1fr}.admin-account-stat{align-items:flex-start;flex-direction:column}.admin-account-stat-numbers{justify-content:flex-start}.admin-info-row{display:grid}.admin-info-row b{text-align:left;max-width:100%}}
@media(max-width:420px){.admin-metrics{grid-template-columns:1fr}.account-role-editor{display:grid;grid-template-columns:1fr}.account-role-editor button{width:100%}.admin-role-row{flex-direction:column}.admin-role-row>div:last-child{justify-content:flex-start}}
@media(max-width:520px){
  .topbar{align-items:flex-start;gap:8px}
  .account-top-actions{flex-wrap:wrap;justify-content:flex-end;max-width:72%}
  .account-top-actions button{white-space:nowrap}
}

.admin-activity{display:grid}.admin-activity-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid #edf1f3;align-items:flex-start}.admin-activity-row:first-child{border-top:0}.admin-activity-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-activity-row small{color:#6f7a82;overflow-wrap:anywhere}.admin-activity-row time{font-size:.72rem;color:#74818a;white-space:nowrap}@media(max-width:520px){.admin-activity-row{display:grid;gap:4px}.admin-activity-row time{white-space:normal}}

/* 0.16.3 · paginación del registro y mantenimiento seguro */
.admin-activity-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:4px 0 10px;color:#66737c;font-size:.78rem}.admin-pagination{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.admin-pagination button{min-width:130px}.admin-maintenance-card{display:grid;gap:10px}.orphan-file-details{margin-top:10px;border-top:1px solid #dfe7ec;padding-top:9px}.orphan-file-details summary{cursor:pointer;font-weight:700;color:#315d74}.orphan-file-list{display:grid;gap:5px;margin-top:8px;max-height:260px;overflow:auto}.orphan-file-list>div{display:flex;justify-content:space-between;gap:12px;padding:6px 8px;background:#fff;border:1px solid #edf1f3;border-radius:8px}.orphan-file-list code{font-size:.68rem;overflow-wrap:anywhere}.orphan-file-list span{white-space:nowrap;font-size:.72rem;color:#6f7a82}@media(max-width:520px){.admin-activity-toolbar{display:grid;gap:3px}.admin-pagination button{flex:1;min-width:0}.orphan-file-list>div{display:grid;gap:2px}.orphan-file-list span{white-space:normal}}

.admin-discarded-list{display:grid;gap:8px;margin-top:10px}.admin-discarded-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;background:#fff;border:1px solid #e2e8ec;border-radius:10px}.admin-discarded-row input{width:auto;margin:4px 0 0}.admin-discarded-main{display:flex;flex-direction:column;gap:3px;min-width:0}.admin-discarded-main small{color:#6f7a82}.admin-discarded-meta{text-align:right;font-size:.74rem;color:#5e6d76;white-space:nowrap}.admin-discarded-actions{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:9px;flex-wrap:wrap}@media(max-width:520px){.admin-discarded-row{grid-template-columns:auto minmax(0,1fr)}.admin-discarded-meta{grid-column:2;text-align:left;white-space:normal}.admin-discarded-actions button{flex:1}}

.bad-text{color:#923041!important}

.auth-card-wide{width:min(680px,100%)}.auth-divider{display:flex;align-items:center;gap:12px;margin:24px 0 16px;color:#7a8288}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.auth-divider span{font-size:.82rem}.notice.info{background:#e9f3f9;color:#285779}.setup-account-plan{margin:12px 0}.setup-account-plan>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #eef1f3}.setup-account-plan>div:last-child{border-bottom:0}
.button-link{display:block;text-align:center;text-decoration:none}


/* Hito 61 · diagnóstico no destructivo de origen de datos */
.setup-origin-diagnostic{margin-top:14px}.origin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.origin-grid>div{background:#f7f9fa;border:1px solid #e1e6e9;border-radius:10px;padding:10px;min-width:0}.origin-grid span{display:block;color:#69757d;font-size:.84rem;margin-bottom:4px}.origin-grid b,.origin-grid code{display:block;overflow-wrap:anywhere}.origin-grid code{font-weight:700;font-size:.86rem}.origin-accounts{border:1px solid #e1e6e9;border-radius:10px;padding:10px;margin-bottom:10px}.origin-account{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #edf0f2;font-size:.9rem}.origin-account:first-of-type{margin-top:6px}.origin-account b{text-align:right}@media(max-width:640px){.origin-grid{grid-template-columns:1fr}.origin-account{display:block}.origin-account b{display:block;text-align:left;margin-top:3px}}

/* 0.18.5 · regreso explícito al Resumen desde cualquier pantalla */

/* 0.19.0 · selección explícita del comportamiento de la cuenta administradora al restaurar */
.import-mode-option{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem .9rem;border:1px solid var(--line,#d8e0e6);border-radius:12px;margin:.55rem 0;background:#fff;cursor:pointer}.import-mode-option input{margin-top:.2rem;flex:0 0 auto}.import-mode-option span{display:block}.import-mode-option small{display:block;margin-top:.2rem;color:var(--muted,#64748b);line-height:1.35}

/* 0.19.4 · transición segura de cierre de sesión */
.logout-shell{position:fixed;z-index:1000;inset:0}.logout-card{width:min(390px,calc(100% - 48px));text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:#30373c}.logout-card h1{margin:4px 0 0;font-size:1.35rem}.logout-card p{margin:0;color:#687078}.logout-brand{margin-bottom:3px}.logout-spinner{width:28px;height:28px;border:3px solid #cbdbe5;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}

.account-plan-badge{display:inline-flex;width:max-content;border-radius:999px;padding:3px 7px;background:#f5f0df;color:#7a5d12;font-size:.7rem;font-weight:750;margin-top:5px}

/* 1.1.0 · versión visible y centro legal internacionalizable */
.auth-meta{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:16px;color:#7a858c;font-size:.74rem}
.link-button{appearance:none;border:0;background:transparent;padding:0;color:var(--blue);font:inherit;font-weight:750;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.app-about-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 18px;padding:10px 12px;border-radius:12px;background:#f4f8fa;border:1px solid #dde8ee;font-size:.8rem;color:#52636e}
.app-about-block{display:grid;gap:4px;margin-bottom:14px;padding:12px;border:1px solid #dce6eb;border-radius:12px;background:#f8fbfd}.app-about-block b{font-size:1rem;color:#223945}.app-about-block span{font-size:.78rem;color:#68767f}
.legal-public-doc,.legal-admin-doc{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #e8edef}.legal-public-doc:first-of-type,.legal-admin-doc:first-of-type{border-top:0}.legal-public-doc>div:first-child,.legal-admin-doc>div:first-child{display:flex;flex-direction:column;gap:2px}.legal-public-doc small,.legal-admin-doc small{color:#71808a}.legal-admin-doc>div:last-child{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.legal-document-content{line-height:1.58;color:#34434c}.legal-document-content h2{font-size:1.2rem;margin:0 0 12px}.legal-document-content p{margin:10px 0}.legal-footnote{margin-top:14px}.legal-admin-card{display:grid;gap:10px}.legal-admin-card textarea{resize:vertical}.admin-action-row{display:flex;gap:8px;flex-wrap:wrap}.admin-action-row>*{flex:1;min-width:190px}.legal-documents-list{display:grid;margin-top:3px}
@media(max-width:520px){.app-about-inline{align-items:flex-start;flex-direction:column}.app-about-inline button{width:100%}.legal-public-doc,.legal-admin-doc{align-items:flex-start;flex-direction:column}.legal-admin-doc>div:last-child{width:100%}.legal-admin-doc>div:last-child button{flex:1}.admin-action-row{display:grid}.admin-action-row>*{min-width:0;width:100%}}
.legal-draft-editor{min-height:280px;max-height:58vh;overflow:auto;padding:12px;border:1px solid var(--line,#d8e0e6);border-radius:10px;background:#fff;line-height:1.55;color:#34434c}.legal-draft-editor:focus{outline:2px solid rgba(29,105,155,.18);border-color:var(--blue,#1d699b)}.legal-draft-editor h2{font-size:1.15rem;margin:.4rem 0 .8rem}.legal-draft-editor p{margin:.7rem 0}

/* 1.2.0 · privacidad y datos de la cuenta */
.account-privacy-section{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.account-privacy-section h3{margin:0 0 6px}.account-privacy-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.account-privacy-actions .big,.account-privacy-note+.big{margin-top:8px}.account-privacy-note{margin-top:12px}
@media(max-width:520px){.account-privacy-actions{grid-template-columns:1fr}}

/* 1.4.4 · acciones de reparto globales; controles accesibles en móvil */
.allocation-bulk-card{margin:15px 0 18px;border-color:#cfe1eb;background:#f9fcfe;box-shadow:0 3px 12px #1d699b0a}
.allocation-bulk-intro{display:grid;gap:5px;margin-bottom:12px}
.allocation-bulk-intro strong{font-size:.99rem;color:#173a52}
.allocation-bulk-intro small{font-size:.82rem;color:#5e707a;line-height:1.45}
.allocation-bulk-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:9px}
.allocation-bulk-actions button{min-height:44px;white-space:normal;text-align:center;line-height:1.25}
#allocationClearAllBtn{border:1px solid #d0dae0}
@media(max-width:520px){.allocation-bulk-actions{grid-template-columns:1fr 1fr}.allocation-bulk-actions button{padding:11px 7px;font-size:.84rem}}

/* 1.4.13 · ventana accesible en móviles: cabecera fija y solo el contenido desplazable */
body.irt-modal-open{overflow:hidden}
.modal{height:100vh;height:100dvh;min-height:0}
.modal-card{display:flex;flex-direction:column;min-width:0;max-height:90vh;max-height:90dvh;overflow:hidden;padding:0}
.modal-head{flex:0 0 auto;background:#fff;border-bottom:1px solid #e6edf1;padding:12px 16px;z-index:1}
.modal-head h2{min-width:0;overflow-wrap:anywhere}
.modal-head button{flex:0 0 auto;min-width:44px;min-height:44px}
#modalBody{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 16px 16px}
@media(max-width:640px){
  .modal{display:flex;align-items:flex-end;justify-content:center;padding:0}
  .modal-card{width:100%;height:calc(100vh - 8px);height:calc(100dvh - 8px);max-height:none;border-radius:18px 18px 0 0}
  #modalBody{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
}

/* 1.4.13 · efecto visible y muestra interactiva de la distribución Colaborador */
body[data-irt-density="compact"] #appView .card{padding:8px 10px;margin:5px 0}
body[data-irt-density="compact"] #appView .list>div,
body[data-irt-density="compact"] #appView .list>article{padding:8px 10px;margin:5px 0}
body[data-irt-density="compact"] #appView .check-row{padding:8px 10px}
body[data-irt-density="compact"] #appView .screen h2{margin:14px 0 7px}
body[data-irt-density="compact"] #appView .metrics{margin-top:8px;gap:5px}
body[data-irt-density="compact"] #appView .metrics article{padding:8px 10px}
body[data-irt-density="compact"] #appView main{padding-top:8px}
.appearance-density-help{font-size:.81rem;line-height:1.45;margin:14px 0 6px}
.appearance-density-preview{background:#f8fafb;border:1px solid #dce6eb;border-radius:12px;padding:10px;margin-top:10px}
.appearance-density-preview>span{display:block;color:#67757e;font-size:.75rem;font-weight:700;margin-bottom:8px}
.appearance-preview-list{display:grid;gap:10px}
.appearance-preview-card{display:flex;flex-direction:column;gap:5px;padding:14px 12px;border:1px solid #d8e1e7;border-radius:10px;background:#fff;line-height:1.3}
.appearance-preview-card b{font-size:.88rem}
.appearance-preview-card small{color:#6e7b83;font-size:.76rem}
.appearance-density-preview[data-density="compact"] .appearance-preview-list{gap:5px}
.appearance-density-preview[data-density="compact"] .appearance-preview-card{padding:6px 10px;gap:1px;border-radius:7px}

/* 1.4.14 · los cambios de apariencia se pueden probar antes de confirmarlos */
.appearance-live-note{background:var(--soft);color:#35566a;border-left:3px solid var(--blue);border-radius:8px;padding:9px 11px;margin:12px 0 4px;font-size:.81rem;line-height:1.45}

/* 1.4.16 · avatares SVG privados: la identidad escrita siempre permanece visible. */
.person-with-avatar{display:flex;align-items:center;gap:10px;min-width:0}
.person-with-avatar>div,.person-with-avatar>span:last-child{min-width:0}
.person-with-avatar b,.person-with-avatar h1{overflow-wrap:anywhere}
.person-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;border-radius:13px;overflow:hidden;background:#eaf1f4}
.person-avatar svg,.avatar-picker-preview svg,.avatar-presets svg,.avatar-preview-large svg{display:block;width:100%;height:100%}
.person-avatar-large{width:74px;height:74px;border-radius:20px}
.person-avatar-common{font-size:1.4rem;color:#56708c;background:#e3edf4}
.check-row .person-avatar{width:36px;height:36px}
.alloc-row .person-avatar{width:30px;height:30px;border-radius:9px}
.alloc-row .person-with-avatar{font-size:.88rem;gap:7px}
.person-breakdown-head .person-with-avatar h3{margin:0}
.person-detail-header{align-items:center;flex-wrap:wrap}
.person-detail-header .person-with-avatar{flex:1}
.avatar-picker{display:flex;align-items:center;text-align:left;gap:12px;width:100%;margin:13px 0;padding:10px 12px;background:#f7fbfc;border:1px solid #d9e7e9;border-radius:14px;color:#303940}
.avatar-picker:focus-visible,.avatar-choice:focus-visible,.avatar-presets button:focus-visible{outline:3px solid #257da5;outline-offset:3px}
.avatar-picker-preview{width:58px;height:58px;flex:none;overflow:hidden;border-radius:15px}
.avatar-picker>span:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1}
.avatar-picker small{display:block;font-size:.79rem;color:#647781;font-weight:400}

/* 1.4.17 · editor que cabe en móvil: vista previa estable, categorías y opciones acotadas. */
.modal.avatar-modal .modal-card{height:min(720px,90dvh)}
#modalBody.avatar-editor-mode{display:flex;flex-direction:column;overflow:hidden;padding:10px 14px 12px}
.avatar-editor{display:flex;flex-direction:column;gap:9px;min-height:0;flex:1;width:100%}
.avatar-editor-preview{display:flex;align-items:center;gap:13px;flex:none;padding:8px 12px;border:1px solid #e4e9ed;background:#f8fafb;border-radius:14px;min-height:114px}
.avatar-preview-large{width:104px;height:104px;flex:none;display:block}
.avatar-preview-info{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.avatar-preview-info>strong{font-size:1rem}
.avatar-preview-info>.muted{font-size:.79rem;line-height:1.25}
.avatar-preview-info button{margin-top:2px;padding:7px 11px}
.avatar-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;flex:none}
.avatar-category{font-size:.77rem;line-height:1.15;white-space:normal;overflow-wrap:anywhere;min-height:43px;padding:7px 4px;border:1px solid #dce5e9;background:#f5f8f9;color:#40525c;border-radius:10px}
.avatar-category.selected{background:#eaf7fa;border-color:#24728e;color:#145771;box-shadow:inset 0 0 0 1px #24728e}
.avatar-category:focus-visible,.avatar-choice:focus-visible,.avatar-presets button:focus-visible{outline:3px solid #24728e;outline-offset:1px}
.avatar-choice-panel{flex:1;min-height:75px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid #dfe8eb;border-radius:12px;background:#fff;padding:0 9px 9px}
.avatar-choice-heading{position:sticky;top:0;z-index:1;background:#fff;color:#465861;font-size:.85rem;font-weight:750;padding:10px 2px 7px;border-bottom:1px solid #edf1f3;margin-bottom:8px}
.avatar-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.avatar-choice{display:flex;align-items:center;gap:8px;min-width:0;min-height:49px;text-align:left;padding:5px 7px;border:1px solid #d7e1e5;border-radius:10px;background:#fff;font-size:.78rem;font-weight:650;color:#44535b;line-height:1.2}
.avatar-choice span:last-child{overflow-wrap:anywhere}
.avatar-choice.selected{border-color:#236f8f;background:#eaf7fa;color:#164f69;box-shadow:inset 0 0 0 1px #236f8f}
.avatar-choice-thumbnail{display:block;width:38px;height:38px;flex:none;border-radius:9px;overflow:hidden}
.avatar-choice-thumbnail svg{width:100%;height:100%;display:block}
.avatar-swatch{display:inline-block;width:27px;height:27px;flex:none;border:1px solid #0002;border-radius:50%}
.avatar-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:360px}
.avatar-presets button{padding:3px;background:#fff;border:1px solid #d8e2e7;border-radius:12px;overflow:hidden;max-width:98px}
.avatar-presets button:hover{border-color:#27839b;background:#effafd}
.avatar-presets button.selected{border-color:#236f8f;box-shadow:0 0 0 2px #236f8f35;background:#eaf7fa}
.avatar-editor-footer{position:static;flex:none;background:#fff;padding-top:8px;border-top:1px solid #dce6ea}
.avatar-editor-footer button{width:100%;min-height:44px}
@media(max-width:640px){.modal.avatar-modal .modal-card{height:calc(100dvh - 8px);max-height:none}#modalBody.avatar-editor-mode{padding-bottom:calc(10px + env(safe-area-inset-bottom))}}
@media(max-width:480px){.avatar-preview-large{width:94px;height:94px}.avatar-editor-preview{min-height:104px;gap:9px;padding:6px 9px}.avatar-category{font-size:.72rem;min-height:42px;padding:5px 2px}.avatar-choice{font-size:.75rem}.person-avatar-large{width:58px;height:58px}.person-detail-header .person-with-avatar{width:100%}}
@media(max-width:360px) and (max-height:620px){.avatar-editor{gap:6px}.avatar-preview-large{width:82px;height:82px}.avatar-editor-preview{min-height:91px}.avatar-category{min-height:38px;font-size:.68rem}.avatar-preview-info>.muted{display:none}.avatar-choice-heading{padding:6px 2px}}

/* 1.4.18 · TiquiToca: Inicio con datos reales, identidad propia y mascota aprobada. */
body.tt-home-active{background:#fffaf3}
.tt-topbar-identity{min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.tt-wordmark{display:none;letter-spacing:-.055em;font-size:clamp(1.7rem,4.3vw,2.2rem);font-weight:900;line-height:1.1}
.tt-wordmark span:first-child{color:#112747}.tt-wordmark span:last-child{color:#fb6b63}
.tt-home-active #appView>.topbar{background:#fffaf3;border-bottom-color:#f7eee2;min-height:73px;padding:12px max(16px,calc((100vw - 844px)/2))}
.tt-home-active #tiquiBrand{display:inline-flex}
.tt-home-active #screenTitle,.tt-home-active #userLabel{display:none}
.tt-home-active #appView main{max-width:860px;padding:6px 16px calc(95px + env(safe-area-inset-bottom))}
.tt-home-screen{color:#112747}
.tt-welcome{position:relative;isolation:isolate;min-height:190px;display:flex;align-items:center;overflow:hidden;border-radius:23px;background:linear-gradient(115deg,#dcf7ee,#c6eee3);margin:8px 0 16px;padding:24px 30px}
.tt-welcome-copy{position:relative;z-index:1;max-width:69%;min-width:0}
.tt-home-screen .tt-welcome h1{font-size:clamp(1.45rem,4vw,2.4rem);font-weight:850;line-height:1.13;letter-spacing:-.025em;margin:0 0 9px;overflow-wrap:anywhere}
.tt-welcome p{font-size:clamp(.9rem,2.15vw,1.2rem);line-height:1.4;margin:0;color:#315776;font-weight:520}
.tt-welcome-mascot{position:absolute;right:3%;bottom:-4px;display:block;width:30%;height:101%;background:url('./tiqui-mascot.png') center bottom / contain no-repeat;pointer-events:none}
.tt-home-screen .tt-new-ticket{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:61px;margin:0 0 17px;border-radius:17px;background:#fb6b63;color:#fff;font-size:1.12rem;font-weight:850;box-shadow:0 4px 13px #fc6b6324}
.tt-home-screen .tt-new-ticket:hover{background:#ef5e56}
.tt-new-ticket>span{font-weight:350;font-size:1.6rem;line-height:1}
.tt-home-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:0 0 18px}
.tt-home-metrics article{display:flex;align-items:center;gap:14px;min-width:0;min-height:111px;margin:0;padding:17px 19px;border:1px solid #f0eae2;border-radius:20px;background:#fff;box-shadow:0 4px 17px #11274708}
.tt-home-metrics article.tt-metric-total{grid-column:1/-1;min-height:130px}
.tt-home-metrics article>div{min-width:0;flex:1}
.tt-home-metrics article span:not(.tt-metric-icon){display:block;color:#314b6d;font-size:1rem;font-weight:720;line-height:1.3}
.tt-home-metrics article b{display:block;color:#102745;font-size:clamp(1.12rem,3.4vw,1.85rem);letter-spacing:-.025em;font-weight:850;margin-top:5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tt-home-metrics .tt-metric-total b{font-size:clamp(1.75rem,5vw,2.45rem)}
.tt-metric-icon{display:flex;align-items:center;justify-content:center;flex:none;width:59px;height:59px;border-radius:50%;color:#112747}
.tt-metric-icon svg{display:block;width:32px;height:32px}
.tt-metric-yellow{background:#ffd47f}.tt-metric-mint{background:#a9eadb}
.tt-home-panel{background:#fff;border:1px solid #f0eae2;border-radius:20px;padding:16px 18px;margin:13px 0;box-shadow:0 4px 17px #11274707}
.tt-home-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.tt-home-screen .tt-home-panel h2{color:#102745;font-size:1.13rem;font-weight:830;letter-spacing:-.015em;margin:0}
.tt-panel-more{color:#42627e;background:transparent;font-size:.81rem;font-weight:750;padding:7px 0 7px 10px;white-space:nowrap}
.tt-panel-more span{font-size:1.55rem;vertical-align:middle;line-height:.8;margin-left:1px}
.tt-panel-more:hover{color:#fb6b63}
.tt-home-panel>.list{margin-top:8px}
.tt-home-panel>.list.empty{padding:11px 0 5px;color:#667a87;font-size:.91rem}
.tt-home-panel>.list>div{position:relative;margin:0;padding:12px 19px 12px 1px;border:0;border-radius:0;border-top:1px solid #f0eee9;background:transparent;box-shadow:none}
.tt-home-panel>.list>div:first-child{border-top:0}
.tt-home-panel>.list>div.clickable:after{content:'›';position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:1.45rem;color:#90a0ae}
.tt-home-panel>.list>div.clickable:hover{background:#f8fcfa}
.tt-home-panel .list-title{align-items:center;min-width:0}
.tt-home-panel .list-title b{color:#112747;font-size:.92rem}
.tt-home-panel .list-title strong{color:#112747;font-size:1rem;font-variant-numeric:tabular-nums}
.tt-home-panel .list-title .subline{font-size:.75rem;color:#78909c}
.tt-home-panel .person-avatar,.tt-home-panel .visual-badge{width:42px;height:42px;flex-basis:42px;border-radius:50%}
.tt-home-panel .visual-badge svg{width:24px;height:24px}
.bottomnav button[data-nav]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0}
.bottomnav button[data-nav] svg{display:block;width:24px;height:24px}
.bottomnav button[data-nav].is-current{color:#ec615b}
.bottomnav button[data-nav]:focus-visible,.tt-panel-more:focus-visible,.tt-new-ticket:focus-visible{outline:3px solid #112747;outline-offset:3px}
.tt-home-active .bottomnav{background:#fffafc;border-color:#f1e8e5;justify-content:space-around}
.tt-home-active .bottomnav .navplus{display:none}
.tt-home-active .bottomnav button[data-nav]{position:relative;min-height:52px;flex:1;padding:5px 8px;color:#435675}
.tt-home-active .bottomnav button[data-nav].is-current{color:#fb6b63}
.tt-home-active .bottomnav button[data-nav].is-current:after{content:'';position:absolute;left:25%;right:25%;bottom:-5px;height:3px;border-radius:999px;background:#fb6b63}
.tt-home-active .bottomnav button span{font-size:.7rem}
@media(max-width:600px){
  .tt-home-active #appView>.topbar{min-height:64px;padding:10px 16px}
  .tt-home-active #appView main{padding:3px 12px calc(90px + env(safe-area-inset-bottom))}
  .tt-welcome{min-height:150px;padding:17px 18px;margin:7px 0 13px;border-radius:19px}
  .tt-welcome-copy{max-width:67%}
  .tt-welcome-mascot{width:36%;right:1%}
  .tt-home-screen .tt-welcome h1{font-size:clamp(1.2rem,5vw,1.85rem)}
  .tt-welcome p{font-size:.87rem}
  .tt-home-screen .tt-new-ticket{min-height:54px;border-radius:14px;font-size:1rem;margin-bottom:13px}
  .tt-home-metrics{gap:9px;margin-bottom:14px}
  .tt-home-metrics article{padding:11px 10px;gap:8px;min-height:92px;border-radius:16px}
  .tt-home-metrics article.tt-metric-total{min-height:108px;padding:14px 16px}
  .tt-metric-icon{width:39px;height:39px}
  .tt-metric-icon svg{width:24px;height:24px}
  .tt-metric-total .tt-metric-icon{width:56px;height:56px}
  .tt-metric-total .tt-metric-icon svg{width:30px;height:30px}
  .tt-home-metrics article span:not(.tt-metric-icon){font-size:.77rem}
  .tt-home-metrics article b{font-size:clamp(.97rem,4.1vw,1.35rem)}
  .tt-home-metrics .tt-metric-total b{font-size:clamp(1.65rem,7vw,2.1rem)}
  .tt-home-panel{padding:14px 14px 9px;margin:12px 0;border-radius:17px}
  .tt-home-panel>.list>div{padding-top:10px;padding-bottom:10px}
  .tt-home-panel .list-title strong{font-size:.91rem}
  .tt-home-panel .person-avatar,.tt-home-panel .visual-badge{width:38px;height:38px;flex-basis:38px}
  .tt-home-active .bottomnav{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
}
@media(max-width:360px){
  .tt-home-active #appView main{padding-left:9px;padding-right:9px}
  .tt-wordmark{font-size:1.58rem}
  .tt-welcome{min-height:133px;padding:13px}
  .tt-welcome-copy{max-width:65%}
  .tt-welcome-mascot{width:38%}
  .tt-home-screen .tt-welcome h1{font-size:1.19rem}
  .tt-welcome p{font-size:.79rem}
  .tt-home-metrics article{padding:9px 8px;gap:6px}
  .tt-metric-icon{width:32px;height:32px}
  .tt-metric-icon svg{width:21px;height:21px}
}

/* Hito 96: identidad propia vinculada a la cuenta y recibos pagados por el titular. */
.tt-self-setup-hint,.tt-self-consumption,.tt-ticket-payer{border:1px solid #cfe5f2;background:#f0f8fc;border-radius:16px;padding:14px 16px;margin:12px 0;color:#173a52}
.tt-self-setup-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tt-self-setup-hint>div,.tt-self-consumption{display:flex;flex-direction:column;gap:5px}
.tt-self-setup-hint span,.tt-self-consumption small,.tt-ticket-payer small{color:#4d6477;font-size:.85rem;line-height:1.4}
.tt-self-consumption strong{font-size:1.5rem;color:#17577d;font-variant-numeric:tabular-nums}
.tt-self-card{border-color:#cfe5f2;margin-bottom:17px}
.tt-self-card .tt-self-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:11px}
.tt-self-card .tt-self-actions label{flex:1 1 180px;min-width:0}
.tt-self-card .tt-self-actions select{max-width:100%}
.tt-self-badge{color:#176b53;font-size:.78rem;font-weight:700;margin-top:4px}
.tt-self-participant{border-color:#a7d8c6;background:#f3fbf6}
.tt-self-participant .subline,.tt-self-covered{color:#187455}
.tt-ticket-payer{display:flex;flex-direction:column;align-items:start;gap:6px;margin-bottom:14px}
.tt-ticket-payer button{margin-top:5px}
.tt-self-final-summary{margin-top:12px;line-height:1.55}
@media(max-width:600px){
  .tt-self-setup-hint,.tt-self-consumption,.tt-ticket-payer{padding:12px;border-radius:13px}
  .tt-self-setup-hint>div{flex:1 1 100%}
  .tt-self-card .tt-self-actions{flex-direction:column;align-items:stretch}
  .tt-self-card .tt-self-actions label{flex:none}
}

/* Hito 97 · Importación selectiva desde contactos del móvil, portapapeles o vCard. */
.tt-contact-import{border:1px solid #d5e5ef;border-radius:15px;background:#f7fafc;padding:13px 14px;margin:10px 0 18px}
.tt-contact-import p{margin:0 0 10px;font-size:.89rem}
.tt-contact-import>small{display:block;margin-top:10px;line-height:1.4}
.tt-contact-import-actions{display:flex;align-items:stretch;flex-wrap:wrap;gap:9px}
.tt-contact-import-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1 1 145px;min-width:0;min-height:43px;white-space:normal;text-align:center;line-height:1.25}
.tt-contact-import-notice{font-size:.84rem;color:#966300;margin:10px 0;line-height:1.45}
.tt-contact-import-notice:empty{display:none}
@media(max-width:520px){
  .tt-contact-import{padding:12px;margin-bottom:15px}
  .tt-contact-import-actions{gap:8px}
  .tt-contact-import-actions button{font-size:.86rem;flex:1 1 calc(50% - 8px);min-height:46px;padding:9px}
}

/* Hito 98 · TiquiToca en todas las pantallas y mascota como avatar predeterminado. */
body.tt-app-active{--tt-accent:#fb6b63;--tt-cream:#fffaf3;--tt-night:#112747;--tt-border:#eee9e2;background:var(--tt-cream);color:var(--tt-night)}
body.tt-app-active[data-irt-theme="ocean"]{--tt-accent:#14758d}
body.tt-app-active[data-irt-theme="violet"]{--tt-accent:#6750a4}
body.tt-app-active[data-irt-theme="forest"]{--tt-accent:#267b55}
.tt-app-active #appView>.topbar{background:var(--tt-cream);border-bottom-color:var(--tt-border);min-height:73px;padding:12px max(16px,calc((100vw - 844px)/2))}
.tt-app-active #tiquiBrand{display:inline-flex}
.tt-app-active #userLabel{display:none}
.tt-app-active:not(.tt-home-active) #screenTitle{display:block;font-size:.77rem;color:#586b7a;font-weight:700;margin-top:3px}
.tt-app-active #appView main{max-width:860px;padding:6px 16px calc(95px + env(safe-area-inset-bottom))}
.tt-app-active .screen:not(.tt-home-screen) h1,.tt-app-active .screen:not(.tt-home-screen) h2{color:var(--tt-night)}
.tt-app-active .screen:not(.tt-home-screen) .card,.tt-app-active .screen:not(.tt-home-screen) .list>div,.tt-app-active .screen:not(.tt-home-screen) .list>article{border-color:var(--tt-border);border-radius:17px;box-shadow:0 4px 17px #11274708}
.tt-app-active .screen:not(.tt-home-screen) .card.soft{background:#f8fcfa}
.tt-app-active #appView .primary{background:var(--tt-accent);color:#fff}
.tt-app-active .tt-home-screen .tt-new-ticket{background:var(--tt-accent)}
.tt-app-active .tt-home-screen .tt-new-ticket:hover{filter:brightness(.96)}
.tt-app-active .bottomnav{background:#fffafc;border-color:#f1e8e5;justify-content:space-around}
.tt-app-active .bottomnav button[data-nav]{position:relative;min-height:52px;flex:1;padding:5px 8px;color:#435675}
.tt-app-active .bottomnav button[data-nav].is-current{color:var(--tt-accent)}
.tt-app-active .bottomnav button[data-nav].is-current:after{content:'';position:absolute;left:25%;right:25%;bottom:-5px;height:3px;border-radius:999px;background:var(--tt-accent)}
.tt-app-active .bottomnav .navplus{background:var(--tt-accent);color:#fff}
.tt-app-active .bottomnav button span{font-size:.7rem}
/* Hito 107: cuatro accesos para perfiles exclusivamente administrativos. */
.tt-app-active .bottomnav button[data-nav="accounts"],.tt-app-active .bottomnav button[data-nav="admin"],.tt-app-active .bottomnav button[data-nav="my-account"]{overflow:hidden}
.tt-app-active .bottomnav button[data-nav="accounts"] span,.tt-app-active .bottomnav button[data-nav="admin"] span,.tt-app-active .bottomnav button[data-nav="my-account"] span{white-space:nowrap}
@media(max-width:420px){.tt-app-active .bottomnav{padding-left:3px;padding-right:3px}.tt-app-active .bottomnav button[data-nav]{padding-inline:1px}.tt-app-active .bottomnav .navplus{width:42px;height:42px;flex:0 0 42px}.tt-app-active .bottomnav button span{font-size:clamp(.57rem,2.45vw,.7rem)}}
.tt-my-account-management{margin-top:16px;padding:13px;background:#f8fcfa;border:1px solid #dcece5;border-radius:14px}
.tt-my-account-management h3{margin:0 0 10px}
.tt-account-admin-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.tt-account-admin-shortcuts button{min-height:44px}
.tt-my-account-session{margin-top:20px;padding-top:16px;border-top:1px solid #e1e6e9}
.tt-my-account-session button{background:#f2f4f6;color:#7b2837}
.tt-app-active .tt-contact-import{background:#f8fcfa;border-color:#dcece5}
.tt-app-active .modal .primary{background:var(--tt-accent)}
.avatar-mascot-art{display:block;width:100%;height:100%;min-width:0;min-height:0;background:#dcf7ee url('./tiqui-mascot.png') center center / contain no-repeat;border-radius:inherit}
.person-avatar-mascot,.tt-free-avatar-hint .avatar-preview-large{background:#dcf7ee}
.avatar-mascot-choice .avatar-mascot-art{height:80px;border-radius:10px}
.avatar-mascot-choice small{display:block;text-align:center;color:#40576a;font-size:.72rem;font-weight:800;margin-top:4px}
.tt-free-avatar-hint{display:flex;align-items:center;gap:12px;background:#edfaf5;border:1px solid #cfeadf;border-radius:14px;padding:10px 12px;margin:12px 0;color:var(--tt-night,#112747)}
.tt-free-avatar-hint .avatar-preview-large{display:block;flex:0 0 58px;width:58px;height:58px;border-radius:13px;overflow:hidden}
.tt-free-avatar-hint div{min-width:0;display:flex;flex-direction:column;gap:3px}
.tt-free-avatar-hint small{color:#55717b;font-size:.79rem;line-height:1.4}
@media(max-width:600px){
  .tt-app-active #appView>.topbar{min-height:64px;padding:10px 16px}
  .tt-app-active #appView main{padding:3px 12px calc(95px + env(safe-area-inset-bottom))}
  .tt-app-active .bottomnav{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}
}
.tt-connected-panel{margin-bottom:16px}
.tt-connected-panel h3{margin-top:0}
.tt-connected-request-row{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.tt-connected-request-row input{flex:1 1 200px;min-width:0}
.tt-connected-requests{margin-top:14px}
.tt-connected-incoming,.tt-connected-outgoing{padding:12px 0;border-top:1px solid var(--border,#e0e7ee)}
.tt-connected-requests .row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0}
.tt-connected-actions{display:flex;flex-wrap:wrap;gap:7px}
.tt-direct-delivery{padding:12px 0;border-bottom:1px solid var(--border,#e0e7ee)}
.tt-direct-delivery .row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tt-direct-delivery .subline{display:block}
.tt-connected-tag{font-size:.79rem;color:var(--primary,#1d699b);display:block;margin-top:3px}
.participant-privacy-footer{max-width:760px;margin:8px auto 32px;padding:14px 20px;color:#334b57;font-size:.88rem;line-height:1.5;text-align:center}
.participant-privacy-footer p{margin:0 0 8px}
.participant-privacy-footer a{color:#175c88;text-decoration:underline;text-underline-offset:3px}
.participant-privacy-footer a:focus-visible{outline:3px solid #dd633e;outline-offset:3px}
.legal-operations-wizard{display:grid;gap:10px;margin:6px 0 14px}
.legal-operations-wizard details{border:1px solid var(--border,#e0e7ee);border-radius:12px;padding:12px 14px;background:var(--surface,#fff)}
.legal-operations-wizard summary{cursor:pointer;font-weight:750;color:var(--tt-night,#18354a);padding:2px 0 10px}
.legal-operations-wizard details>label{display:block;margin:9px 0}
.legal-operations-wizard .legal-check{display:flex;align-items:center;gap:9px;line-height:1.45}
.legal-operations-wizard .legal-check input{width:auto;flex:none}
.legal-operations-wizard textarea,.legal-operations-wizard input,.legal-operations-wizard select{max-width:100%}
.legal-auto-panel{border:1px solid #bcd8e8;background:#f4fbff;border-radius:15px;padding:15px;display:grid;gap:10px}
.legal-auto-panel h3{margin:0;color:#19435d;font-size:1.05rem}
.legal-auto-details{display:grid;gap:7px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.legal-auto-row{border:1px solid #d9e9f3;border-radius:11px;background:#fff;padding:10px;display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.legal-auto-row b{color:#164865}.legal-auto-row span{color:#263f4e;font-size:.9rem}.legal-auto-row small{color:#627d8b}
.legal-auto-details>p{grid-column:1/-1;margin:6px 0}
.legal-auto-browser{font-size:.91rem;overflow-wrap:anywhere}.legal-auto-browser p{margin:8px 0}
