:root{--azul:#1f4e78;--azul2:#2e6ca4;--gris:#f4f6f9;--borde:#dde3ea;--txt:#243140;--muted:#6b7785;--rojo:#b3261e;--verde:#1e7d3a;--amar:#caa300;--shadow:0 2px 8px #14284614}*{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif}body{background:var(--gris);color:var(--txt);margin:0}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}html,body,#root{height:100%}#root{min-height:100vh}.login-shell{background:linear-gradient(135deg,#1f4e78,#0d2b45);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow:hidden}.login-shell:before{content:"INNOVACAP";color:#ffffff0d;letter-spacing:8px;white-space:nowrap;pointer-events:none;font-size:16vw;font-weight:800;position:absolute;transform:rotate(-12deg)}.card{background:#fff;border-radius:14px;width:340px;max-width:100%;padding:34px 32px;position:relative;box-shadow:0 12px 40px #0000004d}.brand{letter-spacing:3px;color:var(--azul);text-align:center;margin-bottom:2px;font-size:24px;font-weight:800}.brand small{letter-spacing:2px;color:var(--muted);font-size:10px;font-weight:600;display:block}.card h1{color:var(--azul);margin:0 0 4px}.muted{color:var(--muted);margin:0 0 14px;font-size:13px}.card label{color:var(--txt);margin:12px 0 4px;font-size:12px;font-weight:700;display:block}.card input{border:1px solid var(--borde);border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.card button{background:var(--azul);color:#fff;border:0;border-radius:8px;width:100%;margin-top:20px;padding:12px;font-size:15px;font-weight:700}.card button:hover{background:var(--azul2)}.card button:disabled{opacity:.7;cursor:default}.err{color:var(--rojo);text-align:center;min-height:16px;margin-top:12px;font-size:13px}.hint{color:var(--muted);background:#f4f6f9;border-radius:8px;margin-top:18px;padding:10px;font-size:11px;line-height:1.5}.app-view{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-view>header,.app-view>.cards,.app-view>.toolbar,.app-view>.filters-toggle,.app-view>.filters,.app-view>.notes{flex:none}header{background:var(--azul);color:#fff;height:56px;box-shadow:var(--shadow);align-items:center;gap:14px;padding:0 18px;display:flex}header .logo{letter-spacing:2px;font-size:18px;font-weight:800}header .logosub{color:#cfe0f0;margin-left:-6px;font-size:12px}header .sp{flex:1}header .who{font-size:13px}header button{color:#fff;background:#ffffff26;border:0;border-radius:7px;padding:7px 12px;font-size:13px}header button:hover{background:#ffffff47}.badge{border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.badge.admin{color:#5b4a00;background:#ffd966}.badge.user{color:#0b2b45;background:#9fc5e8}.toolbar{border-bottom:1px solid var(--borde);background:#fff;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;display:flex}.admin-tools{gap:8px;display:inline-flex}.btn{border:0;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:700}.btn.primary{background:var(--azul);color:#fff}.btn.primary:hover{background:var(--azul2)}.btn.ghost{color:var(--azul);background:#eef2f7}.btn.ghost:hover{background:#e1e8f1}.btn:disabled{opacity:.55;cursor:default}.toolbar input,.toolbar select{border:1px solid var(--borde);background:#fff;border-radius:7px;padding:8px 10px;font-size:13px}.toolbar input[type=search]{min-width:240px}.loadinfo{color:var(--muted);font-size:12px}.export-wrap{display:inline-flex;position:relative}.export-menu{z-index:60;border:1px solid var(--borde);opacity:0;pointer-events:none;background:#fff;border-radius:10px;flex-direction:column;gap:8px;min-width:250px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 26px #0000002e}.export-menu.open{opacity:1;pointer-events:auto}.export-menu .btn{text-align:left}.cards{flex-wrap:wrap;gap:12px;padding:14px 18px 0;display:flex}.kpi{border:1px solid var(--borde);min-width:130px;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:12px 16px}.kpi .n{color:var(--azul);font-size:22px;font-weight:700}.kpi .l{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:11px}.filters-toggle{display:none}.filters{border-bottom:1px solid var(--borde);background:#f0f4f9;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 18px;display:flex}.filters .ftag{color:var(--azul);text-transform:uppercase;letter-spacing:.3px;margin-right:2px;font-size:11px;font-weight:700}.filters select{border:1px solid var(--borde);background:#fff;border-radius:7px;max-width:170px;padding:8px 10px;font-size:12px}.btn.sm{padding:6px 10px;font-size:12px}.notes{padding:8px 18px 0}.note{color:var(--muted);padding:2px 0;font-size:11px}.wrap{flex:1;padding:14px 18px;overflow:auto}.daygroup{border:1px solid var(--borde);box-shadow:var(--shadow);background:#fff;border-radius:10px;overflow:hidden}.empty{text-align:center;color:var(--muted);padding:30px}.vscroll{background:var(--gris);flex:1;min-height:0;padding:0 18px 24px;overflow:auto}.vspacer{position:relative}.vitem{box-sizing:border-box;align-items:center;display:flex;position:absolute;left:0}.vitem.mesHead{background:var(--azul);color:#fff;border-radius:8px;height:46px;margin:0;font-size:15px;font-weight:700}.vitem.mesHead .banner-label{padding:0 14px;position:sticky;left:0}.vitem.dayhead{color:var(--azul);border-bottom:1px solid var(--borde);background:#eaf1f8;height:34px;font-size:13px;font-weight:700}.vitem.dayhead .banner-label{padding:0 14px;position:sticky;left:0}.vitem.dayhead .cnt{color:var(--muted);font-size:11px;font-weight:400}.vitem.vhead{background:#f7f9fc;height:34px}.vitem.vhead .cell{color:var(--azul);text-transform:uppercase;background:#f7f9fc;font-size:11px;font-weight:700}.vitem.vhead .cell.money{background:#e8f5ec}.vitem.vrow{background:#fff;height:32px}.vitem.vrow.zebra{background:#fbfcfe}.cell{text-overflow:ellipsis;white-space:nowrap;border-right:1px solid var(--borde);border-bottom:1px solid var(--borde);box-sizing:border-box;align-items:center;height:100%;padding:0 9px;font-size:12px;display:flex;overflow:hidden}.cell.money{color:var(--verde);background:#f3faf5;justify-content:flex-end;font-weight:700}.vitem.vrow.zebra .cell.money{background:#eef8f1}.cell.actions{gap:5px}.iconbtn{background:#eef2f7;border:0;border-radius:6px;padding:3px 7px;font-size:12px;line-height:1}.iconbtn.del{color:var(--rojo);background:#fde8e6}.iconbtn:disabled{opacity:.5;cursor:default}#colorMenu{border:1px solid var(--borde);z-index:80;background:#fff;border-radius:10px;gap:6px;padding:8px;display:flex;position:fixed;box-shadow:0 8px 24px #0003}#colorMenu .sw{cursor:pointer;border:2px solid #cfd8e3;border-radius:50%;width:24px;height:24px;padding:0}#colorMenu .sw:hover{transform:scale(1.15)}#colorMenu .sw.none{background:#fff;position:relative}#colorMenu .sw.none:after{content:"✕";color:var(--rojo);justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.overlay{z-index:50;background:#141e2d8c;justify-content:center;align-items:flex-start;padding:30px 12px;display:none;position:fixed;inset:0;overflow:auto}.overlay.on{display:flex}.modal{background:#fff;border-radius:12px;width:760px;max-width:100%;box-shadow:0 16px 50px #00000059}.modal.confirm{text-align:center;width:380px;padding:26px}.modal.confirm p{margin:0 0 20px;font-size:15px}.modal h2{border-bottom:1px solid var(--borde);color:var(--azul);margin:0;padding:16px 20px;font-size:17px}.modal .note{padding:8px 18px}.formgrid{grid-template-columns:1fr 1fr 1fr;gap:12px 16px;max-height:62vh;padding:18px 20px;display:grid;overflow:auto}.field{flex-direction:column;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--muted);text-transform:uppercase;margin-bottom:3px;font-size:11px;font-weight:700}.field.value label{color:var(--verde)}.field input,.field select,.field textarea{border:1px solid var(--borde);border-radius:7px;padding:8px 10px;font-size:13px}.modalfoot{border-top:1px solid var(--borde);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.dlg-grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dlg-grid3{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;display:grid}.urow{border:1px solid var(--borde);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;display:flex}.urow .actions{gap:5px;display:flex}.toast{color:#fff;opacity:0;z-index:99;pointer-events:none;background:#243140;border-radius:8px;padding:10px 18px;font-size:13px;transition:all .3s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}@media (width<=767.98px){.app-view{height:100dvh}header{gap:8px;height:52px;padding:0 10px}header .logo{letter-spacing:1px;font-size:16px}header .logosub{display:none}header .who{text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:12px;overflow:hidden}header button{min-height:44px}.cards{grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px 0;display:grid}.kpi{min-width:0;padding:6px 10px}.kpi .n{font-size:16px;line-height:1.15}.kpi .l{white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.toolbar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:8px;padding:8px 10px;overflow-x:auto}.toolbar>*{flex:none}.toolbar input[type=search]{flex:170px;min-width:170px}.loadinfo{white-space:nowrap}.btn,.toolbar input,.toolbar select,.filters select{min-height:44px}input,select,textarea{font-size:16px}.filters-toggle{min-height:44px;color:var(--azul);border:1px solid var(--borde);background:#eef2f7;border-radius:7px;align-items:center;gap:6px;margin:8px 10px 0;padding:8px 14px;font-size:13px;font-weight:700;display:flex}.filters{display:none}.filters.open{padding:8px 10px;display:flex}.filters select{flex:44%;min-width:0;max-width:none}.notes{display:none}.vscroll{-webkit-overflow-scrolling:touch;padding:0 0 16px}.cell{font-size:13px}.vitem.mesHead{border-radius:0}.vitem.vhead .cell:first-child,.vitem.vrow .cell:first-child{z-index:2;position:sticky;left:0}.vitem.vrow .cell:first-child{background:inherit}.iconbtn{border-radius:8px;min-width:44px;min-height:44px;font-size:16px}.export-menu{min-width:0;position:fixed;inset:auto 8px 16px}#colorMenu{flex-wrap:wrap;justify-content:center;bottom:16px;right:8px;top:auto!important;left:8px!important}#colorMenu .sw{width:44px;height:44px}.overlay{padding:8px}.modal{-webkit-overflow-scrolling:touch;max-width:100%;max-height:calc(100dvh - 16px);overflow:auto;width:100%!important}.modal .formgrid{grid-template-columns:1fr;max-height:none}.modalfoot{z-index:2;background:#fff;position:sticky;bottom:0}.field input,.field select,.field textarea{min-height:44px}.urow{flex-wrap:wrap}}@media (width<=480px){header .who{display:none}.dlg-grid2,.dlg-grid3{grid-template-columns:1fr;align-items:stretch}}
