:root{--wine:#8d1117;--wine2:#6e0d12;--dark:#202020;--ink:#142033;--muted:#6d7787;--line:#e5e8ed;--bg:#f7f8fa;--card:#fff;--green:#16844f;--yellow:#cb8614;--red:#a91f26;font-family:"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.v06-side{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(145deg,#242526,#171717);color:#fff;z-index:20;display:flex;flex-direction:column}.v06-brand{height:124px;padding:15px 22px 14px;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid #333}.v06-brand img{width:195px;filter:brightness(0) invert(1);opacity:.95}.v06-brand div{display:none}.v06-side nav{padding-top:0}.v06-side nav a{height:51px;display:flex;align-items:center;gap:15px;padding:0 28px;color:#f5f5f5;text-decoration:none;font-size:15px;border-left:3px solid transparent}.v06-side nav a i{font-style:normal;width:22px;font-size:21px;text-align:center}.v06-side nav a.active{background:linear-gradient(90deg,#a21a20,#7f1016);border-left-color:#e86c70}.v06-side nav a:hover{background:#2b2b2b}.v06-side hr{margin:25px 27px;border:0;border-top:1px solid #666}.side-motto{margin-top:auto;padding:0 30px 28px;line-height:2.05;letter-spacing:.28em;font-size:9px;color:#ddd;position:relative}.side-motto span{display:block;width:54px;border-top:2px solid #9c1a20;margin-top:9px}.side-motto em{position:absolute;right:32px;bottom:22px;font:italic 72px Georgia;color:rgba(255,255,255,.08);letter-spacing:-.1em}.v06-main{grid-column:2;min-width:0}.v06-top{height:90px;background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:300px minmax(300px,560px) 1fr;align-items:center;padding:0 34px;gap:25px}.top-title b{font-size:24px;color:var(--wine);display:block}.top-title small{font-size:13px;color:#556172}.v06-search{height:44px;border:1px solid #dfe3e8;border-radius:8px;display:flex;align-items:center;padding:0 15px;gap:8px;color:#334155}.v06-search input{border:0;outline:0;width:100%;font-size:13px}.top-user{justify-self:end;display:flex;align-items:center;gap:10px}.top-user .bell{font-size:19px}.avatar{width:44px;height:44px;border-radius:50%;background:var(--wine);color:#fff;display:grid;place-items:center}.top-user div b{display:block;font-size:13px}.top-user div small{color:#687385;font-size:11px}.top-user button{border:0;background:transparent}.v06-page{padding:28px 30px 24px}.dash-intro{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.dash-intro h1{font-size:30px;margin:0 0 6px}.dash-intro p{margin:0;color:#66758a}.dash-quote{text-align:right}.dash-quote small{display:block;color:#6e7785;font-size:11px;margin-bottom:18px}.dash-quote em{display:block;border-left:2px solid var(--wine);padding-left:24px;color:#66758a;font:italic 18px Georgia}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi-v{background:#fff;border:1px solid #e8ebef;border-radius:9px;min-height:126px;padding:22px 20px;display:flex;gap:18px;align-items:flex-start;box-shadow:0 5px 18px rgba(25,35,50,.035)}.kpi-v>i{width:54px;height:54px;border-radius:9px;background:#fceded;color:var(--wine);display:grid;place-items:center;font-style:normal;font-size:27px}.kpi-v strong{display:block;font-size:27px}.kpi-v span{display:block;color:#637084;font-size:13px;margin-top:3px}.kpi-v small{display:block;color:#16844f;font-size:11px;margin-top:9px}.kpi-v small.red{color:#a61e24}.dash-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.dash-three{display:grid;grid-template-columns:1.05fr .9fr .9fr;gap:16px;margin-top:16px}.v-card{background:#fff;border:1px solid #e6e9ee;border-radius:10px;overflow:hidden}.v-card-head{height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;border-bottom:1px solid #eceef1}.v-card-head h3{margin:0;font-size:16px}.v-card-head a,.linkbtn{font-size:12px;color:var(--wine);text-decoration:none;border:0;background:none;font-weight:600}.data-table{padding:0 16px 10px}.tr{display:grid;grid-template-columns:110px 1.5fr 1.2fr 105px;gap:10px;align-items:center;min-height:42px;border-bottom:1px solid #eceef1;font-size:12px}.tr.th{min-height:38px;background:#f4f6f8;margin:0 -1px;color:#647185;font-size:10px;padding:0 10px}.status{display:inline-block;border-radius:999px;padding:4px 9px;font-size:10px;text-transform:capitalize}.status.ok{background:#dff4e7;color:#187543}.status.warn{background:#fff0cc;color:#9b6500}.status.bad{background:#fae2e3;color:#9f1d24}.status.neutral{background:#e8edf2;color:#687384}.chart-card{min-height:240px}.donut-wrap{padding:20px;display:flex;gap:24px;align-items:center}.donut{width:130px;height:130px;border-radius:50%;background:conic-gradient(#8d1117 0 var(--p1),#e49a9d var(--p1) 62%,#efcacc 62% 78%,#9aa4b0 78%);display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:76px;height:76px;border-radius:50%;background:#fff}.donut b,.donut span{position:absolute;z-index:2}.donut b{font-size:23px;margin-top:-13px}.donut span{font-size:11px;margin-top:18px}.legend{flex:1}.legend div{display:grid;grid-template-columns:13px 1fr auto;align-items:center;gap:8px;font-size:11px;margin:11px 0}.legend .lg{width:9px;height:9px;border-radius:50%;background:#8d1117}.legend .l1{background:#e49a9d}.legend .l2{background:#efcacc}.legend .l3{background:#9aa4b0}.bars{height:155px;padding:22px 22px 0;display:flex;align-items:flex-end;justify-content:space-around;border-bottom:1px solid #e8ebef}.barcol{text-align:center}.barpair{height:115px;display:flex;align-items:flex-end;gap:4px}.barpair i{display:block;width:13px;background:#8d1117;max-height:110px}.barpair i+ i{background:#e9a8aa}.barcol span{font-size:10px;color:#6f7784}.barlegend{text-align:center;padding:12px;font-size:10px;color:#6d7782}.barlegend span+span{margin-left:20px}.quick-grid{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-grid button{height:55px;border:1px solid #c77f82;border-radius:7px;background:#fff;color:#4c3334}.quick-grid button:first-child{background:var(--wine);color:#fff}.dash-footer{display:flex;justify-content:space-between;align-items:end;padding:20px 0 0;color:#536074;font-size:11px}.dash-footer em{letter-spacing:.22em;font-size:9px}.page-head-v06{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.page-head-v06 h1{margin:0;font-size:27px}.page-head-v06 p{margin:5px 0;color:#6d7889}.btn{border:1px solid #d9dfe6;background:#fff;border-radius:7px;padding:10px 15px}.btn.primary{background:var(--wine);color:#fff;border-color:var(--wine)}.client-list-v06{background:#fff;border:1px solid var(--line);border-radius:9px}.client-row{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;text-decoration:none;color:inherit;border-bottom:1px solid #edf0f3}.client-row:last-child{border:0}.client-row b{display:block}.client-row small{display:block;color:#748092;margin-top:4px}.client-hero{background:#fff;border:1px solid var(--line);border-radius:10px 10px 0 0;padding:22px;display:flex;justify-content:space-between;gap:25px;align-items:center}.client-hero>div:first-child{display:flex;gap:15px;align-items:center}.client-round{width:58px;height:58px;border-radius:50%;background:#f8e9ea;color:var(--wine);display:grid;place-items:center;font-weight:700}.client-hero h1{margin:0 0 5px;font-size:23px}.client-hero p{margin:0;color:#657286;font-size:12px}.chips{margin-top:9px}.chips span{display:inline-block;background:#f7ecec;color:#8d1117;border-radius:999px;padding:4px 8px;font-size:10px;margin-right:5px}.hero-meta{display:flex;align-items:center;gap:24px}.hero-meta div small{display:block;color:#7a8492;font-size:10px;margin-bottom:4px}.hero-meta div b{font-size:12px}.client-tabs{display:flex;background:#fff;border:1px solid var(--line);border-top:0;overflow:auto}.client-tabs button{border:0;background:#fff;padding:14px 16px;border-bottom:2px solid transparent;white-space:nowrap;font-size:11px}.client-tabs button.active{color:var(--wine);border-bottom-color:var(--wine);font-weight:700}.client-tab-body{margin-top:16px}.client-grid-v06{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.client-grid-v06.two{grid-template-columns:1fr 1fr}.info-grid{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.info-grid div small{display:block;color:#798392;font-size:10px}.info-grid div b{display:block;font-size:12px;margin-top:4px}.mini-list{padding:6px 16px}.mini-list.padded{padding:16px}.mini-list>div{position:relative;padding:10px 60px 10px 0;border-bottom:1px solid #edf0f3}.mini-list>div:last-child{border:0}.mini-list b,.mini-list small{display:block}.mini-list b{font-size:12px}.mini-list small{font-size:10px;color:#7b8491;margin-top:3px}.tiny{position:absolute;right:0;top:9px;border:0;background:none;color:var(--wine);font-size:10px}.status-grid{padding:12px 16px}.status-grid>div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #edf0f3;font-size:11px}.period-list{padding:10px 15px}.period-list>div{display:grid;grid-template-columns:70px 1fr 45px;align-items:center;border-bottom:1px solid #edf0f3;padding:9px 0;font-size:11px}.timeline-list{padding:8px 16px}.timeline-list>div{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f3}.timeline-list p{margin:0}.timeline-list p b,.timeline-list p small{display:block}.timeline-list p b{font-size:12px}.timeline-list p small{font-size:10px;color:#7b8491}.doc-grid{padding:15px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.doc-grid>div{border:1px solid #e5e8ed;border-radius:8px;padding:13px}.doc-grid i{display:block;color:var(--wine);font-style:normal;font-size:20px}.doc-grid b,.doc-grid small{display:block;margin-top:6px}.doc-grid b{font-size:12px}.doc-grid small{font-size:10px;color:#778393}.history{background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px}.history>div{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid #edf0f3}.history>div>i{width:30px;height:30px;border-radius:50%;background:#f8e9ea;color:var(--wine);display:grid;place-items:center;font-style:normal}.history b{font-size:12px}.history p{margin:3px 0;font-size:11px}.history small{color:#7b8491;font-size:10px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-head h2{font-size:20px;margin:0}.empty{padding:25px;text-align:center;color:#7d8795;font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(18,20,24,.62);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}.modal{width:min(760px,100%);background:#fff;border-radius:12px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:19px;margin:0}.modal-head button{border:0;background:none;font-size:25px}.modal-body{padding:20px}.modal-actions{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.f{display:flex;flex-direction:column;gap:6px;font-size:11px}.f input,.f select,.f textarea{border:1px solid #d7dce3;border-radius:7px;padding:10px;outline:0}.f input:focus,.f select:focus,.f textarea:focus{border-color:#a85b5f;box-shadow:0 0 0 3px #f7e8e9}.f.span2{grid-column:1/-1}.ck{font-size:11px;display:flex;align-items:center;gap:6px}.ck input{accent-color:var(--wine)}.form-error{margin:14px 20px;padding:10px 12px;border:1px solid #efc6c8;background:#fff0f1;color:#981a20;border-radius:7px;font-size:12px}
/* Login exactly based on approved reference */.login-v06{min-height:100vh;display:grid;grid-template-columns:72% 28%;grid-template-rows:1fr 106px;background:#f6f3ef;position:relative}.login-left{position:relative;background:#fbfaf8;min-height:calc(100vh - 106px);overflow:hidden}.login-main-logo{position:absolute;width:500px;left:50%;top:32px;transform:translateX(-50%)}.jf-watermark{position:absolute;left:-45px;top:170px;font:italic 430px/.75 Georgia;color:rgba(88,70,58,.055);transform:rotate(-14deg);letter-spacing:-.22em}.login-slogan{position:absolute;left:90px;bottom:115px;font-size:16px;letter-spacing:.28em;line-height:2.1;color:#29313a}.login-slogan span{display:block;width:58px;border-top:3px solid var(--wine);margin-top:16px}.login-box{position:absolute;width:570px;left:50%;top:265px;transform:translateX(-50%);background:rgba(255,255,255,.965);border:1px solid #dfe1e4;border-radius:15px;padding:38px 42px 30px;box-shadow:0 18px 45px rgba(20,25,31,.12)}.login-box h1{font-size:34px;margin:0 0 10px}.login-box>p{color:#737e8e;margin:0 0 24px;font-size:15px}.login-box label{display:block;font-size:14px;font-weight:600;margin-top:16px}.login-box input{display:block;width:100%;height:52px;border:1px solid #cfd6df;border-radius:8px;margin-top:7px;padding:0 16px;font-size:14px}.login-box button{width:100%;height:58px;margin-top:24px;border:0;border-radius:8px;background:linear-gradient(90deg,#9b151b,#761015);color:#fff;font-size:17px}.login-box button b{float:right;font-size:31px;font-weight:300;margin-right:34%}.login-tags{text-align:center;color:#657183;font-size:9px;letter-spacing:.25em;margin-top:28px}.login-photo{background:url('/app/assets/login-office.jpg') center/cover no-repeat;min-height:calc(100vh - 106px)}.login-v06 footer{grid-column:1/-1;height:106px;background:linear-gradient(90deg,#6f090d,#95141a,#6e0a0e);color:#fff;display:grid;grid-template-columns:1fr 1.2fr 2fr;align-items:center;padding:0 90px;gap:24px}.login-v06 footer b{font-size:21px}.login-v06 footer span{font-size:12px;border-left:1px solid rgba(255,255,255,.5);padding-left:25px}.login-v06 footer em{justify-self:end;font-size:9px;letter-spacing:.28em}.form-error{margin-left:0;margin-right:0}
@media(max-width:1200px){.app-shell{grid-template-columns:220px 1fr}.v06-side{width:220px}.v06-top{grid-template-columns:220px 1fr auto}.dash-three{grid-template-columns:1fr 1fr}.client-grid-v06{grid-template-columns:1fr 1fr}.login-v06{grid-template-columns:1fr}.login-photo{display:none}.login-main-logo{width:420px}.login-box{top:245px;width:min(620px,80%)}.login-v06 footer{padding:0 35px}}@media(max-width:800px){.app-shell{display:block}.v06-side{display:none}.v06-main{grid-column:auto}.v06-top{grid-template-columns:1fr auto;height:auto;min-height:78px;padding:13px 16px}.top-title{display:none}.v06-search{grid-column:1}.top-user div{display:none}.v06-page{padding:18px 12px}.kpis{grid-template-columns:1fr 1fr}.dash-two,.dash-three,.client-grid-v06,.client-grid-v06.two{grid-template-columns:1fr}.hero-meta{display:none}.doc-grid{grid-template-columns:1fr 1fr}.login-left{min-height:calc(100vh - 90px)}.login-main-logo{width:330px;top:20px}.jf-watermark,.login-slogan{display:none}.login-box{top:190px;width:90%;padding:30px}.login-v06 footer{height:90px;padding:0 20px;grid-template-columns:1fr}.login-v06 footer span,.login-v06 footer em{display:none}.form-grid{grid-template-columns:1fr}.f.span2{grid-column:auto}}@media(max-width:520px){.kpis{grid-template-columns:1fr}.tr{grid-template-columns:90px 1fr 90px}.tr span:nth-child(3){display:none}.doc-grid{grid-template-columns:1fr}.client-tabs{font-size:10px}.login-main-logo{width:280px}.login-box{top:165px;padding:24px}.login-box h1{font-size:30px}}
/* v0.6.2 — cabeçalho superior simplificado */
.top-user{
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:auto;
  min-width:0;
}
.top-user .avatar{
  flex:0 0 auto;
}
.top-user-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.top-user-copy b{
  font-size:13px;
  line-height:1.15;
  white-space:nowrap;
}
.top-user-copy small{
  margin-top:3px;
  color:#6f6a67;
  font-size:11px;
}
.logout-top{
  margin-left:8px;
  border:1px solid #d7b2b3;
  background:#fff;
  color:#7f1014;
  border-radius:8px;
  padding:8px 11px;
  font-size:12px;
  font-weight:650;
  white-space:nowrap;
  transition:.15s ease;
}
.logout-top:hover{
  background:#f9eeee;
  border-color:#b8787b;
}
@media(max-width:760px){
  .top-user-copy{display:none}
  .logout-top{
    margin-left:0;
    padding:8px 9px;
    font-size:11px;
  }
}

/* v0.6.3 — maior contraste e nitidez */
:root{
  --bg:#f4f5f7;
  --card:#ffffff;
  --text:#151922;
  --muted:#687180;
  --line:#dfe3e8;
  --accent:#8c1117;
  --accent-dark:#650b10;
  font-family:"Aptos","Segoe UI Variable","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
body{background:#f4f5f7;color:#151922}
.v06-main{background:linear-gradient(180deg,#fcfcfd 0,#f4f5f7 280px)}
.v06-top{
  background:#fff;
  border-bottom:1px solid #dfe3e8;
  box-shadow:0 1px 5px rgba(16,24,40,.04);
}
.v06-page h1,.page-head h1{
  color:#111827;
  font-weight:760;
  letter-spacing:-.025em;
}
.v-card,.card{
  background:#fff;
  border-color:#e1e5e9;
  box-shadow:0 4px 14px rgba(16,24,40,.055);
}
.panel-head h3,.row-title{color:#1d232b;font-weight:700}
.muted,.row-sub,.v06-sub{color:#687180}
.kpi-card strong,.kpi strong{color:#111827;font-weight:760}
.v06-side{
  background:linear-gradient(180deg,#17191c,#232427);
}
.v06-side nav a{color:#f2f2f3;font-weight:520}
.v06-side nav a.active{
  background:linear-gradient(90deg,#901219,#6d0d12);
}
.v06-search{
  background:#fff;
  border-color:#d8dde4;
}
.v06-search input{color:#20252d}
.v06-search input::placeholder{color:#8b93a0}
.client-hero,.client-section,.panel{
  background:#fff;
  border-color:#e1e5e9;
}
.hon-line{
  display:grid !important;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:12px;
}
.hon-line .mini-action{
  align-self:center;
}

/* v0.6.4 dashboard financeiro */
.v06-top{grid-template-columns:300px minmax(300px,560px) auto auto;gap:18px}.quick-menu-wrap{position:relative;justify-self:end}.quick-menu-btn{height:38px;border:1px solid #d7b2b3;background:#fff;color:#7f1014;border-radius:8px;padding:0 13px;font-size:12px;font-weight:700;white-space:nowrap}.quick-menu-btn:hover{background:#f9eeee}.quick-menu-pop{display:none;position:absolute;right:0;top:44px;width:210px;background:#fff;border:1px solid #e0e4e8;border-radius:10px;padding:6px;box-shadow:0 18px 44px rgba(16,24,40,.16);z-index:50}.quick-menu-pop.open{display:block}.quick-menu-pop button{display:block;width:100%;border:0;background:#fff;text-align:left;padding:9px 10px;border-radius:7px;font-size:12px;color:#252a31}.quick-menu-pop button:hover{background:#f8eded;color:#7f1014}.donut-dynamic{background:#e5e7eb}.donut-dynamic:after{content:"";position:absolute;width:76px;height:76px;border-radius:50%;background:#fff}.honor-summary{min-height:240px}.hon-summary-body{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.hon-summary-body>div{border:1px solid #e4e7eb;border-radius:9px;padding:14px;background:#fff}.hon-summary-body span,.hon-summary-body small{display:block}.hon-summary-body span{font-size:11px;color:#697383;font-weight:650}.hon-summary-body b{display:block;font-size:20px;margin:7px 0;color:#151922}.hon-summary-body small{font-size:9px;color:#8b939f}.hon-summary-body .hon-annual{grid-column:1/-1;background:linear-gradient(135deg,#8c1117,#670c11);border-color:#670c11}.hon-summary-body .hon-annual span,.hon-summary-body .hon-annual b,.hon-summary-body .hon-annual small{color:#fff}.hon-summary-body .hon-annual small{opacity:.75}@media(max-width:1200px){.v06-top{grid-template-columns:220px 1fr auto}.quick-menu-wrap{grid-column:auto}.dash-three{grid-template-columns:1fr 1fr}.honor-summary{grid-column:1/-1}}@media(max-width:800px){.v06-top{grid-template-columns:1fr auto auto}.quick-menu-btn{padding:0 9px;font-size:11px}.quick-menu-pop{right:0}.hon-summary-body{grid-template-columns:1fr}.hon-summary-body .hon-annual{grid-column:auto}}

/* v0.6.5 — relatório clientes/avenças */
.report-card{overflow:hidden}
.report-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.report-head small{display:block;margin-top:4px;color:#707887}
.report-actions{display:flex;gap:8px;flex-wrap:wrap}
.report-table-wrap{overflow:auto}
.report-table{width:100%;border-collapse:collapse;font-size:12px}
.report-table th{
  text-align:left;
  padding:10px 12px;
  background:#f6f7f9;
  border-bottom:1px solid #dde2e7;
  color:#565f6d;
  font-size:10px;
  letter-spacing:.03em;
  text-transform:uppercase;
  white-space:nowrap;
}
.report-table td{
  padding:10px 12px;
  border-bottom:1px solid #eceff2;
  vertical-align:top;
  color:#252b33;
}
.report-table tbody tr:hover{background:#faf7f7}
@media print{
  body{background:#fff!important}
  .v06-side,.v06-top,.page-head,.report-actions{display:none!important}
  .v06-main,.v06-page{margin:0!important;padding:0!important;width:100%!important}
  .report-card{border:0!important;box-shadow:none!important}
  .report-table{font-size:9pt}
  .report-table th,.report-table td{padding:5px 6px}
}

/* v0.7 — Trabalho mensal */
.monthly-dashboard{margin:14px 0}
.monthly-dashboard .v-card-head small{display:block;margin-top:3px;color:#7b8490;font-size:10px}
.monthly-dashboard-body{
  display:grid;grid-template-columns:repeat(4,1fr) 1.5fr;gap:10px;padding:16px 18px;align-items:center
}
.monthly-dashboard-body>div:not(.progress-month){
  padding:10px 12px;border-right:1px solid #e7e9ec
}
.monthly-dashboard-body b{display:block;font-size:22px;color:#171b22}
.monthly-dashboard-body span{font-size:11px;color:#6c7480}
.monthly-dashboard-body .danger b{color:#a31d24}
.progress-month>span{display:block;height:8px;background:#eceff2;border-radius:999px;overflow:hidden}
.progress-month>span i{display:block;height:100%;background:#8d1117;border-radius:999px}
.progress-month small{display:block;margin-top:7px;color:#6c7480;font-size:10px}

.monthly-head{align-items:flex-end;gap:18px}
.month-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.month-tools input,.month-tools select{
  height:38px;border:1px solid #d4d9df;border-radius:8px;background:#fff;padding:0 10px;color:#27303a
}
.month-kpis{
  display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px
}
.month-kpis>div{
  background:#fff;border:1px solid #e0e4e8;border-radius:11px;padding:13px 14px;box-shadow:0 3px 12px rgba(16,24,40,.045)
}
.month-kpis b{display:block;font-size:20px;color:#151a21}
.month-kpis span{font-size:10px;color:#717986}
.month-kpis .danger{border-color:#e2b6b8;background:#fff8f8}
.month-kpis .danger b{color:#9a1920}
.month-card{overflow:hidden}
.month-table-wrap{overflow:auto}
.month-table{width:100%;border-collapse:collapse;font-size:11px;min-width:1120px}
.month-table th{
  text-align:left;padding:10px;background:#f6f7f9;border-bottom:1px solid #dde2e7;
  color:#59626f;font-size:9px;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap
}
.month-table td{padding:8px 9px;border-bottom:1px solid #eceff2;vertical-align:middle}
.month-client b{display:block;color:#20252d}
.month-client span{display:block;color:#646d79;margin-top:2px;white-space:nowrap}
.month-state{
  width:122px;border:1px solid #d6dbe1;border-radius:7px;padding:6px 7px;background:#fff;font-size:10px;color:#27303a
}
.month-state.state-concluido{background:#eef8f2;border-color:#c6e5d2;color:#1f6a46}
.month-state.state-pendente{background:#fff7e5;border-color:#edd89d;color:#8a6110}
.month-state.state-em_curso{background:#eef4fb;border-color:#cbdced;color:#345f88}
.month-state.state-nao_aplicavel{background:#f3f4f6;color:#7a818b}
.month-overdue{background:#fffafa}
.month-closed{background:#fbfcfb}
.ob-count{font-size:10px;color:#65707c;white-space:nowrap}
.ob-count.bad{color:#a21d24;font-weight:700}
.month-status{display:inline-block;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:700}
.month-status.closed{background:#eaf6ef;color:#24684a}
.month-status.overdue{background:#fce9e9;color:#941b22}
.month-status.open{background:#f1f3f5;color:#59626c}
@media(max-width:1100px){
  .month-kpis{grid-template-columns:repeat(3,1fr)}
  .monthly-dashboard-body{grid-template-columns:repeat(2,1fr)}
  .progress-month{grid-column:1/-1}
}
@media(max-width:700px){
  .month-kpis{grid-template-columns:repeat(2,1fr)}
  .monthly-head{display:block}
  .month-tools{justify-content:flex-start;margin-top:12px}
}

/* v0.8 — documentação e comunicação */
.follow-dashboard{margin:14px 0}
.follow-dashboard .v-card-head small{display:block;margin-top:3px;color:#7c8591;font-size:10px}
.follow-dashboard-body{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px 18px}
.follow-dashboard-body>div{border-right:1px solid #e7e9ec;padding:8px 12px}
.follow-dashboard-body>div:last-child{border-right:0}
.follow-dashboard-body b{display:block;font-size:22px;color:#171b22}
.follow-dashboard-body span{font-size:10px;color:#6c7480}
.follow-dashboard-body .danger b{color:#a31d24}
.compact-select{height:38px;border:1px solid #d3d9df;border-radius:8px;background:#fff;padding:0 10px}
.follow-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.follow-kpis>div{background:#fff;border:1px solid #e0e4e8;border-radius:11px;padding:13px 14px}
.follow-kpis b{display:block;font-size:20px}
.follow-kpis span{font-size:10px;color:#707986}
.follow-kpis .danger{background:#fff8f8;border-color:#e4b9bb}
.follow-kpis .danger b{color:#a01b22}
.follow-list{padding:0 16px}
.follow-row{
  display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:16px;align-items:center;
  padding:14px 0;border-bottom:1px solid #eceff2
}
.follow-row:last-child{border-bottom:0}
.follow-row.is-late{background:linear-gradient(90deg,#fff8f8,transparent);margin:0 -16px;padding-left:16px;padding-right:16px}
.follow-main b,.follow-main span,.follow-main small{display:block}
.follow-main b{font-size:12px;color:#20262e}
.follow-main span{font-size:12px;margin-top:4px;color:#3e4650}
.follow-main small{font-size:9px;margin-top:5px;color:#7b8490}
.follow-age{text-align:center}
.follow-age b{display:block;font-size:18px;color:#8d1117}
.follow-age span{font-size:9px;color:#707986}
.follow-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.alerts-list{padding:0 16px}
.alert-row{
  display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;
  padding:14px 0;border-bottom:1px solid #eceff2
}
.alert-icon{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:#fff0f0;color:#9a1a21;font-weight:800
}
.alert-main b,.alert-main span,.alert-main small{display:block}
.alert-main b{font-size:12px}
.alert-main span{font-size:11px;margin-top:4px;color:#535c67}
.alert-main small{font-size:9px;margin-top:5px;color:#7d8590}
.alert-urgente{background:linear-gradient(90deg,#fff8f8,transparent)}
@media(max-width:900px){
  .follow-dashboard-body,.follow-kpis{grid-template-columns:repeat(2,1fr)}
  .follow-row{grid-template-columns:1fr}
  .follow-age{text-align:left}
  .follow-actions{justify-content:flex-start}
}

/* v0.9 — TOConline Connector */
.toc-dashboard{margin:14px 0}
.toc-dashboard .v-card-head small{display:block;margin-top:3px;color:#7c8591;font-size:10px}
.toc-dashboard-body{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px 18px}
.toc-dashboard-body>div{padding:8px 12px;border-right:1px solid #e7e9ec}
.toc-dashboard-body>div:last-child{border-right:0}
.toc-dashboard-body b{display:block;font-size:20px;color:#171b22}
.toc-dashboard-body span{font-size:10px;color:#6c7480}
.toc-dashboard-body .danger b{color:#9b1c22}
.toc-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}
.toc-kpis>div{background:#fff;border:1px solid #e0e4e8;border-radius:11px;padding:13px 14px}
.toc-kpis b{display:block;font-size:19px;color:#171b22}
.toc-kpis span{font-size:10px;color:#707986}
.toc-kpis .danger{background:#fff8f8;border-color:#e3b8bb}
.toc-kpis .danger b{color:#9d1b22}
.toc-tabs{display:flex;gap:6px;margin-bottom:10px}
.toc-tab{border:1px solid #d8dde3;background:#fff;border-radius:8px;padding:8px 12px;font-size:11px;cursor:pointer}
.toc-tab.active{background:#711016;color:#fff;border-color:#711016}
.toc-table-wrap{overflow:auto}
.toc-table{width:100%;border-collapse:collapse;min-width:1150px;font-size:11px}
.toc-table th{padding:10px;text-align:left;background:#f6f7f9;border-bottom:1px solid #dde2e7;color:#59626f;font-size:9px;text-transform:uppercase;white-space:nowrap}
.toc-table td{padding:9px 10px;border-bottom:1px solid #eceff2}
.toc-table td:first-child b,.toc-table td:first-child span{display:block}
.toc-table td:first-child span{font-size:9px;color:#707986;margin-top:2px}
.toc-status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:700}
.toc-status.ok{background:#eaf6ef;color:#24684a}
.toc-status.atencao{background:#fff2df;color:#906017}
.toc-status.sem_dados{background:#f1f3f5;color:#626b75}
.toc-import-list{padding:0 16px}
.toc-import-row{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #eceff2}
.toc-import-row>div b,.toc-import-row>div span{display:block}
.toc-import-row>div b{font-size:12px}
.toc-import-row>div span{font-size:9px;color:#707986;margin-top:3px}
.toc-import-row .bad b{color:#9b1c22}
@media(max-width:1100px){
  .toc-kpis{grid-template-columns:repeat(3,1fr)}
  .toc-dashboard-body{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .toc-kpis{grid-template-columns:repeat(2,1fr)}
  .toc-import-row{grid-template-columns:1fr 1fr}
}

/* v0.9.3.2 — correção final da fotografia e alinhamento do botão de login */
@media (min-width:1201px){
  .login-photo{
    background-image:url('/app/assets/login-office.jpg');
    background-repeat:no-repeat;
    background-size:114% auto;
    background-position:right center;
    background-color:#d9d6d0;
  }
}
.login-box button{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  padding:0 58px;
  text-align:center;
}
.login-box button b{
  float:none;
  position:absolute;
  right:26px;
  top:50%;
  transform:translateY(-52%);
  margin:0;
  font-size:27px;
  line-height:1;
  font-weight:300;
}


/* v0.10.0 — Dashboard clean redesign */
:root{--wine:#821117;--wine-deep:#681015;--wine-soft:#f8e9e9;--cream:#fbfaf8;--clean-border:#e7e5e2;--clean-shadow:0 3px 14px rgba(31,35,41,.045)}
.clean-shell{grid-template-columns:238px 1fr;background:#f8f7f5}.clean-side{width:238px;background:linear-gradient(180deg,#751015 0%,#8a171b 55%,#701014 100%);box-shadow:none}.clean-brand{height:108px;background:#fff;border:0;padding:13px 28px}.clean-brand img{width:185px;filter:none;opacity:1}.clean-side nav{padding:26px 11px 0;overflow:auto}.clean-side nav a{height:49px;padding:0 20px;border:0;border-radius:7px;gap:15px;color:#fff;font-size:14px;font-weight:500;opacity:.96}.clean-side nav a i{width:22px;height:22px;font-size:0;display:grid;place-items:center}.clean-side nav a:hover{background:rgba(255,255,255,.08)}.clean-side nav a.active{background:linear-gradient(90deg,rgba(184,49,53,.78),rgba(169,42,46,.58));border:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035)}.side-logout{margin:20px 33px 0;padding:20px 0;border:0;border-top:1px solid rgba(255,255,255,.45);background:none;color:#fff;display:flex;align-items:center;gap:16px;font-size:14px;cursor:pointer}.clean-motto{padding:0 33px 27px;font-size:9px;line-height:2.05;letter-spacing:.3em;color:#fff}.clean-motto span{border-color:#fff;width:38px}.clean-main{grid-column:2;background:#faf9f7;min-height:100vh}.clean-top{height:108px;grid-template-columns:minmax(330px,490px) 1fr auto auto;padding:0 42px 0 126px;background:#fff;border-bottom:1px solid #ebe9e6;box-shadow:none;gap:22px}.clean-search{height:45px;background:#f5f4f2;border:0;border-radius:7px;color:#5d6671;padding:0 16px}.clean-search input{background:transparent;font-size:13px}.top-bell{position:relative;border:0;background:none;color:#202832;padding:10px;cursor:pointer}.top-bell span{position:absolute;width:7px;height:7px;background:#a9161b;border:2px solid #fff;border-radius:50%;right:8px;top:7px}.clean-user{padding-left:20px;border-left:1px solid #e6e3df}.clean-user .avatar{width:43px;height:43px;background:#7b1116}.clean-user b{font-size:13px}.clean-user small{font-size:11px;color:#737983}.clean-dashboard{padding:18px 28px 12px;max-width:1500px;margin:0 auto}.clean-title-row{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px}.clean-title-row h1{margin:0;font-size:28px;letter-spacing:-.035em;color:#172033}.clean-title-row p{margin:4px 0 0;color:#5f6874;font-size:13px}.month-picker{height:44px;min-width:205px;border:1px solid #dddfe3;border-radius:7px;background:#fff;display:flex;align-items:center;gap:11px;padding:0 14px;color:#18212d;font-size:12px}.month-picker b{margin-left:auto;font-size:16px;font-weight:400}.ui-icon{display:block;flex:0 0 auto}.clean-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.clean-kpi{min-height:116px;background:#fff;border:1px solid var(--clean-border);border-radius:8px;box-shadow:var(--clean-shadow);padding:16px;display:grid;grid-template-columns:58px 1fr;gap:13px;align-items:start}.kpi-ico{width:54px;height:54px;border-radius:12px;display:grid;place-items:center;color:#86171c;background:#faeaea}.kpi-ico.green{background:#edf6f1;color:#17764e}.kpi-ico.neutral{background:#f0f2f4;color:#172231}.clean-kpi>div>span{display:block;font-size:12px;color:#1e2631;margin:1px 0 5px}.clean-kpi strong{display:block;font-size:25px;line-height:1.08;color:#111827;letter-spacing:-.025em}.clean-kpi small{display:block;margin-top:8px;color:#647080;font-size:10px}.clean-kpi.danger small{color:#c82222}.mini-progress{display:flex;align-items:center;gap:8px;margin-top:8px}.mini-progress:before{content:'';width:78%;height:7px;border-radius:99px;background:#e8eaed}.mini-progress i{height:7px;border-radius:99px;background:#821117;position:absolute;max-width:80px}.mini-progress b{font-size:10px;font-weight:600}.clean-mid-grid{display:grid;grid-template-columns:1.55fr 1.1fr 1.05fr;gap:12px;margin-bottom:12px}.clean-card{background:#fff;border:1px solid var(--clean-border);border-radius:8px;box-shadow:var(--clean-shadow);overflow:hidden}.clean-card-head{height:50px;display:flex;align-items:center;gap:8px;padding:0 18px;border-bottom:1px solid #efedea}.clean-card-head h3{margin:0;display:flex;align-items:center;gap:8px;font-size:13px;color:#1c2430}.clean-card-head h3 svg{color:#86171c}.clean-card-head>a{margin-left:auto;color:#86171c;font-size:10px}.clean-card-head>span{margin-left:auto;border:1px solid #e2e2e2;border-radius:6px;padding:6px 10px;font-size:10px}.clean-bars-card,.clean-donut-card,.clean-ob-card{height:258px}.clean-bars{height:196px;padding:22px 20px 12px;display:flex;align-items:flex-end;justify-content:space-around;gap:8px;background:repeating-linear-gradient(to top,transparent 0,transparent 38px,#f0efed 39px)}.clean-bar-col{height:155px;display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.clean-bar{width:min(26px,70%);background:linear-gradient(180deg,#a84a4d,#8a1a1f);border-radius:2px 2px 0 0}.clean-bar-col small{font-size:9px;color:#626b77}.clean-donut-body{height:205px;display:flex;align-items:center;justify-content:center;gap:28px;padding:12px}.clean-donut{width:142px;height:142px;border-radius:50%;display:grid;place-items:center;position:relative}.clean-donut:after{content:'';position:absolute;width:86px;height:86px;border-radius:50%;background:#fff}.clean-donut>div{position:relative;z-index:1;text-align:center}.clean-donut b{display:block;font-size:24px}.clean-donut span{font-size:10px}.clean-legend p{display:grid;grid-template-columns:10px 75px 24px;align-items:center;gap:6px;margin:14px 0;font-size:10px}.clean-legend p b{text-align:right}.dot{width:8px;height:8px;border-radius:50%}.dot.green{background:#27855b}.dot.gray{background:#aeb4bc}.dot.red{background:#d64038}.clean-ob-list{padding:2px 14px}.clean-ob-list>div{min-height:48px;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid #efedea}.clean-ob-list time{text-align:center}.clean-ob-list time b{display:block;font-size:13px}.clean-ob-list time small{font-size:8px;color:#6b7280}.clean-ob-list p{margin:0;min-width:0}.clean-ob-list p b,.clean-ob-list p span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clean-ob-list p b{font-size:10px}.clean-ob-list p span{font-size:9px;color:#747c87;margin-top:3px}.clean-ob-list .status{font-size:8px;padding:4px 6px}.clean-bottom-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:12px}.clean-activity-list,.clean-client-list{padding:5px 18px}.clean-activity-list>div{height:40px;display:grid;grid-template-columns:22px 78px 1fr;align-items:center;gap:8px;border-bottom:1px solid #efedea}.clean-activity-list>div>i{font-style:normal;color:#202a36}.clean-activity-list time{font-size:9px;color:#697383}.clean-activity-list p{margin:0;display:grid;grid-template-columns:minmax(130px,.8fr) 1fr;gap:12px;min-width:0}.clean-activity-list p b,.clean-activity-list p span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clean-activity-list p span{color:#6d7683}.clean-client-list>a{height:40px;display:grid;grid-template-columns:24px 1fr 70px 18px;align-items:center;gap:8px;border-bottom:1px solid #efedea;color:#17202c;text-decoration:none}.clean-client-list>a>i{font-style:normal}.clean-client-list p{margin:0}.clean-client-list p b,.clean-client-list p span{display:block;font-size:9px}.clean-client-list p span{color:#737c88;margin-top:2px}.clean-client-list em{font-style:normal;font-size:9px;color:#25805a}.clean-client-list em u{display:inline-block;width:7px;height:7px;background:#25805a;border-radius:50%;margin-right:5px}.clean-footer{height:45px;display:flex;justify-content:space-between;align-items:end;color:#717985;font-size:8px;padding-top:15px}.clean-footer em{font-style:normal;letter-spacing:.22em;font-size:7px}.clean-empty{padding:25px;color:#7d8795;font-size:11px;text-align:center}
@media(max-width:1200px){.clean-shell{grid-template-columns:220px 1fr}.clean-side{width:220px}.clean-top{padding-left:30px;grid-template-columns:minmax(280px,1fr) auto auto}.clean-kpi-grid{grid-template-columns:repeat(2,1fr)}.clean-mid-grid{grid-template-columns:1fr 1fr}.clean-ob-card{grid-column:1/-1}.clean-bottom-grid{grid-template-columns:1fr}.clean-dashboard{padding:18px}.clean-brand img{width:170px}}
@media(max-width:800px){.clean-side{display:none}.clean-main{grid-column:auto}.clean-top{grid-template-columns:1fr auto auto;padding:12px 16px;height:76px}.clean-dashboard{padding:14px 12px}.clean-kpi-grid,.clean-mid-grid{grid-template-columns:1fr}.clean-ob-card{grid-column:auto}.clean-title-row{align-items:flex-start}.month-picker{min-width:auto}.clean-bottom-grid{grid-template-columns:1fr}.clean-footer em{display:none}}
@media(max-width:520px){.clean-kpi-grid{grid-template-columns:1fr}.clean-title-row{display:block}.month-picker{margin-top:12px}.clean-donut-body{gap:14px}.clean-activity-list p{grid-template-columns:1fr}.clean-activity-list p span{display:none}}

/* v0.10.1 — Faturação SAF-T */
.saft-page{max-width:1500px;margin:0 auto;padding:22px 28px 35px}.saft-layout{display:grid;grid-template-columns:1.55fr 1fr;gap:14px;margin-bottom:14px}.saft-upload-card,.saft-help-card,.saft-year-card,.saft-history-card{border:1px solid var(--clean-border);border-radius:9px;box-shadow:var(--clean-shadow);background:#fff;overflow:hidden}.saft-upload-card .v-card-head,.saft-help-card .v-card-head,.saft-history-card .v-card-head{padding:15px 18px;border-bottom:1px solid #efedea}.saft-upload-card .v-card-head h3,.saft-help-card .v-card-head h3,.saft-history-card .v-card-head h3{margin:0;font-size:14px}.saft-upload-card .v-card-head small,.saft-history-card .v-card-head small{display:block;margin-top:4px;color:#707985;font-size:10px}.saft-upload-body{padding:18px}.saft-drop{min-height:150px;border:1.5px dashed #c9c9c7;border-radius:10px;background:#faf9f7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:#711016;text-align:center}.saft-drop:hover{border-color:#8a171b;background:#fdf8f8}.saft-drop input{display:none}.saft-drop b{font-size:14px;color:#25282d}.saft-drop span,.saft-drop em{font-size:10px;color:#737b85;font-style:normal}.saft-drop em{margin-top:4px;color:#711016;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saft-send{width:100%;margin-top:12px;height:42px}.saft-result{margin-top:12px;padding:11px 13px;border-radius:7px;background:#f6f7f8;font-size:10px}.saft-result b,.saft-result span{display:block}.saft-result span{margin-top:3px;color:#626b76}.saft-result div{margin-top:6px}.saft-result.ok{background:#edf7f1;color:#24684a}.saft-result.warn{background:#fff5df;color:#8b5f16}.saft-result.bad{background:#fff0f0;color:#9c2025}.saft-help{padding:12px 18px}.saft-help p{display:grid;grid-template-columns:32px 1fr;gap:9px;align-items:start;padding:12px 0;margin:0;border-bottom:1px solid #efedea;color:#711016}.saft-help p:last-child{border-bottom:0}.saft-help p span{color:#555f6b;font-size:10px;line-height:1.45}.saft-help p b{display:block;color:#202833;font-size:11px;margin-bottom:3px}.saft-year-card{margin-bottom:14px}.saft-toolbar{min-height:62px;padding:12px 18px;border-bottom:1px solid #efedea;display:flex;align-items:center;gap:15px}.saft-toolbar h3{margin:0;font-size:14px}.saft-toolbar small{font-size:10px;color:#707985}.saft-filters{margin-left:auto;display:flex;gap:8px}.saft-filters select{height:34px;border:1px solid #dadde1;border-radius:6px;background:#fff;padding:0 9px;font-size:10px;max-width:280px}.saft-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 18px 4px}.saft-kpis>div{border:1px solid #eceae7;border-radius:8px;padding:13px 14px;background:#fcfbfa}.saft-kpis span,.saft-kpis small{display:block;color:#6c7580;font-size:9px}.saft-kpis b{display:block;margin:4px 0;font-size:20px;color:#17202c}.saft-chart{height:220px;padding:18px 18px 12px;display:grid;grid-template-columns:repeat(12,1fr);gap:8px;align-items:end;background:repeating-linear-gradient(to top,#fff 0,#fff 43px,#f1efec 44px)}.saft-month{min-width:0;text-align:center}.saft-bar-wrap{height:150px;display:flex;align-items:flex-end;justify-content:center}.saft-bar{display:block;width:min(30px,72%);background:linear-gradient(180deg,#a94b4e,#801419);border-radius:3px 3px 0 0;min-height:2px}.saft-month>b{display:block;font-size:9px;margin-top:6px}.saft-month>small{display:block;font-size:7px;color:#747c87;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saft-history-list{padding:0 16px}.saft-history-row{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,90px) 100px;gap:14px;align-items:center;padding:12px 2px;border-bottom:1px solid #efedea}.saft-history-row>div b,.saft-history-row>div span{display:block}.saft-history-row>div b{font-size:11px}.saft-history-row>div span{font-size:9px;color:#737c87;margin-top:3px}.saft-history-row>div:not(:first-child){text-align:center}.saft-history-row>div:not(:first-child) b{font-size:15px}
@media(max-width:1050px){.saft-layout{grid-template-columns:1fr}.saft-kpis{grid-template-columns:repeat(2,1fr)}.saft-history-row{grid-template-columns:1fr repeat(3,70px)}.saft-history-row>div:last-child{display:none}}
@media(max-width:700px){.saft-page{padding:14px 12px}.saft-toolbar{display:block}.saft-filters{margin:10px 0 0}.saft-kpis{grid-template-columns:1fr 1fr}.saft-chart{overflow:auto;grid-template-columns:repeat(12,55px)}.saft-history-row{grid-template-columns:1fr 60px}.saft-history-row>div:nth-child(n+3){display:none}}
.saft-at-card{margin-bottom:14px;overflow:hidden}.saft-at-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.saft-at-head h3{margin:0}.saft-at-head small{display:block;margin-top:4px;color:#707985}.saft-at-send{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:12px;align-items:center;padding:14px 18px;background:#faf9f7;border-bottom:1px solid #ebe7e3}.saft-at-send input[type=file]{font-size:11px}.saft-at-send label{font-size:11px;color:#59616b;white-space:nowrap}.saft-at-table td small,.saft-at-table td span,.saft-at-table td a{display:block;margin-top:4px}.saft-at-table td:first-child small{color:#737c87;font-size:9px}.at-status{display:inline-block!important;margin:0!important;padding:4px 8px;border-radius:12px;font-size:9px;font-weight:700;background:#edf0f3;color:#4d5864}.at-status.processado_at{background:#e8f5ed;color:#207247}.at-status.erro_validacao{background:#fdecec;color:#a5272d}.at-status.aguarda_resposta{background:#fff4db;color:#80601a}.at-error{max-width:480px;color:#9c2025;font-size:9px;white-space:normal}.at-pdf{color:#801419;font-weight:700;font-size:10px}.saft-at-table td:nth-child(2),.saft-at-table td:nth-child(3),.saft-at-table td:nth-child(4){white-space:nowrap}@media(max-width:850px){.saft-at-send{grid-template-columns:1fr}.saft-at-head{align-items:flex-start;flex-direction:column}.saft-at-actions,.saft-at-actions button{width:100%}}

/* v0.10.2 — menu do utilizador + SAF-T YTD */
.user-menu-wrap{position:relative;justify-self:end}
.user-menu-btn{border:0;background:transparent;cursor:pointer;padding:0 0 0 20px;min-width:205px;text-align:left}
.user-menu-btn .top-user-copy{flex:1}
.user-menu-btn .user-chevron{margin-left:8px;transition:transform .18s ease}
.user-menu-btn[aria-expanded="true"] .user-chevron{transform:rotate(90deg)}
.user-dropdown{position:absolute;right:0;top:58px;width:210px;padding:7px;background:#fff;border:1px solid #e6e3df;border-radius:9px;box-shadow:0 14px 34px rgba(28,31,36,.14);display:none;z-index:80}
.user-dropdown.open{display:block}
.user-dropdown button{width:100%;height:42px;border:0;background:#fff;border-radius:6px;display:flex;align-items:center;gap:11px;padding:0 12px;color:#27313d;cursor:pointer;font-size:12px;text-align:left}
.user-dropdown button:hover{background:#f6f3f1;color:#781116}
.user-dropdown button+button{border-top:1px solid #efedea;border-radius:0 0 6px 6px}
.user-dropdown svg{color:#7d151a}

.saft-ytd-card{min-height:132px;margin-bottom:16px;padding:18px 20px;display:grid;grid-template-columns:minmax(290px,.85fr) minmax(420px,1.5fr);align-items:stretch;gap:24px;background:linear-gradient(135deg,#fff 0%,#fcf8f7 100%);border-color:#eadfdb}.saft-ytd-summary{display:flex;align-items:center;gap:16px;min-width:0}.saft-ytd-icon{width:54px;height:54px;border-radius:12px;background:#f8e9e9;color:#841419;display:grid;place-items:center;flex:0 0 auto}.saft-ytd-copy{min-width:0}.saft-ytd-card small{display:block;color:#65707e;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.saft-ytd-card strong{display:block;font-size:27px;line-height:1.1;margin-top:4px;color:#172033;letter-spacing:-.025em}.saft-ytd-card span{display:block;margin-top:5px;color:#747d88;font-size:10px}.saft-ytd-chart{border-left:1px solid #eee7e4;padding-left:22px;display:flex;flex-direction:column;justify-content:center;min-width:0}.saft-ytd-chart-title{font-size:10px;font-weight:700;color:#4f5965;margin:0 0 7px}.saft-ytd-bars{height:88px;display:grid;grid-template-columns:repeat(12,minmax(18px,1fr));align-items:end;gap:7px;border-bottom:1px solid #e7e3df;background:repeating-linear-gradient(to top,transparent 0,transparent 28px,#f2efec 29px)}.saft-ytd-month{height:88px;min-width:0;display:grid;grid-template-rows:74px 14px;align-items:end;text-align:center}.saft-ytd-barwrap{height:74px;display:flex;align-items:flex-end;justify-content:center}.saft-ytd-bar{display:block;width:min(18px,58%);min-height:1px;background:linear-gradient(180deg,#a94b4e,#801419);border-radius:3px 3px 0 0;transition:.15s}.saft-ytd-bar:hover{filter:brightness(.9)}.saft-ytd-month small{font-size:8px;letter-spacing:0;text-transform:none;color:#7a828b;white-space:nowrap}.saft-ytd-bars .empty{grid-column:1/-1;align-self:center;text-align:center;color:#7a828b;font-size:10px}

@media(max-width:800px){.user-menu-btn{min-width:auto;padding-left:10px}.user-menu-btn .top-user-copy{display:none}.user-menu-btn .user-chevron{display:none}.user-dropdown{top:52px}.saft-ytd-card{padding:15px}}

@media(max-width:1050px){.saft-ytd-card{grid-template-columns:1fr}.saft-ytd-chart{border-left:0;border-top:1px solid #eee7e4;padding-left:0;padding-top:14px}}
@media(max-width:650px){.saft-ytd-bars{overflow-x:auto;grid-template-columns:repeat(12,34px);gap:5px}.saft-ytd-card{padding:15px}.saft-ytd-summary{align-items:flex-start}}

/* v0.10.4.1 — alinhamento de colunas monetárias no relatório Clientes e avenças */
.report-table th.num-col,.report-table td.num-col{text-align:right;font-variant-numeric:tabular-nums}


/* v0.10.5 — serviços contratados e obrigações editáveis */
.service-line{display:flex!important;align-items:flex-start!important;justify-content:space-between;gap:14px}
.service-copy{min-width:0;flex:1}
.service-tags{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}
.service-note{margin:8px 0 0;font-size:13px;line-height:1.45;color:#555b62;white-space:pre-wrap}
.ob-table.editable .tr{grid-template-columns:120px minmax(230px,1.55fr) minmax(180px,1fr) 130px 82px}
.ob-note{display:block;margin-top:4px;color:#6b7076;line-height:1.35;white-space:normal}
.row-actions{text-align:right}
@media(max-width:900px){.ob-table.editable .tr{grid-template-columns:105px minmax(200px,1.4fr) minmax(150px,1fr) 115px 72px}}

/* v0.10.5.1 — melhor leitura e edição direta dos Serviços contratados */
.service-list .service-line{padding:14px 2px!important}
.service-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.service-title{appearance:none;border:0;background:transparent;padding:0;margin:0;color:#27313d;font:inherit;font-size:15px;font-weight:700;line-height:1.35;text-align:left;cursor:pointer;transition:color .15s ease,text-decoration-color .15s ease}
.service-title:hover,.service-title:focus-visible{color:#7d151a;text-decoration:underline;text-underline-offset:3px}
.service-title:focus-visible{outline:2px solid rgba(125,21,26,.22);outline-offset:3px;border-radius:3px}
.service-tags.inline{display:inline-flex;margin-top:0;gap:6px;flex:0 0 auto}
.service-list .status{font-size:11px;line-height:1.2;padding:4px 8px}
.service-meta{display:block;margin-top:7px;font-size:13px!important;line-height:1.45;color:#66707a!important}
.service-note{margin:8px 0 0;font-size:14px!important;line-height:1.5;color:#4e5660;white-space:pre-wrap}
@media(max-width:700px){.service-head{align-items:flex-start}.service-title{font-size:14px}.service-tags.inline{width:100%}.service-meta{font-size:12px!important}.service-note{font-size:13px!important}}

/* v0.10.6 — leitura consistente dos cartões + edição pela designação */
.client-tab-body .v-card .v-card-head h3,
.client-tab-body .card .v-card-head h3{font-size:15px;line-height:1.25}
.client-tab-body .info-grid div small{font-size:11px;line-height:1.35}
.client-tab-body .info-grid div b{font-size:13px;line-height:1.35;margin-top:5px}
.client-tab-body .mini-list>div{padding-top:12px;padding-bottom:12px;padding-right:0}
.client-tab-body .mini-list b,
.client-tab-body .record-title{font-size:13px;line-height:1.35;font-weight:700}
.client-tab-body .mini-list small{font-size:11px;line-height:1.45;margin-top:4px}
.client-tab-body .status-grid>div{font-size:12px;padding:9px 0}
.client-tab-body .period-list>div{font-size:12px;padding:11px 0;grid-template-columns:82px 1fr}
.client-tab-body .timeline-list p b{font-size:13px}
.client-tab-body .timeline-list p small{font-size:11px;line-height:1.45}
.client-tab-body .doc-grid b{font-size:13px}
.client-tab-body .doc-grid small{font-size:11px;line-height:1.4}
.client-tab-body .data-table .tr{font-size:12px}
.client-tab-body .ob-note{font-size:11px;line-height:1.4}
.record-title{appearance:none;border:0;background:transparent;padding:0;margin:0;color:#1d2733;text-align:left;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.record-title:hover{color:var(--wine);text-decoration:underline;text-underline-offset:3px}
.record-title:focus-visible{outline:2px solid rgba(128,20,25,.25);outline-offset:3px;border-radius:3px}
.record-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hon-line{display:block!important}
.ob-table.editable .tr{grid-template-columns:110px minmax(220px,1.5fr) minmax(180px,1fr) 120px!important}

/* v0.10.7 — Honorários: ativos por defeito, filtros e edição pelo cliente */
.hon-toolbar{display:flex;justify-content:flex-end;align-items:end;gap:12px;margin:-4px 0 14px}.hon-toolbar label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:600;color:#66717f}.hon-toolbar select{min-width:150px;height:36px;border:1px solid #d9dde2;border-radius:7px;background:#fff;padding:0 10px;color:#202833;font-size:11px}.honorarios-list .hon-row{display:grid!important;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:18px;padding:14px 2px!important}.hon-main{min-width:0}.hon-client-name{font-size:14px!important;font-weight:700!important;color:#17202c!important;text-align:left}.hon-client-name:hover{color:var(--wine)!important;text-decoration:underline;text-underline-offset:3px}.hon-value{text-align:right;font-size:15px;font-variant-numeric:tabular-nums;color:#17202c}.hon-note{margin:5px 0 0;font-size:11px;line-height:1.45;color:#65707e}.hon-count{display:inline-grid;place-items:center;min-width:22px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:#f1e9e8;color:#7e151a;font-size:10px;vertical-align:middle}@media(max-width:700px){.hon-toolbar{justify-content:stretch}.hon-toolbar label{flex:1}.hon-toolbar select{width:100%;min-width:0}.honorarios-list .hon-row{grid-template-columns:1fr auto}.hon-value{font-size:13px}}

/* v0.10.8 — Honorários em tabela */
.hon-toolbar{justify-content:flex-start;margin:0 0 14px}.hon-table-wrap{overflow:auto}.hon-table{width:100%;border-collapse:collapse;font-size:13px}.hon-table th,.hon-table td{padding:13px 14px;border-bottom:1px solid #eceff2;vertical-align:middle}.hon-table th{background:#faf8f7;color:#5d6570;font-size:11px;text-transform:uppercase;letter-spacing:.03em;text-align:left;white-space:nowrap}.hon-table th.num,.hon-table td.num{text-align:right;font-variant-numeric:tabular-nums}.hon-table .hon-value{font-size:14px;font-weight:700}.hon-sort{appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:700;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.hon-sort:hover{color:var(--wine)}.hon-table tbody tr:hover{background:#fcfbfa}.hon-table .hon-client-name{font-size:13px!important}.hon-table .badge{white-space:nowrap}@media(max-width:700px){.hon-table{min-width:640px}.hon-toolbar{justify-content:stretch}.hon-toolbar label{width:100%}}

/* v0.10.10 — seletor rápido de cliente na ficha */
.client-title-wrap{position:relative;min-width:0}
.client-switcher-btn{display:flex;align-items:center;gap:7px;max-width:min(620px,55vw);padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left;font-weight:700;font-size:23px;line-height:1.2}
.client-switcher-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-switcher-btn svg{flex:0 0 auto;color:var(--wine);transition:transform .16s ease}
.client-switcher-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.client-switcher-btn:hover span{color:var(--wine)}
.client-switcher-menu{display:none;position:absolute;top:38px;left:0;z-index:60;width:min(460px,75vw);background:#fff;border:1px solid #dfe3e8;border-radius:10px;box-shadow:0 18px 45px rgba(25,35,50,.16);overflow:hidden}
.client-switcher-menu.open{display:block}
.client-switcher-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #eceff2;color:#707b8b;background:#fafbfc}
.client-switcher-search input{width:100%;border:0;outline:0;background:transparent;font-size:13px;color:var(--ink)}
.client-switcher-list{max-height:360px;overflow:auto;padding:5px}
.client-switcher-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:7px;background:#fff;padding:10px 11px;cursor:pointer;text-align:left;color:var(--ink)}
.client-switcher-option:hover{background:#f8eeee}
.client-switcher-option.current{background:#fbf4f4}
.client-switcher-option span{min-width:0}
.client-switcher-option b,.client-switcher-option small{display:block}
.client-switcher-option b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-switcher-option small{margin-top:3px;color:#788393;font-size:11px}
.client-switcher-option em{font-size:10px;font-style:normal;color:var(--wine);background:#f4e1e2;border-radius:999px;padding:3px 7px;white-space:nowrap}
.client-switcher-loading,.client-switcher-empty{padding:18px;text-align:center;color:#788393;font-size:12px}
@media(max-width:800px){.client-switcher-btn{max-width:65vw;font-size:20px}.client-switcher-menu{width:min(420px,82vw);left:-72px}}

/* v0.10.11 · reconciliação de clientes a partir do SAF-T do gabinete */
.saft-client-review{margin-top:14px;border:1px solid #e5d8d8;border-radius:12px;overflow:hidden;background:#fff}
.saft-review-head{padding:14px 16px;background:#faf6f5;display:flex;flex-direction:column;gap:3px}.saft-review-head b{font-size:14px}.saft-review-head span{font-size:12px;color:#6d6262}
.saft-review-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-top:1px solid #eee6e4}.saft-review-row>div{display:flex;flex-direction:column;gap:3px}.saft-review-row strong{font-size:13px}.saft-review-row small{font-size:11px;color:#776d6b}.saft-review-row .btn{white-space:nowrap}
.saft-review-modal>p{font-size:13px;line-height:1.5}.saft-source-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin:10px 0 16px;background:#faf7f6;border:1px solid #eadfdd;border-radius:10px}.saft-source-card b{font-size:14px}.saft-source-card span{font-size:12px;color:#6f6664}.saft-review-modal .data-table td,.saft-review-modal .data-table th{font-size:12px}.saft-review-modal .muted{font-size:11px;color:#756b69}
@media(max-width:720px){.saft-review-row{align-items:flex-start;flex-direction:column}.saft-review-row .btn{width:100%}}

/* v0.10.12 — Contas a receber */
.saft-receivables-card{border:1px solid var(--clean-border);border-radius:9px;box-shadow:var(--clean-shadow);background:#fff;overflow:hidden;margin-bottom:14px}.saft-filters input{height:34px;border:1px solid #dadde1;border-radius:6px;background:#fff;padding:0 10px;font-size:10px;min-width:190px}.recv-kpis{display:grid;grid-template-columns:1.35fr repeat(4,1fr);gap:10px;padding:14px 18px}.recv-kpis>div{border:1px solid #eceae7;border-radius:8px;padding:12px 14px;background:#fcfbfa}.recv-kpis span,.recv-kpis small{display:block;color:#6c7580;font-size:9px}.recv-kpis b{display:block;margin:4px 0;font-size:18px;color:#17202c}.recv-table{padding:0 18px 18px}.recv-table .num{text-align:right;font-variant-numeric:tabular-nums}.recv-table td small{display:block;color:#78818b;font-size:9px;margin-top:2px}.recv-balance{font-weight:700;color:#801419}@media(max-width:900px){.recv-kpis{grid-template-columns:repeat(2,1fr)}.saft-filters input{min-width:120px}}

/* v0.10.13 — dívidas no dashboard e ficha de cliente */
.kpi-debt-link{display:block;border:0;background:none;padding:0;margin-top:5px;color:#86171c;font-size:10px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.kpi-debt-link:hover{color:#5f0d11}.hero-debt b{color:#86171c}.client-debt-summary{margin-bottom:14px;padding:18px 20px}.client-debt-summary small,.client-debt-summary span{display:block;color:#6b7280;font-size:12px}.client-debt-summary strong{display:block;font-size:28px;color:#86171c;margin:4px 0}.debt-modal{width:min(1100px,94vw);max-width:1100px}.debt-modal .modal-body{max-height:72vh;overflow:auto}.recv-table .num{text-align:right;font-variant-numeric:tabular-nums}.recv-balance{font-weight:700;color:#86171c}
/* v0.10.14 — documentos da ficha de cliente */
.client-doc-card{position:relative;display:flex;flex-direction:column;gap:6px;min-height:150px}
.client-doc-card>.record-title{font-size:15px;text-align:left;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;font-weight:700}
.client-doc-card>.record-title:hover{text-decoration:underline;text-decoration-color:#7a1f35;text-underline-offset:3px}
.doc-description{font-size:13px;line-height:1.35;color:#5f6670;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.doc-card-actions{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:8px;border-top:1px solid #ece8e5}
.doc-action{border:0;background:transparent;color:#7a1f35;font-weight:700;font-size:12px;cursor:pointer;padding:3px 0}
.doc-action:hover{text-decoration:underline}
.doc-no-link{font-size:12px;color:#8b8f96;margin-right:auto}
.doc-card-actions .doc-action:first-child{margin-right:auto}
/* v0.10.15 · SAF-T Contabilidade */
.toc-accounting-context{display:flex;gap:28px;align-items:end;margin:0 0 16px;padding:16px 18px}.toc-accounting-context>div:first-child{min-width:420px;flex:1}.toc-accounting-context small,.toc-import-meta small{display:block;color:#70757d;margin-bottom:5px}.toc-accounting-context select{width:100%;max-width:680px;padding:10px 12px;border:1px solid #d9dadd;border-radius:9px;background:#fff}.toc-accounting-context b,.toc-import-meta b{display:block}.toc-accounting-kpis{margin-bottom:16px}.toc-import-meta{display:grid;grid-template-columns:2fr 1fr 1.2fr 1.2fr;gap:20px;padding:18px}.toc-import-meta span{font-size:12px;color:#70757d}.toc-table .num{text-align:right;font-variant-numeric:tabular-nums}.toc-accounting-page .record-title{font-size:13px}@media(max-width:900px){.toc-accounting-context{display:block}.toc-accounting-context>div{margin-bottom:12px}.toc-accounting-context>div:first-child{min-width:0}.toc-import-meta{grid-template-columns:1fr 1fr}}

/* v0.10.16 · Indicadores SAF-T Contabilidade */
.indicator-period{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 14px;padding:12px 16px;background:#fff;border:1px solid #e7e2df;border-radius:12px}.indicator-period span{font-size:13px;color:#706a67}.indicator-section{margin-bottom:16px}.indicator-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 18px 18px}.indicator-card{appearance:none;text-align:left;background:#fff;border:1px solid #e7e2df;border-radius:12px;padding:14px 15px;cursor:pointer;min-height:92px;transition:.15s ease}.indicator-card:hover{border-color:#7a1f35;box-shadow:0 5px 18px rgba(50,35,38,.08);transform:translateY(-1px)}.indicator-card small{display:block;font-size:12px;color:#706a67;margin-bottom:8px}.indicator-card strong{display:block;font-size:20px;line-height:1.15;color:#2d2928;font-variant-numeric:tabular-nums}.indicator-warning{display:inline-block;margin-top:8px;font-size:11px;font-weight:700;color:#7a1f35;background:#f7ecef;border-radius:999px;padding:3px 7px}.indicator-detail-value{font-size:28px;font-weight:750;color:#7a1f35;margin-bottom:18px}@media(max-width:1050px){.indicator-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.indicator-grid{grid-template-columns:1fr}.indicator-period{align-items:flex-start;flex-direction:column}}
/* v0.10.17 · Análise por período */
.toc-period-controls{min-width:280px}.toc-period-row{display:flex;gap:8px;margin-top:4px}.toc-period-row select{min-width:130px}@media(max-width:760px){.toc-period-controls{min-width:0;width:100%}.toc-period-row{flex-wrap:wrap}.toc-period-row select{flex:1}}

/* v0.10.18 — filtros de obrigações e quadro de resultados */
.ob-filter-grid{display:grid;grid-template-columns:1fr 1.6fr 1.6fr 1fr;gap:10px;margin:0 0 14px}.ob-filter-grid label{font-size:12px;font-weight:700;color:#655;display:flex;flex-direction:column;gap:5px}.ob-filter-grid input,.ob-filter-grid select{min-height:38px;border:1px solid #ddd4d1;border-radius:9px;background:#fff;padding:7px 10px;color:#2c2928}.results-card{padding:4px 20px 18px}.results-grid{max-width:760px;margin:auto}.result-row{display:flex;justify-content:space-between;gap:20px;padding:11px 6px;border-bottom:1px solid #eee8e5;font-size:14px}.result-row b{font-variant-numeric:tabular-nums}.result-row b.negative{color:#9c3030}.result-row.result-total{font-size:15px;border-top:1px solid #cfc3bf;background:#faf7f6;padding-left:12px;padding-right:12px}.results-note{max-width:760px;margin:15px auto 0;padding:10px 12px;background:#faf7f6;border-radius:9px;font-size:12px;color:#6d625f}.results-chart{display:flex;align-items:flex-end;gap:24px;min-height:220px;padding:28px 20px 8px;overflow-x:auto}.results-year{min-width:88px;text-align:center}.results-bars{height:160px;display:flex;align-items:flex-end;justify-content:center;gap:7px}.results-bars .bar{display:block;width:22px;border-radius:5px 5px 0 0;background:#7a2638}.results-bars .bar.net{background:#3f3b3a}.results-year b,.results-year small{display:block;margin-top:6px}.results-year small{font-size:11px;color:#756b68}.results-legend{display:flex;gap:22px;padding:4px 20px 18px;font-size:12px;color:#655}.results-legend span:first-child{color:#7a2638}.results-legend span:last-child{color:#3f3b3a}@media(max-width:800px){.ob-filter-grid{grid-template-columns:1fr 1fr}.results-chart{gap:14px}}
.results-comparison{padding-top:14px}.results-comparison .results-note{max-width:none}.results-table{min-width:820px}.results-table th:first-child{position:sticky;left:0;z-index:2;background:#fff;min-width:230px;text-align:left}.results-table thead th{vertical-align:bottom;white-space:nowrap}.results-table thead th:not(:first-child),.results-table tbody td{text-align:right!important}.results-table thead th small{display:block;margin-top:3px;color:#857a76;font-size:9px;font-weight:500;text-align:right}.results-table thead th.current-year{background:#f7eded;color:#711016}.results-table td{min-width:145px;font-variant-numeric:tabular-nums}.results-table td b{display:block;white-space:nowrap;text-align:right}.results-table td.negative b{color:#9c3030}.results-table tr.result-total th,.results-table tr.result-total td{background:#faf7f6;border-top:1px solid #cfc3bf;font-size:14px}.results-table tr.result-total th:first-child{background:#faf7f6}.result-delta{display:block;margin-top:4px;font-size:9px;font-weight:600;text-align:right}.result-delta.up{color:#24704a}.result-delta.down{color:#a03636}.result-delta.neutral{color:#938a86}@media(max-width:800px){.toc-period-row{flex-wrap:wrap}.results-card{padding-left:10px;padding-right:10px}}

/* v0.10.29 — filtros de clientes e eliminação de obrigações */
.client-list-filters{display:grid;grid-template-columns:minmax(260px,1fr) 220px auto;gap:12px;align-items:end;margin-bottom:12px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:9px}.client-list-filters label{display:flex;flex-direction:column;gap:5px;color:#665f5d;font-size:11px;font-weight:600}.client-list-filters input,.client-list-filters select{height:38px;border:1px solid #d7dce3;border-radius:7px;background:#fff;padding:0 10px}.client-list-filters>span{padding-bottom:10px;color:#737c87;font-size:11px;white-space:nowrap}.btn.danger{border-color:#b52a31;color:#a51f26;background:#fff}.btn.danger:hover{background:#fff0f1}.modal-delete{margin-right:auto}@media(max-width:700px){.client-list-filters{grid-template-columns:1fr}.client-list-filters>span{padding-bottom:0}}
/* v0.10.19 — indicadores compactos e impostos */
.compact-indicators{padding:0;overflow:hidden}.indicator-table td,.indicator-table th{padding:9px 12px;font-size:13px}.indicator-table .indicator-link{appearance:none;border:0;background:none;padding:0;color:#3a3230;font:inherit;font-weight:650;cursor:pointer;text-align:left}.indicator-table .indicator-link:hover{color:#7a1f35;text-decoration:underline}.indicator-table .indicator-warning{margin:0}.tax-table-card{padding:0;overflow:hidden}.tax-table th,.tax-table td{white-space:nowrap;font-size:12.5px;padding:9px 11px}.tax-table .num,.indicator-table .num{text-align:right;font-variant-numeric:tabular-nums}.tax-table-card .results-note{margin:0 14px 14px}

/* v0.10.20 — matriz anual de impostos */
.tax-matrix-card{padding:0;overflow:hidden}.tax-matrix{min-width:1180px}.tax-matrix th:first-child,.tax-matrix td:first-child{position:sticky;left:0;background:var(--card,#fff);z-index:1;min-width:190px}.tax-matrix thead th:first-child{z-index:3}.tax-group-row td{position:static!important;background:#f3ecec!important;color:#651d2a;padding:9px 12px!important;border-top:2px solid #d8c2c6;border-bottom:1px solid #d8c2c6}.tax-separator td{height:7px;padding:0!important;background:#faf8f5!important}.tax-emphasis td{font-weight:700;background:#fbf7f7}.tax-total{border-left:2px solid #d9d1cc!important;background:#faf7f4!important}.tax-future{color:#aaa}.tax-matrix td.num,.tax-matrix th.num{white-space:nowrap;font-variant-numeric:tabular-nums}

/* v0.10.21 */
.tax-matrix{table-layout:fixed;min-width:1320px;width:100%}.tax-matrix th:first-child,.tax-matrix td:first-child{width:210px;min-width:210px}.tax-matrix th:not(:first-child),.tax-matrix td:not(:first-child){width:85px;min-width:85px;max-width:85px}.tax-matrix td.num,.tax-matrix th.num{text-align:right!important;font-variant-numeric:tabular-nums}.tax-matrix tbody tr td:first-child{white-space:nowrap}.tax-matrix tbody tr td:first-child b{font-weight:600}

/* v0.10.22 — dashboard legível, evolução de obrigações e matriz fiscal */
.clean-dashboard{font-size:14px}.clean-title-row p{font-size:14px}.clean-kpi>div>span{font-size:14px}.clean-kpi small{font-size:12px}.clean-card-head h3{font-size:15px}.clean-card-head>a,.clean-card-head>span{font-size:12px}.clean-ob-list p b{font-size:12px}.clean-ob-list p span{font-size:11px}.clean-ob-list time b{font-size:15px}.clean-ob-list time small{font-size:10px}.clean-ob-list .status{font-size:10px}.clean-activity-list time,.clean-activity-list p b,.clean-activity-list p span,.clean-client-list p b,.clean-client-list p span,.clean-client-list em{font-size:11px}.clean-footer{font-size:10px}.clean-footer em{font-size:9px}
.ob-line-wrap{height:207px;padding:10px 16px 6px}.ob-line-svg{width:100%;height:155px;overflow:visible}.ob-line-svg .gridline{stroke:#eceae7;stroke-width:1}.ob-series{fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke}.ob-point{stroke-width:2;vector-effect:non-scaling-stroke}.line-delivered{stroke:#9a6b23;color:#9a6b23;fill:#fff}.line-communicated{stroke:#426b91;color:#426b91;fill:#fff}.line-completed{stroke:#27855b;color:#27855b;fill:#fff}.ob-line-months{display:grid;grid-template-columns:repeat(12,1fr);font-size:9px;color:#697383;text-align:center;margin-top:-2px}.ob-line-legend{display:flex;justify-content:center;gap:18px;font-size:10px;margin-top:4px}.ob-line-legend span:before{content:'—';font-weight:800;margin-right:4px}.dot.neutral2{background:#8caf9d}
.tax-matrix tbody tr:not(.tax-group-row):not(.tax-separator) td{border-bottom:1px solid #ebe7e3}.tax-matrix tbody tr:nth-child(even):not(.tax-group-row):not(.tax-separator) td{background:#fcfbfa}.tax-matrix .tax-group-row td{background:#eee4e5!important;border-top:3px solid #7b1b22!important;border-bottom:1px solid #ccb9bc!important}.tax-matrix tr.tax-emphasis td{background:#f7eeee!important;border-top:1px solid #d9c5c8;border-bottom:1px solid #d9c5c8}.tax-matrix tbody tr td:first-child{border-right:1px solid #e1dcd8}.tax-matrix .tax-total{border-left:2px solid #cfc5bf!important}

/* v0.10.26 — caixa de comunicações por email */
.comm-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.comm-head h2{margin:0;font-size:20px}.comm-head small{display:block;margin-top:4px;color:#707985}.comm-actions{display:flex;gap:8px}.comm-mail-card{overflow:hidden}.comm-tabs{display:flex;gap:4px;padding:10px 14px;border-bottom:1px solid #e7e4e1;background:#faf9f7}.comm-tabs button{border:0;border-radius:7px;background:transparent;padding:8px 12px;color:#646c76;font-size:12px;font-weight:700;cursor:pointer}.comm-tabs button b{display:inline-grid;place-items:center;min-width:19px;height:19px;margin-left:5px;border-radius:999px;background:#e9e8e6;font-size:10px}.comm-tabs button.active{background:#fff;color:var(--wine);box-shadow:0 1px 5px rgba(20,20,20,.09)}.comm-tabs button.active b{background:#f1dfe1}.comm-layout{display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);min-height:470px}.comm-mail-list{border-right:1px solid #e7e4e1;max-height:650px;overflow:auto}.comm-mail-list>button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #eeece9;background:#fff;padding:14px 16px;text-align:left;cursor:pointer}.comm-mail-list>button:hover,.comm-mail-list>button.selected{background:#faf3f3}.comm-mail-list>button.selected{box-shadow:inset 3px 0 var(--wine)}.comm-mail-list span{min-width:0}.comm-mail-list b,.comm-mail-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comm-mail-list b{font-size:13px;color:#252a31}.comm-mail-list small{margin-top:5px;font-size:10px;color:#77808b}.comm-mail-list em{font-style:normal;color:#7b1b22;font-size:12px;white-space:nowrap}.comm-mail-detail{min-width:0;padding:22px 24px}.comm-mail-detail header{padding-bottom:16px;border-bottom:1px solid #e9e6e3}.comm-mail-detail h3{margin:10px 0 14px;font-size:19px;line-height:1.3}.comm-mail-detail header div,.comm-mail-detail header small{display:block;margin:4px 0;color:#626b75;font-size:11px}.comm-mail-detail pre{margin:0;padding:22px 0;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.65 system-ui,sans-serif;color:#303740}.comm-direction{display:inline-block;border-radius:999px;padding:4px 8px;background:#edf3ef;color:#26704a;font-size:9px;font-weight:800;text-transform:uppercase}.comm-direction.saida{background:#eeeaf5;color:#62488b}.comm-attachments{display:inline-block;margin:10px 0 0;padding:6px 9px;border-radius:6px;background:#f5f3f1;color:#635b55;font-size:10px}.comm-empty{display:grid;place-items:center;min-height:180px;padding:24px;text-align:center;color:#818892;font-size:12px}@media(max-width:850px){.comm-head{align-items:flex-start;flex-direction:column}.comm-actions{width:100%;flex-wrap:wrap}.comm-layout{grid-template-columns:1fr}.comm-mail-list{border-right:0;border-bottom:1px solid #e7e4e1;max-height:320px}.comm-mail-detail{padding:18px}.comm-tabs{overflow:auto}}
