.fw { max-width:1600px; margin:0; color:var(--text); }
.fw *, .fw-dialog *, .fw-entry * { box-sizing:border-box; }
.fw [hidden] { display:none!important; }
.fw button, .fw input, .fw select, .fw-dialog button, .fw-dialog input { font:inherit; color:var(--text); border:1px solid var(--border); border-radius:10px; background:var(--card); padding:10px 14px; min-height:42px; min-width:0; }
.fw button { cursor:pointer; }
.fw button:disabled { opacity:.6; cursor:wait; }
.fw button.fw-primary, .fw-dialog .fw-primary { background:var(--accent); color:#fff; border-color:var(--accent); }
.fw-header,.fw-toolbar,.fw-section-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.fw-header h2 { font-size:28px; margin:0 0 6px; }
.fw p,.fw small { color:var(--muted); }
.fw-header p { margin:0; font-size:13px; }
.fw-month,.fw-actions,.fw-toolbar nav { display:flex; align-items:center; gap:8px; }
.fw-month input { width:172px; color-scheme:dark; }
.fw-toolbar { flex-wrap:wrap; }
.fw-toolbar nav { background:var(--card); padding:4px; border-radius:12px; border:1px solid var(--border); }
.fw-toolbar nav button { border-color:transparent; background:transparent; }
.fw-toolbar nav button[aria-pressed=true] { background:color-mix(in srgb,var(--accent) 18%,var(--card)); color:var(--text); border-color:color-mix(in srgb,var(--accent) 40%,var(--border)); }
.fw-settings { position:relative; }
.fw-settings summary { cursor:pointer; padding:12px; list-style:none; }
.fw-settings > div { position:absolute; right:0; top:100%; z-index:5; background:var(--card); padding:8px; border:1px solid var(--border); border-radius:12px; box-shadow:0 12px 35px #0005; width:220px; }
.fw-settings button { display:block; width:100%; text-align:left; margin:3px 0; }
.fw-settings [data-action=reset] { color:var(--red); }
@media(max-width:900px) {
  .fw-actions > .fw-settings { flex:0 0 100%; min-width:0; }
  .fw-settings summary { display:flex; align-items:center; gap:8px; width:fit-content; min-height:44px; box-sizing:border-box; }
  .fw-settings summary::after { content:'Настройки финансов'; font-size:13px; }
  .fw-settings > div { position:static; width:100%; max-width:320px; box-sizing:border-box; margin-top:4px; }
}
#fwStatus:empty { display:none; }
.fw-accounts { display:flex; gap:12px; overflow-x:auto; padding:2px 0 18px; align-items:stretch; }
.fw-accounts > * { flex:0 0 auto; text-align:left; }
.fw-accounts > div { padding:8px 24px 8px 0; }
.fw-accounts small,.fw-accounts strong,.fw-accounts b { display:block; }
.fw-accounts strong { font-size:28px; margin-top:6px; }
.fw-accounts b { margin-top:8px; }
.fw-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:10px 0 30px; }
.fw-metrics > * { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:18px; text-align:left; }
.fw-metrics small,.fw-metrics strong { display:block; }
.fw-metrics strong { font-size:24px; margin:10px 0; }
.fw-income { color:var(--green); }
.fw-columns { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr); gap:28px; }
.fw-columns > * { min-width:0; }
.fw h3 { font-size:17px; margin:0; }
.fw-section-head { margin-bottom:8px; }
.fw-section-head button { border:0; background:transparent; color:var(--muted); font-size:12px; }
.fw-hint { font-size:13px; margin:8px 0 18px; line-height:1.5; }
.fw-categories { display:grid; grid-template-columns:repeat(auto-fill,minmax(155px,1fr)); gap:12px; }
.fw-category { display:flex; flex-direction:column; align-items:flex-start; gap:10px; text-align:left; padding:18px!important; min-height:164px!important; overflow-wrap:anywhere; }
.fw-category-icon { display:grid; place-items:center; background:color-mix(in srgb,var(--accent) 14%,var(--card)); border-radius:14px; width:42px; height:42px; font-size:23px; }
.fw-category b { font-size:14px; font-weight:500; }
.fw-category strong { font-size:19px; }
.fw small { font-size:12px; line-height:1.4; }
.fw progress { width:100%; height:6px; border:none; border-radius:10px; overflow:hidden; background:var(--border); accent-color:var(--accent); }
.fw progress::-webkit-progress-bar { background:var(--border); }
.fw progress::-webkit-progress-value { background:var(--accent); border-radius:10px; }
.fw progress.fw-over::-webkit-progress-value { background:var(--red); }
.fw progress.fw-over { accent-color:var(--red); }
.fw-transaction { display:grid; grid-template-columns:32px minmax(0,1fr) auto; width:100%; gap:10px; text-align:left; align-items:center; border:0!important; border-bottom:1px solid var(--border)!important; border-radius:0!important; background:transparent!important; padding:14px 4px!important; }
.fw-transaction b { font-size:14px; font-weight:500; }
.fw-transaction small { display:block; margin-top:5px; overflow-wrap:anywhere; }
.fw-transaction strong { font-size:14px; white-space:nowrap; }
.fw-tx-icon { font-size:21px; }
.fw-day { color:var(--muted); font-size:12px; font-weight:500; margin:20px 0 4px; }
.fw-empty { color:var(--muted); padding:30px 10px; font-size:14px; line-height:1.6; }
.fw-filters { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:10px; margin:18px 0; }
#fwMore { display:block; margin:24px auto; }
.fw-limit-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.fw-limit-list button { display:flex; flex-direction:column; align-items:stretch; gap:12px; padding:20px; text-align:left; }
.fw-dialog { position:fixed; inset:0; margin:auto; width:420px; max-width:calc(100% - 24px); color:var(--text); background:var(--card); border:1px solid var(--border); border-radius:18px; padding:24px; }
.fw-dialog::backdrop { background:#0009; }
.fw-dialog p { color:var(--muted); font-size:13px; margin:12px 0; }
.fw-dialog input { display:block; width:100%; margin:10px 0 20px; font-size:20px; }
.fw-dialog form > div { display:flex; justify-content:flex-end; gap:10px; }
.fw-dialog .fw-limit-error { color:var(--red); }
#addTransactionModal .fw-entry { width:460px; max-width:calc(100vw - 24px); max-height:90dvh; overflow-y:auto; }
#transactionAmount { font-size:30px!important; font-weight:600; }
#fwEntryDetails { margin:16px 0; }
#fwEntryDetails summary { cursor:pointer; color:var(--muted); padding:10px 0; }
#fwDeleteTransaction { display:block; color:var(--red); background:transparent; border:0; padding:14px; margin:8px auto 0; }
#fwDeleteTransaction[hidden] { display:none; }
@media(max-width:1050px) { .fw-columns { grid-template-columns:1fr; } .fw-recent { margin-top:10px; } .fw-filters { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) {
  .fw-header { align-items:flex-start; gap:10px; } .fw-header h2 { font-size:22px; } .fw-header p { display:none; }
  .fw-header { flex-wrap:wrap; } .fw-actions > button { white-space:nowrap; }
  .fw-month { gap:2px; } .fw-month input { width:136px; padding:8px; font-size:14px; } .fw-month button { padding:8px 12px; }
  .fw-toolbar { gap:12px; } .fw-toolbar nav { width:100%; } .fw-toolbar nav button { flex:1; padding:8px; font-size:14px; }
  .fw-actions { width:100%; gap:6px; } .fw-actions > button { flex:1; font-size:14px; padding:10px 6px; }
  .fw-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:24px; }
  .fw-metrics > * { padding:13px; } .fw-metrics strong { font-size:19px; overflow-wrap:anywhere; }
  .fw-categories { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .fw-category { padding:14px!important; }
  .fw-filters { grid-template-columns:1fr 1fr; } #fwSearch { grid-column:1/-1; } .fw input,.fw select { font-size:16px; width:100%; }
  .fw-transaction { grid-template-columns:24px minmax(0,1fr) auto; gap:8px; } .fw-transaction strong { font-size:13px; }
  #addTransactionModal { padding:0!important; align-items:flex-end!important; }
  #addTransactionModal .fw-entry { width:100%; max-width:100%; margin:0; max-height:92dvh; border-radius:20px 20px 0 0; padding:22px 18px calc(20px + env(safe-area-inset-bottom)); }
  #addTransactionModal input,#addTransactionModal select { min-width:0; font-size:16px; }
}
