:root{
  --ground:#F4F6F9; --surface:#FFFFFF; --surface-2:#FAFBFD;
  --ink:#141821; --muted:#5A6473; --line:#E4E8EF;
  --accent:#0E7C66; --accent-ink:#0B5F4E; --accent-bg:#E6F2EE; --on-accent:#FFFFFF;
  --warn:#8A5A00; --warn-bg:#FBF1DC; --warn-line:#E7C983;
  --crit:#A3271C; --crit-bg:#FBE9E7; --crit-line:#E7B1AB;
  --fee:#C0574C;
  --shadow:0 1px 2px rgba(20,24,33,.05),0 10px 26px rgba(20,24,33,.06);
  --radius:14px;
  /* Warm, friendly, high-legibility UI type. Numbers use this same family with
     tabular figures (no monospace), so figures align without feeling robotic. */
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --code:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,'Liberation Mono',monospace;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --ground:#0D1016; --surface:#161B23; --surface-2:#1B2029;
  --ink:#E9EDF3; --muted:#97A2B2; --line:#28303B;
  --accent:#37C79A; --accent-ink:#5CD8B0; --accent-bg:#12241D; --on-accent:#08211A;
  --warn:#E3AC4B; --warn-bg:#241D0F; --warn-line:#4A3C1C;
  --crit:#F0685C; --crit-bg:#25130F; --crit-line:#4A241E;
  --fee:#EF8A7E;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.38);
}}
:root[data-theme="dark"]{
  --ground:#0D1016; --surface:#161B23; --surface-2:#1B2029;
  --ink:#E9EDF3; --muted:#97A2B2; --line:#28303B;
  --accent:#37C79A; --accent-ink:#5CD8B0; --accent-bg:#12241D; --on-accent:#08211A;
  --warn:#E3AC4B; --warn-bg:#241D0F; --warn-line:#4A3C1C;
  --crit:#F0685C; --crit-bg:#25130F; --crit-line:#4A241E;
  --fee:#EF8A7E;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.38);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;}
[hidden]{display:none !important;}

.eyebrow,.card__eyebrow,.hero__label,.chip__label,.field__label{
  font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;}

/* Top bar */
.topbar{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line);}
.topbar__in{max-width:1000px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.brand{font-weight:750;letter-spacing:-.01em;font-size:16px;}
.brand span{color:var(--accent-ink);}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:12px;}
.who{font-size:12.5px;color:var(--muted);}
.role{font:600 10px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--accent-bg);color:var(--accent-ink);}

.wrap{max-width:1000px;margin:0 auto;padding:26px 22px 76px;}

/* Buttons and inputs */
.btn{font:650 13px/1 var(--sans);padding:11px 16px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .15s,color .15s,background .15s,filter .15s;}
.btn:hover{border-color:var(--accent);color:var(--accent-ink);}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
.btn--primary:hover{filter:brightness(1.06);color:var(--on-accent);border-color:var(--accent);}
.btn--ghost{background:transparent;}
.btn--link{background:transparent;border:none;padding:6px 0;color:var(--accent);text-decoration:underline;font-weight:600;cursor:pointer;}
.captcha{margin:12px 0;min-height:0;}
.btn:disabled{opacity:.5;cursor:default;}
input,select{font:400 14px var(--sans);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;}
input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}

/* Auth screen */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px;}
.authbox{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;}
.authbox h1{font-size:22px;margin:6px 0 4px;letter-spacing:-.01em;}
.authbox p{color:var(--muted);font-size:13.5px;margin:0 0 18px;}
.authbox form{display:flex;flex-direction:column;gap:10px;}
.note{font-size:12.5px;color:var(--muted);margin-top:14px;line-height:1.5;}
.msg{font-size:13px;padding:10px 12px;border-radius:9px;margin-top:12px;}
.msg--ok{background:var(--accent-bg);color:var(--accent-ink);}
.msg--err{background:var(--crit-bg);color:var(--crit);}

/* Controls row */
.controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:20px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field__label{}

/* Card */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-top:20px;animation:rise .26s ease both;}
@keyframes rise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.card__head{display:flex;justify-content:space-between;gap:22px 28px;align-items:flex-start;flex-wrap:wrap;}
.card__title{font-size:21px;font-weight:720;letter-spacing:-.006em;margin:5px 0 0;}
.card__sub{color:var(--muted);font-size:13px;margin-top:7px;}
.card__timing{font-size:13.5px;color:var(--ink);margin-top:7px;}
.card__basis{color:var(--muted);font-size:12px;margin-top:5px;font-style:italic;}
.hero{text-align:right;margin-left:auto;}
.hero__value{font-size:31px;font-weight:730;color:var(--accent-ink);letter-spacing:-.008em;margin-top:3px;}
.hero__tag{font-size:11px;color:var(--muted);margin-top:2px;}

.chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin:20px 0 4px;}
.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:11px 13px;text-align:center;}
.chip__value{font-size:16px;font-weight:640;margin-top:4px;}

/* Source-report squares at the top of a statement */
.srcsquares{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:16px;}
.srcsq{display:flex;flex-direction:column;gap:5px;align-items:flex-start;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s,transform .1s;}
.srcsq:hover{border-color:var(--accent);transform:translateY(-2px);}
.srcsq:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.srcsq__icon{font-size:22px;line-height:1;color:var(--accent-ink);}
.srcsq__title{font:720 16px var(--sans);letter-spacing:-.01em;}
.srcsq__sub{font-size:12.5px;color:var(--muted);}
.srcsq--off{cursor:default;opacity:.55;}
.srcsq--off:hover{border-color:var(--line);transform:none;}
.srcsq--upload{border-style:dashed;}
.srcsq--upload .srcsq__icon{color:var(--muted);}

/* Ledger tie-out */
.tablewrap{overflow-x:auto;margin:14px 0 2px;}
table.ledger{width:100%;border-collapse:collapse;font-size:15.5px;min-width:520px;}
.ledger th{font:600 12px/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:10px 11px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;}
.ledger th.lead,.ledger td.lead{text-align:left;}
.ledger td{padding:11px;border-bottom:1px solid var(--line);white-space:nowrap;}
.ledger td.num{text-align:right;}
.ledger .tpn{display:block;font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:2px;}
.ledger tfoot td{border-top:2px solid var(--ink);border-bottom:none;font-weight:720;padding-top:13px;}
.ledger .strong{font-weight:720;color:var(--accent-ink);}

/* Adding machine tape */
.tapes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:8px;}
.tape{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px 16px 14px;font-variant-numeric:tabular-nums;font-size:14px;}
.tape__head{font:600 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 2px;display:flex;justify-content:space-between;}
.txn{padding:10px 0;border-bottom:1px solid var(--line);}
.txn:last-of-type{border-bottom:none;}
.txn__row{display:flex;justify-content:space-between;gap:12px;padding:1px 0;}
.txn__head{margin-bottom:3px;}
.txn__ro{font-weight:700;color:var(--ink);}
.txn__kind{color:var(--muted);font-weight:600;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;margin-left:7px;}
.txn__amt{font-weight:700;color:var(--ink);}
.txn__lbl{color:var(--muted);}
.txn__fee{color:var(--fee);font-weight:600;}
.txn__net{color:var(--accent-ink);font-weight:700;}
.txn--void{opacity:.5;}
.tape__net{border-top:2px solid var(--ink);margin-top:8px;padding-top:10px;display:flex;justify-content:space-between;gap:12px;font-weight:720;color:var(--accent-ink);}

/* Transaction detail with search */
.detail{margin-top:26px;}
.detail__bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.detail__bar h3{font-size:18px;margin:0;}
.txfield{flex:0 0 auto;}
mark{background:var(--accent-bg);color:var(--accent-ink);border-radius:3px;padding:0 1px;}
.search{flex:1;min-width:180px;max-width:320px;}
.tx{width:100%;border-collapse:collapse;font-size:14.5px;min-width:640px;}
.tx th{font:600 12px/1.2 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;position:sticky;top:0;background:var(--surface);}
.tx th.lead,.tx td.lead{text-align:left;}
.tx th.sortable{cursor:pointer;user-select:none;}
.tx th.sortable:hover{color:var(--accent-ink);}
.tx th.sorted{color:var(--accent-ink);}
.sar{font-size:9px;}
.tx td{padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.tx td.num{text-align:right;}
.tx td.strong{font-weight:720;color:var(--accent-ink);}
.tx td.charged{font-weight:720;color:var(--ink);}
.tx td.fee{font-weight:600;color:var(--fee);}
/* Reconcile-to-DMS checkbox column */
.tx th.rec,.tx td.rec{width:38px;text-align:center;padding-left:8px;padding-right:4px;}
.recbtn{width:23px;height:23px;border-radius:6px;border:1.5px solid var(--line);background:var(--surface);color:transparent;cursor:pointer;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s,color .12s;}
.recbtn:hover{border-color:var(--accent);color:var(--accent);}
.recbtn[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
.tx tr.done td{opacity:.4;}
.tx tr.done td.rec{opacity:1;}
.tx tr.txtotal td{border-top:2px solid var(--ink);border-bottom:none;font-weight:720;padding-top:12px;}
.tx tr.txtotal .lead{text-transform:uppercase;font-size:11px;letter-spacing:.07em;color:var(--muted);}
.tx .ro{font-family:var(--mono);font-weight:700;color:var(--ink);}
.tx tr.void td{color:var(--muted);text-decoration:line-through;}
.tx mark{background:var(--warn-bg);color:var(--warn);padding:0 2px;border-radius:3px;}
.txwrap{overflow:auto;max-height:60vh;border:1px solid var(--line);border-radius:12px;}

/* Admin panel */
.adminform{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.adminform__names{display:flex;gap:10px;flex:1;min-width:240px;}
.adminform__names input{flex:1;min-width:0;}
.adminform input[type=email]{min-width:240px;flex:1;}
.storepick{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.storepick label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink);}
.invlink{margin-top:14px;background:var(--accent-bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;color:var(--accent-ink);}
.linkrow{display:flex;gap:10px;align-items:center;margin-top:8px;}
.linkrow input{flex:1;font-family:var(--code);font-size:12px;}
.mem-remove{font:600 11px var(--sans);color:var(--crit);background:var(--crit-bg);border:1px solid var(--crit-line);border-radius:8px;padding:5px 10px;cursor:pointer;}

/* Cross-date search results */
.hist{margin-bottom:20px;}
.hist h3{font-size:14px;margin:0 0 10px;color:var(--muted);font-weight:600;}
.hist .row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:8px;font-size:13.5px;}
.hist .row .ro{font-weight:700;color:var(--accent-ink);font-size:15px;}
.hist__id{display:flex;flex-direction:column;gap:2px;min-width:0;}
.hist__meta{color:var(--muted);font-size:12px;}
.histvals{display:flex;gap:20px;}
.hv{display:flex;flex-direction:column;gap:1px;text-align:right;}
.hv__l{font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.hv .num{font-weight:700;}
.hv .charged{color:var(--ink);}
.hv .fee{color:var(--fee);}
.hv .strong{color:var(--accent-ink);}
@media (max-width:640px){ .histvals{gap:12px;} .hist .row{grid-template-columns:1fr auto;} .hist .row .btn{grid-column:1 / -1;} }

/* Home tiles, one per store */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:6px;}
.tile{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;cursor:pointer;transition:border-color .15s,transform .1s;font:inherit;color:inherit;display:block;width:100%;}
.tile:hover{border-color:var(--accent);transform:translateY(-2px);}
.tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.tile__dba{font:720 17px var(--sans);letter-spacing:-.01em;}
.tile__date{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:10px;}
.tile__net{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:730;color:var(--accent-ink);letter-spacing:-.008em;margin-top:3px;}
.tile__meta{font-size:12.5px;color:var(--muted);margin-top:8px;}
.tile--empty{cursor:default;}
.tile--empty:hover{border-color:var(--line);transform:none;}
.tile--empty .tile__net{color:var(--muted);font-size:15px;font-weight:600;}

/* Editable member list */
.mem{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 0;border-bottom:1px solid var(--line);}
.mem__who{min-width:210px;}
.mem__name{font-weight:700;font-size:14.5px;}
.mem__email{font-weight:500;font-size:13px;color:var(--muted);}
.mem__role{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:2px;}
.mem__stores{display:flex;gap:14px;flex-wrap:wrap;flex:1;}
.mem__stores label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink);}
.mem__all{font-size:13px;color:var(--muted);flex:1;}
.mem__actions{display:flex;gap:8px;align-items:center;}

/* Pricing editor */
.ratefld{display:flex;flex-direction:column;gap:4px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.ratefld input{font:400 14px var(--sans);width:130px;}
.ratehist{width:100%;border-collapse:collapse;font-size:13px;}
.ratehist th{font:600 11px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);}
.ratehist td{padding:9px 10px;border-bottom:1px solid var(--line);}
.ratehist .now{color:var(--accent-ink);font-weight:600;}

.empty{color:var(--muted);text-align:center;padding:40px 20px;font-size:14px;}
.flag{margin:10px 0 0;padding:11px 14px;border-radius:10px;border-left:3px solid var(--line);font-size:13px;}
.flag--warn{background:var(--warn-bg);border-left-color:var(--warn-line);color:var(--warn);}
.flag--crit{background:var(--crit-bg);border-left-color:var(--crit-line);color:var(--crit);}

@media (max-width:560px){ .wrap{padding:20px 16px 60px;} .hero{text-align:left;margin-left:0;} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}

/* In-app setup guide */
.setup__step{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}
.setup__step:first-of-type{border-top:0}
.setup__num{flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--accent-bg);color:var(--accent-ink);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.setup__body h3{margin:2px 0 4px;font-size:15px}
.setup__body p{margin:0 0 8px;color:var(--ink);font-size:14px;line-height:1.5}
.intake{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.intake__addr{background:var(--surface-2,#f0f2f5);border:1px solid var(--line);border-radius:8px;
  padding:8px 12px;font-size:13px;word-break:break-all;color:var(--ink)}

/* Setup guide: detailed sub-steps */
.setup__body h4{margin:16px 0 4px;font-size:13.5px;font-weight:700;}
.setup__ol{margin:0 0 6px;padding-left:20px;font-size:14px;line-height:1.6;color:var(--ink);}
.setup__ol li{margin:3px 0;}
.setup__body code{background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12.5px;}
