/* /Components/Home/Custom/ChartBuilderDialog.razor.rz.scp.css */
/* Chart builder (PR 05.24), in the style of the dashboard's QR dialog. */
.cp-builder[b-x4vizmp01q] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: color-mix(in srgb, var(--cp-text) 45%, transparent);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.cp-builder__card[b-x4vizmp01q] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: min(60rem, 100%);
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    padding: 1.25rem 1.5rem 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    animation: cp-rise 0.3s var(--cp-ease) both;
}

.cp-builder__head[b-x4vizmp01q] { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.cp-builder__title[b-x4vizmp01q] { margin: 0; font-size: var(--cp-text-lg, 1.125rem); font-weight: 600; color: var(--cp-text); }
.cp-builder__lead[b-x4vizmp01q] { margin: 0.25rem 0 0; font-size: var(--cp-text-sm); color: var(--cp-text-2); }
.cp-builder__quota[b-x4vizmp01q] { margin: 0; font-size: var(--cp-text-sm); color: var(--cp-text-2); }
.cp-builder__muted[b-x4vizmp01q] { margin: 0; font-size: var(--cp-text-sm); color: var(--cp-text-2); }

.cp-builder__close[b-x4vizmp01q],
.cp-builder__icon-btn[b-x4vizmp01q] {
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    flex: none;
    border: 0;
    border-radius: 0.75rem;
    background: transparent;
    color: var(--cp-text-2);
}

.cp-builder__close:hover[b-x4vizmp01q],
.cp-builder__icon-btn:hover[b-x4vizmp01q] { background: var(--cp-bg-muted); color: var(--cp-text); }

/* ---- step 1: the questions */
.cp-builder__options[b-x4vizmp01q] { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.625rem; }

.cp-builder__option[b-x4vizmp01q] {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.25rem 0.75rem;
    width: 100%;
    height: 100%;
    padding: 0.875rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: 1rem;
    background: var(--cp-surface);
    color: var(--cp-text);
    text-align: left;
    font-size: var(--cp-text-sm);
    transition: border-color 0.15s, background 0.15s;
}

.cp-builder__option:hover[b-x4vizmp01q] { border-color: var(--cp-primary); background: var(--cp-accent-bg, var(--cp-bg-muted)); }
.cp-builder__option.is-selected[b-x4vizmp01q] { border-color: var(--cp-primary); }
.cp-builder__option:focus-visible[b-x4vizmp01q] { outline: 2px solid var(--cp-primary); outline-offset: 2px; }
.cp-builder__option.is-locked[b-x4vizmp01q] { color: var(--cp-text-2); }

.cp-builder__icon[b-x4vizmp01q] {
    display: inline-grid;
    place-items: center;
    grid-row: span 2;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.75rem;
    background: var(--cp-bg-muted);
    color: var(--cp-primary);
}

.cp-builder__badge[b-x4vizmp01q] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    width: fit-content;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-builder__notice[b-x4vizmp01q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border-radius: 1rem;
    background: var(--cp-bg-muted);
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-builder__notice p[b-x4vizmp01q] { margin: 0; flex: 1 1 16rem; }

.cp-builder__example[b-x4vizmp01q] { display: flex; flex-direction: column; gap: 0.75rem; padding: 1rem; border: 1px dashed var(--cp-border); border-radius: 1rem; }
.cp-builder__example-head[b-x4vizmp01q] { display: flex; align-items: center; gap: 0.5rem; font-size: var(--cp-text-sm); color: var(--cp-text); }

.cp-builder__example-badge[b-x4vizmp01q] {
    padding: 0.125rem 0.5rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    color: var(--cp-text-2);
}

/* ---- step 2: refine, with the preview beside the form (under it on narrow screens) */
.cp-builder__grid[b-x4vizmp01q] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; align-items: start; }

@media (max-width: 52rem) {
    .cp-builder__grid[b-x4vizmp01q] { grid-template-columns: minmax(0, 1fr); }
}

.cp-builder__form[b-x4vizmp01q] { display: flex; flex-direction: column; gap: 0.875rem; }

.cp-builder__back[b-x4vizmp01q] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    width: fit-content;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-builder__back:hover[b-x4vizmp01q] { color: var(--cp-text); }

.cp-builder__section[b-x4vizmp01q] { margin: 0; padding: 0; border: 0; min-width: 0; }
.cp-builder__section legend[b-x4vizmp01q] { margin-bottom: 0.375rem; font-size: var(--cp-text-sm); font-weight: 600; color: var(--cp-text); }

.cp-builder__row[b-x4vizmp01q] { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.cp-builder__row > *[b-x4vizmp01q] { flex: 1 1 10rem; }
.cp-builder__width[b-x4vizmp01q] { flex: 0 1 9rem !important; }

.cp-builder__hint[b-x4vizmp01q] { margin: -0.125rem 0 0.5rem; font-size: var(--cp-text-xs); color: var(--cp-text-2); }

.cp-builder__filter[b-x4vizmp01q] { display: grid; grid-template-columns: minmax(0, 10rem) minmax(0, 1fr) auto; gap: 0.5rem; margin-bottom: 0.5rem; }

.cp-builder__add[b-x4vizmp01q] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.625rem;
    border: 1px dashed var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-builder__add:hover[b-x4vizmp01q] { color: var(--cp-text); border-color: var(--cp-text-2); }

.cp-builder__kinds[b-x4vizmp01q] { display: flex; flex-wrap: wrap; gap: 0.375rem; }

.cp-builder__kind[b-x4vizmp01q] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-size: var(--cp-text-xs);
    color: var(--cp-text);
}

.cp-builder__kind.is-active[b-x4vizmp01q] { border-color: var(--cp-primary); background: var(--cp-accent-bg, var(--cp-bg-muted)); color: var(--cp-accent-fg, var(--cp-text)); }
.cp-builder__kind:focus-visible[b-x4vizmp01q] { outline: 2px solid var(--cp-primary); outline-offset: 2px; }
.cp-builder__recommended[b-x4vizmp01q] { font-size: 0.6875rem; color: var(--cp-text-2); }

.cp-builder__preview[b-x4vizmp01q] {
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-height: 16rem;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: 1rem;
    background: var(--cp-surface);
}

.cp-builder__preview-title[b-x4vizmp01q] { margin: 0; font-size: var(--cp-text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cp-text-2); }

.cp-builder__skeleton[b-x4vizmp01q] {
    display: block;
    height: 12rem;
    border-radius: 0.75rem;
    background: linear-gradient(90deg, var(--cp-bg-muted) 0%, var(--cp-surface-2, var(--cp-bg-muted)) 50%, var(--cp-bg-muted) 100%);
    background-size: 200% 100%;
    animation: cp-builder-shimmer-b-x4vizmp01q 1.4s linear infinite;
}

@keyframes cp-builder-shimmer-b-x4vizmp01q { from { background-position: 200% 0; } to { background-position: -200% 0; } }

.cp-builder__errors[b-x4vizmp01q] { display: flex; flex-direction: column; gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.cp-builder__errors li[b-x4vizmp01q] { display: flex; align-items: center; gap: 0.375rem; font-size: var(--cp-text-sm); color: var(--cp-text-2); }

.cp-builder__foot[b-x4vizmp01q] { display: flex; justify-content: flex-end; gap: 0.5rem; }

.cp-builder__status[b-x4vizmp01q],
.cp-builder__error[b-x4vizmp01q] { display: flex; align-items: center; gap: 0.375rem; margin: 0; font-size: var(--cp-text-sm); }
.cp-builder__status[b-x4vizmp01q] { color: var(--cp-text-2); }
.cp-builder__error[b-x4vizmp01q] { color: var(--cp-danger, #DC2828); }

@media (prefers-reduced-motion: reduce) {
    .cp-builder__card[b-x4vizmp01q], .cp-builder__skeleton[b-x4vizmp01q] { animation: none; }
}
/* /Components/Home/Custom/CustomChartModule.razor.rz.scp.css */
/* Custom chart module (PR 05.23/05.24): its states and actions. The chart itself is CustomChartView. */
.cp-custom__muted[b-nwvaz1m67p] { color: var(--cp-text-2); font-size: var(--cp-text-sm); margin: 0; }

.cp-custom__note[b-nwvaz1m67p] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-custom__tools[b-nwvaz1m67p] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; }

.cp-custom__chip[b-nwvaz1m67p] {
    padding: 0.25rem 0.625rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-custom__chip:hover[b-nwvaz1m67p] { color: var(--cp-text); border-color: var(--cp-text-2); }
.cp-custom__chip:focus-visible[b-nwvaz1m67p] { outline: 2px solid var(--cp-primary); outline-offset: 2px; }

.cp-custom__icon-btn[b-nwvaz1m67p] {
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid transparent;
    border-radius: var(--cp-radius-control, 0.5rem);
    background: transparent;
    color: var(--cp-text-2);
}

.cp-custom__icon-btn:hover:not(:disabled)[b-nwvaz1m67p] { background: var(--cp-bg-muted); color: var(--cp-text); }
.cp-custom__icon-btn:focus-visible[b-nwvaz1m67p] { outline: 2px solid var(--cp-primary); outline-offset: 2px; }
.cp-custom__icon-btn:disabled[b-nwvaz1m67p] { opacity: 0.5; }

.cp-custom__confirm[b-nwvaz1m67p] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text);
}
/* /Components/Home/Custom/CustomChartView.razor.rz.scp.css */
/* A custom chart result (PR 05.24): the share bars, number and table follow the look of the dashboard's own modules
   (Pages/Home.razor.css), which scoped CSS does not reach from here. */
.cp-custom__muted[b-aijucz4mvd] { color: var(--cp-text-2); font-size: var(--cp-text-sm); margin: 0; }

.cp-custom__chart[b-aijucz4mvd] { position: relative; min-height: 13.75rem; }

.cp-custom__number[b-aijucz4mvd] {
    margin: 0.25rem 0 0;
    font-family: var(--cp-font-mono);
    font-size: 2.25rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-custom__bars[b-aijucz4mvd] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.625rem; margin: 0; padding: 0; list-style: none; }

.cp-custom__bars li[b-aijucz4mvd] {
    display: grid;
    grid-template-columns: minmax(0, 9rem) 1fr 3.5rem 2.75rem;
    align-items: center;
    gap: 0.75rem;
    font-size: var(--cp-text-xs);
}

.cp-custom__label[b-aijucz4mvd] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--cp-text); }

.cp-custom__bar[b-aijucz4mvd] {
    display: block;
    height: 0.625rem;
    overflow: hidden;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-custom__bar > span[b-aijucz4mvd] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--cp-primary);
    transform-origin: left;
    animation: cp-custom-grow-b-aijucz4mvd 0.9s var(--cp-ease) both;
}

.cp-custom__bars li.is-other .cp-custom__bar > span[b-aijucz4mvd] { background: var(--cp-text-2); }

.cp-custom__num[b-aijucz4mvd],
.cp-custom__share[b-aijucz4mvd] { font-family: var(--cp-font-mono); font-variant-numeric: tabular-nums; text-align: right; }
.cp-custom__num[b-aijucz4mvd] { color: var(--cp-text); }
.cp-custom__share[b-aijucz4mvd] { color: var(--cp-text-2); }

@keyframes cp-custom-grow-b-aijucz4mvd { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
    .cp-custom__bar > span[b-aijucz4mvd] { animation: none; }
}

.cp-custom__table-scroll[b-aijucz4mvd] { overflow-x: auto; max-height: 22rem; overflow-y: auto; }

.cp-custom__table[b-aijucz4mvd] { width: 100%; border-collapse: collapse; font-size: var(--cp-text-xs); }

.cp-custom__table th[b-aijucz4mvd],
.cp-custom__table td[b-aijucz4mvd] {
    padding: 0.5rem 0.75rem 0.5rem 0;
    border-bottom: 1px solid var(--cp-border);
    text-align: left;
    white-space: nowrap;
}

.cp-custom__table thead th[b-aijucz4mvd] { position: sticky; top: 0; background: var(--cp-surface); font-weight: 500; color: var(--cp-text-2); }
.cp-custom__table tbody th[b-aijucz4mvd] { font-weight: 400; color: var(--cp-text); }
.cp-custom__table .is-num[b-aijucz4mvd] { text-align: right; font-family: var(--cp-font-mono); font-variant-numeric: tabular-nums; }
/* /Components/Home/HomeCard.razor.rz.scp.css */
.cp-home-card[b-xjtv5wop9o] {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
    animation: cp-rise var(--cp-motion-enter) var(--cp-ease) both;
}

.cp-home-card__title[b-xjtv5wop9o] {
    margin: 0;
    font-size: var(--cp-text-md);
    font-weight: 700;
    letter-spacing: 0;
    color: var(--cp-text);
    overflow-wrap: anywhere;
}

.cp-home-card__desc[b-xjtv5wop9o] {
    margin: 0.125rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-home-card__head[b-xjtv5wop9o] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
}

.cp-home-card__heading[b-xjtv5wop9o] { flex: 1 1 12rem; min-width: 0; }
.cp-home-card__actions[b-xjtv5wop9o] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }

.cp-home-card__body[b-xjtv5wop9o] {
    margin-top: 1rem;
}

.cp-home-card__skeleton[b-xjtv5wop9o] {
    display: block;
    height: 9rem;
    border-radius: var(--cp-radius-panel);
    background: linear-gradient(90deg, var(--cp-bg-muted) 0%, var(--cp-surface-2) 50%, var(--cp-bg-muted) 100%);
    background-size: 200% 100%;
    animation: cp-home-card-shimmer-b-xjtv5wop9o 1.4s linear infinite;
}

.cp-home-card__skeleton--line[b-xjtv5wop9o] {
    width: 50%;
    height: 0.875rem;
    margin-top: 0.5rem;
}

@keyframes cp-home-card-shimmer-b-xjtv5wop9o {
    to { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-home-card[b-xjtv5wop9o],
    .cp-home-card__skeleton[b-xjtv5wop9o] {
        animation: none;
    }
}
/* /Components/Home/HomeChartPicker.razor.rz.scp.css */
/* same track as the small segmented switches of Pages/Home.razor.css (Day / Week / Month), icon-only buttons */
.cp-chart-picker[b-nntdd5yml2] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.125rem;
    padding: 3px;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-chart-picker button[b-nntdd5yml2] {
    display: grid;
    place-items: center;
    width: 1.875rem;
    height: 1.875rem;
    padding: 0;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    color: var(--cp-text-2);
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-chart-picker button:hover[b-nntdd5yml2] { color: var(--cp-text); }

.cp-chart-picker button.is-active[b-nntdd5yml2] {
    background: var(--cp-surface);
    color: var(--cp-primary);
    box-shadow: var(--cp-shadow-card);
}

.cp-chart-picker button:focus-visible[b-nntdd5yml2] {
    outline: 2px solid var(--cp-primary);
    outline-offset: 1px;
}

/* the smallest variant, beside the mini titles of the audience card */
.cp-chart-picker--xs[b-nntdd5yml2] { padding: 2px; }
.cp-chart-picker--xs button[b-nntdd5yml2] { width: 1.5rem; height: 1.5rem; }
/* /Components/Home/HomeConfirmDialog.razor.rz.scp.css */
/* Confirmation dialog of the dashboard editor, in the style of the dashboard's QR and chart builder dialogs. */
.cp-home-confirm[b-qet0sxxcnw] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: color-mix(in srgb, var(--cp-text) 45%, transparent);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.cp-home-confirm__card[b-qet0sxxcnw] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: min(30rem, 100%);
    padding: 1.25rem 1.5rem 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    animation: cp-rise 0.3s var(--cp-ease) both;
}

.cp-home-confirm__head[b-qet0sxxcnw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cp-home-confirm__heading[b-qet0sxxcnw] { flex: 1 1 auto; min-width: 0; }

/* Amber tone for "unsaved changes" (the red one comes from the global delete-dialog classes). */
.cp-home-confirm__head .cp-home-confirm__icon--warning[b-qet0sxxcnw] { background: var(--cp-warning-bg); color: var(--cp-warning-fg); }
.cp-home-confirm__head .cp-home-confirm__kicker--warning[b-qet0sxxcnw] { color: var(--cp-warning-fg); }

.cp-home-confirm__close[b-qet0sxxcnw] {
    display: inline-grid;
    place-items: center;
    align-self: flex-start;
    width: 2.25rem;
    height: 2.25rem;
    flex: none;
    border: 0;
    border-radius: 0.75rem;
    background: transparent;
    color: var(--cp-text-2);
}

.cp-home-confirm__close:hover[b-qet0sxxcnw] { background: var(--cp-bg-muted); color: var(--cp-text); }

.cp-home-confirm__text[b-qet0sxxcnw] {
    margin: 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-home-confirm__note[b-qet0sxxcnw] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-bg-muted);
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-home-confirm__note[b-qet0sxxcnw]  .cp-icon { flex: none; margin-top: 0.0625rem; color: var(--cp-primary); }

.cp-home-confirm__actions[b-qet0sxxcnw] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.25rem;
}

@media (max-width: 30rem) {
    .cp-home-confirm__actions[b-qet0sxxcnw] { flex-direction: column-reverse; }
    .cp-home-confirm__actions .btn[b-qet0sxxcnw] { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-home-confirm__card[b-qet0sxxcnw] { animation: none; }
}
/* /Components/Home/HomeHero.razor.rz.scp.css */
/* "Pulso de enlaces" hero (Components/Home/HomeHero.razor), moved from Pages/Home.razor.css in PR 05.11.
   --cp-home-ink / --cp-home-ink-fg are defined on the page root (.cp-home). The viewport breakpoints are the
   PR 05.10 ones; the container queries only take over when the user narrows the hero in the customizable
   layout (the module is the query container), bringing back the phone composition. */
.cp-home-hero[b-pstqj8nobn] {
    position: relative;
    overflow: hidden;
    padding: 1.5rem;
    border-radius: 1.5rem;
    background: var(--cp-home-ink);
    color: var(--cp-home-ink-fg);
    box-shadow: var(--cp-shadow-elevated);
}

:root[data-bs-theme="high-contrast"] .cp-home-hero[b-pstqj8nobn] { border: 1px solid var(--cp-border); }

.cp-home-hero__route[b-pstqj8nobn] {
    position: absolute;
    inset: 0;
    display: none;
    width: 100%;
    height: 100%;
    color: var(--cp-home-ink-fg);
    pointer-events: none;
    /* PR 05.12: the route is shown only while the pulse travels it (5 s): it fades away in the last second */
    animation: cp-home-hero-route-out-b-pstqj8nobn 1s linear 4s both;
}

@keyframes cp-home-hero-route-out-b-pstqj8nobn { to { opacity: 0; } }

.cp-home-hero__route-path[b-pstqj8nobn] {
    fill: none;
    stroke: currentColor;
    stroke-opacity: 0.35;
    stroke-width: 2;
    stroke-dasharray: 6 8;
    animation: cp-home-hero-dash-b-pstqj8nobn 5s both;
}

.cp-home-hero__route-pulse[b-pstqj8nobn] { fill: currentColor; }
.cp-home-hero__route-pulse--halo[b-pstqj8nobn] { fill-opacity: 0.15; }

/* PR 05.12: played once, with the pulse (5 s, HomeHero.razor): the dashes flow at their usual pace
   (-28 every 1.6 s) while it travels, then ease to a stop as the whole route fades away. */
@keyframes cp-home-hero-dash-b-pstqj8nobn {
    0% { stroke-dashoffset: 0; animation-timing-function: linear; }
    80% { stroke-dashoffset: -70; animation-timing-function: cubic-bezier(0.5, 1, 0.89, 1); }
    100% { stroke-dashoffset: -78.75; }
}

.cp-home-hero__body[b-pstqj8nobn] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cp-home-hero__eyebrow[b-pstqj8nobn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    opacity: 0.9;
}

.cp-home-hero__skeleton[b-pstqj8nobn] {
    display: block;
    width: 15rem;
    max-width: 100%;
    height: 4rem;
    margin-top: 0.75rem;
    border-radius: var(--cp-radius-panel);
    background: rgba(255, 255, 255, 0.2);
}

.cp-home-hero__figure[b-pstqj8nobn] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 1rem;
    margin: 0.5rem 0 0;
}

.cp-home-hero__number[b-pstqj8nobn] {
    font-family: var(--cp-font-heading);
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--cp-tracking-heading);
}

.cp-home-hero__caption[b-pstqj8nobn] { font-size: var(--cp-text-md); opacity: 0.9; }

.cp-home-hero__meta[b-pstqj8nobn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-sm);
}

.cp-home-hero__meta > span:last-child[b-pstqj8nobn] { opacity: 0.9; }

.cp-home-hero__delta[b-pstqj8nobn] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.625rem;
    border-radius: var(--cp-radius-pill);
    background: rgba(255, 255, 255, 0.15);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.cp-home-hero__side[b-pstqj8nobn] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cp-home-hero__star[b-pstqj8nobn] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    align-self: flex-start;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    border-radius: var(--cp-radius-pill);
    background: rgba(255, 255, 255, 0.15);
    font-size: var(--cp-text-sm);
}

.cp-home-hero__star code[b-pstqj8nobn] { font-family: var(--cp-font-mono); font-weight: 500; color: inherit; }

.cp-home-hero__num[b-pstqj8nobn] {
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
    opacity: 0.9;
}

.cp-home-hero__create[b-pstqj8nobn] {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-home-ink-fg);
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-home-ink);
    text-decoration: none;
    box-shadow: var(--cp-shadow-action);
    transition: transform var(--cp-motion-fast) var(--cp-ease);
}

.cp-home-hero__create:hover[b-pstqj8nobn] { transform: translateY(-2px); color: var(--cp-home-ink); }

:root[data-bs-theme="high-contrast"] .cp-home-hero__create[b-pstqj8nobn] { background: #27ED74; color: #000; }

/* ---- breakpoints (PR 05.10) ---- */
@media (min-width: 576px) {
    .cp-home-hero[b-pstqj8nobn] { padding: 2rem; }
    .cp-home-hero__number[b-pstqj8nobn] { font-size: 4.5rem; }
}

@media (min-width: 768px) {
    .cp-home-hero__route[b-pstqj8nobn] { display: block; }

    .cp-home-hero__body[b-pstqj8nobn] {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
    }

    .cp-home-hero__side[b-pstqj8nobn] { align-items: flex-end; }
    .cp-home-hero__star[b-pstqj8nobn],
    .cp-home-hero__create[b-pstqj8nobn] { align-self: auto; }
}

/* ---- narrowed by the user (PR 05.11): never triggers at full width, where the module is at least
   viewport - 2 gutters wide, so the default composition above is untouched ---- */
@container (max-width: 43.5rem) {
    .cp-home-hero__route[b-pstqj8nobn] { display: none; }

    .cp-home-hero__body[b-pstqj8nobn] {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
    }

    .cp-home-hero__side[b-pstqj8nobn] { align-items: stretch; }
    .cp-home-hero__star[b-pstqj8nobn],
    .cp-home-hero__create[b-pstqj8nobn] { align-self: flex-start; }
}

@container (max-width: 31.5rem) {
    .cp-home-hero[b-pstqj8nobn] { padding: 1.5rem; }
    .cp-home-hero__number[b-pstqj8nobn] { font-size: 3rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-home-hero__route-path[b-pstqj8nobn] { animation: none; }
    .cp-home-hero__route-pulse[b-pstqj8nobn] { display: none; }
    .cp-home-hero__create:hover[b-pstqj8nobn] { transform: none; }
}
/* /Components/Home/HomeLayoutBar.razor.rz.scp.css */
/* Layout editor toolbar (PR 05.11). It sits in the sticky slot of the filter bar (.cp-home__filters). */
.cp-home-layout[b-9f5ls8l9od] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 0.625rem 0.75rem 0.625rem 0.875rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 45%, var(--cp-border));
    border-radius: 1.25rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    animation: cp-rise var(--cp-motion-fast) var(--cp-ease) both;
}

.cp-home-layout:focus[b-9f5ls8l9od] { outline: none; }
.cp-home-layout:focus-visible[b-9f5ls8l9od] { box-shadow: 0 0 0 2px var(--cp-surface), 0 0 0 4px var(--cp-ring); }

.cp-home-layout__intro[b-9f5ls8l9od] {
    display: flex;
    flex: 1 1 18rem;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.cp-home-layout__icon[b-9f5ls8l9od] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-home-layout__text[b-9f5ls8l9od] { min-width: 0; }

.cp-home-layout__title[b-9f5ls8l9od] {
    margin: 0;
    font-size: var(--cp-text-sm);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-home-layout__lead[b-9f5ls8l9od] {
    margin: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-home-layout__actions[b-9f5ls8l9od] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
}

.cp-home-layout__hidden[b-9f5ls8l9od] {
    display: flex;
    flex: 1 1 100%;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
    padding-top: 0.625rem;
    border-top: 1px dashed var(--cp-border);
}

.cp-home-layout__label[b-9f5ls8l9od] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    margin-right: 0.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 600;
    letter-spacing: var(--cp-tracking-label);
    text-transform: uppercase;
    color: var(--cp-text-2);
}

.cp-home-layout__chip[b-9f5ls8l9od] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    height: 1.875rem;
    padding: 0 0.75rem 0 0.5rem;
    border: 1px dashed var(--cp-primary);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-accent-bg);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    white-space: nowrap;
    color: var(--cp-accent-fg);
    cursor: pointer;
    transition: border-style var(--cp-motion-fast) ease, box-shadow var(--cp-motion-fast) ease;
}

.cp-home-layout__chip:hover[b-9f5ls8l9od] { border-style: solid; box-shadow: var(--cp-shadow-card); }

.cp-home-layout__chip:focus-visible[b-9f5ls8l9od] {
    outline: 2px solid var(--cp-ring);
    outline-offset: 2px;
}

@media (max-width: 767.98px) {
    /* phones: the sticky bar stays short — title and actions only, the reset keeps just its icon */
    .cp-home-layout__lead[b-9f5ls8l9od] { display: none; }
    .cp-home-layout__intro[b-9f5ls8l9od] { flex-basis: 100%; }
    .cp-home-layout__actions[b-9f5ls8l9od] { width: 100%; margin-left: 0; }
    .cp-home-layout__actions .btn:not(.cp-home-layout__reset)[b-9f5ls8l9od] { flex: 1 1 0; }
    .cp-home-layout__reset span[b-9f5ls8l9od] { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-home-layout[b-9f5ls8l9od] { animation: none; }
}
/* /Components/Home/HomeLocked.razor.rz.scp.css */
.cp-home-locked[b-pgbykctl76] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1.5rem;
    border: 1px dashed var(--cp-border);
    border-radius: var(--cp-radius-panel);
    background: color-mix(in srgb, var(--cp-bg-muted) 60%, transparent);
    text-align: center;
}

.cp-home-locked__icon[b-pgbykctl76] {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-home-locked__title[b-pgbykctl76] {
    margin: 0.75rem 0 0;
    font-family: var(--cp-font-heading);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-home-locked__lead[b-pgbykctl76] {
    max-width: 24rem;
    margin: 0.25rem 0 1rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-home-locked__cta[b-pgbykctl76] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
/* /Components/Home/HomeModule.razor.rz.scp.css */
/* Movable module of the shortlink dashboard (PR 05.11). The module is a query container, so a narrowed module can
   switch its content to the phone composition (container queries in Home.razor.css / HomeHero.razor.css). */
.cp-home-module[b-aoyz9mbpsl] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    container-type: inline-size;
}

/* a grid wrapper so the card inside stretches to the row height, like the cards did as grid items */
.cp-home-module__body[b-aoyz9mbpsl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    flex: 1 1 auto;
    min-width: 0;
}

@media (min-width: 992px) {
    .cp-home-module--span-4[b-aoyz9mbpsl] { grid-column: span 4; }
    .cp-home-module--span-5[b-aoyz9mbpsl] { grid-column: span 5; }
    .cp-home-module--span-6[b-aoyz9mbpsl] { grid-column: span 6; }
    .cp-home-module--span-7[b-aoyz9mbpsl] { grid-column: span 7; }
    .cp-home-module--span-8[b-aoyz9mbpsl] { grid-column: span 8; }
    .cp-home-module--span-12[b-aoyz9mbpsl] { grid-column: span 12; }
}

/* ---- editing ---- */
.cp-home-module.is-editing[b-aoyz9mbpsl] {
    cursor: grab;
    -webkit-user-select: none;
    user-select: none;
}

.cp-home-module.is-editing[b-aoyz9mbpsl]::after {
    content: "";
    position: absolute;
    inset: -6px;
    border: 2px dashed color-mix(in srgb, var(--cp-primary) 40%, var(--cp-border));
    border-radius: calc(var(--cp-radius-card) + 6px);
    pointer-events: none;
    transition: border-color var(--cp-motion-fast) ease, background-color var(--cp-motion-fast) ease;
}

.cp-home-module.is-editing:hover[b-aoyz9mbpsl]::after,
.cp-home-module.is-editing:focus-within[b-aoyz9mbpsl]::after {
    border-color: var(--cp-primary);
}

/* the module being dragged stays in place, dimmed, until it is dropped (js/home-layout.js) */
.cp-home-module.is-dragging .cp-home-module__body[b-aoyz9mbpsl] { opacity: 0.35; }

.cp-home-module.is-dragging[b-aoyz9mbpsl]::after {
    border-color: var(--cp-primary);
    background: color-mix(in srgb, var(--cp-accent-bg) 55%, transparent);
}

.cp-home-module__bar[b-aoyz9mbpsl] {
    position: absolute;
    z-index: 3;
    top: -1rem;
    left: 0.75rem;
    right: 0.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.375rem;
    pointer-events: none;
}

.cp-home-module__bar > *[b-aoyz9mbpsl] { pointer-events: auto; }

.cp-home-module__grip[b-aoyz9mbpsl],
.cp-home-module__tools[b-aoyz9mbpsl] {
    display: inline-flex;
    align-items: center;
    height: 2rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
}

.cp-home-module__grip[b-aoyz9mbpsl] {
    gap: 0.375rem;
    min-width: 0;
    max-width: min(100%, 22rem);
    padding: 0 0.75rem 0 0.5rem;
    font-size: var(--cp-text-xs);
    font-weight: 600;
    color: var(--cp-text);
    cursor: grab;
    touch-action: none; /* a finger on the grip drags the module instead of scrolling the page */
}

.cp-home-module__grip[b-aoyz9mbpsl]  .cp-icon { flex: 0 0 auto; color: var(--cp-primary); }

.cp-home-module__grip span[b-aoyz9mbpsl] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cp-home-module__grip:hover[b-aoyz9mbpsl] { border-color: var(--cp-primary); }

.cp-home-module__tools[b-aoyz9mbpsl] {
    gap: 0.125rem;
    padding: 0 0.25rem;
}

.cp-home-module__width[b-aoyz9mbpsl] { display: none; align-items: center; gap: 0.125rem; }

.cp-home-module__tools button[b-aoyz9mbpsl] {
    display: grid;
    place-items: center;
    width: 1.625rem;
    height: 1.625rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text);
    cursor: pointer;
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-home-module__tools button:hover:not(:disabled)[b-aoyz9mbpsl] {
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg);
}

.cp-home-module__tools button:disabled[b-aoyz9mbpsl] { opacity: 0.35; cursor: default; }

.cp-home-module__grip:focus-visible[b-aoyz9mbpsl],
.cp-home-module__tools button:focus-visible[b-aoyz9mbpsl] {
    outline: 2px solid var(--cp-ring);
    outline-offset: 2px;
}

.cp-home-module__sep[b-aoyz9mbpsl] {
    width: 1px;
    height: 1rem;
    margin: 0 0.125rem;
    background: var(--cp-border);
}

.cp-home-module__meter[b-aoyz9mbpsl] { display: inline-flex; gap: 1px; padding: 0 0.125rem; }

.cp-home-module__meter span[b-aoyz9mbpsl] {
    width: 3px;
    height: 0.75rem;
    border-radius: 1px;
    background: var(--cp-border);
}

.cp-home-module__meter span.is-on[b-aoyz9mbpsl] { background: var(--cp-primary); }

/* widths only exist in the 12-column grid */
@media (min-width: 992px) {
    .cp-home-module__width[b-aoyz9mbpsl] { display: inline-flex; }
}

/* narrow modules: the meter goes first so the tools still fit next to the grip */
@container (max-width: 26rem) {
    .cp-home-module__meter[b-aoyz9mbpsl] { display: none; }
}

/* touch screens: tools big enough for a finger */
@media (pointer: coarse) {
    .cp-home-module__grip[b-aoyz9mbpsl],
    .cp-home-module__tools[b-aoyz9mbpsl] { height: 2.5rem; }

    .cp-home-module__tools button[b-aoyz9mbpsl] { width: 2.25rem; height: 2.25rem; }
    .cp-home-module__bar[b-aoyz9mbpsl] { top: -1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-home-module.is-editing[b-aoyz9mbpsl]::after { transition: none; }
}
/* /Components/Home/HomeModuleError.razor.rz.scp.css */
.cp-home-error[b-7llbwsr7ci] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 40%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
}

.cp-home-error__msg[b-7llbwsr7ci] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    color: var(--cp-danger);
}
/* /Components/Legal/CookieNotice.razor.rz.scp.css */
/* Cookie notice (cookies plan CK1). A card in the bottom-left corner so it never sits on the bottom-centre toast
   (compacto.css .cp-toast); z-index under Bootstrap's modal backdrop (1050) and the toast (1080), so dialogs cover it.
   Surface, border, radius and shadow are the dashboard cards' tokens; buttons come from compacto.css. */
.cp-cookie-notice[b-k35vsqhw8g] {
    position: fixed;
    left: 1.5rem;
    bottom: 1.5rem;
    z-index: 1040;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.875rem 1rem;
    max-width: min(34rem, calc(100vw - 3rem));
    padding: 1rem 1.125rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    color: var(--cp-text);
    font-family: var(--cp-font-body);
}

.cp-cookie-notice__text[b-k35vsqhw8g] {
    flex: 1 1 18rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2-strong);
}

.cp-cookie-notice__actions[b-k35vsqhw8g] {
    display: flex;
    flex: 0 0 auto;
    gap: 0.5rem;
    margin-left: auto;
}

.cp-cookie-notice__spacer[b-k35vsqhw8g] { display: none; }

/* phones: full width with the page gutter, smaller text and the two buttons sharing the row, so it stays short; the
   spacer (in flow, after every view) adds the notice's height to the page so its last controls can scroll above it */
@media (max-width: 575.98px) {
    .cp-cookie-notice__spacer[b-k35vsqhw8g] {
        display: block;
        height: 13.5rem;
    }

    .cp-cookie-notice[b-k35vsqhw8g] {
        right: 0.75rem;
        left: 0.75rem;
        bottom: 0.75rem;
        gap: 0.75rem;
        max-width: none;
        padding: 0.875rem 1rem;
    }

    .cp-cookie-notice__text[b-k35vsqhw8g] {
        flex-basis: 100%;
        font-size: var(--cp-text-xs);
    }

    .cp-cookie-notice__actions[b-k35vsqhw8g] {
        width: 100%;
        margin-left: 0;
    }

    .cp-cookie-notice__actions > *[b-k35vsqhw8g] {
        flex: 1 1 0;
        justify-content: center;
    }
}

@media print {
    .cp-cookie-notice[b-k35vsqhw8g] { display: none; }
}
/* /Components/Ui/DateRangePicker.razor.rz.scp.css */
.cp-daterange[b-v2tcu7g6fo] {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 15rem;
}

.cp-daterange[b-v2tcu7g6fo]  .cp-daterange__icon {
    position: absolute;
    left: 0.875rem;
    color: var(--cp-text-2);
    pointer-events: none;
}

.cp-daterange__input[b-v2tcu7g6fo] {
    width: 100%;
    height: var(--cp-btn-md);
    min-height: 0;
    padding: 0 1rem 0 2.5rem;
    border-radius: var(--cp-radius-pill);
    font-size: var(--cp-text-sm);
    font-variant-numeric: tabular-nums;
    cursor: pointer;
}

.cp-daterange__input[readonly][b-v2tcu7g6fo] {
    background-color: var(--cp-surface);
}
/* /Components/Ui/UserAvatar.razor.rz.scp.css */
/* Same circle as the profile header (Lovable profile.tsx: rounded-full, border primary/20, bg-accent, display font). */
.cp-avatar[b-ato4yefwpm] {
    display: inline-grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    border-radius: 50%;
    background: var(--cp-accent-bg);
    font-family: var(--cp-font-heading);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.02em;
    color: var(--cp-accent-fg);
    user-select: none;
}

.cp-avatar--xs[b-ato4yefwpm] {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.625rem;
}

.cp-avatar--md[b-ato4yefwpm] {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 0.875rem;
}

.cp-avatar--lg[b-ato4yefwpm] {
    width: 4rem;
    height: 4rem;
    font-size: 1.5rem;
    font-weight: 500;
    letter-spacing: 0;
}
/* /Components/WelcomeFirstLoginModal.razor.rz.scp.css */
/* First-login welcome (PR 05.08). Composition from Lovable "shortlink-studio" src/components/welcome-modal.tsx
   ("link burst" version); values from tokens.css. */

.cp-welcome[b-d0dyyd6gr6] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    overflow-y: auto;
    background: color-mix(in srgb, var(--cp-text) 45%, transparent);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    animation: cp-welcome-backdrop-b-d0dyyd6gr6 0.3s ease-out both;
}

:root[data-bs-theme="dark"] .cp-welcome[b-d0dyyd6gr6] {
    background: rgba(0, 0, 0, 0.6);
}

:root[data-bs-theme="high-contrast"] .cp-welcome[b-d0dyyd6gr6] {
    background: rgba(0, 0, 0, 0.85);
}

.cp-welcome__card[b-d0dyyd6gr6] {
    position: relative;
    width: 100%;
    max-width: 28rem;
    margin: auto;
    padding: 2.5rem 2rem 2.25rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    text-align: center;
    animation: cp-welcome-enter-b-d0dyyd6gr6 0.5s var(--cp-ease) both;
}

/* ---- link burst ---- */
.cp-welcome__burst[b-d0dyyd6gr6] {
    position: relative;
    width: 100%;
    max-width: 20rem;
    height: 11rem;
    margin: 0 auto;
}

.cp-welcome__rays[b-d0dyyd6gr6] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* dashes flow outwards (paths start at the logo centre, so a negative offset moves them away from it) */
.cp-welcome__ray[b-d0dyyd6gr6] {
    stroke: var(--cp-primary);
    stroke-opacity: 0.35;
    stroke-width: 2;
    stroke-dasharray: 2 6;
    stroke-linecap: round;
    animation: cp-welcome-flow-b-d0dyyd6gr6 1s linear infinite;
}

/* travelling pulse (SMIL animateMotion in the markup) */
.cp-welcome__pulse[b-d0dyyd6gr6] {
    fill: var(--cp-primary);
    filter: drop-shadow(0 0 4px var(--cp-primary));
}

.cp-welcome__logo[b-d0dyyd6gr6] {
    position: absolute;
    left: 50%;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
    background: var(--cp-primary);
    color: var(--cp-on-primary);
    box-shadow: var(--cp-shadow-action);
    transform: translate(-50%, -50%);
    animation: cp-welcome-logo-in-b-d0dyyd6gr6 0.6s var(--cp-ease) both, cp-welcome-beat-b-d0dyyd6gr6 3s ease-in-out 1.4s infinite;
}

/* rings emitted by the logo */
.cp-welcome__ripple[b-d0dyyd6gr6] {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 4rem;
    height: 4rem;
    margin: -2rem 0 0 -2rem;
    border: 2px solid var(--cp-primary);
    border-radius: 1rem;
    opacity: 0;
    animation: cp-welcome-ripple-b-d0dyyd6gr6 2.4s ease-out 0.6s infinite;
}

.cp-welcome__ripple--late[b-d0dyyd6gr6] {
    animation-delay: 1.8s;
}

/* chip slot: position + burst-out from the logo centre (--from-x/--from-y point back to it) */
.cp-welcome__chip-slot[b-d0dyyd6gr6] {
    position: absolute;
    animation: cp-welcome-burst-b-d0dyyd6gr6 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.cp-welcome__chip-slot--top[b-d0dyyd6gr6] { left: 0; right: 0; top: 0; width: max-content; margin: 0 auto; }
.cp-welcome__chip-slot--upper-left[b-d0dyyd6gr6] { left: 0.5rem; top: 2rem; }
.cp-welcome__chip-slot--upper-right[b-d0dyyd6gr6] { right: 0.5rem; top: 2rem; }
.cp-welcome__chip-slot--lower-left[b-d0dyyd6gr6] { left: 0; bottom: 2.25rem; }
.cp-welcome__chip-slot--lower-right[b-d0dyyd6gr6] { right: 0; bottom: 2.25rem; }

/* chip: floats on its own phase after landing, and "pings" when its pulse arrives */
.cp-welcome__chip[b-d0dyyd6gr6] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    color: var(--cp-text);
    box-shadow: var(--cp-shadow-card);
    animation:
        cp-welcome-float-b-d0dyyd6gr6 3.6s ease-in-out var(--float-delay, 0s) infinite,
        cp-welcome-ping-b-d0dyyd6gr6 3s ease-out var(--ping-delay, 2s) infinite;
}

.cp-welcome__chip[b-d0dyyd6gr6]  .cp-icon {
    color: var(--cp-primary);
}

/* ---- text + CTA ---- */
.cp-welcome__title[b-d0dyyd6gr6] {
    margin: 1rem 0 0;
    font-size: 1.875rem;
    font-weight: 800;
    color: var(--cp-text);
}

.cp-welcome__lead[b-d0dyyd6gr6] {
    max-width: 20rem;
    margin: 0.75rem auto 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-welcome__cta[b-d0dyyd6gr6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: 52px;
    margin-top: 1.75rem;
    --bs-btn-font-size: var(--cp-text-md);
    --x-btn-font-size: var(--cp-text-md);
    font-weight: 600;
}

.cp-welcome__cta:hover[b-d0dyyd6gr6] {
    transform: translateY(-2px);
}

/* ---- journey exit (.cp-welcome--leaving, ~1.15 s; timings mirror PortalMs/DissolveMs in the component) ----
   0-0.5 s   chips fly outwards past where they landed, rays/pulses/ripples fade, text and CTA sink away
   0.1-0.7 s the logo zooms into a full-screen green "portal" (its icon fades first)
   0.7-1.15 s the whole overlay dissolves while the dashboard arrives underneath (body.cp-arrive) */
.cp-welcome--leaving[b-d0dyyd6gr6] {
    overflow: hidden;
    animation: cp-welcome-dissolve-b-d0dyyd6gr6 0.45s ease-out 0.7s forwards;
}

.cp-welcome--leaving .cp-welcome__card[b-d0dyyd6gr6] {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
    transition: background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.cp-welcome--leaving .cp-welcome__chip-slot[b-d0dyyd6gr6] {
    animation: cp-welcome-fly-out-b-d0dyyd6gr6 0.5s cubic-bezier(0.55, 0, 1, 0.45) forwards;
    animation-delay: 0s !important;
}

.cp-welcome--leaving .cp-welcome__chip[b-d0dyyd6gr6] {
    animation: none;
}

.cp-welcome--leaving .cp-welcome__ray[b-d0dyyd6gr6] {
    animation: cp-welcome-flow-b-d0dyyd6gr6 0.25s linear infinite;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.cp-welcome--leaving .cp-welcome__pulse[b-d0dyyd6gr6],
.cp-welcome--leaving .cp-welcome__ripple[b-d0dyyd6gr6] {
    display: none;
}

.cp-welcome--leaving .cp-welcome__title[b-d0dyyd6gr6],
.cp-welcome--leaving .cp-welcome__lead[b-d0dyyd6gr6],
.cp-welcome--leaving .cp-welcome__cta[b-d0dyyd6gr6] {
    animation: cp-welcome-sink-b-d0dyyd6gr6 0.35s ease-in forwards;
    animation-delay: 0s !important;
}

.cp-welcome--leaving .cp-welcome__logo[b-d0dyyd6gr6] {
    z-index: 1;
    animation: cp-welcome-portal-b-d0dyyd6gr6 0.6s cubic-bezier(0.7, 0, 0.84, 0) 0.1s forwards;
}

.cp-welcome--leaving .cp-welcome__logo[b-d0dyyd6gr6]  .cp-icon {
    opacity: 0;
    transition: opacity 0.15s ease;
}

@keyframes cp-welcome-fly-out-b-d0dyyd6gr6 {
    from { opacity: 1; transform: translate(0, 0) scale(1); }
    to { opacity: 0; transform: translate(calc(var(--from-x) * -2.4), calc(var(--from-y) * -2.4)) scale(0.6); }
}

@keyframes cp-welcome-sink-b-d0dyyd6gr6 {
    to { opacity: 0; transform: translateY(14px); }
}

@keyframes cp-welcome-portal-b-d0dyyd6gr6 {
    from { transform: translate(-50%, -50%) scale(1); }
    to { transform: translate(-50%, -50%) scale(80); }
}

@keyframes cp-welcome-dissolve-b-d0dyyd6gr6 {
    to { opacity: 0; }
}

/* ---- motion ---- */
.cp-welcome__fade[b-d0dyyd6gr6] {
    animation: cp-welcome-fade-up-b-d0dyyd6gr6 0.7s var(--cp-ease) both;
}

@keyframes cp-welcome-backdrop-b-d0dyyd6gr6 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes cp-welcome-enter-b-d0dyyd6gr6 {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cp-welcome-fade-up-b-d0dyyd6gr6 {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cp-welcome-flow-b-d0dyyd6gr6 {
    to { stroke-dashoffset: -16; }
}

@keyframes cp-welcome-logo-in-b-d0dyyd6gr6 {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.6); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes cp-welcome-beat-b-d0dyyd6gr6 {
    0%, 100% { transform: translate(-50%, -50%) scale(1); }
    8% { transform: translate(-50%, -50%) scale(1.08); }
    16% { transform: translate(-50%, -50%) scale(1); }
}

@keyframes cp-welcome-ripple-b-d0dyyd6gr6 {
    0% { transform: scale(0.9); opacity: 0.5; }
    100% { transform: scale(1.9); opacity: 0; }
}

@keyframes cp-welcome-burst-b-d0dyyd6gr6 {
    0% { opacity: 0; transform: translate(var(--from-x), var(--from-y)) scale(0.3); }
    60% { opacity: 1; }
    100% { opacity: 1; transform: translate(0, 0) scale(1); }
}

@keyframes cp-welcome-float-b-d0dyyd6gr6 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

@keyframes cp-welcome-ping-b-d0dyyd6gr6 {
    0% { border-color: var(--cp-primary); box-shadow: 0 0 0 0 color-mix(in srgb, var(--cp-primary) 45%, transparent), var(--cp-shadow-card); }
    25% { border-color: var(--cp-primary); box-shadow: 0 0 0 6px transparent, var(--cp-shadow-card); }
    45%, 100% { border-color: var(--cp-border); box-shadow: 0 0 0 0 transparent, var(--cp-shadow-card); }
}

@media (max-width: 400px) {
    .cp-welcome__card[b-d0dyyd6gr6] { padding: 2rem 1.25rem 1.75rem; }
    .cp-welcome__chip[b-d0dyyd6gr6] { padding: 0.3rem 0.55rem; font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-welcome[b-d0dyyd6gr6],
    .cp-welcome__card[b-d0dyyd6gr6],
    .cp-welcome__fade[b-d0dyyd6gr6],
    .cp-welcome__ray[b-d0dyyd6gr6],
    .cp-welcome__logo[b-d0dyyd6gr6],
    .cp-welcome__chip-slot[b-d0dyyd6gr6],
    .cp-welcome__chip[b-d0dyyd6gr6] {
        animation: none;
    }

    .cp-welcome__pulse[b-d0dyyd6gr6],
    .cp-welcome__ripple[b-d0dyyd6gr6] {
        display: none;
    }

    .cp-welcome__cta:hover[b-d0dyyd6gr6] {
        transform: none;
    }
}
/* /Layout/DashboardShell.razor.rz.scp.css */
/* DashboardShell — authenticated frame. Composition: Lovable emerald-flow header
   (src/routes/index.tsx). Child components (Icon, NavLink, LanguageSelector) are reached with ::deep. */

.cp-shell[b-ddipw01ymc] {
    min-height: 100vh;
    overflow-x: clip; /* clip, not hidden: hidden would turn the shell into the sticky container */
    background: var(--cp-bg);
    color: var(--cp-text);
}

/* ---------------- header (fixed, translucent, blurred, bottom border) ---------------- */
.cp-nav[b-ddipw01ymc] {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: var(--cp-z-nav);
    background: var(--cp-nav-bg);
    -webkit-backdrop-filter: blur(var(--cp-nav-blur));
    backdrop-filter: blur(var(--cp-nav-blur));
    border-bottom: 1px solid color-mix(in oklab, var(--cp-border) 80%, transparent);
}

/* The bar is wider than the 1200 px content container so the menu breathes (user decision 2026-09-16);
   a soft cap keeps logo and account from drifting to the corners on ultra-wide screens. */
.cp-nav__bar[b-ddipw01ymc] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    height: var(--cp-nav-h);
    width: 100%;
    max-width: var(--cp-nav-max, 1536px);
    margin: 0 auto;
    padding: 0 var(--cp-gutter);
}

/* logo (Components/Ui/CompactoLogo.razor): the wordmark inherits this colour, the bars use --cp-logo-accent */
.cp-brand[b-ddipw01ymc] {
    display: inline-flex;
    align-items: center;
    color: var(--cp-text);
    text-decoration: none;
    border-radius: var(--cp-radius-nav);
}

.cp-brand:hover[b-ddipw01ymc],
.cp-brand:focus-visible[b-ddipw01ymc] {
    color: var(--cp-text);
}

.cp-brand[b-ddipw01ymc]  .cp-logo {
    display: block;
    width: auto;
}

/* links next to the logo (≥ lg): fixed 32 px gap instead of floating in the centre of the wide bar */
.cp-nav__links[b-ddipw01ymc] {
    display: none;
    align-items: center;
    gap: 0.25rem;
    margin-left: 1.25rem;
}

.cp-nav__links[b-ddipw01ymc]  .cp-nav-link,
.cp-nav__links .cp-nav-link[b-ddipw01ymc] {
    display: inline-flex;
    align-items: center;
    border-radius: var(--cp-radius-nav);
    padding: 0.625rem 0.75rem;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    line-height: 1.2;
    color: var(--cp-text-2);
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--cp-motion-fast), background-color var(--cp-motion-fast);
}

.cp-nav__links[b-ddipw01ymc]  .cp-nav-link:hover,
.cp-nav__links .cp-nav-link:hover[b-ddipw01ymc],
.cp-nav__links[b-ddipw01ymc]  .cp-nav-link.active,
.cp-nav__links .cp-nav-link[aria-expanded="true"][b-ddipw01ymc] {
    color: var(--cp-primary);
    background: var(--cp-accent-bg);
}

.cp-nav__links[b-ddipw01ymc]  .cp-nav-link.active {
    font-weight: 600;
}

.cp-nav__links .dropdown-toggle[b-ddipw01ymc]::after {
    margin-left: 0.4rem;
    opacity: 0.7;
}

.cp-nav__links[b-ddipw01ymc]  .dropdown-item.active {
    color: var(--cp-accent-fg);
    background: var(--cp-accent-bg);
}

/* right cluster (≥ md), pushed to the right edge */
.cp-nav__actions[b-ddipw01ymc] {
    display: none;
    align-items: center;
    gap: 0.25rem;
    margin-left: auto;
}

.cp-nav__docs[b-ddipw01ymc] {
    padding: 0 0.75rem;
}

.cp-credits[b-ddipw01ymc] {
    padding: 0 0.75rem;
}

.cp-credits[b-ddipw01ymc]  .cp-icon {
    color: var(--cp-primary);
}

.cp-credits__value[b-ddipw01ymc] {
    font-family: var(--cp-font-mono);
    font-weight: 600;
    color: var(--cp-primary);
}

/* account button (PR 05.33): initials avatar (Components/Ui/UserAvatar) + chevron in a pill as tall as the bar's
   buttons; hover takes the accent of the nav links, the chevron turns while the menu is open. */
.cp-account[b-ddipw01ymc] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    height: var(--cp-btn-md);
    margin-left: 0.25rem;
    padding: 0 0.625rem 0 0.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    color: var(--cp-text-2);
    transition: border-color var(--cp-motion-fast) ease, background-color var(--cp-motion-fast) ease,
        color var(--cp-motion-fast) ease;
}

.cp-account:hover[b-ddipw01ymc],
.cp-account[aria-expanded="true"][b-ddipw01ymc] {
    border-color: color-mix(in srgb, var(--cp-primary) 35%, transparent);
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg);
}

.cp-account:focus-visible[b-ddipw01ymc] {
    outline: none;
    box-shadow: 0 0 0 2px var(--cp-surface), 0 0 0 4px var(--cp-ring);
}

.cp-account[b-ddipw01ymc]  .cp-account__chevron {
    transition: transform var(--cp-motion-fast) ease;
}

.cp-account[aria-expanded="true"][b-ddipw01ymc]  .cp-account__chevron {
    transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
    .cp-account[b-ddipw01ymc],
    .cp-account[b-ddipw01ymc]  .cp-account__chevron { transition: none; }
}

/* LanguageSelector: icon-only trigger in the bar (Compact), labelled button in the mobile menu. The shared
   component forces white text for the dark auth pages; re-colour it here only. */
.cp-nav__lang[b-ddipw01ymc]  .btn,
.cp-mobile__lang[b-ddipw01ymc]  .btn {
    color: var(--cp-text) !important;
    font-weight: 500;
    font-size: var(--cp-text-sm);
}

.cp-nav__lang[b-ddipw01ymc]  .btn .bi {
    font-size: 1.125rem;
    line-height: 1;
}

.cp-mobile__lang[b-ddipw01ymc]  .btn {
    height: var(--cp-btn-md);
    border-radius: var(--cp-radius-pill);
    padding: 0 0.75rem;
}

.cp-nav__lang[b-ddipw01ymc]  .btn:hover,
.cp-nav__lang[b-ddipw01ymc]  .btn:focus-visible,
.cp-mobile__lang[b-ddipw01ymc]  .btn:hover {
    color: var(--cp-accent-fg) !important;
    background: var(--cp-accent-bg);
}

.cp-user-menu[b-ddipw01ymc] {
    min-width: 230px;
}

/* greeting on the left, initials in the top-right corner (user request) */
.cp-user-menu__header[b-ddipw01ymc] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.5rem 0.75rem 0.5rem;
}

.cp-user-menu__who[b-ddipw01ymc] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.cp-user-menu__hello[b-ddipw01ymc] {
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-user-menu__name[b-ddipw01ymc] {
    overflow-wrap: anywhere;
    font-weight: 600;
    color: var(--cp-text);
}

.cp-mobile__account[b-ddipw01ymc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.cp-user-menu__plan[b-ddipw01ymc] {
    align-self: flex-start;
    margin-top: 0.25rem;
}

/* theme switch: three icons, CSS shows the one for the active theme (js sets data-bs-theme only) */
.cp-theme-toggle[b-ddipw01ymc]  .cp-theme-toggle__icon,
.cp-mobile__theme[b-ddipw01ymc]  .cp-theme-toggle__icon { display: none; }
:root[data-bs-theme="light"] .cp-shell[b-ddipw01ymc]  .cp-theme-toggle__icon--light,
:root:not([data-bs-theme]) .cp-shell[b-ddipw01ymc]  .cp-theme-toggle__icon--light { display: inline-block; }
:root[data-bs-theme="dark"] .cp-shell[b-ddipw01ymc]  .cp-theme-toggle__icon--dark { display: inline-block; }
:root[data-bs-theme="high-contrast"] .cp-shell[b-ddipw01ymc]  .cp-theme-toggle__icon--hc { display: inline-block; }

/* hamburger (< lg) */
.cp-nav__toggler[b-ddipw01ymc] {
    border: 0;
    margin-left: auto;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .cp-nav__toggler[b-ddipw01ymc] {
        margin-left: 0;
    }
}

.cp-nav__toggler[b-ddipw01ymc]  .cp-nav__toggler-close { display: none; }
.cp-nav__toggler[aria-expanded="true"][b-ddipw01ymc]  .cp-nav__toggler-open { display: none; }
.cp-nav__toggler[aria-expanded="true"][b-ddipw01ymc]  .cp-nav__toggler-close { display: inline-block; }

/* mobile menu (Lovable: border-t, bg, px-6 py-4, block links, Tema/Cuenta row); shown while _mobileOpen (PR 05.33) */
.cp-mobile[b-ddipw01ymc] {
    display: none;
    border-top: 1px solid var(--cp-border);
    background: var(--cp-bg);
    max-height: calc(100vh - var(--cp-nav-h));
    overflow-y: auto;
}

.cp-mobile.is-open[b-ddipw01ymc] {
    display: block;
}

.cp-mobile__inner[b-ddipw01ymc] {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.cp-mobile[b-ddipw01ymc]  .cp-mobile__link,
.cp-mobile .cp-mobile__link[b-ddipw01ymc] {
    display: block;
    border-radius: var(--cp-radius-nav);
    padding: 0.75rem;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
    text-decoration: none;
    animation: cp-rise var(--cp-motion-enter) both;
}

.cp-mobile[b-ddipw01ymc]  .cp-mobile__link:hover,
.cp-mobile .cp-mobile__link:hover[b-ddipw01ymc],
.cp-mobile[b-ddipw01ymc]  .cp-mobile__link.active {
    color: var(--cp-accent-fg);
    background: var(--cp-accent-bg);
}

/* groups (Panel, Reportes, Plantillas) like the desktop dropdowns: a toggle with a chevron, sub-items indented
   (.cp-mobile prefix: it has to beat the .cp-mobile .cp-mobile__link block display above) */
.cp-mobile .cp-mobile__group[b-ddipw01ymc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

.cp-mobile .cp-mobile__group.has-active[b-ddipw01ymc] {
    color: var(--cp-accent-fg);
}

.cp-mobile__group[b-ddipw01ymc]  .cp-mobile__chevron {
    flex: 0 0 auto;
    color: var(--cp-text-2);
    transition: transform var(--cp-motion-fast) ease;
}

.cp-mobile__group[aria-expanded="true"][b-ddipw01ymc]  .cp-mobile__chevron {
    transform: rotate(180deg);
}

.cp-mobile__sub[b-ddipw01ymc] {
    margin: 0.125rem 0 0.375rem 0.75rem;
    padding-left: 0.5rem;
    border-left: 1px solid var(--cp-border);
}

.cp-mobile[b-ddipw01ymc]  .cp-mobile__sublink {
    padding: 0.625rem 0.75rem;
    font-weight: 400;
}

.cp-mobile__row[b-ddipw01ymc] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cp-border);
}

.cp-mobile__row > *[b-ddipw01ymc] {
    flex: 1 1 0;
}

/* with the account panel open the links are hidden, so the row is the first thing in the menu */
.cp-mobile__row.is-first[b-ddipw01ymc] {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.cp-mobile__lang[b-ddipw01ymc] {
    margin-top: 0.75rem;
}

/* "Cuenta" opens the same account menu as the desktop button, as a panel under the row (PR 05.33) */
.cp-mobile__account[b-ddipw01ymc]  .cp-mobile__chevron {
    transition: transform var(--cp-motion-fast) ease;
}

.cp-mobile__account[aria-expanded="true"][b-ddipw01ymc]  .cp-mobile__chevron {
    transform: rotate(180deg);
}

.cp-mobile__account-panel[b-ddipw01ymc] {
    margin-top: 0.75rem;
    padding: 0.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
    animation: cp-rise var(--cp-motion-enter) both;
}

.cp-mobile__account-head[b-ddipw01ymc] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.25rem;
    padding: 0.5rem 0.75rem 0.75rem;
    border-bottom: 1px solid var(--cp-border);
}

.cp-mobile__account-links[b-ddipw01ymc]  .cp-mobile__link,
.cp-mobile__account-links .cp-mobile__link[b-ddipw01ymc] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.cp-mobile__account-links[b-ddipw01ymc]  .cp-icon {
    flex: 0 0 auto;
    color: var(--cp-text-2);
}

.cp-mobile__logout[b-ddipw01ymc] {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
}

/* ---------------- main ---------------- */
.cp-main[b-ddipw01ymc] {
    padding-top: var(--cp-nav-h);
    outline: none;
}

/* ---------------- responsive (Lovable: links lg:flex, actions md:flex, hamburger md:hidden) ---------------- */
@media (min-width: 768px) {
    .cp-nav__actions[b-ddipw01ymc] {
        display: flex;
    }

    .cp-mobile__row[b-ddipw01ymc],
    .cp-mobile__lang[b-ddipw01ymc],
    .cp-mobile__account-panel[b-ddipw01ymc] {
        display: none;
    }
}

@media (min-width: 992px) {
    .cp-nav__links[b-ddipw01ymc] {
        display: flex;
    }

    .cp-nav__toggler[b-ddipw01ymc] {
        display: none;
    }

    .cp-mobile[b-ddipw01ymc] {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .cp-nav__bar[b-ddipw01ymc] {
        gap: 0.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cp-mobile[b-ddipw01ymc]  .cp-mobile__link,
    .cp-mobile .cp-mobile__link[b-ddipw01ymc],
    .cp-mobile__account-panel[b-ddipw01ymc] {
        animation: none;
    }

    .cp-mobile__account[b-ddipw01ymc]  .cp-mobile__chevron,
    .cp-mobile__group[b-ddipw01ymc]  .cp-mobile__chevron { transition: none; }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.page[b-9nv7aojh4r] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-9nv7aojh4r] {
    flex: 1;
}

.sidebar[b-9nv7aojh4r] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-9nv7aojh4r] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-9nv7aojh4r]  a, .top-row[b-9nv7aojh4r]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-9nv7aojh4r]  a:hover, .top-row[b-9nv7aojh4r]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-9nv7aojh4r]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-9nv7aojh4r] {
        justify-content: space-between;
    }

    .top-row[b-9nv7aojh4r]  a, .top-row[b-9nv7aojh4r]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-9nv7aojh4r] {
        flex-direction: row;
    }

    .sidebar[b-9nv7aojh4r] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-9nv7aojh4r] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-9nv7aojh4r]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-9nv7aojh4r], article[b-9nv7aojh4r] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-9nv7aojh4r] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-9nv7aojh4r] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-h9cmseheqy] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.1);
}

.navbar-toggler:checked[b-h9cmseheqy] {
    background-color: rgba(255, 255, 255, 0.5);
}

.top-row[b-h9cmseheqy] {
    height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-h9cmseheqy] {
    font-size: 1.1rem;
}

.bi[b-h9cmseheqy] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-lock-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a2 2 0 0 1 2 2v4H6V3a2 2 0 0 1 2-2zm3 6V3a3 3 0 0 0-6 0v4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zM5 8h6a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
}

.bi-person-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person' viewBox='0 0 16 16'%3E%3Cpath d='M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z'/%3E%3C/svg%3E");
}

.bi-person-badge-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-badge' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 2a.5.5 0 0 0 0 1h3a.5.5 0 0 0 0-1h-3zM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0z'/%3E%3Cpath d='M4.5 0A2.5 2.5 0 0 0 2 2.5V14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2.5A2.5 2.5 0 0 0 11.5 0h-7zM3 2.5A1.5 1.5 0 0 1 4.5 1h7A1.5 1.5 0 0 1 13 2.5v10.795a4.2 4.2 0 0 0-.776-.492C11.392 12.387 10.063 12 8 12s-3.392.387-4.224.803a4.2 4.2 0 0 0-.776.492V2.5z'/%3E%3C/svg%3E");
}

.bi-person-fill-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-person-fill' viewBox='0 0 16 16'%3E%3Cpath d='M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1H3Zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E");
}

.bi-arrow-bar-left-nav-menu[b-h9cmseheqy] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-arrow-bar-left' viewBox='0 0 16 16'%3E%3Cpath d='M12.5 15a.5.5 0 0 1-.5-.5v-13a.5.5 0 0 1 1 0v13a.5.5 0 0 1-.5.5ZM10 8a.5.5 0 0 1-.5.5H3.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L3.707 7.5H9.5a.5.5 0 0 1 .5.5Z'/%3E%3C/svg%3E");
}

.nav-item[b-h9cmseheqy] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-h9cmseheqy] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-h9cmseheqy] {
        padding-bottom: 1rem;
    }

    .nav-item[b-h9cmseheqy]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-h9cmseheqy]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-h9cmseheqy]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}

.nav-scrollable[b-h9cmseheqy] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-h9cmseheqy] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-h9cmseheqy] {
        display: none;
    }

    .nav-scrollable[b-h9cmseheqy] {
        /* Never collapse the sidebar for wide screens */
        display: block;

        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}
/* /Pages/ApiKeys.razor.rz.scp.css */
/* API keys view (PR 05.15). Composition from Lovable "shortlink-studio" src/routes/api-keys.tsx and
   src/components/api-key-modals.tsx (same frame as Pages/Domains.razor.css); values from tokens.css. Buttons, labels, the status pill, pagination
   and the dialog frame (.cp-modal*) come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-apikeys[b-xpvzs4ka0s] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-apikeys[b-xpvzs4ka0s] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-apikeys__inner[b-xpvzs4ka0s] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header ---- */
.cp-apikeys__head[b-xpvzs4ka0s] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-apikeys__eyebrow[b-xpvzs4ka0s] { margin: 0 0 0.75rem; }

.cp-apikeys__title[b-xpvzs4ka0s] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-apikeys__lead[b-xpvzs4ka0s] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- KPI strip ---- */
.cp-apikeys__kpis[b-xpvzs4ka0s] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 2.25rem 0;
    padding: 1.5rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-apikeys__kpi[b-xpvzs4ka0s] {
    min-width: 0;
    padding: 0 0.75rem;
}

.cp-apikeys__kpi + .cp-apikeys__kpi[b-xpvzs4ka0s] { border-left: 1px solid var(--cp-border); }

.cp-apikeys__kpi-label[b-xpvzs4ka0s] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-apikeys__kpi-label[b-xpvzs4ka0s]  .cp-icon {
    display: none;
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-apikeys__kpi-value[b-xpvzs4ka0s] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

/* ---- list ---- */
.cp-apikeys__list-head[b-xpvzs4ka0s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.cp-apikeys__list-title[b-xpvzs4ka0s] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-apikeys__list-count[b-xpvzs4ka0s] {
    margin-left: 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-apikeys__search[b-xpvzs4ka0s] {
    position: relative;
    display: block;
    width: 100%;
    margin: 0;
}

.cp-apikeys__search[b-xpvzs4ka0s]  .cp-icon {
    position: absolute;
    top: 50%;
    left: 0.875rem;
    color: var(--cp-text-2);
    transform: translateY(-50%);
    pointer-events: none;
}

.cp-apikeys__search .form-control[b-xpvzs4ka0s] {
    height: var(--cp-btn-md);
    padding-right: 2.5rem;
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
}

/* the browser's own clear (x) of a search input would duplicate ours */
.cp-apikeys__search .form-control[b-xpvzs4ka0s]::-webkit-search-cancel-button { display: none; }

.cp-apikeys__search-clear[b-xpvzs4ka0s] {
    position: absolute;
    top: 50%;
    right: 0.25rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text-2);
    transform: translateY(-50%);
}

.cp-apikeys__search-clear:hover[b-xpvzs4ka0s] { background: var(--cp-bg-muted); color: var(--cp-text); }

.cp-apikeys__search-clear[b-xpvzs4ka0s]  .cp-icon {
    position: static;
    transform: none;
}

/* ---- table ---- */
.cp-apikeys__table-wrap[b-xpvzs4ka0s] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-apikeys__table[b-xpvzs4ka0s] {
    width: 100%;
    min-width: 42rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-apikeys__table thead[b-xpvzs4ka0s] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-apikeys__table th[b-xpvzs4ka0s] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-apikeys__table td[b-xpvzs4ka0s] {
    padding: 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-apikeys__table tbody tr[b-xpvzs4ka0s] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-apikeys__table tbody tr:last-child[b-xpvzs4ka0s] { border-bottom: 0; }
.cp-apikeys__table tbody tr:hover[b-xpvzs4ka0s] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-apikeys__table .is-num[b-xpvzs4ka0s] { text-align: right; }
.cp-apikeys__table .is-actions[b-xpvzs4ka0s] { text-align: right; }

.cp-apikeys__name[b-xpvzs4ka0s] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.cp-apikeys__name-icon[b-xpvzs4ka0s] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-apikeys__name-text[b-xpvzs4ka0s] { min-width: 0; }

.cp-apikeys__muted[b-xpvzs4ka0s] { color: var(--cp-text-2) !important; }

.cp-apikeys__danger:hover[b-xpvzs4ka0s],
.cp-apikeys__danger:focus-visible[b-xpvzs4ka0s] {
    background: var(--cp-danger-bg) !important;
    color: var(--cp-danger) !important;
}

.cp-apikeys__empty[b-xpvzs4ka0s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3.5rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-apikeys__empty-title[b-xpvzs4ka0s] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-apikeys__foot[b-xpvzs4ka0s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-apikeys__foot p[b-xpvzs4ka0s] { margin: 0; }

/* ---- create dialog ---- */
.cp-apikeys__modal-lead[b-xpvzs4ka0s] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-apikeys__form[b-xpvzs4ka0s] {
    display: grid;
    gap: 1.25rem;
}

.cp-apikeys__input[b-xpvzs4ka0s] { height: 3rem; }

.cp-apikeys__error[b-xpvzs4ka0s] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

.cp-apikeys__error[b-xpvzs4ka0s]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
}

/* ---- table cells ---- */
.cp-apikeys__key-name[b-xpvzs4ka0s] {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.cp-apikeys__empty-lead[b-xpvzs4ka0s] {
    margin: 0;
    font-size: var(--cp-text-sm);
}

.cp-apikeys__empty .btn[b-xpvzs4ka0s] { margin-top: 0.75rem; }

/* ---- create / reveal dialog ---- */
.cp-apikeys__reveal[b-xpvzs4ka0s] {
    padding: 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 25%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
}

.cp-apikeys__reveal-label[b-xpvzs4ka0s] {
    margin: 0 0 0.75rem;
    font-size: var(--cp-text-xs);
    font-weight: 600;
    letter-spacing: var(--cp-tracking-label);
    text-transform: uppercase;
    color: var(--cp-accent-fg);
}

.cp-apikeys__reveal-row[b-xpvzs4ka0s] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cp-apikeys__reveal-key[b-xpvzs4ka0s] {
    flex: 1 1 auto;
    min-width: 0;
    word-break: break-all;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-apikeys__reveal-row .btn[b-xpvzs4ka0s] { flex: 0 0 auto; }

.cp-apikeys__reveal-row[b-xpvzs4ka0s]  .cp-apikeys__copied,
.cp-apikeys__copied-text[b-xpvzs4ka0s] { color: var(--cp-success-fg); }

.cp-apikeys__copied-text[b-xpvzs4ka0s] { font-size: var(--cp-text-xs); }

.cp-apikeys__warning[b-xpvzs4ka0s] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-apikeys__warning[b-xpvzs4ka0s]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
    color: var(--cp-warning-fg);
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-apikeys__inner[b-xpvzs4ka0s] { padding-top: 3rem; }
    .cp-apikeys__title[b-xpvzs4ka0s] { font-size: 3rem; }
    .cp-apikeys__lead[b-xpvzs4ka0s] { font-size: var(--cp-text-md); }
    .cp-apikeys__kpi[b-xpvzs4ka0s] { padding: 0 1.5rem; }
    .cp-apikeys__kpi-label[b-xpvzs4ka0s] { font-size: var(--cp-text-sm); }
    .cp-apikeys__kpi-label[b-xpvzs4ka0s]  .cp-icon { display: block; }
    .cp-apikeys__search[b-xpvzs4ka0s] { width: 20rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-apikeys__table tbody tr[b-xpvzs4ka0s] { transition: none; }
}
/* /Pages/Authentication.razor.rz.scp.css */
/* Supabase sign-in view (PR 05.07). Composition from Lovable "shortlink-studio" src/routes/login.tsx;
   values from tokens.css. Buttons, inputs, alerts, motion and the skip link come from compacto.css. */

.cp-login[b-xbjd1yc2j4] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 4.5rem 1rem 1.5rem;
    overflow: hidden;
    /* same technical grid as /auth and /register (compacto.css .cp-grid-bg), with the fainter 42 % line */
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
}

:root[data-bs-theme="high-contrast"] .cp-login[b-xbjd1yc2j4] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

/* ---- orbit ring: drawn once, the whole svg rotates with its dots ---- */
.cp-login__orbit[b-xbjd1yc2j4] {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34rem;
    height: 34rem;
    transform: translate(-50%, -50%);
    animation: cp-login-orbit-b-xbjd1yc2j4 40s linear infinite;
    pointer-events: none;
}

/* PR 05.12: full size while the view opens, then the ring shrinks away behind the card (which sits above it)
   while it keeps turning; timing in tokens.css (--cp-orbit-hold / --cp-orbit-exit, shared with /auth/forgot).
   With reduced motion it stays still and simply disappears after the hold. */
.cp-login__orbit svg[b-xbjd1yc2j4] {
    display: block;
    width: 100%;
    height: 100%;
    fill: var(--cp-primary);
    animation: cp-login-orbit-exit-b-xbjd1yc2j4 var(--cp-orbit-exit) cubic-bezier(0.65, 0, 0.35, 1) var(--cp-orbit-hold) both;
}

@keyframes cp-login-orbit-exit-b-xbjd1yc2j4 {
    from { opacity: 1; transform: scale(1); }
    85% { opacity: 1; }
    to { opacity: 0; transform: scale(0.3); }
}

.cp-login__orbit .cp-login__orbit-ring[b-xbjd1yc2j4] {
    fill: none;
    stroke: var(--cp-primary);
    stroke-opacity: 0.35;
}

@keyframes cp-login-orbit-b-xbjd1yc2j4 {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (min-width: 576px) {
    .cp-login__orbit[b-xbjd1yc2j4] { width: 46rem; height: 46rem; }
}

@media (min-width: 992px) {
    .cp-login__orbit[b-xbjd1yc2j4] { width: 54rem; height: 54rem; }
}

/* ---- floating language / theme controls (kept from the previous page) ---- */
.cp-login__controls[b-xbjd1yc2j4] {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem var(--cp-gutter);
}

.cp-login__lang[b-xbjd1yc2j4]  .btn {
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    color: var(--cp-text) !important;
    font-weight: 500;
    font-size: var(--cp-text-sm);
}

.cp-login__lang[b-xbjd1yc2j4]  .btn:hover,
.cp-login__lang[b-xbjd1yc2j4]  .btn:focus-visible,
.cp-login__lang[b-xbjd1yc2j4]  .btn.show {
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg) !important;
}

.cp-login__theme[b-xbjd1yc2j4] {
    width: var(--cp-btn-md);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-login__theme[b-xbjd1yc2j4]  .cp-theme-toggle__icon { display: none; }
:root[data-bs-theme="light"] .cp-login__theme[b-xbjd1yc2j4]  .cp-theme-toggle__icon--light,
:root:not([data-bs-theme]) .cp-login__theme[b-xbjd1yc2j4]  .cp-theme-toggle__icon--light { display: inline-block; }
:root[data-bs-theme="dark"] .cp-login__theme[b-xbjd1yc2j4]  .cp-theme-toggle__icon--dark { display: inline-block; }
:root[data-bs-theme="high-contrast"] .cp-login__theme[b-xbjd1yc2j4]  .cp-theme-toggle__icon--hc { display: inline-block; }

/* ---- card ---- */
.cp-login__card[b-xbjd1yc2j4] {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 28rem;
    padding: 1.75rem 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    outline: none;
}

@media (min-width: 576px) {
    .cp-login__card[b-xbjd1yc2j4] { padding: 1.75rem 2rem; }
}

/* from md the floating controls sit beside the card, so the card can use the full height */
@media (min-width: 768px) {
    .cp-login[b-xbjd1yc2j4] { padding: 1rem 1rem; }
}

.cp-login__brand[b-xbjd1yc2j4] {
    display: flex;
    justify-content: center;
    color: var(--cp-text);
    text-decoration: none;
}

.cp-login__title[b-xbjd1yc2j4] {
    margin: 1rem 0 0;
    text-align: center;
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--cp-text);
}

.cp-login__lead[b-xbjd1yc2j4] {
    margin: 0.25rem 0 0;
    text-align: center;
    font-size: var(--cp-text-md);
    color: var(--cp-text-2);
}

.cp-login__alert[b-xbjd1yc2j4] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem 0 0;
}

.cp-login[b-xbjd1yc2j4]  .cp-login__form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

/* ---- pill inputs with leading icon ---- */
.cp-login__field[b-xbjd1yc2j4] {
    display: flex;
    flex-direction: column;
}

.cp-login__input[b-xbjd1yc2j4] {
    position: relative;
}

.cp-login[b-xbjd1yc2j4]  .cp-login__input-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cp-text-2);
    pointer-events: none;
}

.cp-login__input[b-xbjd1yc2j4]  .form-control {
    width: 100%;
    min-height: var(--cp-input-h);
    padding-left: 3rem;
    border-radius: var(--cp-radius-pill);
    background-color: var(--cp-bg);
    font-size: var(--cp-text-md);
    box-shadow: var(--cp-shadow-card);
}

.cp-login__input[b-xbjd1yc2j4]  .form-control:focus {
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 3px var(--cp-focus-ring);
}

/* Blazor marks edited fields .modified.invalid (not Bootstrap's .is-invalid) */
.cp-login__input[b-xbjd1yc2j4]  .form-control.modified.invalid {
    border-color: var(--cp-danger);
}

.cp-login__input[b-xbjd1yc2j4]  .cp-login__password {
    padding-right: 3rem;
}

.cp-login__eye[b-xbjd1yc2j4] {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    color: var(--cp-text-2);
    transform: translateY(-50%);
    transition: color var(--cp-motion-fast) ease;
}

.cp-login__eye:hover[b-xbjd1yc2j4] {
    color: var(--cp-text);
}

.cp-login__field[b-xbjd1yc2j4]  .validation-message {
    margin-top: 0.375rem;
    padding-left: 1rem;
}

.cp-login__options[b-xbjd1yc2j4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
}

.cp-login__forgot[b-xbjd1yc2j4],
.cp-login__signup a[b-xbjd1yc2j4] {
    color: var(--cp-primary);
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 4px;
}

.cp-login__forgot[b-xbjd1yc2j4] {
    font-size: 13px;
    white-space: nowrap;
}

.cp-login__forgot:hover[b-xbjd1yc2j4],
.cp-login__signup a:hover[b-xbjd1yc2j4] {
    text-decoration: underline;
}

.cp-login__keep[b-xbjd1yc2j4] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin: 0;
    padding-left: 0;
    font-size: 13px;
    white-space: nowrap;
    color: var(--cp-text);
}

.cp-login__keep[b-xbjd1yc2j4]  .form-check-input {
    float: none;
    width: 1rem;
    height: 1rem;
    margin: 0;
    flex: 0 0 auto;
    border-radius: 4px;
    box-shadow: var(--cp-shadow-card);
    cursor: pointer;
}

.cp-login__keep .form-check-label[b-xbjd1yc2j4] {
    cursor: pointer;
}

.cp-login__captcha[b-xbjd1yc2j4] {
    display: flex;
    justify-content: center;
}

.cp-login__captcha:has(#hcaptcha-login-container:empty)[b-xbjd1yc2j4] {
    display: none;
}

.cp-login__submit[b-xbjd1yc2j4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: var(--cp-btn-lg);
    --bs-btn-font-size: var(--cp-text-md);
    --x-btn-font-size: var(--cp-text-md);
    font-weight: 600;
}

.cp-login__submit:not(:disabled):hover[b-xbjd1yc2j4] {
    transform: translateY(-2px);
}

.cp-login[b-xbjd1yc2j4]  .cp-login__submit-arrow {
    transition: transform var(--cp-motion-fast) var(--cp-ease);
}

.cp-login__submit:not(:disabled):hover[b-xbjd1yc2j4]  .cp-login__submit-arrow {
    transform: translateX(4px);
}

/* ---- divider + providers ---- */
.cp-login__divider[b-xbjd1yc2j4] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1rem 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-login__divider span[b-xbjd1yc2j4] {
    flex: 1;
    height: 1px;
    background: var(--cp-border);
}

/* Side by side as in the reference; the visible label is the provider name only (the full
   "Continue with ..." text is the aria-label) so both fit the 28rem card on one row. */
.cp-login__providers[b-xbjd1yc2j4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.cp-login__provider[b-xbjd1yc2j4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    height: var(--cp-btn-md);
    padding: 0 0.75rem;
    white-space: nowrap;
    font-size: var(--cp-text-sm);
    font-weight: 600;
}

.cp-login__provider-icon[b-xbjd1yc2j4] {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
}

.cp-login__signup[b-xbjd1yc2j4] {
    margin: 1.25rem 0 0;
    text-align: center;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

@media (prefers-reduced-motion: reduce) {
    .cp-login__orbit[b-xbjd1yc2j4] {
        animation: none;
    }

    .cp-login__submit:not(:disabled):hover[b-xbjd1yc2j4],
    .cp-login__submit:not(:disabled):hover[b-xbjd1yc2j4]  .cp-login__submit-arrow {
        transform: none;
    }
}
/* /Pages/AuthStart.razor.rz.scp.css */
/* /auth welcome view (PR 05.07). Composition from Lovable "shortlink-studio" src/routes/auth.tsx;
   values from tokens.css. Component rules (buttons, grid, skip link) come from compacto.css. */

.cp-auth[b-ja2sj70zhq] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
    /* the reference grid is fainter than the dashboard hero's (border at 42%) */
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    /* brand-green panel (reference --ink: #096C4B, dimmed in dark) */
    --cp-auth-ink: #096C4B;
    --cp-auth-ink-fg: #F8FAFC;
    --cp-auth-glow: color-mix(in srgb, var(--cp-primary) 30%, transparent);
    --cp-auth-glow-soft: color-mix(in srgb, var(--cp-primary) 15%, transparent);
}

:root[data-bs-theme="dark"] .cp-auth[b-ja2sj70zhq] {
    --cp-auth-ink: #005C3E;
}

:root[data-bs-theme="high-contrast"] .cp-auth[b-ja2sj70zhq] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
    --cp-auth-ink: #000000;
    --cp-auth-ink-fg: #FFFFFF;
    --cp-auth-glow: transparent;
    --cp-auth-glow-soft: transparent;
}

/* ---- top bar: language + theme ---- */
.cp-auth__bar[b-ja2sj70zhq] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 1.25rem var(--cp-gutter);
}

/* LanguageSelector renders its labelled variant (white text for the old dark hero): re-skin it as a ghost pill. */
.cp-auth__lang[b-ja2sj70zhq]  .btn {
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    color: var(--cp-text) !important;
    font-weight: 500;
    font-size: var(--cp-text-sm);
}

.cp-auth__lang[b-ja2sj70zhq]  .btn:hover,
.cp-auth__lang[b-ja2sj70zhq]  .btn:focus-visible,
.cp-auth__lang[b-ja2sj70zhq]  .btn.show {
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg) !important;
}

.cp-auth__theme[b-ja2sj70zhq] {
    width: var(--cp-btn-md);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

/* theme switch: three icons, CSS shows the one for the active theme (js sets data-bs-theme only) */
.cp-auth__theme[b-ja2sj70zhq]  .cp-theme-toggle__icon { display: none; }
:root[data-bs-theme="light"] .cp-auth__theme[b-ja2sj70zhq]  .cp-theme-toggle__icon--light,
:root:not([data-bs-theme]) .cp-auth__theme[b-ja2sj70zhq]  .cp-theme-toggle__icon--light { display: inline-block; }
:root[data-bs-theme="dark"] .cp-auth__theme[b-ja2sj70zhq]  .cp-theme-toggle__icon--dark { display: inline-block; }
:root[data-bs-theme="high-contrast"] .cp-auth__theme[b-ja2sj70zhq]  .cp-theme-toggle__icon--hc { display: inline-block; }

/* ---- card ---- */
.cp-auth__main[b-ja2sj70zhq] {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    padding: 0 1rem 2.5rem;
}

.cp-auth__card[b-ja2sj70zhq] {
    display: grid;
    width: 100%;
    max-width: 56rem;
    overflow: hidden;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
}

@media (min-width: 992px) {
    .cp-auth__card[b-ja2sj70zhq] {
        grid-template-columns: 1.15fr 1fr;
    }
}

/* ---- left: brand panel ---- */
.cp-auth__hero[b-ja2sj70zhq] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4rem;
    min-width: 0;
    overflow: hidden;
    padding: 2rem;
    background: var(--cp-auth-ink);
    color: var(--cp-auth-ink-fg);
}

:root[data-bs-theme="high-contrast"] .cp-auth__hero[b-ja2sj70zhq] {
    border-right: 1px solid var(--cp-border);
}

.cp-auth__scene[b-ja2sj70zhq] {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.cp-auth__glow[b-ja2sj70zhq] {
    position: absolute;
    border-radius: 50%;
    filter: blur(64px);
    animation: cp-auth-float-b-ja2sj70zhq 9s ease-in-out infinite;
}

.cp-auth__glow--a[b-ja2sj70zhq] {
    right: -5rem;
    top: 4rem;
    width: 16rem;
    height: 16rem;
    background: var(--cp-auth-glow);
}

.cp-auth__glow--b[b-ja2sj70zhq] {
    left: -4rem;
    bottom: -6rem;
    width: 18rem;
    height: 18rem;
    background: var(--cp-auth-glow-soft);
    animation-delay: -4.5s;
}

.cp-auth__route[b-ja2sj70zhq] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    color: #FFFFFF;
    fill: currentColor;
}

.cp-auth__route-path[b-ja2sj70zhq] {
    fill: none;
    stroke: currentColor;
    stroke-opacity: 0.25;
    animation: cp-auth-dash-b-ja2sj70zhq 1.6s linear infinite;
}

.cp-auth__brand[b-ja2sj70zhq],
.cp-auth__intro[b-ja2sj70zhq] {
    position: relative;
}

/* the wordmark follows currentColor (white here); lighten its bars so they read on the green panel */
.cp-auth__brand[b-ja2sj70zhq] {
    display: inline-flex;
    align-self: flex-start;
    color: var(--cp-auth-ink-fg);
    text-decoration: none;
    --cp-logo-accent: #9EEBC9;
}

:root[data-bs-theme="high-contrast"] .cp-auth__brand[b-ja2sj70zhq] {
    --cp-logo-accent: #27ED74;
}

.cp-auth__title[b-ja2sj70zhq] {
    margin: 0;
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--cp-auth-ink-fg);
}

.cp-auth__lead[b-ja2sj70zhq] {
    max-width: 20rem;
    margin: 1rem 0 0;
    font-size: var(--cp-text-md);
    line-height: var(--cp-leading-body);
    color: color-mix(in srgb, var(--cp-auth-ink-fg) 70%, transparent);
}

/* ---- right: access panel ---- */
.cp-auth__panel[b-ja2sj70zhq] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 3rem 2rem;
    outline: none;
}

.cp-auth__panel-title[b-ja2sj70zhq] {
    margin: 0;
    text-align: center;
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--cp-text);
}

.cp-auth__panel-lead[b-ja2sj70zhq] {
    margin: 0.5rem 0 0;
    text-align: center;
    font-size: var(--cp-text-md);
    color: var(--cp-text-2);
}

.cp-auth__cta[b-ja2sj70zhq] {
    display: grid;
    gap: 0.75rem;
    margin-top: 2rem;
}

.cp-auth__cta .cp-auth__btn[b-ja2sj70zhq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: 52px;
    --bs-btn-font-size: var(--cp-text-md);
    --x-btn-font-size: var(--cp-text-md);
    font-weight: 600;
}

.cp-auth__cta .btn-premium:hover[b-ja2sj70zhq] {
    transform: translateY(-2px);
}

.cp-auth[b-ja2sj70zhq]  .cp-auth__btn-icon--muted {
    color: var(--cp-text-2);
}

.cp-auth__terms[b-ja2sj70zhq] {
    margin: 2rem 0 0;
    text-align: center;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-auth__footer[b-ja2sj70zhq] {
    padding: 0 var(--cp-gutter) 2rem;
    text-align: center;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-auth__terms a[b-ja2sj70zhq],
.cp-auth__footer a[b-ja2sj70zhq] {
    color: var(--cp-primary);
    font-weight: 500;
    text-decoration: none;
    text-underline-offset: 4px;
}

.cp-auth__footer a[b-ja2sj70zhq] {
    font-weight: 600;
}

.cp-auth__terms a:hover[b-ja2sj70zhq],
.cp-auth__footer a:hover[b-ja2sj70zhq] {
    text-decoration: underline;
}

/* ---- motion (reference fade-up with staggered delays, floating glows, moving dash) ---- */
.cp-auth__fade[b-ja2sj70zhq] {
    animation: cp-auth-fade-up-b-ja2sj70zhq 0.7s var(--cp-ease) both;
}

.cp-auth__fade--1[b-ja2sj70zhq] { animation-delay: 0.15s; }
.cp-auth__fade--2[b-ja2sj70zhq] { animation-delay: 0.3s; }
.cp-auth__fade--3[b-ja2sj70zhq] { animation-delay: 0.35s; }
.cp-auth__fade--4[b-ja2sj70zhq] { animation-delay: 0.45s; }
.cp-auth__fade--5[b-ja2sj70zhq] { animation-delay: 0.55s; }

@keyframes cp-auth-fade-up-b-ja2sj70zhq {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cp-auth-float-b-ja2sj70zhq {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-14px, 16px); }
}

@keyframes cp-auth-dash-b-ja2sj70zhq {
    to { stroke-dashoffset: -48; }
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-auth__hero[b-ja2sj70zhq] { padding: 2.5rem; }
}

@media (min-width: 768px) {
    .cp-auth__bar[b-ja2sj70zhq] { padding: 1.25rem 3rem; }
    .cp-auth__main[b-ja2sj70zhq] { padding: 0 3rem 2.5rem; }
    .cp-auth__hero[b-ja2sj70zhq] { padding: 3rem; }
    .cp-auth__panel[b-ja2sj70zhq] { padding: 3rem; }
    .cp-auth__title[b-ja2sj70zhq] { font-size: 2.75rem; }
}

/* phones: the panels stack, so trim vertical rhythm to keep the whole view on one screen */
@media (max-width: 575.98px) {
    .cp-auth__hero[b-ja2sj70zhq] { gap: 2.5rem; }
    .cp-auth__panel[b-ja2sj70zhq] { padding: 2rem 1.5rem; }
    .cp-auth__main[b-ja2sj70zhq] { padding-bottom: 1.5rem; }
    .cp-auth__footer[b-ja2sj70zhq] { padding-bottom: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-auth__fade[b-ja2sj70zhq],
    .cp-auth__glow[b-ja2sj70zhq],
    .cp-auth__route-path[b-ja2sj70zhq] {
        animation: none;
    }

    .cp-auth__route-pulse[b-ja2sj70zhq] {
        display: none;
    }

    .cp-auth__cta .btn-premium:hover[b-ja2sj70zhq] {
        transform: none;
    }
}
/* /Pages/BulkCampaignReport.razor.rz.scp.css */
/* Campaign report (PR 05.27). Composition from Lovable "shortlink-studio" src/routes/campaign-report.$campaignId.tsx
   on the frame of the campaigns view (BulkShortlinkCampaigns.razor.css); values from tokens.css. Buttons, labels,
   the status pill, pagination and the plan pill (.cp-upsell) come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-report[b-cwd3yyccmv] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-report[b-cwd3yyccmv] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-report__inner[b-cwd3yyccmv] {
    padding-top: 1.5rem;
    padding-bottom: 4rem;
}

.cp-report__mono[b-cwd3yyccmv] {
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
}

.cp-report__muted[b-cwd3yyccmv] { color: var(--cp-text-2); }

.cp-report__back[b-cwd3yyccmv] {
    gap: 0.375rem;
    margin-bottom: 1.75rem;
    padding-right: 0;
    padding-left: 0;
    color: var(--cp-text-2);
}

/* ---- loading / not found / error ---- */
.cp-report__state[b-cwd3yyccmv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 4rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-report__state--inline[b-cwd3yyccmv] { padding: 3rem 1.25rem; }

.cp-report__state-title[b-cwd3yyccmv] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--cp-text);
}

.cp-report__state--inline .cp-report__state-title[b-cwd3yyccmv] { font-size: var(--cp-text-lg); }

.cp-report__state-text[b-cwd3yyccmv] {
    margin: 0;
    font-size: var(--cp-text-sm);
}

.cp-report__state .btn[b-cwd3yyccmv] { gap: 0.375rem; margin-top: 0.5rem; }

/* ---- header ---- */
.cp-report__head[b-cwd3yyccmv] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
}

.cp-report__head-text[b-cwd3yyccmv] {
    flex: 1 1 18rem;
    min-width: 0;
}

.cp-report__eyebrow[b-cwd3yyccmv] { margin: 0 0 0.75rem; }

.cp-report__title[b-cwd3yyccmv] {
    margin: 0;
    overflow-wrap: anywhere;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-report__meta[b-cwd3yyccmv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    margin: 1rem 0 0;
    min-width: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-report__domain[b-cwd3yyccmv] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-family: var(--cp-font-mono);
    color: var(--cp-primary);
}

.cp-report__sep[b-cwd3yyccmv] { display: none; color: var(--cp-border); }

.cp-report__dest[b-cwd3yyccmv] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---- KPI cards ---- */
.cp-report__kpis[b-cwd3yyccmv] {
    display: grid;
    gap: 1rem;
    margin: 2.25rem 0;
}

.cp-report__kpi[b-cwd3yyccmv] {
    padding: 1.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-report__kpi-head[b-cwd3yyccmv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.cp-report__kpi-head h2[b-cwd3yyccmv] {
    margin: 0;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-report__kpi-icon[b-cwd3yyccmv] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--cp-radius-nav);
    background: var(--cp-surface-2);
    color: var(--cp-text);
}

.cp-report__kpi-value[b-cwd3yyccmv] {
    margin: 0.75rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-report__kpi-detail[b-cwd3yyccmv] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-report__kpi--accent .cp-report__kpi-icon[b-cwd3yyccmv] {
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-report__kpi--accent .cp-report__kpi-value[b-cwd3yyccmv] { color: var(--cp-primary); }

/* ---- conversion rate + funnel ---- */
.cp-report__analysis[b-cwd3yyccmv] {
    display: grid;
    gap: 2rem;
    padding: 1.75rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-report__rate[b-cwd3yyccmv],
.cp-report__funnel[b-cwd3yyccmv] {
    min-width: 0;
    padding: 0 1.25rem;
}

.cp-report__panel-head[b-cwd3yyccmv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--cp-primary);
}

.cp-report__analysis h2[b-cwd3yyccmv] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-report__gauge[b-cwd3yyccmv] {
    width: 100%;
    max-width: 17.5rem;
    margin: 1.5rem auto 0;
    aspect-ratio: 240 / 175;
}

.cp-report__gauge svg[b-cwd3yyccmv] {
    display: block;
    width: 100%;
    height: 100%;
}

.cp-report__gauge-track[b-cwd3yyccmv],
.cp-report__gauge-fill[b-cwd3yyccmv] {
    fill: none;
    stroke-width: 20;
    stroke-linecap: round;
}

.cp-report__gauge-track[b-cwd3yyccmv] { stroke: var(--cp-border); }
.cp-report__gauge-fill[b-cwd3yyccmv] { stroke: var(--cp-primary); }

.cp-report__gauge-value[b-cwd3yyccmv] {
    fill: var(--cp-text);
    font-family: var(--cp-font-heading);
    font-size: 36px;
    font-weight: 700;
}

.cp-report__gauge-caption[b-cwd3yyccmv] {
    fill: var(--cp-text-2);
    font-family: var(--cp-font-body);
    font-size: 11px;
}

.cp-report__gauge-foot[b-cwd3yyccmv] {
    margin: 0;
    font-size: var(--cp-text-xs);
    text-align: center;
    color: var(--cp-text-2);
}

.cp-report__stages[b-cwd3yyccmv] {
    display: grid;
    gap: 1.25rem;
    margin: 1.75rem 0 0;
    padding: 0;
    list-style: none;
}

.cp-report__stage-head[b-cwd3yyccmv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
    font-size: var(--cp-text-sm);
}

.cp-report__stage-label[b-cwd3yyccmv] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--cp-text-2);
}

.cp-report__stage-head .cp-report__mono[b-cwd3yyccmv] { font-weight: 600; color: var(--cp-text); }
.cp-report__stage-head .cp-report__muted[b-cwd3yyccmv] { font-weight: 400; }

.cp-report__stage-track[b-cwd3yyccmv] {
    display: flex;
    align-items: center;
    height: 2.25rem;
    overflow: hidden;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: color-mix(in srgb, var(--cp-surface-2) 70%, transparent);
}

.cp-report__stage-fill[b-cwd3yyccmv] {
    height: 100%;
    min-width: 0.5rem;
    transition: width var(--cp-motion-hover) var(--cp-ease);
}

.cp-report__stage-fill--generated[b-cwd3yyccmv] { background: var(--cp-text); }
.cp-report__stage-fill--clicked[b-cwd3yyccmv] { background: var(--cp-teal); }
.cp-report__stage-fill--converted[b-cwd3yyccmv] { background: var(--cp-primary); }

.cp-report__stage-empty[b-cwd3yyccmv] {
    padding: 0 0.75rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* ---- per-link detail ---- */
.cp-report__detail[b-cwd3yyccmv] { margin-top: 2.5rem; }

.cp-report__detail-head[b-cwd3yyccmv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.cp-report__detail-title[b-cwd3yyccmv] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-h3);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-report__detail-count[b-cwd3yyccmv] {
    margin-left: 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-report__tools[b-cwd3yyccmv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
}

.cp-report__search[b-cwd3yyccmv] {
    position: relative;
    display: block;
    flex: 1 1 14rem;
    min-width: 0;
    margin: 0;
}

.cp-report__search[b-cwd3yyccmv]  .cp-icon {
    position: absolute;
    top: 50%;
    left: 0.875rem;
    color: var(--cp-text-2);
    transform: translateY(-50%);
    pointer-events: none;
}

.cp-report__search .form-control[b-cwd3yyccmv] {
    height: var(--cp-btn-md);
    padding-right: 2.5rem;
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
}

.cp-report__search .form-control[b-cwd3yyccmv]::-webkit-search-cancel-button { display: none; }

.cp-report__search-clear[b-cwd3yyccmv] {
    position: absolute;
    top: 50%;
    right: 0.25rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text-2);
    transform: translateY(-50%);
}

.cp-report__search-clear:hover[b-cwd3yyccmv] { background: var(--cp-bg-muted); color: var(--cp-text); }

.cp-report__search-clear[b-cwd3yyccmv]  .cp-icon {
    position: static;
    transform: none;
}

.cp-report__csv[b-cwd3yyccmv] {
    gap: 0.375rem;
    border-radius: var(--cp-radius-pill);
}

/* plan without exports: the greyed CSV button with a compact plan pill beside it */
.cp-report__tools[b-cwd3yyccmv]  .entitlement-gate {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.cp-report__tools[b-cwd3yyccmv]  .cp-upsell {
    gap: 0.375rem;
    margin-top: 0;
    padding: 0.25rem 0.75rem 0.25rem 0.375rem;
    border-radius: var(--cp-radius-pill);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    white-space: nowrap;
}

.cp-report__tools[b-cwd3yyccmv]  .cp-upsell__icon {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
}

.cp-report__capped[b-cwd3yyccmv] {
    margin: 0 0 1rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-report__table-wrap[b-cwd3yyccmv] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-report__table[b-cwd3yyccmv] {
    width: 100%;
    min-width: 39rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-report__table thead[b-cwd3yyccmv] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-report__table th[b-cwd3yyccmv] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-report__table td[b-cwd3yyccmv] {
    padding: 1rem 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-report__table tbody tr[b-cwd3yyccmv] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-report__table tbody tr:last-child[b-cwd3yyccmv] { border-bottom: 0; }
.cp-report__table tbody tr:hover[b-cwd3yyccmv] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-report__table .is-num[b-cwd3yyccmv] { text-align: right; white-space: nowrap; }
.cp-report__table .is-actions[b-cwd3yyccmv] { width: 1%; text-align: right; }

.cp-report__slug[b-cwd3yyccmv] {
    margin: 0;
    font-family: var(--cp-font-mono);
    font-weight: 500;
    color: var(--cp-primary);
}

.cp-report__id[b-cwd3yyccmv] {
    margin: 0.25rem 0 0;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-report__copy[b-cwd3yyccmv] {
    border-radius: 50% !important;
    color: var(--cp-text-2);
}

.cp-report__foot[b-cwd3yyccmv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-report__foot p[b-cwd3yyccmv] { margin: 0; }

.cp-report__note[b-cwd3yyccmv] {
    margin: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-report__inner[b-cwd3yyccmv] { padding-top: 1.75rem; }
    .cp-report__title[b-cwd3yyccmv] { font-size: 3rem; }
    .cp-report__sep[b-cwd3yyccmv] { display: inline; }
    .cp-report__kpis[b-cwd3yyccmv] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cp-report__kpi[b-cwd3yyccmv] { padding: 1.5rem; }
    .cp-report__rate[b-cwd3yyccmv], .cp-report__funnel[b-cwd3yyccmv] { padding: 0 1.75rem; }
    .cp-report__tools[b-cwd3yyccmv] { width: auto; }
    .cp-report__search[b-cwd3yyccmv] { flex: 0 1 16rem; }
}

@media (min-width: 992px) {
    .cp-report__analysis[b-cwd3yyccmv] { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
    .cp-report__rate[b-cwd3yyccmv] { border-right: 1px solid var(--cp-border); }
}

@media (prefers-reduced-motion: reduce) {
    .cp-report__stage-fill[b-cwd3yyccmv],
    .cp-report__table tbody tr[b-cwd3yyccmv] {
        transition: none;
    }
}
/* /Pages/BulkShortlinkCampaigns.razor.rz.scp.css */
/* Campaigns view (PR 05.26). Composition from Lovable "shortlink-studio" src/routes/campaigns.tsx and
   src/components/campaign-create-modal.tsx on the frame of the Domains view (Domains.razor.css); values from
   tokens.css. Buttons, labels, the status pill, meters, code blocks, pagination and the dialog frame (.cp-modal*)
   come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-campaigns[b-1ov2xjq8hi] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-campaigns[b-1ov2xjq8hi] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-campaigns__inner[b-1ov2xjq8hi] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

.cp-campaigns__mono[b-1ov2xjq8hi] {
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
}

.cp-campaigns__strong[b-1ov2xjq8hi] { font-weight: 600; color: var(--cp-text); }
.cp-campaigns__muted[b-1ov2xjq8hi] { color: var(--cp-text-2); }

/* ---- header ---- */
.cp-campaigns__head[b-1ov2xjq8hi] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-campaigns__eyebrow[b-1ov2xjq8hi] { margin: 0 0 0.75rem; }

.cp-campaigns__title[b-1ov2xjq8hi] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-campaigns__lead[b-1ov2xjq8hi] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-campaigns__head-action[b-1ov2xjq8hi] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
}

.cp-campaigns__head-hint[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* Plan without campaigns: the greyed button with a compact plan pill right under it (same alignment as the
   button), instead of the full-width notice EntitlementGate renders by default. */
.cp-campaigns__head-action[b-1ov2xjq8hi]  .entitlement-gate {
    display: flex;
    flex-direction: column;
    align-items: inherit;
    gap: 0.5rem;
}

.cp-campaigns__head-action[b-1ov2xjq8hi]  .cp-upsell {
    gap: 0.375rem;
    margin-top: 0;
    padding: 0.25rem 0.75rem 0.25rem 0.375rem;
    border-radius: var(--cp-radius-pill);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    white-space: nowrap;
}

.cp-campaigns__head-action[b-1ov2xjq8hi]  .cp-upsell__icon {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
}

/* ---- plan usage strip ---- */
.cp-campaigns__plan[b-1ov2xjq8hi] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin: 2.25rem 0;
    padding: 1.5rem 1rem;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 70%, transparent);
}

.cp-campaigns__plan-id[b-1ov2xjq8hi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cp-campaigns__plan-icon[b-1ov2xjq8hi] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-campaigns__plan-kicker[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-campaigns__plan-name[b-1ov2xjq8hi] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--cp-text);
}

.cp-campaigns__plan-usage[b-1ov2xjq8hi] {
    flex: 1 1 auto;
    min-width: 0;
}

.cp-campaigns__plan-numbers[b-1ov2xjq8hi] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
    font-size: var(--cp-text-sm);
}

.cp-campaigns__plan-numbers p[b-1ov2xjq8hi] { margin: 0; }

.cp-campaigns__plan-free[b-1ov2xjq8hi] {
    font-weight: 500;
    color: var(--cp-primary);
}

.cp-campaigns__meter[b-1ov2xjq8hi] {
    height: 8px;
    margin-top: 0;
}

.cp-campaigns__plan-msg[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-campaigns__plan-link[b-1ov2xjq8hi] {
    align-self: flex-start;
    gap: 0.25rem;
    padding-right: 0;
    padding-left: 0;
}

/* ---- inline indicators ---- */
.cp-campaigns__stats[b-1ov2xjq8hi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 2rem;
    margin-bottom: 2rem;
    font-size: var(--cp-text-sm);
}

.cp-campaigns__stats p[b-1ov2xjq8hi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
}

.cp-campaigns__stats[b-1ov2xjq8hi]  .cp-icon { color: var(--cp-primary); }
.cp-campaigns__stats .is-ready[b-1ov2xjq8hi]  .cp-icon { color: var(--cp-success-fg); }
.cp-campaigns__stats .is-warning[b-1ov2xjq8hi]  .cp-icon { color: var(--cp-warning-fg); }

/* ---- list ---- */
.cp-campaigns__list-head[b-1ov2xjq8hi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.cp-campaigns__list-title[b-1ov2xjq8hi] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-campaigns__list-count[b-1ov2xjq8hi] {
    margin-left: 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-campaigns__search[b-1ov2xjq8hi] {
    position: relative;
    display: block;
    width: 100%;
    margin: 0;
}

.cp-campaigns__search[b-1ov2xjq8hi]  .cp-icon {
    position: absolute;
    top: 50%;
    left: 0.875rem;
    color: var(--cp-text-2);
    transform: translateY(-50%);
    pointer-events: none;
}

.cp-campaigns__search .form-control[b-1ov2xjq8hi] {
    height: var(--cp-btn-md);
    padding-right: 2.5rem;
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
}

/* the browser's own clear (x) of a search input would duplicate ours */
.cp-campaigns__search .form-control[b-1ov2xjq8hi]::-webkit-search-cancel-button { display: none; }

.cp-campaigns__search-clear[b-1ov2xjq8hi] {
    position: absolute;
    top: 50%;
    right: 0.25rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text-2);
    transform: translateY(-50%);
}

.cp-campaigns__search-clear:hover[b-1ov2xjq8hi] { background: var(--cp-bg-muted); color: var(--cp-text); }

.cp-campaigns__search-clear[b-1ov2xjq8hi]  .cp-icon {
    position: static;
    transform: none;
}

/* ---- table (internal horizontal scroll, never the page's) ---- */
.cp-campaigns__table-wrap[b-1ov2xjq8hi] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-campaigns__table[b-1ov2xjq8hi] {
    width: 100%;
    min-width: 61rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-campaigns__table thead[b-1ov2xjq8hi] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-campaigns__table th[b-1ov2xjq8hi] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-campaigns__table td[b-1ov2xjq8hi] {
    padding: 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-campaigns__table tbody tr[b-1ov2xjq8hi] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-campaigns__table tbody tr:last-child[b-1ov2xjq8hi] { border-bottom: 0; }
.cp-campaigns__table tbody tr:hover[b-1ov2xjq8hi] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-campaigns__table .is-num[b-1ov2xjq8hi] { text-align: right; white-space: nowrap; }
.cp-campaigns__table .is-actions[b-1ov2xjq8hi] { text-align: right; }

.cp-campaigns__name[b-1ov2xjq8hi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    max-width: 24rem;
}

.cp-campaigns__name-icon[b-1ov2xjq8hi] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-campaigns__name-text[b-1ov2xjq8hi] { min-width: 0; }

.cp-campaigns__name-title[b-1ov2xjq8hi] {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-md);
    font-weight: 600;
}

.cp-campaigns__domain[b-1ov2xjq8hi] {
    margin: 0.25rem 0 0;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-xs);
    color: var(--cp-primary);
}

.cp-campaigns__domain .cp-campaigns__muted[b-1ov2xjq8hi] { font-family: var(--cp-font-body); }

.cp-campaigns__dest[b-1ov2xjq8hi] {
    margin: 0.25rem 0 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-campaigns__actions[b-1ov2xjq8hi] {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
}

.cp-campaigns__round[b-1ov2xjq8hi] { border-radius: 50% !important; }
.cp-campaigns__actions .btn-ghost[b-1ov2xjq8hi] { color: var(--cp-text-2); }

.cp-campaigns__danger:hover[b-1ov2xjq8hi],
.cp-campaigns__danger:focus-visible[b-1ov2xjq8hi] {
    background: var(--cp-danger-bg) !important;
    color: var(--cp-danger) !important;
}

/* files stepper: label above a pill with − n + */
.cp-campaigns__files[b-1ov2xjq8hi] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.cp-campaigns__files-label[b-1ov2xjq8hi] {
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
    white-space: nowrap;
}

.cp-campaigns__stepper[b-1ov2xjq8hi] {
    display: flex;
    align-items: center;
    min-height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg);
}

.cp-campaigns__stepper .btn[b-1ov2xjq8hi] { border-radius: 50%; }

/* below 768 px compacto.css keeps every icon button at the 44 px touch target */
@media (min-width: 768px) {
    .cp-campaigns__stepper .btn[b-1ov2xjq8hi] {
        width: 2.25rem;
        height: 2.25rem;
    }
}

.cp-campaigns__files-input[b-1ov2xjq8hi] {
    width: 3rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: var(--cp-font-mono);
    font-weight: 600;
    text-align: center;
    color: var(--cp-text);
    -moz-appearance: textfield;
    appearance: textfield;
}

.cp-campaigns__files-input[b-1ov2xjq8hi]::-webkit-outer-spin-button,
.cp-campaigns__files-input[b-1ov2xjq8hi]::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.cp-campaigns__files-input:focus-visible[b-1ov2xjq8hi] {
    outline: 2px solid var(--cp-ring);
    outline-offset: -2px;
    border-radius: var(--cp-radius-nav);
}

.cp-campaigns__files-input:disabled[b-1ov2xjq8hi] { color: var(--cp-text-2); }

.cp-campaigns__download[b-1ov2xjq8hi] {
    gap: 0.375rem;
    min-height: 2.5rem;
    border-radius: var(--cp-radius-pill);
    white-space: nowrap;
}

/* loading / error / empty states inside the table frame */
.cp-campaigns__state[b-1ov2xjq8hi] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3.5rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-campaigns__state-title[b-1ov2xjq8hi] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-campaigns__state-text[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-sm);
}

.cp-campaigns__state .btn-outline-secondary[b-1ov2xjq8hi] { gap: 0.375rem; margin-top: 0.5rem; }

.cp-campaigns__foot[b-1ov2xjq8hi] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-campaigns__foot p[b-1ov2xjq8hi] { margin: 0; }

/* ---- conversions guide (collapsible) ---- */
.cp-campaigns__guide[b-1ov2xjq8hi] { margin-top: 1rem; }

.cp-campaigns__guide-box[b-1ov2xjq8hi] {
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-campaigns__guide-box summary[b-1ov2xjq8hi] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 1rem 1.25rem;
    list-style: none;
    cursor: pointer;
}

.cp-campaigns__guide-box summary[b-1ov2xjq8hi]::-webkit-details-marker { display: none; }

.cp-campaigns__guide-box summary:focus-visible[b-1ov2xjq8hi] {
    outline: 2px solid var(--cp-ring);
    outline-offset: 2px;
    border-radius: var(--cp-radius-card);
}

.cp-campaigns__guide-head[b-1ov2xjq8hi] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}

.cp-campaigns__guide-title[b-1ov2xjq8hi] {
    font-family: var(--cp-font-heading);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-campaigns__guide-lead[b-1ov2xjq8hi] {
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-campaigns__guide-box summary[b-1ov2xjq8hi]  .cp-campaigns__guide-chevron {
    flex: 0 0 auto;
    color: var(--cp-text-2);
    transition: transform var(--cp-motion-fast) ease;
}

.cp-campaigns__guide-box[open] summary[b-1ov2xjq8hi]  .cp-campaigns__guide-chevron { transform: rotate(180deg); }

.cp-campaigns__guide-body[b-1ov2xjq8hi] {
    display: grid;
    gap: 1rem;
    padding: 0 1.25rem 1.25rem;
}

.cp-campaigns__guide-steps[b-1ov2xjq8hi] {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding-left: 1.25rem;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text);
}

.cp-campaigns__code-head[b-1ov2xjq8hi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.375rem 0.5rem 0.375rem 1rem;
    border-bottom: 1px solid var(--cp-code-border);
    font-size: var(--cp-text-xs);
}

.cp-campaigns__code-head .btn[b-1ov2xjq8hi] {
    gap: 0.375rem;
    color: inherit;
}

.cp-campaigns__guide-links[b-1ov2xjq8hi] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-sm);
}

.cp-campaigns__guide-note[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* ---- create / duplicate dialog ---- */
.cp-campaigns__modal-lead[b-1ov2xjq8hi] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* minmax(0, 1fr): a long campaign name or URL (nowrap + ellipsis) must never widen the column and push the dialog
   content out of view (an auto column grows to the longest unbreakable line). */
.cp-campaigns__form[b-1ov2xjq8hi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
}

.cp-campaigns__form-row[b-1ov2xjq8hi] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
}

/* current destination in the change-destination dialog: the grid gap already separates it from the title */
.cp-campaigns__form .cp-campaigns__current[b-1ov2xjq8hi] { margin-top: 0; }

.cp-campaigns__no-domains[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* "N links to generate": the same left-rule preview as the Domains dialog */
.cp-campaigns__summary[b-1ov2xjq8hi] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding-left: 1rem;
    border-left: 2px solid var(--cp-primary);
}

.cp-campaigns__summary[b-1ov2xjq8hi]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
    color: var(--cp-primary);
}

.cp-campaigns__summary-main[b-1ov2xjq8hi] {
    margin: 0;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-campaigns__summary-sub[b-1ov2xjq8hi] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-campaigns__error[b-1ov2xjq8hi] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

.cp-campaigns__error[b-1ov2xjq8hi]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-campaigns__inner[b-1ov2xjq8hi] { padding-top: 3rem; }
    .cp-campaigns__title[b-1ov2xjq8hi] { font-size: 3rem; }
    .cp-campaigns__lead[b-1ov2xjq8hi] { font-size: var(--cp-text-md); }
    .cp-campaigns__head-action[b-1ov2xjq8hi] { align-items: flex-end; }
    .cp-campaigns__plan[b-1ov2xjq8hi] { flex-direction: row; align-items: center; gap: 1.5rem; padding: 1.5rem; }
    .cp-campaigns__plan-id[b-1ov2xjq8hi] { flex: 0 0 11rem; }
    .cp-campaigns__plan-link[b-1ov2xjq8hi] { align-self: center; }
    .cp-campaigns__search[b-1ov2xjq8hi] { width: 20rem; }
    .cp-campaigns__form-row[b-1ov2xjq8hi] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .cp-campaigns__table tbody tr[b-1ov2xjq8hi],
    .cp-campaigns__guide-box summary[b-1ov2xjq8hi]  .cp-campaigns__guide-chevron {
        transition: none;
    }
}
/* /Pages/ClickReportDetail.razor.rz.scp.css */
/* Detailed report (PR 05.31). Header, context pill, filter strip and alerts in the formats of the conversions and
   clicks-by-domain views (Pages/ConversionReport.razor.css); under them, like the shortlink dashboard, every
   component on a white card (Pages/Home.razor.css .cp-home__card / .cp-home__kpi, Components/Home/HomeCard) and the
   device donut in one green with a shade per device (Home's .cp-home__donut). Values from
   tokens.css; buttons, labels, tags, pagination, the toast and the plan upsell come from compacto.css and
   Components/Ui; the charts are drawn by wwwroot/js/home-dashboard.js. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-detail[b-cud7grevja] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-detail[b-cud7grevja] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-detail__inner[b-cud7grevja] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header (= .cp-conv__head) ---- */
.cp-detail__head[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-detail__eyebrow[b-cud7grevja] { margin: 0 0 0.75rem; }

.cp-detail__title[b-cud7grevja] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-detail__lead[b-cud7grevja] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* applied range (= .cp-conv__pill) */
.cp-detail__pill[b-cud7grevja] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-detail__pill[b-cud7grevja]  .cp-icon { color: var(--cp-primary); }

/* ---- filter strip (= .cp-conv__filters) ---- */
.cp-detail__filters[b-cud7grevja] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 1rem;
    margin-top: 2.25rem;
    padding: 1.5rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-detail__field[b-cud7grevja] { min-width: 0; }

.cp-detail__field-label[b-cud7grevja] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-detail__field-label[b-cud7grevja]  .cp-icon { color: var(--cp-text-2); }

.cp-detail__field .form-select[b-cud7grevja],
.cp-detail__field[b-cud7grevja]  input.form-control {
    height: 3rem;
    border-radius: var(--cp-radius-panel);
    background-color: var(--cp-surface);
}

.cp-detail__field .form-select[b-cud7grevja] { text-overflow: ellipsis; }

.cp-detail__submit[b-cud7grevja] {
    display: flex;
    gap: 0.5rem;
}

.cp-detail__submit .btn-lg[b-cud7grevja] { flex: 1 1 auto; }

.cp-detail__reset[b-cud7grevja] {
    width: var(--cp-btn-lg);
    height: var(--cp-btn-lg);
}

/* (= .cp-conv__alert) */
.cp-detail__alert[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

.cp-detail__alert--block[b-cud7grevja] { margin: 0 0 1.5rem; }

.cp-detail__alert-action[b-cud7grevja] {
    --bs-btn-color: var(--cp-danger);
    --x-btn-color: var(--cp-danger);
    --bs-btn-hover-color: var(--cp-danger);
    --x-btn-hover-color: var(--cp-danger);
    margin-left: auto;
}

/* ---- white cards, as on the shortlink dashboard (= .cp-home__card / .cp-home-card / .cp-home__kpi) ---- */
.cp-detail__card[b-cud7grevja] {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

/* selected link */
.cp-detail__link[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-top: 1.5rem;
}

.cp-detail__link-main[b-cud7grevja] {
    flex: 1 1 22rem;
    min-width: 0;
}

.cp-detail__link-name[b-cud7grevja] {
    margin: 0;
    font-size: var(--cp-text-md);
    font-weight: 700;
    color: var(--cp-text);
    overflow-wrap: anywhere;
}

.cp-detail__link-dest[b-cud7grevja] {
    display: block;
    margin-top: 0.25rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.cp-detail__link-dest:hover[b-cud7grevja] { text-decoration: underline; }

.cp-detail__link-short[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.75rem;
}

.cp-detail__link-url[b-cud7grevja] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    color: var(--cp-primary);
    overflow-wrap: anywhere;
}

.cp-detail__link-meta[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    font-size: var(--cp-text-xs);
}

.cp-detail__link-lock[b-cud7grevja] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--cp-text-2);
}

/* KPI cards (= .cp-home__kpis / .cp-home__kpi) */
.cp-detail__kpis[b-cud7grevja] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1rem 0;
}

.cp-detail__kpi[b-cud7grevja] {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-detail__kpi-label[b-cud7grevja] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-detail__kpi-label[b-cud7grevja]  .cp-icon {
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-detail__kpi-value[b-cud7grevja] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
    overflow-wrap: anywhere;
}

/* a date or a name instead of a figure */
.cp-detail__kpi-value--sm[b-cud7grevja] { font-size: 1.25rem; line-height: 1.3; }

.cp-detail__kpi-detail[b-cud7grevja] {
    min-height: 1rem;
    margin: 0.375rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* ---- note line and plan notice (= .cp-conv__note / .cp-conv__plan) ---- */
.cp-detail__note[b-cud7grevja] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 1rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-detail__note[b-cud7grevja]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
    color: var(--cp-primary);
}

.cp-detail__plan[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-top: 2.25rem;
    padding: 1.25rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 28%, var(--cp-border));
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-accent-fg);
}

.cp-detail__plan-icon[b-cud7grevja] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-detail__plan-body[b-cud7grevja] {
    flex: 1 1 16rem;
    min-width: 0;
}

.cp-detail__plan-title[b-cud7grevja] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-md);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-detail__plan-text[b-cud7grevja] { margin: 0.25rem 0 0; }

/* ---- grid of HomeCards (their class comes from this page, their markup from Components/Home/HomeCard) ---- */
.cp-detail__grid[b-cud7grevja] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.cp-detail__chart[b-cud7grevja] { min-height: 280px; }

.cp-detail__block[b-cud7grevja] { min-width: 0; }

/* device donut (= Home.razor.css .cp-home__donut / .cp-home__legend) */
.cp-detail__donut-wrap[b-cud7grevja] {
    display: grid;
    align-items: center;
    gap: 0.75rem 1.5rem;
}

.cp-detail__donut[b-cud7grevja] { display: block; width: 8.5rem; height: 8.5rem; margin: 0 auto; }
.cp-detail__donut-track[b-cud7grevja],
.cp-detail__donut-seg[b-cud7grevja] { fill: none; stroke-width: 16; }
.cp-detail__donut-track[b-cud7grevja] { stroke: var(--cp-bg-muted); }
.cp-detail__donut-seg[b-cud7grevja] { stroke: var(--cp-primary); }
.cp-detail__donut-value[b-cud7grevja] { font-family: var(--cp-font-heading); font-size: 15px; font-weight: 700; fill: var(--cp-text); }
.cp-detail__donut-label[b-cud7grevja] { font-size: 8px; fill: var(--cp-text-2); }

.cp-detail__legend[b-cud7grevja] { display: grid; gap: 0.375rem; margin: 0; padding: 0; list-style: none; font-size: var(--cp-text-xs); color: var(--cp-text); }
.cp-detail__legend li[b-cud7grevja] { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.cp-detail__legend li > .cp-detail__mono[b-cud7grevja] { flex: 0 0 auto; margin-left: auto; }
.cp-detail__legend-name[b-cud7grevja] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-detail__swatch[b-cud7grevja] { flex: 0 0 auto; width: 0.625rem; height: 0.625rem; border-radius: 2px; background: var(--cp-primary); }

/* rankings: green bars, as the dashboard's share bars */
.cp-detail__ranking[b-cud7grevja] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cp-detail__ranking li + li[b-cud7grevja] { margin-top: 0.875rem; }

.cp-detail__ranking-head[b-cud7grevja] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.375rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-detail__ranking-label[b-cud7grevja] {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.5rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

.cp-detail__ranking-index[b-cud7grevja] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 4px;
    background: var(--cp-bg-muted);
    font-family: var(--cp-font-mono);
    font-size: 0.625rem;
    color: var(--cp-text-2);
}

.cp-detail__bar[b-cud7grevja] {
    display: block;
    height: 0.375rem;
    overflow: hidden;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-detail__bar-fill[b-cud7grevja] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--cp-primary);
}

.cp-detail__no-data[b-cud7grevja] {
    margin: 0;
    font-size: var(--cp-text-sm);
}

/* ---- click log ---- */
.cp-detail__search[b-cud7grevja] {
    position: relative;
    display: block;
    max-width: 22rem;
    margin: 0;
}

.cp-detail__search[b-cud7grevja]  .cp-icon {
    position: absolute;
    top: 50%;
    left: 0.875rem;
    color: var(--cp-text-2);
    transform: translateY(-50%);
    pointer-events: none;
}

.cp-detail__search .form-control[b-cud7grevja] {
    height: var(--cp-btn-md);
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
}

/* the table runs edge to edge inside the card and scrolls inside it; the document never scrolls sideways */
.cp-detail__table-wrap[b-cud7grevja] {
    margin: 1rem -1.25rem 0;
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
}

.cp-detail__table[b-cud7grevja] {
    width: 100%;
    min-width: 58rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-detail__table thead[b-cud7grevja] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-detail__table th[b-cud7grevja] {
    padding: 0.875rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text-2);
}

.cp-detail__table td[b-cud7grevja] {
    padding: 0.875rem 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-detail__table tbody tr[b-cud7grevja] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-detail__table tbody tr:last-child[b-cud7grevja] { border-bottom: 0; }
.cp-detail__table tbody tr:hover[b-cud7grevja] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-detail__nowrap[b-cud7grevja] { white-space: nowrap; }

.cp-detail__time[b-cud7grevja] {
    display: block;
    margin-top: 0.125rem;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-detail__device[b-cud7grevja] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
}

.cp-detail__device[b-cud7grevja]  .cp-icon { color: var(--cp-text-2); }

/* figures as in the campaign report and conversions tables: mono, regular weight */
.cp-detail__mono[b-cud7grevja] {
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-xs);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cp-detail__muted[b-cud7grevja] { color: var(--cp-text-2); }

/* (= .cp-conv__empty) */
.cp-detail__empty[b-cud7grevja] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 2.5rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-detail__empty p[b-cud7grevja] { margin: 0.5rem 0 0; max-width: 28rem; }

.cp-detail__empty .cp-detail__empty-title[b-cud7grevja] {
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

/* (= .cp-conv__foot) */
.cp-detail__foot[b-cud7grevja] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-detail__foot p[b-cud7grevja] { margin: 0; }

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-detail__inner[b-cud7grevja] { padding-top: 3rem; }
    .cp-detail__title[b-cud7grevja] { font-size: 3rem; }
    .cp-detail__lead[b-cud7grevja] { font-size: var(--cp-text-md); }
    .cp-detail__filters[b-cud7grevja] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-detail__field--link[b-cud7grevja],
    .cp-detail__submit[b-cud7grevja] { grid-column: 1 / -1; }
    .cp-detail__submit .btn-lg[b-cud7grevja] { flex: 0 0 auto; }
    .cp-detail__donut-wrap[b-cud7grevja] { grid-template-columns: auto minmax(0, 1fr); }
}

@media (min-width: 768px) {
    /* six columns: the trend and the log take the row, the audience two halves, the rankings three thirds */
    .cp-detail__grid[b-cud7grevja] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .cp-detail__grid[b-cud7grevja]  .cp-detail__span { grid-column: span 6; }
    .cp-detail__grid[b-cud7grevja]  .cp-detail__half { grid-column: span 3; }
    .cp-detail__grid[b-cud7grevja]  .cp-detail__third { grid-column: span 2; }
}

@media (min-width: 992px) {
    .cp-detail__filters[b-cud7grevja] { grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; }
    .cp-detail__field--link[b-cud7grevja],
    .cp-detail__submit[b-cud7grevja] { grid-column: auto; }
    .cp-detail__kpis[b-cud7grevja] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
    .cp-detail__table tbody tr[b-cud7grevja] { transition: none; }
}
/* /Pages/ClickReportDomain.razor.rz.scp.css */
/* Clicks by domain (PR 05.16). Composition from the Lovable "shortlink-studio" design domain-click-report
   (same frame as Pages/Domains.razor.css and Pages/ApiKeys.razor.css); values from tokens.css. Buttons, labels, the status pill, pagination
   and the dialog frame (.cp-modal*) come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-clicks[b-34w9oneslu] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-clicks[b-34w9oneslu] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-clicks__inner[b-34w9oneslu] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header ---- */
.cp-clicks__head[b-34w9oneslu] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-clicks__eyebrow[b-34w9oneslu] { margin: 0 0 0.75rem; }

.cp-clicks__title[b-34w9oneslu] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-clicks__lead[b-34w9oneslu] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- KPI strip ---- */
.cp-clicks__kpis[b-34w9oneslu] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0 0 2.25rem;
    border-top: 0 !important;
    padding: 1.5rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-clicks__kpi[b-34w9oneslu] {
    min-width: 0;
    padding: 0 0.75rem;
}

.cp-clicks__kpi + .cp-clicks__kpi[b-34w9oneslu] { border-left: 1px solid var(--cp-border); }

.cp-clicks__kpi-label[b-34w9oneslu] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-clicks__kpi-label[b-34w9oneslu]  .cp-icon {
    display: none;
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-clicks__kpi-value[b-34w9oneslu] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

/* ---- table ---- */
.cp-clicks__table-wrap[b-34w9oneslu] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-clicks__table[b-34w9oneslu] {
    width: 100%;
    min-width: 24rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-clicks__table thead[b-34w9oneslu] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-clicks__table th[b-34w9oneslu] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-clicks__table td[b-34w9oneslu] {
    padding: 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-clicks__table tbody tr[b-34w9oneslu] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-clicks__table tbody tr:last-child[b-34w9oneslu] { border-bottom: 0; }
.cp-clicks__table tbody tr:hover[b-34w9oneslu] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-clicks__table .is-num[b-34w9oneslu] { text-align: right; }
.cp-clicks__table .is-actions[b-34w9oneslu] { text-align: right; }

.cp-clicks__empty[b-34w9oneslu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3.5rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-clicks__empty-title[b-34w9oneslu] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-clicks__foot[b-34w9oneslu] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-clicks__foot p[b-34w9oneslu] { margin: 0; }

/* ---- selected domain (header) ---- */
.cp-clicks__domain-pill[b-34w9oneslu] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-clicks__domain-pill[b-34w9oneslu]  .cp-icon { color: var(--cp-primary); }

/* ---- filter strip ---- */
.cp-clicks__filters[b-34w9oneslu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 1rem;
    margin-top: 2.25rem;
    padding: 1.5rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-clicks__field[b-34w9oneslu] { min-width: 0; }

.cp-clicks__field-label[b-34w9oneslu] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-clicks__field-label[b-34w9oneslu]  .cp-icon { color: var(--cp-text-2); }

.cp-clicks__field .form-select[b-34w9oneslu],
.cp-clicks__field[b-34w9oneslu]  input.form-control {
    height: 3rem;
    border-radius: var(--cp-radius-panel);
    background-color: var(--cp-surface);
}

.cp-clicks__submit[b-34w9oneslu] { width: 100%; }

.cp-clicks__alert[b-34w9oneslu] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

/* ---- daily detail ---- */
.cp-clicks__detail-head[b-34w9oneslu] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.cp-clicks__detail-title[b-34w9oneslu] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-clicks__detail-count[b-34w9oneslu] {
    margin-left: 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-clicks__range[b-34w9oneslu] {
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-clicks__legend[b-34w9oneslu] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-clicks__dot[b-34w9oneslu] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--cp-primary);
}

.cp-clicks__date[b-34w9oneslu] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cp-clicks__date-icon[b-34w9oneslu] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-clicks__num[b-34w9oneslu] {
    font-family: var(--cp-font-mono);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.cp-clicks__table tfoot[b-34w9oneslu] {
    border-top: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 50%, transparent);
}

.cp-clicks__table tfoot th[b-34w9oneslu] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-text);
}

.cp-clicks__table tfoot td[b-34w9oneslu] { padding: 1rem 1.25rem; }

.cp-clicks__num--total[b-34w9oneslu] { color: var(--cp-primary); }

.cp-clicks__empty p[b-34w9oneslu] { margin: 0.5rem 0 0; max-width: 28rem; }

/* ---- breakpoints ---- */
@media (min-width: 768px) {
    .cp-clicks__filters[b-34w9oneslu] { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
    .cp-clicks__submit[b-34w9oneslu] { width: auto; }
}

@media (min-width: 576px) {
    .cp-clicks__inner[b-34w9oneslu] { padding-top: 3rem; }
    .cp-clicks__title[b-34w9oneslu] { font-size: 3rem; }
    .cp-clicks__lead[b-34w9oneslu] { font-size: var(--cp-text-md); }
    .cp-clicks__kpi[b-34w9oneslu] { padding: 0 1.5rem; }
    .cp-clicks__kpi-label[b-34w9oneslu] { font-size: var(--cp-text-sm); }
    .cp-clicks__kpi-label[b-34w9oneslu]  .cp-icon { display: block; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-clicks__table tbody tr[b-34w9oneslu] { transition: none; }
}
/* /Pages/ConversionReport.razor.rz.scp.css */
/* Conversions (PR 05.29). Same formats as the clicks-by-domain view (Pages/ClickReportDomain.razor.css), rule for rule,
   so both reports read as one family: header + context pill, filter strip, KPI band attached under it, detail head,
   table frame, empty state and footer. Only what conversions add has its own rules (link cell, rate meter, exports,
   plan / info / note lines). Values from tokens.css; buttons, labels, pagination, the toast and the plan upsell come
   from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-conv[b-wyuzbzfufw] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-conv[b-wyuzbzfufw] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-conv__inner[b-wyuzbzfufw] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header (= .cp-clicks__head) ---- */
.cp-conv__head[b-wyuzbzfufw] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-conv__eyebrow[b-wyuzbzfufw] { margin: 0 0 0.75rem; }

.cp-conv__title[b-wyuzbzfufw] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-conv__lead[b-wyuzbzfufw] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* applied range (= .cp-clicks__domain-pill) */
.cp-conv__pill[b-wyuzbzfufw] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-conv__pill[b-wyuzbzfufw]  .cp-icon { color: var(--cp-primary); }

/* ---- filter strip (= .cp-clicks__filters) ---- */
.cp-conv__filters[b-wyuzbzfufw] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: 1rem;
    margin-top: 2.25rem;
    padding: 1.5rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-conv__field[b-wyuzbzfufw] { min-width: 0; }

.cp-conv__field-label[b-wyuzbzfufw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-conv__field-label[b-wyuzbzfufw]  .cp-icon { color: var(--cp-text-2); }

.cp-conv__field .form-select[b-wyuzbzfufw],
.cp-conv__field .form-control[b-wyuzbzfufw],
.cp-conv__field[b-wyuzbzfufw]  input.form-control {
    height: 3rem;
    border-radius: var(--cp-radius-panel);
    background-color: var(--cp-surface);
}

.cp-conv__submit[b-wyuzbzfufw] {
    display: flex;
    gap: 0.5rem;
}

.cp-conv__submit .btn-lg[b-wyuzbzfufw] { flex: 1 1 auto; }

.cp-conv__reset[b-wyuzbzfufw] {
    width: var(--cp-btn-lg);
    height: var(--cp-btn-lg);
}

/* (= .cp-clicks__alert) */
.cp-conv__alert[b-wyuzbzfufw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

.cp-conv__alert--block[b-wyuzbzfufw] { margin: 0 0 1.5rem; }

.cp-conv__alert-action[b-wyuzbzfufw] {
    --bs-btn-color: var(--cp-danger);
    --x-btn-color: var(--cp-danger);
    --bs-btn-hover-color: var(--cp-danger);
    --x-btn-hover-color: var(--cp-danger);
    margin-left: auto;
}

/* ---- KPI band (= .cp-clicks__kpis: attached under the filter strip, figures split by a rule) ---- */
.cp-conv__kpis[b-wyuzbzfufw] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 1.5rem;
    margin: 0 0 2.25rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-conv__kpi[b-wyuzbzfufw] {
    min-width: 0;
    padding: 0 0.75rem;
}

.cp-conv__kpi:nth-child(even)[b-wyuzbzfufw] { border-left: 1px solid var(--cp-border); }

.cp-conv__kpi-label[b-wyuzbzfufw] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-conv__kpi-label[b-wyuzbzfufw]  .cp-icon {
    display: none;
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-conv__kpi-value[b-wyuzbzfufw] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
    overflow-wrap: anywhere;
}

/* ---- notes, info and plan notice ---- */
.cp-conv__note[b-wyuzbzfufw] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 1rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-conv__note[b-wyuzbzfufw]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
    color: var(--cp-primary);
}

.cp-conv__note--foot[b-wyuzbzfufw] {
    margin: 0;
    font-size: var(--cp-text-xs);
}

/* same geometry as the alert, in the accent tone */
.cp-conv__info[b-wyuzbzfufw],
.cp-conv__plan[b-wyuzbzfufw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 28%, var(--cp-border));
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-accent-fg);
}

.cp-conv__info[b-wyuzbzfufw] { margin: 0 0 1.5rem; }

.cp-conv__info[b-wyuzbzfufw]  .cp-icon { flex: 0 0 auto; }

.cp-conv__info-link[b-wyuzbzfufw] {
    --bs-btn-color: var(--cp-accent-fg);
    --x-btn-color: var(--cp-accent-fg);
    --bs-btn-hover-color: var(--cp-accent-fg);
    --x-btn-hover-color: var(--cp-accent-fg);
    margin-left: auto;
    font-weight: 600;
}

.cp-conv__plan[b-wyuzbzfufw] {
    gap: 1rem;
    margin-top: 2.25rem;
    padding: 1.25rem;
}

.cp-conv__plan-icon[b-wyuzbzfufw] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-conv__plan-body[b-wyuzbzfufw] {
    flex: 1 1 16rem;
    min-width: 0;
}

.cp-conv__plan-title[b-wyuzbzfufw] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-md);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-conv__plan-text[b-wyuzbzfufw] { margin: 0.25rem 0 0; }

/* ---- detail head (= .cp-clicks__detail-head; the exports sit where the clicks view has its legend) ---- */
.cp-conv__detail-head[b-wyuzbzfufw] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.cp-conv__detail-title[b-wyuzbzfufw] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-conv__detail-count[b-wyuzbzfufw] {
    margin-left: 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 400;
    color: var(--cp-text-2);
}

/* (= .cp-clicks__range) */
.cp-conv__sub[b-wyuzbzfufw] {
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-conv__exports[b-wyuzbzfufw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cp-conv__detail-head[b-wyuzbzfufw]  .entitlement-gate {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
}

/* ---- table (= .cp-clicks__table*) ---- */
.cp-conv__table-wrap[b-wyuzbzfufw] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

/* five columns: the table scrolls inside its frame, the document never scrolls sideways */
.cp-conv__table[b-wyuzbzfufw] {
    width: 100%;
    min-width: 52rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-conv__table thead[b-wyuzbzfufw] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-conv__table th[b-wyuzbzfufw] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text-2);
}

.cp-conv__table td[b-wyuzbzfufw] {
    padding: 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-conv__table tbody tr[b-wyuzbzfufw] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-conv__table tbody tr:last-child[b-wyuzbzfufw] { border-bottom: 0; }
.cp-conv__table tbody tr:hover[b-wyuzbzfufw] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-conv__table .is-num[b-wyuzbzfufw] { text-align: right; }

/* link cell (= .cp-clicks__date with its icon box) */
.cp-conv__link[b-wyuzbzfufw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 16rem;
}

.cp-conv__link-icon[b-wyuzbzfufw] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-conv__link-text[b-wyuzbzfufw] { min-width: 0; }

.cp-conv__link-name[b-wyuzbzfufw] {
    max-width: 24rem;
    margin: 0;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.cp-conv__link-url[b-wyuzbzfufw] {
    margin: 0.25rem 0 0;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-xs);
    color: var(--cp-primary);
    overflow-wrap: anywhere;
}

/* figures as in the campaign report table (= .cp-report__mono / .cp-report__muted): mono, regular weight; the rate
   and the last conversion in the secondary text color */
.cp-conv__mono[b-wyuzbzfufw] {
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
}

.cp-conv__muted[b-wyuzbzfufw] { color: var(--cp-text-2); }

.cp-conv__rate[b-wyuzbzfufw] {
    width: 7rem;
    margin-left: auto;
}

.cp-conv__rate .cp-conv__mono[b-wyuzbzfufw] {
    display: block;
    text-align: right;
}

.cp-conv__meter[b-wyuzbzfufw] {
    display: block;
    height: 0.375rem;
    margin-top: 0.5rem;
    overflow: hidden;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-conv__meter-fill[b-wyuzbzfufw] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--cp-primary);
}

.cp-conv__last[b-wyuzbzfufw] { white-space: nowrap; }

.cp-conv__time[b-wyuzbzfufw] {
    display: block;
    margin-top: 0.125rem;
    font-size: var(--cp-text-xs);
}

/* (= .cp-clicks__empty) */
.cp-conv__empty[b-wyuzbzfufw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3.5rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-conv__empty p[b-wyuzbzfufw] { margin: 0.5rem 0 0; max-width: 28rem; }

.cp-conv__empty .cp-conv__empty-title[b-wyuzbzfufw] {
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

/* (= .cp-clicks__foot) */
.cp-conv__foot[b-wyuzbzfufw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-conv__foot p[b-wyuzbzfufw] { margin: 0; }

/* ---- breakpoints (same steps as the clicks view; four fields need the wider one to share a row) ---- */
@media (min-width: 576px) {
    .cp-conv__inner[b-wyuzbzfufw] { padding-top: 3rem; }
    .cp-conv__title[b-wyuzbzfufw] { font-size: 3rem; }
    .cp-conv__lead[b-wyuzbzfufw] { font-size: var(--cp-text-md); }
    .cp-conv__kpi[b-wyuzbzfufw] { padding: 0 1.5rem; }
    .cp-conv__kpi-label[b-wyuzbzfufw] { font-size: var(--cp-text-sm); }
    .cp-conv__kpi-label[b-wyuzbzfufw]  .cp-icon { display: block; }
    .cp-conv__filters[b-wyuzbzfufw] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-conv__submit[b-wyuzbzfufw] { grid-column: 1 / -1; }
    .cp-conv__submit .btn-lg[b-wyuzbzfufw] { flex: 0 0 auto; }
}

@media (min-width: 768px) {
    .cp-conv__kpis[b-wyuzbzfufw] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .cp-conv__kpi + .cp-conv__kpi[b-wyuzbzfufw] { border-left: 1px solid var(--cp-border); }
}

@media (min-width: 992px) {
    .cp-conv__filters[b-wyuzbzfufw] { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
    .cp-conv__submit[b-wyuzbzfufw] { grid-column: auto; }
}

@media (max-width: 575.98px) {
    .cp-conv__detail-head[b-wyuzbzfufw]  .entitlement-gate { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-conv__table tbody tr[b-wyuzbzfufw] { transition: none; }
}
/* /Pages/DashboardOtp.razor.rz.scp.css */
/* OTP dashboard (PR 05.34) in the formats of the shortlink dashboard: the rules below are Pages/Home.razor.css and
   Components/Home/HomeHero.razor.css value for value under the .cp-otpd prefix (scoped CSS cannot be shared); module
   cards are Components/Home/HomeCard. Only the OTP pieces at the end (outcomes, quality, 100 % columns, recipient)
   are new, built from the same tokens. Values from tokens.css. */

.cp-otpd[b-d2lhm3lomq] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    --cp-otpd-ink: #096C4B;
    --cp-otpd-ink-fg: #F8FAFC;
    --cp-otpd-warn: #F5A524;
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="dark"] .cp-otpd[b-d2lhm3lomq] { --cp-otpd-ink: #005C3E; }

:root[data-bs-theme="high-contrast"] .cp-otpd[b-d2lhm3lomq] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
    --cp-otpd-ink: #000000;
    --cp-otpd-ink-fg: #FFFFFF;
}

.cp-otpd__inner[b-d2lhm3lomq] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-top: 1.5rem;
    padding-bottom: 4rem;
}

.cp-otpd__num[b-d2lhm3lomq] { font-family: var(--cp-font-mono); font-variant-numeric: tabular-nums; }
.cp-otpd__muted[b-d2lhm3lomq] { color: var(--cp-text-2); }

/* ---- skeletons (= .cp-home__skeleton) ---- */
.cp-otpd__skeleton[b-d2lhm3lomq] {
    display: block;
    border-radius: var(--cp-radius-panel);
    background: linear-gradient(90deg, var(--cp-bg-muted) 0%, var(--cp-surface-2) 50%, var(--cp-bg-muted) 100%);
    background-size: 200% 100%;
    animation: cp-otpd-shimmer-b-d2lhm3lomq 1.4s linear infinite;
}

.cp-otpd__skeleton--kpi[b-d2lhm3lomq] { width: 4rem; height: 2rem; margin-top: 0.75rem; }
.cp-otpd__skeleton--line[b-d2lhm3lomq] { width: 75%; height: 0.75rem; margin-top: 0.5rem; }
.cp-otpd__skeleton--chart[b-d2lhm3lomq] { position: absolute; inset: 0; }

@keyframes cp-otpd-shimmer-b-d2lhm3lomq { to { background-position: -200% 0; } }

/* ---- hero (= Components/Home/HomeHero.razor.css) ---- */
.cp-otpd-hero[b-d2lhm3lomq] {
    position: relative;
    overflow: hidden;
    padding: 1.5rem;
    border-radius: 1.5rem;
    background: var(--cp-otpd-ink);
    color: var(--cp-otpd-ink-fg);
    box-shadow: var(--cp-shadow-elevated);
}

:root[data-bs-theme="high-contrast"] .cp-otpd-hero[b-d2lhm3lomq] { border: 1px solid var(--cp-border); }

.cp-otpd-hero__route[b-d2lhm3lomq] {
    position: absolute;
    inset: 0;
    display: none;
    width: 100%;
    height: 100%;
    color: var(--cp-otpd-ink-fg);
    pointer-events: none;
    /* the route is shown only while the pulse travels it (5 s): it fades away in the last second */
    animation: cp-otpd-hero-route-out-b-d2lhm3lomq 1s linear 4s both;
}

@keyframes cp-otpd-hero-route-out-b-d2lhm3lomq { to { opacity: 0; } }

.cp-otpd-hero__route-path[b-d2lhm3lomq] {
    fill: none;
    stroke: currentColor;
    stroke-opacity: 0.35;
    stroke-width: 2;
    stroke-dasharray: 6 8;
    animation: cp-otpd-hero-dash-b-d2lhm3lomq 5s both;
}

.cp-otpd-hero__route-pulse[b-d2lhm3lomq] { fill: currentColor; }
.cp-otpd-hero__route-pulse--halo[b-d2lhm3lomq] { fill-opacity: 0.15; }

@keyframes cp-otpd-hero-dash-b-d2lhm3lomq {
    0% { stroke-dashoffset: 0; animation-timing-function: linear; }
    80% { stroke-dashoffset: -70; animation-timing-function: cubic-bezier(0.5, 1, 0.89, 1); }
    100% { stroke-dashoffset: -78.75; }
}

.cp-otpd-hero__body[b-d2lhm3lomq] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.cp-otpd-hero__eyebrow[b-d2lhm3lomq] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    opacity: 0.9;
}

.cp-otpd-hero__skeleton[b-d2lhm3lomq] {
    display: block;
    width: 15rem;
    max-width: 100%;
    height: 4rem;
    margin-top: 0.75rem;
    border-radius: var(--cp-radius-panel);
    background: rgba(255, 255, 255, 0.2);
}

.cp-otpd-hero__figure[b-d2lhm3lomq] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 1rem;
    margin: 0.5rem 0 0;
}

.cp-otpd-hero__number[b-d2lhm3lomq] {
    font-family: var(--cp-font-heading);
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--cp-tracking-heading);
}

.cp-otpd-hero__caption[b-d2lhm3lomq] { font-size: var(--cp-text-md); opacity: 0.9; }

.cp-otpd-hero__meta[b-d2lhm3lomq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-sm);
}

.cp-otpd-hero__meta > span:last-child[b-d2lhm3lomq] { opacity: 0.9; }

.cp-otpd-hero__delta[b-d2lhm3lomq] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.625rem;
    border-radius: var(--cp-radius-pill);
    background: rgba(255, 255, 255, 0.15);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.cp-otpd-hero__side[b-d2lhm3lomq] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cp-otpd-hero__star[b-d2lhm3lomq] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    align-self: flex-start;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    border-radius: var(--cp-radius-pill);
    background: rgba(255, 255, 255, 0.15);
    font-size: var(--cp-text-sm);
}

.cp-otpd-hero__num[b-d2lhm3lomq] {
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
    opacity: 0.9;
}

.cp-otpd-hero__create[b-d2lhm3lomq] {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-otpd-ink-fg);
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-otpd-ink);
    text-decoration: none;
    box-shadow: var(--cp-shadow-action);
    transition: transform var(--cp-motion-fast) var(--cp-ease);
}

.cp-otpd-hero__create:hover[b-d2lhm3lomq] { transform: translateY(-2px); color: var(--cp-otpd-ink); }

:root[data-bs-theme="high-contrast"] .cp-otpd-hero__create[b-d2lhm3lomq] { background: #27ED74; color: #000; }

@media (min-width: 576px) {
    .cp-otpd-hero[b-d2lhm3lomq] { padding: 2rem; }
    .cp-otpd-hero__number[b-d2lhm3lomq] { font-size: 4.5rem; }
}

@media (min-width: 768px) {
    .cp-otpd-hero__route[b-d2lhm3lomq] { display: block; }

    .cp-otpd-hero__body[b-d2lhm3lomq] {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
    }

    .cp-otpd-hero__side[b-d2lhm3lomq] { align-items: flex-end; }
    .cp-otpd-hero__star[b-d2lhm3lomq],
    .cp-otpd-hero__create[b-d2lhm3lomq] { align-self: auto; }
}

/* ---- filters (= .cp-home__filters) ---- */
.cp-otpd__filters[b-d2lhm3lomq] {
    position: sticky;
    top: calc(var(--cp-nav-h) + 0.5rem);
    z-index: 20;
}

.cp-otpd__filters-toggle[b-d2lhm3lomq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.625rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-otpd__filters-toggle > span:first-child[b-d2lhm3lomq] { display: inline-flex; align-items: center; gap: 0.5rem; }

.cp-otpd__filter-bar[b-d2lhm3lomq] {
    display: none;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.25rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
}

.cp-otpd__filter-bar.is-open[b-d2lhm3lomq] { display: flex; }

/* every control in the bar is 40 px tall so the row reads as one strip */
.cp-otpd__segmented[b-d2lhm3lomq] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.125rem;
    min-height: var(--cp-btn-md);
    padding: 3px;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-otpd__segmented button[b-d2lhm3lomq] {
    height: calc(var(--cp-btn-md) - 8px);
    padding: 0 0.75rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text-2);
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-otpd__segmented button:hover[b-d2lhm3lomq] { color: var(--cp-text); }

.cp-otpd__segmented button.is-active[b-d2lhm3lomq] {
    background: var(--cp-surface);
    color: var(--cp-text);
    box-shadow: var(--cp-shadow-card);
}

.cp-otpd__label-short[b-d2lhm3lomq] { display: none; }

.cp-otpd__segmented--sm[b-d2lhm3lomq] { min-height: 0; }
.cp-otpd__segmented--sm button[b-d2lhm3lomq] { height: 1.875rem; }

.cp-otpd__select[b-d2lhm3lomq] {
    width: auto;
    min-width: 0;
    max-width: 14rem;
    height: var(--cp-btn-md);
    min-height: 0;
    padding: 0 2.25rem 0 1rem;
    border-radius: var(--cp-radius-pill);
    font-size: var(--cp-text-sm);
    background-position: right 0.875rem center;
}

.cp-otpd__filter-end[b-d2lhm3lomq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
}

.cp-otpd__history[b-d2lhm3lomq] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0 0.5rem;
    font-size: var(--cp-text-xs);
    white-space: nowrap;
    color: var(--cp-text-2);
}

.cp-otpd__reset[b-d2lhm3lomq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text-2);
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-otpd__reset:hover[b-d2lhm3lomq] { background: var(--cp-bg-muted); color: var(--cp-text); }

/* ---- KPI (= .cp-home__kpis / .cp-home__kpi) ---- */
.cp-otpd__kpis[b-d2lhm3lomq] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.cp-otpd__kpi[b-d2lhm3lomq] {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-otpd__kpi-label[b-d2lhm3lomq] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-otpd__kpi-value[b-d2lhm3lomq] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-otpd__kpi-sub[b-d2lhm3lomq] { margin: 0; font-size: var(--cp-text-xs); color: var(--cp-text-2); }
.cp-otpd__kpi-sub.is-good[b-d2lhm3lomq] { color: var(--cp-success-fg); }

/* ---- panoramic card (= .cp-home__card) ---- */
.cp-otpd__card[b-d2lhm3lomq] {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-otpd__card-head[b-d2lhm3lomq] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.cp-otpd__card-title[b-d2lhm3lomq] { margin: 0; font-size: var(--cp-text-md); font-weight: 700; letter-spacing: 0; color: var(--cp-text); }
.cp-otpd__card-title--lg[b-d2lhm3lomq] { font-size: var(--cp-text-lg); }
.cp-otpd__card-desc[b-d2lhm3lomq] { margin: 0.125rem 0 0; font-size: var(--cp-text-sm); color: var(--cp-text-2); }

.cp-otpd__chart[b-d2lhm3lomq] { position: relative; min-height: 15rem; margin-top: 0.75rem; }
.cp-otpd__chart--flush[b-d2lhm3lomq] { margin-top: 0; }

.cp-otpd__chart-tools[b-d2lhm3lomq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

/* scale under the weekday × hour heatmap: the same steps as HEAT_STEPS in js/home-dashboard.js */
.cp-otpd__heat-legend[b-d2lhm3lomq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem 0.375rem;
    margin-top: 0.25rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-otpd__heat-scale[b-d2lhm3lomq] { display: inline-flex; gap: 2px; }
.cp-otpd__heat-scale > span[b-d2lhm3lomq] { width: 0.875rem; height: 0.625rem; border-radius: 2px; background: var(--cp-bg-muted); }
.cp-otpd__heat-scale > span:nth-child(2)[b-d2lhm3lomq] { background: color-mix(in srgb, var(--cp-primary) 30%, var(--cp-surface)); }
.cp-otpd__heat-scale > span:nth-child(3)[b-d2lhm3lomq] { background: color-mix(in srgb, var(--cp-primary) 52%, var(--cp-surface)); }
.cp-otpd__heat-scale > span:nth-child(4)[b-d2lhm3lomq] { background: color-mix(in srgb, var(--cp-primary) 76%, var(--cp-surface)); }
.cp-otpd__heat-scale > span:nth-child(5)[b-d2lhm3lomq] { background: var(--cp-primary); }
.cp-otpd__heat-max[b-d2lhm3lomq] { margin-left: 0.375rem; }

/* ---- grid (= .cp-home__grid; each cell is the HomeModule wrapper: a query container that stretches its card) ---- */
.cp-otpd__grid[b-d2lhm3lomq] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
}

.cp-otpd__cell[b-d2lhm3lomq] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    container-type: inline-size;
}

@media (min-width: 992px) {
    .cp-otpd__grid[b-d2lhm3lomq] { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .cp-otpd__cell--4[b-d2lhm3lomq] { grid-column: span 4; }
    .cp-otpd__cell--5[b-d2lhm3lomq] { grid-column: span 5; }
    .cp-otpd__cell--7[b-d2lhm3lomq] { grid-column: span 7; }
    .cp-otpd__cell--8[b-d2lhm3lomq] { grid-column: span 8; }
    .cp-otpd__cell--12[b-d2lhm3lomq] { grid-column: span 12; }
}

/* ---- bars (= .cp-home__bar) ---- */
.cp-otpd__bar[b-d2lhm3lomq] {
    display: block;
    height: 0.625rem;
    overflow: hidden;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-otpd__bar > span[b-d2lhm3lomq] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--cp-primary);
    transform-origin: left;
    animation: cp-otpd-grow-b-d2lhm3lomq 0.9s var(--cp-ease) both;
}

.cp-otpd__bar > span.is-warn[b-d2lhm3lomq] { background: var(--cp-otpd-warn); }
.cp-otpd__bar--plan[b-d2lhm3lomq] { height: 0.625rem; margin-top: 0.375rem; }

@keyframes cp-otpd-grow-b-d2lhm3lomq { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.cp-otpd__chip-btn[b-d2lhm3lomq] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.75rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
    text-decoration: none;
    white-space: nowrap;
}

.cp-otpd__chip-btn:hover[b-d2lhm3lomq] { color: var(--cp-text); background: var(--cp-bg-muted); }
.cp-otpd__chip-btn--accent[b-d2lhm3lomq] { font-weight: 600; color: var(--cp-primary); }
.cp-otpd__chip-btn--accent:hover[b-d2lhm3lomq] { color: var(--cp-primary); background: var(--cp-accent-bg); }

/* ---- mini titles, donut and legend (= .cp-home__mini-title / .cp-home__donut / .cp-home__legend) ---- */
.cp-otpd__mini-title[b-d2lhm3lomq] {
    margin: 0 0 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    letter-spacing: var(--cp-tracking-label);
    text-transform: uppercase;
    color: var(--cp-text-2);
}

.cp-otpd__donut[b-d2lhm3lomq] { display: block; width: 7rem; height: 7rem; margin: 0 auto; }
.cp-otpd__donut-track[b-d2lhm3lomq],
.cp-otpd__donut-seg[b-d2lhm3lomq] { fill: none; stroke-width: 16; }
.cp-otpd__donut-track[b-d2lhm3lomq] { stroke: var(--cp-bg-muted); }
.cp-otpd__donut-seg[b-d2lhm3lomq] { stroke: var(--cp-primary); }

.cp-otpd__donut-value[b-d2lhm3lomq] { font-family: var(--cp-font-heading); font-size: 15px; font-weight: 700; fill: var(--cp-text); }
.cp-otpd__donut-label[b-d2lhm3lomq] { font-size: 8px; fill: var(--cp-text-2); }

.cp-otpd__legend[b-d2lhm3lomq] { display: grid; gap: 0.25rem; margin: 0.5rem 0 0; padding: 0; list-style: none; font-size: var(--cp-text-xs); color: var(--cp-text); }
.cp-otpd__legend li[b-d2lhm3lomq] { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.cp-otpd__legend li > .cp-otpd__num[b-d2lhm3lomq] { flex: 0 0 auto; margin-left: auto; }
.cp-otpd__legend-name[b-d2lhm3lomq] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-otpd__swatch[b-d2lhm3lomq] { flex: 0 0 auto; width: 0.625rem; height: 0.625rem; border-radius: 2px; background: var(--cp-primary); }

/* the ring beside its legend when the card is wide enough (= .cp-home__share-donut) */
.cp-otpd__share-donut[b-d2lhm3lomq] { display: grid; align-items: center; gap: 0.5rem 1.5rem; }
.cp-otpd__share-donut .cp-otpd__donut[b-d2lhm3lomq] { width: 8.5rem; height: 8.5rem; }

@container (min-width: 26rem) {
    .cp-otpd__share-donut[b-d2lhm3lomq] { grid-template-columns: auto minmax(0, 1fr); }
    .cp-otpd__share-donut .cp-otpd__legend[b-d2lhm3lomq] { margin: 0; }
}

/* ---- plan (= .cp-home__plan) ---- */
.cp-otpd__plan[b-d2lhm3lomq] { display: grid; gap: 1rem; font-size: var(--cp-text-sm); }
.cp-otpd__plan p[b-d2lhm3lomq] { margin: 0; }
.cp-otpd__plan-row[b-d2lhm3lomq] { display: flex; justify-content: space-between; gap: 0.5rem; color: var(--cp-text); }
.cp-otpd__plan-cta[b-d2lhm3lomq] { width: 100%; justify-content: center; }

.cp-otpd__plan .cp-otpd__plan-projection[b-d2lhm3lomq] { margin-top: 0.5rem; font-size: var(--cp-text-xs); color: var(--cp-text-2); }

.cp-otpd__plan .cp-otpd__plan-warn[b-d2lhm3lomq] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding: 0.625rem 0.75rem;
    border-radius: var(--cp-radius-panel);
    background: var(--cp-warning-bg);
    font-size: var(--cp-text-xs);
    color: var(--cp-warning-fg);
}

.cp-otpd__plan-warn[b-d2lhm3lomq]  .cp-icon { flex: 0 0 auto; margin-top: 1px; }

/* ---- recent table (= .cp-home__search / .cp-home__table) ---- */
.cp-otpd__search[b-d2lhm3lomq] {
    position: relative;
    display: block;
    max-width: 20rem;
    margin-bottom: 0.75rem;
}

.cp-otpd__search[b-d2lhm3lomq]  .cp-icon {
    position: absolute;
    left: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cp-text-2);
    pointer-events: none;
}

.cp-otpd__search .form-control[b-d2lhm3lomq] {
    height: var(--cp-btn-md);
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
}

.cp-otpd__table-scroll[b-d2lhm3lomq] { margin: 0 -1.25rem; padding: 0 1.25rem; overflow-x: auto; }

.cp-otpd__table[b-d2lhm3lomq] {
    width: 100%;
    min-width: 51rem;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: var(--cp-text-sm);
}

.cp-otpd__table th[b-d2lhm3lomq] {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--cp-border);
    font-size: var(--cp-text-xs);
    font-weight: 500;
    text-align: left;
    color: var(--cp-text-2);
}

.cp-otpd__table th.is-recipient[b-d2lhm3lomq] { width: 26%; }

.cp-otpd__table td[b-d2lhm3lomq] {
    padding: 0.625rem 0.5rem 0.625rem 0;
    border-bottom: 1px solid var(--cp-border);
    font-size: var(--cp-text-xs);
    vertical-align: middle;
}

.cp-otpd__table tr:last-child td[b-d2lhm3lomq] { border-bottom: 0; }

.cp-otpd__no-results[b-d2lhm3lomq] { padding: 1.5rem 0; text-align: center; color: var(--cp-text-2); }

/* ---- empty (= .cp-home__empty) ---- */
.cp-otpd__empty[b-d2lhm3lomq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2.5rem;
    border: 1px dashed var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    text-align: center;
}

.cp-otpd__empty-icon[b-d2lhm3lomq] {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-otpd__empty-title[b-d2lhm3lomq] { margin: 1rem 0 0; font-size: 1.25rem; font-weight: 700; color: var(--cp-text); }
.cp-otpd__empty-lead[b-d2lhm3lomq] { max-width: 24rem; margin: 0.25rem 0 1.25rem; font-size: var(--cp-text-sm); color: var(--cp-text-2); }
.cp-otpd__empty .btn[b-d2lhm3lomq] { display: inline-flex; align-items: center; gap: 0.5rem; }

/* ---- OTP pieces (same tokens and shapes as the rules above) ---- */
.cp-otpd__note[b-d2lhm3lomq] { margin: 0.75rem 0 0; font-size: var(--cp-text-xs); color: var(--cp-text-2); }
.cp-otpd__plan .cp-otpd__note[b-d2lhm3lomq] { margin: 0; }

/* outcome of each code: the share bars of the audience card, one tone per outcome (the label carries the name) */
.cp-otpd__outcomes[b-d2lhm3lomq] { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; font-size: var(--cp-text-sm); }
.cp-otpd__outcomes li > div[b-d2lhm3lomq] { display: flex; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.375rem; color: var(--cp-text); }
.cp-otpd__outcomes li > div > span:first-child[b-d2lhm3lomq] { display: inline-flex; align-items: center; gap: 0.5rem; min-width: 0; }
.cp-otpd__outcomes .cp-otpd__num[b-d2lhm3lomq] { flex: 0 0 auto; font-size: var(--cp-text-xs); }

.cp-otpd__swatch.is-active[b-d2lhm3lomq],
.cp-otpd__bar > span.is-active[b-d2lhm3lomq],
.cp-otpd__stack-col > .is-active[b-d2lhm3lomq] { background: color-mix(in srgb, var(--cp-primary) 35%, var(--cp-surface)); }
.cp-otpd__swatch.is-expired[b-d2lhm3lomq],
.cp-otpd__bar > span.is-expired[b-d2lhm3lomq],
.cp-otpd__stack-col > .is-expired[b-d2lhm3lomq] { background: var(--cp-otpd-warn); }
.cp-otpd__swatch.is-failed[b-d2lhm3lomq],
.cp-otpd__bar > span.is-failed[b-d2lhm3lomq],
.cp-otpd__stack-col > .is-failed[b-d2lhm3lomq] { background: var(--cp-danger); }

/* verification quality: the rate as the dashboard's ring beside the times */
.cp-otpd__quality[b-d2lhm3lomq] { display: grid; align-items: center; gap: 1rem 1.5rem; }
.cp-otpd__quality .cp-otpd__donut[b-d2lhm3lomq] { width: 8.5rem; height: 8.5rem; }

@container (min-width: 30rem) {
    .cp-otpd__quality[b-d2lhm3lomq] { grid-template-columns: auto minmax(0, 1fr); }
}

.cp-otpd__stats[b-d2lhm3lomq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 0.5rem;
    margin: 0;
}

.cp-otpd__stats > div[b-d2lhm3lomq] {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
    padding: 0.625rem 0.75rem;
    border-radius: var(--cp-radius-panel);
    background: var(--cp-bg-muted);
}

.cp-otpd__stats dt[b-d2lhm3lomq] { font-size: var(--cp-text-xs); font-weight: 500; color: var(--cp-text-2); }
.cp-otpd__stats dd[b-d2lhm3lomq] { margin: 0; font-size: var(--cp-text-md); font-weight: 600; color: var(--cp-text); }

.cp-otpd__bench[b-d2lhm3lomq] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--cp-border);
}

/* 100 % columns per bucket: verified at the bottom, then still valid, expired and failed */
.cp-otpd__stack[b-d2lhm3lomq] {
    display: flex;
    align-items: stretch;
    gap: 3px;
    height: 10rem;
}

.cp-otpd__stack-col[b-d2lhm3lomq] {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    justify-content: flex-end;
    min-width: 0;
    overflow: hidden;
    border-radius: 0.375rem;
    background: var(--cp-bg-muted);
}

.cp-otpd__stack-col > span[b-d2lhm3lomq] { display: block; flex: 0 0 auto; }
.cp-otpd__stack-col > .is-verified[b-d2lhm3lomq] { background: var(--cp-primary); }

.cp-otpd__stack-axis[b-d2lhm3lomq] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.375rem;
    font-family: var(--cp-font-mono);
    font-size: 11px;
    color: var(--cp-text-2);
}

.cp-otpd__stack-legend[b-d2lhm3lomq] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin: 0.75rem 0 0;
    padding: 0;
    list-style: none;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-otpd__stack-legend li[b-d2lhm3lomq] { display: inline-flex; align-items: center; gap: 0.375rem; }

/* recent activity */
.cp-otpd__recipient[b-d2lhm3lomq] { font-size: var(--cp-text-sm); font-weight: 500; color: var(--cp-text); }
.cp-otpd__channel[b-d2lhm3lomq] { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--cp-text); }
.cp-otpd__channel[b-d2lhm3lomq]  .cp-icon { color: var(--cp-text-2); }

/* ---- breakpoints (= Home.razor.css) ---- */
@media (min-width: 768px) {
    .cp-otpd__filters-toggle[b-d2lhm3lomq] { display: none; }

    /* tablets: the bar may wrap, so it keeps rounded corners instead of a pill that would deform */
    .cp-otpd__filter-bar[b-d2lhm3lomq],
    .cp-otpd__filter-bar.is-open[b-d2lhm3lomq] {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem;
        margin-top: 0;
        padding: 0.375rem;
        border-radius: 1.25rem;
    }

    .cp-otpd__filter-end[b-d2lhm3lomq] { margin-left: auto; }

    /* only the icon until there is room for the label */
    .cp-otpd__reset[b-d2lhm3lomq] { width: var(--cp-btn-md); padding: 0; }
    .cp-otpd__reset-label[b-d2lhm3lomq] { display: none; }
}

/* wide screens: everything fits on one line, so the bar becomes a pill */
@media (min-width: 1200px) {
    .cp-otpd__filter-bar[b-d2lhm3lomq],
    .cp-otpd__filter-bar.is-open[b-d2lhm3lomq] {
        flex-wrap: nowrap;
        border-radius: var(--cp-radius-pill);
    }
}

@media (min-width: 1400px) {
    .cp-otpd__reset[b-d2lhm3lomq] { width: auto; padding: 0 0.875rem; }
    .cp-otpd__reset-label[b-d2lhm3lomq] { display: inline; }
}

@media (min-width: 992px) {
    .cp-otpd__kpis[b-d2lhm3lomq] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .cp-otpd__filter-bar .cp-otpd__select[b-d2lhm3lomq] { width: 100%; max-width: none; }
    .cp-otpd__filter-bar[b-d2lhm3lomq]  .cp-otpd__dates { width: 100%; }

    /* four equal segments that shrink with the screen instead of pushing the card wider */
    .cp-otpd__filter-bar .cp-otpd__segmented[b-d2lhm3lomq] {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
    }

    .cp-otpd__filter-bar .cp-otpd__segmented button[b-d2lhm3lomq] {
        min-width: 0;
        padding: 0 0.25rem;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 13px;
    }

    /* the full "Custom" label stays for assistive tech; phones show the short one */
    .cp-otpd__label-full[b-d2lhm3lomq] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .cp-otpd__label-short[b-d2lhm3lomq] { display: inline; }

    .cp-otpd__filters-toggle > span:last-child[b-d2lhm3lomq] {
        min-width: 0;
        margin-left: 0.75rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cp-otpd__skeleton[b-d2lhm3lomq],
    .cp-otpd__bar > span[b-d2lhm3lomq] { animation: none; }
    .cp-otpd-hero__route-path[b-d2lhm3lomq] { animation: none; }
    .cp-otpd-hero__route-pulse[b-d2lhm3lomq] { display: none; }
    .cp-otpd-hero__create:hover[b-d2lhm3lomq] { transform: none; }
}
/* /Pages/DataRetention.razor.rz.scp.css */
/* Data retention view (PR 05.32). Composition from Lovable "shortlink-studio" src/routes/data-retention.tsx (commit
   7f70ec9) on the frame of the account views: header, eyebrow, table and empty-state rules copied value-for-value
   from Pages/ApiKeys.razor.css, KPI cards from Pages/Home.razor.css (.cp-home__kpi). Values from tokens.css; labels,
   tags, buttons and the empty state come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-retention[b-x755prs8j5] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-retention[b-x755prs8j5] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-retention__inner[b-x755prs8j5] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header ---- */
.cp-retention__head[b-x755prs8j5] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-retention__head-text[b-x755prs8j5] { max-width: 42rem; }

.cp-retention__eyebrow[b-x755prs8j5] { margin: 0 0 0.75rem; }

.cp-retention__title[b-x755prs8j5] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-retention__lead[b-x755prs8j5] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-retention__privacy[b-x755prs8j5] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 1.25rem 0 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-retention__privacy[b-x755prs8j5]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.0625rem;
}

/* loading / load error */
.cp-retention__state[b-x755prs8j5] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-top: 2.5rem;
    padding: 3rem 1.25rem;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- sections ---- */
.cp-retention__section[b-x755prs8j5] { margin-top: 3rem; }

.cp-retention__section:first-of-type[b-x755prs8j5] {
    margin-top: 2.5rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--cp-border);
}

.cp-retention__section-head[b-x755prs8j5] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.cp-retention__section-head.is-split[b-x755prs8j5] {
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.cp-retention__section-head.is-split > .cp-retention__section-head[b-x755prs8j5] { margin-bottom: 0; }

.cp-retention__section-icon[b-x755prs8j5] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-surface);
    color: var(--cp-primary);
}

.cp-retention__section-title[b-x755prs8j5] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-retention__section-lead[b-x755prs8j5] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-retention__count[b-x755prs8j5] {
    margin: 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* ---- policy band (Lovable: border-y primary/20, bg-accent/60) ---- */
.cp-retention__band[b-x755prs8j5] {
    display: grid;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    padding: 1.5rem 1.25rem;
    border-top: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    background: color-mix(in srgb, var(--cp-accent-bg) 60%, transparent);
}

.cp-retention__plan[b-x755prs8j5] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.25rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    color: var(--cp-primary);
}

.cp-retention__band-title[b-x755prs8j5] {
    margin: 0.75rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 600;
    color: var(--cp-text);
}

.cp-retention__band-text[b-x755prs8j5] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-retention__band-figure.is-split[b-x755prs8j5] {
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
}

.cp-retention__band-value[b-x755prs8j5] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 600;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-retention__band-value.is-primary[b-x755prs8j5] {
    font-size: 2.25rem;
    color: var(--cp-primary);
}

.cp-retention__band-caption[b-x755prs8j5] {
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-retention__band-access[b-x755prs8j5] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    grid-column: 1 / -1;
    margin: 0;
    padding-top: 1rem;
    border-top: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2-strong);
}

.cp-retention__band-access[b-x755prs8j5]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.1875rem;
    color: var(--cp-primary);
}

/* ---- category list: one row per scope; stacked blocks with their own labels on mobile ---- */
.cp-retention__list[b-x755prs8j5] {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-retention__list-head[b-x755prs8j5] { display: none; }

.cp-retention__row[b-x755prs8j5] {
    display: grid;
    gap: 0.875rem;
    padding: 1.25rem 1rem;
    border-bottom: 1px solid var(--cp-border);
}

.cp-retention__row:last-child[b-x755prs8j5] { border-bottom: 0; }

.cp-retention__cat[b-x755prs8j5] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.cp-retention__cat-icon[b-x755prs8j5] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-retention__cat-text[b-x755prs8j5] { min-width: 0; }

.cp-retention__cat-name[b-x755prs8j5] {
    margin: 0;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-text);
}

.cp-retention__cat-desc[b-x755prs8j5] {
    margin: 0.375rem 0 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-retention__cell[b-x755prs8j5] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding-left: 3.25rem;
}

.cp-retention__cell-label[b-x755prs8j5] {
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-retention__treatment[b-x755prs8j5] {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.25rem 0.625rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2-strong);
}

.cp-retention__treatment.is-accent[b-x755prs8j5] {
    border-color: color-mix(in srgb, var(--cp-primary) 20%, transparent);
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-retention__window[b-x755prs8j5] {
    margin: 0;
    font-size: var(--cp-text-sm);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-retention__grace[b-x755prs8j5],
.cp-retention__cutoff[b-x755prs8j5],
.cp-retention__recorded-extra[b-x755prs8j5] {
    margin: 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-retention__recorded[b-x755prs8j5] {
    margin: 0;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-retention__recorded span[b-x755prs8j5] {
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-retention__recorded.is-zero[b-x755prs8j5] { color: var(--cp-text-2); }

/* notes under the list (Lovable: text-xs muted with the info icon) */
.cp-retention__notes[b-x755prs8j5] {
    display: grid;
    gap: 0.5rem;
    margin-top: 1rem;
}

.cp-retention__notes p[b-x755prs8j5],
.cp-retention__footnote[b-x755prs8j5] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-retention__footnote[b-x755prs8j5] { margin-top: 1rem; }

.cp-retention__notes[b-x755prs8j5]  .cp-icon,
.cp-retention__footnote[b-x755prs8j5]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.0625rem;
}

/* ---- summary: the dashboard's white KPI cards (Home .cp-home__kpi) ---- */
.cp-retention__kpis[b-x755prs8j5] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.75rem;
}

.cp-retention__kpi[b-x755prs8j5] {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-retention__kpi-label[b-x755prs8j5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-retention__kpi-label[b-x755prs8j5]  .cp-icon {
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-retention__kpi-value[b-x755prs8j5] {
    margin: 0.75rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-retention__kpi-value.is-date[b-x755prs8j5] { font-size: var(--cp-text-lg); }

.cp-retention__kpi-sub[b-x755prs8j5] {
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

/* empty sections sit on the same surface as the tables */
.cp-retention__panel[b-x755prs8j5] {
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

/* ---- history table (ApiKeys table rules) ---- */
.cp-retention__table-wrap[b-x755prs8j5] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-retention__table[b-x755prs8j5] {
    width: 100%;
    min-width: 42rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-retention__table thead[b-x755prs8j5] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-retention__table th[b-x755prs8j5] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-retention__table td[b-x755prs8j5],
.cp-retention__table tbody th[b-x755prs8j5] {
    padding: 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-retention__table tbody tr[b-x755prs8j5] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-retention__table tbody tr:last-child[b-x755prs8j5] { border-bottom: 0; }
.cp-retention__table tbody tr:hover[b-x755prs8j5] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }
.cp-retention__table tbody tr.is-open[b-x755prs8j5] { border-bottom: 0; }

.cp-retention__table .is-num[b-x755prs8j5] {
    text-align: right;
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
}

.cp-retention__table thead .is-num[b-x755prs8j5] { font-family: var(--cp-font-body); }
.cp-retention__table .is-zero[b-x755prs8j5] { color: var(--cp-text-2); }
.cp-retention__table .is-actions[b-x755prs8j5] { width: 3.5rem; text-align: right; }

.cp-retention__table tbody th[b-x755prs8j5] { font-weight: 500; }

.cp-retention__run-date[b-x755prs8j5] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text);
}

.cp-retention__run-time[b-x755prs8j5] {
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-xs);
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-retention__tags[b-x755prs8j5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}

.cp-retention__run-detail td[b-x755prs8j5] { padding-top: 0; }

.cp-retention__run-detail:hover[b-x755prs8j5] { background: transparent !important; }

.cp-retention__detail[b-x755prs8j5] {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0.875rem 1rem;
    list-style: none;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-bg);
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-retention__detail li[b-x755prs8j5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1.25rem;
}

.cp-retention__detail strong[b-x755prs8j5] {
    font-family: var(--cp-font-mono);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-retention__detail-name[b-x755prs8j5] {
    min-width: 10rem;
    font-weight: 600;
    color: var(--cp-text);
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-retention__inner[b-x755prs8j5] { padding-top: 3rem; }
    .cp-retention__title[b-x755prs8j5] { font-size: 3rem; }
    .cp-retention__lead[b-x755prs8j5] { font-size: var(--cp-text-md); }
    .cp-retention__band[b-x755prs8j5] { padding: 1.5rem; }
    .cp-retention__kpis[b-x755prs8j5] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
    .cp-retention__band[b-x755prs8j5] {
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
        column-gap: 2.5rem;
    }

    .cp-retention__band-figure.is-split[b-x755prs8j5] {
        padding-top: 0;
        padding-left: 2rem;
        border-top: 0;
        border-left: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    }
}

/* Tablet: the category on its own line, its three cells side by side under the text, each with its label. The four
   columns wait until 992 px: at 768 px the fixed columns left the category ~32 px for its name (Codex F3). */
@media (min-width: 576px) and (max-width: 991.98px) {
    .cp-retention__row[b-x755prs8j5] {
        grid-template-columns: 2.375rem repeat(3, minmax(0, 1fr));
        column-gap: 0.875rem;
        padding: 1.25rem 1.5rem;
    }

    .cp-retention__cat[b-x755prs8j5] { grid-column: 1 / -1; }
    .cp-retention__cell[b-x755prs8j5] { padding-left: 0; }
    .cp-retention__row > :nth-child(2)[b-x755prs8j5] { grid-column: 2; }
}

@media (min-width: 992px) {
    .cp-retention__list-head[b-x755prs8j5],
    .cp-retention__row[b-x755prs8j5] {
        grid-template-columns: minmax(0, 1fr) 9rem 13rem 11rem;
        align-items: center;
        gap: 1.25rem;
    }

    .cp-retention__list-head[b-x755prs8j5] {
        display: grid;
        padding: 0.75rem 1.5rem;
        border-bottom: 1px solid var(--cp-border);
        background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
        font-size: var(--cp-text-xs);
        font-weight: 500;
        color: var(--cp-text-2);
    }

    .cp-retention__row[b-x755prs8j5] { padding: 1.25rem 1.5rem; }

    .cp-retention__cell[b-x755prs8j5] { padding-left: 0; }

    .cp-retention__cell.is-num[b-x755prs8j5],
    .cp-retention__list-head .is-num[b-x755prs8j5] {
        align-items: flex-end;
        text-align: right;
    }

    /* the header row names the columns on wide screens; the per-cell labels stay for assistive tech */
    .cp-retention__cell-label[b-x755prs8j5] {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cp-retention__table tbody tr[b-x755prs8j5] { transition: none; }
}
/* /Pages/Domains.razor.rz.scp.css */
/* Domains view (PR 05.14). Composition from Lovable "shortlink-studio" src/routes/domains.tsx and
   src/components/domain-create-modal.tsx; values from tokens.css. Buttons, labels, the status pill, pagination
   and the dialog frame (.cp-modal*) come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-domains[b-uapg6ugleo] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-domains[b-uapg6ugleo] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

.cp-domains__inner[b-uapg6ugleo] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header ---- */
.cp-domains__head[b-uapg6ugleo] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}

.cp-domains__eyebrow[b-uapg6ugleo] { margin: 0 0 0.75rem; }

.cp-domains__title[b-uapg6ugleo] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-domains__lead[b-uapg6ugleo] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- KPI strip ---- */
.cp-domains__kpis[b-uapg6ugleo] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 2.25rem 0;
    padding: 1.5rem 0;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-surface) 60%, transparent);
}

.cp-domains__kpi[b-uapg6ugleo] {
    min-width: 0;
    padding: 0 0.75rem;
}

.cp-domains__kpi + .cp-domains__kpi[b-uapg6ugleo] { border-left: 1px solid var(--cp-border); }

.cp-domains__kpi-label[b-uapg6ugleo] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-domains__kpi-label[b-uapg6ugleo]  .cp-icon {
    display: none;
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-domains__kpi-value[b-uapg6ugleo] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

/* ---- notice (after creating a domain, or when copying fails) ---- */
.cp-domains__notice[b-uapg6ugleo] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    padding: 0.5rem 0.5rem 0.5rem 1rem;
    border: 1px solid color-mix(in srgb, var(--cp-primary) 20%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-accent-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-accent-fg);
}

.cp-domains__notice span[b-uapg6ugleo] { flex: 1 1 auto; min-width: 0; }

/* ---- list ---- */
.cp-domains__list-head[b-uapg6ugleo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.cp-domains__list-title[b-uapg6ugleo] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-domains__list-count[b-uapg6ugleo] {
    margin-left: 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-sm);
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-domains__search[b-uapg6ugleo] {
    position: relative;
    display: block;
    width: 100%;
    margin: 0;
}

.cp-domains__search[b-uapg6ugleo]  .cp-icon {
    position: absolute;
    top: 50%;
    left: 0.875rem;
    color: var(--cp-text-2);
    transform: translateY(-50%);
    pointer-events: none;
}

.cp-domains__search .form-control[b-uapg6ugleo] {
    height: var(--cp-btn-md);
    padding-right: 2.5rem;
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
}

/* the browser's own clear (x) of a search input would duplicate ours */
.cp-domains__search .form-control[b-uapg6ugleo]::-webkit-search-cancel-button { display: none; }

.cp-domains__search-clear[b-uapg6ugleo] {
    position: absolute;
    top: 50%;
    right: 0.25rem;
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text-2);
    transform: translateY(-50%);
}

.cp-domains__search-clear:hover[b-uapg6ugleo] { background: var(--cp-bg-muted); color: var(--cp-text); }

.cp-domains__search-clear[b-uapg6ugleo]  .cp-icon {
    position: static;
    transform: none;
}

.cp-domains__filters[b-uapg6ugleo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-bottom: 1rem;
}

.cp-domains__filters button[b-uapg6ugleo] {
    height: var(--cp-btn-sm);
    padding: 0 1rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text-2);
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-domains__filters button:hover[b-uapg6ugleo] { color: var(--cp-text); }

.cp-domains__filters button.is-active[b-uapg6ugleo] {
    background: var(--cp-surface-2);
    color: var(--cp-primary);
}

.cp-domains__filters button:focus-visible[b-uapg6ugleo] {
    outline: 2px solid var(--cp-ring);
    outline-offset: 2px;
}

/* ---- table ---- */
.cp-domains__table-wrap[b-uapg6ugleo] {
    overflow-x: auto;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-domains__table[b-uapg6ugleo] {
    width: 100%;
    min-width: 45rem;
    border-collapse: collapse;
    text-align: left;
    font-size: var(--cp-text-sm);
}

.cp-domains__table thead[b-uapg6ugleo] {
    border-bottom: 1px solid var(--cp-border);
    background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
}

.cp-domains__table th[b-uapg6ugleo] {
    padding: 1rem 1.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-domains__table td[b-uapg6ugleo] {
    padding: 1.25rem;
    vertical-align: middle;
    color: var(--cp-text);
}

.cp-domains__table tbody tr[b-uapg6ugleo] {
    border-bottom: 1px solid var(--cp-border);
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-domains__table tbody tr:last-child[b-uapg6ugleo] { border-bottom: 0; }
.cp-domains__table tbody tr:hover[b-uapg6ugleo] { background: color-mix(in srgb, var(--cp-bg-muted) 40%, transparent); }

.cp-domains__table .is-num[b-uapg6ugleo] { text-align: right; }
.cp-domains__table .is-actions[b-uapg6ugleo] { text-align: right; }

.cp-domains__name[b-uapg6ugleo] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.cp-domains__name-icon[b-uapg6ugleo] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-domains__name-text[b-uapg6ugleo] { min-width: 0; }

.cp-domains__host[b-uapg6ugleo] {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--cp-font-mono);
    font-weight: 500;
}

.cp-domains__kind[b-uapg6ugleo] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-domains__muted[b-uapg6ugleo] { color: var(--cp-text-2) !important; }

.cp-domains__mono[b-uapg6ugleo] {
    font-family: var(--cp-font-mono);
    font-variant-numeric: tabular-nums;
}

.cp-domains__actions[b-uapg6ugleo] {
    display: inline-flex;
    justify-content: flex-end;
    gap: 0.25rem;
}

.cp-domains__actions .btn[b-uapg6ugleo] { color: var(--cp-text-2); }
.cp-domains__actions[b-uapg6ugleo]  .cp-domains__copied { color: var(--cp-success-fg); }

.cp-domains__danger:hover[b-uapg6ugleo],
.cp-domains__danger:focus-visible[b-uapg6ugleo] {
    background: var(--cp-danger-bg) !important;
    color: var(--cp-danger) !important;
}

.cp-domains__empty[b-uapg6ugleo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 3.5rem 1.25rem;
    text-align: center;
    color: var(--cp-text-2);
}

.cp-domains__empty-title[b-uapg6ugleo] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-domains__foot[b-uapg6ugleo] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-domains__foot p[b-uapg6ugleo] { margin: 0; }

/* ---- create dialog ---- */
.cp-domains__modal-lead[b-uapg6ugleo] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-domains__form[b-uapg6ugleo] {
    display: grid;
    gap: 1.25rem;
}

.cp-domains__input[b-uapg6ugleo] {
    height: 3rem;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
}

.cp-domains__error[b-uapg6ugleo] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

.cp-domains__error[b-uapg6ugleo]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
}

/* live preview of a link on the domain being typed */
.cp-domains__preview[b-uapg6ugleo] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin: 0;
    padding-left: 0.75rem;
    border-left: 2px solid var(--cp-primary);
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    word-break: break-all;
}

.cp-domains__preview[b-uapg6ugleo]  .cp-icon {
    flex: 0 0 auto;
    color: var(--cp-primary);
}

.cp-domains__preview-host[b-uapg6ugleo] { color: var(--cp-text-2); }
.cp-domains__preview-path[b-uapg6ugleo] { color: var(--cp-primary); }

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-domains__inner[b-uapg6ugleo] { padding-top: 3rem; }
    .cp-domains__title[b-uapg6ugleo] { font-size: 3rem; }
    .cp-domains__lead[b-uapg6ugleo] { font-size: var(--cp-text-md); }
    .cp-domains__kpi[b-uapg6ugleo] { padding: 0 1.5rem; }
    .cp-domains__kpi-label[b-uapg6ugleo] { font-size: var(--cp-text-sm); }
    .cp-domains__kpi-label[b-uapg6ugleo]  .cp-icon { display: block; }
    .cp-domains__search[b-uapg6ugleo] { width: 20rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-domains__filters button[b-uapg6ugleo],
    .cp-domains__table tbody tr[b-uapg6ugleo] {
        transition: none;
    }
}
/* /Pages/ForgotPassword.razor.rz.scp.css */
/* Forgot-password view (PR 05.08). Composition from Lovable "shortlink-studio" src/routes/forgot-password.tsx,
   which reuses the sign-in card and orbit ring (on the technical grid of /auth) (see Authentication.razor.css); values from tokens.css.
   Buttons, inputs, alerts, validation messages and the skip link come from compacto.css. */

.cp-forgot[b-urhlbrldum] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 4.5rem 1rem 1.5rem;
    overflow: hidden;
    /* same technical grid as /auth and /register (compacto.css .cp-grid-bg), with the fainter 42 % line */
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
}

@media (min-width: 768px) {
    .cp-forgot[b-urhlbrldum] { padding: 1rem; }
}

:root[data-bs-theme="high-contrast"] .cp-forgot[b-urhlbrldum] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

/* ---- orbit ring: drawn once, the whole svg rotates with its dots ---- */
.cp-forgot__orbit[b-urhlbrldum] {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 34rem;
    height: 34rem;
    transform: translate(-50%, -50%);
    animation: cp-forgot-orbit-b-urhlbrldum 40s linear infinite;
    pointer-events: none;
}

/* PR 05.12: full size while the view opens, then the ring shrinks away behind the card (which sits above it)
   while it keeps turning; timing in tokens.css (--cp-orbit-hold / --cp-orbit-exit, shared with the sign-in).
   The orbit is keyed by screen in ForgotPassword.razor, so "check your inbox" plays it again.
   With reduced motion it stays still and simply disappears after the hold. */
.cp-forgot__orbit svg[b-urhlbrldum] {
    display: block;
    width: 100%;
    height: 100%;
    fill: var(--cp-primary);
    animation: cp-forgot-orbit-exit-b-urhlbrldum var(--cp-orbit-exit) cubic-bezier(0.65, 0, 0.35, 1) var(--cp-orbit-hold) both;
}

@keyframes cp-forgot-orbit-exit-b-urhlbrldum {
    from { opacity: 1; transform: scale(1); }
    85% { opacity: 1; }
    to { opacity: 0; transform: scale(0.3); }
}

.cp-forgot__orbit .cp-forgot__orbit-ring[b-urhlbrldum] {
    fill: none;
    stroke: var(--cp-primary);
    stroke-opacity: 0.35;
}

@keyframes cp-forgot-orbit-b-urhlbrldum {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (min-width: 576px) {
    .cp-forgot__orbit[b-urhlbrldum] { width: 46rem; height: 46rem; }
}

@media (min-width: 992px) {
    .cp-forgot__orbit[b-urhlbrldum] { width: 54rem; height: 54rem; }
}

/* ---- floating language / theme controls ---- */
.cp-forgot__controls[b-urhlbrldum] {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem var(--cp-gutter);
}

.cp-forgot__lang[b-urhlbrldum]  .btn {
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    color: var(--cp-text) !important;
    font-weight: 500;
    font-size: var(--cp-text-sm);
}

.cp-forgot__lang[b-urhlbrldum]  .btn:hover,
.cp-forgot__lang[b-urhlbrldum]  .btn:focus-visible,
.cp-forgot__lang[b-urhlbrldum]  .btn.show {
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg) !important;
}

.cp-forgot__theme[b-urhlbrldum] {
    width: var(--cp-btn-md);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-forgot__theme[b-urhlbrldum]  .cp-theme-toggle__icon { display: none; }
:root[data-bs-theme="light"] .cp-forgot__theme[b-urhlbrldum]  .cp-theme-toggle__icon--light,
:root:not([data-bs-theme]) .cp-forgot__theme[b-urhlbrldum]  .cp-theme-toggle__icon--light { display: inline-block; }
:root[data-bs-theme="dark"] .cp-forgot__theme[b-urhlbrldum]  .cp-theme-toggle__icon--dark { display: inline-block; }
:root[data-bs-theme="high-contrast"] .cp-forgot__theme[b-urhlbrldum]  .cp-theme-toggle__icon--hc { display: inline-block; }

/* ---- card ---- */
.cp-forgot__card[b-urhlbrldum] {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 28rem;
    padding: 2.5rem 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    outline: none;
}

@media (min-width: 576px) {
    .cp-forgot__card[b-urhlbrldum] { padding: 2.5rem; }
}

.cp-forgot__head[b-urhlbrldum],
.cp-forgot__sent[b-urhlbrldum] {
    text-align: center;
}

.cp-forgot__badge[b-urhlbrldum] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-forgot__title[b-urhlbrldum] {
    margin: 1.5rem 0 0;
    font-size: 1.875rem;
    font-weight: 800;
    color: var(--cp-text);
}

.cp-forgot__lead[b-urhlbrldum] {
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-md);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-forgot__alert[b-urhlbrldum] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1.5rem 0 0;
    text-align: left;
}

.cp-forgot[b-urhlbrldum]  .cp-forgot__form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem;
}

/* ---- pill input with leading icon (same as sign-in) ---- */
.cp-forgot__field[b-urhlbrldum] {
    display: flex;
    flex-direction: column;
}

.cp-forgot__input[b-urhlbrldum] {
    position: relative;
}

.cp-forgot[b-urhlbrldum]  .cp-forgot__input-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cp-text-2);
    pointer-events: none;
}

.cp-forgot__input[b-urhlbrldum]  .form-control {
    width: 100%;
    min-height: var(--cp-btn-lg);
    padding-left: 3rem;
    border-radius: var(--cp-radius-pill);
    background-color: var(--cp-bg);
    font-size: var(--cp-text-md);
    box-shadow: var(--cp-shadow-card);
}

.cp-forgot__input[b-urhlbrldum]  .form-control:focus {
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 3px var(--cp-focus-ring);
}

.cp-forgot__input[b-urhlbrldum]  .form-control.modified.invalid {
    border-color: var(--cp-danger);
}

.cp-forgot__field[b-urhlbrldum]  .validation-message {
    margin-top: 0.375rem;
    padding-left: 1rem;
}

.cp-forgot__captcha[b-urhlbrldum] {
    display: flex;
    justify-content: center;
}

.cp-forgot__captcha:has(#hcaptcha-forgot-container:empty)[b-urhlbrldum] {
    display: none;
}

.cp-forgot__primary[b-urhlbrldum] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: 52px;
    --bs-btn-font-size: var(--cp-text-md);
    --x-btn-font-size: var(--cp-text-md);
    font-weight: 600;
    text-decoration: none;
}

.cp-forgot__primary:not(:disabled):hover[b-urhlbrldum] {
    transform: translateY(-2px);
}

.cp-forgot[b-urhlbrldum]  .cp-forgot__arrow {
    transition: transform var(--cp-motion-fast) var(--cp-ease);
}

.cp-forgot__primary:not(:disabled):hover[b-urhlbrldum]  .cp-forgot__arrow {
    transform: translateX(4px);
}

.cp-forgot__back[b-urhlbrldum] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.5rem;
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-text-2);
    text-decoration: none;
    transition: color var(--cp-motion-fast) ease;
}

.cp-forgot__back:hover[b-urhlbrldum] {
    color: var(--cp-text);
}

/* ---- "check your inbox" state ---- */
.cp-forgot__email[b-urhlbrldum] {
    font-weight: 600;
    color: var(--cp-text);
    overflow-wrap: anywhere;
}

/* the reference fades the confirmation in when it replaces the form */
.cp-forgot__sent[b-urhlbrldum] {
    animation: cp-forgot-fade-up-b-urhlbrldum 0.7s var(--cp-ease) both;
}

@keyframes cp-forgot-fade-up-b-urhlbrldum {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

.cp-forgot__link[b-urhlbrldum] {
    margin-top: 1rem;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-primary);
    text-underline-offset: 4px;
}

.cp-forgot__link:hover[b-urhlbrldum] {
    text-decoration: underline;
}

.cp-forgot__note[b-urhlbrldum] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 1.5rem 0;
    padding: 0.75rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-bg);
    text-align: left;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-forgot__note[b-urhlbrldum]  .cp-icon {
    margin-top: 0.125rem;
    color: var(--cp-primary);
}

.cp-forgot__note p[b-urhlbrldum] {
    margin: 0;
}

.cp-forgot__resend[b-urhlbrldum] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: var(--cp-btn-lg);
    margin-top: 0.75rem;
    font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
    .cp-forgot__orbit[b-urhlbrldum],
    .cp-forgot__sent[b-urhlbrldum] {
        animation: none;
    }

    .cp-forgot__primary:not(:disabled):hover[b-urhlbrldum],
    .cp-forgot__primary:not(:disabled):hover[b-urhlbrldum]  .cp-forgot__arrow {
        transform: none;
    }
}
/* /Pages/Home.razor.rz.scp.css */
/* Shortlink dashboard (PR 05.10). Composition from Lovable "shortlink-studio" src/routes/index.tsx;
   values from tokens.css. Module cards live in Components/Home (HomeCard, HomeModuleError, HomeLocked).
   PR 05.11: the hero moved to Components/Home/HomeHero, the grid widths to HomeModule (customizable layout). */

.cp-home[b-5vvt97b90l] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    --cp-home-ink: #096C4B;
    --cp-home-ink-fg: #F8FAFC;
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="dark"] .cp-home[b-5vvt97b90l] { --cp-home-ink: #005C3E; }

:root[data-bs-theme="high-contrast"] .cp-home[b-5vvt97b90l] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
    --cp-home-ink: #000000;
    --cp-home-ink-fg: #FFFFFF;
}

.cp-home__inner[b-5vvt97b90l] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-top: 1.5rem;
    padding-bottom: 4rem;
}

.cp-home__num[b-5vvt97b90l] { font-family: var(--cp-font-mono); font-variant-numeric: tabular-nums; }
.cp-home__muted[b-5vvt97b90l] { color: var(--cp-text-2); }

/* ---- skeletons ---- */
.cp-home__skeleton[b-5vvt97b90l] {
    display: block;
    border-radius: var(--cp-radius-panel);
    background: linear-gradient(90deg, var(--cp-bg-muted) 0%, var(--cp-surface-2) 50%, var(--cp-bg-muted) 100%);
    background-size: 200% 100%;
    animation: cp-home-shimmer-b-5vvt97b90l 1.4s linear infinite;
}

.cp-home__skeleton--kpi[b-5vvt97b90l] { width: 4rem; height: 2rem; margin-top: 0.75rem; }
.cp-home__skeleton--line[b-5vvt97b90l] { width: 75%; height: 0.75rem; margin-top: 0.5rem; }
.cp-home__skeleton--chart[b-5vvt97b90l] { position: absolute; inset: 0; }
.cp-home__skeleton--qr[b-5vvt97b90l] { width: 14rem; height: 14rem; }

@keyframes cp-home-shimmer-b-5vvt97b90l { to { background-position: -200% 0; } }

/* ---- filters ---- */
.cp-home__filters[b-5vvt97b90l] {
    position: sticky;
    top: calc(var(--cp-nav-h) + 0.5rem);
    z-index: 20;
}

.cp-home__filters-toggle[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.625rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    font-size: var(--cp-text-sm);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-home__filters-toggle > span:first-child[b-5vvt97b90l] { display: inline-flex; align-items: center; gap: 0.5rem; }

.cp-home__filter-bar[b-5vvt97b90l] {
    display: none;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.5rem;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.25rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
}

.cp-home__filter-bar.is-open[b-5vvt97b90l] { display: flex; }

/* every control in the bar is 40 px tall so the row reads as one strip */
.cp-home__segmented[b-5vvt97b90l] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.125rem;
    min-height: var(--cp-btn-md);
    padding: 3px;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-home__segmented button[b-5vvt97b90l] {
    height: calc(var(--cp-btn-md) - 8px);
    padding: 0 0.75rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text-2);
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-home__segmented button:hover[b-5vvt97b90l] { color: var(--cp-text); }

.cp-home__segmented button.is-active[b-5vvt97b90l] {
    background: var(--cp-surface);
    color: var(--cp-text);
    box-shadow: var(--cp-shadow-card);
}

.cp-home__label-short[b-5vvt97b90l] { display: none; }

.cp-home__segmented--sm[b-5vvt97b90l] { min-height: 0; }
.cp-home__segmented--sm button[b-5vvt97b90l] { height: 1.875rem; }


.cp-home__select[b-5vvt97b90l] {
    width: auto;
    min-width: 0;
    max-width: 14rem;
    height: var(--cp-btn-md);
    min-height: 0;
    padding: 0 2.25rem 0 1rem;
    border-radius: var(--cp-radius-pill);
    font-size: var(--cp-text-sm);
    background-position: right 0.875rem center;
}

.cp-home__filter-end[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
}

.cp-home__history[b-5vvt97b90l] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0 0.5rem;
    font-size: var(--cp-text-xs);
    white-space: nowrap;
    color: var(--cp-text-2);
}

.cp-home__reset[b-5vvt97b90l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-sm);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text-2);
    transition: background-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-home__reset:hover[b-5vvt97b90l] { background: var(--cp-bg-muted); color: var(--cp-text); }

/* opens the layout editor (PR 05.11); same 40 px strip as the rest of the bar */
.cp-home__customize[b-5vvt97b90l] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    font-size: var(--cp-text-sm);
    font-weight: 500;
    white-space: nowrap;
    color: var(--cp-text);
    transition: background-color var(--cp-motion-fast) ease, border-color var(--cp-motion-fast) ease, color var(--cp-motion-fast) ease;
}

.cp-home__customize[b-5vvt97b90l]  .cp-icon { color: var(--cp-primary); }

.cp-home__customize:hover[b-5vvt97b90l] {
    border-color: var(--cp-primary);
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg);
}

/* ---- KPI ---- */
.cp-home__kpis[b-5vvt97b90l] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.cp-home__kpi[b-5vvt97b90l] {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-home__kpi-label[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-home__kpi-value[b-5vvt97b90l] {
    margin: 0.5rem 0 0;
    font-family: var(--cp-font-heading);
    font-size: 1.875rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--cp-text);
}

.cp-home__kpi-sub[b-5vvt97b90l] { margin: 0; font-size: var(--cp-text-xs); color: var(--cp-text-2); }
.cp-home__kpi-sub.is-good[b-5vvt97b90l] { color: var(--cp-success-fg); }

/* ---- clicks card ---- */
.cp-home__card[b-5vvt97b90l] {
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-home__card-head[b-5vvt97b90l] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.cp-home__card-title[b-5vvt97b90l] { margin: 0; font-size: var(--cp-text-md); font-weight: 700; letter-spacing: 0; color: var(--cp-text); }
.cp-home__card-title--lg[b-5vvt97b90l] { font-size: var(--cp-text-lg); }
.cp-home__card-desc[b-5vvt97b90l] { margin: 0.125rem 0 0; font-size: var(--cp-text-sm); color: var(--cp-text-2); }

.cp-home__chart[b-5vvt97b90l] { position: relative; min-height: 15rem; margin-top: 0.75rem; }
.cp-home__chart--sm[b-5vvt97b90l] { min-height: 10.5rem; margin-top: 0; }
.cp-home__chart--tree[b-5vvt97b90l] { min-height: 16.25rem; margin-top: 0; }

/* ---- chart controls (PR 05.17): grouping, previous-period toggle and chart type, wrapping under the title ---- */
.cp-home__chart-tools[b-5vvt97b90l] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.cp-home__compare[b-5vvt97b90l] {
    height: 2.375rem;
    padding: 0 0.875rem;
    font-size: var(--cp-text-sm);
}

.cp-home__compare.is-active[b-5vvt97b90l] {
    border-color: var(--cp-primary);
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg);
}

/* scale under the weekday × hour heatmap: the same steps as HEAT_STEPS in js/home-dashboard.js */
.cp-home__heat-legend[b-5vvt97b90l] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.25rem 0.375rem;
    margin-top: 0.25rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-home__heat-scale[b-5vvt97b90l] { display: inline-flex; gap: 2px; }
.cp-home__heat-scale > span[b-5vvt97b90l] { width: 0.875rem; height: 0.625rem; border-radius: 2px; background: var(--cp-bg-muted); }
.cp-home__heat-scale > span:nth-child(2)[b-5vvt97b90l] { background: color-mix(in srgb, var(--cp-primary) 30%, var(--cp-surface)); }
.cp-home__heat-scale > span:nth-child(3)[b-5vvt97b90l] { background: color-mix(in srgb, var(--cp-primary) 52%, var(--cp-surface)); }
.cp-home__heat-scale > span:nth-child(4)[b-5vvt97b90l] { background: color-mix(in srgb, var(--cp-primary) 76%, var(--cp-surface)); }
.cp-home__heat-scale > span:nth-child(5)[b-5vvt97b90l] { background: var(--cp-primary); }
.cp-home__heat-max[b-5vvt97b90l] { margin-left: 0.375rem; }

/* the dashed grey stroke of the previous period, as in the chart legend */
.cp-home__compare-key[b-5vvt97b90l] {
    width: 0.875rem;
    border-top: 2px dashed var(--cp-text-2);
}

/* ---- grid ---- */
.cp-home__grid[b-5vvt97b90l] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
}

/* the width of each module is its span class, set by Components/Home/HomeModule */
@media (min-width: 992px) {
    .cp-home__grid[b-5vvt97b90l] { grid-template-columns: repeat(12, minmax(0, 1fr)); }
    .cp-home__grid > .cp-home__empty[b-5vvt97b90l] { grid-column: 1 / -1; }
}

/* ---- customizing (PR 05.11) ---- */
/* room between the rows for the grip and the tools that sit on each module's top edge */
.cp-home.is-editing .cp-home__inner[b-5vvt97b90l],
.cp-home.is-editing .cp-home__grid[b-5vvt97b90l] { row-gap: 2.25rem; }

/* Moving a module re-inserts its DOM node, which replays the entrance animations of what it holds; once the
   page has been customized they stay off for the rest of the visit (switching them back on would replay them). */
.cp-home.is-arranged[b-5vvt97b90l]  .cp-enter,
.cp-home.is-arranged[b-5vvt97b90l]  .cp-enter-stagger > *,
.cp-home.is-arranged[b-5vvt97b90l]  .cp-home-card,
.cp-home.is-arranged[b-5vvt97b90l]  .cp-home__bar > span {
    animation: none;
}

/* ---- top 5 ---- */
/* minmax(0, 1fr): a grid track otherwise grows to its longest unbroken content (long destination URLs) */
.cp-home__top5[b-5vvt97b90l] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.25rem; margin: 0; padding: 0; list-style: none; }
.cp-home__top5 li[b-5vvt97b90l] { min-width: 0; }

.cp-home__top5 button[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    padding: 0.5rem 0.625rem;
    border: 0;
    border-radius: var(--cp-radius-panel);
    background: transparent;
    text-align: left;
    transition: background-color var(--cp-motion-fast) ease;
}

.cp-home__top5 button:hover[b-5vvt97b90l] { background: var(--cp-bg-muted); }
.cp-home__top5 button.is-selected[b-5vvt97b90l] { background: var(--cp-accent-bg); }

.cp-home__rank[b-5vvt97b90l] { width: 1rem; font-family: var(--cp-font-mono); font-size: var(--cp-text-xs); color: var(--cp-text-2); }

.cp-home__top5-text[b-5vvt97b90l] { flex: 1; min-width: 0; }

.cp-home__top5-text code[b-5vvt97b90l],
.cp-home__top5-text span[b-5vvt97b90l] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cp-home__top5-text code[b-5vvt97b90l] { font-size: var(--cp-text-sm); font-weight: 500; color: var(--cp-text); }
.cp-home__top5-text span[b-5vvt97b90l] { font-size: var(--cp-text-xs); color: var(--cp-text-2); }

.cp-home__spark[b-5vvt97b90l] { flex: 0 0 auto; width: 4rem; height: 1.5rem; }

.cp-home__spark polyline[b-5vvt97b90l] {
    fill: none;
    stroke: var(--cp-primary);
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.cp-home__top5-clicks[b-5vvt97b90l] { width: 3.5rem; text-align: right; font-size: var(--cp-text-sm); color: var(--cp-text); }

.cp-home__trend-stats[b-5vvt97b90l] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    margin-bottom: 0.5rem;
    font-size: var(--cp-text-sm);
}

/* ---- bars ---- */
.cp-home__bars[b-5vvt97b90l] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.625rem; margin: 0; padding: 0; list-style: none; }

.cp-home__bars li[b-5vvt97b90l] {
    display: grid;
    grid-template-columns: minmax(0, 7rem) 1fr 3.5rem;
    align-items: center;
    gap: 0.75rem;
    font-size: var(--cp-text-xs);
}

.cp-home__bars code[b-5vvt97b90l] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--cp-text); }
.cp-home__bars li > .cp-home__num[b-5vvt97b90l] { text-align: right; color: var(--cp-text); }

.cp-home__bar[b-5vvt97b90l] {
    display: block;
    height: 0.625rem;
    overflow: hidden;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
}

.cp-home__bar > span[b-5vvt97b90l] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--cp-primary);
    transform-origin: left;
    animation: cp-home-grow-b-5vvt97b90l 0.9s var(--cp-ease) both;
}

.cp-home__bar > span.is-warn[b-5vvt97b90l] { background: #F5A524; }
.cp-home__bar--thin[b-5vvt97b90l] { height: 0.375rem; margin-top: 0.25rem; }
.cp-home__bar--plan[b-5vvt97b90l] { height: 0.625rem; margin-top: 0.375rem; }

@keyframes cp-home-grow-b-5vvt97b90l { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.cp-home__bars-foot[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 1rem;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-home__chip-btn[b-5vvt97b90l] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.75rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: transparent;
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
    text-decoration: none;
    white-space: nowrap;
}

.cp-home__chip-btn:hover[b-5vvt97b90l] { color: var(--cp-text); background: var(--cp-bg-muted); }
.cp-home__chip-btn--accent[b-5vvt97b90l] { font-weight: 600; color: var(--cp-primary); }
.cp-home__chip-btn--accent:hover[b-5vvt97b90l] { color: var(--cp-primary); background: var(--cp-accent-bg); }
.cp-home__chip-btn[b-5vvt97b90l]  .is-flipped { transform: rotate(180deg); }

.cp-home__pager[b-5vvt97b90l] { display: flex; align-items: center; gap: 0.25rem; }

.cp-home__pager button[b-5vvt97b90l] {
    display: grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid var(--cp-border);
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text);
}

.cp-home__pager button:disabled[b-5vvt97b90l] { opacity: 0.4; }
.cp-home__pager span[b-5vvt97b90l] { padding: 0 0.5rem; }

/* ---- expiring ---- */
.cp-home__expiring[b-5vvt97b90l] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; margin: 0; padding: 0; list-style: none; }

.cp-home__expiring li[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-panel);
}

.cp-home__expiring li > div[b-5vvt97b90l] { flex: 1; min-width: 0; }
.cp-home__expiring code[b-5vvt97b90l] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--cp-text-sm); color: var(--cp-text); }
.cp-home__expiring li > div > span[b-5vvt97b90l] { font-size: var(--cp-text-xs); }

.cp-home__ok[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-success-fg);
}

/* ---- audience ---- */
.cp-home__audience[b-5vvt97b90l] { display: grid; gap: 1.5rem; }

@media (min-width: 576px) {
    .cp-home__audience[b-5vvt97b90l] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.cp-home__mini-head[b-5vvt97b90l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 1.875rem;
    margin-bottom: 0.5rem;
}

.cp-home__mini-head .cp-home__mini-title[b-5vvt97b90l] { margin: 0; }

.cp-home__mini-title[b-5vvt97b90l] {
    margin: 0 0 0.5rem;
    font-family: var(--cp-font-body);
    font-size: var(--cp-text-xs);
    font-weight: 600;
    letter-spacing: var(--cp-tracking-label);
    text-transform: uppercase;
    color: var(--cp-text-2);
}

.cp-home__shares[b-5vvt97b90l] { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; font-size: var(--cp-text-sm); }
.cp-home__shares li > div[b-5vvt97b90l] { display: flex; justify-content: space-between; gap: 0.5rem; color: var(--cp-text); }
.cp-home__shares .cp-home__num[b-5vvt97b90l] { font-size: var(--cp-text-xs); }

.cp-home__donut[b-5vvt97b90l] { display: block; width: 7rem; height: 7rem; margin: 0 auto; }
.cp-home__donut-track[b-5vvt97b90l],
.cp-home__donut-seg[b-5vvt97b90l] { fill: none; stroke-width: 16; }
.cp-home__donut-track[b-5vvt97b90l] { stroke: var(--cp-bg-muted); }
.cp-home__donut-seg[b-5vvt97b90l] { stroke: var(--cp-primary); }

.cp-home__donut-value[b-5vvt97b90l] { font-family: var(--cp-font-heading); font-size: 15px; font-weight: 700; fill: var(--cp-text); }
.cp-home__donut-label[b-5vvt97b90l] { font-size: 8px; fill: var(--cp-text-2); }

.cp-home__legend[b-5vvt97b90l] { display: grid; gap: 0.25rem; margin: 0.5rem 0 0; padding: 0; list-style: none; font-size: var(--cp-text-xs); color: var(--cp-text); }
.cp-home__legend li[b-5vvt97b90l] { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.cp-home__legend li > .cp-home__num[b-5vvt97b90l] { flex: 0 0 auto; margin-left: auto; }
.cp-home__legend-name[b-5vvt97b90l] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-home__swatch[b-5vvt97b90l] { flex: 0 0 auto; width: 0.625rem; height: 0.625rem; border-radius: 2px; background: var(--cp-primary); }

/* clicks per link as a donut: the ring beside its legend when the card is wide enough */
.cp-home__share-donut[b-5vvt97b90l] { display: grid; align-items: center; gap: 0.5rem 1.5rem; }
.cp-home__share-donut .cp-home__donut[b-5vvt97b90l] { width: 8.5rem; height: 8.5rem; }

@container (min-width: 26rem) {
    .cp-home__share-donut[b-5vvt97b90l] { grid-template-columns: auto minmax(0, 1fr); }
    .cp-home__share-donut .cp-home__legend[b-5vvt97b90l] { margin: 0; }
}

/* ---- plan ---- */
.cp-home__plan[b-5vvt97b90l] { display: grid; gap: 1rem; font-size: var(--cp-text-sm); }
.cp-home__plan p[b-5vvt97b90l] { margin: 0; }
.cp-home__plan-row[b-5vvt97b90l] { display: flex; justify-content: space-between; gap: 0.5rem; color: var(--cp-text); }
.cp-home__plan-cta[b-5vvt97b90l] { width: 100%; justify-content: center; }

/* ---- recent table ---- */
.cp-home__search[b-5vvt97b90l] {
    position: relative;
    display: block;
    max-width: 20rem;
    margin-bottom: 0.75rem;
}

.cp-home__search[b-5vvt97b90l]  .cp-icon {
    position: absolute;
    left: 0.875rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--cp-text-2);
    pointer-events: none;
}

.cp-home__search .form-control[b-5vvt97b90l] {
    height: var(--cp-btn-md);
    padding-left: 2.5rem;
    border-radius: var(--cp-radius-pill);
}

.cp-home__table-scroll[b-5vvt97b90l] { margin: 0 -1.25rem; padding: 0 1.25rem; overflow-x: auto; }

.cp-home__table[b-5vvt97b90l] {
    width: 100%;
    min-width: 51rem;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: var(--cp-text-sm);
}

.cp-home__table th[b-5vvt97b90l] {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--cp-border);
    font-size: var(--cp-text-xs);
    font-weight: 500;
    text-align: left;
    color: var(--cp-text-2);
}

.cp-home__table th.is-link[b-5vvt97b90l] { width: 32%; }
.cp-home__table th.is-num[b-5vvt97b90l],
.cp-home__table td.is-num[b-5vvt97b90l] { text-align: right; padding-right: 1rem; }
.cp-home__table th.is-actions[b-5vvt97b90l] { text-align: right; }

.cp-home__table td[b-5vvt97b90l] {
    padding: 0.625rem 0.5rem 0.625rem 0;
    border-bottom: 1px solid var(--cp-border);
    font-size: var(--cp-text-xs);
    vertical-align: middle;
}

.cp-home__table tr:last-child td[b-5vvt97b90l] { border-bottom: 0; }

.cp-home__link-cell[b-5vvt97b90l] { display: flex; align-items: center; gap: 0.375rem; min-width: 0; color: var(--cp-text-2); }
.cp-home__link-cell code[b-5vvt97b90l] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--cp-text-sm); font-weight: 500; color: var(--cp-text); }
.cp-home__link-cell[b-5vvt97b90l]  .cp-home__fav { color: var(--cp-primary); fill: var(--cp-primary); }

.cp-home__dest[b-5vvt97b90l] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

.cp-home__actions[b-5vvt97b90l] { display: flex; justify-content: flex-end; gap: 0.25rem; }

.cp-home__icon-btn[b-5vvt97b90l] {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cp-text);
    text-decoration: none;
}

.cp-home__icon-btn:hover[b-5vvt97b90l] { background: var(--cp-bg-muted); color: var(--cp-text); }

.cp-home__no-results[b-5vvt97b90l] { padding: 1.5rem 0; text-align: center; color: var(--cp-text-2); }

/* ---- empty ---- */
.cp-home__empty[b-5vvt97b90l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2.5rem;
    border: 1px dashed var(--cp-border);
    border-radius: var(--cp-radius-card);
    background: var(--cp-surface);
    text-align: center;
}

.cp-home__empty-icon[b-5vvt97b90l] {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-home__empty-title[b-5vvt97b90l] { margin: 1rem 0 0; font-size: 1.25rem; font-weight: 700; color: var(--cp-text); }
.cp-home__empty-lead[b-5vvt97b90l] { max-width: 24rem; margin: 0.25rem 0 1.25rem; font-size: var(--cp-text-sm); color: var(--cp-text-2); }
.cp-home__empty .btn[b-5vvt97b90l] { display: inline-flex; align-items: center; gap: 0.5rem; }

/* ---- QR dialog ---- */
.cp-home__qr[b-5vvt97b90l] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: color-mix(in srgb, var(--cp-text) 45%, transparent);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.cp-home__qr-card[b-5vvt97b90l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    width: min(22rem, 100%);
    padding: 1.25rem 1.5rem 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    animation: cp-rise 0.3s var(--cp-ease) both;
}

.cp-home__qr-head[b-5vvt97b90l] { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.cp-home__qr-head h2[b-5vvt97b90l] { margin: 0; font-size: var(--cp-text-lg); font-weight: 700; color: var(--cp-text); }
.cp-home__qr-label[b-5vvt97b90l] { font-size: var(--cp-text-sm); color: var(--cp-text-2); }
.cp-home__qr-image[b-5vvt97b90l] { display: grid; place-items: center; min-height: 14rem; }
.cp-home__qr-image img[b-5vvt97b90l] { width: 14rem; height: 14rem; border-radius: var(--cp-radius-panel); background: #fff; padding: 0.5rem; }
.cp-home__qr-download[b-5vvt97b90l] { display: inline-flex; align-items: center; gap: 0.5rem; width: 100%; justify-content: center; }

/* ---- breakpoints ---- */
@media (min-width: 768px) {
    .cp-home__filters-toggle[b-5vvt97b90l] { display: none; }

    /* tablets: the bar may wrap, so it keeps rounded corners instead of a pill that would deform */
    .cp-home__filter-bar[b-5vvt97b90l],
    .cp-home__filter-bar.is-open[b-5vvt97b90l] {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.5rem;
        margin-top: 0;
        padding: 0.375rem;
        border-radius: 1.25rem;
    }

    .cp-home__filter-end[b-5vvt97b90l] { margin-left: auto; }

    /* only the icon until there is room for the label */
    .cp-home__reset[b-5vvt97b90l],
    .cp-home__customize[b-5vvt97b90l] { width: var(--cp-btn-md); padding: 0; }
    .cp-home__reset-label[b-5vvt97b90l],
    .cp-home__customize-label[b-5vvt97b90l] { display: none; }
}

/* wide screens: everything fits on one line, so the bar becomes a pill */
@media (min-width: 1200px) {
    .cp-home__filter-bar[b-5vvt97b90l],
    .cp-home__filter-bar.is-open[b-5vvt97b90l] {
        flex-wrap: nowrap;
        border-radius: var(--cp-radius-pill);
    }
}

@media (min-width: 1400px) {
    .cp-home__reset[b-5vvt97b90l],
    .cp-home__customize[b-5vvt97b90l] { width: auto; padding: 0 0.875rem; }
    .cp-home__reset-label[b-5vvt97b90l],
    .cp-home__customize-label[b-5vvt97b90l] { display: inline; }
}

@media (min-width: 992px) {
    .cp-home__kpis[b-5vvt97b90l] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Modules the user narrowed (PR 05.11; HomeModule is the query container). The thresholds stay below the
   width of a full-width module at the breakpoints above, so the default composition is untouched. */
@container (max-width: 40rem) {
    .cp-home__kpis[b-5vvt97b90l] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container (max-width: 31.5rem) {
    .cp-home__audience[b-5vvt97b90l] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
    .cp-home__filter-bar .cp-home__select[b-5vvt97b90l] { width: 100%; max-width: none; }
    .cp-home__filter-bar[b-5vvt97b90l]  .cp-home__dates { width: 100%; }

    /* four equal segments that shrink with the screen instead of pushing the card wider */
    .cp-home__filter-bar .cp-home__segmented[b-5vvt97b90l] {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
    }

    .cp-home__filter-bar .cp-home__segmented button[b-5vvt97b90l] {
        min-width: 0;
        padding: 0 0.25rem;
        overflow: hidden;
        text-overflow: ellipsis;
        font-size: 13px;
    }

    /* the full "Custom" label stays for assistive tech; phones show the short one */
    .cp-home__label-full[b-5vvt97b90l] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .cp-home__label-short[b-5vvt97b90l] { display: inline; }

    .cp-home__filters-toggle > span:last-child[b-5vvt97b90l] {
        min-width: 0;
        margin-left: 0.75rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cp-home__skeleton[b-5vvt97b90l],
    .cp-home__bar > span[b-5vvt97b90l],
    .cp-home__qr-card[b-5vvt97b90l] {
        animation: none;
    }
}
/* /Pages/LegalCookies.razor.rz.scp.css */
/* Cookie and storage policy (cookies plan CK1). Frame copied value-for-value from Pages/DataRetention.razor.css
   (header, eyebrow, notes, sections, list rows, category pill, breakpoints) so the page reads as one of the account
   views. Values from tokens.css; labels, buttons and the grid background come from compacto.css. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-legal[b-vzn4tjxqxf] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-legal[b-vzn4tjxqxf] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

/* signed out there is no dashboard shell: a plain bar with the logo, at the shell's height */
.cp-legal__bar[b-vzn4tjxqxf] {
    display: flex;
    align-items: center;
    height: var(--cp-nav-h);
    padding: 0 var(--cp-gutter);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-nav-bg);
}

.cp-legal__inner[b-vzn4tjxqxf] {
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header ---- */
.cp-legal__head[b-vzn4tjxqxf] { max-width: 42rem; }

.cp-legal__eyebrow[b-vzn4tjxqxf] { margin: 0 0 0.75rem; }

.cp-legal__title[b-vzn4tjxqxf] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-legal__lead[b-vzn4tjxqxf] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-legal__notes[b-vzn4tjxqxf] {
    display: grid;
    gap: 0.5rem;
    margin-top: 1.25rem;
}

.cp-legal__notes p[b-vzn4tjxqxf],
.cp-legal__footnotes p[b-vzn4tjxqxf] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-legal__notes[b-vzn4tjxqxf]  .cp-icon,
.cp-legal__footnotes[b-vzn4tjxqxf]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.0625rem;
}

/* ---- sections ---- */
.cp-legal__section[b-vzn4tjxqxf] { margin-top: 3rem; }

.cp-legal__section:first-of-type[b-vzn4tjxqxf] {
    margin-top: 2.5rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--cp-border);
}

.cp-legal__section-head[b-vzn4tjxqxf] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.cp-legal__section-icon[b-vzn4tjxqxf] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-surface);
    color: var(--cp-primary);
}

.cp-legal__section-title[b-vzn4tjxqxf] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-legal__section-lead[b-vzn4tjxqxf] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- lists (DataRetention .cp-retention__list) ---- */
.cp-legal__list[b-vzn4tjxqxf] {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-legal__list-head[b-vzn4tjxqxf] { display: none; }

.cp-legal__row[b-vzn4tjxqxf] {
    display: grid;
    gap: 0.875rem;
    padding: 1.25rem 1rem;
    border-bottom: 1px solid var(--cp-border);
}

.cp-legal__row:last-child[b-vzn4tjxqxf] { border-bottom: 0; }

.cp-legal__cat[b-vzn4tjxqxf] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.cp-legal__cat-icon[b-vzn4tjxqxf] {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-nav);
    background: var(--cp-bg);
    color: var(--cp-primary);
}

.cp-legal__cat-text[b-vzn4tjxqxf] { min-width: 0; }

/* the browser shows these names as they are: monospace, and long keys may break anywhere */
.cp-legal__cat-name[b-vzn4tjxqxf] {
    margin: 0;
    font-family: var(--cp-font-mono);
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-text);
    overflow-wrap: anywhere;
}

.cp-legal__cat-name.is-plain[b-vzn4tjxqxf] { font-family: var(--cp-font-body); }

.cp-legal__cat-desc[b-vzn4tjxqxf] {
    margin: 0.375rem 0 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-legal__cell[b-vzn4tjxqxf] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding-left: 3.25rem;
}

.cp-legal__cell-label[b-vzn4tjxqxf] {
    font-size: var(--cp-text-xs);
    font-weight: 500;
    color: var(--cp-text-2);
}

.cp-legal__cell-value[b-vzn4tjxqxf] {
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2-strong);
}

.cp-legal__category[b-vzn4tjxqxf] {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.25rem 0.625rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-bg-muted);
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2-strong);
}

.cp-legal__category.is-accent[b-vzn4tjxqxf] {
    border-color: color-mix(in srgb, var(--cp-primary) 20%, transparent);
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-legal__link[b-vzn4tjxqxf] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: var(--cp-text-xs);
    font-weight: 600;
    color: var(--cp-primary);
    text-decoration: none;
    text-underline-offset: 4px;
}

.cp-legal__link:hover[b-vzn4tjxqxf] { text-decoration: underline; }

.cp-legal__prose .cp-legal__link[b-vzn4tjxqxf] { font-size: inherit; }

.cp-legal__footnotes[b-vzn4tjxqxf] {
    display: grid;
    gap: 0.5rem;
    margin-top: 1rem;
}

/* ---- control, changes and contact ---- */
.cp-legal__prose[b-vzn4tjxqxf] {
    max-width: 42rem;
}

.cp-legal__prose p[b-vzn4tjxqxf] {
    margin: 0 0 0.75rem;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2-strong);
}

.cp-legal__updated[b-vzn4tjxqxf] {
    margin: 1.5rem 0 0;
    font-size: var(--cp-text-xs);
    color: var(--cp-text-2);
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-legal__inner[b-vzn4tjxqxf] { padding-top: 3rem; }
    .cp-legal__title[b-vzn4tjxqxf] { font-size: 3rem; }
    .cp-legal__lead[b-vzn4tjxqxf] { font-size: var(--cp-text-md); }
}

/* Tablet: the entry on its own line, its cells side by side under the text, each with its label. */
@media (min-width: 576px) and (max-width: 991.98px) {
    .cp-legal__row[b-vzn4tjxqxf] {
        grid-template-columns: 2.375rem repeat(3, minmax(0, 1fr));
        column-gap: 0.875rem;
        padding: 1.25rem 1.5rem;
    }

    .cp-legal__row.is-third[b-vzn4tjxqxf] { grid-template-columns: 2.375rem repeat(2, minmax(0, 1fr)); }

    .cp-legal__cat[b-vzn4tjxqxf] { grid-column: 1 / -1; }
    .cp-legal__cell[b-vzn4tjxqxf] { padding-left: 0; }
    .cp-legal__row > :nth-child(2)[b-vzn4tjxqxf] { grid-column: 2; }
}

@media (min-width: 992px) {
    .cp-legal__list-head[b-vzn4tjxqxf],
    .cp-legal__row[b-vzn4tjxqxf] {
        grid-template-columns: minmax(0, 1fr) 10rem 8rem 13rem;
        align-items: center;
        gap: 1.25rem;
    }

    .cp-legal__list-head.is-third[b-vzn4tjxqxf],
    .cp-legal__row.is-third[b-vzn4tjxqxf] { grid-template-columns: minmax(0, 1fr) 13rem 11rem; }

    .cp-legal__list-head[b-vzn4tjxqxf] {
        display: grid;
        padding: 0.75rem 1.5rem;
        border-bottom: 1px solid var(--cp-border);
        background: color-mix(in srgb, var(--cp-bg-muted) 70%, transparent);
        font-size: var(--cp-text-xs);
        font-weight: 500;
        color: var(--cp-text-2);
    }

    .cp-legal__row[b-vzn4tjxqxf] { padding: 1.25rem 1.5rem; }

    .cp-legal__cell[b-vzn4tjxqxf] { padding-left: 0; }

    /* the header row names the columns on wide screens; the per-cell labels stay for assistive tech */
    .cp-legal__cell-label[b-vzn4tjxqxf] {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}
/* /Pages/Profile.razor.rz.scp.css */
/* Profile view (PR 05.33). Composition from Lovable "shortlink-studio" src/routes/profile.tsx (commit 09acdec) on the
   frame of the account views: header, eyebrow and title rules copied value-for-value from Pages/ApiKeys.razor.css.
   Values from tokens.css; fields (.form-control, .form-select, .cp-field, .cp-field__error/__ok), buttons, the
   status badge, the empty state and the dialog frame (.cp-modal*) come from compacto.css and Components/Ui. */

/* same technical grid as the other views (compacto.css .cp-grid-bg), with the fainter 42 % line */
.cp-profile[b-4qdnp95mfb] {
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    min-height: calc(100vh - var(--cp-nav-h));
}

:root[data-bs-theme="high-contrast"] .cp-profile[b-4qdnp95mfb] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
}

/* Lovable keeps the profile narrower than the lists (max-w-5xl) */
.cp-profile__inner[b-4qdnp95mfb] {
    max-width: 64rem;
    padding-top: 2rem;
    padding-bottom: 4rem;
}

/* ---- header ---- */
.cp-profile__head[b-4qdnp95mfb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2.25rem;
}

.cp-profile__eyebrow[b-4qdnp95mfb] { margin: 0 0 0.75rem; }

.cp-profile__title[b-4qdnp95mfb] {
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: var(--cp-tracking-heading);
    color: var(--cp-text);
}

.cp-profile__lead[b-4qdnp95mfb] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-profile__identity[b-4qdnp95mfb] {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.cp-profile__identity-text[b-4qdnp95mfb] { min-width: 0; }

.cp-profile__name[b-4qdnp95mfb] {
    margin: 0;
    overflow-wrap: anywhere;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-profile__zone[b-4qdnp95mfb] {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* loading / load error */
.cp-profile__state[b-4qdnp95mfb] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.25rem;
    border-top: 1px solid var(--cp-border);
    border-bottom: 1px solid var(--cp-border);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- sections: title on the left, fields on the right (stacked on small screens) ---- */
.cp-profile__form[b-4qdnp95mfb] { border-top: 1px solid var(--cp-border); }

.cp-profile__section[b-4qdnp95mfb] {
    display: grid;
    gap: 1.5rem;
    padding: 2rem 0;
}

.cp-profile__section + .cp-profile__section[b-4qdnp95mfb] { border-top: 1px solid var(--cp-border); }

.cp-profile__section-title[b-4qdnp95mfb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-family: var(--cp-font-heading);
    font-size: var(--cp-text-lg);
    font-weight: 500;
    color: var(--cp-text);
}

.cp-profile__section-title[b-4qdnp95mfb]  .cp-icon { color: var(--cp-primary); }

.cp-profile__section-lead[b-4qdnp95mfb] {
    margin: 0.5rem 0 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-profile__fields[b-4qdnp95mfb] {
    display: grid;
    gap: 1.25rem;
    min-width: 0;
}

.cp-profile__fields .form-control[b-4qdnp95mfb],
.cp-profile__fields .form-select[b-4qdnp95mfb] {
    min-height: 3rem;
    box-shadow: var(--cp-shadow-card);
}

.cp-profile__hint[b-4qdnp95mfb] {
    margin: 0.75rem 0 0;
    font-size: var(--cp-text-xs);
    line-height: var(--cp-leading-body);
}

/* password group inside the security section */
.cp-profile__group[b-4qdnp95mfb] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.cp-profile__group-title[b-4qdnp95mfb] {
    float: none;
    width: auto;
    margin: 0 0 0.75rem;
    padding: 0;
    font-size: var(--cp-text-sm);
    font-weight: 600;
    color: var(--cp-text);
}

.cp-profile__code[b-4qdnp95mfb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.cp-profile__code .form-control[b-4qdnp95mfb] {
    flex: 1 1 12rem;
    width: auto;
}

.cp-profile__factor[b-4qdnp95mfb] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

/* ---- errors and save bar ---- */
.cp-profile__alert[b-4qdnp95mfb] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 1.25rem;
    padding: 0.75rem;
    border: 1px solid color-mix(in srgb, var(--cp-danger) 30%, transparent);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-danger-bg);
    font-size: var(--cp-text-sm);
    color: var(--cp-danger);
}

.cp-profile__alert[b-4qdnp95mfb]  .cp-icon {
    flex: 0 0 auto;
    margin-top: 0.125rem;
}

.cp-profile__alert ul[b-4qdnp95mfb] {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cp-profile__bar[b-4qdnp95mfb] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 0;
    border-top: 1px solid var(--cp-border);
}

.cp-profile__status[b-4qdnp95mfb] {
    display: grid;
    gap: 0.25rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-profile__status p[b-4qdnp95mfb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
}

.cp-profile__status.is-done[b-4qdnp95mfb] { color: var(--cp-primary); }

.cp-profile__status[b-4qdnp95mfb]  .cp-icon { flex: 0 0 auto; }

.cp-profile__modal-text[b-4qdnp95mfb] {
    margin: 0;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-profile__inner[b-4qdnp95mfb] { padding-top: 3rem; }
    .cp-profile__title[b-4qdnp95mfb] { font-size: 3rem; }
    .cp-profile__lead[b-4qdnp95mfb] { font-size: var(--cp-text-md); }

    .cp-profile__fields.is-two[b-4qdnp95mfb] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-profile__fields.is-two > .is-wide[b-4qdnp95mfb] { grid-column: 1 / -1; }
}

@media (min-width: 768px) {
    .cp-profile__section[b-4qdnp95mfb] {
        grid-template-columns: 15.625rem minmax(0, 1fr);
        column-gap: 3rem;
    }
}
/* /Pages/RegisterNewUser.razor.rz.scp.css */
/* /register sign-up view (PR 05.07). Composition from Lovable "shortlink-studio" src/routes/register.tsx
   (same split card and brand panel as /auth, see AuthStart.razor.css); values from tokens.css.
   Buttons, inputs, selects, alerts, field status lines and the skip link come from compacto.css. */

.cp-reg[b-ehnwi3oukf] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
    --cp-grid-line: color-mix(in srgb, var(--cp-border) 42%, transparent);
    --cp-reg-ink: #096C4B;
    --cp-reg-ink-fg: #F8FAFC;
    --cp-reg-glow: color-mix(in srgb, var(--cp-primary) 30%, transparent);
    --cp-reg-glow-soft: color-mix(in srgb, var(--cp-primary) 15%, transparent);
}

:root[data-bs-theme="dark"] .cp-reg[b-ehnwi3oukf] {
    --cp-reg-ink: #005C3E;
}

:root[data-bs-theme="high-contrast"] .cp-reg[b-ehnwi3oukf] {
    --cp-grid-line: rgba(255, 255, 255, 0.22);
    --cp-reg-ink: #000000;
    --cp-reg-ink-fg: #FFFFFF;
    --cp-reg-glow: transparent;
    --cp-reg-glow-soft: transparent;
}

/* ---- top bar: language + theme ---- */
.cp-reg__bar[b-ehnwi3oukf] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem;
    padding: 0.75rem var(--cp-gutter);
}

.cp-reg__lang[b-ehnwi3oukf]  .btn {
    height: var(--cp-btn-md);
    padding: 0 0.875rem;
    border: 0;
    border-radius: var(--cp-radius-pill);
    background: transparent;
    color: var(--cp-text) !important;
    font-weight: 500;
    font-size: var(--cp-text-sm);
}

.cp-reg__lang[b-ehnwi3oukf]  .btn:hover,
.cp-reg__lang[b-ehnwi3oukf]  .btn:focus-visible,
.cp-reg__lang[b-ehnwi3oukf]  .btn.show {
    background: var(--cp-accent-bg);
    color: var(--cp-accent-fg) !important;
}

.cp-reg__theme[b-ehnwi3oukf] {
    width: var(--cp-btn-md);
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-card);
}

.cp-reg__theme[b-ehnwi3oukf]  .cp-theme-toggle__icon { display: none; }
:root[data-bs-theme="light"] .cp-reg__theme[b-ehnwi3oukf]  .cp-theme-toggle__icon--light,
:root:not([data-bs-theme]) .cp-reg__theme[b-ehnwi3oukf]  .cp-theme-toggle__icon--light { display: inline-block; }
:root[data-bs-theme="dark"] .cp-reg__theme[b-ehnwi3oukf]  .cp-theme-toggle__icon--dark { display: inline-block; }
:root[data-bs-theme="high-contrast"] .cp-reg__theme[b-ehnwi3oukf]  .cp-theme-toggle__icon--hc { display: inline-block; }

/* ---- card ---- */
.cp-reg__main[b-ehnwi3oukf] {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    padding: 0 1rem 1.5rem;
}

.cp-reg__card[b-ehnwi3oukf] {
    display: grid;
    width: 100%;
    max-width: 64rem;
    overflow: hidden;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
}

@media (min-width: 992px) {
    .cp-reg__card[b-ehnwi3oukf] {
        grid-template-columns: 1fr 1.35fr;
    }
}

/* ---- left: brand panel (same as /auth) ---- */
.cp-reg__hero[b-ehnwi3oukf] {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4rem;
    min-width: 0;
    overflow: hidden;
    padding: 2rem;
    background: var(--cp-reg-ink);
    color: var(--cp-reg-ink-fg);
}

:root[data-bs-theme="high-contrast"] .cp-reg__hero[b-ehnwi3oukf] {
    border-right: 1px solid var(--cp-border);
}

.cp-reg__scene[b-ehnwi3oukf] {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.cp-reg__glow[b-ehnwi3oukf] {
    position: absolute;
    border-radius: 50%;
    filter: blur(64px);
    animation: cp-reg-float-b-ehnwi3oukf 9s ease-in-out infinite;
}

.cp-reg__glow--a[b-ehnwi3oukf] {
    right: -5rem;
    top: 4rem;
    width: 16rem;
    height: 16rem;
    background: var(--cp-reg-glow);
}

.cp-reg__glow--b[b-ehnwi3oukf] {
    left: -4rem;
    bottom: -6rem;
    width: 18rem;
    height: 18rem;
    background: var(--cp-reg-glow-soft);
    animation-delay: -4.5s;
}

.cp-reg__route[b-ehnwi3oukf] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    color: #FFFFFF;
    fill: currentColor;
}

.cp-reg__route-path[b-ehnwi3oukf] {
    fill: none;
    stroke: currentColor;
    stroke-opacity: 0.25;
    animation: cp-reg-dash-b-ehnwi3oukf 1.6s linear infinite;
}

.cp-reg__brand[b-ehnwi3oukf],
.cp-reg__intro[b-ehnwi3oukf] {
    position: relative;
}

.cp-reg__brand[b-ehnwi3oukf] {
    display: inline-flex;
    align-self: flex-start;
    color: var(--cp-reg-ink-fg);
    text-decoration: none;
    --cp-logo-accent: #9EEBC9;
}

:root[data-bs-theme="high-contrast"] .cp-reg__brand[b-ehnwi3oukf] {
    --cp-logo-accent: #27ED74;
}

.cp-reg__title[b-ehnwi3oukf] {
    margin: 0;
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--cp-reg-ink-fg);
}

.cp-reg__lead[b-ehnwi3oukf] {
    max-width: 20rem;
    margin: 1rem 0 0;
    font-size: var(--cp-text-md);
    line-height: var(--cp-leading-body);
    color: color-mix(in srgb, var(--cp-reg-ink-fg) 70%, transparent);
}

/* ---- right: form panel ---- */
.cp-reg__panel[b-ehnwi3oukf] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 2.5rem 1.5rem;
    outline: none;
}

.cp-reg__panel-title[b-ehnwi3oukf] {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--cp-text);
}

.cp-reg__panel-lead[b-ehnwi3oukf] {
    margin: 0.25rem 0 0;
    font-size: var(--cp-text-md);
    color: var(--cp-text-2);
}

.cp-reg__form[b-ehnwi3oukf] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

.cp-reg__row[b-ehnwi3oukf] {
    display: grid;
    gap: 0.75rem;
}

@media (min-width: 576px) {
    .cp-reg__row[b-ehnwi3oukf] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.cp-reg__field[b-ehnwi3oukf] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cp-reg__field .form-label[b-ehnwi3oukf] {
    margin-bottom: 0.3rem;
    font-weight: 600;
    color: var(--cp-text);
}

.cp-reg__optional[b-ehnwi3oukf] {
    font-weight: 400;
    color: var(--cp-text-2);
}

.cp-reg__field .form-control[b-ehnwi3oukf],
.cp-reg__field .form-select[b-ehnwi3oukf] {
    width: 100%;
    min-height: var(--cp-btn-md);
    border-radius: var(--cp-radius-panel);
    background-color: var(--cp-bg);
    box-shadow: var(--cp-shadow-card);
}

.cp-reg__field .form-control:focus[b-ehnwi3oukf],
.cp-reg__field .form-select:focus[b-ehnwi3oukf] {
    border-color: var(--cp-primary);
    box-shadow: 0 0 0 3px var(--cp-focus-ring);
}

.cp-reg__field .form-control.is-invalid[b-ehnwi3oukf],
.cp-reg__field .form-select.is-invalid[b-ehnwi3oukf] {
    border-color: var(--cp-danger);
    background-image: none;
}

.cp-reg__field .form-control.is-valid[b-ehnwi3oukf] {
    border-color: var(--cp-primary);
    background-image: none;
}

/* ---- password rules ---- */
.cp-reg__rules[b-ehnwi3oukf] {
    display: grid;
    gap: 0.375rem 1.5rem;
    margin: 0;
    padding: 0.75rem 1rem;
    border: 1px solid var(--cp-border);
    border-radius: var(--cp-radius-panel);
    background: var(--cp-bg);
    list-style: none;
}

@media (min-width: 576px) {
    .cp-reg__rules[b-ehnwi3oukf] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.cp-reg__rule[b-ehnwi3oukf] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 13px;
    line-height: 1.25;
    color: var(--cp-text-2);
    transition: color var(--cp-motion-fast) ease;
}

.cp-reg__rule.is-ok[b-ehnwi3oukf] {
    color: var(--cp-primary);
}

.cp-reg__rule-mark[b-ehnwi3oukf] {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    border: 1px solid var(--cp-border);
    border-radius: 50%;
    transition: background-color var(--cp-motion-fast) ease, border-color var(--cp-motion-fast) ease;
}

.cp-reg__rule.is-ok .cp-reg__rule-mark[b-ehnwi3oukf] {
    border-color: var(--cp-primary);
    background: var(--cp-primary);
    color: var(--cp-on-primary);
}

/* ---- captcha, terms, submit ---- */
.cp-reg__captcha[b-ehnwi3oukf] {
    display: flex;
    justify-content: center;
}

.cp-reg__captcha:has(#hcaptcha-container:empty)[b-ehnwi3oukf] {
    display: none;
}

.cp-reg__terms[b-ehnwi3oukf] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 0;
    padding-left: 0;
    font-size: var(--cp-text-sm);
    line-height: var(--cp-leading-body);
    color: var(--cp-text-2);
}

.cp-reg__terms .form-check-input[b-ehnwi3oukf] {
    float: none;
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    margin: 0.2rem 0 0;
    border-radius: 4px;
    cursor: pointer;
}

.cp-reg__terms .form-check-label[b-ehnwi3oukf] {
    flex: 1;
    min-width: 0;
    cursor: pointer;
}

/* js/register-validation.js inserts its error node right after the checkbox: keep the label glued to the
   check and drop the message to its own line underneath. */
.cp-reg__terms[b-ehnwi3oukf] {
    flex-wrap: wrap;
}

.cp-reg__terms[b-ehnwi3oukf]  .invalid-feedback {
    order: 1;
    flex-basis: 100%;
    margin: 0;
    padding-left: 1.75rem;
}

.cp-reg__terms a[b-ehnwi3oukf],
.cp-reg__signin a[b-ehnwi3oukf],
.cp-reg__footer a[b-ehnwi3oukf] {
    color: var(--cp-primary);
    font-weight: 500;
    text-decoration: none;
    text-underline-offset: 4px;
}

.cp-reg__signin a[b-ehnwi3oukf],
.cp-reg__footer a[b-ehnwi3oukf] {
    font-weight: 600;
}

.cp-reg__terms a:hover[b-ehnwi3oukf],
.cp-reg__signin a:hover[b-ehnwi3oukf],
.cp-reg__footer a:hover[b-ehnwi3oukf] {
    text-decoration: underline;
}

.cp-reg__submit[b-ehnwi3oukf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: var(--cp-btn-lg);
    --bs-btn-font-size: var(--cp-text-md);
    --x-btn-font-size: var(--cp-text-md);
    font-weight: 600;
}

.cp-reg__submit:not(:disabled):hover[b-ehnwi3oukf] {
    transform: translateY(-2px);
}

.cp-reg__alert[b-ehnwi3oukf] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
}

.cp-reg__signin[b-ehnwi3oukf] {
    margin: 0;
    text-align: center;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-reg__footer[b-ehnwi3oukf] {
    padding: 0 var(--cp-gutter) 1rem;
    text-align: center;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

/* ---- success overlay (shown ~4 s before redirecting to sign-in) ---- */
.cp-reg__overlay[b-ehnwi3oukf] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(6, 14, 24, 0.55);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.cp-reg__overlay-card[b-ehnwi3oukf] {
    width: min(460px, 100%);
    padding: 2rem 1.5rem 1.5rem;
    border: 1px solid var(--cp-border);
    border-radius: 1.5rem;
    background: var(--cp-surface);
    box-shadow: var(--cp-shadow-elevated);
    text-align: center;
    animation: cp-reg-pop-b-ehnwi3oukf 0.25s var(--cp-ease) both;
}

.cp-reg__overlay-icon[b-ehnwi3oukf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: var(--cp-accent-bg);
    color: var(--cp-primary);
}

.cp-reg__overlay-title[b-ehnwi3oukf] {
    margin: 1rem 0 0.5rem;
    font-size: var(--cp-text-h3);
    font-weight: 700;
    color: var(--cp-text);
}

.cp-reg__overlay-text[b-ehnwi3oukf] {
    margin: 0 0 1.25rem;
    font-size: var(--cp-text-sm);
    color: var(--cp-text-2);
}

.cp-reg__progress[b-ehnwi3oukf] {
    height: 0.375rem;
    overflow: hidden;
    border-radius: var(--cp-radius-pill);
    background: var(--cp-surface-2);
}

.cp-reg__progress-bar[b-ehnwi3oukf] {
    width: 0;
    height: 100%;
    background: var(--cp-primary-fill);
    animation: cp-reg-fill-b-ehnwi3oukf 4.2s linear forwards;
}

/* ---- motion ---- */
.cp-reg__fade[b-ehnwi3oukf] {
    animation: cp-reg-fade-up-b-ehnwi3oukf 0.7s var(--cp-ease) both;
}

.cp-reg__fade--1[b-ehnwi3oukf] { animation-delay: 0.15s; }
.cp-reg__fade--2[b-ehnwi3oukf] { animation-delay: 0.3s; }
.cp-reg__fade--3[b-ehnwi3oukf] { animation-delay: 0.35s; }
.cp-reg__fade--4[b-ehnwi3oukf] { animation-delay: 0.45s; }
.cp-reg__fade--5[b-ehnwi3oukf] { animation-delay: 0.55s; }

@keyframes cp-reg-fade-up-b-ehnwi3oukf {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes cp-reg-float-b-ehnwi3oukf {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(-14px, 16px); }
}

@keyframes cp-reg-dash-b-ehnwi3oukf {
    to { stroke-dashoffset: -48; }
}

@keyframes cp-reg-pop-b-ehnwi3oukf {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes cp-reg-fill-b-ehnwi3oukf {
    from { width: 0; }
    to { width: 100%; }
}

/* ---- breakpoints ---- */
@media (min-width: 576px) {
    .cp-reg__hero[b-ehnwi3oukf] { padding: 2.5rem; }
    .cp-reg__panel[b-ehnwi3oukf] { padding: 2.5rem; }
}

@media (min-width: 768px) {
    .cp-reg__bar[b-ehnwi3oukf] { padding: 0.75rem 3rem; }
    .cp-reg__main[b-ehnwi3oukf] { padding: 0 3rem 1rem; }
    .cp-reg__hero[b-ehnwi3oukf] { padding: 3rem; }
    .cp-reg__panel[b-ehnwi3oukf] { padding: 1.5rem 3rem; }
    .cp-reg__title[b-ehnwi3oukf] { font-size: 2.75rem; }
}

/* phones: the brand panel stacks on top; keep it short so the form starts on the first screen */
@media (max-width: 991.98px) {
    .cp-reg__hero[b-ehnwi3oukf] { gap: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .cp-reg__fade[b-ehnwi3oukf],
    .cp-reg__glow[b-ehnwi3oukf],
    .cp-reg__route-path[b-ehnwi3oukf],
    .cp-reg__overlay-card[b-ehnwi3oukf] {
        animation: none;
    }

    .cp-reg__route-pulse[b-ehnwi3oukf] {
        display: none;
    }

    .cp-reg__submit:not(:disabled):hover[b-ehnwi3oukf] {
        transform: none;
    }
}
