:root{--bg:#f4f6f8;--card:#fff;--text:#172033;--muted:#667085;--line:#e4e7ec;--brand:#172033;--ok:#067647;--danger:#b42318}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text)}
a{color:inherit}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:var(--brand);color:#fff}
.brand a{text-decoration:none;font-weight:800;font-size:19px}.userbox{display:flex;gap:14px;align-items:center;font-size:14px}.userbox a{color:#fff}
.container{max-width:1050px;margin:auto;padding:22px 16px 50px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:0 2px 8px rgba(16,24,40,.04)}
h1,h2,h3{margin-top:0}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
label{display:block;font-size:13px;font-weight:750;margin-bottom:6px;color:#344054}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;font-size:16px}
textarea{min-height:90px;resize:vertical}.btn{display:inline-block;border:0;border-radius:10px;padding:11px 15px;background:var(--brand);color:#fff;text-decoration:none;font-weight:750;cursor:pointer}.btn.secondary{background:#fff;color:var(--brand);border:1px solid #d0d5dd}
.btn.danger{background:var(--danger)}.actions{display:flex;gap:10px;flex-wrap:wrap}.alert{padding:12px 14px;border-radius:10px;margin:12px 0}.alert.ok{background:#ecfdf3;color:var(--ok)}.alert.bad{background:#fef3f2;color:var(--danger)}
table{width:100%;border-collapse:collapse}th,td{padding:11px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:13px;color:var(--muted)}
.kpi{font-size:28px;font-weight:800}.receipt-img{max-width:100%;border-radius:12px;border:1px solid var(--line)}
.itemrow{display:grid;grid-template-columns:36px 1fr 110px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
@media(max-width:700px){.grid{grid-template-columns:1fr}.userbox span{display:none}table.responsive thead{display:none}table.responsive tr{display:block;padding:10px 0;border-bottom:1px solid var(--line)}table.responsive td{display:block;border:0;padding:3px 0}.itemrow{grid-template-columns:34px 1fr 90px}}


/* CPlus Gastos v0.2 - OCR */
.ocr-card{border-color:#d0d5dd}
.ocr-status{margin-top:16px}
.ocr-progress{height:9px;background:#eaecf0;border-radius:999px;overflow:hidden;margin-bottom:8px}
.ocr-progress span{display:block;width:0;height:100%;background:#172033;transition:width .18s ease}
.ocr-raw{width:100%;min-height:220px;margin-top:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}
.checkline{display:flex;gap:9px;align-items:center;font-size:14px;font-weight:600}
.checkline input{width:auto}
.ocr-item-edit{display:grid;grid-template-columns:34px minmax(180px,1fr) 90px 120px 40px;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.ocr-item-edit input{min-width:0}
.ocr-item-edit .ocr-check{width:20px;height:20px}
.ocr-remove{border:0;background:#fef3f2;color:#b42318;border-radius:8px;width:36px;height:36px;font-size:22px;cursor:pointer}
@media(max-width:700px){
  .ocr-item-edit{grid-template-columns:30px 1fr 72px 96px 36px}
  .ocr-item-edit input{padding:9px 8px}
}
