/* ADA Utility Theme — UI Contract v1 premium skin */
.uc-field{display:grid;gap:var(--uc-space-2);min-width:0}.uc-field+.uc-field{margin-top:var(--uc-space-5)}.uc-label{display:flex;align-items:center;gap:var(--uc-space-2);font-size:var(--uc-text-sm);font-weight:760;line-height:1.35;color:var(--uc-color-heading)}.uc-label__optional{font-weight:560;color:var(--uc-color-muted)}.uc-help{margin:0;font-size:var(--uc-text-sm);line-height:1.45;color:var(--uc-color-muted)}.uc-error{margin:0;font-size:var(--uc-text-sm);font-weight:650;color:var(--uc-color-danger)}.uc-required{color:var(--uc-color-danger)}
.uc-input,.uc-select,.uc-textarea,.uc-search-select__input{width:100%;min-height:var(--uc-control-h);padding:0 var(--uc-control-pad-x);border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);outline:0;background:var(--uc-color-surface);box-shadow:var(--uc-shadow-xs);color:var(--uc-color-text);font:600 var(--uc-text-md)/1.2 var(--uc-font-body);transition:border-color var(--uc-duration-fast) var(--uc-ease),box-shadow var(--uc-duration-fast) var(--uc-ease),background var(--uc-duration-fast) var(--uc-ease),transform var(--uc-duration-fast) var(--uc-ease)}.uc-textarea{min-height:132px;padding-block:14px;line-height:1.55;resize:vertical}.uc-input::placeholder,.uc-textarea::placeholder,.uc-search-select__input::placeholder{color:var(--uc-color-faint);font-weight:500}.uc-input:hover,.uc-select:hover,.uc-textarea:hover,.uc-search-select__input:hover{border-color:var(--uc-color-border-strong)}.uc-input:focus,.uc-select:focus,.uc-textarea:focus,.uc-search-select__input:focus{border-color:var(--uc-color-focus);box-shadow:0 0 0 4px color-mix(in srgb,var(--uc-color-focus) 18%,transparent),var(--uc-shadow-xs)}.uc-input[aria-invalid="true"],.uc-select[aria-invalid="true"],.uc-textarea[aria-invalid="true"]{border-color:var(--uc-color-danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--uc-color-danger) 13%,transparent)}.uc-input:disabled,.uc-select:disabled,.uc-textarea:disabled{opacity:.58;cursor:not-allowed;background:var(--uc-color-surface-soft)}
.uc-input-group{display:flex;min-width:0;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);overflow:hidden;background:var(--uc-color-surface);box-shadow:var(--uc-shadow-xs);transition:border-color var(--uc-duration-fast) var(--uc-ease),box-shadow var(--uc-duration-fast) var(--uc-ease)}.uc-input-group:focus-within{border-color:var(--uc-color-focus);box-shadow:0 0 0 4px color-mix(in srgb,var(--uc-color-focus) 18%,transparent),var(--uc-shadow-xs)}.uc-input-group>.uc-input,.uc-input-group>.uc-select{border:0;border-radius:0;box-shadow:none;background:transparent}.uc-input-group>.uc-input:focus,.uc-input-group>.uc-select:focus{box-shadow:none}.uc-input-addon{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding-inline:14px;border-inline-start:1px solid var(--uc-color-border);background:var(--uc-color-surface-soft);font-size:var(--uc-text-sm);font-weight:760;color:var(--uc-color-muted);white-space:nowrap}
.uc-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:var(--uc-control-h);padding:0 19px;border:1px solid transparent;border-radius:var(--uc-radius-sm);font:760 var(--uc-text-sm)/1 var(--uc-font-body);letter-spacing:-.005em;text-decoration:none;cursor:pointer;user-select:none;transition:transform var(--uc-duration-fast) var(--uc-ease),box-shadow var(--uc-duration-fast) var(--uc-ease),background var(--uc-duration-fast) var(--uc-ease),border-color var(--uc-duration-fast) var(--uc-ease),color var(--uc-duration-fast) var(--uc-ease)}.uc-button:hover{transform:translateY(-1px)}.uc-button:active{transform:translateY(0) scale(.985)}.uc-button:focus-visible{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 38%,transparent);outline-offset:3px}.uc-button:disabled{opacity:.48;cursor:not-allowed;transform:none!important}.uc-button--primary{background:var(--uc-color-primary);color:var(--uc-color-on-primary);box-shadow:0 8px 22px color-mix(in srgb,var(--uc-color-primary) 22%,transparent)}.uc-button--primary:hover{background:var(--uc-color-primary-hover);box-shadow:0 11px 28px color-mix(in srgb,var(--uc-color-primary) 28%,transparent)}.uc-button--secondary{border-color:var(--uc-color-border);background:var(--uc-color-surface);color:var(--uc-color-heading);box-shadow:var(--uc-shadow-xs)}.uc-button--secondary:hover{border-color:var(--uc-color-border-strong);background:var(--uc-color-surface-soft)}.uc-button--ghost{background:transparent;color:var(--uc-color-primary)}.uc-button--ghost:hover{background:var(--uc-color-primary-soft)}.uc-button--danger{background:var(--uc-color-danger);color:var(--uc-color-inverse-heading)}.uc-button--sm{min-height:var(--uc-control-h-sm);padding-inline:15px}.uc-button--lg{min-height:var(--uc-control-h-lg);padding-inline:24px;font-size:var(--uc-text-md)}.uc-button--icon{width:var(--uc-control-h);padding:0;border-radius:50%}.uc-button-group{display:flex;flex-wrap:wrap;gap:var(--uc-space-3)}
.uc-card{position:relative;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-lg);background:var(--uc-color-surface);box-shadow:var(--uc-shadow-sm);overflow:hidden}.uc-card--soft{background:var(--uc-color-surface-soft);box-shadow:none}.uc-card--interactive{transition:transform var(--uc-duration) var(--uc-ease),box-shadow var(--uc-duration) var(--uc-ease),border-color var(--uc-duration) var(--uc-ease)}.uc-card--interactive:hover{transform:translateY(-3px);border-color:var(--uc-color-border-strong);box-shadow:var(--uc-shadow-md)}.uc-card__header,.uc-card__body,.uc-card__footer{padding:var(--uc-space-6)}.uc-card__header+.uc-card__body,.uc-card__body+.uc-card__footer{border-top:1px solid var(--uc-color-border)}.uc-card__title{margin:0;color:var(--uc-color-heading);font:800 var(--uc-text-xl)/1.2 var(--uc-font-heading);letter-spacing:-.025em}.uc-card__description{margin:.45rem 0 0;color:var(--uc-color-muted)}
.uc-result{position:relative;padding:clamp(22px,4vw,34px);border:1px solid color-mix(in srgb,var(--uc-color-primary) 24%,var(--uc-color-border));border-radius:var(--uc-radius-lg);background:linear-gradient(145deg,var(--uc-color-primary-soft),var(--uc-color-surface) 70%);box-shadow:var(--uc-shadow-sm);overflow:hidden}.uc-result::after{content:"";position:absolute;width:180px;height:180px;inset-inline-end:-70px;top:-85px;border-radius:50%;background:color-mix(in srgb,var(--uc-color-accent) 10%,transparent);pointer-events:none}.uc-result__eyebrow{position:relative;z-index:1;margin:0 0 6px;font-size:var(--uc-text-xs);font-weight:850;text-transform:uppercase;letter-spacing:.1em;color:var(--uc-color-muted)}.uc-result__value{position:relative;z-index:1;display:block;margin:0;font:850 clamp(2.25rem,7vw,4.6rem)/.98 var(--uc-font-heading);letter-spacing:-.055em;color:var(--uc-color-heading)}.uc-result__unit{font-size:.42em;letter-spacing:-.02em;color:var(--uc-color-muted)}.uc-result__summary{position:relative;z-index:1;max-width:65ch;margin:10px 0 0;color:var(--uc-color-muted)}.uc-result__metrics{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin-top:20px}.uc-metric{padding:14px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);background:color-mix(in srgb,var(--uc-color-surface) 88%,transparent)}.uc-metric__label{display:block;font-size:var(--uc-text-xs);font-weight:760;color:var(--uc-color-muted)}.uc-metric__value{display:block;margin-top:3px;font:800 var(--uc-text-lg)/1.2 var(--uc-font-heading);color:var(--uc-color-heading)}
.uc-notice{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);background:var(--uc-color-surface-soft);color:var(--uc-color-text)}.uc-notice__icon{flex:0 0 auto;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-weight:850}.uc-notice__body{min-width:0}.uc-notice__title{display:block;margin-bottom:2px;font-weight:800;color:var(--uc-color-heading)}.uc-notice--success{border-color:color-mix(in srgb,var(--uc-color-success) 28%,transparent);background:var(--uc-color-success-soft)}.uc-notice--warning{border-color:color-mix(in srgb,var(--uc-color-warning) 30%,transparent);background:var(--uc-color-warning-soft)}.uc-notice--danger{border-color:color-mix(in srgb,var(--uc-color-danger) 28%,transparent);background:var(--uc-color-danger-soft)}.uc-notice--info{border-color:color-mix(in srgb,var(--uc-color-info) 28%,transparent);background:var(--uc-color-info-soft)}
.uc-segmented{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);background:var(--uc-color-surface-soft)}.uc-segmented label{position:relative}.uc-segmented__option{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:calc(var(--uc-radius-sm) - 4px);font-size:var(--uc-text-sm);font-weight:760;color:var(--uc-color-muted);cursor:pointer;transition:background var(--uc-duration-fast),color var(--uc-duration-fast),box-shadow var(--uc-duration-fast)}.uc-segmented input:checked+.uc-segmented__option{background:var(--uc-color-surface);color:var(--uc-color-heading);box-shadow:var(--uc-shadow-xs)}.uc-segmented input:focus-visible+.uc-segmented__option{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 35%,transparent);outline-offset:1px}
.uc-radio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.uc-radio-card{position:relative;display:block}.uc-radio-card__surface{display:grid;gap:5px;min-height:100%;padding:17px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-md);background:var(--uc-color-surface);cursor:pointer;transition:border-color var(--uc-duration-fast),box-shadow var(--uc-duration-fast),background var(--uc-duration-fast),transform var(--uc-duration-fast)}.uc-radio-card__title{font-weight:800;color:var(--uc-color-heading)}.uc-radio-card__description{font-size:var(--uc-text-sm);line-height:1.45;color:var(--uc-color-muted)}.uc-radio-card input:checked+.uc-radio-card__surface{border-color:var(--uc-color-primary);background:var(--uc-color-primary-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--uc-color-primary) 12%,transparent)}.uc-radio-card input:focus-visible+.uc-radio-card__surface{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 35%,transparent);outline-offset:2px}.uc-radio-card__surface:hover{transform:translateY(-1px);border-color:var(--uc-color-border-strong)}
.uc-toggle{display:inline-flex;align-items:center;gap:12px;cursor:pointer}.uc-toggle__track{position:relative;width:48px;height:28px;border:1px solid var(--uc-color-border-strong);border-radius:var(--uc-radius-pill);background:var(--uc-color-surface-soft);transition:background var(--uc-duration-fast),border-color var(--uc-duration-fast)}.uc-toggle__thumb{position:absolute;width:22px;height:22px;top:2px;inset-inline-start:2px;border-radius:50%;background:var(--uc-color-surface);box-shadow:0 2px 7px color-mix(in srgb,var(--uc-color-shadow) 16%,transparent);transition:transform var(--uc-duration) var(--uc-ease)}.uc-toggle input:checked+.uc-toggle__track{border-color:var(--uc-color-primary);background:var(--uc-color-primary)}.uc-toggle input:checked+.uc-toggle__track .uc-toggle__thumb{transform:translateX(20px)}[dir="rtl"] .uc-toggle input:checked+.uc-toggle__track .uc-toggle__thumb{transform:translateX(-20px)}.uc-toggle input:focus-visible+.uc-toggle__track{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 35%,transparent);outline-offset:2px}.uc-toggle__label{font-weight:700;color:var(--uc-color-heading)}
.uc-stepper{display:grid;grid-template-columns:var(--uc-control-h) minmax(80px,1fr) var(--uc-control-h);border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);overflow:hidden;background:var(--uc-color-surface);box-shadow:var(--uc-shadow-xs)}.uc-stepper .uc-input{border:0;border-inline:1px solid var(--uc-color-border);border-radius:0;box-shadow:none;text-align:center;font-weight:800;-moz-appearance:textfield}.uc-stepper .uc-input::-webkit-inner-spin-button,.uc-stepper .uc-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.uc-stepper__button{border:0;background:var(--uc-color-surface-soft);color:var(--uc-color-heading);font-size:1.25rem;font-weight:800;cursor:pointer}.uc-stepper__button:hover{background:var(--uc-color-primary-soft);color:var(--uc-color-primary)}.uc-stepper__button:focus-visible{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 35%,transparent);outline-offset:-3px}
.uc-range{display:grid;gap:10px}.uc-range__header{display:flex;justify-content:space-between;gap:20px}.uc-range__output{font-weight:820;color:var(--uc-color-heading)}.uc-range input[type="range"]{width:100%;height:6px;margin:7px 0;border:0;border-radius:var(--uc-radius-pill);background:var(--uc-color-border);accent-color:var(--uc-color-primary);cursor:pointer}
.uc-search-select{position:relative}.uc-search-select__input{padding-inline-end:44px}.uc-search-select::after{content:"⌄";position:absolute;inset-inline-end:15px;top:16px;color:var(--uc-color-muted);pointer-events:none}.uc-search-select__list{z-index:300;margin:5px 0 0;padding:6px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);background:var(--uc-color-surface);box-shadow:var(--uc-shadow-md)}.uc-search-select__option{padding:10px 11px;border-radius:9px;color:var(--uc-color-text)}.uc-search-select__option:hover,.uc-search-select__option.is-active{background:var(--uc-color-primary-soft);color:var(--uc-color-heading)}.uc-search-select__option[aria-selected="true"]::after{content:"✓";float:inline-end;color:var(--uc-color-primary)}
.uc-tabs{display:grid;gap:18px}.uc-tabs__list{display:flex;gap:4px;padding:4px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);background:var(--uc-color-surface-soft)}.uc-tabs__tab{flex:0 0 auto;min-height:40px;padding:0 15px;border:0;border-radius:9px;background:transparent;color:var(--uc-color-muted);font:760 var(--uc-text-sm)/1 var(--uc-font-body);cursor:pointer}.uc-tabs__tab[aria-selected="true"]{background:var(--uc-color-surface);color:var(--uc-color-heading);box-shadow:var(--uc-shadow-xs)}.uc-tabs__tab:focus-visible{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 34%,transparent);outline-offset:1px}.uc-tabs__panel{animation:ucFadeIn var(--uc-duration) var(--uc-ease)}
.uc-accordion{display:grid;gap:10px}.uc-accordion details{border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-sm);background:var(--uc-color-surface);overflow:hidden}.uc-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 17px;list-style:none;font-weight:800;color:var(--uc-color-heading)}.uc-accordion summary::-webkit-details-marker{display:none}.uc-accordion summary::after{content:"+";font-size:1.2rem;color:var(--uc-color-muted);transition:transform var(--uc-duration) var(--uc-ease)}.uc-accordion details[open] summary::after{transform:rotate(45deg)}.uc-accordion__content{padding:0 17px 17px;color:var(--uc-color-muted)}
.uc-tooltip{vertical-align:middle}.uc-tooltip__trigger{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid var(--uc-color-border);border-radius:50%;background:var(--uc-color-surface);color:var(--uc-color-muted);font:800 12px/1 var(--uc-font-body);cursor:help}.uc-tooltip__trigger:focus-visible{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 35%,transparent);outline-offset:2px}.uc-tooltip__content{width:max-content;max-width:260px;inset-inline-start:50%;bottom:calc(100% + 9px);transform:translateX(-50%) translateY(4px);padding:9px 11px;border-radius:9px;background:var(--uc-color-heading);box-shadow:var(--uc-shadow-md);color:var(--uc-color-bg);font-size:var(--uc-text-xs);font-weight:650;line-height:1.45;transition:opacity var(--uc-duration-fast),transform var(--uc-duration-fast)}.uc-tooltip:focus-within .uc-tooltip__content,.uc-tooltip:hover .uc-tooltip__content{transform:translateX(-50%) translateY(0)}
.uc-progress{display:grid;gap:7px}.uc-progress__header{display:flex;justify-content:space-between;gap:14px;font-size:var(--uc-text-sm);font-weight:700;color:var(--uc-color-muted)}.uc-progress__track{height:8px;border-radius:var(--uc-radius-pill);background:var(--uc-color-border)}.uc-progress__bar{border-radius:inherit;background:linear-gradient(90deg,var(--uc-color-primary),var(--uc-color-accent));transition:width var(--uc-duration-slow) var(--uc-ease)}
.uc-wizard{display:grid;gap:22px}.uc-wizard__meta{display:flex;align-items:center;justify-content:space-between;gap:14px}.uc-wizard__count{font-size:var(--uc-text-sm);font-weight:780;color:var(--uc-color-muted)}.uc-wizard__step{animation:ucFadeSlide var(--uc-duration) var(--uc-ease)}.uc-wizard__title{margin:0 0 6px;font:820 var(--uc-text-2xl)/1.15 var(--uc-font-heading);letter-spacing:-.03em;color:var(--uc-color-heading)}.uc-wizard__actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.uc-repeater{display:grid;gap:14px}.uc-repeater__rows{display:grid;gap:12px}.uc-repeater__row{padding:17px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-md);background:var(--uc-color-surface)}.uc-repeater__row-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.uc-repeater__row-title{font-weight:820;color:var(--uc-color-heading)}
.uc-sticky-summary{padding:20px;border:1px solid var(--uc-color-border);border-radius:var(--uc-radius-lg);background:var(--uc-color-surface);box-shadow:var(--uc-shadow-sm)}.uc-sticky-summary__title{margin:0 0 14px;font:820 var(--uc-text-lg)/1.2 var(--uc-font-heading);color:var(--uc-color-heading)}
.uc-skeleton{position:relative;overflow:hidden;border-radius:8px;background:var(--uc-color-border);color:transparent!important}.uc-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--uc-color-surface) 72%,transparent),transparent);animation:ucShimmer 1.35s infinite}
.uc-component-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.uc-stack{display:grid;gap:var(--uc-space-4)}.uc-cluster{display:flex;align-items:center;flex-wrap:wrap;gap:var(--uc-space-3)}.uc-two-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:24px;align-items:start}
@keyframes ucFadeIn{from{opacity:0}to{opacity:1}}@keyframes ucFadeSlide{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes ucShimmer{100%{transform:translateX(100%)}}
@media(max-width:760px){.uc-component-grid,.uc-two-column{grid-template-columns:1fr}.uc-button{min-height:50px}.uc-button-group>.uc-button{flex:1 1 auto}.uc-result{border-radius:var(--uc-radius-md)}.uc-radio-grid{grid-template-columns:1fr}.uc-segmented{max-width:100%;overflow:auto}.uc-sticky-summary{position:static}.uc-wizard__actions .uc-button{flex:1}.uc-tooltip__content{max-width:min(240px,78vw)}}
@media(prefers-reduced-motion:reduce){.uc-tabs__panel,.uc-wizard__step{animation:none}.uc-card--interactive:hover,.uc-button:hover{transform:none}.uc-progress__bar,.uc-toggle__thumb,.uc-tooltip__content{transition:none}.uc-skeleton::after{animation:none;display:none}}
.uc-check{position:relative;display:flex;align-items:flex-start;gap:10px;cursor:pointer}.uc-check input{position:absolute;opacity:0;pointer-events:none}.uc-check__box{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;margin-top:1px;border:1px solid var(--uc-color-border-strong);border-radius:7px;background:var(--uc-color-surface);box-shadow:var(--uc-shadow-xs);transition:background var(--uc-duration-fast),border-color var(--uc-duration-fast),box-shadow var(--uc-duration-fast)}.uc-check input[type="radio"]+.uc-check__box{border-radius:50%}.uc-check__box::after{content:"";width:10px;height:6px;border-inline-start:2px solid var(--uc-color-on-primary);border-bottom:2px solid var(--uc-color-on-primary);transform:rotate(-45deg) scale(0);transition:transform var(--uc-duration-fast) var(--uc-ease)}[dir="rtl"] .uc-check__box::after{transform:rotate(45deg) scale(0)}.uc-check input[type="radio"]+.uc-check__box::after{width:8px;height:8px;border:0;border-radius:50%;background:var(--uc-color-on-primary);transform:scale(0)}.uc-check input:checked+.uc-check__box{border-color:var(--uc-color-primary);background:var(--uc-color-primary)}.uc-check input:checked+.uc-check__box::after{transform:rotate(-45deg) scale(1)}[dir="rtl"] .uc-check input:checked+.uc-check__box::after{transform:rotate(45deg) scale(1)}.uc-check input[type="radio"]:checked+.uc-check__box::after{transform:scale(1)}.uc-check input:focus-visible+.uc-check__box{outline:3px solid color-mix(in srgb,var(--uc-color-focus) 35%,transparent);outline-offset:2px}.uc-check__content{display:grid;gap:2px}.uc-check__label{font-weight:740;color:var(--uc-color-heading)}.uc-check__description{font-size:var(--uc-text-sm);line-height:1.4;color:var(--uc-color-muted)}.uc-check input:disabled~.uc-check__content,.uc-check input:disabled+.uc-check__box{opacity:.5}.uc-check:has(input:disabled){cursor:not-allowed}
