:root {
  --ink: #17142b;
  --ink-soft: #68647a;
  --canvas: #f6f5fb;
  --panel: #ffffff;
  --panel-soft: #fbfaff;
  --line: #e8e5f0;
  --brand: #6756d8;
  --brand-dark: #4b3cac;
  --brand-soft: #eeebff;
  --success: #168764;
  --success-soft: #e5f8f1;
  --warning: #b87318;
  --warning-soft: #fff3dc;
  --danger: #cb4660;
  --danger-soft: #ffebef;
  --blue: #2779d6;
  --shadow-sm: 0 2px 12px rgba(28, 22, 57, .055);
  --shadow-lg: 0 24px 70px rgba(25, 18, 57, .15);
  --radius: 18px;
  --radius-sm: 12px;
  --mobile-nav-height: 74px;
}

[data-bs-theme="dark"] {
  --ink: #f4f1ff;
  --ink-soft: #aaa5bd;
  --canvas: #100e1b;
  --panel: #191626;
  --panel-soft: #211d31;
  --line: #302b43;
  --brand: #9d8cff;
  --brand-dark: #b7aaff;
  --brand-soft: #2b2549;
  --success: #53d2a5;
  --success-soft: #17372f;
  --warning: #f0b35e;
  --warning-soft: #3a2b19;
  --danger: #ff7d93;
  --danger-soft: #3d202b;
  --blue: #74b3ff;
  --shadow-sm: 0 2px 14px rgba(0,0,0,.22);
  --shadow-lg: 0 24px 70px rgba(0,0,0,.4);
}

* { box-sizing: border-box; }
html { min-height: 100%; min-height: 100dvh; }
body {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  color: var(--ink);
  background: var(--canvas);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.min-w-0 { min-width: 0; }

.app-shell { min-height: 100vh; min-height: 100dvh; }
.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 1030;
  width: 264px; padding: 28px 18px 20px;
  flex-direction: column; color: #f6f4ff;
  background:
    radial-gradient(circle at 15% 5%, rgba(125,103,235,.32), transparent 31%),
    linear-gradient(165deg, #1c1834 0%, #131125 70%);
}
.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark {
  width: 39px; height: 39px; border-radius: 13px; display: inline-grid; place-items: center;
  color: #fff; background: linear-gradient(145deg, #806dec, #5746c7); box-shadow: 0 9px 24px rgba(104,86,216,.32);
}
.brand strong { font-size: 1.05rem; letter-spacing: -.025em; }
.brand small { display: block; margin-top: 1px; color: #aaa5c1; font-size: .67rem; letter-spacing: .04em; }
.side-nav { display: flex; flex-direction: column; gap: 5px; margin-top: 37px; }
.side-nav a {
  display: flex; align-items: center; gap: 13px; min-height: 45px; padding: 0 13px;
  border-radius: 12px; color: #aaa6be; font-size: .88rem; font-weight: 600; transition: .2s ease;
}
.side-nav a i { width: 20px; text-align: center; font-size: .95rem; }
.side-nav a:hover { color: #fff; background: rgba(255,255,255,.055); transform: translateX(2px); }
.side-nav a.active { color: #fff; background: linear-gradient(90deg, rgba(126,104,235,.3), rgba(126,104,235,.11)); box-shadow: inset 3px 0 #9b8bff; }
.nav-label { margin: 22px 13px 7px; color: #68637d; font-size: .63rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.sidebar-user {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px;
  margin-top: auto; padding: 14px 8px 2px; border-top: 1px solid rgba(255,255,255,.08);
}
.sidebar-user strong { font-size: .78rem; color: #fff; }
.sidebar-user small { color: #817c96; font-size: .68rem; }
.avatar {
  width: 35px; height: 35px; display: inline-grid; place-items: center; flex: 0 0 auto;
  border-radius: 11px; color: #fff; background: linear-gradient(145deg,#7764e8,#4a3aa9); font-size: .78rem; font-weight: 800;
}
.icon-btn {
  width: 38px; height: 38px; display: inline-grid; place-items: center; flex: 0 0 auto;
  padding: 0; border: 1px solid var(--line); border-radius: 11px; color: var(--ink-soft); background: var(--panel); transition: .18s ease;
}
.icon-btn:hover { color: var(--brand); border-color: var(--brand); transform: translateY(-1px); }
.icon-btn.danger-action { color:var(--danger);background:var(--danger-soft); }
.icon-btn.danger-action:hover { color:#fff;border-color:var(--danger);background:var(--danger); }
.sidebar .icon-btn { color: #9993ad; background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.07); }
.main-content { min-height: 100vh; min-height: 100dvh; margin-left: 264px; }
.desktop-topbar {
  min-height: 79px; padding: 0 36px; justify-content: space-between; align-items: center;
  border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 88%, transparent);
  backdrop-filter: blur(14px);
}
.topbar-date { margin-top: 2px; font-size: .82rem; color: var(--ink); font-weight: 650; }
.eyebrow { display: block; color: var(--brand); font-size: .66rem; font-weight: 800; letter-spacing: .115em; text-transform: uppercase; }
.eyebrow.light { color: #bdb3ff; }
.sync-state { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; color: var(--ink-soft); font-size: .7rem; font-weight: 700; }
.sync-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px color-mix(in srgb,var(--success) 13%,transparent); }
.sync-state.offline .sync-dot { background: var(--warning); box-shadow: 0 0 0 4px color-mix(in srgb,var(--warning) 13%,transparent); }
.content-wrap { max-width: 1540px; margin: 0 auto; padding: 32px 36px 56px; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 22px; margin-bottom: 26px; }
.page-heading h1 { margin: 5px 0 5px; font-size: clamp(1.65rem, 2.4vw, 2.35rem); line-height: 1.08; letter-spacing: -.045em; font-weight: 760; }
.page-heading p { margin: 0; color: var(--ink-soft); font-size: .88rem; }
.heading-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.btn { min-height: 42px; padding: .62rem 1rem; border-radius: 12px; border-width: 1px; font-size: .82rem; font-weight: 750; }
.btn i { margin-right: 5px; }
.btn-lg { min-height: 50px; border-radius: 14px; }
.btn-brand { color: #fff; border-color: var(--brand); background: linear-gradient(135deg, var(--brand), var(--brand-dark)); box-shadow: 0 8px 20px color-mix(in srgb,var(--brand) 23%,transparent); }
.btn-brand:hover, .btn-brand:focus { color:#fff; border-color:var(--brand-dark); background:var(--brand-dark); transform:translateY(-1px); }
.btn-outline-brand { color:var(--brand); border-color:color-mix(in srgb,var(--brand) 45%,var(--line)); background:var(--panel); }
.btn-outline-brand:hover { color:#fff; border-color:var(--brand); background:var(--brand); }
.btn-soft { color:var(--ink); border-color:var(--line); background:var(--panel-soft); }
.btn-soft:hover { color:var(--brand); border-color:var(--brand); background:var(--brand-soft); }
.panel {
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow-sm);
}
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px 16px; }
.panel-heading > div { display:flex; align-items:center; gap:11px; }
.panel-heading h2 { margin:3px 0 0; font-size:1rem; font-weight:760; letter-spacing:-.02em; }
.panel-chip { flex:0 0 auto;white-space:nowrap;padding:6px 9px;border:1px solid var(--line);border-radius:99px;color:var(--ink-soft);font-size:.65rem;font-weight:700; }
.panel-chip i { color:var(--success); font-size:.42rem; vertical-align:middle; }
.app-alert { display:flex; align-items:center; gap:9px; border:0; border-radius:13px; font-size:.81rem; font-weight:650; }
.alert-success { color:var(--success); background:var(--success-soft); }
.alert-danger { color:var(--danger); background:var(--danger-soft); }

.status-strip {
  display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)) minmax(200px,1.35fr);
  gap:1px; overflow:hidden; margin-bottom:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--line); box-shadow:var(--shadow-sm);
}
.status-strip > div { display:flex; align-items:center; gap:11px; min-height:77px; padding:13px 18px; background:var(--panel); }
.status-strip strong { display:block; font-size:1.05rem; }
.status-strip small { display:block; color:var(--ink-soft); font-size:.68rem; }
.status-icon { width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:.76rem; }
.status-icon.pending { color:var(--warning);background:var(--warning-soft); }
.status-icon.submitted { color:var(--success);background:var(--success-soft); }
.status-icon.locked { color:var(--ink-soft);background:var(--canvas); }
.status-strip .status-action { margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;background:linear-gradient(135deg,var(--panel),var(--brand-soft)); }
.status-action span { color:var(--ink-soft);font-size:.68rem; }
.status-action strong { color:var(--brand);font-size:.82rem; }
.metric-grid { display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:18px; }
.metric-card { min-height:148px;padding:17px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm);transition:.2s ease; }
.metric-card:hover { transform:translateY(-3px);box-shadow:0 12px 34px rgba(30,23,60,.1); }
.metric-icon { width:35px;height:35px;display:grid;place-items:center;border-radius:11px;font-size:.82rem; }
.metric-icon.violet{color:#6756d8;background:#eeebff}.metric-icon.emerald{color:#168764;background:#e5f8f1}.metric-icon.blue{color:#2779d6;background:#e7f2ff}.metric-icon.amber{color:#b87318;background:#fff3dc}.metric-icon.rose{color:#cb4660;background:#ffebef}.metric-icon.cyan{color:#128aa0;background:#e4f8fb}
[data-bs-theme="dark"] .metric-icon.violet{background:#2b2549;color:#ad9fff}[data-bs-theme="dark"] .metric-icon.emerald{background:#17372f;color:#53d2a5}[data-bs-theme="dark"] .metric-icon.blue{background:#172d48;color:#74b3ff}[data-bs-theme="dark"] .metric-icon.amber{background:#3a2b19;color:#f0b35e}[data-bs-theme="dark"] .metric-icon.rose{background:#3d202b;color:#ff7d93}[data-bs-theme="dark"] .metric-icon.cyan{background:#17343a;color:#58d0e5}
.metric-label { display:block;margin-top:14px;color:var(--ink-soft);font-size:.68rem;font-weight:650; }
.metric-card > strong { display:block;margin-top:3px;font-size:1.16rem;letter-spacing:-.035em;white-space:nowrap; }
.metric-card > small { display:block;margin-top:9px;color:var(--ink-soft);font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.metric-card > small i { color:var(--success);margin-right:3px; }
.dashboard-grid { display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.72fr);gap:18px;margin-bottom:18px; }
.dashboard-grid.lower { grid-template-columns:1fr 1fr; }
.chart-wrap { height:292px;padding:0 20px 20px; }
.quick-actions { padding:0 12px 13px; }
.quick-actions a { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:12px 9px;border-top:1px solid var(--line); }
.quick-actions a:first-child { border-top:0; }
.quick-actions a > span:nth-child(2) strong { display:block;font-size:.79rem; }
.quick-actions a > span:nth-child(2) small { display:block;margin-top:2px;color:var(--ink-soft);font-size:.65rem; }
.quick-actions a > i { color:var(--ink-soft);font-size:.65rem; }
.alert-list,.ranking-list { padding:0 15px 17px; }
.alert-list a { display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px 7px;border-top:1px solid var(--line); }
.store-dot { width:34px;height:34px;display:grid;place-items:center;border-radius:11px;color:var(--brand);background:var(--brand-soft);font-size:.75rem;font-weight:800; }
.alert-list strong,.alert-list small { display:block; }.alert-list strong{font-size:.76rem}.alert-list small{color:var(--ink-soft);font-size:.65rem}.alert-list>a>i{color:var(--ink-soft);font-size:.6rem}
.count-badge { display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:9px;color:var(--brand);background:var(--brand-soft);font-size:.72rem;font-weight:800; }
.ranking-item { display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;margin:11px 0; }
.rank { color:var(--ink-soft);font-size:.72rem;font-weight:800;text-align:center; }
.rank-line { display:flex;justify-content:space-between;gap:10px;font-size:.71rem; }
.rank-line span { color:var(--ink-soft); }
.progress { height:5px;margin-top:7px;border-radius:99px;background:var(--canvas); }
.progress span { display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--brand),#9b8bff); }
.empty-state { display:flex;min-height:190px;padding:28px;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--ink-soft); }
.empty-state>i { margin-bottom:11px;color:var(--brand);font-size:1.5rem; }.empty-state strong{display:block;color:var(--ink);font-size:.9rem}.empty-state span{margin-top:4px;font-size:.72rem}

.ledger-heading { align-items:center; }
.status-badge { display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:99px;font-size:.63rem;font-weight:800;text-transform:capitalize;white-space:nowrap; }
.status-badge.draft { color:var(--warning);background:var(--warning-soft); }
.status-badge.submitted,.status-badge.approved { color:var(--success);background:var(--success-soft); }
.status-badge.locked,.status-badge.rejected { color:var(--ink-soft);background:var(--canvas); }
.ledger-layout { display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start; }
.ledger-main { display:grid;gap:16px;min-width:0; }
.ledger-main .form-panel { padding-bottom:22px; }
.ledger-main .form-panel > .panel-heading { min-height:74px; }
.step-number { width:31px;height:31px;display:grid;place-items:center;border-radius:10px;color:var(--brand);background:var(--brand-soft);font-size:.65rem;font-weight:850; }
.live-label { color:var(--success);font-size:.64rem;font-weight:750; }.live-label i{margin-right:4px}
.form-grid { display:grid;gap:14px;padding:0 22px; }
.form-grid.columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-grid.columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sales-grid {
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-areas:
    "total card upi"
    ". total-sum .";
  align-items:start;
}
.sales-grid > :nth-child(1) { grid-area:total; }
.sales-grid > :nth-child(2) { grid-area:total-sum; }
.sales-grid > :nth-child(3) { grid-area:card; }
.sales-grid > :nth-child(4) { grid-area:upi; }
.field { display:block;min-width:0; }
.field>span,.dynamic-row label>span { display:block;margin-bottom:6px;color:var(--ink);font-size:.69rem;font-weight:700; }
.field small { display:block;margin-top:5px;color:var(--ink-soft);font-size:.61rem; }
.field-lock { margin-left:4px;color:var(--ink-soft);font-size:.55rem; }
.field-icon { width:16px;margin-right:5px;color:var(--brand); }
.form-control,.form-select {
  min-height:43px;padding:.62rem .76rem;border:1px solid var(--line);border-radius:11px;color:var(--ink);background-color:var(--panel-soft);font-size:.8rem;
}
.form-control:focus,.form-select:focus { color:var(--ink);background:var(--panel);border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent); }
.form-control[readonly],.form-control:disabled,.form-select:disabled { color:var(--ink-soft);background:var(--canvas);opacity:1; }
textarea.form-control { resize:vertical; }
.money-input { position:relative; }
.money-input>span { position:absolute;z-index:2;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-soft);font-size:.78rem;font-weight:700; }
.money-input .form-control { padding-left:29px; }
.calculated-field { padding:10px;border:1px dashed color-mix(in srgb,var(--brand) 42%,var(--line));border-radius:13px;background:var(--brand-soft); }
.calculated-field .form-control { background:var(--panel); }
.calculated-field .form-control.negative { color:var(--danger);font-weight:800; }
.cash-result-panel { border-color:color-mix(in srgb,var(--brand) 28%,var(--line)); }
.cash-result-panel .closing-result { border-style:solid;background:color-mix(in srgb,var(--success) 9%,var(--panel));border-color:color-mix(in srgb,var(--success) 32%,var(--line)); }
.cash-result-panel .closing-result .form-control { color:var(--success);font-weight:850; }
.cash-rule { margin:18px 22px 0;padding:13px 15px;border:1px solid var(--line);border-radius:12px;color:var(--ink-soft);background:var(--panel-soft);font-size:.67rem;line-height:1.7; }
.cash-rule strong { color:var(--ink); }
.dynamic-list { display:grid;gap:9px;padding:0 22px; }
.dynamic-row { display:grid;grid-template-columns:minmax(0,1.6fr) minmax(130px,.75fr) 35px;gap:9px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft); }
.dynamic-row.expense-row { grid-template-columns:minmax(105px,.65fr) minmax(0,1.4fr) minmax(120px,.7fr) 35px; }
.remove-row { width:35px;height:43px;border:0;border-radius:10px;color:var(--danger);background:var(--danger-soft); }
.additional-notes { max-width:760px;margin-inline:auto;padding-inline:22px; }
.ledger-summary { position:static;display:grid;gap:14px;min-width:0; }
.closing-card {
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
  grid-template-areas:
    "eyebrow formula"
    "amount formula"
    "state formula"
    "note note";
  column-gap:48px;
  padding:28px;
  border-radius:20px;
  color:#fff;
  background:radial-gradient(circle at 95% 0,rgba(157,140,255,.42),transparent 34%),linear-gradient(150deg,#272044,#17132d 75%);
  box-shadow:0 22px 45px rgba(32,24,69,.25);
}
.closing-card > .eyebrow { grid-area:eyebrow;align-self:end; }
.closing-card>strong { display:block;margin:7px 0 5px;font-size:2rem;letter-spacing:-.055em; }
.closing-card > strong { grid-area:amount;align-self:center; }
.closing-card>strong.negative { color:#ff9aac; }
.closing-state { grid-area:state;display:inline-flex;align-items:center;align-self:start;gap:5px;color:#bcb5d2;font-size:.62rem; }
.closing-state i { color:#a999ff; }
.formula-list { grid-area:formula;margin:0;padding:3px 0 3px 30px;border-top:0;border-left:1px solid rgba(255,255,255,.12); }
.formula-list div { display:flex;justify-content:space-between;gap:12px;padding:6px 0;color:#bcb5d2;font-size:.68rem; }
.formula-list strong { color:#fff;font-size:.7rem; }.formula-list .minus strong{color:#ff9aac}
.formula-note { grid-area:note;margin:22px -28px -28px;padding:12px 20px;text-align:center;color:#8e87a4;background:rgba(0,0,0,.16);font-size:.56rem;line-height:1.5; }
.summary-actions { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px; }
.summary-actions.locked-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
.summary-actions .btn { min-height:78px;display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 18px; }
.action-note { grid-column:1/-1;padding:5px 7px;text-align:center;color:var(--ink-soft);font-size:.58rem;line-height:1.5; }
.action-note i { margin-right:4px; }

.filter-panel { margin-bottom:17px;padding:17px; }
.filter-grid { display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:10px;align-items:end; }
.report-filters { grid-template-columns:repeat(5,minmax(120px,1fr)) auto; }
.store-tabs-panel { margin-bottom:17px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm); }
.store-tabs { display:flex;gap:7px;overflow-x:auto;padding:10px;scrollbar-width:thin; }
.store-tab { display:inline-flex;min-height:42px;flex:0 0 auto;align-items:center;gap:8px;padding:7px 13px;border:1px solid transparent;border-radius:11px;color:var(--ink-soft);background:transparent;font-size:.72rem;font-weight:750;white-space:nowrap;transition:.18s ease; }
.store-tab:hover { color:var(--brand);background:var(--brand-soft); }
.store-tab:focus-visible { outline:3px solid color-mix(in srgb,var(--brand) 24%,transparent);outline-offset:1px; }
.store-tab.active { color:var(--brand);border-color:color-mix(in srgb,var(--brand) 28%,var(--line));background:var(--brand-soft); }
.store-tab-mark { width:24px;height:24px;display:grid;place-items:center;border-radius:8px;color:var(--brand);background:color-mix(in srgb,var(--brand) 11%,var(--panel));font-size:.62rem;font-weight:850; }
.table-panel { overflow:hidden; }
.app-table { margin:0;--bs-table-bg:transparent;--bs-table-color:var(--ink); }
.app-table thead th { padding:11px 17px;border-color:var(--line);color:var(--ink-soft);background:var(--panel-soft);font-size:.61rem;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap; }
.app-table tbody td { padding:13px 17px;border-color:var(--line);font-size:.73rem;white-space:nowrap; }
.app-table tbody tr:last-child td { border-bottom:0; }
.app-table tbody tr:hover { background:color-mix(in srgb,var(--brand-soft) 38%,transparent); }
.app-table td small { display:block;margin-top:2px;color:var(--ink-soft);font-size:.6rem; }
.app-table .serial-column { width:1%;text-align:center; }
.expense-toggle { display:inline-flex;min-height:32px;align-items:center;justify-content:flex-end;gap:8px;padding:5px 8px 5px 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink);background:var(--panel-soft);font-size:.71rem;font-weight:750;white-space:nowrap;transition:.18s ease; }
.expense-toggle:hover { color:var(--brand);border-color:color-mix(in srgb,var(--brand) 45%,var(--line));background:var(--brand-soft); }
.expense-toggle:focus-visible { outline:3px solid color-mix(in srgb,var(--brand) 22%,transparent);outline-offset:1px; }
.expense-toggle i { width:17px;height:17px;display:grid;place-items:center;border-radius:6px;color:var(--brand);background:var(--brand-soft);font-size:.52rem;transition:transform .18s ease; }
.expense-toggle[aria-expanded="true"] i { transform:rotate(180deg); }
.expense-empty { display:inline-block;padding-right:26px; }
.expense-detail-row[hidden] { display:none; }
.app-table tbody tr.expense-detail-row:hover { background:transparent; }
.app-table tbody td.expense-detail-cell { padding:0;border-bottom:1px solid color-mix(in srgb,var(--brand) 22%,var(--line));white-space:normal;background:color-mix(in srgb,var(--brand-soft) 33%,var(--panel)); }
.expense-breakdown { padding:17px 20px 19px 72px; }
.expense-breakdown-heading { display:flex;align-items:center;gap:11px;margin-bottom:12px; }
.expense-breakdown-icon { width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;color:var(--brand);background:var(--brand-soft); }
.expense-breakdown-heading > div { min-width:0; }
.expense-breakdown-heading > div > span,.expense-breakdown-heading > div > strong,.expense-breakdown-heading > div > small { display:block; }
.expense-breakdown-heading > div > span { color:var(--ink-soft);font-size:.58rem;font-weight:750;text-transform:uppercase;letter-spacing:.07em; }
.expense-breakdown-heading > div > strong { margin-top:2px;font-size:.76rem; }
.expense-breakdown-heading > div > small { margin-top:2px;color:var(--ink-soft);font-size:.62rem; }
.expense-count { margin-left:auto;padding:5px 8px;border-radius:99px;color:var(--brand);background:var(--brand-soft);font-size:.59rem;font-weight:800;white-space:nowrap; }
.expense-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.expense-item { display:flex;min-width:0;align-items:center;justify-content:space-between;gap:15px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel); }
.expense-item > div { min-width:0; }
.expense-item strong,.expense-item small { display:block; }
.expense-item > div > strong { overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap; }
.expense-item small { margin-top:2px;color:var(--ink-soft);font-size:.59rem; }
.expense-item > strong { flex:0 0 auto;font-size:.7rem; }
.expense-breakdown-total { display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:.67rem; }
.expense-breakdown-total span { color:var(--ink-soft); }
.expense-breakdown-total strong { font-size:.74rem; }
.loading-row { display:flex;align-items:center;justify-content:center;gap:8px;padding:42px;color:var(--ink-soft); }
.report-total-grid { display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:17px; }
.report-total { padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-sm); }
.report-total span { display:block;color:var(--ink-soft);font-size:.63rem; }.report-total strong{display:block;margin-top:4px;font-size:.91rem;white-space:nowrap}

.store-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px; }
.store-card { padding:19px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm); }
.store-card-top { display:flex;justify-content:space-between;align-items:center;margin-bottom:17px; }
.store-icon { width:41px;height:41px;display:grid;place-items:center;border-radius:13px;color:var(--brand);background:var(--brand-soft); }
.store-card h2 { margin:4px 0;font-size:1.08rem;letter-spacing:-.03em; }.store-card p{height:36px;margin:0;color:var(--ink-soft);font-size:.7rem}
.store-meta { display:grid;grid-template-columns:1fr 1fr;margin:16px 0;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line); }
.store-meta div+div{padding-left:15px;border-left:1px solid var(--line)}.store-meta span,.store-meta strong{display:block}.store-meta span{color:var(--ink-soft);font-size:.61rem}.store-meta strong{margin-top:3px;font-size:.78rem}
.modal-content { overflow:hidden;border:1px solid var(--line);border-radius:20px;color:var(--ink);background:var(--panel);box-shadow:var(--shadow-lg); }
.modal-header,.modal-footer { padding:18px 20px;border-color:var(--line); }.modal-body{padding:20px}
.modal-title { margin:3px 0 0;font-size:1.1rem;font-weight:760; }
.user-cell { display:flex;align-items:center;gap:10px; }.user-cell strong,.user-cell small{display:block}.user-cell strong{font-size:.75rem}.user-cell small{margin-top:2px;color:var(--ink-soft);font-size:.61rem}
.role-pill { display:inline-flex;align-items:center;gap:5px;color:var(--brand);font-size:.67rem;font-weight:700; }.role-pill i{font-size:.6rem}
.table-actions { display:flex;justify-content:flex-end;gap:5px; }.table-actions form{display:inline-flex}
.request-list { display:grid;gap:14px; }
.request-card { padding:19px; }
.request-top { display:flex;align-items:center;justify-content:space-between;gap:15px; }
.request-body { display:grid;grid-template-columns:1fr 1.4fr;gap:14px;margin:16px 0; }
.request-body>div { padding:13px;border-radius:12px;background:var(--panel-soft); }
.request-body span { color:var(--brand);font-size:.61rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em; }.request-body p{margin:6px 0 0;color:var(--ink);font-size:.72rem;line-height:1.55}
.admin-note { display:flex;gap:10px;padding:12px;border-radius:12px;color:var(--success);background:var(--success-soft);font-size:.7rem; }.admin-note strong{display:block;margin-bottom:3px}
.decision-form { display:grid;grid-template-columns:1fr auto auto auto;gap:8px;padding-top:16px;border-top:1px solid var(--line); }
.audit-timeline { padding:0 22px 20px; }
.audit-timeline article { position:relative;display:grid;grid-template-columns:34px 1fr;gap:11px;padding:13px 0; }
.audit-timeline article:not(:last-child):after { content:"";position:absolute;left:16px;top:47px;bottom:-3px;width:1px;background:var(--line); }
.audit-dot { width:34px;height:34px;display:grid;place-items:center;z-index:1;border-radius:11px;color:var(--brand);background:var(--brand-soft);font-size:.7rem; }
.audit-content { min-width:0;padding:3px 0 13px;border-bottom:1px solid var(--line);font-size:.72rem; }.audit-content>small{display:block;margin-top:4px;color:var(--ink-soft);font-size:.6rem}.audit-content p{display:flex;gap:6px;margin:8px 0 0;color:var(--ink-soft);font-size:.66rem}.audit-content details{margin-top:8px}.audit-content summary{cursor:pointer;color:var(--brand);font-size:.62rem;font-weight:700}.audit-content pre{max-height:260px;overflow:auto;margin-top:8px;padding:12px;border-radius:10px;color:var(--ink);background:var(--canvas);font-size:.61rem}
.settings-panel { max-width:860px;padding-bottom:0;overflow:hidden; }.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;padding:16px 22px;border-top:1px solid var(--line);background:var(--panel-soft)}.settings-footer span{color:var(--ink-soft);font-size:.67rem}.settings-footer i{margin-right:5px;color:var(--brand)}
.app-access-panel { margin-top:18px; }
.app-access-body { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 22px 22px; }
.app-access-body strong { display:block;font-size:.84rem; }
.app-access-body p { max-width:470px;margin:5px 0 0;color:var(--ink-soft);font-size:.71rem;line-height:1.55; }
.app-access-actions { display:flex;align-items:center;gap:8px;flex:0 0 auto; }
.app-access-actions form { margin:0; }
.logout-button { color:var(--danger); }
.logout-button:hover { color:#fff;border-color:var(--danger);background:var(--danger); }
.danger-zone{margin-top:24px;border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.danger-zone .step-number{color:var(--danger);background:color-mix(in srgb,var(--danger) 11%,var(--panel))}.danger-zone-body{padding:0 22px 22px}.danger-zone-body>p{margin:0 0 14px;color:var(--ink-soft);font-size:.76rem;line-height:1.65}.reset-preserves{display:flex;align-items:flex-start;gap:11px;margin-bottom:20px;padding:14px;border:1px solid color-mix(in srgb,var(--success) 24%,var(--line));border-radius:12px;color:var(--ink-soft);background:color-mix(in srgb,var(--success) 6%,var(--panel));font-size:.72rem;line-height:1.55}.reset-preserves>i{margin-top:2px;color:var(--success)}.reset-preserves strong{display:block;color:var(--ink)}.reset-fields{padding:0}.reset-acknowledgement{display:flex;align-items:flex-start;gap:9px;margin-top:16px;color:var(--ink-soft);font-size:.7rem;line-height:1.5}.reset-acknowledgement input{margin-top:3px;accent-color:var(--danger)}.danger-footer{margin-inline:-22px;margin-bottom:-22px;background:color-mix(in srgb,var(--danger) 5%,var(--panel))}.danger-footer span i{color:var(--danger)}
.error-state { min-height:60vh; }.error-state .btn{margin-top:16px}

.guest-body { background:#f6f5fb; }
.login-shell { display:grid;grid-template-columns:minmax(410px,1.08fr) minmax(420px,.92fr);min-height:100vh;min-height:100dvh; }
.login-story { position:relative;display:flex;flex-direction:column;overflow:hidden;padding:42px 54px;color:#fff;background:radial-gradient(circle at 10% 15%,rgba(130,105,239,.45),transparent 28%),radial-gradient(circle at 90% 70%,rgba(88,187,210,.18),transparent 30%),linear-gradient(145deg,#211a41,#121022 75%); }
.login-story:after { content:"";position:absolute;width:350px;height:350px;right:-160px;top:16%;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018); }
.login-brand { position:relative;z-index:1;display:flex;align-items:center;gap:11px; }.login-brand strong{display:block}.login-brand small{display:block;color:#aaa5c1;font-size:.66rem;letter-spacing:.05em}
.story-content { position:relative;z-index:1;max-width:560px;margin:auto 0; }
.story-content h1 { margin:13px 0 19px;font-size:clamp(2.6rem,5vw,4.7rem);line-height:.99;letter-spacing:-.065em;font-weight:780; }
.story-content p { max-width:510px;color:#bbb6cd;font-size:.94rem;line-height:1.7; }
.story-metrics { display:flex;gap:46px;margin-top:39px; }.story-metrics strong,.story-metrics span{display:block}.story-metrics strong{font-size:1.25rem}.story-metrics span{margin-top:2px;color:#8f89a2;font-size:.65rem}
.story-footer { position:relative;z-index:1;color:#8d879e;font-size:.65rem; }.story-footer i{margin-right:6px;color:#a99cff}
.login-panel { display:grid;place-items:center;padding:42px;background:#fff; }
.login-card { width:min(390px,100%); }
.login-card h2 { margin:7px 0 6px;font-size:1.78rem;letter-spacing:-.045em;font-weight:760; }.login-card>p{margin-bottom:28px;font-size:.78rem}
.login-card .form-label { margin-bottom:7px;color:#272238;font-size:.7rem;font-weight:720; }
.input-icon { position:relative; }.input-icon>i{position:absolute;z-index:2;left:14px;top:50%;transform:translateY(-50%);color:#8a849c;font-size:.75rem}.input-icon .form-control{min-height:49px;padding-left:40px;color:#17142b;background:#fbfaff;border-color:#e6e2ed}
.password-toggle { position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;color:#8a849c;background:transparent; }.input-icon input[type=password],.input-icon input[type=text]{padding-right:44px}
.login-help { margin:18px 0 0!important;text-align:center;color:#8a849c;font-size:.65rem!important; }.login-help i{margin-right:4px}
.btn-app-download { display:flex;align-items:center;justify-content:center;gap:7px;min-height:47px;color:#4b3cac;border:1px solid #ded8fa;background:#f4f1ff; }
.btn-app-download:hover { color:#fff;border-color:#6756d8;background:#6756d8; }
.btn-app-download small { margin-left:auto;padding-left:9px;border-left:1px solid currentColor;font-size:.6rem;opacity:.75; }
.login-brand.compact { margin-bottom:35px;color:#17142b; }
.setup-shell { display:grid;place-items:center;min-height:100vh;padding:24px; }.setup-card{max-width:560px;padding:36px;border:1px solid #e5e1ef;border-radius:22px;background:#fff;box-shadow:var(--shadow-lg)}.setup-card .brand-mark{margin-bottom:22px}.setup-card h1{margin:8px 0;font-size:1.7rem}.setup-card p{color:#68647a;line-height:1.6}.setup-card code,.setup-card pre{color:#4b3cac;background:#f0edff}.setup-card pre{padding:12px;border-radius:10px;white-space:pre-wrap}
.mobile-header { position:sticky;top:0;z-index:1025;min-height:64px;padding:0 17px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 91%,transparent);backdrop-filter:blur(14px); }
.mobile-header .brand-mark { width:34px;height:34px;border-radius:11px; }.mobile-header .brand strong{font-size:.94rem}
.bottom-nav { position:fixed;z-index:1040;right:0;bottom:0;left:0;min-height:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));justify-content:space-around;align-items:end;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 96%,transparent);box-shadow:0 -8px 28px rgba(25,18,57,.09);backdrop-filter:blur(16px); }
.bottom-nav a,.bottom-nav form,.bottom-nav button { flex:1;min-width:0; }
.bottom-nav a,.bottom-nav button { display:flex;min-height:48px;padding:3px 0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;color:var(--ink-soft);background:transparent;font-size:.57rem;font-weight:700; }
.bottom-nav i { font-size:.91rem; }.bottom-nav .active{color:var(--brand)}
.bottom-nav .primary-action { position:relative;top:-12px;color:var(--ink); }.bottom-nav .primary-action i{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-dark));box-shadow:0 9px 24px color-mix(in srgb,var(--brand) 35%,transparent)}
.toast { overflow:hidden;border:1px solid var(--line);border-radius:13px;color:var(--success);background:var(--panel);box-shadow:var(--shadow-lg);font-size:.75rem;font-weight:650; }.toast.error{color:var(--danger)}

@media (max-width: 1280px) {
  .metric-grid { grid-template-columns:repeat(3,1fr); }
  .metric-card { min-height:135px; }
  .report-total-grid { grid-template-columns:repeat(3,1fr); }
  .report-filters { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 991.98px) {
  .main-content { margin-left:0; }
  .content-wrap { padding:24px 17px calc(var(--mobile-nav-height) + env(safe-area-inset-bottom) + 16px); }
  .mobile-header { display:flex!important; }
  .bottom-nav { display:flex!important; }
  .ledger-layout { grid-template-columns:1fr; }
  .ledger-summary { position:static;grid-row:auto; }
  .closing-card { padding:22px; }.closing-card>strong{font-size:2.15rem}.formula-note{margin:12px -22px -22px}
  .dashboard-grid,.dashboard-grid.lower { grid-template-columns:1fr; }
  .login-shell { grid-template-columns:1fr; }
  .login-story { display:none; }
  .login-panel { min-height:100vh;min-height:100dvh;padding:28px 22px calc(28px + env(safe-area-inset-bottom)); }
  .store-grid { grid-template-columns:repeat(2,1fr); }
  .filter-grid,.report-filters { grid-template-columns:repeat(2,1fr); }
  .filter-grid .btn { align-self:end; }
}
@media (max-width: 767.98px) {
  .page-heading { align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:20px; }
  .page-heading .btn { width:100%; }
  .heading-actions { width:100%;display:grid;grid-template-columns:repeat(3,1fr); }.heading-actions .btn{padding:.55rem .4rem}
  .status-strip { grid-template-columns:repeat(3,1fr); }.status-strip>div{min-height:69px;padding:10px;flex-direction:column;text-align:center;gap:5px}.status-strip .status-action{display:none}
  .metric-grid { grid-template-columns:repeat(2,1fr);gap:10px; }.metric-card{min-height:129px;padding:14px}.metric-card>strong{font-size:1rem}
  .form-grid.columns-3 { grid-template-columns:repeat(2,1fr); }
  .sales-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "total card"
      "upi upi"
      "total-sum total-sum";
  }
  .closing-card {
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "eyebrow"
      "amount"
      "state"
      "formula"
      "note";
    row-gap:0;
  }
  .formula-list { margin-top:22px;padding:13px 0 0;border-top:1px solid rgba(255,255,255,.12);border-left:0; }
  .additional-notes { max-width:none; }
  .summary-actions,.summary-actions.locked-actions { grid-template-columns:1fr; }
  .dynamic-row,.dynamic-row.expense-row { grid-template-columns:1fr 110px 35px; }.dynamic-row.expense-row label:first-child{grid-column:1/-1}.dynamic-row.expense-row .remove-row{grid-column:3;grid-row:2}
  .store-grid { grid-template-columns:1fr; }
  .app-access-body { align-items:stretch;flex-direction:column;gap:16px; }
  .app-access-actions { display:grid;grid-template-columns:1fr 1fr; }
  .app-access-actions .btn,.app-access-actions form,.app-access-actions form button { width:100%; }
  .report-total-grid { display:flex;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:5px; }.report-total{min-width:145px;scroll-snap-align:start}
  .expense-breakdown { padding:15px; }
  .expense-list { grid-template-columns:1fr; }
  .request-body { grid-template-columns:1fr; }.decision-form{grid-template-columns:1fr 1fr}.decision-form .form-control{grid-column:1/-1}
}
@media (max-width: 479.98px) {
  .content-wrap { padding-inline:13px; }
  .page-heading h1 { font-size:1.75rem; }
  .panel-heading { padding:17px 16px 13px; }
  .form-grid,.dynamic-list { padding-inline:15px; }
  .form-grid.columns-2,.form-grid.columns-3 { grid-template-columns:1fr; }
  .ledger-main .form-panel > .panel-heading { min-height:auto; }
  .sales-grid {
    grid-template-areas:
      "total"
      "card"
      "upi"
      "total-sum";
  }
  .additional-notes { padding-inline:15px; }
  .summary-actions { grid-template-columns:1fr; }
  .dynamic-row,.dynamic-row.expense-row { grid-template-columns:1fr 35px; }.dynamic-row label{grid-column:1}.dynamic-row .remove-row{grid-column:2;grid-row:2;align-self:end}.dynamic-row.expense-row .remove-row{grid-column:2;grid-row:3}
  .filter-grid,.report-filters { grid-template-columns:1fr 1fr; }.filter-grid .field:first-of-type{grid-column:1/-1}.filter-grid .btn{grid-column:1/-1}
  .chart-wrap { height:250px;padding-inline:10px; }
  .login-panel { align-items:start;padding-top:55px; }
  .login-card h2 { font-size:1.55rem; }
  .modal-dialog { margin:10px; }
}

/* The native client identifies itself through its existing WebView user agent.
   These layout-only rules keep the PC browser presentation independent. */
@media (max-width: 767.98px) {
  .android-app .content-wrap {
    padding:18px 12px calc(var(--mobile-nav-height) + env(safe-area-inset-bottom) + 8px);
  }
  .android-app .ledger-heading {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:8px 12px;
    margin-bottom:14px;
  }
  .android-app .ledger-heading > div { min-width:0; }
  .android-app .ledger-heading .status-badge {
    grid-column:2;
    grid-row:1;
    align-self:start;
  }
  .android-app .ledger-layout { gap:12px; }
  .android-app .ledger-main { gap:12px; }
  .android-app .ledger-main .form-panel { padding-bottom:16px; }
  .android-app .ledger-main .form-panel > .panel-heading {
    min-height:auto;
    padding:14px 14px 12px;
  }
  .android-app .form-grid,
  .android-app .dynamic-list {
    gap:10px;
    padding-inline:14px;
  }
  .android-app .additional-notes { padding-inline:14px; }
  .android-app .cash-rule { margin:14px 14px 0; }
  .android-app .summary-actions {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    padding:10px;
  }
  .android-app .summary-actions.locked-actions {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .android-app .summary-actions .btn {
    min-width:0;
    min-height:68px;
    padding:9px 5px;
    flex-direction:column;
    gap:5px;
    white-space:normal;
    line-height:1.25;
  }
  .android-app .summary-actions .btn i { margin-right:0; }
}

@media (max-width: 479.98px) {
  .android-app .form-grid.columns-2,
  .android-app .form-grid.columns-3 {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .android-app .ledger-main .form-panel:nth-child(1) .form-grid > :nth-child(3),
  .android-app .ledger-main .form-panel:nth-child(7) .form-grid > :nth-child(3) {
    grid-column:1/-1;
  }
  .android-app .sales-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:
      "total card"
      "upi upi"
      "total-sum total-sum";
  }
  .android-app .dynamic-row,
  .android-app .dynamic-row.expense-row {
    grid-template-columns:minmax(0,1fr) minmax(88px,.52fr) auto;
    gap:7px;
    padding:10px;
  }
  .android-app .dynamic-row label,
  .android-app .dynamic-row .remove-row {
    grid-column:auto;
    grid-row:auto;
  }
  .android-app .dynamic-row.expense-row label:first-child {
    grid-column:1/-1;
  }
  .android-app .dynamic-row.expense-row .remove-row {
    grid-column:3;
    grid-row:2;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important; }
}
