/* Real account totals in the iOS 18 grouped dashboard treatment. */
.pc-panel { min-width: 0; max-width: 100%; border: 1px solid #e8e8ee; border-radius: 20px; background: #fff; overflow: hidden; box-shadow: 0 2px 8px #17244003; animation: pc-enter 220ms ease-out both; }
.pc-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; padding: 25px 26px 0; }
.pc-heading h2 { font-size: 18px; font-weight: 650; letter-spacing: -.3px; color: #28282f; margin: 0; }
.pc-heading p { color: #70707a; font-size: 12px; line-height: 1.8; margin-top: 7px; }
.pc-status { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; white-space: nowrap; padding: 6px 9px; color: #3d8768; background: #edf7f0; border-radius: 7px; }
.pc-status>span { font-size: 12px; font-weight: 650; }
.pc-panel.is-pending .pc-status { color: #9e793a; background: #fff6e7; }
.pc-layout { display: grid; grid-template-columns: minmax(0,1fr) 255px; gap: 26px; padding: 24px 26px 20px; }
.pc-visual { min-width: 0; }
.pc-result-row { display: flex; gap: 26px; align-items: center; padding: 0 2px 15px; }
.pc-result { display: grid; gap: 9px; min-width: 0; }
.pc-result-label { font-size: 12px; color: #72727c; }
.pc-result strong { color: #168064; font-size: 36px; font-weight: 650; line-height: 1.22; letter-spacing: -.9px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pc-panel.is-loss .pc-result strong { color: #b65d50; }
.pc-panel.is-pending .pc-result strong { color: #a17d3e; font-size: 32px; }
.pc-margin { border-left: 1px solid #e8e8ee; padding-left: 25px; display: grid; gap: 6px; min-width: 120px; flex-shrink: 0; }
.pc-margin>span { color: #74747e; font-size: 12px; }
.pc-margin strong { color: #496b58; font-size: 25px; font-weight: 550; font-variant-numeric: tabular-nums; }
.pc-margin small { font-size: 11px; color: #85858e; line-height: 1.6; }
.pc-panel.is-loss .pc-margin strong { color: #b65d50; }
.pc-panel.is-pending .pc-margin strong { color: #85858f; }
.pc-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-left: auto; align-items: center; align-self: flex-end; padding-bottom: 4px; font-size: 11px; color: #747c76; }
.pc-legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.pc-legend i { display: inline-block; width: 7px; height: 7px; border-radius: 2px; }
.pc-legend .is-income { background: #83bba6; }
.pc-legend .is-cost { background: #cdb697; }
.pc-legend .is-profit { background: #168064; }
.pc-legend .is-loss { background: #bd7b6e; }
.pc-legend .is-unknown { background: transparent; border: 1px dashed #b5a584; }
.pc-chart-scroll { max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; margin: 5px -3px 0; border-radius: 10px; scrollbar-width: thin; scrollbar-color: #d5ded8 #f6f8f5; }
.pc-chart-scroll:focus-visible { outline: 2px solid #75aeed; outline-offset: -2px; }
.pc-scroll-hint { display: none; }
.pc-svg { display: block; width: 100%; min-width: 680px; height: auto; overflow: visible; font-family: inherit; }
.pc-axis { fill: #7c857e; font-size: 14px; font-variant-numeric: tabular-nums; }
.pc-grid { stroke: #ecefee; stroke-width: 1; stroke-dasharray: 3 4; }
.pc-grid.is-zero { stroke: #d8e1da; stroke-dasharray: none; }
.pc-baseline { stroke: #d4ded6; stroke-width: 1; }
.pc-connector { stroke: #b2c6b9; stroke-width: 1; stroke-dasharray: 4 4; }
.pc-final-column { fill: #f1f8f3; }
.pc-final-column.is-loss { fill: #fcf4ef; }
.pc-final-column.is-pending { fill: #faf8f2; }
.pc-bar.income { fill: #83bba6; }
.pc-bar.cost { fill: #cdb697; }
.pc-bar.profit { fill: #168064; }
.pc-bar.loss { fill: #bd7b6e; }
.pc-zero-bar { stroke-width: 3; stroke-linecap: round; }
.pc-zero-bar.income { stroke: #83bba6; }
.pc-zero-bar.cost { stroke: #cdb697; }
.pc-zero-bar.profit { stroke: #168064; }
.pc-zero-bar.loss { stroke: #bd7b6e; }
.pc-bar-value { fill: #5e8572; font-size: 17px; font-weight: 550; font-variant-numeric: tabular-nums; }
.pc-bar-value.cost { fill: #9f825c; }
.pc-bar-value.profit { fill: #168064; font-weight: 650; }
.pc-bar-value.loss { fill: #ad6254; font-weight: 650; }
.pc-category { fill: #616f65; font-size: 15px; font-weight: 500; }
.pc-kind { fill: #8b948d; font-size: 13px; }
.pc-unknown-bar { fill: #fdfbf6; stroke: #cabea3; stroke-width: 1; stroke-dasharray: 5 4; }
.pc-unknown-symbol { fill: #b5a681; font-size: 30px; }
.pc-unknown-text { fill: #a18c62; font-size: 15px; }
.pc-breakdown { border-left: 1px solid #ededf2; padding-left: 24px; min-width: 0; }
.pc-breakdown h3 { font-size: 13px; color: #656570; font-weight: 550; margin: 0 0 19px; }
.pc-amounts { margin: 0; padding: 0; }
.pc-detail { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 17px; min-width: 0; }
.pc-detail dt { font-size: 12px; color: #75757f; line-height: 1.7; }
.pc-detail dd { margin: 0; color: #515b54; font-size: 13px; font-weight: 550; line-height: 1.7; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pc-detail.is-result { border-top: 1px solid #e8ece8; margin-top: 2px; padding-top: 16px; margin-bottom: 19px; }
.pc-detail.is-result dt { font-weight: 600; color: #607165; }
.pc-detail.is-result dd { font-size: 17px; font-weight: 600; color: #168064; }
.pc-panel.is-loss .pc-detail.is-result dd { color: #b16052; }
.pc-panel.is-pending .pc-detail.is-result dd { color: #9e813e; }
.pc-cash-summary { padding: 15px 16px; border-radius: 13px; background: #f5f6f9; margin-top: 16px; }
.pc-cash-summary>span { display: block; color: #757781; font-size: 12px; }
.pc-cash-summary strong { display: block; color: #53665a; font-size: 24px; font-weight: 600; letter-spacing: -.5px; margin-top: 8px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pc-cash-summary p { color: #858690; font-size: 11px; line-height: 1.9; margin-top: 9px; }
.pc-pending-note { margin: 0 26px 22px; padding: 16px 18px; border-radius: 13px; background: #fff9ee; color: #9c7b41; font-size: 12px; line-height: 1.9; overflow-wrap: anywhere; }
.pc-pending-note strong { font-size: 13px; font-weight: 600; color: #94743b; }
.pc-pending-note ul { padding-left: 18px; margin: 7px 0; }
.pc-pending-note li+li { margin-top: 3px; }
.pc-pending-note p { color: #a28c63; margin-top: 5px; }
.pc-footnote { padding: 16px 26px 19px; background: #fafbfc; border-top: 1px solid #ededf2; }
.pc-footnote p { font-size: 12px; color: #7d8280; line-height: 1.9; }
.pc-footnote p+p { margin-top: 5px; }
.pc-footnote strong { color: #607c68; font-weight: 550; margin-right: 7px; }
@keyframes pc-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@media(max-width:1300px) {
  .pc-result-row { flex-wrap: wrap; row-gap: 14px; gap: 22px; }
  .pc-legend { width: 100%; margin-left: 0; }
  .pc-layout { grid-template-columns: minmax(0,1fr) 230px; gap: 21px; }
  .pc-breakdown { padding-left: 20px; }
  .pc-detail { gap: 8px; }
}
@media(max-width:1050px) {
  .pc-layout { grid-template-columns: 1fr; }
  .pc-result-row { flex-wrap: nowrap; }
  .pc-legend { width: auto; margin-left: auto; }
  .pc-breakdown { border-left: 0; padding-left: 0; border-top: 1px solid #ededf2; padding-top: 21px; }
  .pc-amounts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; }
  .pc-detail.is-result { grid-column: 1/-1; }
  .pc-cash-summary { margin-top: 0; }
  .pc-cash-summary strong { font-size: 23px; }
}
@media(max-width:760px) {
  .pc-panel { border-radius: 18px; }
  .pc-heading { padding: 22px 20px 0; gap: 12px; }
  .pc-heading h2 { font-size: 17px; }
  .pc-heading p { font-size: 12px; line-height: 1.8; }
  .pc-status { font-size: 10px; padding: 5px 7px; }
  .pc-layout { padding: 21px 20px 20px; gap: 18px; }
  .pc-result-row { flex-wrap: wrap; padding: 0; gap: 20px; row-gap: 17px; }
  .pc-result { flex: 1; }
  .pc-result strong { font-size: 31px; }
  .pc-panel.is-pending .pc-result strong { font-size: 29px; }
  .pc-result-label { font-size: 12px; }
  .pc-margin { padding-left: 20px; min-width: 108px; }
  .pc-margin strong { font-size: 23px; }
  .pc-margin small { font-size: 10px; }
  .pc-legend { width: 100%; gap: 17px; padding-top: 0; margin-left: 0; font-size: 11px; }
  .pc-chart-scroll { margin: 5px -6px 0; max-width: calc(100% + 12px); }
  .pc-svg { min-width: 720px; }
  .pc-scroll-hint { display: block; color: #8a938b; font-size: 11px; padding: 13px 0 0; line-height: 1.7; }
  .pc-breakdown { padding-top: 20px; }
  .pc-breakdown h3 { margin-bottom: 17px; }
  .pc-amounts { display: block; }
  .pc-detail { margin-bottom: 15px; gap: 14px; }
  .pc-detail dt { font-size: 12px; }
  .pc-detail dd { font-size: 14px; }
  .pc-detail.is-result { padding-top: 15px; margin-top: 6px; }
  .pc-detail.is-result dd { font-size: 18px; }
  .pc-cash-summary { padding: 15px 16px; }
  .pc-cash-summary strong { font-size: 23px; }
  .pc-pending-note { margin: 0 20px 20px; padding: 15px 16px; }
  .pc-footnote { padding: 15px 20px 19px; }
  .pc-footnote p { font-size: 11px; }
}
@media(prefers-reduced-motion:reduce) { .pc-panel { animation: none; } }
