@font-face{font-family:Vazirmatn;src:url('/assets/fonts/vazirmatn.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:Estedad;src:url('/assets/fonts/estedad.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{font-size:16px;color-scheme:light;--app-font:"Vazirmatn",Tahoma,Arial,sans-serif;--bg:#f7f8f5;--surface:#ffffff;--surface-2:#f3f6f0;--ink:#243733;--muted:#617166;--line:#dce5dc;--green:#1e5d50;--accent-text:#1e5d50;--accent-ink:#ffffff;--accent-hover:#174c40;--accent-soft:#eaf3ed;--focus:var(--accent-text);--positive:#276149;--positive-soft:#ecf5ed;--positive-line:#c7dec9;--warning:#84501f;--warning-soft:#faf0e5;--warning-line:#ead7bf;--danger:#9b493d;--danger-soft:#fbece7;--danger-ink:#ffffff;--orange:var(--warning);--balance-bg:var(--green);--balance-muted:var(--accent-ink);--negative-bg:#6b443b;--overlay:#101b2480;--shadow:#132d211c}
:root[data-theme=dark]{color-scheme:dark;--bg:#121820;--surface:#1b232c;--surface-2:#242f39;--ink:#e7eeec;--muted:#b5c0d0;--line:#41515d;--positive:#8bceac;--positive-soft:#18392b;--positive-line:#3c6650;--warning:#edbe86;--warning-soft:#253044;--warning-line:#506381;--danger:#f0a898;--danger-soft:#35233f;--danger-ink:#281b36;--negative-bg:#352b50;--overlay:#04080db3;--shadow:#00000040}
html{line-height:1.5;-webkit-text-size-adjust:100%}h1,h2,h3{font-size:inherit;font-weight:inherit}button,input,select,textarea{font:inherit;color:inherit}button{background:transparent}table{border-collapse:collapse;text-indent:0}img,svg{vertical-align:middle}input[type=checkbox]{appearance:auto}

*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--app-font);font-size:1rem;line-height:1.9}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button{transition:background .15s,transform .15s}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}small{font-size:0.84615rem;font-weight:400}button{border:0}input,select,textarea{min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);border-color:var(--focus)}svg{flex-shrink:0} .app-shell{display:flex;min-height:100vh}.sidebar{width:238px;position:fixed;inset-block:0;right:0;background:var(--surface);border-left:1px solid var(--line);padding:35px 21px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 8px;font-size:1.69231rem;font-weight:700;letter-spacing:-1px;line-height:1.5}.brand-symbol{background:var(--green);color:var(--surface);width:44px;height:44px;display:grid;place-items:center;border-radius:15px}.brand small{display:block;font-size:0.76923rem;font-weight:400;letter-spacing:0;color:var(--muted);margin-top:5px}.nav-label{font-size:0.76923rem;color:var(--muted);margin:46px 14px 14px}.nav-item{width:100%;display:flex;align-items:center;gap:13px;border-radius:11px;background:transparent;color:var(--muted);padding:13px 14px;margin-bottom:7px;text-align:right}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--accent-soft);color:var(--accent-text);font-weight:700}.nav-item.active::after{content:'';width:4px;height:19px;border-radius:4px;background:var(--green);margin-right:auto}.nav-badge{background:var(--danger);color:var(--surface);font-size:0.76923rem;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;margin-right:auto}.sidebar-note{margin:52px 6px 28px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2);padding:18px 16px;color:var(--muted)}.sidebar-note svg{margin-bottom:13px}.sidebar-note b{display:block;font-size:0.84615rem;margin-bottom:7px}.sidebar-note p{font-size:0.76923rem;line-height:2.1;color:var(--muted)}.sidebar-bottom{margin-top:auto;padding:0 11px}.version{font-size:0.76923rem;color:var(--muted);display:flex;justify-content:space-between;margin-bottom:15px}.version span{border:1px solid var(--line);border-radius:5px;padding:0 5px}.help-button{display:flex;gap:9px;align-items:center;background:none;color:var(--muted);font-size:0.84615rem}.private{display:flex;align-items:center;gap:7px;font-size:0.76923rem;color:var(--muted);border-top:1px solid var(--line);margin-top:20px;padding-top:17px}.main{margin-right:238px;width:calc(100% - 238px)}.topbar{height:78px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 39px}.breadcrumb{display:flex;gap:13px;align-items:center;color:var(--muted);font-size:0.84615rem}.breadcrumb b{font-weight:400;color:var(--muted)}.topbar-left{display:flex;gap:14px;align-items:center}.sync{display:flex;align-items:center;gap:7px;font-size:0.76923rem;color:var(--muted)}.sync svg{color:var(--accent-text)}.avatar{width:34px;height:34px;background:var(--surface-2);border-radius:50%;display:grid;place-items:center;color:var(--muted);margin-right:7px}.icon-button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--muted);border-radius:7px;flex-shrink:0}.icon-button:hover{background:var(--surface-2);color:var(--green)}.icon-button.danger:hover{background:var(--danger-soft);color:var(--danger)}.content{max-width:1450px;padding:37px 39px 25px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:27px}.eyebrow{font-size:0.76923rem;color:var(--muted);margin-bottom:7px}.heading h1{font-size:1.92308rem;line-height:1.8;letter-spacing:-.7px;font-weight:700}.heading p{color:var(--muted);font-size:0.84615rem;margin-top:7px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;padding:11px 18px;font-size:0.92308rem;white-space:nowrap}.primary{background:var(--green);color:var(--surface);box-shadow:0 4px 10px var(--shadow)}.primary:hover{background:var(--accent-hover)}.secondary{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.period{display:flex;align-items:center;gap:18px;margin-bottom:18px}.month-control{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:3px;gap:8px}.month-control>span{min-width:88px;text-align:center;font-size:0.84615rem}.all-months{display:flex;align-items:center;gap:7px;font-size:0.76923rem;color:var(--muted)}.all-months input{accent-color:var(--green);width:13px;height:13px}.period-note{margin-right:auto;color:var(--muted);font-size:0.76923rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;margin-bottom:25px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 23px}.stat-label{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:0.84615rem;margin-bottom:12px;min-height:30px}.stat-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center}.stat-icon.income{background:var(--positive-soft);color:var(--positive)}.stat-icon.expense{background:var(--warning-soft);color:var(--warning)}.stat strong{display:block;font-size:1.92308rem;font-weight:700;line-height:1.8;font-variant-numeric:tabular-nums;white-space:nowrap}.stat strong small{font-size:0.76923rem;color:var(--muted);margin-right:3px}.stat-foot{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:0.76923rem;margin-top:11px}.stat.balance{background:var(--balance-bg);color:var(--surface);border-color:var(--balance-bg);position:relative;overflow:hidden}.balance::after{content:'';position:absolute;width:180px;height:180px;border:1px solid #ffffff12;border-radius:50%;top:52px;left:-70px;pointer-events:none;box-shadow:0 0 0 22px #ffffff05,0 0 0 44px #ffffff03}.balance .stat-label,.balance .stat-foot,.balance strong small{color:var(--balance-muted)}.dot{height:7px;width:7px;border-radius:50%;display:inline-block;flex-shrink:0}.green-bg{background:var(--positive)}.orange-bg{background:var(--warning)}.green{color:var(--positive)}.red{color:var(--warning)}.overview-grid{display:grid;grid-template-columns:1.07fr 1fr;gap:23px;margin-bottom:23px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 24px 19px}.panel-heading h2{font-size:1.07692rem;font-weight:700}.panel-heading p{font-size:0.76923rem;color:var(--muted);margin-top:4px}.panel-icon{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);width:36px;height:36px;display:grid;place-items:center;border-radius:10px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:31px 25px 35px;min-height:225px}.empty-icon{width:55px;height:55px;display:grid;place-items:center;border-radius:18px;background:var(--surface-2);color:var(--muted);margin-bottom:13px;border:1px solid var(--line)}.empty h3{font-size:0.92308rem;color:var(--muted);font-weight:500}.empty p{font-size:0.76923rem;color:var(--muted);margin-top:5px;max-width:300px;line-height:2}.text-button{background:none;color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:0.84615rem;padding:7px 0}.empty .text-button{margin-top:14px;font-weight:500}.text-button:hover{color:var(--green)}.text-button.small{font-size:0.76923rem}.text-button.full{display:flex;width:100%;border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.heading-actions{display:flex;align-items:center;gap:20px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;text-align:right;white-space:nowrap;font-size:0.84615rem}thead{background:var(--surface-2);color:var(--muted);font-size:0.76923rem;border-top:1px solid var(--line)}th{font-weight:400;padding:12px 19px}td{padding:16px 19px;border-top:1px solid var(--line);vertical-align:middle}td:first-child,th:first-child{padding-right:24px}td:last-child,th:last-child{padding-left:22px}.record-title{display:flex;align-items:center;gap:10px}.record-title b{font-size:0.84615rem;font-weight:500}.record-icon{width:33px;height:33px;border-radius:10px;display:grid;place-items:center}.record-icon.income{background:var(--positive-soft);color:var(--positive)}.record-icon.expense{background:var(--warning-soft);color:var(--warning)}.record-icon.loan{background:var(--surface-2);color:var(--muted)}.record-note{display:block;color:var(--muted);font-size:0.69231rem;max-width:210px;white-space:normal;overflow-wrap:anywhere}.date{color:var(--muted);font-size:0.76923rem;font-variant-numeric:tabular-nums;direction:ltr;text-align:right}.number{font-size:0.92308rem;font-weight:500}.number small{font-size:0.69231rem;color:var(--muted);margin-right:2px}.tag{font-size:0.69231rem;padding:4px 9px;background:var(--surface-2);color:var(--muted);border-radius:6px;display:inline-block}.tag.subtle{background:var(--surface-2)}.tags{display:flex;flex-wrap:wrap;gap:4px;max-width:190px}.mini-tag{font-size:0.69231rem;color:var(--muted)}.row-actions{display:flex;align-items:center;gap:5px}.upcoming-list{padding:0 24px 12px}.due-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.due-day{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;min-width:43px;height:48px;text-align:center;color:var(--muted);line-height:1.5;padding:3px}.due-day b{display:block;font-size:1.30769rem}.due-day small{font-size:0.69231rem}.due-day.late{background:var(--warning-soft);border-color:var(--warning-line);color:var(--warning)}.due-row>div{flex:1}.due-row>div>b{font-size:0.84615rem;font-weight:500;display:block}.due-row>div>small{font-size:0.69231rem;color:var(--muted)}.due-row>strong{font-size:0.92308rem;font-weight:500}.due-row>strong small{display:block;text-align:left;color:var(--muted);font-size:0.69231rem}.breakdown{display:flex;align-items:center;gap:26px;justify-content:center;padding:24px 26px 40px;min-height:225px}.donut{width:157px;height:157px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donut>div{width:119px;height:119px;background:var(--surface);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut small{color:var(--muted);font-size:0.69231rem}.donut b{font-size:1.46154rem;line-height:1.8}.legend{min-width:115px;flex:1;max-width:190px}.legend button{display:flex;align-items:center;gap:9px;background:none;width:100%;font-size:0.76923rem;padding:6px 0;color:var(--muted)}.legend b{margin-right:auto;font-size:0.76923rem;font-weight:400;color:var(--muted)}.legend-more{font-size:0.69231rem;color:var(--muted)}.filters{display:flex;gap:12px;padding:0 24px 20px;flex-wrap:wrap}.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);padding:0 10px;color:var(--muted);flex:1;min-width:180px}.search input{width:100%;border:0;background:none;padding:9px 8px;font-size:0.84615rem;color:var(--ink)}.search input:focus{outline:none}.search:focus-within{outline:2px solid var(--focus)}select{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--muted);font-size:0.84615rem;max-width:100%}.status{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:3px 8px;font-size:0.69231rem}.status.paid{background:var(--positive-soft);color:var(--positive)}.status.overdue{background:var(--warning-soft);color:var(--warning)}.status.pending{background:var(--warning-soft);color:var(--muted)}.pay-button{display:inline-flex;gap:5px;align-items:center;background:var(--positive-soft);border:1px solid var(--positive-line);border-radius:7px;color:var(--positive);padding:6px 8px;font-size:0.76923rem}.pay-button:hover{background:var(--positive-soft)}.footer{display:flex;justify-content:space-between;color:var(--muted);font-size:0.69231rem;gap:14px;margin-top:28px}.footer>span:first-child{display:flex;align-items:center;gap:6px}.mobile-nav{display:none}.overlay{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:22px;overflow-y:auto}.modal{width:480px;max-width:100%;max-height:90dvh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 25px 70px var(--shadow);padding:26px 28px}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.modal-header h2{font-size:1.53846rem}.modal-header .eyebrow{font-size:0.69231rem}.modal form>label,.form-grid>label{display:block;font-size:0.84615rem;color:var(--muted);margin-bottom:18px}.modal input,.modal textarea,.modal select{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 12px;margin-top:7px;background:var(--surface-2);color:var(--ink);font-size:1rem}.modal input::placeholder,.modal textarea::placeholder{color:var(--muted);font-size:0.84615rem}.modal .amount-input{font-size:1.69231rem;line-height:1.5;direction:ltr;text-align:right}.field-unit{float:left;color:var(--muted);font-size:0.76923rem}.field-hint{font-size:0.69231rem;display:block;color:var(--muted);margin-top:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.label-icon{display:flex;align-items:center;gap:5px}.optional{font-size:0.69231rem;color:var(--muted);margin-right:7px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.modal-footer .primary{min-width:125px}.form-note{display:flex;gap:8px;background:var(--surface-2);padding:12px;border-radius:9px;color:var(--muted);font-size:0.69231rem;align-items:flex-start}.form-error{background:var(--danger-soft);color:var(--danger);padding:10px;border-radius:8px;font-size:0.84615rem}.toast{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);background:var(--balance-bg);color:var(--surface);border:1px solid var(--line);border-radius:12px;padding:13px 18px;display:flex;align-items:center;gap:17px;z-index:80;box-shadow:0 7px 25px var(--shadow);max-width:calc(100vw - 30px);font-size:0.92308rem}.toast .icon-button{color:var(--balance-muted)}.pay-summary{padding:16px;background:var(--surface-2);border-radius:12px;margin-bottom:20px}.pay-summary>b{font-size:1rem}.pay-summary strong{display:block;font-size:1.84615rem;margin:7px 0}.pay-summary p{font-size:0.76923rem;color:var(--muted)}.help-modal>p{font-size:0.92308rem;line-height:2.3;color:var(--muted);margin-bottom:17px}.help-modal>.primary{margin-top:5px}.error-banner{border:1px solid var(--warning-line);background:var(--warning-soft);color:var(--danger);display:flex;justify-content:space-between;padding:13px;border-radius:10px;margin-bottom:20px;font-size:0.92308rem}.error-banner button{background:none;color:var(--warning);text-decoration:underline}.loading-state{display:flex;justify-content:center;align-items:center;gap:10px;min-height:270px;color:var(--muted)}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1550px){.content{padding-top:48px}.heading h1{font-size:2.23077rem}.stat{padding:24px 28px}.stat strong{font-size:2.23077rem}.panel-heading{padding-top:26px}.empty{min-height:250px}}
@media(max-width:1200px){.sidebar{width:211px;padding-right:15px;padding-left:15px}.main{margin-right:211px;width:calc(100% - 211px)}.content{padding:28px 25px}.topbar{padding:0 25px}.stats{gap:13px}.stat{padding:16px}.stat strong{font-size:1.69231rem}.overview-grid{gap:17px}.panel-heading{padding:18px}.heading h1{font-size:1.76923rem}.heading-actions{gap:11px}.breakdown{gap:15px;padding-right:17px;padding-left:17px}.donut{width:133px;height:133px}.donut>div{width:101px;height:101px}.donut b{font-size:1.23077rem}}
@media(max-width:1000px){.overview-grid{grid-template-columns:1fr 1fr}.breakdown{flex-direction:column;gap:15px}.legend{max-width:none;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.due-row>strong{font-size:0.76923rem}.heading h1{font-size:1.61538rem}.stats{gap:10px}.stat strong{font-size:1.46154rem}.stat-foot{font-size:0.69231rem}.brand{font-size:1.53846rem}.sidebar-note{margin-top:36px}.heading{align-items:flex-start}.heading .primary{margin-top:23px}}
@media(max-width:800px){.sidebar{display:none}.main{margin:0;width:100%}.topbar{height:66px;padding:0 23px}.breadcrumb{font-size:0.76923rem}.sync{font-size:0.69231rem}.content{padding:27px 23px 105px}.heading{margin-bottom:23px}.heading h1{font-size:1.76923rem}.stats{gap:12px}.stat strong{font-size:1.76923rem}.overview-grid{gap:16px}.breakdown{flex-direction:row}.legend{display:block;max-width:150px}.mobile-nav{position:fixed;display:flex;justify-content:space-around;bottom:0;right:0;left:0;background:var(--surface);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:30;padding:10px 12px calc(9px + env(safe-area-inset-bottom))}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 15px;background:none;color:var(--muted);font-size:0.76923rem}.mobile-nav button.active{color:var(--accent-text)}.mobile-nav button.active svg{stroke-width:2.3}.toast{bottom:96px}.sidebar-bottom{display:none}.footer>span:last-child{display:none}.category-panel .breakdown{flex-direction:column}.category-panel .legend{width:100%;display:grid;grid-template-columns:1fr 1fr;max-width:100%;gap:0 15px}}
@media(max-width:560px){body{font-size:0.92308rem}.topbar{height:58px;padding:0 18px}.topbar-left{gap:7px}.avatar{width:29px;height:29px;margin:0}.content{padding:23px 17px 110px}.heading{gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:20px}.heading h1{font-size:1.69231rem;letter-spacing:-.7px}.heading p{font-size:0.76923rem}.heading .primary{margin-top:2px;padding:10px 14px;font-size:0.84615rem}.eyebrow{font-size:0.69231rem}.stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.stat{padding:15px 15px 14px;border-radius:12px;min-width:0}.stat strong{font-size:1.61538rem;white-space:normal;overflow-wrap:anywhere}.stat strong small{font-size:0.69231rem}.stat-label{font-size:0.76923rem;gap:3px;margin-bottom:5px}.stat-label svg{width:17px;height:17px}.stat-icon{width:27px;height:27px}.stat-foot{font-size:0.69231rem;margin-top:7px}.stats .stat:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.stats .stat:last-child .stat-label{margin-bottom:0;justify-content:flex-start;gap:13px;grid-column:1}.stats .stat:last-child strong{grid-column:2;grid-row:1/3;text-align:left;align-self:center;font-size:1.92308rem}.stats .stat:last-child .stat-foot{grid-column:1;font-size:0.61538rem}.overview-grid{grid-template-columns:1fr;gap:18px;margin-bottom:18px}.empty{min-height:220px;padding:24px 20px}.panel-heading{padding:18px 18px 14px;align-items:flex-start}.panel-heading h2{font-size:1rem}.panel-heading p{font-size:0.69231rem;max-width:240px}.panel-icon{width:31px;height:31px}.heading-actions{flex-direction:column;gap:0;align-items:flex-end;white-space:nowrap}.heading-actions .text-button{font-size:0.69231rem;padding:2px 0}.period{gap:10px;margin-bottom:15px}.period-note{font-size:0.61538rem}.month-control{gap:0}.month-control>span{min-width:72px;font-size:0.76923rem}.all-months{font-size:0.69231rem}.month-control .icon-button{width:26px;height:26px}.category-panel .breakdown{flex-direction:row;padding-top:15px;padding-bottom:26px;gap:23px}.category-panel .legend{display:block;flex:1;width:auto;max-width:160px}.filters{padding:0 17px 16px;gap:9px}.filters>.search{flex-basis:100%}.filters select{flex:1;min-width:100px;max-width:100%;font-size:0.76923rem}td,th{padding:12px 15px}td:first-child,th:first-child{padding-right:18px}.upcoming-list{padding:0 18px 8px}.due-row>strong{font-size:1rem}.footer{font-size:0.61538rem}.overlay{padding:13px;align-items:center}.modal{padding:23px 20px;max-height:91dvh;border-radius:15px}.modal-header{margin-bottom:20px}.modal-header h2{font-size:1.38462rem}.modal input,.modal select,.modal textarea{font-size:1.23077rem;padding:10px 11px}.modal .amount-input{font-size:1.84615rem}.form-grid{gap:10px}.modal form>label,.form-grid>label{font-size:0.76923rem}.field-unit{font-size:0.69231rem}.form-note{font-size:0.61538rem}.modal-footer{padding-top:15px}.toast{font-size:0.84615rem;bottom:95px;width:max-content;max-width:calc(100vw - 24px)}.mobile-nav button{padding:3px 13px;font-size:0.69231rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:28px 18px}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:34px;width:100%;max-width:430px;box-shadow:0 15px 55px var(--shadow)}.auth-brand{font-size:1.84615rem;font-weight:bold;color:var(--green);display:block;margin-bottom:27px}.auth-card h1{font-size:1.69231rem;font-weight:700;margin-bottom:10px}.auth-card>p{color:var(--muted);line-height:2.1;font-size:0.92308rem}.auth-form{margin-top:24px;display:grid;gap:17px}.auth-form label{font-size:0.92308rem}.auth-form input:not([type=hidden]){display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:12px;margin-top:6px;font-size:1.23077rem;background:var(--surface-2)}.auth-form .primary{justify-content:center;margin-top:6px}.form-success{color:var(--green);background:var(--positive-soft);padding:12px;border-radius:10px}.logout-form{margin:0}.auth-card>.primary{display:inline-flex;margin-top:18px}@media(max-width:560px){.auth-card{padding:27px 23px}.topbar-left .sync{display:none}}

.wealth-overview{margin-bottom:23px}.wealth-overview-values{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:20px;padding:0 24px 24px}.wealth-overview-values span{display:block;color:var(--muted);font-size:0.76923rem}.wealth-overview-values strong{display:block;font-size:1.76923rem;margin-top:7px;overflow-wrap:anywhere}.wealth-overview-values small{color:var(--muted);font-size:0.76923rem}.wealth-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px;color:var(--muted);font-size:0.76923rem}.wealth-stats strong{white-space:normal;overflow-wrap:anywhere}.negative-balance{background:var(--negative-bg)!important;border-color:var(--negative-bg)!important}.wealth-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:23px;margin-bottom:23px}.wealth-grid .panel-heading>svg{color:var(--muted)}.wealth-breakdown{padding:0 24px 22px;display:grid;gap:15px}.wealth-breakdown>button{background:none;text-align:right;padding:0;color:var(--ink)}.wealth-breakdown>button>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:0.84615rem}.wealth-breakdown b{font-weight:500;font-size:1rem}.wealth-breakdown small{color:var(--muted);font-size:0.69231rem}.wealth-bar{display:block;height:5px;background:var(--surface-2);border-radius:5px;margin-top:8px;overflow:hidden}.wealth-bar>span{display:block;height:100%;background:var(--accent-text);border-radius:5px}.wealth-small-empty{padding:5px 24px 30px;color:var(--muted);font-size:0.84615rem;line-height:2.2}.wealth-guidance-body{padding:0 24px 23px;color:var(--muted);font-size:0.84615rem;line-height:2.2}.wealth-installments{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:13px 0;margin:10px 0;border-block:1px solid var(--line)}.wealth-installments b{font-weight:500;color:var(--ink)}.wealth-installments small{font-size:0.69231rem}.wealth-mobile-list{display:none}.mobile-nav button{flex:1;min-width:0;padding-inline:4px}.wealth-card-top .row-actions .icon-button{width:40px;height:40px}
@media(max-width:800px){.wealth-grid{gap:16px}.wealth-overview-values{gap:12px}.wealth-overview-values strong{font-size:1.46154rem}}
@media(max-width:560px){.wealth-overview{margin-bottom:18px}.wealth-overview .panel-heading{flex-wrap:wrap;gap:4px}.wealth-overview-values{grid-template-columns:1fr 1fr;padding:0 18px 18px;gap:15px}.wealth-overview-values>div:first-child{grid-column:1/-1;padding-bottom:13px;border-bottom:1px solid var(--line)}.wealth-overview-values>div:first-child strong{font-size:2.07692rem}.wealth-overview-values strong{font-size:1.53846rem}.wealth-caption{font-size:0.69231rem;align-items:flex-start}.wealth-caption .secondary{padding:9px 12px;font-size:0.84615rem}.wealth-grid{grid-template-columns:1fr;gap:18px;margin-bottom:18px}.wealth-breakdown,.wealth-guidance-body{padding-right:18px;padding-left:18px}.wealth-breakdown>button>div{font-size:0.84615rem}.wealth-breakdown b{font-size:1.07692rem}.wealth-table{display:none}.wealth-mobile-list{display:block;padding:0 17px 18px}.wealth-mobile-card{border-top:1px solid var(--line);padding:15px 0}.wealth-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wealth-card-top>div:first-child{min-width:0}.wealth-card-top b{display:block;font-size:1rem;font-weight:500;overflow-wrap:anywhere}.wealth-card-top>div>span{display:block;font-size:0.76923rem;color:var(--muted);margin-top:5px}.wealth-mobile-card>strong{display:block;font-size:1.84615rem;margin:10px 0 7px;overflow-wrap:anywhere}.wealth-mobile-card>strong small{color:var(--muted);font-size:0.76923rem}.wealth-card-date{font-size:0.76923rem;color:var(--muted)}.wealth-mobile-card>p{font-size:0.84615rem;line-height:2;color:var(--muted);overflow-wrap:anywhere;margin-top:8px}.mobile-nav button{font-size:0.69231rem;padding:3px 2px}.stats.wealth-stats .stat:last-child strong{font-size:clamp(18px,5.5vw,25px)}}

.primary{color:var(--accent-ink)}.stat.balance,.toast{color:var(--accent-ink)}.balance .stat-label,.balance .stat-foot,.balance strong small,.toast .icon-button{color:var(--accent-ink)}.balance.negative-balance,.negative-balance .stat-label,.negative-balance .stat-foot,.negative-balance strong small{color:#fff}.nav-badge{color:var(--danger-ink)}.sidebar{overflow-y:auto}.topbar-left{flex-shrink:0}.breadcrumb{min-width:0}.appearance-link{margin-bottom:16px}.appearance-open{color:var(--accent-text)}.appearance-modal{width:520px}.appearance-modal .modal-header h2{display:flex;gap:9px;align-items:center}.appearance-field{border:0;padding:0;margin:0 0 23px;display:block;min-width:0}.appearance-field legend,.appearance-font{font-size:1rem;color:var(--ink);font-weight:500}.appearance-field legend{padding:0;margin-bottom:10px}.appearance-modes,.appearance-sizes{display:grid;gap:8px}.appearance-modes{grid-template-columns:repeat(3,minmax(0,1fr))}.appearance-sizes{grid-template-columns:repeat(4,minmax(0,1fr))}.appearance-modes button,.appearance-sizes button{border:1px solid var(--line);border-radius:10px;padding:13px 5px;background:var(--surface-2);color:var(--muted);font-size:.85rem;min-width:0}.appearance-modes button{display:flex;align-items:center;flex-direction:column;gap:6px}.appearance-modes button[aria-pressed=true],.appearance-sizes button[aria-pressed=true]{border-color:var(--accent-text);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.appearance-font select{font-family:var(--app-font);font-size:max(1rem,16px);padding:12px;margin-top:10px}.appearance-colors{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.appearance-colors .color-choice{width:40px;height:40px;border-radius:50%;color:#fff;display:grid;place-items:center;position:relative;flex-shrink:0}.color-choice[aria-pressed=true]{outline:2px solid var(--accent-text);outline-offset:4px}.appearance-colors .custom-color{display:flex;align-items:center;gap:8px;margin-right:auto;color:var(--muted);font-size:.8rem;cursor:pointer}.custom-color input[type=color]{width:40px;height:40px;margin:0;padding:2px;border:1px solid var(--line);border-radius:8px;cursor:pointer;background:var(--surface-2)}.appearance-preview{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:18px;overflow-wrap:anywhere}.appearance-preview>span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:8px}.appearance-preview b{font-size:1.12rem;font-weight:600}.appearance-preview p{font-size:1rem;margin-top:6px;color:var(--accent-text)}.appearance-note{color:var(--muted);font-size:.8rem;line-height:2;margin-top:13px}.appearance-modal .modal-footer{justify-content:space-between;gap:12px;flex-wrap:wrap}.appearance-modal .modal-footer .secondary{font-size:.85rem}.stat.balance::after{color:inherit}.search input::placeholder,.modal input::placeholder,.modal textarea::placeholder,.auth-form input::placeholder{color:var(--muted)}.pay-button{color:var(--positive)}.brand-symbol{color:var(--accent-ink);background:var(--green)}.stat-foot{line-height:1.9}.record-title>span:last-child{min-width:0}.heading h1{overflow-wrap:anywhere}.wealth-overview-values strong{line-height:1.7}
@media(max-width:560px){.breadcrumb{font-size:0;gap:0}.breadcrumb>svg{display:none}.breadcrumb b{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-left{gap:4px}.appearance-open{width:36px;height:36px}.appearance-field{margin-bottom:20px}.appearance-modes button,.appearance-sizes button{font-size:.78rem;padding:11px 3px;overflow-wrap:anywhere}.appearance-sizes{grid-template-columns:1fr 1fr}.appearance-colors{gap:11px}.appearance-colors .custom-color{margin-right:0;flex-basis:100%;margin-top:5px}.appearance-modal .modal-header h2{font-size:1.25rem}.appearance-modal .modal-footer .primary{font-size:.85rem;min-width:auto}.wealth-mobile-card>strong{line-height:1.6}.wealth-card-top>div>span{line-height:2.1}.stats.wealth-stats .stat:last-child strong{font-size:clamp(1.3rem,5.5vw,1.9rem)}}
/* Version 1.4 */
.amount-value{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.amount-value small{font-size:.7em;font-weight:400;white-space:nowrap}.hide-amounts{color:var(--accent-text)}.inline-empty{padding:12px 24px 25px;color:var(--muted);font-size:.9rem;line-height:2}.dashboard-toolbar,.account-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:22px}.quick-actions{display:flex;gap:10px;flex-wrap:wrap}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.dashboard-widget{min-width:0}.dashboard-widget>.panel{height:100%;margin:0}.widget-flow,.widget-wealth,.widget-recent{grid-column:1/-1}.dashboard-flow .flow-values{padding:0 24px 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.flow-values>div>span{color:var(--muted);font-size:.85rem}.flow-values strong{display:block;font-size:1.55rem;margin-top:8px}.cash-number{padding:0 24px 18px}.cash-number strong{display:block;font-size:2rem;line-height:1.7}.cash-number>span{color:var(--muted);font-size:.8rem}.cash-accounts{padding:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.cash-accounts>button{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);text-align:right;padding:10px 12px;display:grid;gap:4px;color:var(--ink);min-width:0}.cash-accounts>button>span{font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}.cash-accounts b{font-size:.95rem;font-weight:500}.dashboard-panel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 24px 18px}.dashboard-panel-footer>span{font-size:.75rem;color:var(--muted)}.dashboard-recent{display:flex;align-items:center;gap:12px;padding:15px 24px;border-top:1px solid var(--line)}.dashboard-recent>div{flex:1;min-width:0}.dashboard-recent b{font-size:.95rem;font-weight:500;overflow-wrap:anywhere}.dashboard-recent small{display:block;color:var(--muted);font-size:.78rem;margin-top:4px}.dashboard-recent>strong{font-size:1.05rem;text-align:left;max-width:45%;font-weight:600}.dashboard-settings{padding:20px 24px;margin-bottom:22px}.dashboard-settings h2{font-size:1.05rem}.dashboard-settings>p{font-size:.8rem;color:var(--muted);margin:6px 0 14px;line-height:2}.widget-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:5px 0;min-height:48px;font-size:.9rem}.widget-setting label,.widget-setting>span{display:flex;align-items:center;gap:10px}.widget-setting input,.preference-check input{accent-color:var(--accent-text);width:18px;height:18px;flex-shrink:0}.widget-setting>div{display:flex;gap:4px}.widget-setting .icon-button{width:44px;height:44px}.trend-legend{padding:0 24px;display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}.trend-legend>span{display:flex;align-items:center;gap:6px}.trend-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}.income-dot,.income-bar{background:var(--accent-text)}.expense-dot,.expense-bar{background:var(--warning)}.trend-columns{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:20px 20px 12px;direction:rtl}.trend-month{min-width:0;text-align:center}.trend-bars{height:140px;display:flex;align-items:flex-end;justify-content:center;gap:5px;border-bottom:1px solid var(--line);padding-bottom:1px}.trend-bars>span{display:block;width:17px;border-radius:4px 4px 0 0;max-height:100%}.trend-month>b{display:block;font-size:.7rem;font-weight:500;margin-top:9px;overflow-wrap:anywhere}.trend-month>small{font-size:.65rem;color:var(--muted)}.trend-details{margin:0 24px 20px;font-size:.8rem}.trend-details summary{cursor:pointer;color:var(--accent-text);padding:10px 0;min-height:44px}.trend-details>div>div{padding:8px 0;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:7px 12px;justify-content:space-between}.trend-details>div>div>span:first-child{flex-basis:100%}.dashboard-grid .category-panel .breakdown{padding-bottom:24px}.dashboard-grid .legend button{min-height:44px}.account-toolbar>span{font-size:.8rem;color:var(--muted);flex:1;min-width:200px;line-height:2}.account-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:22px}.account-card{padding:20px;min-width:0}.account-card-heading{display:flex;align-items:center;gap:12px}.account-card-heading>div{flex:1;min-width:0}.account-card h2{font-size:1.1rem;font-weight:600;overflow-wrap:anywhere}.account-card-heading small{color:var(--muted);font-size:.8rem}.account-symbol{width:45px;height:45px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);border-radius:12px;flex-shrink:0}.account-card>strong{display:block;font-size:1.9rem;margin-top:18px;line-height:1.7}.account-opening{font-size:.8rem;color:var(--muted);line-height:2;margin-top:4px}.account-actions{margin-top:12px;padding-top:8px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.convert-panel,.account-ledger,.transfer-panel{margin-bottom:22px}.convert-row,.ledger-row,.transfer-row{display:flex;align-items:center;gap:12px;padding:14px 24px;border-top:1px solid var(--line)}.convert-row>span{flex:1;min-width:0}.convert-row b{display:block;overflow-wrap:anywhere;font-size:.95rem}.convert-row small,.ledger-row small,.transfer-row small{display:block;color:var(--muted);font-size:.78rem;line-height:2;margin-top:4px}.ledger-row>div,.transfer-row>div:not(.row-actions){flex:1;min-width:0}.ledger-row b,.transfer-row b{font-size:.95rem;font-weight:500;overflow-wrap:anywhere}.ledger-row strong,.transfer-row strong{font-size:1.05rem;max-width:40%;text-align:left}.transfer-row p{font-size:.8rem;color:var(--muted);margin-top:5px;overflow-wrap:anywhere;line-height:2}.date-field{font-size:.85rem;min-width:0;position:relative}.date-field>label{display:block;font-weight:500}.date-input{display:flex;align-items:center;gap:6px}.date-input input{flex:1;min-width:0}.date-input .icon-button{margin-top:7px;border:1px solid var(--line);border-radius:8px;flex-shrink:0;width:44px;height:44px}.jalali-calendar{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 22px var(--shadow);padding:10px;margin-top:8px;position:relative;min-width:0}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:3px}.calendar-heading b{font-size:.9rem}.calendar-heading .icon-button{width:36px;height:36px}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;direction:rtl}.calendar-days>span{text-align:center;padding:6px 0;font-size:.75rem;color:var(--muted)}.calendar-days>button{background:var(--surface-2);color:var(--ink);border-radius:7px;height:36px;font-size:.8rem;min-width:0;padding:0}.calendar-days>button.selected{background:var(--green);color:var(--accent-ink)}.quick-entry-modal .amount-input{font-size:2rem}.repeat-entry{width:100%;justify-content:center;font-size:.8rem;overflow-wrap:anywhere;margin-bottom:15px}.entry-details{margin-top:16px;font-size:.9rem;border-top:1px solid var(--line);padding-top:3px}.entry-details summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--accent-text)}.entry-details label{display:block;margin-top:14px}.preference-check{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted);margin-top:14px;min-height:44px;line-height:2}.preference-check input{margin:0}.modal :is(input,select,textarea){font-size:max(1rem,16px)}.form-grid{align-items:start}.dashboard-cash .panel-heading>svg,.trend-panel .panel-heading>svg,.upcoming .panel-heading>svg{color:var(--accent-text)}.panel-heading h2{overflow-wrap:anywhere}
[data-density=compact] .content{padding-top:22px}[data-density=compact] .heading{margin-bottom:18px}[data-density=compact] .panel-heading{padding:16px 20px 12px}[data-density=compact] .dashboard-grid{gap:14px}[data-density=compact] .dashboard-recent,[data-density=compact] .ledger-row,[data-density=compact] .transfer-row{padding-block:10px}[data-density=compact] .account-card{padding:16px}[data-density=compact] td,[data-density=compact] th{padding-block:8px}[data-calm=true] .sidebar-note,[data-calm=true] .eyebrow,[data-calm=true] .heading>div>p,[data-calm=true] .footer,[data-calm=true] .dashboard-grid .panel-heading p{display:none}[data-calm=true] .stat.balance::after{display:none}[data-calm=true] .record-icon{background:none}.quick-actions .primary,.quick-actions .secondary{min-height:44px}
@media(max-width:1000px){.dashboard-grid{gap:16px}.dashboard-grid .category-panel .breakdown{flex-direction:column}.dashboard-grid .category-panel .legend{max-width:100%;width:100%;display:block}.account-cards{gap:16px}.cash-accounts{grid-template-columns:1fr}.dashboard-flow .flow-values{gap:12px}.flow-values strong{font-size:1.3rem}}
@media(max-width:800px){.icon-button,.row-actions .icon-button,.month-control .icon-button,.wealth-card-top .row-actions .icon-button,.appearance-open{min-width:44px;min-height:44px}.mobile-nav{padding-inline:4px}.mobile-nav button{min-height:44px;min-width:44px}.text-button,.pay-button,.primary,.secondary{min-height:44px}.topbar{height:66px}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.dashboard-widget{grid-column:1/-1}.account-cards{grid-template-columns:minmax(0,1fr)}.dashboard-grid .category-panel .breakdown{flex-direction:row}.dashboard-grid .category-panel .legend{max-width:230px;display:block}.calendar-heading .icon-button{min-width:36px;min-height:36px}.calendar-days>button{min-height:36px}.dashboard-flow .flow-values{gap:14px}}
@media(max-width:560px){.topbar{padding-inline:12px}.topbar-left{gap:1px}.logout-form .text-button{padding-inline:7px;font-size:.75rem}.breadcrumb b{max-width:92px;font-size:.8rem}.heading h1{font-size:1.65rem}.dashboard-toolbar{margin-bottom:18px;gap:8px}.quick-actions{width:100%;gap:8px}.quick-actions>button{flex:1;min-width:0;padding-inline:10px;font-size:.85rem}.dashboard-toolbar>.text-button{margin-right:auto;font-size:.8rem}.dashboard-grid{gap:18px}.dashboard-flow .flow-values{grid-template-columns:1fr 1fr;padding:0 18px 20px}.flow-values>div:last-child{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}.flow-values strong{font-size:1.45rem}.cash-number{padding-inline:18px}.cash-number strong{font-size:1.85rem}.cash-accounts{padding-inline:18px;grid-template-columns:1fr 1fr}.cash-accounts b{font-size:.82rem}.dashboard-panel-footer{padding-inline:18px}.dashboard-grid .category-panel .breakdown{gap:18px;flex-direction:column}.dashboard-grid .category-panel .legend{max-width:100%;width:100%}.dashboard-recent{padding:14px 18px;gap:9px;flex-wrap:wrap}.dashboard-recent>strong{margin-right:auto;max-width:100%;font-size:1.1rem}.dashboard-recent>div{flex-basis:calc(100% - 48px)}.dashboard-settings{padding:18px}.widget-setting{font-size:.8rem}.trend-columns{padding-inline:15px;gap:5px}.trend-month>b{font-size:.65rem}.trend-bars{height:120px;gap:4px}.trend-bars>span{width:14px}.trend-legend,.trend-details{margin-inline:0;padding-inline:18px}.account-toolbar>span{flex-basis:100%;font-size:.75rem}.account-toolbar>button{flex:1;font-size:.82rem;padding-inline:10px}.account-card{padding:18px}.account-card>strong{font-size:1.7rem}.convert-row{padding:12px 18px;flex-wrap:wrap}.convert-row>span{flex-basis:100%}.convert-row>.secondary{margin-right:auto;font-size:.8rem}.ledger-row,.transfer-row{padding:14px 18px;flex-wrap:wrap;gap:10px}.ledger-row>div,.transfer-row>div:not(.row-actions){flex-basis:calc(100% - 40px)}.ledger-row>strong,.transfer-row>strong{max-width:100%;margin-right:auto}.transfer-row>.row-actions{margin-right:auto}.form-grid{grid-template-columns:minmax(0,1fr)}.calendar-days>button{height:44px}.calendar-heading .icon-button{min-width:44px;min-height:44px}.date-field{font-size:.85rem}.modal-header h2{font-size:1.2rem}.modal{padding:20px 18px}.modal-footer{gap:10px}.modal-footer>button{flex:1;justify-content:center}.transactions-table table,.transactions-table tbody{display:block;width:100%;min-width:0}.transactions-table thead{display:none}.transactions-table tr{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px;border-top:1px solid var(--line);padding:16px 18px}.transactions-table td{padding:0!important;border:0;min-width:0;white-space:normal}.transactions-table td:first-child{grid-column:1/-1}.transactions-table td:nth-child(3){text-align:left}.transactions-table td:nth-child(4){grid-column:1/-1;font-size:1.5rem;margin-block:5px}.transactions-table td:nth-child(5){grid-column:1/-1}.transactions-table td:last-child{grid-column:1/-1;justify-self:end}.period{flex-wrap:wrap}.period-note{font-size:.7rem}.all-months{min-height:44px}.account-cards{margin-bottom:18px}[data-density=compact] .transactions-table tr{padding-block:12px}[data-density=compact] .panel-heading{padding-inline:18px}}

.modal{max-height:90vh;max-height:90dvh;overflow-y:auto}.auth-shell{min-height:100vh;min-height:100dvh}@media(max-width:800px){.appearance-colors .color-choice{width:44px;height:44px}.appearance-colors .custom-color input{width:44px;height:44px}}
/* Version 1.5: planning, reports, unified search. */
.feature-tabs{display:flex;gap:6px;padding:5px;border:1px solid var(--line);background:var(--surface);border-radius:12px;width:max-content;max-width:100%;margin-bottom:22px}.feature-tabs button{padding:10px 19px;min-height:44px;border-radius:8px;color:var(--muted);background:none;font-size:.9rem}.feature-tabs button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.feature-toolbar{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:15px;margin-bottom:22px}.feature-toolbar>div:not(.feature-month):not(.export-control){display:flex;gap:9px;flex-wrap:wrap}.feature-month>span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:6px}.feature-month .month-control{padding:2px;gap:8px}.feature-month .month-control b{font-size:.9rem;font-weight:500;min-width:8rem;text-align:center}.feature-month .icon-button{width:44px;height:44px}.feature-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.feature-stats>.panel{padding:20px;min-width:0}.feature-stats>.panel>span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.83rem;color:var(--muted)}.feature-stats strong{display:block;font-size:1.6rem;margin-top:9px;overflow-wrap:anywhere;line-height:1.8}.feature-stats>.panel>small{display:block;font-size:.75rem;margin-top:6px;color:var(--muted)}.feature-stats>.panel>p{font-size:.8rem;color:var(--muted);margin-top:7px}.budget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.budget-card{padding:20px;min-width:0}.budget-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.budget-title h2{font-size:1.05rem;font-weight:600}.budget-values{display:flex;justify-content:space-between;gap:12px;margin-top:15px;font-size:.8rem;color:var(--muted)}.budget-values b{display:block;color:var(--ink);font-size:1.15rem;font-weight:500;margin-top:4px}.budget-track{height:8px;border-radius:8px;overflow:hidden;background:var(--surface-2);margin:18px 0 12px}.budget-track>span{display:block;height:100%;border-radius:8px;background:var(--accent-text)}.budget-track.exceeded>span{background:var(--danger)}.budget-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:7px;font-size:.8rem}.budget-foot>span{color:var(--muted)}.budget-foot b{font-weight:500}.budget-alert{display:flex;align-items:center;gap:9px;padding:12px 17px;border:1px solid var(--warning-line);background:var(--warning-soft);color:var(--warning);border-radius:10px;margin-bottom:16px;font-size:.9rem}.budget-caption{font-size:.85rem;color:var(--muted);margin-bottom:18px;line-height:2}.feature-note{font-size:.8rem;color:var(--muted);line-height:2.2;margin:18px 0;overflow-wrap:anywhere}.feature-note svg{vertical-align:middle;margin-left:6px}.commitment-calendar{padding:18px;margin-bottom:22px}.calendar-weekdays,.commitment-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;direction:rtl}.calendar-weekdays{padding-bottom:10px;font-size:.75rem;text-align:center;color:var(--muted)}.commitment-days>button{border:1px solid var(--line);border-radius:10px;min-height:88px;min-width:0;text-align:right;padding:8px 10px;background:var(--surface-2);color:var(--ink);display:flex;flex-direction:column;align-items:flex-start}.commitment-days b{font-size:1rem;font-weight:500}.commitment-days small{font-size:.7rem;color:var(--muted);line-height:1.8}.commitment-days .is-today{border-color:var(--accent-text)}.commitment-days .selected{background:var(--accent-soft);outline:2px solid var(--accent-text);outline-offset:1px}.commitment-days .has-overdue b{color:var(--danger)}.calendar-event-dots{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto;padding-top:4px}.calendar-event-dots i{width:5px;height:5px;border-radius:50%;background:var(--warning)}.calendar-event-dots i.paid{background:var(--positive)}.calendar-event-dots i.late{background:var(--danger)}.commitment-row{display:flex;align-items:center;gap:13px;padding:17px 24px;border-top:1px solid var(--line)}.commitment-row>div:not(.row-actions){flex:1;min-width:0}.commitment-row b{display:block;font-size:.95rem;font-weight:500;overflow-wrap:anywhere}.commitment-row small,.commitment-row p{display:block;font-size:.77rem;color:var(--muted);margin-top:4px;line-height:2;overflow-wrap:anywhere}.commitment-row>strong{font-size:1.1rem;max-width:33%;text-align:left}.commitment-row .status{margin-top:5px}.focused-record{background:var(--accent-soft)}.export-control{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:100%}.export-control small{font-size:.7rem;color:var(--muted);line-height:1.8;max-width:260px;text-align:left}.report-account-filter{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:20px}.report-account-filter label{font-size:.85rem;min-width:230px;max-width:100%}.report-account-filter select{display:block;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-top:6px;max-width:100%;font-size:max(.9rem,16px);color:var(--ink)}.report-account-filter>span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.8rem}.report-insight{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:18px 22px;margin-bottom:22px}.report-insight>div{min-width:140px}.report-insight span{color:var(--muted);font-size:.85rem}.report-insight strong{display:block;font-size:1.8rem;margin-top:4px}.report-insight p{color:var(--muted);font-size:.85rem;line-height:2;max-width:500px}.report-history{margin-top:22px}.feature-report-table td,.feature-report-table th{font-size:.85rem}.feature-report-table .amount-value small{font-size:.65em}.unified-filters{margin-bottom:22px}.feature-search-input{margin:0 24px 18px;border:1px solid var(--line);border-radius:9px;min-height:48px;padding-inline:12px;background:var(--surface-2)}.unified-filter-grid{padding:0 24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.unified-filter-grid>label{font-size:.8rem;color:var(--muted)}.unified-filter-grid input,.unified-filter-grid select{display:block;width:100%;padding:10px 11px;margin-top:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font-size:max(.9rem,16px)}.unified-filter-grid .date-input input{display:inline-block}.reset-filters{margin:13px 24px 20px}.unified-filters>.form-error{margin:0 24px 20px}.search-result{display:flex;gap:15px;align-items:center;padding:17px 24px;border-top:1px solid var(--line)}.search-result>div{flex:1;min-width:0}.search-result b{display:block;font-size:1rem;font-weight:500;margin:5px 0;overflow-wrap:anywhere}.search-result small{color:var(--muted);font-size:.77rem;line-height:2;display:block;overflow-wrap:anywhere}.search-result>.text-button{white-space:nowrap}.search-result>strong{max-width:35%;font-size:1.15rem;text-align:left}.search-result .status{margin-top:6px}.result-pages{display:flex;align-items:center;justify-content:center;gap:15px;padding:20px}.result-pages span{font-size:.85rem;color:var(--muted)}.more-menu{display:grid;grid-template-columns:1fr 1fr;gap:10px}.more-menu>button{display:flex;align-items:center;gap:10px;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:10px;min-height:60px;padding:14px;text-align:right;font-size:.9rem}.more-menu>button.active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-text)}.sidebar-note{margin-block:25px 20px}[data-density=compact] .feature-stats>.panel,[data-density=compact] .budget-card{padding:16px}[data-density=compact] .commitment-row,[data-density=compact] .search-result{padding-block:12px}[data-calm=true] .budget-caption{display:block}
@media(max-width:1100px){.unified-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-stats strong{font-size:1.35rem}.commitment-row{flex-wrap:wrap}.commitment-row>.row-actions{margin-right:auto}}
@media(max-width:800px){.feature-stats{gap:12px}.budget-grid{grid-template-columns:minmax(0,1fr)}.reports-toolbar{align-items:center}.feature-toolbar>.export-control{margin-right:auto}.commitment-days>button{padding:7px;min-height:78px}.calendar-weekdays{font-size:.68rem}.unified-filter-grid .date-field{grid-column:auto}.commitment-row>div:not(.row-actions){flex-basis:calc(100% - 48px)}.commitment-row>strong{max-width:100%;margin-right:auto}.search-result{flex-wrap:wrap}.search-result>div{flex-basis:100%}.search-result>strong{max-width:100%;margin-left:auto}.search-result>.text-button{margin-right:auto}}
@media(max-width:560px){.feature-tabs{width:100%;gap:4px;margin-bottom:18px}.feature-tabs>button{flex:1;padding-inline:8px;font-size:.82rem}.feature-toolbar{gap:12px;margin-bottom:18px}.feature-toolbar>div:not(.feature-month):not(.export-control){width:100%}.feature-toolbar>div:not(.feature-month):not(.export-control)>button{flex:1;min-width:0;font-size:.8rem;padding-inline:10px}.feature-month{max-width:100%}.feature-month .month-control b{min-width:7.5rem;font-size:.85rem}.feature-stats{grid-template-columns:1fr 1fr;gap:10px}.feature-stats>.panel{padding:15px}.feature-stats>.panel:last-child{grid-column:1/-1}.feature-stats>.panel>span{font-size:.75rem}.feature-stats strong{font-size:1.4rem}.feature-stats>.panel>small{font-size:.7rem}.budget-card{padding:18px}.budget-title h2{font-size:1rem}.budget-values{flex-wrap:wrap}.budget-values b{font-size:1.1rem}.budget-foot{font-size:.76rem}.budget-alert{font-size:.8rem}.feature-note{font-size:.76rem}.commitment-calendar{padding:12px;margin-bottom:18px}.calendar-weekdays,.commitment-days{gap:4px}.calendar-weekdays{font-size:.6rem;overflow-wrap:anywhere;line-height:1.5}.commitment-days>button{padding:5px 3px;min-height:72px;border-radius:7px;align-items:center;text-align:center}.commitment-days b{font-size:.85rem}.commitment-days small{font-size:.58rem;overflow-wrap:anywhere}.calendar-event-dots i{width:4px;height:4px}.commitment-row{padding:15px 18px;gap:10px}.commitment-row>strong{font-size:1.2rem}.commitment-row>.row-actions{flex-basis:100%;justify-content:flex-end}.commitment-row b{font-size:.9rem}.reports-toolbar .feature-month{width:100%}.reports-toolbar .month-control{justify-content:space-between}.reports-toolbar>.export-control{width:100%;align-items:flex-end}.report-account-filter{gap:10px}.report-account-filter label{width:100%}.report-account-filter select{width:100%;font-size:16px}.report-account-filter>span{font-size:.75rem}.report-insight{padding:18px;flex-wrap:wrap;gap:10px}.report-insight p{font-size:.78rem}.report-insight strong{font-size:1.65rem}.unified-filters .panel-heading{flex-wrap:wrap;gap:12px}.unified-filters .export-control{margin-right:auto}.feature-search-input{margin-inline:18px;font-size:16px}.unified-filter-grid{grid-template-columns:minmax(0,1fr);padding-inline:18px;gap:13px}.unified-filter-grid input,.unified-filter-grid select{font-size:16px}.reset-filters{margin-inline:18px}.search-result{padding:15px 18px;gap:10px}.search-result>strong{font-size:1.25rem}.search-result .tag{font-size:.7rem}.search-result b{font-size:.95rem}.result-pages{gap:10px;padding:18px}.more-menu{gap:8px}.more-menu>button{font-size:.8rem;padding:12px 9px;gap:8px}.feature-report-table td,.feature-report-table th{font-size:.8rem}.report-history{margin-top:18px}}

/* Version 1.6: Excel, reminders and release history. */
.excel-import input:not([type=checkbox]),.excel-import select,.reminder-email input:not([type=checkbox]),.reminder-email select,.calendar-link-box input{display:block;width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;padding:11px 12px;margin-top:7px;background:var(--surface-2);color:var(--ink);font-size:max(.9rem,16px)}.calendar-link-box label{display:block;font-size:.85rem;color:var(--muted)}
.tools-tabs{flex-wrap:wrap}.tools-tabs>button{min-height:44px}.version-link{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:7px;text-align:right;cursor:pointer;min-height:44px;padding:0}.version-link:hover{color:var(--accent-text)}.sidebar{overflow-y:auto}.release-intro,.excel-intro,.excel-import,.import-preview,.reminder-intro,.reminder-email,.reminder-calendar{padding:24px;margin-bottom:22px}.release-intro>div,.excel-intro h2,.excel-import h2,.reminder-intro h2,.reminder-email h2,.reminder-calendar h2{display:flex;align-items:center;gap:10px}.release-intro h2{margin:0}.release-intro p,.release-card li,.excel-export-options p,.excel-import>p,.import-preview>p,.reminder-intro>p,.reminder-calendar>p{color:var(--muted);font-size:.87rem;line-height:2}.release-intro label{display:flex;align-items:center;gap:12px;margin-top:15px}.release-intro select{padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font:inherit}.release-list{display:grid;gap:18px}.release-card{padding:24px}.release-card .panel-heading{padding:0;gap:14px}.release-card .panel-heading h2{font-size:1.12rem;margin-top:10px}.release-number{font-size:.8rem;color:var(--accent-text)}.release-card ul{padding-right:20px;margin:16px 0 0}.release-card li+li{margin-top:8px}.release-card .tag{display:flex;align-items:center;gap:5px;white-space:nowrap}.excel-intro .panel-heading,.excel-import .panel-heading,.import-preview .panel-heading,.reminder-intro .panel-heading,.reminder-email .panel-heading,.reminder-calendar .panel-heading{padding:0 0 16px}.excel-export-options{display:grid;grid-template-columns:1fr 1fr;gap:16px}.excel-export-options article{padding:18px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.excel-export-options h3{font-size:1rem;margin:0}.excel-export-options p{margin:10px 0 18px}.excel-import input[type=file]{max-width:100%;overflow:hidden;font-size:.8rem;padding:12px}.excel-import input[type=file]::file-selector-button{padding:8px 12px;margin-left:12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--surface)}.import-note{display:flex;align-items:flex-start;gap:10px;background:var(--accent-soft);color:var(--accent-text)!important;padding:12px;border-radius:8px;line-height:2;font-size:.82rem}.import-note svg{flex-shrink:0;margin-top:4px}.import-success{padding:12px;background:var(--accent-soft);color:var(--accent-text);display:flex;gap:8px;align-items:center;line-height:1.8;border-radius:8px;font-size:.86rem;overflow-wrap:anywhere}.tools-check{display:flex!important;align-items:center;gap:10px;line-height:1.8;margin:15px 0;font-size:.86rem!important;cursor:pointer}.tools-check input[type=checkbox]{display:block;width:20px;height:20px;flex-shrink:0;margin:0;padding:0;accent-color:var(--green)}.tools-actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.import-errors{padding:16px;background:var(--danger-soft);color:var(--danger);border-radius:8px;font-size:.85rem;line-height:2}.import-errors ul{padding-right:18px;margin:12px 0}.backup-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.backup-counts>div{display:flex;align-items:center;justify-content:space-between;padding:13px;background:var(--surface-2);border-radius:8px;font-size:.82rem;gap:12px}.reminder-email .form-grid{grid-template-columns:2fr 1fr 1fr}.reminder-status{padding-block:18px;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.reminder-status span{display:block;font-size:.75rem;color:var(--muted);margin-bottom:8px}.reminder-status b{font-size:.83rem;font-weight:500;line-height:1.9}.calendar-link-box{padding:15px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}.calendar-link-box input{font-size:.78rem;overflow-wrap:anywhere}.calendar-link-box button{margin-top:12px}.reminder-email .feature-note,.reminder-calendar .feature-note{margin-bottom:0}.tools-tabs{max-width:100%}.tools-tabs>button{white-space:normal}
@media(max-width:800px){.excel-export-options{grid-template-columns:1fr}.reminder-email .form-grid{grid-template-columns:1fr 1fr}.reminder-email .form-grid>label:first-child{grid-column:1/-1}.reminder-status{grid-template-columns:1fr}}
@media(max-width:560px){.release-intro,.release-card,.excel-intro,.excel-import,.import-preview,.reminder-intro,.reminder-email,.reminder-calendar{padding:18px}.tools-tabs>button{font-size:.75rem;padding:9px 6px;flex:1}.release-intro h2{font-size:1rem}.release-card .panel-heading{flex-wrap:wrap}.excel-export-options article{padding:15px}.excel-import .form-grid,.reminder-email .form-grid{grid-template-columns:minmax(0,1fr)}.tools-actions>button{flex:1;min-height:44px;font-size:.85rem}.backup-counts{grid-template-columns:1fr}.calendar-link-box input{font-size:16px}.import-errors{font-size:.8rem}.reminder-calendar .panel-heading{flex-wrap:wrap}.tools-check{min-height:44px}.import-preview td,.import-preview th{font-size:.8rem}}
/* Petty cash uses the same theme, typography, and privacy controls as the book. */
.advance-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 20px}.advance-toolbar>.primary:last-child{margin-inline-start:auto}.advance-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px;margin-bottom:22px}.advance-card{padding:22px}.advance-card.selected{outline:2px solid var(--green);outline-offset:-2px}.advance-card h2,.advance-detail h2{overflow-wrap:anywhere}.advance-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;margin-bottom:18px}.advance-values>div{display:flex;flex-direction:column;gap:8px}.advance-values span{font-size:.82em;color:var(--muted)}.advance-values strong{font-size:1.12em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.advance-detail-values{background:var(--surface-2);padding:20px;border-radius:12px;margin-bottom:18px}.advance-overview h2{display:flex;gap:8px;align-items:center}.advance-overview{margin-bottom:20px}.advance-detail .filters{flex-wrap:wrap}.advance-detail .filters .search{min-width:180px}.advance-detail .panel-heading>.row-actions{flex-wrap:wrap}.advance-help{margin-top:22px;padding:24px}.advance-help h2{font-size:1em}.advance-help p{font-size:.87em;line-height:1.9;color:var(--muted)}.advance-table td{vertical-align:top}.advance-table td:first-child{min-width:180px;max-width:320px;overflow-wrap:anywhere}.advance-highlight{outline:2px solid var(--green);outline-offset:-2px}.advance-table .row-actions{flex-wrap:wrap}.advance-detail select,.advance-detail input{min-height:44px}.advance-card .text-button,.advance-toolbar button{min-height:44px}
@media(max-width:640px){.advance-card{padding:18px}.advance-detail>.panel-heading{align-items:flex-start;flex-direction:column}.advance-detail-values{grid-template-columns:1fr 1fr;padding:14px;gap:16px}.advance-values strong{font-size:1em}.advance-toolbar>button{flex:1 1 140px}.advance-table{min-width:720px}.advance-detail .filters>select{width:100%}.advance-overview>.panel-heading{flex-wrap:wrap}.advance-toolbar>.primary:last-child{margin-inline-start:0}}
/* Private installment receipts. */
.receipt-dialog{max-width:700px}.receipt-installment{display:flex;flex-direction:column;gap:5px;padding:16px;background:var(--surface-2);border-radius:12px;margin-bottom:18px}.receipt-installment small{color:var(--muted)}.receipt-list{display:flex;flex-direction:column;gap:14px;margin:18px 0}.receipt-card{border:1px solid var(--line);border-radius:12px;padding:16px}.receipt-card-heading{display:flex;gap:12px;align-items:flex-start}.receipt-card-heading>svg{color:var(--green);flex-shrink:0;margin-top:4px}.receipt-card-heading>div{min-width:0;flex:1}.receipt-card-heading b{display:block;overflow-wrap:anywhere;font-size:.9em}.receipt-card-heading small{display:block;color:var(--muted);font-size:.8em}.receipt-card>p{overflow-wrap:anywhere;font-size:.85em;margin:10px 0}.receipt-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.receipt-actions a{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink);min-height:44px}.receipt-image{display:block;max-width:100%;max-height:65vh;object-fit:contain;border:1px solid var(--line);border-radius:8px;margin:16px auto 0}.receipt-picker{margin-bottom:16px}.receipt-picker>input{font-size:max(.85rem,16px);min-height:48px;padding:10px;max-width:100%}.receipt-picker input::file-selector-button{font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--ink);padding:5px 10px;margin-inline-end:8px;cursor:pointer}.receipt-selection{display:flex;gap:6px;align-items:center;font-size:.8em;overflow-wrap:anywhere;color:var(--muted)}.receipt-upload-form{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.receipt-upload-form h3{font-size:1em;display:flex;gap:8px;align-items:center}.receipt-loading{display:flex;gap:10px;align-items:center;padding:18px}.installment-table .row-actions{flex-wrap:wrap}.receipt-card .icon-button{min-height:44px;min-width:44px}
@media(max-width:640px){.receipt-card{padding:12px}.receipt-card-heading{flex-wrap:wrap}.receipt-card-heading>.status{margin-inline-start:34px}.receipt-actions>.secondary{flex:1;justify-content:center}.receipt-dialog .modal-footer{flex-wrap:wrap}.receipt-dialog .modal-footer>button{flex:1}.receipt-installment{font-size:.9em}.receipt-image{max-height:55vh}}
/* Dollar holdings use existing local fonts, colors and mobile input sizing. */
.fx-panel{margin-bottom:22px}.fx-panel h2{display:flex;align-items:center;gap:9px}.fx-quote{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;margin-bottom:18px}.fx-quote>div{display:grid;gap:8px}.fx-quote small,.fx-card small,.fx-overview small{color:var(--muted);font-size:.78rem}.fx-quote strong{font-size:1.08rem}.fx-holdings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:18px}.fx-card{border:1px solid var(--line);border-radius:12px;padding:18px;overflow-wrap:anywhere}.fx-card-heading{display:flex;justify-content:space-between;gap:12px}.fx-card-heading strong{display:block;font-size:1.25rem;margin-top:5px}.fx-values{display:grid;gap:3px;margin:15px 0}.fx-card>p{margin:10px 0;font-size:.85rem}.fx-overview{display:flex;align-items:center;gap:15px;margin-bottom:20px}.fx-overview>div{flex:1}.fx-overview h2{font-size:1.05rem}.fx-overview p{margin:6px 0}.fx-panel .feature-note a{text-decoration:underline}.fx-panel input,.fx-panel select{font-size:max(1rem,16px)}
@media(max-width:720px){.fx-holdings{grid-template-columns:1fr}.fx-quote{align-items:flex-start;flex-direction:column}.fx-panel .panel-heading{flex-wrap:wrap}.fx-overview{align-items:flex-start;flex-wrap:wrap}.fx-quote strong{font-size:.95rem}.fx-card .icon-button{min-height:44px;min-width:44px}}

/* Record colors are categorical cues; payment and warning badges retain their roles. */
[data-tone]{--tone-h:210;--tone-s:48%;--tone-bg:hsl(var(--tone-h) var(--tone-s) 96%);--tone-hover:hsl(var(--tone-h) var(--tone-s) 95.7%);--tone-badge:hsl(var(--tone-h) var(--tone-s) 90%);--tone-ink:hsl(var(--tone-h) 46% 27%);--tone-marker:hsl(var(--tone-h) 46% 43%)}
/* Independent cool hues avoid brown/olive surfaces in dark mode. */
:root[data-theme=dark] [data-tone]{--tone-bg:hsl(var(--tone-dark-h,210) 22% 18%);--tone-hover:hsl(var(--tone-dark-h,210) 25% 22%);--tone-badge:hsl(var(--tone-dark-h,210) 28% 26%);--tone-ink:hsl(var(--tone-dark-h,210) 48% 83%);--tone-marker:hsl(var(--tone-dark-h,210) 48% 67%)}
.toned-record{background:var(--tone-bg)}tbody tr.toned-record:hover{background:var(--tone-hover)}tbody tr.toned-record>td:first-child{border-inline-start:3px solid var(--tone-marker)}
.toned-record .record-icon,.toned-record .category-label{background:var(--tone-badge);color:var(--tone-ink)}.toned-record .category-label{border-color:transparent}
article.toned-record,.budget-row.toned-record,.wealth-mobile-card.toned-record,.account-card.toned-record,.advance-card.toned-record,.fx-card.toned-record{border-inline-start:3px solid var(--tone-marker)}
.commitment-row.toned-record{padding-inline:14px}.record-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 24px 18px;font-size:.76rem;color:var(--muted)}.record-legend-item{display:inline-flex;align-items:center;gap:7px;background:var(--tone-bg);color:var(--tone-ink);border:1px solid var(--line);border-radius:7px;padding:3px 8px}.record-legend-item i{width:7px;height:14px;border-radius:3px;background:var(--tone-marker)}
:root[data-calm=true] .toned-record{background:var(--surface)}
@media(max-width:560px){.transactions-table tr.toned-record{background:var(--tone-bg);border-inline-start:3px solid var(--tone-marker)}.transactions-table tr.toned-record>td:first-child{border-inline-start:0}.record-legend{padding-inline:16px;gap:6px}.record-legend-item{max-width:100%;overflow-wrap:anywhere}}
[data-tone="tone-0"]{--tone-h:32;--tone-dark-h:218}
[data-tone="tone-1"]{--tone-h:208;--tone-dark-h:202}
[data-tone="tone-2"]{--tone-h:265;--tone-dark-h:265}
[data-tone="tone-3"]{--tone-h:158;--tone-dark-h:174}
[data-tone="tone-4"]{--tone-h:188;--tone-dark-h:188}
[data-tone="tone-5"]{--tone-h:352;--tone-dark-h:282}
[data-tone="tone-6"]{--tone-h:312;--tone-dark-h:252}
[data-tone="tone-7"]{--tone-h:232;--tone-dark-h:232}
[data-tone="tone-8"]{--tone-h:92;--tone-dark-h:194}
[data-tone="tone-9"]{--tone-h:18;--tone-dark-h:242}
[data-tone="tone-10"]{--tone-h:136;--tone-dark-h:162}
[data-tone="tone-11"]{--tone-h:288;--tone-dark-h:272}
[data-tone="tone-12"]{--tone-h:52;--tone-dark-h:210}
[data-tone="tone-13"]{--tone-h:210;--tone-dark-h:220;--tone-s:12%}
[data-tone="tone-14"]{--tone-h:222;--tone-dark-h:222}
[data-tone="tone-15"]{--tone-h:175;--tone-dark-h:180}

.toned-record .text-button,.toned-record .icon-button:not(.danger){color:var(--tone-ink)}.toned-record .account-symbol{background:var(--tone-badge);color:var(--tone-ink)}.budget-card.toned-record{border-inline-start:3px solid var(--tone-marker)}

/* Account cues in recent transactions and category-based expense rows. */
.dashboard-recent.toned-record{border-inline-start:3px solid var(--tone-marker)}
.record-account{display:inline-block;background:var(--tone-badge);color:var(--tone-ink);border-radius:6px;padding:1px 7px;line-height:1.9;overflow-wrap:anywhere}
.transactions-table .record-account{margin-block-start:4px}

.reminder-email-feedback .form-error,.reminder-email-feedback .import-success{margin:14px 24px;overflow-wrap:anywhere}.reminder-status b{overflow-wrap:anywhere}.reminder-email-feedback .feature-note{margin-inline:24px}

/* Running balances are readable in both themes, compact and calm modes. */
.ledger-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 24px 18px;margin:0}.ledger-summary>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.ledger-summary dt{font-size:.73rem;color:var(--muted);line-height:1.9}.ledger-summary dd{margin:7px 0 0;font-size:.98rem;font-weight:600;overflow-wrap:anywhere;line-height:1.8}.ledger-note{font-size:.75rem;color:var(--muted);line-height:2;padding:0 24px 16px}.ledger-note.form-error{color:var(--warning)}.account-ledger .ledger-row{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(170px,auto);align-items:start;gap:12px}.ledger-direction{padding-top:3px}.ledger-direction:not(.green):not(.red){color:var(--muted)}.ledger-main{min-width:0}.ledger-row>.ledger-values{text-align:left;min-width:0}.ledger-values>strong{display:block;max-width:none!important;line-height:1.8}.ledger-values>strong>small{display:inline;font-size:.72rem}.ledger-row .ledger-running-balance{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:0 5px;line-height:1.9;margin-top:6px}.ledger-running-balance>b{font-weight:600;font-size:.85rem;color:var(--ink);overflow-wrap:anywhere}.ledger-running-balance>b.red{color:var(--warning)}
@media(max-width:800px){.ledger-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.ledger-summary{padding:0 18px 14px;gap:8px}.ledger-summary>div{padding:10px}.ledger-summary dd{font-size:.88rem}.ledger-note{padding-inline:18px}.account-ledger .ledger-row{grid-template-columns:22px minmax(0,1fr);gap:4px 10px}.ledger-row>.ledger-main{grid-column:2;min-width:0}.ledger-row>.ledger-values{grid-column:2;text-align:right;justify-self:stretch;margin-top:4px}.ledger-values>strong{text-align:right}.ledger-row .ledger-running-balance{justify-content:flex-start}}

.amount-preview{display:block;line-height:1.9;min-height:1.6em}.amount-words{display:block;font-size:.75rem;color:var(--muted);font-weight:400}.category-field{min-width:0}.category-field>label{margin-top:0}.category-add{font-size:.8rem;min-height:38px;padding:4px 0}.category-create{padding:14px;margin-top:7px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.category-create>label{margin-top:0}.category-colors{border:0;padding:0;margin:12px 0}.category-colors legend{font-size:.8rem;color:var(--muted);margin-bottom:8px}.category-color{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;min-height:44px;min-width:64px;padding:6px!important;margin:3px!important;border:1px solid var(--line);border-radius:8px;font-size:.7rem!important;cursor:pointer}.category-color input{width:15px!important;min-height:15px!important;margin:0!important;accent-color:var(--accent-text)}.category-color.selected{outline:2px solid var(--accent-text);outline-offset:1px}.category-create>.secondary{width:100%;justify-content:center}.category-create .form-error{line-height:1.8}.form-grid>.category-field{align-self:start}
.category-color span::before{content:'';display:block;width:20px;height:5px;margin:0 auto 4px;border-radius:3px;background:var(--tone-marker)}

.expense-photo-picker{margin-block:14px}.expense-photo-picker>.receipt-picker{margin:0}.expense-photo-picker>.text-button{margin-top:6px}.expense-photo-button{white-space:nowrap}.transactions-table .row-actions{flex-wrap:wrap}

.account-archive-toggle{margin:0 0 18px;line-height:1.9;flex-wrap:wrap}.account-actions{flex-wrap:wrap}.archive-badge{margin-top:6px}

/* Complete backup controls stay readable on narrow screens and in every theme. */
.automatic-backup-intro form>label:not(.tools-check){display:grid;gap:.5rem;max-width:22rem;margin-top:1rem}.backup-list{display:grid;gap:.8rem}.backup-entry{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding:1rem 0;border-bottom:1px solid var(--line)}.backup-entry>div{min-width:0}.backup-entry p{overflow-wrap:anywhere}.backup-entry details p{font-size:.8rem}.backup-entry summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.backup-entry form{flex-shrink:0}@media(max-width:600px){.backup-entry{flex-direction:column}.automatic-backup-intro .panel-heading{align-items:start;flex-wrap:wrap}}

/* People, hierarchical categories and bank statement review. */
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:1rem}.person-card{padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.person-card p{line-height:2}.person-convert{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.person-convert summary{cursor:pointer;min-height:44px}.category-tree{display:grid;gap:.55rem;margin-top:1rem}.category-tree-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border-radius:12px}.category-tree-row>div{display:grid;gap:.3rem;min-width:0}.category-tree-row small{color:var(--muted);overflow-wrap:anywhere}.category-tree-row label{max-width:24rem}.bank-upload-dialog{width:min(980px,calc(100vw - 2rem));max-width:980px;overflow-wrap:anywhere}.bank-mapping{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1rem 0}.bank-preview{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.bank-preview .table-scroll{max-height:24rem;overflow:auto}.bank-rows td{min-width:8rem;max-width:25rem;white-space:normal;overflow-wrap:anywhere}.bank-rows .row-actions{flex-wrap:wrap;min-width:11rem}.tools-tabs{flex-wrap:wrap}.report-account-filter{flex-wrap:wrap;gap:1rem}@media(max-width:600px){.bank-mapping{grid-template-columns:1fr}.people-grid{grid-template-columns:1fr}.category-tree-row{align-items:start;flex-direction:column}.category-tree-row label{width:100%}.bank-upload-dialog{padding:1.1rem}.bank-upload-dialog .form-grid{grid-template-columns:1fr}}

/* Expense composition: a readable total and a list without nested scrolling. */
.dashboard-grid .category-panel .breakdown{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:24px;padding:8px 24px 24px}
.category-panel .donut{--donut-center:7.6rem;width:10rem;height:10rem}
.category-panel .donut>div{width:var(--donut-center);height:var(--donut-center);gap:3px}
.category-panel .donut .donut-total{max-width:calc(100% - 20px);font-size:min(1.05rem,calc((var(--donut-center) - 20px) / var(--total-chars,10) / .8));line-height:1.5;font-weight:600;white-space:nowrap;direction:ltr;unicode-bidi:isolate}
.category-panel .donut-total .amount-value{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.category-panel .category-legend{flex:1 1 180px;min-width:0}
.dashboard-grid .category-panel .category-legend .legend{display:block;width:100%;max-width:none;min-width:0;max-height:none;overflow:visible}
.dashboard-grid .category-panel .legend button{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:start;min-height:42px;padding:6px 4px}
.category-panel .legend button>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.category-panel .legend button>b{margin:0;white-space:nowrap;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}
.category-panel .category-legend-toggle{font-size:.8rem;margin-top:6px;min-height:44px;padding:6px 4px}
@media(max-width:1200px){.category-panel .donut{--donut-center:7.2rem;width:9.5rem;height:9.5rem}}
@media(max-width:560px){.dashboard-grid .category-panel .breakdown{padding:4px 18px 20px;gap:18px}.category-panel .donut small{font-size:.7rem}}

/* 1.15: shared reading, forms and task layout. */
[hidden]{display:none!important}
.amount-value{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.12em .28em;vertical-align:baseline;max-width:100%;min-width:0;line-height:1.55;overflow-wrap:normal;font-variant-numeric:tabular-nums}
.money-number{display:inline-block;white-space:nowrap;overflow-wrap:normal;word-break:normal;unicode-bidi:isolate;max-width:100%}
.amount-value .money-unit{white-space:nowrap;font-size:.66em;line-height:1.5}
.stat strong,.feature-stats strong,.flow-values strong,.wealth-overview-values strong,.account-card>strong,.cash-number strong{min-width:0;max-width:100%;overflow-wrap:normal;line-height:1.65}
.panel :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);font:inherit;outline-offset:2px}
.panel label:has(>input:not([type=checkbox]):not([type=radio]),>select,>textarea){display:grid;gap:7px;font-size:.88rem;margin-block:12px}
.panel .tools-check,.panel .all-months{display:flex;align-items:center;gap:9px}
.panel input[type=checkbox],.panel input[type=radio]{accent-color:var(--green);flex-shrink:0;min-width:18px;min-height:18px}
.panel :where(input,select,textarea):focus-visible{outline:2px solid var(--focus);border-color:var(--focus)}
.panel label.search{display:flex;margin:0;align-items:center}
.panel .search input{border:0;background:transparent;padding-block:8px;outline-offset:0}
[aria-invalid=true]{border-color:var(--danger)!important}
.field-error{display:block;color:var(--danger);font-size:.82rem;line-height:1.8;margin-top:6px}
.form-error:focus{outline:2px solid var(--danger);outline-offset:3px}
.modal .dialog-body{min-width:0}
.managed-dialog{display:flex;flex-direction:column;overflow:hidden}
.managed-dialog>.modal-header,.managed-dialog>.discard-dialog,.managed-dialog>.form-error{flex-shrink:0}
.managed-dialog>.dialog-body{overflow-y:auto;min-height:0;overscroll-behavior:contain}
.managed-dialog{max-height:calc(var(--dialog-viewport,90vh) - 32px)}
.transaction-title-button{font:inherit;font-size:.9rem;font-weight:600;color:inherit;background:none;text-align:start;padding:5px 0;white-space:normal;overflow-wrap:anywhere;line-height:1.8}
.transaction-title-button:hover{color:var(--accent-text);text-decoration:underline;text-underline-offset:4px}
.transaction-detail-dialog{width:650px}
.transaction-detail-hero{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.transaction-detail-hero>span{font-size:.85rem;color:var(--muted)}
.transaction-detail-hero h3{font-size:1.1rem;overflow-wrap:anywhere}
.transaction-detail-hero strong{font-size:1.8rem;max-width:100%;line-height:1.7}
.transaction-detail-hero.income{border-inline-start:4px solid var(--positive)}
.transaction-detail-hero.expense{border-inline-start:4px solid var(--warning)}
.transaction-detail-fields{margin:15px 0}
.transaction-detail-fields>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;padding:13px 0;border-bottom:1px solid var(--line);align-items:start}
.transaction-detail-fields dt{color:var(--muted);font-size:.85rem}
.transaction-detail-fields dd{margin:0;min-width:0;overflow-wrap:anywhere}
.transaction-detail-fields .text-button{padding:0;text-align:start;white-space:normal;color:var(--accent-text)}
.transaction-detail-fields .status{margin-inline-start:10px;white-space:normal}
.detail-tags{display:flex;gap:7px;flex-wrap:wrap}
.detail-notes{white-space:pre-wrap;overflow-wrap:anywhere}
.detail-photos h4{margin:15px 0 8px}
.detail-photo{padding:15px;border:1px solid var(--line);border-radius:12px;margin-top:12px;overflow-wrap:anywhere}
.detail-photo>.tools-actions{margin-top:12px;flex-wrap:wrap}
.transaction-detail .modal-footer{flex-wrap:wrap}
.draft-recovery,.draft-inbox{border:1px solid var(--warning-line);background:var(--surface-2);border-radius:12px;padding:15px;margin-bottom:20px;font-size:.85rem;overflow-wrap:anywhere}
.draft-recovery p,.draft-inbox p{margin-block:7px;color:var(--muted)}
.draft-recovery>div{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
.draft-recovery .draft-review-check{display:flex;align-items:flex-start;gap:10px;margin-block:12px;line-height:1.9}
.draft-review-check input{width:20px;height:20px;flex-shrink:0;margin-top:4px}
.draft-controls{margin:0;padding:0;border:0;min-width:0}
.draft-note{font-size:.8rem;color:var(--muted);padding:8px 11px;border-inline-start:3px solid var(--green);margin-block:8px 15px;line-height:1.9}
.draft-warning{border-inline-start-color:var(--warning)}
.draft-inbox>summary{cursor:pointer;font-weight:600;min-height:30px}
.draft-inbox ul{list-style:none;padding:0;margin:12px 0 0}
.draft-inbox li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.draft-inbox li>span{flex:1;min-width:130px}
.toast{max-width:min(620px,calc(100vw - 32px));line-height:1.9;align-items:flex-start;z-index:45}
.toast>.money-value,.toast .money-value{vertical-align:middle}
.toast[data-tone=error]{border-inline-start:4px solid var(--danger)}
.feedback-refresh-note{display:block;margin-top:5px;color:var(--muted);font-size:.85em}
@media(max-width:800px){.managed-dialog .icon-button,.mobile-operations-trigger{min-width:44px;min-height:44px}.transaction-title-button{min-height:44px}.draft-inbox .text-button{min-height:44px}.sheet-overlay{padding:0;align-items:flex-end}.sheet-overlay>.transaction-detail-dialog{width:100%;max-width:100%;border-radius:18px 18px 0 0;max-height:calc(var(--dialog-viewport,100vh) - 12px);padding-bottom:max(18px,env(safe-area-inset-bottom))}.transaction-detail-fields>div{grid-template-columns:90px minmax(0,1fr);gap:10px}.transaction-detail .modal-footer>button{flex:1 1 160px;min-width:0;white-space:normal;line-height:1.7;gap:6px;padding:10px 12px}.managed-dialog .dialog-body{scroll-padding-block:16px 90px}}
.modal .modal-header{position:sticky;top:-1px;background:var(--surface);z-index:3;padding-block:8px;align-items:center}
.modal .modal-footer{position:sticky;bottom:0;background:var(--surface);z-index:2;padding-block:14px 4px;box-shadow:0 -10px 15px var(--surface);gap:12px}
.modal-footer .secondary,.modal-footer .primary{min-height:46px}
.discard-dialog{position:sticky;top:0;z-index:5;border:1px solid var(--warning-line);border-radius:12px;background:var(--warning-soft);color:var(--warning);padding:16px;margin-bottom:18px}
.discard-dialog>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.balance-preview{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:14px;margin-block:18px;font-size:.86rem}
.balance-preview>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;padding-block:6px}
.balance-preview>div>span:last-of-type{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.balance-preview small,.balance-preview p{color:var(--muted);font-size:.8rem;line-height:1.9}
.balance-arrow{color:var(--accent-text);padding-inline:3px}
.dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.dashboard-summary>button{min-width:0;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:start;background:var(--surface);color:var(--ink)}
.dashboard-summary>button:first-child{border-inline-start:4px solid var(--green)}
.dashboard-summary>button>span{display:block;font-size:.85rem;color:var(--muted)}
.dashboard-summary strong{display:block;font-size:1.5rem;margin-block:8px;min-width:0}
.dashboard-summary>button>small{display:block;font-size:.74rem;color:var(--muted)}
.dashboard-extras{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:14px 18px;margin-bottom:22px}
.dashboard-extras>summary{cursor:pointer;color:var(--accent-text);min-height:32px}
.dashboard-extras[open]>.panel{margin:14px 0 0}
.dashboard-grid{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch}
.dashboard-widget{flex:1 1 calc(50% - 10px);min-width:min(100%,320px);width:auto}
.dashboard-widget.widget-flow,.dashboard-widget.widget-wealth,.dashboard-widget.widget-recent{flex-basis:100%}
.dashboard-grid .cash-accounts{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-toolbar .quick-actions .primary,.heading-actions .primary{min-height:44px}
.person-detail,.account-ledger,.advance-detail{scroll-margin-top:18px}
.detail-back{margin:12px 20px 0}
.person-quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 20px 16px}
.person-card .text-button{color:var(--accent-text)}
.person-card{min-width:0}
.person-card .row-actions{flex-wrap:wrap}
.preferred-account[aria-pressed=true]{font-weight:600;color:var(--accent-text)}
.account-actions{flex-wrap:wrap}
.transaction-filters{display:grid;grid-template-columns:minmax(200px,2fr) repeat(3,minmax(120px,1fr));gap:12px;padding:0 20px 16px;align-items:end}
.transaction-filters label{font-size:.8rem;color:var(--muted)}
.transaction-filters label.search{align-self:end;min-height:46px}
.filter-chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 18px}
.filter-chips button{display:inline-flex;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--line);border-radius:30px;padding:7px 12px;min-height:36px;font-size:.8rem;max-width:100%;overflow-wrap:anywhere}
.transaction-day td{background:var(--surface-2)!important;padding:10px 20px;font-size:.82rem;border-block:1px solid var(--line)}
.transaction-day td>span:first-child{margin-inline-end:20px;color:var(--muted)}
.transaction-day .amount-value{font-size:.9rem}
.list-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 20px;font-size:.82rem;color:var(--muted)}
.mobile-operations-trigger{display:none}
.record-actions-control .row-actions{justify-content:flex-end}
.loan-groups{display:grid;gap:16px;padding:0 20px 20px}
.loan-group{border:1px solid var(--line);border-inline-start:3px solid var(--tone-marker);border-radius:12px;min-width:0;overflow:hidden}
.loan-group-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 18px 12px}
.loan-group h3{font-size:1rem;font-weight:600}
.loan-group-heading p{color:var(--muted);font-size:.8rem}
.loan-group progress{display:block;width:calc(100% - 36px);height:6px;margin-inline:18px;accent-color:var(--tone-marker);border:0;border-radius:10px;overflow:hidden}
.loan-group progress::-webkit-progress-bar{background:var(--line)}
.loan-group progress::-webkit-progress-value{background:var(--tone-marker)}
.loan-summary{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:16px 18px;flex-wrap:wrap}
.loan-summary>div{min-width:0;flex:1 1 160px}
.loan-summary span{display:block;font-size:.75rem;color:var(--muted)}
.loan-summary strong{font-size:1.1rem}
.loan-group .table-scroll{background:var(--surface);border-top:1px solid var(--line)}
.loan-group .table-scroll td{font-size:.85rem}
.loan-group .row-actions{flex-wrap:wrap}
.file-picker{display:flex!important;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;border:1px dashed var(--line);border-radius:10px;background:var(--surface-2)}
.file-picker .file-button{padding:8px 13px;background:var(--accent-soft);color:var(--accent-text);border-radius:8px}
.file-picker input{position:absolute;width:1px!important;height:1px;opacity:0;overflow:hidden}
.file-picker:focus-within{outline:2px solid var(--focus);outline-offset:3px}
.file-picker .file-name{font-size:.8rem;overflow-wrap:anywhere;min-width:0}
.setup-details{border:1px solid var(--line);border-radius:12px;margin-bottom:18px;background:var(--surface)}
.setup-details>summary{padding:16px 20px;cursor:pointer;color:var(--accent-text);min-height:48px}
.setup-details>.panel{margin:0;border:0}
.source-badge{display:inline-flex;border:1px solid var(--line);border-radius:20px;padding:3px 8px;font-size:.72rem;color:var(--muted);line-height:1.8;max-width:100%;white-space:normal}
.nav-section{display:block;font-size:.7rem;color:var(--muted);padding:18px 14px 6px}
@media(max-width:1200px){.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid .cash-accounts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.dashboard-widget{flex-basis:100%;min-width:0}.modal-footer{padding-bottom:max(8px,env(safe-area-inset-bottom))!important}.record-actions-control .mobile-operations-trigger{display:flex}.record-actions-control .row-actions{display:none}.record-actions-control .row-actions[data-open=true]{display:flex;flex-wrap:wrap;margin-top:8px}.record-actions-control{min-width:0}.loan-group .installment-table{min-width:600px}.global-search{min-width:40px}.transaction-filters{padding-inline:16px}.panel :where(input,select,textarea){font-size:max(16px,1rem)}}
@media(max-width:560px){.dashboard-summary{gap:10px}.dashboard-summary>button{padding:13px}.dashboard-summary strong{font-size:1.35rem}.dashboard-summary>button>span{font-size:.77rem}.dashboard-summary>button>small{font-size:.7rem}.person-quick-actions{margin-inline:16px;display:grid;grid-template-columns:1fr 1fr}.person-quick-actions .secondary{padding-inline:8px;font-size:.8rem}.transaction-filters{gap:8px}.transaction-filters .search{grid-column:1/-1}.transaction-filters>label:last-child{grid-column:1/-1}.transaction-day{display:block!important;background:var(--surface-2)}.transaction-day td{display:flex!important;flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%;min-height:44px}.transaction-day td::before{display:none!important}.transaction-day td>span:first-child{margin:0}.loan-groups{padding-inline:12px}.loan-group-heading{padding:14px;flex-wrap:wrap}.loan-group-heading .secondary{font-size:.78rem}.loan-summary{padding:14px;gap:12px}.loan-summary>div{flex-basis:130px}.balance-preview{font-size:.8rem}.balance-preview>div{display:block}.balance-preview>div>span:first-child{display:block;margin-bottom:6px}.modal .modal-header h2{font-size:1.05rem}.topbar-left{gap:0}.topbar-left .icon-button{min-width:36px;min-height:44px}.breadcrumb b{max-width:78px}}

:root{--chart-tone-0:hsl(32 46% 43%);--chart-tone-1:hsl(208 46% 43%);--chart-tone-2:hsl(265 46% 43%);--chart-tone-3:hsl(158 46% 43%);--chart-tone-4:hsl(188 46% 43%);--chart-tone-5:hsl(352 46% 43%);--chart-tone-6:hsl(312 46% 43%);--chart-tone-7:hsl(232 46% 43%);--chart-tone-8:hsl(92 46% 43%);--chart-tone-9:hsl(18 46% 43%);--chart-tone-10:hsl(136 46% 43%);--chart-tone-11:hsl(288 46% 43%);--chart-tone-12:hsl(52 46% 43%);--chart-tone-13:hsl(210 46% 43%);--chart-tone-14:hsl(222 46% 43%);--chart-tone-15:hsl(175 46% 43%);}
:root[data-theme=dark]{--chart-tone-0:hsl(218 48% 67%);--chart-tone-1:hsl(202 48% 67%);--chart-tone-2:hsl(265 48% 67%);--chart-tone-3:hsl(174 48% 67%);--chart-tone-4:hsl(188 48% 67%);--chart-tone-5:hsl(282 48% 67%);--chart-tone-6:hsl(252 48% 67%);--chart-tone-7:hsl(232 48% 67%);--chart-tone-8:hsl(194 48% 67%);--chart-tone-9:hsl(242 48% 67%);--chart-tone-10:hsl(162 48% 67%);--chart-tone-11:hsl(272 48% 67%);--chart-tone-12:hsl(210 48% 67%);--chart-tone-13:hsl(220 48% 67%);--chart-tone-14:hsl(222 48% 67%);--chart-tone-15:hsl(180 48% 67%);}
:root[data-theme=dark] [data-tone]{--tone-bg:hsl(var(--tone-dark-h,210) 18% 16%);--tone-hover:hsl(var(--tone-dark-h,210) 20% 20%)}
.task-stepper{display:flex;gap:8px;list-style:none;margin:0 0 22px;padding:0;counter-reset:step}
.task-stepper li{flex:1;min-width:0}
.task-stepper button{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;min-height:46px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:.8rem;padding:9px}
.task-stepper button:disabled{cursor:default;opacity:1}
.task-stepper button>span{display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);width:24px;height:24px;border-radius:50%;flex-shrink:0}
.task-stepper [aria-current=step] button{border-color:var(--accent-text);color:var(--accent-text);background:var(--accent-soft)}
.task-stepper [data-complete=true] button>span{background:var(--green);color:var(--accent-ink);border-color:var(--green)}
.comparison-note{padding:12px 16px;background:var(--warning-soft);color:var(--warning);border:1px solid var(--warning-line);border-radius:10px;margin-bottom:18px;font-size:.83rem}
.comparison-bars{padding:0 22px 22px}
.comparison-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;text-align:start;width:100%;border-bottom:1px solid var(--line);padding:16px 0;background:transparent;color:var(--ink)}
.comparison-row:disabled{opacity:1;cursor:default}
.comparison-row>span:first-child{font-size:.9rem}
.comparison-row>strong{font-size:1rem;min-width:0;max-width:100%}
.comparison-tracks{grid-column:1/-1;display:grid;gap:5px;padding-block:4px}
.comparison-tracks>i{display:block;height:9px;border-radius:6px;max-width:100%}
.comparison-tracks .previous-track{background:var(--muted);opacity:.4}
.comparison-row>small{grid-column:1/-1;color:var(--muted);font-size:.78rem}
.inline-help{margin:14px 20px;border-top:1px solid var(--line);font-size:.84rem}
.inline-help>summary{padding-block:12px;cursor:pointer;color:var(--accent-text)}
.release-card>details{padding:0 22px 20px}
.release-card>details>summary{color:var(--accent-text);cursor:pointer;min-height:36px}
.release-card ul{margin-top:12px}
.sidebar .nav-label,.sidebar-note{display:none}
.sidebar .nav-item{font-size:.86rem;min-height:44px}
.heading{margin-bottom:20px}
.heading h1{font-size:clamp(1.4rem,2.2vw,1.85rem)}
.heading>div>p{font-size:.82rem;margin-top:5px;color:var(--muted)}
.heading .eyebrow{font-size:.72rem}
.source-badge{display:flex;width:fit-content;margin-top:5px}
.field-label{font-size:.9rem;font-weight:500;margin-bottom:8px}
.file-button{display:inline-flex;gap:7px;align-items:center}
@media(max-width:560px){.task-stepper{gap:5px}.task-stepper button{flex-direction:column;font-size:.7rem;padding:7px 3px;gap:5px}.task-stepper button>span{width:22px;height:22px}.comparison-bars{padding-inline:16px}.comparison-row{grid-template-columns:minmax(0,1fr);gap:5px}.comparison-row>strong{font-size:1.05rem}.heading h1{font-size:1.45rem}.heading .eyebrow{font-size:.7rem}}
.person-detail .panel-heading{flex-wrap:wrap;align-items:flex-start}
.person-detail .panel-heading>div:first-child{flex:1 1 100%}
.person-detail .tools-actions{width:100%;flex-wrap:wrap}
.person-detail .panel-heading h2{overflow-wrap:anywhere}
.people-index>label:not(.tools-check){display:grid;gap:8px;margin-block:14px}
.cash-held-note{font-size:.78rem;color:var(--muted);padding:0 24px 16px}
.dashboard-cash .panel-heading{padding-bottom:16px}
@media(max-width:560px){.topbar-left .icon-button{min-width:44px;min-height:44px}.breadcrumb b{max-width:70px}.dashboard-summary .amount-value{gap:.12em .2em}.dashboard-summary .money-unit{font-size:.6em}.cash-held-note{padding-inline:18px}.person-detail .tools-actions>*{flex:1;justify-content:center}}
.dialog-fields{border:0;margin:0;padding:0;min-width:0;max-width:100%}
.loan-group-heading>div{min-width:0;flex:1}
.loan-group h3,.person-card b{overflow-wrap:anywhere}
.person-card .text-button{max-width:100%}

/* 1.17: actions, reusable tools, density and explicit data states. */
.confirm-dialog{width:460px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 32px);overflow-y:auto;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 24px 65px var(--shadow);font:inherit;text-align:right;direction:rtl}.confirm-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(3px)}.confirm-dialog h2{font-size:1.2rem}.confirm-description{margin-block:16px;overflow-wrap:anywhere;font-size:.95rem}.confirm-description p+p{margin-top:10px}.confirm-dialog .modal-footer{flex-wrap:wrap}.confirm-dialog button{min-height:44px}.danger-button{background:var(--danger);color:#fff;border:1px solid var(--danger);border-radius:9px;padding:10px 18px}.danger-text{color:var(--danger)}.pending-deletes{display:grid;gap:10px;margin-bottom:18px}.pending-delete{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border:1px solid var(--warning-line);border-radius:12px;background:var(--warning-soft);font-size:.85rem}.pending-delete>span{min-width:0;overflow-wrap:anywhere}.pending-delete>button{flex-shrink:0}.saved-tools{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:12px 16px;margin-block:16px;min-width:0}.saved-tools summary{cursor:pointer;min-height:44px;align-content:center;color:var(--accent-text);font-size:.9rem}.saved-tools p{font-size:.78rem;color:var(--muted);line-height:2;margin-block:9px}.saved-tools>label,.preset-fields>label{display:block;font-size:.85rem;margin-block:10px;color:var(--muted)}.saved-tools input:not([type=checkbox]),.saved-tools select{display:block;width:100%;max-width:100%;min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;margin-top:6px}.saved-tools .preference-check{display:flex;align-items:center;gap:8px}.saved-tools .preference-check input{width:20px;min-width:20px;height:20px;margin:0}.saved-tools .form-error{color:var(--danger)}.saved-item-list{display:grid;gap:9px}.saved-item{display:flex;gap:8px;min-width:0}.saved-item>.secondary{flex:1;min-width:0;display:block;white-space:normal;text-align:right}.saved-item small{display:block;font-size:.75rem;font-weight:400;color:var(--muted)}.saved-item b{overflow-wrap:anywhere}.saved-item>.text-button{min-width:44px;min-height:44px}.preset-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter-presets{margin:12px 22px}.entry-footer{flex-wrap:wrap}.entry-footer>button{flex:1 1 130px!important;min-width:0!important;white-space:normal;min-height:44px}.entry-saved{border:1px solid var(--line);border-radius:9px;background:var(--positive-soft);color:var(--positive);padding:10px 12px;font-size:.85rem;margin-bottom:16px}.empty-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-block:16px}.error-banner{gap:15px;align-items:center}.error-banner p{font-size:.85em;margin-block:4px}.error-banner button{flex-shrink:0;min-height:44px}.initial-loading{text-align:center}.initial-loading .loading-state{min-height:95px}.initial-loading>p{font-size:.85rem;color:var(--muted);margin:16px}.loading-placeholders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.loading-placeholders>span{height:130px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);animation:placeholder-pulse 1.5s ease-in-out infinite alternate}@keyframes placeholder-pulse{to{opacity:.4}}[data-density=compact] .person-card,[data-density=compact] .advance-cards>article,[data-density=compact] .loan-group-heading,[data-density=compact] .saved-tools{padding-block:8px}[data-density=compact] .transaction-day td{padding-block:6px}[data-density=compact] .saved-item-list{gap:5px}[data-density=compact] .loan-groups{gap:12px}.filter-presets :is(button,input,select),.expense-templates button{min-height:44px}
@media(max-width:560px){.filter-presets{margin-inline:14px}.preset-fields{grid-template-columns:minmax(0,1fr);gap:0}.pending-delete{align-items:stretch;flex-direction:column}.pending-delete>button{align-self:flex-end}.confirm-dialog{padding:20px 18px}.confirm-dialog .modal-footer>button{min-width:0;white-space:normal}.loading-placeholders{grid-template-columns:1fr}.loading-placeholders>span{height:75px}.error-banner{align-items:stretch;flex-direction:column}.error-banner>button{align-self:flex-end}}
@media(prefers-reduced-motion:reduce){.loading-placeholders>span{animation:none}}

[data-theme=dark] .danger-button{background:#a24642;color:#fff;border-color:#d88880}

.consecutive-footer{display:grid;grid-template-columns:auto minmax(0,1.7fr) minmax(0,1fr)}.consecutive-footer>button{padding-inline:10px}.consecutive-footer>button:first-child{padding-inline:8px}@media(max-width:560px){.consecutive-footer{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:6px}.consecutive-footer>button:first-child{grid-row:2;grid-column:1/-1;padding-block:3px;background:transparent;border-color:transparent}.consecutive-footer>button:nth-child(2){grid-row:1;grid-column:1}.consecutive-footer>button:nth-child(3){grid-row:1;grid-column:2}}

/* 1.18: Chortkeh's original abacus mark, independent of appearance preferences. */
.brand-symbol{background:transparent;width:48px;height:48px;border-radius:0;flex-shrink:0}.brand-logo{display:block;width:48px;height:48px;object-fit:contain}.auth-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.auth-brand img{display:block;width:88px;height:88px;object-fit:contain}.auth-brand span{font-weight:700;letter-spacing:0}

.mobile-brand-logo{display:none}@media(max-width:800px){.mobile-brand-logo{display:block;width:36px;height:36px;object-fit:contain}.breadcrumb>b{display:none}}

/* Keyboard access and visible focus; calendar days retain a single Tab stop. */
.skip-link{position:fixed;inset-block-start:12px;inset-inline-start:12px;z-index:3000;transform:translateY(-180%);padding:12px 18px;border-radius:10px;background:var(--surface);color:var(--ink);border:2px solid var(--focus);font-weight:700}
.skip-link:focus{transform:none}
summary:focus-visible,.calendar-days button:focus-visible{outline:3px solid var(--focus);outline-offset:3px;position:relative;z-index:1}
#page-title:focus{outline:2px solid var(--focus);outline-offset:5px;border-radius:4px}
@media(max-width:800px){.calendar-days button{min-height:44px}.jalali-calendar{max-width:100%}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.jalali-calendar>.full{min-height:44px;padding-block:8px}
.managed-dialog .dialog-body{scroll-padding-block:16px 100px}

.preference-notice{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 16px;margin-bottom:20px;border:1px solid var(--warning-line);background:var(--warning-soft);color:var(--warning);border-radius:12px;font-size:.85rem}
.preference-settings .panel-heading{flex-wrap:wrap;gap:14px}.preference-summary{display:flex;align-items:flex-start;gap:12px;margin:0 24px 20px;padding:16px;border-radius:12px;background:var(--surface-2)}.preference-summary small{display:block;margin-top:6px;color:var(--muted)}.preference-scopes{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 24px 24px}.preference-scope{padding:16px;border:1px solid var(--line);border-radius:12px;min-width:0}.preference-scope h3{font-size:1rem;margin-bottom:10px}.preference-scope p{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}.preference-compare{display:grid;gap:12px;margin-bottom:16px}.preference-compare>div{padding:12px;background:var(--surface-2);border-radius:10px}.preference-scope button{min-height:44px;white-space:normal;line-height:1.7}
@media(max-width:800px){.preference-scopes{grid-template-columns:1fr;padding-inline:16px}.preference-summary{margin-inline:16px}.preference-scope .tools-actions{flex-wrap:wrap}}
.preference-color{display:inline-block;width:22px;height:22px;vertical-align:middle;margin-inline-end:8px;border:1px solid var(--line);border-radius:50%}
.preference-scope .tools-actions{flex-wrap:wrap}
.preference-settings>.feature-note{margin:0 24px 24px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:800px){.preference-settings>.feature-note{margin-inline:16px}}

/* 1.20.1: fit the complete amount inside its card, with a separate unit line. */
.stat strong>.amount-value,.dashboard-summary strong>.amount-value{width:100%}
.stat strong>.amount-value>.money-unit,.dashboard-summary strong>.amount-value>.money-unit{flex-basis:100%;margin-inline:0}
.dashboard-summary strong{max-width:100%}
@media(max-width:560px){.stats .stat:last-child{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.stats .stat.balance{display:block}.stats .stat.balance strong{text-align:start;margin-block:8px}.stats .stat.balance .stat-label{justify-content:space-between}}

/* 1.21: linked bank fee preview, shared across transfers and outgoing payments. */
.bank-fee-fields{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:14px 16px;margin-block:16px}.bank-fee-fields legend{padding-inline:6px;font-size:.9rem;font-weight:600}.bank-fee-fields>label{display:block;margin-block:9px;font-size:.9rem}.bank-fee-fields select{display:block;width:100%;min-height:44px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:9px 10px;font:inherit}.bank-fee-fields .preference-check{display:flex;align-items:center;gap:9px}.bank-fee-fields .preference-check input{width:20px;height:20px;flex-shrink:0}.bank-fee-preview{display:grid;gap:8px;padding:12px;background:var(--surface);border-radius:9px;font-size:.9rem;margin-block:12px}.bank-fee-preview>span{min-width:0;overflow-wrap:anywhere}.bank-fee-fields .field-hint{display:block;font-size:.77rem;line-height:2;margin-block:7px}.bank-fee-fields a{text-decoration:underline}.bank-fee-link{font-size:.78rem;color:var(--muted)}
