/* Reusable survey design system — mobile-first, bilingual and accessible */
.survey-form{max-width:760px;margin:0 auto 20px;padding:clamp(18px,4vw,34px);border:1px solid #e7eaf2;border-radius:22px;box-shadow:0 14px 50px rgba(23,37,71,.07);font-family:'Noto Sans Malayalam','DM Sans',sans-serif}
.survey-intro{display:flex;gap:15px;align-items:flex-start;margin-bottom:18px}.survey-intro-icon{width:46px;height:46px;flex:0 0 46px;border-radius:15px;background:linear-gradient(145deg,#edeaff,#e1e8ff);display:grid;place-items:center;color:#6252d8;font-size:23px}.survey-eyebrow{font:800 9px 'DM Sans',sans-serif;letter-spacing:1.5px;color:#7265d7}.survey-intro h2{font-size:clamp(19px,3vw,24px);line-height:1.45;margin:5px 0 4px;color:#172342}.survey-intro p{font-size:12px;line-height:1.8;color:#68748c;margin:0}
.survey-meta{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}.survey-meta span{font-size:10px;font-weight:700;color:#596680;background:#f5f6fb;border:1px solid #edf0f5;border-radius:30px;padding:8px 11px}
.survey-progress-wrap{background:#f8f9fd;border:1px solid #edf0f5;border-radius:14px;padding:14px 15px;margin-bottom:25px}.survey-progress-copy{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;color:#4d5a75}.survey-progress-copy b{color:#5548c9}.survey-progress-track{height:6px;background:#e6e8f1;border-radius:20px;overflow:hidden;margin-top:11px}.survey-progress-track i{height:100%;width:25%;display:block;border-radius:20px;background:linear-gradient(90deg,#6552df,#8d80f0);transition:width .25s}.survey-step-dots{display:flex;gap:5px;margin-top:10px}.survey-step-dots i{height:3px;flex:1;background:#e2e5ee;border-radius:4px}.survey-step-dots i.active{background:#7667e5}
.survey-step[hidden]{display:none!important}.survey-step-heading{margin:0 0 22px}.survey-step-heading>span{font:800 9px 'DM Sans',sans-serif;letter-spacing:1.4px;color:#8175dc}.survey-step-heading h3{font-size:20px;color:#182545;margin:5px 0;line-height:1.5}.survey-step-heading p{font-size:11px;color:#7b879d;margin:0;line-height:1.7}
.survey-field{margin:0 0 20px}.survey-field>label{display:block;font-size:12px;line-height:1.75;font-weight:700;color:#263452;margin-bottom:8px}.survey-field>label span{display:block;color:#758198;font-size:11px;font-weight:500;margin-top:2px}.survey-control{display:block;width:100%;min-height:49px;border:1px solid #dfe4ef!important;border-radius:12px!important;background:#fbfcff!important;padding:12px 14px!important;font:500 13px 'Noto Sans Malayalam','DM Sans',sans-serif!important;color:#1d2946!important;outline:none;box-shadow:none!important;transition:border-color .15s,box-shadow .15s}.survey-control:focus{border-color:#7769e8!important;box-shadow:0 0 0 4px rgba(119,105,232,.12)!important}.survey-control::placeholder{color:#a3adbf}.survey-textarea{min-height:112px;resize:vertical}.survey-hint{display:block;margin-top:6px;color:#8a95a9;font-size:10px}
.survey-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.survey-choice{position:relative;display:flex!important;align-items:center;gap:10px;min-height:62px;padding:11px 13px;border:1px solid #e1e5ef;border-radius:13px;background:#fff;cursor:pointer;margin:0!important}.survey-choice:has(input:checked){border-color:#786ce4;background:#f7f6ff;box-shadow:0 0 0 3px rgba(120,108,228,.09)}.survey-choice input{width:18px;height:18px;accent-color:#6858d9;flex:0 0 18px;margin:0}.survey-choice span{display:block}.survey-choice b,.survey-choice small{display:block}.survey-choice b{font-size:12px;color:#253250}.survey-choice small{font:10px 'DM Sans',sans-serif;color:#8792a7;margin-top:2px}
.survey-consent-card{padding:14px;border:1px solid #e5e6f4;background:#f8f8ff;border-radius:13px;margin:5px 0 8px}.survey-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;margin:0!important;cursor:pointer}.survey-check input{width:18px;height:18px;flex:0 0 18px;margin:3px 0 0;accent-color:#6654d8}.survey-check b,.survey-check small{display:block}.survey-check b{font-size:12px;color:#273451}.survey-check small{font-size:10px;line-height:1.8;color:#6f7b92;font-weight:400;margin-top:4px}.survey-consent-card.final{display:flex;gap:12px;align-items:flex-start;background:#f4fbf8;border-color:#dcefe7}.survey-privacy-icon{font-size:21px}.survey-consent-card.final b{font-size:12px;color:#205d48}.survey-consent-card.final p{font-size:10px;line-height:1.8;color:#5e796e;margin:4px 0 0}
.survey-alert{margin-top:10px;padding:12px 13px;border-radius:11px;background:#fff8ed;border:1px solid #f3dfbd;color:#8a5a1a;font-size:11px;line-height:1.8}.survey-validation{margin:10px 0;padding:10px;border-radius:10px;background:#fff2f0;color:#a6382d;font-size:11px}.survey-actions{display:flex;gap:10px;margin-top:25px;padding-top:17px;border-top:1px solid #edf0f5}.survey-button{min-height:49px;border:0;border-radius:12px;padding:0 18px;font:700 12px 'Noto Sans Malayalam','DM Sans',sans-serif;cursor:pointer;transition:transform .15s,opacity .15s}.survey-button:active{transform:scale(.98)}.survey-button:disabled{opacity:.4;cursor:not-allowed}.survey-button.primary{margin-left:auto;min-width:145px;background:linear-gradient(110deg,#5446c8,#7668e7);color:white;box-shadow:0 7px 18px rgba(91,76,204,.2)}.survey-button.secondary{background:#f1f3f8;color:#53617c}.survey-footnote{text-align:center;font:9px 'DM Sans',sans-serif;color:#9aa4b6;margin:16px 0 0;line-height:1.6}
@media(max-width:600px){.survey-form{padding:17px 15px;border-radius:18px;margin-left:-2px;margin-right:-2px}.survey-intro{gap:11px}.survey-intro-icon{width:40px;height:40px;flex-basis:40px;border-radius:13px}.survey-meta{gap:6px}.survey-meta span{font-size:9px;padding:7px 9px}.survey-progress-wrap{padding:12px}.survey-field{margin-bottom:18px}.survey-field>label{font-size:11px}.survey-control{min-height:51px;font-size:13px!important}.survey-choice{min-height:62px;padding:10px}.survey-actions{position:sticky;bottom:8px;z-index:5;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);padding:10px 0 0;margin-top:20px}.survey-button{min-height:50px}.survey-button.primary{min-width:0;flex:1}.survey-button.secondary{padding:0 14px}}
@media(prefers-reduced-motion:reduce){.survey-progress-track i,.survey-button{transition:none}}


/* Reusable form primitives shared by every research module */
.form-component-label{display:block;font:700 12px/1.7 'Noto Sans Malayalam','DM Sans',sans-serif;color:#263452;margin:0 0 8px}
.form-component-label small{display:block;color:#758198;font-size:11px;font-weight:500;margin-top:2px}
.form-component-control{display:block;width:100%;min-height:49px;padding:12px 14px;border:1px solid #dfe4ef;border-radius:12px;background:#fbfcff;color:#1d2946;font:500 13px 'Noto Sans Malayalam','DM Sans',sans-serif;outline:none;transition:border-color .15s,box-shadow .15s}
.form-component-control:focus{border-color:#7769e8;box-shadow:0 0 0 4px rgba(119,105,232,.12)}
.form-component-help{display:block;margin-top:6px;color:#8a95a9;font-size:10px;line-height:1.6}
.form-component-choice{display:flex;align-items:center;gap:10px;min-height:52px;padding:11px 13px;border:1px solid #e1e5ef;border-radius:13px;background:#fff;cursor:pointer}
.form-component-choice:has(input:checked){border-color:#786ce4;background:#f7f6ff}
.form-component-choice input{accent-color:#6858d9}
.data-form:not(.survey-form) label{font-family:'Noto Sans Malayalam','DM Sans',sans-serif}
.data-form:not(.survey-form) input:not([type=checkbox]),.data-form:not(.survey-form) select,.data-form:not(.survey-form) textarea{min-height:47px;border-radius:11px;font-family:'Noto Sans Malayalam','DM Sans',sans-serif}
.data-form:not(.survey-form) button{min-height:46px}
