/**
 * テーマ SVG アイコン（インライン currentColor）
 */
.aidunite-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    align-self: center;
    line-height: 1;
    vertical-align: middle;
    box-sizing: content-box;
}

.aidunite-icon__svg,
.aidunite-icon svg {
    display: block;
    flex-shrink: 0;
    pointer-events: none;
}

/* ========================================
   インライン（SVG + テキスト）整列
   ======================================== */
.aidunite-icon--inline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    align-self: center;
    line-height: 1;
    vertical-align: middle;
}

/* Material Symbols 系 viewBox の視覚中心をテキスト行高に合わせる */
.aidunite-icon--inline svg,
.aidunite-icon--inline .aidunite-icon__svg,
.aidunite-icon:not([class*="aidunite-icon--block"]) svg,
.aidunite-icon:not([class*="aidunite-icon--block"]) .aidunite-icon__svg {
    transform: translateY(0.04em);
}

/* 親要素：先頭アイコン + テキストを flex で中央揃え */
:is(
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .section-title,
    .subsection-title,
    .profile-section-title,
    .form-section-title,
    .dashboard-section > h2,
    .dashboard-section > h3,
    .dashboard-section > h4,
    p,
    li,
    label,
    .status-badge,
    .radio-option > span,
    .attendance-title,
    .attendance-place,
    .member-name,
    .match-date,
    .history-item-type,
    .login-error-message,
    .date-info,
    .form-help-item,
    .alert,
    .trial-badge,
    .mf-btn-submit__main,
    .ainy-dashboard-kpi-diff,
    .attendance-status-badge
):has(> .aidunite-icon:first-child),
:is(
    .btn,
    .login-submit-btn,
    .profile-save-btn,
    .profile-cancel-btn,
    .member-register-submit,
    .match-btn,
    .market-axis-quick-btn,
    .btn-small,
    .post-btn,
    .draft-btn,
    .tab-btn,
    .dashboard-btn
):has(> .aidunite-icon:first-child),
.btn:has(> .btn-icon:first-child),
.btn:has(> .aidunite-icon:first-child),
.btn:has(> .btn-nav-chevron),
.btn:has(> .btn__label) {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
}

:is(
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .section-title,
    .subsection-title,
    .profile-section-title,
    .form-section-title,
    .dashboard-section > h2,
    .dashboard-section > h3,
    .dashboard-section > h4,
    p,
    li,
    .login-error-message,
    .date-info,
    .alert
):has(> .aidunite-icon:first-child) {
    display: flex;
}

/* クラス未整備の span / a（アイコン + テキスト） */
span:has(> .aidunite-icon--inline:first-child),
a:has(> .aidunite-icon--inline:first-child) {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    line-height: 1.25;
}

/* ボタン内アイコンスロット */
.btn-icon,
.btn-nav-chevron,
.post-icon,
.draft-icon,
.trial-icon,
.member-register-submit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    align-self: center;
    line-height: 1;
}

.btn__label {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    line-height: 1;
    align-self: center;
}

.btn-icon .aidunite-icon,
.btn-nav-chevron.aidunite-icon,
.btn-nav-chevron,
.post-icon .aidunite-icon,
.draft-icon .aidunite-icon,
.trial-icon .aidunite-icon,
.member-register-submit-icon .aidunite-icon,
.btn-icon svg,
.btn-nav-chevron svg,
.btn-nav-chevron .aidunite-icon__svg,
.post-icon svg,
.draft-icon svg,
.trial-icon svg,
.member-register-submit-icon svg {
    display: block;
}

.aidunite-icon--danger,
.aidunite-icon.aidunite-icon--danger {
    color: var(--danger-color);
}

.aidunite-icon--success,
.aidunite-icon.aidunite-icon--success {
    color: var(--success-color);
}

.aidunite-icon--warning,
.aidunite-icon.aidunite-icon--warning {
    color: var(--warning-color, var(--danger-color));
}

.aidunite-icon--info,
.aidunite-icon.aidunite-icon--info {
    color: var(--info-color);
}

.aidunite-toast-notification:not([data-type="success"]) .aidunite-toast-icon .aidunite-icon__svg {
    width: 28px;
    height: 28px;
}

.card-icon .aidunite-icon__svg,
.card-icon.aidunite-icon .aidunite-icon__svg,
.card-icon .aidunite-icon svg,
.card-icon svg {
    display: block;
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.completion-icon .aidunite-icon__svg,
.error-icon .aidunite-icon__svg {
    width: 48px;
    height: 48px;
}

.calendar-nav-btn__chevron .aidunite-icon__svg,
.btn-nav-chevron .aidunite-icon__svg,
.btn-nav-chevron svg {
    display: block;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.ainy-notification-card__icon .aidunite-icon__svg {
    width: 22px;
    height: 22px;
}

.team-settings-dash__menu-icon .aidunite-icon__svg {
    width: 24px;
    height: 24px;
}

/* ========================================
   アイコン + テキスト（同一行）: 垂直中央揃え
   ======================================== */
.aidunite-icon-text-row,
.schedule-wizard-info-bar,
.form-help-item,
.toast-notification-content,
.ainy-notification-card__header,
.team-count-label {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm, 0.5rem);
}

.aidunite-icon-text-row__icon,
.schedule-wizard-info-bar__icon,
.form-help-item > .aidunite-icon,
.form-help-item > .aidunite-icon--inline,
.form-help-item > span:first-child,
.team-count-label > .team-icon,
.team-count-label > .aidunite-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
    align-self: center;
    margin-top: 0;
}

/* flex 行内の先頭アイコンスロット（__icon 命名） */
:is(
    .alert,
    .login-error-message,
    .date-info,
    .mypage-mission-hint,
    .dashboard-info-row
):has(> [class*="__icon"]:first-child) {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm, 0.5rem);
}

:is(
    .alert,
    .login-error-message,
    .date-info,
    .mypage-mission-hint,
    .dashboard-info-row
) > [class*="__icon"]:first-child {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 1;
    align-self: center;
    margin-top: 0;
}

/* ウィザードナビ（＜ 戻る / 次へ ＞）: 同一行・同高さ・シェブロンとラベル垂直中央 */
.unified-navigation {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.unified-navigation .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm, 0.5rem);
    line-height: 1;
    min-height: 48px;
    box-sizing: border-box;
    align-self: center;
}

.unified-navigation .btn .btn__label {
    display: inline-flex;
    align-items: center;
    line-height: 1;
    align-self: center;
}

.unified-navigation .btn .btn-nav-chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 0;
    align-self: center;
    margin: 0;
    padding: 0;
}

/* ========================================
   全ページ共通: SVG + テキスト/値（垂直中央）
   ======================================== */
:is(
    [class$="__icon"],
    [class*="__icon "],
    [class$="__meta"],
    [class*="__meta "],
    [class*="__leading"],
    [class*="__trailing"],
    .sqm-badge,
    .status-badge,
    .market-axis-badge,
    .badge,
    .trial-badge,
    .attendance-status-badge,
    .match-candidate-status-badge,
    .match-score-badge,
    .match-level,
    .item-type-badge,
    .priority-badge,
    .category-badge,
    .badge-recruiting,
    .badge-recruitment-completed,
    .btn-icon,
    .aidunite-toast-icon,
    .card-icon,
    .post-icon,
    .draft-icon,
    .trial-icon
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    gap: 0.35em;
    line-height: 1.25;
}

:is(
    [class$="__icon"],
    [class*="__icon "],
    [class$="__meta"],
    [class*="__meta "],
    [class*="__leading"],
    .sqm-badge,
    .status-badge,
    .market-axis-badge,
    .badge,
    .trial-badge,
    .attendance-status-badge,
    .match-candidate-status-badge,
    .match-score-badge,
    .match-level,
    .item-type-badge,
    .priority-badge,
    .category-badge,
    .badge-recruiting,
    .badge-recruitment-completed,
    .btn-icon,
    .aidunite-toast-icon
) > .aidunite-icon {
    align-self: center;
    line-height: 1;
}

.aidunite-icon--inline + :is(span, strong, em, small, label, a),
.aidunite-icon:not(.aidunite-icon--block) + :is(span, strong, em, small, label, a) {
    display: inline-flex;
    align-items: center;
    align-self: center;
    line-height: 1.25;
}

:is(
    .sqm-view-info,
    .alert,
    .form-help-item,
    .schedule-wizard-info-bar,
    .login-error-message,
    .date-info,
    .mypage-mission-hint,
    .dashboard-info-row,
    .toast-notification-content,
    .ainy-notification-card__header
):has(> .aidunite-icon:first-child) {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm, 0.5rem);
}

:is(
    .trial-badge,
    .mf-btn-submit__main,
    .ainy-dashboard-kpi-diff,
    .attendance-status-badge
):has(> .aidunite-icon:first-child) {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    line-height: 1.25;
}

:is(
    .sqm-view-info,
    .alert,
    .form-help-item,
    .schedule-wizard-info-bar,
    .login-error-message,
    .date-info,
    .mypage-mission-hint,
    .dashboard-info-row,
    .toast-notification-content,
    .ainy-notification-card__header,
    .trial-badge,
    .mf-btn-submit__main,
    .ainy-dashboard-kpi-diff,
    .attendance-status-badge
):has(> .aidunite-icon:first-child) > .aidunite-icon {
    align-self: center;
    flex-shrink: 0;
    line-height: 1;
}

:is(
    .sqm-view-info,
    .alert,
    .form-help-item,
    .login-error-message
):has(> .aidunite-icon:first-child) > :is(p, span, div):not(.aidunite-icon) {
    align-self: center;
    margin: 0;
    line-height: 1.4;
}

/* コンパクトバッジ（14〜16px アイコン）：視覚オフセットを抑えてラベルと揃える */
:is(
    .aidunite-icon--tier-badge,
    .status-badge .aidunite-icon--inline,
    .market-axis-badge .aidunite-icon--inline,
    .attendance-status-badge .aidunite-icon,
    .badge .aidunite-icon--inline,
    .match-candidate-status-badge .aidunite-icon--inline
) svg,
:is(
    .aidunite-icon--tier-badge,
    .status-badge .aidunite-icon--inline,
    .market-axis-badge .aidunite-icon--inline,
    .attendance-status-badge .aidunite-icon,
    .badge .aidunite-icon--inline,
    .match-candidate-status-badge .aidunite-icon--inline
) .aidunite-icon__svg {
    transform: none;
}
