:root{--ocd-accent: var(--ocd-tweak-accent-color, #D96A3D);--ui-density: var(--ocd-tweak-density, 1);--ui-radius-scale: var(--ocd-tweak-radius-scale, 1);--bg: #F4EFE7;--surface: #FFF9F2;--surface-2: #FFFDF8;--text: #171A23;--muted: #647084;--border: rgba(24, 28, 40, .12);--radius-sm: calc(.9rem * var(--ui-radius-scale));--radius-md: calc(1.1rem * var(--ui-radius-scale));--radius-lg: calc(1.4rem * var(--ui-radius-scale));--shadow: 0 16px 40px rgba(23, 26, 35, .06);--sidebar-width: 18rem;--success: #147A5B;--warning: #C57F00;--danger: #BC3C2C}.app-root[data-theme=dark]{--bg: #10141B;--surface: #161C25;--surface-2: #1D2430;--text: #F5F7FA;--muted: #B6C0CC;--border: rgba(255, 255, 255, .08);--shadow: 0 18px 42px rgba(0, 0, 0, .32)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--text);font-family:DM Sans,Segoe UI,sans-serif;background:var(--bg)}button,input,select,textarea{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}button:disabled:hover,button:disabled:active{transform:none}input,select{width:100%;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.9rem 1rem;outline:none}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid color-mix(in oklch,var(--ocd-accent) 68%,white);outline-offset:2px}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;letter-spacing:-.03em}.app-root{min-height:100vh;background:radial-gradient(circle at top right,rgba(217,106,61,.1),transparent 30%),radial-gradient(circle at 20% 0%,rgba(38,75,138,.08),transparent 28%),var(--bg);color:var(--text)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);gap:calc(1rem * var(--ui-density));max-width:1600px;margin:0 auto;padding:calc(1.25rem * var(--ui-density))}.sidebar,.panel,.modal-card,.kpi-card,.detail-card,.budget-row,.transaction-row,.sidebar-card,.telegram-card,.empty-state,.system-banner,.loading-state__hero,.loading-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.sidebar{position:sticky;top:1.25rem;align-self:start;padding:1.1rem;display:grid;gap:1rem;min-height:calc(100vh - 2.5rem)}.brand-block{display:flex;gap:.9rem;align-items:center}.brand-block__mark{width:3rem;height:3rem;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,color-mix(in oklch,var(--ocd-accent) 86%,white),#7b6cff);color:#fff;font-weight:800;letter-spacing:.04em}.eyebrow{margin:0 0 .2rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:var(--muted)}.brand-block h1,.app-header h2,.panel h2,.modal-card h3,.detail-card h3,.empty-state h3,.chart-shell__title h3{margin:0;font-size:clamp(1.05rem,1.02rem + .5vw,1.35rem);line-height:1.15}.sidebar-nav{display:grid;gap:.5rem}.sidebar-nav button,.mobile-nav button,.segmented-control button,.button,.transaction-row,.legend-item{transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,opacity .16s ease}.sidebar-nav button,.mobile-nav button,.segmented-control button{padding:.95rem 1rem;border-radius:999px;border:1px solid transparent;background:transparent;text-align:left}.sidebar-nav button:hover:not(:disabled),.mobile-nav button:hover:not(:disabled),.segmented-control button:hover:not(:disabled),.button:hover:not(:disabled),.transaction-row:hover,.legend-item:hover{transform:translateY(-1px)}.sidebar-nav button:hover:not(:disabled),.mobile-nav button:hover:not(:disabled),.segmented-control button:hover:not(:disabled){background:color-mix(in oklch,var(--ocd-accent) 8%,var(--surface));border-color:color-mix(in oklch,var(--ocd-accent) 20%,var(--border))}.sidebar-nav button:active:not(:disabled),.mobile-nav button:active:not(:disabled),.segmented-control button:active:not(:disabled),.button:active:not(:disabled),.transaction-row:active,.legend-item:active{transform:translateY(0)}.sidebar-nav button.is-active,.mobile-nav button.is-active,.segmented-control button.is-active{background:color-mix(in oklch,var(--ocd-accent) 14%,var(--surface));border-color:color-mix(in oklch,var(--ocd-accent) 30%,var(--border));color:var(--text);box-shadow:0 10px 25px #d96a3d1a}.sidebar-card{margin-top:auto;padding:1rem;display:grid;gap:.3rem}.sidebar-card span,.app-header__subcopy,.kpi-card__helper,.empty-state p,.detail-card__grid dt,.detail-card__grid dd,.budget-row small,.stats-notes span,.telegram-card p,.panel__note,.transaction-row__meta,.chart-shell__footer span,.system-banner p,.loading-state p{color:var(--muted)}.app-main{min-width:0;display:grid;gap:1rem}.app-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:.25rem .15rem}.app-header__meta{display:flex;gap:.5rem;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;justify-content:center;min-height:2.1rem;padding:0 .85rem;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.system-banner{padding:1rem 1.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.system-banner strong{display:block;margin-bottom:.2rem}.system-banner--error{border-color:#bc3c2c47}.system-banner--offline{border-color:#177a5b33}.loading-state{display:grid;gap:1rem}.loading-state__hero,.loading-card{padding:1rem;display:grid;gap:.65rem}.loading-grid{display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}.loading-grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton{border-radius:999px;background:linear-gradient(90deg,#6470841a,#6470842e,#6470841a)}.skeleton--eyebrow{width:5.5rem;height:.7rem}.skeleton--title{width:min(20rem,100%);height:1.25rem;border-radius:14px}.skeleton--copy{width:100%;height:.9rem}.skeleton--short{width:70%}.content-shell,.page-stack,.summary-grid,.dashboard-grid,.transactions-layout,.settings-grid{display:grid;gap:1rem}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid--charts,.dashboard-grid--stats,.dashboard-grid--settings,.transactions-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.modal-card,.kpi-card,.detail-card,.budget-row,.transaction-row,.empty-state,.telegram-card{padding:1rem}.panel{display:grid;gap:1rem}.panel__header,.detail-card__header,.budget-row__topline,.transaction-row__topline,.modal-card__header,.chart-shell__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.summary-grid .kpi-card{display:grid;gap:.45rem}.kpi-card__label{color:var(--muted);font-size:.9rem}.kpi-card__value{font-size:clamp(1.3rem,1rem + 1.1vw,2rem);font-weight:800;letter-spacing:-.03em}.kpi-card__value.is-negative,.is-expense{color:#bc3c2c}.is-income{color:#147a5b}.filters-bar,.form-grid{display:grid;gap:.85rem;grid-template-columns:repeat(5,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;gap:.35rem}.field span{color:var(--muted);font-size:.9rem}.field--search{grid-column:span 2}.field--full{grid-column:1 / -1}.transaction-list{display:grid;gap:.65rem}.transaction-row{display:flex;align-items:center;gap:.9rem;width:100%;text-align:left}.transaction-row:hover,.legend-item:hover{border-color:color-mix(in oklch,var(--ocd-accent) 22%,var(--border));background:var(--surface-2)}.transaction-row.is-selected,.budget-row.is-warning{border-color:color-mix(in oklch,var(--ocd-accent) 36%,var(--border))}.transaction-row__icon,.detail-card__icon{width:2.6rem;height:2.6rem;border-radius:14px;display:grid;place-items:center;background:color-mix(in oklch,var(--ocd-accent) 10%,var(--surface));flex:0 0 auto}.transaction-row__body{min-width:0;flex:1;display:grid;gap:.35rem}.transaction-row__meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.85rem}.transaction-row__topline strong{display:block;font-size:.98rem}.transaction-row__amount{font-weight:700;white-space:nowrap}.detail-card{display:grid;gap:1rem}.detail-card__header p{margin:.15rem 0 0;color:var(--muted)}.detail-card__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:0}.detail-card__grid div{padding:.85rem;border-radius:18px;background:var(--surface-2);border:1px solid var(--border)}.detail-card__grid dt{font-size:.82rem;margin-bottom:.25rem}.detail-card__grid dd{margin:0;font-weight:700}.detail-card__actions,.modal-card__actions{display:flex;gap:.75rem;flex-wrap:wrap}.button{min-height:2.75rem;padding:.7rem 1rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);box-shadow:none;text-align:center}.button--primary{background:var(--ocd-accent);border-color:var(--ocd-accent);color:#fff;box-shadow:0 16px 28px #d96a3d2e}.button--ghost{background:transparent}.budget-list{display:grid;gap:.85rem}.budget-row{display:grid;gap:.6rem}.budget-row__track{height:.7rem;border-radius:999px;background:color-mix(in oklch,var(--surface-2) 82%,var(--border));overflow:hidden}.budget-row__fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ocd-accent),#7B6CFF)}.budget-row__badge{min-width:3rem;padding:.35rem .55rem;border-radius:999px;text-align:center;background:var(--surface-2);border:1px solid var(--border);font-weight:700}.budget-row.is-danger{border-color:#bc3c2c59}.chart-shell{display:grid;gap:1rem}.chart-shell--donut{grid-template-columns:minmax(0,1fr);justify-items:center}.chart-shell__title,.chart-shell__footer{width:100%}.donut-chart{width:min(100%,20rem);height:auto;overflow:visible}.donut-chart__track{fill:none;stroke:var(--border);stroke-width:34}.donut-chart__segment{fill:none;opacity:.78;transition:opacity .16s ease,transform .16s ease;transform-origin:center}.donut-chart__segment.is-active{opacity:1}.donut-chart__center{margin-top:-8.5rem;width:10rem;height:10rem;border-radius:50%;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);display:grid;place-items:center;text-align:center;padding:1rem}.donut-chart__center strong{font-size:1.15rem}.donut-chart__center span{color:var(--muted)}.legend-list{width:100%;display:grid;gap:.55rem}.legend-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.8rem .9rem;border-radius:18px;background:var(--surface-2);border:1px solid var(--border)}.legend-item.is-active{border-color:color-mix(in oklch,var(--ocd-accent) 36%,var(--border))}.legend-item__swatch{width:.8rem;height:.8rem;border-radius:999px}.legend-item__label{text-align:left}.legend-item__value{color:var(--muted)}.line-chart{width:100%;height:auto}.line-chart__label{font-size:11px;fill:var(--muted)}.stats-notes{display:grid;gap:.85rem}.stats-notes article{padding:.95rem;border-radius:18px;background:var(--surface-2);border:1px solid var(--border);display:grid;gap:.2rem}.stats-notes strong{font-size:1.1rem}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-chip-grid{display:flex;flex-wrap:wrap;gap:.6rem}.category-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.65rem .8rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}.telegram-card{display:grid;gap:.75rem}.empty-state{display:grid;gap:.75rem;justify-items:start}.empty-state__icon{width:2.7rem;height:2.7rem;border-radius:14px;background:color-mix(in oklch,var(--ocd-accent) 10%,var(--surface));display:grid;place-items:center}.segmented-control{display:inline-flex;flex-wrap:wrap;gap:.35rem;background:var(--surface-2);border:1px solid var(--border);padding:.25rem;border-radius:999px}.segmented-control button{padding:.65rem .9rem;border-radius:999px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e121c80;display:grid;place-items:center;padding:1rem;z-index:30}.modal-card{width:min(100%,42rem);max-height:min(90vh,46rem);overflow:auto}.mobile-nav{display:none}@media (max-width: 1200px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;min-height:auto}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid--charts,.dashboard-grid--stats,.dashboard-grid--settings,.transactions-layout,.settings-grid,.loading-grid,.loading-grid--wide{grid-template-columns:1fr}}@media (max-width: 760px){.app-shell{padding:.75rem}.sidebar{display:none}.app-header{align-items:start;flex-direction:column}.summary-grid,.filters-bar,.form-grid{grid-template-columns:1fr}.field--search{grid-column:auto}.panel,.kpi-card,.detail-card,.budget-row,.transaction-row,.empty-state,.telegram-card,.modal-card,.loading-state__hero,.loading-card,.system-banner{border-radius:20px}.detail-card__grid{grid-template-columns:1fr}.mobile-nav{display:grid;position:sticky;bottom:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;background:color-mix(in oklch,var(--bg) 76%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);padding:.65rem;z-index:20}.mobile-nav button{text-align:center;font-size:.78rem;padding:.8rem .45rem;background:var(--surface);border:1px solid var(--border)}}
