/* ═══ FM Questionnaire Plugin Styles ═══ */
.fm-app{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:#1f2937;max-width:900px;margin:0 auto;padding:0 16px;line-height:1.5}
.fm-app *{box-sizing:border-box}
.fm-screen{display:none}
.fm-screen--active{display:block}

/* Welcome */
.fm-welcome-header{text-align:center;padding:40px 0 24px}
.fm-welcome-icon{font-size:52px;margin-bottom:12px}
.fm-welcome-header h1{font-size:26px;font-weight:700;color:#0f172a;margin:0 0 8px;line-height:1.3}
.fm-welcome-header p{color:#64748b;font-size:15px;margin:0}

/* Cards */
.fm-card{background:#fff;border-radius:14px;padding:24px;box-shadow:0 2px 8px rgba(0,0,0,.06);margin-bottom:20px;border:1px solid #e5e7eb}
.fm-card h3{font-size:16px;font-weight:600;color:#0f172a;margin:0 0 16px}

/* Forms */
.fm-label{display:block;font-size:13px;font-weight:600;color:#374151;margin-bottom:6px}
.fm-input{width:100%;padding:12px 16px;border-radius:10px;border:1px solid #d1d5db;font-size:16px;outline:none;transition:border .2s}
.fm-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}

/* Gender */
.fm-gender-row{display:flex;gap:12px}
.fm-gender-btn{flex:1;padding:12px;border-radius:10px;border:1px solid #d1d5db;background:#f9fafb;color:#6b7280;font-size:15px;font-weight:400;cursor:pointer;transition:all .15s}
.fm-gender-btn--active{border:2px solid #2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}

/* Q list */
.fm-q-list-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f3f4f6;font-size:14px;color:#374151}
.fm-q-list-item span{font-size:20px;width:28px;text-align:center}
.fm-q-list-item small{margin-left:auto;color:#9ca3af;font-size:12px}
.fm-info-box{margin-top:16px;padding:12px 16px;background:#f0fdf4;border-radius:10px;font-size:13px;color:#166534}

/* Buttons */
.fm-btn{padding:14px 24px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .15s;text-decoration:none}
.fm-btn:disabled{opacity:.5;cursor:not-allowed}
.fm-btn--primary{background:#2563eb;color:#fff}
.fm-btn--primary:hover:not(:disabled){background:#1d4ed8}
.fm-btn--danger{background:#dc2626;color:#fff}
.fm-btn--danger:hover{background:#b91c1c}
.fm-btn--outline{background:#fff;color:#374151;border:1px solid #d1d5db}
.fm-btn--outline:hover{background:#f9fafb}
.fm-btn--success{background:#059669;color:#fff}
.fm-btn--success:hover{background:#047857}
.fm-btn--full{width:100%}
.fm-btn--sm{padding:10px 18px;font-size:13px;border-radius:8px}

/* Top bar */
.fm-topbar{background:#fff;border-bottom:1px solid #e5e7eb;padding:14px 0;position:sticky;top:0;z-index:100;margin:0 -16px;padding-left:16px;padding-right:16px}
.fm-topbar-info{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:14px;font-weight:600;color:#0f172a}
.fm-topbar-count{margin-left:auto;font-size:13px;color:#6b7280;font-weight:400}
.fm-progress-segments{display:flex;gap:3px}
.fm-progress-segments div{flex:1;height:4px;border-radius:2px;background:#e5e7eb;transition:background .3s}
.fm-progress-segments div.done{background:#22c55e}
.fm-progress-segments div.current{background:#2563eb}
.fm-topbar-detail{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:#9ca3af}

/* Tabs */
.fm-tabs{display:flex;gap:4px;overflow-x:auto;background:#fff;border-bottom:1px solid #e5e7eb;padding:0;margin:0 -16px;padding-left:16px;padding-right:16px;-webkit-overflow-scrolling:touch}
.fm-tab{padding:10px 14px;border:none;background:transparent;border-bottom:3px solid transparent;color:#9ca3af;font-size:12px;cursor:pointer;white-space:nowrap;position:relative;transition:all .15s}
.fm-tab--active{border-bottom-color:#2563eb;color:#2563eb;font-weight:600}
.fm-tab .fm-tab-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;background:#22c55e;display:none}
.fm-tab--done .fm-tab-dot{display:block}

/* Questions */
.fm-questions-container{padding:24px 0}
.fm-section-header{padding:12px 16px;border-radius:10px;margin-bottom:16px;border-left:4px solid #2563eb}
.fm-section-header h3{font-size:16px;font-weight:600;margin:0 0 4px;color:#2563eb}
.fm-section-header p{margin:0;font-size:13px;color:#64748b}

.fm-question{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid #e5e7eb}
.fm-question-text{margin:0 0 12px;font-size:15px;color:#1f2937;font-weight:500;line-height:1.5}
.fm-question-text .fm-q-num{color:#9ca3af;font-weight:400;margin-right:8px}
.fm-options{display:flex;flex-wrap:wrap;gap:8px}
.fm-opt-btn{padding:10px 16px;border-radius:8px;border:1px solid #d1d5db;background:#f9fafb;color:#4b5563;font-size:13px;font-weight:400;cursor:pointer;transition:all .15s;min-width:60px;text-align:center;line-height:1.3}
.fm-opt-btn:hover{border-color:#93c5fd;background:#eff6ff}
.fm-opt-btn--selected{border:2px solid #2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}

/* Nav */
.fm-nav-row{display:flex;gap:12px;padding:12px 0 40px}
.fm-nav-row .fm-btn{flex:1}

/* Results */
.fm-results-header{background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:24px 0;margin:0 -16px;padding-left:16px;padding-right:16px}
.fm-results-header h1{font-size:24px;font-weight:700;color:#0f172a;margin:0 0 4px}
.fm-results-header p{margin:0;color:#64748b;font-size:14px}
.fm-results-meta{display:flex;gap:20px;margin-top:14px;flex-wrap:wrap;font-size:14px;color:#374151}
.fm-results-meta strong{font-weight:600}
.fm-results-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}

.fm-conclusion-box{border-radius:14px;padding:22px;margin:24px 0}
.fm-conclusion-label{display:inline-block;padding:5px 14px;border-radius:8px;color:#fff;font-size:13px;font-weight:600;margin-bottom:8px}
.fm-conclusion-box h2{margin:0 0 4px;font-size:18px;font-weight:700;color:#0f172a}
.fm-conclusion-box p{margin:0;font-size:15px;color:#374151;line-height:1.7}

/* Charts */
.fm-charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px}
@media(max-width:700px){.fm-charts-grid{grid-template-columns:1fr}}
.fm-chart-card{background:#f8fafc;border-radius:14px;padding:20px;border:1px solid #e5e7eb}
.fm-chart-card h3{font-size:15px;font-weight:600;color:#0f172a;margin:0 0 12px}
.fm-chart-card canvas{width:100%!important;max-height:280px}

/* Detail cards */
.fm-detail-card{background:#f8fafc;border-radius:14px;padding:20px;border:1px solid #e5e7eb;margin-bottom:20px}
.fm-detail-card h3{font-size:15px;font-weight:600;color:#0f172a;margin:0 0 14px}
.fm-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:600px){.fm-detail-grid{grid-template-columns:1fr}}
.fm-detail-item{text-align:center;padding:16px;background:#fff;border-radius:10px;border:1px solid #e5e7eb}
.fm-detail-item .fm-big-num{font-size:28px;font-weight:700}
.fm-detail-item .fm-sub{font-size:12px;color:#6b7280;margin:2px 0}
.fm-detail-item .fm-detail-label{font-size:14px;font-weight:600;color:#374151}
.fm-detail-item .fm-badge{display:inline-block;margin-top:8px;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:600}
.fm-bar-track{height:6px;background:#e5e7eb;border-radius:3px;margin-top:8px;overflow:hidden}
.fm-bar-fill{height:100%;border-radius:3px;transition:width .5s}

/* Result rows */
.fm-result-row{background:#fff;border-radius:12px;padding:16px 20px;border:1px solid #e5e7eb;margin-bottom:10px;display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.fm-result-row-icon{font-size:24px}
.fm-result-row-body{flex:1;min-width:200px}
.fm-result-row-body h4{margin:0;font-size:15px;font-weight:600;color:#0f172a}
.fm-result-row-body .fm-result-score{font-size:13px;color:#6b7280;margin:2px 0 0}
.fm-result-level{padding:5px 14px;border-radius:8px;font-size:12px;font-weight:600;white-space:nowrap;align-self:center}
.fm-result-interp{width:100%;font-size:13px;color:#4b5563;line-height:1.6;background:#f9fafb;padding:10px 14px;border-radius:8px;margin-top:8px}

/* Disclaimer */
.fm-disclaimer{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:18px;margin:28px 0;font-size:13px;color:#92400e;line-height:1.6}
.fm-disclaimer strong{font-weight:700}

/* Bottom actions */
.fm-bottom-actions{display:flex;gap:12px;flex-wrap:wrap;padding-bottom:40px}
.fm-bottom-actions .fm-btn{flex:1;min-width:160px}

/* Modal */
.fm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.fm-modal{background:#fff;border-radius:16px;padding:24px;max-width:560px;width:100%;max-height:85vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.fm-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.fm-modal-header h3{margin:0;font-size:18px;font-weight:700;color:#0f172a}
.fm-modal-close{border:none;background:#f3f4f6;cursor:pointer;padding:6px 8px;border-radius:8px;font-size:18px;line-height:1;color:#6b7280}
.fm-modal-info{background:#eff6ff;border-radius:10px;padding:14px;margin-bottom:14px;font-size:13px;color:#1e40af;line-height:1.5}
.fm-share-textarea{width:100%;height:300px;padding:14px;border-radius:10px;border:2px solid #d1d5db;font-size:12px;font-family:monospace;resize:vertical;line-height:1.5;color:#374151;background:#f9fafb}

/* Print */
@media print{
  .fm-app .fm-no-print{display:none!important}
  .fm-app{padding:0}
  .fm-result-row,.fm-detail-card,.fm-chart-card{break-inside:avoid}
}

/* Image generation overlay */
#fm-pdf-overlay{font-family:'Segoe UI',system-ui,-apple-system,sans-serif}
