:root{--bg:#f5f5f2;--card:#fff;--ink:#141414;--muted:#6d6d68;--line:#deded8;--good:#0a6b43;--bad:#a9362b;--warn:#8b5e00}*{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}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,4vw,44px);background:#111;color:white}.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:grid;place-items:center;background:#fff;color:#111;font-weight:900;border-radius:10px;width:48px;height:48px}.brand strong,.brand small{display:block}.brand small{color:#bdbdbd;margin-top:2px}.top-actions{display:flex;gap:8px}.btn{border:0;border-radius:10px;background:#111;color:#fff;padding:11px 16px;font-weight:800;cursor:pointer}.topbar .btn{background:#fff;color:#111}.btn.ghost{background:transparent;color:inherit;border:1px solid currentColor}.wrap{max-width:1180px;margin:auto;padding:22px}.monthbar{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:18px}.monthbar small,.panel-head small{color:var(--muted);font-weight:800;letter-spacing:.12em}.monthbar h1{margin:2px 0 0;font-size:clamp(24px,5vw,38px)}.iconbtn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:28px;cursor:pointer}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.sum{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}.sum span{display:block;color:var(--muted);font-size:12px;font-weight:700}.sum strong{display:block;margin-top:8px;font-size:21px}.sum.income strong{color:var(--good)}.sum.expense strong{color:var(--bad)}.sum.main{background:#111;color:#fff}.sum.pending strong{color:var(--warn)}.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;margin-top:16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h2{margin:3px 0 0}.filters{display:flex;gap:8px}.filters select,select,input,textarea{font:inherit;border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff;width:100%}.movements{margin-top:15px}.row{display:grid;grid-template-columns:100px 110px 1fr 160px 140px 110px;align-items:center;gap:12px;padding:14px 8px;border-top:1px solid var(--line)}.row:first-child{border-top:0}.ref{font-weight:900}.tag{display:inline-block;width:max-content;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900}.tag.in{background:#dff2e9;color:var(--good)}.tag.out{background:#f6e4e1;color:var(--bad)}.proof-ok{color:var(--good);font-weight:800}.proof-missing{color:var(--warn);font-weight:800}.amount{font-weight:900;text-align:right}.quick-mobile{display:none;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.big{border:0;border-radius:14px;padding:17px;font-weight:900}.income-btn{background:#0a6b43;color:#fff}.expense-btn{background:#a9362b;color:#fff}.pill{border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px}.pending-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pending-item{background:#fff7df;border:1px solid #ead7a2;border-radius:10px;padding:9px 12px;font-size:13px}.muted{color:var(--muted)}.modal{display:none;position:fixed;inset:0;background:#0008;z-index:50;padding:18px;overflow:auto}.modal.show{display:flex;align-items:flex-start;justify-content:center}.modal-card{width:min(760px,100%);background:#fff;border-radius:20px;padding:20px;margin:auto}.modal-card.compact{max-width:520px}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h2{margin:3px 0 16px}.close{border:0;background:#eee;width:38px;height:38px;border-radius:50%;font-size:24px}.segmented{display:grid;grid-template-columns:1fr 1fr;background:#eee;border-radius:12px;padding:4px;margin-bottom:14px}.segmented button{border:0;background:transparent;padding:10px;border-radius:9px;font-weight:900}.segmented button.active{background:#111;color:#fff}.reference-box{display:flex;justify-content:space-between;background:#f4f4f0;border-radius:10px;padding:10px 12px;margin-bottom:12px}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{display:block;font-size:12px;font-weight:800;margin:10px 0}label input,label select,label textarea{display:block;margin-top:5px;font-weight:500}.hidden{display:none!important}.check{display:flex;align-items:center;gap:9px;font-size:13px}.check input{width:auto;margin:0}.proof-box{border:1px solid var(--line);border-radius:15px;padding:15px;margin-top:15px}.proof-box h3{margin:3px 0}.proof-box p{font-size:13px;color:var(--muted)}.proof-actions{display:flex;flex-wrap:wrap;gap:8px}.camera-btn{display:inline-flex;align-items:center;justify-content:center;margin:0;border:0;background:#111;color:white;border-radius:10px;padding:11px 13px;font-size:12px;font-weight:900;cursor:pointer}.camera-btn.secondary{background:#eee;color:#111}.camera-btn.qr{background:#e7efe9;color:#0a6b43}.proof-preview{margin-top:10px;font-size:12px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.form-actions .btn.ghost{color:#111}#qrVideo{width:100%;background:#111;border-radius:12px;max-height:55vh}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:#111;color:#fff;padding:12px 16px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:850px){.summary-grid{grid-template-columns:1fr 1fr}.sum.main{grid-column:span 2}.sum.pending{grid-column:span 2}.top-actions #btnNew{display:none}.quick-mobile{display:grid}.row{grid-template-columns:1fr auto;gap:5px;padding:14px 0}.row>*{grid-column:1}.row .amount{grid-column:2;grid-row:1/3;align-self:center}.row .proof-state{grid-column:1}.filters{width:100%}.panel-head{align-items:flex-start;flex-direction:column}.grid.two{grid-template-columns:1fr}.wrap{padding:14px}.modal{padding:0}.modal-card{border-radius:0;min-height:100%;margin:0}.proof-actions{display:grid;grid-template-columns:1fr 1fr}.proof-actions .qr{grid-column:span 2}.brand strong{font-size:14px}}

/* V1.1 - competências históricas */
.competence-wrap{background:#fff;border:1px solid #e7e7e7;border-radius:18px;padding:18px;margin:18px 0;box-shadow:0 8px 28px rgba(0,0,0,.04)}
.competence-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.competence-head h1{margin:2px 0 0;font-size:25px}.competence-head small{font-weight:800;letter-spacing:.08em;color:#777}.import-badge{font-size:11px;font-weight:800;background:#f3f3f3;border-radius:999px;padding:8px 11px;white-space:nowrap}.competence-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.competence-tabs button{border:1px solid #dcdcdc;background:#fff;border-radius:12px;padding:13px 10px;font-weight:800;cursor:pointer}.competence-tabs button.active{background:#111;color:#fff;border-color:#111}.source-note{margin:13px 0 0;color:#666;font-size:13px}.row-detail{color:#777;line-height:1.7}.imported-row{background:#fcfcfc}.imported-row .proof-state{font-size:12px}
@media(max-width:720px){.competence-head{align-items:flex-start;flex-direction:column}.competence-tabs{grid-template-columns:repeat(2,1fr)}.competence-tabs button{padding:14px 8px}.import-badge{white-space:normal}.row-detail{display:block;margin-top:3px}}


/* V1.3 — identificação fiscal */
.fiscal-box{margin-top:14px;padding:14px;border:1px solid #d9dde3;border-radius:14px;background:#f8fafc}.fiscal-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.fiscal-title span{font-size:11px;font-weight:800;letter-spacing:.08em;color:#667085}.fiscal-title strong{font-size:12px;padding:5px 9px;border-radius:999px;background:#eef2f6;color:#344054}.fiscal-title strong.ok{background:#e8f7ee;color:#176b3a}.grid.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}@media(max-width:720px){.grid.three{grid-template-columns:1fr}.fiscal-title{align-items:flex-start;flex-direction:column}}

/* V1.4 */
.row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.row-actions .btn{padding:8px 10px;font-size:12px}
.proof-modal-actions{margin:18px 0 10px}
.existing-proof{padding:14px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa}
.existing-proof a{font-weight:700}
.competence-tabs{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.row-actions{justify-content:flex-start}.competence-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.competence-tabs button{flex:0 0 auto}.grid.three{grid-template-columns:1fr}}

.ocr-status{margin-top:10px;font-size:.88rem;min-height:1.2em}.ocr-status.working{font-weight:700}.ocr-status.ok{font-weight:700}.ocr-status.error{font-weight:700}

/* V1.6 — autenticação e persistência MySQL */
.auth-body{min-height:100vh;display:grid;place-items:center;padding:22px;background:#efefeb}.auth-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 18px 55px rgba(0,0,0,.08)}.auth-brand{color:#111;margin-bottom:22px}.auth-brand .brand-mark{background:#111;color:#fff}.auth-card h1{margin:8px 0}.auth-card h3{margin:22px 0 4px}.btn.full{width:100%;margin-top:16px}.auth-foot{text-align:center;margin:18px 0 0}.auth-foot a{color:#111;font-weight:800}.alert{padding:12px 14px;border-radius:12px;margin:14px 0;font-weight:700}.alert.ok{background:#e8f7ee;color:#176b3a}.alert.error{background:#fdeaea;color:#8e2424}.top-actions a{text-decoration:none}.btn.ghost.dark{color:#111;background:#fff;border:1px solid #bbb}.user-list{display:grid;gap:10px;margin-top:16px}.user-card{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:14px}.user-card strong,.user-card span,.user-card small{display:block}.user-card span{margin:4px 0;color:#555}.user-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:700px){.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions .btn{padding:8px 10px;font-size:11px}.user-card{align-items:flex-start;flex-direction:column}.user-actions{width:100%}.user-actions .btn{flex:1}}

/* PWA / V1.8 */
.install-app{white-space:nowrap}.auth-install{margin-top:12px}.password-wrap{position:relative;display:block}.password-wrap input{padding-right:46px!important;width:100%}.password-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:8px;border-radius:10px}.password-eye:focus{outline:2px solid currentColor;outline-offset:1px}@media (display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.topbar{padding-top:calc(12px + env(safe-area-inset-top))}.install-app{display:none!important}}

/* V1.11 — leitura fiscal com Gemini */
.gemini-btn{background:#f4efe5!important;color:#171717!important;border:1px solid #d8c9a9!important}.gemini-btn[disabled]{opacity:.55;cursor:wait}.gemini-status{margin-top:10px;font-size:.9rem;min-height:1.25em}.gemini-status.working{font-weight:800}.gemini-status.ok{font-weight:800;color:#176b3a}.gemini-status.error{font-weight:800;color:#8e2424}.gemini-result{margin-top:10px;padding:12px;border:1px solid #d8c9a9;border-radius:12px;background:#fffdf8}.settings-note{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fafafa;margin:14px 0}.secret-row{display:flex;gap:8px;align-items:center}.secret-row input{flex:1}@media(max-width:700px){.gemini-btn{width:100%}}
