@charset "UTF-8";

@import url("./tokens.css?v=radix8");

@view-transition {
    navigation: auto;
}

/* ページ本体はアニメーションなし（ジャンク抑制のみ） */
::view-transition-old(root),
::view-transition-new(root) {
    animation: none;
}

/* ナビインジケーター：新しい位置でフェードイン */
::view-transition-old(nav-indicator) {
    animation: none;
    opacity: 0;
}

::view-transition-new(nav-indicator) {
    animation: 250ms ease-out both nav-indicator-appear;
}

::view-transition-group(nav-indicator) {
    animation-duration: 250ms;
    animation-timing-function: steps(1, start);
}

@keyframes nav-indicator-appear {
    from { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(nav-indicator),
    ::view-transition-new(nav-indicator) {
        animation: none;
        opacity: 1;
    }

    ::view-transition-group(nav-indicator) {
        animation-duration: 0ms;
    }
}

/* 状態管理用ユーティリティクラス */
.is-hidden {
    display: none !important;
}

.is-loading {
    cursor: wait;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

html {
    color: var(--text-primary);
    height: 100%;
    touch-action: manipulation;
}

a {
    -webkit-tap-highlight-color: transparent;
}

.ui-icon {
    display: inline-block;
    font-size: 24px;
    flex-shrink: 0;
}

@font-face {
    font-family: "EB Garamond Num";
    font-style: normal;
    font-weight: 400;
    src: url("/fonts/subset-EBGaramond-Regular.woff2") format("woff2");
    font-display: swap;
    /* 数字と記号（, ¥ \）だけをこのフォントで表示 */
    unicode-range:
        U+0030-0039,
        /* 0〜9 */
        U+002C,
        /* , */
        U+005C,
        /* バックスラッシュ（Windowsの¥対策） */
        U+00A5;
    /* ¥ */
}

@font-face {
    font-family: "Spectral Light AlphaNum";
    font-style: normal;
    font-weight: 300;
    src: url("/fonts/subset-Spectral-Light.woff2") format("woff2");
    font-display: swap;
    unicode-range:
        U+002D,
        /* - (ハイフン) */
        U+2013,
        /* – (エヌダッシュ) */
        U+0030-0039,
        /* 0–9 */
        U+0041-005A,
        /* A–Z */
        U+0061-007A;
    /* a–z */
}

/* ページ */
#app {
    --_page-width: min(100%, var(--page-max-width));
    --_footer-control-size: calc(24px + 1rem * 2 + var(--button-border-width) * 2);
    --_footer-offset: calc(16 / 16 * 1rem + var(--safe-bottom));
    --_footer-height: var(--_footer-control-size);
    --_background-color: var(--surface-page);
    --_content-color: var(--surface-content);
    --_border-color: var(--border-subtle);
    --_active-color: var(--surface-active);

    font-family: var(--font-family-body);
    background-color: var(--_background-color);
    width: 100%;
    min-height: 0;
    height: auto;
    margin: 0;
}

/* Layout must not depend on a reset stylesheet loaded by individual pages. */
#app,
#app *,
#app *::before,
#app *::after {
    box-sizing: border-box;
}

.ios-pwa #app {
    min-height: 100vh;
}

/* ボタン */

.button {
    display: flex;
    align-items: center;
    justify-content: center;
    appearance: none;
    -webkit-appearance: none;
    background-color: unset;
    font: inherit;
    cursor: pointer;
    text-underline-offset: calc(3 / 16 * 1rem);
}

.button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 var(--button-focus-ring-width) var(--color-selection-border);
}

html[data-theme-accent] .button:focus-visible {
    box-shadow: 0 0 0 var(--button-focus-ring-width) var(--color-selection-focus);
}

.button:disabled,
.button[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: var(--button-disabled-opacity);
}

/* Filled controls sit over page content; fading the whole button makes it look broken. */
.button[data-type="fill"]:disabled,
.button[data-type="fill"][aria-disabled="true"],
.button[data-type="outline"]:disabled,
.button[data-type="outline"][aria-disabled="true"],
.button[data-background]:disabled,
.button[data-background][aria-disabled="true"] {
    opacity: 1;
}

a:visited {
    color: var(--text-primary);
}

/* アイコンのみ */
.button[data-type="icon-only"] {
    position: relative;
    color: var(--text-primary);
    text-decoration: none;
    padding: var(--button-icon-padding);
    border-radius: var(--radius-lg);
    border: none;
    background-color: unset;
    transition: background-color var(--duration-normal) var(--ease-out);
}

.button[data-type="icon-only"]::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    left: 50%;
    transform: translateX(-50%);
    width: var(--button-target-size);
    height: var(--button-target-size);
}

.button[data-type="icon-only"][data-background="white"] {
    background-color: var(--_content-color);
}

#back-button::before {
    width: var(--button-back-target-size);
    height: var(--button-back-target-size);
}

.button[data-type="icon-only"] .button__icon {
    font-size: var(--button-icon-size);
}

.button[data-type="icon-only"]:active {
    background-color: color-mix(in srgb, var(--text-primary) 8%, transparent);
    transition: none;
}

.button[data-type="icon-only"]:disabled {
    color: color-mix(in srgb,
            var(--_content-color) 80%,
            var(--text-primary) 20%);
    cursor: not-allowed;
}

.button[aria-busy="true"] {
    pointer-events: none;
    cursor: wait;
    opacity: 1;
}

/* 塗りつぶし */
.button[data-type="fill"] {
    font-size: var(--button-font-size);
    font-weight: var(--button-font-weight);
    padding: var(--button-padding-block) var(--button-padding-inline);
    width: 100%;
    border-radius: var(--radius-lg);
    border: none;
}

.button[data-type="fill"][data-size="s"] {
    padding: var(--button-padding-block-small) var(--button-padding-inline);
    width: fit-content;
}

.button[data-type="outline"] {
    font-size: var(--button-font-size);
    font-weight: var(--button-font-weight);
    padding: var(--button-padding-block) var(--button-padding-inline);
    width: 100%;
    border-radius: var(--radius-lg);
    border: var(--button-border-width) solid var(--_border-color);
}

.button[data-type="list"] {
    justify-content: space-between;
    font-size: var(--button-font-size);
    font-weight: var(--button-font-weight-list);
    padding: var(--button-padding-block) var(--button-padding-inline);
    width: 100%;
    border: none;
    background-color: transparent;
}

.button[data-type="list"] .button__text {
    flex: 1;
}

.button[data-background="blue"] {
    color: var(--text-primary);
    background-color: var(--color-info-surface);
    border: var(--button-border-width) solid var(--color-info-border);
}

[theme="DARK"] .button[data-background="blue"] {
    background-color: var(--color-info-surface);
    border-color: var(--color-info-border);
}

.button[data-background="blue"]:active {
    background-color: var(--color-info-pressed);
}

[theme="DARK"] .button[data-background="blue"]:active {
    background-color: var(--color-info-pressed);
}

.button[data-background="white"] {
    color: var(--text-primary);
    background-color: var(--_content-color);
    transition: background-color var(--duration-normal) var(--ease-out), transform 350ms var(--ease-spring);
}

.button[data-background="white"]:active {
    background-color: color-mix(in srgb, var(--text-primary) 12%, var(--_content-color));
    transform: scale(var(--button-pressed-scale));
    transition: none;
}


.button[data-background="green"] {
    color: var(--text-primary);
    border: var(--button-border-width) solid var(--color-success-border);
    background-color: var(--color-success-surface);
}

[theme="DARK"] .button[data-background="green"] {
    border-color: var(--color-success-border);
    background-color: var(--color-success-surface);
}

.button[data-background="green"]:active {
    background-color: var(--color-success-pressed);
}

[theme="DARK"] .button[data-background="green"]:active {
    background-color: var(--color-success-pressed);
}

.button[data-type="fill"][data-size="s"][data-background="green"] {
    border: none;
    box-shadow: 0 0 0 var(--button-border-width) var(--color-success-ring);
}

.button[data-color="crimson"] {
    color: var(--color-alert);
}

.button[data-align="center"] {
    text-align: center;
}

/* ヘッダー */
.header {
    /*grid-row: 1 / 2;*/
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 1rem;
    width: var(--_page-width);
    min-height: calc(24px + (8 / 16 * 1rem) * 2 + (12 / 16 * 1rem) * 2);
    padding: calc(var(--safe-top) + 12 / 16 * 1rem) calc(16 / 16 * 1rem) calc(12 / 16 * 1rem) calc(16 / 16 * 1rem);
    background-color: var(--_background-color);
    background: linear-gradient(to bottom,
            var(--_background-color) calc(100% - 1rem),
            transparent);
}

.header__title {
    font-family: "Roboto", system-ui, sans-serif;
    font-size: calc(24 / 16 * 1rem);
    font-weight: 400;
    flex: 1;
    margin-block: 0;
    line-height: 1;
    user-select: none;
}

.header__title[data-serif="en"] {
    font-family: "Roboto", system-ui, sans-serif;
    font-size: calc(28 / 16 * 1rem);
    font-weight: 400;
    letter-spacing: -0.01em;
}

.header__title-sup {
    font-size: 0.5em;
}

.header__menu {
    display: flex;
    align-items: center;
    justify-content: end;
    gap: calc(8 / 16 * 1rem);
    flex: 1;
}

.header:has(.header__title) .header__menu {
    flex: unset;
}

/* メイン */
.main {
    --_header-height: calc(24px + (8 / 16 * 1rem) * 2 + (12 / 16 * 1rem) * 2);
    --_footer-button-height: calc(var(--_footer-control-size) + var(--space-5) + 16 / 16 * 1rem);
    display: flex;
    flex-direction: column;
    width: var(--_page-width);
    min-height: 0;
    height: auto;
    padding: 0 calc(16 / 16 * 1rem);
    padding-top: calc(var(--safe-top) + var(--_header-height));
    padding-bottom: calc(24 / 16 * 1rem);
    margin: 0 auto;
}

.main.is-loading {
    position: relative;
    pointer-events: none;
    user-select: none;
    cursor: wait;
    opacity: 0.72;
}

.main.is-loading::after {
    content: "";
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--_content-color) 45%, transparent);
    pointer-events: none;
}

#app:has(.footer) .main {
    padding-bottom: calc(var(--_footer-offset) + var(--_footer-height) + var(--space-5));
}

#app:has(.footer__button) .main {
    padding-bottom: calc(var(--_footer-button-height) + 20 / 16 * 1rem + var(--safe-bottom));
}

.ios-pwa .main {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.main[data-gap="s"] {
    gap: calc(12 / 16 * 1rem);
}

.main[data-gap="m"] {
    gap: calc(20 / 16 * 1rem);
}

.main[data-padding-top="s"] {
    padding-top: calc(var(--safe-top) + var(--_header-height) + 20 / 16 * 1rem);
}

.main[data-padding-top="m"] {
    padding-top: calc(var(--safe-top) + var(--_header-height) + 4rem);
}

#app:has(.footer) .main[data-padding-bottom="true"] {
    padding-bottom: calc(var(--_footer-offset) + var(--_footer-height) + 1.5rem);
}

.main__empty {
    color: var(--text-secondary);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: calc(8 / 16 * 1rem);
    width: 100%;
    padding: calc(40 / 16 * 1rem) calc(20 / 16 * 1rem);
    box-sizing: border-box;
}

.main__empty-icon {
    font-size: 5rem;
    line-height: 1;
    width: 1em;
    height: 1em;
    white-space: nowrap;
    overflow: hidden;
}

.main__empty-text {
    line-height: 1.3;
    margin: 0;
    text-align: center;
}

/* フッター */
.footer {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: var(--layer-floating);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(12 / 16 * 1rem);
    width: var(--_page-width);
    margin-inline: auto;
    padding: var(--space-5);
    padding-bottom: var(--_footer-offset);
}

.footer,
.footer__button {
    background: linear-gradient(
        to top,
        var(--_background-color) 0%,
        color-mix(in srgb, var(--_background-color) 82%, transparent) 32%,
        color-mix(in srgb, var(--_background-color) 42%, transparent) 62%,
        color-mix(in srgb, var(--_background-color) 12%, transparent) 84%,
        transparent 100%
    );
}

.footer__nav,
.button[data-type="FAB"]:not([data-background]),
.button[data-type="FAB"][data-background="white"] {
    background-color: var(--sand-1);
    border: var(--button-border-width) solid var(--palette-white);
}

[theme="DARK"] .footer__nav,
[theme="DARK"] .button[data-type="FAB"]:not([data-background]),
[theme="DARK"] .button[data-type="FAB"][data-background="white"] {
    background-color: var(--_content-color);
    border-color: var(--sand-4);
}

.footer__nav {
    display: flex;
    align-items: center;
    gap: calc(4 / 16 * 1rem);
    height: var(--_footer-control-size);
    padding: calc(4 / 16 * 1rem);
    border-radius: var(--radius-pill);
    box-shadow: var(--shadow-floating);
}

.button[data-type="nav"] {
    color: var(--text-primary);
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: 100%;
    padding: 0;
    border: none;
    background: transparent;
}

.button[data-type="nav"] .footer__icon {
    height: 100%;
    padding: 0 calc(20 / 16 * 1rem);
    border-radius: var(--radius-pill);
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 380px) {
    .button[data-type="nav"] .footer__icon {
        padding-inline: calc(12 / 16 * 1rem);
    }
}

.button[data-type="nav"][data-state="active"] .footer__icon,
.button[data-type="nav"][aria-current="page"] .footer__icon {
    background-color: var(--surface-nav-selected);
    view-transition-name: nav-indicator;
}

[theme="DARK"] .button[data-type="nav"] {
    color: var(--text-secondary);
}

[theme="DARK"] .button[data-type="nav"][data-state="active"],
[theme="DARK"] .button[data-type="nav"][aria-current="page"] {
    color: var(--text-primary);
}

.button[data-type="nav"]:active .footer__icon {
    background-color: color-mix(in srgb,
            var(--_background-color) 90%,
            var(--text-primary) 10%);
}

.button[data-type="nav"][data-state="active"]:active .footer__icon,
.button[data-type="nav"][aria-current="page"]:active .footer__icon {
    background-color: var(--sand-5);
}

[theme="DARK"] .button[data-type="nav"][data-state="active"]:active .footer__icon,
[theme="DARK"] .button[data-type="nav"][aria-current="page"]:active .footer__icon {
    background-color: var(--sand-7);
}

.button[data-type="FAB"] {
    flex-shrink: 0;
    box-shadow: var(--shadow-floating);
    width: var(--_footer-control-size);
    height: var(--_footer-control-size);
    padding: 0;
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.button[data-type="FAB"]:not([data-background]):active {
    background-color: color-mix(in srgb,
            var(--_background-color) 90%,
            var(--text-primary) 10%);
}

.footer .button__icon,
.footer__button .ui-icon {
    font-size: calc(28 / 16 * 1rem);
}

/* トースト */
.toast {
    position: fixed;
    top: calc(var(--safe-top) + 20 / 16 * 1rem);
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
    max-width: calc(var(--_page-width) - (20 / 16 * 1rem) * 2);
    display: flex;
    align-items: center;
    justify-content: start;
    gap: calc(4 / 16 * 1rem);
    padding: calc(8 / 16 * 1rem);
    padding-right: calc(12 / 16 * 1rem);
    color: var(--text-secondary);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--text-primary) 20%, transparent);
    background-color: color-mix(in srgb, var(--text-primary) 8%, transparent);
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.1);
    transition:
        transform 0.3s ease-in-out,
        visibility 0.2s ease-in-out;
    backdrop-filter: blur(calc(8 / 16 * 1rem));
}

.toast__icon.ui-icon {
    font-size: calc(20 / 16 * 1rem);
    width: calc(20 / 16 * 1rem);
    height: calc(20 / 16 * 1rem);
}

.toast__text {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
    flex: 1 1 auto;
}

.toast[data-state="visible"] {
    transform: translateX(-50%) translateY(0);
    visibility: visible;
}

.toast[data-state="hidden"] {
    transform: translateX(-50%) translateY(calc((100% + (20 / 16 * 1rem)) * -1));
    visibility: hidden;
}

/* ダイアログ */
dialog {
    position: fixed;
    /* Safariで表示に不具合があるので明示する */
    inset: 0;
    /* Safariで表示に不具合があるので明示する */
    overscroll-behavior-block: contain;
    transition-duration: 200ms;
    transition-property: display, overlay, opacity, transform;
    transition-timing-function: ease-out;
    transition-behavior: allow-discrete;
    border: unset;
    padding: unset;
    max-width: none;
    max-height: none;
    background-color: var(--_background-color);

    &::backdrop {
        background-color: oklch(from black l c h / 25%);
        transition-duration: inherit;
        transition-property: opacity;
        transition-timing-function: inherit;
        pointer-events: auto;
    }

    &:modal,
    &:modal::backdrop {
        @starting-style {
            opacity: 0;
        }
    }

    &:not(:modal),
    &:not(:modal)::backdrop {
        opacity: 0;
    }
}

[theme="DARK"] dialog {
    color: var(--text-primary);
    background-color: var(--surface-dialog);

    &::backdrop {
        background-color: oklch(from black l c h / 70%);
    }
}

dialog[open] {
    display: grid;
    grid-template-rows: auto;
    align-content: start;
    pointer-events: auto;
}

body[data-dialog-open] {
    overflow: hidden;
}

body[data-dialog-open] > :not(dialog[open]) {
    pointer-events: none;
}

body[data-dialog-open] > dialog[open],
body[data-dialog-open] > dialog[open] * {
    pointer-events: auto;
}

/* モーダル */
dialog[data-type="modal"] {
    --_modal-max-height: 90dvh;
    gap: 1rem;
    width: min(90%, 40rem);
    padding: calc(24 / 16 * 1rem);
    border-radius: var(--radius-md);
    max-height: var(--_modal-max-height);

    &::backdrop {
        pointer-events: auto;
    }

    &:modal,
    &:modal::backdrop {
        @starting-style {
            opacity: 0;
        }
    }
}

.modal-header {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-medium);
    display: flex;
    align-items: center;
    justify-content: start;
    gap: calc(8 / 16 * 1rem);
    height: fit-content;
    margin: 0;
}

.modal-header[autofocus]:focus {
    outline: none;
}

.modal-content {
    display: flex;
    flex-direction: column;
    gap: calc(12 / 16 * 1rem);
}

.modal-content .button[data-type="list"] {
    padding: 1rem calc(24 / 16 * 1rem);
}

@media screen and (max-width: 48rem) {
    dialog[data-type="modal"] {
        top: auto;
        bottom: 0;
        width: 100%;
        max-width: 100%;
        height: auto;
        border-bottom-left-radius: 0;
        border-bottom-right-radius: 0;

        &:modal,
        &:modal::backdrop {
            @starting-style {
                transform: translateY(50px);
            }
        }
    }

    .modal-header__button {
        display: none;
    }
}

/* アラート */
dialog[data-type="alert"] {
    width: min(90%, 28rem);
    padding: calc(24 / 16 * 1rem);
    border-radius: var(--radius-md);
    background-color: var(--surface-dialog);
}

[theme="DARK"] dialog[data-type="alert"] {
    background-color: var(--surface-dialog);
}

@media (prefers-reduced-motion: reduce) {
    dialog,
    dialog::backdrop,
    .toast {
        transition-duration: 0ms;
    }
}

dialog[data-type="alert"]::backdrop {
    background-color: rgba(222, 222, 222, 0.8);
}

[theme="DARK"] dialog[data-type="alert"]::backdrop {
    background-color: rgba(100, 100, 100, 0.8);
}

.dialog__header {
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: start;
    gap: calc(8 / 16 * 1rem);
}

.dialog__title {
    font-size: calc(20 / 16 * 1rem);
    font-weight: 500;
    flex: 1;
    margin: 0;
}

.dialog__content {
    display: flex;
    flex-direction: column;
    gap: calc(12 / 16 * 1rem);
    font-size: 1rem;
    line-height: 1.5;
    margin: calc(12 / 16 * 1rem) 0;
}

.dialog__footer {
    display: flex;
    justify-content: end;
    gap: calc(8 / 16 * 1rem);
    margin-top: 1rem;
}

.dialog__footer .button {
    width: fit-content;
    text-align: center;
}

.dialog__footer:has(> .button:first-child:nth-last-child(2) + .button) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dialog__footer > .button:only-child,
.dialog__footer:has(> .button:first-child:nth-last-child(2) + .button) > .button {
    width: 100%;
}

.form-notice {
    width: 100%;
    box-sizing: border-box;
    padding: calc(12 / 16 * 1rem) 1rem;
    border-radius: var(--radius-xs);
    background-color: var(--color-selection-surface);
    box-shadow: 0 0 0 1px var(--color-selection-border);
    line-height: 1.4;
}

.form-control-label {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    row-gap: calc(8 / 16 * 1rem);
    border: 0;
    padding: 0;
}

.form-control-label label,
.form-control-label > span {
    line-height: 1.2;
}

.form-control-label:has(.form-control-label__header) {
    row-gap: 0;
}

.form-control-label__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    font-size: 0.875rem;
    line-height: 1;
}

.date-filter-select-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin-right: -0.25rem;
}

.date-filter-select {
    padding: 0 calc(22 / 16 * 1rem) 0 calc(4 / 16 * 1rem);
    border-radius: calc(8 / 16 * 1rem);
    border: none;
    background-color: unset;
    color: var(--text-primary);
    font-size: 0.875rem;
    line-height: 1;
    text-align: right;
    cursor: pointer;
    min-height: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    direction: rtl;
    /* ブラウザごとのデフォルト矢印を非表示 */
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.date-filter-select:focus-visible {
    outline: unset;
}

.date-filter-select__icon {
    position: absolute;
    right: 0;
    pointer-events: none;
    font-size: calc(20 / 16 * 1rem);
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.input-text {
    width: 100%;
}

:where(input, textarea, select) {
    font: inherit;
    letter-spacing: inherit;
}

input[type="text"],
input[type="email"],
input[type="password"],
.event-create-form__budget input {
    line-height: 1;
    padding: 1rem;
    border-radius: var(--radius-xs);
    border: 1px solid var(--_border-color);
    width: 100%;
    box-sizing: border-box;
    background-color: var(--_content-color);
    color: var(--text-primary);
    -webkit-text-fill-color: var(--text-primary);
}

.event-create-form {
    gap: 1rem;
}

.event-create-form__optional,
.event-create-form__budget span {
    color: var(--text-secondary);
    font-size: 0.875rem;
}

.event-create-form__budget {
    position: relative;
}

.event-create-form__budget input {
    padding-inline-end: 2.75rem;
    text-align: end;
    appearance: textfield;
}

.event-create-form__budget input::-webkit-inner-spin-button,
.event-create-form__budget input::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

.event-create-form__budget span {
    position: absolute;
    inset-inline-end: 1rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.event-create-form .dialog__footer {
    margin-top: 0.25rem;
}

.event-create-form__error {
    color: var(--color-alert);
    margin: 0;
}

/* datalist入力で表示されるデフォルトのプルダウン矢印を非表示 */
input[list] {
    appearance: none;
    -webkit-appearance: none;
    background-image: none;
}

input[list]::-webkit-calendar-picker-indicator {
    display: none !important;
    -webkit-appearance: none;
}

[theme="DARK"] input[type="text"],
[theme="DARK"] input[type="email"],
[theme="DARK"] input[type="password"] {
    background-color: var(--_content-color);
}

input[type="text"][data-size="lg"] {
    font-size: calc(40 / 16 * 1rem);
    font-weight: 400;
    line-height: 1.3;
    border-radius: var(--radius-sm);
}

input[type="text"][aria-invalid="true"],
input[type="password"][aria-invalid="true"] {
    border-color: var(--color-alert);
}

.input-text__error-text {
    color: var(--color-alert);
    margin: 0.5rem 0 0;
    display: none;
}

.input-text:has(input[type="text"][aria-invalid="true"]) .input-text__error-text,
.input-text:has(input[type="password"][aria-invalid="true"]) .input-text__error-text {
    display: block;
}

input[type="text"][data-type="num"] {
    font-family: "Chiron GoRound TC", system-ui, sans-serif;
    font-weight: 500;
    text-align: right;
    padding: calc(8 / 16 * 1rem) 1rem;
}

.input-text:has(input[type="text"][data-type="num"]) {
    position: relative;
    font-family: "Chiron GoRound TC", system-ui, sans-serif;
    font-weight: 500;
}

.input-text:has(input[type="text"][data-type="num"])::after {
    content: "¥";
    position: absolute;
    left: 1rem;
    top: calc(8 / 16 * 1rem);
    bottom: 0;
    color: var(--sand-7);
    font-size: calc(40 / 16 * 1rem);
    line-height: 1.3;
}

[theme="DARK"] .input-text:has(input[type="text"][data-type="num"])::after {
    color: var(--sand-7);
}

textarea {
    line-height: 1.3;
    padding: 1rem;
    border-radius: var(--radius-xs);
    border: 1px solid var(--_border-color);
    width: 100%;
    box-sizing: border-box;
    resize: vertical;
    field-sizing: content;
    min-height: calc(1rem * 2 + 1.3rem * 3);
    background-color: var(--_content-color);
    color: var(--text-primary);
    -webkit-text-fill-color: var(--text-primary);
}

[theme="DARK"] textarea {
    background-color: var(--_content-color);
}

input[type="text"]:focus-visible,
input[type="password"]:focus-visible,
textarea:focus-visible {
    outline: unset;
    box-shadow: 0 0 0 0.15rem var(--color-selection-border);
    box-sizing: border-box;
}

[theme="DARK"] input[type="text"]:focus-visible,
[theme="DARK"] input[type="password"]:focus-visible,
[theme="DARK"] textarea:focus-visible {
    box-shadow: 0 0 0 0.15rem var(--color-selection-border);
}

::placeholder {
    color: var(--text-secondary);
    -webkit-text-fill-color: var(--text-secondary);
    opacity: 1;
}

input[type="text"]:disabled,
input[type="password"]:disabled,
textarea:disabled {
    color: var(--text-primary) !important;
    -webkit-text-fill-color: var(--text-primary) !important;
    background-color: var(--_content-color);
    border: unset;
    -webkit-opacity: 1 !important;
    opacity: 1 !important;
}

.form-container__body {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: calc(8 / 16 * 1rem);
}

/* 検索オーバーレイ */
.search-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: var(--_background-color);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}

.search-overlay[data-state="visible"] {
    opacity: 1;
    visibility: visible;
}

.search-overlay__header {
    width: 100%;
    max-width: var(--_page-width);
    padding: calc(var(--safe-top) + 12 / 16 * 1rem) calc(16 / 16 * 1rem) calc(8 / 16 * 1rem) calc(16 / 16 * 1rem);
    background-color: var(--_background-color);
}

/* 検索バー：戻る＋入力＋クリアを1本の全幅バーに */
.search-overlay__bar {
    display: flex;
    align-items: center;
    gap: calc(4 / 16 * 1rem);
    width: 100%;
    min-height: calc(48 / 16 * 1rem);
    padding: 0 calc(4 / 16 * 1rem);
    padding-right: calc(8 / 16 * 1rem);
    background-color: var(--_content-color);
    border-radius: var(--radius-lg);
    border: 1px solid var(--_border-color);
    transition: border-color 0.2s ease;
}

/* テキスト入力のフォーカス色に合わせる */
.search-overlay__bar:focus-within {
    box-shadow: 0 0 0 0.15rem var(--color-selection-border);
}

html[theme="DARK"] .search-overlay__bar:focus-within {
    box-shadow: 0 0 0 0.15rem var(--color-selection-border);
}

.search-overlay__input-wrapper {
    flex: 1;
    display: flex;
    align-items: center;
    gap: calc(6 / 16 * 1rem);
    min-height: calc(44 / 16 * 1rem);
    padding: 0;
    background: transparent;
}

.search-overlay__input-wrapper .ui-icon {
    color: var(--text-secondary);
    flex-shrink: 0;
}

.search-overlay__input-wrapper input {
    flex: 1;
    min-height: calc(38 / 16 * 1rem);
    padding: 0;
    border: none;
    background: transparent;
    font-size: 1rem;
    line-height: 1.2;
    outline: none;
    color: var(--text-primary);
    min-width: 0;
}

/* 検索バー内の input はラッパーでフォーカス表現するため、自前のフォーカス枠を消す（ダークモードのグローバル枠も打ち消す） */
.search-overlay__input-wrapper input:focus-visible {
    box-shadow: none;
}

[theme="DARK"] .search-overlay__input-wrapper input:focus-visible {
    box-shadow: none;
}

.search-overlay__input-wrapper input::placeholder {
    color: var(--text-secondary);
    -webkit-text-fill-color: var(--text-secondary);
}

/* 文字入力時のみ右側に表示する削除ボタン */
.search-overlay__clear {
    display: none;
    align-items: center;
    justify-content: center;
    padding: calc(4 / 16 * 1rem);
    margin: 0;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    border-radius: var(--radius-xs);
    cursor: pointer;
}

.search-overlay__input-wrapper:has(input:not(:placeholder-shown)) .search-overlay__clear {
    display: flex;
}

.search-overlay__clear:active {
    color: var(--text-primary);
}

@media (hover: hover) {
    .search-overlay__clear:hover {
        color: var(--text-primary);
    }
}

.search-overlay__content {
    width: 100%;
    max-width: var(--_page-width);
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.search-overlay__results {
    padding: 0 calc(16 / 16 * 1rem) calc(16 / 16 * 1rem);
}

.search-overlay__results .list {
    margin-top: calc(4 / 16 * 1rem);
}

.search-overlay__section-title {
    font-size: 0.875rem;
    color: var(--text-secondary);
    padding: calc(12 / 16 * 1rem) 0 calc(4 / 16 * 1rem);
}

/* 検索ヒット部分の strong ハイライト（トップ5と同じ琥珀系・視認性確保） */
.search-overlay__results .list__title-text strong,
.search-overlay__results .list__title-description strong {
    font-weight: 500;
    background-color: var(--amber-3);
}

/* ダークモード：検索ヒット（トップ5と同じ琥珀系で視認性確保） */
[theme="DARK"] .search-overlay__results .list__title-text strong,
[theme="DARK"] .search-overlay__results .list__title-description strong {
    background-color: var(--amber-3);
}

.search-overlay .main__empty {
    padding-top: calc(80 / 16 * 1rem);
}

.search-overlay .main__empty-icon {
    font-size: 4rem;
}
