/* 共通スタイル */
:root {
    --primary-color: #ef5a24;
    --secondary-color: #fff5f0;
    --danger-color: #dc3545;
    --white: #ffffff;
    --bg-color: #f5f5f5;
    --disabled-color: #e9ecef;
    --border-color: #ddd;
    --text-color: #333;
    --text-gray: #666;
    --text-xs: 0.625rem; /** 10px */
    --text-s: 0.75rem; /** 12px */
    --text-sm: 0.875rem; /** 14px */
    --text-base: 1rem; /** 16px */
    --text-ml: 1.125rem; /** 18px */
    --text-l: 1.25rem; /** 20px */
    --text-xl: 1.375rem; /** 22px */
    --text-2xl: 1.5rem; /** 24px */
    --input-border-radius: 4px;
    --border-radius: 8px;
    --shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.active {
    display: block!important;
}
.hidden {
    display: none!important;
}
html {
    font-size: 100%;
}
body {
    font-size: var(--text-base);
    font-family: 'Noto Sans JP', sans-serif;
    line-height: 1.5;
    background-color: var(--bg-color);
    color: var(--text-color);
}
@media (width <= 768px) {
    body {
        font-size: var(--text-sm);
    }
}
header {
    background-color: var(--white);
    padding: 10px 20px;
    box-shadow: var(--shadow);
    display: flex;
    justify-content: space-between;
    align-items: center;
    .back-to-top {
        font-weight: bold;
        border: 1px solid var(--primary-color);
        border-radius: var(--border-radius);
        padding: 8px 16px;
        color: var(--primary-color);
        display: flex;
        align-items: center;
    }
}
@media (width <= 768px) {
    header {
        .logo {
            width: 80px;
        }
        .back-to-top {
            padding: 6px 10px;
        }
    }
}
footer {
    margin-top: 80px;
    small {
        display: block;
        text-align: center;
        padding-block: 20px;
        color: var(--text-gray);
        font-size: var(--text-xs);
        border-top: 1px solid var(--border-color);
    }
}
@media (width <= 768px) {
    footer {
        margin-top: 60px;
    }
}
main {
    width: 100%;
    max-width: 1000px;
    margin: 20px auto 0;
    padding: 0 20px;
}
@media (width <= 768px) {
    main {
        margin-top: 16px;
        padding: 0 16px;
    }
}
.btn {
    font-weight: bold;
    padding: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
    background-color: var(--primary-color);
    color: var(--white);
    border: 1px solid var(--primary-color);
    border-radius: var(--border-radius);
    cursor: pointer;
    transition: opacity 0.3s, transform 0.3s;
    &.line {
        background-color: var(--white);
        color: var(--primary-color);
        border: 1px solid var(--primary-color);
        &.danger {
            background-color: var(--white);
            border-color: var(--danger-color);
            color: var(--danger-color);
        }
    }
    &.full {
        width: 100%;
    }
    &:hover {
        opacity: 0.8;
        transform: translateY(-4px);
    }
    &.is-submitting::before {
        content: '';
        width: 14px;
        height: 14px;
        border: 2px solid currentColor;
        border-right-color: transparent;
        border-radius: 50%;
        animation: button-spinner 0.8s linear infinite;
        flex-shrink: 0;
    }
    &:disabled,
    &.line:disabled,
    &.danger:disabled {
        background-color: var(--disabled-color);
        border-color: var(--disabled-color);
        color: var(--white);
        cursor: not-allowed;
        opacity: 1;
        transform: none;
    }
    &.danger {
        width: 100%;
        background-color: var(--danger-color);
        border-color: var(--danger-color);
        color: var(--white);
    }
}
@keyframes button-spinner {
    to {
        transform: rotate(360deg);
    }
}
@media (width <= 768px) {
    .btn {
        padding: 10px 16px;
    }
}
.btn-group {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 20px;
}
@media (width <= 768px) {
    .btn-group {
        gap: 8px;
        margin-top: 16px;
    }
}
.danger-text {
    color: var(--danger-color);
    font-weight: bold;
}
.form-radio-group {
    label {
        display: inline-block;
        font-weight: bold;
        margin-bottom: 4px;
    }
    .label-group {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 16px; 
        label {
            margin-bottom: 0;
            input {
                margin: 0;
            }
        }
    }
    label:has(input) {
        display: inline;
        font-weight: normal;
    }
    input {
        & + input {
            margin-left: 20px;
        }
    }
    & + .form-group, & + .form-radio-group {
        margin-top: 20px;
    }
}
@media (width <= 768px) {
    .form-radio-group {
        & + .form-group, & + .form-radio-group {
            margin-top: 16px;
        }
    }
}
.form-group {
    label {
        display: inline-block;
        font-weight: bold;
        margin-bottom: 4px;
    }
    input, select, textarea {
        width: 100%;
        padding: 8px;
        border: 1px solid var(--border-color);
        border-radius: var(--input-border-radius);
    }
    textarea {
        resize: none;
    }
    & + .form-group, & + .form-radio-group {
        margin-top: 20px;
    }
}
@media (width <= 768px) {
    .form-group {
        & + .form-group, & + .form-radio-group {
            margin-top: 16px;
        }
    }
}
.error-messages {
    margin-block: 20px;
    li {
        color: var(--danger-color);
        text-align: center;
        & + li {
            margin-top: 4px;
        }
    }
}
@media (width <= 768px) {
    .error-messages {
        margin-block: 16px;
    }
}
.validation-message {
    color: var(--danger-color);
    font-size: var(--text-sm);
    margin-top: 4px;
}
.description {
    font-size: var(--text-sm);
    color: var(--text-gray);
    margin-bottom: 32px;
}
@media (width <= 768px) {
    .description {
        font-size: var(--text-sm);
        margin-bottom: 24px;
    }
}
.required-mark {
    color: var(--danger-color);
    font-weight: bold;
    margin-left: 4px;
}
.gray-area {
    background-color: var(--bg-color);
    padding: 20px 16px;
    border-radius: 8px;
    border: 1px solid #eee;
    margin-top: 20px;
    h3 {
        font-weight: bold;
        color: var(--primary-color);
        border-bottom: 1px dashed #ddd;
        padding-bottom: 16px;
        margin-bottom: 20px;
    }
    & + .form-group {
        margin-top: 20px;
    }
}
@media (width <= 768px) {
    .gray-area {
        margin-top: 16px;
        h3 {
            margin-bottom: 16px;
        }
        & + .form-group {
            margin-top: 16px;
        }
    }
}
input[type=file] {
    cursor: pointer;
    background-color: var(--white);
}
#modal {
    padding: 40px 20px;
    border: none;
    border-radius: var(--input-border-radius);
    max-width: 500px;
    width: calc(100% - 32px);
    text-align: center;
    p {
        margin-bottom: 32px;
    }
    .btn {
        padding: 16px 24px;
    }
}
@media (width <= 768px) {
    #modal {
    padding: 24px 16px;
    p {
        margin-bottom: 20px;
    }
    .btn {
        padding: 10px 20px;
    }
}
}
.tooltip-container {
    position: relative;
    display: inline-block;
    cursor: pointer;
    color: #007bff;
    font-size: var(--text-sm);
    text-decoration: underline;
    margin-left: 10px;
    &:hover .tooltip-text {
        visibility: visible;
        opacity: 1;
    }
    .tooltip-text {
        visibility: hidden;
        width: 240px;
        background-color: var(--text-color);
        color: #fff;
        border-radius: var(--border-radius);
        padding: 10px;
        position: absolute;
        z-index: 1000;
        inset: auto auto 125% 50%;
        margin-left: -120px;
        opacity: 0;
        transition: opacity 0.3s;
        font-size: var(--text-sm);
        box-shadow: var(--shadow);
        &::after {
            content: "";
            position: absolute;
            inset: 100% auto auto 50%;
            margin-left: -6px;
            border-width: 6px;
            border-style: solid;
            border-color: var(--text-color) transparent transparent transparent;
        }
    }
}
@media (width <= 768px) {
    .tooltip-container {
        font-size: var(--text-s);
        .tooltip-text {
            font-size: var(--text-s);
        }
    }
}
.back-link {
    text-align: center;
    margin-top: 20px;
    a {
        color: var(--text-gray);
    }
}
@media (width <= 768px) {
    .back-link {
        margin-top: 16px;
    }
}
.headline {
    position: relative;
    font-size: var(--text-ml);
    font-weight: bold;
    border-left: 4px solid var(--primary-color);
    background-color: var(--white);
    padding: 16px 12px;
    margin-bottom: 20px;
    .create-btn {
        position: absolute;
        inset: 50% 12px auto auto;
        transform: translateY(-50%);
        font-size: var(--text-sm);
        font-weight: bold;
        text-align: center;
        padding: 8px 16px;
        color: var(--primary-color);
        border: 1px solid var(--primary-color);
        border-radius: var(--border-radius);
        transition: all 0.3s;
        &:hover {
            opacity: 0.8;
            transform: translateY(calc(-50% - 4px));
        }
    }
}
@media (width <= 768px) {
    .headline {
        font-size: var(--text-base);
        margin-bottom: 16px;
        .create-btn {
            font-size: var(--text-sm);
            padding: 6px 10px;
        }
    }
}
.pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 20px;
    a {
        display: grid;
        place-items: center;
        background-color: var(--white);
        border: 1px solid var(--border-color);
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        color: var(--text-gray);
        padding: 12px 8px;
        min-width: 50px;
    }
    .current {
        display: grid;
        place-items: center;
        background-color: var(--primary-color);
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        color: var(--white);
        border: 1px solid var(--primary-color);
        padding: 12px 8px;
        min-width: 50px;
    }
}
@media (width <= 768px) {
    .pagination {
        margin-top: 16px;
        a, .current {
            padding: 10px 6px;
            min-width: 42px;
        }
    }
}
.mask-toggle-container {
    position: relative;
    input {
        padding-right: 36px;
    }
    #password-mask-toggle,
    #current-password-mask-toggle,
    #password-confirm-mask-toggle {
        position: absolute;
        top: 50%;
        right: 8px;
        transform: translateY(-50%);
        cursor: pointer;
        /* 切り替え時にアイコンがずれるため、微調整 */
        &:has(.fa-eye) {
            right: 7px;
        }
        .fa-eye, .fa-eye-slash {
            width: 20px;
        }
    }
}
/* ログイン画面 */
.login-block {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
    gap: 16px;
    .signup {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 32px;
        background-color: var(--secondary-color);
        padding: 20px;
        border: 2px solid var(--primary-color);
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        .signup_bar {
            width: 100%;
            font-weight: bold;
            background-color: var(--primary-color);
            color: var(--white);
            padding: 10px;
            text-align: center;
        }
        .signup-subtitle {
            font-weight: bold;
            color: var(--primary-color);
        }
        .signup-list {
            display: flex;
            flex-direction: column;
            gap: 16px;
            li {
                position: relative;
                padding-left: 20px;
                font-weight: 500;
                &::before {
                    content: '\f00c';
                    font-family: "Font Awesome 6 Free";
                    font-weight: 900;
                    color: var(--primary-color);
                    position: absolute;
                    inset: 2px auto auto 0;
                }
            }
        }
    }
    .login-separator {
        display: none;
        align-items: center;
        text-align: center;
        margin: 20px 0;
        color: var(--text-gray);
        font-size: var(--text-sm);
        &::before {
            margin-right: 10px;
        }
        &::after {
            margin-left: 10px;
        }
        &::before, &::after {
            content: '';
            flex: 1;
            border-bottom: 1px solid #ccc;
        }
    }
    .signin {
        background-color: var(--white);
        padding: 40px 20px;
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        .signin-title {
            font-weight: bold;
            text-align: center;
        }
        .signin-form {
            margin-top: 40px;
            .btn {
                margin-top: 20px;
            }
        }
        .password-reset-link {
            margin-top: 20px;
            text-align: center;
            a {
                font-size: var(--text-sm);
                text-decoration: underline;
                color: var(--text-gray);
            }
        }
    }
}
@media (width <= 768px) {
    .login-block {
        grid-template-columns: 1fr;
        .login-separator {
            display: flex;
            margin: 10px 0;
        }
        .signup {
            gap: 24px;
            padding: 16px;
            .signup-list {
                gap: 8px;
            }
        }
        .signin {
            padding: 24px 16px;
            .signin-form {
                margin-top: 24px;
                .btn {
                    margin-top: 16px;
                }
            }
        }
    }
}

/* アカウント登録画面 */
.signup-form {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    margin-bottom: 20px;
    .postal-code-group {
        display: flex;
        gap: 8px;
        .btn {
            padding: 10px;
            font-size: var(--text-sm);
            margin-top: 0;
            flex-shrink: 0;
        }
        .p-postal-code {
            max-width: 300px;
            flex-grow: 1;
        }
    }
    #id_order_product_types {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        label {
            display: flex;
            align-items: center;
            font-weight: normal;
            cursor: pointer;
            margin-bottom: 0;
        }
        input {
            width: 16px;
            margin-left: 0;
        }
    }
    #field-product-types,
    #field-org-name,
    #field-corp {
        margin-top: 20px;
    }
    .btn {
        margin-top: 20px;
    }
}
.agree-block {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
    .agree-content {
        display: flex;
        gap: 8px;
        align-items: center;
    }
    .privacy-policy-text {
        flex: 1;
        a {
            color: var(--primary-color);
            text-decoration: underline;
        }
    }
    #id_privacy_policy_agreed {
        width: 20px;
        height: 20px;
    }
}
@media (width <= 768px) {
    .signup-form {
        padding: 24px 16px;
        margin-bottom: 16px;
        .postal-code-group {
            .btn {
                padding: 8px;
                font-size: var(--text-sm);
            }
        }
        #id_order_product_types {
            grid-template-columns: 1fr;
            gap: 8px;
        }
        #field-product-types,
        #field-org-name,
        #field-corp {
            margin-top: 16px;
        }
    }
    .agree-block {
        margin-bottom: 16px;
        .agree-content {
            gap: 4px;
        }
    }
}

/* パスワードリセット or 変更画面 */
.password-reset-form,
.password-change-form {
    background-color: var(--white);
    padding: 40px 20px;
    margin-bottom: 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    .password-reset-guide,
    .password-change-guide {
        background-color: var(--secondary-color);
        padding: 20px;
        border: 2px solid var(--primary-color);
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        margin-bottom: 40px;
        h3 {
            font-weight: bold;
            color: var(--primary-color);
        }
        ul {
            margin-top: 10px;
        }
    }
    .btn {
        margin-top: 20px;
    }
}
@media (width <= 768px) {
    .password-reset-form,
    .password-change-form {
        padding: 24px 16px;
        margin-bottom: 16px;
        .password-reset-guide,
        .password-change-guide {
            padding: 16px;
            margin-bottom: 24px;
        }
    }
}

/* トップページ */
.top-page {
    .user-info-block {
        background-color: var(--white);
        padding: 20px;
        margin-bottom: 20px;
        border-radius: var(--border-radius);
        box-shadow: var(--shadow);
        .user-name {
            overflow-wrap: anywhere;
            font-weight: bold;
        }
    }
    .vehicle-block {
        margin-bottom: 20px;
        ul {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 16px;
            .vehicle-item {
                background-color: var(--white);
                border-radius: var(--border-radius);
                box-shadow: var(--shadow);
                transition: all 0.3s;
                &:hover {
                    transform: translateY(-4px);
                    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
                }
                a {
                    display: grid;
                    grid-template-rows: auto 1fr;
                    height: 100%;
                }
                .img {
                    width: 100%;
                    height: 180px;
                    object-fit: cover;
                    border-radius: var(--border-radius) var(--border-radius) 0 0;
                }
                .contents {
                    display: flex;
                    flex-direction: column;
                    padding: 16px;
                    .name {
                        overflow-wrap: anywhere;
                        font-weight: bold;
                    }
                    .info {
                        font-size: var(--text-sm);
                        color: var(--text-gray);
                        margin-top: 20px;
                        margin-bottom: 6px;
                    }
                    .inspection {
                        display: inline-flex;
                        align-items: baseline;
                        align-self: flex-start;
                        gap: 4px;
                        font-size: var(--text-sm);
                        padding: 2px 6px;
                        color: var(--primary-color);
                        border: 1px solid var(--primary-color);
                        border-radius: var(--input-border-radius);
                        margin-top: auto;
                    }
                    .no-inspection {
                        font-size: var(--text-sm);
                        color: #ccc;
                        padding: 2px 0;
                        border: 1px solid transparent;
                        margin-top: auto;
                    }
                }
            }
        }
        .all-vehicles {
            text-align: right;
            margin-block: 20px;
            a {
                display: inline-block;
                font-size: var(--text-sm);
                color: var(--primary-color);
            }
        }
        .no-vehicles {
            padding-bottom: 20px;
        }
    }
    .mypage-block {
        margin-bottom: 20px;
        ul {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 16px;
            .mypage-item {
                a {
                    display: flex;
                    flex-direction: column;
                    align-items: center;
                    gap: 16px;
                    background-color: var(--white);
                    padding: 20px;
                    border-radius: var(--border-radius);
                    border-bottom: 3px solid transparent;
                    box-shadow: var(--shadow);
                    transition: all 0.3s;
                    i {
                        font-size: var(--text-2xl);
                        color: var(--primary-color);
                    }
                    p {
                        font-weight: bold;
                        text-align: center;
                    }
                    &:hover {
                        border-bottom-color: var(--primary-color);
                        transform: translateY(-4px);
                    }
                }
            }
        }
    }
    .recommend-block {
        margin-bottom: 20px;
        ul {
            display: grid;
            gap: 16px;
            .recommend-item {
                a {
                    display: flex;
                    justify-content: space-between;
                    align-items: center;
                    gap: 16px;
                    background-color: var(--white);
                    padding: 20px;
                    border-radius: var(--border-radius);
                    box-shadow: var(--shadow);
                    .contents {
                        h3 {
                            font-weight: bold;
                        }
                        p {
                            font-size: var(--text-sm);
                            color: var(--text-gray);
                            margin-top: 20px;
                        }
                    }
                    i {
                        color: var(--primary-color);
                    }
                }
            }
        }
    }
}
@media (width <= 768px) {
    .top-page {
        margin-bottom: 16px;
        .user-info-block {
            margin-bottom: 16px;
        }
        .vehicle-block {
            margin-bottom: 16px;
            ul {
                grid-template-columns: 1fr;
                gap: 8px;
                .vehicle-item {
                    .contents {
                        padding: 12px;
                        .info {
                            margin-top: 16px;
                        }
                    }
                }
            }
            .all-vehicles {
                a {
                    font-size: var(--text-sm);
                }
            }
        }
        .mypage-block {
            margin-bottom: 16px;
            ul {
                gap: 8px;
                .mypage-item {
                    a {
                        padding: 20px 10px;
                    }
                }
            }
        }
        .recommend-block {
            margin-bottom: 16px;
            ul {
                gap: 8px;
            }
        }
    }
}

/* プロフィール詳細 */
.profile-block {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    dl {
        & + dl {
            margin-top: 20px;
        }
        dt {
            color: var(--text-gray);
            font-size: var(--text-sm);
        }
        dd {
            overflow-wrap: anywhere;
            margin-top: 6px;
        }
    }
}
@media (width <= 768px) {
    .profile-block {
        padding: 24px 16px;
        dl {
            & + dl {
                margin-top: 16px;
            }
        }
    }
}

/* プロフィール編集 */
.profile-edit-form {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    margin-bottom: 20px;
    .postal-code-group {
        display: flex;
        gap: 8px;
        .btn {
            padding: 10px;
            font-size: var(--text-sm);
            margin-top: 0;
            flex-shrink: 0;
        }
        .p-postal-code {
            max-width: 300px;
            flex-grow: 1;
        }
    }
    #id_order_product_types {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        label {
            display: flex;
            align-items: center;
            font-weight: normal;
            cursor: pointer;
            margin-bottom: 0;
        }
        input {
            width: 16px;
            margin-left: 0;
        }
    }
    #field-product-types,
    #field-org-name,
    #field-corp {
        margin-top: 20px;
    }
    .btn {
        margin-top: 20px;
    }
}
@media (width <= 768px) {
    .profile-edit-form {
        padding: 24px 16px;
        margin-bottom: 16px;
        .postal-code-group {
            .btn {
                padding: 8px;
                font-size: var(--text-sm);
            }
        }
        #id_order_product_types {
            grid-template-columns: 1fr;
            gap: 8px;
        }
        #field-product-types,
        #field-org-name,
        #field-corp {
            margin-top: 16px;
        }
    }
}

/* 車両一覧 */
.vehicle-list-block {
    margin-bottom: 20px;
    ul {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
        .vehicle-item {
            background-color: var(--white);
            border-radius: var(--border-radius);
            box-shadow: var(--shadow);
            transition: all 0.3s;
            &:hover {
                transform: translateY(-4px);
                box-shadow: 0 4px 8px rgba(0,0,0,0.15);
            }
            a {
                display: grid;
                grid-template-rows: auto 1fr;
                height: 100%;
            }
            .img {
                width: 100%;
                height: 180px;
                object-fit: cover;
                border-radius: var(--border-radius) var(--border-radius) 0 0;
            }
            .contents {
                display: flex;
                flex-direction: column;
                padding: 16px;
                .name {
                    overflow-wrap: anywhere;
                    font-weight: bold;
                }
                .info {
                    font-size: var(--text-sm);
                    color: var(--text-gray);
                    margin-top: 20px;
                    margin-bottom: 6px;
                }
                .inspection {
                    display: inline-flex;
                    align-items: baseline;
                    align-self: flex-start;
                    gap: 4px;
                    font-size: var(--text-sm);
                    padding: 2px 6px;
                    color: var(--primary-color);
                    border: 1px solid var(--primary-color);
                    border-radius: var(--input-border-radius);
                    margin-top: auto;
                }
                .no-inspection {
                    font-size: var(--text-sm);
                    color: #ccc;
                    padding: 2px 0;
                    border: 1px solid transparent;
                    margin-top: auto;
                }
            }
        }
    }
    .no-vehicles {
        padding-bottom: 20px;
    }
}
@media (width <= 768px) {
    .vehicle-list-block {
        margin-bottom: 16px;
        ul {
            grid-template-columns: 1fr;
            gap: 8px;
            .vehicle-item {
                .contents {
                    padding: 12px;
                    .info {
                        margin-top: 16px;
                    }
                }
            }
        }
    }
}

/* 車両新規登録・編集フォーム */
.vehicle-form {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    margin-bottom: 20px;
    .image-upload-item,
    .current-img {
        margin-bottom: 10px;
    }
    .current-img {
        width: 100%;
        max-width: 500px;
    }
    .upload-status {
        font-size: var(--text-sm);
        color: var(--text-gray);
        &.status-error {
            color: var(--danger-color);
        }
    }
    .delete-img-btn {
        all: unset;
        color: var(--danger-color);
        cursor: pointer;
        border: 1px solid var(--danger-color);
        border-radius: var(--input-border-radius);
        background-color: var(--white);
        font-size: var(--text-sm);
        font-weight: bold;
        padding: 4px 8px;
        display: block;
        margin-bottom: 10px;
    }
}
@media (width <= 768px) {
    .vehicle-form {
        padding: 24px 16px;
        margin-bottom: 16px;
    }
}

/* 車両詳細 */
.vehicle-detail-block {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    margin-bottom: 20px;
    .vehicle-title {
        font-weight: bold;
        font-size: var(--text-ml);
        margin-bottom: 20px;
        overflow-wrap: anywhere;
    }
    .swiper-block {
        background-color: var(--text-color);
        padding: 20px;
        border-radius: var(--input-border-radius);
        .swiper {
            .swiper-wrapper {
                align-items: center;
            }
            &.mySwiper2 {
                width: 100%;
                margin-bottom: 20px;
                .swiper-slide {
                    display: flex;
                    flex-direction: column;
                    justify-content: center;
                    align-items: center;
                    img {
                        border-radius: var(--input-border-radius);
                    } 
                }
                .custom-prev {
                    all: unset;
                    color: white;
                    position: absolute;
                    top: 50%;
                    left: 0;
                    transform: translateY(-50%);
                    z-index: 1;
                    cursor: pointer;
                }
                .custom-navigation {
                    button {
                        all: unset;
                        color: white;
                        position: absolute;
                        inset: 50% auto auto 0;
                        transform: translateY(-50%);
                        z-index: 1;
                        cursor: pointer;
                        &.custom-next {
                            inset: 50% 0 auto auto;
                        }
                    }
                }
            }
            &.mySwiper {
                max-width: 400px;
                margin-inline: 0;
                .swiper-wrapper {
                    align-items: center;
                }
                .swiper-slide {
                    max-width: 80px;
                    border: 2px solid var(--white);
                    border-radius: var(--input-border-radius);
                    cursor: pointer;
                    img {
                        border-radius: 2px;
                    } 
                }
            }
            .swiper-slide-thumb-active {
                border: 2px solid var(--primary-color)!important;
                border-radius: var(--input-border-radius);
            } 
        }
    }
    .vehicle-data-block {
        margin-top: 20px;
        .vehicle-data {
            display: flex;
            gap: 8px;
            & + .vehicle-data,
            & + .vehicle-inspection-data {
                margin-top: 20px;
            }
            dd {
                overflow-wrap: anywhere;
                flex: 1;
            }
        }
        .vehicle-inspection-data {
            border-top: 1px solid var(--border-color);
            padding-top: 20px;
            dd {
                margin-top: 20px;
                img {
                    border-radius: var(--input-border-radius);
                }
            }
        }
        dt {
            font-weight: bold;
        }
    }
}
@media (width <= 768px) {
    .vehicle-detail-block {
        padding: 24px 16px;
        margin-bottom: 16px;
        .vehicle-title {
            font-size: var(--text-ml);
            margin-bottom: 16px;
        }
        .swiper-block {
            padding: 16px;
            .swiper {
                &.mySwiper2 {
                    margin-bottom: 16px;
                    .custom-prev {
                        left: 16px;
                    }
                    .custom-next {
                        right: 16px;
                    }
                }
            }
        }
        .vehicle-data-block {
            margin-top: 16px;
            .vehicle-data {
                gap: 4px;
                & + .vehicle-data,
                & + .vehicle-inspection-data {
                    margin-top: 16px;
                }   
            }
            .vehicle-inspection-data {
                padding-top: 16px;
                dd {
                    margin-top: 16px;
                }
            }
        }
    }
}

/* リクエスト一覧 */
.request-list-block {
    .request-list-tabs {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        .tab-item {
            .tab-link {
                display: block;
                padding: 10px 0;
                text-align: center;
                font-weight: bold;
                color: var(--text-gray);
                border-bottom: 2px solid var(--border-color);
                cursor: pointer;
                &.active {
                    color: var(--primary-color);
                    border-bottom-color: var(--primary-color);
                }
            }
        }
    }
    .request-lists {
        margin-top: 20px;
        display: grid;
        gap: 16px;
        .request-list {
            a {
                display: flex;
                justify-content: space-between;
                align-items: center;
                gap: 16px;
                background-color: var(--white);
                padding: 20px;
                border-radius: var(--border-radius);
                box-shadow: var(--shadow);
                .contents {
                    .contents-header {
                        display: flex;
                        align-items: center;
                        gap: 8px;
                        p {
                            color: var(--text-gray);
                            &.badge {
                                display: inline-block;
                                font-weight: bold;
                                padding: 2px 6px;
                                border-radius: var(--input-border-radius);
                                &.badge-orange {
                                    background: var(--secondary-color);
                                    color: var(--primary-color);                                    
                                }
                                &.badge-cancel {
                                    background: #e9ecef;
                                    color: #6c757d;
                                }
                                &.badge-blue {
                                    background: #e3f2fd;
                                    color: #0d47a1;
                                }
                                &.badge-green {
                                    background: #e8f5e9;
                                    color: #1b5e20;
                                }
                            }
                        }
                    }
                    .contents-body {
                        .request-title {
                            font-weight: bold;
                            margin-top: 10px;
                            word-break: break-word;
                            &.canceled {
                                text-decoration: line-through;
                                color: #ccc;
                            }
                        }
                        p {
                            font-size: var(--text-sm);
                            color: var(--text-gray);
                            margin-top: 10px;
                        }
                    }
                }
                i {
                    color: var(--primary-color);
                }
            }
        }
    }
    .no-requests {
        padding-block: 20px;
    }
}
@media (width <= 768px) {
    .request-list-block {
        .request-list-tabs {
            .tab-item {
                .tab-link {
                    padding: 6px 0;
                }
            }
        }
        .request-lists {
            margin-top: 16px;
            gap: 8px;
            .request-list {
                a {
                    gap: 8px;
                    padding: 16px;
                    .contents {
                        .contents-header {
                            gap: 4px;
                            p {
                                font-size: var(--text-sm);
                            }
                        }
                        .contents-body {
                            .request-title {
                                font-size: var(--text-sm);
                            }
                            p {
                                font-size: var(--text-sm);
                            }
                        }
                    }
                    i {
                        color: var(--primary-color);
                    }
                }
            }
        }
        .no-requests {
            text-align: center;
            padding-block: 20px;
        }
    }
}

/* リクエスト登録 */
.request-form {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    margin-bottom: 20px;
    #use-location-form,
    #textarea-block,
    #type-other,
    .detail-block {
        margin-top: 20px;
    }
    #vehicle-selected-info {
        padding: 16px;
        background-color: var(--white);
        border: 1px solid var(--border-color);
        border-radius: var(--input-border-radius);
        margin-top: 20px;
        p:first-child {
            font-weight: bold;
            overflow-wrap: anywhere;
        }
        #vehicle-selected-text {
            font-size: var(--text-sm);
            color: var(--primary-color);
            overflow-wrap: anywhere;
        }
    }
    #text-counter {
        font-size: var(--text-sm);
        text-align: right;
        color: var(--text-gray);
    }
    .sell-note {
        background-color: var(--secondary-color);
        padding: 12px;
        border-radius: var(--border-radius);
        color: var(--primary-color);
        font-size: var(--text-sm);
        margin-block: 20px;
    }
}
#modal {
    &.vehicle-choice-modal {
        text-align: left;
        h3 {
            font-size: var(--text-ml);
            font-weight: bold;
        }
        .modal-content {
            display: flex;
            flex-direction: column;
            gap: 10px;
            height: 60vh;
            overflow: auto;
            margin-block: 20px;
            button {
                all: unset;
                cursor: pointer;
                font-size: var(--text-sm);
                padding: 10px;
                background-color: var(--white);
                border: 1px solid var(--border-color);
                border-radius: var(--input-border-radius);
                overflow-wrap: anywhere;
                &:hover {
                    border-color: var(--primary-color);
                }
            }
        }
        .modal-btn {
            text-align: center;
        }
    }
}
@media (width <= 768px) {
    .request-form {
        padding: 24px 16px;
        margin-bottom: 16px;
        #use-location-form,
        #textarea-block,
        #type-other,
        .detail-block {
            margin-top: 16px;
        }
        #vehicle-selected-info {
            padding: 10px;
            margin-top: 16px;
            #vehicle-selected-text {
                font-size: var(--text-sm);
            }
        }
        #section-other {
        margin-top: 16px;
        }
        .sell-note {
        margin-block: 16px;
        }
    }
    #modal {
        &.vehicle-choice-modal {
            h3 {
                font-size: var(--text-base);
            }
            .modal-content {
                margin-block: 16px;
                button {
                    font-size: var(--text-sm);
                }
            }
        }
    }
}

/* リクエスト詳細 */
.request-detail-block {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    margin-bottom: 20px;
    .request-detail-header {
        display: flex;
        align-items: center;
        gap: 8px;
        p {
            color: var(--text-gray);
            &.badge {
                display: inline-block;
                font-weight: bold;
                padding: 4px 8px;
                border-radius: var(--input-border-radius);
                &.badge-orange {
                    background: var(--secondary-color);
                    color: var(--primary-color);                                    
                }
                &.badge-cancel {
                    background: #e9ecef;
                    color: #6c757d;
                }
                &.badge-blue {
                    background: #e3f2fd;
                    color: #0d47a1;
                }
                &.badge-green {
                    background: #e8f5e9;
                    color: #1b5e20;
                }
            }
        }
    }
    .request-detail-title {
        font-weight: bold;
        font-size: var(--text-ml);
        margin-top: 20px;
        padding-bottom: 10px;
        border-bottom: 1px solid var(--border-color);
        span {
            font-weight: normal;
        }
    }
    table {
        width: 100%;
        margin-top: 20px;
        border-collapse: collapse;
        th, td {
            padding: 10px;
            border: 1px solid var(--border-color);
            overflow-wrap: anywhere;
        }
        th {
            width: 1%;
            background-color: var(--bg-color);
            color: var(--text-gray);
            font-weight: bold;
            white-space: nowrap;
            vertical-align: middle;
        }
    }
    .request-detail-content {
        background-color: var(--bg-color);
        border-radius: var(--input-border-radius);
        border: 1px solid var(--border-color);
        padding: 20px;
        margin-top: 20px;
        h3 {
            font-weight: bold;
            color: var(--text-gray);
        }
        p {
            margin-top: 6px;
            white-space: pre-wrap;
        }
    }
}
@media (width <= 768px) {
    .request-detail-block {
        padding: 24px 16px;
        margin-bottom: 16px;
        .request-detail-header {
            gap: 6px;
        }
        .request-detail-title {
            font-size: var(--text-base);
            margin-top: 16px;
            padding-bottom: 6px;
        }
        table {
            margin-top: 16px;
            th, td {
                padding: 12px;
            }
        }
        .request-detail-content {
            padding: 12px;
            margin-top: 16px;
        }
    }
}

/* 完了 or エラー画面 */
.result-block {
    background-color: var(--white);
    padding: 40px 20px;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    margin-bottom: 20px;
    .icon i {
        font-size: 4.375rem;
        color: var(--primary-color);
    }
    .text {
        font-size: var(--text-ml);
        font-weight: bold;
        text-align: center;
    }
    .error {
        color: var(--danger-color);
        font-weight: bold;
        text-align: center;
    }
    .subtext {
        color: var(--text-gray);
        text-align: center;
    }
}
@media (width <= 768px) {
    .result-block {
        padding: 24px 16px;
        gap: 24px;
        margin-bottom: 16px;
        .icon i {
            font-size: 3.125rem;
        }
        .text {
            font-size: var(--text-base);
        }
    }
}