/* Patient experience feedback (R33): questionnaire (/x/), public summary (/experience/), practice dashboard (/feedback/). */
.fx{max-width:760px;margin:0 auto;padding:8px 16px 56px}.fx-app{max-width:1040px}
.fx-load{padding:40px 0;color:var(--muted,#64748B);text-align:center}
.fx-kick{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#2563EB;margin:0 0 4px}
.fx-card{background:var(--surface,#fff);border:1px solid var(--line,#E2E8F0);border-radius:20px;padding:22px;margin:0 0 14px}
.fx-card h1{margin:0 0 6px;font-size:clamp(22px,3.2vw,30px);letter-spacing:-.03em;line-height:1.12}.fx-card h2{margin:0 0 10px;font-size:18px}
.fx-intro p{margin:4px 0;color:var(--muted,#64748B)}.fx-mute{color:var(--muted,#64748B);font-size:14px}.fx-fine{font-size:12.5px;line-height:1.45}
.fx-center{text-align:center}.fx-center p{color:var(--muted,#64748B)}
.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;background:#2563EB;color:#fff;font:700 15px/1 inherit;border:0;cursor:pointer;text-decoration:none}.fx-btn:hover{background:#1D4ED8}.fx-btn.ghost{background:var(--surface,#fff);color:#1D4ED8;border:1px solid var(--line,#E2E8F0)}
.fx-btn:disabled{opacity:.6;cursor:default}
/* questionnaire */
.fx-q{border:0;padding:0;margin:0 0 18px}.fx-q legend{font-weight:700;font-size:15px;margin:0 0 8px;padding:0;line-height:1.35}.fx-q legend small{display:block;font-weight:500;color:var(--muted,#64748B);font-size:13px;margin-top:2px}.fx-q legend u{text-decoration-color:#2563EB;text-underline-offset:3px}
.fx-nps{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}.fx-nps label{position:relative}.fx-nps input{position:absolute;opacity:0;inset:0}.fx-nps span{display:grid;place-items:center;height:42px;border:1px solid var(--line,#E2E8F0);border-radius:10px;font-weight:700;cursor:pointer;background:var(--surface,#fff)}
.fx-nps input:checked+span{background:#2563EB;color:#fff;border-color:#2563EB}.fx-nps input:focus-visible+span{outline:2px solid #2563EB;outline-offset:2px}.fx-nps-l{display:flex;justify-content:space-between;font-size:12px;color:var(--muted,#64748B);margin-top:4px}
.fx-stars{display:flex;align-items:center;gap:4px}.fx-stars label{position:relative}.fx-stars input{position:absolute;opacity:0;inset:0}.fx-stars span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--line,#E2E8F0);font-size:22px;color:#CBD5E1;cursor:pointer;background:var(--surface,#fff)}.fx-stars i{display:none}
.fx-stars input:checked+span{color:#F59E0B;border-color:#F59E0B;background:#FFFBEB}
.fx-stars[data-v="1"] label:nth-child(-n+1) span,.fx-stars[data-v="2"] label:nth-child(-n+2) span,.fx-stars[data-v="3"] label:nth-child(-n+3) span,.fx-stars[data-v="4"] label:nth-child(-n+4) span,.fx-stars[data-v="5"] label:nth-child(-n+5) span{color:#F59E0B}
.fx-skip{margin-left:auto;appearance:none;border:0;background:none;color:var(--muted,#64748B);font:600 13px/1 inherit;cursor:pointer;padding:8px}.fx-skip.on{color:#2563EB}
.fx-when{display:flex;gap:6px;flex-wrap:wrap}.fx-when label{position:relative}.fx-when input{position:absolute;opacity:0;inset:0}.fx-when span{display:inline-flex;align-items:center;height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line,#E2E8F0);font-weight:600;font-size:14px;cursor:pointer;background:var(--surface,#fff)}.fx-when input:checked+span{background:#0B1226;color:#fff;border-color:#0B1226}
.fx-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid var(--line,#E2E8F0);border-radius:12px;background:var(--bg,#F7F9FC);color:inherit;resize:vertical}
.fx-private{padding:14px;border-radius:14px;background:#F8FAFC;border:1px solid var(--line,#E2E8F0)}html[data-theme=dark] .fx-private{background:#111A2E}
.fx-consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin:0 0 16px}.fx-consent input{margin-top:3px;width:18px;height:18px}
.fx-err{color:#B91C1C;font-weight:600}
.fx-done{text-align:center}.fx-tick{width:64px;height:64px;border-radius:50%;background:#16A34A;color:#fff;display:grid;place-items:center;font:800 30px/1 system-ui;margin:0 auto 12px}.fx-next{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:14px 0}
/* public summary + insights */
.fx-grid{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:start}@media(max-width:640px){.fx-grid{grid-template-columns:1fr}}
.fx-big{text-align:center;padding:16px;border-radius:16px;background:#EEF4FF}.fx-big b{display:block;font-size:44px;letter-spacing:-.04em;color:#1D4ED8;line-height:1}.fx-big span{display:block;font-weight:600;margin:6px 0 2px}.fx-big small{color:var(--muted,#64748B)}html[data-theme=dark] .fx-big{background:#16213A}
.fx-aspects{list-style:none;margin:0;padding:0;display:grid;gap:10px}.fx-aspects li{display:grid;grid-template-columns:150px 1fr auto;gap:10px;align-items:center;font-size:14px}.fx-aspects i{position:relative;display:block;height:10px;border-radius:999px;background:var(--sunk,#E8EEF5);overflow:visible}.fx-aspects i b{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#60A5FA,#2563EB)}.fx-aspects i u{position:absolute;top:-4px;width:2px;height:18px;background:#F59E0B;transform:translateX(-1px)}.fx-aspects em{font-style:normal;font-weight:800;white-space:nowrap}.fx-aspects em small{font-weight:500;color:var(--muted,#64748B)}.fx-na{color:var(--muted,#64748B);font-weight:500!important}
@media(max-width:480px){.fx-aspects li{grid-template-columns:1fr auto;grid-template-areas:"l v" "b b"}.fx-aspects li span{grid-area:l}.fx-aspects li i{grid-area:b}.fx-aspects li em{grid-area:v}}
.fx-comments{list-style:none;margin:0;padding:0;display:grid;gap:12px}.fx-comments li{padding:14px;border-radius:14px;background:var(--bg,#F7F9FC);border:1px solid var(--line,#E2E8F0)}.fx-comments p{margin:0 0 6px;line-height:1.5}.fx-comments small{color:var(--muted,#64748B)}.fx-v{color:#15803D}
.fx-reply{margin-top:10px;padding:10px 12px;border-left:3px solid #2563EB;background:var(--surface,#fff);border-radius:0 10px 10px 0}.fx-reply b{font-size:12px;color:#1D4ED8;display:block}.fx-reply p{margin:4px 0 0}
/* dashboard */
.fx-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:14px 0 10px}.fx-head h1{margin:0;font-size:clamp(24px,3.4vw,32px);letter-spacing:-.03em}.fx-head p{margin:4px 0 0;color:var(--muted,#64748B)}
.fx-pick{font-size:13px;color:var(--muted,#64748B)}.fx-pick select{font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--line,#E2E8F0);background:var(--surface,#fff);color:inherit;margin-left:6px}
.fx-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}.fx-tabs a{text-decoration:none;color:inherit;font-weight:700;font-size:14px;padding:9px 14px;border-radius:999px;border:1px solid var(--line,#E2E8F0);background:var(--surface,#fff)}.fx-tabs a[aria-current]{background:#0B1226;color:#fff;border-color:#0B1226}
.fx-sum{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.fx-sum span{display:flex;flex-direction:column;padding:10px 14px;border-radius:14px;background:var(--surface,#fff);border:1px solid var(--line,#E2E8F0);font-size:12px;color:var(--muted,#64748B);min-width:120px}.fx-sum b{font-size:22px;color:var(--ink,#0B1226);letter-spacing:-.02em}.fx-sum span.warn{background:#FFF7ED;border-color:#FED7AA}.fx-sum span.warn b{color:#B45309}
.fx-warn{color:#B45309;background:#FFF7ED;border:1px solid #FED7AA;border-radius:12px;padding:10px 12px;font-size:14px}
.fx-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.fx-item{background:var(--surface,#fff);border:1px solid var(--line,#E2E8F0);border-radius:16px;padding:14px 16px}.fx-item.low{border-color:#FDBA74;box-shadow:inset 4px 0 0 #F59E0B}
.fx-ir{display:grid;grid-template-columns:64px 1fr;gap:12px}.fx-rec{display:grid;place-items:center;height:56px;border-radius:14px;background:var(--sunk,#E8EEF5);font-size:13px}.fx-rec b{font-size:22px}.fx-item.low .fx-rec{background:#FFF7ED;color:#B45309}
.fx-im small{color:var(--muted,#64748B);font-size:12.5px}.fx-im small i{font-style:normal;color:#2563EB}
.fx-scores{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.fx-scores span{font-size:12px;padding:4px 8px;border-radius:999px;background:var(--sunk,#E8EEF5)}.fx-sc{font-style:normal;font-weight:800;margin-left:4px}.fx-sc.s1,.fx-sc.s2{color:#B91C1C}.fx-sc.s3{color:#B45309}.fx-sc.s4,.fx-sc.s5{color:#15803D}
.fx-c,.fx-p,.fx-rp{margin:8px 0 0;line-height:1.5;font-size:14px}.fx-p{padding:10px 12px;border-radius:12px;background:#F8FAFC;border:1px dashed var(--line,#E2E8F0)}html[data-theme=dark] .fx-p{background:#111A2E}
.fx-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}.fx-acts button,.fx-newcode button,.fx-replybox button{appearance:none;border:0;border-radius:999px;background:#2563EB;color:#fff;font:700 13px/1 inherit;padding:9px 14px;cursor:pointer}.fx-acts button.ghost{background:var(--surface,#fff);color:#1D4ED8;border:1px solid var(--line,#E2E8F0)}
.fx .fx-acts button,.fx .fx-acts button.ghost,.fx .fx-newcode button,.fx .fx-replybox button{min-height:0;height:auto;padding:9px 14px;font-size:13px;line-height:1;border-radius:999px;box-shadow:none;width:auto;margin:0;display:inline-flex;flex:0 0 auto;font-weight:700;font-family:inherit}
.fx-code .fx-acts{grid-column:1/-1}
.fx-replybox{margin-top:8px;display:grid;gap:8px}.fx-replybox textarea{font:inherit;padding:10px;border:1px solid var(--line,#E2E8F0);border-radius:12px;background:var(--bg,#F7F9FC);color:inherit}
.fx-bars{display:flex;gap:6px;align-items:flex-end;height:120px;padding:0 0 18px;position:relative}.fx-bars div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.fx-bars b{display:block;width:100%;max-width:28px;border-radius:6px 6px 0 0;background:#2563EB}.fx-bars b.low{background:#F59E0B}.fx-bars span{position:absolute;bottom:-18px;font-size:10px;color:var(--muted,#64748B)}
.fx-table{width:100%;border-collapse:collapse;font-size:14px}.fx-table th,.fx-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line,#E2E8F0)}.fx-table small{color:var(--muted,#64748B);font-family:ui-monospace,Menlo,monospace}
.fx-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;margin:0 0 14px}.fx-code{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start;padding:12px;border:1px solid var(--line,#E2E8F0);border-radius:16px;background:var(--bg,#F7F9FC)}.fx-code svg{width:120px;height:120px;border-radius:10px;border:1px solid var(--line,#E2E8F0)}.fx-code small{display:block;color:var(--muted,#64748B);font-size:12px;word-break:break-all}.fx-code.off{opacity:.55}
.fx-newcode{display:flex;gap:8px;flex-wrap:wrap}.fx-newcode input,.fx-newcode select{font:inherit;padding:10px 12px;border:1px solid var(--line,#E2E8F0);border-radius:12px;background:var(--surface,#fff);color:inherit;flex:1 1 180px}
.fx-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:700px){.fx-two{grid-template-columns:1fr}}.fx-two pre{white-space:pre-wrap;font:14px/1.5 inherit;padding:12px;border-radius:12px;background:var(--bg,#F7F9FC);border:1px solid var(--line,#E2E8F0);margin:6px 0 0}
.fx-pitch ol{padding-left:20px;margin:0}.fx-pitch li{margin:0 0 10px;line-height:1.5;color:var(--muted,#64748B)}.fx-pitch li b{color:var(--ink,#0B1226)}
.fx-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:#0B1226;color:#fff;padding:10px 16px;border-radius:999px;font-weight:700;font-size:14px;z-index:999}.fx-toast.bad{background:#B91C1C}.fx-toast[hidden]{display:none}
