/* Aqua Book: Field ledger. Shared presentation layer for every route.
   Keep business rules in app.js; see docs/DESIGN_SYSTEM.md. */
:root {
  --teal:#174c40; --teal-dk:#103b32; --teal-lt:#eaf1eb;
  --ink:#20352f; --mut:#53645c; --line:#ced8cf; --bg:#f3f5f0; --card:#fff;
  --amber:#9a650d; --amber-lt:#fff4dc; --green:#246642; --green-lt:#eaf4eb;
  --red:#a7302c; --red-lt:#fff0ec; --blue:#285d73; --blue-lt:#edf3f6;
  --r:14px; --shadow:0 2px 5px rgba(27,55,40,.035);
  --font-ledger:system-ui,-apple-system,"Segoe UI","Nirmala UI","Noto Sans Telugu",sans-serif;
  color-scheme:light;
}
html { scroll-padding-top:90px; }
body { font-family:var(--font-ledger); font-size:16px; line-height:1.55; background:var(--bg); }
h1,h2,h3,.hero-num,.mini-big,.wx-temp,.moon-name,.brand-name,.kpi b,.stat-chip b {
  font-family:var(--font-ledger); letter-spacing:-.025em;
}
button,input,select,textarea { font-family:inherit; }
button,a,input,select,textarea,summary,[role="button"] { touch-action:manipulation; }
a,button { -webkit-tap-highlight-color:rgba(23,76,64,.12); }
:focus-visible { outline:3px solid #286ca1; outline-offset:4px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid #286ca1; outline-offset:2px; }
.skip-link { position:fixed;top:-100px;left:16px;z-index:200;background:#fff;color:var(--teal);padding:12px 20px;border:2px solid var(--teal);border-radius:8px; }
.skip-link:focus { top:8px; }
.ui-icon { width:22px;height:22px;display:inline-block;vertical-align:middle;flex-shrink:0; }
.topbar { background:var(--bg);color:var(--ink);box-shadow:none;border-bottom:1px solid var(--line);gap:12px;padding:14px 18px;padding-top:calc(14px + env(safe-area-inset-top)); }
.topbar-title { font-size:20px;font-weight:700;white-space:normal;line-height:1.3;overflow-wrap:anywhere; }
.topbar-mark { width:34px;height:34px;border-radius:9px; }
.icon-btn { width:44px;height:44px;background:#fff;color:var(--teal);border:1px solid var(--line);border-radius:50%;font-size:17px; }
.back-btn { font-size:28px; }
.view.entry-view { max-width:820px; }
.view { max-width:960px;padding:22px 18px 36px;margin:0 auto 92px; }
.bottomnav { padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:4px;border-color:var(--line);box-shadow:0 -3px 14px rgba(27,55,40,.035); }
.nav-item { border-radius:10px;padding:9px 3px;gap:5px;min-height:58px;font-size:12px;color:var(--mut);letter-spacing:0; }
.nav-item.active { background:var(--teal);color:#fff; }
.nav-ico { display:flex;align-items:center;justify-content:center;min-height:24px; }
.nav-add .nav-ico { background:none;color:inherit;border-radius:0;width:auto;height:24px;margin:0;box-shadow:none; }
.nav-brand { display:none; }
.card,.kpi,.ccard,.empty-soft,.pend-item { border:1px solid var(--line);box-shadow:var(--shadow); }
.card { padding:20px;margin-bottom:16px;border-radius:var(--r); }
.card h3 { color:var(--ink);font-size:18px;line-height:1.4;margin-bottom:15px; }
.section-t,.grp-head { font-size:15px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:650;margin:25px 0 12px; }
.tile { border:1px solid var(--line);border-left-width:4px;box-shadow:none;padding:16px;margin-bottom:10px; }
.tile-name { font-size:16px; }
.tile-sub,.tile-num .small { font-size:13px; }
.tile-num .big { font-size:18px; }
.kpis { gap:12px; }
.kpi { padding:18px;border-radius:12px; }
.kpi .v { font-size:25px;font-weight:700;line-height:1.3;overflow-wrap:anywhere; }
.kpi .l { font-size:13px;margin-top:6px; }
.hero,.plan-hero { background:var(--teal);box-shadow:none;border-radius:16px;padding:24px;color:#fff; }
.hero .hero-lab,.hero-split span,.plan-lab { font-size:13px;text-transform:none;letter-spacing:0;opacity:1; }
.hero .hero-num { font-size:clamp(28px,7vw,40px);font-weight:650;line-height:1.25;margin:7px 0; }
.hero .hero-sub { font-size:14px;opacity:1;color:#e4eee7; }
.hero-split { gap:24px;margin-top:20px;padding-top:18px;border-color:#547b6e; }
.hero-split b { display:block;font-size:19px;margin-top:4px; }
.stat-card { text-align:left;padding:20px; }
.stat-v { font-size:32px;font-weight:650; }
.stat-l,.stat-s { font-size:13px;line-height:1.5; }
.venture-bar { background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 17px;margin-bottom:22px;min-height:54px; }
.vb-name { font-size:16px; }.vb-name em,.vb-switch { font-size:13px; }
.vb-ico { background:#e3ece2;padding:9px;border-radius:10px;color:var(--teal); }
.ccard { border-radius:14px;margin-bottom:14px; }
.ccard::before { width:3px; }.ccard.run::before { background:var(--green); }
.ccard-top { padding:20px 18px 14px;gap:12px; }
.ccard-ico { color:var(--teal);background:var(--teal-lt);padding:10px;border-radius:11px; }
.ccard-name { font-size:17px;line-height:1.5; }
.ccard-sub { font-size:13px;white-space:normal; }
.ccard-money .amt { font-size:20px;font-weight:700; }
.ccard-money .cap,.ccard-meta span { font-size:12px;text-transform:none;letter-spacing:0; }
.ccard-meta { padding:0 18px 17px;gap:22px; }
.ccard-meta b { font-size:15px; }
.chip-row { padding:0 18px 16px;gap:6px; }
.badge,.stat-chip,.pill { font-size:12px;line-height:1.5;padding:4px 9px;font-weight:600;letter-spacing:0;text-transform:none; }
.doc-track { height:3px; }.doc-fill { background:var(--green);transition:none; }
.quick-row { gap:10px; }.quick-btn { min-height:76px;border-radius:12px;box-shadow:none;padding:12px 8px;color:var(--teal); }
.quick-btn span,.log-btn span { font-size:13px;line-height:1.4;margin-top:6px; }
.log-actions,.log-row { gap:10px;flex-wrap:wrap; }
.log-btn { min-height:82px;border:1px solid var(--line);background:#fff;color:var(--teal);border-radius:12px;flex:1 1 calc(33.333% - 10px);padding:14px 8px; }
.log-btn:first-child { background:var(--teal);color:#fff;border-color:var(--teal); }
.capital-btn { background:var(--teal-lt);color:var(--teal);border:1px solid var(--line);box-shadow:none;padding:19px;border-radius:12px; }
.capital-btn .cb-txt b { font-size:17px; }.capital-btn .cb-txt em { font-size:13px;opacity:1; }
label { font-size:14px;font-weight:600;line-height:1.5;margin-bottom:18px;letter-spacing:0; }
input,select,textarea { min-height:48px;padding:12px;margin-top:7px;border-color:#a8baac;border-radius:8px;font-size:16px;line-height:1.4;background:#fff;color:var(--ink); }
textarea { min-height:96px; }
input[type="checkbox"],input[type="radio"] { min-height:22px;min-width:22px;width:22px;height:22px;accent-color:var(--teal); }
input[type="file"] { max-width:100%; }
input:disabled,select:disabled,textarea:disabled { background:#eef1ed;color:#59675e;opacity:1; }
.hint,.fine,.note,.entry-s,.pend-s,.menu-row .mt span { font-size:13px;line-height:1.55; }
.hint { margin-top:6px; }.note { padding:14px 16px;border-radius:9px; }
.btn { min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 18px;border-radius:9px;font-size:15px;line-height:1.4;font-weight:650;box-shadow:none;white-space:normal; }
.btn-primary { background:var(--teal);color:#fff;border-color:var(--teal); }
.btn-ghost { background:#fff;color:var(--teal);border:1px solid #a8baac; }
.btn-sm { min-height:44px;font-size:13px;padding:9px 12px; }
.btn:disabled { opacity:.65; }
.actions { gap:10px; }.row { gap:14px; }
#entryCard { border-top:3px solid var(--teal); }
#saveEntry { min-height:52px; }
.entry { padding:16px 0;gap:12px;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none; }
.entry-t,.entry-amt { font-size:15px; }.entry-t { line-height:1.5; }
.entry-btns { gap:6px; }.ebtn { min-width:44px;min-height:44px;border-radius:8px; }
.menu-row { padding:18px 16px;border:1px solid var(--line);box-shadow:none;border-radius:10px;margin-bottom:8px;min-height:72px; }
.menu-row .mi { color:var(--teal);width:28px; }.menu-row .mt b { font-size:16px;line-height:1.5; }
.menu-row .mt span { margin-top:3px;display:block; }
.seg { padding:4px;gap:4px;border-radius:10px;flex-wrap:wrap; }
.seg button { min-height:44px;padding:10px 14px;font-size:14px;border-radius:7px; }
.table-scroll { max-width:100%;overflow:auto;overscroll-behavior-x:contain;margin:8px 0; }
.rtable,.pnl,.htable { font-size:14px; }
.rtable th,.htable th { font-size:12px;text-transform:none;letter-spacing:0;padding:12px 10px; }
.rtable td,.pnl td,.htable td { padding:12px 10px;line-height:1.5; }
.rtable td.calc { font-size:12px; }.rtable tbody tr:nth-child(even) { background:#f8faf6; }
.rtable tr.tot td,.pnl tr.total td { background:var(--teal-lt);border-top:2px solid var(--teal); }
.list-line { padding:12px 0;font-size:14px;gap:16px; }
.list-line .l { min-width:0; }.list-line .r { flex-shrink:0; }
.empty,.empty-soft { padding:32px 22px;font-size:14px;line-height:1.65; }.empty-soft b { font-size:18px; }
.pend-item { padding:20px; }.pend-t { font-size:16px; }
.auth-wrap { background:var(--bg);padding:32px 20px;min-height:100dvh; }
.auth-bg { display:none; }
.auth-card { max-width:440px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:18px;padding:32px;color:var(--ink);box-shadow:0 12px 45px rgba(23,76,64,.07); }
.brand-lockup { max-width:235px;margin:0 auto 28px; }
.auth-h { font-size:26px;letter-spacing:-.03em;line-height:1.3;margin-bottom:14px; }
.auth-lede { font-size:15px;line-height:1.65; }
.auth-back,.auth-link { font-size:14px;min-height:44px;display:flex;align-items:center; }
.auth-link { justify-content:center; }
.auth-newhere { background:var(--teal-lt);color:var(--ink);border-color:var(--line);padding:16px; }.auth-newhere span { font-size:13px;opacity:1; }
.mini-card { border-radius:12px;box-shadow:none;min-height:132px;padding:17px; }
.mini-head,.mini-sub,.wx-note { text-transform:none;letter-spacing:0;font-size:13px;opacity:1; }
.wx-fx *,.boot-dots i { animation:none!important; }
.wx-hero { border-radius:14px; }.mini-card.moon { background:#253e40; }
.terms-doc { font-size:14px;line-height:1.7;background:#fff;padding:20px; }.terms-doc .hint { font-size:14px; }
.plan-row { padding:18px;border-radius:10px; }.plan-row-h { font-size:16px; }.plan-row-b { font-size:14px; }
.ob-badge { max-width:calc(100% - 32px);white-space:normal;min-height:44px;bottom:86px;font-size:13px;border:1px solid #9a650d;border-radius:9px; }
.toast { max-width:calc(100% - 32px);bottom:142px;border-radius:10px;line-height:1.5; }
.app-update { top:auto;bottom:0;flex-wrap:wrap;z-index:100;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:2px solid var(--teal);border-bottom:0; }
html[lang="te"] body { line-height:1.75; }
html[lang="te"] .nav-item { font-size:12px; }
html[lang="te"] h1,html[lang="te"] h2,html[lang="te"] h3 { letter-spacing:0;line-height:1.6; }
@media (hover:hover) {
  .btn-primary:hover,.log-btn:first-child:hover { background:var(--teal-dk);color:#fff; }
  .menu-row:hover,.ccard:hover,.quick-btn:hover,.tile:hover { border-color:#6e937e;background:#f9fbf7; }
  .nav-item:not(.active):hover { background:var(--teal-lt);color:var(--teal); }
}
@media (max-width:380px) {
  .view { padding:16px 12px 30px; }.card { padding:16px; }.topbar { padding-left:12px;padding-right:12px;gap:8px; }
  .ccard-top { flex-wrap:wrap;padding:16px; }.ccard-money { margin-left:auto; }.ccard-ico { display:none; }
  .entry { flex-wrap:wrap; }.entry-btns { margin-left:auto; }.entry-main { flex-basis:60%; }
  .row { flex-wrap:wrap; }.row>* { min-width:0;flex-basis:100%; }
  .hero-split { gap:12px; }.hero-split b { font-size:16px; }.auth-card { padding:24px; }
}
@media (min-width:1000px) {
  #appShell { padding-left:216px; }
  .bottomnav { top:0;bottom:0;width:216px;right:auto;flex-direction:column;justify-content:flex-start;padding:28px 16px;border-right:1px solid var(--line);border-top:0;background:#fff;box-shadow:none;gap:9px; }
  .nav-brand { display:block;padding:0 8px 30px; }.nav-brand img { width:160px;height:auto; }
  .nav-item { flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:15px;min-height:52px;padding:13px 18px;font-size:15px; }
  .nav-ico { width:24px; }.nav-lab { text-align:left; }
  .topbar { padding:20px 36px; }.topbar-title { font-size:24px; }.topbar-mark { display:none; }
  .view { padding:30px 36px 64px;margin-bottom:0; }
  .card { padding:24px; }.hero { padding:30px; }
  .ob-badge { left:calc(50% + 108px);bottom:20px; }.toast { left:calc(50% + 108px);bottom:80px; }
  .app-update { left:216px; }.auth-card { margin:36px 0; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
@media print {
  #appShell { padding:0; }.topbar,.bottomnav,.skip-link,.ob-badge,.app-update,.toast { display:none!important; }
  .view { margin:0;padding:0;max-width:none; }.card { box-shadow:none;break-inside:avoid; }.table-scroll { overflow:visible; }
  body { background:#fff;color:#000; }.hero,.plan-hero { background:#fff;color:#000;border:1px solid #777; }
  .hero .hero-sub { color:#000; }
}

.auth-card .fine { font-size:13px;line-height:1.6; }

.filterbar { grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);padding:14px;gap:10px; }
.filterbar label { min-width:0;font-size:13px; }
.filterbar input { width:100%;min-width:0;font-size:16px; }
.filterbar .fb-full { flex-wrap:wrap; }
@media(max-width:380px) { .filterbar { grid-template-columns:1fr; } }

.ob-badge.offline { background:var(--amber-lt);color:#68470e; }

/* v79 feature merge: tap-friendly categories and read-only entry detail. */
.cat-wrap { margin-bottom:16px; }
.cat-lab { font-size:14px;font-weight:700;margin-bottom:8px; }
.cat-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px; }
.cat-tile { display:flex;align-items:center;justify-content:center;gap:7px;min-height:60px;
  padding:10px 8px;border:2px solid var(--line);border-radius:11px;background:var(--card,#fff);
  color:var(--ink);font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;cursor:pointer;overflow-wrap:anywhere; }
.cat-tile.on { background:var(--teal-lt,#eef4f3);border-color:var(--teal); }
.cat-tile:disabled { opacity:.45;cursor:default; }
.cat-tile:focus-visible { outline:3px solid var(--teal);outline-offset:3px; }
.entry-detail .modal-card { max-height:90dvh;overflow:auto; }
.entry-detail th { text-align:left; }
.entry-detail td,.entry-detail th { overflow-wrap:anywhere; }
.entry-detail-actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:16px; }
.entry-detail-actions .btn { flex:1; }
@media(max-width:380px) { .cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print {
  body.printing-entry > :not(.entry-detail) { display:none!important; }
  body.printing-entry .entry-detail { display:block;position:static;padding:0;background:white; }
  body.printing-entry .modal-card { max-height:none;overflow:visible;width:100%;max-width:none;box-shadow:none; }
  body.printing-entry .entry-detail-actions { display:none!important; }
}
