:root {
  --ink: #222631;
  --muted: #687083;
  --soft: #f5f6fa;
  --line: #e3e6ed;
  --white: #fff;
  --sidebar: #292d38;
  --sidebar-2: #353a47;
  --yellow: #ffd43b;
  --yellow-soft: #fff6c9;
  --purple: #5b5ce2;
  --purple-soft: #eeeeff;
  --green: #079879;
  --green-soft: #e7f8f3;
  --blue: #0b91cc;
  --blue-soft: #e7f6fc;
  --amber: #e69019;
  --amber-soft: #fff3df;
  --red: #d7435b;
  --red-soft: #fff0f2;
  --shadow: 0 10px 32px rgba(36, 42, 63, 0.08);
  --radius: 18px;
}

* { box-sizing: border-box; }
html { font-size: 16px; }
body { margin: 0; color: var(--ink); background: var(--soft); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 15px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p { margin-top: 0; }
h2 { margin-bottom: 8px; font-size: clamp(1.7rem, 2.5vw, 2.25rem); line-height: 1.15; letter-spacing: -0.025em; }
h3 { margin-bottom: 5px; font-size: 1.25rem; line-height: 1.25; }
p { color: var(--muted); }
.hidden { display: none !important; }
.full { width: 100%; }
.span-two { grid-column: span 2; }.span-three { grid-column: 1 / -1; }
.positive-text { color: var(--green) !important; }
.warning-text { color: var(--amber) !important; }
.danger-text { color: var(--red) !important; }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; width: 260px; padding: 26px 18px 20px; color: #fff; background: linear-gradient(180deg, var(--sidebar), #222630); display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; color: #272b35; background: var(--yellow); font-size: 14px; font-weight: 900; box-shadow: 0 8px 20px rgba(255, 212, 59, 0.2); }
.brand strong, .brand span { display: block; }
.brand strong { font-size: 17px; }
.brand span { color: #aeb5c5; font-size: 12px; }
.sidebar nav { margin-top: 36px; }
.nav-label { margin: 24px 12px 9px; color: #7f8798; font-size: 11px; font-weight: 800; letter-spacing: 0.12em; }
.nav-item { min-height: 49px; margin-bottom: 7px; padding: 0 13px; border-radius: 12px; display: flex; align-items: center; gap: 12px; color: #c8ced9; font-size: 15px; font-weight: 650; transition: 0.18s ease; }
.nav-item:hover { color: #fff; background: rgba(255, 255, 255, 0.06); }
.nav-item.active { color: #272b35; background: var(--yellow); box-shadow: 0 8px 22px rgba(255, 212, 59, 0.18); }
.nav-icon { width: 22px; height: 22px; position: relative; flex: 0 0 22px; }
.nav-icon::before, .nav-icon::after { content: ""; position: absolute; border: 2px solid currentColor; }
.icon-dashboard::before { inset: 3px; border-radius: 4px; }.icon-dashboard::after { left: 10px; top: 3px; bottom: 3px; border-width: 0 0 0 2px; box-shadow: -7px 7px 0 -6px currentColor; }
.icon-daily::before { left: 4px; right: 4px; top: 10px; border-width: 2px 0 0; }.icon-daily::after { top: 4px; bottom: 4px; left: 10px; border-width: 0 0 0 2px; }
.icon-close::before { inset: 3px; border-radius: 50%; }.icon-close::after { width: 8px; height: 4px; left: 7px; top: 8px; border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.icon-budget::before { inset: 3px 5px; border-radius: 4px; }.icon-budget::after { content: "₹"; border: 0; left: 7px; top: 1px; font-weight: 900; }
.icon-setup::before { inset: 4px 2px; border-radius: 4px; }.icon-setup::after { inset: 8px 7px; border-width: 2px 0; }
.icon-users::before { width: 7px; height: 7px; border-radius: 50%; left: 7px; top: 2px; }.icon-users::after { width: 14px; height: 7px; border-radius: 9px 9px 4px 4px; left: 3px; bottom: 2px; }
.sidebar-help { margin-top: auto; padding: 15px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 13px; background: rgba(255, 255, 255, 0.035); }
.sidebar-help strong, .sidebar-help span { display: block; }.sidebar-help strong { color: #fff; font-size: 13px; }.sidebar-help span { margin-top: 4px; color: #929bad; font-size: 12px; line-height: 1.4; }
.signout-link { margin: 13px 4px 0; padding: 10px 12px; color: #aeb5c5; font-size: 13px; font-weight: 700; }
.signout-link:hover { color: #fff; }

.main-area { width: calc(100% - 260px); min-height: 100vh; margin-left: 260px; }
.topbar { min-height: 82px; padding: 14px 30px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); display: flex; align-items: center; position: sticky; top: 0; z-index: 15; backdrop-filter: blur(12px); }
.topbar-title span { display: block; color: #8a91a2; font-size: 11px; font-weight: 800; letter-spacing: .12em; }.topbar-title h1 { margin: 2px 0 0; font-size: 1.3rem; line-height: 1.2; }
.top-actions { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.data-status { min-height: 38px; padding: 0 12px; border-radius: 10px; display: flex; align-items: center; gap: 8px; background: #f2f4f8; color: #666e80; font-size: 12px; font-weight: 700; }
.data-status i { width: 8px; height: 8px; border-radius: 50%; background: #a8aebb; }.data-status.ready i { background: var(--green); }.data-status.pending i { background: var(--amber); }
.notification-wrap { position: relative; }
.notification-button { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; background: #fff; position: relative; cursor: pointer; }
.notification-button:hover { background: #f7f8fb; }
.notification-button b { position: absolute; right: -4px; top: -5px; min-width: 19px; height: 19px; padding: 0 5px; border: 2px solid #fff; border-radius: 10px; display: grid; place-items: center; color: #fff; background: var(--red); font-size: 10px; }
.bell-icon { width: 17px; height: 17px; position: relative; display: inline-block; border: 2px solid #626a7d; border-radius: 9px 9px 5px 5px; border-bottom: 0; }.bell-icon::after { content: ""; position: absolute; width: 5px; height: 2px; border-radius: 2px; background: #626a7d; left: 4px; bottom: -4px; }
.profile-chip { min-width: 180px; padding-left: 4px; display: flex; align-items: center; gap: 10px; }
.profile-chip > span { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; color: #333747; background: var(--yellow); font-weight: 850; }
.profile-chip strong, .profile-chip small { display: block; white-space: nowrap; }.profile-chip strong { font-size: 13px; }.profile-chip small { color: #8a91a2; font-size: 11px; }
.notification-panel { display: none; position: absolute; right: 0; top: 51px; width: min(410px, calc(100vw - 30px)); max-height: 520px; overflow: auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(31, 37, 55, .22); }
.notification-panel.open { display: block; }
.notification-head { padding: 17px 18px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }.notification-head strong, .notification-head span { display: block; }.notification-head strong { font-size: 16px; }.notification-head span { color: var(--muted); font-size: 12px; }.notification-head button { border: 0; background: transparent; color: var(--purple); font-size: 12px; font-weight: 800; cursor: pointer; }
.notification-list { padding: 8px; }
.notification-item { padding: 13px 12px; border-radius: 11px; display: flex; gap: 11px; }.notification-item:hover { background: #f7f8fb; }.notification-item > i { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; flex: 0 0 10px; background: var(--blue); }.notification-item.warning > i { background: var(--amber); }.notification-item.danger > i { background: var(--red); }.notification-item.read { opacity: .62; }.notification-item strong, .notification-item small { display: block; }.notification-item strong { font-size: 13px; }.notification-item small { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.notification-empty { padding: 28px 15px; text-align: center; }.notification-empty span { width: 38px; height: 38px; margin: auto; border-radius: 50%; display: grid; place-items: center; background: var(--green-soft); color: var(--green); font-weight: 900; }.notification-empty strong { display: block; margin-top: 9px; }.notification-empty p { margin: 3px 0 0; font-size: 12px; }
.mobile-menu { display: none; margin-right: 12px; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; }

.page-content { width: min(1480px, 100%); margin: 0 auto; padding: 28px 30px 50px; }
.section-card { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 5px 18px rgba(36, 42, 63, .035); }
.section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }.section-head p { margin: 4px 0 0; font-size: 13px; }
.section-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 6px; color: #5357c9; background: var(--purple-soft); font-size: 11px; font-weight: 850; letter-spacing: .06em; }.section-tag.green { color: #087c64; background: var(--green-soft); }.section-tag.blue { color: #087aa9; background: var(--blue-soft); }.section-tag.yellow { color: #7c6500; background: var(--yellow-soft); }.section-tag.white { color: #fff; background: rgba(255,255,255,.15); }
.primary-btn, .secondary-btn, .outline-btn, .text-btn, .danger-btn { min-height: 42px; padding: 0 17px; border-radius: 10px; border: 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; font-size: 13px; font-weight: 800; transition: .18s; }
.primary-btn { color: #fff; background: var(--purple); box-shadow: 0 8px 18px rgba(91, 92, 226, .18); }.primary-btn:hover { background: #4c4dcc; transform: translateY(-1px); }.primary-btn.light { color: #242937; background: var(--yellow); box-shadow: none; }.primary-btn.large { min-height: 48px; padding: 0 22px; font-size: 14px; }.primary-btn:disabled { background: #a6abb7; box-shadow: none; cursor: not-allowed; transform: none; }
.secondary-btn { color: #444a5a; background: #eef0f5; }.secondary-btn:hover { background: #e3e6ed; }
.outline-btn { border: 1px solid #d7dae3; color: #4f5668; background: #fff; }.outline-btn:hover { border-color: var(--purple); color: var(--purple); }
.text-btn { min-height: 34px; padding: 0 9px; color: var(--purple); background: transparent; }.text-btn:hover { background: var(--purple-soft); }
.danger-btn { min-height: 34px; padding: 0 10px; color: var(--red); background: #fff0f3; }.danger-btn:hover { background: #ffe2e8; }
.user-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.limit-label { padding: 10px 13px; border-radius: 9px; color: #747b8d; background: #eef0f4; font-size: 12px; font-weight: 800; }
.account-rule-card { margin-top: 18px; }.account-rule-card h3 { margin: 10px 0 6px; }.account-rule-card p { margin: 0; color: var(--muted); }.account-rule-card a { color: var(--purple); font-weight: 800; }

.toast { position: fixed; right: 24px; top: 96px; z-index: 50; max-width: min(440px, calc(100vw - 30px)); padding: 13px 16px; border: 1px solid #cbeada; border-radius: 12px; display: flex; gap: 10px; align-items: center; color: #086e59; background: #effbf7; box-shadow: var(--shadow); font-size: 13px; font-weight: 700; }.toast b { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #d4f4e9; }.toast.error { border-color: #f4cbd2; color: #b62f49; background: var(--red-soft); }.toast.warning { border-color: #f0d5aa; color: #a8630e; background: var(--amber-soft); }
.alert { margin: 14px 0; padding: 12px 13px; border: 1px solid #cbeada; border-radius: 10px; color: #086e59; background: #effbf7; font-size: 13px; font-weight: 700; }.alert.error { border-color: #f4cbd2; color: #b62f49; background: var(--red-soft); }
.validation-review { margin-bottom: 20px; border-color: #f1bec8; background: linear-gradient(180deg,#fff 0,#fffafb 100%); }
.validation-review-head { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; gap: 14px; align-items: start; }
.validation-stop-icon { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; color: #fff; background: #d83c59; box-shadow: 0 8px 20px rgba(216,60,89,.2); font-size: 23px; font-weight: 900; }
.section-tag.red { color: #bc2945; background: #fdebf0; }
.validation-review-head h3 { margin: 7px 0 4px; font-size: 20px; }.validation-review-head p { max-width: 780px; color: var(--muted); font-size: 13px; }
.validation-count { padding: 8px 11px; border: 1px solid #f1c4cd; border-radius: 9px; color: #b72b46; background: #fff1f4; white-space: nowrap; font-size: 12px; font-weight: 900; }
.validation-summary { margin: 20px 0 16px; display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; }
.validation-summary > div { min-width: 0; padding: 13px 15px; border-right: 1px solid var(--line); }.validation-summary > div:last-child { border-right: 0; }
.validation-summary span,.validation-summary strong { display: block; }.validation-summary span { margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }.validation-summary strong { overflow: hidden; text-overflow: ellipsis; font-size: 13px; white-space: nowrap; }
.validation-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.validation-table { width: 100%; min-width: 880px; border-collapse: collapse; font-size: 12px; }.validation-table th { padding: 10px 12px; color: #666e80; background: #f5f6f9; text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }.validation-table td { padding: 12px; border-top: 1px solid #eceef3; vertical-align: top; line-height: 1.45; }.validation-table td small { margin-top: 3px; display: block; color: var(--muted); }.validation-table td:nth-child(2),.validation-table td:nth-child(3) { white-space: nowrap; }.validation-type { display: inline-block; padding: 4px 7px; border-radius: 6px; color: #b32944; background: #fff0f3; font-size: 10px; font-weight: 900; }
.validation-limit { margin-top: 8px; color: var(--muted); font-size: 11px; }
.validation-guidance { margin-top: 15px; padding: 14px 16px; border-left: 4px solid #5b5ce2; border-radius: 8px; background: #f5f5ff; }.validation-guidance strong { font-size: 13px; }.validation-guidance ol { margin: 7px 0 0 19px; padding: 0; color: #50576a; font-size: 12px; line-height: 1.65; }
.validation-actions { margin-top: 16px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.validation-actions form { margin-left: auto; }.validation-actions .text-btn { border: 0; background: transparent; cursor: pointer; }

label > span { display: block; margin-bottom: 7px; color: #505768; font-size: 13px; font-weight: 750; }
label small { display: block; margin-top: 6px; color: #8a91a2; font-size: 12px; line-height: 1.4; }
input, select, textarea { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #d9dde6; border-radius: 9px; outline: none; color: var(--ink); background: #fff; font-size: 14px; }
input:focus, select:focus, textarea:focus { border-color: var(--purple); box-shadow: 0 0 0 3px rgba(91, 92, 226, .11); }
.money-input { position: relative; }.money-input i { position: absolute; left: 12px; top: 11px; z-index: 1; color: #697184; font-style: normal; font-weight: 750; }.money-input input { padding-left: 29px; }
.form-grid { display: grid; gap: 17px; }.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }.form-grid.compact { gap: 13px; }
.form-actions { margin-top: 21px; padding-top: 18px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; align-items: center; }.form-actions.split { justify-content: space-between; gap: 20px; }.form-actions.split > span { color: var(--muted); font-size: 13px; }
.page-intro { margin-bottom: 20px; padding: 23px 26px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 25px; }.page-intro h2 { margin: 8px 0 5px; }.page-intro p { margin: 0; font-size: 14px; }
.plain-rule { max-width: 410px; padding: 12px 15px; border-radius: 11px; background: var(--yellow-soft); }.plain-rule b, .plain-rule span { display: block; }.plain-rule b { color: #765e00; font-size: 12px; }.plain-rule span { margin-top: 3px; color: #685f3c; font-size: 12px; }

.empty-state { padding: 50px 25px; border: 1px dashed #cfd4df; border-radius: var(--radius); background: #fff; text-align: center; }.large-empty { min-height: 430px; display: flex; flex-direction: column; align-items: center; justify-content: center; }.empty-icon { width: 60px; height: 60px; margin-bottom: 15px; border-radius: 18px; display: grid; place-items: center; color: var(--purple); background: var(--purple-soft); font-size: 25px; font-weight: 850; }.empty-state h2 { font-size: 1.8rem; }.empty-state p { max-width: 590px; margin: 0 auto 20px; }

/* Setup */
.setup-hero { margin-bottom: 20px; padding: 28px; border-radius: var(--radius); color: #fff; background: linear-gradient(120deg, #343947, #4b5163); display: flex; align-items: center; justify-content: space-between; gap: 30px; }.setup-hero h2 { margin: 10px 0 8px; }.setup-hero p { max-width: 720px; margin: 0; color: #d9dce4; }.setup-progress { display: flex; align-items: center; color: #bcc1cc; font-size: 12px; font-weight: 750; white-space: nowrap; }.setup-progress span { display: flex; align-items: center; gap: 7px; }.setup-progress b { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: #4a4f5c; background: #d9dce3; }.setup-progress .active { color: #fff; }.setup-progress .active b { color: #2e323d; background: var(--yellow); }.setup-progress i { width: 25px; height: 1px; margin: 0 7px; background: rgba(255,255,255,.25); }.setup-progress.compact { color: #70778a; }.setup-progress.compact .active { color: var(--purple); }.setup-progress.compact b { color: #656d80; background: #ebedf2; }.setup-progress.compact .active b { color: #fff; background: var(--purple); }.setup-progress.compact i { background: #d8dbe3; }
.setup-form, .close-form { display: grid; gap: 20px; }.setup-section, .upload-section, .srm-section, .closing-section { position: relative; padding-left: 72px; }.section-number { position: absolute; left: 24px; top: 23px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--purple); background: var(--purple-soft); font-weight: 900; }.required-note, .last-closed { padding: 7px 10px; border-radius: 8px; color: #6f7687; background: #f2f4f7; font-size: 12px; font-weight: 700; }.setup-section .form-grid, .srm-section .form-grid { margin-top: 22px; }
.baseline-grid { margin-top: 20px; display: grid; grid-template-columns: 1.05fr .95fr; gap: 24px; }.drop-zone { min-height: 160px; margin-top: 15px; padding: 20px; border: 2px dashed #c7ccd8; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: #fafbfe; cursor: pointer; }.drop-zone:hover { border-color: var(--purple); background: #f8f8ff; }.drop-zone input { display: none; }.upload-icon { width: 42px; height: 42px; margin-bottom: 8px; border-radius: 12px; display: grid; place-items: center; color: var(--purple); background: var(--purple-soft); font-size: 22px; font-weight: 800; }.drop-zone strong { font-size: 14px; }.drop-zone small { margin-top: 4px; color: var(--muted); font-size: 12px; }.drop-zone em { margin-top: 8px; color: var(--purple); font-size: 12px; font-style: normal; font-weight: 800; }.drop-zone.roomy { min-height: 190px; }
.calculation-note { padding: 15px; border-radius: 11px; background: var(--blue-soft); align-self: end; }.calculation-note b { color: #087aa9; font-size: 13px; }.calculation-note p { margin: 4px 0 0; font-size: 12px; line-height: 1.5; }
.sticky-submit { position: sticky; bottom: 14px; z-index: 10; padding: 15px 18px; border: 1px solid #daddE6; border-radius: 14px; background: rgba(255,255,255,.95); box-shadow: 0 15px 45px rgba(35,41,60,.14); display: flex; align-items: center; justify-content: space-between; gap: 20px; backdrop-filter: blur(12px); }.sticky-submit strong, .sticky-submit span { display: block; }.sticky-submit strong { font-size: 14px; }.sticky-submit span { color: var(--muted); font-size: 12px; }

/* Dashboard */
.status-hero { min-height: 250px; padding: 34px; border-radius: 22px; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 30px; overflow: hidden; position: relative; background: linear-gradient(125deg, #4a4dc7, #6d62e9); }.status-hero::after { content: ""; position: absolute; width: 380px; height: 380px; right: -150px; top: -210px; border: 70px solid rgba(255,255,255,.07); border-radius: 50%; }.status-hero.tone-good { background: linear-gradient(125deg, #087b67, #10a27f); }.status-hero.tone-caution { background: linear-gradient(125deg, #5a4fc4, #745fdf); }.status-hero.tone-danger { background: linear-gradient(125deg, #a9475b, #d95d73); }.status-copy { max-width: 760px; position: relative; z-index: 1; }.status-copy h2 { margin: 12px 0 10px; font-size: clamp(2rem, 3vw, 3rem); }.status-copy p { max-width: 710px; margin: 0; color: rgba(255,255,255,.84); font-size: 15px; line-height: 1.65; }.hero-actions { margin-top: 22px; display: flex; align-items: center; gap: 16px; }.text-link-light { color: #fff; font-size: 13px; font-weight: 800; }.text-link-light:hover { text-decoration: underline; }
.health-score { width: 190px; min-height: 170px; padding: 20px; border: 1px solid rgba(255,255,255,.18); border-radius: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: rgba(255,255,255,.09); position: relative; z-index: 1; }.health-score strong { font-size: 3.3rem; line-height: 1; }.health-score span { margin-top: 8px; font-size: 13px; font-weight: 800; }.health-score small { margin-top: 6px; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.35; }
.kpi-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }.kpi-card { min-height: 136px; padding: 20px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; display: flex; align-items: center; gap: 15px; box-shadow: 0 4px 14px rgba(36,42,63,.035); }.kpi-icon { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 14px; display: grid; place-items: center; background: var(--purple-soft); }.kpi-card.green .kpi-icon { background: var(--green-soft); }.kpi-card.amber .kpi-icon { background: var(--amber-soft); }.kpi-card.blue .kpi-icon { background: var(--blue-soft); }.kpi-card span, .kpi-card strong, .kpi-card small { display: block; }.kpi-card > div:last-child > span { color: var(--muted); font-size: 12px; font-weight: 700; }.kpi-card strong { margin: 4px 0 3px; font-size: 1.4rem; line-height: 1.15; }.kpi-card small { color: #8a91a2; font-size: 11px; line-height: 1.35; }
.mini-icon { width: 22px; height: 22px; position: relative; display: block; }.mini-icon::before, .mini-icon::after { content: ""; position: absolute; }.mini-icon.sales::before { inset: 3px; border: 2px solid var(--purple); border-radius: 4px; }.mini-icon.sales::after { content: "₹"; left: 7px; top: 1px; color: var(--purple); font-weight: 900; }.mini-icon.profit::before { width: 15px; height: 10px; left: 3px; top: 7px; border-left: 2px solid var(--green); border-bottom: 2px solid var(--green); }.mini-icon.profit::after { width: 12px; height: 8px; left: 6px; top: 5px; border-top: 2px solid var(--green); transform: rotate(-28deg); }.mini-icon.supplier::before { inset: 3px 1px; border: 2px solid var(--amber); border-radius: 4px; }.mini-icon.supplier::after { width: 7px; height: 2px; right: 4px; top: 10px; background: var(--amber); }.mini-icon.wallet::before { inset: 4px 1px; border: 2px solid var(--blue); border-radius: 5px; }.mini-icon.wallet::after { width: 7px; height: 6px; right: 1px; top: 8px; border: 2px solid var(--blue); border-radius: 3px; background: #fff; }
.insight-grid { margin-top: 18px; display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.75fr); gap: 18px; }.growth-card, .position-card { min-height: 380px; }.chart-legend { display: flex; gap: 14px; color: var(--muted); font-size: 12px; }.chart-legend span { display: flex; align-items: center; gap: 6px; }.chart-legend i { width: 8px; height: 8px; border-radius: 2px; }.sales-dot { background: var(--purple); }.profit-dot { background: var(--green); }
.bar-chart { height: 270px; margin-top: 24px; padding: 28px 8px 0; border-bottom: 1px solid var(--line); display: flex; align-items: stretch; justify-content: space-around; gap: 10px; background: repeating-linear-gradient(to top, transparent 0, transparent 59px, #eef0f4 60px); }.chart-column { min-width: 58px; flex: 1; display: grid; grid-template-rows: 1fr auto auto; justify-items: center; gap: 2px; }.chart-bars { width: min(58px, 96%); height: 198px; display: flex; align-items: flex-end; justify-content: center; gap: 7px; }.chart-bars span { width: 42%; min-height: 3px; border-radius: 5px 5px 2px 2px; position: relative; transition: .2s; }.chart-bars span b { position: absolute; left: 50%; top: -19px; transform: translateX(-50%); color: #52596a; font-size: 9px; line-height: 1; white-space: nowrap; }.sales-bar { background: linear-gradient(#7778ee, var(--purple)); }.profit-bar { background: linear-gradient(#18b38f, var(--green)); }.profit-bar.negative { background: var(--red); }.chart-column:hover .chart-bars span { filter: brightness(1.08); }.chart-column strong { font-size: 12px; }.chart-column small { color: #9aa0af; font-size: 10px; }.chart-footnote { margin: 12px 0 0; font-size: 12px; }.chart-empty { min-height: 240px; display: grid; place-items: center; color: var(--muted); }.chart-empty.compact { min-height: 150px; }
.latest-position-card { margin: 18px 0; }.supplier-history-card { margin: 18px 0; }.position-snapshot-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }.position-snapshot-grid > div { padding: 14px; border-radius: 11px; background: #f7f8fb; }.position-snapshot-grid span,.position-snapshot-grid strong { display: block; }.position-snapshot-grid span { color: var(--muted); font-size: 11px; }.position-snapshot-grid strong { margin-top: 4px; font-size: 16px; }
.lifetime-card { margin-top: 18px; }.sales-line-dot { background: var(--purple); }.profit-line-dot { background: var(--green); }.lifetime-summary { margin: 20px 0 12px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 11px; }.lifetime-summary > div { padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fafbfc; }.lifetime-summary span,.lifetime-summary strong,.lifetime-summary small { display: block; }.lifetime-summary span { min-height: 31px; color: var(--muted); font-size: 11px; }.lifetime-summary strong { margin-top: 5px; font-size: 18px; }.lifetime-summary small { margin-top: 4px; color: #8b92a2; font-size: 10px; }.lifetime-chart-scroll { overflow-x: auto; overflow-y: hidden; padding-bottom: 4px; }.lifetime-chart { display: block; min-width: 820px; border: 1px solid #edf0f4; border-radius: 13px; background: repeating-linear-gradient(to bottom,#fff 0,#fff 50px,#f4f6f9 51px); }.growth-zero-line { stroke: #aeb4c1; stroke-width: 1; stroke-dasharray: 5 5; }.growth-zero-label,.growth-month { fill: #7f8797; font-size: 11px; font-weight: 700; }.growth-sales-line,.growth-profit-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }.growth-sales-line { stroke: var(--purple); }.growth-profit-line { stroke: var(--green); }.growth-sales-point { fill: #fff; stroke: var(--purple); stroke-width: 3; }.growth-profit-point { fill: #fff; stroke: var(--green); stroke-width: 3; }.growth-sales-value { fill: #4e4fc5; font-size: 10px; font-weight: 850; }.growth-profit-value { fill: #087d67; font-size: 10px; font-weight: 850; }.calculation-disclosure { margin-top: 14px; padding: 14px 16px; border-radius: 11px; background: #f1f4fa; display: grid; grid-template-columns: 165px 1fr; gap: 14px; align-items: start; }.calculation-disclosure strong { font-size: 12px; }.calculation-disclosure span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.position-list { margin: 20px 0; }.position-list > div { padding: 14px 0; border-bottom: 1px solid #eceef3; display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; }.position-list > div:first-child { padding-top: 0; }.position-list span { color: var(--muted); font-size: 13px; }.position-list strong { font-size: 16px; }.position-list small { grid-column: 1/-1; color: #9a9fad; font-size: 11px; }
.plan-preview { margin-top: 18px; }.plan-summary-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }.plan-summary-grid > div { padding: 17px; border-right: 1px solid var(--line); }.plan-summary-grid > div:last-child { border: 0; }.plan-summary-grid span, .plan-summary-grid strong { display: block; }.plan-summary-grid span { color: var(--muted); font-size: 12px; }.plan-summary-grid strong { margin-top: 4px; font-size: 18px; }

/* Daily */
.large-segmented { width: min(620px,100%); padding: 5px; border-radius: 12px; display: grid; grid-template-columns: repeat(2, 1fr); background: #eef0f5; }.segmented button { min-height: 43px; border: 0; border-radius: 9px; color: #6a7183; background: transparent; font-size: 13px; font-weight: 800; cursor: pointer; }.segmented button.active { color: var(--purple); background: #fff; box-shadow: 0 3px 10px rgba(36,42,63,.08); }
.entry-form { margin-top: 24px; }.form-heading { margin-bottom: 18px; }.form-heading h3 { margin-bottom: 4px; }.form-heading p { margin: 0; font-size: 13px; }.records-grid { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.record-list { margin-top: 12px; }.record-row { min-height: 66px; padding: 11px 0; border-bottom: 1px solid #eceef3; display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: center; }.record-row:last-child { border: 0; }.record-date { color: #8a91a2; font-size: 12px; font-weight: 750; }.record-row strong, .record-row small { display: block; }.record-row strong { font-size: 13px; }.record-row small { margin-top: 3px; color: #8a91a2; font-size: 11px; }.record-row > b { font-size: 13px; white-space: nowrap; }.money-out { color: var(--red); }.money-in { color: var(--green); }.money-neutral { color: #6a7183; }.list-empty { min-height: 130px; display: grid; place-items: center; color: #8a91a2; font-size: 13px; }
.correction-centre { margin-top: 18px; }.correction-head { gap: 20px; }.month-filter { display: flex; align-items: end; gap: 9px; }.month-filter label { min-width: 170px; }.month-filter label span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; }.correction-warning { margin: 17px 0; padding: 13px 15px; border: 1px solid #f0d6aa; border-radius: 11px; display: flex; align-items: center; gap: 11px; background: #fff9e8; }.correction-warning > b { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 9px; display: grid; place-items: center; color: #a36409; background: #ffedbd; }.correction-warning span > * { display: block; }.correction-warning strong { color: #8b590f; font-size: 12px; }.correction-warning small { margin-top: 2px; color: #866f4e; font-size: 11px; }.correction-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }.correction-panel { min-width: 0; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }.correction-panel > div:first-child { padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #f7f8fb; }.correction-panel h4 { margin: 0; }.correction-panel > div:first-child span { color: var(--muted); font-size: 11px; }.correction-panel td strong,.correction-panel td small,.activity-table td strong,.activity-table td small { display: block; }.correction-panel td small,.activity-table td small { margin-top: 2px; color: var(--muted); font-size: 10px; }.empty-cell { padding: 28px!important; color: var(--muted); text-align: center; }.correction-modal { width: min(720px,100%); }.correction-modal textarea { min-height: 90px; resize: vertical; }.delete-record-form { margin-top: 22px; padding: 15px; border: 1px solid #f0cbd1; border-radius: 11px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; background: #fff5f7; }.delete-record-form label { margin: 0; }.delete-record-form label span { display: block; margin-bottom: 5px; color: #a13c4e; font-size: 11px; font-weight: 800; }

/* Close month */
.info-strip, .calculation-banner { margin-top: 15px; padding: 13px 15px; border-radius: 11px; display: flex; align-items: center; gap: 12px; background: var(--green-soft); }.info-strip > b { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: var(--green); background: #d1f0e7; }.info-strip strong, .info-strip small { display: block; }.info-strip strong { color: #08725d; font-size: 13px; }.info-strip small { margin-top: 2px; color: #4c887a; font-size: 12px; }.closing-section .form-grid { margin-top: 22px; }.calculation-banner { background: var(--blue-soft); }.calc-icon { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; color: #087aa9; background: #d4eef8; font-size: 12px; font-weight: 900; }.calculation-banner strong { font-size: 13px; }.calculation-banner p { margin: 2px 0 0; font-size: 12px; }
.srm-source-banner { margin-top: 18px; padding: 14px 15px; border: 1px solid #bde5d9; border-radius: 12px; display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 12px; background: #f1fbf8; }.srm-source-banner strong { color: #08715c; font-size: 13px; }.srm-source-banner p { margin: 3px 0 0; color: #507e72; font-size: 12px; }.srm-source-banner.missing { border-color: #f0d2a0; background: #fff9e8; }.srm-source-banner.missing strong { color: #9a620e; }.srm-source-banner.missing p { color: #8d754f; }

/* Budget */
.budget-hero { min-height: 190px; margin-bottom: 18px; padding: 30px 34px; border-radius: 22px; display: flex; align-items: center; justify-content: space-between; gap: 30px; color: #fff; background: linear-gradient(125deg,#343947,#535a6d); }.budget-hero h2 { margin: 11px 0 8px; }.budget-hero p { max-width: 800px; margin: 0; color: #d9dce5; }.budget-hero-metric { min-width: 190px; padding: 15px 18px; border-left: 1px solid rgba(255,255,255,.16); text-align: center; }.budget-hero-metric span, .budget-hero-metric strong, .budget-hero-metric em { display: block; }.budget-hero-metric span { color: #cdd1da; font-size: 12px; }.budget-hero-metric strong { margin: 4px 0; font-size: 2.6rem; line-height: 1; }.budget-hero-metric strong small { font-size: 15px; }.budget-hero-metric em { color: #b9bfca; font-size: 11px; font-style: normal; }
.choose-plan, .allocation-section { margin-bottom: 18px; }.plan-cards { margin-top: 20px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }.plan-card { min-height: 245px; padding: 19px; border: 1px solid #dfe2e9; border-radius: 16px; background: #fff; display: flex; flex-direction: column; position: relative; transition: .18s; }.plan-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }.plan-card.selected { border: 2px solid var(--purple); padding: 18px; background: #fbfbff; box-shadow: 0 10px 28px rgba(91,92,226,.12); }.recommended-label { position: absolute; right: 12px; top: -10px; padding: 5px 8px; border-radius: 6px; color: #655100; background: var(--yellow); font-size: 10px; font-weight: 900; }.plan-symbol { width: 42px; height: 42px; margin-bottom: 14px; border-radius: 12px; background: var(--green-soft); position: relative; }.plan-symbol::before, .plan-symbol::after { content: ""; position: absolute; }.plan-symbol.shield::before { width: 18px; height: 21px; left: 12px; top: 9px; border: 2px solid var(--green); border-radius: 10px 10px 12px 12px; }.plan-symbol.shield::after { width: 7px; height: 4px; left: 18px; top: 16px; border-left: 2px solid var(--green); border-bottom: 2px solid var(--green); transform: rotate(-45deg); }.plan-symbol.balance { background: var(--purple-soft); }.plan-symbol.balance::before { left: 8px; right: 8px; top: 20px; border-top: 2px solid var(--purple); }.plan-symbol.balance::after { width: 2px; height: 22px; left: 20px; top: 9px; background: var(--purple); box-shadow: -9px 8px 0 -0.2px var(--purple), 9px 8px 0 -0.2px var(--purple); }.plan-symbol.growth { background: var(--amber-soft); }.plan-symbol.growth::before { width: 21px; height: 13px; left: 9px; top: 14px; border-left: 2px solid var(--amber); border-bottom: 2px solid var(--amber); transform: skewY(-28deg); }.plan-symbol.growth::after { width: 8px; height: 8px; right: 8px; top: 7px; border-top: 2px solid var(--amber); border-right: 2px solid var(--amber); }.plan-symbol.custom { background: #eef1f5; }.plan-symbol.custom::before { width: 24px; height: 2px; left: 9px; top: 13px; background: #657085; box-shadow: 0 8px 0 #657085, 0 16px 0 #657085; }.plan-symbol.custom::after { width: 6px; height: 6px; border: 2px solid #657085; border-radius: 50%; left: 13px; top: 9px; background: #eef1f5; box-shadow: 10px 8px 0 0 #eef1f5, 10px 8px 0 2px #657085, 2px 16px 0 0 #eef1f5, 2px 16px 0 2px #657085; }
.plan-card > div > strong { font-size: 18px; }.plan-card p { min-height: 46px; margin: 4px 0 13px; font-size: 12px; line-height: 1.5; }.plan-card dl { margin: auto 0 13px; }.plan-card dl > div { padding: 5px 0; display: flex; justify-content: space-between; gap: 10px; }.plan-card dt { color: var(--muted); font-size: 11px; }.plan-card dd { margin: 0; font-size: 12px; font-weight: 800; }.plan-health { align-self: flex-start; padding: 5px 8px; border-radius: 6px; color: var(--green); background: var(--green-soft); font-size: 10px; font-style: normal; font-weight: 900; letter-spacing: .04em; }.plan-health.caution { color: #a8630e; background: var(--amber-soft); }.plan-health.high-risk { color: var(--red); background: var(--red-soft); }.plan-health.custom { color: #586174; background: #eef1f5; }
.remaining-box { text-align: right; }.remaining-box span, .remaining-box strong { display: block; }.remaining-box span { color: var(--muted); font-size: 12px; }.remaining-box strong { margin-top: 2px; font-size: 1.3rem; }.allocation-bar { height: 26px; margin: 22px 0 17px; border-radius: 9px; overflow: hidden; display: flex; gap: 2px; background: #eceef3; }.allocation-bar span { min-width: 2px; transition: width .18s ease; }.allocation-legend { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px 20px; }.allocation-legend > div { display: grid; grid-template-columns: 9px 1fr auto; gap: 7px; align-items: center; }.allocation-legend i { width: 8px; height: 8px; border-radius: 3px; }.allocation-legend span { color: #697184; font-size: 12px; }.allocation-legend strong { font-size: 12px; }.credit-strip { margin-top: 18px; padding: 14px 16px; border-radius: 12px; display: flex; align-items: center; justify-content: space-between; gap: 15px; background: var(--blue-soft); }.credit-strip > div { display: flex; align-items: center; gap: 11px; }.credit-icon { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--blue); background: #d1edf8; font-size: 20px; font-weight: 800; }.credit-strip strong, .credit-strip small { display: block; }.credit-strip strong { color: #087aa9; font-size: 13px; }.credit-strip small { margin-top: 2px; color: #4e879f; font-size: 11px; }.credit-strip > b { color: #087aa9; font-size: 18px; }
.custom-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(340px,.75fr); gap: 18px; align-items: start; }.builder-list { margin-top: 18px; }.builder-row { padding: 15px 0; border-bottom: 1px solid #eceef3; display: grid; grid-template-columns: minmax(270px,.9fr) minmax(320px,1.1fr); gap: 22px; align-items: center; }.builder-row:last-child { border: 0; }.builder-label { display: flex; gap: 11px; align-items: flex-start; }.builder-label > i { width: 10px; height: 10px; margin-top: 5px; border-radius: 3px; flex: 0 0 10px; }.builder-label strong, .builder-label small { display: block; }.builder-label strong { font-size: 13px; }.builder-label small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.45; }.builder-control { display: grid; grid-template-columns: 1fr 128px; gap: 15px; align-items: center; }.builder-control input[type="range"] { min-height: auto; height: 6px; padding: 0; border: 0; border-radius: 4px; accent-color: var(--purple); box-shadow: none; }.budget-money { position: relative; }.budget-money b { position: absolute; left: 10px; top: 10px; z-index: 1; color: #707789; }.budget-money input { padding-left: 27px; text-align: right; font-weight: 800; }.credit-builder { margin-top: 3px; padding: 16px 14px; border: 0; border-radius: 12px; background: var(--blue-soft); }.credit-builder .builder-label > i { border-radius: 50%; background: var(--blue); }
.impact-card { position: sticky; top: 100px; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: #fff; box-shadow: var(--shadow); }.impact-head { padding: 22px; color: #fff; background: linear-gradient(125deg,#078269,#0baa83); }.impact-card.caution .impact-head { background: linear-gradient(125deg,#c77c18,#e89c32); }.impact-card.high-risk .impact-head { background: linear-gradient(125deg,#bd3850,#df5b70); }.impact-head > span { font-size: 11px; font-weight: 900; letter-spacing: .1em; opacity: .85; }.impact-head strong { display: block; margin: 5px 0 3px; font-size: 1.7rem; }.impact-head p { margin: 0; color: rgba(255,255,255,.82); font-size: 12px; }.impact-metrics { padding: 10px 19px; display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }.impact-metrics > div { padding: 12px 0; border-bottom: 1px solid #eceef3; }.impact-metrics span, .impact-metrics strong { display: block; }.impact-metrics span { color: var(--muted); font-size: 11px; }.impact-metrics strong { margin-top: 3px; font-size: 14px; }.consequences { padding: 15px 19px 8px; }.consequences h4 { margin-bottom: 9px; font-size: 13px; }.consequences p { margin: 7px 0; display: flex; gap: 8px; color: #626a7c; font-size: 11px; line-height: 1.45; }.consequences p b { width: 19px; height: 19px; flex: 0 0 19px; border-radius: 50%; display: grid; place-items: center; color: #a8630e; background: var(--amber-soft); font-size: 10px; }.consequences p.good b { color: var(--green); background: var(--green-soft); }.best-move { margin: 8px 15px 15px; padding: 12px 13px; border-radius: 10px; background: #f2f4f8; }.best-move strong { font-size: 12px; }.best-move p { margin: 3px 0 0; font-size: 11px; line-height: 1.45; }
.approval-section { margin-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }.approval-section h3 { margin: 8px 0 4px; }.approval-section p { margin: 0; font-size: 12px; }.approval-actions { display: flex; align-items: center; gap: 11px; }
.suggestion-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(310px,.55fr); gap: 18px; }.suggestion-list { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.suggestion-list > div { padding: 14px; border: 1px solid #eceef3; border-radius: 12px; display: flex; gap: 11px; background: #fafbfc; }.suggestion-list p { margin: 0; color: #687083; font-size: 12px; line-height: 1.5; }.suggestion-list p strong { display: block; margin-bottom: 3px; color: var(--ink); font-size: 13px; }.suggest-icon { width: 34px; height: 34px; border-radius: 10px; flex: 0 0 34px; background: var(--green-soft); position: relative; }.suggest-icon::after { content: "✓"; position: absolute; inset: 0; display: grid; place-items: center; color: var(--green); font-weight: 900; }.suggest-icon.stock { background: var(--purple-soft); }.suggest-icon.stock::after { content: "₹"; color: var(--purple); }.suggest-icon.reserve { background: var(--blue-soft); }.suggest-icon.reserve::after { content: "▣"; color: var(--blue); }.suggest-icon.owner { background: var(--amber-soft); }.suggest-icon.owner::after { content: "!"; color: var(--amber); }
.plan-result-card h3 { margin-top: 10px; font-size: 1.6rem; }.result-health { margin: 15px 0; padding: 12px; border-radius: 10px; display: flex; gap: 8px; align-items: center; color: var(--green); background: var(--green-soft); }.result-health i { width: 9px; height: 9px; border-radius: 50%; background: currentColor; }.result-health.caution { color: var(--amber); background: var(--amber-soft); }.result-health.high-risk { color: var(--red); background: var(--red-soft); }.plan-result-card dl { margin: 0 0 17px; }.plan-result-card dl > div { padding: 10px 0; border-bottom: 1px solid #eceef3; display: flex; justify-content: space-between; }.plan-result-card dt { color: var(--muted); font-size: 12px; }.plan-result-card dd { margin: 0; font-size: 13px; font-weight: 800; }.stack-actions { display: grid; gap: 9px; }

/* Users */
.account-meter { margin-bottom: 18px; padding: 14px 16px; border-radius: 12px; display: grid; grid-template-columns: 1fr minmax(180px,380px); align-items: center; gap: 20px; background: #f5f6f9; }.account-meter strong, .account-meter span { display: block; }.account-meter strong { font-size: 14px; }.account-meter span { margin-top: 2px; color: var(--muted); font-size: 11px; }.account-meter > div:last-child { height: 8px; border-radius: 6px; overflow: hidden; background: #dfe2e9; }.account-meter i { display: block; height: 100%; border-radius: 6px; background: var(--purple); }
.activity-log-card { margin-top: 18px; }.activity-table table { min-width: 1050px; }.audit-action { padding: 5px 8px; border-radius: 7px; color: #586174; background: #eef0f4; font-size: 10px; font-weight: 850; white-space: nowrap; }.audit-action.update { color: #765f00; background: #fff5c8; }.audit-action.delete { color: #b7354d; background: #fff0f3; }.audit-action.login,.audit-action.create,.audit-action.approve,.audit-action.close { color: #08725d; background: #e7f8f2; }.activity-detail { max-width: 300px; color: #596174; line-height: 1.4; }
.table-wrap { width: 100%; overflow-x: auto; }table { width: 100%; border-collapse: collapse; }th { padding: 12px; color: #747b8d; background: #f6f7fa; text-align: left; font-size: 11px; font-weight: 800; white-space: nowrap; }td { padding: 13px 12px; border-bottom: 1px solid #eceef3; font-size: 13px; vertical-align: middle; }.user-cell { min-width: 210px; display: flex; align-items: center; gap: 10px; }.user-cell > span { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: var(--purple); background: var(--purple-soft); font-weight: 850; }.user-cell strong, .user-cell small { display: block; }.user-cell small { margin-top: 2px; color: #8a91a2; font-size: 11px; }.role-badge { padding: 5px 8px; border-radius: 7px; color: #687083; background: #eef0f4; font-size: 11px; }.role-badge.admin { color: var(--purple); background: var(--purple-soft); }.switch { margin: 0; display: inline-block; }.switch input { display: none; }.switch span { width: 36px; height: 20px; margin: 0; border-radius: 12px; display: block; background: #d9dde5; position: relative; cursor: pointer; }.switch span::after { content: ""; position: absolute; width: 16px; height: 16px; left: 2px; top: 2px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.2); transition: .15s; }.switch input:checked + span { background: var(--purple); }.switch input:checked + span::after { left: 18px; }.switch input:disabled + span { opacity: .6; cursor: default; }.protected-label { color: var(--green); font-size: 11px; font-weight: 800; }.admin-grid { margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.commitment-list { margin-top: 15px; }.commitment-list > div { padding: 12px 0; border-bottom: 1px solid #eceef3; display: flex; align-items: center; justify-content: space-between; gap: 15px; }.commitment-list strong, .commitment-list small { display: block; }.commitment-list strong { font-size: 13px; }.commitment-list small { margin-top: 2px; color: var(--muted); font-size: 11px; }.commitment-list > div > b { font-size: 13px; }
.modal { display: none; position: fixed; inset: 0; z-index: 80; padding: 20px; background: rgba(23,27,39,.62); place-items: center; }.modal.open { display: grid; }.modal-card { width: min(600px,100%); max-height: calc(100vh - 40px); overflow: auto; padding: 28px; border-radius: 18px; background: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.3); position: relative; }.modal-card h2 { margin: 10px 0 5px; }.modal-card > p { margin-bottom: 20px; font-size: 13px; }.modal-close { position: absolute; right: 14px; top: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #eef0f4; cursor: pointer; font-size: 20px; }.permission-field { margin: 0; padding: 13px; border: 1px solid var(--line); border-radius: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.permission-field legend { padding: 0 6px; font-size: 12px; font-weight: 800; }.permission-field label { display: flex; align-items: center; gap: 7px; font-size: 12px; }.permission-field input { width: auto; min-height: auto; }

/* Login and installer */
.login-body, .install-body { min-height: 100vh; background: #f0f2f6; }.login-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(420px,.85fr); }.login-visual { min-height: 100vh; padding: 42px 7vw; color: #fff; background: linear-gradient(135deg,#292d38,#434959 55%,#555d71); display: flex; flex-direction: column; position: relative; overflow: hidden; }.login-visual::after { content: ""; position: absolute; width: 620px; height: 620px; right: -300px; bottom: -300px; border: 100px solid rgba(255,212,59,.08); border-radius: 50%; }.brand-light span { color: #c9ced8; }.login-copy { margin: auto 0; max-width: 680px; position: relative; z-index: 1; }.eyebrow-light { color: var(--yellow); font-size: 12px; font-weight: 900; letter-spacing: .12em; }.login-copy h1 { max-width: 650px; margin: 14px 0 18px; font-size: clamp(2.8rem,5vw,4.6rem); line-height: 1.03; letter-spacing: -.045em; }.login-copy > p { max-width: 600px; color: #d6dae3; font-size: 16px; line-height: 1.7; }.login-points { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }.login-points span { padding: 10px 13px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; color: #e2e5ec; background: rgba(255,255,255,.05); font-size: 12px; }.login-points b { color: var(--yellow); margin-right: 5px; }.login-panel { padding: 34px; display: grid; place-items: center; background: #fff; }.login-card { width: min(390px,100%); }.login-card h2 { margin: 11px 0 5px; font-size: 2rem; }.login-card > p { margin-bottom: 24px; }.login-card label { display: block; margin-bottom: 14px; }.login-card input { min-height: 48px; }.login-help { display: block; margin-top: 14px; color: #8a91a2; text-align: center; font-size: 12px; }
.install-card { width: min(820px, calc(100% - 30px)); margin: 35px auto; padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: var(--shadow); }.install-brand { margin-bottom: 22px; }.install-card h1 { margin: 10px 0 6px; }.install-form { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.install-form hr { grid-column: 1/-1; width: 100%; border: 0; border-top: 1px solid var(--line); }.install-form .wide { grid-column: 1/-1; }

@media (max-width: 1180px) {
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .form-grid.four { grid-template-columns: 1fr 1fr; }
  .plan-cards { grid-template-columns: 1fr 1fr; }
  .allocation-legend { grid-template-columns: 1fr 1fr; }
  .custom-layout { grid-template-columns: 1fr; }
  .impact-card { position: static; }
  .profile-chip { min-width: 45px; }.profile-chip div { display: none; }
  .lifetime-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .position-snapshot-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .sidebar { transform: translateX(-100%); transition: .2s; box-shadow: 15px 0 40px rgba(20,24,35,.2); }
  .nav-open .sidebar { transform: translateX(0); }
  .nav-open::after { content: ""; position: fixed; inset: 0; z-index: 18; background: rgba(20,24,35,.45); }
  .main-area { width: 100%; margin-left: 0; }
  .mobile-menu { display: block; }
  .page-content { padding: 22px 18px 40px; }
  .insight-grid, .baseline-grid, .records-grid, .suggestion-layout, .admin-grid, .correction-grid { grid-template-columns: 1fr; }
  .setup-hero, .budget-hero, .page-intro { align-items: flex-start; flex-direction: column; }
  .budget-hero-metric { width: 100%; border-left: 0; border-top: 1px solid rgba(255,255,255,.16); }
  .form-grid.three { grid-template-columns: 1fr 1fr; }
  .builder-row { grid-template-columns: 1fr; gap: 12px; }
  .lifetime-summary { grid-template-columns: 1fr 1fr; }
  .validation-summary { grid-template-columns: 1fr 1fr; }.validation-summary > div:nth-child(2) { border-right: 0; }.validation-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 640px) {
  html { font-size: 15px; }
  .topbar { min-height: 70px; padding: 10px 13px; }.topbar-title span, .data-status, .profile-chip { display: none; }.topbar-title h1 { font-size: 1.05rem; }
  .section-card { padding: 19px; }.setup-section, .upload-section, .srm-section, .closing-section { padding: 65px 18px 19px; }.section-number { left: 18px; top: 18px; }
  .kpi-grid, .plan-cards, .allocation-legend, .suggestion-list, .form-grid.two, .form-grid.three, .form-grid.four, .plan-summary-grid, .impact-metrics { grid-template-columns: 1fr; }
  .span-two { grid-column: span 1; }
  .kpi-card { min-height: 116px; }
  .status-hero { padding: 24px; flex-direction: column; align-items: stretch; }.health-score { width: 100%; min-height: 130px; }
  .setup-progress { width: 100%; overflow-x: auto; padding-bottom: 4px; }.setup-progress i { width: 15px; }
  .section-head, .form-actions.split, .approval-section, .sticky-submit { align-items: flex-start; flex-direction: column; }.sticky-submit button, .form-actions button, .approval-actions { width: 100%; }.approval-actions { display: grid; }
  .srm-source-banner { grid-template-columns: 40px 1fr; }.srm-source-banner .outline-btn { grid-column: 1/-1; width: 100%; text-align: center; }
  .builder-control { grid-template-columns: 1fr; }.budget-money { width: 100%; }
  .credit-strip { align-items: flex-start; flex-direction: column; }
  .account-meter { grid-template-columns: 1fr; }
  .month-filter { width: 100%; align-items: stretch; flex-direction: column; }.month-filter label { min-width: 0; }.delete-record-form { grid-template-columns: 1fr; }
  .login-layout { display: block; }.login-visual { display: none; }.login-panel { min-height: 100vh; padding: 25px; }
  .install-form { grid-template-columns: 1fr; }.install-form .wide, .install-form hr { grid-column: span 1; }
  .permission-field { grid-template-columns: 1fr; }
  .large-segmented, .lifetime-summary, .position-snapshot-grid { grid-template-columns: 1fr; }
  .calculation-disclosure { grid-template-columns: 1fr; }
  .validation-review-head { grid-template-columns: 42px 1fr; }.validation-count { grid-column: 1/-1; justify-self: start; }.validation-summary { grid-template-columns: 1fr; }.validation-summary > div { border-right: 0; border-bottom: 1px solid var(--line); }.validation-summary > div:last-child { border-bottom: 0; }.validation-actions { align-items: stretch; flex-direction: column; }.validation-actions a,.validation-actions form,.validation-actions button { width: 100%; margin: 0; text-align: center; }
}
