:root{--ink:#182622;--muted:#6b7973;--green:#13735b;--lime:#d8f082;--bg:#f3f5f0;--border:#dfe5dd;--red:#ab3434;--amber:#8c620c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button,.button{border:0;border-radius:8px;padding:11px 17px;background:var(--green);color:white;cursor:pointer;text-decoration:none;display:inline-block;font-weight:650}button:hover,.button:hover{filter:brightness(.95)}button:disabled{opacity:.5;cursor:wait}.secondary{background:white;color:var(--ink);border:1px solid var(--border)}.danger{background:#fff1f0;color:var(--red)}.ghost{background:transparent;color:inherit;padding:7px 0}.small{font-size:12px;padding:6px 10px}input,select{width:100%;border:1px solid #cfd8ce;border-radius:7px;padding:10px 12px;background:white;color:var(--ink)}input[type=checkbox]{width:auto;accent-color:var(--green)}label{display:block;font-size:13px;font-weight:600;margin-bottom:13px}label input,label select{margin-top:6px}small,.muted{color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:29px;letter-spacing:-.8px;margin-bottom:5px}h2{font-size:20px;letter-spacing:-.4px}h3{font-size:16px;margin-bottom:10px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--green)}.brand{position:relative;display:flex;align-items:center;justify-content:center;background:var(--lime);color:#173b2e;font-size:30px;font-weight:900;width:52px;height:52px;border-radius:12px}.brand span{position:absolute;font-size:20px;right:3px;bottom:0}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top right,#dcecc7,transparent 55%),var(--bg)}.loginbox{width:min(460px,94vw);background:white;padding:42px;border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 80px #1d382316}.loginbox .brand{margin-bottom:25px}.loginbox h1{font-size:35px;line-height:1.2;margin:12px 0 18px}.loginbox p{color:var(--muted)}.loginbox button{width:100%}.loginbox small{display:block;margin-top:20px;font-size:11px}.sidebar{width:238px;position:fixed;inset:0 auto 0 0;background:#172e25;color:#e5ede7;display:flex;flex-direction:column;padding:30px 21px}.logo{display:flex;gap:12px;align-items:center;margin-bottom:40px;font-size:15px;font-weight:700}.logo .brand{width:44px;height:44px;font-size:27px;flex-shrink:0}.logo small{display:block;font-size:8px;letter-spacing:1.1px;color:#b0c4b6}.logo b{color:var(--lime)}nav{display:grid;gap:8px}nav button{text-align:left;background:transparent;color:#c4d2c9;padding:13px 14px;font-size:14px;font-weight:500}nav button.active{background:#304c3c;color:var(--lime)}.sidebar-foot{margin-top:auto;border-top:1px solid #3c5145;padding-top:20px;font-size:13px}.sidebar-foot small{display:block;color:#a8bbaf}.sidebar-foot button{margin-top:12px;font-size:12px}.workspace{margin-left:238px;padding:30px 38px 50px;max-width:1600px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.top-meta{color:var(--muted);font-size:11px}.dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:5px}.card{background:white;border:1px solid var(--border);border-radius:12px;padding:23px;margin-bottom:20px}.row{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.row>*{flex:1;min-width:140px}.row .actions{flex:0 0 auto}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stat{background:white;border:1px solid var(--border);padding:22px;border-radius:11px}.stat span{display:block;font-size:12px;color:var(--muted)}.stat b{display:block;font-size:34px;line-height:1.4;letter-spacing:-1px}.stat.accent{background:var(--green);color:white;border-color:var(--green)}.stat.accent span{color:#c1e4d5}.tablewrap{overflow:auto;max-height:650px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}th{text-align:left;background:#f5f7f2;color:var(--muted);font-size:10px;letter-spacing:.7px;text-transform:uppercase;position:sticky;top:0}th,td{padding:13px 12px;border-bottom:1px solid #e8ece5}td.wrap{white-space:normal;min-width:200px}td button{margin-right:5px}.pill{display:inline-block;border-radius:20px;padding:4px 9px;background:#e6f2eb;color:var(--green);font-size:10px;font-weight:700}.pill.gray{background:#eef0eb;color:var(--muted)}.pill.red{background:#fbe9e7;color:var(--red)}.pill.amber{background:#fff1d2;color:var(--amber)}.empty{padding:45px 20px;text-align:center;color:var(--muted)}.error{color:var(--red)!important}.notice{background:#edf4df;border:1px solid #d9e9b9;padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:13px}.error.notice{background:#fff2ef;border-color:#eec5be}.heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.heading h2{margin:0}.checklist{max-height:300px;overflow:auto;padding:6px}.checklist label{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);padding:7px;font-weight:400;margin:0}.checklist label input{margin:0}.scanner-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(250px,.7fr);gap:20px}#camera{border-radius:10px;overflow:hidden;min-height:200px;background:#152c23}#camera video{border-radius:10px}.scan-info{background:#e9f1e2;padding:15px;border-radius:8px;margin-bottom:15px;font-weight:600}.result{padding:26px;border-radius:12px;background:#eef1eb;min-height:190px}.result.success{background:#dff4e7;border:2px solid #90c7a3}.result.duplicate{background:#fff3d7;border:2px solid #e4c270}.result.failure{background:#ffe8e5;border:2px solid #e19c92}.result h2{font-size:23px}.result strong{display:block;font-size:21px;margin-bottom:8px}.counter{font-size:28px;font-weight:750}.progress{background:#e7ece4;border-radius:5px;overflow:hidden;height:7px;margin-top:8px}.progress div{height:100%;background:var(--green)}#toast{position:fixed;bottom:25px;right:25px;background:#183e2e;color:white;padding:15px 22px;border-radius:8px;box-shadow:0 10px 30px #0002;max-width:450px;z-index:50}.print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:15px}.badge-card{border:1px dashed #aaa;border-radius:4px;text-align:center;padding:15px;break-inside:avoid;background:white}.badge-card canvas{width:130px;height:130px;image-rendering:pixelated}.badge-card strong{display:block;font-size:14px}.badge-card p{font-size:11px;margin:3px}.badge-card small{font-size:9px}.audit-details{white-space:pre-wrap;font-size:11px;max-width:600px}.count-label{color:var(--green);font-size:12px;margin-bottom:15px}dialog{border:1px solid var(--border);border-radius:12px;max-width:480px;width:90vw;padding:25px}dialog::backdrop{background:#13231966}.check-inline{display:flex;gap:8px;align-items:center}.check-inline input{margin:0}a{color:var(--green)}.mobile-only{display:none}@media(max-width:1000px){.workspace{padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.scanner-layout{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{position:static;width:auto;padding:15px}.logo{margin-bottom:10px}.sidebar nav{display:flex;overflow:auto;gap:5px}.sidebar nav button{white-space:nowrap;padding:8px 11px;font-size:12px}.sidebar-foot{border:0;padding:10px 0 0;display:flex;align-items:center;gap:10px}.sidebar-foot small{display:none}.sidebar-foot button{margin:0 0 0 auto}.workspace{margin:0;padding:20px 15px}.topbar{align-items:start}.top-meta{max-width:100px;font-size:9px}.card{padding:17px}.stat{padding:15px}.stat b{font-size:28px}.loginbox{padding:30px}.row>*{min-width:100%}.row button{min-width:unset}.scanner-layout{display:block}.heading{flex-wrap:wrap}}@media print{@page{size:A4;margin:10mm}body{background:white}.sidebar,.topbar,.no-print,#toast{display:none!important}.workspace{margin:0;padding:0}.print-grid{display:grid;grid-template-columns:repeat(3,60mm);gap:5mm}.badge-card{width:60mm;height:55mm;padding:3mm;border:1px dashed #bbb}.badge-card canvas{width:30mm;height:30mm}.badge-card strong{font-size:10px}.badge-card p{font-size:9px}.badge-card small{font-size:8px}}

.top-meta{overflow-wrap:anywhere}#toast{max-width:calc(100vw - 30px)}@media(max-width:700px){body.scan-running .sidebar,body.scan-running .topbar,body.scan-running #scan-settings .row,body.scan-running #scan-settings #scan-start,body.scan-running #scan-settings p{display:none}body.scan-running #scan-settings{padding:12px;margin-bottom:12px}body.scan-running .scan-info{font-size:12px;padding:10px}body.scan-running .scanner-layout .card{margin-bottom:12px}body.scan-running .result{padding:16px;min-height:150px}body.scan-running .result h2{font-size:18px}body.scan-running .result strong{font-size:18px}}

/* Dallas Check 1.1: identidade e leitura móvel */
:root{--ink:#222b4f;--muted:#677086;--green:#d72b25;--lime:#ffffff;--bg:#f4f5f9;--border:#dce0ea;--red:#b62121}
.sidebar{background:#272f59}.logo b{color:#fff}nav button{color:#e0e4f1}nav button.active{background:#d72b25;color:#fff}.sidebar-foot{border-color:#4b547b}.sidebar-foot small,.logo small{color:#d0d7ec}.login{background:radial-gradient(ellipse at top right,#e4e7f5,transparent 55%),var(--bg)}.notice,.scan-info{background:#edf0fa;border-color:#d3daf0}.stat.accent span{color:#fff}.pill{color:#272f59;background:#e8ecf8}.dallas-logo{width:130px;height:auto;object-fit:contain;border-radius:6px;background:#fff;display:block}.loginbox .dallas-logo{width:170px;margin-bottom:24px}.logo{flex-wrap:wrap;gap:10px;margin-bottom:25px}.badge-logo{display:block;width:74px;height:33px;object-fit:contain;margin:0 auto 3px}.camera-stage{position:relative;isolation:isolate}#camera{background:#222b4f}#camera video{display:block;width:100%!important;max-width:100%;object-fit:cover}#scan-feedback[hidden]{display:none}#scan-feedback{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;background:rgba(235,250,239,.97);color:#11662e;border:4px solid #228244;border-radius:10px;pointer-events:none;overflow:auto}#scan-feedback.duplicate{background:rgba(255,245,216,.97);color:#7b5200;border-color:#c89522}#scan-feedback.failure{background:rgba(255,235,233,.97);color:#aa2424;border-color:#c83333}.feedback-symbol{font-size:clamp(70px,16vh,140px);font-weight:900;line-height:1}#scan-feedback b{font-size:clamp(16px,3vw,24px);margin:10px 0}#scan-feedback strong{font-size:clamp(18px,4vw,28px);overflow-wrap:anywhere;line-height:1.15}.grid>* ,.scanner-layout>* ,.row>*{min-width:0}input,select{max-width:100%;min-width:0}input[type=datetime-local]{min-height:44px;-webkit-appearance:none;appearance:none}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left}html,body{width:100%;max-width:100%;overflow-x:clip}
@media(max-width:700px){input,select{font-size:16px}.row>*{flex-basis:100%;width:100%;min-width:0}.workspace{width:100%;padding:18px 12px}.sidebar{width:100%;min-width:0}.sidebar nav{max-width:100%;min-width:0}.topbar{gap:12px}.heading input{max-width:100%!important}.loginbox{width:calc(100% - 24px);padding:26px}.logo .dallas-logo{width:95px}.logo{flex-wrap:nowrap}.card{padding:14px}body.scan-running .workspace{padding:8px max(8px,env(safe-area-inset-right)) 16px max(8px,env(safe-area-inset-left))}body.scan-running #camera{height:clamp(240px,58vh,480px);height:clamp(240px,58dvh,480px);min-height:0}body.scan-running #camera video{height:100%!important}body.scan-running .camera-stage{scroll-margin-top:8px}body.scan-running .scan-info{margin-bottom:8px}body.scan-running #scan-settings{margin-bottom:8px}body.scan-running .counter{font-size:22px}}
@media print{.badge-logo{width:20mm;height:8mm}.badge-card canvas{width:27mm;height:27mm}.badge-card{height:60mm}}
