/* FAOPS2027 Congress Registration — frontend styles
   Brand: royal blue #082A8B dominant, red #dc2626 accent */

.faops-reg-wrap {
    --faops-blue: #082A8B;
    --faops-blue-soft: #eef1fa;
    --faops-red: #dc2626;
    max-width: 860px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.55;
    color: #1c2433;
}

.faops-period-banner {
    background: var(--faops-blue);
    color: #fff;
    padding: 12px 18px;
    border-radius: 6px;
    margin-bottom: 22px;
    font-size: 15px;
}

.faops-section {
    border: 1px solid #dde2f0;
    border-radius: 8px;
    padding: 22px 26px 14px;
    margin: 0 0 24px;
    background: #fff;
}

.faops-section legend {
    font-weight: 700;
    color: var(--faops-blue);
    font-size: 17px;
    padding: 0 10px;
    text-transform: uppercase;
    letter-spacing: .4px;
}

.faops-field { margin: 0 0 16px; }
.faops-field label { display: block; font-weight: 600; margin-bottom: 5px; }
.faops-field input[type="text"],
.faops-field input[type="email"],
.faops-field input[type="tel"],
.faops-field select {
    width: 100%;
    max-width: 460px;
    padding: 10px 12px;
    border: 1px solid #c4cbe0;
    border-radius: 5px;
    font-size: 15px;
    background: #fff;
}
.faops-field input:focus, .faops-field select:focus {
    outline: 2px solid var(--faops-blue);
    outline-offset: 1px;
    border-color: var(--faops-blue);
}

.faops-radio { display: block; font-weight: 400 !important; margin: 4px 0; cursor: pointer; }
.faops-radio input { margin-right: 8px; }
.faops-check { margin: 0 0 12px; }
.faops-check label { font-weight: 400; cursor: pointer; }
.faops-check input { margin-right: 8px; }

.req { color: var(--faops-red); }
.faops-hint { display: block; font-size: 13.5px; color: #5b6478; margin-top: 5px; }

.faops-conditional { display: none; }
.faops-conditional.faops-visible { display: block; }

.faops-info-box {
    background: var(--faops-blue-soft);
    border-left: 4px solid var(--faops-blue);
    padding: 12px 16px;
    margin: 0 0 16px;
    font-size: 14px;
    border-radius: 0 6px 6px 0;
}

.faops-fee-summary {
    background: var(--faops-blue-soft);
    border-radius: 6px;
    padding: 6px 18px;
    margin: 8px 0 14px;
}
.faops-fee-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 9px 0;
    border-bottom: 1px solid #d9e0f2;
    font-size: 15px;
}
.faops-fee-row:last-child { border-bottom: 0; }
.faops-fee-grand { font-size: 17px; }
.faops-fee-grand strong { color: var(--faops-blue); }

.faops-btn {
    display: inline-block;
    background: #fff;
    color: var(--faops-blue);
    border: 2px solid var(--faops-blue);
    padding: 10px 22px;
    border-radius: 5px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .15s, color .15s;
}
.faops-btn:hover { background: var(--faops-blue-soft); color: var(--faops-blue); }
.faops-btn-primary { background: var(--faops-blue); color: #fff; }
.faops-btn-primary:hover { background: #0a35ad; color: #fff; }

.faops-notice {
    padding: 14px 18px;
    border-radius: 6px;
    margin-bottom: 18px;
    border-left: 4px solid;
    font-size: 15px;
}
.faops-notice-info    { background: var(--faops-blue-soft); border-color: var(--faops-blue); }
.faops-notice-success { background: #dcfce7; border-color: #15803d; }
.faops-notice-warning { background: #fef9c3; border-color: #a16207; }
.faops-notice-error   { background: #fee2e2; border-color: var(--faops-red); }

.faops-addon-card {
    border: 1px solid #dde2f0;
    border-radius: 6px;
    padding: 16px 20px;
    margin: 0 0 16px;
}
.faops-addon-card h4 { margin: 0 0 10px; color: var(--faops-blue); font-size: 16px; }

/* Dashboard */
.faops-dash-title { color: var(--faops-blue); }
.faops-dash-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}
.faops-dash-card {
    border: 1px solid #dde2f0;
    border-radius: 8px;
    padding: 20px 24px;
    background: #fff;
}
.faops-dash-card h3 {
    margin: 0 0 10px;
    color: var(--faops-blue);
    font-size: 17px;
    border-bottom: 2px solid var(--faops-blue-soft);
    padding-bottom: 8px;
}
.faops-dash-card h4 { margin: 14px 0 8px; font-size: 15px; }
.faops-dash-card-wide { grid-column: 1 / -1; }
.faops-dash-actions { display: flex; gap: 10px; flex-wrap: wrap; }

.faops-status-confirmed { color: #15803d; }
.faops-status-pending   { color: #a16207; }
.faops-status-cancelled { color: var(--faops-red); }

@media (max-width: 680px) {
    .faops-dash-grid { grid-template-columns: 1fr; }
    .faops-section { padding: 16px 16px 8px; }
}

/* =====================================================
   MODERN LOGIN SCREEN (v1.1.0)
   ===================================================== */
.faops-login { display:flex; justify-content:center; padding:30px 16px; }
.faops-login-card {
    width:100%; max-width:420px; background:#fff;
    border:1px solid #e6e8f0; border-radius:16px;
    box-shadow:0 10px 40px rgba(8,42,139,0.08);
    padding:32px 30px;
}
.faops-login-head { text-align:center; margin-bottom:22px; }
.faops-login-head h2 { color:var(--faops-blue); margin:0 0 6px; font-size:24px; }
.faops-login-head p { color:#667; margin:0; font-size:14px; }
.faops-login-error {
    background:#fdecec; border:1px solid #f5c2c2; color:#b01e2a;
    border-radius:8px; padding:10px 14px; font-size:13px; margin-bottom:16px;
}
.faops-login-field { margin-bottom:16px; }
.faops-login-field label { display:block; font-size:13px; font-weight:600; color:#334; margin-bottom:6px; }
.faops-login-field input {
    width:100%; box-sizing:border-box; padding:12px 14px;
    border:1.5px solid #d8dce8; border-radius:10px; font-size:15px;
    transition:border-color .15s, box-shadow .15s;
}
.faops-login-field input:focus {
    outline:none; border-color:var(--faops-blue);
    box-shadow:0 0 0 3px rgba(8,42,139,0.12);
}
.faops-login-row {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:20px; font-size:13px;
}
.faops-login-remember { display:flex; align-items:center; gap:7px; color:#556; cursor:pointer; }
.faops-login-forgot { color:var(--faops-blue); text-decoration:none; }
.faops-login-forgot:hover { text-decoration:underline; }
.faops-login-submit { width:100%; justify-content:center; padding:13px; font-size:15px; border-radius:10px; }
.faops-login-foot {
    text-align:center; margin-top:20px; padding-top:18px;
    border-top:1px solid #eef0f6; font-size:14px; color:#667;
}
.faops-login-foot a { color:var(--faops-blue); font-weight:600; text-decoration:none; margin-left:6px; }
.faops-login-foot a:hover { text-decoration:underline; }

/* Dashboard header + logout */
.faops-dash-header {
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; flex-wrap:wrap; margin-bottom:8px;
}
.faops-dash-header .faops-dash-title { margin:0; }
.faops-dash-logout { white-space:nowrap; }
.faops-dash-logout:hover { background:var(--faops-red); border-color:var(--faops-red); color:#fff; }

/* ---- Profile page (v1.2.0) ---- */
.faops-profile-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
.faops-profile-head h2 { margin:0; color:var(--faops-blue); }
.faops-notice-success { background:#e8f6ef; border-left:4px solid #1a7a4a; color:#0f5132; }
.faops-profile-form .faops-field { margin-bottom:16px; }

/* ---- Login CTA (v1.2.1) ---- */
.faops-login-submit { display:block; text-align:center; text-decoration:none; }
a.faops-login-submit:hover { color:#fff; }
.faops-login-links { text-align:center; margin-top:14px; }
.faops-login-links a { color:var(--faops-blue); text-decoration:none; font-size:13px; }
.faops-login-links a:hover { text-decoration:underline; }
