/* ==========================================================================
   calcsentenca — sistema visual
   Papel oficial + precisão. Serifa para títulos, Inter para interface,
   monoespaçada para tudo que é dado.
   ========================================================================== */

:root{
  --paper:#fcfbf8;
  --paper-2:#f6f4ee;
  --paper-3:#efede4;
  --ink:#17150f;
  --ink-2:#403d34;
  --muted:#6f6b5e;
  --faint:#9c9787;
  --line:#e5e2d8;
  --line-2:#d3cfc0;

  --navy:#17263d;
  --navy-soft:#eef1f6;
  --navy-line:#c9d3e3;

  --amber:#a45a08;
  --amber-soft:#fdf6e8;
  --amber-line:#ebd7ac;

  --green:#2c6349;
  --green-soft:#eff5f0;
  --green-line:#c8dccd;

  --r:3px;
  --r-md:6px;
  --serif:"Instrument Serif","Iowan Old Style",Georgia,"Times New Roman",serif;
  --sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,sans-serif;
  --mono:ui-monospace,"JetBrains Mono","SF Mono","Roboto Mono",Menlo,monospace;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:14px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
h1,h2,h3,h4,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}

.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.label{
  font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-family:var(--sans);
}
.display{font-family:var(--serif);font-weight:400;letter-spacing:-.015em;line-height:1.06}

/* ---------- shell ---------- */
.wordmark{display:flex;align-items:baseline;gap:0;font-family:var(--serif);font-size:23px;letter-spacing:-.01em}
.wordmark i{font-style:italic}
.wordmark b{font-weight:400}
.link-quiet{font-size:13px;color:var(--muted)}
.link-quiet:hover{color:var(--ink)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:38px;padding:0 16px;border-radius:var(--r-md);
  border:1px solid var(--line-2);background:#fff;color:var(--ink);
  font-size:13px;font-weight:500;white-space:nowrap;
}
.btn:hover{border-color:var(--ink);background:#fff}
.btn-solid{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-solid:hover{background:#0f1b2d;border-color:#0f1b2d}
.btn-lg{height:46px;padding:0 22px;font-size:14px}
.btn-quiet{border-color:transparent;background:transparent;padding:0 8px;color:var(--muted)}
.btn-quiet:hover{background:transparent;color:var(--ink);border-color:transparent}

/* ---------- landing ---------- */
.wrap{max-width:var(--container,1240px);margin:0 auto;padding:0 var(--gutter,32px)}
.hero{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:64px;align-items:center;
  padding:88px 0 76px;border-bottom:1px solid var(--line);
}
.hero .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:26px}
.hero .eyebrow .rule{width:26px;height:1px;background:var(--line-2)}
.hero h1{font-size:60px;line-height:1.02;letter-spacing:-.022em}
.hero h1 em{font-style:italic;color:var(--navy)}
.hero .lead{margin-top:24px;font-size:16px;line-height:1.62;color:var(--ink-2);max-width:44ch}
.hero .actions{display:flex;align-items:center;gap:12px 18px;margin-top:34px;flex-wrap:wrap}
.hero .actions .note{font-size:12.5px;color:var(--muted);max-width:22ch;line-height:1.45}
.hero .proof{
  display:flex;gap:26px;margin-top:44px;padding-top:22px;border-top:1px solid var(--line);
}
.hero .proof div{min-width:0;flex:1}
.hero .proof div span{display:block}
.hero .scope-note{margin-top:16px;font-size:13px;line-height:1.6;color:var(--ink-2);max-width:54ch}
.hero .proof .k{font-family:var(--mono);font-size:19px;letter-spacing:-.03em}
.hero .proof .v{font-size:11.5px;color:var(--muted);margin-top:2px}

/* documento → csv */
.stack{position:relative;padding:10px 0 84px}
.paper{
  background:#fff;border:1px solid var(--line-2);
  padding:22px 22px 16px;box-shadow:0 18px 40px -28px rgba(23,21,15,.45);
  position:relative;
}
.paper::after{
  content:"";position:absolute;inset:6px -7px -7px 6px;border:1px solid var(--line);
  z-index:-1;background:var(--paper-2);
}
.paper .phead{
  display:flex;align-items:baseline;justify-content:space-between;
  padding-bottom:11px;border-bottom:1px solid var(--line);margin-bottom:12px;
}
.paper .ptitle{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600}
.paper .pmeta{font-family:var(--mono);font-size:10px;color:var(--faint)}
.paper table{width:100%;border-collapse:collapse}
.paper th{
  font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);
  text-align:left;font-weight:600;padding:0 0 7px;
}
.paper th.c,.paper td.c{text-align:center}
.paper td{
  font-family:var(--mono);font-size:12px;color:var(--ink-2);
  padding:5px 0;border-top:1px solid #f1efe7;
}
.paper tr.dim td{color:var(--faint)}
.paper tr.sel td{background:var(--amber-soft)}
.paper tr.sel td:first-child{box-shadow:inset 2px 0 0 var(--amber)}
.paper .scan{
  margin-top:12px;display:flex;align-items:center;gap:8px;
  font-size:10px;color:var(--faint);font-family:var(--mono);
}
.csv{
  position:absolute;right:-14px;bottom:-18px;width:72%;
  background:var(--navy);color:#e9edf4;border-radius:var(--r-md);
  padding:14px 16px 12px;box-shadow:0 22px 44px -26px rgba(23,38,61,.8);
}
.csv .chead{
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;
  color:#9fb0c9;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12);
}
.csv .tagi{font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:#d9e3f1;background:rgba(255,255,255,.1);padding:2px 6px;border-radius:2px}
.csv pre{margin:0;font-family:var(--mono);font-size:10.5px;line-height:1.9;color:#cfdaea;overflow:auto}
.csv pre .k{color:#fff}
.csv pre .z{color:#6d7f99}

/* passos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:56px 0;border-bottom:1px solid var(--line)}
.step{padding:0 34px;border-left:1px solid var(--line)}
.step:first-child{padding-left:0;border-left:0}
.step .n{font-family:var(--mono);font-size:11px;color:var(--faint);letter-spacing:.08em}
.step h3{font-family:var(--serif);font-size:24px;font-weight:400;margin:10px 0 8px;letter-spacing:-.01em}
.step p{font-size:13.5px;color:var(--muted);line-height:1.6;max-width:34ch}

/* formato */
.format{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:56px;padding:64px 0;border-bottom:1px solid var(--line);align-items:start}
.format h2{font-family:var(--serif);font-size:36px;font-weight:400;letter-spacing:-.015em;line-height:1.14}
.format p{margin-top:16px;font-size:14px;color:var(--muted);line-height:1.65;max-width:38ch}
.format .facts{margin-top:26px;border-top:1px solid var(--line)}
.format .facts div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.format .facts dt,.format .facts .fk{color:var(--muted)}
.format .facts .fv{font-family:var(--mono);font-size:12px}
.ledger{
  border:1px solid var(--line);background:#fff;border-radius:var(--r-md);overflow:hidden;min-width:0;max-width:100%;
}
.ledger .lhead{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--line);background:var(--paper-2);
}
.ledger .lhead{flex-wrap:wrap;gap:8px}
.ledger .lhead .fname{font-family:var(--mono);font-size:11px;color:var(--ink-2);min-width:0;overflow-wrap:anywhere}
.format .ledger .cols{max-width:none;margin-top:0}
@media(max-width:640px){
  .stack{padding-bottom:0;min-width:0}
  .csv{position:relative;right:auto;bottom:auto;width:100%;margin-top:14px}
  .csv .chead{flex-wrap:wrap;gap:8px}
}
.ledger .lhead .sep{font-size:10px;color:var(--faint);letter-spacing:.1em;text-transform:uppercase}
.ledger .cols{
  padding:10px 16px 8px;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;line-height:1.9;color:var(--faint);letter-spacing:-.02em;
}
.ledger .cols b{color:var(--ink-2);font-weight:500}
.ledger pre{
  margin:0;padding:14px 16px;font-family:var(--mono);font-size:11.5px;line-height:1.95;color:var(--ink-2);
  white-space:normal;overflow-x:auto;max-width:100%;
}
.ledger pre .h{color:var(--ink);font-weight:600}
.ledger pre .d{color:var(--faint)}
.ledger pre .n{color:var(--navy)}
.ledger .lfoot{display:flex;gap:18px;padding:10px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--faint)}
.ledger .lfoot b{color:var(--ink-2);font-weight:500}

/* faixa de revisão */
.reviewband{padding:64px 0;border-bottom:1px solid var(--line)}
.reviewband .head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:30px}
.reviewband h2{font-family:var(--serif);font-size:36px;font-weight:400;letter-spacing:-.015em}
.reviewband .head p{font-size:14px;color:var(--muted);max-width:36ch;line-height:1.6}
.trustgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.trustgrid article{background:var(--paper);padding:24px 26px}
.trustgrid .ico{width:26px;height:26px;color:var(--navy);margin-bottom:14px}
.trustgrid h4{font-size:13.5px;font-weight:600;margin-bottom:6px}
.trustgrid p{font-size:12.5px;color:var(--muted);line-height:1.6}

/* planos na landing (antes do CTA) */
.plansband{padding:64px 0;border-bottom:1px solid var(--line)}
.plansband .head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:26px}
.plansband h2{font-family:var(--serif);font-size:36px;font-weight:400;letter-spacing:-.015em;line-height:1.12;max-width:24ch}
.plansband .head p{font-size:13.5px;color:var(--muted);max-width:34ch;line-height:1.6}
.plansrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.plansrow article{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px 24px;display:flex;flex-direction:column;gap:6px}
.plansrow article.hl{background:#fffdf7;border-color:var(--navy-line)}
.pr-name{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.pr-price{font-size:26px;letter-spacing:-.03em;color:var(--ink)}
.pr-price span{font-size:12px;color:var(--muted);margin-left:6px}
.pr-note{font-size:12px;color:var(--muted)}
.plansfoot{display:flex;align-items:center;gap:18px;margin-top:22px;flex-wrap:wrap}
.plansfoot .note{font-size:12px;color:var(--faint)}

/* Data handling and operator identity. */
.data-notice{padding:48px 0;border-bottom:1px solid var(--line);max-width:100%}
.data-notice h2{font-size:32px;margin:12px 0 16px}
.data-notice p{font-size:14px;line-height:1.7;color:var(--ink-2);max-width:85ch;margin-top:12px}
.data-notice a,.upload-privacy a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.data-notice .company-contact{margin-top:22px}
.upload-privacy{font-size:13px;line-height:1.6;color:var(--ink-2);margin:18px 0}
.ledger .lfoot{flex-wrap:wrap}

/* cta */
.cta{padding:76px 0 88px;text-align:center}
.cta h2{font-family:var(--serif);font-size:44px;font-weight:400;letter-spacing:-.02em;line-height:1.1}
.cta p{margin:14px auto 0;font-size:14px;color:var(--muted);max-width:44ch}
.cta .actions{display:flex;gap:14px;justify-content:center;margin-top:30px}
.foot{border-top:1px solid var(--line);padding:26px 0 40px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--faint)}
.foot .links{display:flex;gap:20px}

/* ---------- rodapé do site ---------- */
.site-footer{border-top:1px solid var(--line-2);background:var(--paper-2);margin-top:0}
.footer-inner{max-width:var(--container,1240px);margin:0 auto;padding:44px var(--gutter,32px) 26px}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,.7fr));gap:34px}
.footer-brand .brandlock{margin-bottom:12px}
.footer-brand p{font-size:12.5px;color:var(--muted);line-height:1.6;max-width:34ch}
.footer-group h4{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.footer-group ul li{padding:3px 0}
.footer-group a{font-size:13px;color:var(--ink-2)}
.footer-group a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.footer-bottom{
  margin-top:36px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-size:11.5px;color:var(--faint);
}
.footer-legal{display:flex;gap:18px}
.footer-legal a{color:var(--faint)}
.footer-legal a:hover{color:var(--ink-2)}

/* ---------- app shell ---------- */
.app{display:flex;flex-direction:column;min-height:100vh;max-width:100vw;overflow-x:hidden}
.pill{
  font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);
  color:var(--muted);background:var(--paper-2);white-space:nowrap;
}
.pill.warn{color:var(--amber);background:var(--amber-soft);border-color:var(--amber-line)}
.pill.ok{color:var(--green);background:var(--green-soft);border-color:var(--green-line)}
.pill.info{color:var(--navy);background:var(--navy-soft);border-color:var(--navy-line)}

/* ---------- upload screen ---------- */
.upload{flex:1;display:grid;place-items:center;padding:56px var(--gutter,32px) 80px}
.upload .box{width:100%;max-width:660px}
.upload h1{font-family:var(--serif);font-size:42px;font-weight:400;letter-spacing:-.02em;line-height:1.08;margin-top:14px}
.upload .lead{margin-top:12px;color:var(--muted);font-size:14.5px;max-width:48ch}
.drop{
  margin-top:30px;border:1px solid var(--line-2);background:#fff;
  padding:34px 30px;display:flex;align-items:center;gap:22px;
  border-radius:var(--r-md);position:relative;transition:border-color .15s,background .15s;
}
.drop::after{
  content:"";position:absolute;inset:5px;border:1px dashed var(--line-2);border-radius:2px;pointer-events:none;
}
.drop:hover{border-color:var(--navy);background:#fffefb}
.drop .dico{width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:var(--paper-2)}
.drop .dtitle{font-size:14px;font-weight:600}
.drop .dhint{font-size:12.5px;color:var(--muted);margin-top:3px}
.drop .dact{margin-left:auto;display:flex;align-items:center;gap:10px}
.fmts{display:flex;gap:18px;margin-top:16px;font-size:11px;color:var(--faint);font-family:var(--mono)}
.fmts span::before{content:"·";margin-right:18px;color:var(--line-2)}
.fmts span:first-child::before{display:none}
.history{margin-top:46px}
.history .hhead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:2px}
.history .rows{border-top:1px solid var(--ink)}
.row-doc{display:grid;grid-template-columns:1fr auto auto auto;gap:20px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.row-doc .n{font-size:13px;font-weight:500}
.row-doc .m{font-size:11.5px;color:var(--faint);font-family:var(--mono);margin-top:2px}
.row-doc .go{font-size:11.5px;color:var(--muted)}
.row-doc:hover .go{color:var(--navy)}

/* ---------- workspace ---------- */
.work{flex:1;display:grid;grid-template-columns:88px minmax(0,1fr) minmax(300px,372px)}
.filmstrip{
  border-right:1px solid var(--line);background:var(--paper-2);
  padding:18px 0 30px;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:24px;
}
.filmstrip .flabel{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);writing-mode:vertical-rl;margin-bottom:2px}
.thumb{
  width:52px;height:68px;background:#fff;border:1px solid var(--line-2);border-radius:2px;
  position:relative;cursor:pointer;flex:none;
}
.thumb::after{
  content:"";position:absolute;left:7px;right:7px;top:9px;height:2px;background:var(--paper-3);
  box-shadow:0 5px 0 var(--paper-3),0 10px 0 var(--paper-3),0 15px 0 var(--paper-3),0 20px 0 var(--paper-3),0 25px 0 var(--paper-3),0 30px 0 var(--paper-3);
}
.thumb.on{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy-soft)}
.thumb.on::before{content:"";position:absolute;left:7px;right:7px;top:23px;height:4px;background:var(--amber-soft);border-top:1px solid var(--amber-line);border-bottom:1px solid var(--amber-line);z-index:2}
.thumb .pg{position:absolute;bottom:-14px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:8.5px;color:var(--faint);letter-spacing:0}

.ledgerpane{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--line)}
.panehead{
  display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);
  background:#fff;flex-wrap:wrap;
}
.panehead .t{font-size:13.5px;font-weight:600}
.panehead .filters{display:flex;gap:2px;margin-left:6px;background:var(--paper-2);padding:2px;border-radius:var(--r-md);border:1px solid var(--line)}
.panehead .filters button{
  font-size:11.5px;padding:4px 10px;border-radius:2px;color:var(--muted);display:flex;align-items:center;gap:6px;
}
.panehead .filters button.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(23,21,15,.08);font-weight:500}
.panehead .filters .c{font-family:var(--mono);font-size:10px;color:var(--faint)}
.panehead .end{margin-left:auto;display:flex;align-items:center;gap:8px}

.grid{flex:1;overflow:auto;min-width:0;max-width:100%}
table.ledger-t{width:100%;border-collapse:collapse;font-size:12.5px}
.ledger-t tbody td:first-child,.ledger-t thead th:first-child{width:118px;white-space:nowrap}
.ledger-t thead th{
  position:sticky;top:0;z-index:2;background:var(--paper-2);
  font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:600;
  text-align:center;padding:9px 8px;border-bottom:1px solid var(--line-2);
}
.ledger-t thead th:first-child{text-align:left;padding-left:20px}
.ledger-t thead th:last-child{text-align:right;padding-right:20px}
.ledger-t tbody td{padding:0;border-bottom:1px solid var(--line);text-align:center;min-width:0}
.ledger-t tbody td:first-child{text-align:left;padding-left:20px}
.ledger-t tbody td:last-child{text-align:right;padding-right:20px}
.ledger-t tbody tr:hover{background:var(--paper-2)}
.ledger-t tbody tr.sel{background:#fffdf6;box-shadow:inset 2px 0 0 var(--navy)}
.ledger-t .day{display:flex;align-items:baseline;gap:6px;padding:8px 4px;min-width:0;flex-wrap:wrap}
.ledger-t .day .d{font-family:var(--mono);font-size:12px;color:var(--ink)}
.ledger-t .day .w{font-size:10.5px;color:var(--faint);text-transform:capitalize}
.t{
  display:inline-block;font-family:var(--mono);font-size:12px;padding:3px 7px;border-radius:2px;
  border:1px solid transparent;color:var(--ink-2);
}
.t:hover{background:#fff;border-color:var(--line-2);color:var(--ink)}
.t.low{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}
.t.none{color:var(--faint)}
.tot{font-family:var(--mono);font-size:11.5px;color:var(--muted);padding-right:6px}
.tot b{color:var(--ink);font-weight:500}
.flag{
  display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;
  background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber);
  font-size:9px;font-weight:700;margin-left:4px;font-family:var(--mono);
}
.panefoot{
  display:flex;align-items:center;gap:14px;padding:11px 20px;border-top:1px solid var(--line);
  background:#fff;font-size:11.5px;color:var(--muted);
}
.panefoot .end{margin-left:auto;display:flex;align-items:center;gap:10px}
.kbd{font-family:var(--mono);font-size:9.5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:3px;padding:0 4px;color:var(--muted);background:#fff}

/* source panel */
.source{background:var(--paper-2);display:flex;flex-direction:column;min-width:0}
.source .shead{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-bottom:1px solid var(--line)}
.pager{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.pager button{width:22px;height:22px;border:1px solid var(--line-2);border-radius:3px;background:#fff;display:grid;place-items:center;font-size:10px;color:var(--muted)}
.docshot{padding:16px 18px 0}
.docshot .sheet{
  background:#fff;border:1px solid var(--line-2);padding:16px 14px;position:relative;
  box-shadow:0 10px 26px -22px rgba(23,21,15,.55);
}
.docshot .sh{font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600}
.docshot .st{font-size:10px;color:var(--ink-2);margin:3px 0 10px;font-family:var(--mono)}
.docline{display:grid;grid-template-columns:38px repeat(4,1fr);gap:3px;padding:3.5px 0}
.docline i{height:6px;border-radius:1px;background:#f0eee6;display:block}
.docline i.f{background:#e3e0d4}
.docline.hit{background:#fffdf6;box-shadow:inset 0 0 0 1px var(--amber-line);border-radius:2px}
.docline.hit i.f{background:#efe0bd}
.docshot .fade{position:absolute;left:0;right:0;bottom:0;height:36px;background:linear-gradient(rgba(255,255,255,0),#fff 72%)}
.srcbody{padding:18px;flex:1;overflow:auto}
.srcbody .kv{display:grid;grid-template-columns:76px 1fr;gap:7px 12px;font-size:12.5px;margin-top:12px}
.srcbody .kv .k{color:var(--muted);font-size:12px}
.srcbody .kv .v{color:var(--ink-2)}
.aicard{
  margin-top:16px;background:#fff;border:1px solid var(--line-2);border-radius:var(--r-md);overflow:hidden;
}
.aicard .ah{
  display:flex;align-items:center;gap:8px;padding:9px 12px;
  background:var(--navy-soft);border-bottom:1px solid var(--navy-line);
  font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);font-weight:600;
}
.aicard .ab{padding:12px}
.aicard .ab p{font-size:12.5px;color:var(--ink-2);line-height:1.55}
.aicard .opts{display:flex;gap:6px;margin-top:11px}
.opt{
  flex:1;border:1px solid var(--line-2);background:var(--paper);border-radius:var(--r);
  padding:7px 9px;text-align:center;
}
.opt .ov{font-family:var(--mono);font-size:13px;color:var(--ink)}
.opt .oi{font-size:9.5px;color:var(--faint);margin-top:2px;text-transform:uppercase;letter-spacing:.08em}
.opt.on{border-color:var(--navy);background:var(--navy-soft)}
.opt.on .ov{color:var(--navy)}
.srcactions{display:flex;gap:8px;margin-top:14px}
.srcactions .btn{flex:1;height:36px;font-size:12.5px}

/* ---------- exportação ---------- */
.expwrap{
  flex:1;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:56px;padding:52px 56px 72px;align-items:start;
}
.exphead h1{font-size:46px;margin-top:12px;letter-spacing:-.022em}
.expl{margin-top:14px;font-size:14px;color:var(--muted);line-height:1.62;max-width:40ch}
.filecard{
  margin-top:30px;border:1px solid var(--line-2);background:#fff;border-radius:var(--r-md);
  padding:16px 18px;display:flex;align-items:center;gap:18px;
}
.filecard .fname{font-size:12px;color:var(--ink)}
.filecard .finfo{font-size:11px;color:var(--faint);margin-top:3px;font-family:var(--mono)}
.filecard .fact{margin-left:auto;display:flex;gap:8px}
.expnotes{margin-top:26px;border-top:1px solid var(--line)}
.expnotes div{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.expnotes .ek{color:var(--muted)}
.expnotes .ev{color:var(--ink-2)}
.nextsteps{margin-top:36px}
.nextsteps ol{margin-top:12px;border-top:1px solid var(--line)}
.nextsteps li{
  display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);
  font-size:13px;color:var(--ink-2);counter-increment:s;
}
.nextsteps ol{counter-reset:s}
.nextsteps li::before{
  content:counter(s,decimal-leading-zero);font-family:var(--mono);font-size:10.5px;color:var(--faint);
  padding-top:3px;
}
.nextsteps b{font-weight:600;color:var(--ink)}

.expcode{border:1px solid var(--line-2);border-radius:var(--r-md);background:#fff;overflow:hidden;position:sticky;top:74px}
.expcode .lhead{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;border-bottom:1px solid var(--line);background:var(--paper-2);
}
.expcode .lhead .fname{font-family:var(--mono);font-size:11px;color:var(--ink-2)}
.expcode .lhead .sep{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.expcode .lines{max-height:560px;overflow:auto}
.expcode pre{
  margin:0;padding:12px 0;font-family:var(--mono);font-size:11px;line-height:2.05;color:var(--ink-2);
  white-space:pre;overflow-x:auto;
}
.expcode .ln{
  display:inline-block;width:34px;text-align:right;padding-right:12px;
  color:#c9c4b4;font-size:10px;user-select:none;
}
.expcode .h{color:var(--ink);font-weight:500}
.expcode .d{color:var(--faint)}
.expcode .n{color:var(--navy)}
.expcode .lfoot{
  display:flex;gap:18px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);
  font-size:11px;color:var(--faint);background:var(--paper-2);
}
.expcode .lfoot b{color:var(--ink-2);font-weight:500}
.expcode .lfoot .end{margin-left:auto}
.expcode .cols{
  padding:10px 16px 9px;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10px;line-height:1.9;color:var(--faint);letter-spacing:-.02em;
  background:#fff;
}
.expcode .cols b{color:var(--ink-2);font-weight:500}
.expcode .lines{scrollbar-width:none}
.expcode .lines::-webkit-scrollbar{display:none}
.expfoot{margin-top:34px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.expfoot span{font-size:11.5px;color:var(--faint)}

/* ---------- assinatura da marca ---------- */
.brandlock{display:flex;align-items:center;gap:9px}
.brandlock .badge{width:26px;height:26px;flex:none;display:block}
.brandlock .wordmark{font-size:19px}
.favicon-frame{display:none}

/* ==========================================================================
   calcsentenca — telas do aplicativo
   Acrescenta ao sistema visual o que só existe no produto: formulários,
   estados de leitura, editor de linha e o relatório para impressão.
   ========================================================================== */

/* ---------- formulários e avisos ---------- */
.inline-form{display:inline-block;margin:0}
.alert{
  margin-top:26px;padding:14px 16px;border:1px solid var(--amber-line);
  background:var(--amber-soft);color:var(--amber);border-radius:var(--r-md);font-size:13px;
}
.alert p{margin-top:6px;color:var(--ink-2)}
.alert-error{border-color:#e3c8c8;background:#fdf3f3;color:#8c2f2f}
.input{
  height:34px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r);
  background:#fff;font-family:var(--mono);font-size:12px;color:var(--ink);width:100%;
}
.input:focus{outline:2px solid var(--navy-line);outline-offset:1px}
.btn-mini{height:26px;padding:0 10px;font-size:11px;border-radius:var(--r)}
.muted{color:var(--faint)}
.strong{color:var(--ink);font-weight:500}
.hint{margin-top:8px;font-size:11px;color:var(--faint);line-height:1.5}

/* The CSP forbids inline styles (`style-src 'self'`), so spacing lives in classes
   instead of a style attribute: an inline `style` is silently dropped by the
   browser and the layout collapses without any error. */
.formactions{display:flex;align-items:center;gap:18px;margin-top:26px}
.formactions .note{font-size:12px;color:var(--muted);max-width:38ch;line-height:1.45}
.spaced{margin-top:26px}
.expnotes.spaced{margin-top:34px}

/* upload: arquivo escolhido */
.drop.filled{border-color:var(--navy)}
.drop .dtitle.ready{color:var(--navy)}
.actions .note{font-size:12px;color:var(--muted);max-width:34ch;line-height:1.45}
.row-doc.empty-row{grid-template-columns:minmax(0,1fr);color:var(--faint)}
.row-doc.empty-row .n{color:var(--muted);font-weight:400}

/* processando */
.progress{margin-top:30px;border:1px solid var(--line-2);background:#fff;border-radius:var(--r-md);padding:16px 18px}
.progress .bar{height:4px;background:var(--paper-3);border-radius:2px;overflow:hidden}
.progress .bar i{display:block;height:100%;width:34%;background:var(--navy);animation:slide 1.6s ease-in-out infinite}
.progress .pmeta{margin-top:10px;font-size:11px;color:var(--muted)}
@keyframes slide{
  0%{transform:translateX(-100%)}100%{transform:translateX(320%)}
}
@media (prefers-reduced-motion: reduce){.progress .bar i{animation:none;width:60%}}

/* ---------- revisão ---------- */
.panehead .filters a.fbtn{
  font-size:11.5px;padding:4px 10px;border-radius:2px;color:var(--muted);
  display:flex;align-items:center;gap:6px;
}
.panehead .filters a.fbtn.on{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(23,21,15,.08);font-weight:500}
.ledger-t tbody tr.sel{background:#fffdf6;box-shadow:inset 2px 0 0 var(--navy)}
.cell-input{
  width:100%;max-width:62px;height:26px;text-align:center;
  font-family:var(--mono);font-size:12px;color:var(--ink);
  border:1px solid var(--line-2);border-radius:var(--r);background:#fff;
}
.cell-input:focus{outline:2px solid var(--navy-line);outline-offset:1px;border-color:var(--navy)}
.cell-input.low{background:var(--amber-soft);border-color:var(--amber-line);color:var(--amber)}
.ledger-t .day .d{font-family:var(--mono);font-size:12px;color:var(--ink)}
.ledger-t .day .d:hover{text-decoration:underline;text-underline-offset:2px}
.docshot .source-text{
  font-size:10.5px;line-height:1.7;color:var(--ink-2);word-break:break-word;
  max-height:168px;overflow:hidden;white-space:pre-wrap;
}
.opt-form{flex:1;display:block;margin:0}
.opt-form .opt{width:100%}
.srcactions{align-items:center}
.srcactions .btn{flex:1;height:36px;font-size:12.5px;text-align:center}
.periodform{margin-top:26px;border-top:1px solid var(--line);padding-top:16px}
.periodrow{display:flex;align-items:center;gap:8px;margin-top:10px}
.periodrow .input{width:104px}
.periodrow .btn{height:34px;padding:0 12px;font-size:12px}
.warnbox{margin-top:22px;border-top:1px solid var(--line);padding-top:14px}
.warnlist{margin-top:10px;font-size:11.5px;color:var(--muted);line-height:1.6}
.warnlist li{padding-left:12px;position:relative}
.warnlist li::before{content:"·";position:absolute;left:2px;color:var(--faint)}

/* ---------- relatório ---------- */
.reportbody{background:var(--paper-3)}
.report{max-width:900px;margin:0 auto;background:var(--paper);padding:38px 46px 56px;box-shadow:0 1px 0 var(--line-2)}
.report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line-2);padding-bottom:18px}
.rh-brand{display:flex;align-items:center;gap:12px}
.rh-title{font-family:var(--serif);font-size:23px;letter-spacing:-.01em}
.rh-sub{font-size:10.5px;color:var(--faint);margin-top:2px}
.rh-actions{display:flex;gap:8px}
.report-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 32px;margin-top:22px}
.report-meta div{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.report-meta .k{color:var(--muted)}
.report-meta .v{color:var(--ink-2);text-align:right}
.report-block{margin-top:36px}
.report-block h2{font-size:24px;margin-bottom:12px}
.report-table{width:100%;border-collapse:collapse;font-size:12px}
.report-table th{
  text-align:left;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  font-weight:600;padding:8px 6px;border-bottom:1px solid var(--line-2);
}
.report-table td{padding:6px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top}
.report-table .num{text-align:right}
.report-table .small{font-size:10.5px;color:var(--muted)}
.report-table tr.empty td{color:var(--faint)}
.report-table tr.review td{background:var(--amber-soft)}
.report-table tfoot td{font-weight:600;color:var(--ink);border-top:1px solid var(--line-2);border-bottom:0}
.report-foot{margin-top:40px;padding-top:14px;border-top:1px solid var(--line);font-size:11px;color:var(--faint);line-height:1.6}

@media print{
  .reportbody{background:#fff}
  .rh-actions{display:none}
  .report{box-shadow:none;padding:0;max-width:none}
  .report-block{break-inside:avoid}
  .report-table tr{break-inside:avoid}
  .report-table.dense td{padding:3px 6px;font-size:10.5px}
  @page{margin:18mm 16mm}
}

.wrap{box-sizing:border-box}
@media (max-width: 1180px){
  .work{grid-template-columns:64px minmax(0,1fr)}
  .source{grid-column:1/-1;border-top:1px solid var(--line)}
  .expwrap{grid-template-columns:minmax(0,1fr);padding:34px var(--gutter,32px) 56px}
  .expcode{position:static}
}
@media (max-width: 820px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-inner{padding:32px 22px 22px}
  .footer-bottom{align-items:flex-start;flex-direction:column}
}
@media (max-width: 520px){
  .footer-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 760px){
  .hero{grid-template-columns:minmax(0,1fr);gap:34px;padding:52px 0 44px}
  .hero h1{font-size:38px}
  .steps{grid-template-columns:minmax(0,1fr)}
  .step{padding:18px 0;border-left:0;border-top:1px solid var(--line)}
  .format{grid-template-columns:minmax(0,1fr);gap:28px}
  .reviewband .head{display:block}
  .trustgrid{grid-template-columns:minmax(0,1fr)}
  .wrap{padding:0 var(--gutter,32px)}
  .work{grid-template-columns:minmax(0,1fr)}
  .filmstrip{display:none}
  .report{padding:22px 18px}
  .report-meta{grid-template-columns:minmax(0,1fr)}
}

/* ==========================================================================
   Conta, planos e pagamento
   ========================================================================== */

/* ---------- formulários de conta ---------- */
.authwrap{display:grid;place-items:start center;padding:56px var(--gutter,32px) 80px}
.authbox{width:100%;max-width:520px}
.authbox h1{font-size:38px;margin-top:12px}
.authbox .lead{margin-top:10px;color:var(--muted);font-size:14px;line-height:1.6}
.authform{margin-top:26px;display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.flabel{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field .input{height:40px;font-family:var(--sans);font-size:14px}
.authform .btn-lg{margin-top:6px;justify-content:center}
.authswap{margin-top:22px;font-size:12.5px;color:var(--muted)}
.authswap a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.hint a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}

/* ---------- planos ---------- */
.pricing-head{padding:64px 0 34px;border-bottom:1px solid var(--line)}
.pricing-head h1{font-family:var(--serif);font-size:46px;font-weight:400;letter-spacing:-.02em;line-height:1.08;margin-top:14px;max-width:20ch}
.pricing-head .lead{margin-top:16px;font-size:15px;color:var(--ink-2);max-width:60ch;line-height:1.6}
.pillline{margin-top:18px}
.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:40px}
.plan{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:28px 26px 26px;position:relative;display:flex;flex-direction:column}
.plan-hl{background:#fffdf7;border-color:var(--navy-line)}
.plan-current{background:var(--navy-soft);border-color:var(--navy-line)}
.plan-tag{
  position:absolute;top:-1px;right:18px;transform:translateY(-50%);
  font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  background:var(--navy);color:#fff;padding:4px 9px;border-radius:2px;
}
.plan-tag-now{background:var(--green)}
.plan-name{font-family:var(--serif);font-size:26px;font-weight:400;letter-spacing:-.01em}
.plan-aud{margin-top:6px;font-size:12px;color:var(--muted);min-height:32px;line-height:1.45}
.plan-price{margin-top:18px;font-family:var(--mono);font-size:23px;letter-spacing:-.03em;color:var(--ink)}
.plan-quota{margin-top:4px;font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.plan-feats{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:7px;flex:1}
.plan-feats li{font-size:12.5px;color:var(--ink-2);line-height:1.5;padding-left:14px;position:relative}
.plan-feats li::before{content:"·";position:absolute;left:2px;color:var(--navy);font-weight:700}
.plan-form{display:flex;flex-direction:column;gap:8px;margin-top:22px}
.plan-cta{width:100%;justify-content:center;margin-top:22px}
.plan-form .plan-cta{margin-top:0}
.plan-off{margin-top:22px;font-size:12px;color:var(--faint);border-top:1px solid var(--line);padding-top:14px}
.pricing-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;padding:48px 0 24px}
.pricing-notes h3{font-family:var(--serif);font-size:22px;font-weight:400;margin-bottom:10px}
.pricing-notes p{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:10px;max-width:52ch}

/* ---------- pagamento ---------- */
.paybox{max-width:560px}
.payamount{font-size:30px;letter-spacing:-.03em;margin-top:10px;color:var(--ink)}
.qrwrap{margin-top:22px;display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px;border:1px solid var(--line-2);border-radius:var(--r-md);background:#fff}
.qrimg{display:block}
.qrfallback{
  width:96px;height:96px;display:grid;place-items:center;border:1px dashed var(--line-2);border-radius:var(--r);
  color:var(--faint);letter-spacing:.2em;font-size:12px;background:var(--paper-2);
}
.qrhint{font-size:11.5px;color:var(--faint);text-align:center;max-width:42ch;line-height:1.5}
.qrfield{margin-top:18px}
.pixcode{height:auto;min-height:86px;padding:10px;font-size:11px;line-height:1.55;resize:none;word-break:break-all;overflow:auto}
.alertblock{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.alertblock p{margin:0}
.paywait{display:flex;align-items:center;gap:10px;margin-top:20px;font-size:12.5px;color:var(--muted)}
.paywait .dot{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}
.paidcard{margin-top:22px;padding:18px;border:1px solid var(--green-line);background:var(--green-soft);border-radius:var(--r-md)}
.paidcard p{margin:10px 0 14px;font-size:13px;color:var(--ink-2)}

/* ---------- minha conta ---------- */
.accountwrap{padding:44px 40px 72px}
.planpanel{background:#fff;border:1px solid var(--line-2);border-radius:var(--r-md);padding:26px 28px}
.planpanel h1{font-size:34px;margin-top:10px}
.planpanel .lead{margin-top:8px;font-size:13px;color:var(--muted)}
.usagegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:22px}
.usagegrid div{background:var(--paper);padding:16px 18px}
.usagegrid .k{display:block;font-size:26px;letter-spacing:-.03em;color:var(--ink)}
.usagegrid .v{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.planactions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.accountblock{margin-top:40px}
.blocktitle{font-family:var(--serif);font-size:22px;font-weight:400;margin-bottom:12px}
.simple-table{width:100%;border-collapse:collapse;font-size:12.5px}
.simple-table th{
  text-align:left;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
  font-weight:600;padding:8px 8px;border-bottom:1px solid var(--line-2);
}
.simple-table td{padding:9px 8px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.simple-table .right{text-align:right}
.simple-table .small{font-size:11.5px}
.simple-table .go{font-size:11.5px;color:var(--muted)}
.simple-table .go:hover{color:var(--navy)}

/* ---------- páginas legais ---------- */
.legalwrap{padding:56px var(--gutter,32px) 40px}
.legal{width:100%;max-width:72ch;margin:0 auto;box-sizing:border-box}
.legal h1{font-size:40px;margin:12px 0 26px}
.legal h2{font-family:var(--serif);font-size:21px;font-weight:400;margin:30px 0 8px}
.legal p{font-size:13.5px;color:var(--ink-2);line-height:1.7;margin-bottom:10px}
.legal ul{margin:0 0 12px 0}
.legal li{font-size:13.5px;color:var(--ink-2);line-height:1.7;padding-left:16px;position:relative;margin-bottom:6px}
.legal li::before{content:"·";position:absolute;left:4px;color:var(--faint)}
.legal b{color:var(--ink);font-weight:600}

@media (max-width: 900px){
  .plansrow{grid-template-columns:minmax(0,1fr)}
  .plansband .head{display:block}
  .plan-grid{grid-template-columns:minmax(0,1fr)}
  .pricing-notes{grid-template-columns:minmax(0,1fr);gap:24px}
  .usagegrid{grid-template-columns:minmax(0,1fr)}
  .pricing-head h1{font-size:34px}
  .accountwrap,.legalwrap{padding:32px 22px 48px}
}

/* ==========================================================================
   Comandos da sentença
   ========================================================================== */
.cmdwrap{padding:44px var(--gutter,32px) 60px}
.cmdhead{border-bottom:1px solid var(--line);padding-bottom:22px}
.cmdhead h1{font-size:40px;margin-top:12px}
.cmdhead .lead{margin-top:12px;font-size:14px;color:var(--muted);line-height:1.6;max-width:70ch}
.cmdpills{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.cmdtable{margin-top:26px;overflow-x:auto}
.simple-table.cmds th{white-space:nowrap}
.simple-table.cmds td{vertical-align:top}
.simple-table.cmds .cmdname{display:block;font-size:13px;color:var(--ink);font-weight:500}
.simple-table.cmds .cmdsrc{
  display:block;margin-top:3px;font-size:10.5px;color:var(--faint);line-height:1.5;
  max-width:38ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.simple-table.cmds tr.row-review td{background:var(--amber-soft)}
.simple-table.cmds tr.row-encargo .cmdname{color:var(--muted);font-weight:400}
.cmdblock{margin-top:36px}
.cmdedit .cmdfields{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:8px}
.cmdedit label{display:flex;flex-direction:column;gap:3px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cmdedit .input{height:28px;font-size:11.5px;min-width:64px;padding:0 6px}
.cmdedit .input.num{max-width:72px}
.cmdedit label.confirm{flex-direction:row;align-items:center;gap:5px;text-transform:none;letter-spacing:0;font-size:11px;color:var(--ink-2);padding-bottom:5px}
.simple-table.cmds a.cmdname{color:var(--ink)}
.simple-table.cmds a.cmdname:hover{text-decoration:underline;text-underline-offset:2px}
.cmdblock .hint{margin-bottom:12px}
.report-block .quote{
  margin:0;padding:14px 16px;border-left:2px solid var(--navy-line);background:var(--paper-2);
  font-size:12.5px;line-height:1.7;color:var(--ink-2);white-space:pre-wrap;
}
.simple-table.cmds .cmdlink{display:block;font-size:10px;color:var(--navy);margin-top:2px}
.simple-table.cmds .cmdlink:hover{text-decoration:underline;text-underline-offset:2px}

/* Lista de verbas na conferência com um cálculo do PJe-Calc. */
.report-list{margin:10px 0 0;padding:0 0 0 18px;font-size:12.5px;color:var(--ink-2);line-height:1.7}
.report-list li{margin:0 0 2px}
.pjcform{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.pjcform input[type=file]{
  font-family:var(--mono);font-size:11.5px;color:var(--ink-2);
  border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;background:#fff;max-width:320px;
}
.notice{margin-top:16px;border:1px solid var(--line-2);border-radius:9px;padding:12px 14px;font-size:12px;color:var(--ink-2);line-height:1.6}
.notice.warn{border-color:var(--amber-line);background:var(--amber-soft);color:var(--ink)}

/* ==========================================================================
   Chrome: one header for every page, one document bar for document pages.
   Global on the left (brand, sections), the person on the right (new document,
   then the account menu with "Sair" inside it). Document actions never live here.
   ========================================================================== */
.appbar{position:sticky;top:0;z-index:40;background:rgba(252,251,248,.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
.appbar-inner{height:60px;padding:0 var(--gutter,32px);display:flex;align-items:center;gap:28px;max-width:var(--container,1240px);margin:0 auto;box-sizing:border-box}
.appbar .brandlock .wordmark{font-size:21px}
.appnav{display:flex;align-items:center;gap:4px}
.appnav a{font-size:13.5px;color:var(--muted);padding:7px 10px;border-radius:var(--r-md)}
.appnav a:hover{color:var(--ink);background:var(--paper-2)}
.appnav a.on{color:var(--ink);font-weight:500}
.appbar-end{margin-left:auto;display:flex;align-items:center;gap:12px}
.btn-sm{height:34px;padding:0 14px;font-size:13px}
.newdoc{gap:6px}
.newdoc .plus{font-size:17px;line-height:1}
.cta-short{display:none}

.usermenu{position:relative}
.usermenu summary{list-style:none;display:flex;align-items:center;gap:8px;height:36px;padding:0 8px 0 4px;border:1px solid transparent;border-radius:999px;cursor:pointer;user-select:none}
.usermenu summary::-webkit-details-marker{display:none}
.usermenu summary:hover,.usermenu[open] summary{border-color:var(--line-2);background:#fff}
.usermenu .avatar{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:11.5px;font-weight:600;letter-spacing:.02em;display:grid;place-items:center}
.usermenu .uname{font-size:13px;color:var(--ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.usermenu .chev{color:var(--muted)}
.usermenu .menu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;background:#fff;border:1px solid var(--line-2);border-radius:10px;box-shadow:0 12px 32px rgba(23,21,15,.12);padding:6px;z-index:50}
.usermenu .menu-head{padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;display:flex;flex-direction:column;gap:3px}
.usermenu .menu-head b{font-size:13.5px;font-weight:600;color:var(--ink)}
.usermenu .menu-head span{font-size:12px;color:var(--muted);font-family:var(--mono);overflow:hidden;text-overflow:ellipsis}
.usermenu .menu a,.usermenu .menu button{display:block;width:100%;text-align:left;font:inherit;font-size:13.5px;color:var(--ink-2);padding:8px 10px;border-radius:var(--r-md);background:none;border:0;cursor:pointer}
.usermenu .menu a:hover,.usermenu .menu button:hover{background:var(--paper-2);color:var(--ink)}
.usermenu .menu form{margin:6px 0 0;padding-top:6px;border-top:1px solid var(--line)}

.docbar{background:#fff;border-bottom:1px solid var(--line)}
.docbar-inner{padding:0 var(--gutter,24px);display:flex;align-items:center;gap:20px;min-height:48px;min-width:0;max-width:var(--container,1240px);margin:0 auto}
.docid{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px}
.docid .up{color:var(--muted)}
.docid .up:hover{color:var(--ink)}
.docid .sep{color:var(--faint)}
.docid .docname{color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(360px,60vw)}
.doctabs{margin-left:auto;display:flex;align-self:stretch;gap:2px}
.doctabs a{display:flex;align-items:center;gap:6px;padding:0 12px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.doctabs a:hover{color:var(--ink)}
.doctabs a.on{color:var(--ink);font-weight:500;border-bottom-color:var(--navy)}
.doctabs .count{font-family:var(--mono);font-size:10.5px;padding:1px 6px;border-radius:999px;border:1px solid var(--line-2)}
.doctabs .count.warn{color:var(--amber);background:var(--amber-soft);border-color:var(--amber-line)}

/* Page-level actions: the heading row of the page owns them. */
.pageactions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px}

@media (max-width:860px){
  .appbar-inner{padding:0 16px;gap:12px}
  .appnav{display:none}
  .usermenu .uname{display:none}
  .docbar-inner{flex-wrap:wrap;padding:8px 16px 0;gap:6px}
  .docid .docname{max-width:min(220px,50vw)}
  .doctabs{margin-left:0;width:100%;overflow-x:auto;scrollbar-width:none}
  .doctabs a{white-space:nowrap;height:40px;padding:0 10px}
}
@media (max-width:600px){
  .appbar-inner{height:56px;gap:8px}
  .appbar .brandlock .wordmark{font-size:19px}
  .newdoc{width:36px;padding:0;justify-content:center}
  .newdoc .newdoc-label{display:none}
  .usermenu summary{padding:0 4px}
  .usermenu .chev{display:none}
  .usermenu .menu{right:0;min-width:min(280px,calc(100vw - 32px))}
  .cta-long{display:none}
  .cta-short{display:inline}
}

.profile{margin:0;border-top:1px solid var(--line)}
.profile>div{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.profile dt{font-size:12.5px;color:var(--muted)}
.profile dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13.5px;color:var(--ink)}
@media (max-width:600px){.profile>div{grid-template-columns:minmax(0,1fr);gap:4px}}

/* Single-column working page (correction, .pjc check): one reading column, no
   split. `.expwrap` is the export page's two-column layout and only fits there. */
.pagewrap{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:44px 40px 72px}
.pagewrap .exphead{max-width:760px}
.pagewrap .exphead h1{font-size:40px}
.pagewrap .report-block{margin-top:32px}
@media (max-width:720px){.pagewrap{padding:28px 16px 56px}.pagewrap .exphead h1{font-size:30px}}

/* The commands table has eleven columns: it scrolls inside its own box on small
   screens instead of pushing the whole page sideways. */
.cmdtable{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cmdtable .cmds{min-width:min(980px,100%)}
@media (max-width:720px){
  .cmdwrap{padding-left:var(--gutter,16px);padding-right:var(--gutter,16px)}
  .cmdhead h1{font-size:32px}
  .pageactions .btn{flex:1 1 auto;justify-content:center}
}
.panehead .t .tsub{font-weight:400;color:var(--muted);font-size:12px;margin-left:8px}
.exphead .label+.pill{margin-left:10px;vertical-align:middle}

/* `.wrap` centres with auto margins; inside the `.app` flex column that turns
   off stretching and the page grows to its widest child (the 11-column table).
   Give the main column the full width back and let wide children scroll. */
.app>main{width:100%;min-width:0}
.upload{grid-template-columns:minmax(0,1fr)}

@media (max-width:720px){
  .accountwrap{padding:28px 16px 56px}
  .accountblock .simple-table th:nth-child(2),.accountblock .simple-table td:nth-child(2),
  .accountblock .simple-table th:nth-child(3),.accountblock .simple-table td:nth-child(3){display:none}
  .accountblock .simple-table td{word-break:break-word}
  .panehead{flex-wrap:wrap;gap:10px}
  .panehead .filters{margin-left:0;max-width:100%;overflow-x:auto;scrollbar-width:none}
  .panehead .end{margin-left:0;width:100%;justify-content:space-between}
  .drop{flex-wrap:wrap}
  .upload{padding:32px 16px 56px}
  .upload h1{font-size:32px}
  .formactions{flex-wrap:wrap}
}
.cmdblock{overflow-x:auto}
@media (max-width:600px){.docid .pill{display:none}.docid .docname{max-width:none;flex:1}}
.pagewrap .exphead .expl{max-width:64ch}
.renewbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.renewbar .btn{margin-left:auto}
.plan-how{margin:10px 0 0;font-size:11.5px;line-height:1.5;color:var(--muted)}
.blocked{margin-top:28px;border:1px solid var(--line-2);border-radius:10px;background:#fff;padding:22px 24px}
.blocked b{font-size:15px;color:var(--ink)}
.blocked p{margin:8px 0 0;font-size:13.5px;line-height:1.6;color:var(--muted)}
.blocked .pageactions{margin-top:18px}
.notice.analyzing{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.notice.analyzing .dot{width:8px;height:8px;border-radius:50%;background:var(--amber);animation:pulse 1.2s ease-in-out infinite}

/* Consent bar: bottom, centred on the content column, both answers equal. */
.consent{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;width:min(880px,calc(100vw - 24px));display:flex;align-items:center;gap:20px;padding:16px 18px;background:#fff;border:1px solid var(--line-2);border-radius:12px;box-shadow:0 16px 40px rgba(23,21,15,.16)}
.consent[hidden]{display:none}
.consent p{margin:0;font-size:13px;line-height:1.55;color:var(--ink-2)}
.consent p a{color:var(--navy);text-decoration:underline}
.consent-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex:none;width:240px}
.consent-actions .btn{justify-content:center}
body.has-consent{padding-bottom:120px}

/* A day of punches reads as a card on a phone: the date on the first line,
   then the punches side by side, and the day total at the end. Empty slots
   ("—") are not shown: on a phone they only add noise. */
@media (max-width:640px){
  table.ledger-t{table-layout:auto}
  .ledger-t thead{display:none}
  .ledger-t tbody tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:10px 14px;border-bottom:1px solid var(--line)}
  .ledger-t tbody td{display:block;border:0;padding:0;text-align:left}
  .ledger-t tbody td:first-child{flex:0 0 100%;padding:0}
  .ledger-t tbody td:last-child{margin-left:auto;padding:0}
  .ledger-t .day{padding:0 0 2px}
  .ledger-t tbody td:has(> .t.none){display:none}
  .ledger-t .t{padding:2px 6px;background:var(--paper-2);border-color:var(--line)}
  .ledger-t .cell-input{width:64px}
}
@media (max-width:640px){
  .consent{flex-direction:column;align-items:stretch;gap:12px}
  .consent-actions{width:100%}
  body.has-consent{padding-bottom:200px}
}
.footer-legal [data-consent="open"]{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}
.legal h3{font-size:14px;font-weight:600;margin:22px 0 6px;color:var(--ink)}

/* Process workspace: sources, awards, review, then official outputs. */
.case-shell{max-width:1280px;margin:0 auto;padding:32px 40px 80px}
.case-back{display:inline-block;color:var(--muted);font-size:12px;margin-bottom:24px}
.case-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}
.case-heading>div{min-width:0}.case-heading h1{font-family:var(--serif);font-size:38px;line-height:1.12;font-weight:400;margin:8px 0;overflow-wrap:anywhere}
.case-heading p{color:var(--muted);margin:8px 0}.case-heading>.btn{flex-shrink:0}
.case-overview{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;background:white;margin-bottom:32px}
.case-overview>div{display:flex;flex-direction:column;gap:4px;padding:20px 24px;border-right:1px solid var(--line)}
.case-overview>div:last-child{border-right:0}.case-overview strong{font-family:var(--mono);font-weight:500;font-size:25px;color:var(--navy)}
.case-overview span{color:var(--muted);font-size:12px}.case-overview .pill{align-self:flex-start;color:var(--navy);margin:5px 0}
.case-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:32px;align-items:start}
.case-sidebar{position:sticky;top:90px}.case-steps{display:flex;flex-direction:column;margin:12px 0 26px}
.case-steps a{display:flex;align-items:flex-start;gap:11px;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink-2)}
.case-steps a>span{font:11px var(--mono);color:var(--muted);border:1px solid var(--line-2);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;flex:none}
.case-steps a:hover b{color:var(--navy);text-decoration:underline}.case-steps b{font-size:12px}.case-steps small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.case-date{padding:18px;background:var(--navy-soft);border:1px solid var(--navy-line);border-radius:8px}.case-date b{display:block;font:16px var(--mono);margin-top:10px;color:var(--navy)}
.case-date p{font-size:11px;line-height:1.6;margin:10px 0 0;color:var(--muted)}
.case-content{min-width:0}.case-panel{border:1px solid var(--line);border-radius:10px;background:white;padding:28px;margin-bottom:24px;scroll-margin-top:90px}
.case-panel h2{font-family:var(--serif);font-size:28px;line-height:1.2;font-weight:400;margin:7px 0 0}
.case-section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.case-section-heading .pill{white-space:normal}
.case-explainer{font-size:12px;line-height:1.7;color:var(--muted);margin:16px 0 22px}
.case-source{border:1px solid var(--line);border-radius:7px;margin-top:12px}.case-source>summary{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px;cursor:pointer;background:var(--paper)}
.case-source>summary:before{content:'+';font:18px var(--mono);color:var(--muted)}.case-source[open]>summary:before{content:'−'}
.case-source>summary>span:first-of-type{flex:1;min-width:0}.case-source summary b{display:block;font-size:13px;overflow-wrap:anywhere}.case-source summary small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.case-source-body{padding:18px}.case-source-actions{display:flex;gap:16px;flex-wrap:wrap;font-size:12px}.case-source-actions a{overflow-wrap:anywhere;color:var(--navy);text-decoration:underline}
.case-note{font-size:11px;line-height:1.7;color:var(--muted);margin:16px 0}.case-notice{padding:14px 16px;border-left:3px solid var(--amber);background:var(--amber-soft);font-size:12px;margin:16px 0}
.case-inventory{list-style:none;padding:0;margin:18px 0;max-height:420px;overflow-y:auto;scrollbar-gutter:stable}
.case-inventory li{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.case-kind{flex:0 0 100px;font-size:10px;color:var(--navy);text-transform:uppercase;letter-spacing:.035em;padding-top:2px}
.case-inventory li>div{min-width:0}.case-inventory b{font-size:12px;font-weight:500;overflow-wrap:anywhere}.case-inventory small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.case-fingerprint{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.case-fingerprint summary{cursor:pointer}.case-fingerprint code{display:block;overflow-wrap:anywhere;margin-top:8px}
.case-awards{list-style:none;padding:0;margin:0}.case-awards li{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid var(--line)}
.case-awards li>div{min-width:0}.case-awards b{font-size:13px}.case-awards small{display:block;font-size:11px;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.case-awards a{flex:none;font-size:12px;color:var(--navy)}
.case-reflex{display:block;font-size:11px;color:var(--green);margin-top:4px}.case-checks>div{display:flex;gap:14px;border-top:1px solid var(--line);padding:20px 0}.case-checks{margin-top:24px}.case-checks>div:last-child{padding-bottom:0}
.case-check-mark{display:grid;place-items:center;width:24px;height:24px;background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line);border-radius:50%;font-size:12px;flex:none}
.case-checks b{font-size:13px}.case-checks p{font-size:12px;line-height:1.7;color:var(--muted);margin:6px 0 0}.case-checks>div>div{min-width:0}
.case-result{background:var(--navy);color:#fff;border-color:var(--navy)}.case-result .label{color:#c0cbda}.case-result>p{font-size:13px;line-height:1.8;color:#d7deea}.case-result .case-note{font-size:11px;color:#bcc9da}
.case-deliverables{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.case-deliverables>span{border:1px solid #4d5a6d;padding:16px;border-radius:6px;font-size:12px;color:#e8edf4}.case-deliverables b{display:block;font-size:10px;font-weight:400;color:#c0cbda;margin-top:8px}
.case-empty{padding:48px;max-width:800px}.case-empty p{max-width:600px;color:var(--muted);line-height:1.8}.case-number{font:14px var(--mono);color:var(--muted)}.case-empty-inline{padding:20px;background:var(--paper);font-size:12px}.case-empty-inline p{color:var(--muted);margin-bottom:0}
.case-list{display:grid;gap:14px}.case-list-item{display:flex;align-items:center;gap:22px;border:1px solid var(--line);border-radius:9px;background:white;padding:24px;text-decoration:none;color:var(--ink)}.case-list-item:hover{border-color:var(--navy-line);background:var(--paper)}
.case-list-item>div{min-width:0;flex:1}.case-list-item h2{font-size:16px;margin:0;font-weight:500;overflow-wrap:anywhere}.case-list-item p{font-size:11px;color:var(--muted);margin:6px 0 0}.case-file-mark{font:30px var(--serif);color:var(--navy)}.case-open{font-size:12px;color:var(--navy);flex-shrink:0}
@media(max-width:1000px){.case-shell{padding:28px 24px 64px}.case-layout{grid-template-columns:180px minmax(0,1fr);gap:24px}.case-panel{padding:22px}.case-heading h1{font-size:32px}}
@media(max-width:760px){.case-layout{grid-template-columns:minmax(0,1fr)}.case-sidebar{position:static}.case-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-bottom:16px}.case-date{margin-bottom:6px}.case-heading{align-items:flex-start;flex-direction:column;gap:14px}.case-overview{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}.case-overview>div{padding:16px}.case-overview>div:nth-child(2){border-right:0}.case-overview>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.case-panel{padding:20px}.case-deliverables{grid-template-columns:minmax(0,1fr)}.case-deliverables>span{display:flex;justify-content:space-between;gap:8px}.case-deliverables b{margin:0}.case-empty{padding:28px}}
@media(max-width:420px){.case-shell{padding:20px 14px 48px}.case-heading h1{font-size:28px}.case-panel h2{font-size:25px}.case-panel{padding:16px}.case-source>summary{padding:12px;flex-wrap:wrap}.case-source>summary>.pill{margin-left:20px;font-size:10px}.case-source-body{padding:12px}.case-inventory li{flex-direction:column;gap:4px}.case-kind{flex-basis:auto}.case-awards li{align-items:flex-start;gap:12px}.case-awards a{font-size:11px}.case-list-item{padding:18px;gap:14px}.case-list-item .case-open{display:none}.case-steps a{gap:8px}.case-steps small{font-size:10px}}
/* Long verbatim lines wrap instead of pushing the review panel wide. */
.source-text{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
/* Phones: every grid that becomes one column must be able to shrink below its
   content (minmax(0,1fr)), and the hero actions stack instead of pushing. */
@media(max-width:600px){
  .hero h1{font-size:38px}
  .hero .actions .btn{flex:1 1 auto;justify-content:center}
  .hero .actions .note{flex-basis:100%}
  .hero .proof{flex-wrap:wrap}
  .hero .proof div{flex:1 1 30%;min-width:0}
}
@media(max-width:360px){.hero h1{font-size:33px}}
/* Phones: action rows wrap, list rows stack, the origin cell never sets a
   minimum wider than the screen. */
@media (max-width:720px){
  .panehead .end{flex-wrap:wrap;gap:8px}
  .panehead .end .btn,.panehead .end .inline-form{flex:1 1 auto}
  .panehead .end .inline-form .btn{width:100%;justify-content:center}
  .row-doc{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
  .row-doc .n{overflow-wrap:anywhere}
  .row-doc .go{display:none}
}
@media (max-width:720px){.panehead .filters a.fbtn{white-space:nowrap}}
/* Document tabs stay on one line; the file name gives way first. */
.doctabs a{white-space:nowrap}
@media(min-width:861px){
  .docbar-inner{flex-wrap:nowrap}
  .docid{flex:1 1 auto;min-width:0}
  .docid .docname{flex:0 1 auto}
  .doctabs{flex:0 0 auto}
}
@media(min-width:861px) and (max-width:1100px){.docid .pill{display:none}}
