/* EngMais — painel */
:root{
  --navy:#0A1B33; --navy-2:#10284A; --navy-3:#1B3A66;
  --amber:#F5A623; --amber-2:#FFC857; --amber-d:#D98A0B;
  --bg:#F5F3EE; --card:#fff; --ink:#0F172A; --muted:#64748B; --line:#E7E3DA;
  --ok:#12805C; --ok-bg:#DDF4EA; --warn:#B45309; --warn-bg:#FEF0D2; --danger:#B42318; --danger-bg:#FDE4E1; --info:#1D4ED8; --info-bg:#E0EBFF;
  --r:14px; --shadow:0 1px 2px rgba(10,27,51,.05),0 8px 24px -12px rgba(10,27,51,.12);
  --font:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; --serif:'Fraunces',Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}
a{color:var(--navy-3);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{margin:0;line-height:1.2;color:var(--navy)}
h1{font-family:var(--serif);font-weight:600;font-size:1.85rem;letter-spacing:-.01em}
h2{font-size:1.05rem;font-weight:650}h3{font-size:1rem}
p{margin:.25rem 0}
small{color:var(--muted)}.muted{color:var(--muted)}.center{text-align:center}.small{font-size:.85rem}.block{display:block}
.ic{flex:none;vertical-align:-4px}
button{font:inherit;cursor:pointer}
code.pwd{background:#fff;border:1px dashed var(--amber-d);padding:.1rem .5rem;border-radius:6px;font-size:1rem;letter-spacing:.04em}

/* brand */
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--navy);text-decoration:none!important}
.brand b{color:var(--amber-d);font-weight:600}.brand.light{color:#fff}.brand.light b{color:var(--amber-2)}
.logo-mark{display:block;flex:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.65rem 1.05rem;border-radius:11px;border:1px solid transparent;font-weight:600;font-size:.92rem;text-decoration:none!important;transition:transform .15s,box-shadow .15s,background .15s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:default;transform:none}
.btn-primary{background:var(--navy);color:#fff;box-shadow:0 6px 16px -8px rgba(10,27,51,.6)}.btn-primary:hover{background:var(--navy-3)}
.btn-amber{background:var(--amber);color:var(--navy)}.btn-amber:hover{background:var(--amber-2)}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--navy)}.btn-ghost:hover{border-color:#cfc9bb}
.btn-google{background:#fff;border-color:#dadce0;color:#3c4043;display:inline-flex;align-items:center;justify-content:center;gap:.65rem;font-weight:600}.btn-google:hover{background:#f8f9fa;border-color:#c6c9cd}
.or-line{display:flex;align-items:center;gap:.8rem;color:var(--muted,#7a8494);font-size:.82rem;margin:.9rem 0 .2rem}.or-line::before,.or-line::after{content:"";flex:1;height:1px;background:var(--line)}
.btn-ok{background:var(--ok);color:#fff}.btn-warn{background:var(--warn-bg);color:var(--warn);border-color:#f3d79a}
.btn-danger-ghost{background:transparent;color:var(--danger);border-color:transparent}.btn-danger-ghost:hover{background:var(--danger-bg)}
.btn-sm{padding:.4rem .75rem;font-size:.84rem;border-radius:9px}.btn-block{width:100%}
.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border:0;background:transparent;border-radius:10px;color:inherit}
.icon-btn:hover{background:rgba(120,120,120,.14)}.icon-btn.sm{width:30px;height:30px}

/* forms */
.form{display:flex;flex-direction:column;gap:.9rem}
.form label,.form .lbl{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.86rem;color:var(--navy)}
.form label small{font-weight:400}
input,select,textarea{font:inherit;color:inherit;padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;background:#fff;width:100%;transition:border .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--amber-d);box-shadow:0 0 0 3px rgba(245,166,35,.22)}
input[type=checkbox],input[type=radio]{width:auto}
input[type=range]{padding:0;accent-color:var(--amber-d)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}
.form-grid .span2{grid-column:1/-1}.form-grid.narrow{max-width:640px}
.form-actions{display:flex;justify-content:flex-end;gap:.6rem;flex-wrap:wrap}
fieldset{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem}legend{font-weight:600;font-size:.86rem;padding:0 .4rem}
.checks{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.form label.check,.check{flex-direction:row;align-items:center;gap:.5rem;font-weight:500}
.inline-form{display:flex;gap:.6rem;align-items:center}.inline-form.wrap{flex-wrap:wrap}.inline-form input,.inline-form select{flex:1;min-width:150px}
.inline-form .btn{flex:none}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.filters input,.filters select{width:auto;min-width:200px}
.seg{display:inline-flex;background:#ece8de;border-radius:11px;padding:3px;gap:2px}
.seg label{display:block!important}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:.45rem 1rem;border-radius:9px;font-weight:600;font-size:.88rem;color:var(--muted);cursor:pointer;transition:.15s}
.seg input:checked+span{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.seg em{font-style:normal;color:var(--ok);font-size:.75rem;margin-left:.2rem}
.dropzone{display:flex!important;flex-direction:column;align-items:center;gap:.3rem;padding:1.6rem 1rem;border:2px dashed #d5cfc0;border-radius:14px;background:#faf8f3;cursor:pointer;text-align:center;color:var(--navy-3);transition:.2s}
.dropzone:hover{border-color:var(--amber-d);background:#fff8ea}
.previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem;margin-top:.7rem}
.previews img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}

/* flashes / banners */
.flashes{display:grid;gap:.5rem;margin-bottom:1rem}
.flash{padding:.7rem 1rem;border-radius:11px;font-weight:500;font-size:.92rem;animation:pop .35s ease}
.flash-ok{background:var(--ok-bg);color:#0b5a41}.flash-erro{background:var(--danger-bg);color:var(--danger)}
@keyframes pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.banner{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.5rem;background:var(--navy);color:#fff;font-size:.9rem}.banner span{flex:1}.banner b{color:var(--amber-2)}
.alert-box{display:flex;gap:.7rem;align-items:center;padding:.8rem 1rem;background:var(--warn-bg);color:var(--warn);border-radius:12px;margin-bottom:1rem}
.alert-box.ok{background:var(--ok-bg);color:#0b5a41}.alert-box a{color:inherit;text-decoration:underline}

/* shell */
.shell{display:flex;min-height:100vh}
.sidebar{width:252px;flex:none;background:linear-gradient(180deg,var(--navy) 0%,#07142a 100%);color:#c7d2e4;display:flex;flex-direction:column;padding:1.2rem .9rem;position:sticky;top:0;height:100vh}
.sidebar .brand{padding:.2rem .5rem 1.3rem}
.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto}
.sidebar nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border-radius:10px;color:#c7d2e4;font-weight:500;font-size:.92rem;transition:.15s;text-decoration:none}
.sidebar nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar nav a.on{background:linear-gradient(90deg,rgba(245,166,35,.22),rgba(245,166,35,.06));color:#fff;box-shadow:inset 3px 0 0 var(--amber)}
.nav-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:#6f829f;padding:1rem .8rem .3rem}
.side-foot{display:flex;align-items:center;gap:.4rem;border-top:1px solid rgba(255,255,255,.1);padding-top:.8rem;margin-top:.6rem}
.side-foot .me{display:flex;gap:.6rem;align-items:center;flex:1;min-width:0;color:#fff;text-decoration:none}
.side-foot .me span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.2}.side-foot small{color:#8ea0bd;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-foot .icon-btn{color:#c7d2e4}
.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--amber);color:var(--navy);font-weight:700;font-size:.8rem;flex:none}
.avatar.sm{width:28px;height:28px;font-size:.68rem}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:none;align-items:center;gap:.6rem;padding:.6rem 1rem;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-right{margin-left:auto}.plan-chip{background:#fff3d6;color:var(--warn);font-weight:600;font-size:.78rem;padding:.25rem .7rem;border-radius:99px}
.content{padding:1.8rem 2rem 3rem;max-width:1240px;width:100%;margin:0 auto}
.scrim{display:none}

/* blocks */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.4rem;flex-wrap:wrap}
.page-head.slim{margin-bottom:1rem;align-items:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.3rem;box-shadow:var(--shadow);margin-bottom:1.2rem}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.9rem;flex-wrap:wrap}
.link{font-weight:600;font-size:.86rem}
.grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:1.2rem;align-items:start}.stack>.card:last-child{margin-bottom:1.2rem}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.1rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-bottom:1.3rem}
.kpi{display:flex;gap:.9rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--shadow);animation:rise .5s both}
.kpi:nth-child(2){animation-delay:.06s}.kpi:nth-child(3){animation-delay:.12s}.kpi:nth-child(4){animation-delay:.18s}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.kpi-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eef2f9;color:var(--navy-3);flex:none}.kpi-ic.pos{background:var(--ok-bg);color:var(--ok)}
.kpi small{display:block}.kpi strong{display:block;font-size:1.3rem;color:var(--navy);line-height:1.2;white-space:nowrap}.kpi em{font-style:normal;font-size:.78rem;color:var(--warn)}
.kpi-warn .kpi-ic{background:var(--warn-bg);color:var(--warn)}
.empty{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;padding:1.6rem 1rem;color:var(--muted)}.empty.wide{grid-column:1/-1;background:#fff;border:1px dashed var(--line);border-radius:var(--r)}
.empty-cell{text-align:center;color:var(--muted);padding:1.6rem!important}
.err-code{font-family:var(--serif);font-size:5rem;color:var(--amber-d);line-height:1}

.row-obra,.row-cp{display:flex;align-items:center;gap:.9rem;padding:.75rem 0;border-top:1px solid var(--line);color:inherit;text-decoration:none!important}
.row-obra:first-of-type,.row-cp:first-of-type{border-top:0}.row-obra:hover strong,.row-cp:hover strong{color:var(--amber-d)}
.row-obra-main{flex:1;min-width:0;display:flex;flex-direction:column}.row-obra-main strong{color:var(--navy);transition:.15s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-obra-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb{width:48px;height:48px;border-radius:11px;background:#eef2f9;display:grid;place-items:center;color:var(--muted);overflow:hidden;flex:none}.thumb img{width:100%;height:100%;object-fit:cover}
.prog-wrap{display:flex;align-items:center;gap:.6rem;min-width:130px}.prog-wrap b{font-size:.85rem;width:2.6rem;text-align:right}
.prog{height:8px;background:#ece8de;border-radius:99px;overflow:hidden;flex:1;width:100%}.prog.thin{height:6px}
.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--amber-2));border-radius:99px;animation:grow 1s cubic-bezier(.2,.8,.2,1) both}
.prog-danger i{background:linear-gradient(90deg,#d92d20,#f97066)}
@keyframes grow{from{width:0!important}}
.tag{display:inline-block;padding:.12rem .6rem;border-radius:99px;font-size:.74rem;font-weight:650;background:#eef2f9;color:var(--navy-3);border:0}
.tag-andamento{background:var(--info-bg);color:var(--info)}.tag-planejamento{background:#efe9ff;color:#6d28d9}.tag-pausada{background:var(--warn-bg);color:var(--warn)}.tag-concluida,.tag-aprovado{background:var(--ok-bg);color:var(--ok)}
.tag-pendente{background:var(--warn-bg);color:var(--warn)}.tag-ajustes{background:var(--danger-bg);color:var(--danger)}.tag-btn{cursor:pointer}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.2rem}
.chip{padding:.4rem .9rem;border-radius:99px;background:#fff;border:1px solid var(--line);font-size:.86rem;font-weight:600;color:var(--muted);text-decoration:none!important}
.chip.on,.chip:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

.obra-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.2rem;box-shadow:var(--shadow);color:inherit;text-decoration:none!important;transition:.2s}
.obra-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -14px rgba(10,27,51,.3);border-color:#dcd5c4}
.obra-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7rem}.obra-card h3{font-size:1.1rem;margin-bottom:.1rem}.obra-card .prog-wrap{margin-top:1rem}

.crumb{font-size:.86rem;font-weight:600;color:var(--muted)}
.obra-head-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;margin:.4rem 0 1rem}
.obra-head-side{display:flex;gap:.9rem;align-items:center}
.ring{--p:0;width:58px;height:58px;border-radius:50%;background:conic-gradient(var(--amber) calc(var(--p)*1%),#ece8de 0);display:grid;place-items:center;position:relative;flex:none}
.ring::before{content:'';position:absolute;inset:6px;background:var(--bg);border-radius:50%}.ring span{position:relative;font-weight:700;font-size:.8rem;color:var(--navy)}
.ring.sm{width:44px;height:44px}.ring.sm::before{inset:5px;background:#fff}.ring.sm span{font-size:.7rem}
.tabs{display:flex;gap:.2rem;border-bottom:1px solid var(--line);margin-bottom:1.4rem;overflow-x:auto}
.tabs a{padding:.7rem 1rem;font-weight:600;font-size:.9rem;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none!important;margin-bottom:-1px}
.tabs a:hover{color:var(--navy)}.tabs a.on{color:var(--navy);border-color:var(--amber)}
.dot{font-style:normal;background:var(--amber);color:var(--navy);border-radius:99px;font-size:.68rem;padding:.05rem .4rem;margin-left:.35rem}

.dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0}.dl dt{color:var(--muted);font-size:.88rem}.dl dd{margin:0;font-weight:600;text-align:right}
.usage{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem}.usage-l{display:flex;justify-content:space-between;font-size:.88rem;margin:.5rem 0 .3rem}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:1rem}.mini-stats small{display:block}.mini-stats b{font-size:.95rem}
.pos{color:var(--ok)!important}.warn{color:var(--warn)}

/* timeline */
.timeline{position:relative;padding-left:1.7rem}.timeline::before{content:'';position:absolute;left:8px;top:8px;bottom:0;width:2px;background:var(--line)}
.tl-item{position:relative}.tl-dot{position:absolute;left:-1.7rem;top:1.3rem;width:18px;height:18px;border-radius:50%;background:#fff;border:4px solid var(--amber)}
.tl-aprovado{border-color:var(--ok)}.tl-ajustes{border-color:var(--danger)}
.tl-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.tl-top h3{font-size:1.05rem;color:var(--navy)}.tl-right{display:flex;gap:.6rem;align-items:center}
.photos{display:flex;gap:.5rem;margin-top:.8rem;flex-wrap:wrap}.photos img{width:104px;height:104px;object-fit:cover;border-radius:11px;cursor:zoom-in;transition:.2s}.photos img:hover{transform:scale(1.04)}
.photos .more{display:grid;place-items:center;width:104px;height:104px;border-radius:11px;background:#eef2f9;font-weight:700}
.delta{display:flex;align-items:center;gap:1.1rem;padding:1rem 0;flex-wrap:wrap}.delta small{display:block}.delta b{font-size:1.5rem;font-family:var(--serif)}.delta .arrow{color:var(--amber-d)}
.delta-badge{background:var(--ok-bg);color:var(--ok);font-weight:700;padding:.2rem .7rem;border-radius:99px}.delta-badge.neg{background:var(--danger-bg);color:var(--danger)}
.obs{background:#faf8f3;border-left:3px solid var(--amber);padding:.7rem 1rem;border-radius:0 10px 10px 0}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.7rem;margin-top:1rem}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;cursor:zoom-in;transition:.2s}.gallery img:hover{transform:scale(1.02)}
.lightbox{position:fixed;inset:0;background:rgba(6,14,28,.92);z-index:100;display:grid;place-items:center;padding:2rem;animation:pop .2s}.lightbox[hidden]{display:none}
.lightbox img{max-width:100%;max-height:100%;border-radius:10px}.lightbox .icon-btn{position:absolute;top:1rem;right:1rem;color:#fff}

/* checklist */
.cl-progress{display:flex;align-items:center;gap:.7rem;min-width:170px}.cl-count{font-weight:700;font-size:.85rem}
.cl-items{list-style:none;margin:0 0 .8rem;padding:0}
.cl-items li{display:flex;align-items:center;gap:.7rem;padding:.55rem 0;border-top:1px solid var(--line)}.cl-items li:first-child{border-top:0}
.cl-items label{display:flex;align-items:center;gap:.7rem;flex:1;cursor:pointer}.cl-items input{position:absolute;opacity:0}
.box{width:22px;height:22px;border-radius:7px;border:2px solid #cfc9bb;display:grid;place-items:center;color:transparent;transition:.2s;flex:none}
.cl-items input:checked+.box{background:var(--ok);border-color:var(--ok);color:#fff;transform:scale(1.05)}
.cl-items li.done .txt{text-decoration:line-through;color:var(--muted)}.cl-items .who{font-size:.74rem;white-space:nowrap}
.cl-del{margin-top:.6rem}

/* tables */
.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}
.table th{text-align:left;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:.55rem .7rem;border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:.7rem;border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#faf8f3}
.r{text-align:right!important;white-space:nowrap}.actions{display:flex;gap:.2rem;justify-content:flex-end}.actions form{margin:0}
.file-ic{color:var(--amber-d);margin-right:.2rem}.stars{color:var(--amber);letter-spacing:.1em}.stars i{font-style:normal;color:#dcd6c6}
.big-pct{font-family:var(--serif);font-size:2.6rem;font-weight:600;color:var(--navy);margin-bottom:.4rem}.sub{margin:1.2rem 0 .5rem}
.cat-row{display:grid;grid-template-columns:130px 1fr auto;gap:.8rem;align-items:center;font-size:.88rem;padding:.3rem 0}
.print-title{display:none}
.no-print-inline{display:inline;margin:0}

/* chat */
.chat-layout{display:grid;grid-template-columns:1fr 260px;gap:1.2rem;align-items:start}
.chat{padding:0;display:flex;flex-direction:column;height:min(640px,calc(100vh - 300px));min-height:420px;overflow:hidden}
.chat-msgs{flex:1;overflow-y:auto;padding:1.2rem;display:flex;flex-direction:column;gap:.5rem;background:linear-gradient(180deg,#faf8f3,#f4f1e9)}
.msg{max-width:78%;padding:.55rem .85rem;border-radius:14px 14px 14px 4px;background:#fff;border:1px solid var(--line);align-self:flex-start;animation:pop .25s}
.msg.me{align-self:flex-end;background:var(--navy);color:#fff;border-color:var(--navy);border-radius:14px 14px 4px 14px}
.msg .who{display:block;font-size:.72rem;font-weight:700;color:var(--amber-d);margin-bottom:.1rem}.msg.me .who{display:none}
.msg .txt{white-space:pre-wrap;word-break:break-word}.msg time{display:block;text-align:right;font-size:.68rem;opacity:.6;margin-top:.15rem}
.day{align-self:center;font-size:.72rem;color:var(--muted);background:#ece8de;padding:.1rem .7rem;border-radius:99px;margin:.4rem 0}
.chat-form{display:flex;gap:.6rem;padding:.8rem;border-top:1px solid var(--line);background:#fff}
.chat-side h3{margin-bottom:.8rem}.member{display:flex;gap:.6rem;align-items:center;padding:.4rem 0}.member small{display:block;line-height:1.1}
.member.big{padding:.8rem 0;border-top:1px solid var(--line)}.member.big:first-of-type{border-top:0}.member.off{opacity:.5}.grow{flex:1;min-width:0}.grow small{display:block}
.upsell{text-align:center;padding:2.5rem 1.5rem;max-width:560px;margin:2rem auto}.upsell-ic{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:18px;background:#fff3d6;color:var(--amber-d);margin-bottom:1rem}

/* plans (assinatura) */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem;margin-bottom:1rem}
.plan{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--shadow)}
.plan.feat{border:2px solid var(--amber)}.plan.picked{box-shadow:0 0 0 4px rgba(245,166,35,.35),var(--shadow)}.plan.current{background:#f9f6ee}
.ribbon{position:absolute;top:-11px;left:1.3rem;background:var(--amber);color:var(--navy);font-size:.72rem;font-weight:700;padding:.15rem .7rem;border-radius:99px}
.price{margin:.6rem 0;display:flex;align-items:baseline;gap:.3rem}.price span{font-family:var(--serif);font-size:2.4rem;font-weight:600;color:var(--navy)}
.plan ul{list-style:none;padding:0;margin:.4rem 0 1rem;display:grid;gap:.4rem;flex:1;font-size:.9rem}.plan li{display:flex;gap:.5rem;align-items:center}.plan li .ic{color:var(--ok)}.plan li.off{color:#a3a9b3}.plan li.off .ic{color:#c4c9d1}

/* admin */
body.adm{background:var(--bg)}
.adm-top{display:flex;align-items:center;gap:1.2rem;padding:.7rem 1.5rem;background:var(--navy);position:sticky;top:0;z-index:30;flex-wrap:wrap}
.adm-top .brand{font-size:1.25rem}.adm-tag{font-style:normal;font-family:var(--font);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--amber);color:var(--navy);padding:.1rem .5rem;border-radius:99px;margin-left:.3rem}
.adm-nav{display:flex;gap:.2rem;flex:1;flex-wrap:wrap}
.adm-nav a{color:#c7d2e4;font-weight:600;font-size:.88rem;padding:.45rem .8rem;border-radius:9px;text-decoration:none!important}
.adm-nav a:hover{background:rgba(255,255,255,.08);color:#fff}.adm-nav a.on{background:rgba(245,166,35,.2);color:#fff}
.content.wide{max-width:1360px}
.flash-senha{background:#fff8e1;border:1px dashed var(--amber-d);color:#5b3b00;font-family:ui-monospace,Consolas,monospace;word-break:break-all}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:start}
.kpis.sm{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpis.sm .kpi strong{font-size:1.15rem}
.funnel{display:grid;gap:.6rem}.fn-row{display:grid;grid-template-columns:190px 1fr 190px;gap:.9rem;align-items:center;font-size:.9rem}
.fn-bar{height:26px;background:#ece8de;border-radius:8px;overflow:hidden}.fn-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--navy-3),#3b6fb8);border-radius:8px;animation:grow 1s var(--ease,ease) both}
.fn-row:nth-child(n+3) .fn-bar i{background:linear-gradient(90deg,#d98a0b,var(--amber))}.fn-row:last-child .fn-bar i{background:linear-gradient(90deg,#0f7a56,#22b07d)}
.fn-num b{font-size:1.15rem;color:var(--navy)}.fn-num small{display:block;line-height:1.2}
.bars2{display:flex;align-items:flex-end;gap:.35rem;height:140px}.b2-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;height:100%}
.b2-stack{flex:1;width:100%;display:flex;align-items:flex-end;gap:2px}.b2-stack i{flex:1;border-radius:4px 4px 0 0;min-height:2px}
.b2-stack .v{background:#b8c6de}.b2-stack .c{background:var(--amber)}.b2-col small{font-size:.66rem}
i.lg{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px}i.lg.v{background:#b8c6de}i.lg.c{background:var(--amber)}
.table.dense td,.table.dense th{padding:.5rem .6rem;font-size:.84rem}
.row-actions{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.row-actions form{margin:0}
.inline-form.tight{gap:.4rem}.inline-form.tight input,.inline-form.tight select{min-width:0;padding:.45rem .6rem;font-size:.85rem}
.btn-xs{padding:.28rem .6rem;font-size:.78rem;border-radius:8px}
.card.danger{border-color:#f2c3bd;background:#fffafa}
.kv{display:grid;grid-template-columns:150px 1fr;gap:.35rem .8rem;font-size:.9rem}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-word}
.ok-dot,.no-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:.4rem}.ok-dot{background:#22b07d}.no-dot{background:#d92d20}
.urlbuilder{display:grid;gap:.6rem}.urlbuilder output{display:block;word-break:break-all;background:#0A1B33;color:#c7f0d8;padding:.7rem .9rem;border-radius:10px;font-family:ui-monospace,Consolas,monospace;font-size:.82rem}
.steps-list{padding-left:1.1rem;line-height:1.7}.steps-list li{margin:.25rem 0}
@media (max-width:980px){.grid-3{grid-template-columns:1fr}.fn-row{grid-template-columns:1fr;gap:.2rem}}

/* pagamento */
.pix-wrap{display:grid;place-items:center}
.pix-card{width:min(480px,100%);text-align:center;display:flex;flex-direction:column;gap:.9rem;align-items:center}
.pix-card .dl{width:100%;text-align:left}
.pix-qr{width:min(260px,70%);aspect-ratio:1;border:1px solid var(--line);border-radius:16px;padding:.6rem;background:#fff;image-rendering:pixelated}
.pix-valor{font-family:var(--serif);font-size:2.2rem;font-weight:600;color:var(--navy)}
.pix-copy{width:100%;text-align:left;font-weight:600;font-size:.86rem;color:var(--navy);display:flex;flex-direction:column;gap:.35rem}
.pix-copy input{font-family:ui-monospace,Consolas,monospace;font-size:.78rem}
.pix-wait{display:flex;gap:.6rem;align-items:center;color:var(--muted);font-weight:500}
.pulse{width:10px;height:10px;border-radius:50%;background:var(--amber);animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(.7);opacity:.6}50%{transform:scale(1.25);opacity:1}}
.pay-form{display:grid;gap:.5rem}.neg{color:var(--danger)}
.banner-warn{background:var(--warn-bg);color:var(--warn)}.banner-warn b{color:inherit}
.wa-link{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;margin:.6rem .2rem 0;padding:.6rem .8rem;border-radius:10px;background:rgba(37,211,102,.12);color:#8ff0b6;font-size:.86rem;font-weight:600;text-decoration:none!important;transition:.15s}
.wa-link:hover{background:rgba(37,211,102,.22);color:#fff}.wa-link small{flex-basis:100%;color:#7fb896;font-weight:400;padding-left:1.7rem;margin-top:-.2rem}
.auth-legal{font-size:.74rem;color:var(--muted);text-align:center;margin-top:.6rem}
.auth-card .forgot{font-size:.86rem;text-align:right;margin-top:-.3rem}

/* auth */
.auth-body{background:var(--bg);min-height:100vh;display:grid;place-items:center;padding:1rem}
.auth-wrap{display:grid;grid-template-columns:1fr 1fr;width:min(960px,100%);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(10,27,51,.45);animation:rise .6s both}
.auth-side{background:radial-gradient(circle at 20% 0%,#1e4a86 0%,transparent 55%),linear-gradient(160deg,var(--navy),#06122a);color:#fff;padding:2.6rem;display:flex;flex-direction:column;gap:1.6rem}
.auth-side h2{font-family:var(--serif);font-weight:500;font-size:1.9rem;color:#fff;line-height:1.2;margin-top:auto}
.auth-side ul{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.8rem;color:#c7d2e4}.auth-side li{display:flex;gap:.7rem;align-items:center}.auth-side li .ic{color:var(--amber-2)}
.auth-card{padding:2.6rem;display:flex;flex-direction:column;gap:.7rem;justify-content:center}
.auth-body>.auth-card{background:#fff;border-radius:24px;box-shadow:var(--shadow)}
.auth-card h1{font-size:1.8rem}.auth-card .form{margin:.6rem 0 .4rem}

@media (max-width:980px){
  .grid-2,.chat-layout{grid-template-columns:1fr}
}
@media (max-width:860px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:60;transform:translateX(-102%);transition:transform .25s;width:274px}
  body.menu-open .sidebar{transform:none}
  body.menu-open .scrim{display:block;position:fixed;inset:0;background:rgba(6,14,28,.55);z-index:50}
  .topbar{display:flex}.content{padding:1.2rem 1rem 2.5rem}
  h1{font-size:1.5rem}
  .auth-wrap{grid-template-columns:1fr}.auth-side{display:none}.auth-card{padding:1.8rem 1.4rem}
  .form-grid{grid-template-columns:1fr}
  .cat-row{grid-template-columns:100px 1fr auto}
  .msg{max-width:90%}
  .banner{padding:.6rem 1rem;flex-wrap:wrap}
  .inline-form:not(.wrap){flex-wrap:wrap}
}

@media print{
  .sidebar,.topbar,.banner,.tabs,.no-print,.crumb,.obra-head-side .btn,.flashes,.card:has(form.form){display:none!important}
  body{background:#fff}.content{padding:0;max-width:none}.card,.kpi{box-shadow:none;break-inside:avoid}
  .print-title{display:block;font-family:var(--serif);font-size:1.4rem;margin-bottom:1rem}
  .shell{display:block}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* cadastro enxuto: plano/empresa recolhidos */
.form details.more{border:1px dashed var(--line);border-radius:12px;padding:.55rem .8rem;background:#fbfaf6}
.form details.more summary{cursor:pointer;font-size:.86rem;color:var(--muted,#6b7686);list-style:none}
.form details.more summary::-webkit-details-marker{display:none}
.form details.more summary .link{color:var(--navy);text-decoration:underline}
.form details.more[open] summary{margin-bottom:.6rem}
.form details.more label{margin-top:.5rem}
/* faixa da demonstração pública */
.banner-demo{background:linear-gradient(90deg,#0A1B33,#16386b);color:#fff;border:0}
.banner-demo b{color:#FFC857}
.banner-demo .btn{margin-left:auto;white-space:nowrap}
@media (max-width:600px){.banner-demo{padding:.5rem 1rem;gap:.5rem}.banner-demo .ic{display:none}.banner-demo span{font-size:.82rem;line-height:1.3}}

/* diário de obra: vídeos na galeria, documentos anexados, prévia de arquivo não-imagem */
.gallery video{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:#0A1B33}
.diario-docs{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}
.diario-docs a{display:flex;align-items:center;gap:.5rem;padding:.55rem .8rem;background:#faf8f3;border:1px solid var(--line);border-radius:10px;font-weight:600;font-size:.88rem;color:var(--navy)}
.diario-docs a small{margin-left:auto;font-weight:500}
.previews video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.preview-file{display:flex;align-items:center;justify-content:center;text-align:center;padding:.4rem;aspect-ratio:1;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:.72rem;color:var(--muted);word-break:break-word}

/* RDO (diário de obra completo) */
.rdo-top{display:grid;grid-template-columns:200px 1fr;gap:1rem;align-items:end}
.seg.wrap{flex-wrap:wrap}
.rdo-bloco{margin-top:.6rem}
.rdo-rows{display:flex;flex-direction:column;gap:.4rem;margin:.35rem 0 .5rem}
.rdo-row{display:grid;grid-template-columns:1fr 84px;gap:.5rem}
.rdo-add{margin-bottom:.4rem}
.rdo-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem}
.rdo-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-top:.7rem}
.rdo-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}
.rdo-chips span{background:#f1efe8;border-radius:8px;padding:.18rem .55rem;font-size:.82rem;font-weight:600;color:var(--navy-3)}
.rdo-ocorrencia{margin-top:.7rem;padding:.6rem .8rem;background:var(--warn-bg);color:var(--warn);border-radius:10px;font-size:.9rem}
.rdo-tools{display:flex;justify-content:flex-end;margin-top:1.2rem}
@media (max-width:640px){.rdo-top{grid-template-columns:1fr}}

/* fila offline e avisos rápidos */
.offline-fila{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;background:var(--info-bg);color:var(--info);border-radius:12px;font-size:.9rem;font-weight:600;margin-top:1rem}
.offline-fila[hidden]{display:none}
#em-toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:80;width:min(92vw,460px)}
.em-toast-item{padding:.75rem 1rem;border-radius:12px;font-weight:600;font-size:.9rem;box-shadow:0 10px 30px -10px rgba(10,27,51,.5);background:var(--navy);color:#fff}
.em-toast-item.erro{background:var(--danger)}

/* cronograma: Gantt, curva S e etapas */
.gantt{position:relative;overflow-x:auto;padding-bottom:.2rem}
.g-row{display:grid;grid-template-columns:var(--nome) 1fr;align-items:center;min-height:34px;border-bottom:1px solid #f0ede4}
.g-row.g-head{min-height:24px;border-bottom:1px solid var(--line)}
.g-nome{font-size:.85rem;font-weight:600;color:var(--navy);padding-right:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-area{position:relative;height:26px;min-width:420px}
.g-mes{position:absolute;top:2px;font-size:.7rem;color:var(--muted);padding-left:3px;border-left:1px solid var(--line);height:100%}
.g-bar{position:absolute;top:3px;height:20px;border-radius:7px;overflow:hidden;display:flex;align-items:center}
.g-bar i{position:absolute;left:0;top:0;bottom:0;background:rgba(255,255,255,.38);pointer-events:none}
.g-bar span{position:relative;font-size:.7rem;font-weight:700;color:#fff;padding-left:.4rem;white-space:nowrap}
.g-concluida{background:var(--ok)}.g-andamento{background:var(--amber-d)}.g-atrasada{background:var(--danger)}.g-futura{background:#8aa0bf}
.g-hl{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2px dashed var(--navy);pointer-events:none;text-decoration:none}
.g-hoje-tag{position:absolute;top:2px;transform:translateX(-50%);font-size:.66rem;font-weight:700;background:var(--navy);color:#fff;border-radius:5px;padding:0 .35rem;z-index:2}
.gantt-leg{display:flex;gap:.5rem;align-items:center;font-size:.76rem;color:var(--muted);flex-wrap:wrap}
.lg{display:inline-block;width:12px;height:12px;border-radius:4px;margin-left:.4rem}
.lg-concluida{background:var(--ok)}.lg-andamento{background:var(--amber-d)}.lg-atrasada{background:var(--danger)}.lg-futura{background:#8aa0bf}
.lg-plan{background:#8aa0bf}.lg-real{background:var(--amber-d)}
.curva-s{width:100%;height:auto;display:block}
.cs-grade{stroke:#e9e5da;stroke-width:1}.cs-eixo{font-size:11px;fill:var(--muted)}
.cs-plan{fill:none;stroke:#8aa0bf;stroke-width:2.5;stroke-dasharray:6 4;stroke-linejoin:round}
.cs-real{fill:none;stroke:var(--amber-d);stroke-width:3.5;stroke-linejoin:round;stroke-linecap:round}
.cs-pt{fill:var(--amber-d);stroke:#fff;stroke-width:2}.cs-hoje{stroke:var(--navy);stroke-width:1.5;stroke-dasharray:4 3}
.etapa{padding:.7rem 0;border-bottom:1px solid var(--line)}.etapa:last-child{border-bottom:0}
.etapa-top{display:flex;justify-content:space-between;gap:.6rem;align-items:center}
.etapa-acoes{display:flex;gap:.5rem;align-items:center;margin-top:.4rem}
.etapa-acoes .inline-form{flex:1}.etapa-acoes input[type=range]{flex:1;min-width:90px;accent-color:var(--amber-d)}
.etapa-acoes output{font-weight:700;font-size:.85rem;width:2.8rem}
.tag-g-concluida{background:var(--ok-bg);color:var(--ok)}.tag-g-atrasada{background:var(--danger-bg);color:var(--danger)}
.tag-g-andamento{background:var(--warn-bg);color:var(--warn)}.tag-g-futura{background:#eef2f9;color:var(--navy-3)}

/* orçado × realizado */
.orc-edit{margin-top:.9rem}.orc-edit summary{cursor:pointer;font-weight:600;font-size:.88rem}
.orc-form{margin-top:.8rem}
.orc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.7rem 1rem;margin-bottom:.8rem}
.orc-grid label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.84rem;color:var(--navy)}

/* link de acompanhamento do cliente */
.link-copia{display:flex;gap:.5rem}.link-copia input{flex:1;min-width:0;padding:.5rem .7rem;border:1px solid var(--line);border-radius:9px;font-size:.82rem;background:#faf8f3}
.ac-opcoes{display:grid;gap:.8rem;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line)}
.ac-opcoes>div{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}

@media (max-width:640px){
  .gantt{overflow-x:visible}
  .g-row{grid-template-columns:1fr;gap:3px;padding:.35rem 0;min-height:0}
  .g-row.g-head .g-nome{display:none}
  .g-area{min-width:0}
  .g-nome{white-space:normal;overflow:visible;padding:0}
}

/* central de ajuda */
.ajuda-busca{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.45rem .6rem .45rem .9rem;box-shadow:var(--shadow);max-width:640px}
.ajuda-busca .ic{color:var(--amber-d)}.ajuda-busca input{flex:1;min-width:0;border:0;outline:0;font:inherit;padding:.4rem 0;background:transparent}
.ajuda-grupo{font-size:1.05rem;margin:1.8rem 0 .8rem}
.ajuda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}
.ajuda-card{display:flex;flex-direction:column;gap:.35rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.05rem;text-decoration:none!important;color:inherit;transition:transform .15s,box-shadow .15s,border-color .15s}
.ajuda-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#dccfae}
.ajuda-card b{color:var(--navy);font-size:.98rem;line-height:1.3}.ajuda-card small{color:var(--muted);line-height:1.45}.ajuda-card em{font-style:normal;font-size:.76rem;color:var(--amber-d);font-weight:600;margin-top:auto}
.ajuda-card.destaque{border:2px solid var(--amber);background:#fffaf0}
.ajuda-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#eef2f9;color:var(--navy-3);flex:none}.ajuda-ic.lg{width:56px;height:56px;border-radius:15px;background:linear-gradient(135deg,var(--amber-2),var(--amber));color:var(--navy)}
.ajuda-artigo{max-width:860px}
.ajuda-cab{display:flex;gap:1.1rem;align-items:flex-start;margin:.6rem 0 1.4rem}
.ajuda-meta{display:flex;gap:1.1rem;flex-wrap:wrap;color:var(--muted);font-size:.84rem;margin-top:.5rem}.ajuda-meta span{display:inline-flex;gap:.35rem;align-items:center}
.ajuda-indice{padding:1rem 1.2rem}.ajuda-indice ol{margin:.5rem 0 0;padding-left:1.2rem;columns:2;column-gap:2rem}.ajuda-indice li{margin:.15rem 0;break-inside:avoid}.ajuda-indice a{color:var(--navy-3)}
.ajuda-passos{list-style:none;margin:1.4rem 0;padding:0;display:grid;gap:1.6rem}
.ajuda-passos>li{display:flex;gap:1rem;align-items:flex-start;scroll-margin-top:80px}
.ajuda-n{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--amber-2);font-family:var(--serif);font-weight:600;font-size:1.05rem}
.ajuda-corpo{min-width:0;flex:1}.ajuda-corpo h2{font-size:1.12rem;margin:.3rem 0 .4rem}.ajuda-corpo p{line-height:1.65;color:#25324a}.ajuda-corpo a,.ajuda-dicas a,.ajuda-problemas a{color:var(--navy-3);text-decoration:underline}
.ajuda-corpo figure{margin:.9rem 0 0}.ajuda-corpo img{display:block;width:100%;height:auto;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow);cursor:zoom-in}
.ajuda-corpo figcaption{font-size:.78rem;color:var(--muted);margin-top:.4rem}
.ajuda-dicas{background:#fff8e6;border:1px solid #f3dfae;border-radius:14px;padding:1rem 1.2rem;margin:1.4rem 0}.ajuda-dicas h2,.ajuda-problemas h2{font-size:1rem;display:flex;gap:.4rem;align-items:center;margin-bottom:.5rem}
.ajuda-dicas ul{margin:0;padding-left:1.15rem;display:grid;gap:.35rem}
.ajuda-problemas{margin:1.4rem 0}.ajuda-problemas details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;margin-bottom:.5rem}
.ajuda-problemas summary{cursor:pointer;font-weight:600;color:var(--navy)}.ajuda-problemas details p{margin:.5rem 0 0;color:#25324a;line-height:1.6}
.ajuda-zap{display:flex;gap:1rem;align-items:center;margin-top:1.8rem}.ajuda-zap .ic{color:#12805C;flex:none}.ajuda-zap>div{flex:1}.ajuda-zap p{margin:.1rem 0 0}
.ajuda-dica{display:inline-flex;gap:.3rem;align-items:center;font-size:.8rem;font-weight:600;color:var(--navy-3);text-decoration:none!important;background:#eef2f9;border-radius:99px;padding:.25rem .65rem}.ajuda-dica:hover{background:#e0e8f6}
@media (max-width:640px){.ajuda-indice ol{columns:1}.ajuda-passos>li{gap:.7rem}.ajuda-zap{flex-wrap:wrap}.ajuda-zap .btn{width:100%}.ajuda-cab{flex-direction:column}}
@media print{.ajuda-zap,.ajuda-busca{display:none!important}}
.ajuda-links{display:flex;gap:.4rem;flex-wrap:wrap}.ajuda-linha{display:flex;justify-content:flex-end;margin-bottom:.7rem}
.ajuda-corpo figure.cel img{max-width:340px;margin-inline:auto}
.codigo-in{font-family:'Courier New',monospace;font-size:1.6rem!important;letter-spacing:.35em;text-align:center}
.reenviar{margin-top:.6rem}
