:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#edf3ef;color:#173d34;font-size:16px;--forest:#103e35;--green:#16745b;--line:#d7e2db;--muted:#60766a}*{box-sizing:border-box}body{margin:0;min-height:100dvh;overscroll-behavior-y:contain}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid #d0a54e;outline-offset:2px}button:disabled{opacity:.45;cursor:default}.topbar{height:70px;background:var(--forest);color:white;display:flex;align-items:center;padding:8px 15px;gap:10px;position:sticky;top:0;z-index:5;box-shadow:0 1px 8px #0002}.brand-logo{height:54px;width:54px;object-fit:contain}.brand-text{display:flex;flex-direction:column;line-height:1.22}.brand-text strong{font-size:16px;letter-spacing:.5px}.brand-text small{font-size:11px;color:#c6dcce}.save-status{margin-left:auto;font-size:11px;color:#aee8c8;border:1px solid #427967;border-radius:10px;padding:4px 7px;white-space:nowrap}#app{max-width:860px;margin:0 auto;padding:12px 12px calc(120px + env(safe-area-inset-bottom))}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:0 1px 6px #143d2610}.intro h1{font-size:25px;margin:6px 0 3px}.intro p{margin:0 0 14px;color:var(--muted)}.eyebrow{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.session-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.session-head h1{font-size:16px;margin:2px 0 0;overflow-wrap:anywhere}.session-head small{color:var(--muted)}.status-dot{font-size:12px;color:var(--green)}.pill{border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:white;font-size:12px;font-weight:600}.pill.active{background:#d7eadd;color:#11543f;border-color:#94c9ad}.button{background:var(--forest);color:white;border:0;border-radius:11px;padding:12px 16px;font-weight:750}.button.secondary{background:#e9f0eb;color:#204c3f}.button.outline{background:white;color:var(--forest);border:1px solid #b5cbbd}.button.danger{background:#ab3e39}.button.full{width:100%}.button.small{padding:9px 12px;font-size:13px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.button-row>*{flex:1}.session-list{display:flex;flex-direction:column;gap:10px}.session-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.session-item:last-child{border:0}.session-item strong{display:block}.session-item small{display:block;color:var(--muted);margin-top:3px}.summary-strip{position:sticky;top:70px;z-index:4;margin:0 -12px 10px;background:#e1eee6;padding:10px 12px;border-bottom:1px solid #bfd4c6;box-shadow:0 1px 6px #143d2620}.summary-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:5px;text-align:center}.sum-cell{background:white;border:1px solid #c8d9cd;border-radius:10px;padding:5px 2px}.sum-cell strong{display:block;font-size:25px;line-height:1.22;white-space:nowrap;font-variant-numeric:tabular-nums}.sum-cell:first-child strong{color:var(--green)}.sum-cell small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.destinations{display:flex;gap:6px;overflow-x:auto;padding:3px 0;scrollbar-width:none}.destinations .pill{white-space:nowrap;flex-shrink:0}.section-title{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:18px 0 10px}.section-title h2{font-size:16px;margin:0}.tip{font-size:12px;color:var(--muted);margin:0}.line-grid{display:flex;flex-direction:column;gap:8px}.line-row{display:grid;grid-template-columns:minmax(83px,1fr) repeat(3,minmax(56px,.71fr));gap:6px;align-items:stretch;background:white;border:1px solid var(--line);border-radius:14px;padding:7px}.line-name{display:flex;flex-direction:column;justify-content:center;padding:6px 1px 6px 5px;min-width:0}.line-name strong{font-size:13px;overflow-wrap:anywhere;line-height:1.15}.line-name span{font-size:13px;color:var(--muted);margin-top:7px}.counter{min-height:84px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;border-radius:10px;border:1px solid; padding:6px 2px 7px;-webkit-tap-highlight-color:transparent;user-select:none}.counter:active{transform:scale(.96)}.counter .sex{font-weight:750;font-size:11px}.counter .num{font-size:27px;line-height:1.05;font-weight:850;font-variant-numeric:tabular-nums}.counter .plus{font-size:11px}.counter.m{background:#e3f1ff;color:#145eaa;border-color:#b5d5f6}.counter.h{background:#fce7ef;color:#9f3562;border-color:#edbdd1}.counter.s{background:#f0ede6;color:#685b42;border-color:#d9d2c2}.col-head{display:grid;grid-template-columns:minmax(83px,1fr) repeat(3,minmax(56px,.71fr));gap:6px;padding:0 8px;font-size:11px;color:var(--muted);font-weight:650;text-align:center}.col-head span:first-child{text-align:left}.bottom-actions{position:fixed;bottom:0;left:0;right:0;z-index:6;background:#fff;border-top:1px solid var(--line);box-shadow:0 -2px 12px #0001;padding:10px max(12px,calc((100vw - 836px)/2)) calc(10px + env(safe-area-inset-bottom));display:flex;gap:8px}.bottom-actions button{flex:1}.footer-note{font-size:12px;color:var(--muted);padding:6px 2px}.form-field{display:flex;flex-direction:column;gap:6px;margin:12px 0}.form-field span{font-weight:650;font-size:14px}.form-field input,.form-field select{width:100%;padding:12px;border:1px solid #b8cbbf;border-radius:10px;background:#fff;min-height:46px}.dialog{border:0;border-radius:18px;width:min(94vw,540px);max-height:90dvh;overflow:auto;padding:18px;box-shadow:0 14px 50px #0004}.dialog::backdrop{background:#142d2590}.dialog h2{margin:0 0 10px;font-size:20px}.report{white-space:pre-wrap;background:#f4f7f5;padding:12px;border-radius:11px;font-size:12px;max-height:45dvh;overflow:auto;color:#19382f}.table-report{width:100%;border-collapse:collapse;font-size:13px}.table-report th,.table-report td{border-bottom:1px solid var(--line);padding:9px 5px;text-align:right}.table-report td:first-child,.table-report th:first-child{text-align:left}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.hint{background:#f3f5e8;border-radius:10px;padding:10px;color:#645a29;font-size:12px}.toast{position:fixed;z-index:20;bottom:95px;left:50%;transform:translateX(-50%);background:#153e33;color:white;padding:11px 15px;border-radius:12px;box-shadow:0 3px 12px #0003;max-width:90vw;text-align:center;font-size:13px}.toolbar-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar-inline>*{flex:auto}.empty{color:var(--muted);text-align:center;padding:20px 0}.small-muted{font-size:12px;color:var(--muted)}.line-actions{display:flex;gap:9px;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line)}.line-actions:last-child{border:0}.line-actions span{overflow-wrap:anywhere}.warn{border:1px solid #e5b59a;background:#fff5f0;color:#934429;padding:11px;border-radius:11px;font-size:12px;margin:10px 0}@media(min-width:700px){.line-grid{display:grid;grid-template-columns:1fr 1fr}.line-row{grid-template-columns:minmax(90px,1fr) repeat(3,70px)}.col-head{display:none}}@media(max-width:350px){.line-row,.col-head{grid-template-columns:minmax(75px,1fr) repeat(3,54px);gap:4px}.counter .num{font-size:23px}.line-name strong{font-size:12px}}

.mini-head{display:flex;align-items:center;justify-content:space-between;padding:7px 2px 4px;font-size:10px;letter-spacing:.045em;color:#4c6a59}.mini-head button{background:none;border:0;padding:2px 5px;color:#136249;font-size:12px;font-weight:700}.mini-lines{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:0 0 4px}.mini-line{flex:0 0 116px;background:#fff;border:1px solid #c3d6cb;border-radius:8px;padding:5px 7px;display:flex;flex-direction:column;gap:1px}.mini-line b{font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mini-line span{font-size:10px;color:#526c5e;white-space:nowrap}.mini-line strong{font-size:12px}


/* CRIDEL CONTEO 0.2: interfaz de sexado de una mano */
body.counting{height:100dvh;overflow:hidden;background:#ecf3ef}
body.counting .topbar{height:56px;padding:3px 12px}
body.counting .brand-logo{height:46px;width:46px}
body.counting .brand-text strong{font-size:14px}
body.counting #app{height:calc(100dvh - 56px);max-width:750px;padding:6px 8px env(safe-area-inset-bottom);overflow:hidden}
.count-page{display:flex;flex-direction:column;height:100%;gap:7px;min-height:0}
.count-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 5px 0}
.count-heading>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.count-heading small{font-size:11px;color:#507468;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.count-heading strong{font-size:18px;line-height:1.15}
.tiny-control{background:none;border:1px solid #b2c8bc;border-radius:9px;padding:7px 11px;color:#315848;font-size:12px}
.quick-lines{display:flex;gap:7px;overflow-x:auto;scrollbar-width:thin;flex-shrink:0;overscroll-behavior-x:contain;padding:2px 1px 5px}
.quick-line{min-width:106px;max-width:155px;flex:1 0 106px;display:flex;flex-direction:column;text-align:left;background:white;color:#21493d;border:2px solid #d0ded5;border-radius:12px;padding:7px 8px;gap:2px;touch-action:manipulation}
.quick-line.selected{background:#daede3;border-color:#137053;box-shadow:0 1px 4px #124e3320}
.quick-line strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-line span{font-size:12px;white-space:nowrap;color:#4e6b61;font-variant-numeric:tabular-nums}
.quick-line b{font-size:14px;font-variant-numeric:tabular-nums}
.selected-heading{display:flex;align-items:center;justify-content:space-between;padding:0 4px;font-size:13px}
.selected-heading b{font-size:17px;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selected-heading span{color:#5c776a}
.huge-counters{display:grid;grid-template-columns:1fr 1fr;gap:9px;flex:1;min-height:120px}
.huge-counter{border-radius:20px;border:2px solid;display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;padding:8px 3px;min-width:0;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.huge-counter:active{filter:brightness(.93);transform:scale(.985)}
.huge-counter.macho{background:#d8ebff;border-color:#8eb9e5;color:#145d9e}
.huge-counter.hembra{background:#f9dfec;border-color:#e6adca;color:#94345f}
.huge-counter>span{font-size:clamp(16px,4.8vw,23px);font-weight:850}
.huge-counter>strong{font-size:clamp(60px,19vw,108px);letter-spacing:-.06em;line-height:1;font-variant-numeric:tabular-nums}
.huge-counter>small{font-size:15px;font-weight:750}
.unsexed-control{flex-shrink:0;background:#eee9df;border:1px solid #d1c8b8;border-radius:10px;padding:9px;font-weight:750;color:#5e5140}
.special-tools{flex-shrink:0;background:#fff;border:1px solid #d2e1d6;border-radius:11px;padding:7px;display:flex;flex-direction:column;gap:5px}
.special-label{font-size:11px;color:#536d62;font-weight:700}
.special-tools>div{display:flex;gap:7px}
.special-btn{flex:1;border:1px solid #bed0c3;border-radius:9px;background:#f8fbf9;padding:9px 3px;font-weight:650;color:#295545;font-size:12px}
.special-btn.on{background:#fff0c8;border:2px solid #ca9221;color:#6b4707}
.special-alert{font-size:11px;color:#7a4e05;font-weight:700}
.count-controls{display:flex;gap:9px;flex-shrink:0}
.count-controls>button{flex:1;border-radius:12px;padding:13px 4px;font-size:14px;font-weight:780;border:0;min-height:48px}
.undo-small{color:#255647;background:#dae7df}
.finish-small{color:white;background:#103e35}
.count-footnote{font-size:10px;line-height:1.2;color:#597264;text-align:center;margin:0 0 2px}
.line-choices{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:190px;overflow-y:auto;padding:3px 0}
.choice-line{border:1px solid #c8d7ce;background:#f7faf8;border-radius:10px;padding:10px 8px;display:flex;align-items:center;gap:7px;font-weight:650;font-size:13px;min-width:0}
.choice-line input,.option-check input{accent-color:#137355;width:19px;height:19px;flex-shrink:0}
.choice-line span{overflow-wrap:anywhere}
.form-label{font-size:14px;font-weight:750;margin-top:12px;margin-bottom:5px}
.option-check{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:#3a5f4e}
.text-control{background:none;border:0;color:#166951;font-size:12px;padding:8px 0;text-align:left;text-decoration:underline}
@media(max-height:650px){.count-page{gap:4px}.quick-line{padding:4px 7px}.huge-counter>strong{font-size:clamp(45px,15vw,75px)}.count-footnote{display:none}.count-controls>button{padding:8px 4px;min-height:40px}}

