/* 두손장부 budget pages: 예산 현황 (.bq) and 예산 설정 (.bs) */
/* verdict card */
.bq-verdict{gap:18px}
.bq-head{font-size:25px;font-weight:800;letter-spacing:-.035em;line-height:1.25;color:var(--ink);margin:0;overflow-wrap:anywhere}
.bq-head.neg{color:var(--bad-t)}.bq-head.pos{color:var(--good-t)}
.bq-sub{margin:6px 0 0;font-size:14.5px;line-height:1.5}
.bq-kv{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line-2)}
.bq-kv>div{display:flex;flex-direction:row;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.bq-kv span{font-size:14px;color:var(--ink-2);font-weight:600}
.bq-kv b{font-size:17px;text-align:right}
.bq-left{background:var(--surface-2);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.bq-left p{margin:0;font-size:14px;line-height:1.5}
.bq-left p:first-child b{font-size:17px;font-variant-numeric:tabular-nums}
/* tracks: the budget is the light lane, the fill what really happened, the tick where the plan expects us today */
.bq-track{position:relative;display:block;height:10px;min-width:0}
.bq-track.lg{height:12px}
.bq-track::before{content:"";position:absolute;inset:0;border-radius:6px;background:var(--line-2)}
.bq-bud{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--surface-3)}
.bq-fill{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:var(--brand);min-width:2px}
.bq-fill.bad{background:var(--bad)}.bq-fill.warn{background:var(--warn)}.bq-fill.good{background:var(--good)}
.bq-track em{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--ink);opacity:.7}
/* category bullets */
.bq-chips{gap:6px}
.bq-chips .chip{height:32px;padding:0 12px}
.bq-chips .chip:disabled{opacity:.45;cursor:default}
.chip .dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--ink-3)}
.chip .dot.bad{background:var(--bad)}.chip .dot.warn{background:var(--warn)}.chip .dot.good{background:var(--good)}
.bq-list{display:flex;flex-direction:column;margin:0 -10px}
.bq-row{display:grid;grid-template-columns:minmax(96px,1.1fr) minmax(70px,2fr) minmax(128px,172px) 48px;align-items:center;gap:12px;padding:9px 10px;border:0;border-radius:12px;background:none;text-align:left;color:var(--ink);font:inherit;width:100%}
.bq-row:hover{background:var(--surface-2)}
.bq-n{display:flex;align-items:center;gap:6px;min-width:0;font-weight:650;font-size:14.5px}
.bq-n>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.bq-n .badge{height:19px;padding:0 6px;font-size:11px;flex:none}
.bq-v{font-size:13.5px;white-space:nowrap;text-align:right}
.bq-row>.badge{justify-self:end}
/* variance */
.bv-list{display:flex;flex-direction:column;gap:4px}
.bv-row{display:grid;grid-template-columns:minmax(80px,1fr) minmax(0,1.5fr) 62px;align-items:center;gap:10px;padding:5px 0}
.bv-n{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.bv-axis{position:relative;height:16px}
.bv-axis::before{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:1px;background:var(--ink-4)}
.bv-axis i{position:absolute;top:2px;bottom:2px;border-radius:4px;min-width:2px}
.bv-axis i.good{background:var(--good)}.bv-axis i.bad{background:var(--bad)}
.bv-v{font-size:13.5px;font-weight:700;text-align:right;white-space:nowrap}
.bv-leg{display:flex;gap:16px;font-size:12.5px;color:var(--ink-2);font-weight:600}
.bv-leg span{display:inline-flex;align-items:center;gap:6px}
.bv-leg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.bv-leg i.good{background:var(--good)}.bv-leg i.bad{background:var(--bad)}
/* fixed and variable */
.bq-split .bq-sp{gap:8px}
.bq-split .bq-sp b{font-size:15px}
.bq-split.wide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.bq-split.wide>.card-h{grid-column:1/-1}
@media (max-width:700px){.bq-split.wide{grid-template-columns:minmax(0,1fr)}}
/* detail table */
.bq-fin td:first-child{min-width:160px}
/* folding looks like the statements' (stream fq): a caret on the group name, 전부 펼치기 and 전부 접기 as ghost buttons */
.bq .fold-btns{display:inline-flex;gap:4px;flex-wrap:wrap}
.bq-fold{font-weight:750}
.bq-fold .caret{margin:0 2px 0 -4px}
.bq-fold small{font-weight:600;font-size:12px;margin-left:6px}
.bq-fin tr.kid td:first-child{padding-left:22px}
.bq-fin .badge{height:20px;font-size:11.5px}
/* no budget */
.bq-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface-2);border-radius:14px;padding:14px 16px}
.bq-cta p{margin:0;flex:1 1 260px;font-size:14px;color:var(--ink-2);line-height:1.5}
@media (max-width:700px){.bq-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "t b";row-gap:7px;column-gap:10px}
  .bq-row .bq-n{grid-area:n}.bq-row .bq-track{grid-area:t}.bq-row .bq-v{grid-area:v}.bq-row>.badge{grid-area:b}
  .bq-head{font-size:22px}}

/* ===== 예산 설정 ===== */
.bs-top{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.bs-tot{display:flex;flex-direction:column;gap:4px;min-width:0}
.bs-total{display:grid;grid-template-columns:auto 150px;align-items:center;gap:6px 10px;max-width:100%}
.bs-total>span:last-child{grid-column:1/-1;text-align:right}
.bs-tools{gap:8px}
.bs-head,.bs-row{display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(0,3fr) 150px;align-items:center;gap:14px;padding:7px 22px}
.bs-head{font-size:12.5px;font-weight:700;color:var(--ink-3);border-bottom:1px solid var(--line);padding-top:16px;padding-bottom:10px}
.bs-head .bs-v{text-align:right}
.bs-refs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px;min-width:0}
.bs-r{text-align:right;font-size:13.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs-head .bs-r{color:var(--ink-3);font-size:12.5px}
.bs-row{border-bottom:1px solid var(--line-2)}
.bs-row.gh{background:var(--surface-2);border-bottom:0;margin-top:6px}
.bs-row.gh .bs-r{color:var(--ink-2);font-weight:650}
.bs-row.kid .bs-n{padding-left:14px}
.bs-row.tot{border-top:1px solid var(--ink-4);border-bottom:0;padding-top:12px;padding-bottom:16px;font-weight:800}
.bs-row.tot .bs-r{font-weight:700;color:var(--ink)}
.bs-n{display:flex;align-items:center;gap:6px;min-width:0;font-size:14.5px}
.bs-n>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.bs-n .badge{height:19px;padding:0 6px;font-size:11px;flex:none}
.bs-v{text-align:right;min-width:0}
.bs-v b{font-size:14.5px}
input.bs-in{height:36px;text-align:right;font-weight:700;padding:0 10px;font-size:14.5px;font-variant-numeric:tabular-nums}
/* a placeholder is a suggestion (the 3-month average, or the sum for 월 총액 예산), never a value */
input.bs-in::placeholder{color:var(--ink-4);font-weight:500}
@media (max-width:760px){
  .bs-head{display:none}
  .bs-row{grid-template-columns:minmax(0,1fr) 128px;grid-template-areas:"n v" "r r";row-gap:4px;padding:9px 16px}
  .bs-row .bs-n{grid-area:n}.bs-row .bs-v{grid-area:v}.bs-row .bs-refs{grid-area:r}
  .bs-refs{display:flex;flex-wrap:wrap;gap:2px 12px}
  .bs-r{font-size:12px;text-align:left;color:var(--ink-3)}
  .bs-r::before{content:attr(data-l) " ";color:var(--ink-3);font-weight:600}
  .bs-row.gh .bs-r,.bs-row.tot .bs-r{color:var(--ink-2)}
  .bs-refs.quiet{display:none}
  .bs-total{grid-template-columns:minmax(0,1fr) 140px}
  .bs-total>span:last-child{text-align:left}
}
