/* أنماط صفحة «المالية» منقولة من «الوعي الشخصي» بإذن المالك، ومحصورة في قسم «دبِّر» */
/* قواعدهم العامة للأيقونات والأزرار، محصورة في صفحة المالية ونافذتها */
:where(.fin-root,#libSheet) svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
:where(.fin-root,#libSheet) button{cursor:pointer;border:0;background:transparent;border-radius:10px;padding:10px 14px;min-height:auto}
:where(.fin-root,#libSheet) .list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
:is(.fin-root,#libSheet) .font-pick .big{font-size: 1.35rem; line-height: 1.3;}
:is(.fin-root,#libSheet) .primary{background: var(--accent); color: var(--accent-fg); font-weight: 700;}
:is(.fin-root,#libSheet) .ghost{background: var(--accent-soft); color: var(--accent); font-weight: 500;}
:is(.fin-root,#libSheet) .danger{color: var(--high); font-weight: 500;}
:is(.fin-root,#libSheet) .danger.armed{background: var(--high); color: #fff;}
:is(.fin-root,#libSheet) .icon-btn{padding: 8px; color: var(--muted);}
:is(.fin-root,#libSheet) .sub{margin: 2px 0 0; color: var(--muted); font-size: .9rem;}
:is(.fin-root,#libSheet) .section{display: grid; gap: 10px;}
:is(.fin-root,#libSheet) .section-head{display: flex; align-items: baseline; justify-content: space-between; gap: 8px;}
:is(.fin-root,#libSheet) .section-head small{color: var(--muted);}
:is(.fin-root,#libSheet) .today-card .txt{display: grid; gap: 2px; min-width: 0;}
:is(.fin-root,#libSheet) .list{list-style: none; margin: 0; padding: 0; display: grid; gap: 8px;}
:is(.fin-root,#libSheet) .task.done .check::before{background: var(--accent); border-color: var(--accent);}
:is(.fin-root,#libSheet) .task.done .check svg{opacity: 1;}
:is(.fin-root,#libSheet) .task.done .t-title{text-decoration: line-through; color: var(--muted); font-weight: 400;}
:is(.fin-root,#libSheet) .late{color: var(--high); font-weight: 700;}
:is(.fin-root,#libSheet) .num{font-variant-numeric: tabular-nums;}
:is(.fin-root,#libSheet) .empty{text-align: center; color: var(--muted); padding: 32px 16px; border: 1.5px dashed var(--line); border-radius: 14px;
  display: grid; gap: 6px; justify-items: center;}
:is(.fin-root,#libSheet) .empty strong{color: var(--fg); font-family: var(--font-display); font-size: 1.15rem;}
:is(.fin-root,#libSheet) .seg{display: flex; gap: 2px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 3px;}
:is(.fin-root,#libSheet) .seg button{flex: 1; padding: 7px 12px; color: var(--muted); border-radius: 9px; white-space: nowrap;}
:is(.fin-root,#libSheet) .seg button[aria-pressed="true"]{background: var(--accent-soft); color: var(--accent); font-weight: 700;}
:is(.fin-root,#libSheet) .goal{background: var(--card); border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 10px; padding: 12px 14px;}
:is(.fin-root,#libSheet) .goal .check{padding: 0; width: 32px; height: 32px;}
:is(.fin-root,#libSheet) .goal.done .check::before{background: var(--accent); border-color: var(--accent);}
:is(.fin-root,#libSheet) .goal.done .check svg{opacity: 1;}
:is(.fin-root,#libSheet) .goal .check[disabled],:is(.fin-root,#libSheet) .check.later{opacity: .35; cursor: default;}
:is(.fin-root,#libSheet) .panel{background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 14px; display: grid; gap: 10px; min-width: 0;}
:is(.fin-root,#libSheet) .hbars{display: grid; gap: 8px; list-style: none; margin: 0; padding: 0;}
:is(.fin-root,#libSheet) .hbar{display: grid; grid-template-columns: minmax(0, 7.5em) 1fr auto; gap: 10px; align-items: center; font-size: .9rem;}
:is(.fin-root,#libSheet) .hbar .name{overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
:is(.fin-root,#libSheet) .hbar .track{height: 10px; background: var(--bg); border-radius: 99px; overflow: hidden;}
:is(.fin-root,#libSheet) .hbar .fill{height: 100%; background: var(--accent); border-radius: 99px;}
:is(.fin-root,#libSheet) .hbar .v{font-variant-numeric: tabular-nums; color: var(--muted); min-width: 2.5em; text-align: end;}
:is(.fin-root,#libSheet) .row-between{display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;}
:is(.fin-root,#libSheet) .note-text{color: var(--muted); font-size: .88rem; margin: 0;}
:is(.fin-root,#libSheet) .btn-row{display: flex; gap: 8px; flex-wrap: wrap;}
:is(.fin-root,#libSheet) .alarm-actions button:not(.primary){background: color-mix(in srgb, var(--bg) 15%, transparent); color: var(--bg);}
:is(.fin-root,#libSheet) .sheet-head{display: flex; justify-content: space-between; align-items: center;}
:is(.fin-root,#libSheet) .field{display: grid; gap: 4px; min-width: 0;}
:is(.fin-root,#libSheet) .field > span{font-size: .85rem; color: var(--muted); font-weight: 500;}
:is(.fin-root,#libSheet) .hint{color: var(--muted); font-size: .76rem;}
:is(.fin-root,#libSheet) .grid2{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;}
@media (max-width: 360px){:is(.fin-root,#libSheet) .grid2{ grid-template-columns: 1fr; }}
:is(.fin-root,#libSheet) .switch{display: flex; align-items: center; gap: 8px; align-self: end; padding-bottom: 10px;}
:is(.fin-root,#libSheet) .switch input{width: 20px; height: 20px; accent-color: var(--accent);}
:is(.fin-root,#libSheet) .note{background: var(--bg); border-radius: 12px; padding: 10px 12px; display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .note p{margin: 0; white-space: pre-wrap; overflow-wrap: anywhere;}
:is(.fin-root,#libSheet) .note-foot button.armed{color: var(--high); font-weight: 700;}
:is(.fin-root,#libSheet) .sheet-actions{display: flex; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 14px;}
:is(.fin-root,#libSheet) .sheet-actions .primary{flex: 1 1 120px;}
:is(.fin-root,#libSheet) .parsed .tag.title{background: var(--bg); color: var(--fg); font-weight: 700;}
:is(.fin-root,#libSheet) .prayers .next{background: var(--accent-soft); color: var(--accent);}
:is(.fin-root,#libSheet) .prayers .next b{color: var(--accent); font-weight: 700;}
:is(.fin-root,#libSheet) .task.done .check .cnt,:is(.fin-root,#libSheet) .goal.done .check .cnt{display: none;}
:is(.fin-root,#libSheet) .progress-line{height: 6px; background: var(--line); border-radius: 99px; overflow: hidden;}
:is(.fin-root,#libSheet) .progress-line i{display: block; height: 100%; background: var(--accent); border-radius: 99px;}
:is(.fin-root,#libSheet) .cal-head{display: flex; align-items: center; justify-content: space-between; gap: 8px;}
:is(.fin-root,#libSheet) .cal-head .titles{display: grid; text-align: center;}
:is(.fin-root,#libSheet) .cal-head .titles small{color: var(--muted); font-size: .8rem;}
:is(.fin-root,#libSheet) .cal-head .nav{display: flex; gap: 4px;}
:is(.fin-root,#libSheet) .cal-head .nav button{padding: 8px; color: var(--fg); background: var(--card); border: 1px solid var(--line);}
:is(.fin-root,#libSheet) .cal-day.out{color: var(--muted); opacity: .45;}
:is(.fin-root,#libSheet) .cal-day .marks i.done{background: var(--line);}
:is(.fin-root,#libSheet) .subs{list-style: none; margin: 0; padding: 0; display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .sub{display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 10px; background: var(--bg);}
:is(.fin-root,#libSheet) .sub input[type=checkbox]{width: 20px; height: 20px; accent-color: var(--accent); flex: none;}
:is(.fin-root,#libSheet) .sub span{flex: 1; min-width: 0; overflow-wrap: anywhere;}
:is(.fin-root,#libSheet) .sub.done span{text-decoration: line-through; color: var(--muted);}
:is(.fin-root,#libSheet) .sub button{padding: 2px 6px; font-size: .75rem; color: var(--muted);}
:is(.fin-root,#libSheet) .sub button.armed{color: var(--high); font-weight: 700;}
:is(.fin-root,#libSheet) main.wrap > *,:is(.fin-root,#libSheet) .smart > *,:is(.fin-root,#libSheet) .section > *,:is(.fin-root,#libSheet) .panel > *,:is(.fin-root,#libSheet) #editor > *,:is(.fin-root,#libSheet) #projForm > *,:is(.fin-root,#libSheet) #libForm > *{min-width: 0;}
:is(.fin-root,#libSheet) .sessions .num{color: var(--muted); flex: none;}
:is(.fin-root,#libSheet) .section-head{flex-wrap: wrap; align-items: center;}
:is(.fin-root,#libSheet) .add-btn{display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; border-radius: 99px;
  background: var(--accent-soft); color: var(--accent); font-weight: 700; font-size: .9rem; white-space: nowrap;}
:is(.fin-root,#libSheet) .add-btn svg{width: 16px; height: 16px; stroke-width: 2.6;}
:is(.fin-root,#libSheet) .btn-row{display: flex; gap: 8px; flex-wrap: wrap; align-items: center;}
:is(.fin-root,#libSheet) .pbar.big{height: 10px;}
:is(.fin-root,#libSheet) .psub.late{color: var(--high); justify-content: flex-start;}
:is(.fin-root,#libSheet) .crumbs{display: flex;}
:is(.fin-root,#libSheet) .back{display: inline-flex; align-items: center; gap: 4px; padding: 6px 4px; color: var(--accent); font-weight: 700;}
:is(.fin-root,#libSheet) .back svg{width: 18px; height: 18px;}
:is(.fin-root,#libSheet) .phead .ghost{display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px;}
:is(.fin-root,#libSheet) .phead .ghost svg{width: 16px; height: 16px;}
:is(.fin-root,#libSheet) .proj{display: inline-flex; align-items: center; gap: 5px; color: var(--fg); font-weight: 500;}
:is(.fin-root,#libSheet) .proj i{width: 9px; height: 9px; border-radius: 50%; background: var(--pc); display: inline-block; flex: none;}
:is(.fin-root,#libSheet) .xls-btn{display: inline-flex; align-items: center; gap: 4px; padding: 6px 12px; border-radius: 99px; border: 1px solid var(--line); background: var(--card); color: var(--fg); font-size: .9rem;}
:is(.fin-root,#libSheet) .xls-btn svg{width: 16px; height: 16px; color: #1d7a45;}
:is(.fin-root,#libSheet) .seg-wrap{flex-wrap: wrap;}
:is(.fin-root,#libSheet) .seg-wrap button{flex: 1 1 auto;}
:is(.fin-root,#libSheet) .seg button .num{opacity: .7; font-size: .85em;}
:is(.fin-root,#libSheet) .book-list{display: grid; gap: 8px;}
:is(.fin-root,#libSheet) .me-head .icon-btn[aria-pressed="true"]{color: var(--accent);}
:is(.fin-root,#libSheet) .me-head .danger{padding: 6px 10px;}
:is(.fin-root,#libSheet) .v-head .icon-btn{color: #f1f5f4;}
:is(.fin-root,#libSheet) .v-head .icon-btn[aria-pressed="true"]{color: #f5c542;}
:is(.fin-root,#libSheet) .v-head .icon-btn[aria-pressed="true"] svg{fill: currentColor;}
:is(.fin-root,#libSheet) .v-head .danger{margin-inline-start: auto;}
:is(.fin-root,#libSheet) .daily-quote.big q{font-size: 1.5rem;}
:is(.fin-root,#libSheet) .exit-bar .alarm-actions button:not(.primary){background: color-mix(in srgb, var(--bg) 15%, transparent); color: var(--bg);}
:is(.fin-root,#libSheet) .review-card small svg,:is(.fin-root,#libSheet) .book-line.ok svg{width: 15px; height: 15px;}
:is(.fin-root,#libSheet) .review-card.done span{color: var(--muted); font-size: .9rem;}
:is(.fin-root,#libSheet) .book-line.ok{color: var(--low);}
:is(.fin-root,#libSheet) .cal-head .nav button[disabled]{opacity: .35;}
:is(.fin-root,#libSheet) .section-head h2 small{font-family: var(--font-body); font-size: .85rem; color: var(--muted); font-weight: 400;}
:is(.fin-root,#libSheet) .habit-box .switch{padding: 0; align-self: auto;}
:is(.fin-root,#libSheet) .habit-card.done .check::before{background: var(--accent); border-color: var(--accent);}
:is(.fin-root,#libSheet) .habit-card.done .check svg{opacity: 1;}
:is(.fin-root,#libSheet) .habit-dots i.later,:is(.fin-root,#libSheet) .dot.later{opacity: .45;}
:is(.fin-root,#libSheet) .habit-done summary{cursor: pointer; color: var(--low); font-weight: 700; padding: 6px 0;}
:is(.fin-root,#libSheet) .habits-today > .row-between small{color: var(--muted);}
:is(.fin-root,#libSheet) .ht-row.done .check::before{background: var(--accent); border-color: var(--accent);}
:is(.fin-root,#libSheet) .ht-row.done .check svg{opacity: 1;}
:is(.fin-root,#libSheet) .ht-row.done .t-title{color: var(--muted);}
:is(.fin-root,#libSheet) .me-recbar .primary{margin-inline-start: auto; padding: 6px 12px;}
:is(.fin-root,#libSheet) .me-recbar button:not(.primary){padding: 6px 10px;}
:is(.fin-root,#libSheet) .me-audio .danger{padding: 4px 8px; font-size: .8rem;}
:is(.fin-root,#libSheet) .idea-quick .primary{display: inline-flex; align-items: center; gap: 4px; padding: 0 14px; border-radius: 12px; flex: none;}
:is(.fin-root,#libSheet) .idea-quick .primary svg{width: 18px; height: 18px;}
:is(.fin-root,#libSheet) .j-month{margin: 14px 0 6px; font-size: 1rem; color: var(--muted);}
:is(.fin-root,#libSheet) .j-today.done{border-style: solid; border-color: var(--line);}
:is(.fin-root,#libSheet) .j-blocks .switch{padding: 0; align-self: auto;}
:is(.fin-root,#libSheet) .j-more .ghost{display: inline-flex; align-items: center; gap: 4px;}
:is(.fin-root,#libSheet) .j-start .row-between{gap: 8px;}
:is(.fin-root,#libSheet) .j-m-del{color: var(--high) !important; font-weight: 700;}
:is(.fin-root,#libSheet) .j-m-del.armed{width: auto !important; padding: 0 8px !important; background: var(--high); color: #fff !important;}
:is(.fin-root,#libSheet) .hz-main{display: grid; gap: 2px; min-width: 0;}
:is(.fin-root,#libSheet) .hz-main b{overflow-wrap: anywhere;}
:is(.fin-root,#libSheet) .hz-main small{color: var(--muted);}
:is(.fin-root,#libSheet) .ppl-hist{list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; font-size: .88rem;}
:is(.fin-root,#libSheet) .ppl-hist li{display: flex; align-items: center; justify-content: space-between; gap: 6px; background: var(--bg); border-radius: 8px; padding: 2px 4px 2px 8px;}
:is(.fin-root,#libSheet) .ppl-hist li button{width: 30px; height: 30px; padding: 0;}
:is(.fin-root,#libSheet) .dec-risk .row-between input{flex: 1; min-width: 0;}
:is(.fin-root,#libSheet) .dec-table td.good{background: color-mix(in srgb, var(--low) 16%, transparent);}
:is(.fin-root,#libSheet) .dec-table td.bad{background: color-mix(in srgb, var(--high) 12%, transparent);}
:is(.fin-root,#libSheet) .brv-box .switch{padding: 0; align-self: auto;}
:is(.fin-root,#libSheet) .plan-card .hz-main{text-align: start; padding: 0;}
:is(.fin-root,#libSheet) .plan-card .row-between{gap: 8px; flex-wrap: wrap;}
:is(.fin-root,#libSheet) .plan-card .primary{padding: 7px 14px; border-radius: 10px; font-size: .92rem;}
:is(.fin-root,#libSheet) .hz-method .seg button{white-space: normal;}
:is(.fin-root,#libSheet) .pl-row{display: flex; align-items: center; gap: 10px;}
:is(.fin-root,#libSheet) .pl-row input{width: 90px; flex: none; text-align: center;}
:is(.fin-root,#libSheet) .pl-row b{font-size: 1.05rem;}
:is(.fin-root,#libSheet) .fin-import{cursor: pointer;}
:is(.fin-root,#libSheet) .fin-top{display: grid; gap: 6px; width: 100%; text-align: start; background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 10px 12px;}
:is(.fin-root,#libSheet) .fin-top small{color: var(--muted);}
:is(.fin-root,#libSheet) .fin-tiles{display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 6px;}
:is(.fin-root,#libSheet) .fin-tiles span{display: grid; gap: 2px; text-align: center; background: var(--bg); border-radius: 12px; padding: 8px 4px; font-size: .78rem; color: var(--muted);}
:is(.fin-root,#libSheet) .fin-tiles b{font-size: 1rem; color: var(--fg); overflow-wrap: anywhere;}
:is(.fin-root,#libSheet) .fin-tiles .pos b{color: var(--low);}
:is(.fin-root,#libSheet) .fin-tiles .neg b,:is(.fin-root,#libSheet) .fin-left.neg b{color: var(--high);}
:is(.fin-root,#libSheet) .fin-mini{display: flex; gap: 6px; flex-wrap: wrap;}
:is(.fin-root,#libSheet) .fin-mini button{flex: 1 1 140px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; font-size: .88rem; text-align: start;}
:is(.fin-root,#libSheet) .fin-split{display: flex; height: 14px; border-radius: 99px; overflow: hidden; background: var(--line); gap: 2px;}
:is(.fin-root,#libSheet) .fin-split i{display: block; height: 100%;}
:is(.fin-root,#libSheet) .fin-split .fx,:is(.fin-root,#libSheet) .fin-legend .fx{background: var(--task);}
:is(.fin-root,#libSheet) .fin-split .pd,:is(.fin-root,#libSheet) .fin-legend .pd{background: var(--mid);}
:is(.fin-root,#libSheet) .fin-split .sv,:is(.fin-root,#libSheet) .fin-legend .sv{background: var(--low);}
:is(.fin-root,#libSheet) .fin-legend{display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .8rem; color: var(--muted);}
:is(.fin-root,#libSheet) .fin-legend span{display: inline-flex; align-items: center; gap: 5px;}
:is(.fin-root,#libSheet) .fin-legend i{width: 10px; height: 10px; border-radius: 3px; display: inline-block;}
:is(.fin-root,#libSheet) .fin-card{display: grid; gap: 6px; width: 100%; text-align: start; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; min-width: 0;}
:is(.fin-root,#libSheet) .fin-card.active{border-color: var(--accent);}
:is(.fin-root,#libSheet) .fin-card small{color: var(--muted);}
:is(.fin-root,#libSheet) .fin-card .ok{color: var(--low);}
:is(.fin-root,#libSheet) .fin-card.cleared{opacity: .7;}
:is(.fin-root,#libSheet) .fin-kind{white-space: nowrap;}
:is(.fin-root,#libSheet) .fin-plan .panel{display: grid; gap: 8px;}
:is(.fin-root,#libSheet) .fin-plan h3{margin: 0; display: flex; justify-content: space-between; gap: 8px; font-size: 1.02rem;}
:is(.fin-root,#libSheet) .fin-plan h3 small,:is(.fin-root,#libSheet) .fin-plan h4 small{color: var(--accent); font-weight: 700;}
:is(.fin-root,#libSheet) .fin-plan h4{margin: 6px 0 0; display: flex; justify-content: space-between; font-size: .95rem;}
:is(.fin-root,#libSheet) .fin-title{font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; border-color: transparent; background: transparent; padding-inline: 0;}
:is(.fin-root,#libSheet) .fin-title:focus{border-color: var(--line); background: var(--card); padding-inline: 10px;}
:is(.fin-root,#libSheet) .fin-meta{gap: 8px; flex-wrap: wrap;}
:is(.fin-root,#libSheet) .fin-rows{display: grid; gap: 6px;}
:is(.fin-root,#libSheet) .fin-row{display: grid; grid-template-columns: minmax(0, 1fr) 110px 34px; gap: 6px; align-items: center;}
:is(.fin-root,#libSheet) .fin-rows.c3 .fin-row{grid-template-columns: minmax(0, 1fr) 104px 96px 34px;}
:is(.fin-root,#libSheet) .fin-row .fin-x{grid-column: 1 / -1; color: var(--muted); font-size: .76rem; margin-top: -4px;}
:is(.fin-root,#libSheet) .fin-row.done input[data-k="name"]{text-decoration: line-through; opacity: .7;}
:is(.fin-root,#libSheet) .fin-row input,:is(.fin-root,#libSheet) .fin-row select{min-width: 0; padding: 8px 10px;}
:is(.fin-root,#libSheet) .num-in{text-align: center; direction: ltr; font-variant-numeric: tabular-nums;}
:is(.fin-root,#libSheet) .fin-del{width: 34px; height: 34px; padding: 0; border-radius: 8px; color: var(--high); font-weight: 700;}
:is(.fin-root,#libSheet) .fin-add{justify-self: start; display: inline-flex; align-items: center; gap: 4px; color: var(--accent); font-weight: 700; padding: 4px 6px;}
:is(.fin-root,#libSheet) .fin-add svg{width: 16px; height: 16px;}
:is(.fin-root,#libSheet) .fin-chk{display: inline-flex; align-items: center; gap: 4px; font-size: .85rem;}
@media (max-width: 420px){:is(.fin-root,#libSheet) .fin-rows.c3 .fin-row{ grid-template-columns: minmax(0, 1fr) 96px 34px; border-bottom: 1px dashed var(--line); padding-bottom: 6px; }:is(.fin-root,#libSheet) .fin-rows.c3 .fin-row > input[data-k="name"]{ grid-column: 1 / -1; }}
:is(.fin-root,#libSheet) .fin-tx{display: grid; gap: 8px; background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 10px;}
:is(.fin-root,#libSheet) .fin-tx-row{display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 6px;}
:is(.fin-root,#libSheet) .fin-txs{list-style: none; margin: 0; padding: 0; display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .fin-txs li{display: flex; justify-content: space-between; align-items: center; gap: 6px; background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 4px 4px 4px 10px;}
:is(.fin-root,#libSheet) .fin-txs li.in b{color: var(--low);}
:is(.fin-root,#libSheet) .fin-txs small{color: var(--muted);}
:is(.fin-root,#libSheet) .hbars .bar i.over{background: var(--high);}
:is(.fin-root,#libSheet) .fin-imp{list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
:is(.fin-root,#libSheet) .fin-imp .switch,:is(.fin-root,#libSheet) #libForm > .switch{padding: 6px 0; align-self: auto;}
:is(.fin-root,#libSheet) .fin-imp .switch span,:is(.fin-root,#libSheet) #libForm > .switch span{display: grid;}
:is(.fin-root,#libSheet) .fin-imp small,:is(.fin-root,#libSheet) #libForm > .switch small{color: var(--muted); font-size: .8rem;}
:is(.fin-root,#libSheet) .cv-sec-ed.open{border-color: var(--accent);}
:is(.fin-root,#libSheet) .cv-item .switch{padding: 0; align-self: auto;}
:is(.fin-root,#libSheet) .fin-hscroll{display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 2px 2px 8px; scrollbar-width: thin;}
:is(.fin-root,#libSheet) .fin-hcard{flex: 0 0 min(72%, 230px); scroll-snap-align: start; display: grid; gap: 4px; align-content: start; text-align: start; background: var(--card); border: 1px solid var(--line); border-top: 4px solid var(--goal); border-radius: 14px; padding: 10px 12px; min-width: 0;}
:is(.fin-root,#libSheet) .fin-hcard.active{border-top-color: var(--accent); box-shadow: 0 0 0 1px var(--accent);}
:is(.fin-root,#libSheet) .fin-hcard > b{font-size: 1.02rem; overflow-wrap: anywhere; line-height: 1.4;}
:is(.fin-root,#libSheet) .fin-hrow{display: flex; justify-content: space-between; gap: 6px; font-size: .85rem;}
:is(.fin-root,#libSheet) .fin-hrow small{color: var(--muted);}
:is(.fin-root,#libSheet) .fin-hnum{font-size: .85rem; color: var(--muted);}
:is(.fin-root,#libSheet) .fin-hnum b{font-size: 1rem;}
:is(.fin-root,#libSheet) .fin-hnum.pos b{color: var(--low);}
:is(.fin-root,#libSheet) .fin-hnum.neg b{color: var(--high);}
:is(.fin-root,#libSheet) .fin-split.sm{height: 8px; margin-top: 2px;}
:is(.fin-root,#libSheet) .fin-hcard.add{flex-basis: 140px; place-items: center; align-content: center; border-style: dashed; border-top-width: 1px; color: var(--accent);}
:is(.fin-root,#libSheet) .fin-hcard.add svg{width: 24px; height: 24px;}
:is(.fin-root,#libSheet) .fin-hcard.add small{color: var(--muted);}
:is(.fin-root,#libSheet) .fin-month-title{margin: 0; font-family: var(--font-display); font-size: 1.5rem; color: var(--accent);}
:is(.fin-root,#libSheet) .fin-plan .crumbs.row-between{flex-wrap: wrap; gap: 6px;}
:is(.fin-root,#libSheet) .fin-exp{display: grid; gap: 2px;}
:is(.fin-root,#libSheet) .fin-exp h4{margin: 10px 0 2px; font-size: .9rem; color: var(--muted);}
:is(.fin-root,#libSheet) .fin-exp .switch{padding: 4px 0; align-self: auto;}
:is(.fin-root,#libSheet) .fin-exp .switch span{display: grid;}
:is(.fin-root,#libSheet) .fin-exp small{color: var(--muted); font-size: .8rem;}
:is(.fin-root,#libSheet) .fin-legend .neg{background: var(--high);}
:is(.fin-root,#libSheet) .tblock{background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 10px 12px; display: grid; gap: 6px;}
:is(.fin-root,#libSheet) .tblock-h{display: flex; align-items: center; justify-content: space-between; gap: 8px;}
:is(.fin-root,#libSheet) .tblock-h h2{margin: 0; font-size: 1.05rem; display: inline-flex; align-items: baseline; gap: 8px;}
:is(.fin-root,#libSheet) .tblock-h h2 small{color: var(--muted); font-weight: 400; font-size: .8rem;}
:is(.fin-root,#libSheet) .tblock-go{display: inline-flex; align-items: center; gap: 2px; color: var(--accent); font-size: .8rem; padding: 4px 6px; border-radius: 8px; white-space: nowrap;}
:is(.fin-root,#libSheet) .tblock-go svg{width: 14px; height: 14px;}
:is(.fin-root,#libSheet) .tlist button.done{opacity: .6;}
:is(.fin-root,#libSheet) .tblock .prayers,:is(.fin-root,#libSheet) .tblock .review-card{margin: 0; border: 0; padding: 0; background: transparent; box-shadow: none;}
:is(.fin-root,#libSheet) .tblock .j-today{border: 0; padding: 4px 0;}
:is(.fin-root,#libSheet) .habits-today .tblock-h{margin-bottom: 2px;}
:is(.fin-root,#libSheet) .ghost.sm{padding: 4px 8px; font-size: .8rem; display: inline-flex; align-items: center; gap: 3px; border-radius: 8px;}
:is(.fin-root,#libSheet) .ghost.sm svg{width: 14px; height: 14px;}
:is(.fin-root,#libSheet) .h-prof .switch{padding: 0; align-self: auto;}
:is(.fin-root,#libSheet) .h-ai .primary,:is(.fin-root,#libSheet) .h-ai .ghost{display: inline-flex; align-items: center; gap: 4px;}
:is(.fin-root,#libSheet) .h-macros .mp,:is(.fin-root,#libSheet) .fin-legend .mp{background: var(--task);}
:is(.fin-root,#libSheet) .h-macros .mc,:is(.fin-root,#libSheet) .fin-legend .mc{background: var(--mid);}
:is(.fin-root,#libSheet) .h-macros .mf,:is(.fin-root,#libSheet) .fin-legend .mf{background: var(--goal);}
:is(.fin-root,#libSheet) .shop-add .primary{padding: 0 12px;}
:is(.fin-root,#libSheet) .shop-done summary{cursor: pointer; color: var(--muted); font-size: .85rem; padding: 4px 0;}
:is(.fin-root,#libSheet) .later-q{margin: 0; font-weight: 700; color: var(--accent);}
:is(.fin-root,#libSheet) .wk-day.open{box-shadow: 0 2px 10px rgba(0,0,0,.06);}
:is(.fin-root,#libSheet) .wk-task.done .t-title{text-decoration: line-through; color: var(--muted);}
:is(.fin-root,#libSheet) .wk-add .primary{padding: 0 12px;}
:is(.fin-root,#libSheet) .wk-sum.late{color: var(--high); font-weight: 700;}
:is(.fin-root,#libSheet) .mi-ed .row-between{gap: 6px;}
:is(.fin-root,#libSheet) .mi-ed .row-between input:first-child{flex: 1; min-width: 0;}
:is(.fin-root,#libSheet) .lg-seg button small{display: block; font-size: .72rem; color: var(--muted);}
:is(.fin-root,#libSheet) .fin-rows.c4 .fin-row{grid-template-columns: minmax(0, 1fr) 104px 96px auto 34px;}
:is(.fin-root,#libSheet) .fin-rows.c3 .fin-row:has(.fin-chk){grid-template-columns: minmax(0, 1fr) 104px auto 34px;}
:is(.fin-root,#libSheet) .fin-row.done .fin-chk{color: var(--low); font-weight: 700;}
:is(.fin-root,#libSheet) .fin-paid .fin-tiles span.pos b{color: var(--low);}
@media (max-width: 420px){:is(.fin-root,#libSheet) .fin-rows.c4 .fin-row{ grid-template-columns: minmax(0, 1fr) 90px auto 34px; border-bottom: 1px dashed var(--line); padding-bottom: 6px; }:is(.fin-root,#libSheet) .fin-rows.c4 .fin-row > input[data-k="name"]{ grid-column: 1 / -1; }:is(.fin-root,#libSheet) .fin-rows.c3 .fin-row:has(.fin-chk){ grid-template-columns: minmax(0, 1fr) auto 34px; }:is(.fin-root,#libSheet) .fin-rows.c3 .fin-row:has(.fin-chk) > input[data-k="name"]{ grid-column: 1 / -1; }}
:is(.fin-root,#libSheet) .td-spend{background: transparent; border: 0; padding: 0;}
:is(.fin-root,#libSheet) .td-spend select{min-width: 0;}
:is(.fin-root,#libSheet) .td-list{margin-top: 2px;}
:is(.fin-root,#libSheet) .fin-cmp .neg b{color: var(--high);}
:is(.fin-root,#libSheet) .fin-cmp .pos b{color: var(--low);}
:is(.fin-root,#libSheet) .fin-loose{display: grid; gap: 6px; border-top: 1px dashed var(--line); padding-top: 8px;}
:is(.fin-root,#libSheet) .fin-loose h4{margin: 0; font-size: .92rem;}
:is(.fin-root,#libSheet) .fin-loose ul{list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
:is(.fin-root,#libSheet) .fin-loose li{display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .fin-loose select{min-width: 0;}
:is(.fin-root,#libSheet) .close-list li.ok > span:first-child{color: var(--low);}
:is(.fin-root,#libSheet) .close-list li.ok > span:nth-child(2){color: var(--muted);}
:is(.fin-root,#libSheet) .save-card{border-color: color-mix(in srgb, var(--accent) 40%, var(--line));}
:is(.fin-root,#libSheet) .save-new{border-style: dashed; width: 100%; text-align: start;}
:is(.fin-root,#libSheet) .save-hero{display: grid; gap: 2px; text-align: center; background: var(--accent-soft); border-radius: 16px; padding: 14px 12px;}
:is(.fin-root,#libSheet) .save-hero b{font-size: 1.8rem; color: var(--accent);}
:is(.fin-root,#libSheet) .save-hero b.neg{color: var(--high);}
:is(.fin-root,#libSheet) .save-hero small{color: var(--muted);}
:is(.fin-root,#libSheet) .save-months{list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
:is(.fin-root,#libSheet) .save-months li{display: grid; grid-template-columns: minmax(0, 1fr) 110px auto; gap: 6px; align-items: center;}
:is(.fin-root,#libSheet) .save-months li > span{display: grid; min-width: 0;}
:is(.fin-root,#libSheet) .save-months li small{color: var(--muted); font-size: .76rem;}
:is(.fin-root,#libSheet) .save-months li.pending{opacity: .75;}
:is(.fin-root,#libSheet) .td-hint{color: var(--muted); font-size: .82rem; min-height: 1em;}
:is(.fin-root,#libSheet) .td-hint.late{color: var(--high);}
:is(.fin-root,#libSheet) .fin-meta input[type=month]{width: auto; flex: 0 1 auto;}
:is(.fin-root,#libSheet) .close-sec.ok{display: flex; justify-content: space-between; align-items: baseline; gap: 8px; color: var(--muted);}
:is(.fin-root,#libSheet) .close-sec.ok > b{color: var(--low); font-weight: 600;}
:is(.fin-root,#libSheet) .fin-range-l{display: block; font-weight: 400; color: var(--muted); font-size: .78rem;}
:is(.fin-root,#libSheet) .fin-payday select{max-width: 100%;}
:is(.fin-root,#libSheet) .fine-paste{width: 100%; font-size: .85rem;}
:is(.fin-root,#libSheet) html:not(.show-explain) .explain{display: none !important;}
:is(.fin-root,#libSheet) .fin-part{display: grid; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line);}
:is(.fin-root,#libSheet) .fin-part h4{margin: 0; font-size: 1rem;}
:is(.fin-root,#libSheet) .fin-split-l{margin: 0; font-size: .85rem; color: var(--muted);}
:is(.fin-root,#libSheet) .fin-pays{list-style: none; margin: 0; padding: 0; display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .fin-pays li{display: flex; justify-content: space-between; gap: 8px; font-size: .88rem; padding: 6px 10px; background: var(--bg); border-radius: 10px;}
:is(.fin-root,#libSheet) .fin-pays li.ok{color: var(--muted);}
:is(.fin-root,#libSheet) .fin-pays li.ok b{color: var(--low);}
:is(.fin-root,#libSheet) .fin-sec-h{margin: 14px 0 0; font-size: 1.05rem;}
:is(.fin-root,#libSheet) .pl-list{list-style: none; margin: 0; padding: 0; display: grid; gap: 6px;}
:is(.fin-root,#libSheet) .pl-row{display: flex; align-items: center; gap: 8px; background: var(--bg); border-radius: 14px; padding: 6px 12px; border: 1px solid transparent; transition: background .2s, border-color .2s;}
:is(.fin-root,#libSheet) .pl-row:focus-within{border-color: color-mix(in srgb, var(--accent) 40%, transparent);}
:is(.fin-root,#libSheet) .pl-row.paid{background: color-mix(in srgb, var(--low) 13%, var(--card));}
:is(.fin-root,#libSheet) .pl-main{flex: 1 1 auto; min-width: 0; display: grid; gap: 1px;}
:is(.fin-root,#libSheet) .pl-row input.pl-name,:is(.fin-root,#libSheet) .pl-row input.pl-amt{border: 0; background: transparent; padding: 4px 0; border-radius: 0; box-shadow: none; color: var(--fg); min-width: 0; font: inherit;}
:is(.fin-root,#libSheet) .pl-row input.pl-name{width: 100%; font-size: 1rem;}
:is(.fin-root,#libSheet) .pl-row input.pl-amt{width: 6.2em; flex: 0 0 auto; text-align: left; font-weight: 700; direction: ltr;}
:is(.fin-root,#libSheet) .pl-row input.pl-name:focus,:is(.fin-root,#libSheet) .pl-row input.pl-amt:focus{outline: none; box-shadow: 0 1px 0 var(--accent);}
:is(.fin-root,#libSheet) .pl-row.paid input.pl-amt{color: var(--low);}
:is(.fin-root,#libSheet) .pl-row.paid input.pl-name{color: var(--low);}
:is(.fin-root,#libSheet) .pl-row.spend input.pl-name{color: var(--muted);}
:is(.fin-root,#libSheet) .pl-sub{display: flex; flex-wrap: wrap; align-items: center; gap: 4px; color: var(--muted); font-size: .74rem; line-height: 1.5;}
:is(.fin-root,#libSheet) .pl-sub i{font-style: normal; opacity: .5;}
:is(.fin-root,#libSheet) .pl-every{border: 0; background: transparent; padding: 0 0 0 2px; font: inherit; font-size: .74rem; color: var(--accent); min-width: 0;}
:is(.fin-root,#libSheet) .pl-tick{position: relative; flex: 0 0 auto; width: 24px; height: 24px; cursor: pointer;}
:is(.fin-root,#libSheet) .pl-tick input{position: absolute; top: 0; left: 0; width: 100%; height: 100%; min-width: 0; padding: 0; opacity: 0; margin: 0; cursor: pointer;}
:is(.fin-root,#libSheet) .pl-tick{overflow: hidden; border-radius: 7px;}
:is(.fin-root,#libSheet) .pl-tick span{position: absolute; inset: 0; border: 2px solid color-mix(in srgb, var(--muted) 55%, transparent); border-radius: 7px; background: var(--card); transition: background .15s, border-color .15s;}
:is(.fin-root,#libSheet) .pl-tick input:checked + span{background: var(--low); border-color: var(--low);}
:is(.fin-root,#libSheet) .pl-tick input:checked + span::after{content: ''; position: absolute; inset: 4px 7px 7px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);}
:is(.fin-root,#libSheet) .pl-tick input:focus-visible + span{outline: 2px solid var(--accent); outline-offset: 2px;}
:is(.fin-root,#libSheet) .pl-tick-gap{flex: 0 0 24px;}
:is(.fin-root,#libSheet) .pl-del{flex: 0 0 auto; min-width: 36px; height: 36px; margin-inline-end: -8px; padding: 0 6px; border-radius: 10px; color: var(--muted); opacity: .6; font-size: .85rem; background: transparent; white-space: nowrap; touch-action: manipulation;}
:is(.fin-root,#libSheet) .pl-del.armed{opacity: 1; color: #fff; background: var(--high); font-weight: 700; font-size: .78rem;}
:is(.fin-root,#libSheet) .pl-del:hover,:is(.fin-root,#libSheet) .pl-del:focus-visible{opacity: 1; color: var(--high);}
:is(.fin-root,#libSheet) .pl-calc{display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .pc-line{display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 6px 2px; font-size: 1rem;}
:is(.fin-root,#libSheet) .pc-line span{display: inline-flex; align-items: baseline; gap: 8px;}
:is(.fin-root,#libSheet) .pc-line i{font-style: normal; width: 1em; text-align: center; color: var(--muted); font-weight: 700;}
:is(.fin-root,#libSheet) .pc-line b{font-size: 1.05rem;}
:is(.fin-root,#libSheet) .pc-in b{color: var(--fg);}
:is(.fin-root,#libSheet) .pc-sub{display: grid; gap: 3px; margin: -2px 0 4px; padding: 0 1.6em 0 0; background: none; border: 0; font: inherit; color: inherit; text-align: inherit; width: 100%;}
:is(.fin-root,#libSheet) .pc-sub small{display: flex; justify-content: space-between; color: var(--muted); font-size: .78rem;}
:is(.fin-root,#libSheet) .pc-sub .ok{color: var(--low);}
:is(.fin-root,#libSheet) .pc-bar{height: 5px;}
:is(.fin-root,#libSheet) .pc-bar i{background: var(--low);}
:is(.fin-root,#libSheet) .pc-bar.spend i{background: var(--accent);}
:is(.fin-root,#libSheet) .pc-bar.over i{background: var(--high);}
:is(.fin-root,#libSheet) .pc-go small span:last-child{color: var(--accent);}
:is(.fin-root,#libSheet) .pc-out.pos b{color: var(--low);}
:is(.fin-root,#libSheet) .pc-out.neg b{color: var(--high);}
:is(.fin-root,#libSheet) .pl-from{margin-bottom: 8px;}
:is(.fin-root,#libSheet) .pl-from .pl-row{justify-content: space-between; font-size: .9rem; color: var(--muted); padding: 8px 12px;}
:is(.fin-root,#libSheet) .pl-from .pl-row b{color: var(--low);}
:is(.fin-root,#libSheet) .pl-from .pl-from-tot{background: none; color: var(--fg); font-weight: 700;}
:is(.fin-root,#libSheet) .pl-extra{display: flex; justify-content: space-between; margin: 8px 0 0; padding: 8px 12px; border-radius: 12px; background: color-mix(in srgb, var(--low) 10%, var(--card)); font-size: .9rem;}
:is(.fin-root,#libSheet) .pl-extra b{color: var(--low);}
:is(.fin-root,#libSheet) .pj-list{gap: 8px;}
:is(.fin-root,#libSheet) .pj-list li{list-style: none;}
:is(.fin-root,#libSheet) .pj-row{width: 100%; text-align: inherit; font: inherit; color: var(--fg); padding: 12px 14px; gap: 12px; background: var(--card); border: 1px solid var(--line); border-radius: 16px;}
:is(.fin-root,#libSheet) .pj-main{flex: 1 1 auto; min-width: 0; display: grid; gap: 4px;}
:is(.fin-root,#libSheet) .pj-main b{font-size: 1.05rem;}
:is(.fin-root,#libSheet) .pj-main small{color: var(--muted); font-size: .8rem;}
:is(.fin-root,#libSheet) .pj-amt{flex: 0 0 auto; display: grid; justify-items: end; gap: 0;}
:is(.fin-root,#libSheet) .pj-amt small{color: var(--muted); font-size: .72rem;}
:is(.fin-root,#libSheet) .pj-amt b{color: var(--low); font-size: 1.05rem;}
:is(.fin-root,#libSheet) .field > input,:is(.fin-root,#libSheet) .field > select,:is(.fin-root,#libSheet) .field > textarea{min-width: 0; max-width: 100%;}
:is(.fin-root,#libSheet) .st-lesson.done > button{border-color: color-mix(in srgb, var(--accent) 40%, var(--line));}
:is(.fin-root,#libSheet) .st-lesson.done b{color: var(--muted);}
:is(.fin-root,#libSheet) .st-lesson.done .st-no{background: var(--accent); color: var(--accent-fg);}
:is(.fin-root,#libSheet) .st-lesson.next > button{border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent);}
:is(.fin-root,#libSheet) .sel-bar .btn-row{display: flex; flex-wrap: wrap; gap: 6px; align-items: center;}
:is(.fin-root,#libSheet) .qz-badge.good,:is(.fin-root,#libSheet) .qz-score.good{background: color-mix(in srgb, var(--low) 16%, var(--card)); color: var(--low);}
:is(.fin-root,#libSheet) .qz-badge.bad,:is(.fin-root,#libSheet) .qz-score.bad{background: color-mix(in srgb, var(--high) 14%, var(--card)); color: var(--high);}
:is(.fin-root,#libSheet) .qz-prev li.bad{border-color: color-mix(in srgb, var(--high) 45%, var(--line));}
:is(.fin-root,#libSheet) .qz-prev li.bad > b{color: var(--high);}
:is(.fin-root,#libSheet) #qzGo.armed{background: var(--mid);}
:is(.fin-root,#libSheet) .qz-r.ok{border-color: color-mix(in srgb, var(--low) 55%, var(--line));}
:is(.fin-root,#libSheet) .qz-r.ok .qz-mark{color: var(--low);}
:is(.fin-root,#libSheet) .qz-ropts span.right{background: color-mix(in srgb, var(--low) 16%, var(--card)); color: var(--low); font-weight: 600;}
:is(.fin-root,#libSheet) .qz-verdict.ok{background: color-mix(in srgb, var(--low) 16%, var(--card)); color: var(--low);}
:is(.fin-root,#libSheet) .qz-el.ok{border-inline-start-color: var(--low);}
:is(.fin-root,#libSheet) .qz-el.ok .qz-el-h small{color: var(--low); font-weight: 700;}
:is(.fin-root,#libSheet) #qzAiMsg .ok{color: var(--low);}
:is(.fin-root,#libSheet) .kun-copy .btn-row{display: flex; gap: 8px; align-items: center;}
dialog{border: 0; padding: 0; background: var(--card); color: var(--fg);
  width: min(560px, 100%); max-width: 100%; max-height: 92dvh; border-radius: 20px 20px 0 0;
  margin: auto auto 0; box-shadow: 0 -8px 40px rgb(0 0 0 / .2);}
dialog::backdrop{background: rgb(10 18 16 / .45);}
dialog.fullscreen{width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; inset: 0;
  box-shadow: none;}
dialog.fullscreen::backdrop{background: var(--card);}
dialog.fullscreen.dark, dialog.fullscreen.dark::backdrop{background: #0b0f0e; color: #f1f5f4;}
