/* ============================
   全体の基本設定
============================ */
html, body {
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", sans-serif;
    background: #f5f5f5;
    color: #333;
    box-sizing: border-box;
}

*, *::before, *::after {
    box-sizing: inherit;
}

/* リンク */
a {
    color: #0078ff;
    text-decoration: none;
}

a:hover {
    opacity: 0.8;
}

/* カード共通（PC用） */
.card {
    background: #ffffff;
    width: 100%;
    max-width: 480px;
    padding: 32px;
    border-radius: 20px;
    box-shadow: 0 4px 14px rgba(0,0,0,0.12);
    margin: 0 auto;
}

/* ボタン共通 */
.btn {
    display: block;
    width: 100%;
    padding: 16px;
    font-size: 18px;
    text-align: center;
    border-radius: 14px;
    color: white;
    text-decoration: none;
    box-sizing: border-box;
    margin-bottom: 16px;
}

.btn-primary {
    background: #0078ff;
}

.btn-green {
    background: #00a86b;
}

.btn-red {
    background: #ff4d4d;
}

/* ============================
   スマホ対応
============================ */
@media screen and (max-width: 600px) {

    /* 全カードをフル幅 */
    .card,
    .mypage-card,
    .edit-card,
    .public-card,
    .qr-card {
        max-width: 100% !important;  
        width: 100% !important;
        padding: 24px !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: #ffffff !important;
        margin: 0 !important;
    }

    /* 背景を白に統一 */
    body {
        background: #ffffff !important;
    }

    /* ラッパーの余白を調整 */
    .mypage-wrapper,
    .edit-wrapper,
    .public-wrapper,
    .qr-wrapper {
        padding: 0 !important;
        min-height: auto !important;
    }

    /* ボタン */
    .btn {
        padding: 10px !important;
        font-size: 20px !important;
        border-radius: 16px !important;
    }

    /* SNS ボックス */
    .sns-item {
        border-radius: 16px !important;
        padding: 18px !important;
    }
}
