/* A focused renewal action, shared by the dialog and the no-JS page. */
.renewal-page { max-width: 660px; margin: 24px auto; }
.renewal-dialog { width: min(660px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); padding: 0; border: 0; border-radius: 20px; color: var(--ink); background: white; box-shadow: 0 24px 90px #0f20364d; }
.renewal-dialog::backdrop { background: #10243b80; backdrop-filter: blur(3px); }
.renewal-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: white; }
.renewal-header { padding: 28px 32px 22px; border-bottom: 1px solid var(--line); }
.renewal-header h1 { margin: 8px 0 10px; font-size: clamp(24px, 3vw, 30px); line-height: 1.2; letter-spacing: -.025em; }
.renewal-header p { margin: 0; color: var(--muted); font-size: 15px; overflow-wrap: anywhere; }
.renewal-body { display: grid; gap: 18px; padding: 26px 32px; }
.renewal-form .field-group { display: grid; gap: 8px; font-size: 16px; }
.renewal-form .field-group > span:first-child { font-weight: 650; }
.renewal-form .field-group small { color: var(--muted); font-size: 14px; }
.renewal-form .input { width: 100%; min-width: 0; min-height: 48px; font-size: 17px; }
.renewal-presets { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.renewal-presets > span { width: 100%; color: var(--muted); font-size: 14px; }
.renewal-presets .button { min-height: 42px; padding: 8px 18px; font-size: 15px; }
.renewal-preview { margin: 0; padding: 16px; border-radius: 12px; color: var(--primary-dark); background: var(--primary-soft); font-size: 15px; line-height: 1.5; }
.renewal-extra { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.renewal-extra summary { padding: 16px 0; cursor: pointer; font-size: 16px; font-weight: 650; }
.renewal-extra summary span { display: block; margin: 5px 0 0 20px; font-weight: 400; color: var(--muted); font-size: 14px; }
.renewal-extra__fields { display: grid; gap: 20px; padding-bottom: 20px; }
.renewal-explanation { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }
.renewal-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 20px 32px; background: var(--surface-subtle); border-top: 1px solid var(--line); }
.renewal-actions .button { min-height: 46px; font-size: 16px; }
.renewal-form .form-alert { margin: 20px 32px 0; }
.renewal-form button:disabled { opacity: .6; cursor: wait; }
.renewal-dialog [hidden] { display: none; }
.renewal-summary { display: grid; gap: 8px; padding: 4px 0 20px; }
.renewal-summary strong { color: var(--ink); font-size: 23px; line-height: 1.4; }
.renewal-summary p { margin: 0; font-size: 16px; color: var(--muted); line-height: 1.6; }
.renewal-summary--success strong { color: var(--primary-dark); }
.renewal-summary--warning { padding: 18px; border-radius: 12px; background: var(--warning-soft); }
.renewal-summary--warning strong { font-size: 19px; }
.renewal-history > summary { cursor: pointer; list-style: none; }
.renewal-history > summary::-webkit-details-marker { display: none; }
.renewal-history > summary::after { content: '⌄'; margin-left: 12px; font-size: 24px; color: var(--muted); }
.renewal-history[open] > summary::after { content: '⌃'; }
.renewal-history > summary:focus-visible, .renewal-extra > summary:focus-visible { outline: 3px solid var(--primary); outline-offset: -3px; }
.renewal-history:not([open]) > summary { border-bottom: 0; }
.renewal-history .cycle-row__facts { font-size: 14px; }
.renewal-history .cycle-row__top > div > strong { font-size: 16px; }
.renewal-planned { font-size: 15px; line-height: 1.5; color: var(--primary-dark); }
.renewal-planned strong, .renewal-planned span { display: block; }
.renewal-planned span { color: var(--muted); font-size: 14px; }
.license-item__footer--workflow { flex-wrap: wrap; }
.license-kpi p strong { white-space: normal; }
.renewal-correction { margin-top: 18px; }
.license-renewal-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 18px; margin: 18px 0; border-radius: 12px; background: var(--surface-subtle); }
.license-renewal-dates div { display: grid; gap: 5px; }
.license-renewal-dates span { font-size: 14px; color: var(--muted); }
.license-renewal-dates strong { font-size: 18px; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) {
    .renewal-header, .renewal-body { padding: 22px 20px; }
    .renewal-actions { padding: 18px 20px; }
    .renewal-actions .button { width: 100%; justify-content: center; }
    .renewal-summary strong { font-size: 20px; }
    .renewal-dialog { max-height: calc(100dvh - 24px); }
}
