:root{--cereja:#e50145;--cereja-esc:#b8003a;--cereja-fundo:#9c0130;--cereja-suave:#fde7ed;--cereja-clara:#fff3f6;--cereja-borda:#f6cfdb;--verde:#0c893e;--verde-bg:#e3f5ea;--vermelho:#c1121f;--vermelho-bg:#fde6e8;--amarelo:#ffd23f;--azul:#3574b1;--roxo:#962e9d;--laranja:#f15a22;--creme:#fff6f8;--bg:#fff6f8;--card:#fff;--linha:#f0d6de;--linha-fraca:#f6e6eb;--txt:#1f0a12;--suave:rgba(31,10,18,.6);--suave2:rgba(31,10,18,.42);--sombra:0 0 0 2px var(--cereja-borda),0 4px 0 2px var(--cereja-borda);--radius:16px;--sans:"Hind Madurai",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--display:"Hind Madurai",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--fundo:var(--creme);--cartao:var(--card);--texto:var(--txt);--borda:var(--linha-fraca)}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--txt);font-family:var(--sans);-webkit-font-smoothing:antialiased}body,h1,h2,h3,h4,html,ol,p,ul{margin:0;padding:0}button{cursor:pointer}button,input,select,textarea{font-family:inherit}a{color:var(--cereja);font-weight:700}.muted{color:var(--suave)}:focus-visible{outline:3px solid var(--amarelo);outline-offset:2px;border-radius:6px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--cereja-clara)}::-webkit-scrollbar-thumb{background:var(--cereja-borda);border-radius:6px}.center-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--cereja)}.center-card{background:var(--card);border-radius:22px;padding:36px 30px;max-width:420px;text-align:center;box-shadow:0 8px 0 var(--cereja-fundo)}.center-card .logo{font-family:var(--display);font-weight:800;color:var(--cereja);font-size:30px}.center-card .logo-img{height:72px;width:auto;display:block;margin:0 auto 4px}.center-card h1{font-family:var(--display);font-size:22px;font-weight:800;margin:8px 0 6px}.center-card p{color:var(--suave);line-height:1.55;font-size:13.5px}.btn-primary{background:var(--cereja);color:#fff;border:none;border-radius:999px;padding:10px 20px;font-weight:800;font-size:13.5px;box-shadow:0 4px 0 var(--cereja-fundo);transition:transform .08s,box-shadow .08s}.btn-primary:hover{background:var(--cereja-esc)}.btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--cereja-fundo)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost,.btn-sec{background:#fff;color:var(--cereja);border:2px solid var(--cereja);border-radius:999px;padding:8px 16px;font-weight:800;font-size:13px;box-shadow:0 3px 0 var(--cereja-borda);transition:transform .08s,box-shadow .08s}.btn-ghost:hover,.btn-sec:hover{background:var(--cereja-clara)}.btn-ghost:active,.btn-sec:active{transform:translateY(2px);box-shadow:0 1px 0 var(--cereja-borda)}.btn-ghost:disabled,.btn-sec:disabled{opacity:.5;cursor:not-allowed;transform:none}.link-mini{background:none;border:none;color:var(--cereja);text-decoration:underline;padding:0;font-size:13px;font-weight:700}.shell{display:flex;min-height:100vh;background:var(--bg)}.nav-rail{width:238px;flex:0 0 238px;background:var(--cereja);position:-webkit-sticky;position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding:18px 12px}.nav-rail .brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px}.nav-rail .brand-logo{height:46px;width:auto;display:block;flex:none}.nav-rail .brand-txt{font-family:var(--display);font-weight:800;font-size:15px;line-height:1.1;color:#fff}.nav-rail .brand-txt small{display:block;font-family:var(--sans);font-weight:600;font-size:11px;color:hsla(0,0%,100%,.75);margin-top:3px}.nav-rail nav{display:flex;flex-direction:column;gap:4px}.nav-rail nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:none;font-size:13.5px;font-weight:700;color:hsla(0,0%,100%,.92);padding:10px 12px;border-radius:12px;transition:background .15s,color .15s}.nav-rail nav button .ico{font-size:17px;width:22px;text-align:center;flex:none}.nav-rail nav button:hover{background:hsla(0,0%,100%,.14)}.nav-rail nav button.on{background:#fff;color:var(--cereja);font-weight:800;box-shadow:0 3px 0 var(--cereja-fundo)}.nav-rail .rail-foot{margin-top:auto;border-top:1px solid hsla(0,0%,100%,.25);padding:12px 8px 2px;font-size:11px;color:hsla(0,0%,100%,.8);display:flex;flex-direction:column;gap:8px}.nav-rail .rail-user{word-break:break-all;font-weight:700;color:#fff}.content{flex:1 1;min-width:0;background:var(--bg);min-height:100vh;display:flex;flex-direction:column}.rail-top{display:none}.topbar{display:flex;align-items:center;gap:14px;background:var(--bg);border-bottom:2px solid var(--linha-fraca);padding:14px 26px;position:-webkit-sticky;position:sticky;top:0;z-index:20;flex-wrap:wrap}.topbar .tb-titulo{font-family:var(--display);font-weight:800;font-size:22px;line-height:1.1;color:var(--txt)}.topbar .tb-sub{color:var(--suave);font-size:12.5px}.spacer{flex:1 1}.user-chip{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--suave)}.logout-btn{background:none;border:1.5px solid hsla(0,0%,100%,.7);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700;color:#fff}.logout-btn:hover{background:#fff;color:var(--cereja)}.pagina{padding:22px 26px 80px}.controls{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.controls label{margin:0}.seg{display:inline-flex;background:#fff;border:2px solid var(--cereja-borda);border-radius:999px;padding:3px;gap:2px}.seg button{border:none;background:none;padding:6px 14px;font-weight:800;color:var(--suave);font-size:12.5px;border-radius:999px}.seg button.on{background:var(--cereja);color:#fff}.month-nav{display:flex;align-items:center;gap:8px}.month-nav button{background:var(--cereja-suave);border:none;border-radius:50%;width:32px;height:32px;font-size:15px;color:var(--cereja);font-weight:800}.month-label{font-family:var(--display);font-weight:800;min-width:170px;text-align:center;text-transform:capitalize;font-size:16px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.kpi{position:relative;background:var(--card);border-radius:18px;box-shadow:var(--sombra);padding:16px 16px 14px}.kpi .kpi-ico{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:var(--cereja-suave);display:flex;align-items:center;justify-content:center;font-size:18px}.kpi .v{font-family:var(--display);font-size:30px;font-weight:700;color:var(--cereja);line-height:1.05;padding-right:40px;letter-spacing:-.5px}.kpi .k{font-size:12.5px;font-weight:600;color:var(--suave);margin-top:6px;line-height:1.35;padding-right:4px}.kpi.fase{box-shadow:0 0 0 2px var(--cereja-borda);background:var(--cereja-clara);border:2px dashed var(--cereja-borda)}.kpi.fase .v{font-size:18px}.seta{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-weight:800;font-size:11.5px}.seta.up{background:var(--verde-bg);color:var(--verde)}.seta.down{background:var(--vermelho-bg);color:var(--vermelho)}.seta.eq{background:rgba(31,10,18,.06);color:var(--suave)}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--sombra);padding:18px;margin-bottom:18px}.card h3{font-family:var(--display);font-size:18px;font-weight:800;margin-bottom:10px;line-height:1.2}.pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.pair .card{margin-bottom:0}.scroll{overflow-x:auto;background:var(--card);border-radius:var(--radius);box-shadow:var(--sombra)}.scroll.semborda{box-shadow:none;background:none}table{border-collapse:collapse;width:100%;font-size:13px;min-width:720px}th{background:var(--cereja);color:#fff;text-align:left;padding:11px 10px;font-size:12px;white-space:nowrap;font-weight:800}td.n,th.n{text-align:right}td{padding:10px;border-bottom:1px solid var(--linha-fraca);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:nth-child(2n){background:#fffafb}tbody tr:hover{background:var(--cereja-clara)}td.big{font-family:var(--display);font-size:14.5px;color:var(--cereja)}.badge,td.big{font-weight:800}.badge{display:inline-block;background:rgba(31,10,18,.06);border:none;border-radius:999px;padding:4px 11px;font-size:11px;color:var(--suave);white-space:nowrap}.badge.roxo{background:#f4e9f5;color:var(--roxo)}.badge.cereja{background:var(--cereja-suave);color:var(--cereja)}.badge.verde{background:var(--verde-bg);color:var(--verde)}.aviso{background:#fff;border:2px solid var(--cereja-borda);border-left:6px solid var(--cereja);color:#7a0a2c;padding:12px 14px 12px 42px;border-radius:12px;margin:12px 0;font-size:13px;line-height:1.5;position:relative}.aviso:before{content:"⚠️";position:absolute;left:14px;top:11px;font-size:16px}.info{background:#fffbe6;border:2px solid #f6e7a6;color:#6b5200;padding:12px 14px 12px 42px;border-radius:12px;margin:0 0 16px;font-size:13px;line-height:1.55;position:relative}.info:before{content:"💡";position:absolute;left:14px;top:11px;font-size:16px}.nota{color:var(--suave);font-size:12px;margin-top:14px;line-height:1.55}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px;align-items:end}label{font-size:12px;color:var(--suave);display:block;margin-bottom:4px;font-weight:700}input,select,textarea{width:100%;padding:9px 12px;border:2px solid var(--linha);border-radius:12px;font-size:13px;background:#fff;color:var(--txt)}input:focus,select:focus,textarea:focus{border-color:var(--cereja);outline:none}textarea{min-height:58px;resize:vertical}.linha-form{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end}.cal-legenda{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--suave);margin:0 0 10px}.cal-legenda .ponto{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:middle}.cal{display:grid;grid-template-columns:repeat(7,minmax(132px,1fr));grid-gap:6px;gap:6px;min-width:940px}.cal-cab{font-size:11px;color:var(--suave);font-weight:700;padding:2px 4px;text-align:center}.cal-dia{background:#fff;border:2px solid var(--linha-fraca);border-radius:12px;min-height:100px;padding:6px}.cal-dia.vazio{background:transparent;border-color:transparent}.cal-dia.hoje{border-color:var(--cereja)}.cal-dia .num{font-size:11px;font-weight:700;color:var(--suave);margin-bottom:5px}.cal-dia .chip{display:block;text-decoration:none;background:#fff;border:1px solid var(--linha-fraca);border-left:3px solid var(--linha);border-radius:6px;padding:4px 6px;margin-bottom:4px;font-weight:400}.cal-dia .chip .t{display:block;font-size:11px;font-weight:700;color:var(--txt);line-height:1.25}.cal-dia .chip .meta{display:block;font-size:10px;color:var(--suave);margin-top:2px}.cal-ig{font-size:10px;color:var(--verde);font-weight:700;margin-top:4px;border-top:1px dashed var(--linha-fraca);padding-top:4px}.graf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.graf-grid .card{margin-bottom:0;padding:14px 14px 10px}.graf-grid .card h3{font-size:14.5px;margin-bottom:6px}.ed-chip{display:inline-flex;align-items:center;gap:4px;border:2px solid;border-radius:999px;padding:3px 4px 3px 12px;font-size:12.5px;line-height:1.2}.ed-chip.on{box-shadow:0 0 0 3px var(--amarelo)}.ed-chip button{border:none;background:none;width:26px;height:26px;border-radius:50%;font-size:12px;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:inherit;font-weight:800}.ed-chip button:hover{background:rgba(31,10,18,.08)}.ed-chip button:disabled{opacity:.4;cursor:not-allowed}.ed-edicao{background:var(--cereja-clara);border:2px dashed var(--cereja-borda);border-radius:14px;padding:12px;margin:4px 0 10px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:880px){.shell{flex-direction:column}.nav-rail{width:100%;flex:none;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;overflow-x:auto;padding:10px}.nav-rail .brand{padding:4px 10px 4px 4px}.nav-rail nav{flex-direction:row;flex-wrap:wrap}.nav-rail nav button{width:auto}.nav-rail .rail-foot{display:none}.pagina{padding:16px 16px 60px}.topbar{padding:12px 16px}.topbar .tb-titulo{font-size:19px}}