:root{--ink:#142525;--muted:#6f7c79;--line:#e1e8e5;--pale:#f4f7f5;--paper:#fff;--teal:#125f56;--teal-light:#e8f5f0;--warm:#faf9f5;--red:#a33936;--shadow:0 18px 50px rgba(35,55,52,.045)}
*{box-sizing:border-box}html{font-size:15px;scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",Arial,sans-serif;background:var(--pale);color:var(--ink);line-height:1.65}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}.hidden{display:none!important}.brand{display:flex;align-items:center;gap:9px;font-weight:750;letter-spacing:.2px}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;color:white;background:var(--teal);font-size:22px;font-weight:400}.eyebrow,.topline{font-size:11px;letter-spacing:1.65px;font-weight:750;color:#5a7772;text-transform:uppercase}.topline{margin-bottom:14px}.btn{border:1px solid transparent;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:11px 18px;font-size:13px;font-weight:680;transition:background .15s ease,transform .12s ease;min-height:43px;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-dark{color:#fff;background:var(--ink)}.btn-dark:hover{background:#244540}.btn-light{color:var(--ink);background:#fff;border-color:var(--line)}.btn-light:hover{background:#f4f7f5}.btn-plain{color:var(--muted);background:transparent}.btn-danger{color:#9d302b;border-color:#f5d7d2;background:#fff4f2}.btn-danger:hover{background:#ffe9e5}.full{width:100%}.panel,.admin-panel{background:var(--paper);border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow)}.small-muted,.page-tip{font-size:12px;color:var(--muted)}.error-text{color:var(--red);font-size:12px;min-height:16px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;font-weight:700;color:#314741}input:not([type=checkbox]),select,textarea{width:100%;background:white;border:1px solid #d8e1dd;border-radius:10px;padding:11px 13px;color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{border-color:#69a89c;box-shadow:0 0 0 3px rgba(18,95,86,.08)}textarea{resize:vertical;line-height:1.7}.required{color:#cc6357}
/* Public */
.public-page{background:radial-gradient(ellipse at 50% -20%,#dceee7 0%,#f4f7f5 58%,#f5f6f3 100%);min-height:100vh}.public-header{max-width:1040px;margin:auto;padding:28px 25px;display:flex;justify-content:space-between;align-items:center}.public-main{max-width:850px;padding:34px 18px 64px;margin:0 auto}.intro-panel{padding:42px 54px}.intro-panel h1{font-size:clamp(30px,4vw,48px);letter-spacing:-1.7px;line-height:1.23;margin:0 0 18px;font-weight:790}.serif{color:var(--teal)}.intro-lead{font-size:15px;color:#637470;max-width:660px;line-height:1.9}.stats-strip{display:flex;justify-content:space-between;border-block:1px solid var(--line);padding:21px 0;margin:32px 0}.stats-strip>div{display:flex;align-items:baseline;gap:10px}.stats-strip b{font-size:25px;font-weight:730;letter-spacing:-1px}.stats-strip span{color:#899692;font-size:12px}.form-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-bottom:20px}.consent-card{padding:18px 20px;background:#f6f9f7;border:1px solid var(--line);border-radius:12px}.consent-card h2{font-size:13px;margin:0 0 7px}.consent-card p{margin:7px 0 10px;font-size:12px;color:#62736f;line-height:1.85}.consent-row{display:flex;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding-top:13px;font-size:12px;color:#354b45;cursor:pointer}.consent-row input{margin-top:4px;accent-color:var(--teal)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.public-footer{text-align:center;color:#8f9e99;font-size:11px;padding:20px}.quiz-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--teal);margin:0 4px 10px}.progress-track{height:5px;border-radius:10px;background:#dce5df;overflow:hidden;margin-bottom:15px}.progress-fill{height:100%;width:0;background:var(--teal);transition:width .25s ease}.question-panel{padding:39px 46px}.qnumber{color:var(--teal);font-size:11px;font-weight:800;letter-spacing:1.3px;margin-bottom:9px}.question-panel h2{font-size:27px;line-height:1.38;margin:0 0 15px;letter-spacing:-.6px}.qprompt{margin:0 0 13px;font-size:15px;color:#354742;line-height:1.85}.qcontext{white-space:pre-wrap;background:#f7f9f7;border-left:3px solid #bcd7cd;padding:16px 19px;color:#50645e;border-radius:0 10px 10px 0;font-size:13px;line-height:1.9;margin:15px 0 17px}.qhint{font-size:12px;font-weight:650;color:var(--teal);margin:0 0 15px}.qoptions{display:flex;flex-direction:column;gap:10px}.qoption{width:100%;display:flex;align-items:flex-start;text-align:left;gap:13px;padding:15px;border-radius:11px;background:#fff;border:1px solid #dce5df;color:#354a44;min-height:55px;transition:.14s}.qoption:hover{border-color:#7cad9e;background:#fbfdfc}.qoption.selected{border-color:#267a69;background:#f0f9f4;box-shadow:0 0 0 1px #267a69 inset}.qoption .letter{width:28px;height:28px;flex-shrink:0;border-radius:7px;background:#edf2ef;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:760;color:#4e6b61}.qoption.selected .letter{color:#fff;background:var(--teal)}.option-text{flex:1;line-height:1.67;font-size:13px;padding-top:3px}.rank-label{padding:4px 8px;border-radius:7px;white-space:nowrap;font-size:11px;font-weight:730;color:var(--teal);background:#d8eee5}#open-answer{min-height:164px}.flag-section{border-top:1px dashed var(--line);padding-top:19px;margin-top:28px}.flag-section p{font-size:12px;color:#577267;margin:0 0 12px;font-weight:750}.flag-section p span{font-weight:400;color:#9eaaa5}.flag-list{display:flex;gap:8px;flex-wrap:wrap}.flag{border:1px solid var(--line);color:#65746f;border-radius:999px;background:white;padding:7px 11px;font-size:11px}.flag.selected{border-color:#11685d;background:#eaf5ef;color:#11685d}.quiz-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:24px}.page-tip{text-align:center;margin-top:14px}.section-title{font-size:27px;margin:0 0 10px}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:25px 0}.review-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}.review-card:hover{background:#f5faf7}.review-card strong{display:block;font-size:12px}.review-card span{font-size:11px;color:var(--muted)}.review-card.missing{border-color:#e8b19c;background:#fffaf7}#review{padding:35px}.success-panel{padding:100px 30px;text-align:center}.success-panel h1{font-size:35px;margin:14px 0 8px}.success-panel p{color:var(--muted)}.success-mark{margin:auto;width:55px;height:55px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--teal-light);color:var(--teal);font-size:31px}
/* Login */
.login-page{background:#eff4f0;min-height:100vh;display:flex;justify-content:center;align-items:center}.login-shell{width:min(430px,calc(100% - 32px));display:flex;flex-direction:column;gap:18px}.login-panel{padding:34px}.login-panel h1{font-size:28px;margin:0 0 5px}.login-panel form{margin-top:26px;display:grid;gap:15px}.subtle-link{font-size:12px;color:var(--muted);text-align:center}
/* Admin */
.admin-page{background:#f5f7f6;min-height:100vh}.admin-layout{display:grid;grid-template-columns:225px 1fr;min-height:100vh}.sidebar{background:#153c36;color:#dcece5;display:flex;flex-direction:column;gap:35px;padding:28px 19px}.sidebar .brand-icon{background:#e4f2e8;color:#12443a}.sidebar-label{font-size:10px;letter-spacing:1.5px;color:#97b3a8;margin:0 0 -22px 12px}.sidebar-nav{display:grid;gap:8px}.side-nav{color:#b4d1c6;background:transparent;border:none;text-align:left;padding:12px 14px;border-radius:8px;font-size:13px}.side-nav:hover,.side-nav.active{background:#24554a;color:white}.sidebar-bottom{margin-top:auto;border-top:1px solid #3b655a;padding-top:15px;font-size:12px}.sidebar-bottom button{width:100%}.admin-main{min-width:0;padding:32px clamp(18px,3.5vw,60px)}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.admin-topbar h1{margin:4px 0 0;font-size:27px;letter-spacing:-.7px}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:20px}.metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 21px;display:grid;gap:4px}.metric span{font-size:12px;color:var(--muted)}.metric strong{font-size:28px;letter-spacing:-1px}.admin-panel{padding:24px;margin-bottom:22px}.admin-panel h2{font-size:18px;margin:0 0 4px}.admin-panel p{margin:0;color:var(--muted);font-size:12px}.table-head,.table-actions,.filters,.pagination,.detail-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.table-head{margin-bottom:18px}.table-actions{justify-content:flex-end}.filters{justify-content:flex-start;margin:15px 0}.filters input{max-width:300px}.filters select{max-width:150px}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.data-table th{text-align:left;color:#7b9287;font-size:11px;padding:12px;border-bottom:1px solid var(--line);font-weight:700}.data-table td{border-bottom:1px solid #edf2ef;padding:16px 12px}.data-table tr:last-child td{border-bottom:0}.data-table tr:hover td{background:#fafcfb}.data-table .open-detail{color:var(--teal);font-weight:700;border:0;background:transparent}.pill{display:inline-flex;padding:3px 9px;border-radius:999px;background:#ebf5ef;color:#14715b;font-size:11px}.pill.waiting{color:#99652b;background:#faf1df}.pagination{margin-top:18px;font-size:12px;color:var(--muted)}.pagination>div{display:flex;gap:8px}.detail-intro{justify-content:flex-start;margin-bottom:22px}.detail-intro>div{flex:1}.detail-intro h2{font-size:23px;margin:0}.detail-tabs{display:flex;gap:8px;margin-bottom:13px;flex-wrap:wrap}.detail-tab{border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px 15px;font-size:12px;color:#60776c}.detail-tab.active{background:#153c36;color:#fff}.detail-panel{padding:25px}.answer-item{border-bottom:1px solid var(--line);padding:18px 0}.answer-item:last-child{border:0}.answer-item h3{font-size:14px;margin:0 0 6px}.answer-item p{font-size:12px;line-height:1.8;color:#64776f;margin:0 0 8px;white-space:pre-wrap}.answer-choice{padding:9px 12px;background:#f4f8f5;border-radius:8px;margin-top:7px;color:#2d4a40;font-size:12px}.behavior-summary{margin-top:15px;border-top:1px solid var(--line);padding-top:18px}.behavior-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}.behavior-item{padding:13px;border-radius:10px;background:#f6f8f6;color:#587065;font-size:12px}.behavior-item b{display:block;font-size:17px;color:#204e43}.report-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px}.report-layout .field{margin-bottom:18px}.report-layout textarea{min-height:220px;font-size:12px}.report-layout #analyst-note{min-height:90px}.history-panel{border-left:1px solid var(--line);padding-left:24px}.history-panel h3{margin:0 0 15px;font-size:14px}.version-item{width:100%;text-align:left;background:#f8faf8;border:1px solid var(--line);border-radius:10px;padding:11px;margin-bottom:9px}.version-item:hover{border-color:#a6c9ba}.version-item b{display:block;font-size:12px}.version-item span{font-size:11px;color:#73867d}.observation-grid{display:grid;grid-template-columns:1fr 220px;gap:12px}.admin-panel form{display:grid;gap:13px}.observation-card{margin:18px 0 0;border-top:1px solid var(--line);padding-top:17px}.observation-card strong{font-size:13px}.observation-card p{white-space:pre-wrap;margin:6px 0}.admin-notice{position:fixed;bottom:16px;right:18px;z-index:100;padding:13px 18px;color:white;background:#173d33;border-radius:10px;box-shadow:var(--shadow);max-width:450px;font-size:12px}#admin-settings{max-width:600px}#admin-settings form{margin-top:21px}
@media(max-width:850px){.admin-layout{display:block}.sidebar{position:static;min-height:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:15px;padding:13px 18px}.sidebar-label,.sidebar-bottom{display:none}.sidebar-nav{display:flex}.side-nav{font-size:11px;padding:9px}.admin-main{padding:20px 15px}.report-layout{grid-template-columns:1fr}.history-panel{border-left:0;border-top:1px solid var(--line);padding:17px 0 0}.admin-topbar{align-items:flex-start}}
@media(max-width:600px){.public-header{padding:18px 16px}.public-header .eyebrow{display:none}.public-main{padding:22px 12px 50px}.intro-panel,.question-panel,#review{padding:24px 19px}.intro-panel h1{letter-spacing:-1px}.stats-strip{gap:8px}.stats-strip>div{display:grid;gap:0}.form-intro{grid-template-columns:1fr}.question-panel h2{font-size:22px}.qoption{padding:12px}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quiz-footer{flex-wrap:wrap}.quiz-footer .btn{flex:1;padding:10px}.metric-row{gap:8px}.metric{padding:12px}.metric strong{font-size:22px}.admin-topbar h1{font-size:23px}.admin-panel{padding:16px}.table-actions{width:100%;justify-content:flex-start}.observation-grid{grid-template-columns:1fr}.detail-intro{gap:10px}.detail-intro h2{font-size:20px}.filters input{max-width:100%}}
.admin-notice.error-notice{background:#a33936}
#answers-content{margin-top:14px}
#admin-settings form{max-width:520px}

/* Keep account identity and logout available on narrow administrator layouts. */
@media(max-width:850px){.sidebar{flex-wrap:wrap}.sidebar-bottom{display:flex;align-items:center;justify-content:flex-end;gap:10px;width:100%;margin:0;border:0;padding:0}.sidebar-bottom button{width:auto}}

/* A quiet invitation before the existing questionnaire. */
.public-page.intro-view{background:#fafbf9}
.intro-view .public-header{display:none}
.intro-view .public-main{max-width:640px;padding:clamp(46px,9vh,88px) 28px 30px}
.intro-view .intro-panel{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}
.intro-view .topline{font-size:12px;font-weight:500;letter-spacing:.5px;color:#60746d;margin-bottom:23px}
.intro-view .intro-panel h1{font-size:32px;line-height:1.4;letter-spacing:-.6px;font-weight:650;margin:0 0 22px;color:#173f35}
.intro-copy{font-size:15px;line-height:1.95;color:#53655e}
.intro-copy p{margin:0 0 13px}
.intro-entry{margin-top:30px}
.intro-entry .field{gap:9px}
.intro-entry .field label{font-size:14px;font-weight:550}
.intro-entry input{min-height:50px;border-radius:8px;padding:12px 14px;font-size:15px}
.intro-entry input::placeholder{color:#9ba7a0}
.intro-entry .actions{margin-top:13px;gap:10px}
.intro-entry .btn-dark{width:100%;min-height:49px;border-radius:8px;background:#194b3e;font-size:15px;font-weight:550}
.intro-entry .btn-dark:hover{background:#123d31}
.intro-entry .btn-light{width:100%;background:transparent}
.intro-entry .error-text{margin:6px 0 0;min-height:18px}
.intro-view .public-footer{font-size:10px;padding:15px 24px 25px;color:#9da9a1}
.team-editor{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 20px;font-size:12px;color:#64776d}
.team-editor select{max-width:160px}
@media(max-width:600px){.intro-view .public-main{padding:43px 24px 22px}.intro-view .topline{margin-bottom:20px;font-size:11px}.intro-view .intro-panel h1{font-size:28px;margin-bottom:20px;letter-spacing:-.4px}.intro-copy{font-size:14px;line-height:1.95}.intro-copy p{margin-bottom:12px}.intro-entry{margin-top:26px}.intro-note{margin-top:12px}.intro-view .public-footer{padding-top:8px}.team-editor select{max-width:135px}}

.intro-note{margin:15px 0 0;font-size:11px;line-height:1.8;color:#819087}
.intro-entry button:focus-visible{outline:2px solid #437d66;outline-offset:4px}

/* Soft moving light and a translucent cover; absent during the questionnaire. */
.cover-atmosphere{display:none;pointer-events:none}
.intro-view .cover-atmosphere{display:block;position:fixed;inset:0;z-index:0;overflow:hidden;background:linear-gradient(135deg,#edf6f1 0%,#f7f8f0 56%,#edf6f5 100%)}
.cover-glow{position:absolute;display:block;border-radius:50%;filter:blur(54px);will-change:transform;opacity:.8}
.cover-glow-one{width:min(76vw,920px);height:min(70vw,760px);left:-16%;top:-35%;background:radial-gradient(ellipse at 45% 45%,rgba(118,192,164,.7),rgba(172,220,190,.35) 52%,transparent 74%);animation:cover-light-one 22s ease-in-out infinite alternate}
.cover-glow-two{width:min(68vw,820px);height:min(66vw,740px);right:-12%;bottom:-35%;background:radial-gradient(ellipse at 50% 50%,rgba(220,211,156,.55),rgba(207,230,185,.36) 52%,transparent 75%);animation:cover-light-two 28s ease-in-out infinite alternate}
.cover-glow-three{width:min(64vw,740px);height:min(62vw,680px);right:6%;top:10%;background:radial-gradient(ellipse at 50% 45%,rgba(138,199,196,.48),rgba(193,226,219,.28) 52%,transparent 74%);animation:cover-light-three 32s ease-in-out infinite alternate}
.intro-view .public-main,.intro-view .public-footer{position:relative;z-index:1}
.intro-view .public-main{max-width:704px;padding:clamp(28px,6.5vh,64px) 24px 18px}
.intro-view .intro-panel{padding:36px 40px 28px;background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.82);border-radius:26px;box-shadow:0 20px 70px rgba(46,83,62,.055),inset 0 1px 0 rgba(255,255,255,.8)}
.intro-view .intro-panel h1{text-wrap:balance}
.intro-view .intro-entry input{background:rgba(255,255,255,.72);border-color:rgba(158,187,171,.4)}
.intro-view .intro-entry .btn-dark{box-shadow:0 5px 16px rgba(28,75,60,.1)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.intro-view .intro-panel{background:rgba(255,255,255,.48);-webkit-backdrop-filter:blur(24px) saturate(115%);backdrop-filter:blur(24px) saturate(115%)}}
@keyframes cover-light-one{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(24vw,17vh,0) scale(1.08)}}
@keyframes cover-light-two{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-22vw,-21vh,0) scale(1.13)}}
@keyframes cover-light-three{from{transform:translate3d(4vw,-5vh,0) scale(.95)}to{transform:translate3d(-16vw,20vh,0) scale(1.1)}}
@media(max-width:600px){.intro-view .public-main{padding:22px 18px 12px}.intro-view .intro-panel{padding:28px 23px 21px;border-radius:22px}.intro-view .intro-panel h1{font-size:clamp(22px,6.6vw,26px)}.cover-glow{filter:blur(37px)}.cover-glow-one{width:120vw;height:125vw;left:-56%;top:-18%}.cover-glow-two{width:120vw;height:120vw;right:-52%;bottom:-8%}.cover-glow-three{width:115vw;height:125vw;right:-32%;top:15%}.intro-view .public-footer{padding-top:12px}}
@media(prefers-reduced-motion:reduce){.intro-view .cover-glow{animation:none;transform:none;will-change:auto}}

/* The character uses one coordinated time-based pose controller. */
.cover-cat{display:none;pointer-events:none;user-select:none}
.intro-view .public-main{padding-top:120px}
.intro-view .intro-panel{position:relative}
.intro-view .cover-cat{display:block;position:absolute;right:21px;top:-115px;width:216px;height:144px;z-index:2}
.cover-cat svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 3px rgba(31,53,39,.1))}
.cover-cat svg g,.cover-cat svg path{transform-box:view-box}
.public-page.intro-view{display:flex;flex-direction:column;min-height:100svh}
.intro-view .public-main{width:100%;flex:1;display:flex;flex-direction:column;justify-content:center}
.intro-view .intro-panel{flex-shrink:0}
.intro-view .public-footer{flex-shrink:0}
@media(max-width:600px){.intro-view .public-main{padding-top:108px}.intro-view .cover-cat{width:180px;height:120px;top:-96px;right:12px}}
