:root{--rojo: #e0242b;--gris: #f4f4f5;--borde: #d4d4d8;--texto: #18181b;--texto2: #71717a}*{box-sizing:border-box;margin:0}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;color:var(--texto);background:#fff;-webkit-tap-highlight-color:transparent}.app{max-width:560px;margin:0 auto;min-height:100vh}main{padding:16px 16px 90px}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--borde);position:sticky;top:0;background:#fff;z-index:10}.topbar-logo{height:34px;cursor:pointer}.topbar-status{flex:1;font-size:12px;color:var(--texto2);display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.ok{background:#16a34a}.dot.off{background:#dc2626}.topbar-actions{display:flex;gap:8px}h1{font-size:20px;margin:8px 0 16px}h2{font-size:16px;margin:16px 0 8px}label{display:block;font-size:13px;font-weight:600;margin:14px 0 4px}.hint{font-size:12px;color:var(--texto2);font-weight:400}input,textarea,select{width:100%;padding:12px;font-size:16px;border:1px solid var(--borde);border-radius:10px;background:#fff}input:focus,textarea:focus{outline:2px solid var(--rojo);border-color:transparent}.row{display:flex;gap:10px}.row>*{flex:1}button{font-size:16px;padding:13px 18px;border-radius:12px;border:none;cursor:pointer;font-weight:600}.btn-primary{background:var(--rojo);color:#fff;width:100%;margin-top:18px}.btn-secondary{background:var(--gris);color:var(--texto);width:100%;margin-top:10px}.btn-small{font-size:13px;padding:8px 12px}.link{background:none;color:var(--rojo);padding:4px 8px;font-size:14px}button:disabled{opacity:.5}.actions-bottom{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--borde);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;max-width:560px;margin:0 auto}.actions-bottom button{flex:1;margin:0}.card{border:1px solid var(--borde);border-radius:14px;padding:14px;margin-bottom:10px;background:#fff}.card-click{cursor:pointer}.card-click:active{background:var(--gris)}.card-title{font-weight:700;font-size:15px}.card-sub{font-size:13px;color:var(--texto2);margin-top:2px}.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;margin-left:6px;vertical-align:middle}.badge.prog{background:#fef3c7;color:#92400e}.badge.fin{background:#dcfce7;color:#166534}.badge.cerrado{background:#fee2e2;color:#991b1b}.point-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:8px}.point-grid label{margin:0 0 3px;font-size:11px}.point-grid input{padding:10px 8px;text-align:center}.photo-thumb{width:100%;max-height:180px;object-fit:cover;border-radius:10px;margin-top:8px}.photo-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;background:var(--gris);color:var(--texto);border:1px dashed var(--borde)}.firma-canvas{width:100%;height:200px;border:1px dashed var(--borde);border-radius:12px;touch-action:none;background:#fff}.error{color:#dc2626;font-size:14px;margin-top:10px}.ok-msg{color:#16a34a;font-size:14px;margin-top:10px}.login-wrap{max-width:360px;margin:12vh auto 0;text-align:center}.login-logo{height:70px;margin-bottom:20px}table.plain{width:100%;border-collapse:collapse;font-size:13px}table.plain th,table.plain td{border:1px solid var(--borde);padding:6px;text-align:left}
