@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root { --page:#0b1020; --nav:#0d1426; --surface:#131c31; --surface-2:#18233a; --input:#0f172a; --text:#f5f7fb; --muted:#9aa7bd; --line:#263450; --blue:#4f8cff; --blue-hover:#6a9cff; --blue-soft:rgba(79,140,255,.13); --success:#42c890; --warning:#f7c65c; --danger:#f07178; --shadow:0 18px 42px rgba(0,0,0,.25); }
[data-theme="light"] { --page:#e7e9ed; --nav:rgba(218,222,229,.94); --surface:#f1f2f4; --surface-2:#e2e6ec; --input:#e9ebef; --text:#182131; --muted:#526178; --line:#cbd1da; --blue:#356fe6; --blue-hover:#255dcc; --blue-soft:rgba(53,111,230,.1); --shadow:0 14px 32px rgba(38,48,65,.12); }
* { box-sizing:border-box; }
body { background:var(--page)!important; color:var(--text)!important; font-family:'Plus Jakarta Sans',sans-serif; font-size:.94rem; letter-spacing:-.01em; }
body::before { content:''; position:fixed; z-index:-1; inset:0; pointer-events:none; background:radial-gradient(ellipse 45rem 28rem at 95% -10%,rgba(47,104,210,.16),transparent 70%),radial-gradient(ellipse 35rem 22rem at -10% 60%,rgba(48,71,133,.12),transparent 70%); }
a { color:inherit; }
h1,h2,h3,h4,h5,h6 { color:var(--text)!important; font-weight:700; letter-spacing:-.035em; }
.text-secondary,.text-white-50 { color:var(--muted)!important; }
.text-white { color:var(--text)!important; }
main > .container { max-width:1160px; }

/* Navigation and footer */
.site-nav { min-height:70px; background:rgba(13,20,38,.88)!important; border-color:var(--line)!important; backdrop-filter:blur(16px); }
.site-nav .navbar-brand { display:inline-flex; align-items:center; height:54px; padding:.3rem .55rem; overflow:hidden; background:#122545; border:1px solid #36527f; border-radius:10px; text-decoration:none; }
.brand-logo { display:block; width:176px; height:42px; object-fit:cover; object-position:center 54%; filter:brightness(0) invert(1); }
.site-nav .navbar-text { color:var(--muted)!important; }
.site-nav .user-label { display:inline-flex; align-items:center; min-height:36px; padding:0 .68rem; color:#dce8ff!important; background:#15233c; border:1px solid #30466b; border-radius:9px; font-size:.8rem; font-weight:700; }
.site-nav .user-label i { color:#84adff; }
.public-register-link { white-space:nowrap; }
.public-login-link { white-space:nowrap; }
.admin-access-link { display:inline-flex; align-items:center; gap:.4rem; min-height:32px; padding:0 .55rem; color:#9fb2d2; border:1px solid transparent; border-radius:8px; font-size:.72rem; font-weight:700; text-decoration:none; transition:color .15s,background .15s,border-color .15s; }.admin-access-link:hover { color:#dce9ff; background:#192b49; border-color:#3b5681; }.admin-access-link i { font-size:.78rem; }
.theme-toggle { display:inline-grid; place-items:center; width:35px; height:35px; padding:0; color:#b9d0ff; background:#192642; border:1px solid #324665; border-radius:10px; transition:transform .18s,background .18s,border-color .18s; }
.theme-toggle:hover { color:#fff; background:#253a61; border-color:#5b83c4; transform:translateY(-1px); }
[data-theme="light"] .theme-toggle { color:#315aab; background:#eef4ff; border-color:#cedcf5; }
[data-theme="light"] .theme-toggle:hover { color:#173f89; background:#e2edff; border-color:#9db8e9; }
[data-theme="light"] .site-nav { box-shadow:0 1px 0 rgba(24,33,49,.06); }
[data-theme="light"] .site-nav .navbar-brand { background:#122545; border-color:#36527f; }
[data-theme="light"] .site-nav .navbar-text { color:#35445b!important; font-weight:600; }
[data-theme="light"] .site-nav .user-label { color:#1a335e!important; background:#dce5f2; border-color:#acbbd0; }
[data-theme="light"] .site-nav .user-label i { color:#245dbf; }
[data-theme="light"] .btn-light,[data-theme="light"] .btn-primary,[data-theme="light"] .button-full { color:#fff!important; }
[data-theme="light"] .btn-outline-light { color:#1e3e72!important; background:#e1e7f0!important; border-color:#97a7bf!important; }
[data-theme="light"] .btn-outline-light:hover { color:#fff!important; background:#294f91!important; border-color:#294f91!important; }
[data-theme="light"] .btn-outline-danger { color:#9a2737!important; background:#f3dfe2!important; border-color:#d797a0!important; }
[data-theme="light"] .btn-outline-danger:hover { color:#fff!important; background:#a73445!important; border-color:#a73445!important; }
[data-theme="light"] .breadcrumb a,[data-theme="light"] .text-secondary { color:#46566e!important; }
.footer { color:var(--muted)!important; border-color:var(--line)!important; }

/* Homepage */
.survey-hero { position:relative; overflow:hidden; padding:clamp(3rem,7vw,5.7rem) 0 4.5rem; background:transparent; }
.survey-hero::after { content:''; position:absolute; width:32rem; height:32rem; right:-13rem; top:-15rem; border:1px solid rgba(103,151,255,.16); border-radius:50%; box-shadow:0 0 0 4rem rgba(103,151,255,.025),0 0 0 8rem rgba(103,151,255,.015); }
.hero-copy { max-width:650px; }
.hero-kicker,.eyebrow { color:#8eb5ff; font-size:.72rem; letter-spacing:.11em; font-weight:800; text-transform:uppercase; }
.survey-hero h1 { font-size:clamp(2.55rem,5.7vw,4.7rem); line-height:1.06; max-width:680px; }
.survey-hero .lead { max-width:560px; color:var(--muted)!important; font-size:1.05rem; line-height:1.75; }
[data-theme="light"] body::before { background:radial-gradient(ellipse 45rem 28rem at 95% -10%,rgba(47,104,210,.1),transparent 70%); }
[data-theme="light"] .answer-option { background:#f8faff; border-color:#d6e0f0; }
[data-theme="light"] .answer-option:hover { background:#f0f5ff; border-color:#7aa3ee; }
[data-theme="light"] .bg-black { background:#e6e9ee!important; }
[data-theme="light"] .form-control,[data-theme="light"] .form-select,[data-theme="light"] .input-group-text { border-color:#d1dceb!important; }
.hero-stat { display:flex; align-items:center; gap:.75rem; margin-top:2.2rem; color:var(--muted); font-size:.82rem; }
.hero-stat .stat-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:var(--blue-soft); color:#8eb5ff; }
.survey-grid { position:relative; padding-bottom:2rem; }
.section-heading { border-top:1px solid var(--line); padding-top:1.7rem; }
.section-heading h2 { font-size:1.2rem; }
.survey-card { background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:14px; box-shadow:none; transition:border-color .18s,transform .18s,box-shadow .18s; }
.survey-card:hover { border-color:#3f619c!important; transform:translateY(-3px); box-shadow:var(--shadow); }
[data-theme="light"] .survey-card:hover { border-color:#8299bd!important; box-shadow:0 12px 26px rgba(44,58,79,.12); }
.survey-card .card-body { padding:1.55rem 1.55rem .35rem; }
.survey-card .card-footer { padding:1rem 1.55rem 1.5rem; }
.survey-card .card-title { font-size:1.12rem; line-height:1.45; }
.badge { border-radius:6px; padding:.36rem .55rem; font-size:.7rem; font-weight:700; }
.badge.bg-primary { background:var(--blue-soft)!important; color:#9ac0ff!important; }

/* Controls */
.btn { border-radius:8px; padding:.62rem .92rem; font-size:.85rem; font-weight:700; transition:background .15s,border .15s,transform .15s; }
.btn:hover { transform:translateY(-1px); }
.btn-light,.btn-primary,.button-full { color:#fff!important; background:var(--blue)!important; border-color:var(--blue)!important; }
.btn-light:hover,.btn-primary:hover,.button-full:hover { background:var(--blue-hover)!important; border-color:var(--blue-hover)!important; }
.btn-outline-light { color:#dce7ff!important; border-color:#3a4e73!important; background:transparent!important; }
.btn-outline-light:hover { color:#fff!important; background:#223353!important; border-color:#4c6eaa!important; }
.btn-outline-danger { color:#ff9ba0!important; border-color:rgba(240,113,120,.6)!important; }
.btn-outline-danger:hover { color:#fff!important; background:#793b47!important; }
.form-control,.form-select { color:var(--text)!important; background:var(--input)!important; border:1px solid #344462!important; border-radius:8px!important; padding:.75rem .9rem; }
.form-control:focus { background:var(--input)!important; border-color:var(--blue)!important; box-shadow:0 0 0 .2rem rgba(79,140,255,.16)!important; }
.form-control::placeholder { color:#71809a; }
.form-floating > label,.form-floating > .form-control:focus ~ label,.form-floating > .form-control:not(:placeholder-shown) ~ label { color:var(--muted)!important; }
.form-check-input { background-color:var(--input); border-color:#53627c; }
.form-check-input:checked { background-color:var(--blue); border-color:var(--blue); }

/* Shared admin and account surfaces */
.card,.accordion-item { background:var(--surface)!important; color:var(--text)!important; border-color:var(--line)!important; border-radius:12px; }
.card.shadow-lg,.card.shadow-sm { box-shadow:var(--shadow)!important; }
.card .card-body { color:var(--text); }
.bg-dark { background:var(--surface)!important; }
.bg-black { background:var(--input)!important; }
.input-group-text { color:var(--muted)!important; background:var(--input)!important; border-color:#344462!important; }
.table-dark,.table-dark > :not(caption) > * > * { --bs-table-bg:transparent; --bs-table-color:var(--text); --bs-table-border-color:var(--line); color:var(--text)!important; }
.table-hover > tbody > tr:hover > * { --bs-table-accent-bg:#1b2943; color:var(--text)!important; }
[data-theme="light"] .table-hover > tbody > tr:hover > * { --bs-table-accent-bg:#d8e1ed; color:#15233a!important; }
[data-theme="light"] .table-hover > tbody > tr:hover .text-secondary { color:#15233a!important; }
.list-group-item { color:var(--text)!important; background:var(--surface)!important; border-color:var(--line)!important; }
.list-group-item:hover { background:var(--surface-2)!important; }
[data-theme="light"] .list-group-item:hover { background:#e0e6ee!important; color:#15233a!important; }
.accordion-button { color:var(--text)!important; background:var(--surface)!important; box-shadow:none!important; }
.accordion-button:not(.collapsed),.question-header:hover { color:var(--text)!important; background:var(--surface-2)!important; }
.accordion-button::after { filter:invert(1); }
.progress { background:#0d1526!important; }
.progress-bar.bg-primary { background:var(--blue)!important; }
.bg-success { background-color:var(--success)!important; }
.breadcrumb a { color:var(--muted)!important; }

/* Administration dashboard */
.dashboard-heading { padding-bottom:1.8rem; margin-bottom:1.8rem!important; border-bottom:1px solid var(--line); }
.dashboard-heading h1 { line-height:1.25; }.dashboard-heading .text-secondary { line-height:1.65; }
.metric-card { display:block; padding:1.45rem; color:var(--text)!important; text-decoration:none; transition:transform .18s,border-color .18s,box-shadow .18s; }
.metric-card:hover { border-color:#4774bb!important; transform:translateY(-2px); box-shadow:var(--shadow); }
.metric-icon { display:grid; place-items:center; width:36px; height:36px; margin-bottom:1.1rem; border-radius:9px; font-size:.95rem; }
.icon-blue { color:#91b7ff; background:rgba(79,140,255,.15); }.icon-violet { color:#c5a4ff; background:rgba(156,100,255,.15); }.icon-green { color:#78e0af; background:rgba(66,200,144,.14); }.icon-amber { color:#ffdb86; background:rgba(247,198,92,.14); }
.metric-label { margin:0 0 .55rem; color:var(--muted); font-size:.76rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.metric-value { color:var(--text); font-size:2rem; line-height:1.15; letter-spacing:-.06em; }.metric-meta { color:var(--muted); font-size:.72rem; line-height:1.4; text-align:right; }
.dashboard-panel { overflow:hidden; }.panel-heading { padding:1.5rem 1.5rem 1.3rem; border-bottom:1px solid var(--line); }.panel-heading h2 { line-height:1.35; }.panel-heading .text-secondary { line-height:1.55; }.panel-link { color:#93b8ff; font-size:.78rem; font-weight:700; text-decoration:none; }
.survey-activity-row { display:grid; grid-template-columns:38px minmax(0,1fr) auto auto 12px; align-items:center; gap:1rem; padding:1.2rem 1.5rem; color:var(--text); border-bottom:1px solid var(--line); text-decoration:none; transition:background .15s; }.survey-activity-row:last-child { border-bottom:0; }.survey-activity-row:hover { color:var(--text); background:var(--surface-2); }
.survey-file-icon { display:grid; place-items:center; width:36px; height:36px; color:#91b7ff; background:var(--blue-soft); border-radius:9px; font-size:.85rem; }.survey-activity-title { min-width:0; }.survey-activity-title strong,.survey-activity-title small,.survey-response-count strong,.survey-response-count small { display:block; }.survey-activity-title strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.88rem; line-height:1.45; }.survey-activity-title small,.survey-response-count small { margin-top:.28rem; color:var(--muted); font-size:.72rem; line-height:1.45; }.survey-response-count { min-width:64px; text-align:right; }.survey-response-count strong { font-size:.9rem; line-height:1.3; }.status-pill { min-width:76px; padding:.4rem .5rem; border-radius:6px; font-size:.68rem; font-weight:700; text-align:center; }.status-live { color:#80e3b1; background:rgba(66,200,144,.12); }.status-draft { color:#ffdb86; background:rgba(247,198,92,.12); }.row-chevron { color:var(--muted); font-size:.7rem; }
.attention-list { padding:.65rem 1rem; }.attention-item { display:flex; align-items:center; gap:.85rem; padding:1.05rem .5rem; color:var(--text); border-bottom:1px solid var(--line); text-decoration:none; }.attention-item:last-child { border-bottom:0; }.attention-item:hover { color:var(--text); }.attention-item > span:nth-child(2) { flex:1; }.attention-item strong,.attention-item small { display:block; }.attention-item strong { font-size:.83rem; line-height:1.4; }.attention-item small { margin-top:.28rem; color:var(--muted); font-size:.72rem; line-height:1.45; }.attention-item > i { color:var(--muted); font-size:.7rem; }.attention-icon { display:grid; place-items:center; flex:0 0 34px; height:34px; border-radius:9px; font-size:.78rem; }.attention-icon.warning { color:#ffdb86; background:rgba(247,198,92,.13); }.attention-icon.danger { color:#ff9da4; background:rgba(240,113,120,.13); }.attention-icon.info { color:#91b7ff; background:var(--blue-soft); }
.dashboard-empty { padding:3rem 1.5rem; color:var(--muted); text-align:center; }.dashboard-empty > i { display:grid; place-items:center; width:42px; height:42px; margin:0 auto 1rem; color:#91b7ff; background:var(--blue-soft); border-radius:10px; }
[data-theme="light"] .metric-card:hover { border-color:#7e9bc7!important; }.metric-value { color:var(--text)!important; }[data-theme="light"] .survey-activity-row:hover { background:#e0e6ee; }[data-theme="light"] .panel-link { color:#245dbf; }[data-theme="light"] .status-live { color:#17693f; background:#d8f1e4; }[data-theme="light"] .status-draft { color:#885e00; background:#f8ebc8; }

/* Survey editor */
.editor-heading { padding-bottom:1.5rem; border-bottom:1px solid var(--line); }.editor-heading h1 { line-height:1.25; }.editor-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem .9rem; color:var(--muted); font-size:.76rem; }.editor-meta > span:not(.status-pill) + span:not(.status-pill)::before { content:'•'; margin-right:.9rem; color:#65728a; }.editor-panel { border-radius:14px; }.editor-panel-heading { display:flex; align-items:center; gap:.85rem; padding:1.35rem 1.45rem; border-bottom:1px solid var(--line); }.editor-heading-icon { display:grid; place-items:center; flex:0 0 36px; height:36px; color:#91b7ff; background:var(--blue-soft); border-radius:9px; }.editor-panel-body { padding:1.45rem; }.editor-label { margin-bottom:.55rem; color:var(--muted); font-size:.74rem; font-weight:700; letter-spacing:.045em; text-transform:uppercase; }.publish-control { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.05rem; background:var(--input); border:1px solid var(--line); border-radius:10px; }.publish-control strong,.publish-control small { display:block; }.publish-control strong { font-size:.84rem; }.publish-control small { margin-top:.25rem; color:var(--muted); font-size:.72rem; line-height:1.45; }.publish-control .form-check-input { width:2.4rem; height:1.25rem; cursor:pointer; }.editor-danger-zone .editor-panel-body { padding:1.15rem 1.45rem; }.editor-danger-zone strong,.editor-danger-zone small { display:block; }.editor-danger-zone strong { color:#ffabb0; font-size:.8rem; }.editor-danger-zone small { margin-top:.25rem; color:var(--muted); font-size:.7rem; line-height:1.4; }.question-count-badge { display:grid; place-items:center; min-width:30px; height:30px; padding:0 .45rem; color:#a7c6ff; background:var(--blue-soft); border-radius:8px; font-size:.78rem; font-weight:800; }.editor-questions .accordion-item { border-radius:0; }.editor-question-button { gap:.85rem; padding:1.15rem 1.45rem; }.question-order { display:grid; place-items:center; flex:0 0 27px; height:27px; color:#a7c6ff; background:var(--blue-soft); border-radius:7px; font-size:.72rem; font-weight:800; }.question-title { flex:1; min-width:0; color:var(--text); font-size:.86rem; font-weight:700; line-height:1.45; }.question-votes { margin-right:.65rem; color:var(--muted); font-size:.72rem; font-weight:600; white-space:nowrap; }.editor-question-button::after { order:5; }.editor-answer-list { padding:1.3rem 1.45rem 1.1rem; background:rgba(0,0,0,.08); }.answer-result { padding:.85rem 0; }.answer-result + .answer-result { border-top:1px solid var(--line); }.answer-result-top,.answer-result-meta { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.answer-name { color:var(--text); font-size:.82rem; font-weight:600; }.answer-correct { margin-left:.35rem; color:var(--success); }.answer-percent { color:var(--text); font-size:.84rem; font-weight:800; }.answer-result-meta { margin:.4rem 0 .55rem; color:var(--muted); font-size:.7rem; }.answer-toggle { color:#91b7ff; font-size:.7rem; font-weight:700; text-decoration:none; }.answer-toggle:hover { color:#c4d8ff; }.answer-result .progress { height:5px; border-radius:20px; }.editor-question-footer { margin-top:.7rem; padding-top:1rem; border-top:1px solid var(--line); font-size:.72rem; font-weight:700; }.editor-question-footer a { text-decoration:none; }.editor-empty { padding:3.5rem 1.5rem; text-align:center; }.editor-empty > i { display:grid; place-items:center; width:42px; height:42px; margin:auto; color:#91b7ff; background:var(--blue-soft); border-radius:10px; }
[data-theme="light"] .publish-control { background:#e7ebf1; }.editor-question-button { color:var(--text)!important; }[data-theme="light"] .editor-answer-list { background:#e9edf2; }[data-theme="light"] .answer-toggle { color:#245dbf; }[data-theme="light"] .answer-toggle:hover { color:#153b82; }

/* Question builder */
.builder-heading { padding-bottom:1.5rem; border-bottom:1px solid var(--line); }.builder-heading h1 { line-height:1.25; }.builder-heading .text-secondary { line-height:1.6; }.builder-panel { overflow:hidden; border-radius:14px; }.builder-section { padding:1.6rem; }.builder-section + .builder-section { border-top:1px solid var(--line); }.builder-section-heading { display:flex; align-items:flex-start; gap:.85rem; }.builder-step { display:grid; place-items:center; flex:0 0 30px; height:30px; color:#a7c6ff; background:var(--blue-soft); border-radius:8px; font-size:.76rem; font-weight:800; }.builder-section-heading h2 { line-height:1.35; }.builder-section-heading .text-secondary { line-height:1.5; }.builder-question-input { min-height:120px; resize:vertical; line-height:1.6; }.answer-builder-card { height:100%; padding:1rem; background:var(--input); border:1px solid var(--line); border-radius:10px; transition:border-color .15s,background .15s; }.answer-builder-card:focus-within { border-color:#5382cc; background:#14203a; }.answer-builder-top { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.7rem; }.answer-builder-number { color:var(--text); font-size:.77rem; font-weight:700; }.required-chip,.optional-chip { padding:.22rem .42rem; border-radius:5px; font-size:.61rem; font-weight:700; }.required-chip { color:#a7c6ff; background:var(--blue-soft); }.optional-chip { color:var(--muted); background:rgba(154,167,189,.1); }.answer-correct-control { display:flex; align-items:center; gap:.45rem; margin-top:.85rem; }.answer-correct-control .form-check-input { margin:0; cursor:pointer; }.answer-correct-control .form-check-label { color:var(--muted); font-size:.71rem; cursor:pointer; }.builder-actions { padding:1.2rem 1.6rem; background:rgba(0,0,0,.08); border-top:1px solid var(--line); }.builder-actions .text-secondary { line-height:1.5; }
.add-answer-button { margin-top:.15rem; }
[data-theme="light"] .answer-builder-card { background:#e8ecf2; }.answer-builder-card:focus-within { background:#e1e8f3; border-color:#7195d0; }[data-theme="light"] .builder-actions { background:#e5e9ef; }

/* Login */
.login-page { min-height:calc(100vh - 175px); margin:0 0 1.5rem; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); }.login-intro { position:relative; overflow:hidden; min-height:590px; padding:clamp(2.5rem,5vw,5rem); background:linear-gradient(145deg,#111e37,#172f59); }.login-intro-content { position:relative; z-index:2; max-width:460px; }.login-intro h1 { max-width:420px; color:#fff!important; font-size:clamp(2rem,3.5vw,3.25rem); line-height:1.12; }.login-intro-content > p:not(.hero-kicker) { max-width:410px; margin:1.2rem 0 2.5rem; color:#b5c5e0; line-height:1.7; }.poll-motion-card { position:relative; padding:1.25rem; background:rgba(6,14,30,.42); border:1px solid rgba(152,187,255,.24); border-radius:13px; box-shadow:0 20px 35px rgba(0,0,0,.18); backdrop-filter:blur(8px); animation:login-card-float 5s ease-in-out infinite; }.poll-motion-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; color:#d5e3ff; font-size:.74rem; }.poll-motion-head strong { color:#fff; font-size:1.05rem; }.poll-motion-row { display:grid; grid-template-columns:82px 1fr 30px; align-items:center; gap:.6rem; margin:.8rem 0; color:#c0cfe7; font-size:.65rem; }.poll-motion-row b { color:#e8f0ff; font-size:.68rem; text-align:right; }.motion-track { height:6px; overflow:hidden; background:rgba(190,211,246,.16); border-radius:20px; }.motion-track i { display:block; width:var(--value); height:100%; border-radius:20px; background:linear-gradient(90deg,#5d96ff,#91b9ff); transform-origin:left; animation:poll-bar-grow 1.2s var(--delay) both cubic-bezier(.2,.8,.2,1); }.poll-live-dot { position:absolute; top:1.2rem; left:1.2rem; width:7px; height:7px; background:#5ce4a4; border-radius:50%; box-shadow:0 0 0 0 rgba(92,228,164,.55); animation:poll-pulse 2.2s infinite; }.login-orb { position:absolute; border-radius:50%; pointer-events:none; }.orb-one { width:350px; height:350px; top:-155px; right:-120px; border:1px solid rgba(135,178,255,.2); box-shadow:0 0 0 45px rgba(135,178,255,.04),0 0 0 90px rgba(135,178,255,.025); }.orb-two { width:180px; height:180px; bottom:-85px; left:-70px; background:rgba(79,140,255,.12); filter:blur(2px); }.login-card { width:min(100%,435px); margin:2.5rem 1.5rem; overflow:hidden; border-radius:14px; box-shadow:var(--shadow); }.login-card-heading { padding:2rem 2rem 1.25rem; }.login-card-heading h2 { font-size:1.42rem; line-height:1.35; }.login-card-heading .text-secondary { font-size:.82rem; line-height:1.6; }.login-lock { display:grid; place-items:center; width:39px; height:39px; margin-bottom:1.25rem; color:#9cc0ff; background:var(--blue-soft); border-radius:10px; }.login-card-body { padding:1rem 2rem 2rem; }.login-input-wrap { position:relative; }.login-input-wrap > i:first-child { position:absolute; z-index:2; top:50%; left:.85rem; color:#7185a5; font-size:.78rem; transform:translateY(-50%); pointer-events:none; }.login-input-wrap .form-control { padding-left:2.45rem; }.login-password-toggle { position:absolute; z-index:3; top:50%; right:.65rem; padding:.35rem; color:#7d91b0; background:transparent; border:0; transform:translateY(-50%); }.login-password-toggle:hover { color:#aac7fb; }.login-input-wrap.password-wrapper .form-control { padding-right:2.5rem; }.login-card-footer { padding:1rem 2rem; color:var(--muted); background:rgba(0,0,0,.1); border-top:1px solid var(--line); font-size:.7rem; }.login-card-footer i { margin-right:.35rem; color:#7fadff; }
.admin-access-notice { display:flex; gap:.7rem; margin-bottom:1.25rem; padding:.9rem; color:#dce9ff; background:rgba(79,140,255,.11); border:1px solid rgba(112,159,247,.34); border-radius:10px; }.admin-access-icon { color:#92b8ff; font-size:.9rem; }.admin-access-notice strong,.admin-access-notice span,.admin-access-notice a { display:block; }.admin-access-notice strong { font-size:.75rem; line-height:1.45; }.admin-access-notice span { margin-top:.2rem; color:#a8bbd8; font-size:.7rem; }.admin-access-notice a { margin-top:.5rem; color:#a8c7ff; font-size:.71rem; font-weight:700; text-decoration:none; }.admin-access-notice a:hover { color:#d4e3ff; }
@keyframes poll-bar-grow { from { transform:scaleX(0); } to { transform:scaleX(1); } }@keyframes poll-pulse { 70% { box-shadow:0 0 0 8px rgba(92,228,164,0); } 100% { box-shadow:0 0 0 0 rgba(92,228,164,0); } }@keyframes login-card-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }
[data-theme="light"] .login-page { background:#e9edf3; }.login-card-footer { background:rgba(40,55,80,.04); }[data-theme="light"] .login-input-wrap > i:first-child { color:#526a8c; }

/* Participant registration */
.register-page { min-height:calc(100vh - 175px); margin:0 0 1.5rem; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); }.register-intro { position:relative; min-height:650px; padding:clamp(2.5rem,5vw,5rem); background:linear-gradient(160deg,#15263f,#15466a); }.register-intro::after { content:''; position:absolute; width:300px; height:300px; right:-130px; bottom:-120px; border:1px solid rgba(166,207,255,.25); border-radius:50%; box-shadow:0 0 0 45px rgba(166,207,255,.04),0 0 0 90px rgba(166,207,255,.025); }.register-intro-content { position:relative; z-index:1; max-width:390px; }.register-intro h1 { color:#fff!important; font-size:clamp(2rem,3.3vw,3rem); line-height:1.14; }.register-intro p:not(.hero-kicker) { margin-top:1.25rem; color:#c4d8ec; line-height:1.7; }.register-benefits { display:grid; gap:.9rem; margin:2rem 0 0; padding:0; color:#e7f1ff; font-size:.82rem; list-style:none; }.register-benefits i { margin-right:.55rem; color:#72dba9; }.register-card { width:min(100%,525px); margin:2.5rem 1.5rem; overflow:hidden; border-radius:14px; box-shadow:var(--shadow); }.register-card-heading { padding:2rem 2rem 1.25rem; }.register-card-heading h1 { line-height:1.35; }.register-card-heading .text-secondary { font-size:.81rem; line-height:1.6; }.register-card-body { padding:1rem 2rem 2rem; }
.register-login-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.register-login-footer a { color:#9fc2ff; font-weight:700; text-decoration:none; }.register-login-footer a:hover { color:#d4e3ff; }.participant-login-page { min-height:calc(100vh - 175px); margin:0 0 1.5rem; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); }.participant-login-intro { position:relative; min-height:570px; padding:clamp(2.5rem,5vw,5rem); background:linear-gradient(160deg,#12243e,#283e70); }.participant-login-intro::after { content:''; position:absolute; width:290px; height:290px; top:-140px; right:-120px; border:1px solid rgba(166,207,255,.25); border-radius:50%; box-shadow:0 0 0 45px rgba(166,207,255,.04),0 0 0 90px rgba(166,207,255,.025); }.participant-login-intro h1 { color:#fff!important; font-size:clamp(2rem,3.3vw,3rem); line-height:1.14; }.participant-login-intro p:not(.hero-kicker) { margin-top:1.25rem; color:#c4d8ec; line-height:1.7; }.participant-login-card { max-width:455px; }
.existing-account-note { margin-top:1rem!important; padding-top:1rem; color:var(--muted); border-top:1px solid var(--line); font-size:.75rem; }.existing-account-note a { color:#9fc2ff; font-weight:700; text-decoration:none; }.existing-account-note a:hover { color:#d5e4ff; }
.iti { display:block; width:100%; }.iti__country-container { color:var(--text); }.iti__selected-country { padding:0 .7rem; background:#18233a; border:1px solid #344462; border-radius:8px 0 0 8px; }.iti__selected-country:hover { background:#22314e; }.iti__country-list { color:var(--text); background:#18233a; border-color:#344462; box-shadow:var(--shadow); }.iti__country { color:var(--text); }.iti__country:hover,.iti__country.iti__highlight { background:#263756; }.iti__dial-code { color:var(--muted); }.phone-input { width:100%; }.phone-help { margin-top:.55rem; color:var(--muted); font-size:.7rem; line-height:1.45; }.contact-message,.contact-field-error { display:block; margin:.55rem 0 0; color:#ff9da4; font-size:.72rem; line-height:1.45; }.contact-message:empty { display:none; }
[data-theme="light"] .register-page { background:#e9edf3; }
[data-theme="light"] .register-login-footer a { color:#245dbf; }
[data-theme="light"] .existing-account-note a { color:#245dbf; }
[data-theme="light"] .iti__selected-country { background:#e4e9f0; border-color:#c4cfde; }[data-theme="light"] .iti__selected-country:hover { background:#d8e1ec; }[data-theme="light"] .iti__country-list { color:#172033; background:#f2f4f7; border-color:#c4cfde; }[data-theme="light"] .iti__country { color:#172033; }[data-theme="light"] .iti__country:hover,[data-theme="light"] .iti__country.iti__highlight { background:#e0e7f0; }

/* Participation screen */
.survey-detail { max-width:820px; margin:0 auto; }
.survey-intro { padding:clamp(1.6rem,4vw,3rem)!important; border-radius:16px; }
.survey-intro .display-5 { font-size:clamp(1.8rem,4vw,2.65rem); }
.question-block { padding:1.75rem 0; border-top:1px solid var(--line); }
.question-block:first-of-type { border-top:0; }
.question-number { display:inline-grid; place-items:center; min-width:26px; height:26px; padding:0 .4rem; margin-bottom:.8rem; background:var(--blue-soft); border-radius:7px; color:#a5c6ff; font-size:.72rem; font-weight:800; }
.answer-option { display:block; padding:1rem 1.05rem; margin:.6rem 0; border:1px solid #2d3d5b; background:#111a2d; border-radius:9px; cursor:pointer; transition:border-color .15s,background .15s; }
.answer-option:hover { background:#17233a; border-color:#527dc5; }
.answer-option .form-check-input { margin-top:.25rem; }
.answer-option .form-check-label { color:var(--text)!important; cursor:pointer; }
.alert-warning { color:#ffe8a0!important; background:rgba(112,79,10,.28)!important; border-color:#7c641d!important; border-radius:9px; }
.alert-link { color:#fff2b7!important; }
.participation-gate { display:flex; align-items:flex-start; gap:1.1rem; padding:1.35rem; background:linear-gradient(135deg,rgba(79,140,255,.13),rgba(79,140,255,.035)); border:1px solid rgba(105,155,255,.35); border-radius:13px; }.gate-icon { display:grid; place-items:center; flex:0 0 42px; height:42px; color:#a7c6ff; background:var(--blue-soft); border-radius:10px; }.gate-content { flex:1; }.gate-content h2 { line-height:1.35; }.gate-content > p { color:var(--muted); font-size:.84rem; line-height:1.6; }.gate-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.25rem; }.gate-note { display:block; margin-top:1rem; color:#9aaecb; font-size:.69rem; }.gate-note i { color:#80acff; }
[data-theme="light"] .participation-gate { background:linear-gradient(135deg,#dbe7fb,#e7edf5); border-color:#a9c2e8; }.gate-note { color:#526178; }
.min-vh-75 { min-height:75vh; }
@media (max-width:575.98px) { .survey-hero { padding-top:2.4rem; } .survey-card .card-body { padding:1.25rem 1.25rem .2rem; } .survey-card .card-footer { padding:.9rem 1.25rem 1.25rem; } .site-nav .navbar-text { display:none; } }
@media (max-width:575.98px) { .participation-gate { align-items:flex-start; padding:1.1rem; }.gate-icon { flex-basis:36px; height:36px; }.gate-actions .btn { width:100%; } }
@media (max-width:575.98px) { .survey-activity-row { grid-template-columns:34px minmax(0,1fr) 12px; }.survey-response-count,.status-pill { display:none; }.dashboard-heading .btn { width:100%; }.metric-card { padding:1rem; } }
@media (max-width:575.98px) { .editor-heading .btn { width:100%; }.editor-panel-heading,.editor-panel-body { padding-left:1.1rem; padding-right:1.1rem; }.editor-question-button { padding:1rem 1.1rem; }.question-votes { display:none; }.editor-answer-list { padding:1rem 1.1rem; }.answer-result-top,.answer-result-meta { align-items:flex-start; flex-direction:column; gap:.3rem; }.editor-danger-zone .editor-panel-body { padding:1rem 1.1rem; } }
@media (max-width:575.98px) { .builder-section { padding:1.2rem 1.1rem; }.builder-actions { padding:1.1rem; }.builder-actions .btn { width:100%; } }
@media (max-width:991.98px) { .login-page { min-height:auto; }.login-card { margin:2rem 1.25rem; } }
@media (max-width:991.98px) { .register-page { min-height:auto; }.register-card { margin:2rem 1.25rem; } }
@media (max-width:991.98px) { .participant-login-page { min-height:auto; } }
@media (prefers-reduced-motion:reduce) { .poll-motion-card,.motion-track i,.poll-live-dot { animation:none!important; } }

/* Home: clear entry point and a guide to participation. */
.home-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); align-items:center; gap:clamp(2rem,5vw,4.5rem); padding:3rem 0 4rem; overflow:visible; }
.home-hero::after { display:none; }
.home-hero .hero-copy { position:relative; }
.home-hero .hero-kicker { display:flex; align-items:center; gap:.6rem; margin-bottom:1.5rem; }
.home-dot { display:inline-block; flex:0 0 7px; width:7px; height:7px; border-radius:50%; background:var(--success); }
.home-hero h1 { font-size:clamp(2.7rem,5.3vw,4.4rem); line-height:1.12; letter-spacing:-.06em; margin-bottom:1.5rem; }
.home-hero h1 span { color:#8eb5ff; }
.home-hero .lead { font-size:1rem; max-width:480px; margin-bottom:1.8rem; }
.home-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem 1.4rem; }
.home-actions .btn { padding:.9rem 1.2rem; }
.home-secondary-link { color:var(--text); font-size:.8rem; font-weight:700; text-decoration:none; padding:.65rem 0; }
.home-secondary-link:hover { color:var(--blue); }
.home-note { display:flex; align-items:center; gap:.6rem; margin:1.7rem 0 0; color:var(--muted); font-size:.75rem; }
.home-guide { position:relative; padding:clamp(1.4rem,3vw,2.2rem); border:1px solid var(--line); border-radius:24px; background:linear-gradient(145deg,var(--surface-2),var(--surface)); box-shadow:var(--shadow); }
.home-guide-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
.home-guide-icon { display:grid; place-items:center; width:48px; height:48px; flex-shrink:0; border:1px solid var(--line); border-radius:15px; background:var(--blue-soft); color:#8eb5ff; font-size:1.3rem; }
.home-availability,.home-count { padding:.5rem .8rem; color:var(--muted); background:var(--input); border:1px solid var(--line); border-radius:30px; font-size:.7rem; font-weight:600; }
.home-guide h2 { font-size:clamp(1.3rem,2.3vw,1.7rem); line-height:1.4; margin-bottom:1.8rem; }
.home-steps { display:grid; gap:1.25rem; padding:0; margin:0; list-style:none; }
.home-steps li { display:flex; align-items:flex-start; gap:1rem; }
.home-step-number { display:grid; place-items:center; flex:0 0 34px; height:34px; color:#9ac0ff; background:var(--blue-soft); border-radius:10px; font-size:.7rem; font-weight:800; }
.home-steps strong { font-size:.82rem; }
.home-steps p { margin:.3rem 0 0; color:var(--muted); font-size:.75rem; line-height:1.6; }
.home-guide-footer { display:flex; align-items:center; gap:.65rem; padding-top:1.3rem; margin-top:1.6rem; border-top:1px solid var(--line); color:var(--muted); font-size:.7rem; }
.home-guide-footer i { color:var(--success); }
.home-surveys { scroll-margin-top:1.5rem; }
.home-surveys .section-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; padding-top:2rem; }
.home-surveys .section-heading h2 { font-size:clamp(1.4rem,2.6vw,1.9rem); }
.home-surveys .section-heading p.text-secondary { font-size:.85rem; }
.home-card-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.6rem; }
.home-topic-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; color:#9ac0ff; background:var(--blue-soft); font-size:1.1rem; }
.home-open { display:flex; align-items:center; gap:.45rem; color:var(--muted); font-size:.7rem; }
.home-surveys .card-text { font-size:.8rem; line-height:1.8; }
.home-surveys .card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin:1rem 1.55rem 0; padding:1rem 0 1.5rem; background:transparent; border-top:1px solid var(--line); }
.home-question-count { color:var(--muted); font-size:.73rem; }
.home-empty { align-items:center; text-align:center; padding:clamp(1.5rem,5vw,3rem); gap:1rem; border-style:dashed; }
.home-empty h3 { font-size:1.2rem; margin:0; }
.home-empty p { max-width:440px; line-height:1.7; }
[data-theme="light"] .home-hero h1 span,[data-theme="light"] .home-guide-icon,[data-theme="light"] .home-step-number,[data-theme="light"] .home-topic-icon,[data-theme="light"] .eyebrow,[data-theme="light"] .hero-kicker { color:#285fc4; }

/* Shared responsive behavior, including long user-entered content. */
h1,h2,h3,h4,h5,h6,p,.card-text,.question-title,.answer-name,.form-check-label,.breadcrumb { overflow-wrap:anywhere; }
.row > *, .nav-actions, .gate-content, .editor-heading > div, .dashboard-heading > div, .builder-section-heading > div, .attention-item > span { min-width:0; }
img { max-width:100%; }
.site-nav > .container { gap:.75rem; }
.nav-actions { flex-wrap:wrap; justify-content:flex-end; }
.site-nav .user-label { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.theme-toggle,.admin-access-link { min-height:44px; min-width:44px; }
.nav-actions .btn { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
.table-responsive { max-width:100%; border-radius:12px; }
.table-responsive table { min-width:640px; }
.table-responsive td:first-child { min-width:170px; max-width:380px; overflow-wrap:anywhere; }
.publish-control .form-switch { flex-shrink:0; }
[data-theme="light"] .site-nav { background:var(--nav)!important; }
@media (max-width:991.98px) {
    .home-hero { grid-template-columns:minmax(0,1fr); gap:2rem; padding:2rem 0 3rem; }
    .home-hero .hero-copy,.home-hero .lead { max-width:650px; }
    .home-guide { max-width:650px; width:100%; }
    .login-card,.register-card { width:calc(100% - 2rem); margin:1.5rem 1rem; }
    .dashboard-heading > .btn,.editor-heading > .btn { flex-shrink:0; }
}
@media (max-width:767.98px) {
    .site-nav > .container { justify-content:center; }
    .site-nav .navbar-brand { margin-right:0; }
    .nav-actions { width:100%; justify-content:center; padding-bottom:.25rem; }
    .site-nav .navbar-text { display:none; }
    .form-control,.form-select { font-size:1rem; }
    .survey-detail { padding-left:0; padding-right:0; }
    .survey-activity-row { gap:.65rem; padding:1rem; }
    .panel-heading { flex-wrap:wrap; gap:.75rem; }
}
@media (max-width:575.98px) {
    .nav-actions { gap:.4rem!important; }
    .nav-public { display:grid!important; grid-template-columns:44px minmax(0,1fr) minmax(0,1.15fr) 44px; }
    .nav-public .btn { white-space:normal; }
    .nav-public .btn i { display:none; }
    .nav-actions .btn { font-size:.73rem; padding:.55rem .65rem; }
    .admin-access-link { padding:0 .4rem; }
    .admin-access-link span { display:none; }
    .home-hero { padding-top:1.2rem; }
    .home-hero h1 { font-size:clamp(2.4rem,10vw,3.4rem); }
    .home-actions { align-items:stretch; flex-direction:column; gap:.5rem; }
    .home-secondary-link { text-align:center; }
    .home-guide { border-radius:18px; }
    .home-guide-top { margin-bottom:1.4rem; }
    .home-surveys .card-footer { margin-left:1.25rem; margin-right:1.25rem; }
    .login-card-heading,.register-card-heading { padding:1.25rem 1rem .75rem; }
    .login-card-body,.register-card-body { padding:.75rem 1rem 1.25rem; }
    .login-card-footer { padding:1rem; }
    .register-login-footer { flex-direction:column; align-items:flex-start; gap:.65rem; }
    .participation-gate { flex-direction:column; }
    .survey-intro { padding:1.2rem!important; }
    .survey-intro button[type="submit"] { width:100%; }
    .editor-meta .status-pill { display:inline-block; }
    .editor-question-button { gap:.5rem; }
    .builder-actions p { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}

/* A more expressive home page, with a typographic paper illustration. */
.home-hero-expressive { isolation:isolate; position:relative; padding:clamp(1.5rem,4vw,3rem); margin:1.5rem 0 0; border:1px solid #304450; border-radius:28px; background:radial-gradient(ellipse at 10% 0,rgba(125,224,185,.13),transparent 65%),#101e27; gap:2rem; }
.home-hero-expressive .hero-kicker { color:#b6efd8; font-size:.64rem; letter-spacing:.12em; }
.home-hero-expressive h1 { color:#f2f9f5!important; font-size:clamp(2.6rem,4.6vw,4.2rem); line-height:1.08; letter-spacing:-.065em; }
.home-hero-expressive h1 span { color:#bcf6bc; }
.home-hero-expressive .lead { color:#b3c5c8!important; font-size:.93rem; max-width:390px; }
.home-hero-expressive .home-actions .btn { background:#c4f4ac!important; border-color:#c4f4ac!important; color:#18352b!important; border-radius:50px; box-shadow:0 4px 0 #71a88a; }
.home-hero-expressive .home-actions .btn:hover { background:#d6ffc2!important; transform:translateY(-2px); }
.home-hero-expressive .home-secondary-link { color:#eff7f4; }
.home-hero-expressive .home-note { color:#a1b7bc; font-size:.7rem; }
.home-art { position:relative; display:grid; place-items:center; min-width:0; min-height:430px; }
.home-art-orbit { position:absolute; width:95%; aspect-ratio:1; max-width:370px; border:1px solid #476158; border-radius:50%; }
.home-art-orbit::after { content:''; position:absolute; inset:25px; border:1px dashed #476158; border-radius:50%; }
.home-art-paper,.home-art-back { width:78%; max-width:300px; min-height:340px; border-radius:6px 6px 36px 6px; }
.home-art-back { position:absolute; background:#b7a6ec; transform:rotate(9deg); }
.home-art-paper { position:relative; padding:1.7rem; background:#d6f5b9; color:#1b3b32; transform:rotate(-7deg); box-shadow:0 20px 35px #0003; }
.home-art-label { font-size:.55rem; font-weight:800; letter-spacing:.13em; }
.home-art-quote { display:block; height:64px; font-family:Georgia,serif; font-size:6rem; line-height:1.15; }
.home-art-paper p { font-size:clamp(1.7rem,3vw,2.4rem); font-weight:800; letter-spacing:-.06em; line-height:1.15; margin:.5rem 0 1.2rem; }
.home-art-paper em { font-family:Georgia,serif; font-size:1.3em; font-weight:400; }
.home-art-line { height:1px; background:#769574; margin-bottom:.7rem; }
.home-art-signature { display:block; max-width:170px; font-size:.58rem; line-height:1.6; }
.home-art-spark { position:absolute; top:0; right:4%; z-index:2; color:#b7a6ec; font-size:5rem; line-height:1; transform:rotate(12deg); }
.home-art-sticker { position:absolute; bottom:12px; right:0; z-index:2; display:flex; align-items:center; gap:.6rem; padding:1rem 1.1rem; color:#25352e; background:#faf3dc; box-shadow:0 8px 24px #0003; transform:rotate(4deg); font-size:.76rem; font-weight:800; border-radius:8px; }
.home-art-sticker i { display:grid; place-items:center; width:25px; height:25px; background:#263e33; color:#d6f5b9; border-radius:50%; }
.home-art-bubble { position:absolute; left:0; bottom:50px; display:grid; place-items:center; width:62px; height:62px; color:#2d204a; background:#b7a6ec; border-radius:22px 22px 4px 22px; font-size:1.7rem; transform:rotate(-12deg); }
.home-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; padding:1.8rem .8rem; margin-bottom:2.8rem; border-bottom:1px solid var(--line); }
.home-journey > div { display:flex; align-items:center; gap:.9rem; padding:.3rem .6rem; }
.home-journey > div + div { border-left:1px solid var(--line); }
.home-journey > div > span { color:var(--muted); font-family:Georgia,serif; font-style:italic; font-size:1.7rem; }
.home-journey p { margin:0; }
.home-journey strong,.home-journey small { display:block; }
.home-journey strong { font-size:.8rem; }
.home-journey small { font-size:.71rem; color:var(--muted); margin-top:.35rem; }
.home-surveys .section-heading { border-top:0; padding-top:0; }
.home-surveys .section-heading h2 { font-size:clamp(1.8rem,3vw,2.4rem); letter-spacing:-.05em; }
.home-card-grid .survey-card { overflow:hidden; border-radius:18px; }
.home-card-banner { position:relative; isolation:isolate; display:flex; align-items:flex-end; justify-content:space-between; min-height:132px; padding:1.4rem; overflow:hidden; color:#293b32; background:#cee7ba; }
.home-card-banner > i { font-size:2.6rem; transform:rotate(-12deg); }
.home-card-caption { position:relative; max-width:105px; font-size:.7rem; font-weight:800; line-height:1.5; }
.home-card-shape { position:absolute; z-index:-1; width:150px; height:150px; top:-60px; right:15%; border:25px solid #ffffff50; border-radius:50%; }
.home-card-grid > div:nth-child(3n + 2) .home-card-banner { background:#d4c8f0; color:#372954; }
.home-card-grid > div:nth-child(3n + 2) .home-card-shape { border-radius:20px; transform:rotate(35deg); }
.home-card-grid > div:nth-child(3n) .home-card-banner { background:#f1d3b7; color:#563a27; }
.home-card-grid > div:nth-child(3n) .home-card-shape { border-radius:50% 0 50% 0; transform:rotate(-25deg); }
.home-card-grid .home-card-top { margin-bottom:1rem; }
.home-card-grid .card-title { font-size:1.18rem; }
.home-card-invite { font-size:.7rem; color:var(--muted); }
.home-card-grid .card-footer .btn { border-radius:30px; }
[data-theme="light"] .home-hero-expressive { background:radial-gradient(ellipse at 5% 0,#f2f9df,transparent 70%),#dfeddf; border-color:#c4d6c5; }
[data-theme="light"] .home-hero-expressive h1 { color:#213a30!important; }
[data-theme="light"] .home-hero-expressive h1 span { color:#437651; }
[data-theme="light"] .home-hero-expressive .hero-kicker,[data-theme="light"] .home-hero-expressive .home-secondary-link { color:#345b44; }
[data-theme="light"] .home-hero-expressive .lead,[data-theme="light"] .home-hero-expressive .home-note { color:#526958!important; }
[data-theme="light"] .home-art-orbit,[data-theme="light"] .home-art-orbit::after { border-color:#acc6ad; }
@media (max-width:991.98px) {
    .home-hero-expressive { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:1rem; }
    .home-art { min-height:370px; }
    .home-art-paper,.home-art-back { min-height:300px; width:82%; }
    .home-art-paper { padding:1.3rem; }
    .home-art-sticker { right:-5px; font-size:.65rem; padding:.7rem; }
    .home-art-bubble { width:48px; height:48px; font-size:1.3rem; }
    .home-journey { gap:.5rem; padding:1.4rem 0; }
}
@media (max-width:767.98px) {
    .home-hero-expressive { grid-template-columns:minmax(0,1fr); padding:1.6rem; border-radius:22px; }
    .home-hero-expressive h1 { font-size:clamp(2.25rem,8vw,3.6rem); }
    .home-art { width:100%; max-width:400px; margin:.5rem auto 0; min-height:370px; }
    .home-art-paper,.home-art-back { width:75%; }
    .home-art-paper p { font-size:2rem; }
    .home-art-spark { font-size:4rem; right:0; }
    .home-journey { grid-template-columns:minmax(0,1fr); margin-bottom:2rem; }
    .home-journey > div { padding:.65rem; }
    .home-journey > div + div { border-left:0; }
    .home-journey > div > span { min-width:32px; }
}
@media (max-width:359.98px) {
    .home-hero-expressive { padding:1.2rem; }
    .home-art-paper { padding:1.1rem; }
    .home-art-label { font-size:.48rem; }
    .home-art-paper p { font-size:1.75rem; }
}

/* Shared mint, lilac and paper styling across the application. */
:root { --page:#0d171c; --nav:#101e25; --surface:#16262d; --surface-2:#1d3036; --input:#101e25; --line:#30454b; --blue:#bdeba5; --blue-hover:#d3f8be; --blue-soft:rgba(189,235,165,.12); --muted:#a3b9bc; }
[data-theme="light"] { --page:#f3f4ed; --nav:#f3f4ed; --surface:#fffef8; --surface-2:#e9eee3; --input:#f5f6ef; --line:#d0d9cc; --blue:#355f42; --blue-hover:#244a30; --blue-soft:rgba(53,95,66,.1); --muted:#5b6c60; --text:#22382c; }
.site-nav { background:var(--nav)!important; }
.btn { border-radius:12px; }
.btn-light,.btn-primary,.button-full { color:#20372c!important; }
.btn-outline-light { border-color:var(--line)!important; color:var(--text)!important; }
.btn-outline-light:hover { background:var(--surface-2)!important; }
.form-control,.form-select { border-color:var(--line)!important; }
.form-control:focus,.form-select:focus { border-color:var(--blue)!important; box-shadow:0 0 0 .2rem var(--blue-soft)!important; }
.form-check-input:checked { background-color:#557e50; border-color:#8cbc7e; }
.card,.editor-panel,.builder-panel { border-radius:18px; }
.eyebrow,.hero-kicker,.panel-link,.answer-toggle,.register-login-footer a,.existing-account-note a { color:#c0e9ad; }
.badge.bg-primary { color:#c0e9ad!important; }
.theme-toggle,.site-nav .navbar-brand,.site-nav .user-label { background:var(--surface-2); border-color:var(--line); }
.theme-toggle { color:#c0e9ad; }
.site-nav .user-label { color:var(--text)!important; }
.login-page,.register-page,.participant-login-page { border-radius:26px; background:var(--surface)!important; }
.login-intro,.register-intro,.participant-login-intro { flex-direction:column; justify-content:center; overflow:hidden; padding:clamp(2rem,4vw,3.5rem); background:radial-gradient(ellipse at top left,#304c40,transparent 75%),#13292b; }
.login-intro h1,.register-intro h1,.participant-login-intro h1 { color:#e1f7cf!important; letter-spacing:-.055em; }
.login-intro-content > p:not(.hero-kicker),.register-intro p:not(.hero-kicker),.participant-login-intro p:not(.hero-kicker) { color:#b9d0c4; }
.register-benefits { color:#dcebdc; font-size:.76rem; gap:.75rem; }
.register-benefits i { color:#c4eba8; }
.login-card,.register-card { border-radius:22px; box-shadow:none; border-color:var(--line)!important; }
.login-lock,.editor-heading-icon,.builder-step,.question-order,.question-number,.question-count-badge,.survey-file-icon { background:#d3c6ed; color:#463555; border-radius:12px; }
.login-card-heading .login-lock,.register-card-heading .login-lock { width:48px; height:48px; font-size:1.15rem; }
.login-card-body .btn-primary,.register-card-body .btn-primary { border-radius:30px; min-height:48px; }
.login-input-wrap > i:first-child { color:var(--muted); }
.login-card-footer { background:var(--input); }
.voice-note { position:relative; width:90%; max-width:300px; margin:2.5rem auto .5rem; padding:1.6rem; border-radius:5px 5px 30px 5px; background:#d3c6ed; color:#392c4e; transform:rotate(-5deg); box-shadow:10px 10px 0 #92b69b; }
.voice-note-label { font-size:.55rem; letter-spacing:.13em; font-weight:800; }
.voice-note p { margin:1.2rem 0!important; color:#392c4e!important; font-size:2rem; line-height:1.15!important; letter-spacing:-.05em; font-weight:800; }
.voice-note em { font-family:Georgia,serif; font-weight:400; font-size:1.15em; }
.voice-note-signature { display:block; padding-top:.7rem; border-top:1px solid #aa98c5; font-size:.58rem; }
.voice-note-star { position:absolute; right:-15px; top:-30px; font-size:4rem; color:#c9ecae; line-height:1; }
.dashboard-heading,.editor-heading,.builder-heading { padding:1.6rem; background:linear-gradient(120deg,var(--blue-soft),transparent); border:1px solid var(--line); border-radius:20px; }
.metric-card { border-top:3px solid #bdeba5!important; }
.admin-dashboard .row > div:nth-child(2) .metric-card { border-top-color:#c6b6e8!important; }
.admin-dashboard .row > div:nth-child(3) .metric-card { border-top-color:#e9c7a9!important; }
.icon-blue,.icon-green { background:#cce8bd; color:#375837; }
.icon-violet { background:#d3c6ed; color:#463555; }
.icon-amber { background:#f1d3b7; color:#60452c; }
.survey-intro { border-top:5px solid #c1e7ac!important; }
.participation-gate { background:linear-gradient(135deg,var(--blue-soft),transparent); border-color:var(--line); }
.gate-icon { color:#463555; background:#d3c6ed; }
.answer-option { background:var(--input); border-color:var(--line); }
.answer-option:hover,.answer-option:has(input:checked) { border-color:#a0c38b; background:var(--blue-soft); }
.answer-option:focus-within { outline:2px solid var(--blue); outline-offset:2px; }
.editor-answer-list,.publish-control { background:var(--input); }
.admin-access-notice { background:var(--blue-soft); border-color:var(--line); }
.admin-access-notice strong,.admin-access-notice a { color:var(--text); }
.admin-access-notice span { color:var(--muted); }
[data-theme="light"] .btn-light,[data-theme="light"] .btn-primary,[data-theme="light"] .button-full { color:#fff!important; }
[data-theme="light"] .eyebrow,[data-theme="light"] .hero-kicker,[data-theme="light"] .panel-link,[data-theme="light"] .answer-toggle,[data-theme="light"] .register-login-footer a,[data-theme="light"] .existing-account-note a { color:#355f42; }
[data-theme="light"] .login-intro .hero-kicker,[data-theme="light"] .register-intro .hero-kicker,[data-theme="light"] .participant-login-intro .hero-kicker { color:#c0e9ad; }
[data-theme="light"] .badge.bg-primary { color:#355f42!important; }
[data-theme="light"] .btn-outline-light { color:#355f42!important; background:transparent!important; border-color:#a7b9a4!important; }
[data-theme="light"] .btn-outline-light:hover { color:#22382c!important; background:#e1ebd9!important; }
[data-theme="light"] .answer-option,[data-theme="light"] .publish-control,[data-theme="light"] .editor-answer-list { background:var(--input); border-color:var(--line); }
[data-theme="light"] .participation-gate { background:var(--blue-soft); border-color:var(--line); }
@media (max-width:991.98px) {
    .login-intro,.register-intro,.participant-login-intro { min-height:0; padding:1.6rem; }
    .login-intro h1,.register-intro h1,.participant-login-intro h1 { max-width:650px; font-size:1.8rem; }
    .login-intro-content > p:not(.hero-kicker),.register-intro p:not(.hero-kicker),.participant-login-intro p:not(.hero-kicker) { margin:.8rem 0 0; font-size:.8rem; }
    .voice-note,.register-benefits,.login-orb { display:none; }
    .register-intro-content { max-width:650px; }
}
@media (max-width:575.98px) {
    .login-page,.register-page,.participant-login-page { border-radius:18px; }
    .login-intro,.register-intro,.participant-login-intro { padding:1.25rem; }
    .login-intro h1,.register-intro h1,.participant-login-intro h1 { font-size:1.5rem; }
    .dashboard-heading,.editor-heading,.builder-heading { padding:1.1rem; }
}

.survey-pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.survey-pagination p { margin:0; color:var(--muted); font-size:.78rem; }
.survey-pagination ul { display:flex; align-items:center; flex-wrap:wrap; gap:.4rem; padding:0; margin:0; list-style:none; }
.survey-pagination a,.survey-pagination li > span { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:.65rem .85rem; border:1px solid var(--line); border-radius:14px; color:var(--text); background:var(--surface); text-decoration:none; font-size:.78rem; font-weight:700; }
.survey-pagination a:hover { background:var(--blue-soft); border-color:var(--blue); }
.survey-pagination .active > span { color:#20372c; background:#bdeba5; border-color:#bdeba5; box-shadow:0 3px 0 #6e9465; }
.survey-pagination .disabled > span { color:var(--muted); background:transparent; opacity:.55; }
.survey-pagination .ellipsis { color:var(--muted); }
@media (max-width:575.98px) {
    .survey-pagination { flex-direction:column; align-items:center; }
    .survey-pagination ul { justify-content:center; gap:.3rem; }
    .survey-pagination a,.survey-pagination li > span { padding:.6rem; font-size:.7rem; }
}

.survey-list-controls,.survey-page-size { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }
.survey-page-size label { color:var(--muted); font-size:.75rem; white-space:nowrap; }
.survey-page-size .form-select { width:88px; min-height:44px; padding:.6rem 2rem .6rem .8rem; border-radius:12px!important; cursor:pointer; }
