:root {
    color-scheme: light;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Yu Gothic", "YuGothic",
        "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    color: var(--admin-text);
    background: #fff;
    --admin-text: #383532;
    --admin-text-muted: #777068;
    --admin-primary: #666;
    --admin-border: #d8d8d8;
    --admin-border-light: #ececec;
    --admin-surface: #f5f5f5;
    --admin-content-box-padding: 14px 16px;
    --admin-data-cell-padding: 12px 14px;
}

* { box-sizing: border-box; }
html { overflow-y: scroll; }
body { margin: 0; background: #fff; font-size: 15px; line-height: 1.7; }
a:not(.admin-button) { color: #244b65; text-decoration: underline; text-underline-offset: 3px; transition: color .15s ease; }
a:not(.admin-button):hover,
a:not(.admin-button):focus-visible { color: #527b95; }
button,
input,
select { font: inherit; }
form { margin: 0; }

.admin-header {
    padding: 18px 0;
    background: var(--admin-primary);
    color: #fff;
}

.admin-header__inner,
.admin-main {
    width: 100%;
    margin-inline: auto;
    padding-inline: 16px;
}

.admin-auth-page .admin-header__inner,
.admin-auth-main {
    width: 100%;
    max-width: 480px;
    margin-inline: auto;
    padding-inline: 16px;
}

.admin-header__inner { position: relative; }
.admin-header h1 { margin: 0; font-size: 19px; font-weight: 600; line-height: 1.5; }
.admin-header h1 a { color: #fff; text-decoration: none; text-underline-offset: 3px; }
.admin-header h1 a:hover,
.admin-header h1 a:focus-visible { color: #fff; text-decoration: underline; }
.admin-header--with-navigation h1 { padding-right: 56px; }
.admin-menu-button { display: none; }
.js .admin-menu-button {
    position: absolute;
    top: -8px;
    right: 16px;
    display: block;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgb(255 255 255 / 55%);
    background: transparent;
    color: #fff;
    cursor: pointer;
}
.js .admin-menu-button:hover,
.js .admin-menu-button:focus-visible,
.js .admin-menu-button[aria-expanded="true"] {
    border-color: rgb(255 255 255 / 85%);
    background: rgb(255 255 255 / 10%);
}
.admin-menu-button__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.admin-menu-button__icon,
.admin-menu-button__icon span { position: absolute; display: block; }
.admin-menu-button__icon { inset: 0; }
.admin-menu-button__icon span {
    left: 11px;
    width: 20px;
    height: 1px;
    background: currentColor;
    transition: top .18s ease, transform .18s ease, opacity .18s ease;
}
.admin-menu-button__icon span:nth-child(1) { top: 13px; }
.admin-menu-button__icon span:nth-child(2) { top: 21px; }
.admin-menu-button__icon span:nth-child(3) { top: 29px; }
.admin-menu-button[aria-expanded="true"] .admin-menu-button__icon span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.admin-menu-button[aria-expanded="true"] .admin-menu-button__icon span:nth-child(2) { opacity: 0; }
.admin-menu-button[aria-expanded="true"] .admin-menu-button__icon span:nth-child(3) { top: 21px; transform: rotate(-45deg); }
.admin-header__nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 15px;
}
.js .admin-header__nav { display: none; }
.js .admin-header__nav.is-open { display: grid; }

.admin-header__nav a,
.admin-header__nav button {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: 1px solid rgb(255 255 255 / 38%);
    background: transparent;
    color: #fff;
    cursor: pointer;
    font-size: 13px;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    text-underline-offset: 3px;
    transition: background-color .15s ease, border-color .15s ease;
}

.admin-header__nav a[aria-current="page"],
.admin-header__nav a:hover,
.admin-header__nav a:focus-visible,
.admin-header__nav button:hover,
.admin-header__nav button:focus-visible {
    border-color: rgb(255 255 255 / 72%);
    background: rgb(255 255 255 / 12%);
    color: #fff;
    text-decoration: none;
}
.admin-main { margin-top: 28px; margin-bottom: 56px; }
.admin-panel { margin-top: 22px; }
.admin-panel:first-child { margin-top: 0; }
.admin-panel__heading { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.admin-panel h2,
.admin-panel__heading p { margin: 0; }
.admin-panel h2 { font-size: 20px; line-height: 1.5; }
.admin-count { color: var(--admin-text-muted); font-size: 13px; white-space: nowrap; }
.admin-panel__actions { margin-left: auto; }

.admin-alert {
    padding: var(--admin-content-box-padding);
    border: 1px solid #b8b8b8;
    background: var(--admin-surface);
    color: var(--admin-primary);
}

.admin-alert--success { margin: 0 0 22px; border-color: #b9cfbd; background: #f6faf7; color: #416a49; }
.admin-detail-layout > .admin-alert--success { margin-bottom: 22px; }
.admin-dashboard__menu { display: grid; gap: 10px; margin-top: 20px; }
.admin-dashboard__menu .admin-dashboard__link {
    display: flex;
    width: 100%;
    min-height: 52px;
    align-items: center;
    justify-content: flex-start;
    padding: var(--admin-content-box-padding);
    border: 1px solid var(--admin-border);
    background: #fff;
    color: #444;
    cursor: pointer;
    font-weight: 600;
    text-align: left;
    text-decoration: none;
    text-underline-offset: 3px;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.admin-dashboard__menu .admin-dashboard__link:hover,
.admin-dashboard__menu .admin-dashboard__link:focus-visible { border-color: #b8b8b8; background: var(--admin-surface); color: #444; text-decoration: none; }
.admin-list-actions { display: grid; gap: 10px; margin-top: 18px; }
.admin-filters { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.admin-filter {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    color: #5f5750;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

.admin-filter select { width: 100%; font-weight: 400; }
.admin-bulk-delete .admin-button { width: 100%; }
.admin-main select,
.admin-main input:not([type="hidden"]):not([type="checkbox"]),
.admin-auth-main input {
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #cfc7bd;
    border-radius: 0;
    background: #fff;
    color: var(--admin-text);
    font-size: 16px;
}

.admin-main select:focus,
.admin-main input:focus,
.admin-auth-main input:focus { border-color: #4b6d84; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible { outline: 3px solid rgb(75 109 132 / 25%); outline-offset: 2px; }

.admin-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 9px 16px;
    border: 1px solid var(--admin-primary);
    border-radius: 0;
    background: var(--admin-primary);
    color: #fff;
    cursor: pointer;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease;
}

.admin-button:not(:disabled):hover { border-color: #555; background: #555; }
.admin-button:disabled { cursor: not-allowed; opacity: .45; }
.admin-button--secondary { border-color: #aaa096; background: #fff; color: #49433d; }
.admin-button--secondary:not(:disabled):hover { border-color: #756d65; background: #f7f5f2; }
.admin-button--danger { border-color: #8d3f37; background: #8d3f37; }
.admin-button--danger:not(:disabled):hover { border-color: #73332d; background: #73332d; }

.admin-table-wrap { margin-top: 16px; }
.admin-data-table { display: block; width: 100%; border-collapse: separate; border-spacing: 0; }
.admin-data-table thead { display: none; }
.admin-data-table tbody { display: grid; gap: 12px; }
.admin-data-table tbody tr { border: 1px solid var(--admin-border); background: #fff; }
.admin-data-table td { min-width: 0; }
.admin-inquiry-table thead,
.admin-inquiry-table thead tr { display: block; }
.admin-inquiry-table tbody { margin-top: 12px; }
.admin-inquiry-table thead th { display: none; }
.admin-inquiry-table thead .admin-table-select {
    display: block;
    padding: 0;
    border: 1px solid var(--admin-border);
    background: var(--admin-surface);
    text-align: left;
}

.admin-table-select-all {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 9px;
    padding: var(--admin-data-cell-padding);
    color: #5f5750;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
}

.admin-table-select input,
.admin-table-select-all input {
    flex: 0 0 auto;
    width: 19px;
    height: 19px;
    margin: 0;
    accent-color: var(--admin-primary);
    cursor: pointer;
}

.admin-table-select-all input:disabled { cursor: not-allowed; }
.admin-inquiry-table tbody tr {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
}
.admin-inquiry-table td {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: 104px minmax(0, 1fr);
    padding: var(--admin-data-cell-padding);
    border-bottom: 1px solid var(--admin-border-light);
    font-size: 14px;
}
.admin-inquiry-table td::before,
.admin-login-history-table td::before {
    color: #5f5750;
    content: attr(data-label);
    font-size: 12px;
    font-weight: 600;
}
.admin-inquiry-table td.admin-table-select,
.admin-inquiry-table td.admin-inquiry-table__number,
.admin-inquiry-table td.admin-inquiry-table__status {
    display: flex;
    grid-row: 1;
    align-items: center;
    border-bottom: 1px solid var(--admin-border);
    background: var(--admin-surface);
}
.admin-inquiry-table td.admin-table-select { grid-column: 1; justify-content: center; padding-inline: 14px 6px; }
.admin-inquiry-table td.admin-inquiry-table__number { grid-column: 2; padding-inline: 6px; font-weight: 600; }
.admin-inquiry-table td.admin-inquiry-table__status { grid-column: 3; justify-content: flex-end; padding-inline: 6px 14px; }
.admin-inquiry-table td.admin-table-select::before,
.admin-inquiry-table td.admin-inquiry-table__number::before,
.admin-inquiry-table td.admin-inquiry-table__status::before { content: none; }
.admin-inquiry-table td:nth-child(7) { border-bottom: 0; }
.admin-inquiry-table__number a { color: #244b65; text-decoration: none; }
.admin-inquiry-table__number a:hover,
.admin-inquiry-table__number a:focus-visible { color: #244b65; text-decoration: underline; }
.admin-status {
    display: inline-flex;
    min-width: 52px;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    padding: 3px 8px;
    border-radius: 2px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}
.admin-status.is-incomplete { background: #8d3f37; }
.admin-status.is-complete { background: #416a49; }
.admin-table-ellipsis { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-login-history-table tbody tr { display: block; }
.admin-login-history-table td {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    padding: var(--admin-data-cell-padding);
    border-bottom: 1px solid var(--admin-border-light);
    overflow-wrap: anywhere;
    font-size: 14px;
}
.admin-login-history-table td:last-child { border-bottom: 0; }
.admin-alert + .admin-detail-layout { margin-top: 22px; }
.admin-detail-layout > p { margin: 0 0 18px; }
.admin-detail-layout > .admin-panel { margin-top: 0; }
a.admin-detail-link { color: #244b65; text-decoration: underline; text-underline-offset: 3px; transition: color .15s ease; }
a.admin-detail-link:hover,
a.admin-detail-link:focus-visible { color: #18384d; }
.admin-detail__heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; }
.admin-detail dl,
.admin-account-form dl,
.admin-account-confirm dl { margin: 20px 0 0; border: 1px solid var(--admin-border); }
.admin-detail dl > div,
.admin-account-form dl > div,
.admin-account-confirm dl > div { border-bottom: 1px solid var(--admin-border); }
.admin-detail dl > div:last-child,
.admin-account-form dl > div:last-child,
.admin-account-confirm dl > div:last-child { border-bottom: 0; }
.admin-detail dt,
.admin-detail dd,
.admin-account-form dt,
.admin-account-form dd,
.admin-account-confirm dt,
.admin-account-confirm dd { margin: 0; padding: var(--admin-data-cell-padding); overflow-wrap: anywhere; }
.admin-detail dt,
.admin-account-form dt,
.admin-account-confirm dt {
    border-bottom: 1px solid var(--admin-border);
    background: var(--admin-surface);
    color: #4f4944;
    font-size: 13px;
    font-weight: 600;
}

.admin-detail dd,
.admin-account-confirm dd { color: var(--admin-text); font-size: 15px; }
.admin-detail__editable dd { background: #fbfcfd; }
.admin-edit select { width: 100%; }
.admin-edit .admin-button,
.admin-account-form .admin-button { width: 100%; margin-top: 18px; }
.admin-text-button { padding: 0; border: 0; background: none; color: #873d34; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; transition: color .15s ease; }
.admin-text-button:hover,
.admin-text-button:focus-visible { color: #6f3029; }
.admin-confirm form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }

.admin-auth-main { margin-top: 38px; margin-bottom: 56px; }
.admin-auth-guide,
.admin-demo-notice {
    margin: 18px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--admin-border-light);
    color: #666;
    font-size: 13px;
    line-height: 1.7;
}
.admin-auth-guide p { margin: 0; }
.admin-auth-guide p + p { margin-top: 4px; }
.admin-field-error,
.admin-form-error { color: #873d34; font-size: 13px; line-height: 1.6; }
.admin-auth-panel { padding: 22px 18px 24px; border: 1px solid var(--admin-border); }
.admin-auth-panel h2 { margin: 0; font-size: 20px; }
.admin-auth-form { display: grid; gap: 8px; margin-top: 20px; }
.admin-auth-form label { margin-top: 7px; font-size: 13px; font-weight: 600; }
.admin-auth-form input { width: 100%; }
.admin-auth-form input[aria-invalid="true"],
.admin-account-form input[aria-invalid="true"] { border-color: #a66b63; }
.admin-auth-form .admin-field-error { margin: -2px 0 0; }
.admin-form-error { margin: 2px 0 0; }
.admin-auth-form .admin-button { width: 100%; margin-top: 14px; }
.admin-form-error:not([hidden]) + .admin-button { margin-top: 4px; }

.admin-account-form input { width: 100%; }
.admin-account-form .admin-field-error { margin: 7px 0 0; }
.admin-account-form .admin-field-help { margin: 7px 0 0; color: var(--admin-text-muted); font-size: 12px; }
.admin-account-form .admin-field-error:not([hidden]) + .admin-field-help { margin-top: 3px; }
.admin-confirm__notice {
    margin: 16px 0 0;
    padding: var(--admin-content-box-padding);
    border: 1px solid #d7c28e;
    background: #fffaf0;
    color: #59471f;
    line-height: 1.8;
    white-space: pre-line;
}

@media (min-width: 961px) {
    body:not(.admin-auth-page) { min-width: 1024px; }
    body:not(.admin-auth-page) a:not(.admin-button):not(.admin-detail-link):not(.admin-dashboard__link) { text-decoration: none; }
    body:not(.admin-auth-page) a:not(.admin-button):not(.admin-detail-link):not(.admin-dashboard__link):hover,
    body:not(.admin-auth-page) a:not(.admin-button):not(.admin-detail-link):not(.admin-dashboard__link):focus-visible { text-decoration: underline; }

    body:not(.admin-auth-page) .admin-header__inner,
    body:not(.admin-auth-page) .admin-main {
        width: 975px;
        max-width: none;
        padding-inline: 0;
    }

    body:not(.admin-auth-page) .admin-header { padding-block: 20px; }
    body:not(.admin-auth-page) .admin-header__inner { display: flex; align-items: center; gap: 24px; }
    body:not(.admin-auth-page) .admin-header h1 { flex: 0 0 auto; padding-right: 0; font-size: 21px; }
    .js .admin-menu-button { display: none; }
    .admin-header__nav,
    .js .admin-header__nav,
    .js .admin-header__nav.is-open {
        display: flex;
        flex: 0 0 auto;
        gap: 20px;
        margin: 0 0 0 auto;
    }

    body:not(.admin-auth-page) .admin-header a,
    body:not(.admin-auth-page) .admin-header button {
        color: #fff;
    }
    body:not(.admin-auth-page) .admin-header__nav a,
    body:not(.admin-auth-page) .admin-header__nav button {
        width: auto;
        min-height: 0;
        padding: 2px 0;
        border: 0;
        background: transparent;
        text-decoration: none;
    }
    body:not(.admin-auth-page) .admin-header a:hover,
    body:not(.admin-auth-page) .admin-header a:focus-visible,
    body:not(.admin-auth-page) .admin-header button:hover,
    body:not(.admin-auth-page) .admin-header button:focus-visible {
        color: #fff;
        text-decoration: underline;
    }
    body:not(.admin-auth-page) .admin-header__nav a:hover,
    body:not(.admin-auth-page) .admin-header__nav a:focus-visible,
    body:not(.admin-auth-page) .admin-header__nav button:hover,
    body:not(.admin-auth-page) .admin-header__nav button:focus-visible,
    body:not(.admin-auth-page) .admin-header__nav a[aria-current="page"] {
        border: 0;
        background: transparent;
    }
    body:not(.admin-auth-page) .admin-header__nav a[aria-current="page"] {
        font-weight: 400;
        text-decoration: underline;
    }
    .admin-main { margin-top: 36px; margin-bottom: 80px; }
    .admin-panel { margin-top: 24px; }
    .admin-alert--success { margin-bottom: 24px; }
    .admin-panel h2 { font-size: 21px; }
    .admin-inquiry-toolbar { display: flex; align-items: center; gap: 20px; }
    .admin-list-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: 0; margin-left: auto; }
    .admin-filters { display: flex; align-items: center; gap: 10px; }
    .admin-filter { display: flex; }
    .admin-filter select { width: 130px; }
    .admin-bulk-delete .admin-button { width: auto; }

    .admin-main select,
    .admin-main input:not([type="hidden"]):not([type="checkbox"]) {
        min-height: 42px;
        font-size: 14px;
    }

    .admin-table-wrap {
        margin-top: 22px;
        border: 1px solid var(--admin-border);
        background: #fff;
    }

    .admin-data-table {
        display: table;
        width: 100%;
        table-layout: fixed;
    }
    .admin-data-table thead { display: table-header-group; }
    .admin-data-table tbody { display: table-row-group; margin-top: 0; }
    .admin-data-table thead tr,
    .admin-data-table tbody tr {
        display: table-row;
        border: 0;
    }

    .admin-data-table th,
    .admin-inquiry-table thead th,
    .admin-data-table td {
        display: table-cell;
        padding: var(--admin-data-cell-padding);
        border: 0;
        border-bottom: 1px solid var(--admin-border-light);
        text-align: left;
        vertical-align: top;
    }

    .admin-data-table th {
        background: var(--admin-surface);
        color: #4f4944;
        font-size: 13px;
        font-weight: 600;
        white-space: nowrap;
    }

    .admin-data-table td { color: var(--admin-text); font-size: 14px; }
    .admin-data-table td::before { content: none; }
    .admin-inquiry-table thead .admin-table-select,
    .admin-inquiry-table td.admin-table-select,
    .admin-inquiry-table td.admin-inquiry-table__number,
    .admin-inquiry-table td.admin-inquiry-table__status {
        display: table-cell;
        padding: var(--admin-data-cell-padding);
    }
    .admin-inquiry-table thead .admin-table-select {
        border: 0;
        border-bottom: 1px solid var(--admin-border-light);
    }
    .admin-inquiry-table td:nth-child(7),
    .admin-login-history-table td:last-child { border-bottom: 1px solid var(--admin-border-light); }
    .admin-data-table tbody tr:last-child td { border-bottom: 0; }
    .admin-table-select { text-align: center !important; vertical-align: middle !important; }
    .admin-table-select-all { justify-content: center; min-height: 0; padding: 0; }
    .admin-table-select-all span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .admin-inquiry-table th:nth-child(1) { width: 48px; }
    .admin-inquiry-table th:nth-child(2) { width: 130px; }
    .admin-inquiry-table th:nth-child(3) { width: 83px; }
    .admin-inquiry-table th:nth-child(4) { width: 145px; }
    .admin-inquiry-table th:nth-child(5) { width: 190px; }
    .admin-inquiry-table th:nth-child(6) { width: 130px; }
    .admin-inquiry-table th:nth-child(7) { width: 247px; }
    .admin-inquiry-table td:nth-child(2),
    .admin-inquiry-table td:nth-child(3),
    .admin-inquiry-table td:nth-child(4) { white-space: nowrap; }
    .admin-inquiry-table td.admin-inquiry-table__number,
    .admin-inquiry-table td.admin-inquiry-table__status { background: #fff; }
    .admin-inquiry-table td.admin-inquiry-table__number { font-weight: 600; }
    .admin-inquiry-table td.admin-inquiry-table__status { text-align: left; }
    .admin-inquiry-table .admin-status { margin-left: 0; }
    .admin-login-history-table th:nth-child(1) { width: 30%; }
    .admin-login-history-table th:nth-child(2) { width: 70%; }
    .admin-login-history-table td:nth-child(2) { white-space: nowrap; }

    .admin-detail dl > div,
    .admin-account-form dl > div,
    .admin-account-confirm dl > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); }
    .admin-detail dt,
    .admin-account-form dt,
    .admin-account-confirm dt {
        border-right: 1px solid var(--admin-border);
        border-bottom: 0;
    }
    .admin-edit select { width: 240px; }
    .admin-edit .admin-button,
    .admin-account-form .admin-button { display: flex; width: 180px; margin-left: auto; }
    .admin-confirm:not(.admin-confirm--wide) { max-width: 720px; margin-inline: auto; }
    .admin-confirm--wide form { grid-template-columns: repeat(2, 180px); justify-content: space-between; }
}

[hidden] { display: none !important; }
