/* Caishi China — Finx Crimson. Public theme for LimeSurvey 6.17.16.
   Native form structure, conditional visibility and validation remain authoritative. */
:root {
  --cs-primary:#c41e3a; --cs-dark:#9b1028; --cs-tint:#fbf0f2;
  --cs-text:#1a1a1a; --cs-muted:#63656b; --cs-border:#e7e8eb;
  --bs-primary:#c41e3a; --bs-primary-rgb:196,30,58;
  --bs-link-color:#b21a34; --bs-link-hover-color:#9b1028;
  --cs-font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
html { scroll-padding-top:100px; }
body.caishi_forms { color:var(--cs-text); background:#f7f8fa !important; font:16px/1.65 var(--cs-font) !important; }
body.caishi_forms :is(h1,h2,h3,h4,h5,h6) { font-family:var(--cs-font); color:var(--cs-text); letter-spacing:-.025em; }
body.caishi_forms a { color:var(--cs-primary); text-underline-offset:3px; }
body.caishi_forms a:hover { color:var(--cs-dark); }
body.caishi_forms #survey-nav { min-height:72px; background:#fff; border-bottom:1px solid var(--cs-border); box-shadow:0 2px 10px #1a1a1a03; }
body.caishi_forms #survey-nav > .container-fluid { width:100%; max-width:824px; padding:12px 24px; }
body.caishi_forms #survey-nav .navbar-brand { padding:0; margin:0; }
body.caishi_forms #survey-nav img.logo { width:174px; height:42px; padding:0; max-height:none; object-fit:contain; }
body.caishi_forms #survey-nav .navbar-toggler { min-width:44px; min-height:44px; border:1px solid var(--cs-border); border-radius:10px; color:var(--cs-primary); }
body.caishi_forms #outerframeContainer > .row > .col-centered { width:100%; max-width:824px; padding-inline:24px; }
body.caishi_forms #welcome-container { max-width:100%; padding:0; margin:32px 0 28px; }
body.caishi_forms #welcome-container::before { content:""; display:block; width:32px; height:4px; border-radius:4px; background:var(--cs-primary); margin-bottom:16px; }
body.caishi_forms .survey-name { font-size:clamp(25px,3vw,32px); font-weight:600; line-height:1.4; margin:0 0 16px; overflow-wrap:anywhere; }
body.caishi_forms :is(.survey-description,.survey-welcome) { font-size:15px; line-height:1.8; color:var(--cs-muted); margin:0 0 6px; }
body.caishi_forms :is(.survey-description,.survey-welcome) p { margin:0 0 8px; }
body.caishi_forms .group-outer-container { margin:0 0 20px; }
body.caishi_forms .group-container { margin:0; padding:28px; background:#fff; border:1px solid var(--cs-border); border-radius:16px; box-shadow:0 4px 16px #1a1a1a03; }
body.caishi_forms .question-container { border:0; border-bottom:1px solid #eff0f2; border-radius:0 !important; margin:0 0 24px; padding:0 0 24px; background:transparent; box-shadow:none; scroll-margin-top:100px; }
body.caishi_forms .question-container:last-of-type { border-bottom:0; margin-bottom:0; padding-bottom:0; }
body.caishi_forms .question-title-container { padding:0; margin:0 0 10px; display:flex; align-items:baseline; gap:6px; }
body.caishi_forms :is(.question-text,.ls-label-question) { margin:0; font-size:16px; font-weight:600; line-height:1.5; }
body.caishi_forms .question-title-container .asterisk { color:var(--cs-primary); font-size:10px; position:static; }
body.caishi_forms .answer-container { margin:0; padding:0; }
body.caishi_forms :is(.question-help-container,.question-valid-container) { margin:0; padding:0; font-size:13px; line-height:1.7; color:var(--cs-muted); }
body.caishi_forms .question-help-container:not(.d-none):has(*) { margin-bottom:8px; }
body.caishi_forms .question-valid-container .ls-questionhelp { margin-bottom:8px; }
body.caishi_forms .em_regex_validation.ls-em-success { display:none; }
body.caishi_forms .question-valid-container .ls-em-error { color:#b42318; font-style:normal; margin-bottom:8px; }
body.caishi_forms :is(.form-control,.form-select) { min-height:46px; border:1px solid #d3d5da; border-radius:10px; background:#fff; color:var(--cs-text); padding:10px 13px; font:16px/1.5 var(--cs-font); box-shadow:none; }
body.caishi_forms textarea.form-control { min-height:112px; resize:vertical; }
body.caishi_forms :is(.form-control,.form-select):focus { border-color:var(--cs-primary); box-shadow:0 0 0 3px #c41e3a14; outline:none; }
body.caishi_forms :is(.form-control,.form-select):disabled { background:#f3f4f6; color:#82848c; cursor:not-allowed; }
body.caishi_forms .question-container.input-error .form-control { border-color:#b42318; }
body.caishi_forms .privacy { margin:24px 0 0; padding:22px 24px; background:#f0f1f4; border:1px solid #e7e8ec; border-radius:14px; }
body.caishi_forms .privacy > .col-12 { padding:0; }
body.caishi_forms .ls-privacy-block { margin:0; }
body.caishi_forms #datasecurity_notice_label { color:#4a4a4a; font-size:13px; font-weight:600; letter-spacing:.02em; }
body.caishi_forms #datasecurity_notice { margin:8px 0 16px; color:var(--cs-muted); font-size:13px; line-height:1.85; }
body.caishi_forms .datasecurity-checkbox-container { margin:0; }
body.caishi_forms #datasecurity_error { margin:12px 0; border-radius:8px; }
/* Use native controls for predictable pointer/keyboard input and accessible names.
   Limit this replacement to ordinary option lists and the consent row, not matrices. */
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(div,li).checkbox-item,
body.caishi_forms .ls-answers :is(div,li).radio-item { position:relative; padding:0; margin:0 0 8px; min-height:46px; }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(div,li).checkbox-item > label,
body.caishi_forms .ls-answers :is(div,li).radio-item > label { display:block; width:100%; min-height:46px; padding:11px 14px 11px 46px; margin:0; border:1px solid #e1e3e8; border-radius:10px; background:#fff; color:#4a4a4a; font-size:15px; line-height:1.5; font-weight:400; cursor:pointer; }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(div,li).checkbox-item > label::before,
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(div,li).checkbox-item > label::after,
body.caishi_forms .ls-answers :is(div,li).radio-item > label::before,
body.caishi_forms .ls-answers :is(div,li).radio-item > label::after { content:none !important; display:none; }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(div,li).checkbox-item > input[type=checkbox],
body.caishi_forms .ls-answers :is(div,li).radio-item > input[type=radio] {
  appearance:auto !important; -webkit-appearance:auto !important; accent-color:var(--cs-primary);
  position:absolute; z-index:1; left:15px; top:14px; margin:0; width:18px; height:18px;
  opacity:1; clip:auto; background:transparent !important; background-image:none !important;
  border:0; box-shadow:none; cursor:pointer;
}
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(.checkbox-item,.radio-item) > input:checked + label { background:var(--cs-tint); border-color:#d993a0; color:var(--cs-dark) !important; }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(.checkbox-item,.radio-item) > input:focus-visible { outline:2px solid var(--cs-primary); outline-offset:3px; }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(.checkbox-item,.radio-item) > input:focus-visible + label { box-shadow:0 0 0 3px #c41e3a18; border-color:var(--cs-primary); }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(.checkbox-item,.radio-item) > input:disabled,
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(.checkbox-item,.radio-item) > input:disabled + label { opacity:.55; cursor:not-allowed; }
body.caishi_forms :is(.ls-answers,.datasecurity-checkbox-container) :is(div,li).checkbox-item > input[type=checkbox]:disabled,
body.caishi_forms .ls-answers :is(div,li).radio-item > input[type=radio]:disabled { opacity:.55; cursor:not-allowed; }
body.caishi_forms .datasecurity-checkbox-container .checkbox-item { margin:0; }
body.caishi_forms .datasecurity-checkbox-container > .checkbox-item { width:100%; }
body.caishi_forms .datasecurity-checkbox-label { font-size:14px !important; }
body.caishi_forms #navigator-container { margin:24px 0 48px; padding:0; }
body.caishi_forms .btn { min-height:46px; padding:10px 26px; border-radius:24px; font-size:15px; font-weight:500; line-height:1.5; }
body.caishi_forms .btn-primary { min-width:160px; background:var(--cs-primary); border-color:var(--cs-primary); color:#fff; box-shadow:0 4px 12px #c41e3a12; }
body.caishi_forms .btn-primary:is(:hover,:focus,:active,.active) { background:var(--cs-dark); border-color:var(--cs-dark); color:#fff; }
body.caishi_forms .btn-primary:is(:disabled,.disabled) { background:#d598a3; border-color:#d598a3; color:#fff; cursor:not-allowed; box-shadow:none; }
body.caishi_forms :is(.btn-outline-secondary,.btn-default) { color:#4a4a4a; border-color:#d3d5da; background:#fff; box-shadow:none; }
body.caishi_forms :is(.btn-outline-secondary,.btn-default):hover { color:var(--cs-primary); border-color:var(--cs-primary); background:var(--cs-tint); }
body.caishi_forms :is(.btn,a):focus-visible { outline:3px solid #c41e3a66; outline-offset:3px; }
body.caishi_forms .progress { background:#f1e5e7; height:5px; border-radius:5px; }
body.caishi_forms .progress-bar { background:var(--cs-primary); }
body.caishi_forms .dropdown-menu { border:1px solid var(--cs-border); border-radius:12px; box-shadow:0 8px 24px #1a1a1a0d; }
body.caishi_forms .modal-content { border:0; border-radius:16px; box-shadow:0 16px 60px #1a1a1a20; }
body.caishi_forms.cs-error-page { padding-top:0; }
body.caishi_forms .cs-error-shell { width:100%; max-width:824px; padding:40px 24px; margin:auto; }
body.caishi_forms .cs-error-card { padding:32px; border:1px solid var(--cs-border); border-radius:16px; background:#fff; box-shadow:0 4px 16px #1a1a1a03; }
body.caishi_forms .cs-error-card h1 { font-size:26px; line-height:1.4; margin:0 0 20px; }
body.caishi_forms .cs-error-card .error-content { color:var(--cs-muted); }
body.caishi_forms .cs-error-card .url-wrapper { margin-top:24px; }
body.caishi_forms .cs-error-card .url-wrapper a { display:inline-flex; min-height:46px; align-items:center; padding:10px 24px; border-radius:24px; color:#fff; background:var(--cs-primary); text-decoration:none; }
body.caishi_forms .cs-error-card .url-wrapper a:hover { background:var(--cs-dark); }
body.caishi_forms .cs-error-card pre { overflow:auto; }
/* Native completion and preview share this wrapper; retain preview warnings. */
body.caishi_forms .completed-wrapper { width:100%; max-width:776px; margin:40px auto; padding:32px; background:#fff; border:1px solid var(--cs-border); border-radius:16px; box-shadow:0 4px 16px #1a1a1a03; }
body.caishi_forms .completed-wrapper > .completed-text { margin:0; padding:0; }
body.caishi_forms .completed-wrapper .completed-heading { font-size:26px; line-height:1.4; margin-bottom:18px; }
body.caishi_forms .completed-wrapper .completed-Content { color:var(--cs-muted); }
body.caishi_forms .completed-wrapper p { margin-bottom:14px; }
body.caishi_forms .completed-wrapper p:last-child { margin-bottom:0; }
body.caishi_forms .completed-wrapper .url-wrapper { margin-top:20px; }
body.caishi_forms :is(.ls-block-footer,.ls-powered,.ls-block-numberofquestions),
body.caishi_forms a[href*="limesurvey.org"] { display:none !important; }
@media (max-width:575px) {
  html { scroll-padding-top:90px; }
  body.caishi_forms #survey-nav { min-height:68px; }
  body.caishi_forms #survey-nav > .container-fluid { padding:10px 20px; }
  body.caishi_forms #survey-nav img.logo { width:156px; height:38px; }
  body.caishi_forms #outerframeContainer > .row > .col-centered { padding-inline:16px; }
  body.caishi_forms #welcome-container { margin:24px 4px 22px; }
  body.caishi_forms .survey-name { font-size:24px; }
  body.caishi_forms :is(.survey-description,.survey-welcome) { font-size:14px; }
  body.caishi_forms .group-container { padding:22px 20px; border-radius:14px; }
  body.caishi_forms .question-container { margin-bottom:20px; padding-bottom:20px; }
  body.caishi_forms .privacy { padding:20px; margin-top:20px; }
  body.caishi_forms #navigator-container { margin:20px 0 32px; }
  body.caishi_forms #ls-button-submit { width:100%; }
  body.caishi_forms .cs-error-shell { padding:28px 16px; }
  body.caishi_forms .cs-error-card { padding:24px 20px; }
  body.caishi_forms .completed-wrapper { margin-block:28px; padding:24px 20px; border-radius:14px; }
}
@media (prefers-reduced-motion:reduce) {
  body.caishi_forms *, body.caishi_forms *::before, body.caishi_forms *::after { scroll-behavior:auto !important; transition-duration:0.01ms !important; animation-duration:0.01ms !important; }
}
