/*
 * PRO Foundation Slice
 *
 * This stylesheet is intentionally opt-in. Every rule requires a .pro-ui-v2
 * ancestor so it can be loaded by the shared shell without changing legacy
 * screens. It contains primitives only; screen components remain legacy until
 * their screen-family migration is explicitly approved.
 */

.pro-ui-v2 {
    color-scheme: light;
    --pro-v2-color-app-background: #eef1f3;
    --pro-v2-color-surface-primary: #ffffff;
    --pro-v2-color-surface-secondary: #e4e8ec;
    --pro-v2-color-surface-elevated: #ffffff;
    --pro-v2-color-text-primary: #111315;
    --pro-v2-color-text-secondary: #5e666d;
    --pro-v2-color-text-muted: #879097;
    --pro-v2-color-border: #d8dee3;
    --pro-v2-color-accent: #111315;
    --pro-v2-color-accent-soft: #e7eaed;
    --pro-v2-color-brand: #c40000;
    --pro-v2-color-success: #167a52;
    --pro-v2-color-warning: #9a5a00;
    --pro-v2-color-danger: #b42318;
    --pro-v2-color-info: #2767a8;
    --pro-v2-color-overlay: rgba(12, 16, 20, .64);
    --pro-v2-color-disabled-surface: #f2f3f4;
    --pro-v2-color-disabled-text: #a0a6ab;

    --pro-v2-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --pro-v2-font-display-size: 32px;
    --pro-v2-font-display-line: 38px;
    --pro-v2-font-h1-size: 28px;
    --pro-v2-font-h1-line: 34px;
    --pro-v2-font-h2-size: 22px;
    --pro-v2-font-h2-line: 28px;
    --pro-v2-font-h3-size: 18px;
    --pro-v2-font-h3-line: 24px;
    --pro-v2-font-title-size: 16px;
    --pro-v2-font-title-line: 22px;
    --pro-v2-font-body-size: 16px;
    --pro-v2-font-body-line: 24px;
    --pro-v2-font-body-small-size: 14px;
    --pro-v2-font-body-small-line: 20px;
    --pro-v2-font-label-size: 14px;
    --pro-v2-font-label-line: 18px;
    --pro-v2-font-caption-size: 12px;
    --pro-v2-font-caption-line: 16px;
    --pro-v2-font-numeric-size: 24px;
    --pro-v2-font-numeric-line: 30px;

    --pro-v2-space-1: 4px;
    --pro-v2-space-2: 8px;
    --pro-v2-space-3: 12px;
    --pro-v2-space-4: 16px;
    --pro-v2-space-5: 20px;
    --pro-v2-space-6: 24px;
    --pro-v2-space-8: 32px;
    --pro-v2-space-10: 40px;
    --pro-v2-space-12: 48px;
    --pro-v2-space-16: 64px;
    --pro-v2-page-gutter: 16px;
    --pro-v2-tablet-gutter: 24px;

    --pro-v2-radius-xs: 8px;
    --pro-v2-radius-sm: 12px;
    --pro-v2-radius-md: 16px;
    --pro-v2-radius-lg: 20px;
    --pro-v2-radius-xl: 28px;
    --pro-v2-radius-pill: 999px;

    --pro-v2-elevation-flat: none;
    --pro-v2-elevation-low: 0 2px 8px rgba(17, 19, 21, .05);
    --pro-v2-elevation-card: 0 8px 24px rgba(17, 19, 21, .07);
    --pro-v2-elevation-floating: 0 12px 32px rgba(17, 19, 21, .12);
    --pro-v2-elevation-modal: 0 20px 48px rgba(17, 19, 21, .18);

    --pro-v2-touch-min: 44px;
    --pro-v2-touch-preferred: 48px;
    --pro-v2-control-height: 48px;
    --pro-v2-safe-top: env(safe-area-inset-top, 0px);
    --pro-v2-safe-right: env(safe-area-inset-right, 0px);
    --pro-v2-safe-bottom: env(safe-area-inset-bottom, 0px);
    --pro-v2-safe-left: env(safe-area-inset-left, 0px);
    --pro-v2-focus-ring: 3px solid var(--pro-v2-color-info);
    --pro-v2-shell-min-height: 100dvh;
    --pro-v2-bottom-reserved: calc(72px + var(--pro-v2-safe-bottom));
    --pro-v2-z-sticky: 20;
    --pro-v2-z-floating: 30;
    --pro-v2-z-toast: 40;

    font-family: var(--pro-v2-font-family);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-app-background);
}

.pro-ui-v2__container {
    width: min(100%, 960px);
    margin-inline: auto;
    padding-inline: max(var(--pro-v2-page-gutter), var(--pro-v2-safe-left)) max(var(--pro-v2-page-gutter), var(--pro-v2-safe-right));
}

.pro-ui-v2__app-shell {
    display: flex;
    min-height: var(--pro-v2-shell-min-height);
    flex-direction: column;
    overflow-x: clip;
    overscroll-behavior-x: none;
}

.pro-ui-v2__main {
    min-height: 0;
    padding-bottom: calc(var(--pro-v2-space-8) + var(--pro-v2-bottom-reserved));
}

.pro-ui-v2__stack {
    display: grid;
    gap: var(--pro-v2-space-4);
}

.pro-ui-v2__stack--compact {
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2__cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2__surface {
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-md);
    box-shadow: var(--pro-v2-elevation-flat);
}

.pro-ui-v2__surface--secondary {
    background: var(--pro-v2-color-surface-secondary);
}

.pro-ui-v2__surface--elevated {
    border-color: transparent;
    box-shadow: var(--pro-v2-elevation-floating);
}

.pro-ui-v2__surface--card {
    box-shadow: var(--pro-v2-elevation-card);
}

.pro-ui-v2__surface--modal {
    border-color: transparent;
    border-radius: var(--pro-v2-radius-lg);
    box-shadow: var(--pro-v2-elevation-modal);
}

html.pro-ui-v2-dialog-open {
    overflow: hidden;
}

.pro-ui-v2__dialog-backdrop {
    position: fixed;
    z-index: 100;
    inset: 0;
    display: grid;
    place-items: center;
    overflow-y: auto;
    padding: max(var(--pro-v2-space-4), var(--pro-v2-safe-top)) max(var(--pro-v2-space-4), var(--pro-v2-safe-right)) max(var(--pro-v2-space-4), var(--pro-v2-safe-bottom)) max(var(--pro-v2-space-4), var(--pro-v2-safe-left));
    background: var(--pro-v2-color-overlay);
}

.pro-ui-v2__dialog {
    width: min(100%, 480px);
    margin: auto;
    padding: var(--pro-v2-space-6);
}

.pro-ui-v2__dialog-title,
.pro-ui-v2__dialog-message,
.pro-ui-v2__dialog-context {
    margin: 0;
}

.pro-ui-v2__dialog-title {
    font-size: var(--pro-v2-font-h2-size);
    line-height: var(--pro-v2-font-h2-line);
    font-weight: 700;
}

.pro-ui-v2__dialog-message {
    margin-top: var(--pro-v2-space-3);
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-size);
    line-height: var(--pro-v2-font-body-line);
}

.pro-ui-v2__dialog-context {
    margin-top: var(--pro-v2-space-2);
    color: var(--pro-v2-color-text-muted);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
    overflow-wrap: anywhere;
}

.pro-ui-v2__dialog-actions {
    display: flex;
    justify-content: end;
    gap: var(--pro-v2-space-2);
    margin-top: var(--pro-v2-space-6);
}

.pro-ui-v2__dialog-actions .pro-ui-v2__button {
    min-width: 120px;
}

@media (max-width: 480px) {
    .pro-ui-v2__dialog {
        padding: var(--pro-v2-space-5);
    }

    .pro-ui-v2__dialog-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .pro-ui-v2__dialog-actions .pro-ui-v2__button {
        width: 100%;
    }
}

.pro-ui-v2__type {
    margin: 0;
    font-family: var(--pro-v2-font-family);
    color: var(--pro-v2-color-text-primary);
}

.pro-ui-v2__type--display {
    font-size: var(--pro-v2-font-display-size);
    line-height: var(--pro-v2-font-display-line);
    font-weight: 750;
}

.pro-ui-v2__type--h1 {
    font-size: var(--pro-v2-font-h1-size);
    line-height: var(--pro-v2-font-h1-line);
    font-weight: 750;
}

.pro-ui-v2__type--h2 {
    font-size: var(--pro-v2-font-h2-size);
    line-height: var(--pro-v2-font-h2-line);
    font-weight: 700;
}

.pro-ui-v2__type--h3 {
    font-size: var(--pro-v2-font-h3-size);
    line-height: var(--pro-v2-font-h3-line);
    font-weight: 700;
}

.pro-ui-v2__type--title {
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
    font-weight: 700;
}

.pro-ui-v2__type--body {
    font-size: var(--pro-v2-font-body-size);
    line-height: var(--pro-v2-font-body-line);
    font-weight: 400;
}

.pro-ui-v2__type--body-small {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
    font-weight: 400;
}

.pro-ui-v2__type--label {
    font-size: var(--pro-v2-font-label-size);
    line-height: var(--pro-v2-font-label-line);
    font-weight: 650;
}

.pro-ui-v2__type--caption {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
    font-weight: 600;
}

.pro-ui-v2__type--numeric {
    font-size: var(--pro-v2-font-numeric-size);
    line-height: var(--pro-v2-font-numeric-line);
    font-weight: 750;
    font-variant-numeric: tabular-nums;
}

.pro-ui-v2__button,
.pro-ui-v2__icon-button {
    display: inline-flex;
    min-width: var(--pro-v2-touch-min);
    min-height: var(--pro-v2-touch-preferred);
    align-items: center;
    justify-content: center;
    gap: var(--pro-v2-space-2);
    border: 1px solid transparent;
    border-radius: var(--pro-v2-radius-sm);
    font: inherit;
    font-weight: 650;
    line-height: 1.2;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease;
}

.pro-ui-v2__button {
    padding: var(--pro-v2-space-2) var(--pro-v2-space-4);
}

.pro-ui-v2__icon-button {
    width: var(--pro-v2-touch-preferred);
    padding: var(--pro-v2-space-2);
}

.pro-ui-v2__button--primary {
    color: var(--pro-v2-color-surface-primary);
    background: var(--pro-v2-color-accent);
}

.pro-ui-v2__button--secondary,
.pro-ui-v2__icon-button {
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-secondary);
    border-color: var(--pro-v2-color-border);
}

.pro-ui-v2__button--quiet {
    color: var(--pro-v2-color-text-primary);
    background: transparent;
}

.pro-ui-v2__button:hover,
.pro-ui-v2__icon-button:hover {
    border-color: var(--pro-v2-color-text-primary);
}

.pro-ui-v2__button:active,
.pro-ui-v2__icon-button:active,
.pro-ui-v2__button[data-state="pressed"],
.pro-ui-v2__icon-button[data-state="pressed"] {
    transform: translateY(1px);
}

.pro-ui-v2__button:focus-visible,
.pro-ui-v2__icon-button:focus-visible,
.pro-ui-v2__focus:focus-visible,
.pro-ui-v2__focus[data-focus-visible="true"] {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 3px;
}

.pro-ui-v2__button[data-state="selected"],
.pro-ui-v2__icon-button[data-state="selected"] {
    color: var(--pro-v2-color-surface-primary);
    background: var(--pro-v2-color-accent);
    border-color: var(--pro-v2-color-accent);
}

.pro-ui-v2__button:disabled,
.pro-ui-v2__icon-button:disabled,
.pro-ui-v2__button[data-state="disabled"],
.pro-ui-v2__icon-button[data-state="disabled"] {
    color: var(--pro-v2-color-disabled-text);
    background: var(--pro-v2-color-disabled-surface);
    border-color: var(--pro-v2-color-border);
    cursor: not-allowed;
    opacity: 1;
}

.pro-ui-v2__button[data-state="loading"],
.pro-ui-v2__icon-button[data-state="loading"] {
    cursor: progress;
    pointer-events: none;
}

.pro-ui-v2__button[data-state="error"],
.pro-ui-v2__icon-button[data-state="error"] {
    color: var(--pro-v2-color-danger);
    border-color: var(--pro-v2-color-danger);
}

.pro-ui-v2__button[data-state="success"],
.pro-ui-v2__icon-button[data-state="success"] {
    color: var(--pro-v2-color-success);
    border-color: var(--pro-v2-color-success);
}

.pro-ui-v2__status {
    display: inline-flex;
    min-height: var(--pro-v2-touch-min);
    align-items: center;
    gap: var(--pro-v2-space-2);
    padding: var(--pro-v2-space-2) var(--pro-v2-space-3);
    border-radius: var(--pro-v2-radius-pill);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
    font-weight: 600;
}

.pro-ui-v2__status--success {
    color: var(--pro-v2-color-success);
    background: color-mix(in srgb, var(--pro-v2-color-success) 12%, white);
}

.pro-ui-v2__status--warning {
    color: var(--pro-v2-color-warning);
    background: color-mix(in srgb, var(--pro-v2-color-warning) 12%, white);
}

.pro-ui-v2__status--error {
    color: var(--pro-v2-color-danger);
    background: color-mix(in srgb, var(--pro-v2-color-danger) 12%, white);
}

.pro-ui-v2__status--info {
    color: var(--pro-v2-color-info);
    background: color-mix(in srgb, var(--pro-v2-color-info) 12%, white);
}

.pro-ui-v2__sticky-actions {
    position: sticky;
    z-index: var(--pro-v2-z-sticky);
    bottom: 0;
    display: flex;
    gap: var(--pro-v2-space-2);
    padding: var(--pro-v2-space-3) max(var(--pro-v2-space-4), var(--pro-v2-safe-right)) calc(var(--pro-v2-space-3) + var(--pro-v2-safe-bottom)) max(var(--pro-v2-space-4), var(--pro-v2-safe-left));
    background: color-mix(in srgb, var(--pro-v2-color-surface-primary) 94%, transparent);
    box-shadow: var(--pro-v2-elevation-floating);
    backdrop-filter: blur(12px);
}

.pro-ui-v2__sticky-actions > * {
    flex: 1 1 0;
}

.pro-ui-v2__save-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2__save-bar > .pro-ui-v2__button {
    min-height: var(--pro-v2-touch-preferred);
}

.pro-ui-v2__save-bar > :where(.pro-ui-v2__button, .pro-ui-v2__status) {
    max-width: 100%;
}

.pro-ui-v2__bottom-inset {
    padding-bottom: calc(var(--pro-v2-space-8) + var(--pro-v2-bottom-reserved));
}

.pro-ui-v2 :where(input, select, textarea, button, a):focus {
    scroll-margin-block: calc(var(--pro-v2-bottom-reserved) + var(--pro-v2-space-4));
}

.pro-ui-v2 .skip-link {
    position: fixed;
    z-index: 100;
    top: calc(var(--pro-v2-safe-top) + var(--pro-v2-space-2));
    left: max(var(--pro-v2-safe-left), var(--pro-v2-space-2));
    min-height: var(--pro-v2-touch-min);
    padding: 10px 14px;
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-surface-primary);
    background: var(--pro-v2-color-text-primary);
    transform: translateY(-150%);
}

.pro-ui-v2 .skip-link:focus {
    transform: translateY(0);
}

.pro-ui-v2 .pro-ui-v2__toast-region {
    position: fixed;
    z-index: var(--pro-v2-z-toast);
    right: max(var(--pro-v2-space-4), var(--pro-v2-safe-right));
    bottom: calc(var(--pro-v2-bottom-reserved) - var(--pro-v2-space-4) + var(--pro-v2-space-3));
    left: max(var(--pro-v2-space-4), var(--pro-v2-safe-left));
    display: grid;
    justify-items: center;
    pointer-events: none;
}

.pro-ui-v2 .pro-ui-v2__toast {
    display: flex;
    width: min(100%, 460px);
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: var(--pro-v2-space-3);
    padding: var(--pro-v2-space-2) var(--pro-v2-space-2) var(--pro-v2-space-2) var(--pro-v2-space-4);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-md);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    box-shadow: var(--pro-v2-elevation-floating);
    pointer-events: auto;
}

/* Compatibility for the cached/legacy PWA updater producer. */
.pro-ui-v2 [data-pwa-update] {
    display: flex;
    width: min(100%, 460px);
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    gap: var(--pro-v2-space-3);
    padding: var(--pro-v2-space-2) var(--pro-v2-space-2) var(--pro-v2-space-2) var(--pro-v2-space-4);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-md);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    box-shadow: var(--pro-v2-elevation-floating);
    pointer-events: auto;
}

.pro-ui-v2 [data-pwa-update] :where(.button, button) {
    display: inline-flex;
    min-height: var(--pro-v2-touch-min);
    align-items: center;
    justify-content: center;
    padding: var(--pro-v2-space-2) var(--pro-v2-space-3);
    border: 1px solid var(--pro-v2-color-text-primary);
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-surface-primary);
    background: var(--pro-v2-color-text-primary);
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}

.pro-ui-v2 .pro-ui-v2__toast[data-tone="success"] {
    border-color: var(--pro-v2-color-success);
    background: color-mix(in srgb, var(--pro-v2-color-success) 12%, white);
}

.pro-ui-v2 .pro-ui-v2__toast[data-tone="warning"] {
    border-color: var(--pro-v2-color-warning);
    background: color-mix(in srgb, var(--pro-v2-color-warning) 12%, white);
}

.pro-ui-v2 .pro-ui-v2__toast[data-tone="error"] {
    border-color: var(--pro-v2-color-danger);
    background: color-mix(in srgb, var(--pro-v2-color-danger) 12%, white);
}

.pro-ui-v2 .pro-ui-v2__toast-close {
    display: inline-flex;
    min-width: var(--pro-v2-touch-min);
    min-height: var(--pro-v2-touch-min);
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-text-primary);
    background: transparent;
    cursor: pointer;
}

.pro-ui-v2 [hidden] {
    display: none !important;
}

@media (min-width: 600px) {
    .pro-ui-v2 {
        --pro-v2-page-gutter: var(--pro-v2-tablet-gutter);
    }

    .pro-ui-v2__container {
        width: min(100%, 1120px);
    }
}

@media (orientation: landscape) and (max-height: 600px) {
    .pro-ui-v2__app-shell {
        min-height: 100dvh;
    }

    .pro-ui-v2__sticky-actions {
        padding-top: var(--pro-v2-space-2);
        padding-bottom: max(var(--pro-v2-space-2), var(--pro-v2-safe-bottom));
    }
}

@media (forced-colors: active) {
    .pro-ui-v2__button,
    .pro-ui-v2__icon-button,
    .pro-ui-v2__surface {
        border: 1px solid ButtonText;
        box-shadow: none;
    }

    .pro-ui-v2__button:focus-visible,
    .pro-ui-v2__icon-button:focus-visible,
    .pro-ui-v2__focus:focus-visible {
        outline: 3px solid Highlight;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pro-ui-v2 *,
    .pro-ui-v2 *::before,
    .pro-ui-v2 *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (max-width: 600px) {
    .pro-ui-v2__save-bar > .pro-ui-v2__button {
        flex: 1 1 180px;
    }
}

/* AppShell migration bridge. Legacy screen content remains outside these rules. */
.pro-ui-v2 > .pro-ui-v2__app-shell {
    display: flex;
    min-height: var(--pro-v2-shell-min-height);
    flex-direction: column;
    overflow-x: clip;
    overscroll-behavior-x: none;
}

.pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__top-bar {
    position: sticky;
    z-index: var(--pro-v2-z-sticky);
    top: 0;
    display: grid;
    min-height: calc(56px + var(--pro-v2-safe-top));
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--pro-v2-space-2);
    padding: var(--pro-v2-safe-top) max(var(--pro-v2-space-4), var(--pro-v2-safe-right)) var(--pro-v2-space-2) max(var(--pro-v2-space-4), var(--pro-v2-safe-left));
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--pro-v2-color-border) 78%, transparent);
    border-radius: 0 0 var(--pro-v2-radius-lg) var(--pro-v2-radius-lg);
    color: var(--pro-v2-color-text-primary);
    background: rgba(255, 255, 255, .92);
    box-shadow: var(--pro-v2-elevation-low);
    backdrop-filter: blur(14px);
}

.pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__top-bar.top-bar-calculator {
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
}

.pro-ui-v2 .pro-ui-v2__top-bar-brand,
.pro-ui-v2 .pro-ui-v2__top-bar-action {
    display: inline-flex;
    min-width: var(--pro-v2-touch-preferred);
    min-height: var(--pro-v2-touch-preferred);
    align-items: center;
    justify-content: center;
}

.pro-ui-v2 .pro-ui-v2__top-bar-brand {
    color: var(--pro-v2-color-text-primary);
    text-decoration: none;
}

.pro-ui-v2 .pro-ui-v2__top-bar-brand .brand-mark {
    display: block;
    width: 50px;
    height: 25px;
    object-fit: contain;
}

.pro-ui-v2 .pro-ui-v2__top-bar-title {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
    font-weight: 700;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__top-bar.top-bar-calculator .pro-ui-v2__top-bar-title {
    text-align: left;
}

.pro-ui-v2 .pro-ui-v2__top-bar-action {
    padding: var(--pro-v2-space-2);
    border: 1px solid transparent;
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-text-primary);
    background: transparent;
    cursor: pointer;
    transition: background-color 120ms ease, border-color 120ms ease, transform 120ms ease;
}

.pro-ui-v2 .pro-ui-v2__top-bar-action:hover:not(:disabled) {
    border-color: var(--pro-v2-color-border);
    background: var(--pro-v2-color-accent-soft);
}

.pro-ui-v2 .pro-ui-v2__top-bar-action:active:not(:disabled) {
    transform: translateY(1px);
}

.pro-ui-v2 .pro-ui-v2__top-bar-action:disabled {
    color: var(--pro-v2-color-disabled-text);
    cursor: not-allowed;
}

.pro-ui-v2 .pro-ui-v2__top-bar-action:disabled .icon-trash {
    opacity: .42;
}

.pro-ui-v2 .pro-ui-v2__top-bar-action .icon,
.pro-ui-v2 .pro-ui-v2__top-bar-status .icon {
    width: 22px;
    height: 22px;
}

.pro-ui-v2 .pro-ui-v2__top-bar-status {
    display: inline-flex;
    min-height: var(--pro-v2-touch-min);
    align-items: center;
    justify-content: center;
    padding-inline: var(--pro-v2-space-2);
    border-radius: var(--pro-v2-radius-pill);
    color: var(--pro-v2-color-text-secondary);
    background: transparent;
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
    font-weight: 600;
    white-space: nowrap;
}

.pro-ui-v2 .pro-ui-v2__top-bar-status[data-tone="warning"] {
    color: var(--pro-v2-color-warning);
    background: transparent;
}

.pro-ui-v2 .pro-ui-v2__top-bar-status::before {
    width: 7px;
    height: 7px;
    margin-right: var(--pro-v2-space-2);
    border-radius: 50%;
    background: var(--pro-v2-color-success);
    content: "";
}

.pro-ui-v2 .pro-ui-v2__top-bar-status[data-tone="warning"]::before {
    background: var(--pro-v2-color-warning);
}

@media (max-width: 350px) {
    .pro-ui-v2 .pro-ui-v2__top-bar-status {
        padding-inline: 7px;
        font-size: 0.6875rem;
    }
}

.pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__main {
    flex: 1 0 auto;
    width: min(100%, 1120px);
    min-width: 0;
    min-height: 0;
    margin-inline: auto;
    padding: var(--pro-v2-space-6) max(var(--pro-v2-page-gutter), var(--pro-v2-safe-right)) calc(var(--pro-v2-space-8) + var(--pro-v2-bottom-reserved)) max(var(--pro-v2-page-gutter), var(--pro-v2-safe-left));
}

.pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__main--no-bottom-nav {
    padding-bottom: var(--pro-v2-space-8);
}

.pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__bottom-nav {
    position: fixed;
    z-index: var(--pro-v2-z-floating);
    inset-inline-start: 50%;
    bottom: 0;
    width: min(calc(100% - 0px), 720px);
    min-height: 0;
    box-sizing: border-box;
    padding: 6px max(8px, var(--pro-v2-safe-right)) max(6px, var(--pro-v2-safe-bottom)) max(8px, var(--pro-v2-safe-left));
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-lg) var(--pro-v2-radius-lg) 0 0;
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--pro-v2-elevation-floating);
    backdrop-filter: blur(16px);
    transform: translateX(-50%);
}

/* Keep bottom navigation at the layout bottom instead of over the keyboard. */
.pro-ui-v2[data-keyboard-open="true"] > .pro-ui-v2__app-shell > .pro-ui-v2__bottom-nav {
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, var(--pro-v2-keyboard-offset, 100dvh));
}

@media (max-width: 767px) {
    .pro-ui-v2:has(input:focus, textarea:focus, select:focus, [contenteditable="true"]:focus) > .pro-ui-v2__app-shell > .pro-ui-v2__bottom-nav {
        visibility: hidden;
        pointer-events: none;
        opacity: 0;
    }
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-inner {
    display: grid;
    width: min(100%, 720px);
    min-width: 0;
    min-height: 52px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0 auto;
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: var(--pro-v2-touch-preferred);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    padding: var(--pro-v2-space-1) 2px;
    border-radius: var(--pro-v2-radius-md);
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-caption-size);
    line-height: 1.1;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: background-color 120ms ease, color 120ms ease, transform 120ms ease;
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item span {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item .icon {
    width: 26px;
    height: 26px;
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item:hover {
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-accent-soft);
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item:active {
    transform: translateY(1px);
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item.is-active {
    color: var(--pro-v2-color-surface-primary);
    background: var(--pro-v2-color-accent);
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item.is-active > .icon,
.pro-ui-v2 .pro-ui-v2__bottom-nav-item:active > .icon {
    filter: invert(1);
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item.is-active::after {
    display: none;
}

.pro-ui-v2 .pro-ui-v2__bottom-nav-item:focus-visible,
.pro-ui-v2 .pro-ui-v2__top-bar-brand:focus-visible,
.pro-ui-v2 .pro-ui-v2__top-bar-action:focus-visible {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 3px;
}

@media (max-width: 350px) {
    .pro-ui-v2 > .pro-ui-v2__app-shell > .pro-ui-v2__top-bar {
        gap: var(--pro-v2-space-2);
        padding-inline: max(var(--pro-v2-space-3), var(--pro-v2-safe-right)) max(var(--pro-v2-space-3), var(--pro-v2-safe-left));
    }

    .pro-ui-v2 .pro-ui-v2__top-bar-status {
        max-width: 58px;
        overflow: hidden;
        padding-inline: 7px;
        text-overflow: ellipsis;
    }

    .pro-ui-v2 .pro-ui-v2__bottom-nav-item {
        font-size: 11px;
    }
}

/* Core Components contract. Consumers opt in per screen family. */
.pro-ui-v2__button--danger {
    color: var(--pro-v2-color-surface-primary);
    background: var(--pro-v2-color-danger);
}

.pro-ui-v2__button--danger:hover:not(:disabled) {
    border-color: var(--pro-v2-color-danger);
    background: color-mix(in srgb, var(--pro-v2-color-danger) 88%, black);
}

.pro-ui-v2__button--danger[data-state="error"] {
    color: var(--pro-v2-color-surface-primary);
    border-color: var(--pro-v2-color-danger);
}

.pro-ui-v2__page-header {
    display: grid;
    gap: var(--pro-v2-space-2);
    margin-bottom: var(--pro-v2-space-6);
}

.pro-ui-v2__page-header > .eyebrow,
.pro-ui-v2__section-header > .eyebrow {
    margin: 0;
    color: var(--pro-v2-color-brand);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
    font-weight: 700;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.pro-ui-v2__page-header > h1,
.pro-ui-v2__section-header > h2 {
    margin: 0;
    color: var(--pro-v2-color-text-primary);
}

.pro-ui-v2__page-header > .page-intro {
    margin: 0;
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-size);
    line-height: var(--pro-v2-font-body-line);
}

.pro-ui-v2__section-header {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: var(--pro-v2-space-3);
    margin-bottom: var(--pro-v2-space-3);
}

.pro-ui-v2__surface,
.pro-ui-v2__card {
    min-width: 0;
}

.pro-ui-v2__card {
    padding: var(--pro-v2-space-4);
    border-radius: var(--pro-v2-radius-md);
}

.pro-ui-v2__card--interactive {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.pro-ui-v2__card--interactive:hover {
    border-color: var(--pro-v2-color-text-secondary);
    box-shadow: var(--pro-v2-elevation-card);
}

.pro-ui-v2__card--interactive:active {
    transform: translateY(1px);
}

.pro-ui-v2__card--interactive:focus-visible,
.pro-ui-v2__list-row:focus-visible {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 3px;
}

.pro-ui-v2__list {
    overflow: hidden;
    padding: 0;
}

.pro-ui-v2__list-row {
    display: grid;
    min-height: var(--pro-v2-touch-preferred);
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--pro-v2-space-3);
    padding: var(--pro-v2-space-3) var(--pro-v2-space-4);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    text-decoration: none;
    transition: background-color 120ms ease, color 120ms ease;
}

.pro-ui-v2__list-row + .pro-ui-v2__list-row {
    border-top: 1px solid var(--pro-v2-color-border);
}

.pro-ui-v2__list-row:hover {
    background: var(--pro-v2-color-accent-soft);
}

.pro-ui-v2__list-row:active {
    background: var(--pro-v2-color-surface-secondary);
}

.pro-ui-v2__list-row > span:first-child {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-1);
}

.pro-ui-v2__list-row strong {
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
}

.pro-ui-v2__list-row small {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2__list-row > .icon {
    width: 20px;
    height: 20px;
    color: var(--pro-v2-color-text-secondary);
}

.pro-ui-v2 .pro-ui-v2__setting-row {
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-icon,
.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-chevron {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    border-radius: var(--pro-v2-radius-pill);
    color: var(--pro-v2-color-text-secondary);
    background: var(--pro-v2-color-surface-secondary);
}

.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-icon > .icon {
    width: 20px;
    height: 20px;
}

.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-copy {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-1);
    text-align: left;
}

.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-copy strong,
.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-copy small {
    overflow-wrap: anywhere;
}

.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-chevron {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
    background: transparent;
}

.pro-ui-v2 .pro-ui-v2__setting-row > .pro-ui-v2__setting-chevron > .icon {
    width: 20px;
    height: 20px;
}

.pro-ui-v2__list-row[data-state="disabled"],
.pro-ui-v2__list-row[aria-disabled="true"] {
    color: var(--pro-v2-color-disabled-text);
    background: var(--pro-v2-color-disabled-surface);
    cursor: not-allowed;
    pointer-events: none;
}

.pro-ui-v2__list-row[data-state="disabled"] strong,
.pro-ui-v2__list-row[data-state="disabled"] small,
.pro-ui-v2__list-row[aria-disabled="true"] strong,
.pro-ui-v2__list-row[aria-disabled="true"] small {
    color: var(--pro-v2-color-disabled-text);
}

.pro-ui-v2__divider {
    height: 1px;
    margin-block: var(--pro-v2-space-3);
    border: 0;
    background: var(--pro-v2-color-border);
}

.pro-ui-v2__badge,
.pro-ui-v2__chip {
    display: inline-flex;
    min-height: var(--pro-v2-touch-min);
    align-items: center;
    justify-content: center;
    gap: var(--pro-v2-space-1);
    border: 1px solid transparent;
    border-radius: var(--pro-v2-radius-pill);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
    font-weight: 650;
}

.pro-ui-v2__badge {
    min-height: 28px;
    padding: var(--pro-v2-space-1) var(--pro-v2-space-2);
    color: var(--pro-v2-color-text-secondary);
    background: var(--pro-v2-color-surface-secondary);
}

.pro-ui-v2__badge[data-tone="success"] {
    color: var(--pro-v2-color-success);
    background: #e8f3ed;
}

.pro-ui-v2__badge[data-tone="warning"] {
    color: var(--pro-v2-color-warning);
    background: #fff2d8;
}

.pro-ui-v2__badge[data-tone="error"] {
    color: var(--pro-v2-color-danger);
    background: #fbe9e7;
}

.pro-ui-v2__chip {
    min-height: var(--pro-v2-touch-preferred);
    padding: var(--pro-v2-space-2) var(--pro-v2-space-3);
    color: var(--pro-v2-color-text-secondary);
    background: var(--pro-v2-color-surface-secondary);
    cursor: pointer;
    transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease;
}

.pro-ui-v2__chip:hover,
.pro-ui-v2__chip[data-state="selected"],
.pro-ui-v2__chip[aria-pressed="true"] {
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-accent-soft);
    border-color: var(--pro-v2-color-text-primary);
}

.pro-ui-v2__chip:focus-visible {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 3px;
}

.pro-ui-v2__field {
    display: grid;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2__field-label {
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-label-size);
    line-height: var(--pro-v2-font-label-line);
    font-weight: 650;
}

.pro-ui-v2__field-hint,
.pro-ui-v2__field-error {
    margin: 0;
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2__field-hint {
    color: var(--pro-v2-color-text-secondary);
}

.pro-ui-v2__field-error {
    color: var(--pro-v2-color-danger);
}

.pro-ui-v2__text-input,
.pro-ui-v2__textarea,
.pro-ui-v2__select {
    width: 100%;
    min-height: var(--pro-v2-control-height);
    padding: var(--pro-v2-space-2) var(--pro-v2-space-3);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    font: inherit;
    font-size: var(--pro-v2-font-body-size);
}

.pro-ui-v2__textarea {
    min-height: 112px;
    resize: vertical;
}

.pro-ui-v2__text-input:hover,
.pro-ui-v2__textarea:hover,
.pro-ui-v2__select:hover {
    border-color: var(--pro-v2-color-text-secondary);
}

.pro-ui-v2__text-input:focus-visible,
.pro-ui-v2__textarea:focus-visible,
.pro-ui-v2__select:focus-visible {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 2px;
    border-color: var(--pro-v2-color-info);
}

.pro-ui-v2__field[data-state="error"] .pro-ui-v2__text-input,
.pro-ui-v2__field[data-state="error"] .pro-ui-v2__textarea,
.pro-ui-v2__field[data-state="error"] .pro-ui-v2__select,
.pro-ui-v2__text-input[aria-invalid="true"],
.pro-ui-v2__textarea[aria-invalid="true"],
.pro-ui-v2__select[aria-invalid="true"] {
    border-color: var(--pro-v2-color-danger);
}

.pro-ui-v2__text-input:disabled,
.pro-ui-v2__textarea:disabled,
.pro-ui-v2__select:disabled {
    color: var(--pro-v2-color-disabled-text);
    background: var(--pro-v2-color-disabled-surface);
    cursor: not-allowed;
}

.pro-ui-v2__choice-group {
    display: grid;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2__choice {
    display: inline-flex;
    min-height: var(--pro-v2-touch-preferred);
    align-items: center;
    gap: var(--pro-v2-space-2);
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-body-size);
}

.pro-ui-v2__choice input {
    width: 20px;
    height: 20px;
    margin: 0;
    accent-color: var(--pro-v2-color-accent);
}

.pro-ui-v2__inline-message {
    display: grid;
    gap: var(--pro-v2-space-1);
    padding: var(--pro-v2-space-3);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2__inline-message[data-tone="success"] {
    color: var(--pro-v2-color-success);
    background: #e8f3ed;
}

.pro-ui-v2__inline-message[data-tone="warning"] {
    color: var(--pro-v2-color-warning);
    background: #fff2d8;
}

.pro-ui-v2__inline-message[data-tone="error"] {
    color: var(--pro-v2-color-danger);
    background: #fbe9e7;
}

.pro-ui-v2__inline-message[data-tone="info"] {
    color: var(--pro-v2-color-info);
    background: #e8f0f8;
}

.pro-ui-v2__state {
    display: grid;
    gap: var(--pro-v2-space-2);
    place-items: start;
    padding: var(--pro-v2-space-6) var(--pro-v2-space-4);
    color: var(--pro-v2-color-text-secondary);
    text-align: left;
}

.pro-ui-v2__state > :where(h2, h3, p) {
    margin: 0;
}

.pro-ui-v2__state--empty,
.pro-ui-v2__state--loading {
    background: var(--pro-v2-color-surface-secondary);
    border-radius: var(--pro-v2-radius-md);
}

.pro-ui-v2__state--error {
    color: var(--pro-v2-color-danger);
    background: #fbe9e7;
    border: 1px solid color-mix(in srgb, var(--pro-v2-color-danger) 35%, white);
    border-radius: var(--pro-v2-radius-md);
}

.pro-ui-v2__skeleton {
    min-height: var(--pro-v2-space-4);
    border-radius: var(--pro-v2-radius-xs);
    background: linear-gradient(90deg, var(--pro-v2-color-surface-secondary), #f4f6f7, var(--pro-v2-color-surface-secondary));
    background-size: 200% 100%;
    animation: pro-ui-v2-skeleton 1.2s ease-in-out infinite;
}

@keyframes pro-ui-v2-skeleton {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .pro-ui-v2 .pro-ui-v2__skeleton {
        animation: none;
        background: var(--pro-v2-color-surface-secondary);
    }
}

/* HISTORY_LIST screen-family contract. */
.pro-ui-v2 .pro-ui-v2__history-list {
    width: min(100%, 760px);
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: grid;
    gap: var(--pro-v2-space-3);
}

/* DASHBOARD screen-family contract. */
.pro-ui-v2 .pro-ui-v2__dashboard {
    display: grid;
    width: min(100%, 960px);
    min-width: 0;
    margin-inline: auto;
    gap: var(--pro-v2-space-6);
    /* padding-inline: max(var(--pro-v2-page-gutter), var(--pro-v2-safe-left)) max(var(--pro-v2-page-gutter), var(--pro-v2-safe-right)); */
    padding-bottom: var(--pro-v2-space-4);
}

.pro-ui-v2 .pro-ui-v2__dashboard .pro-ui-v2__page-header {
    margin-bottom: 0;
}

.pro-ui-v2 .pro-ui-v2__dashboard-actions,
.pro-ui-v2 .pro-ui-v2__dashboard-section {
    min-width: 0;
}

.pro-ui-v2 .pro-ui-v2__dashboard-action-grid {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-3);
}

.pro-ui-v2 .pro-ui-v2__dashboard-action {
    display: grid;
    min-height: 80px;
    grid-template-columns: 48px minmax(0, 1fr) 20px;
    align-items: center;
    gap: var(--pro-v2-space-3);
    padding: var(--pro-v2-space-3);
}

.pro-ui-v2 .pro-ui-v2__dashboard-action-icon {
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-secondary);
    border-radius: var(--pro-v2-radius-pill);
}

.pro-ui-v2 .pro-ui-v2__dashboard-action-icon .icon {
    width: 22px;
    height: 22px;
}

.pro-ui-v2 .pro-ui-v2__dashboard-action .launcher-copy {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-1);
}

.pro-ui-v2 .pro-ui-v2__dashboard-action .launcher-copy strong {
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
}

.pro-ui-v2 .pro-ui-v2__dashboard-action .launcher-copy span {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2 .pro-ui-v2__dashboard-action > .icon {
    width: 20px;
    height: 20px;
    color: var(--pro-v2-color-text-secondary);
}

.pro-ui-v2 .pro-ui-v2__dashboard-section {
    padding: var(--pro-v2-space-4);
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list {
    display: grid;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row {
    display: grid;
    min-width: 0;
    min-height: var(--pro-v2-touch-preferred);
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--pro-v2-space-3);
    padding: var(--pro-v2-space-3);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-sm);
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    box-shadow: var(--pro-v2-elevation-flat);
    text-decoration: none;
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row:focus-visible {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 3px;
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-copy,
.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-value {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-1);
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-copy strong,
.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-value strong {
    overflow-wrap: anywhere;
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-copy small {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-value {
    grid-auto-flow: column;
    align-items: center;
    color: var(--pro-v2-color-text-secondary);
    text-align: right;
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row-value strong {
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2 .pro-ui-v2__dashboard-recent-list .calculation-row:hover {
    border-color: var(--pro-v2-color-text-secondary);
    box-shadow: var(--pro-v2-elevation-low);
}

.pro-ui-v2 .pro-ui-v2__dashboard-empty {
    padding: var(--pro-v2-space-2) 0;
}

.pro-ui-v2 .pro-ui-v2__dashboard-empty p {
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2 .pro-ui-v2__dashboard-history-link {
    margin-top: var(--pro-v2-space-3);
    color: var(--pro-v2-color-text-primary);
    font-weight: 650;
}

@media (min-width: 700px) {
    .pro-ui-v2 .pro-ui-v2__dashboard-action-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pro-ui-v2 .pro-ui-v2__dashboard-action {
        align-content: center;
    }
}

@media (max-width: 390px) {
    .pro-ui-v2 .pro-ui-v2__dashboard {
        padding-inline: max(12px, var(--pro-v2-safe-left)) max(12px, var(--pro-v2-safe-right));
    }

    .pro-ui-v2 .pro-ui-v2__dashboard-section {
        padding: var(--pro-v2-space-3);
    }
}

.pro-ui-v2 .pro-ui-v2__history-list-item {
    min-width: 0;
}

.pro-ui-v2 .pro-ui-v2__history-item {
    display: grid;
    min-height: var(--pro-v2-touch-preferred);
    grid-template-columns: minmax(0, 1fr) minmax(112px, auto);
    align-items: center;
    gap: var(--pro-v2-space-4);
    padding: var(--pro-v2-space-4);
}

.pro-ui-v2 .pro-ui-v2__history-item:hover {
    border-color: var(--pro-v2-color-text-secondary);
    background: var(--pro-v2-color-surface-primary);
    box-shadow: var(--pro-v2-elevation-card);
}

.pro-ui-v2 .pro-ui-v2__history-item:active {
    transform: translateY(1px);
}

.pro-ui-v2 .pro-ui-v2__history-item-copy,
.pro-ui-v2 .pro-ui-v2__history-item-value {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-1);
}

.pro-ui-v2 .pro-ui-v2__history-meta {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__history-meta .pro-ui-v2__badge {
    min-height: 24px;
    padding: 2px var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__history-date,
.pro-ui-v2 .pro-ui-v2__history-status {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2 .pro-ui-v2__history-item-copy > strong {
    overflow-wrap: anywhere;
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
}

.pro-ui-v2 .pro-ui-v2__history-item-value {
    grid-auto-flow: column;
    align-items: center;
    justify-content: end;
    gap: var(--pro-v2-space-2);
    min-width: 0;
    color: var(--pro-v2-color-text-secondary);
    text-align: right;
}

.pro-ui-v2 .pro-ui-v2__history-total {
    max-width: 160px;
    overflow-wrap: anywhere;
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
}

.pro-ui-v2 .pro-ui-v2__history-total--missing {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
}

.pro-ui-v2 .pro-ui-v2__history-item-value > .icon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    color: var(--pro-v2-color-text-secondary);
}

@media (max-width: 390px) {
    .pro-ui-v2 .pro-ui-v2__history-item {
        grid-template-columns: minmax(0, 1fr) minmax(96px, 35%);
        gap: var(--pro-v2-space-3);
        padding: var(--pro-v2-space-3);
    }

    .pro-ui-v2 .pro-ui-v2__history-total {
        max-width: 112px;
        font-size: var(--pro-v2-font-body-small-size);
        line-height: var(--pro-v2-font-body-small-line);
    }
}

@media (min-width: 840px) {
    .pro-ui-v2 .pro-ui-v2__history-item {
        padding: var(--pro-v2-space-4) var(--pro-v2-space-5);
    }
}

/* HISTORY_DETAIL screen-family contract. */
.pro-ui-v2 .pro-ui-v2__history-detail {
    display: grid;
    width: min(100%, 760px);
    min-width: 0;
    margin-inline: auto;
    gap: var(--pro-v2-space-4);
    /* padding-inline: max(var(--pro-v2-page-gutter), var(--pro-v2-safe-left)) max(var(--pro-v2-page-gutter), var(--pro-v2-safe-right)); */
    padding-bottom: calc(var(--pro-v2-space-12) + var(--pro-v2-safe-bottom));
}

.pro-ui-v2 .pro-ui-v2__history-detail-header,
.pro-ui-v2 .pro-ui-v2__history-detail-summary,
.pro-ui-v2 .pro-ui-v2__history-detail-section,
.pro-ui-v2 .pro-ui-v2__history-detail-actions {
    min-width: 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-header {
    margin-bottom: 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-header h1 {
    overflow-wrap: anywhere;
    margin-bottom: 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-summary,
.pro-ui-v2 .pro-ui-v2__history-detail-section {
    padding: var(--pro-v2-space-5);
}

.pro-ui-v2 .pro-ui-v2__history-detail-summary-top {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--pro-v2-space-4);
}

.pro-ui-v2 .pro-ui-v2__history-detail-summary-top h2 {
    margin: 0;
    font-size: var(--pro-v2-font-h3-size);
    line-height: var(--pro-v2-font-h3-line);
}

.pro-ui-v2 .pro-ui-v2__history-detail-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--pro-v2-space-4);
    margin: var(--pro-v2-space-5) 0 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-meta dt {
    color: var(--pro-v2-color-text-muted);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
}

.pro-ui-v2 .pro-ui-v2__history-detail-meta dd {
    margin: var(--pro-v2-space-1) 0 0;
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
    overflow-wrap: anywhere;
}

.pro-ui-v2 .pro-ui-v2__history-detail-total {
    margin: 0;
    color: var(--pro-v2-color-text-primary);
    font-size: var(--pro-v2-font-numeric-size);
    line-height: var(--pro-v2-font-numeric-line);
    font-weight: 700;
}

.pro-ui-v2 .pro-ui-v2__history-detail-total--missing,
.pro-ui-v2 .calculation-total--missing {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-h3-size);
    line-height: var(--pro-v2-font-h3-line);
}

.pro-ui-v2 .pro-ui-v2__history-detail-total-state {
    display: grid;
    gap: var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__history-detail-saved-breakdown {
    display: grid;
    gap: var(--pro-v2-space-2);
    margin-top: var(--pro-v2-space-5);
    padding-top: var(--pro-v2-space-4);
    border-top: 1px solid var(--pro-v2-color-border);
}

.pro-ui-v2 .pro-ui-v2__history-detail-price-options {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--pro-v2-space-2) var(--pro-v2-space-4);
}

.pro-ui-v2 .pro-ui-v2__history-detail-price-options .detail-value-row {
    padding: var(--pro-v2-space-2) 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-position-list {
    display: grid;
    gap: 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-position-row {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--pro-v2-space-4);
    padding: var(--pro-v2-space-3) 0;
    border-bottom: 1px solid var(--pro-v2-color-border);
}

.pro-ui-v2 .pro-ui-v2__history-detail-position-row:last-child {
    border-bottom: 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-position-row > span {
    display: grid;
    min-width: 0;
    gap: var(--pro-v2-space-1);
}

.pro-ui-v2 .pro-ui-v2__history-detail-position-row strong {
    overflow-wrap: anywhere;
}

.pro-ui-v2 .pro-ui-v2__history-detail-position-row small {
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling {
    min-width: 0;
    border-bottom: 1px solid var(--pro-v2-color-border);
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling:last-child {
    border-bottom: 0;
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling summary {
    display: flex;
    min-width: 0;
    min-height: var(--pro-v2-touch-preferred);
    align-items: center;
    justify-content: space-between;
    gap: var(--pro-v2-space-3);
    padding: var(--pro-v2-space-3) 0;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling summary::-webkit-details-marker {
    display: none;
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling summary > span:first-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling-chevron {
    flex: 0 0 auto;
    color: var(--pro-v2-color-text-secondary);
    font-size: 1.5rem;
    line-height: 1;
    transition: transform 160ms ease;
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling[open] .pro-ui-v2__history-detail-ceiling-chevron {
    transform: rotate(90deg);
}

.pro-ui-v2 .pro-ui-v2__history-detail-ceiling > .pro-ui-v2__history-detail-position-list {
    padding-bottom: var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__history-detail-custom {
    display: grid;
    gap: var(--pro-v2-space-2);
    margin-top: var(--pro-v2-space-5);
    padding-top: var(--pro-v2-space-4);
    border-top: 1px solid var(--pro-v2-color-border);
}

.pro-ui-v2 .pro-ui-v2__history-detail-custom h3 {
    margin: 0;
    font-size: var(--pro-v2-font-title-size);
    line-height: var(--pro-v2-font-title-line);
}

.pro-ui-v2 .pro-ui-v2__history-detail-actions {
    display: grid;
    gap: var(--pro-v2-space-3);
    padding-bottom: var(--pro-v2-space-4);
}

.pro-ui-v2 .pro-ui-v2__history-detail-actions .button {
    min-height: var(--pro-v2-touch-preferred);
    width: 100%;
}

.pro-ui-v2 .pro-ui-v2__history-detail-actions [data-calculation-detail-status]:empty {
    display: none;
}

.pro-ui-v2 .pro-ui-v2__history-detail-actions [data-calculation-detail-action="delete"] {
    margin-top: var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__app-version {
    margin: var(--pro-v2-space-2) 0 0;
    color: var(--pro-v2-color-text-muted);
    font-size: var(--pro-v2-font-caption-size);
    line-height: var(--pro-v2-font-caption-line);
    text-align: center;
}

@media (min-width: 840px) {
    .pro-ui-v2 .pro-ui-v2__history-detail {
        width: min(100%, 920px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-header,
    .pro-ui-v2 .pro-ui-v2__history-detail-summary,
    .pro-ui-v2 .pro-ui-v2__history-detail-actions {
        grid-column: 1 / -1;
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-actions [data-calculation-detail-action="delete"] {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-actions [data-calculation-detail-status] {
        grid-column: 1 / -1;
    }
}

@media (max-width: 390px) {
    .pro-ui-v2 .pro-ui-v2__history-detail {
        padding-inline: max(12px, var(--pro-v2-safe-left)) max(12px, var(--pro-v2-safe-right));
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-summary,
    .pro-ui-v2 .pro-ui-v2__history-detail-section {
        padding: var(--pro-v2-space-4);
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-meta {
        grid-template-columns: 1fr;
        gap: var(--pro-v2-space-3);
    }

    .pro-ui-v2 .pro-ui-v2__history-detail-summary-top {
        display: grid;
    }
}

/* WORK UI calculator family: visual layer only; legacy data hooks remain authoritative. */
.pro-ui-v2 .pro-ui-v2__work-screen {
    display: grid;
    width: min(100%, 960px);
    min-width: 0;
    margin-inline: auto;
    gap: var(--pro-v2-space-4);
    padding-bottom: var(--pro-v2-space-8);
}

.pro-ui-v2 .pro-ui-v2__calculator-switcher {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--pro-v2-space-1);
    width: 100%;
    padding: var(--pro-v2-space-1);
    border: 1px solid var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-pill);
    background: var(--pro-v2-color-surface-secondary);
}

.pro-ui-v2 .pro-ui-v2__calculator-switcher > a {
    display: flex;
    min-width: 0;
    min-height: var(--pro-v2-touch-preferred);
    align-items: center;
    justify-content: center;
    gap: var(--pro-v2-space-1);
    padding: var(--pro-v2-space-2) var(--pro-v2-space-3);
    border-radius: var(--pro-v2-radius-pill);
    color: var(--pro-v2-color-text-secondary);
    font-size: var(--pro-v2-font-body-small-size);
    line-height: var(--pro-v2-font-body-small-line);
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.pro-ui-v2 .pro-ui-v2__calculator-switcher .icon {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.pro-ui-v2 .pro-ui-v2__calculator-switcher > a:hover,
.pro-ui-v2 .pro-ui-v2__calculator-switcher > a[aria-current="page"] {
    color: var(--pro-v2-color-text-primary);
    background: var(--pro-v2-color-surface-primary);
    box-shadow: var(--pro-v2-elevation-low);
}

.pro-ui-v2 .pro-ui-v2__work-header {
    margin: 0;
}

.pro-ui-v2 .pro-ui-v2__work-screen > .pro-ui-v2__status {
    width: 100%;
    margin: 0;
    border: 1px solid var(--pro-v2-color-border);
    background: var(--pro-v2-color-surface-primary);
}

.pro-ui-v2 .pro-ui-v2__work-screen > .pro-ui-v2__status[data-tone="positive"] {
    color: var(--pro-v2-color-success);
    background: color-mix(in srgb, var(--pro-v2-color-success) 10%, white);
}

.pro-ui-v2 .pro-ui-v2__work-screen > .pro-ui-v2__status[data-tone="warning"] {
    color: var(--pro-v2-color-warning);
    background: color-mix(in srgb, var(--pro-v2-color-warning) 10%, white);
}

.pro-ui-v2 .pro-ui-v2__work-screen > .pro-ui-v2__status[data-tone="error"] {
    color: var(--pro-v2-color-danger);
    background: color-mix(in srgb, var(--pro-v2-color-danger) 10%, white);
}

.pro-ui-v2 .pro-ui-v2__work-section {
    padding: var(--pro-v2-space-4);
    border-color: var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-md);
    background: var(--pro-v2-color-surface-primary);
}

.pro-ui-v2 .pro-ui-v2__work-section .pro-ui-v2__section-header {
    margin-bottom: var(--pro-v2-space-2);
}

.pro-ui-v2 .pro-ui-v2__work-section .pro-ui-v2__section-header h2 {
    font-size: var(--pro-v2-font-h3-size);
    line-height: var(--pro-v2-font-h3-line);
}

.pro-ui-v2 .pro-ui-v2__work-screen :where(input, select, textarea) {
    border-color: var(--pro-v2-color-border);
    border-radius: var(--pro-v2-radius-sm);
}

.pro-ui-v2 .pro-ui-v2__work-screen :where(input, select, textarea):focus-visible {
    outline: var(--pro-v2-focus-ring);
    outline-offset: 2px;
    border-color: var(--pro-v2-color-info);
}

.pro-ui-v2 .pro-ui-v2__work-screen :where(.calculator-number-button, .calculator-custom-unit) {
    min-width: var(--pro-v2-touch-min);
    min-height: var(--pro-v2-touch-min);
}

.pro-ui-v2 .pro-ui-v2__work-screen .pro-ui-v2__work-total {
    padding: var(--pro-v2-space-5);
    border-color: transparent;
    background: var(--pro-v2-color-accent);
    color: var(--pro-v2-color-surface-primary);
}

.pro-ui-v2 .pro-ui-v2__work-screen .pro-ui-v2__work-total :where(p, strong) {
    color: inherit;
}

.pro-ui-v2 .pro-ui-v2__work-screen .pro-ui-v2__work-actions {
    margin-inline: 0;
}

@media (max-width: 599px) {
    .pro-ui-v2 .pro-ui-v2__work-screen .pro-ui-v2__work-actions {
        flex-wrap: wrap;
    }

    .pro-ui-v2 .pro-ui-v2__work-screen .pro-ui-v2__work-actions > :first-child {
        flex-basis: 100%;
    }
}

@media (min-width: 600px) {
    .pro-ui-v2 .pro-ui-v2__work-screen .pro-ui-v2__work-actions {
        margin-inline: 0;
    }
}
/* B21 V2-owned ceiling calculator styles. Legacy hooks are preserved. */
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] {
    display: grid;
    gap: var(--space-5);
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-status {
    margin: calc(-1 * var(--space-3)) 0 0;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    color: var(--color-muted);
    background: #eef3f7;
    font-size: var(--font-sm);
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-status[data-tone="positive"] {
    color: #146244;
    background: var(--color-positive-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-status[data-tone="warning"] {
    color: #744300;
    background: var(--color-warning-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-status[data-tone="error"] {
    color: var(--color-error);
    background: var(--color-error-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-form, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-section, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-grid, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-options, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-list {
    display: grid;
    gap: var(--space-3);
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-form {
    gap: var(--space-5);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-section {
    gap: var(--space-4);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field > span:first-child, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-options legend, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .adjustment-picker legend {
    font-size: var(--font-sm);
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field small {
    color: var(--color-muted);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field :where(input, select, textarea), .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-upload {
    width: 100%;
    min-width: 0;
    min-height: var(--touch-size);
    border: 1px solid #b8c4cf;
    border-radius: var(--radius-sm);
    color: var(--color-text);
    background: var(--color-white);
    font: inherit;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field :where(input, select, textarea) {
    padding: 11px 12px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field select {
    display: block;
    height: var(--touch-size);
    min-height: var(--touch-size);
    line-height: 1.25;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field textarea {
    min-height: 120px;
    resize: vertical;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field [aria-invalid="true"] {
    border-color: var(--color-error);
    box-shadow: 0 0 0 3px rgba(164, 0, 0, 0.12);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-row {
    display: flex;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 0 0 10px 0;
    border-bottom: 2px dashed #eef2f5;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field:where( .calculator-field-objectName, .calculator-field-entrance, .calculator-field-floor, .calculator-field-objectType, .calculator-field-furniture, .calculator-field-repairStage, .calculator-field-texture, .calculator-field-fixtureModel, .calculator-field-curtainBaffleModel, .calculator-field-source ) {
    display: flex;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 0 0 10px;
    border-bottom: 2px dashed #eef2f5;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field:where( .calculator-field-objectName, .calculator-field-entrance, .calculator-field-floor, .calculator-field-objectType, .calculator-field-furniture, .calculator-field-repairStage, .calculator-field-texture, .calculator-field-fixtureModel, .calculator-field-curtainBaffleModel, .calculator-field-source ) > span:first-child {
    min-width: 0;
    flex: 1 1 auto;
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field:where( .calculator-field-objectName, .calculator-field-entrance, .calculator-field-floor, .calculator-field-objectType, .calculator-field-furniture, .calculator-field-repairStage, .calculator-field-texture, .calculator-field-fixtureModel, .calculator-field-curtainBaffleModel, .calculator-field-source ) > :where(input, select) {
    width: 200px;
    min-width: 0;
    max-width: 200px;
    flex: 0 0 200px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field-objectName > small {
    min-width: 0;
    flex: 0 1 180px;
    text-align: right;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-label {
    min-width: 0;
    flex: 1 1 auto;
    color: var(--color-text);
    font-size: var(--font-sm);
    font-weight: var(--weight-bold);
    line-height: 1.25;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-control {
    display: grid;
    flex: 0 0 200px;
    grid-template-columns: minmax(0, 1fr) 44px 44px;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-button {
    display: inline-grid;
    width: 44px;
    min-height: 44px;
    place-items: center;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-interactive);
    background: var(--color-white);
    font-size: 22px;
    font-weight: var(--weight-bold);
    line-height: 1;
    cursor: pointer;
    touch-action: manipulation;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-button-plus {
    border-color: #8dc8ad;
    color: #146244;
    background: var(--color-positive-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-button:disabled {
    color: #91a0ad;
    background: #eef2f5;
    cursor: not-allowed;
    opacity: 0.7;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-value {
    display: flex;
    min-width: 0;
    min-height: 44px;
    align-items: center;
    overflow: hidden;
    border: 1px solid #b8c4cf;
    border-radius: var(--radius-sm);
    color: var(--color-text);
    background: var(--color-white);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-value:focus-within {
    border-color: var(--color-interactive);
    box-shadow: 0 0 0 3px rgba(27, 95, 137, 0.14);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-value input {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 8px 2px 8px 8px;
    border: 0;
    border-radius: 0;
    outline: 0;
    text-align: left;
    font-weight: var(--weight-bold);
    font-variant-numeric: tabular-nums;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-number-value > span {
    flex: 0 0 auto;
    padding: 0 7px 0 2px;
    color: var(--color-muted);
    font-size: var(--font-sm);
    white-space: nowrap;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-check, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .extra-choice, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-options label, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .adjustment-picker label {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    cursor: pointer;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-check {
    display: flex;
    min-height: 40px;
    justify-content: flex-start;
    gap: var(--space-2);
    padding: 0 0 10px;
    border-bottom: 2px dashed #eef2f5;
    flex-direction: row-reverse;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] :where(.calculator-check, .extra-choice, .calculator-options label, .adjustment-picker label) input {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-options {
    margin: 0;
    padding: 0;
    border: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-options > div, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .extras-picker-grid, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .adjustment-picker > div {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-3);
    justify-content: space-between;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .extras-picker {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: #f8fafb;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .extras-picker summary {
    min-height: var(--touch-size);
    padding: 13px 14px;
    cursor: pointer;
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .extras-picker-grid {
    max-height: 320px;
    overflow: auto;
    padding: 0 14px 14px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .extra-choice {
    width: min(100%, 250px);
    padding: 3px 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-active-extras:empty::after {
    color: var(--color-muted);
    content: "Дополнительные позиции не выбраны";
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-extra-group {
    display: grid;
    gap: var(--space-3);
    min-width: 0;
    touch-action: pan-y;
    will-change: transform, opacity;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-extra-group[hidden] {
    display: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-extra-field {
    touch-action: pan-y;
    will-change: transform, opacity;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] :where(.calculator-extra-field, .calculator-extra-group).is-swipe-dragging {
    transition: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] :where(.calculator-extra-field, .calculator-extra-group).is-swipe-removing {
    opacity: 0;
    transform: translateX(100%);
    transition: transform 180ms ease, opacity 180ms ease;
    pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] :where(.calculator-extra-field, .calculator-extra-group).is-swipe-removing {
    transition: none;
}
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-add {
    justify-self: center;
    min-height: 44px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-items {
    display: grid;
    gap: var(--space-2);
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card {
    display: grid;
    gap: var(--space-3);
    align-items: center;
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: #f8fafb;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card-content, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-editor {
    display: grid;
    gap: 6px;
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card-content > * {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card-details {
    color: var(--color-muted);
    font-size: var(--font-sm);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card-total {
    font-size: var(--font-sm);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card-actions, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    flex-direction: row-reverse;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card-actions .button, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-editor-actions .button {
    min-height: 44px;
    padding: 8px 10px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-editor {
    padding: 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: #f8fafb;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-field {
    display: flex;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 0 0 10px;
    border-bottom: 2px dashed #eef2f5;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-units {
    display: grid;
    gap: 6px;
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-field > span:first-child, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-units legend {
    font-size: var(--font-sm);
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-field input, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-price {
    width: 100%;
    min-width: 0;
    min-height: var(--touch-size);
    border: 1px solid #b8c4cf;
    border-radius: var(--radius-sm);
    color: var(--color-text);
    background: var(--color-white);
    font: inherit;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-field input {
    padding: 11px 12px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-field > input, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-field > .calculator-custom-price {
    width: 200px;
    max-width: 200px;
    flex: 0 0 200px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-price {
    display: flex;
    align-items: center;
    overflow: hidden;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-price:focus-within {
    border-color: var(--color-interactive);
    box-shadow: 0 0 0 3px rgba(27, 95, 137, 0.14);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-price input {
    border: 0;
    border-radius: 0;
    outline: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-price > span {
    padding-right: 12px;
    color: var(--color-muted);
    white-space: nowrap;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-units {
    margin: 0;
    padding: 0;
    border: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-units > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-2);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-unit {
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: #91a0ad;
    background: #eef2f5;
    font: inherit;
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-unit[aria-pressed="true"] {
    border-color: #8dc8ad;
    color: #146244;
    background: var(--color-positive-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-quantity {
    padding: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-quantity[hidden] {
    display: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-results {
    position: relative;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-adjustment-settings {
    display: grid;
    gap: 0;
    min-width: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-settings-toggle {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: space-between;
    padding: 6px 2px;
    border: 0;
    color: var(--color-muted);
    background: transparent;
    font: inherit;
    font-size: var(--font-sm);
    font-weight: var(--weight-normal);
    text-align: left;
    cursor: pointer;
    touch-action: manipulation;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-settings-arrow {
    font-size: 18px;
    line-height: 1;
    transition: transform 0.15s ease;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-settings-toggle.is-open .calculator-settings-arrow {
    transform: rotate(90deg);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-adjustment-panel {
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: #f8fafb;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-adjustment-panel[hidden] {
    display: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .adjustment-picker {
    margin: 0;
    padding: 0;
    border: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .adjustment-picker label span {
    min-width: 48px;
    padding: 8px 8px;
    text-align: left;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-totals {
    display: grid;
    gap: var(--space-2);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-total {
    display: flex;
    width: 100%;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    background: #f8fafb;
    text-align: left;
    font: inherit;
    cursor: pointer;
    appearance: none;
    transition: transform 150ms ease, border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-total:focus-visible {
    outline: 3px solid rgba(27, 95, 137, 0.3);
    outline-offset: 2px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-total[aria-pressed="true"] {
    z-index: 1;
    border-color: #8dc8ad;
    background: var(--color-positive-soft);
    box-shadow: 0 4px 12px rgba(20, 98, 68, 0.12);
    transform: scale(1.01);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-brand-logo-wrap {
    display: flex;
    min-width: 0;
    min-height: 36px;
    align-items: center;
    flex: 1 1 auto;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-brand-logo {
    display: block;
    width: 180px;
    max-width: 100%;
    height: 36px;
    object-fit: contain;
    object-position: left center;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-total strong {
    white-space: nowrap;
    font-size: 24px;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-upload {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    padding: 11px 14px;
    color: var(--color-interactive);
    font-weight: var(--weight-bold);
    cursor: pointer;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-upload input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-upload:has(input:disabled) {
    opacity: 0.55;
    cursor: not-allowed;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-item, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history-item {
    display: grid;
    min-width: 0;
    gap: var(--space-2);
    padding: 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-item {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-item span {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history-item small {
    color: var(--color-muted);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history-item > strong {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history-item > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-2);
}
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history-item .button, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-item .button {
    min-height: 44px;
    padding: 8px 10px;
}
@media (min-width: 700px) {
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field-objectName, .pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-field-note {
    grid-column: 1 / -1;
}
}
@media (min-width: 700px) {
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 390px) {
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-history-item > div {
    grid-template-columns: 1fr;
}
}
@media (max-width: 390px) {
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .photo-item {
    grid-template-columns: 1fr;
}
}
@media (max-width: 390px) {
.pro-ui-v2 [data-pro-screen="calculator-ceiling"] .calculator-custom-card {
    grid-template-columns: 1fr;
}
}
/* B19 V2-owned installation calculator styles. Legacy hooks are preserved. */
.pro-ui-v2 [data-pro-screen="calculator-installation"],
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-form,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-section,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-fields,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-object-field,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-search,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history {
    display: grid;
    min-width: 0;
    gap: var(--space-3);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"],
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-form {
    gap: var(--space-5);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-heading {
    margin-bottom: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-status {
    margin: calc(-1 * var(--space-3)) 0 0;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    color: var(--color-muted);
    background: #e8edf1;
    font-size: var(--font-sm);
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-status[data-tone="positive"] {
    color: #146244; background: var(--color-positive-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-status[data-tone="warning"] {
    color: #744300; background: var(--color-warning-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-status[data-tone="error"] {
    color: var(--color-error); background: var(--color-error-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-section {
    gap: var(--space-4);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-object-field > span,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-search > span {
    font-size: var(--font-sm);
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-object-field small,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-field-copy small,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-switch small,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item small {
    color: var(--color-muted);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-object-field input,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-search input {
    width: 100%;
    min-width: 0;
    min-height: var(--touch-size);
    padding: 11px 12px;
    border: 1px solid #aebcc8;
    border-radius: var(--radius-sm);
    color: var(--color-text);
    background: var(--color-white);
    font: inherit;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-field {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) minmax(104px, 136px);
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding-bottom: var(--space-3);
    border-bottom: 1px dashed var(--color-border);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-field-copy {
    display: grid;
    min-width: 0;
    gap: 3px;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-field-copy strong {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-input {
    display: flex;
    min-width: 0;
    min-height: var(--touch-size);
    align-items: center;
    border: 1px solid #aebcc8;
    border-radius: var(--radius-sm);
    background: var(--color-white);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-input:focus-within {
    border-color: var(--color-interactive);
    box-shadow: 0 0 0 3px rgba(35, 109, 169, 0.14);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-input input {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 10px 5px 10px 10px;
    border: 0;
    outline: 0;
    color: var(--color-text);
    background: transparent;
    font: inherit;
    font-size: 1.05rem;
    font-weight: var(--weight-bold);
    text-align: right;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-input > span {
    flex: 0 0 auto;
    padding-right: 9px;
    color: var(--color-muted);
    font-size: 0.8rem;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-input input[aria-invalid="true"],
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-object-field input[aria-invalid="true"] {
    box-shadow: inset 0 0 0 2px var(--color-error);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-line-total {
    grid-column: 1 / -1;
    justify-self: end;
    color: var(--color-muted);
    font-size: 0.85rem;
    font-weight: var(--weight-bold);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-field-error {
    grid-column: 1 / -1;
    color: var(--color-error);
    font-size: 0.8rem;
    line-height: 1.35;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-switch {
    display: flex;
    min-height: var(--touch-size);
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) 0 var(--space-3);
    border-bottom: 1px dashed var(--color-border);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-switch input {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-switch span {
    display: grid;
    gap: 3px;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total {
    display: flex;
    min-width: 0;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-4);
    border-color: #8dc8ad;
    background: var(--color-positive-soft);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total p,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total small {
    margin: 0;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total strong {
    display: block;
    margin-top: var(--space-1);
    color: #146244;
    font-size: clamp(1.8rem, 9vw, 2.5rem);
    line-height: 1;
    white-space: nowrap;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total small {
    color: var(--color-muted);
    text-align: right;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total[data-invalid="true"] {
    border-color: var(--color-error);
    background: var(--color-error-soft, #fff1f1);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total[data-invalid="true"] strong,
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total[data-invalid="true"] .installation-total-error {
    color: var(--color-error);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item {
    display: grid;
    min-width: 0;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item > div:first-child {
    display: grid;
    min-width: 0;
    gap: var(--space-1);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item strong {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item > div:last-child {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item .button {
    min-height: 44px;
    padding: 8px 10px;
}
@media (max-width: 350px) {
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-field {
    grid-template-columns: minmax(0, 1fr) minmax(96px, 116px);
    gap: var(--space-2);
}
}
@media (max-width: 350px) {
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total {
    align-items: flex-start;
    flex-direction: column;
}
}
@media (max-width: 350px) {
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-total small {
    text-align: left;
}
}
@media (min-width: 700px) {
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (min-width: 700px) {
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-switch {
    align-self: start;
}
}
@media (min-width: 700px) {
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-history-item {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-custom-items {
    display: grid; gap: 10px;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-custom-item {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px dashed #e2e9ed;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-custom-item small {
    color: #71808b;
}
.pro-ui-v2 [data-pro-screen="calculator-installation"] .installation-custom-item input {
    width: 110px;
}
