@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{--yellow:#f5e529;--black:#151515;--muted:#686868;--line:#dcdcd5;--bg:#f4f4ef}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--black);font-family:Inter,Arial,sans-serif;font-size:16px}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8c7400;outline-offset:4px}header{height:108px;border-bottom:1px solid var(--line);max-width:1240px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 32px}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:19px}.ninja{font-weight:900;font-size:24px;line-height:.85;letter-spacing:-1.5px}.brandline{height:37px;width:1px;background:#777}.artes{font-size:31px;font-weight:900;line-height:.8;letter-spacing:-2px}.artes span{display:block;font-size:10px;letter-spacing:4px;margin-top:5px}.edition{font-size:13px;letter-spacing:2px}.edition b{background:var(--yellow);padding:7px;margin-left:8px}main{max-width:1176px;margin:auto;padding:40px 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;margin:0 0 14px}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:82px;line-height:.91;letter-spacing:-2px;text-transform:uppercase;margin:0 0 20px;font-weight:800}h1 span{background:var(--yellow);box-shadow:8px 0 var(--yellow),-3px 0 var(--yellow)}.intro>div>p:last-child{color:var(--muted);margin:0;line-height:1.6}.stamp{border:2px solid var(--black);width:143px;height:150px;transform:rotate(8deg);font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;font-weight:700;line-height:.8;text-align:center;padding-top:20px;margin-right:40px;position:relative}.stamp b{font-size:88px}.stamp span{position:absolute;right:-27px;top:-20px;background:var(--yellow);font:70px Arial;line-height:1;border-radius:50%}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:40px;align-items:start}.state-panel{background:var(--black);color:white;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center}.state-panel label,.section-title h2{font-weight:700;font-size:18px;margin:0}.step{font-size:12px;color:#79796b;border:1px solid #b6b6a7;padding:5px;vertical-align:middle;margin-right:10px}.state-panel .step{color:var(--yellow);border-color:#575749}.state-panel select{width:100%;padding:13px;border:0;border-radius:0;background:#fff;color:#151515;font-size:15px}.state-panel p{grid-column:1/-1;margin:0;color:#c3c3b5;font-size:13px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:30px 0 20px;gap:10px}.section-title>span{font-size:12px;color:var(--muted)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.candidate-card{border:1px solid var(--line);background:#fff;padding:20px;min-width:0;position:relative}.candidate-card.selected{border-color:#898a61}.card-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px}.card-title label{font-weight:700;font-size:15px}.ordinal{font-family:'Barlow Condensed',Impact,sans-serif;font-size:24px;color:#b2b2a6}.number-input{width:100%;border:0;border-bottom:2px solid #202020;background:var(--bg);font-weight:800;font-size:30px;letter-spacing:8px;padding:12px 9px;font-variant-numeric:tabular-nums;border-radius:0}.number-input::placeholder{color:#b9b9ad;font-size:24px}.digits{font-size:12px;color:#777;margin:7px 0 12px}.candidate-info{min-height:55px;display:flex;align-items:center;gap:9px;margin:12px 0}.avatar{width:37px;height:46px;background:#eeeeE8;object-fit:cover;flex-shrink:0}.candidate-info b{font-size:13px;line-height:1.4;display:block}.candidate-info small{font-size:12px;color:#666;display:block;margin-top:3px}.empty-label{font-size:13px;color:#777;line-height:1.4}.card-actions{display:flex;flex-wrap:wrap;gap:6px}.card-actions button{background:white;border:1px solid #deded7;padding:7px 9px;font-size:12px}.card-actions button.active{background:var(--black);color:var(--yellow);border-color:var(--black)}.card-actions .search-button{flex-basis:100%;margin-top:4px;font-weight:600;border:0;background:#f0f0e9;padding:10px}.hint{font-size:13px;color:#666;line-height:1.6;margin-top:18px}aside{position:sticky;top:24px}.preview-wrap{background:#e6e6dc;padding:20px}.preview-label{display:flex;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:1px;margin:0 0 16px}#paper{background:#fff;box-shadow:0 5px 14px #0000000b}.paper-top{background:var(--yellow);display:flex;align-items:center;justify-content:space-between;padding:21px 19px;font-family:'Barlow Condensed',Impact,sans-serif;font-size:34px;line-height:.95;font-weight:700}.paper-year{font-size:36px;line-height:.8;font-weight:800;border-left:1px solid #888531;padding-left:12px}.paper-state{background:var(--black);color:white;font-size:10px;letter-spacing:1px;display:flex;justify-content:space-between;padding:9px 17px}.preview-row{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px dashed #ccc;min-height:78px}.preview-row .avatar{width:35px;height:43px}.preview-detail{min-width:0;flex:1}.preview-detail small{font-size:10px;text-transform:uppercase;color:#666;display:block;margin-bottom:4px}.preview-detail b{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:155px}.preview-number{font-size:21px;font-family:'Barlow Condensed',Impact,sans-serif;letter-spacing:1px;font-weight:700}.preview-number.special{font-size:12px;letter-spacing:0;max-width:65px;text-align:right}.paper-footer{font-size:10px;font-weight:900;display:flex;justify-content:space-between;padding:17px}.primary{border:0;background:var(--yellow);color:var(--black);font-weight:800;padding:17px 20px}.primary:hover:not(:disabled){background:#e5d510}#generate{width:100%;display:flex;justify-content:space-between;margin-top:20px}.aside-note{text-align:center;font-size:12px;color:#666;line-height:1.5;margin:12px 0 0}.notice{border-top:1px solid var(--line);margin-top:38px;padding-top:25px;display:flex;gap:16px;align-items:center}.notice>span{font-size:44px}.notice p{margin:0;font-size:14px;line-height:1.7;color:#555}.notice b{color:#151515}footer{max-width:1176px;margin:0 auto;padding:22px 0 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:35px}footer>span{font-weight:800;font-size:12px;white-space:nowrap}footer p{font-size:11px;color:#727268;line-height:1.7;margin:0}a{color:inherit;text-underline-offset:3px}dialog{border:0;padding:28px;width:min(540px,calc(100% - 24px));max-height:90dvh;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.dialog-heading h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:34px;line-height:1.1;margin:0}.dialog-heading .eyebrow{font-size:10px}.close{font-size:30px;border:0;background:none;line-height:1;padding:4px}#query{width:100%;padding:14px;border:1px solid #999;border-radius:0}#result-count,#export-status{font-size:13px;color:#666;line-height:1.5}#results{max-height:50dvh;overflow:auto}.result{display:flex;align-items:center;gap:12px;border:0;border-bottom:1px solid #ddd;padding:13px 4px;background:white;width:100%;text-align:left}.result:hover{background:#f7f6dc}.result .text{flex:1;font-size:14px}.result small{display:block;font-size:12px;margin-top:5px;color:#666}.result strong{font-size:23px;font-weight:800}.result:disabled{opacity:.5}#export-image{width:100%;max-height:55dvh;object-fit:contain;background:#e6e6dc}.export-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.export-actions button{flex:1;padding:13px;border:1px solid #aaa;font-size:14px;font-weight:700}.export-actions .primary{flex-basis:100%;border:0}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#151515;color:white;padding:15px 20px;max-width:90vw;z-index:10;display:none;font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1240px){main,footer{margin-left:32px;margin-right:32px}.workspace{gap:24px;grid-template-columns:minmax(0,1fr) 320px}.candidate-card{padding:16px}}@media(max-width:900px){.workspace{grid-template-columns:1fr 300px}.fields{grid-template-columns:1fr}.state-panel{grid-template-columns:1fr}.section-title>span{display:none}}@media(max-width:650px){header{height:82px;padding:0 20px}.ninja{font-size:21px}.artes{font-size:28px}.edition{font-size:10px;letter-spacing:1px}main{padding-top:28px;margin:0 20px}.intro{margin-bottom:28px}.intro .eyebrow{font-size:10px;letter-spacing:1px}h1{font-size:65px}.intro>div>p:last-child{font-size:14px;max-width:245px}.stamp{width:75px;height:91px;font-size:20px;margin:0 8px 30px 5px;flex-shrink:0;padding-top:14px}.stamp b{font-size:49px}.stamp span{font-size:37px;right:-12px;top:-15px}.workspace{grid-template-columns:1fr;gap:22px}.state-panel{padding:20px}.fields{grid-template-columns:1fr 1fr;gap:10px}.candidate-card{padding:13px}.card-title label{font-size:13px}.ordinal{font-size:20px}.number-input{font-size:26px;letter-spacing:5px}.number-input::placeholder{font-size:20px}.card-actions button{font-size:11px;padding:7px}.candidate-info b{font-size:12px}.candidate-info .avatar{width:29px;height:36px}.candidate-info{min-height:65px}.preview-wrap{max-width:400px;margin:auto}aside{position:static}.notice{margin-top:28px}footer{margin:0 20px;display:block}footer p{margin-top:14px}.section-title h2{font-size:17px}}@media(max-width:350px){.fields{grid-template-columns:1fr}.stamp{display:none}}@media print{body>*{display:none!important}body>main{display:block!important;margin:0;padding:0}main>*{display:none!important}main>.workspace{display:block!important}.workspace>.builder{display:none!important}.workspace>aside{display:block!important;width:85mm;position:static}.preview-wrap{padding:0;background:white}.preview-wrap>*{display:none!important}.preview-wrap>#paper{display:block!important;box-shadow:none;border:1px solid #aaa}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}dialog{display:none!important}}
/* NINJA — identidade editorial em preto e branco */
:root{--yellow:#ededed;--bg:#fff;--line:#e8e8e8;--muted:#707070}
header{height:102px}.logo-ninja{display:block;width:78px;height:auto;flex-shrink:0}.logo-elections{display:block;width:205px;height:auto;filter:grayscale(1) contrast(6);flex-shrink:0}header>.logo-elections{width:205px}
main{padding-top:42px}.intro{margin-bottom:36px}.intro .eyebrow{letter-spacing:2px;color:#777;font-weight:600;font-size:11px;margin-bottom:15px}h1{font-family:Inter,Arial,sans-serif;text-transform:none;font-size:60px;letter-spacing:-3.5px;line-height:1.08;font-weight:800;margin-bottom:17px}.intro>div>p:last-child{font-size:15px}
.state-panel{background:#f7f7f7;color:#151515;border:1px solid var(--line)}.state-panel .step{color:#777;border:0;padding-left:0}.state-panel p{color:#707070}.state-panel select{border:1px solid #ddd}.step{border:0;padding-left:0;color:#999}.candidate-card{border-color:#e8e8e8}.candidate-card.selected{border-color:#b5b5b5}.ordinal{font-family:Inter,Arial,sans-serif;font-size:15px;color:#aaa}.number-input{background:#fafafa;border-bottom:1px solid #aaa;font-size:28px}.number-input::placeholder{color:#c6c6c6}.card-actions .search-button{background:#f6f6f6}.card-actions button.active{background:#151515;color:white}.candidate-info .avatar{background:#f4f4f4}.preview-wrap{background:#f7f7f7;padding:20px}#paper{box-shadow:none;border:1px solid #e5e5e5}.paper-top{font-family:Inter,Arial,sans-serif;background:white;line-height:1.05;font-size:25px;font-weight:800;letter-spacing:-1px;padding:24px 17px;gap:12px}.paper-top .logo-ninja{width:44px}.paper-state{background:#f4f4f4;color:#666;font-size:9px}.preview-row{border-bottom:1px solid #ededed}.preview-number{font-family:Inter,Arial,sans-serif;font-size:20px;letter-spacing:-.5px;font-weight:800}.preview-detail small{font-size:9px}.paper-footer{justify-content:center;padding:22px 16px}.paper-footer .logo-elections{width:175px}.primary{background:#151515;color:white}.primary:hover:not(:disabled){background:#333}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-color:#888}.result:hover{background:#f5f5f5}.notice{padding-top:24px;margin-top:36px}.notice p{font-size:13px}footer>.logo-ninja{width:50px;align-self:flex-start}.dialog-heading h2{font-family:Inter,Arial,sans-serif;font-size:28px;font-weight:800;letter-spacing:-1px}#export-image{background:#f7f7f7}
@media(max-width:650px){header{height:82px}.logo-ninja{width:61px}header>.logo-elections{width:163px}main{padding-top:30px}h1{font-size:46px;letter-spacing:-2.5px}.intro>div>p:last-child{max-width:320px;font-size:14px}.intro{margin-bottom:25px}.paper-top .logo-ninja{width:48px}.number-input{font-size:25px}footer>.logo-ninja{margin-bottom:18px}}
@media print{.preview-wrap>#paper{border:1px solid #ddd}.paper-footer .logo-elections{width:175px}}
