:root{--cafe: #6f4e37;--cafe-claro: #b08968;--bg: #faf7f4;--card: #ffffff;--linea: #ece5de;--texto: #2b2320;--ok: #2e7d32;--alerta: #c62828;--muted: #8a8178;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--texto)}button{font:inherit;cursor:pointer}.app{max-width:720px;margin:0 auto;padding:0 12px 96px}header.top{position:sticky;top:0;z-index:5;background:var(--cafe);color:#fff;margin:0 -12px 12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between}header.top h1{font-size:17px;margin:0}header.top button{background:transparent;color:#fff;border:1px solid #ffffff66;border-radius:8px;padding:6px 10px}.card{background:var(--card);border:1px solid var(--linea);border-radius:12px;padding:14px;margin-bottom:12px}.btn{background:var(--cafe);color:#fff;border:none;border-radius:10px;padding:12px 16px;font-weight:600;width:100%}.btn.secundario{background:#fff;color:var(--cafe);border:1px solid var(--cafe)}.btn:disabled{opacity:.5}input[type=text],input[type=email],input[type=number],input[inputmode]{font-size:16px;padding:10px 12px;border:1px solid var(--linea);border-radius:10px;width:100%;background:#fff;color:var(--texto)}.banner{padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:10px}.banner.offline{background:#fff3e0;color:#8a5a00}.banner.info{background:#e8f0fe;color:#1a4b8c}.search{margin-bottom:10px}.progreso{font-size:13px;color:var(--muted);margin:4px 0 12px}.progreso .barra{height:6px;background:var(--linea);border-radius:4px;overflow:hidden;margin-top:4px}.progreso .barra>span{display:block;height:100%;background:var(--cafe-claro)}ul.lineas{list-style:none;padding:0;margin:0}li.linea{display:grid;grid-template-columns:1fr 110px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--linea)}li.linea .nombre{font-weight:600}li.linea .meta{font-size:12px;color:var(--muted)}li.linea.bloqueada{opacity:.55}li.linea .lock{font-size:11px;color:var(--alerta)}li.linea .dif.pos{color:var(--ok)}li.linea .dif.neg{color:var(--alerta)}li.linea .guardado{font-size:11px;color:var(--ok)}.acciones{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--linea);padding:10px 12px}.acciones .inner{max-width:720px;margin:0 auto}.center{text-align:center;padding:40px 16px;color:var(--muted)}.error{color:var(--alerta);font-size:13px}
