@font-face{font-family:Montserrat;font-weight:100 900;font-display:swap;src:url(fonts/montserrat-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Montserrat;font-weight:100 900;font-display:swap;src:url(fonts/montserrat-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--vinho:#5B1930;--petroleo:#1C454A;--creme:#F1EBDD;--oliva:#74762B;--caramelo:#A88559;
--bg:#F7F3EA;--card:#fff;--ink:#2a2224;--muted:#7a6f6b;--line:#e3dccb;--bad:#a3262f;--good:#4d5a1c;--warn:#8a5a14;--r:12px;--nav-h:62px;--top-h:56px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Montserrat,system-ui,sans-serif;font-size:15px;line-height:1.45;color:var(--ink);background:var(--bg)}
body.noscroll{overflow:hidden}
h1,h2,h3{margin:0;color:var(--petroleo);line-height:1.2}
h1{font-size:1.45rem;font-weight:700}h2{font-size:1.1rem}h3{font-size:1rem;margin-bottom:.6rem}
h2.sec{margin:1.6rem 0 .7rem;font-size:1.05rem;color:var(--vinho);text-transform:uppercase;letter-spacing:.06em}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
.muted{color:var(--muted)}.neg{color:var(--bad)!important}.good{color:var(--good)}
.hint{color:var(--muted);font-size:.84rem;margin:.6rem 0}
.loading,.empty{padding:2rem 1rem;text-align:center;color:var(--muted)}
.empty small{display:block;margin:.4rem 0 .8rem}

/* botões e campos */
.btn{display:inline-flex;align-items:center;gap:.35rem;justify-content:center;border:1.5px solid var(--petroleo);background:transparent;color:var(--petroleo);padding:.55rem .95rem;border-radius:999px;font-weight:600;font-size:.88rem;cursor:pointer;min-height:40px}
.btn:hover{background:rgba(28,69,74,.08)}.btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:var(--petroleo);color:var(--creme)}.btn.primary:hover{background:#163a3e}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.ghost{border-color:transparent}.btn.danger.ghost{background:transparent;color:var(--bad);border-color:transparent}
.btn.block{width:100%}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--petroleo);cursor:pointer}
.icon-btn:hover{background:rgba(28,69,74,.1)}.icon-btn.light{color:var(--creme)}.icon-btn.light:hover{background:rgba(241,235,221,.15)}.icon-btn.danger{color:var(--bad)}
.field{display:block;margin-bottom:.8rem}.lbl{display:block;font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}
.inp{width:100%;border:1.5px solid var(--line);background:#fff;border-radius:8px;padding:.5rem .6rem;min-height:40px;font-size:.92rem}
.inp:focus,.btn:focus-visible,.icon-btn:focus-visible,.nav-item:focus-visible{outline:2.5px solid var(--oliva);outline-offset:1px}
.inp.r{text-align:right}textarea.inp{resize:vertical}
.check{display:flex;align-items:center;gap:.5rem;cursor:pointer;min-height:36px}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--oliva)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}.span2{grid-column:1/-1}
.form-err{color:var(--bad);min-height:1.2em;margin:.2rem 0 .8rem;font-size:.88rem}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.9rem 0}

/* login */
.login{min-height:100dvh;display:grid;place-items:center;padding:1.2rem;background:var(--creme);position:relative;overflow:hidden}
.login-card{position:relative;z-index:1;width:min(400px,100%);background:#fff;border-radius:18px;padding:2rem 1.6rem;box-shadow:0 10px 40px rgba(91,25,48,.12)}
.login-logo{display:block;width:210px;max-width:80%;margin:0 auto 1rem}
.login-sub{text-align:center;color:var(--vinho);font-weight:600;margin:0 0 1.4rem;letter-spacing:.04em}
.login-help{display:block;text-align:center;color:var(--muted);margin-top:1rem}
.login-olive{position:absolute;right:-60px;bottom:-60px;width:260px;opacity:.14}

/* shell */
.topbar{position:sticky;top:0;z-index:20;height:var(--top-h);background:var(--petroleo);color:var(--creme);display:flex;align-items:center;justify-content:space-between;padding:0 .8rem}
.top-logo{height:30px}.top-user{display:flex;align-items:center;gap:.2rem;font-size:.82rem}
.who{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who em{font-style:normal;opacity:.7}
.layout{display:block}
.nav{position:fixed;bottom:0;left:0;right:0;z-index:20;height:var(--nav-h);background:#fff;border-top:1px solid var(--line);display:flex;overflow-x:auto;padding-bottom:env(safe-area-inset-bottom)}
.nav-item{flex:1 0 52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--muted);font-size:.66rem;font-weight:600;min-width:52px}
.nav-item.active{color:var(--vinho);box-shadow:inset 0 3px 0 var(--vinho)}
.view{padding:1rem .9rem calc(var(--nav-h) + 1.5rem);max-width:1200px;margin:0 auto;outline:0}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
@media(min-width:860px){
 .layout{display:grid;grid-template-columns:200px 1fr;min-height:calc(100dvh - var(--top-h))}
 .nav{position:sticky;top:var(--top-h);height:calc(100dvh - var(--top-h));flex-direction:column;border-top:0;border-right:1px solid var(--line);padding:1rem .6rem;overflow:visible;align-self:start}
 .nav-item{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:.7rem;padding:.7rem .8rem;border-radius:10px;font-size:.9rem}
 .nav-item.active{background:var(--creme);box-shadow:none}
 .view{padding:1.6rem 1.8rem 3rem;width:100%}
 .who{max-width:none}
}

/* cartões e KPIs */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1rem}
.kpi{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--caramelo);border-radius:var(--r);padding:.7rem .9rem}
.kpi span{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.kpi b{font-size:1.25rem;color:var(--petroleo)}
.kpi.good{border-left-color:var(--oliva)}.kpi.bad{border-left-color:var(--bad)}.kpi.bad b{color:var(--bad)}.kpi.warn{border-left-color:var(--caramelo)}
.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.row-link{display:flex;justify-content:space-between;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:.9rem}
.row-link:last-child{border:0}
.bar{height:9px;background:var(--line);border-radius:9px;overflow:hidden;margin:.4rem 0}.bar i{display:block;height:100%;background:var(--oliva);border-radius:9px}
.chip{display:inline-block;background:var(--creme);color:var(--vinho);border-radius:999px;padding:.12rem .6rem;font-size:.75rem;font-weight:600}

/* meses, abas, segmentos, toolbar */
.month-nav{display:flex;align-items:center;gap:.4rem;margin-bottom:.9rem}.month-label{min-width:150px;text-align:center;color:var(--vinho)}.month-label::first-letter{text-transform:uppercase}
.tabs,.seg{display:inline-flex;background:var(--creme);border-radius:999px;padding:3px;margin-bottom:1rem;max-width:100%;overflow-x:auto}
.seg{margin:0}
.tabs button,.seg button{border:0;background:transparent;border-radius:999px;padding:.5rem 1rem;font-weight:600;font-size:.86rem;color:var(--petroleo);cursor:pointer;white-space:nowrap;min-height:38px}
.tabs button.on,.seg button.on,.seg button[aria-pressed=true]{background:var(--petroleo);color:var(--creme)}
.toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}.toolbar .inp{width:auto;min-width:140px}
.inline{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--muted)}

/* CRM */
.kanban{display:flex;gap:.7rem;overflow-x:auto;padding-bottom:.8rem;align-items:flex-start;scroll-snap-type:x proximity}
.kcol{flex:0 0 250px;background:var(--creme);border-radius:var(--r);padding:.6rem;scroll-snap-align:start;border-top:4px solid var(--caramelo)}
.kcol.over{outline:2px dashed var(--oliva)}.kcol.ganho{border-top-color:var(--oliva)}.kcol.perdido{border-top-color:var(--bad)}.kcol.standby{border-top-color:var(--muted)}
.kcol header{display:flex;justify-content:space-between;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--petroleo);margin-bottom:.5rem}
.kcol header b{background:#fff;border-radius:999px;padding:0 .5rem}
.kbody{display:flex;flex-direction:column;gap:.5rem;min-height:40px}
.kempty{color:var(--muted);font-size:.8rem;text-align:center;margin:.4rem 0}
.lead-card{background:#fff;border-radius:10px;padding:.65rem .75rem;cursor:grab;border:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem}
.lead-card.overdue{border-color:var(--bad)}.lead-card:focus-visible{outline:2.5px solid var(--oliva)}
.lead-card .sub{color:var(--muted);font-size:.8rem}.meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.78rem;color:var(--muted);align-items:center}
.val{color:var(--oliva);font-weight:700}.next{display:flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--muted)}.next.late{color:var(--bad);font-weight:600}
.tbl-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
.tbl{border-collapse:collapse;width:100%;font-size:.86rem}.tbl th{background:var(--creme);color:var(--petroleo);text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.tbl th,.tbl td{padding:.55rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}.tbl tr:hover td{background:#fbf8f1}.tbl tbody tr{cursor:pointer}

/* Operação */
.donuts{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.7rem;margin-bottom:1.2rem}
.donut-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.8rem .5rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.donut-card b{font-size:.72rem;line-height:1.2;color:var(--petroleo)}.donut-card small{color:var(--muted)}
.donut{position:relative;width:70px;height:70px;border-radius:50%;display:grid;place-items:center}
.donut::before{content:"";position:absolute;inset:9px;background:#fff;border-radius:50%}.donut span{position:relative;font-weight:700;font-size:.8rem;color:var(--petroleo)}
.op-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:.9rem}
.op-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.9rem}
.op-card header{display:flex;justify-content:space-between;color:var(--petroleo)}.op-card header span{color:var(--muted);font-size:.85rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.op-chip{display:inline-flex;align-items:center;gap:.4rem;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .7rem;font-size:.76rem;cursor:pointer;min-height:36px}
.op-chip small{color:var(--muted);font-size:.68rem}.op-chip .tick{width:16px;height:16px;border:1.5px solid var(--caramelo);border-radius:50%;display:inline-grid;place-items:center}
.op-chip.done{background:var(--oliva);border-color:var(--oliva);color:#fff}.op-chip.done small{color:#e6e8c8}.op-chip.done .tick{border-color:#fff}
.op-chip.late{border-color:var(--bad);color:var(--bad)}.op-chip.late .tick{border-color:var(--bad)}
.checklist{display:flex;flex-direction:column;margin:.5rem 0}.inline-add{display:flex;gap:.5rem;margin-top:.6rem}

/* Fluxo */
.flow-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.9rem}
.flow-card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--vinho);border-radius:var(--r);padding:.9rem}
.flow-card h3{margin-bottom:.3rem}.flow-card ul,.flow-card ol{padding-left:1.1rem;margin:.5rem 0 0;font-size:.88rem}.resp{color:var(--muted)}

/* tabelas em grade (financeiro, carteira) */
.gt{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:1rem}
.gt-head,.gt-row{display:grid;grid-template-columns:var(--cols);gap:.4rem;align-items:center;padding:.35rem .6rem}
.gt-head{background:var(--creme);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--petroleo)}
.gt-row{border-top:1px solid var(--line);font-size:.86rem;width:100%;text-align:left;background:transparent;border-left:0;border-right:0;border-bottom:0}
.gt-row.link{cursor:pointer}.gt-row.link:hover{background:#fbf8f1}.gt-row.total{background:var(--creme);font-weight:700}.gt-row.off{opacity:.55}
.gt-cell.r{text-align:right}.gt-cell .inp{min-height:34px;padding:.3rem .45rem;font-size:.84rem}.gt-cell.act{text-align:right}
.inp.st.RECEBIDO,.inp.st.PAGO{background:#eef0d4;border-color:var(--oliva);color:var(--good);font-weight:600}
.inp.st.RECEBER,.inp.st.PAGAR{background:#f6ecd9;border-color:var(--caramelo);color:var(--warn);font-weight:600}
.chart{width:100%;height:auto;display:block}.legend{font-size:.8rem;color:var(--muted);margin-bottom:.4rem}
.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:.6rem}.dot.oliva{background:var(--oliva)}.dot.vinho{background:var(--vinho)}
.card .chart{margin-top:.2rem}.card{margin-bottom:1rem}
@media(max-width:759px){
 .gt-head{display:none}
 .gt-row{grid-template-columns:1fr 1fr;padding:.7rem}
 .gt-cell::before{content:attr(data-label);display:block;font-size:.66rem;font-weight:600;color:var(--muted);text-transform:uppercase}
 .gt-cell[data-label=""]::before{display:none}.gt-cell.r{text-align:left}
 .gt-cell:first-child{grid-column:1/-1}
 .gt-row.total .gt-cell:first-child{font-size:1rem}
 .form-grid{grid-template-columns:1fr}.month-label{min-width:0;flex:1}
}

/* planos e equipe */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}.plan{margin:0}
.plan-head{display:flex;gap:.4rem;align-items:center;margin-bottom:.6rem}.plan-name{font-weight:700;color:var(--vinho)}
.plan-fields,.param-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .7rem}.param-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.plan-line{display:flex;justify-content:space-between;font-size:.88rem;padding:.2rem 0}.plan-out hr{border:0;border-top:1px solid var(--line);margin:.5rem 0}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.person.off{opacity:.6}
.person-head{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.6rem}.person-row{display:flex;gap:.8rem;align-items:center;margin-bottom:.4rem}.person-row .inp{width:auto}
.mods{display:grid;grid-template-columns:1fr 1fr}.steps{padding-left:1.2rem}.steps li{margin:.4rem 0}

/* modal e aviso */
.modal-back{position:fixed;inset:0;z-index:100;background:rgba(28,20,22,.5);display:flex;align-items:flex-end;justify-content:center}
.modal{background:#fff;width:100%;max-width:560px;max-height:92dvh;display:flex;flex-direction:column;border-radius:18px 18px 0 0}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem .4rem 1.2rem}.modal-body{padding:.4rem 1.2rem 1rem;overflow:auto}
.modal-foot{display:flex;gap:.5rem;justify-content:flex-end;padding:.8rem 1.2rem calc(.8rem + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
@media(min-width:700px){.modal-back{align-items:center}.modal{border-radius:18px}}
#toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 14px);transform:translate(-50%,20px);background:var(--petroleo);color:var(--creme);padding:.65rem 1.1rem;border-radius:999px;font-size:.88rem;opacity:0;pointer-events:none;transition:.2s;z-index:200;max-width:92vw}
#toast.show{opacity:1;transform:translate(-50%,0)}#toast.err{background:var(--bad)}
@media(min-width:860px){#toast{bottom:24px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
