#am-score-app {
    max-width: 720px;
    margin: 40px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: #1a1a1a;
}

/* --- Auth --- */
#am-auth-wrap {
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 4px 24px rgba(0,0,0,.08);
    max-width: 500px;
    margin: 0;
}

.am-auth-logo {
    margin-bottom: 28px;
}

.am-auth-logo img {
    display: block;
}

#am-auth-tabs { display:flex; border-bottom:2px solid #e0e0e0; margin-bottom:32px; }
.am-tab { padding:14px 24px; background:none; border:none; font-size:15px; font-weight:600; color:#999; cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .2s,border-color .2s; }
.am-tab.active { color:#1a1a1a; border-bottom-color:#ff0000; }
.am-tab-content { display:none; }
.am-tab-content.active { display:block; }
.am-auth-intro { color:#555; font-size:15px; margin-bottom:24px; line-height:1.6; }

#am-auth-wrap input[type="text"],
#am-auth-wrap input[type="email"],
#am-auth-wrap input[type="password"] { display:block; width:100%; padding:13px 16px; border:2px solid #e0e0e0; border-radius:8px; font-size:16px; margin-bottom:12px; box-sizing:border-box; transition:border-color .2s; }
#am-auth-wrap input:focus { border-color:#ff0000; outline:none; }

#am-register-btn, #am-login-btn { display:block; width:100%; margin-top:8px; padding:16px; background:#ff0000; color:#fff; border:none; border-radius:8px; font-size:17px; font-weight:700; cursor:pointer; transition:background .2s; }
#am-register-btn:hover, #am-login-btn:hover { background:#cc0000; }

/* --- Checkboxes --- */
.am-check-group { margin:16px 0 8px; display:flex; flex-direction:column; gap:10px; }
.am-check-label { display:flex; align-items:flex-start; gap:10px; font-size:14px; color:#444; cursor:pointer; line-height:1.5; }
.am-check-label input[type="checkbox"] { flex-shrink:0; margin-top:2px; accent-color:#ff0000; width:16px; height:16px; cursor:pointer; }
.am-check-label a { color:#ff0000; text-decoration:underline; }

/* --- Errors --- */
.am-error { background:#fff0f0; border:1px solid #f5c6cb; color:#c0392b; padding:12px 16px; border-radius:8px; font-size:14px; margin-bottom:16px; }

/* --- Form --- */
#am-score-form-wrap h2 { font-size:26px; font-weight:800; margin-bottom:8px; }
.am-intro { color:#666; font-size:16px; margin-bottom:24px; }

.am-progress-wrap { display:flex; align-items:center; gap:12px; margin-bottom:32px; }
.am-progress-bar { flex:1; height:8px; background:#e0e0e0; border-radius:4px; overflow:hidden; }
.am-progress-fill { height:100%; background:#ff0000; border-radius:4px; width:0%; transition:width .3s ease; }
#am-progress-label { font-size:13px; color:#999; white-space:nowrap; }

.am-bloc { background:#fff; border-radius:12px; padding:28px; margin-bottom:20px; box-shadow:0 2px 12px rgba(0,0,0,.05); border:1px solid #f0f0f0; }
.am-bloc-diag { border:2px solid #ff0000; background:#fff8f5; }

.am-bloc-title { font-size:17px; font-weight:800; margin-bottom:20px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.am-bloc-num { background:#ff0000; color:#fff; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:900; flex-shrink:0; }
.am-optionnel { font-size:12px; font-weight:400; color:#aaa; }

.am-tag-optionnel { display:inline-block; font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; margin-bottom:12px; text-transform:uppercase; letter-spacing:.5px; background:#ffe5e5; color:#cc0000; }

.am-question { margin-bottom:24px; }
.am-question:last-child { margin-bottom:0; }
.am-question > label { display:block; font-weight:600; font-size:15px; margin-bottom:10px; line-height:1.4; }

.am-question input[type="text"] { width:100%; padding:12px 16px; border:2px solid #e0e0e0; border-radius:8px; font-size:16px; box-sizing:border-box; transition:border-color .2s; }
.am-question input[type="text"]:focus { border-color:#ff0000; outline:none; }

.am-radio-group { display:flex; flex-direction:column; gap:8px; }
.am-radio-group label { display:flex; align-items:center; gap:12px; font-weight:normal; font-size:15px; margin:0; padding:11px 16px; border:2px solid #e0e0e0; border-radius:8px; cursor:pointer; transition:border-color .2s,background .2s; background:#fff; }
.am-radio-group label:hover { border-color:#ff0000; background:#fff5f5; }
.am-radio-group label.selected { border-color:#ff0000; background:#fff5f5; }
.am-radio-group input[type="radio"] { flex-shrink:0; accent-color:#ff0000; width:18px; height:18px; }

.am-diag-intro { font-size:15px; color:#555; margin-bottom:20px; line-height:1.6; }

#am-score-btn { display:block; width:100%; margin-top:32px; padding:18px; background:#ff0000; color:#fff; border:none; border-radius:8px; font-size:18px; font-weight:700; cursor:pointer; transition:background .2s,transform .1s; }
#am-score-btn:hover { background:#cc0000; transform:translateY(-1px); }

/* --- Loading --- */
#am-score-loading { text-align:center; padding:80px 20px; }
.am-loader { width:48px; height:48px; border:4px solid #e0e0e0; border-top-color:#ff0000; border-radius:50%; animation:am-spin .8s linear infinite; margin:0 auto 24px; }
@keyframes am-spin { to { transform:rotate(360deg); } }
#am-score-loading p { font-size:17px; color:#666; }

/* --- Résultat --- */
.am-result-card { background:#fff; border-radius:16px; padding:40px; box-shadow:0 4px 24px rgba(0,0,0,.08); }
.am-result-card h2 { font-size:22px; font-weight:700; text-align:center; margin-bottom:8px; }
.am-score-number { font-size:88px; font-weight:900; line-height:1; text-align:center; margin:16px 0 8px; }
.am-score-number span { font-size:40px; color:#aaa; font-weight:400; }
.am-score-label { text-align:center; font-size:17px; font-weight:600; margin-bottom:32px; color:#444; }
.am-email-sent { background:#f0fff5; border:1px solid #b7ebc7; border-radius:8px; padding:12px 18px; font-size:14px; color:#1e7e34; margin-bottom:24px; text-align:center; }

.am-jauges { margin:24px 0; }
.am-jauge-row { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.am-jauge-label { width:200px; font-size:14px; font-weight:600; flex-shrink:0; }
.am-jauge-bar { flex:1; height:10px; background:#e0e0e0; border-radius:5px; overflow:hidden; }
.am-jauge-fill { height:100%; border-radius:5px; transition:width 1s ease; }
.am-jauge-score { font-size:13px; font-weight:700; width:40px; text-align:right; flex-shrink:0; }

.am-tips { margin:24px 0; }
.am-tips h4 { font-size:16px; font-weight:700; margin-bottom:12px; }
.am-tip { background:#fff8f0; border-left:4px solid #ff0000; padding:14px 18px; margin:10px 0; border-radius:0 8px 8px 0; font-size:15px; line-height:1.6; }

.am-benchmark { background:#f8f9fa; border-radius:12px; padding:22px; margin:24px 0; }
.am-benchmark h4 { margin:0 0 14px; font-size:16px; font-weight:700; }
.am-benchmark p { margin:8px 0; font-size:15px; line-height:1.5; }
.am-disclaimer { font-size:11px; color:#aaa; font-style:italic; margin-top:14px; }

.am-diag-confirm { background:#f0fff5; border:1px solid #b7ebc7; border-radius:8px; padding:16px 20px; margin:24px 0; font-size:14px; color:#1e7e34; }

.am-diag-rdv {
    margin-top: 32px;
    text-align: center;
    background: #f8f8f8;
    border: 2px solid #ff0000;
    border-radius: 12px;
    padding: 28px 24px;
}

.am-diag-rdv p {
    color: #1a1a1a;
    font-size: 16px;
    margin-bottom: 20px;
    line-height: 1.6;
    font-weight: 600;
}

.am-last-date {
    text-align: center;
    font-size: 13px;
    color: #aaa;
    margin-bottom: 8px;
}

.am-refaire-btn {
    display: inline-block;
    padding: 12px 24px;
    border: 2px solid #ff0000;
    color: #ff0000;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: background .2s, color .2s;
}

.am-refaire-btn:hover {
    background: #ff0000;
    color: #fff;
}

.am-cta-block { margin-top:32px; text-align:center; background:#f8f8f8; border:2px solid #ff0000; border-radius:12px; padding:28px 24px; }
.am-cta-block p { color:#1a1a1a; font-size:15px; margin-bottom:20px; line-height:1.7; font-weight:600; }
.am-cta-btn { display:inline-block; padding:16px 32px; background:#ff0000; color:#fff; border-radius:8px; font-size:17px; font-weight:700; text-decoration:none; transition:background .2s; }
.am-cta-btn:hover { background:#cc0000; color:#fff; }

.am-legal { margin-top:12px; font-size:13px; color:#aaa; text-align:center; }
.am-legal a { color:#666; }

@media (max-width:600px) {
    #am-auth-wrap, .am-result-card, .am-bloc { padding:20px 16px; }
    .am-score-number { font-size:72px; }
    .am-jauge-label { width:140px; font-size:12px; }
    .am-tab { padding:12px 14px; font-size:13px; }
}
