/* JellyDock Ledger. Base look follows Baton Note's "Slate" theme (where these screens came from); the finance part below is copied from it. */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:700;font-display:swap;src:url(fonts/ibm-plex-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f9fafb;--border:#e3e6eb;--text:#1b1f27;--muted:#5f6673;--accent:#4b4fd8;--accent-strong:#3b3fc4;--accent-soft:#eef0fe;--accent-line:#dcdffb;
  --r-sm:6px;--r:8px;--r-lg:10px;--ring:0 0 0 3px rgba(75,79,216,.16);--danger:#b3261e;
  --font:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,"Noto Sans KR",monospace;
  color-scheme:light;font:14px/1.6 var(--font);background:var(--bg);color:var(--text)}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);display:flex;flex-direction:column}
a{color:var(--accent-strong)}
h2{font-size:22px;letter-spacing:-.3px;margin:0 0 6px}h3{font-size:15px;margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{min-height:40px;padding:0 14px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text);cursor:pointer;font-weight:500}
button:hover{background:#f2f3f6}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-strong)}
button.danger{color:var(--danger);border-color:#e9c3c0}
button:disabled{opacity:.55;cursor:not-allowed}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:none;box-shadow:var(--ring);border-color:var(--accent)}
.linkButton{min-height:auto;padding:0;border:0;background:none;color:var(--accent-strong);text-decoration:underline;font-weight:500}.linkButton:hover{background:none}
input[type=text],input[type=search],input[type=date],input:not([type]),select{min-height:40px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
input[type=checkbox]{accent-color:var(--accent)}
.muted{color:var(--muted)}.small{font-size:12.5px}.eyebrow{font-size:10px;letter-spacing:1.5px;color:#6b7280;font-weight:700;display:block;margin-top:8px}
code{font-family:var(--mono);font-size:12.5px;background:var(--surface-2);padding:1px 4px;border-radius:4px}
.top{display:flex;align-items:center;gap:16px;height:60px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:2}
.brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:700;color:var(--text);text-decoration:none;margin-right:auto}
.top nav{display:flex;gap:4px}
.top nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:var(--r);color:#5b6270;text-decoration:none;font-weight:500}
.top nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-strong);font-weight:700}
.workspace{flex:1;width:min(100%,880px);margin:0 auto;padding:22px 24px 40px}
.page{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.page[hidden]{display:none}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:23px}
.boardHomeHead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.boardHomeHead h2{margin-right:auto}
.status{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:5;max-width:min(92vw,520px);margin:0;padding:10px 16px;border-radius:var(--r);background:#1b1f27;color:#fff;box-shadow:0 6px 24px rgba(16,24,40,.2)}
.status.error{background:#8c1d18}
.foot{text-align:center;padding:14px 16px 24px}.foot a{color:var(--muted)}
.ledgerPick{display:block;margin:8px 0}
.ledgerPick input{display:block;margin-top:4px}
input[type=file]{width:100%;min-height:44px;padding:4px;border:1px dashed var(--border);border-radius:var(--r);background:var(--surface)}
input[type=file]::file-selector-button{min-height:34px;margin-right:10px;padding:0 13px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font:inherit;cursor:pointer}
#ledgerData{display:grid;gap:12px}#ledgerData>p{margin:0}
@media(max-width:700px){.top{padding:0 14px;gap:8px}.workspace{padding:14px 12px 30px}.card{padding:16px}h2{font-size:19px}input[type=text],input[type=search],input[type=date],input:not([type]),select{font-size:16px}}
/* ---- Finance screens (copied from Baton Note styles.css) ---- */
.geminiSetup p{margin:0 0 8px;line-height:1.5}.geminiSetupTitle{font-size:15px}.geminiSteps{margin:0 0 8px;padding-left:20px;display:grid;gap:6px;line-height:1.45}
.geminiOpen{display:inline-block;padding:8px 14px;border-radius:10px;background:var(--accent);color:#fff!important;font-weight:600;text-decoration:none}
.geminiKeyRow{display:flex;gap:6px;margin-top:6px}.geminiKeyRow input{flex:1;min-width:0;padding:9px 10px;font-size:16px}
.geminiActions{display:flex;gap:8px;flex-wrap:wrap;margin:0}.geminiDone{margin:0;font-weight:600;color:#255c3c}.geminiSetup.done{background:#eef8f2;border-color:#cfe8d9}
body.phone.memoWriting #new-memo .geminiSetup{order:-1}
/* Finance (3.63) */
.financeNumbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.financeTile{display:grid;gap:2px;padding:12px 14px;border:1px solid #d5d6e8;border-radius:12px;background:#f9f9fd}.financeTile.big{grid-column:1/-1;background:#ececfa}
.financeTile strong{font-size:22px;font-variant-numeric:tabular-nums}.financeTile.big strong{font-size:32px}.financeTile .in{color:#1f7a4d}.financeTile .out{color:#b03a3a}
.linkButton{border:0;background:none;color:#4649a8;padding:0;text-decoration:underline;font-size:inherit}.linkButton:hover{background:none}
.financeStart{display:grid;gap:6px;padding:12px 14px;margin:8px 0;border:1px solid #c3c4ea;border-radius:12px;background:#f2f2fd}.financeStart p{margin:0}
.financeStartRow{display:flex;gap:8px;flex-wrap:wrap}.financeStartRow input{flex:1;min-width:140px;font-size:16px}
.financeAdd{display:flex;gap:8px;margin-top:6px}.financeAdd input{flex:1;min-width:0;font-size:16px}
.financeGuess{display:grid;gap:4px;margin:8px 0;padding:10px 12px;border:1px solid #d5d6e8;border-radius:12px;background:#fff}.financeGuess p{margin:0}
.financeGuessLine{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.financeGuessText{font-variant-numeric:tabular-nums}
.financeType{display:inline-flex;border:1px solid #c3c4ea;border-radius:10px;overflow:hidden}.financeType button{border:0;border-radius:0;background:#fff;color:var(--text);padding:6px 12px}.financeType button.on{background:var(--accent);color:#fff}
.financeLearn{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0;padding:10px 12px;border-radius:12px;background:#eef8f2;border:1px solid #cfe8d9}
.financeList{display:grid;gap:6px}.financeRow{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;background:#fff;color:inherit;border:1px solid #dedff0;padding:10px 12px}
.financeRow:hover{background:#f2f2fd}.financeInfo{display:grid;min-width:0}.financeInfo strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.financeRow.income .financeDir,.financeRow.income .financeAmount{color:#1f7a4d}.financeRow.expense .financeDir{color:#b03a3a}.financeAmount{font-variant-numeric:tabular-nums;font-weight:600}
.financeEdit{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 12px;margin:2px 0 4px;border-radius:10px;background:#f2f2fd}
.financeRules{margin-top:12px}.financeRule{display:flex;gap:10px;align-items:center;padding:4px 0}
@media(max-width:700px){.financeNumbers{grid-template-columns:repeat(3,minmax(0,1fr))}.financeTile{padding:10px}.financeTile strong{font-size:16px}.financeTile.big strong{font-size:28px}}

.financeFound{margin:8px 0;padding:8px 12px;border-radius:10px;background:#eef8f2;color:#255c3c}
.financeReviewBox{margin:12px 0;padding:10px 12px;border:1px solid #e8d9a8;border-radius:12px;background:#fdf8e8}.financeReviewBox h3{margin:0 0 4px}
.financeReview{display:grid;gap:6px;padding:10px 12px;border:1px solid #e8d9a8;border-radius:10px;background:#fff}.financeReviewTop{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center}
.financeReviewTools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.financeReviewButtons{display:inline-flex;gap:6px;margin-left:auto}.financeSources{padding:2px 12px 6px}
.financeGuess select,.financeReviewTools select,.financeEdit select{width:auto;min-width:130px}

.financeBudget{margin:14px 0;padding:12px 14px;border:1px solid #d5d6e8;border-radius:12px;background:#fff}.financeBudgetHead{display:flex;justify-content:space-between;align-items:center;gap:10px}.financeBudgetHead h3{margin:0}
.financeBudgetLine{margin:4px 0}.financeBudgetFigure{font-size:22px;font-variant-numeric:tabular-nums}
.financeBar{height:14px;border-radius:8px;background:#e6e7f6;overflow:hidden;margin:4px 0 6px}.financeFill{height:100%;background:var(--accent);border-radius:8px;transition:width .3s}
.financeBar.warn .financeFill{background:#d99a2b}.financeBar.over .financeFill{background:#b03a3a}.financeOver{color:#b03a3a;font-weight:600}
.financeCategories{margin-top:8px}.financeBudgetForm{display:grid;gap:8px}.financeBudgetRow{display:flex;gap:10px;flex-wrap:wrap}.financeBudgetRow label{display:grid;gap:2px;flex:1;min-width:140px}
.financeCatGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:8px}.financeCatInput{display:grid;gap:2px;font-size:13px}
.financeBudgetButtons{display:flex;gap:8px;flex-wrap:wrap}

.financeTabs{display:flex;gap:6px;margin:8px 0 12px;border-bottom:1px solid #dedff0}.financeTabs button{border:0;border-radius:10px 10px 0 0;background:none;color:#464768;padding:8px 16px}
.financeTabs button[aria-selected="true"]{background:var(--accent);color:#fff}
.financeReportControls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.financeReportControls label{display:grid;gap:2px;font-size:13px}.financeReportControls select{width:auto;min-width:140px}
.financeReportHead{display:flex;gap:10px;align-items:baseline}.financeReportPart{margin:14px 0;padding:10px 14px;border:1px solid #d5d6e8;border-radius:12px;background:#fff}.financeReportPart h4{margin:0 0 6px}
.financeCatRow{margin:2px 0}.financeTrend{display:flex;gap:6px;align-items:flex-end;height:120px}.financeTrendCol{flex:1;display:grid;grid-template-rows:1fr auto;justify-items:center;height:100%;min-width:0}
.financeTrendBar{align-self:end;width:100%;max-width:36px;min-height:2px;border-radius:6px 6px 0 0;background:var(--accent)}.financeTrendCol small{font-size:11px}
.financeChips .linkButton{font-size:12px}

.financeCandidates{display:grid;gap:6px;margin-bottom:10px;padding:10px 12px;border-radius:10px;background:#fdf8e8;border:1px solid #e8d9a8}
.financeCandidate,.financeUpcomingRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:6px 0}
.financeCandidate{grid-template-columns:minmax(0,1fr) auto auto}.financeDue{font-variant-numeric:tabular-nums;font-weight:600;min-width:52px}

.financeAccountRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #ebebf7}.financeAccountRow:last-child{border-bottom:0}
.financeAdd select{width:auto;max-width:150px}.financeRow.transfer .financeDir{color:#4649a8}

.financeImportHead{margin:8px 0}.financeImportList{display:grid;gap:2px;max-height:420px;overflow:auto;border:1px solid #dedff0;border-radius:10px;padding:4px 8px;background:#fff}
.financeImportRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 0;border-bottom:1px solid #f0f0fa}.financeImportRow:last-child{border-bottom:0}
.financeImportRow.known,.financeImportRow.imported{opacity:.6}.financeImportRow input{width:auto}
.financeImportRow,.financeImportRow strong{color:var(--text)}

.financeReportCustom{display:flex;gap:12px;flex-wrap:wrap}.financeReportCustom[hidden]{display:none}.financeReportCustom label{display:grid;gap:2px;font-size:13px}
.financeWeeklySuggest{display:grid;gap:4px;padding:10px 12px;margin-top:8px;border-radius:10px;background:#f2f2fd}.financeWeeklyRow{display:flex;gap:8px;align-items:center}.financeWeeklyRow input{flex:1;max-width:200px;font-size:16px}
.financeTrendCol small{white-space:nowrap;font-size:10px}
.financeShareRow{display:flex;gap:8px;align-items:center;font-weight:600}.financeShareRow input{width:auto}.financeSharePreview{white-space:pre-wrap;margin:6px 0 0;padding:10px 12px;border-radius:10px;background:#f2f2fd;font:13px/1.5 ui-monospace,Menlo,monospace}

/* Finance (3.72.3): a changed number glows (green up, red down); an unanswered Expense/Income choice shakes once. */
.financeTile strong{border-radius:6px;transition:background-color .9s ease}
@keyframes finUp{from{background:#bfe8d2}to{background:transparent}}@keyframes finDown{from{background:#f4c7c7}to{background:transparent}}
.financeTile strong.flashUp{animation:finUp 1s ease-out}.financeTile strong.flashDown{animation:finDown 1s ease-out}
@keyframes finAsk{0%,100%{transform:none}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.financeType.attention{animation:finAsk .35s ease 2;box-shadow:0 0 0 3px #c3c4ea}
@media(prefers-reduced-motion:reduce){.financeTile strong.flashUp{animation:none;background:#bfe8d2}.financeTile strong.flashDown{animation:none;background:#f4c7c7}.financeType.attention{animation:none}}
.financeSearch{width:100%;box-sizing:border-box;margin:4px 0 8px;font-size:16px}
.financeAdd{margin-top:0;margin-bottom:6px}
/* Finance (3.74): a hidden Finance block stays hidden even when its class sets a display (e.g. .financeStart). */
.financeStart[hidden],.financeGuess[hidden],.financeLearn[hidden],.financeReviewBox[hidden],.financeBudgetForm[hidden]{display:none!important}
.financeAdd input.attention{animation:finAsk .35s ease 2;outline:3px solid #c3c4ea}
@media(prefers-reduced-motion:reduce){.financeAdd input.attention{animation:none}}

/* Finance (3.75): tabs, centred numbers that shrink to fit, a calmer balance, rows with the amount at the right edge. */
.financeTabs{overflow-x:auto;white-space:nowrap;scrollbar-width:none}.financeTabs::-webkit-scrollbar{display:none}.financeTabs button{flex:none;min-height:44px}
.financeReviewNote{display:block;margin:6px 0 2px;text-align:left}
.financeTile{text-align:center;justify-items:center;align-content:center;min-width:0;--fit:10}.financeTile.big{--fit:14}
.financeTile strong{font-size:calc(var(--base, 20px) * min(1, var(--fit) / var(--len, 1)));line-height:1.2;white-space:nowrap;max-width:100%}
.financeTile.big{--base:28px}.financeTile:not(.big){--base:20px}
.financeTile .eyebrow{font-size:11px;letter-spacing:.06em}
.financeRow{min-height:44px}.financeAmount{text-align:right;white-space:nowrap}.financeInfo small{font-size:13px}
[data-page="finance"] .small,[data-tab-panel="finance"] .small{font-size:13px}
@media(max-width:700px){.financeTile.big{--base:24px}.financeTile:not(.big){--base:15px;padding:10px 6px}.financeInfo strong{font-size:15px}}
@media(max-width:700px){.financeTabs{gap:2px}.financeTabs button{padding:8px 10px;font-size:14px}}
/* Schedule (3.76): Overall View cards, the Gantt sheet, symbols and printing. */
}
.schFacts{display:flex;flex-wrap:wrap;gap:2px 14px;justify-content:flex-end}.schFact b{font-weight:700;color:#353652}
/* Finance (3.76): a big entry box, an always-visible Expense | Income choice, and the balance living inside Recent activity. */
.financeAdd{gap:8px;margin-top:6px}.financeAdd input{height:60px;font-size:18px;padding:0 16px;border-radius:14px}.financeAdd button{height:60px;min-width:76px;font-size:17px;border-radius:14px}
.financeKind{display:flex;width:100%;height:48px;margin:10px 0 4px;border-radius:12px}.financeKind button{flex:1;font-size:16px;font-weight:700}
.financeKind button.on[data-kind="expense"]{background:#fbe9e9;color:#b03a3a}.financeKind button.on[data-kind="income"]{background:#e6f5ec;color:#1f7a4d}
.financeActivity{margin-top:16px;border:1px solid #dedff0;border-radius:16px;background:#f9f9fd;padding:12px 12px 8px}
.financeActivityHead{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.financeActivityHead h3{margin:0;font-size:16px}
.financeBalanceLine{font-size:13px;color:#646f84;white-space:nowrap}.financeBalanceLine strong{font-size:17px;color:var(--text);font-variant-numeric:tabular-nums}
.financeActivity small.muted{display:block;font-size:12px;margin-top:2px}
.financeSummary{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 10px;font-size:13px;color:#646f84}.financeSummary strong{font-size:14px;font-variant-numeric:tabular-nums}
.financeSummary strong.in,.financeBalanceLine strong.in{color:#1f7a4d}.financeSummary strong.out{color:#b03a3a}
.financeSearchForm{margin:0 0 4px}.financeSearch{width:100%;height:40px;font-size:16px;padding:0 12px;border-radius:12px;margin:0}
.financeDay{font-size:12px;color:#646f84;letter-spacing:.04em;margin:10px 4px 2px}
.financeAmountCell{display:grid;justify-items:end;gap:1px}.financeRunning{font-size:12px;font-weight:400;white-space:nowrap}
.financeBalanceLine strong,.financeSummary strong{border-radius:6px;transition:background-color .9s ease}
.financeBalanceLine strong.flashUp,.financeSummary strong.flashUp{animation:finUp 1s ease-out}.financeBalanceLine strong.flashDown,.financeSummary strong.flashDown{animation:finDown 1s ease-out}
@media(prefers-reduced-motion:reduce){.financeBalanceLine strong.flashUp,.financeSummary strong.flashUp{animation:none;background:#bfe8d2}.financeBalanceLine strong.flashDown,.financeSummary strong.flashDown{animation:none;background:#f4c7c7}}
.financeSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;text-align:center;font-size:12px}.financeSummary strong{display:block;font-size:14px;white-space:nowrap}
.financeActivityHead{flex-wrap:wrap}.financeActivityHead h3{white-space:nowrap}
/* My words (3.78): Settings → Learning list and the "Also searched" line under searches. */
input[type=checkbox],input[type=radio]{accent-color:var(--accent);box-shadow:none}
/* Tabs and segmented switches: one look — a grey track, the chosen one a white raised pill. */
.segmented,.visualTabs,.schViews,.schTabs,.tabs,.financeTabs{width:max-content;max-width:100%;display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:0;border-radius:var(--r);background:#eceef2;overflow:visible}
.financeTabs{display:flex;flex-wrap:nowrap;overflow-x:auto;width:max-content;max-width:100%;border-bottom:0}
.segmented button,.visualTabs button,.schViewBtn,.financeTabs button,.tabs a,.schTabs a{min-height:32px;border:0;border-radius:calc(var(--r) - 2px);background:transparent;box-shadow:none;color:var(--muted);padding:0 12px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;text-decoration:none}
.schViewBtn+.schViewBtn{border-left:0}
.segmented button:hover,.visualTabs button:hover,.schViewBtn:hover,.financeTabs button:hover,.tabs a:hover,.schTabs a:hover{background:rgba(255,255,255,.6);color:var(--text)}
.segmented button[aria-pressed="true"],.visualTabs button.active,.schViewBtn.on,.financeTabs button[aria-selected="true"],.tabs a[aria-selected="true"],.schTabs a.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px rgba(16,24,40,.04)}
.settingsTitle{justify-content:flex-start}.settingsTitle h2{margin-right:auto}   /* 3.109.0: Language and Appearance sit together on the right */
/* 3.111.0 theme "Slate", step 3 of 3: page polish (Sam approved the "Slate page polish" mockup; stripe: remove). */
/* Page titles: 22 px, with a grey description sentence under them where the page has one (.pageLead). */
#editorTitle,#financeHome .boardHomeHead h2,#boardHome .boardHomeHead h2,#mind-board>h2,#ask-notes>h2,#dreaming .cardHead h2,.settingsTitle h2,#thought-graph>h2,#scheduleHome .boardHomeHead h2,#support>h2{font-size:22px;font-weight:600;letter-spacing:-.2px;line-height:1.25;margin:0 0 2px;color:var(--text)}
.pageLead{font-size:14px;color:var(--muted);margin:2px 0 14px}
/* Memo: no stripe on the capture card (the orange edge while editing stays). */
#new-memo{border-top:1px solid var(--border)}
#new-memo.editingMemo{border-color:#e0912f}
.folderChip{min-height:32px;font-size:13px;font-weight:500;background:var(--surface);color:var(--text)}
.folderChip small{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
/* File pickers: our own white button instead of the grey browser box. */
input[type=file]:not(.pickInput){width:100%;min-height:40px;padding:4px;border:1px dashed var(--border);border-radius:var(--r);background:var(--surface);color:var(--muted);font-size:12.5px}
input[type=file]:not(.pickInput)::file-selector-button{min-height:32px;margin-right:10px;padding:0 13px;border:1px solid var(--border);border-radius:calc(var(--r) - 2px);background:var(--surface);color:var(--text);font:600 13px var(--font);cursor:pointer}
input[type=file]:not(.pickInput)::file-selector-button:hover{background:#f2f3f6}
input[type=file]:not(.pickInput):focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
/* Numbers in Plex Mono app-wide: money, counts, dates, versions. */
.financeSummary strong,.financeBalanceLine strong,.financeAmount,.financeRunning,.financeBudgetFigure,.financeTile strong,#financeMonth,.stats b,.railHead small,#dreamDate,.settingsVersion a,.currentVersion{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* Finance: Expense / Income in the shared switch look; Income, Expense and Net as three number tiles. */
.financeKind{display:flex;width:100%;height:auto;gap:2px;padding:3px;margin:12px 0 4px;border:0;border-radius:var(--r);background:#eceef2;overflow:visible}
.financeKind button{flex:1;min-height:40px;border:0;border-radius:calc(var(--r) - 2px);background:transparent;color:#5b6270;font-size:14px;font-weight:600}
.financeKind button:hover{background:rgba(255,255,255,.6);color:var(--text)}
.financeKind button.on{background:var(--surface);box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px rgba(16,24,40,.04)}
.financeKind button.on[data-kind="expense"]{background:var(--surface);color:#b03a3a}.financeKind button.on[data-kind="income"]{background:var(--surface);color:#1f7a4d}
.financeSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;text-align:left;font-size:12px;color:var(--muted)}
.financeSummary>span{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);font-weight:500;min-width:0}
.financeSummary strong{display:block;font-size:calc(22px * min(1, 11 / var(--len, 1)));font-weight:500;color:var(--text);white-space:nowrap;max-width:100%}
.financeSummary strong.in{color:#1f7a4d}.financeSummary strong.out{color:#b03a3a}
.financeStart{border-color:var(--border);background:var(--surface-2)}
body.phone .financeSummary{gap:6px}body.phone .financeSummary>span{padding:9px 10px}body.phone .financeSummary strong{font-size:calc(16px * min(1, 8 / var(--len, 1)))}
body.phone .financeKind button,body.phone #boardTools button,body.phone .folderChip{min-height:44px}
/* Mind Node: same buttons, same order, grouped by thin dividers; Delete board in red. */
.nodeSep{flex:0 0 1px;align-self:stretch;min-height:24px;background:var(--border);margin:0 4px}
#boardDelete{color:var(--danger)}
#boardTools button{min-height:36px}
#editorTitle{margin-bottom:10px}
.settingsTitle h2{margin-right:auto}
.segmented button,.visualTabs button,.schViewBtn,.financeTabs button,.tabs a,.schTabs a{color:#5b6270}   /* 4.5:1 on the grey track */
/* 3.113 Schedule Focus mode (Sam, design B): no menu, header or timeline; the list on the left, the chosen task's memo on the right. */
/* ---- Ledger fixes on top of the copied rules */
[hidden]{display:none!important}
.financeBudgetRow input,.financeBudgetRow select,.financeStartRow input{width:100%;min-width:0}
.financeStartRow{display:flex;flex-wrap:wrap;gap:8px}.financeStartRow input{flex:1 1 160px;width:auto}
.financeTabs{max-width:100%;overflow-x:auto}
/* Phone: every button, field, tab and toggle is at least 44 px tall (design rule). */
body.phone button:not(.linkButton),body.phone input:not([type=checkbox]),body.phone select,body.phone .financeTabs button,body.phone .financeKind button{min-height:44px}
body.phone summary{min-height:44px;padding:11px 0;line-height:22px;cursor:pointer}
body.phone .linkButton,body.phone a.linkButton{min-height:44px;display:inline-flex;align-items:center}
