:root{--green:#0b6b3a;--green2:#14945a;--navy:#17243a;--ink:#18202b;--muted:#6f7a88;--line:#e7ebef;--bg:#f5f7f8;--white:#fff;--shadow:0 12px 35px rgba(23,36,58,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100% - 1180px)/2))}.brand{display:flex;gap:11px;align-items:center}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:900;font-size:21px}.brand strong{display:block;font-size:16px;letter-spacing:.8px}.brand span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.state-pill{background:#edf8f1;color:var(--green);padding:9px 13px;border-radius:999px;font-weight:800;font-size:13px}.container{max-width:1180px;margin:auto;padding:38px 20px 70px}.hero{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:25px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:900;color:var(--green);margin:0 0 8px}.hero h1{font-size:clamp(34px,5vw,60px);line-height:.98;margin:0;letter-spacing:-2px}.hero h1 span{color:var(--green)}.lead{color:var(--muted);max-width:620px;font-size:16px;line-height:1.55}.hero-card{min-width:160px;background:var(--green);color:#fff;border-radius:24px;padding:22px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow)}.hero-number{font-size:52px;font-weight:900;line-height:1}.hero-card small{display:block;opacity:.8;margin-top:3px}.notice{background:#fffdf2;border:1px solid #f1e7bd;border-radius:14px;padding:14px 16px;color:#6d5b18;font-size:13px;line-height:1.5;margin-bottom:22px}.workspace{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;gap:18px;align-items:start}.steps,.panel,.summary{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.steps{padding:10px}.step{width:100%;border:0;background:transparent;text-align:left;padding:13px 12px;border-radius:13px;display:flex;gap:10px;align-items:center;color:var(--muted)}.step .dot{width:27px;height:27px;border-radius:50%;border:1px solid #d9dee4;display:grid;place-items:center;font-size:11px;font-weight:900;flex:none}.step b{display:block;color:var(--ink);font-size:12px}.step small{font-size:10px}.step.active{background:#edf8f1}.step.active .dot{background:var(--green);color:#fff;border-color:var(--green)}.step.done .dot{background:#dff3e7;color:var(--green);border-color:#bfe5cd}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start}.panel h2{font-size:25px;margin:0 0 16px}.link-btn{border:0;background:none;color:var(--muted);font-size:12px}.search{height:52px;border:1px solid #dfe4e8;border-radius:13px;display:flex;align-items:center;padding:0 15px;gap:9px}.search span{font-size:25px;color:var(--muted)}.search input{border:0;outline:0;width:100%;font-size:15px}.filters{display:flex;gap:7px;margin:13px 0}.filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:11px;color:var(--muted)}.filter.active{border-color:#bde3ca;background:#edf8f1;color:var(--green);font-weight:800}.results{display:grid;gap:9px;max-height:430px;overflow:auto}.candidate{border:1px solid var(--line);border-radius:15px;padding:11px;display:flex;align-items:center;gap:12px}.candidate:hover{border-color:#a9d9ba}.avatar{width:48px;height:48px;border-radius:50%;background:#eaf0ec;display:grid;place-items:center;color:var(--green);font-weight:900;overflow:hidden;flex:none}.avatar img{width:100%;height:100%;object-fit:cover}.candidate-main{min-width:0;flex:1}.candidate-name{font-weight:850;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.candidate-meta{font-size:11px;color:var(--muted);margin-top:3px}.candidate-number{font-size:20px;font-weight:950;color:var(--green);letter-spacing:1px}.add{border:0;background:var(--green);color:#fff;border-radius:10px;padding:9px 10px;font-weight:800;font-size:11px}.selected .add{background:#e7f6ed;color:var(--green)}.empty{padding:30px 10px;text-align:center;color:var(--muted);font-size:13px}.hidden{display:none!important}.actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.primary,.secondary,.generate{border:0;border-radius:12px;padding:12px 16px;font-weight:850}.primary{background:var(--green);color:#fff}.whatsapp{border:0;border-radius:12px;padding:12px 16px;font-weight:850;background:#25d366;color:#fff}.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.summary{padding:18px;position:sticky;top:15px}.summary-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.summary h3{margin:0;font-size:16px}.summary-head span{font-size:11px;color:var(--green);font-weight:900}.summary-row{display:flex;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid #f0f2f4}.summary-row:last-child{border-bottom:0}.summary-n{width:23px;height:23px;border-radius:7px;background:#f0f4f1;color:var(--green);display:grid;place-items:center;font-size:10px;font-weight:900}.summary-row div{flex:1}.summary-row b{display:block;font-size:11px}.summary-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.summary-number{font-weight:900;color:var(--green);font-size:13px}.generate{width:100%;background:var(--navy);color:#fff;margin-top:14px}.final{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:var(--shadow)}.final-head{display:flex;justify-content:space-between;align-items:center}.final h2{margin:0;font-size:30px}.final-head p:not(.eyebrow){color:var(--muted);margin:6px 0 0}.ticket{max-width:480px;margin:22px auto;background:#fff;border:1px solid #dfe4e8;border-radius:16px;padding:22px;box-shadow:0 10px 30px #0000000f}.ticket-title{text-align:center;border-bottom:2px solid var(--green);padding-bottom:13px;margin-bottom:6px}.ticket-title b{display:block;letter-spacing:1px}.ticket-title small{color:var(--muted)}.ticket-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px dashed #dfe4e8}.ticket-row:last-child{border-bottom:0}.ticket-photo{width:42px;height:42px;border-radius:50%;background:#edf1ee;overflow:hidden;display:grid;place-items:center;font-weight:900;color:var(--green);flex:none}.ticket-photo img{width:100%;height:100%;object-fit:cover}.ticket-info{flex:1}.ticket-info small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px}.ticket-info b{font-size:12px}.ticket-number{font-size:22px;font-weight:950;color:var(--green);letter-spacing:1px}.final-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.source-note{text-align:center;color:var(--muted);font-size:10px;margin:18px 0 0}footer{border-top:1px solid var(--line);background:#fff;padding:25px 20px;color:var(--muted);font-size:11px;display:flex;justify-content:space-between;gap:15px;max-width:100%}footer a{color:var(--green)}@media(max-width:900px){.workspace{grid-template-columns:1fr}.steps{display:flex;overflow:auto}.step{min-width:145px}.summary{position:static}.hero-card{display:none}}@media(max-width:600px){.container{padding:25px 12px 45px}.topbar{padding:0 13px}.hero h1{font-size:39px}.workspace{gap:11px}.panel,.summary,.final{border-radius:15px;padding:16px}.candidate-number{font-size:17px}.ticket{padding:15px}.final-actions button{flex:1;min-width:120px}footer{flex-direction:column}}@media print{@page{size:105mm 148.5mm;margin:0}html,body{width:105mm!important;min-width:105mm!important;margin:0!important;padding:0!important;background:#fff!important}.topbar,.hero,.notice,.workspace,.final-head,.final-actions,.source-note,footer{display:none!important}.container{width:105mm!important;max-width:105mm!important;margin:0!important;padding:0!important}.final{display:block!important;width:105mm!important;height:148.5mm!important;margin:0!important;border:0!important;box-shadow:none!important;padding:0!important;background:#fff!important}.ticket{width:105mm!important;height:148.5mm!important;max-width:none!important;margin:0!important;padding:7mm!important;box-shadow:none!important;border:.35mm solid #222!important;border-radius:2mm!important;overflow:hidden!important}.ticket-title{padding-bottom:3mm!important;margin-bottom:1mm!important;border-bottom:.5mm solid var(--green)!important}.ticket-title b{font-size:15pt!important;letter-spacing:.6px!important}.ticket-title small{font-size:8pt!important}.ticket-row{gap:2.5mm!important;padding:3.2mm 0!important;min-height:18mm!important;align-items:center!important}.ticket-photo{width:13mm!important;height:13mm!important}.ticket-info{min-width:0!important;overflow:hidden!important;flex:1 1 auto!important}.ticket-info small{font-size:6.5pt!important;letter-spacing:.2px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.ticket-info b{font-size:9pt!important;line-height:1.1!important;max-width:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.ticket-number{font-size:16pt!important;min-width:19mm!important;width:19mm!important;letter-spacing:.2px!important;text-align:center!important}.confirm-badge{min-width:22mm!important;width:22mm!important;height:12mm!important;border-radius:2mm!important;border-width:.35mm!important;font-size:6.5pt!important;line-height:1!important}.braille-dots{font-size:5pt!important;letter-spacing:1mm!important;line-height:5pt!important;margin-top:.5mm!important}.ticket-source{display:block!important;font-size:5.5pt!important;margin-top:1.5mm!important;padding-top:1.5mm!important}}.summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.summary-actions button{width:100%;padding:9px 7px;font-size:10px}.danger{border:1px solid #efcaca;background:#fff5f5;color:#a33;border-radius:12px;font-weight:850}.modal{position:fixed;inset:0;background:#0000007a;display:grid;place-items:center;padding:16px;z-index:100}.modal-card{width:min(520px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:20px;padding:20px;box-shadow:0 25px 70px #00000040}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-head h2{margin:0;font-size:24px}.modal-note{color:var(--muted);font-size:12px;line-height:1.5}.urna-list{border:1px solid var(--line);border-radius:15px;overflow:hidden;margin-top:15px}.urna-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px;border-bottom:1px solid var(--line)}.urna-row:last-child{border-bottom:0}.urna-cargo{font-size:12px;color:var(--ink)}.urna-row strong{font-size:24px;color:var(--green);letter-spacing:1px}@media(max-width:600px){.summary-actions{grid-template-columns:1fr 1fr}.modal-card{padding:16px}}.data-status{max-width:1180px;margin:0 auto 12px;padding:8px 12px;text-align:center;color:var(--muted);font-size:11px}.status-retry{border:0;background:transparent;color:var(--green);font-weight:850;text-decoration:underline;padding:2px 5px}.retry{margin-top:10px;border:0;background:var(--green);color:#fff;border-radius:9px;padding:9px 12px;font-weight:800}.confirm-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:76px;height:43px;border-radius:9px;background:linear-gradient(#1ab363,#0b8b4c);border:2px solid #08703e;color:#fff;font-size:10px;font-weight:950;letter-spacing:.3px;box-shadow:inset 0 1px #ffffff40,0 2px 4px #00000029;flex:none}.braille-dots{display:block;font-size:8px;letter-spacing:2px;line-height:8px;margin-top:3px;opacity:.9}.ticket-source{border-top:1px solid #e7ebef;margin-top:10px;padding-top:10px;text-align:center;color:#6f7a88;font-size:8px}.ticket-row{gap:9px}.ticket-info{min-width:0}.ticket-info b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ticket-number{min-width:48px;text-align:right}@media(max-width:600px){.confirm-badge{min-width:68px;height:40px;font-size:9px}.ticket-number{font-size:20px;min-width:42px}.ticket-row{gap:7px}.data-status{margin-bottom:8px}}@media print{.ticket-source{display:block}}
