.generation-cost-entry { margin-left: auto; white-space: nowrap; }
.generation-cost-modal-overlay { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(15, 18, 24, .48); backdrop-filter: blur(8px); }
.generation-cost-modal-overlay[hidden] { display: none; }
.generation-cost-modal { width: min(1120px, 100%); max-height: min(860px, 92vh); overflow: hidden; display: flex; flex-direction: column; background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 24px 80px rgba(0, 0, 0, .24); }
.generation-cost-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 22px 14px; border-bottom: 1px solid var(--line); }
.generation-cost-title { font-size: 19px; font-weight: 700; }
.generation-cost-sub { margin-top: 4px; color: var(--muted); font-size: 12px; }
.generation-cost-head-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.generation-cost-month { width: 136px; min-height: 34px; }
.generation-cost-body { overflow: auto; padding: 18px 22px 24px; }
.generation-cost-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.generation-cost-toolbar .btn { min-height: 34px; }
.generation-cost-coverage { flex: 1 1 280px; min-width: 220px; color: var(--muted); font-size: 12px; }
.generation-cost-coverage.is-warning { color: #a76300; }
html.theme-dark .generation-cost-coverage.is-warning { color: #f1ba62; }
.generation-cost-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.generation-cost-stat { min-height: 78px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb, var(--surface) 92%, var(--line)); }
.generation-cost-stat-label { color: var(--muted); font-size: 12px; }
.generation-cost-stat-value { margin-top: 6px; font-size: 21px; font-variant-numeric: tabular-nums; }
.generation-cost-section { margin-top: 18px; }
.generation-cost-section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-size: 14px; font-weight: 700; }
.generation-cost-section-note { color: var(--muted); font-size: 12px; font-weight: 400; }
.generation-cost-price-settings { margin-top: 18px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb, var(--surface) 96%, var(--line)); }
.generation-cost-price-settings > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; font-size: 14px; font-weight: 700; list-style: none; }
.generation-cost-price-settings > summary::-webkit-details-marker { display: none; }
.generation-cost-price-settings > summary::before { content: "›"; flex: 0 0 14px; color: var(--muted); font-size: 18px; line-height: 1; transition: transform .16s ease; }
.generation-cost-price-settings[open] > summary::before { transform: rotate(90deg); }
.generation-cost-price-settings-body { padding: 0 14px 14px; }
.generation-cost-price-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.generation-cost-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
.generation-cost-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 12px; }
.generation-cost-table th, .generation-cost-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.generation-cost-table th { color: var(--muted); background: color-mix(in srgb, var(--surface) 90%, var(--line)); font-weight: 600; white-space: nowrap; }
.generation-cost-table tr:last-child td { border-bottom: 0; }
.generation-cost-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.generation-cost-user-row { cursor: pointer; }
.generation-cost-user-row:hover td { background: color-mix(in srgb, var(--blue) 7%, var(--surface)); }
.generation-cost-user-row td:first-child::before { content: "›"; display: inline-block; width: 16px; color: var(--muted); font-size: 16px; transition: transform .16s ease; }
.generation-cost-user-row.is-open td:first-child::before { transform: rotate(90deg); }
.generation-cost-detail-row td { padding: 0; background: color-mix(in srgb, var(--surface) 94%, var(--line)); }
.generation-cost-detail { padding: 12px 14px 14px 34px; }
.generation-cost-day { margin-top: 10px; }
.generation-cost-day:first-child { margin-top: 0; }
.generation-cost-day-head { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 12px; }
.generation-cost-day-head strong { color: var(--text); font-weight: 600; }
.generation-cost-model-list { margin-top: 5px; display: grid; gap: 3px; }
.generation-cost-model-line { display: flex; justify-content: space-between; gap: 12px; padding: 5px 8px; border-left: 2px solid var(--line); background: color-mix(in srgb, var(--surface) 88%, var(--line)); }
.generation-cost-model-line span:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.generation-cost-price-input { width: 108px; min-height: 30px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); text-align: right; }
.generation-cost-unpriced { color: #a76300; }
html.theme-dark .generation-cost-unpriced { color: #f1ba62; }
.generation-cost-empty { padding: 18px; color: var(--muted); text-align: center; }
.generation-cost-message { padding: 12px 0; color: var(--muted); }
.generation-cost-error { color: #b42318; }
html.theme-dark .generation-cost-error { color: #ff938c; }
@media (max-width: 700px) {
  .generation-cost-modal-overlay { padding: 8px; align-items: flex-end; }
  .generation-cost-modal { max-height: 96vh; border-radius: 12px 12px 0 0; }
  .generation-cost-head { padding: 16px; }
  .generation-cost-body { padding: 14px 16px 20px; }
  .generation-cost-head-actions { gap: 6px; }
  .generation-cost-month { width: 126px; }
  .generation-cost-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .generation-cost-stat-value { font-size: 18px; }
  .generation-cost-entry { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .generation-cost-user-row td:first-child::before, .generation-cost-price-settings > summary::before { transition: none; } }
