/*
 Preserved production vendor CSS, followed by the A theme in actual importer order.
 */








/* src/main/frontend/themes/hyenmin/styles.css */
/*
 * HYENMIN 테마 — 차분하고 깔끔한 스타일.
 * Lumo 토큰을 재정의해 전 화면의 색·라운드·타이포를 한 번에 정돈한다.
 * 방향: 절제된 단색 accent(잉크 블루) + 넉넉한 여백 + 얇은 보더 + 또렷한 타이포.
 */
/* stylelint-disable color-no-hex -- 여기가 색상 토큰의 원본 정의부입니다. 이 블록 밖에서는 hex 대신 var(--lumo-*)를 쓰세요. */
html {
    /* A안 ‘푸른 여백’ — 흰 종이·파스텔 파랑, 기존 배치와 글자 크기 유지 */
    --lumo-primary-color: #28658d;
    --lumo-announcement-priority-region-color: #0755c7;
    --lumo-primary-color-50pct: #5d86a1;
    --lumo-primary-color-10pct: #dfedf9;
    --lumo-action-background-color: #dfedf9;
    --lumo-action-hover-color: #d2e6f6;
    --lumo-action-text-color: #28658d;
    --lumo-control-border-color: #5d86a1;
    --lumo-transparent-color: transparent;
    --lumo-border-radius-none: 0;
    --lumo-border-radius-circle: 50%;
    --lumo-box-shadow-none: none;
    --lumo-primary-text-color: var(--lumo-primary-color);
    --lumo-primary-hover-color: color-mix(in srgb, var(--lumo-primary-color) 88%, var(--lumo-body-text-color));
    --lumo-primary-contrast-color: #ffffff;

    /* 청약해 — 마지막 글자 뒤에 떠오르는 해 */
    --lumo-brand-ink: var(--lumo-primary-color);
    --lumo-brand-sun: #ffdc83;
    --lumo-brand-sun-ray: #e9ac3e;
    --lumo-brand-sun-light: #fff7dc;

    /* 상태색 */
    --lumo-success-color: #3c705a;
    --lumo-success-text-color: #32684f;
    --lumo-success-color-5pct: #f3faf6;
    --lumo-success-color-10pct: #eaf5ee;
    --lumo-success-color-25pct: #cfe4d7;
    --lumo-success-color-50pct: #7ead92;
    --lumo-error-color: #a75a57;
    --lumo-error-text-color: #974a47;
    --lumo-error-color-10pct: #f9eeed;
    --lumo-error-color-50pct: #ceaaa7;

    /* 흰 바탕과 맑은 파란 보조 면. 글자와 배경의 명도 차이로 가독성을 확보한다. */
    --lumo-base-color: #ffffff;
    --lumo-page-background-color: #ffffff;
    --lumo-subtle-background-color: #f3f9fd;
    --lumo-image-overlay-color: rgb(255 255 255 / 92%);
    --lumo-body-text-color: #203748;
    --lumo-secondary-text-color: #4b6474;
    --lumo-tertiary-text-color: var(--lumo-secondary-text-color);
    /* Keep older surface styles on the same palette, without changing their layout. */
    --lumo-legacy-heading-color: var(--lumo-body-text-color);
    --lumo-legacy-text-color: var(--lumo-body-text-color);
    --lumo-legacy-muted-color: var(--lumo-secondary-text-color);
    --lumo-legacy-secondary-color: var(--lumo-secondary-text-color);
    --lumo-legacy-accent-color: var(--lumo-primary-color);
    --lumo-legacy-accent-strong-color: var(--lumo-primary-hover-color);
    --lumo-legacy-accent-soft-color: var(--lumo-primary-text-color);
    --lumo-legacy-border-color: var(--lumo-contrast-20pct);
    --lumo-legacy-border-strong-color: var(--lumo-contrast-30pct);
    --lumo-legacy-border-active-color: var(--lumo-primary-color);
    --lumo-legacy-outline-shadow: var(--lumo-box-shadow-none);
    --lumo-ink-background-color: var(--lumo-legacy-accent-color);
    --lumo-soft-accent-color: var(--lumo-action-background-color);
    --lumo-soft-accent-text-color: var(--lumo-legacy-accent-color);

    /* 얇고 은은한 보더/대비 */
    --lumo-contrast-5pct: var(--lumo-subtle-background-color);
    --lumo-contrast-10pct: #e1edf4;
    --lumo-contrast-20pct: #c8ddeb;
    --lumo-contrast-30pct: var(--lumo-control-border-color);
    --lumo-contrast-40pct: #5c7b8e;

    /* 의미색은 기존 구분을 유지하며 Lumo 토큰에서만 정의한다. */
    --lumo-shadow-ink-color: #000000;
    --lumo-event-winner-color: #81708f;
    --lumo-event-contract-color: #567c75;
    --lumo-day-sunday-color: #a06b72;
    --lumo-calendar-winner-text-color: #665274;
    --lumo-calendar-contract-text-color: #3a665f;
    --lumo-calendar-sunday-text-color: #8c515a;
    --lumo-focus-on-accent-color: var(--lumo-action-background-color);
    --lumo-focus-color: var(--lumo-primary-color);
    --lumo-focus-deep-color: var(--lumo-primary-hover-color);
    --lumo-selected-color: var(--lumo-primary-color);
    --lumo-chart-loan-color: #9cbbcd;
    --lumo-chart-loan-ready-color: #adcdba;
    --lumo-chart-covered-color: #32684f;
    --lumo-chart-gap-color: #eaddd4;
    --lumo-chart-gap-text-color: #805944;
    --lumo-ready-surface-color: #eef7f1;
    --lumo-warning-color: #9d733e;
    --lumo-warning-color-8pct: #faf4e9;
    --lumo-assumed-color: #c4ad7e;
    --lumo-caution-text-color: #77572f;
    --lumo-warning-text-color: #77572f;
    --lumo-status-fail-color: #974a47;
    --lumo-illustration-sun-color: #fff2cb;

    /* A안은 작은 모서리로 통일한다. 원형 표식에는 pill 토큰을 별도로 쓴다. */
    --lumo-border-radius-xs: 2px;
    --lumo-border-radius-s: 2px;
    --lumo-border-radius-m: 2px;
    --lumo-border-radius-l: 2px;
    --lumo-border-radius-xl: 2px;
    --lumo-border-radius-xxl: 2px;
    --lumo-border-radius-pill: 999px;

    /* 떠 있는 카드 대신 여백과 구분선을 사용한다. */
    --lumo-box-shadow-xs: var(--lumo-box-shadow-none);
    --lumo-box-shadow-s: var(--lumo-box-shadow-none);
    --lumo-box-shadow-m: var(--lumo-box-shadow-none);
    --lumo-box-shadow-l: var(--lumo-box-shadow-none);

    /* 타이포 스케일. xxs~xxl은 Lumo 기본값과 동일한 값으로 고정해 컴포넌트 표시를 바꾸지 않는다.
       xxxs(11px)만 새로 추가하고, xxxl은 실제 사용 구간(35~38px)에 맞춰 2.5rem -> 2.25rem으로 조정한다.
       사용자 브라우저 글자 크기 설정을 따르도록 px가 아닌 rem으로 선언한다. */
    --lumo-font-size-xxxs: 0.6875rem; /* 11px */
    --lumo-font-size-xxs: 0.75rem;    /* 12px */
    --lumo-font-size-xs: 0.8125rem;   /* 13px */
    --lumo-font-size-s: 0.875rem;     /* 14px */
    --lumo-font-size-m: 1rem;         /* 16px */
    --lumo-font-size-l: 1.125rem;     /* 18px */
    --lumo-font-size-xl: 1.375rem;    /* 22px */
    --lumo-font-size-xxl: 1.75rem;    /* 28px */
    --lumo-font-size-xxxl: 2.25rem;   /* 36px */
    --lumo-font-size-hero: 2.75rem;
    --lumo-font-size-display: 3.5rem;

    /* 타이포 — 시스템 + 한글 폴백 */
    --lumo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
        "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;

    /* ------------------------------------------------------------------
       HYENMIN 팔레트.
       무채 계열은 명도 단계(톤)로, 의미를 가진 색은 뜻으로 이름 짓는다.
       눈으로 구분되지 않는 색만 합쳤다. 캘린더 분류색·차트 시리즈색·상태색은
       서로 다른 뜻을 나르므로 비슷해 보여도 남긴다.
       ------------------------------------------------------------------ */

    /* 무채 계열 — 명도 단계로 읽는다. */
    --hm-slate-400: var(--lumo-secondary-text-color); /* 보조 텍스트 */
    --hm-slate-600: var(--lumo-legacy-muted-color); /* 본문 텍스트 */
    --hm-slate-800: var(--lumo-legacy-text-color); /* 강조 텍스트 */
    --hm-slate-900: var(--lumo-legacy-heading-color); /* 제목 */
    --hm-blue-400: var(--lumo-legacy-accent-soft-color); /* 보조 강조 */
    --hm-blue-600: var(--lumo-legacy-accent-color); /* 주 강조 — 링크·아이콘·CTA */
    --hm-blue-800: var(--lumo-legacy-accent-strong-color); /* 진한 강조 */
    --hm-line-100: var(--lumo-legacy-border-color); /* 기본 보더 */
    --hm-line-200: var(--lumo-legacy-border-strong-color); /* 진한 보더 */
    --hm-line-300: var(--lumo-legacy-border-active-color); /* 강조 보더 */
    --hm-surface-0: var(--lumo-base-color); /* 카드 흰 면 */
    --hm-surface-warm: var(--lumo-page-background-color); /* 페이지 중립 면 */
    --hm-surface-tint: var(--lumo-subtle-background-color); /* 옅은 중립 면 */
    --hm-shadow-ink: var(--lumo-shadow-ink-color); /* 인셋 그림자 */

    /* 의미색 — 톤이 비슷해도 뜻이 달라 합치지 않는다. */
    --hm-event-winner: var(--lumo-event-winner-color); /* 캘린더 — 당첨 발표 */
    --hm-event-contract: var(--lumo-event-contract-color); /* 캘린더 — 계약일 */
    --hm-day-sunday: var(--lumo-day-sunday-color); /* 캘린더 — 일요일 */
    --hm-focus-on-accent: var(--lumo-focus-on-accent-color); /* 포커스 링 — 진한 면 위 */
    --hm-focus: var(--lumo-focus-color); /* 포커스 링 — 밝은 면 위 */
    --hm-focus-deep: var(--lumo-focus-deep-color); /* 포커스 링 — 지도 위 */
    --hm-selected: var(--lumo-selected-color); /* 선택된 칩·버튼 */
    --hm-chart-loan: var(--lumo-chart-loan-color); /* 차트 — 대출 막대 */
    --hm-chart-loan-ready: var(--lumo-chart-loan-ready-color); /* 차트 — 대출(준비 완료) */
    --hm-chart-covered: var(--lumo-chart-covered-color); /* 차트 — 충당됨 · 성공 텍스트 */
    --hm-chart-gap: var(--lumo-chart-gap-color); /* 차트 — 부족분 막대 */
    --hm-chart-gap-text: var(--lumo-chart-gap-text-color); /* 차트 — 부족분 텍스트 */
    --hm-ready-surface: var(--lumo-ready-surface-color); /* 준비 완료 — 옅은 면 */
    --hm-warn: var(--lumo-warning-color); /* 경고 카드 */
    --hm-assumed: var(--lumo-assumed-color); /* 가정값 입력 */
    --hm-caution-text: var(--lumo-caution-text-color); /* 주의 텍스트 */
    --hm-warn-strong: var(--lumo-warning-text-color); /* 누락 · 오류 텍스트 */
    --hm-status-fail: var(--lumo-status-fail-color); /* 불합격 · 오류 */
    --hm-sun: var(--lumo-illustration-sun-color); /* 홈 일러스트 — 해 */
}
/* stylelint-enable color-no-hex */

/* 흰 페이지 위의 차분한 정보 표면 */
body {
    background: var(--hm-surface-warm);
    color: var(--lumo-body-text-color);
}

.view {
    padding: 1.25rem;
}

/*
 * 폼 컨트롤 정규화 (모든 탭 공통)
 * box-sizing / min-width:0 / 높이 통일 — flex 행에서 열 정렬이 어긋나지 않게.
 */
input,
select,
textarea,
button {
    box-sizing: border-box;
    font: inherit;
}

input:not([type='checkbox']):not([type='radio']),
select,
textarea {
    min-width: 0;
    border: 1px solid var(--lumo-contrast-30pct);
    border-radius: var(--lumo-border-radius-s);
    background: var(--lumo-base-color);
    color: var(--lumo-body-text-color);
}

input:not([type='checkbox']):not([type='radio']),
select {
    height: 2.25rem;
    line-height: normal;
    padding: 0 0.625rem;
}

input:focus,
select:focus,
textarea:focus {
    outline: 2px solid var(--lumo-focus-color);
    outline-offset: 2px;
    border-color: var(--lumo-primary-color);
    box-shadow: var(--lumo-box-shadow-none);
}

label {
    min-width: 0;
}

/*
 * 기본 버튼 — 인라인 배경을 지정하지 않은 보조 버튼(삭제/추가 등)을 깔끔한 아웃라인 버튼으로.
 * primary 버튼은 인라인 스타일(배경/보더/라운드)이 이 규칙을 덮어쓴다.
 */
button {
    border: 1px solid var(--lumo-contrast-30pct);
    background: var(--lumo-base-color);
    color: var(--lumo-body-text-color);
    border-radius: var(--lumo-border-radius-m);
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

button:hover:not(:disabled) {
    background: var(--lumo-contrast-5pct);
}

button:disabled {
    opacity: 0.5;
    cursor: default;
}

/* ---- 재사용 유틸리티 ---- */

/* 카드 */
.card {
    background: var(--lumo-base-color);
    border: 1px solid var(--lumo-contrast-20pct);
    border-radius: var(--lumo-border-radius-l);
    box-shadow: var(--lumo-box-shadow-xs);
}

/* 상태·유형 배지 */
.badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--lumo-font-size-xxs);
    font-weight: 600;
    line-height: 1;
    padding: 4px 9px;
    border-radius: var(--lumo-border-radius-m);
    white-space: nowrap;
}
.badge-open {
    background: var(--lumo-success-color-10pct);
    color: var(--lumo-success-text-color);
}
.badge-upcoming {
    background: var(--lumo-primary-color-10pct);
    color: var(--lumo-primary-text-color);
}
.badge-closed {
    background: var(--lumo-contrast-10pct);
    color: var(--lumo-secondary-text-color);
}
.badge-unknown {
    background: var(--lumo-contrast-10pct);
    color: var(--lumo-tertiary-text-color);
}

/* 공급 유형 등 옅은 태그 */
.tag {
    display: inline-flex;
    align-items: center;
    font-size: var(--lumo-font-size-xxs);
    font-weight: 600;
    line-height: 1;
    padding: 4px 9px;
    border-radius: var(--lumo-border-radius-s);
    background: var(--lumo-contrast-5pct);
    color: var(--lumo-secondary-text-color);
}

/* ============================================================
 *  계산기 공통 UI (매수 시뮬레이터 · 자금 계산기 공유)
 *  일반인 친화 톤: 카드 섹션 · 단위 칩 · 도움말 · 히어로 결과.
 * ============================================================ */

.calc-page {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    max-width: 940px;
}

/* 페이지 헤더 */
.calc-head h2 {
    margin: 0;
    font-size: var(--lumo-font-size-xl);
    letter-spacing: -0.01em;
}
.calc-head p {
    margin: 6px 0 0;
    color: var(--lumo-secondary-text-color);
    font-size: var(--lumo-font-size-s);
    line-height: 1.5;
}

/* 섹션 카드 */
.calc-section {
    background: var(--lumo-base-color);
    border: 1px solid var(--lumo-contrast-20pct);
    border-radius: var(--lumo-border-radius-l);
    box-shadow: var(--lumo-box-shadow-xs);
    padding: 1.1rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.calc-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.calc-section-title {
    margin: 0;
    font-size: var(--lumo-font-size-m);
    font-weight: 700;
    letter-spacing: -0.01em;
}
.calc-section-desc {
    margin: 3px 0 0;
    color: var(--lumo-secondary-text-color);
    font-size: var(--lumo-font-size-xs);
    line-height: 1.45;
}

/* 은은한 안내(공고 불러오기 등) */
.calc-soft {
    background: var(--lumo-contrast-5pct);
    border: none;
    box-shadow: none;
}

/* 필드 그리드 */
.field-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
}

/* 라벨 필드 + 단위 칩 */
.field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1 1 150px;
    min-width: 0;
}
.field-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--lumo-font-size-xs);
    color: var(--lumo-secondary-text-color);
    font-weight: 500;
}
.field-input {
    position: relative;
    display: flex;
    align-items: center;
}
.field-input > input,
.field-input > select {
    width: 100%;
}
.field-input.has-suffix > input {
    padding-right: 2.7rem;
}
.field-suffix {
    position: absolute;
    right: 0.65rem;
    color: var(--lumo-tertiary-text-color);
    font-size: var(--lumo-font-size-xs);
    pointer-events: none;
}

/* 도움말 ⓘ */
.help {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    border-radius: var(--lumo-border-radius-circle);
    background: var(--lumo-contrast-10pct);
    color: var(--lumo-secondary-text-color);
    font-size: var(--lumo-font-size-xxxs);
    font-weight: 700;
    cursor: help;
    user-select: none;
}
.help:hover {
    background: var(--lumo-primary-color-10pct);
    color: var(--lumo-primary-text-color);
}

/* 세그먼트 컨트롤(모드 토글 등) */
.seg {
    display: inline-flex;
    padding: 3px;
    gap: 3px;
    background: var(--lumo-contrast-5pct);
    border-radius: var(--lumo-border-radius-m);
    border: 1px solid var(--lumo-contrast-10pct);
}
.seg-item {
    border: none;
    background: transparent;
    color: var(--lumo-secondary-text-color);
    font-weight: 600;
    font-size: var(--lumo-font-size-s);
    padding: 6px 16px;
    border-radius: calc(var(--lumo-border-radius-m) - 2px);
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease;
}
.seg-item:hover:not(.is-active) {
    color: var(--lumo-body-text-color);
}
.seg-item.is-active {
    background: var(--lumo-action-background-color);
    color: var(--lumo-primary-text-color);
    box-shadow: var(--lumo-box-shadow-xs);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

/* 버튼 변형 */
.btn-cta {
    background: var(--lumo-action-background-color);
    color: var(--lumo-action-text-color);
    border: none;
    border-radius: var(--lumo-border-radius-m);
    padding: 0.62rem 1.4rem;
    font-weight: 700;
    font-size: var(--lumo-font-size-m);
    cursor: pointer;
    box-shadow: var(--lumo-box-shadow-xs);
}
.btn-cta:hover:not(:disabled) {
    background: var(--lumo-action-hover-color);
}
.btn-ghost {
    background: transparent;
    border: none;
    color: var(--lumo-secondary-text-color);
    padding: 0.4rem 0.6rem;
    cursor: pointer;
    border-radius: var(--lumo-border-radius-m);
}
.btn-ghost:hover:not(:disabled) {
    background: var(--lumo-contrast-5pct);
}
.btn-danger {
    color: var(--lumo-error-text-color);
    border-color: var(--lumo-error-color-50pct);
    background: transparent;
}
.btn-sm {
    padding: 0.32rem 0.7rem;
    font-size: var(--lumo-font-size-xs);
}
.btn-row {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

/* 통계 타일 */
.stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}
.stat {
    flex: 1 1 150px;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--lumo-contrast-20pct);
    border-radius: var(--lumo-border-radius-m);
    background: var(--lumo-base-color);
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.stat-label {
    font-size: var(--lumo-font-size-xxs);
    color: var(--lumo-secondary-text-color);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.stat-value {
    font-size: var(--lumo-font-size-xl);
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--lumo-body-text-color);
}
.stat-unit {
    font-size: var(--lumo-font-size-xs);
    font-weight: 600;
    color: var(--lumo-secondary-text-color);
    margin-inline-start: 2px;
}
.stat-cash .stat-value { color: var(--lumo-primary-text-color); }
.stat-loan .stat-value { color: var(--lumo-error-text-color); }
.stat-settle .stat-value { color: var(--lumo-success-text-color); }

/* 결과 히어로 */
.hero {
    padding: 1.15rem 1.25rem;
    border-radius: var(--lumo-border-radius-l);
    border: 1px solid var(--lumo-contrast-20pct);
    background: var(--lumo-base-color);
}
.hero-good {
    background: var(--lumo-success-color-10pct);
    border-color: var(--lumo-success-color-50pct);
}
.hero-bad {
    background: var(--lumo-error-color-10pct);
    border-color: var(--lumo-error-color-50pct);
}
.hero-title {
    margin: 0;
    font-size: var(--lumo-font-size-xl);
    font-weight: 800;
    letter-spacing: -0.02em;
}
.hero-sub {
    margin: 6px 0 0;
    color: var(--lumo-secondary-text-color);
    font-size: var(--lumo-font-size-s);
    line-height: 1.5;
}

/* 시나리오 빌더(상단) */
.scenario {
    padding: 1.2rem 1.3rem;
    border-radius: var(--lumo-border-radius-l);
    border: 1px solid var(--lumo-primary-color-50pct);
    background: var(--lumo-primary-color-10pct);
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.scenario-line {
    margin: 0;
    font-size: var(--lumo-font-size-l);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.75;
    color: var(--lumo-body-text-color);
}
.scenario-num {
    font-size: var(--lumo-font-size-l);
    font-weight: 800;
    text-align: center;
    padding: 3px 6px;
    border: 1px solid var(--lumo-primary-color-50pct);
    border-radius: var(--lumo-border-radius-m);
    background: var(--lumo-base-color);
    color: var(--lumo-primary-text-color);
    vertical-align: baseline;
    -moz-appearance: textfield;
    appearance: textfield;
}
.scenario-num::-webkit-outer-spin-button,
.scenario-num::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.scenario-actions {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}
.scenario-hint {
    font-size: var(--lumo-font-size-xs);
    color: var(--lumo-secondary-text-color);
}

/* 연봉 빠른 입력 (시나리오 안) — 아래 지역 규제 토글과 같은 세그먼트 언어를 쓴다 */
.salary-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.salary-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--lumo-font-size-xs);
    font-weight: 600;
    color: var(--lumo-secondary-text-color);
}
.salary-seg .seg-item {
    padding: 6px 11px;
    font-size: var(--lumo-font-size-xs);
}
.salary-edit {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: var(--lumo-font-size-xs);
    color: var(--lumo-secondary-text-color);
}
.salary-input {
    width: 5rem;
    height: 1.95rem;
    text-align: right;
    font-size: var(--lumo-font-size-s);
    font-variant-numeric: tabular-nums;
    -moz-appearance: textfield;
    appearance: textfield;
}
.salary-input::-webkit-outer-spin-button,
.salary-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* what-if 레버 (눌러서 결론이 바뀌는 걸 보는 줄) */
.lever-bar {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}
.lever-label {
    font-size: var(--lumo-font-size-xs);
    font-weight: 700;
    color: var(--lumo-secondary-text-color);
    margin-inline-end: 0.15rem;
}
.lever-btn {
    padding: 0.35rem 0.7rem;
    font-size: var(--lumo-font-size-xs);
    font-weight: 600;
    border-radius: var(--lumo-border-radius-m);
    border: 1px solid var(--lumo-primary-color-50pct);
    background: var(--lumo-primary-color-10pct);
    color: var(--lumo-primary-text-color);
}
.lever-btn:hover:not(:disabled) {
    background: var(--lumo-action-hover-color);
    border-color: var(--lumo-control-border-color);
    color: var(--lumo-action-text-color);
}
.lever-btn.is-reset {
    border-color: var(--lumo-contrast-30pct);
    background: var(--lumo-base-color);
    color: var(--lumo-secondary-text-color);
}
.lever-btn.is-reset:hover:not(:disabled) {
    background: var(--lumo-contrast-5pct);
    border-color: var(--lumo-contrast-40pct);
    color: var(--lumo-body-text-color);
}
.lever-delta {
    margin: 0;
    font-size: var(--lumo-font-size-s);
    line-height: 1.5;
    padding: 0.5rem 0.7rem;
    border-radius: var(--lumo-border-radius-m);
    background: var(--lumo-contrast-5pct);
    color: var(--lumo-body-text-color);
}
.lever-delta.is-better {
    background: var(--lumo-success-color-10pct);
    color: var(--lumo-success-text-color);
}
.lever-delta.is-worse {
    background: var(--lumo-error-color-10pct);
    color: var(--lumo-error-text-color);
}

/* 시나리오 카드(집값 가정별 해법) */
.scn-grid {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}
.scn-card {
    border: 1px solid var(--lumo-contrast-20pct);
    border-inline-start-width: 4px;
    border-radius: var(--lumo-border-radius-m);
    padding: 0.85rem 1rem;
    background: var(--lumo-base-color);
}
.scn-card.is-ok {
    border-inline-start-color: var(--lumo-success-color);
    background: var(--lumo-success-color-10pct);
}
.scn-card.is-warn {
    border-inline-start-color: var(--hm-warn);
    background: var(--lumo-warning-color-8pct);
}
.scn-card.is-bad {
    border-inline-start-color: var(--lumo-error-color);
    background: var(--lumo-error-color-10pct);
}
.scn-head {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.scn-badge {
    font-weight: 800;
    font-size: var(--lumo-font-size-m);
    letter-spacing: -0.01em;
}
.scn-basis {
    font-size: var(--lumo-font-size-xxs);
    color: var(--lumo-secondary-text-color);
}
.scn-line {
    margin: 0;
    font-size: var(--lumo-font-size-s);
    line-height: 1.55;
}
.scn-gap {
    color: var(--lumo-error-text-color);
}
.scn-paths {
    margin: 6px 0 0;
    padding-inline-start: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: var(--lumo-font-size-s);
    line-height: 1.55;
}
.scn-warn {
    color: var(--lumo-error-text-color);
    font-size: var(--lumo-font-size-xs);
}

/* 시나리오 → 실제 공고 연결 */
.match-box {
    border: 1px solid var(--lumo-contrast-20pct);
    border-radius: var(--lumo-border-radius-m);
    padding: 0.8rem 0.9rem;
    background: var(--lumo-contrast-5pct);
}
.match-head {
    margin: 0 0 0.5rem;
    font-size: var(--lumo-font-size-s);
    color: var(--lumo-secondary-text-color);
}
.match-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.match-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.6rem;
    border-radius: var(--lumo-border-radius-s);
    background: var(--lumo-base-color);
    border: 1px solid var(--lumo-contrast-10pct);
}
.match-main {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 240px;
    min-width: 0;
}
.match-sub {
    font-size: var(--lumo-font-size-xxs);
    color: var(--lumo-secondary-text-color);
}
.match-price {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* 결과 표 */
.calc-table {
    border-collapse: collapse;
    width: 100%;
    min-width: 620px;
    font-variant-numeric: tabular-nums;
}
.calc-table thead th {
    text-align: left;
    padding: 9px 10px;
    font-size: var(--lumo-font-size-xs);
    font-weight: 600;
    color: var(--lumo-secondary-text-color);
    border-bottom: 1px solid var(--lumo-contrast-20pct);
    white-space: nowrap;
}
.calc-table tbody td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--lumo-contrast-10pct);
}

/* 각주/설명 */
.calc-note {
    margin: 0;
    color: var(--lumo-tertiary-text-color);
    font-size: var(--lumo-font-size-xxs);
    line-height: 1.5;
}

/* ============================================================
 *  모바일 반응형 (청약 정보는 대부분 폰으로 본다)
 * ============================================================ */

/* 페이지 전체가 가로로 밀리지 않게 */
html, body {
    max-width: 100%;
    overflow-x: hidden;
}

@media (max-width: 640px) {
    /* 섹션·카드 여백 축소 */
    .calc-section {
        padding: 0.9rem 0.85rem;
    }
    .calc-page {
        gap: 1rem;
    }
    /* 헤더/히어로 타이포 축소 */
    .calc-head h2 {
        font-size: var(--lumo-font-size-xl);
    }
    .hero {
        padding: 1rem;
    }
    .hero-title {
        font-size: var(--lumo-font-size-l);
    }
    .scenario {
        padding: 1rem;
    }
    .scenario-line {
        font-size: var(--lumo-font-size-m);
        line-height: 1.9;
    }

    /* 통계 타일: 좁은 화면에선 2열로 */
    .stat {
        flex: 1 1 calc(50% - 0.4rem);
        min-width: 0;
        padding: 0.7rem 0.75rem;
    }
    .stat-value {
        font-size: var(--lumo-font-size-l);
    }

    /* 필드: 한 줄에 하나씩 꽉 차게(과도한 flex-basis로 인한 오버플로 방지) */
    .field {
        flex-basis: 100% !important;
    }

    /* 세그먼트/버튼이 줄바꿈되도록 */
    .seg {
        flex-wrap: wrap;
    }
}

/* 아주 좁은 화면(작은 폰): 통계 타일도 1열 */
@media (max-width: 380px) {
    .stat {
        flex-basis: 100%;
    }
}

/* Match announcement filters to the softer Korean typography used in the calculators. */
.announcement-filters {
    font-family: 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
    -webkit-font-smoothing: antialiased;
}
.announcement-filters input, .announcement-filters select {
    font-family: inherit;
    font-size: var(--lumo-font-size-s);
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--hm-slate-800);
}
.announcement-sort-note { margin: -8px 0 0; color: var(--hm-slate-400); font-size: var(--lumo-font-size-xxs); }

/* Region emphasis intentionally overrides contextual muted text, including metadata inline color. */
.announcement-region-priority {
    color: var(--lumo-announcement-priority-region-color) !important;
}


/* src/main/frontend/themes/hyenmin/public-ui.css */
/* Shared public-page language: sky blue actions, quiet references, progressive detail. */
:root {
  --service-accent: var(--hm-blue-600);
  --service-accent-hover: var(--hm-blue-800);
  --service-tint: var(--hm-surface-tint);
  --service-border: var(--hm-line-100);
  --service-text: var(--hm-slate-800);
  --service-muted: var(--hm-slate-600);
  --service-font: 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;
}
.home-page,.purchase-journey,.announcement-journey {
  font-family: var(--service-font);
  color: var(--service-text);
  -webkit-font-smoothing: antialiased;
}
:is(.home-page,.purchase-journey,.announcement-journey) :is(button,input,select) { font-family: inherit; }
.service-action {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 40px; padding: 8px 13px; box-sizing: border-box;
  border: 1px solid var(--service-border); border-radius: var(--lumo-border-radius-l);
  background: var(--lumo-base-color); color: var(--service-accent); font: inherit; font-size: var(--lumo-font-size-xs);
  text-decoration: none; cursor: pointer; line-height: 1.5;
}
.service-action:hover { background: var(--service-tint); border-color: var(--service-accent); }
.service-action:focus-visible,.service-disclosure>summary:focus-visible {
  outline: 3px solid var(--service-accent); outline-offset: 3px;
}
.service-muted { color: var(--service-muted); font-size: var(--lumo-font-size-xxs); }
.service-reference {
  border: 1px solid var(--service-border); border-radius: var(--lumo-border-radius-xl);
  background: var(--service-tint); padding: 20px; margin-top: 24px;
  color: var(--service-muted); font-size: var(--lumo-font-size-xs); line-height: 1.7;
}
.service-reference>strong { display: block; color: var(--service-text); margin-bottom: 10px; }
.service-reference ul { padding-left: 20px; margin-bottom: 0; }
.service-disclosure>summary { color: var(--service-accent); font-size: var(--lumo-font-size-s); font-weight: 600; }
.service-disclosure .disclosure-open { display: none; }
.service-disclosure[open]>summary .disclosure-closed { display: none; }
.service-disclosure[open]>summary .disclosure-open { display: inline; }


/* src/main/frontend/themes/hyenmin/modern-shell.css */
/* Shared shell and discovery controls. Financial states keep their semantic colors. */
.modern-app {
  color: var(--lumo-body-text-color);
  background: var(--lumo-page-background-color);
  font-family: var(--lumo-font-family);
  -webkit-font-smoothing: antialiased;
}
.modern-app::part(navbar) {
  background: var(--lumo-base-color);
  border-bottom: 1px solid var(--lumo-contrast-10pct);
  box-shadow: var(--lumo-box-shadow-none);
}
.modern-app::part(drawer) { background: var(--lumo-base-color); border-right: 1px solid var(--lumo-contrast-10pct); }
.modern-app .view { padding: 0 32px 40px; }
.modern-header { display: flex; align-items: center; gap: 20px; width: 100%; max-width: 1320px; min-height: 80px; margin: 0 auto; padding: 0 32px; box-sizing: border-box; }
.modern-menu-toggle { flex: 0 0 auto; margin: 0 -10px 0 -16px; color: var(--lumo-secondary-text-color); }
.modern-wordmark { display: inline-flex; align-items: center; padding: 4px 0; text-decoration: none; flex: 0 0 auto; }
.modern-wordmark .brand-logo { font-size: var(--lumo-font-size-xxl); }
.modern-navigation { display: flex; gap: 28px; align-items: center; margin-inline-start: 36px; }
.modern-navigation a { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); font-weight: 650; text-decoration: none; padding: 28px 0; white-space: nowrap; }
.modern-navigation a[aria-current='page'], .modern-navigation a:hover { color: var(--lumo-body-text-color); }
.modern-navigation a[aria-current='page'] { box-shadow: var(--lumo-box-shadow-none); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.modern-header-actions { display: flex; align-items: center; gap: 16px; margin-inline-start: auto; min-width: 0; }
.modern-header-cta { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 0; border-radius: var(--lumo-border-radius-none); background: var(--lumo-transparent-color); color: var(--lumo-action-text-color); font-size: var(--lumo-font-size-s); font-weight: 650; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; white-space: nowrap; outline: none; }
.modern-header-cta:hover { background: var(--lumo-transparent-color); color: var(--lumo-primary-hover-color); }
.modern-drawer { padding: 28px 20px; }
.modern-drawer .brand-home-link { padding-bottom: 24px; }
.modern-drawer-privacy { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.6; padding: 12px; }
.modern-app :is(a, button, input, select, summary):focus-visible { outline: 3px solid var(--lumo-primary-color); outline-offset: 4px; }
.modern-app .home-page { max-width: 1200px; }
.modern-app .home-announcements { padding-top: 24px; margin-top: 24px; border-top: 1px solid var(--lumo-contrast-10pct); scroll-margin-top: 100px; }
.modern-app .home-announcements h2 { font-size: var(--lumo-font-size-xxl); letter-spacing: -.045em; color: var(--lumo-body-text-color); margin-bottom: 8px; }
.modern-app .home-announcements > div:first-child p { color: var(--lumo-secondary-text-color); }
.modern-app .announcement-view-toggle { background: var(--lumo-base-color); border: 1px solid var(--lumo-contrast-10pct); border-radius: var(--lumo-border-radius-m); padding: 5px; gap: 4px; width: fit-content; max-width: 100%; border-color: var(--lumo-transparent-color); }
.modern-app .announcement-view-toggle button { min-height: 44px; padding: 8px 18px; border: 0; border-radius: var(--lumo-border-radius-m); color: var(--lumo-secondary-text-color); background: var(--lumo-base-color); font-size: var(--lumo-font-size-xs); outline: 1px solid var(--lumo-control-border-color); outline-offset: -1px; }
.modern-app .announcement-view-toggle button[aria-pressed='true'] { color: var(--lumo-action-text-color); background: var(--lumo-action-background-color); box-shadow: var(--lumo-box-shadow-none); font-weight: 700; outline: 1px solid var(--lumo-control-border-color); outline-offset: -1px; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.modern-app .announcement-filters { margin: 0; padding: 4px 0; border: 1px solid var(--lumo-contrast-10pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); border-color: var(--lumo-transparent-color); }
.modern-app .announcement-filters :is(input, select) { min-height: 46px; border: 1px solid var(--lumo-contrast-10pct); border-radius: var(--lumo-border-radius-l); padding: 10px 14px; background: var(--lumo-base-color); color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-s); border-color: var(--lumo-control-border-color); }
.modern-app .announcement-filters input { flex: 1 1 220px; }
.modern-app .announcement-filters :is(input, select):focus { border-color: var(--lumo-primary-color); background: var(--lumo-base-color); }
.modern-app .announcement-sort-note { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.modern-app .announcement-list-card { border: 1px solid var(--lumo-contrast-10pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); box-shadow: var(--lumo-box-shadow-none); padding: 20px; transition: border-color 160ms ease, box-shadow 160ms ease; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.modern-app .announcement-list-card:hover { border-color: var(--lumo-transparent-color); box-shadow: var(--lumo-box-shadow-none); border-bottom-color: var(--lumo-primary-color); }
.modern-app .announcement-list-card strong { color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-l); letter-spacing: -.035em; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.modern-app .announcement-list-card .tag { color: var(--lumo-secondary-text-color); border-color: var(--lumo-contrast-10pct); background: var(--lumo-subtle-background-color); border-radius: var(--lumo-border-radius-s); }
.modern-app .announcement-list-card .announcement-artwork-cover { border-radius: var(--lumo-border-radius-l); overflow: hidden; }
.modern-app .home-more { min-height: 48px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-m); background: var(--lumo-base-color); color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-s); border-color: var(--lumo-control-border-color); }
.modern-app .home-footer { padding-top: 36px; margin-top: 64px; border-top: 1px solid var(--lumo-contrast-10pct); color: var(--lumo-secondary-text-color); }
.modern-app .home-footer small { font-size: var(--lumo-font-size-xs); }
@media (max-width: 860px) {
  .modern-header { min-height: 72px; gap: 14px; padding: 0 24px; }
  .modern-navigation { margin-inline-start: 16px; gap: 20px; }
  .modern-header-cta { padding: 10px 0; }
  .modern-app .view { padding-inline: 24px; }
}
@media (max-width: 620px) {
  .modern-header { min-height: 66px; gap: 10px; padding: 0 20px; }
  .modern-wordmark .brand-logo { font-size: var(--lumo-font-size-xl); }
  .modern-menu-toggle { margin-inline-start: -14px; margin-inline-end: -6px; }
  .modern-navigation { display: none; }
  .modern-header-actions { gap: 8px; }
  .modern-header-actions:has(> div) .modern-header-cta { display: none; }
  .modern-header-actions > div { min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
  .modern-header-actions > div > span { max-width: 6em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .modern-header-cta { padding: 10px 0; gap: 6px; font-size: var(--lumo-font-size-xs); }
  .modern-app .view { padding: 0 20px 24px; }
  .modern-app .home-announcements { padding-top: 16px; margin-top: 16px; scroll-margin-top: 80px; }
  .modern-app .home-announcements h2 { font-size: var(--lumo-font-size-xl); }
  .modern-app .announcement-filters { padding: 12px; border-color: var(--lumo-transparent-color); }
  .modern-app .announcement-filters :is(input, select) { max-width: 100%; background: var(--lumo-base-color); border-color: var(--lumo-control-border-color); }
  .modern-app .announcement-view-toggle { flex-wrap: wrap; border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); border-color: var(--lumo-transparent-color); }
  .modern-app .announcement-view-toggle button { padding-inline: 12px; background: var(--lumo-base-color); outline: 1px solid var(--lumo-control-border-color); outline-offset: -1px; }
  .modern-app .announcement-list-card { padding: 15px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
  .modern-app .announcement-list-card strong { font-size: var(--lumo-font-size-m); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .modern-app .announcement-list-card { transition: none; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
}
.modern-app .announcement-view-toggle button:focus-visible {
  outline: 2px solid var(--lumo-primary-color);
  outline-offset: 2px;
}


/* src/main/frontend/themes/hyenmin/modern-journeys.css */
/* Shared reading and calculation surfaces. Keep state and chart colors in their owning styles. */
:is(.purchase-journey, .announcement-journey, .comparison-page) {
  --service-text: var(--lumo-body-text-color);
  --service-muted: var(--lumo-secondary-text-color);
  --service-accent: var(--lumo-primary-color);
  --service-accent-hover: var(--lumo-primary-text-color);
  --service-tint: var(--lumo-soft-accent-color);
  --service-border: var(--lumo-contrast-20pct);
  width: 100%;
  max-width: 1120px;
  min-width: 0;
  margin-inline: auto;
  color: var(--lumo-body-text-color);
  font-family: var(--lumo-font-family);
  font-size: var(--lumo-font-size-m);
  line-height: 1.7;
}

.purchase-journey { padding: 28px 0 72px; }
.announcement-journey { gap: 32px; padding: 16px 0 72px; }
.comparison-page { gap: 28px; padding: 28px 0 72px; }

:is(.purchase-journey, .announcement-journey, .comparison-page) :is(button, a, summary, input, select, textarea):focus-visible {
  outline: 3px solid var(--lumo-primary-color);
  outline-offset: 4px;
}

:is(.purchase-journey, .announcement-journey) :is(h1, h2, h3) {
  color: var(--lumo-body-text-color);
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

.purchase-journey .journey-intro { padding: 16px 0 42px; }
.purchase-journey .journey-intro h1 {
  max-width: 920px;
  margin: 18px 0 20px;
  font-size: clamp(var(--lumo-font-size-xxl), 4.1vw, var(--lumo-font-size-hero));
  font-weight: 760;
  line-height: 1.25;
  letter-spacing: -.05em;
}
.purchase-journey .journey-intro em { color: var(--lumo-primary-text-color); }
.purchase-journey .journey-intro p { font-size: var(--lumo-font-size-m); color: var(--lumo-secondary-text-color); line-height: 1.85; }
.purchase-journey .journey-eyebrow { color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-xs); letter-spacing: .02em; }
.purchase-journey .journey-trust { margin-top: 24px; gap: 12px 24px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey .journey-trust span::before { color: var(--lumo-primary-color); }

.purchase-journey :is(.journey-builder, .journey-keep, .journey-details, .eligibility-next) {
  border: 1px solid var(--lumo-contrast-20pct);
  border-radius: var(--lumo-border-radius-xl);
  background: var(--lumo-base-color);
  box-shadow: var(--lumo-box-shadow-none);
  border-color: var(--lumo-transparent-color);
  border-bottom-color: var(--lumo-contrast-20pct);
}
.purchase-journey .journey-builder { padding: 32px; }
.purchase-journey .journey-builder legend { font-size: var(--lumo-font-size-xl); margin-bottom: 28px; }
.purchase-journey .journey-step { color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-xs); margin-right: 12px; }
.purchase-journey .journey-input-grid { gap: 24px; }
.purchase-journey .journey-field { gap: 10px; color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-s); }
.purchase-journey .journey-field small { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.7; }
.purchase-journey .journey-number { border-color: var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-m); background: var(--lumo-base-color); }
.purchase-journey .journey-number input:not([type='checkbox']) { height: 56px; color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-xl); font-weight: 650; }
.purchase-journey .journey-number > span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); }
.purchase-journey .journey-number:focus-within { background: var(--lumo-base-color); border-color: var(--lumo-primary-color); box-shadow: var(--lumo-box-shadow-none); outline: 2px solid var(--lumo-primary-color); outline-offset: 2px; }
.funding-journey .funding-personal-field .journey-number { background: var(--lumo-soft-accent-color); border-color: var(--lumo-primary-color-50pct); }
.purchase-journey .journey-salary { gap: 20px; margin: 28px 0; padding-top: 28px; border-color: var(--lumo-contrast-10pct); }
.purchase-journey .journey-chips { gap: 8px; }
.purchase-journey .journey-chips button { border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-m); background: var(--lumo-base-color); color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); padding: 9px 15px; border-color: var(--lumo-control-border-color); }
.purchase-journey .journey-chips button[aria-pressed='true'] { border-color: var(--lumo-primary-color); background: var(--lumo-soft-accent-color); color: var(--lumo-primary-text-color); }
.purchase-journey :is(.journey-assumptions, .journey-login, .journey-advanced) { border-color: var(--lumo-contrast-10pct); }
.purchase-journey summary { padding-block: 20px; color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-s); }
.purchase-journey summary > span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey .journey-detail-body { gap: 22px; padding-block: 10px 24px; }
.purchase-journey .journey-details { padding-inline: 26px; }

.purchase-journey .journey-primary,
.announcement-journey .announcement-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-width: 100%;
  gap: 8px;
  padding: 12px 20px;
  border: 1px solid var(--lumo-primary-color);
  border-radius: var(--lumo-border-radius-m);
  background: var(--lumo-action-background-color);
  color: var(--lumo-action-text-color);
  font-size: var(--lumo-font-size-s);
  font-weight: 650;
  line-height: 1.5;
  text-decoration: none;
  white-space: normal;
  text-align: center;
  border-color: var(--lumo-control-border-color);
}
.purchase-journey .journey-primary:hover:not(:disabled),
.announcement-journey .announcement-primary:hover:not(:disabled) { background: var(--lumo-action-hover-color); border-color: var(--lumo-primary-color); color: var(--lumo-action-text-color); }
.purchase-journey .journey-primary:disabled,
.announcement-journey .announcement-primary:disabled { background: var(--lumo-contrast-10pct); border-color: var(--lumo-contrast-10pct); color: var(--lumo-secondary-text-color); cursor: default; }
.purchase-journey .journey-generate { margin-top: 8px; }
.purchase-journey .journey-form-foot { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey .journey-preview { padding: 36px 12px; color: var(--lumo-secondary-text-color); }
.purchase-journey .journey-preview :is(span, b) { color: var(--lumo-secondary-text-color); }
.purchase-journey .journey-results { margin-top: 48px; gap: 28px; }
.purchase-journey .journey-section-heading { gap: 12px 24px; }
.purchase-journey .journey-section-heading :is(h2, h3) { font-size: var(--lumo-font-size-xl); line-height: 1.5; }
.purchase-journey .journey-section-heading > span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey .journey-result-hero { padding: 32px; border-radius: var(--lumo-border-radius-xl); border-color: var(--lumo-contrast-20pct); background: var(--lumo-subtle-background-color); }
.purchase-journey .journey-result-hero.is-ready { border-color: var(--lumo-success-color-25pct); background: var(--lumo-ready-surface-color); }
.purchase-journey .journey-result-caption { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); }
.purchase-journey .journey-result-hero h3 { font-size: var(--lumo-font-size-xxl); line-height: 1.45; }
.purchase-journey .journey-result-hero > p { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.85; }
.purchase-journey .journey-result-hero:not(.is-ready) em { color: var(--lumo-primary-text-color); }
.purchase-journey .journey-alternative-head :is(h3, p) { color: var(--lumo-body-text-color); }
.purchase-journey .journey-alternative-head p { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); }
.purchase-journey .journey-plan-grid { gap: 16px; }
.purchase-journey .journey-plan { background: var(--lumo-base-color); border-color: var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-xl); color: var(--lumo-body-text-color); padding: 24px; }
.purchase-journey .journey-plan:hover:not(:disabled) { background: var(--lumo-base-color); border-color: var(--lumo-primary-color-50pct); }
.purchase-journey .journey-plan.is-selected { background: var(--lumo-soft-accent-color); border-color: var(--lumo-primary-color); padding: 23px; }
.purchase-journey .journey-plan-icon { background: var(--lumo-subtle-background-color); color: var(--lumo-primary-text-color); }
.purchase-journey .journey-plan > span:not(.journey-plan-icon):not(.journey-plan-select),
.purchase-journey .journey-plan small { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey .journey-plan-select { color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey .journey-switch { background: var(--lumo-base-color); border-color: var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-m); }
.purchase-journey .journey-switch:has(input:checked) { background: var(--lumo-soft-accent-color); border-color: var(--lumo-primary-color-50pct); }
.purchase-journey .journey-switch:has(input:checked) > span { color: var(--lumo-primary-text-color); }
.purchase-journey .journey-switch small { color: var(--lumo-secondary-text-color); }
.purchase-journey :is(.journey-note, .journey-login, .journey-share-url, .journey-footer, .journey-next > p) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.85; }
.purchase-journey .journey-equation > div { background: var(--lumo-subtle-background-color); border-radius: var(--lumo-border-radius-m); padding: 18px; }
.purchase-journey .journey-equation dt { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); }
.purchase-journey .journey-keep { gap: 20px; padding: 28px; }
.purchase-journey .journey-keep h3 { font-size: var(--lumo-font-size-l); }
.purchase-journey .journey-keep p { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.85; }
.purchase-journey .journey-matches li { padding-block: 22px; border-color: var(--lumo-contrast-10pct); }
.purchase-journey .journey-matches li span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }

/* Numeric columns remain aligned, while the containing panel can scroll on small screens. */
.purchase-journey .journey-table-wrap,
.announcement-journey .eligibility-table-scroll { min-width: 0; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-m); }
.purchase-journey .journey-table,
.announcement-journey table { font-size: var(--lumo-font-size-s); color: var(--lumo-body-text-color); font-variant-numeric: tabular-nums; }
.purchase-journey .journey-table :is(th, td),
.announcement-journey .announcement-eligibility :is(th, td) { padding: 15px 16px; border-color: var(--lumo-contrast-10pct); }
.purchase-journey .journey-table thead,
.announcement-journey .announcement-eligibility thead { background: var(--lumo-subtle-background-color); color: var(--lumo-secondary-text-color); }
.purchase-journey .journey-table caption { padding: 12px 16px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.purchase-journey :is(.journey-save-form input, .journey-save-form select, .funding-import select, .funding-event input, .funding-event select, .funding-report input) { min-height: 46px; border-color: var(--lumo-control-border-color); background: var(--lumo-base-color); color: var(--lumo-body-text-color); border-radius: var(--lumo-border-radius-m); }
.funding-journey .funding-import { gap: 20px; padding: 24px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-subtle-background-color); }
.funding-journey .funding-payment-editor { gap: 14px; padding-bottom: 20px; border-color: var(--lumo-contrast-10pct); }
.funding-journey .funding-payment-editor label { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.funding-journey .funding-milestones { gap: 24px; padding-top: 26px; border-color: var(--lumo-contrast-20pct); }
.funding-journey .funding-milestones :is(span, small) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.funding-journey .funding-milestones strong { color: var(--lumo-body-text-color); font-variant-numeric: tabular-nums; }
.funding-journey .funding-loan-summary { background: var(--lumo-subtle-background-color); color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-s); }
.funding-journey :is(.funding-date-shortcuts, .funding-load) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.funding-journey .funding-date-shortcuts { flex-wrap: wrap; justify-content: flex-start; }

/* Announcement details share the same paper-like surfaces as the calculators. */
.announcement-journey .announcement-hero { gap: 28px; padding: 36px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.announcement-journey .announcement-hero:has(.announcement-hero-artwork) { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: 36px; }
.announcement-journey .announcement-hero h1 { font-size: clamp(var(--lumo-font-size-xxl), 3.4vw, var(--lumo-font-size-hero)); font-weight: 760; letter-spacing: -.05em; line-height: 1.3; }
.announcement-journey .announcement-hero-copy { gap: 18px; }
.announcement-journey .announcement-hero-copy > span { font-size: var(--lumo-font-size-s); }
.announcement-journey .announcement-hero-overview { padding-top: 22px; border-top: 1px solid var(--lumo-contrast-10pct); }
.announcement-journey .announcement-hero .announcement-facts { gap: 18px; margin-bottom: 24px; }
.announcement-journey .announcement-hero .announcement-facts span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.announcement-journey .announcement-hero .announcement-facts strong { color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-l); line-height: 1.6; font-variant-numeric: tabular-nums; }
.announcement-journey .announcement-hero-actions { gap: 10px; }
.announcement-journey .announcement-hero-photo { border-radius: var(--lumo-border-radius-l); background: var(--lumo-subtle-background-color); }
.announcement-journey .announcement-hero-photo > span { background: var(--lumo-ink-background-color); color: var(--lumo-primary-contrast-color); }
.announcement-journey .announcement-hero-artwork figcaption { gap: 12px; padding-top: 12px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.announcement-journey .announcement-hero-artwork figcaption a { color: var(--lumo-primary-text-color); }
.announcement-journey :is(.announcement-updated, .announcement-share p, .announcement-share label, .announcement-source p, .announcement-source > span) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.8; }
.announcement-journey :is(.announcement-schedule, .announcement-source, .announcement-location, .announcement-eligibility) { padding: 30px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); color: var(--lumo-body-text-color); font-family: var(--lumo-font-family); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.announcement-journey :is(.announcement-schedule h3, .announcement-housing-list > h3, .announcement-location h2) { font-size: var(--lumo-font-size-xl); color: var(--lumo-body-text-color); }
.announcement-journey .announcement-schedule-row { grid-template-columns: 130px minmax(0, 1fr); gap: 24px; padding-block: 14px; font-size: var(--lumo-font-size-s); }
.announcement-journey .announcement-schedule-row + .announcement-schedule-row { border-color: var(--lumo-contrast-10pct); }
.announcement-journey .announcement-schedule-row dt { color: var(--lumo-secondary-text-color); }
.announcement-journey .announcement-schedule-row dd { color: var(--lumo-body-text-color); }
.announcement-journey .announcement-review { padding: 18px 24px; background: var(--lumo-subtle-background-color); color: var(--lumo-body-text-color); border-radius: var(--lumo-border-radius-m); font-size: var(--lumo-font-size-s); }
.announcement-journey summary { font-size: var(--lumo-font-size-s); }
.announcement-journey .announcement-plan-cta { gap: 14px; padding: 22px; border-radius: var(--lumo-border-radius-m); background: var(--lumo-subtle-background-color); }
.announcement-journey .announcement-plan-cta :is(p, small) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.8; }
.announcement-journey .announcement-location-caption { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.announcement-journey .announcement-location-eyebrow { color: var(--lumo-primary-text-color); }
.announcement-journey .announcement-eligibility h2 { margin-block: 10px 16px; font-size: var(--lumo-font-size-xxl); }
.announcement-journey .announcement-eligibility select { min-height: 48px; border-color: var(--lumo-control-border-color); background: var(--lumo-base-color); color: var(--lumo-body-text-color); border-radius: var(--lumo-border-radius-m); }
.announcement-journey .eligibility-intro p { color: var(--lumo-secondary-text-color); }
.announcement-journey .eligibility-track-grid { gap: 14px; }
.announcement-journey .eligibility-track-grid button { padding: 18px; background: var(--lumo-base-color); border-color: var(--lumo-control-border-color); color: var(--lumo-body-text-color); }
.announcement-journey .eligibility-track-grid button[aria-pressed='true'] { border-color: var(--lumo-primary-color); background: var(--lumo-soft-accent-color); box-shadow: var(--lumo-box-shadow-none); }
.announcement-journey .eligibility-budget { padding: 24px; background: var(--lumo-base-color); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }

/* The score keeps its individual series colors; only surrounding surfaces change. */
.eligibility-journey .eligibility-inputs { gap: 24px; padding-bottom: 12px; }
.eligibility-journey .eligibility-inputs select { height: 54px; border-color: var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-m); background: var(--lumo-subtle-background-color); color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-s); }
.eligibility-journey .eligibility-ownership { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); }
.eligibility-journey .eligibility-score { margin-block: 24px 14px; }
.eligibility-journey .eligibility-score > strong { color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-display); font-weight: 750; }
.eligibility-journey .eligibility-score > span { color: var(--lumo-secondary-text-color); }
.eligibility-journey .eligibility-score > b { color: var(--lumo-primary-text-color); background: var(--lumo-base-color); border-radius: var(--lumo-border-radius-m); font-size: var(--lumo-font-size-xs); }
.eligibility-journey .eligibility-breakdown { gap: 24px; }
.eligibility-journey .eligibility-breakdown > div > span { font-size: var(--lumo-font-size-s); color: var(--lumo-secondary-text-color); }
.eligibility-journey .eligibility-breakdown :is(small, p) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.8; }
.eligibility-journey .eligibility-plans { gap: 16px; }
.eligibility-journey .eligibility-plans button { padding: 24px; gap: 14px; background: var(--lumo-base-color); border-color: var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-xl); color: var(--lumo-body-text-color); }
.eligibility-journey .eligibility-plans button:hover { border-color: var(--lumo-primary-color-50pct); }
.eligibility-journey .eligibility-plans button[aria-pressed='true'] { border-color: var(--lumo-primary-color); background: var(--lumo-soft-accent-color); box-shadow: var(--lumo-box-shadow-none); }
.eligibility-journey .eligibility-plans :is(.eligibility-delta, .eligibility-plan-select) { font-size: var(--lumo-font-size-xs); }
.eligibility-journey .eligibility-plans .eligibility-delta { color: var(--lumo-secondary-text-color); }
.eligibility-journey .eligibility-plans .eligibility-plan-select { color: var(--lumo-primary-text-color); }
.eligibility-journey :is(.eligibility-outlook > p, .eligibility-rules p, .eligibility-next p) { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.8; }
.eligibility-journey .eligibility-next { padding: 30px; }
.eligibility-journey .eligibility-next a:not(.journey-primary) { color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-s); }

.privacy-page { max-width: 900px; }
.privacy-page .journey-intro h1 { max-width: 780px; }
.privacy-page .journey-keep { margin-bottom: 22px; padding: 30px 32px; gap: 16px; }
.privacy-page .journey-keep h2 { color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-xl); }
.privacy-page .journey-keep p { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-m); line-height: 1.9; }
.privacy-page .journey-keep a { color: var(--lumo-primary-text-color); overflow-wrap: anywhere; }

.comparison-page .comparison-heading { gap: 20px; flex-wrap: wrap; align-items: baseline; }
.comparison-page .comparison-heading h1 { color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-hero); letter-spacing: -.05em; font-weight: 760; line-height: 1.25; }
.comparison-page .comparison-heading button { padding-block: 10px; font-size: var(--lumo-font-size-s); }
.comparison-page .comparison-note { max-width: 920px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.85; }
.comparison-page .comparison-table-wrap { padding: 0; border-color: var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); box-shadow: var(--lumo-box-shadow-none); }
.comparison-page .comparison-table { font-size: var(--lumo-font-size-s); font-variant-numeric: tabular-nums; }
.comparison-page .comparison-table :is(th, td) { padding: 22px 20px; border-color: var(--lumo-contrast-10pct); }
.comparison-page .comparison-table thead { background: var(--lumo-subtle-background-color); }
.comparison-page .comparison-table thead th { font-size: var(--lumo-font-size-xs); font-weight: 600; }
.comparison-page .comparison-name { font-size: var(--lumo-font-size-m); line-height: 1.7; }
.comparison-page .comparison-table small { font-size: var(--lumo-font-size-xs); line-height: 1.8; }
.comparison-page .comparison-empty { padding: 48px 24px; border-color: var(--lumo-transparent-color); border-radius: var(--lumo-border-radius-xl); box-shadow: var(--lumo-box-shadow-none); border-bottom-color: var(--lumo-contrast-20pct); }

@media (max-width: 780px) {
  .purchase-journey .journey-intro { padding-bottom: 32px; }
  .purchase-journey .journey-builder { padding: 26px; }
  .purchase-journey .journey-input-grid { gap: 22px; }
  .announcement-journey .announcement-hero,
  .announcement-journey .announcement-hero:has(.announcement-hero-artwork) { grid-template-columns: minmax(0, 1fr); padding: 28px; gap: 24px; }
  .announcement-journey .announcement-hero-artwork { grid-column: auto; grid-row: auto; }
  .announcement-journey .announcement-hero-photo { height: 260px; min-height: 0; flex: none; }
  .announcement-journey .announcement-hero-overview { padding-top: 24px; }
  .announcement-journey .announcement-hero .announcement-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .announcement-journey .announcement-hero .announcement-facts > div { flex-direction: column; align-items: flex-start; justify-content: flex-start; }
}

@media (max-width: 720px) {
  .comparison-page .comparison-table-wrap { overflow: visible; border: none; background: var(--lumo-transparent-color); }
  .comparison-page .comparison-table tbody { gap: 20px; }
  .comparison-page .comparison-table tr { border-color: var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); overflow: hidden; }
  .comparison-page .comparison-table .comparison-name { padding: 22px; background: var(--lumo-subtle-background-color); }
  .comparison-page .comparison-table td { padding: 15px 22px; grid-template-columns: minmax(90px, .8fr) minmax(0, 1.2fr); }
}

@media (max-width: 520px) {
  .purchase-journey { padding: 8px 0 48px; }
  .announcement-journey { gap: 24px; padding: 8px 0 48px; }
  .comparison-page { gap: 22px; padding: 12px 0 48px; }
  .purchase-journey .journey-intro { padding: 8px 0 28px; }
  .purchase-journey .journey-intro h1 { margin-block: 14px 18px; font-size: var(--lumo-font-size-xxl); line-height: 1.35; }
  .purchase-journey .journey-intro p { font-size: var(--lumo-font-size-s); }
  .purchase-journey .journey-trust { gap: 10px 16px; font-size: var(--lumo-font-size-xs); }
  .purchase-journey :is(.journey-builder, .journey-result-hero, .journey-keep, .eligibility-next) { padding: 24px 20px; }
  .purchase-journey .journey-builder legend,
  .purchase-journey .journey-section-heading :is(h2, h3) { font-size: var(--lumo-font-size-l); }
  .purchase-journey .journey-input-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .purchase-journey .journey-salary { margin-block: 24px; padding-top: 24px; }
  .purchase-journey .journey-result-hero h3 { font-size: var(--lumo-font-size-xl); }
  .purchase-journey .journey-results { margin-top: 36px; gap: 24px; }
  .purchase-journey .journey-section-heading > span { line-height: 1.8; }
  .purchase-journey .journey-plan-grid { gap: 14px; }
  .purchase-journey .journey-details { padding-inline: 20px; }
  .purchase-journey .journey-equation { grid-template-columns: minmax(0, 1fr); }
  .purchase-journey .journey-primary { width: 100%; background: var(--lumo-action-background-color); color: var(--lumo-action-text-color); border-color: var(--lumo-control-border-color); }
  .funding-journey .funding-import { padding: 20px; }
  .funding-journey .funding-payment-editor { grid-template-columns: minmax(0, 1fr); }
  .funding-journey .funding-milestones { gap: 20px; }
  .announcement-journey .announcement-hero,
  .announcement-journey .announcement-hero:has(.announcement-hero-artwork),
  .announcement-journey :is(.announcement-schedule, .announcement-source, .announcement-location, .announcement-eligibility) { padding: 24px 20px; }
  .announcement-journey .announcement-hero h1 { font-size: var(--lumo-font-size-xxl); line-height: 1.35; }
  .announcement-journey .announcement-hero-photo { height: 220px; }
  .announcement-journey .announcement-hero .announcement-facts { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .announcement-journey .announcement-hero .announcement-facts > div { flex-direction: row; align-items: baseline; justify-content: space-between; gap: 12px; }
  .announcement-journey .announcement-hero .announcement-facts strong { text-align: right; font-size: var(--lumo-font-size-m); }
  .announcement-journey .announcement-hero-actions { gap: 12px; }
  .announcement-journey .announcement-hero-actions > .announcement-primary { width: 100%; }
  .announcement-journey .announcement-schedule-row { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; padding-block: 14px; }
  .announcement-journey .announcement-plan-cta { padding: 18px; }
  .announcement-journey .announcement-eligibility h2 { font-size: var(--lumo-font-size-xl); }
  .announcement-journey .eligibility-track-grid { grid-template-columns: minmax(0, 1fr); }
  .announcement-journey .eligibility-budget { padding: 18px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
  .eligibility-journey .eligibility-inputs,
  .eligibility-journey .eligibility-breakdown { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .eligibility-journey .eligibility-plans { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .eligibility-journey .eligibility-plans button { padding: 22px; border-color: var(--lumo-control-border-color); }
  .eligibility-journey .eligibility-score > b { margin-left: 0; }
  .eligibility-journey .eligibility-next > div:last-child { width: 100%; gap: 20px; }
  .privacy-page .journey-keep { padding: 24px 20px; }
  .privacy-page .journey-keep h2 { font-size: var(--lumo-font-size-l); }
  .privacy-page .journey-keep p { font-size: var(--lumo-font-size-s); }
  .comparison-page .comparison-heading h1 { font-size: var(--lumo-font-size-xxl); }
}

/* A: readable selected labels without an inset card shadow. */

.announcement-journey .eligibility-track-grid button[aria-pressed='true'] strong,
.eligibility-journey .eligibility-plans button[aria-pressed='true'] > span:first-child { text-decoration: underline; text-underline-offset: .2em; }

.purchase-journey .calculator-intro {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 16px 24px; padding: 0 0 20px; margin: 0 0 24px;
  border-bottom: 1px solid var(--lumo-contrast-10pct);
}
.purchase-journey .calculator-intro h1 { margin: 0; font-size: var(--lumo-font-size-xxl); line-height: 1.4; }
.purchase-journey .calculator-intro p { margin: 6px 0 0; font-size: var(--lumo-font-size-s); line-height: 1.6; }
.calculator-switch { display: flex; gap: 0; padding: 2px; border: 1px solid var(--lumo-contrast-10pct); }
.calculator-switch a { padding: 7px 14px; white-space: nowrap; font-size: var(--lumo-font-size-s); color: var(--lumo-secondary-text-color); text-decoration: none; }
.calculator-switch a[aria-current='page'] { background: var(--lumo-soft-accent-color); color: var(--lumo-primary-text-color); font-weight: 700; }
.purchase-journey:has(.calculator-intro) .journey-builder { padding: 8px 0 24px; }
.purchase-journey:has(.calculator-intro) .journey-builder legend { margin-bottom: 18px; font-size: var(--lumo-font-size-l); }
.purchase-journey:has(.calculator-intro) .journey-results { margin-top: 28px; }
.purchase-journey:has(.calculator-intro) .journey-result-hero { padding: 24px; }
@media (max-width: 760px) {
  .purchase-journey:has(.calculator-intro) { padding-top: 16px; }
  .purchase-journey .calculator-intro { gap: 12px; margin-bottom: 16px; padding-bottom: 16px; }
  .purchase-journey .calculator-intro h1 { font-size: var(--lumo-font-size-xl); }
  .purchase-journey:has(.calculator-intro) .journey-result-hero { padding: 16px; }
  .purchase-journey:has(.calculator-intro) .journey-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
  .purchase-journey:has(.calculator-intro) .journey-field { gap: 6px; }
  .purchase-journey:has(.calculator-intro) .journey-input-grid .journey-field > span:first-child { min-height: 2.8em; display: flex; align-items: end; line-height: 1.4; }
  .purchase-journey:has(.calculator-intro) .journey-field:has(input[type='date']) { grid-column: 1 / -1; }
  .purchase-journey:has(.calculator-intro) .journey-number input:not([type='checkbox']) { height: 48px; font-size: var(--lumo-font-size-l); }
}


/* src/main/frontend/themes/hyenmin/classic-surfaces.css */
/* A안 ‘푸른 여백’: shared paint only. Journey files own their layouts. */
.modern-app :is(.home-page, .purchase-journey, .announcement-journey, .comparison-page) {
  --service-text: var(--lumo-body-text-color);
  --service-muted: var(--lumo-secondary-text-color);
  --service-accent: var(--lumo-primary-color);
  --service-accent-hover: var(--lumo-primary-hover-color);
  --service-tint: var(--lumo-subtle-background-color);
  --service-border: var(--lumo-contrast-20pct);
  color: var(--lumo-body-text-color);
}
.modern-app::part(navbar), .modern-app::part(drawer) {
  background: var(--lumo-base-color);
  border-color: var(--lumo-contrast-20pct);
  box-shadow: var(--lumo-box-shadow-none);
}
.modern-app :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--lumo-focus-color);
  outline-offset: 2px;
}
/* Visible control boundaries remain distinct from decorative separators. */
.modern-app :is(input:not([type='checkbox']):not([type='radio']), select, textarea) {
  border-color: var(--lumo-control-border-color);
}
.modern-app :is(.card, .calc-section, .service-reference) {
  border-color: var(--lumo-transparent-color);
  border-bottom-color: var(--lumo-contrast-20pct);
  box-shadow: var(--lumo-box-shadow-none);
}
.modern-app .service-reference { background: var(--lumo-subtle-background-color); }
.modern-app .service-action { border-color: var(--lumo-control-border-color); }
.modern-app button[style*='--lumo-action-background-color']:not(:focus-visible),
.btn-cta:not(:focus-visible) {
  outline: 1px solid var(--lumo-control-border-color);
  outline-offset: -1px;
}
/* Vaadin admin controls share the palette without changing primary/text semantics elsewhere. */
vaadin-button[theme~='primary']:not([theme~='error']) {
  --lumo-primary-color: var(--lumo-action-background-color);
  --lumo-primary-contrast-color: var(--lumo-action-text-color);
  outline: 1px solid var(--lumo-control-border-color);
  outline-offset: -1px;
}
vaadin-button[theme~='primary'][focus-ring] { outline-width: 2px; outline-offset: 2px; }

/* A안 가독성 보완: 긴 설명은 14px, 숫자 입력의 포커스는 래퍼 한 겹만 사용한다. */
.modern-app :is(.home-promises, .home-spotlight-bottom, .home-spotlight-body > small,
  .home-feature-body > p, .home-feature-body > small, .home-data-caption,
  .home-section-note, .calendar-hint, .calendar-day-titles small, .calendar-day-count,
  .journey-field small, .journey-assumption-note) {
  font-size: var(--lumo-font-size-s);
  line-height: 1.65;
}
.modern-app .purchase-journey .journey-number:focus-within input:focus-visible {
  outline: none;
}
.modern-app :is(.home-primary, .home-secondary) { font-size: var(--lumo-font-size-s); }
.modern-app :is(.tag, .badge, .announcement-view-toggle > span, .announcement-location-switch button) {
  font-size: var(--lumo-font-size-xs);
  line-height: 1.6;
}

/* 링크와 지역 범위는 면을 두르지 않고 글자·밑줄로 표시한다. */
.modern-app .home-actions { column-gap: 24px; }
.announcement-region-scope { display: flex; flex-basis: 100%; justify-content: flex-start; align-items: center; flex-wrap: wrap; gap: 16px; }
.announcement-region-scope button {
  min-height: 44px;
  padding: 8px 0;
  border: 0;
  border-radius: var(--lumo-border-radius-none);
  background: var(--lumo-transparent-color);
  color: var(--lumo-secondary-text-color);
  font-family: var(--lumo-font-family);
  font-size: var(--lumo-font-size-s);
  line-height: 1.5;
  white-space: nowrap;
  cursor: pointer;
}
.announcement-region-scope button[aria-pressed='true'] {
  color: var(--lumo-primary-text-color);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.announcement-region-scope button:hover { color: var(--lumo-primary-hover-color); }
.announcement-location-compact, .responsive-copy-mobile { display: none; }
.announcement-location-full, .responsive-copy-desktop { display: inline; }
.announcement-date-range time { white-space: nowrap; }
.home-page :is(.home-tool p, .home-guide p, .home-guide h2, .home-announcements header p, .home-spotlight-body > small) {
  word-break: keep-all;
  overflow-wrap: anywhere;
}
@media (max-width: 620px) {
  .announcement-location-full, .responsive-copy-desktop { display: none; }
  .announcement-location-compact, .responsive-copy-mobile { display: inline; }
  .announcement-location-compact { word-break: keep-all; overflow-wrap: anywhere; }
  .modern-app .home-spotlight-meta { display: grid; gap: 3px; }
  .modern-app .home-spotlight-bottom { line-height: 1.6; }
  .modern-app .home-spotlight-body > small { margin-top: 6px; }
  .announcement-region-scope { gap: 20px; }
}

/* 공고는 얇은 외곽선으로 구분하고, 목록은 접수 상태와 내용을 한 행에 놓는다. */
.modern-app :is(.home-spotlight, .home-feature-card) {
  border-color: var(--lumo-contrast-20pct);
  background: var(--lumo-base-color);
}
.modern-app :is(.home-spotlight, .home-feature-card):hover {
  border-color: var(--lumo-control-border-color);
}
.announcement-list { display: grid; gap: 0; }
.announcement-list-row {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--lumo-contrast-10pct);
}
.announcement-list-status { justify-self: start; white-space: nowrap; padding: 3px 5px; }
.home-announcements .announcement-list-card {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 10px 0;
  border: 0;
  background: var(--lumo-base-color);
  text-align: left;
  cursor: pointer;
}
.announcement-list-card .announcement-artwork-thumbnail { width: 84px; height: 64px; }
.announcement-list-content { display: flex; flex: 1; flex-direction: column; gap: 3px; min-width: 0; }
.announcement-list-heading { display: flex; align-items: baseline; gap: 6px 8px; flex-wrap: wrap; }
.announcement-list-title {
  color: var(--lumo-body-text-color);
  font-size: var(--lumo-font-size-m);
  line-height: 1.45;
  letter-spacing: -.01em;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.announcement-list-location, .announcement-list-meta { color: var(--lumo-secondary-text-color); line-height: 1.5; }
.announcement-list-location { font-size: var(--lumo-font-size-s); }
.announcement-list-meta { font-size: var(--lumo-font-size-xs); }
.announcement-archive-tabs { align-items: stretch; }
.announcement-archive-tabs button { min-height: 44px; white-space: nowrap; }
.announcement-archive-tabs .announcement-archive-count { color: inherit; font-size: inherit; margin: 0; }
.home-announcements .announcement-sort-note { margin: 0; }
@media (max-width: 760px) {
  .home-page .home-hero { gap: 16px; padding-block: 14px 18px; }
  .home-page .home-quick-nav { margin-bottom: 20px; padding-block: 4px; }
  .home-page .home-tools { margin-top: 22px; }
  .home-page .home-tool-grid { margin-top: 12px; }
  .home-page .home-tool:only-child { padding: 14px 16px; }
  .home-page .home-tool:only-child p { margin-top: 8px; }
  .home-page .home-tool:only-child .home-tool-link { margin-top: 8px; }
  .home-page .home-tool:only-child .home-tool-tag { margin-top: 3px; }
  .home-page .home-guide { gap: 6px; padding: 14px 0; margin: 16px 0; }
  .home-page .home-guide h2 { margin-block: 4px; }
  .home-page .home-guide > a { min-height: 44px; padding-block: 6px; }
  .home-page .home-announcements { padding-top: 16px; gap: 10px; }
  .home-announcements .announcement-archive-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; padding: 0; }
  .home-announcements .announcement-archive-tabs button { padding: 8px 10px; }
  .announcement-archive-tabs .announcement-archive-count { display: none; }
  .home-announcements .announcement-view-toggle:not(.announcement-archive-tabs) {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    padding: 0;
  }
  .home-announcements .announcement-view-toggle:not(.announcement-archive-tabs) button { padding-inline: 4px; }
  .home-announcements .announcement-view-toggle:not(.announcement-archive-tabs) > span { grid-column: 1 / -1; }
  .home-announcements .announcement-filters {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 6px !important;
  }
  .home-announcements .announcement-filters input { grid-column: 1 / -1; }
  .home-announcements .announcement-filters :is(input, select) { width: 100%; min-width: 0; min-height: 42px; }
}
@media (max-width: 600px) {
  .announcement-list-row { grid-template-columns: 60px minmax(0, 1fr); gap: 6px; }
  .home-announcements .announcement-list-card {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 8px !important;
    padding: 8px 0 !important;
  }
  .announcement-list-card .announcement-artwork-thumbnail { width: 48px; height: 48px; }
  .announcement-list-heading { gap: 2px 6px; }
  .announcement-list-content { gap: 2px; }
  .announcement-list-location { font-size: var(--lumo-font-size-xs); }
}

/* 홈 이미지 설명은 카드에서 감추고, 공고 탐색과 자금 안내를 간결하게 묶는다. */
.home-page .announcement-artwork-cover > span { display: none; }
.home-mobile-carousel { display: none; }
.home-hero-pending { min-block-size: 248px; background: var(--lumo-subtle-background-color); }
@media (max-width: 760px) {
  .home-hero-pending { min-block-size: 336px; background: linear-gradient(var(--lumo-subtle-background-color), var(--lumo-subtle-background-color)) center / 100% calc(100% - 72px) no-repeat; }
}
.home-planning-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 28px 0 20px;
  padding: 20px;
  border-block: 1px solid var(--lumo-contrast-20pct);
  background: var(--lumo-subtle-background-color);
}
.home-planning-copy { min-width: 0; }
.home-planning-copy :is(h1, h2) { margin: 0 0 6px; font-size: var(--lumo-font-size-l); line-height: 1.5; }
.home-planning-copy p { margin: 0; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.65; }
.home-planning-copy :is(h1, h2, p) { word-break: keep-all; overflow-wrap: anywhere; }
.home-planning-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0 20px; flex-shrink: 0; }
.home-page .home-planning-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--lumo-primary-text-color);
  font-size: var(--lumo-font-size-s);
  font-weight: 650;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  white-space: nowrap;
}
.home-planning-actions small { flex-basis: 100%; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.modern-app .home-announcements .announcement-view-toggle { border: 0; padding: 0; background: var(--lumo-transparent-color); }
.modern-app .home-announcements .announcement-view-toggle button {
  border: 0;
  outline: none;
  background: var(--lumo-transparent-color);
  border-radius: var(--lumo-border-radius-none);
}
.modern-app .home-announcements .announcement-view-toggle button[aria-pressed='true'] { background: var(--lumo-transparent-color); }
.modern-app .home-announcements .announcement-view-toggle button:focus-visible { outline: 2px solid var(--lumo-focus-color); outline-offset: 2px; }
.home-announcements .announcement-search-controls {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 6px 14px !important;
}
.home-announcements .announcement-search-controls > input { grid-column: 1; min-width: 0; width: 100%; }
.announcement-filter-details { min-width: 0; }
.announcement-filter-details summary {
  box-sizing: border-box;
  min-height: 44px;
  padding: 10px 0;
  color: var(--lumo-primary-text-color);
  font-size: var(--lumo-font-size-s);
  cursor: pointer;
  white-space: nowrap;
}
.announcement-filter-count { margin-left: 4px; font-size: var(--lumo-font-size-xs); }
.announcement-filter-details[open] { grid-column: 1 / -1; }
.announcement-search-controls:has(.announcement-filter-details[open]) > input { grid-column: 1 / -1; }
.announcement-filter-details[open] summary { width: fit-content; margin-left: auto; }
.announcement-filter-options { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-bottom: 6px; }
.announcement-filter-options button { min-height: 44px; padding: 8px; border: 0; background: var(--lumo-transparent-color); color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-s); text-decoration: underline; }
@media (max-width: 760px) {
  .home-hero > .home-spotlight, .home-page > .home-featured, .home-page > .home-quick-nav { display: none; }
  .home-mobile-carousel { display: block; min-width: 0; }
  .home-mobile-carousel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
  .home-mobile-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .home-mobile-track::-webkit-scrollbar { display: none; }
  .home-mobile-card {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 248px;
    grid-template-rows: 1fr;
    align-items: end;
    border: 1px solid var(--lumo-contrast-20pct);
    border-radius: var(--lumo-border-radius-m);
    overflow: hidden;
    background: var(--lumo-subtle-background-color);
    scroll-snap-align: start;
  }
  .home-mobile-image { position: relative; grid-area: 1 / 1; align-self: stretch; min-height: 140px; overflow: hidden; }
  .home-mobile-overlay {
    position: relative;
    z-index: 2;
    grid-column: 1;
    grid-row: var(--carousel-info-row, 2);
    align-self: var(--carousel-info-edge, end);
    margin: var(--carousel-info-margin, 0);
    padding: 10px 12px;
    background: var(--lumo-image-overlay-color);
    border-radius: var(--lumo-border-radius-m);
  }
  .home-mobile-meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 3px 10px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
  .home-mobile-meta > :last-child { color: var(--lumo-primary-text-color); font-weight: 650; }
  .home-mobile-overlay h2 { margin: 6px 0 8px; font-size: var(--lumo-font-size-m); line-height: 1.45; color: var(--lumo-body-text-color); word-break: keep-all; overflow-wrap: anywhere; }
  .home-mobile-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 3px 12px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); line-height: 1.5; }
  .home-mobile-summary strong { color: var(--lumo-primary-text-color); }
  .home-mobile-carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 4px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
  .home-mobile-carousel-controls > div { display: flex; gap: 6px; }
  .home-mobile-carousel-controls button { min-width: 44px; min-height: 44px; padding: 6px; border: 0; background: var(--lumo-transparent-color); color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-l); cursor: pointer; }
  .home-mobile-carousel-controls button:disabled { opacity: .35; cursor: default; }
  .home-page .home-planning-guide { display: block; margin: 12px 0; padding: 14px 16px; }
  .home-planning-actions { margin-top: 4px; gap: 0 16px; }
  .home-announcements .announcement-search-controls > input { grid-column: 1; }
  .home-announcements .announcement-search-controls:has(.announcement-filter-details[open]) > input { grid-column: 1 / -1; }
  .announcement-filter-options { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 6px; }
  .announcement-filter-options button { grid-column: 1 / -1; justify-self: start; }
}

/* Keep the whole link, including its arrow, above a single rule. */
.home-page .home-actions :is(.home-primary, .home-secondary) { position: relative; text-decoration: none; }
.home-page .home-actions :is(.home-primary, .home-secondary)::after {
  content: ''; position: absolute; inset-inline: 0; top: calc(50% + .86em); border-bottom: 1px solid currentColor;
}
.announcement-date-stamp { display: inline-flex; align-items: center; gap: 6px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.announcement-date-stamp svg { width: 1.1em; height: 1.1em; flex: none; }
.home-announcements .announcement-list-card > .announcement-artwork-thumbnail { align-self: center; }
.announcement-list-title { max-width: 100%; min-width: 0; }
.home-announcements .announcement-list-card .announcement-list-title[data-fit='s'] { font-size: var(--lumo-font-size-s); }
.home-announcements .announcement-list-card .announcement-list-title[data-fit='xs'] { font-size: var(--lumo-font-size-xs); }

/* Region and view selection share one compact toolbar. */
.announcement-toolbar { display: flex; flex-basis: 100%; align-items: center; flex-wrap: wrap; gap: 8px 24px; }
.announcement-toolbar .announcement-region-scope { flex-basis: auto; gap: 14px; flex-wrap: nowrap; }
.modern-app .announcement-toolbar .announcement-view-segments {
  display: flex; width: auto; gap: 0; margin: 0; padding: 2px;
  border: 1px solid var(--lumo-contrast-10pct); background: var(--lumo-base-color);
}
.modern-app .announcement-toolbar .announcement-view-segments button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; min-height: 44px; padding: 10px; white-space: nowrap; text-decoration: none;
  font-size: var(--lumo-font-size-s); border: 0;
}
.announcement-view-segments svg { width: 20px; height: 20px; flex: none; }
.modern-app .announcement-toolbar .announcement-view-segments button[aria-pressed='true'] {
  background: var(--lumo-soft-accent-color); color: var(--lumo-primary-text-color);
}
.announcement-list .announcement-list-row { grid-template-columns: 68px minmax(0, 1fr); }
.announcement-list-labels { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; }
.announcement-list-labels :is(.tag, .announcement-list-status) { margin: 0; padding: 2px 5px; line-height: 1.5; }
.home-featured > .home-section-head { margin-bottom: var(--lumo-space-m); }
.home-mobile-summary { flex-wrap: wrap; gap: 2px 10px; }
.home-mobile-summary strong { white-space: normal; }
@media (max-width: 600px) {
  .announcement-list .announcement-list-row { grid-template-columns: 60px minmax(0, 1fr); }
  .announcement-toolbar { gap: 6px; }
  .announcement-toolbar .announcement-region-scope { gap: 10px; }
  .announcement-toolbar .announcement-region-scope button { font-size: var(--lumo-font-size-s); }
  .modern-app .announcement-toolbar .announcement-view-segments button { padding-inline: 6px; font-size: var(--lumo-font-size-xs); }
}
.home-archive-link {
  display: block; margin-inline: auto; min-height: 44px; border: 0; background: var(--lumo-transparent-color);
  color: var(--lumo-primary-text-color); font: inherit; cursor: pointer;
}
.home-past-announcements:not([hidden]) { display: grid; gap: 12px; }
.home-past-announcements h3 { margin: 0; }


/* src/main/frontend/themes/hyenmin/brand.css */
.brand-logo {
  display: inline-flex;
  align-items: center;
  color: var(--lumo-brand-ink);
  font-family: var(--lumo-font-family);
  font-size: var(--lumo-font-size-xxl);
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: -.065em;
  white-space: nowrap;
  padding-inline-end: .48em;
}

.brand-logo-compact { font-size: var(--lumo-font-size-xl); }
.brand-logo-ending { position: relative; display: inline-block; isolation: isolate; }
.brand-logo-letter { position: relative; }
.brand-logo-sun { position: absolute; z-index: -1; width: 1.58em; height: 1.58em; left: -.02em; top: -.16em; overflow: visible; }
.brand-logo-rays { stroke: var(--lumo-brand-sun-ray); }
.brand-logo-disc { fill: var(--lumo-brand-sun); }
.brand-logo-glow { stroke: var(--lumo-brand-sun-light); }
.brand-home-link { display: flex; flex-direction: column; align-items: flex-start; gap: var(--lumo-space-xs); padding: var(--lumo-space-xs) 0 var(--lumo-space-s); text-decoration: none; cursor: pointer; }
.brand-tagline { font-size: var(--lumo-font-size-xxs); color: var(--lumo-secondary-text-color); }
.brand-auth-link { align-self: flex-start; text-decoration: none; }


/* src/main/frontend/themes/hyenmin/announcement-artwork.css */
.announcement-artwork{margin:0;border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-xl);overflow:hidden;background:var(--hm-surface-warm)}.announcement-artwork>img{display:block;width:100%;max-height:460px;object-fit:contain}.announcement-artwork figcaption{padding:12px 18px;font-size:var(--lumo-font-size-xs);color:var(--hm-slate-400);line-height:1.6}.announcement-artwork a{color:var(--hm-blue-600)}.announcement-artwork-cover{position:absolute;inset:0;z-index:1}.announcement-artwork-cover img{width:100%;height:100%;object-fit:cover;display:block}.announcement-artwork-cover>span{position:absolute;bottom:0;left:0;right:0;background:var(--lumo-base-color);color:var(--lumo-body-text-color);font-size:var(--lumo-font-size-xs);padding:5px 9px;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45;overflow-wrap:anywhere}.home-feature-cover:has(.announcement-artwork-cover) .home-cover-region,.home-feature-cover:has(.announcement-artwork-cover) .home-mini-city{display:none}.home-feature-cover .home-deadline{position:relative;z-index:2}

.announcement-artwork-thumbnail{width:112px;height:84px;object-fit:cover;flex-shrink:0;border-radius:var(--lumo-border-radius-l);background:var(--hm-surface-warm);border:1px solid var(--hm-line-100)}
@media(max-width:600px){.announcement-artwork-thumbnail{width:64px;height:64px;border-radius:var(--lumo-border-radius-m)}}

@media(max-width:600px){
  .announcement-list-card{display:grid!important;grid-template-columns:64px minmax(0,1fr);padding:16px!important;gap:12px!important;align-items:start!important}
  .announcement-list-card>div{grid-column:1 / -1;overflow-wrap:anywhere}
  .announcement-list-card:has(.announcement-artwork-thumbnail)>div{grid-column:2}
  .announcement-list-card>.announcement-artwork-thumbnail{grid-column:1;grid-row:1}
  .announcement-list-card>span{grid-column:1 / -1;justify-self:start}
}


/* src/main/frontend/themes/hyenmin/announcement-calendar.css */
.announcement-calendar{border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-xxl);background:var(--lumo-base-color);padding:24px;min-width:0;border-color:var(--lumo-transparent-color);border-block-color:var(--lumo-contrast-20pct)}
.calendar-toolbar,.calendar-navigation,.calendar-results-heading,.calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.calendar-eyebrow{font-size:var(--lumo-font-size-xs);color:var(--lumo-primary-text-color)}
.calendar-toolbar h3{font-size:var(--lumo-font-size-xl);letter-spacing:-.04em;margin:3px 0;color:var(--lumo-body-text-color)}
.calendar-controls{justify-content:flex-start}.calendar-navigation{gap:6px}
.calendar-navigation button,.calendar-results-heading button,.calendar-view-toggle button{font:inherit;border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-l);background:var(--lumo-base-color);color:var(--lumo-primary-text-color);cursor:pointer;min-height:42px;padding:6px 13px;border-color:var(--lumo-control-border-color)}
.calendar-navigation .calendar-month-arrow{font-size:var(--lumo-font-size-xl);line-height:1;min-width:42px}
.calendar-view-toggle{display:flex;gap:6px}.calendar-view-toggle button{font-size:var(--lumo-font-size-s)}
.calendar-view-toggle button[aria-pressed=true]{background:var(--lumo-action-background-color);border-color:var(--lumo-primary-color);font-weight:650;color:var(--lumo-action-text-color);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.announcement-calendar button:focus-visible,.calendar-grid-scroll:focus-visible{outline:2px solid var(--lumo-primary-color);outline-offset:2px}
.calendar-hint{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);margin:12px 0 20px;line-height:1.7}
.calendar-grid-scroll{min-width:0}.calendar-grid-scroll.is-month{overflow-x:auto;padding:2px;overscroll-behavior-inline:contain}
.calendar-weekdays,.calendar-days-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;min-width:700px}
.calendar-days-upcoming{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.calendar-weekdays{text-align:center;font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);padding-bottom:9px}
.calendar-weekdays span:first-child{color:var(--lumo-calendar-sunday-text-color)}.calendar-weekdays span:last-child{color:var(--lumo-primary-text-color)}
.calendar-day,.calendar-blank{min-height:112px;min-width:0;border-radius:var(--lumo-border-radius-l)}
.calendar-day{font:inherit;position:relative;display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:12px;border:1px solid var(--lumo-contrast-10pct);background:var(--lumo-base-color);color:var(--lumo-body-text-color);cursor:pointer;white-space:normal;overflow-wrap:anywhere;border-color:var(--lumo-control-border-color)}
.calendar-day.has-notices{background:var(--lumo-subtle-background-color);border-color:var(--lumo-control-border-color)}.calendar-day:hover{border-color:var(--lumo-contrast-30pct)}
.calendar-day[aria-pressed=true]{background:var(--lumo-action-background-color);border-color:var(--lumo-primary-color);outline:1px solid var(--lumo-primary-color);outline-offset:-1px}
.calendar-day[aria-current=date] .calendar-day-number{color:var(--lumo-primary-text-color);font-weight:750}
.calendar-day-number{font-size:var(--lumo-font-size-s);display:flex;gap:5px;align-items:center;flex-wrap:wrap}.calendar-day-number small{font-size:var(--lumo-font-size-xs)}
.calendar-day-count{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);margin:4px 0}
.calendar-day-titles{display:grid;gap:10px;font-size:var(--lumo-font-size-xs);line-height:1.65;color:var(--lumo-body-text-color);width:100%}
.calendar-day-event{display:grid;gap:4px;min-width:0;padding-top:8px;border-top:1px solid var(--lumo-contrast-20pct);white-space:normal;overflow-wrap:anywhere}
.calendar-day-titles strong{font-size:var(--lumo-font-size-s);font-weight:650}.calendar-day-titles small{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}
.calendar-results-heading{margin:24px 0 12px}.calendar-results-heading h4{font-size:var(--lumo-font-size-m);margin:0;letter-spacing:-.02em}.calendar-results-heading h4>span{font-size:var(--lumo-font-size-xs);color:var(--lumo-primary-text-color);margin-left:5px}.calendar-results-heading button{font-size:var(--lumo-font-size-xs)}
.calendar-results{list-style:none;padding:0;margin:0;display:grid;gap:8px}.calendar-results li>a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-l);border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}
.calendar-results li>a:hover{background:var(--lumo-contrast-5pct);border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-primary-color)}.calendar-results li>a>div{display:grid;gap:4px;min-width:0}.calendar-results strong{font-size:var(--lumo-font-size-s);overflow-wrap:anywhere;white-space:normal;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.calendar-results small{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}.calendar-results div>span{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);white-space:normal;overflow-wrap:anywhere}.calendar-result-action{flex-shrink:0;color:var(--lumo-primary-text-color);font-size:var(--lumo-font-size-xs)}
.calendar-empty{padding:22px;background:var(--lumo-contrast-5pct);border-radius:var(--lumo-border-radius-l);font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}
.announcement-calendar footer{margin-top:20px;font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);line-height:1.8}.announcement-calendar footer span{display:block;margin-top:5px}
.calendar-event-filters{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.calendar-event-filters button{font:inherit;font-size:var(--lumo-font-size-xs);border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-xl);background:var(--lumo-base-color);color:var(--lumo-body-text-color);padding:8px 13px;cursor:pointer;border-color:var(--lumo-control-border-color)}
.calendar-event-filters button[aria-pressed=true]{background:var(--lumo-action-background-color);border-color:var(--lumo-primary-color);color:var(--lumo-action-text-color);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.calendar-day-event>.calendar-event-label,.calendar-results div>.calendar-event-label{font-size:var(--lumo-font-size-xs);font-weight:650;color:var(--lumo-primary-text-color)}
.calendar-day-event>.calendar-event-winner,.calendar-results div>.calendar-event-winner{color:var(--lumo-calendar-winner-text-color)}
.calendar-day-event>.calendar-event-contract,.calendar-results div>.calendar-event-contract{color:var(--lumo-calendar-contract-text-color)}
@media(max-width:900px){.calendar-days-upcoming{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.announcement-calendar{padding:15px;border-radius:var(--lumo-border-radius-xl);border-color:var(--lumo-transparent-color);border-block-color:var(--lumo-contrast-20pct)}.calendar-toolbar h3{font-size:var(--lumo-font-size-xl)}.calendar-controls{gap:8px}.calendar-day{padding:10px;border-color:var(--lumo-control-border-color)}.calendar-results li>a{padding:12px;align-items:flex-start;border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}.calendar-result-action{font-size:0}.calendar-result-action:after{content:'→';font-size:var(--lumo-font-size-l)}.calendar-results-heading h4{font-size:var(--lumo-font-size-s)}.home-page .announcement-view-toggle>button{flex:1;padding:9px 6px;font-size:var(--lumo-font-size-xs);white-space:normal}.calendar-event-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.calendar-event-filters button{padding:8px 6px;min-width:0;border-color:var(--lumo-control-border-color)}}
@media(max-width:480px){.calendar-days-upcoming{grid-template-columns:minmax(0,1fr)}}


/* src/main/frontend/themes/hyenmin/home.css */
.home-page { max-width:1240px; margin:0 auto; color:var(--lumo-body-text-color); font-family:var(--lumo-font-family); line-height:1.65; }
.home-page,.home-page * { box-sizing:border-box; }
.home-page a { color:inherit; text-decoration:none; }
.home-page :is(button,input,select) { font:inherit; }
.home-page :is(a,button,input,select):focus-visible { outline:3px solid var(--lumo-primary-color); outline-offset:4px; }
.home-feature-body h3,.home-tool h3,.home-cover-region,.home-hero h1,.home-hero-copy>p,.home-spotlight h2 { word-break:keep-all; overflow-wrap:anywhere; }
.home-skip { position:absolute; left:-10000px; }
.home-skip:focus { position:fixed; left:24px; top:12px; z-index:999; background:var(--lumo-base-color); padding:12px; border-radius:var(--lumo-border-radius-m); }
.home-eyebrow { color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xs); font-weight:750; letter-spacing:.04em; }
.home-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:center; gap:40px; min-height:0; padding:30px 0 34px; border:0; border-radius:var(--lumo-border-radius-none); overflow:visible; background:var(--lumo-base-color); }
.home-hero-copy { min-width:0; }
.home-hero h1 { margin:16px 0; color:var(--lumo-body-text-color); font-size:clamp(var(--lumo-font-size-xxxl),3.25vw,var(--lumo-font-size-hero)); font-weight:800; letter-spacing:-.055em; line-height:1.28; }
.home-hero h1 em { color:var(--lumo-primary-text-color); font-style:normal; }
.home-hero-copy>p { margin:0 0 25px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-s); line-height:1.85; }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.home-page .home-primary,.home-page .home-secondary { display:inline-flex; align-items:center; justify-content:flex-start; gap:8px; min-height:46px; padding:10px 0; border:0; border-radius:var(--lumo-border-radius-none); font-size:var(--lumo-font-size-s); font-weight:650; line-height:1.5; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.home-page .home-primary { color:var(--lumo-action-text-color); background:var(--lumo-transparent-color); }
.home-page .home-primary:hover { color:var(--lumo-primary-hover-color); background:var(--lumo-transparent-color); }
.home-secondary { background:var(--lumo-transparent-color); }
.home-secondary:hover { color:var(--lumo-primary-hover-color); background:var(--lumo-transparent-color); }
.home-promises { display:flex; flex-wrap:wrap; gap:6px 15px; margin:0 0 16px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-promises>span::before { content:'✓'; margin-right:6px; color:var(--lumo-primary-text-color); }
.home-spotlight { display:block; min-width:0; border:1px solid var(--lumo-contrast-10pct); border-radius:var(--lumo-border-radius-xxl); overflow:hidden; background:var(--lumo-base-color); box-shadow:var(--lumo-box-shadow-none); transition:box-shadow .18s ease; border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
.home-spotlight:hover { box-shadow:var(--lumo-box-shadow-none); border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-primary-color); }
.home-spotlight-cover,.home-feature-cover { position:relative; height:200px; padding:0; overflow:hidden; background:var(--lumo-subtle-background-color); }
.home-spotlight-label { position:absolute; left:16px; top:16px; z-index:2; padding:6px 10px; border-radius:var(--lumo-border-radius-m); background:var(--lumo-base-color); color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-xs); font-weight:700; }
.home-photo-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xl); font-weight:800; letter-spacing:-.04em; }
.home-photo-placeholder>span { color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); font-weight:400; letter-spacing:0; }
.home-spotlight-body { padding:16px 20px 18px; }
.home-spotlight-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 10px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-spotlight-meta>span:last-child { color:var(--lumo-primary-text-color); font-weight:700; }
.home-spotlight h2 { margin:7px 0 8px; color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-l); font-weight:750; letter-spacing:-.035em; line-height:1.45; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.home-spotlight-bottom { display:flex; justify-content:space-between; align-items:center; gap:8px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-spotlight-bottom>span:last-child { color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-l); }
.home-spotlight-body>small { display:block; margin-top:4px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-start-guide { padding:26px 30px; border:1px solid var(--lumo-contrast-10pct); border-radius:var(--lumo-border-radius-xxl); background:var(--lumo-subtle-background-color); border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
.home-start-guide h2 { margin:10px 0 20px; font-size:var(--lumo-font-size-xl); line-height:1.45; letter-spacing:-.04em; }
.home-start-guide ol { display:grid; gap:14px; margin:0; padding:0; list-style:none; }
.home-start-guide li { display:flex; align-items:center; gap:13px; }
.home-start-guide li>span { color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xs); font-weight:750; }
.home-start-guide strong { font-size:var(--lumo-font-size-xs); }
.home-start-guide p { margin:2px 0 0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-quick-nav { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); margin:0 0 36px; padding:8px 0; border-block:1px solid var(--lumo-contrast-10pct); background:var(--lumo-base-color); }
.home-quick-nav a { display:flex; align-items:center; justify-content:center; gap:9px; padding:10px; border-right:1px solid var(--lumo-contrast-10pct); color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); font-weight:600; }
.home-quick-nav a:last-child { border:0; }
.home-quick-nav a:hover { color:var(--lumo-primary-text-color); }
.home-status-dot { width:6px; height:6px; border-radius:var(--lumo-border-radius-pill); background:var(--lumo-primary-color); }
.home-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.home-section-head h2 { margin:5px 0 0; color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-xl); font-weight:750; letter-spacing:-.04em; }
.home-section-head>a { color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); white-space:nowrap; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.home-section-note { margin:10px 0 20px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-data-caption { margin:10px 0 0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-feature-grid { display:grid; min-width:0; grid-auto-flow:column; grid-auto-columns:calc((100% - 40px)/3); gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:var(--lumo-contrast-30pct) var(--lumo-base-color); padding-bottom:12px; }
.home-feature-grid:focus-visible { outline:3px solid var(--lumo-primary-color); outline-offset:4px; border-radius:var(--lumo-border-radius-xl); }
.home-feature-card { display:block; min-width:0; border:1px solid var(--lumo-contrast-10pct); border-radius:var(--lumo-border-radius-xl); overflow:hidden; background:var(--lumo-base-color); scroll-snap-align:start; transition:border-color .18s ease,box-shadow .18s ease; border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
.home-feature-card:hover { border-color:var(--lumo-transparent-color); box-shadow:var(--lumo-box-shadow-none); border-bottom-color:var(--lumo-primary-color); }
.home-deadline { position:absolute; top:14px; left:14px; z-index:2; display:inline-flex; margin:0; padding:5px 9px; border-radius:var(--lumo-border-radius-m); background:var(--lumo-base-color); color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-xs); font-weight:650; }
.home-page .home-feature-cover .home-cover-region { display:block; position:absolute; top:14px; right:14px; bottom:auto; left:auto; z-index:2; max-width:55%; padding:5px 9px; border-radius:var(--lumo-border-radius-m); background:var(--lumo-base-color); color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-page .home-feature-cover:has(.announcement-artwork-cover) .home-cover-region { display:block; }
.home-feature-body { padding:20px; }
.home-feature-state { color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xs); font-weight:700; }
.home-feature-body h3 { min-height:48px; margin:7px 0 10px; color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-m); font-weight:750; line-height:1.5; letter-spacing:-.035em; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.home-feature-body>p { margin:0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-feature-bottom { display:flex; justify-content:space-between; gap:8px; margin-top:16px; padding-top:14px; border-top:1px solid var(--lumo-contrast-10pct); color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-xs); }
.home-feature-bottom>span { color:var(--lumo-primary-text-color); }
.home-feature-body>small { display:block; margin-top:7px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-carousel-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:-4px 0 14px; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-carousel-controls>div { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.home-carousel-count { min-width:62px; text-align:center; font-variant-numeric:tabular-nums; }
.home-carousel-controls button { display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--lumo-contrast-20pct); border-radius:var(--lumo-border-radius-m); background:var(--lumo-base-color); color:var(--lumo-body-text-color); cursor:pointer; font-size:var(--lumo-font-size-l); border-color:var(--lumo-control-border-color); }
.home-carousel-controls button:hover:not(:disabled) { background:var(--lumo-contrast-5pct); border-color:var(--lumo-contrast-30pct); }
.home-carousel-controls button:disabled { opacity:.35; cursor:default; }
.home-loading { padding:28px; border:1px solid var(--lumo-contrast-10pct); border-radius:var(--lumo-border-radius-xl); background:var(--lumo-subtle-background-color); color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-s); border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
.home-tools { margin-top:42px; }
.home-tool-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:16px; margin-top:20px; }
.home-tool { position:relative; padding:24px; border:1px solid var(--lumo-contrast-10pct); border-radius:var(--lumo-border-radius-xl); background:var(--lumo-base-color); border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
.home-tool:hover { border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-primary-color); }
.home-tool-icon { display:grid; place-items:center; width:41px; height:41px; border-radius:var(--lumo-border-radius-l); background:var(--lumo-soft-accent-color); color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xs); font-weight:750; }
.home-tool h3 { margin:18px 0 10px; color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-m); letter-spacing:-.04em; }
.home-tool p { margin:0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); line-height:1.85; }
.home-tool-link { display:block; margin-top:20px; color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xs); font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.home-tool-emphasis { background:var(--lumo-subtle-background-color); }
.home-tool-emphasis .home-tool-icon { background:var(--lumo-base-color); }
.home-tool-tag { position:absolute; top:32px; right:20px; color:var(--lumo-primary-text-color); font-size:var(--lumo-font-size-xs); font-weight:600; }
.home-tool:only-child { display:grid; grid-template-columns:auto minmax(0,1fr) auto; column-gap:22px; padding:25px 30px; }
.home-tool:only-child .home-tool-icon { grid-column:1; grid-row:1 / 3; width:48px; height:48px; align-self:center; }
.home-tool:only-child h3 { grid-column:2; grid-row:1; margin:0 0 6px; }
.home-tool:only-child p { grid-column:2; grid-row:2; }
.home-tool:only-child p br { display:none; }
.home-tool:only-child .home-tool-link { grid-column:3; grid-row:1 / 3; align-self:center; margin:0; white-space:nowrap; }
.home-tool:only-child .home-tool-tag { position:static; grid-column:3; grid-row:1; align-self:start; justify-self:end; margin-top:-8px; }
.home-guide { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:24px 0 36px; padding:24px 28px; border:1px solid var(--lumo-contrast-10pct); border-radius:var(--lumo-border-radius-xl); background:var(--lumo-base-color); border-color:var(--lumo-transparent-color); border-block-color:var(--lumo-contrast-20pct); }
.home-guide h2 { margin:7px 0; color:var(--lumo-body-text-color); font-size:var(--lumo-font-size-l); letter-spacing:-.03em; }
.home-guide p { max-width:610px; margin:0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.home-guide>a { flex-shrink:0; }
.home-mobile-break { display:none; }
.home-announcements { display:flex; flex-direction:column; gap:12px; padding-top:20px; border-top:1px solid var(--lumo-contrast-10pct); scroll-margin-top:80px; }
.home-announcements .card { border-radius:var(--lumo-border-radius-xl)!important; }
.home-announcements .announcement-filters { padding:4px 0; border:0; border-radius:var(--lumo-border-radius-none); background:var(--lumo-base-color); }
.home-announcements .announcement-filters input { min-width:170px; }
.home-more { padding:13px; border:1px solid var(--lumo-contrast-20pct); border-radius:var(--lumo-border-radius-l); background:var(--lumo-base-color); color:var(--lumo-body-text-color); cursor:pointer; }
.home-more:hover { background:var(--lumo-contrast-5pct); }
.home-footer { margin-top:44px; padding:28px 0; border-top:1px solid var(--lumo-contrast-10pct); color:var(--lumo-secondary-text-color); }
.home-footer strong { color:var(--lumo-primary-text-color); }
.home-footer p { margin:7px 0; font-size:var(--lumo-font-size-xs); }
.home-footer small { font-size:var(--lumo-font-size-xs); }
@media(max-width:1100px) {
  .home-hero { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:28px; }
  .home-hero h1 { font-size:var(--lumo-font-size-xxxl); }
  .home-actions { gap:24px; }
  .home-primary,.home-secondary { padding-inline:0; }
  .home-tool:only-child { column-gap:16px; padding:24px; }
  .home-tool:only-child .home-tool-link { white-space:normal; max-width:150px; }
}
@media(max-width:1000px) and (min-width:761px) { .home-feature-grid { grid-auto-columns:calc((100% - 20px)/2); } }
@media(max-width:760px) {
  .home-hero { grid-template-columns:minmax(0,1fr); gap:24px; padding:18px 0 24px; }
  .home-hero h1 { font-size:clamp(var(--lumo-font-size-xxl),6.2vw,var(--lumo-font-size-xxxl)); margin:13px 0 15px; }
  .home-hero-copy>p { margin-bottom:20px; font-size:var(--lumo-font-size-xs); }
  .home-actions { display:flex; flex-wrap:wrap; gap:8px 24px; }
  .home-primary,.home-secondary { min-width:0; padding:10px 0; gap:7px; font-size:var(--lumo-font-size-s); white-space:nowrap; }
  .home-promises { margin:0 0 10px; gap:4px 12px; }
  .home-spotlight { display:grid; grid-template-columns:110px minmax(0,1fr); box-shadow:var(--lumo-box-shadow-none); border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
  .home-spotlight-cover { height:100%; min-height:146px; }
  .home-spotlight-label { top:9px; left:8px; max-width:calc(100% - 16px); padding:4px 6px; font-size:var(--lumo-font-size-xs); line-height:1.4; }
  .home-spotlight-cover .home-photo-placeholder { font-size:var(--lumo-font-size-l); }
  .home-spotlight-cover .home-photo-placeholder>span,.home-spotlight-cover .announcement-artwork-cover>span { display:none; }
  .home-spotlight-body { padding:13px 14px; }
  .home-spotlight h2 { font-size:var(--lumo-font-size-s); margin:6px 0; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
  .home-spotlight-meta { font-size:var(--lumo-font-size-xs); }
  .home-spotlight-bottom { flex-wrap:wrap; font-size:var(--lumo-font-size-xs); }
  .home-spotlight-bottom>span:last-child { display:none; }
  .home-spotlight-body>small { font-size:var(--lumo-font-size-xs); line-height:1.5; }
  .home-start-guide { padding:22px; border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
  .home-start-guide h2 { font-size:var(--lumo-font-size-l); margin-bottom:16px; }
  .home-start-guide h2 br { display:none; }
  .home-quick-nav { grid-template-columns:1fr 1fr; row-gap:4px; margin-bottom:28px; }
  .home-quick-nav a { font-size:var(--lumo-font-size-xs); padding:9px; }
  .home-quick-nav a:nth-child(even) { border-right:0; }
  .home-section-head { gap:12px; }
  .home-section-head h2 { font-size:var(--lumo-font-size-xl); }
  .home-section-head>a { font-size:var(--lumo-font-size-xs); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
  .home-section-note { font-size:var(--lumo-font-size-xs); }
  .home-feature-grid { grid-auto-columns:88%; gap:14px; }
  .home-feature-cover { height:200px; }
  .home-feature-body { padding:18px; }
  .home-feature-body h3 { font-size:var(--lumo-font-size-m); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
  .home-carousel-controls { flex-wrap:wrap; }
  .home-tools { margin-top:32px; }
  .home-tool-grid { grid-template-columns:1fr; gap:12px; margin-top:18px; }
  .home-tool { padding:22px; border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); }
  .home-tool h3 { margin-top:14px; }
  .home-tool p br { display:none; }
  .home-tool-link { margin-top:15px; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
  .home-tool:only-child { grid-template-columns:auto minmax(0,1fr); padding:22px; column-gap:14px; }
  .home-tool:only-child .home-tool-icon { grid-row:1; align-self:start; width:40px; height:40px; }
  .home-tool:only-child h3 { align-self:center; }
  .home-tool:only-child p { grid-column:1 / -1; margin-top:14px; }
  .home-tool:only-child .home-tool-link { grid-column:1 / -1; grid-row:3; max-width:none; margin-top:16px; }
  .home-tool:only-child .home-tool-tag { grid-column:1 / -1; grid-row:4; justify-self:start; margin-top:7px; }
  .home-guide { flex-direction:column; align-items:flex-start; gap:18px; padding:22px; margin-bottom:30px; background:var(--lumo-base-color); border-color:var(--lumo-transparent-color); border-block-color:var(--lumo-contrast-20pct); }
  .home-mobile-break { display:initial; }
  .home-announcements .card { flex-wrap:wrap; }
  .home-announcements .announcement-filters { padding:2px 0; }
  .home-announcements .announcement-filters select { flex:1 1 120px!important; max-width:none!important; }
  .home-announcements .announcement-filters input { flex-basis:100%!important; min-width:0; }
}
@media(max-width:360px) { .home-hero h1 { font-size:var(--lumo-font-size-xxl); } .home-spotlight { grid-template-columns:90px minmax(0,1fr); border-color:var(--lumo-transparent-color); border-bottom-color:var(--lumo-contrast-20pct); } .home-actions { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .home-feature-card,.home-spotlight { transition:none; } }


/* src/main/frontend/themes/hyenmin/announcement-map.css */
.announcement-view-toggle{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.announcement-view-toggle button{border:1px solid var(--hm-line-100);background:white;border-radius:var(--lumo-border-radius-l);padding:9px 16px;color:var(--hm-slate-600);cursor:pointer}
.announcement-view-toggle button[aria-pressed=true]{background:var(--hm-surface-tint);color:var(--hm-blue-600);border-color:var(--hm-line-300);font-weight:650}
.announcement-view-toggle span{font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-400);margin-left:4px}
.announcement-map{border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-xxl);background:var(--hm-surface-0);overflow:hidden}
.announcement-map-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 10px}
.announcement-map-heading strong{font-size:var(--lumo-font-size-l);color:var(--hm-slate-800)}.announcement-map-heading p{font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-400);margin:4px 0}
.announcement-map-heading button,.announcement-map-message button,.announcement-map-retry{border:1px solid var(--hm-line-200);border-radius:var(--lumo-border-radius-m);padding:8px 12px;background:white;color:var(--hm-blue-800);white-space:nowrap;cursor:pointer}
.announcement-map-status{padding:0 22px 16px;font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-400)}
.announcement-map-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;border-top:1px solid var(--hm-line-100);border-bottom:1px solid var(--hm-line-100)}
.announcement-map-stage{position:relative;min-width:0;background:var(--hm-surface-tint)}
.announcement-map-canvas{height:510px;width:100%;font-family:var(--lumo-font-family)}
.announcement-map-pin{font-family:var(--lumo-font-family)!important;font-size:var(--lumo-font-size-xs)!important;font-weight:700;white-space:nowrap;border:2px solid white;border-radius:var(--lumo-border-radius-xl) var(--lumo-border-radius-xl) var(--lumo-border-radius-xl) var(--lumo-border-radius-xs);min-width:36px;height:40px;background:var(--hm-blue-600);color:var(--lumo-primary-contrast-color);padding:5px 9px;box-shadow:var(--lumo-box-shadow-m);cursor:pointer}
.announcement-map-pin:focus-visible{outline:3px solid var(--hm-focus-deep);outline-offset:3px}
.announcement-map-results{height:510px;overflow:auto;background:white;border-left:1px solid var(--hm-line-100);scrollbar-width:thin}
.announcement-map-results article{padding:14px 16px;border-bottom:1px solid var(--hm-surface-tint)}.announcement-map-results article.is-selected{background:var(--hm-surface-tint);box-shadow:inset 3px 0 var(--hm-blue-400)}
.announcement-map-result{display:flex;gap:10px;text-align:left;align-items:flex-start;border:0;padding:0;width:100%;background:transparent;color:var(--hm-slate-800);cursor:pointer}
.announcement-map-number{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;background:var(--hm-surface-tint);color:var(--hm-blue-600);border-radius:var(--lumo-border-radius-m);font-size:var(--lumo-font-size-xxs);font-weight:700}
.announcement-map-result strong{display:block;margin:6px 0;font-size:var(--lumo-font-size-s);word-break:keep-all;overflow-wrap:anywhere}
.announcement-map-result small{display:block;font-size:var(--lumo-font-size-xxxs);line-height:1.6;color:var(--hm-slate-400)}
.announcement-map-results article>a{display:block!important;color:var(--hm-blue-600)!important;font-size:var(--lumo-font-size-xxxs);margin:10px 0 0 36px}
.announcement-map-selection{position:absolute;left:16px;bottom:34px;width:calc(100% - 32px);max-width:380px;padding:16px 38px 16px 18px;background:white;box-shadow:var(--lumo-box-shadow-m);border:1px solid var(--hm-line-200);border-radius:var(--lumo-border-radius-xl);z-index:2}
.announcement-map-selection>span{font-size:var(--lumo-font-size-xxxs);color:var(--hm-blue-400)}.announcement-map-selection strong{display:block;font-size:var(--lumo-font-size-s);color:var(--hm-slate-800);margin:3px 0 8px;word-break:keep-all}
.announcement-map-selection>a{font-size:var(--lumo-font-size-xxs);color:var(--hm-blue-600)!important;font-weight:650}.announcement-map-selection>button{position:absolute;top:8px;right:8px;background:white;border:0;color:var(--hm-slate-400);font-size:var(--lumo-font-size-xl);cursor:pointer}
.announcement-map footer{font-size:var(--lumo-font-size-xxxs);color:var(--hm-slate-400);padding:13px 22px;line-height:1.7}.announcement-map-empty{padding:25px;color:var(--hm-slate-400);font-size:var(--lumo-font-size-xs);line-height:1.8}
.announcement-map-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--hm-slate-400);font-size:var(--lumo-font-size-s)}.announcement-map-message{padding:16px 22px;color:var(--hm-slate-600);font-size:var(--lumo-font-size-xs);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.announcement-map-retry{margin:0 22px 16px}
@media(max-width:760px){.announcement-map-grid{grid-template-columns:minmax(0,1fr)}.announcement-map-canvas{height:380px}.announcement-map-results{height:230px;border-left:0;border-top:1px solid var(--hm-line-100)}.announcement-map-heading{padding:16px;align-items:flex-start}.announcement-map-heading strong{font-size:var(--lumo-font-size-m)}.announcement-map-heading button{font-size:var(--lumo-font-size-xxxs);padding:7px 9px}.announcement-map-status{padding:0 16px 12px}.announcement-view-toggle span{width:100%;margin:0}.announcement-map-selection strong{font-size:var(--lumo-font-size-xs)}.announcement-map footer{padding:12px 16px}}


/* src/main/frontend/themes/hyenmin/announcement-eligibility.css */
.announcement-eligibility{margin:0;padding:clamp(20px,3vw,28px);border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-xxl);background:var(--lumo-base-color);color:var(--lumo-body-text-color);font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',sans-serif;line-height:1.65;border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}
.announcement-eligibility,.announcement-eligibility *{box-sizing:border-box}
.announcement-eligibility fieldset{min-inline-size:0;min-width:0}
.eligibility-question,.eligibility-budget{min-width:0}
.announcement-eligibility h2{font-size:clamp(24px,3vw,34px);line-height:1.4;letter-spacing:-.04em;margin:8px 0 12px}.announcement-eligibility h3{font-size:var(--lumo-font-size-l);letter-spacing:-.025em}.eligibility-intro>span{color:var(--lumo-primary-color);font-size:var(--lumo-font-size-xs);font-weight:700}.eligibility-intro p{color:var(--lumo-secondary-text-color)}
.announcement-eligibility fieldset{border:0;padding:0;margin:28px 0}.announcement-eligibility legend{font-weight:700;font-size:var(--lumo-font-size-m);margin-bottom:16px}.eligibility-question-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.eligibility-question label,.eligibility-budget>label{display:block;font-weight:600;font-size:var(--lumo-font-size-s);margin-bottom:8px}
.announcement-eligibility select{width:100%;height:46px;min-height:46px;align-self:start;border:1px solid var(--lumo-control-border-color);border-radius:var(--lumo-border-radius-l);background:var(--lumo-base-color);padding:0 12px;color:var(--lumo-body-text-color);font:inherit;font-size:var(--lumo-font-size-s);border-color:var(--lumo-control-border-color)}.announcement-eligibility button{font:inherit;cursor:pointer;border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-l);padding:10px 15px;background:var(--lumo-base-color);color:var(--lumo-primary-color);border-color:var(--lumo-control-border-color)}.announcement-eligibility :is(button,select,summary):focus-visible{outline:3px solid var(--lumo-primary-color);outline-offset:3px}
.announcement-eligibility details{font-size:var(--lumo-font-size-xs);margin:10px 0;color:var(--lumo-secondary-text-color)}.announcement-eligibility summary{cursor:pointer}.announcement-eligibility details p{white-space:pre-line}.eligibility-caption{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}.eligibility-track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.eligibility-track-grid button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;color:var(--lumo-body-text-color)}.eligibility-track-grid button[aria-pressed=true]{border-color:var(--lumo-primary-color);background:var(--lumo-soft-accent-color);box-shadow:var(--lumo-box-shadow-none)}.eligibility-track-grid strong{font-size:var(--lumo-font-size-s)}.eligibility-status{font-size:var(--lumo-font-size-xs);color:var(--lumo-caution-text-color)}.eligibility-status.PASS{color:var(--lumo-chart-covered-color)}.eligibility-status.FAIL{color:var(--lumo-status-fail-color)}
.eligibility-result{padding:16px 20px;border-radius:var(--lumo-border-radius-xl);background:var(--lumo-soft-accent-color)}.eligibility-result h3{margin-top:0}.eligibility-result li{margin:5px 0}.eligibility-table-scroll{overflow-x:auto}.announcement-eligibility table{border-collapse:collapse;width:100%;font-size:var(--lumo-font-size-s);white-space:nowrap}.announcement-eligibility th,.announcement-eligibility td{padding:12px 10px;border-bottom:1px solid var(--lumo-contrast-20pct);text-align:left}.announcement-eligibility thead{background:var(--lumo-soft-accent-color)}.eligibility-strategy{margin-top:20px;padding:16px 20px;border-left:3px solid var(--lumo-primary-color);background:var(--lumo-page-background-color)}.eligibility-strategy p{font-size:var(--lumo-font-size-s)}.eligibility-strategy small{color:var(--lumo-secondary-text-color)}.eligibility-budget{padding:20px;margin-top:20px;background:var(--lumo-base-color);border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-xl);border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}.eligibility-money{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;font-size:var(--lumo-font-size-xs)}.eligibility-money strong{display:block;font-size:clamp(14px,2vw,19px);margin-top:4px}.eligibility-budget p{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}.eligibility-reset{margin-top:12px}
@media(max-width:640px){.eligibility-question-grid{grid-template-columns:1fr}.eligibility-track-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.eligibility-money{grid-template-columns:1fr}.eligibility-money div{display:flex;justify-content:space-between}.eligibility-money strong{margin:0}.announcement-eligibility{padding:20px 16px;border-radius:var(--lumo-border-radius-xl);border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}.eligibility-budget{padding:14px;border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}}

.announcement-eligibility .eligibility-controls{margin:18px 0 0;border-top:1px solid var(--lumo-contrast-20pct);font-size:var(--lumo-font-size-s);color:var(--lumo-body-text-color)}
.announcement-eligibility .eligibility-controls>summary{padding:16px 0 0;font-size:var(--lumo-font-size-s);color:var(--lumo-primary-color)}
.announcement-eligibility .eligibility-controls[open]>summary{padding-bottom:8px}
.announcement-eligibility .eligibility-controls>summary span{margin:0;font:inherit;color:inherit}
.announcement-eligibility .eligibility-supply-summary { table-layout: fixed; white-space: normal; }
.announcement-eligibility .eligibility-supply-summary :is(th, td) { padding: 4px 8px; line-height: 1.45; overflow-wrap: anywhere; }
.eligibility-supply-summary thead th:first-child { width: 30%; }
.eligibility-supply-summary thead th:last-child { width: 24%; }
.eligibility-supply-summary tbody th[scope='rowgroup'] { vertical-align: top; background: var(--lumo-subtle-background-color); }
.eligibility-supply-summary th small { display: block; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.eligibility-supply-summary tbody th[scope='row'] { font-weight: 400; }
.eligibility-supply-summary thead th:last-child, .eligibility-supply-summary td { text-align: end; font-variant-numeric: tabular-nums; }
.eligibility-supply-summary tbody + tbody { border-top: 1px solid var(--lumo-contrast-20pct); }


/* src/main/frontend/themes/hyenmin/announcement-location.css */
.announcement-location{overflow:hidden;border:1px solid var(--lumo-contrast-20pct);border-radius:var(--lumo-border-radius-xxl);background:var(--lumo-base-color);color:var(--lumo-body-text-color);border-color:var(--lumo-transparent-color);border-bottom-color:var(--lumo-contrast-20pct)}
.announcement-location,.announcement-location *{box-sizing:border-box}
.announcement-location header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 26px}
.announcement-location-eyebrow{font-size:var(--lumo-font-size-xs);color:var(--lumo-primary-text-color);letter-spacing:.04em;font-weight:650}
.announcement-location h2{margin:5px 0 9px;font-size:var(--lumo-font-size-xl);letter-spacing:-.035em;color:var(--lumo-body-text-color)}
.announcement-location header p{margin:0;font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);word-break:keep-all;overflow-wrap:anywhere}
.announcement-location header a{flex-shrink:0;border:1px solid var(--lumo-control-border-color);border-radius:var(--lumo-border-radius-l);background:var(--lumo-base-color);padding:10px 14px;color:var(--lumo-primary-color);font-size:var(--lumo-font-size-xs);text-decoration:none}
.announcement-location-visual{position:relative;background:var(--lumo-subtle-background-color);border-top:1px solid var(--lumo-contrast-20pct);border-bottom:1px solid var(--lumo-contrast-20pct)}
.announcement-location-canvas{width:100%;height:340px}
.announcement-location-pin{display:grid;place-items:center;width:64px;height:45px;background:var(--lumo-primary-color);border:3px solid var(--lumo-base-color);border-radius:var(--lumo-border-radius-xl) var(--lumo-border-radius-xl) var(--lumo-border-radius-xl) var(--lumo-border-radius-xs);color:var(--lumo-primary-contrast-color);font-family:var(--lumo-font-family);font-size:var(--lumo-font-size-xs);font-weight:700;box-shadow:var(--lumo-box-shadow-none)}
.announcement-location-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:var(--lumo-subtle-background-color);color:var(--lumo-primary-text-color);font-size:var(--lumo-font-size-xs)}
.announcement-location-placeholder>span,.announcement-location-fallback>span{font-size:var(--lumo-font-size-xxxl);color:var(--lumo-primary-color)}
.announcement-location-fallback{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:35px 24px;min-height:180px;text-align:center}
.announcement-location-fallback strong{font-size:var(--lumo-font-size-s);font-weight:600}.announcement-location-fallback p{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);max-width:450px;margin:0}
.announcement-location-caption{position:absolute;left:16px;top:16px;z-index:2;display:flex;align-items:center;gap:14px;padding:8px 10px 8px 13px;background:var(--lumo-base-color);border:1px solid var(--lumo-control-border-color);border-radius:var(--lumo-border-radius-l);box-shadow:var(--lumo-box-shadow-none)}
.announcement-location-caption span{font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color);display:flex;align-items:center;gap:6px}.announcement-location-caption i{width:7px;height:7px;border-radius:var(--lumo-border-radius-circle);background:var(--lumo-primary-color)}
.announcement-location button{font-family:inherit;font-size:var(--lumo-font-size-xs);color:var(--lumo-primary-color);background:var(--lumo-subtle-background-color);border:1px solid var(--lumo-control-border-color);border-radius:var(--lumo-border-radius-m);padding:7px 9px;cursor:pointer}
.announcement-location footer{padding:14px 26px;color:var(--lumo-secondary-text-color);font-size:var(--lumo-font-size-xs);line-height:1.7}.announcement-location footer small{display:block;margin-top:3px;font-size:var(--lumo-font-size-xs);color:var(--lumo-secondary-text-color)}
.announcement-location :is(a,button):focus-visible{outline:3px solid var(--lumo-primary-color);outline-offset:3px}
@media(max-width:640px){.announcement-location header{padding:20px;align-items:flex-start;flex-direction:column;gap:14px}.announcement-location h2{font-size:var(--lumo-font-size-xl)}.announcement-location-canvas{height:290px}.announcement-location-caption{left:10px;top:10px;gap:8px;padding:6px 8px;background:var(--lumo-base-color)}.announcement-location footer{padding:12px 20px}}
.announcement-location-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.announcement-location-switch{display:flex;gap:4px;padding:4px;background:var(--lumo-base-color);border-radius:var(--lumo-border-radius-l)}.announcement-location .announcement-location-switch button{font-size:var(--lumo-font-size-xs);min-height:38px;padding:8px 12px;border-color:var(--lumo-control-border-color);white-space:nowrap}.announcement-location-switch button[aria-pressed=true]{background:var(--lumo-action-background-color);color:var(--lumo-primary-hover-color);box-shadow:var(--lumo-box-shadow-none);border-color:var(--lumo-control-border-color);text-decoration:underline;text-underline-offset:.2em}.announcement-location-visual[hidden]{display:none}@media(max-width:640px){.announcement-location-actions{width:100%;align-items:stretch}.announcement-location-switch{align-self:flex-start;background:var(--lumo-base-color)}.announcement-location-actions>a{align-self:flex-start}}
@media (max-width: 640px) {
  .announcement-location > header .announcement-location-actions {
    display: flex; flex-flow: row nowrap; align-items: stretch; justify-content: flex-start;
    gap: 4px; min-width: 0; container: location-actions / inline-size;
  }
  .announcement-location .announcement-location-actions .announcement-location-switch {
    display: inline-flex; align-self: stretch; align-items: stretch; padding: 0; gap: 4px; min-width: 0;
  }
  .announcement-location .announcement-location-actions :is(button, a) {
    display: inline-flex; align-items: center; justify-content: center; align-self: stretch;
    min-height: 44px; min-width: 0; flex-shrink: 1; padding: 4px 8px;
    font-size: var(--lumo-font-size-s); line-height: 1.25; white-space: pre; text-align: center;
  }
  @container location-actions (max-width: 300px) {
    .announcement-location .announcement-location-actions :is(button, a) { font-size: var(--lumo-font-size-xs); padding-inline: 4px; }
    .announcement-location-actions .location-action-extra { display: none; }
  }
}


/* src/main/frontend/themes/hyenmin/announcement-journey.css */
.announcement-journey { display: flex; flex-direction: column; gap: 24px; max-width: 960px; margin: 0 auto; padding-bottom: 40px; }
.announcement-journey h1 { font-size: clamp(24px, 3vw, 32px); line-height: 1.5; word-break: keep-all; }
.announcement-overview { background: var(--lumo-base-color); border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); padding: 30px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.announcement-eyebrow { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.announcement-overview h3 { margin: 16px 0 24px; font-size: clamp(21px, 3vw, 28px); line-height: 1.5; letter-spacing: -.04em; word-break: keep-all; }
.announcement-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-bottom: 26px; }
.announcement-facts > div { display: flex; flex-direction: column; gap: 10px; }
.announcement-facts span { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.announcement-facts strong { font-size: var(--lumo-font-size-l); }
.announcement-primary { display: inline-block; background: var(--lumo-action-background-color); border: 0; color: var(--lumo-action-text-color); padding: 12px 18px; border-radius: var(--lumo-border-radius-l); font-size: var(--lumo-font-size-s); text-decoration: none; cursor: pointer; border-color: var(--lumo-control-border-color); }
.announcement-primary:disabled { background: var(--lumo-contrast-20pct); color: var(--lumo-secondary-text-color); cursor: default; }
.announcement-primary:focus-visible, .announcement-journey summary:focus-visible { outline: 3px solid var(--lumo-focus-on-accent-color); outline-offset: 3px; }
.announcement-source { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 20px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-l); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.announcement-source p, .announcement-source > span { margin: 6px 0 0; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.announcement-review { padding: 16px 20px; background: var(--lumo-page-background-color); border-radius: var(--lumo-border-radius-l); font-size: var(--lumo-font-size-xs); line-height: 1.8; }
.announcement-journey summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
.announcement-housing-list { scroll-margin-top: 80px; }
.announcement-plan-cta { background: var(--lumo-page-background-color); padding: 18px; border-radius: var(--lumo-border-radius-l); display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.announcement-plan-cta p { margin: 0; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.announcement-plan-cta small { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.announcement-schedule { font-family: 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif; padding: 24px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); -webkit-font-smoothing: antialiased; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.announcement-schedule h3 { margin: 0 0 16px; color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-l); font-weight: 600; letter-spacing: -.035em; }
.announcement-schedule dl { display: grid; margin: 0; }
.announcement-schedule-row { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 16px; padding: 10px 0; font-size: var(--lumo-font-size-s); line-height: 1.8; letter-spacing: -.025em; }
.announcement-schedule-row + .announcement-schedule-row { border-top: 1px solid var(--lumo-page-background-color); }
.announcement-schedule-row dt { color: var(--lumo-secondary-text-color); font-weight: 400; }
.announcement-schedule-row dd { margin: 0; color: var(--lumo-body-text-color); font-weight: 400; overflow-wrap: anywhere; }
@media(max-width: 600px) { .announcement-schedule { padding: 20px 18px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); } .announcement-schedule-row { grid-template-columns: 82px minmax(0, 1fr); gap: 10px; font-size: var(--lumo-font-size-xs); } }
@media(max-width: 600px) { .announcement-overview { padding: 22px 18px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); background: var(--lumo-base-color); } .announcement-facts { grid-template-columns: 1fr; gap: 14px; } .announcement-facts > div { flex-direction: row; justify-content: space-between; align-items: center; } .announcement-facts strong { font-size: var(--lumo-font-size-m); } .announcement-primary { box-sizing: border-box; width: 100%; text-align: center; background: var(--lumo-action-background-color); color: var(--lumo-action-text-color); border-color: var(--lumo-control-border-color); } .announcement-journey { min-width: 0; } }
.announcement-share { position:relative; min-width:0; }
.announcement-share p { margin:6px 0 0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); }
.announcement-share label { display:block; font-size:var(--lumo-font-size-xs); color:var(--lumo-secondary-text-color); margin-top:8px; }
.announcement-share input { display:block; box-sizing:border-box; width:100%; min-width:0; margin-top:5px; padding:9px; border:1px solid var(--lumo-contrast-20pct); border-radius:var(--lumo-border-radius-l); font:inherit; border-color: var(--lumo-control-border-color); }
.announcement-hero-actions { display:flex; flex-wrap:wrap; align-items:start; gap:8px; margin-top:12px;
  /* CTA는 패딩으로, 보조 버튼은 min-height로 높이가 정해져 서로 5px 어긋나 있었다.
     두 높이를 한 변수로 묶어 다시 벌어지지 않게 한다. */
  --hero-action-height: 45px; }
.announcement-hero-actions .announcement-primary,
.announcement-hero-actions .service-action { min-height: var(--hero-action-height); background: var(--lumo-action-background-color); color: var(--lumo-action-text-color); border-color: var(--lumo-control-border-color); }
.announcement-hero-actions .announcement-primary {
  display: inline-flex; align-items: center; justify-content: center;
  padding-top: 0; padding-bottom: 0; background: var(--lumo-action-background-color); color: var(--lumo-action-text-color); border-color: var(--lumo-control-border-color); }
.announcement-updated { margin:8px 0 0; font-size:var(--lumo-font-size-xs); color:var(--lumo-secondary-text-color); }

/* Keep the title, photo and decision essentials in one compact introduction. */
.announcement-hero { display:grid; gap:24px; padding:28px; border:1px solid var(--lumo-contrast-20pct); border-radius:var(--lumo-border-radius-xxl); background:var(--lumo-base-color); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.announcement-hero:has(.announcement-hero-artwork) { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); column-gap:28px; }
.announcement-hero-copy { display:flex; flex-direction:column; gap:12px; min-width:0; }
.announcement-hero h1 { font-size:clamp(23px,2.6vw,30px); line-height:1.4; letter-spacing:-.04em; overflow-wrap:anywhere; }
.announcement-hero-copy > span { font-size:var(--lumo-font-size-xs); line-height:1.7; word-break:keep-all; overflow-wrap:anywhere; }
.announcement-hero-overview { min-width:0; align-self:end; }
.announcement-hero .announcement-facts { gap:12px; margin-bottom:20px; }
.announcement-hero .announcement-facts > div { gap:7px; }
.announcement-hero .announcement-facts span { font-size:var(--lumo-font-size-xs); }
.announcement-hero .announcement-facts strong { font-size:var(--lumo-font-size-m); overflow-wrap:anywhere; }
.announcement-hero .announcement-primary { background:var(--lumo-action-background-color); font-size:var(--lumo-font-size-xs); color: var(--lumo-action-text-color); border-color: var(--lumo-control-border-color); }
.announcement-hero-artwork { grid-column:2; grid-row:1 / 3; display:flex; flex-direction:column; min-width:0; margin:0; align-self:stretch; }
.announcement-hero-photo { display:block; position:relative; flex:1; min-height:240px; overflow:hidden; border-radius:var(--lumo-border-radius-l); background:var(--lumo-subtle-background-color); }
.announcement-hero-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.announcement-hero-photo > span { position:absolute; bottom:10px; right:10px; padding:6px 9px; border-radius:var(--lumo-border-radius-s); background:color-mix(in srgb, var(--lumo-body-text-color) 87.8%, var(--lumo-transparent-color)); color:var(--lumo-base-color); font-size:var(--lumo-font-size-xs); }
.announcement-hero-photo:focus-visible { outline:3px solid var(--lumo-primary-color); outline-offset:3px; }
.announcement-hero-artwork figcaption { display:flex; align-items:start; gap:8px; padding:8px 2px 0; color:var(--lumo-secondary-text-color); font-size:var(--lumo-font-size-xs); line-height:1.6; }
.announcement-hero-artwork figcaption > span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.announcement-hero-artwork figcaption a { flex-shrink:0; color:var(--lumo-primary-color); }
@media(max-width:760px) {
  .announcement-hero,.announcement-hero:has(.announcement-hero-artwork) { grid-template-columns:minmax(0,1fr); padding:20px; gap:18px; }
  .announcement-hero-artwork { grid-column:auto; grid-row:auto; }
  .announcement-hero-photo { flex:none; height:180px; min-height:0; }
  .announcement-hero .announcement-facts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
  .announcement-hero .announcement-facts > div { flex-direction:column; align-items:start; justify-content:start; }
  .announcement-hero .announcement-facts strong { font-size:var(--lumo-font-size-s); }
}


/* src/main/frontend/themes/hyenmin/purchase-journey.css */
/* Scenario generator: one input surface, progressive detail, explicit plan selection. */
.purchase-journey { max-width: 980px; margin: 0 auto; padding: 22px 0 48px; color: var(--lumo-body-text-color); }
.purchase-journey * { box-sizing: border-box; }
.purchase-journey h1, .purchase-journey h2, .purchase-journey h3, .purchase-journey p { margin: 0; word-break: keep-all; overflow-wrap: anywhere; }
.purchase-journey button:focus-visible, .purchase-journey summary:focus-visible { outline: 3px solid var(--lumo-primary-color); outline-offset: 4px; }
.purchase-journey button { min-height: 42px; }
.journey-intro { position: relative; padding: 12px 0 32px; }
.journey-eyebrow { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); font-weight: 700; letter-spacing: .08em; }
.journey-intro h1 { font-size: clamp(27px, 3.5vw, 40px); line-height: 1.4; letter-spacing: -.05em; margin: 12px 0; font-weight: 780; }
.journey-intro em { font-style: normal; color: var(--lumo-primary-color); }
.journey-intro p { font-size: var(--lumo-font-size-s); color: var(--lumo-secondary-text-color); line-height: 1.7; }
.journey-trust { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 20px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.journey-trust span::before { content: '✓'; margin-right: 6px; color: var(--lumo-primary-color); }
.journey-mobile-break { display: none; }
.journey-builder { background: var(--lumo-base-color); border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xxl); padding: 28px 32px 20px; box-shadow: var(--lumo-box-shadow-none); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.journey-builder fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
.journey-builder legend { padding: 0; margin-bottom: 24px; font-size: var(--lumo-font-size-l); font-weight: 700; }
.journey-step { color: var(--lumo-primary-color); font-size: var(--lumo-font-size-xs); letter-spacing: .04em; font-weight: 700; margin-right: 10px; }
.journey-input-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.journey-field { display: flex; flex-direction: column; gap: 9px; font-size: var(--lumo-font-size-xs); font-weight: 600; min-width: 0; }
.journey-number { display: flex; align-items: center; gap: 4px; background: var(--lumo-page-background-color); border-radius: var(--lumo-border-radius-l); border: 1px solid var(--lumo-contrast-20pct); padding-right: 12px; border-color: var(--lumo-control-border-color); }
.journey-number:focus-within { background: var(--lumo-base-color); border-color: var(--lumo-primary-color); box-shadow: var(--lumo-box-shadow-none); outline: 2px solid var(--lumo-primary-color); outline-offset: 2px; }
.journey-number input:not([type='checkbox']) { border: 0; box-shadow: var(--lumo-box-shadow-none); background: var(--lumo-transparent-color); height: 55px; width: 100%; padding: 0 12px; font-size: var(--lumo-font-size-xl); font-weight: 700; color: var(--lumo-body-text-color); }
.journey-number > span { white-space: nowrap; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); font-weight: 500; }
.journey-number input::-webkit-inner-spin-button, .journey-number input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.journey-number input { appearance: textfield; }
.journey-field small { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); font-weight: 400; line-height: 1.5; }
.journey-salary { display: flex; align-items: center; gap: 24px; margin: 24px 0; padding-top: 24px; border-top: 1px solid var(--lumo-subtle-background-color); }
.journey-salary .journey-field { flex: 0 1 215px; }
.journey-salary .journey-number input { height: 45px; font-size: var(--lumo-font-size-l); }
.journey-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.journey-chips button { font-size: var(--lumo-font-size-xs); border-color: var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-m); padding: 8px 14px; color: var(--lumo-secondary-text-color); }
.journey-chips button[aria-pressed='true'] { background: var(--lumo-soft-accent-color); border-color: var(--lumo-selected-color); color: var(--lumo-primary-color); font-weight: 700; }
.journey-assumptions { border-top: 1px solid var(--lumo-subtle-background-color); margin-bottom: 20px; }
.purchase-journey summary { cursor: pointer; padding: 17px 0; font-size: var(--lumo-font-size-xs); font-weight: 650; line-height: 1.6; }
.purchase-journey summary > span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); font-weight: 400; margin-left: 10px; }
.journey-detail-body { display: flex; flex-direction: column; gap: 18px; padding: 6px 0 18px; min-width: 0; line-height: 1.7; font-size: var(--lumo-font-size-s); }
.journey-small-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 460px; }
.journey-small-fields input { font-size: var(--lumo-font-size-l) !important; height: 44px !important; }
.purchase-journey .journey-primary { background: var(--lumo-action-background-color); color: var(--lumo-action-text-color); border: 1px solid var(--lumo-primary-color); font-weight: 650; padding: 12px 20px; border-radius: var(--lumo-border-radius-l); border-color: var(--lumo-control-border-color); }
.purchase-journey .journey-primary:hover:not(:disabled) { background: var(--lumo-action-hover-color); border-color: var(--lumo-primary-color); color: var(--lumo-action-text-color); }
.journey-generate { width: 100%; min-height: 54px !important; font-size: var(--lumo-font-size-m); }
.purchase-journey .journey-form-foot { text-align: center; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); margin-top: 12px; line-height: 1.6; }
.journey-preview { text-align: center; color: var(--lumo-secondary-text-color); padding: 30px 12px; }
.journey-preview > span { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-preview p { margin-top: 9px; font-size: var(--lumo-font-size-s); }
.journey-preview b { padding: 0 14px; color: var(--lumo-secondary-text-color); }
.journey-results { margin-top: 38px; display: flex; flex-direction: column; gap: 20px; scroll-margin-top: 80px; }
.journey-section-heading, .journey-alternative-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.journey-section-heading h2, .journey-section-heading h3 { font-size: var(--lumo-font-size-l); }
.journey-section-heading > span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.journey-result-hero { padding: 28px 32px; background: var(--lumo-subtle-background-color); border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); }
.journey-result-hero.is-ready { background: var(--lumo-ready-surface-color); border-color: var(--lumo-success-color-25pct); }
.journey-result-caption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.journey-result-caption span:first-child { font-weight: 750; }
.journey-result-hero h3 { font-size: clamp(24px, 3vw, 32px); letter-spacing: -.04em; line-height: 1.45; margin: 20px 0 12px; }
.journey-result-hero em { color: var(--lumo-primary-color); font-style: normal; }
.journey-result-hero.is-ready em { color: var(--lumo-chart-covered-color); }
.journey-result-hero > p { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); line-height: 1.7; }
.journey-breakdown { margin-top: 25px; }
/* 집값 한 줄을 대출·모이는 돈·부족분으로 나눠, 세 숫자의 관계를 길이로 읽게 한다. */
.journey-bar { display: flex; height: 16px; border-radius: var(--lumo-border-radius-xxl); overflow: hidden; background: var(--lumo-contrast-20pct); }
.journey-bar > span { display: block; height: 100%; transition: width .25s ease; }
.journey-bar-loan { background: var(--lumo-chart-loan-color); }
.journey-bar-covered { background: var(--lumo-primary-color); }
.journey-bar-gap { background: var(--lumo-chart-gap-color); }
.is-ready .journey-bar-covered { background: var(--lumo-chart-covered-color); }
.is-ready .journey-bar-loan { background: var(--lumo-chart-loan-ready-color); }
.journey-legend { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 16px 0 0; padding: 0; list-style: none; }
.journey-legend li { display: flex; flex-direction: column; gap: 6px; }
.journey-legend span { display: flex; align-items: center; gap: 6px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-legend span::before { content: ''; width: 9px; height: 9px; border-radius: var(--lumo-border-radius-xs); flex: 0 0 auto; }
.journey-legend .is-loan span::before { background: var(--lumo-chart-loan-color); }
.journey-legend .is-covered span::before { background: var(--lumo-primary-color); }
.journey-legend .is-gap span::before { background: var(--lumo-chart-gap-color); }
.journey-legend .is-total span::before { background: var(--lumo-contrast-20pct); }
.is-ready .journey-legend .is-covered span::before { background: var(--lumo-chart-covered-color); }
.is-ready .journey-legend .is-loan span::before { background: var(--lumo-chart-loan-ready-color); }
.journey-legend strong { font-size: var(--lumo-font-size-xl); letter-spacing: -.035em; }
.journey-legend .is-gap strong { color: var(--lumo-chart-gap-text-color); }
.is-ready .journey-legend .is-gap strong { color: var(--lumo-chart-covered-color); }
.journey-bar-note { margin: 14px 0 0; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-bar-note strong { color: var(--lumo-body-text-color); }

/* 연봉 줄 오른쪽 생애최초 스위치 */
.journey-switch { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 9px 14px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-l); cursor: pointer; border-color: var(--lumo-control-border-color); }
.journey-switch input { width: 16px; height: 16px; margin: 0; accent-color: var(--lumo-primary-color); cursor: pointer; }
.journey-switch > span { font-size: var(--lumo-font-size-xs); font-weight: 600; color: var(--lumo-body-text-color); }
.journey-switch small { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-switch:has(input:checked) { background: var(--lumo-soft-accent-color); border-color: var(--lumo-selected-color); }
.journey-switch:has(input:checked) > span { color: var(--lumo-primary-color); }
.journey-alternative-head { margin-top: 14px; }
.journey-alternative-head h3 { font-size: var(--lumo-font-size-m); }
.journey-alternative-head p { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); margin-top: 8px; }
.journey-alternative-head button { font-size: var(--lumo-font-size-xs); }
.journey-plan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.purchase-journey .journey-plan { text-align: left; display: flex; flex-direction: column; align-items: flex-start; padding: 21px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); color: var(--lumo-body-text-color); border-color: var(--lumo-control-border-color); }
.purchase-journey .journey-plan:hover:not(:disabled) { border-color: var(--lumo-chart-loan-color); background: var(--lumo-base-color); }
.purchase-journey .journey-plan.is-selected { border: 2px solid var(--lumo-primary-color); padding: 20px; background: var(--lumo-base-color); }
.journey-plan-icon { display: grid; place-items: center; width: 32px; height: 32px; background: var(--lumo-subtle-background-color); border-radius: var(--lumo-border-radius-m); font-size: var(--lumo-font-size-xl); color: var(--lumo-primary-color); margin-bottom: 16px; }
.journey-plan > strong { font-size: var(--lumo-font-size-m); }
.journey-plan > span:not(.journey-plan-icon):not(.journey-plan-select) { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); margin-top: 7px; }
.journey-plan > b { margin-top: 22px; font-size: var(--lumo-font-size-l); letter-spacing: -.04em; }
.journey-plan small { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.6; margin: 7px 0 20px; }
.journey-plan-select { margin-top: auto; color: var(--lumo-primary-color); font-size: var(--lumo-font-size-xs); font-weight: 650; }
.journey-positive { color: var(--lumo-chart-covered-color); }
.purchase-journey .journey-note { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.8; }
.journey-details { border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-l); background: var(--lumo-base-color); padding: 0 22px; min-width: 0; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.journey-equation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; }
.journey-equation > div { background: var(--lumo-page-background-color); padding: 14px; border-radius: var(--lumo-border-radius-m); }
.journey-equation dt { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.journey-equation dd { font-size: var(--lumo-font-size-l); font-weight: 700; margin: 4px 0 0; }
.journey-chart { width: 100%; height: auto; }
.journey-chart-key { display: flex; gap: 22px; font-size: var(--lumo-font-size-xs); color: var(--lumo-primary-color); }
.journey-chart-key span:nth-child(2) { color: var(--lumo-chart-gap-text-color); }
.journey-chart-key .journey-key-gap { color: var(--lumo-chart-gap-text-color); }
.journey-table-wrap { overflow-x: auto; }
.journey-table { width: 100%; border-collapse: collapse; font-size: var(--lumo-font-size-xs); white-space: nowrap; }
.journey-table th, .journey-table td { padding: 10px; text-align: right; border-bottom: 1px solid var(--lumo-subtle-background-color); }
.journey-table th:first-child { text-align: left; }
.journey-table caption { text-align: left; padding: 8px 0; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-keep { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: 26px; background: var(--lumo-base-color); border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.journey-keep h3 { font-size: var(--lumo-font-size-m); }
.privacy-page .journey-keep { margin-bottom: 20px; align-items: stretch; flex-direction: column; gap: 12px; }
.privacy-page .journey-keep h2 { margin: 0; font-size: var(--lumo-font-size-l); }
.privacy-page .journey-keep p { margin: 0; font-size: var(--lumo-font-size-s); line-height: 1.8; color: var(--lumo-secondary-text-color); }
.plan-share .funding-check { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; font-size: var(--lumo-font-size-s); line-height: 1.6; }
.plan-share .funding-check input { flex: 0 0 auto; margin-top: 4px; }
.journey-keep p { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); margin-top: 8px; }
.journey-login { width: 100%; border: 0; border-top: 1px solid var(--lumo-subtle-background-color); padding-top: 17px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.journey-share-url { width: 100%; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); display: flex; flex-direction: column; gap: 8px; }
.journey-share-url input { width: 100%; font-size: var(--lumo-font-size-xs); }
.journey-save-form { display: flex; flex-wrap: wrap; gap: 10px; width: 100%; }
.journey-save-form input, .journey-save-form select { min-height: 42px; }
.journey-save-form > input, .journey-save-form > select { flex: 1 1 200px; }
.journey-save-form button { font-size: var(--lumo-font-size-xs); }
.journey-next { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.journey-next > p { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-next button { font-size: var(--lumo-font-size-xs); }
.journey-matches { list-style: none; padding: 0; margin: 0; }
.journey-matches li { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--lumo-contrast-20pct); font-size: var(--lumo-font-size-xs); }
.journey-matches li > div { flex: 1 1 200px; display: flex; flex-direction: column; gap: 6px; }
.journey-matches li span { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.journey-advanced-toggle { border: 0; color: var(--lumo-secondary-text-color); background: var(--lumo-transparent-color); font-size: var(--lumo-font-size-xs); }
.journey-advanced { border-top: 1px solid var(--lumo-contrast-20pct); margin-top: 28px; padding-top: 24px; display: flex; flex-direction: column; gap: 20px; }
.advanced-purchase { border: 0; padding: 0; min-width: 0; width: 100%; }
.journey-builder { scroll-margin-top: 80px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.journey-advanced { scroll-margin-top: 80px; }
.journey-saved { margin-top: 24px; }
.journey-error, .journey-notice { padding: 16px 20px; margin: 20px 0 !important; background: var(--lumo-soft-accent-color); border-radius: var(--lumo-border-radius-l); font-size: var(--lumo-font-size-xs); line-height: 1.7; }
.journey-error { background: var(--lumo-page-background-color); color: var(--lumo-status-fail-color); }
.journey-notice button { margin-left: 10px; font-size: var(--lumo-font-size-xs); }
.journey-footer { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); line-height: 1.8; text-align: center; padding: 32px 10px 0; }
@media (max-width: 780px) {
  .journey-input-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .journey-builder { padding: 24px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
  .journey-plan { padding: 16px !important; }
  .journey-plan.is-selected { padding: 15px !important; }
  .journey-plan > strong { font-size: var(--lumo-font-size-s); }
  .journey-plan > b { font-size: var(--lumo-font-size-m); }
}
@media (max-width: 520px) {
  .purchase-journey { padding-top: 6px; }
  .journey-intro { padding: 8px 2px 24px; }
  .journey-intro h1 { font-size: var(--lumo-font-size-xxl); }
  .journey-intro p { font-size: var(--lumo-font-size-xs); }
  .journey-mobile-break { display: initial; }
  .journey-trust { gap: 10px; font-size: var(--lumo-font-size-xs); }
  .journey-builder { padding: 22px 18px 18px; border-radius: var(--lumo-border-radius-xl); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
  .journey-builder legend { font-size: var(--lumo-font-size-m); }
  .journey-input-grid { gap: 20px 14px; }
  .journey-field { font-size: var(--lumo-font-size-xs); }
  .journey-number input:not([type='checkbox']) { font-size: var(--lumo-font-size-xl); padding: 0 9px; }
  .journey-number { padding-right: 9px; border-color: var(--lumo-control-border-color); }
  .journey-number > span { font-size: var(--lumo-font-size-xs); }
  .journey-salary { flex-wrap: wrap; gap: 12px; }
  .journey-salary .journey-field { flex-basis: 100%; }
  .journey-chips button { padding: 8px 12px; border-color: var(--lumo-control-border-color); }
  .purchase-journey summary > span { display: block; margin: 6px 0 0 16px; font-size: var(--lumo-font-size-xs); }
  .journey-result-hero { padding: 24px 20px; }
  .journey-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 8px; }
  .journey-legend strong { font-size: var(--lumo-font-size-m); }
  .journey-legend span { font-size: var(--lumo-font-size-xs); }
  .journey-plan-grid { grid-template-columns: 1fr; }
  .purchase-journey .journey-plan { display: grid; grid-template-columns: 38px 1fr; gap: 5px 10px; border-color: var(--lumo-control-border-color); }
  .journey-plan-icon { grid-row: 1 / 3; margin: 0; }
  .journey-plan > strong { font-size: var(--lumo-font-size-m); }
  .journey-plan > span:not(.journey-plan-icon), .journey-plan > small, .journey-plan > b { grid-column: 2; margin-top: 0 !important; }
  .journey-plan > b { margin-top: 10px !important; font-size: var(--lumo-font-size-l); }
  .journey-plan small { margin-bottom: 8px; }
  .journey-details { padding: 0 16px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
  .journey-equation { gap: 10px; }
  .journey-equation dd { font-size: var(--lumo-font-size-l); }
  .journey-keep { padding: 22px 18px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
  .journey-keep .journey-primary { width: 100%; background: var(--lumo-action-background-color); color: var(--lumo-action-text-color); border-color: var(--lumo-control-border-color); }
  .journey-preview p { font-size: var(--lumo-font-size-xs); line-height: 1.8; }
  .journey-preview b { display: none; }
}
@media (prefers-reduced-motion: reduce) { .purchase-journey * { transition: none !important; scroll-behavior: auto !important; } }


/* src/main/frontend/themes/hyenmin/funding-journey.css */
/* Funding uses the same journey components as purchase, with a dated cash timeline. */
.funding-source { margin-bottom: 24px; }
.funding-personal-guide { color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-s); margin: 0 0 18px; line-height: 1.6; }
.funding-personal-field > span:first-child { color: var(--lumo-primary-text-color); }
.funding-personal-field .journey-number { background: var(--lumo-primary-color-10pct); border-color: var(--lumo-primary-color-50pct); }
.funding-personal-field .journey-number:focus-within { border-color: var(--lumo-primary-color); box-shadow: var(--lumo-box-shadow-none); outline: 2px solid var(--lumo-primary-color); outline-offset: 2px; }
.funding-import { background: var(--lumo-base-color); padding: 18px; border-radius: var(--lumo-border-radius-l); margin-bottom: 24px; display: flex; flex-direction: column; gap: 14px; }
.funding-import select, .funding-journey .journey-detail-body > .journey-field select { height: 44px; width: 100%; }
.funding-import .journey-save-form { align-items: end; }
.funding-import .journey-save-form label { flex: 1 1 230px; }
.funding-journey .journey-number input[type='date'] { font-size: var(--lumo-font-size-s); padding: 0 8px; }
.funding-date-shortcuts { display: flex; justify-content: flex-end; align-items: center; gap: 7px; margin-top: 12px; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); }
.funding-date-shortcuts button { font-size: var(--lumo-font-size-xs); min-height: 32px; padding: 4px 12px; }
.funding-check { display: flex; align-items: center; gap: 8px; font-size: var(--lumo-font-size-xs); }
.funding-check input { width: 18px; height: 18px; }
.funding-payment-editor { display: grid; grid-template-columns: 1.2fr .8fr 1fr 1fr auto; gap: 10px; align-items: end; border-bottom: 1px solid var(--lumo-contrast-20pct); padding-bottom: 14px; }
.funding-payment-editor label { display: flex; flex-direction: column; gap: 6px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.funding-payment-editor input, .funding-payment-editor select { width: 100%; min-width: 0; height: 42px !important; }
.funding-payment-editor button { font-size: var(--lumo-font-size-xs); }
.funding-caution { background: var(--lumo-page-background-color); border: 1px solid var(--lumo-chart-gap-color); color: var(--lumo-caution-text-color); border-radius: var(--lumo-border-radius-l); font-size: var(--lumo-font-size-xs); line-height: 1.8; padding: 14px; margin-bottom: 16px !important; }
.funding-milestones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--lumo-contrast-20pct); }
.funding-milestones > div { display: flex; flex-direction: column; gap: 9px; }
.funding-milestones span { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.funding-milestones strong { font-size: var(--lumo-font-size-xl); letter-spacing: -.04em; }
.funding-milestones small { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.funding-negative-row td:last-child { color: var(--lumo-chart-gap-text-color); font-weight: 700; }
.funding-load { margin-top: 25px; padding: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; border-top: 1px solid var(--lumo-contrast-20pct); font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.funding-feedback { width: 100%; margin: 0 !important; }
@media (max-width: 780px) { .funding-payment-editor { grid-template-columns: repeat(2, minmax(0, 1fr)); } .funding-payment-editor button { justify-self: start; } }
@media (max-width: 520px) {
  .funding-journey .journey-intro h1 { font-size: var(--lumo-font-size-xxl); }
  .funding-source { display: grid; grid-template-columns: 1fr 1fr; }
  .funding-source button { padding: 9px 8px; font-size: var(--lumo-font-size-xs); }
  .funding-journey .journey-result-hero h3 { font-size: var(--lumo-font-size-xl); }
  .funding-milestones { grid-template-columns: 1fr; gap: 18px; }
  .funding-milestones > div { display: grid; grid-template-columns: 1fr auto; gap: 6px; }
  .funding-milestones small { grid-column: 1 / -1; }
  .funding-milestones strong { font-size: var(--lumo-font-size-l); }
  .funding-journey .journey-plan > strong { font-size: var(--lumo-font-size-s); }
  .funding-journey .journey-number input[type='date'] { font-size: var(--lumo-font-size-xs); }
}

.funding-event { padding: 18px !important; margin: 16px 0 !important; border: 1px solid var(--lumo-contrast-20pct) !important; border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); }
.funding-event legend { font-size: var(--lumo-font-size-s) !important; margin: 0 !important; padding: 0 6px; }
.funding-event input, .funding-event select, .funding-report input { width: 100%; box-sizing: border-box; min-width: 0; height: 44px; padding: 8px 12px; border: 1px solid var(--lumo-control-border-color); border-radius: var(--lumo-border-radius-m); font: inherit; color: inherit; background: var(--lumo-base-color); }
.funding-event > .journey-field { margin: 14px 0; }
.funding-report { display: block; }
.funding-report > h3 { margin-top: 0; }
.funding-report .journey-input-grid { gap: 14px; }
.funding-journey .journey-table td:nth-child(2) { white-space: normal; min-width: 150px; max-width: 260px; overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .funding-events .journey-input-grid, .funding-report .journey-input-grid { grid-template-columns: minmax(0, 1fr); }
}

.funding-loan-summary { padding: 16px 20px; border-radius: var(--lumo-border-radius-xl); background: var(--lumo-page-background-color); color: var(--lumo-body-text-color); font-size: var(--lumo-font-size-xs); line-height: 1.9; overflow-wrap: anywhere; }
.funding-milestones .funding-mortgage-total { color: var(--lumo-body-text-color); font-weight: 650; margin-top: 6px; }
.funding-journey .journey-switch:has(input:disabled) { opacity: .6; }

.funding-journey .journey-salary { flex-wrap: wrap; }
.funding-loan-choices { display: flex; flex: 1 0 100%; flex-wrap: wrap; gap: 10px; }
.funding-loan-choices .journey-switch { flex: 1 1 180px; }

.funding-journey .funding-assumed-date,
.funding-journey .funding-assumed-date > span,
.funding-journey .funding-assumed-date input:disabled { color: var(--lumo-warning-text-color); opacity: 1; }
.funding-journey .funding-assumed-date input { background: var(--lumo-page-background-color); border-color: var(--lumo-assumed-color); }
.funding-date-badge { display: block; font-size: var(--lumo-font-size-xs); font-weight: 600; white-space: nowrap; }


/* src/main/frontend/themes/hyenmin/eligibility-journey.css */
.eligibility-journey { font-family: 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif; -webkit-font-smoothing: antialiased; }
.eligibility-journey .journey-intro h1 { font-size: clamp(27px, 3.2vw, 36px); font-weight: 700; }
.eligibility-ownership { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin: 26px 0; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.eligibility-inputs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding-bottom: 10px; }
.eligibility-inputs .journey-field > span { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.eligibility-inputs select { width: 100%; height: 52px; padding: 10px; background-color: var(--lumo-page-background-color); border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-l); font-size: var(--lumo-font-size-s); color: var(--lumo-body-text-color); cursor: pointer; border-color: var(--lumo-control-border-color); }
.eligibility-inputs select:focus-visible { outline: 2px solid var(--lumo-primary-color); outline-offset: 2px; border-color: var(--lumo-primary-color); }
.eligibility-inputs select:disabled { opacity: .6; cursor: default; }
.eligibility-owner-note { font-size: var(--lumo-font-size-xs); color: var(--lumo-caution-text-color); background: var(--lumo-page-background-color); padding: 14px; border-radius: var(--lumo-border-radius-l); line-height: 1.8; margin-top: 14px !important; }
.eligibility-score { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 16px 0 8px; }
.eligibility-score > strong { font-size: clamp(52px, 8vw, 72px); color: var(--lumo-primary-color); line-height: 1.15; letter-spacing: -.055em; font-weight: 750; }
.eligibility-score > span { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-m); }
.eligibility-score > b { font-size: var(--lumo-font-size-xs); color: var(--lumo-primary-hover-color); padding: 6px 10px; background: color-mix(in srgb, var(--lumo-base-color) 60%, var(--lumo-transparent-color)); border-radius: var(--lumo-border-radius-xxl); margin-left: 8px; font-weight: 500; }
.eligibility-total-bar { display: flex; height: 12px; border-radius: var(--lumo-border-radius-xxl); background: var(--lumo-contrast-20pct); overflow: hidden; margin: 24px 0; }
.eligibility-total-bar span { transition: width .25s ease; }
.eligibility-breakdown { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.eligibility-breakdown > div { display: flex; flex-direction: column; gap: 9px; }
.eligibility-breakdown > div > span { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); display: flex; align-items: center; gap: 7px; }
.eligibility-breakdown i { width: 8px; height: 8px; border-radius: var(--lumo-border-radius-circle); flex-shrink: 0; }
.eligibility-breakdown strong { font-size: var(--lumo-font-size-xl); font-weight: 650; }
.eligibility-breakdown small { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); font-weight: 400; }
.eligibility-breakdown p { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); line-height: 1.6; }
.eligibility-outlook { padding: 10px 0; }
.eligibility-outlook h3 { font-size: var(--lumo-font-size-l); }
.eligibility-outlook > p { margin: 9px 0 18px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); line-height: 1.8; }
.eligibility-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.eligibility-plans button { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 22px; border: 1px solid var(--lumo-contrast-20pct); border-radius: var(--lumo-border-radius-xl); background: var(--lumo-base-color); color: var(--lumo-body-text-color); text-align: left; cursor: pointer; border-color: var(--lumo-control-border-color); }
.eligibility-plans button[aria-pressed='true'] { border-color: var(--lumo-selected-color); background: var(--lumo-subtle-background-color); box-shadow: var(--lumo-box-shadow-none); }
.eligibility-plans button:hover { border-color: var(--lumo-selected-color); }
.eligibility-plans button > span { font-size: var(--lumo-font-size-xs); }
.eligibility-plans strong { font-size: var(--lumo-font-size-xxl); line-height: 1.2; }
.eligibility-plans small { font-size: var(--lumo-font-size-xs); font-weight: 400; margin-left: 4px; }
.eligibility-plans .eligibility-delta { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.eligibility-plans .eligibility-plan-select { font-size: var(--lumo-font-size-xs); color: var(--lumo-primary-color); margin-top: 5px; }
.eligibility-rules { display: grid; gap: 16px; }
.eligibility-rules h3 { font-size: var(--lumo-font-size-s); font-weight: 600; margin-bottom: 6px; }
.eligibility-rules h3 span { margin-left: 8px; font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); font-weight: 400; }
.eligibility-rules p { font-size: var(--lumo-font-size-xs); color: var(--lumo-secondary-text-color); }
.eligibility-next { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; justify-content: space-between; padding: 26px; border: 1px solid var(--lumo-contrast-20pct); background: var(--lumo-base-color); border-radius: var(--lumo-border-radius-xl); border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
.eligibility-next h3 { font-size: var(--lumo-font-size-l); margin-top: 10px; }
.eligibility-next p { font-size: var(--lumo-font-size-xs); line-height: 1.8; color: var(--lumo-secondary-text-color); margin-top: 10px; }
.eligibility-next > div:last-child { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.eligibility-next a { text-decoration: none; font-size: var(--lumo-font-size-xs); color: var(--lumo-primary-color); }
.eligibility-next a:focus-visible { outline: 3px solid var(--lumo-primary-color); outline-offset: 4px; }
@media(max-width: 700px) {
  .eligibility-inputs { grid-template-columns: 1fr; gap: 22px; }
  .eligibility-ownership { align-items: flex-start; flex-direction: column; gap: 10px; }
  .eligibility-plans { gap: 8px; }
  .eligibility-plans button { padding: 16px 12px; border-color: var(--lumo-control-border-color); }
  .eligibility-plans button > span { font-size: var(--lumo-font-size-xs); }
  .eligibility-plans .eligibility-plan-select { font-size: var(--lumo-font-size-xs); }
  .eligibility-breakdown { gap: 14px; }
  .eligibility-breakdown > div > span { font-size: var(--lumo-font-size-xs); }
}
@media(max-width: 420px) {
  .eligibility-plans { grid-template-columns: 1fr; }
  .eligibility-plans button { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; border-color: var(--lumo-control-border-color); }
  .eligibility-plans strong { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .eligibility-plans .eligibility-plan-select { grid-column: 1 / -1; }
  .eligibility-breakdown { grid-template-columns: 1fr; gap: 16px; }
  .eligibility-breakdown > div { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; }
  .eligibility-breakdown strong { grid-column: 2; grid-row: 1 / 3; font-size: var(--lumo-font-size-xl); }
  .eligibility-breakdown p { grid-column: 1; }
  .eligibility-next { padding: 22px 18px; border-color: var(--lumo-transparent-color); border-bottom-color: var(--lumo-contrast-20pct); }
}


/* src/main/frontend/themes/hyenmin/compare.css */
.comparison-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: var(--lumo-space-m);
  display: flex;
  flex-direction: column;
  gap: var(--lumo-space-l);
}

.comparison-heading { display: flex; justify-content: space-between; align-items: center; gap: var(--lumo-space-m); }
.comparison-heading h1 { margin: 0; font-size: var(--lumo-font-size-xl); }
.comparison-heading button { border: none; background: var(--lumo-transparent-color); color: var(--lumo-secondary-text-color); cursor: pointer; }
.comparison-note { margin: 0; color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); line-height: 1.6; }
.comparison-empty { padding: var(--lumo-space-xl); text-align: center; }
.comparison-radar { display: flex; flex-direction: column; align-items: center; gap: var(--lumo-space-m); padding: var(--lumo-space-l); }
.comparison-radar h2 { margin: 0; font-size: var(--lumo-font-size-l); }
.comparison-table-wrap { overflow-x: auto; min-width: 0; }
.comparison-table { border-collapse: collapse; width: 100%; min-width: 860px; }
.comparison-table th, .comparison-table td { padding: var(--lumo-space-m); text-align: left; vertical-align: top; border-bottom: 1px solid var(--lumo-contrast-10pct); }
.comparison-table thead th { color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); white-space: nowrap; }
.comparison-table td { white-space: nowrap; }
.comparison-table small { display: block; margin-top: var(--lumo-space-xs); color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-xs); font-weight: 400; line-height: 1.5; }
.comparison-name { min-width: 210px; max-width: 290px; word-break: keep-all; overflow-wrap: anywhere; }
.comparison-name a { color: var(--lumo-body-text-color); text-decoration: none; }
.comparison-name a:hover { text-decoration: underline; }
.comparison-marker { display: inline-block; width: 10px; height: 10px; border-radius: var(--lumo-border-radius-s); margin-right: var(--lumo-space-xs); }
.comparison-name .comparison-detail-link { display: inline-block; margin-top: var(--lumo-space-s); color: var(--lumo-primary-text-color); font-size: var(--lumo-font-size-xs); font-weight: 400; }
.comparison-supply small { max-width: 180px; white-space: normal; }

@media (max-width: 720px) {
  .comparison-page { padding: var(--lumo-space-s); gap: var(--lumo-space-m); }
  .comparison-table-wrap { overflow: visible; border: none; box-shadow: var(--lumo-box-shadow-none); background: var(--lumo-transparent-color); }
  .comparison-table { display: block; min-width: 0; }
  .comparison-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .comparison-table tbody { display: grid; gap: var(--lumo-space-m); }
  .comparison-table tr { display: grid; border: 1px solid var(--lumo-contrast-10pct); border-radius: var(--lumo-border-radius-l); background: var(--lumo-base-color); }
  .comparison-table .comparison-name { display: block; min-width: 0; max-width: none; }
  .comparison-table td { display: grid; grid-template-columns: minmax(100px, 0.8fr) minmax(0, 1.2fr); gap: var(--lumo-space-xs) var(--lumo-space-m); white-space: normal; overflow-wrap: anywhere; }
  .comparison-table td::before { content: attr(data-label); color: var(--lumo-secondary-text-color); font-size: var(--lumo-font-size-s); }
  .comparison-table td:last-child { border-bottom: none; }
  .comparison-supply small { grid-column: 2; max-width: none; }
}


/* src/main/frontend/themes/hyenmin/announcement-image-position.css */
.image-position-previews{display:flex;flex-wrap:wrap;gap:var(--lumo-space-m)}
.image-position-previews figure{margin:0;max-width:100%}
.image-position-previews figcaption{margin-bottom:var(--lumo-space-xs);font-size:var(--lumo-font-size-s);color:var(--lumo-secondary-text-color)}
.image-position-card{width:340px;max-width:100%;height:120px;overflow:hidden;border-radius:var(--lumo-border-radius-m);background:var(--lumo-contrast-5pct)}
.image-position-card img{display:block;width:100%;height:100%;object-fit:cover}
.image-position-thumbnail{display:block;width:112px;height:84px;object-fit:cover;border-radius:var(--lumo-border-radius-m);background:var(--lumo-contrast-5pct)}
.image-position-editor input[type=range]{width:100%;padding:0;accent-color:var(--lumo-primary-color)}


/* src/main/frontend/themes/hyenmin/announcement-work.css */
.work-panel,.work-panel *{box-sizing:border-box}.work-panel{background:var(--hm-surface-0);border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-xxl);padding:26px;color:var(--hm-slate-800);display:flex;flex-direction:column;gap:20px;min-width:0;scroll-margin-top:80px}.work-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.work-panel h2{font-size:var(--lumo-font-size-xl);margin:8px 0;word-break:keep-all;overflow-wrap:anywhere}.work-panel p{font-size:var(--lumo-font-size-xs);line-height:1.7}.work-eyebrow{font-size:var(--lumo-font-size-xxs);color:var(--hm-blue-600);font-weight:700}.work-section{min-inline-size:0;margin:0;border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-xl);padding:20px;background:white;display:flex;flex-direction:column;gap:14px}.work-section legend{font-weight:700;font-size:var(--lumo-font-size-m)}.work-section h3,.work-section h4{margin:0}.work-panel label{display:flex;flex-direction:column;gap:7px;font-size:var(--lumo-font-size-xxs);min-width:0}.work-panel input,.work-panel select,.work-panel textarea{width:100%;min-width:0;font:inherit;background:var(--hm-surface-0);border:1px solid var(--hm-line-200);border-radius:var(--lumo-border-radius-m);padding:10px}.work-panel input[type=file]{height:auto}.work-panel textarea{resize:vertical}.work-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.work-material{display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-l);min-width:0}.work-material h3{font-size:var(--lumo-font-size-s)}.work-panel button{font:inherit;border:1px solid var(--hm-line-200);background:var(--hm-surface-0);color:var(--hm-slate-600);border-radius:var(--lumo-border-radius-m);padding:10px 14px;cursor:pointer;font-size:var(--lumo-font-size-xs)}.work-panel button:disabled{opacity:.5;cursor:default}.work-panel .work-primary{background:var(--lumo-action-background-color);color:var(--lumo-action-text-color);border-color:var(--lumo-control-border-color)}.work-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.work-panel a{font-size:var(--lumo-font-size-xxs);color:var(--hm-blue-600);overflow-wrap:anywhere}.work-panel small{font-size:var(--lumo-font-size-xxxs);color:var(--hm-slate-600);line-height:1.6}.work-error{background:var(--hm-surface-warm);color:var(--hm-warn-strong);padding:12px;border-radius:var(--lumo-border-radius-m)}.work-notice{background:var(--hm-surface-tint);border-radius:var(--lumo-border-radius-m);padding:12px;white-space:pre-wrap}.work-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.work-compare img{width:100%;max-height:320px;object-fit:contain;background:var(--hm-surface-tint);border-radius:var(--lumo-border-radius-l);margin:12px 0}.work-placeholder{padding:32px 16px;background:var(--hm-surface-tint);border-radius:var(--lumo-border-radius-l);color:var(--hm-slate-400)}.work-compare pre{max-height:300px;overflow:auto;font-size:var(--lumo-font-size-xxxs);white-space:pre-wrap;overflow-wrap:anywhere}.work-compare dd{margin:0 0 8px}.work-check{flex-direction:row!important;align-items:flex-start}.work-check input{width:18px;height:18px;flex-shrink:0}.work-panel :is(button,input,select,textarea,a):focus-visible{outline:3px solid var(--hm-blue-400);outline-offset:3px}.work-stage-tabs{display:flex;flex-wrap:wrap;gap:8px}.work-stage-tabs button{padding:9px 13px;border-radius:var(--lumo-border-radius-l);border:1px solid var(--hm-line-100);background:var(--hm-surface-0);color:var(--hm-slate-600);cursor:pointer;font:inherit;font-size:var(--lumo-font-size-xs)}.work-stage-tabs button[aria-pressed=true]{background:var(--hm-surface-tint);border-color:var(--hm-line-300);color:var(--hm-blue-800)}.work-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.work-badges span{font-size:var(--lumo-font-size-xxxs);border-radius:var(--lumo-border-radius-xs);background:var(--hm-surface-tint);color:var(--hm-slate-600);padding:3px 6px}.work-badges .missing{background:var(--hm-surface-warm);color:var(--hm-caution-text)}
.work-source-links{display:flex;flex-wrap:wrap;gap:10px}.work-source-links a{background:white;border:1px solid var(--hm-line-200);border-radius:var(--lumo-border-radius-m);padding:10px 14px;text-decoration:none;font-size:var(--lumo-font-size-xs)}.work-source-links span{font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-400)}.work-default-guide{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:var(--hm-surface-warm);padding:16px;border-radius:var(--lumo-border-radius-l);min-width:0}.work-default-guide strong{font-size:var(--lumo-font-size-s)}.work-default-guide p{margin:0}.work-default-guide details{width:100%;font-size:var(--lumo-font-size-xxs)}.work-default-guide pre{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:12px 0}.work-default-guide summary{cursor:pointer}
.work-image-preview{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0;background:var(--hm-surface-warm);border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-l);padding:10px}.work-image-preview img{display:block;width:100%;height:180px;object-fit:contain;background:var(--hm-surface-0);border-radius:var(--lumo-border-radius-s)}.work-image-preview figcaption{font-size:var(--lumo-font-size-xxxs);line-height:1.5;overflow-wrap:anywhere;color:var(--hm-slate-600)}.work-image-preview p{margin:0}.work-image-library summary{cursor:pointer;font-size:var(--lumo-font-size-xs);font-weight:600}.work-image-library{min-width:0}.work-image-library .work-material-grid{margin-top:12px}.work-panel summary:focus-visible{outline:3px solid var(--hm-blue-400);outline-offset:3px}
@media(max-width:850px){.work-material-grid{grid-template-columns:1fr}.work-panel{padding:16px}.work-section{padding:14px}}@media(max-width:600px){.work-compare{grid-template-columns:1fr}.work-panel-head{flex-wrap:wrap}}

.work-admin-filters{display:flex;flex-wrap:wrap;gap:12px 24px;padding:14px 16px;background:var(--hm-surface-warm);border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-l);}
.work-admin-filters label{display:flex;align-items:center;gap:8px;font-size:var(--lumo-font-size-s);}
.work-admin-filters input{accent-color:var(--hm-blue-600);}
.work-content-checks{margin-top:10px;padding:10px 12px;background:var(--hm-surface-0);border-radius:var(--lumo-border-radius-l);font-size:var(--lumo-font-size-xxs);line-height:1.6;min-width:230px;max-width:600px;overflow-wrap:anywhere;}
.work-content-checks details{margin-top:6px;}
.work-content-checks summary{cursor:pointer;color:var(--hm-blue-800);}
.work-content-checks ul{padding-left:18px;max-height:260px;overflow:auto;}
.work-content-note{font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-600);}
.work-preview p{margin:0}.work-preview button[aria-pressed=true]{background:var(--hm-surface-tint);border-color:var(--hm-blue-400);color:var(--hm-blue-800)}.work-preview-missing{color:var(--hm-warn-strong);background:var(--hm-surface-warm);border-radius:var(--lumo-border-radius-xs);padding:3px 6px;line-height:1.7}.work-preview-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--hm-surface-tint);border-radius:var(--lumo-border-radius-xl);padding:20px}.work-preview-hero img{width:35%;max-height:170px;object-fit:contain;border-radius:var(--lumo-border-radius-l)}.work-preview-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:0}.work-preview-facts dt{font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-400)}.work-preview-facts dd{margin:6px 0 0;font-size:var(--lumo-font-size-s)}.work-preview-table{overflow-x:auto}.work-preview-table table{min-width:600px;width:100%}.work-preview-table small{display:block;max-width:360px;overflow-wrap:anywhere}.work-preview select{height:auto;min-height:42px}.work-preview>small{line-height:1.6}@media(max-width:600px){.work-preview-hero{flex-direction:column;align-items:stretch}.work-preview-hero img{width:100%}}


/* src/main/frontend/themes/hyenmin/site-model.css */
.site-model{margin:20px 0;border:1px solid var(--hm-line-100);border-radius:var(--lumo-border-radius-xxl);overflow:hidden;background:var(--hm-surface-0);color:var(--hm-slate-800);min-width:0}.site-model header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px}.site-model header span{font-size:var(--lumo-font-size-xxxs);letter-spacing:.16em;color:var(--hm-blue-400)}.site-model h3{font-size:var(--lumo-font-size-l);margin:6px 0 0}.site-model header small{font-size:var(--lumo-font-size-xxxs);white-space:nowrap;background:var(--hm-surface-tint);border-radius:var(--lumo-border-radius-xxl);padding:7px 10px}.site-model-stage{position:relative;height:440px;overflow:hidden;touch-action:none}.site-model-stage canvas{display:block;width:100%;height:100%}.site-model-label{position:absolute;transform:translate(-50%,-100%);padding:4px 8px;border-radius:var(--lumo-border-radius-m);border:1px solid var(--hm-line-200);background:color-mix(in srgb, var(--hm-surface-0) 94.1%, transparent);color:var(--hm-slate-800);font-size:var(--lumo-font-size-xxs);font-weight:600;pointer-events:none;white-space:nowrap}.site-model-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;padding:14px 12px 4px}.site-model button{font:inherit!important;font-size:var(--lumo-font-size-xxs)!important;border:1px solid var(--hm-line-200);border-radius:var(--lumo-border-radius-l);padding:9px 12px;background:white;color:var(--hm-blue-800);cursor:pointer;min-height:38px}.site-model button:hover{background:var(--hm-surface-tint)}.site-model button:disabled{opacity:.45;cursor:default}.site-model-hint{text-align:center;font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-600);margin:8px 12px 17px}.site-model details{border-top:1px solid var(--hm-line-100);padding:16px 24px;font-size:var(--lumo-font-size-xxs);line-height:1.7}.site-model details p{white-space:pre-line}.site-model details button{display:block;margin-top:12px}.site-model summary{cursor:pointer}.site-model [role=alert]{padding:0 20px;color:var(--hm-status-fail)}.work-model-json{font-family:monospace!important;font-size:var(--lumo-font-size-xxs)!important;min-height:120px}.work-model-section{margin-top:20px;border-top:1px solid var(--hm-line-100);padding-top:18px}@media(max-width:600px){.site-model header{padding:16px;align-items:flex-start}.site-model h3{font-size:var(--lumo-font-size-m)}.site-model-stage{height:350px}.site-model details{padding:14px 16px}.site-model-label{font-size:var(--lumo-font-size-xxxs)}.site-model header small{font-size:var(--lumo-font-size-xxxs)}}
.site-model-view{position:relative}.site-model-compass{position:absolute;bottom:12px;right:12px;width:84px;height:84px;border:1px solid var(--hm-line-200);border-radius:50%;background:color-mix(in srgb, var(--hm-surface-0) 94.9%, transparent);pointer-events:none;box-shadow:var(--lumo-box-shadow-s)}.site-model-compass b{position:absolute;transform:translate(-50%,-50%);font-size:var(--lumo-font-size-xxxs);white-space:nowrap;color:var(--hm-slate-600)}.site-model-compass b[data-bearing="0"]{color:var(--hm-blue-800)}.site-model-compass i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-style:normal;color:var(--hm-line-300)}.site-model-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.site-model-leaders line{stroke:var(--hm-slate-400);stroke-width:1;stroke-dasharray:2 2}.site-model-label{font-size:var(--lumo-font-size-xs);font-weight:700;box-shadow:var(--lumo-box-shadow-s)}.site-model-label-facility{background:var(--hm-surface-tint);border-color:var(--hm-line-300);color:var(--hm-blue-800);font-size:var(--lumo-font-size-xxxs)}.site-model-key{border-top:1px solid var(--hm-line-100);padding:16px 22px;font-size:var(--lumo-font-size-xxs);line-height:1.7}.site-model-key p{margin:3px 0 8px}.site-model-key p strong{display:inline-block;min-width:65px}.site-model-nearby{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0}.site-model-nearby a{display:flex;flex-direction:column;border:1px solid var(--hm-line-200);border-radius:var(--lumo-border-radius-l);padding:10px;color:var(--hm-slate-800);text-decoration:none;background:white}.site-model-nearby b{color:var(--hm-blue-600);font-size:var(--lumo-font-size-xxs)}.site-model-key small{font-size:var(--lumo-font-size-xxxs);color:var(--hm-slate-400)}.announcement-location-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.announcement-location-switch{display:flex;gap:4px;padding:4px;background:var(--hm-surface-tint);border-radius:var(--lumo-border-radius-l)}.announcement-location .announcement-location-switch button{font-size:var(--lumo-font-size-xxs);min-height:38px;padding:8px 12px;border-color:transparent;white-space:nowrap}.announcement-location-switch button[aria-pressed=true]{background:var(--hm-surface-0);color:var(--hm-blue-800);box-shadow:var(--lumo-box-shadow-s);border-color:var(--hm-line-200)}.announcement-location>.site-model{margin:0;border:0;border-radius:0}.announcement-location .site-model header{padding:16px 24px}.announcement-location .site-model header small{font-size:var(--lumo-font-size-xxxs)}.announcement-location .site-model details a{display:inline;padding:0;border:0}.announcement-location-visual[hidden]{display:none}@media(max-width:640px){.site-model-key{padding:14px}.site-model-nearby{grid-template-columns:1fr}.site-model-nearby a{flex-direction:row;justify-content:space-between;gap:8px}.announcement-location-actions{width:100%;align-items:stretch}.announcement-location-switch{align-self:flex-start}.announcement-location-actions>a{align-self:flex-start}.site-model-label{font-size:var(--lumo-font-size-xxxs)}.site-model-label-facility{font-size:var(--lumo-font-size-xxxs)}.site-model-compass{transform:scale(.86);transform-origin:bottom right}}
.site-model-label-distance{display:block;margin-top:2px;font-size:var(--lumo-font-size-xxxs);font-weight:600;color:var(--hm-slate-600)}.site-model-nearby-metrics{display:flex;flex-direction:column;gap:2px}.site-model-nearby-metrics strong{font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-800)}.site-model-distance-note{display:block;margin-top:5px}
.site-model-label-context{background:color-mix(in srgb, var(--hm-surface-tint) 80%, transparent);border:1px dashed var(--hm-line-300);color:var(--hm-slate-600);font-size:var(--lumo-font-size-xxxs);font-weight:500;box-shadow:none}.site-model-label-context.is-emphasized{color:var(--hm-blue-800);background:color-mix(in srgb, var(--hm-surface-tint) 94.9%, transparent)}.site-model-orientation-note{font-size:var(--lumo-font-size-xxxs);color:var(--hm-slate-400);line-height:1.6;margin:8px 20px 14px}.site-model-context-info{padding:14px 20px;border-top:1px solid var(--hm-line-100);font-size:var(--lumo-font-size-xxs);color:var(--hm-slate-600);line-height:1.6}.site-model-context-info>span{margin-left:10px}.site-model-context-info>small{display:block;margin-top:8px;font-size:var(--lumo-font-size-xxxs)}.site-model-context-info details{padding:10px 0 0;border:0}.site-model-context-info button[aria-pressed=true]{background:var(--hm-line-100);border-color:var(--hm-line-300)}@media(max-width:600px){.site-model-context-info>span{display:block;margin:8px 0 0}}
.site-model-context-names{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.site-model-context-names span{padding:4px 8px;background:var(--hm-surface-tint);border:1px dashed var(--hm-line-300);border-radius:var(--lumo-border-radius-s);font-size:var(--lumo-font-size-xxxs)}


/* src/main/frontend/themes/hyenmin/mobile-artwork-placement.css */
/* Mobile carousel artwork review. Select by published image version, never by the announcement ID alone. */
@media (max-width: 760px) {
  /* 2026-11-06: 566, 564 reviewed at mobile card ratio; other new images remain below. */
  /* 527, 526, 554, 551, 550, 544, 525, 523, 552 */
  .home-mobile-card:has(img:is(
    [src*="v=7c981755-dedd-424d-9244-78d870b93e82"],
    [src*="v=8d1c3db1-ab39-4dda-85a0-6dded8d0f49a"],
    [src*="v=d59a74cd-a7c5-4941-9d89-2d926de1034b"],
    [src*="v=da122d12-9a7b-4c86-af1b-5b853e0dcee4"],
    [src*="v=36b12ee6-99cc-40a4-a022-13a339ced31e"],
    [src*="v=5a74fa45-6ffe-4acf-852a-a30a18d44409"],
    [src*="v=6d6f84c3-2159-4937-ad7f-77d9bf247031"],
    [src*="v=fbe99622-c548-4333-9778-6654bac84adc"],
    [src*="v=23424a4d-bef8-4262-9acc-b4a066473280"],
    [src*="v=c31040ca-b308-42c5-b856-2d4a54b1260b"],
    [src*="v=ee043b07-a9cf-4817-8b9f-f2b590a67f11"]
  )) { --carousel-info-row: 1; --carousel-info-edge: start; --carousel-info-margin: 10px; }
  /* 511, 553, 543, 518, 548 */
  .home-mobile-card:has(img:is(
    [src*="v=f7b82a2f-1f94-4a16-bbe3-ccb7b7374d76"],
    [src*="v=a614d533-0b85-4969-99ff-240d22f897be"],
    [src*="v=adc2a4b2-a74f-427e-8ff1-0cc01096265f"],
    [src*="v=17c420db-7921-4bbd-8633-a080da7e6d2f"],
    [src*="v=618374da-ae89-4363-ab1a-0787cc5cc6bb"]
  )) { --carousel-info-row: 1; --carousel-info-edge: end; --carousel-info-margin: 10px; }
}

html .analytics-settings { position: static; display: block; margin: 0 1.25rem 1.5rem auto; min-height: 44px; }
html .analytics-consent button:focus-visible, html .analytics-settings:focus-visible { outline: 2px solid var(--lumo-focus-color); outline-offset: 2px; }
