*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background-color:#f5f7fa;font-family:Arial,Helvetica,sans-serif}button,input{font-family:inherit}.reader-page{max-width:760px;margin:auto;padding:24px}.reader-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.reader-header h1{color:#2563eb}.reader-card{background:#fff;border-radius:14px;gap:14px;margin-bottom:18px;padding:22px;display:grid;box-shadow:0 4px 18px #00000012}.mode-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mode-grid button,.reader-card>button,.boleto-preview button{cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:12px}.mode-grid .selected,.primary{color:#fff;background:#2563eb!important;border-color:#2563eb!important}.code-input{border:1px solid #cbd5e1;border-radius:8px;padding:14px;font-size:16px}.camera{background:#0f172a;border-radius:10px;width:100%;max-height:280px}.hint{color:#475569}.feedback{border-radius:8px;padding:10px}.error{color:#991b1b;background:#fee2e2}.success{color:#166534;background:#dcfce7}.boleto-preview{border-top:1px solid #e2e8f0;gap:10px;padding-top:16px;display:grid}@media (width<=540px){.mode-grid{grid-template-columns:1fr}.reader-header{align-items:flex-start;gap:10px}}.summary-heading,.saved-item,.date-groups>div{justify-content:space-between;align-items:center;gap:16px;display:flex}.summary-heading>strong{color:#166534;font-size:28px}.summary-heading p,.saved-item span{color:#64748b;margin-top:4px}.date-groups{border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;gap:8px;padding:12px 0;display:grid}.saved-list{gap:8px;display:grid}.saved-item{border-bottom:1px solid #e2e8f0;padding:10px 0}.saved-item>div{display:grid}.saved-item>.status-ok,.saved-item>.status-warning{margin:0;font-weight:600}.status-ok{color:#166534!important}.status-warning{color:#b45309!important}@media (width<=540px){.summary-heading{align-items:flex-start}.summary-heading>strong{font-size:22px}.saved-item{align-items:flex-start}}.session-actions{justify-content:flex-end;display:flex}.session-actions button,.reopen-button{cursor:pointer;border:1px solid #2563eb;border-radius:8px;padding:10px 14px}.finish-button{color:#b91c1c;background:#fff;border-color:#b91c1c!important}.history-list{display:grid}.history-item{border-bottom:1px solid #e2e8f0;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 0;display:grid}.history-main{text-align:left;cursor:pointer;color:#1e293b;background:0 0;border:0;gap:4px;display:grid}.history-main span,.status-neutral{color:#64748b}.status-neutral,.history-item>.status-ok{font-weight:600}.reopen-button{color:#1d4ed8;background:#eff6ff}@media (width<=540px){.history-item{grid-template-columns:minmax(0,1fr) auto}.history-item .reopen-button{grid-column:1/-1}.session-actions button{width:100%}}.login-page{background:#f5f7fa;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:32px;box-shadow:0 8px 30px #0000001a}.login-card h1{text-align:center;color:#2563eb;margin-bottom:8px}.subtitle{text-align:center;color:#666;margin-bottom:32px}.login-form{flex-direction:column;display:flex}.login-form label{margin-bottom:6px;font-weight:600}.login-form input{border:1px solid #ccc;border-radius:8px;width:100%;margin-bottom:20px;padding:14px;font-size:16px}.login-form input:focus{border-color:#2563eb;outline:none}.login-primary,.login-secondary{cursor:pointer;border-radius:8px;width:100%;padding:14px;font-size:16px;font-weight:600}.login-primary{color:#fff;background:#2563eb;border:none}.login-secondary{color:#2563eb;background:#fff;border:1px solid #2563eb;margin-top:12px}.login-primary:disabled{cursor:wait;opacity:.7}.login-message{text-align:center;color:#b91c1c;margin-top:14px;font-size:14px}.cadastro-page{background:#f5f7fa;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.cadastro-card{background:#fff;border-radius:16px;width:100%;max-width:400px;padding:32px;box-shadow:0 8px 30px #0000001a}.cadastro-card h1{text-align:center;color:#2563eb;margin-bottom:8px}.cadastro-form{flex-direction:column;display:flex}.cadastro-form label{margin-bottom:6px;font-weight:600}.cadastro-form input{border:1px solid #ccc;border-radius:8px;width:100%;margin-bottom:20px;padding:14px;font-size:16px}.cadastro-form input:focus{border-color:#2563eb;outline:none}.button-primary{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;width:100%;padding:14px;font-size:16px;font-weight:600}.button-primary:disabled{cursor:wait;opacity:.7}.form-message{text-align:center;margin:16px 0 0;font-size:14px}.form-message.error{color:#b91c1c}.form-message.success{color:#15803d}.back-login{color:#2563eb;cursor:pointer;background:0 0;border:none;width:100%;margin-top:16px;font-size:15px}.app-shell,.wide-page{color:#0f172a;background:#fff;min-height:100vh}.app-shell{padding-bottom:48px}.brand-header{color:#081225;background:#3b82f6;border-radius:0 0 28px 28px;align-items:center;gap:14px;min-height:128px;padding:30px max(20px,50% - 680px);display:flex}.brand-header h1{font-size:22px}.brand-header p{margin-top:3px}.brand-header>button{cursor:pointer;background:0 0;border:0;margin-left:auto}.brand-mark,.scan-icon{color:#fff;background:#ffffff20;border-radius:10px;place-items:center;width:44px;height:44px;font-size:26px;display:grid}.mode-panel,.recent-section{width:min(1376px,100% - 40px);margin:0 auto}.mode-panel{background:#fff;border:1px solid #dbe1e8;border-radius:16px;margin-top:-16px;padding:24px 20px 20px;box-shadow:0 8px 20px #0f172a18}.mode-panel>h2,.recent-section h2,.bills-section h2{text-transform:uppercase;color:#536174;margin-bottom:18px;font-size:15px}.mode-option{text-align:left;cursor:pointer;background:#fff;border:2px solid #d8dde4;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;width:100%;min-height:90px;margin-bottom:12px;padding:16px;display:grid}.mode-option.active{background:#f8fafc;border-color:#172033;box-shadow:0 3px 8px #0f172a16}.mode-option strong,.mode-option small{display:block}.mode-option strong{font-size:17px}.mode-option small{color:#657187;margin-top:6px;font-size:15px}.mode-option i{opacity:0;border:6px solid #f59e0b;border-radius:50%;width:20px;height:20px}.mode-option.active i{opacity:1}.mode-icon{color:#fff;background:#14b8a6;border-radius:12px;place-items:center;width:52px;height:52px;font-size:25px;display:grid;box-shadow:0 4px 8px #0f172a20}.mode-icon.ignorar_data{background:#4f6df5}.mode-icon.agrupar_por_data{background:#8b3ff0}.date-choice{align-items:center;gap:12px;margin:4px 0 14px;font-weight:600;display:flex}.date-choice input{border:1px solid #cbd5e1;border-radius:8px;padding:9px}.start-button{color:#fff!important;background:#3b82f6!important;border:0!important}.mode-panel>.start-button{cursor:pointer;border-radius:12px;width:100%;padding:14px;font-size:16px;font-weight:700}.recent-section{margin-top:28px}.section-title{justify-content:space-between;align-items:center;display:flex}.section-title h2{color:#e68300}.section-title button,.back-link{cursor:pointer;color:#475569;background:0 0;border:0}.session-rows{gap:10px;display:grid}.session-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #dbe1e8;border-radius:14px;justify-content:space-between;align-items:center;width:100%;padding:18px;display:flex}.session-row span{gap:6px;display:grid}.session-row>span:first-child strong{color:#ef4444}.session-row small{color:#64748b}.row-total{text-align:right}.row-total>strong{font-size:17px}.row-total>small{background:#f1f5f9;border-radius:10px;justify-self:end;padding:2px 9px}.empty{color:#64748b;text-align:center;padding:20px}.wide-page{padding:28px 20px}.wide-page>h1{margin-top:16px;font-size:22px}.page-subtitle{color:#64748b;margin:6px 0 14px}.history-total,.total-banner{color:#fff;background:#3b82f6;border-radius:14px;margin:12px 0;padding:20px 18px;display:grid}.history-total strong,.total-banner strong{margin:4px 0;font-size:28px}.history-total span,.total-banner span{opacity:.8}.history-total{min-height:146px}.session-top{justify-content:space-between;align-items:center;display:flex}.outline-button{cursor:pointer;background:#fff;border:1px solid #d6dce4;border-radius:8px;padding:9px 14px}.session-page>h1{margin-bottom:18px}.segmented{background:#f1f3f6;border-radius:10px;grid-template-columns:repeat(3,1fr);gap:4px;margin:12px 0;padding:3px;display:grid}.segmented.two{grid-template-columns:1fr 1fr}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:8px;padding:10px}.segmented button.active{background:#fff;box-shadow:0 1px 3px #0f172a18}.scan-zone{text-align:center;border:1px dashed #9bc2ff;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:184px;padding:26px;display:flex}.scan-zone .scan-icon{color:#60a5fa;background:#eff6ff}.scan-zone span{color:#64748b}.scan-zone input{border:1px solid #cbd5e1;border-radius:8px;width:min(520px,100%);padding:11px}.scan-zone video{background:#111827;border-radius:8px;width:min(520px,100%);max-height:260px}.ui-error,.ui-success{border-radius:8px;margin:10px 0;padding:10px}.ui-error{color:#991b1b;background:#fee2e2}.ui-success{color:#166534;background:#dcfce7}.confirm-strip{border:1px solid #dbe1e8;border-radius:10px;align-items:center;gap:10px;margin-top:12px;padding:14px;display:flex}.confirm-strip span{margin-right:auto;display:grid}.confirm-strip small{color:#64748b}.confirm-strip button{cursor:pointer;background:#fff;border:1px solid #dbe1e8;border-radius:7px;padding:9px 12px}.bills-section{margin-top:20px}.bill-list{border:1px solid #dbe1e8;border-radius:14px;padding:0 16px}.bill-row{border-bottom:1px solid #e5e7eb;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:14px 0;display:grid}.bill-row:last-child{border:0}.bill-row>span:first-child{gap:3px;display:grid}.bill-row small{color:#64748b}.pill{border-radius:10px;padding:3px 9px;font-size:12px}.pill.success{color:#047857;background:#d1fae5}.pill.warning{color:#92400e;background:#fef3c7}.delete-button{color:#ef4444;cursor:pointer;background:0 0;border:0;font-size:18px}@media (width<=600px){.brand-header{min-height:112px;padding:22px 18px}.mode-panel,.recent-section{width:calc(100% - 24px)}.mode-panel{padding:18px 12px}.mode-option{grid-template-columns:auto 1fr;gap:12px}.mode-option i{display:none}.mode-option small{font-size:13px}.session-row{align-items:flex-start}.confirm-strip{flex-direction:column;align-items:stretch}.confirm-strip span{margin:0}.segmented button{font-size:12px}.history-total strong,.total-banner strong{font-size:24px}}.session-row{cursor:default;grid-template-columns:minmax(0,1fr) 52px;padding:0;display:grid;overflow:hidden}.session-open{text-align:left;cursor:pointer;background:#fff;border:0;justify-content:space-between;align-items:center;min-width:0;padding:18px;display:flex}.session-open span{gap:6px;display:grid}.session-open>span:first-child strong{color:#ef4444}.session-open small{color:#64748b}.session-delete{color:#ef4444;cursor:pointer;background:#fff;border:0;border-left:1px solid #eef2f7;align-self:stretch;font-size:20px}.session-delete:hover{background:#fef2f2}.history-heading{justify-content:space-between;align-items:center;display:flex}.clear-history{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fecaca;border-radius:8px;padding:9px 12px}@media (width<=600px){.session-row{align-items:stretch}.session-open{align-items:flex-start;padding:14px}.session-open .row-total{margin-left:8px}}.export-actions{justify-content:flex-end;gap:8px;margin:-2px 0 14px;display:flex}.export-actions button{cursor:pointer;background:#fff;border:1px solid #d6dce4;border-radius:8px;padding:9px 13px}.confirmation-panel{background:#ecfdf5;border:1px solid #86efac;border-radius:16px;margin-top:14px;padding:20px}.confirmation-title{border-bottom:1px solid #d1fae5;justify-content:space-between;align-items:flex-start;padding-bottom:16px;display:flex}.confirmation-title>span{gap:8px;display:grid}.confirmation-title strong{font-size:27px}.confirmation-title small{color:#526478;text-transform:uppercase}.confirmation-grid{grid-template-columns:1fr 1fr;gap:13px;margin-top:16px;display:grid}.confirmation-grid label{color:#526478;gap:6px;display:grid}.confirmation-grid label.full{grid-column:1/-1}.confirmation-grid input{background:#ffffffa6;border:1px solid #cbd5e1;border-radius:9px;width:100%;padding:12px 14px;font-size:15px}.confirmation-grid input:focus{border-color:#0000;outline:2px solid #60a5fa}.confirmation-actions{grid-template-columns:1fr auto;gap:10px;margin-top:18px;display:grid}.confirmation-actions button{cursor:pointer;background:#fff;border:1px solid #d6dce4;border-radius:9px;padding:12px 18px}.confirmation-actions button:nth-child(3){color:#92400e;grid-column:1/-1}@media (width<=600px){.export-actions{grid-template-columns:1fr 1fr 1fr;display:grid}.confirmation-grid{grid-template-columns:1fr}.confirmation-grid label.full{grid-column:auto}.confirmation-actions{grid-template-columns:1fr}.confirmation-actions button:nth-child(3){grid-column:auto}}.bill-details{gap:10px;min-width:0;display:grid}.bill-main{gap:3px;display:grid}.bill-metadata{flex-wrap:wrap;gap:10px 24px;display:flex}.bill-metadata span{color:#334155;gap:2px;display:grid}.bill-metadata small{text-transform:uppercase;color:#94a3b8;font-size:11px}@media (width<=600px){.bill-row{grid-template-columns:minmax(0,1fr) auto}.bill-row .delete-button{grid-column:2}.bill-metadata{grid-template-columns:1fr 1fr;gap:8px;display:grid}}.bill-row{grid-template-columns:minmax(0,1fr) auto}.bill-actions{align-items:center;gap:8px;display:flex}.bill-actions button{cursor:pointer;background:#fff;border-radius:8px;padding:8px 11px}.paid-button{color:#047857;border:1px solid #86efac}.paid-button.active{background:#d1fae5}.delete-bill-button,.remove-preview{color:#dc2626;border:1px solid #fecaca!important}@media (width<=600px){.bill-row{grid-template-columns:1fr}.bill-actions{justify-content:stretch}.bill-actions button{flex:1}.bill-metadata{grid-template-columns:1fr 1fr;gap:8px;display:grid}}.camera-preview{aspect-ratio:16/9;background:#111827;border-radius:12px;width:min(960px,100%);position:relative;overflow:hidden}.camera-preview video{object-fit:cover;border-radius:0;width:100%;height:100%;max-height:none}.camera-preview:not(.active){display:none}.camera-guide{border:3px solid #fff;border-radius:8px;height:28%;position:absolute;top:50%;left:3%;right:3%;transform:translateY(-50%);box-shadow:0 0 0 999px #00000042}.camera-guide:after{content:"";background:#ef4444;height:2px;position:absolute;top:50%;left:2%;right:2%;box-shadow:0 0 8px #ef4444}@media (width<=600px){.wide-page.session-page{padding-left:8px;padding-right:8px}.scan-zone{padding:12px 4px}.camera-preview{aspect-ratio:auto;border-radius:10px;width:100%;height:clamp(420px,65dvh,680px)}.camera-guide{height:20%;left:3%;right:3%}}.camera-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.camera-photo-button{cursor:pointer;justify-content:center;align-items:center;display:inline-flex;position:relative}.camera-file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=600px){.camera-actions{width:100%}.camera-actions>.outline-button{flex:1}}.session-name-choice{gap:7px;margin:16px 0 14px;font-weight:600;display:grid}.session-name-choice input{border:1px solid #cbd5e1;border-radius:9px;width:100%;padding:12px 14px;font-size:15px}.trash-icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.session-delete,.clear-history,.remove-preview,.delete-bill-button{justify-content:center;align-items:center;gap:7px;display:inline-flex}.session-delete .trash-icon{width:21px;height:21px}.barcode-button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:9px;padding:11px 18px;font-weight:700}.camera-scanning{z-index:1000;color:#fff;background:#020617;border:0;border-radius:0;min-height:100dvh;position:fixed;inset:0;overflow:hidden;padding:0!important}.camera-scanning .camera-preview{aspect-ratio:auto;border-radius:0;width:100%;height:100%;position:absolute;inset:0}.camera-scanning>strong{z-index:2;top:max(24px,env(safe-area-inset-top));color:#fff;background:#020617b8;border-radius:10px;padding:10px;position:absolute;left:16px;right:16px}.camera-scanning>span{z-index:2;top:max(82px,calc(env(safe-area-inset-top) + 58px));color:#e2e8f0;position:absolute;left:16px;right:16px}.camera-scanning .camera-actions{z-index:2;left:16px;right:16px;bottom:max(20px,env(safe-area-inset-bottom));background:#020617b8;border-radius:12px;padding:12px;position:absolute}.camera-scanning .barcode-button{background:#ef4444;width:min(420px,100%)}.camera-scanning .camera-photo-button{display:none}.camera-scanning .camera-guide{border-width:3px;height:22%;left:5%;right:5%}@media (width<=600px){.camera-actions .barcode-button,.camera-actions .camera-photo-button{flex:1}.camera-scanning .camera-actions{width:auto}.camera-scanning .barcode-button{flex:1}}.admin-page{color:#0f172a;background:#f8fafc;min-height:100vh;padding:28px max(20px,50% - 550px)}.admin-page>header{align-items:center;gap:20px;display:flex}.admin-page>header button{color:#475569;cursor:pointer;background:0 0;border:0}.admin-page>header p{color:#64748b;margin-top:4px}.admin-error{color:#991b1b;background:#fee2e2;border-radius:8px;margin:18px 0;padding:12px}.admin-summary{grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0;display:grid}.admin-summary>div{background:#fff;border:1px solid #e2e8f0;border-radius:10px;gap:4px;padding:18px;display:grid}.admin-summary strong{color:#2563eb;font-size:26px}.admin-summary span{color:#64748b}.client-list{gap:10px;display:grid}.client-list article{background:#fff;border:1px solid #e2e8f0;border-radius:10px;grid-template-columns:minmax(0,1fr) 160px 180px;align-items:center;gap:16px;padding:18px;display:grid}.client-info{gap:4px;display:grid}.client-info span,.client-info small,.admin-control span{color:#64748b}.admin-control{gap:5px;font-size:13px;display:grid}.admin-control select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:9px}@media (width<=700px){.admin-summary,.client-list article{grid-template-columns:1fr}.admin-page{padding:20px 14px}}
