.pageTitle {

    font-size: 32px;

    font-weight: 700;

    color: #2d3c6b;

    text-align: center;

    margin-top: 10px;

    margin-bottom: 40px;

}

/* ===================== */
/* 設定カード */
/* ===================== */

.formCard {

    max-width: 800px;

    margin: 0 auto;

    background: white;

    border-radius: 25px;

    padding: 40px;

    border: 2px solid #edf2fb;

}

/* ===================== */
/* ラベル */
/* ===================== */

.formCard label {

    display: block;

    margin-top: 20px;

    margin-bottom: 8px;

    font-size: 18px;

    font-weight: bold;

    color: #2d3c6b;

}

.formCard label:first-child {

    margin-top: 0;

}

.infoValue {

    font-size: 20px;

    font-weight: 700;

    color: #2d3c6b;

    text-align: center;

    margin-top: 0;

}

#systemLastReceive {

    font-size: 18px;

    line-height: 1.4;

    word-break: break-word;

}

/* ===================== */
/* 入力欄 */
/* ===================== */

.formCard select,
.formCard input {

    width: 100%;

    height: 56px;

    padding: 0 18px;

    border: 2px solid #dbe5f4;

    border-radius: 15px;

    font-size: 16px;

    box-sizing: border-box;

    background: white;

}

.formCard select:focus,
.formCard input:focus {

    outline: none;

    border-color: #4f7cff;

    box-shadow:
        0 0 0 4px rgba(79, 124, 255, 0.15);

}

/* ===================== */
/* ボタン */
/* ===================== */

.buttonArea {

    display: flex;

    justify-content: flex-end;

    gap: 15px;

    margin-top: 40px;

}

.saveButton {

    width: 140px;

    height: 52px;

    background: #4f7cff;

    color: white;

    border: none;

    border-radius: 12px;

    font-size: 16px;

    font-weight: bold;

    cursor: pointer;

    transition: 0.25s;

}

.saveButton:hover {

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px rgba(79, 124, 255, 0.25);

}

.cancelButton {

    width: 140px;

    height: 52px;

    background: #ef4444;

    color: white;

    border: none;

    border-radius: 12px;

    font-size: 16px;

    font-weight: bold;

    cursor: pointer;

    transition: 0.25s;

}

.cancelButton:hover {

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px rgba(239, 68, 68, 0.25);

}

.saveButton,
.cancelButton {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

}

.settingHint {

    margin-top: 6px;

    margin-bottom: 12px;

    color: #7d879d;

    font-size: 14px;

    line-height: 1.6;

}

.userList {

    display: grid;

    gap: 20px;

    min-height: 800px;

}

.settingDivider {

    margin: 40px 0;

    border: none;

    border-top: 2px solid #edf2fb;

}

.settingTitle {

    font-size: 32px;

    font-weight: 700;

    color: #2d3c6b;

    margin-bottom: 30px;

    padding-left: 14px;

    border-left: 5px solid #4f7cff;

}

.systemInfo {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 20px;

    margin-bottom: 50px;

}

.infoRow {

    display: flex;

    flex-direction: column;

    align-items: center;

    padding: 24px;

    border: 2px solid #edf2fb;

    border-radius: 18px;

    background: #f8fbff;

    min-height: 170px;

}

.infoRow i {

    font-size: 26px;

    width: 30px;

    height: 30px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #4f7cff;

    margin-bottom: 18px;

}

.infoLabel {

    font-size: 17px;

    font-weight: 600;

    color: #2d3c6b;

    min-height: 48px;

    margin-bottom: 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

}

.appInfo {

    color: #64748b;

    line-height: 1.8;

}

.statusBadge {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    min-width: 120px;

    height: 42px;

    padding: 0 20px;

    border-radius: 999px;

    font-size: 16px;

    font-weight: 700;

}

.statusSafe {

    background: #dcfce7;

    color: #16a34a;

    border: 1px solid #bbf7d0;

}

.statusWarning {

    background: #fef3c7;

    color: #d97706;

    border: 1px solid #fde68a;

}

.statusAlarm {

    background:
        linear-gradient(135deg,
            #fee2e2,
            #fecaca);

    color: #dc2626;

    border: 1px solid #fca5a5;

    box-shadow:
        0 6px 16px rgba(220,
            38,
            38,
            0.15);
}

.statusOffline {

    background: #eef4ff;

    color: #64748b;

    border: 1px solid #cbd5e1;

}

.statusSafe,
.statusWarning,
.statusAlarm,
.statusOffline {

    box-shadow:
        0 4px 12px rgba(0, 0, 0, 0.06);

}

#systemLastReceive {

    font-size: 18px;

    line-height: 1.6;

    text-align: center;

}

.appVersionCard {

    margin-top: 20px;

    min-height: 220px;

}

.appVersionCard .appInfo {

    text-align: center;

}

.appVersionCard .appInfo p:first-child {

    font-size: 28px;

    font-weight: 700;

    color: #2d3c6b;

    margin-bottom: 12px;

}

.appVersionCard .appInfo p:last-child {

    font-size: 16px;

    color: #64748b;

}

/* ===================== */
/* スマホ */
/* ===================== */

@media (max-width: 768px) {

    .formCard {

        padding: 25px;

    }

    .buttonArea {

        flex-direction: column;

    }

    .saveButton,
    .cancelButton {

        width: 100%;

    }

    .systemInfo {

        grid-template-columns:
            repeat(2, 1fr);

        gap: 12px;

        gap: 15px;

    }

    .infoRow {

        min-height: auto;

        padding: 20px;

    }

    #systemLastReceive {

        font-size: 16px;

    }

}

@media (max-width: 480px) {

    .systemInfo {

        grid-template-columns: 1fr;

    }

}