{"version":3,"file":"accordion-item.css.cjs","names":[],"sources":["../../../src/disclosure/accordion-item/accordion-item.css?inline"],"sourcesContent":["@layer refine.base {\n  /* ========================================\n       Base Styles & Defaults\n       ======================================== */\n\n  :host {\n    --accordion-details-radius: var(--rounded-lg);\n    --accordion-item-transition: var(--transition-normal);\n    --accordion-item-expand-easing: var(--ease-spring);\n    display: block;\n    color: var(--accordion-item-body-color, var(--text-color-body));\n  }\n\n  details {\n    width: 100%;\n    overflow: hidden;\n    border-radius: var(--accordion-item-radius);\n  }\n\n  summary {\n    position: relative;\n    display: flex;\n    gap: var(--size-4);\n    align-items: center;\n    min-height: var(--_touch-target);\n    padding: var(--accordion-item-details-padding, var(--size-3) var(--size-4));\n    font-size: var(--accordion-item-title);\n    cursor: pointer;\n    user-select: none;\n    outline: none;\n    list-style: none;\n    background: var(--accordion-item-bg);\n    border: var(--border) solid var(--accordion-item-border-color);\n    border-radius: var(--accordion-details-radius);\n    transition:\n      background var(--accordion-item-transition),\n      border-color var(--accordion-item-transition),\n      color var(--accordion-item-transition);\n  }\n\n  summary::-webkit-details-marker {\n    display: none;\n  }\n\n  summary:focus {\n    outline: none;\n  }\n\n  summary:focus-visible {\n    outline: var(--border-2) solid currentcolor;\n    outline-offset: var(--border-2);\n    box-shadow: 0 0 0 3px color-mix(in oklch, currentcolor 20%, transparent);\n  }\n\n  .header-content {\n    display: flex;\n    flex: 1;\n    flex-direction: column;\n    min-width: 0;\n  }\n\n  .subtitle {\n    font-size: var(--accordion-item-subtitle-size);\n    line-height: var(--leading-normal);\n    color: var(--accordion-item-subtitle-color, var(--text-color-secondary));\n  }\n\n  .title {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    font-weight: var(--font-medium);\n    color: var(--accordion-item-title-color, var(--text-color-heading));\n    white-space: nowrap;\n  }\n\n  .content-wrapper {\n    display: grid;\n    grid-template-rows: 0fr;\n    font-size: var(--accordion-item-body);\n    background: var(--accordion-item-bg);\n    border-inline: 1px solid var(--accordion-item-border-color);\n    border-bottom: 1px solid var(--accordion-item-border-color);\n    border-radius: var(--accordion-summary-radius);\n    transition: grid-template-rows 200ms var(--accordion-item-expand-easing, var(--ease-spring));\n  }\n\n  details[open] .content-wrapper {\n    grid-template-rows: 1fr;\n  }\n\n  .content-inner {\n    padding: var(--accordion-item-summary-padding, var(--size-2) var(--size-4));\n    overflow: hidden;\n    opacity: 1;\n    transform: translateY(0);\n    transition:\n      opacity 200ms 60ms var(--ease-spring),\n      transform 200ms 60ms var(--ease-spring);\n  }\n\n  /* Opening: set from-state with no transition — transition fires on base rule when class is removed */\n  details.opening .content-inner {\n    opacity: 0;\n    transform: translateY(-6px);\n    transition: none;\n  }\n\n  /* Closing: content fades out immediately, row collapses after */\n  details.closing .content-inner {\n    opacity: 0;\n    transform: translateY(-4px);\n    transition:\n      opacity 150ms var(--ease-spring),\n      transform 150ms var(--ease-spring);\n  }\n\n  /* Keep row expanded while closing animation plays */\n  details.closing .content-wrapper {\n    grid-template-rows: 1fr;\n    transition: grid-template-rows 200ms 120ms var(--accordion-item-expand-easing, var(--ease-spring));\n  }\n}\n\n@layer refine.variants {\n  /* ========================================\n       Visual Variants\n       ======================================== */\n\n  :host,\n  :host([variant='solid']) {\n    --accordion-item-bg: var(--color-contrast-50);\n    --accordion-item-border-color: transparent;\n    --accordion-item-hover-bg: var(--color-contrast-200);\n  }\n\n  :host([variant='flat']) {\n    --accordion-item-bg: var(--color-contrast-100);\n    --accordion-item-hover-bg: var(--color-contrast-200);\n  }\n\n  :host([variant='bordered']) {\n    --accordion-item-bg: var(--color-contrast-100);\n    --accordion-item-border-color: var(--color-divider);\n    --accordion-item-hover-bg: var(--color-contrast-200);\n\n    box-shadow: var(--inset-shadow-xs), var(--shadow-2xs);\n  }\n\n  :host([variant='outline']) {\n    --accordion-item-bg: transparent;\n    --accordion-item-border-color: var(--color-divider);\n    --accordion-item-hover-bg: var(--color-contrast-300);\n  }\n\n  :host([variant='ghost']) {\n    --accordion-item-bg: transparent;\n    --accordion-item-border-color: transparent;\n    --accordion-item-hover-bg: var(--color-contrast-200);\n  }\n\n  :host([variant='text']) {\n    --accordion-item-bg: transparent;\n    --accordion-item-border-color: transparent;\n    --accordion-item-hover-bg: transparent;\n  }\n\n  /* ── Shared hover state reads per-variant --accordion-item-hover-bg ── */\n  :host summary:hover {\n    background: var(--accordion-item-hover-bg);\n  }\n\n  /* Glass & Frost - Shared Styles */\n  :host([variant='glass']) details,\n  :host([variant='frost']) details {\n    border-radius: inherit;\n  }\n\n  :host([variant='glass']) summary,\n  :host([variant='frost']) summary {\n    border-radius: inherit;\n    backdrop-filter: blur(var(--blur-lg)) saturate(180%);\n  }\n\n  :host([variant='glass']) .content-wrapper,\n  :host([variant='frost']) .content-wrapper {\n    border-radius: 0;\n    backdrop-filter: blur(var(--blur-lg)) saturate(180%);\n  }\n\n  /* Glass */\n  :host([variant='glass']) {\n    --accordion-item-bg: color-mix(in oklch, var(--color-secondary) 30%, var(--color-contrast) 10%);\n    --accordion-item-border-color: transparent;\n    --accordion-item-hover-bg: color-mix(in oklch, var(--color-secondary) 20%, transparent);\n    --accordion-item-title-color: color-mix(in oklch, var(--color-secondary-contrast) 100%, transparent);\n    --accordion-item-subtitle-color: color-mix(in oklch, var(--color-secondary-contrast) 60%, transparent);\n    --accordion-item-body-color: color-mix(in oklch, var(--color-secondary-contrast) 80%, transparent);\n  }\n\n  :host([variant='glass']) summary {\n    text-shadow: var(--text-shadow-xs);\n  }\n\n  :host([variant='glass']) .content-wrapper {\n    filter: brightness(1.05);\n  }\n\n  /* Frost */\n  :host([variant='frost']) {\n    --accordion-item-bg: color-mix(in oklch, var(--color-canvas) 55%, transparent);\n    --accordion-item-border-color: transparent;\n    --accordion-item-hover-bg: color-mix(in oklch, var(--color-canvas) 20%, transparent);\n  }\n\n  :host([variant='frost']) summary {\n    text-shadow: var(--text-shadow-2xs);\n  }\n\n  /* ========================================\n     Size Variants\n     ======================================== */\n\n  :host([size='sm']) {\n    --accordion-item-details-padding: var(--size-2) var(--size-4);\n    --accordion-item-summary-padding: var(--size-1) var(--size-5);\n    --accordion-item-title: var(--text-sm);\n    --accordion-item-subtitle-size: var(--text-xs);\n    --accordion-item-body: var(--text-xs);\n  }\n\n  :host(:not([size])),\n  :host([size='md']) {\n    --accordion-item-details-padding: var(--size-3) var(--size-4);\n    --accordion-item-summary-padding: var(--size-1) var(--size-5);\n    --accordion-item-title: var(--text-base);\n    --accordion-item-subtitle-size: var(--text-sm);\n    --accordion-item-body: var(--text-sm);\n  }\n\n  :host([size='lg']) {\n    --accordion-item-details-padding: var(--size-4) var(--size-4);\n    --accordion-item-summary-padding: var(--size-1) var(--size-5);\n    --accordion-item-title: var(--text-lg);\n    --accordion-item-subtitle-size: var(--text-base);\n    --accordion-item-body: var(--text-base);\n  }\n\n  /* ─── coarse pointer: promote one size tier for proportional scaling ─── */\n  @media (pointer: coarse) {\n    :host,\n    :host([size='md']) {\n      --accordion-item-details-padding: var(--size-4) var(--size-5);\n      --accordion-item-title: var(--text-lg);\n      --accordion-item-subtitle-size: var(--text-base);\n      --accordion-item-body: var(--text-base);\n    }\n\n    :host([size='sm']) {\n      --accordion-item-details-padding: var(--size-3) var(--size-4);\n      --accordion-item-title: var(--text-base);\n      --accordion-item-subtitle-size: var(--text-sm);\n      --accordion-item-body: var(--text-sm);\n    }\n  }\n\n  /* ========================================\n     States\n     ======================================== */\n\n  :host([disabled]) {\n    pointer-events: none;\n    opacity: 0.6;\n  }\n\n  /* ========================================\n     Chevron Animation\n     ======================================== */\n\n  .chevron {\n    --ore-icon-size: var(--_size, var(--size-5));\n    width: var(--_size, var(--size-5));\n    height: var(--_size, var(--size-5));\n\n    margin-inline-start: auto;\n    transform: rotate(-90deg);\n    transition: transform 200ms var(--ease-spring);\n  }\n\n  details[open] .chevron {\n    transform: rotate(0deg);\n  }\n\n  /* RTL Support - use .rtl class added by JavaScript */\n  details.rtl .chevron {\n    transform: rotate(90deg);\n  }\n\n  details.rtl[open] .chevron {\n    transform: rotate(0deg);\n  }\n\n  /* :dir(rtl) is inheritance-driven and crosses the shadow boundary; the ancestor-attribute\n     selectors (html[dir='rtl']/[dir='rtl']) cannot match anything inside this shadow root and\n     were removed. */\n  :dir(rtl) .chevron {\n    transform: rotate(90deg);\n  }\n\n  :dir(rtl) details[open] .chevron {\n    transform: rotate(0deg);\n  }\n\n  /* Expanded state - adjust border radius */\n  :host([expanded]) {\n    --accordion-details-radius: var(--rounded-lg) var(--rounded-lg) 0 0;\n    --accordion-summary-radius: 0 0 var(--rounded-lg) var(--rounded-lg);\n  }\n\n  @media (forced-colors: active) {\n    /* Default variant uses a transparent border — ensure a visible border\n         renders in HCM so the summary is distinguishable from the body */\n    summary {\n      border-color: ButtonText;\n    }\n  }\n}\n"],"mappings":""}