:root{--portal-blue:#0b4db8;--portal-ink:#15233a;--portal-soft:#f4f7fb;--portal-line:#e3e9f2;--portal-green:#14804a}

/* Participant authentication shell: pending -> login/app, with no private UI flash. */
html.auth-locked,body.auth-locked{height:100%;overflow:hidden!important;overscroll-behavior:none!important}
body.auth-locked{position:relative}
#app-shell[hidden],body.auth-locked #app-shell{display:none!important}
.auth-pending-screen{position:fixed;inset:0;z-index:10010;display:none;place-items:center;min-height:100dvh;padding:24px;background:radial-gradient(circle at 50% 18%,#eef5ff 0,#f7f9fc 38%,#fff 100%);pointer-events:none}
body.auth-pending .auth-pending-screen{display:grid}
.auth-pending-screen[hidden]{display:none!important}
body.auth-pending .login-gate{display:none!important}
.auth-pending-spinner{width:30px;height:30px;border:3px solid #dce7f7;border-top-color:var(--portal-blue);border-radius:50%;animation:vospAuthSpin .8s linear infinite}
@keyframes vospAuthSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.auth-pending-spinner{animation:none;border-top-color:#7fa7e9}}
.login-gate{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:auto;pointer-events:auto}
.login-code-help{margin:-5px 3px 1px;color:#6a7789;font-size:12px;line-height:1.45}.login-card input#login-access-code{text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.login-gate,.survey-overlay,.admin-overlay{position:fixed;inset:0;z-index:9999;background:#f7f9fc}
.login-gate{display:grid;place-items:center;min-height:100dvh;padding:24px;background:radial-gradient(circle at 50% 18%,#eef5ff 0,#f7f9fc 38%,#fff 100%)}
.login-gate[hidden],.login-gate.is-hidden{display:none!important;pointer-events:none!important}.login-top-language{position:absolute;right:22px;top:max(18px,env(safe-area-inset-top));display:flex;gap:6px;white-space:nowrap}.preview-lang{border:0;background:transparent;padding:6px 7px;display:flex;align-items:center;gap:5px;font-size:12px;color:#5b6778}.preview-lang.active{color:var(--portal-blue);font-weight:700}.preview-lang img{width:18px;height:12px;object-fit:cover;border-radius:2px}.login-card{width:min(390px,100%);padding:42px 30px 28px;background:#fff;border:1px solid #edf0f5;border-radius:28px;box-shadow:0 18px 60px rgba(31,50,81,.10);text-align:center}.login-wordmark{font-size:42px;font-weight:800;letter-spacing:-2px;color:#0a45aa}.login-wordmark span{font-weight:500}.login-fullname{margin:8px 0 34px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#798494}.login-card form{display:grid;gap:14px;text-align:left}.login-card label span{display:block;margin:0 0 7px 3px;font-size:12px;font-weight:700;color:#556173}.login-card input,.admin-login-view input{width:100%;height:50px;border:1px solid #dfe5ee;border-radius:14px;padding:0 15px;font-size:16px;background:#fbfcfe;outline:none}.login-card input:focus,.admin-login-view input:focus{border-color:#7fa7e9;box-shadow:0 0 0 3px rgba(11,77,184,.08)}.login-card button[type=submit],.admin-login-view button[type=submit]{height:52px;border:0;border-radius:14px;background:var(--portal-blue);color:#fff;font-weight:800;font-size:15px}.login-card input,.login-card button,.preview-lang{pointer-events:auto}.login-card button,.preview-lang{touch-action:manipulation}.login-error{min-height:18px;margin:0;color:#c0392b;font-size:12px}.admin-entry{margin-top:18px;border:0;background:none;color:#8b95a5;font-size:11px;text-decoration:underline}.preview-note{margin:20px 0 0;font-size:9px;letter-spacing:.12em;color:#a4acb8}
.survey-section{margin-bottom:110px}.survey-start-button{border:0;border-radius:999px;padding:12px 18px;background:var(--portal-blue);color:white;font-weight:800}.survey-nav-link{color:#475467!important;font-weight:750!important}.survey-icon{font-size:19px;font-weight:900}.menu-logout{margin-top:10px!important;color:#7c8796!important}
.survey-overlay,.admin-overlay{display:none;background:rgba(18,29,46,.42);backdrop-filter:blur(6px)}.survey-overlay.open,.admin-overlay.open{display:grid}.survey-app{width:min(760px,100%);height:100dvh;margin:auto;background:#fff;display:flex;flex-direction:column;overflow:hidden}.survey-app-header{height:66px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;padding:0 18px;border-bottom:1px solid var(--portal-line)}.survey-app-header button,.admin-header button{border:0;background:transparent;font-size:28px;color:#687487}.survey-app-header div{display:flex;flex-direction:column}.survey-app-header strong{color:var(--portal-blue);font-size:14px}.survey-app-header span{font-size:11px;color:#768196}.survey-progress-text{font-weight:800!important;color:#687487!important}.survey-progress{height:4px;background:#eef2f7}.survey-progress span{display:block;height:100%;width:20%;background:var(--portal-blue);transition:width .25s ease}.survey-form{flex:1;overflow:auto;padding:26px 22px calc(110px + env(safe-area-inset-bottom))}.survey-stage{max-width:680px;margin:auto}.survey-step-kicker{font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--portal-blue);text-transform:uppercase}.survey-stage h2{margin:8px 0 8px;font-size:25px;letter-spacing:-.03em;color:var(--portal-ink)}.survey-stage .intro{margin:0 0 24px;color:#728094;font-size:14px;line-height:1.55}.question-card{margin:0 0 14px;padding:18px;background:#fff;border:1px solid var(--portal-line);border-radius:18px}.question-card.error{border-color:#dd6b5d;background:#fffafa}.question-title{display:flex;gap:8px;font-size:14px;font-weight:750;line-height:1.45;color:#26364f}.required-dot{color:#d94635}.rating-row{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:14px}.rating-option input{position:absolute;opacity:0}.rating-option span{display:grid;place-items:center;height:46px;border:1px solid #dfe5ed;border-radius:12px;font-size:12px;color:#657185;background:#fbfcfe}.rating-option input:checked+span{border-color:var(--portal-blue);background:#eef5ff;color:var(--portal-blue);font-weight:900;box-shadow:0 0 0 2px rgba(11,77,184,.08)}.identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.identity-grid label span{display:block;margin-bottom:7px;font-size:12px;font-weight:700;color:#546175}.identity-grid input,.reason-box textarea,.comment-box textarea{width:100%;border:1px solid #dfe5ed;border-radius:13px;background:#fbfcfe;padding:13px;font-size:15px;outline:none}.reason-box textarea,.comment-box textarea{min-height:96px;resize:vertical;line-height:1.5}.choice-grid{display:grid;gap:9px;margin-top:16px}.choice-card{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border:1px solid #e0e6ee;border-radius:14px;background:#fff}.choice-card input{width:20px;height:20px;accent-color:var(--portal-blue);flex:none}.choice-card strong{display:block;font-size:13px;color:#24354e}.choice-card small{display:block;margin-top:3px;font-size:11px;line-height:1.4;color:#7a8696}.choice-counter{position:sticky;top:-26px;z-index:2;margin:0 -22px 14px;padding:10px 22px;background:rgba(255,255,255,.96);border-bottom:1px solid #edf1f5;font-size:12px;font-weight:800;color:var(--portal-blue)}.reason-box{margin-top:12px;padding:14px;background:#f8fafc;border-radius:14px}.reason-box label{display:block;margin-bottom:8px;font-size:12px;font-weight:800}.survey-actions{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);display:flex;gap:10px;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);border-top:1px solid var(--portal-line);backdrop-filter:blur(12px)}.survey-actions button{height:48px;border:0;border-radius:13px;padding:0 20px;font-weight:800}.survey-actions .secondary{background:#eef2f7;color:#586577}.survey-actions #survey-next,.survey-actions #survey-submit{margin-left:auto;background:var(--portal-blue);color:#fff;min-width:118px}.survey-validation{position:fixed;left:50%;bottom:78px;transform:translateX(-50%);width:min(700px,calc(100% - 32px));padding:0 4px;color:#c0392b;font-size:12px;text-align:center;pointer-events:none}.survey-success{display:grid;place-items:center;min-height:58vh;text-align:center}.survey-success .check{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#eaf8f0;color:var(--portal-green);font-size:30px;font-weight:900}.survey-success h2{margin:18px 0 8px}.survey-success p{color:#718096}
.admin-overlay{z-index:10020}.admin-shell{width:min(1120px,100%);height:100dvh;margin:auto;background:#f5f7fb;overflow:auto}.admin-header{position:sticky;top:0;z-index:4;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fff;border-bottom:1px solid var(--portal-line)}.admin-header div{display:flex;gap:10px;align-items:baseline}.admin-header strong{color:var(--portal-blue)}.admin-header span{font-size:10px;letter-spacing:.1em;color:#8993a1}.admin-login-view{width:min(390px,calc(100% - 40px));margin:13vh auto;padding:28px;background:#fff;border-radius:22px;box-shadow:0 14px 50px rgba(33,47,72,.08)}.admin-login-view form{display:grid;gap:12px}.admin-dashboard{padding:22px}.admin-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.admin-toolbar h2{margin:0}.admin-toolbar p{margin:5px 0;color:#8791a0;font-size:11px}.admin-toolbar div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.admin-toolbar button{border:1px solid #dce3ec;background:#fff;border-radius:10px;padding:9px 11px;font-size:11px}.admin-toolbar button.danger{color:#b9382c}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.metric{padding:18px;background:#fff;border-radius:18px;border:1px solid #e7ebf1}.metric span{font-size:11px;color:#7d8897}.metric strong{display:block;margin-top:5px;font-size:24px;color:#20324c}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-panel{background:#fff;border:1px solid #e7ebf1;border-radius:18px;padding:18px}.admin-panel h3{margin:0 0 16px;font-size:14px}.bar-row{display:grid;grid-template-columns:minmax(110px,1fr) 2fr 34px;gap:8px;align-items:center;margin:10px 0}.bar-row label{font-size:11px;color:#526078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-track{height:9px;border-radius:999px;background:#eef2f7;overflow:hidden}.bar-fill{height:100%;background:var(--portal-blue);border-radius:999px}.bar-row b{font-size:11px;text-align:right}.recent-item{display:grid;grid-template-columns:1fr auto;gap:4px;padding:10px 0;border-bottom:1px solid #edf0f4}.recent-item strong{font-size:12px}.recent-item span,.recent-item small{font-size:10px;color:#8893a2}.recent-item small{grid-column:1/-1}
@media(max-width:720px){.login-card{box-shadow:none;border:0;background:transparent;padding-inline:18px}.login-wordmark{font-size:38px}.survey-start-button{padding:10px 13px;font-size:12px}.identity-grid{grid-template-columns:1fr}.survey-app{width:100%}.survey-form{padding:22px 16px 110px}.choice-counter{top:-22px;margin:0 -16px 12px;padding:9px 16px}.rating-row{gap:5px}.rating-option span{height:43px;font-size:11px}.admin-dashboard{padding:14px}.admin-toolbar{display:block}.admin-toolbar div:last-child{justify-content:flex-start;margin-top:12px}.metric-grid{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:minmax(92px,1fr) 1.5fr 28px}.bottom-nav small{white-space:nowrap;font-size:9px}.language-option span{white-space:nowrap}.desktop-nav{white-space:nowrap}}
@media(max-width:360px){.login-top-language{right:12px}.preview-lang{font-size:10px;padding-inline:4px}.survey-stage h2{font-size:22px}.question-card{padding:15px}.rating-option span{height:40px;font-size:10px}.metric strong{font-size:20px}}

/* V10 survey reliability / validation */
.question-card.field-invalid{border-color:#e36b5d;background:#fffafa}.identity-grid label.field-invalid input,.reason-box.field-invalid textarea,.comment-box.field-invalid textarea{border-color:#e36b5d;box-shadow:0 0 0 2px rgba(227,107,93,.08)}.survey-section .section-heading{align-items:center}.survey-section{padding-bottom:8px}.survey-nav-link:hover{background:var(--blue-050)!important;color:var(--blue-900)!important}

/* V11: compact Vietnamese desktop navigation */
@media (min-width: 721px){
  html[lang="vi"] .desktop-nav{gap:0;}
  html[lang="vi"] .desktop-nav a,
  html[lang="vi"] .desktop-nav button{font-size:12px;font-weight:700;padding:9px 8px;letter-spacing:-.01em;}
  html[lang="vi"] .header-inner{max-width:1240px;grid-template-columns:minmax(145px,1fr) auto minmax(175px,1fr);gap:16px;}
  html[lang="vi"] .brand-program b{font-size:22px;}
  html[lang="vi"] .brand-program small{font-size:9px;}
  html[lang="vi"] .language-option{font-size:10px;padding-inline:7px;}
}


/* V24 day-based survey control */
.survey-entry-actions{display:flex;align-items:center;gap:10px}.survey-open-status{font-size:10px;font-weight:900;letter-spacing:.08em;color:#7b8797;background:#eef2f6;border-radius:999px;padding:7px 10px}.survey-open-status.is-open{color:#087a45;background:#e8f8ef}.survey-gate-note{margin:12px 0 0;color:#6f7c8f;font-size:12px}.survey-day-chips{display:flex;gap:6px;overflow:auto;padding:12px 0 2px;scrollbar-width:none}.survey-day-chips::-webkit-scrollbar{display:none}.survey-day-chip{min-width:62px;border:1px solid #e1e7ef;background:#f7f9fc;color:#8791a0;border-radius:11px;padding:8px;text-align:center;font-size:10px;font-weight:900}.survey-day-chip small{display:block;font-size:9px;font-weight:600;margin-top:2px}.survey-day-chip.open{border-color:#9dd8b9;background:#edf9f2;color:#087a45}.today-survey-access{margin-top:14px;border:1px solid #dbe4ef;background:#fff;border-radius:20px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.today-survey-copy{display:flex;gap:12px;align-items:center;min-width:0}.today-survey-icon{width:38px;height:38px;border-radius:12px;background:#edf4ff;color:#0b4db8;display:grid;place-items:center;font-weight:900}.today-survey-copy div{min-width:0}.today-survey-copy small{display:block;color:#0b4db8;font-size:9px;letter-spacing:.08em;font-weight:900}.today-survey-copy strong{display:block;color:#162a46;font-size:15px}.today-survey-copy p{margin:3px 0 0;color:#738095;font-size:11px;line-height:1.4}.today-survey-button{border:0;border-radius:12px;padding:11px 14px;background:#0b4db8;color:#fff;font-weight:850;white-space:nowrap}.today-survey-button:disabled,.survey-start-button:disabled{background:#e8edf3!important;color:#8c96a3!important;cursor:not-allowed}.admin-survey-days{margin:16px 0 18px;padding:16px;background:#fff;border:1px solid #e0e6ee;border-radius:16px}.admin-survey-days-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.admin-survey-days-head small{color:#0b4db8;font-weight:900;font-size:9px;letter-spacing:.08em}.admin-survey-days-head h3{margin:4px 0;font-size:17px}.admin-survey-days-head p{margin:0;color:#7a8696;font-size:11px}.admin-survey-days-head>span{background:#eff4fa;color:#40516a;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900}.admin-day-controls{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:14px}.admin-day-control{border:1px solid #e5eaf0;border-radius:12px;padding:10px 8px;background:#fbfcfe}.admin-day-control div{display:grid;gap:1px}.admin-day-control span{font-size:9px;color:#0b4db8;font-weight:900}.admin-day-control strong{font-size:13px}.admin-day-control small{font-size:9px;color:#8a94a2}.admin-day-control button{width:100%;margin-top:8px;border:0;border-radius:8px;padding:8px 4px;background:#edf1f5;color:#6f7b8b;font-weight:900;font-size:10px}.admin-day-control button.open{background:#e6f7ed;color:#087a45}.survey-app-header div small{font-size:9px;color:#0b4db8;font-weight:800;margin-top:1px}
@media(max-width:720px){.today-survey-access{align-items:stretch;flex-direction:column;padding:14px}.today-survey-button{width:100%;height:44px}.survey-section .content-section-heading{align-items:flex-start}.survey-entry-actions{width:100%;justify-content:space-between}.admin-day-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.survey-day-chip{min-width:58px}.survey-gate-note{font-size:11px;line-height:1.45}}

/* V28 — keep Today survey card aligned with weather and agenda */
.today-hub-v26 .today-survey-access{margin-top:0!important;align-self:stretch!important}


/* V37 participant-code survey + local-only admin name mapping */
.participant-code-card{padding:16px 18px}.participant-code-input span{display:block;margin-bottom:8px;font-size:12px;font-weight:800;color:#536176}.participant-code-input input{width:100%;border:1px solid #dfe5ed;border-radius:13px;background:#fbfcfe;padding:14px 15px;font-size:20px;font-weight:850;letter-spacing:.08em;outline:none}.participant-code-input.field-invalid input,.participant-code-card.field-invalid input{border-color:#e36b5d;box-shadow:0 0 0 2px rgba(227,107,93,.08)}.participant-code-saved{display:flex;align-items:center;justify-content:space-between;gap:14px}.participant-code-saved small{display:block;color:#758195;font-size:10px}.participant-code-saved strong{display:block;margin-top:3px;color:#17335a;font-size:22px;letter-spacing:.06em}.participant-code-saved button{border:1px solid #d7e0ea;background:#fff;border-radius:10px;padding:9px 11px;color:#52647d;font-size:11px;font-weight:800}.survey-success-code{display:inline-block;margin-top:12px;padding:7px 10px;border-radius:999px;background:#f0f4f8;color:#53657d;font-size:11px;font-weight:800}.admin-mapping-panel{margin:16px 0 18px;padding:16px;background:#fff;border:1px solid #e0e6ee;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-mapping-copy small{color:#0b4db8;font-weight:900;font-size:9px;letter-spacing:.08em}.admin-mapping-copy h3{margin:4px 0;font-size:17px}.admin-mapping-copy p{margin:0 0 8px;color:#7a8696;font-size:11px;line-height:1.5}.admin-mapping-copy strong{font-size:11px;color:#087a45}.admin-mapping-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.admin-mapping-actions button,.admin-map-upload{border:1px solid #dce3ec;background:#fff;border-radius:10px;padding:9px 11px;font-size:11px;font-weight:700;color:#33465f;cursor:pointer}.admin-map-upload{background:#0b4db8;color:#fff;border-color:#0b4db8}.admin-mapping-actions button{color:#b9382c}@media(max-width:720px){.admin-mapping-panel{align-items:stretch;flex-direction:column}.admin-mapping-actions{justify-content:flex-start}.participant-code-saved strong{font-size:20px}}

/* V73 — clear completion action at the lower center of the success view */
.survey-success>div{display:flex;flex-direction:column;align-items:center}.survey-success-close{min-width:164px;height:52px;margin-top:42px;border:0;border-radius:14px;background:var(--portal-blue);color:#fff;font:inherit;font-size:15px;font-weight:850;box-shadow:0 9px 20px rgba(11,77,184,.2);cursor:pointer}.survey-success-close:focus-visible{outline:3px solid rgba(11,77,184,.25);outline-offset:3px}@media(max-width:720px){.survey-success-close{width:min(260px,84vw);height:54px;margin-top:48px;font-size:16px}}

/* V38 survey module */
.survey-subheading{margin-top:28px!important}.daily-program-grid{display:grid;gap:8px;margin-top:14px}.daily-program-option input{position:absolute;opacity:0}.daily-program-option span{display:block;padding:13px 14px;border:1px solid #dfe5ed;border-radius:13px;background:#fbfcfe;color:#33465f;font-size:13px;font-weight:750}.daily-program-option input:checked+span{border-color:var(--portal-blue);background:#eef5ff;color:var(--portal-blue);box-shadow:0 0 0 2px rgba(11,77,184,.08)}.rating-option span{height:auto;min-height:52px;gap:2px;padding:7px 3px}.rating-option span small{display:block;font-size:8px;line-height:1.15;color:#8a95a5;font-weight:600;text-align:center}.rating-option input:checked+span small{color:var(--portal-blue)}.optional-note{display:block;margin:7px 0 10px;color:#8a95a5;font-size:10px}.admin-filter{height:34px;border:1px solid #dce3ec;border-radius:10px;background:#fff;padding:0 10px;font-size:11px;color:#33465f}.admin-day-control.is-disabled{opacity:.6}.admin-day-control.is-disabled button{font-size:8px}.missing-list{display:flex;flex-wrap:wrap;gap:7px}.missing-chip{display:grid;padding:8px 10px;border:1px solid #e3e8ef;border-radius:10px;background:#fafbfd}.missing-chip b{font-size:11px}.missing-chip small{font-size:9px;color:#8591a1}.admin-complete{color:#087a45;font-size:12px;font-weight:800}.admin-empty{color:#8993a1;font-size:11px}.admin-comment{padding:11px 0;border-bottom:1px solid #edf0f4}.admin-comment strong{font-size:11px;color:#0b4db8}.admin-comment p{margin:4px 0;color:#33465f;font-size:12px;line-height:1.5}.admin-comment small{font-size:9px;color:#919aa8}.admin-panel-wide{grid-column:1/-1}@media(max-width:720px){.rating-option span{min-height:50px;font-size:12px}.rating-option span small{font-size:7px}.admin-filter{width:100%;margin-bottom:4px}.admin-panel-wide{grid-column:auto}}

/* V39 — survey reliability and admin operation */
.survey-open-status.is-complete,.survey-day-chip.complete{color:#087a45;background:#e8f8ef;border-color:#9dd8b9}.survey-day-chip.complete small{color:#087a45;font-weight:850}.choice-counter.complete{background:#e8f8ef;color:#087a45;border-color:#9dd8b9}.survey-actions button:disabled{opacity:.45;cursor:not-allowed}.admin-day-control.is-today{border-color:#8fb6ed;background:#f2f7ff;box-shadow:0 0 0 2px rgba(11,77,184,.05)}.admin-day-control.is-today span{color:#0b4db8}.bar-row b{display:grid;justify-items:end;line-height:1.1}.bar-row b small{font-size:8px;color:#8b95a3;font-weight:700;margin-top:2px}

/* V66 — clear survey action cards */
.survey-day-chips{display:grid;gap:12px;overflow:visible;padding:16px 0 0}.survey-feature-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;border:1px solid #dce4ee;border-radius:18px;background:#f7f9fc}.survey-feature-card.action{border-color:#8db8f2;background:#eef6ff;box-shadow:0 8px 20px rgba(11,77,184,.08)}.survey-feature-card.complete{border-color:#9dd8b9;background:#edf9f2}.survey-feature-card.upcoming{background:#f7f8fa;color:#7d8795}.survey-feature-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#dce9fb;color:#0b4db8;font-size:22px;font-weight:900}.survey-feature-card.complete .survey-feature-icon{background:#dff4e7;color:#087a45}.survey-feature-card.upcoming .survey-feature-icon{background:#e9edf2;color:#7c8796}.survey-feature-card small{display:block;color:#0b4db8;font-size:10px;font-weight:900;letter-spacing:.08em}.survey-feature-card.complete small{color:#087a45}.survey-feature-card.upcoming small{color:#7b8797}.survey-feature-card strong{display:block;margin-top:4px;color:#1f3553;font-size:16px;line-height:1.45}.survey-feature-card button,.survey-status-card button{border:0;border-radius:11px;padding:11px 14px;background:#0b4db8;color:#fff;font-weight:850;white-space:nowrap;cursor:pointer}.survey-feature-state{color:#087a45;font-size:12px;font-weight:850;white-space:nowrap}.survey-feature-card.upcoming .survey-feature-state{color:#7b8797}.survey-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.survey-status-card{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:104px;padding:13px;border:1px solid #e1e7ef;border-radius:15px;background:#fff}.survey-status-card.action{border-color:#9bbff0;background:#f4f8ff}.survey-status-card.complete{border-color:#a7dbbd;background:#f3fbf6}.survey-status-card.upcoming{background:#fafbfc}.survey-status-card.is-today{box-shadow:0 0 0 2px rgba(11,77,184,.10)}.survey-status-card small{display:block;color:#5078ae;font-size:10px;font-weight:900;letter-spacing:.05em}.survey-status-card.complete small{color:#258154}.survey-status-card.upcoming small{color:#8a95a3}.survey-status-card strong{display:block;margin:3px 0;color:#213854;font-size:14px}.survey-status-card span{display:block;color:#6d7c90;font-size:11px;font-weight:750}.survey-status-card.action span{color:#0b4db8}.survey-status-card.complete span{color:#087a45}.survey-status-card button{padding:9px 10px;font-size:11px}@media(max-width:720px){.survey-feature-card{grid-template-columns:42px minmax(0,1fr);padding:15px;gap:11px}.survey-feature-icon{width:42px;height:42px;font-size:19px}.survey-feature-card strong{font-size:14px}.survey-feature-card button,.survey-feature-state{grid-column:1/-1;width:100%}.survey-feature-card button{min-height:44px}.survey-feature-state{padding:10px;text-align:center;border-radius:10px;background:rgba(255,255,255,.62)}.survey-status-grid{grid-template-columns:1fr}.survey-status-card{min-height:78px;padding:12px 13px}.survey-status-card button{min-height:38px}.survey-day-chips{gap:10px}}

#admin-map-backup{color:#0b4db8}.admin-mapping-actions #admin-map-clear{color:#b9382c}

/* V119 — server roster only, protected survey reset, and gentle open-survey cue */
.survey-reset-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.survey-reset-card small{display:block;color:#a34136;font-size:10px;font-weight:900;letter-spacing:.08em}.survey-reset-card h2{margin:5px 0;font-size:19px}.survey-reset-card p{margin:0;color:#6f7c8f;font-size:12px;line-height:1.55}.survey-reset-card strong{display:block;margin-top:10px;color:#a34136;font-size:12px}.danger{background:#b9382c!important;color:#fff!important;border-color:#b9382c!important}.admin-reset-overlay{position:fixed;inset:0;z-index:10050;display:none;align-items:end;justify-content:center}.admin-reset-overlay.open{display:flex}.admin-reset-backdrop{position:absolute;inset:0;border:0;background:rgba(16,29,49,.52)}.admin-reset-sheet{position:relative;z-index:1;width:min(560px,calc(100% - 28px));max-height:min(720px,calc(100vh - 28px));overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:24px;box-shadow:0 -16px 50px rgba(16,29,49,.2)}.admin-reset-sheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-reset-sheet header small{color:#a34136;font-size:10px;font-weight:900;letter-spacing:.08em}.admin-reset-sheet h2{margin:4px 0 0;font-size:23px}.admin-reset-close{border:0;background:#edf1f5;color:#495a70;border-radius:50%;width:34px;height:34px;font-size:24px;line-height:1;cursor:pointer}.admin-reset-sheet>p{margin:16px 0 12px;color:#5f6e81;font-size:13px;line-height:1.55}.survey-reset-breakdown{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}.survey-reset-breakdown span,.survey-reset-breakdown>strong{padding:7px 9px;border-radius:9px;background:#f3f5f8;color:#536176;font-size:11px}.survey-reset-breakdown span b{color:#a34136}.survey-reset-breakdown>strong{background:#fff1ef;color:#a34136}.admin-reset-sheet form{display:grid;gap:12px}.admin-reset-sheet label{display:grid;gap:7px;color:#34465e;font-size:12px;font-weight:800}.admin-reset-sheet input{box-sizing:border-box;width:100%;border:1px solid #dce3ec;border-radius:11px;padding:12px;font:inherit}.admin-reset-sheet form>small{color:#7b8797;font-size:11px}.survey-reset-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.survey-reset-actions button{border:0;border-radius:10px;padding:11px 13px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.survey-reset-actions .secondary{border:1px solid #dce3ec;background:#fff;color:#4e5f75}.survey-feature-card.is-survey-open-pulse{animation:v119SurveyOpenPulse 3.8s ease-in-out infinite}@keyframes v119SurveyOpenPulse{0%,100%{border-color:#8db8f2;box-shadow:0 8px 20px rgba(11,77,184,.08)}50%{border-color:#4f92e8;box-shadow:0 0 0 5px rgba(11,77,184,.11),0 10px 24px rgba(11,77,184,.13)}}@media(prefers-reduced-motion:reduce){.survey-feature-card.is-survey-open-pulse{animation:none}}@media(max-width:720px){.survey-reset-card{align-items:stretch;flex-direction:column}.survey-reset-card .danger{width:100%;min-height:44px}.admin-reset-sheet{padding:20px}.survey-reset-actions{display:grid;grid-template-columns:1fr 1.3fr}.survey-reset-actions button{min-height:44px}}


/* V58 — VIP readability for login and survey screens */
.login-card label span{font-size:14px}.login-card input,.admin-login-view input{height:54px;font-size:17px}.login-card button[type=submit],.admin-login-view button[type=submit]{height:56px;font-size:17px}
.survey-app-header strong{font-size:16px}.survey-app-header span{font-size:12.5px}.survey-stage h2{font-size:28px}.survey-stage .intro{font-size:16px;line-height:1.65}.question-card{padding:20px}.question-title{font-size:16px;line-height:1.55}.rating-option span{min-height:58px;font-size:14px}.rating-option span small{font-size:9px}.daily-program-option span{padding:15px;font-size:15px}.choice-card strong{font-size:15px}.choice-card small{font-size:13px;line-height:1.5}.reason-box label{font-size:14px}.reason-box textarea,.comment-box textarea{font-size:16px}.survey-actions button{height:52px;font-size:15px}.participant-code-input span{font-size:14px}.participant-code-input input{font-size:22px}
@media(max-width:720px){.survey-form{padding:24px 17px 116px}.survey-stage h2{font-size:26px}.survey-stage .intro{font-size:15px}.question-card{padding:18px}.question-title{font-size:15.5px}.rating-option span{min-height:56px;font-size:13px}.choice-card{padding:15px}.choice-card strong{font-size:14.5px}.choice-card small{font-size:12.5px}.daily-program-option span{font-size:14px}.survey-actions button{height:52px}}


/* V60 — participant login/survey large-type alignment */
.login-card label span{font-size:15px}.login-card input{height:58px;font-size:18px}.login-card button[type=submit]{height:60px;font-size:18px}.login-error{font-size:14px}.preview-lang{font-size:13.5px}
.survey-app-header strong{font-size:17px}.survey-app-header span{font-size:14px}.survey-app-header div small{font-size:11px}
.survey-step-kicker{font-size:13px}.survey-stage h2{font-size:30px}.survey-stage .intro{font-size:17px;line-height:1.7}.question-card{padding:22px}.question-title{font-size:17px;line-height:1.6}
.rating-option span{min-height:62px;font-size:15px}.rating-option span small{font-size:10px}.daily-program-option span{padding:16px;font-size:16px;line-height:1.5}.choice-card strong{font-size:16px}.choice-card small{font-size:14px;line-height:1.55}
.reason-box label{font-size:15px}.reason-box textarea,.comment-box textarea{font-size:17px;line-height:1.6}.participant-code-input span{font-size:15px}.participant-code-input input{font-size:23px}.survey-actions button{height:56px;font-size:16px}.survey-validation{font-size:14px}
@media(max-width:720px){.login-card{padding-inline:20px}.login-wordmark{font-size:40px}.survey-form{padding:26px 18px 122px}.survey-stage h2{font-size:28px}.survey-stage .intro{font-size:16.5px}.question-card{padding:20px}.question-title{font-size:16.5px}.rating-option span{min-height:60px;font-size:14px}.rating-option span small{font-size:9px}.choice-card{padding:16px}.choice-card strong{font-size:15.5px}.choice-card small{font-size:13.5px}.daily-program-option span{font-size:15.5px}.survey-actions button{height:56px}}


/* V64 — VIP survey free-text UI */
.survey-free-text-wrap{display:grid;gap:10px;margin-top:18px;width:100%}
.question-card textarea,.survey-free-text,.reason-box textarea{
  box-sizing:border-box;display:block;width:100%;max-width:100%;border:1.5px solid #cfd9e6;border-radius:16px;
  background:#fbfcfe;padding:17px 18px;color:#22334d;font-family:inherit;font-size:18px;line-height:1.65;
  outline:none;resize:vertical;box-shadow:inset 0 1px 2px rgba(16,38,74,.025);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease
}
.question-card textarea:focus,.survey-free-text:focus,.reason-box textarea:focus{border-color:#3178d5;background:#fff;box-shadow:0 0 0 4px rgba(49,120,213,.10)}
.question-card textarea::placeholder,.reason-box textarea::placeholder{color:#9aa6b5;opacity:1}
.survey-free-text{min-height:168px}
.reason-box textarea{min-height:128px;margin-top:9px}
.survey-free-text-note{justify-self:start;display:inline-flex!important;align-items:center;min-height:30px;margin:0!important;padding:5px 10px;border-radius:999px;background:#f1f5f9;color:#68778c!important;font-size:13px!important;font-weight:750;line-height:1.35}
.reason-box{padding:16px}.reason-box label{margin-bottom:0;font-size:16px;line-height:1.45}
@media(max-width:720px){
  .survey-free-text-wrap{margin-top:16px;gap:9px}
  .question-card textarea,.survey-free-text,.reason-box textarea{padding:16px 16px;font-size:17.5px;line-height:1.65;border-radius:15px}
  .survey-free-text{min-height:172px}.reason-box textarea{min-height:132px}
  .survey-free-text-note{font-size:13.5px!important;padding:6px 11px}
}

/* V74 — multi-select daily programs and two-step final survey reasons */
.multi-select-note{margin:14px 0 0;padding:11px 13px;border-radius:12px;background:#f1f6ff;color:#245aab;font-size:14px;font-weight:800;line-height:1.45}.daily-program-option span{position:relative;padding-left:48px}.daily-program-option span:before{content:'';position:absolute;left:16px;top:50%;width:18px;height:18px;border:2px solid #afbac9;border-radius:5px;transform:translateY(-50%);background:#fff}.daily-program-option input:checked+span:before{border-color:var(--portal-blue);background:var(--portal-blue);box-shadow:inset 0 0 0 3px #fff}.select-reason-list,.selected-reason-list{display:grid;gap:11px}.select-reason-item{padding:16px;border:1px solid #dce5ef;border-radius:16px;background:#fff;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.select-reason-item.selected{border-color:#86b1ef;background:#f4f8ff;box-shadow:0 5px 15px rgba(11,77,184,.05)}.select-reason-item>label{display:flex;align-items:flex-start;gap:13px;cursor:pointer}.select-reason-item input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--portal-blue);flex:none}.select-reason-item strong{display:block;color:#203a61;font-size:17px;line-height:1.45}.select-reason-item small{display:block;margin-top:4px;color:#687b94;font-size:14px;line-height:1.5}.selected-reason-list .select-reason-item>div:first-child{padding:1px 1px 0}.selected-reason-list .reason-box{margin-bottom:0}.choice-counter{border-top:1px solid #dce6f3}.survey-step-head>p{margin:0;color:#718096;font-size:16px;line-height:1.6}@media(max-width:720px){.multi-select-note{font-size:13.5px}.select-reason-item{padding:15px}.select-reason-item strong{font-size:15.5px}.select-reason-item small{font-size:13px}.daily-program-option span{padding-left:47px}.survey-step-head>p{font-size:15px}}


/* V91 — submitted survey is visually complete; editing becomes secondary */
.survey-feature-card.is-submitted{grid-template-columns:58px minmax(0,1fr) auto;gap:16px;padding:20px 18px;border-color:#8fd0ae;background:linear-gradient(135deg,#effaf4 0%,#f8fffb 100%);box-shadow:0 10px 24px rgba(8,122,69,.07)}
.survey-feature-card.is-submitted .survey-feature-icon{width:58px;height:58px;border-radius:50%;background:#e1f6e9;color:#078149}.survey-feature-card.is-submitted .survey-feature-icon svg{width:44px;height:44px}.survey-feature-copy-complete small{font-size:11px!important}.survey-feature-copy-complete strong{margin-top:5px!important;color:#0b5f3a!important;font-size:21px!important;line-height:1.25!important}.survey-feature-copy-complete span{display:block;margin-top:6px;color:#5c7467;font-size:13px;font-weight:650;line-height:1.45}
.survey-edit-link{display:flex!important;flex-direction:column;align-items:flex-end!important;justify-content:center!important;gap:3px!important;min-width:152px!important;min-height:54px!important;padding:8px 12px!important;border:1px solid #b7dbc6!important;background:#fff!important;color:#365a48!important;box-shadow:none!important}.survey-edit-link span{display:block!important;color:#74897e!important;font-size:10.5px!important;font-weight:700!important}.survey-edit-link b{color:#087a45;font-size:13px;font-weight:900}
.survey-success-panel{display:flex;flex-direction:column;align-items:center;max-width:420px;padding:20px 20px 8px}.survey-success-visual{width:92px;height:92px;margin-bottom:14px}.survey-success-visual svg{width:100%;height:100%;overflow:visible}.survey-success-visual circle{fill:#e7f7ed}.survey-success-visual path{fill:none;stroke:#078149;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.survey-success-badge{display:inline-flex;align-items:center;min-height:30px;padding:5px 11px;border-radius:999px;background:#eaf7ef;color:#087a45;font-size:12px;font-weight:900;letter-spacing:.02em}.survey-success-panel h2{margin:12px 0 8px!important;color:#163457!important;font-size:28px!important}.survey-success-panel p{max-width:360px;margin:0!important;color:#68788e!important;font-size:15px!important;line-height:1.6!important}
@media(max-width:720px){.survey-feature-card.is-submitted{grid-template-columns:58px minmax(0,1fr);padding:18px 16px;gap:13px}.survey-feature-card.is-submitted .survey-feature-icon{width:56px;height:56px}.survey-feature-copy-complete strong{font-size:20px!important}.survey-feature-copy-complete span{font-size:14px}.survey-edit-link{grid-column:1/-1;width:100%!important;min-width:0!important;min-height:48px!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;padding:11px 14px!important;border-radius:12px!important}.survey-edit-link span{font-size:12px!important}.survey-edit-link b{font-size:14px}.survey-success-panel h2{font-size:26px!important}.survey-success-panel p{font-size:16px!important}.survey-success-visual{width:86px;height:86px}}


/* V92 — survey history collapses after CLOSE; only the active OPEN day is featured */
.survey-status-grid.no-feature{margin-top:0}
@media(min-width:721px){.survey-status-grid.no-feature{grid-template-columns:repeat(3,minmax(0,1fr))}}
.survey-status-card.complete:not(.action){box-shadow:none}

/* V110 — Survey waiting/status card copy is one step larger for mobile readability. */
.survey-status-card small{font-size:11px}
.survey-status-card strong{font-size:15px}
.survey-status-card span{font-size:12px;line-height:1.45}

/* Auth pending is a detached visual layer only; never participate in page layout. */
.auth-pending-screen{margin:0!important;contain:layout paint style;pointer-events:none!important}
body:not(.auth-pending) .auth-pending-screen{display:none!important}
