/* Visual layer, Stripe-dashboard density inside the Gravitech brand. Loads after app.css and shell.css; changes no markup or flow.
   Rules: one hairline colour, one type scale (12 / 13 / 14 / 16 / 20 / 24), controls 32px tall, colour only where something needs the auditor. */
:root{
  --line:#e9e4d8;        /* neutral warm hairline: replaces the sand borders on cards, rows, inputs */
  --line-strong:#d9d2c2; /* inputs and secondary buttons */
  --wash:#f6f4ef;        /* row hover, table header, quiet surfaces */
  --page:#fbfaf7;
  --sh-xs:0 1px 1px rgba(19,52,37,.06),0 0 0 1px rgba(19,52,37,.02);
  --sh-btn:0 1px 1px rgba(19,52,37,.16),inset 0 1px 0 rgba(255,255,255,.10);
  --ring:0 0 0 3px rgba(45,128,91,.22);
}
body{font-size:14px;line-height:1.55;background:var(--page);-webkit-font-smoothing:antialiased}
h1{font-size:24px;letter-spacing:-.015em}
h2{font-size:20px}
h3{font-size:16px;letter-spacing:-.005em}
.meta{font-size:13px}
.zh{font-size:12px}

/* ---- buttons: 32px, round (brand), weight from contrast not size */
.btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;font-size:14px;font-weight:700;line-height:1}
.btn-fill{box-shadow:var(--sh-btn)}
.btn-quiet{background:var(--white);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--sh-xs)}
.btn-quiet:hover{background:var(--wash);border-color:var(--line-strong)}
.btn-sm{height:28px;padding:0 11px;font-size:13px}
.btn-icon{width:32px;height:32px;padding:0}
.btn-icon.btn-sm{width:28px;height:28px}
.btn[disabled]{box-shadow:none}
.btn.danger,.btn-quiet.danger{color:var(--brick)}
:focus-visible{outline:none;box-shadow:var(--ring)}
.lnk{text-decoration:none;font-weight:700}
.lnk:hover{text-decoration:underline;text-decoration-color:var(--forest)}

/* ---- inputs */
.inp{height:32px;padding:0 12px;font-size:14px;border-color:var(--line-strong);box-shadow:var(--sh-xs)}
textarea.inp{height:auto;padding:9px 12px;line-height:1.6}
select.inp{padding-right:28px}
.inp:focus{outline:none;border-color:var(--fern);box-shadow:var(--ring)}
.inp-sm{height:28px;font-size:13px}

/* ---- surfaces: white card, one hairline, tight padding; a card's head is a strip */
.card{border-color:var(--line);padding:20px;box-shadow:var(--sh-xs)}
.card + .card{margin-top:12px}
.card-head{margin-bottom:12px}
.card-head h3{font-size:16px}
.hair{background:var(--line)}
.banner{border-color:var(--line);padding:10px 14px;font-size:14px;box-shadow:var(--sh-xs)}
.banner.amber{border-color:rgba(182,131,43,.35)}
.banner.forest{border-color:rgba(32,90,64,.30)}
.gg{border-color:var(--line)}
.doc,.fpanel,.round,.preset,.dcard,.fedit,.drop{border-color:var(--line)}
.dcard{border-color:rgba(182,131,43,.45)}

/* ---- status badges: smaller, quieter */
.pill{font-size:12px;padding:2px 9px;letter-spacing:0;font-weight:700}
.btn[disabled],.btn.danger[disabled]{color:var(--disabled);background:var(--wash);border-color:var(--line)}

/* ---- sidebar: same Forest surface, denser */
.side{width:224px;flex-basis:224px;padding:20px 12px;gap:22px}
.brand{padding:0 8px}
svg.logo{width:32px;height:32px;flex-basis:32px}
.step{font-size:14px;padding:7px 10px;gap:10px}
.ring{width:22px;height:22px;flex-basis:22px;font-size:11px}
.step .ring{border-color:rgba(245,240,228,.35)}
.navgroup .gl{font-size:11px;letter-spacing:.08em;padding:0 10px 4px}
.side-foot{padding:14px 8px 0}

/* ---- page frame */
.main{padding:28px 40px 48px}
.page-head{margin-bottom:20px;align-items:center}
.page-head .lede{font-size:14px;margin-top:4px}
.crumbs{font-size:13px;margin-bottom:4px}
.crumbs a{text-decoration:none;font-weight:700;color:var(--forest)}
.eyebrow{font-size:11px;letter-spacing:.1em;color:var(--ink2)}
.report-head h1{font-size:24px}
.report-head .lede{margin-top:6px;display:flex;align-items:center;gap:8px}

/* ---- reports list: a data table inside one card */
.card:has(>.rlist),.card:has(.rhead){padding:0;overflow:hidden}
.bulkbar{margin:0;padding:10px 16px;border-bottom:1px solid var(--line)}
.rhead{padding:9px 16px;background:var(--wash);border-bottom:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink2)}
.ritem{padding:11px 16px;border-top:1px solid var(--line);border-radius:0;font-size:14px}
.ritem:hover{background:var(--wash)}
.ritem .who{font-size:14px}
.ritem .meta{font-size:12px}
.ritem .next-txt{font-size:13px;line-height:1.4}
.filters{margin-bottom:12px}
.filters .btn{height:28px;font-size:13px}

/* ---- rows inside lists (to-do, points, checks, findings) */
.item{padding:12px 0;border-top-color:var(--line);gap:14px}
.item.li{padding:12px 0}
.anchor{font-size:12px}
.todo-row{font-size:14px;border-top-color:var(--line)}
.todo-rows{border-top-color:var(--line)}
.chapter,.pline,.srow,.src,.ulog-line,.lib-std{border-top-color:var(--line)}
.quote{font-size:13px;border-left-color:var(--line-strong)}
.num-ring{min-width:26px;height:26px;font-size:12px}
table.t{font-size:14px}
table.t th{font-size:12px;padding:8px 10px 8px 0;border-bottom-color:var(--line)}
table.t td{border-bottom-color:var(--line)}

/* ---- the draft: chapter list as a quiet index, the text as a document */
.review{gap:20px}
.chlist{border-color:var(--line);padding:6px;box-shadow:var(--sh-xs)}
.chlist button{border-radius:6px;padding:6px 8px;font-size:13px}
.chlist button[aria-current="true"]{background:var(--g050);box-shadow:inset 2px 0 0 var(--forest)}
.cl-name{font-size:12px;letter-spacing:.01em}
.review textarea.inp{font-size:14px;line-height:1.7;border-color:var(--line);box-shadow:none;background:var(--white)}
.review textarea.inp:hover{border-color:var(--line-strong)}
.review textarea.inp:focus{border-color:var(--fern);box-shadow:var(--ring)}
.declared{background:var(--wash);font-size:14px}

/* ---- pre-fill suggestion: a margin note, not a yellow box */
.sug{border:0;border-left:3px solid var(--amber);border-radius:0 6px 6px 0;background:var(--amber-t);padding:10px 14px}
.sug-val{border-color:var(--line);font-weight:400}
.sug-src{border-top:1px solid rgba(182,131,43,.18)}

/* ---- prepared client answers: option rows */
.copt{border-color:var(--line);background:var(--white);border-radius:6px;padding:8px 12px;font-size:14px;box-shadow:var(--sh-xs)}
.copt:hover{border-color:var(--line-strong);background:var(--wash)}
.copt[aria-pressed="true"]{background:var(--g050)}
.clsave{border-color:var(--line);background:var(--white);box-shadow:var(--sh-lg)}

/* ---- menus and dialogs */
.menu-list{border-color:var(--line);padding:4px}
.menu-list a,.menu-list button{font-size:14px;padding:7px 10px}
.toast{border-color:var(--line)}
