:root{--bg:#eef2f6;--panel:#fff;--text:#171b22;--muted:#667085;--line:#d9dee7;--line-soft:#edf0f4;--primary:#c92920;--primary-dark:#a81f18;--danger:#b42318;--shadow:0 14px 38px rgba(20,24,32,.08)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{background:var(--bg)}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.button.disabled,button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}.shell{width:min(100%,760px);min-height:100vh;margin:0 auto;background:#f6f8fb}.loading{padding:32px 18px;color:var(--muted);text-align:center}.poster-shell{position:relative;display:grid;align-items:center;padding:18px;overflow:hidden;background:#101821}.poster-shell:before{content:"";position:fixed;inset:-18px;z-index:0;background:linear-gradient(90deg,rgba(8,14,24,.56),rgba(8,14,24,.18) 48%,rgba(8,14,24,.62)),linear-gradient(180deg,rgba(6,10,18,.22),rgba(6,10,18,.7)),url(/assets/ocean-liner-bg.png) 50% /cover no-repeat;filter:blur(7px);transform:scale(1.04)}.poster-shell:after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at center,hsla(0,0%,100%,.16),transparent 34%),linear-gradient(180deg,hsla(0,0%,100%,.04),rgba(0,0,0,.18))}.poster-card,.start-survey-card{position:relative;z-index:1;display:grid;grid-gap:18px;gap:18px}.start-survey-card{width:min(100%,470px);margin:0 auto;padding:54px 24px 26px;border:1px solid hsla(0,0%,100%,.34);border-radius:3px;background:radial-gradient(circle at 92% 24%,hsla(0,0%,100%,.18),transparent 24%),radial-gradient(circle at 18% 40%,hsla(0,0%,100%,.1),transparent 20%),linear-gradient(180deg,#3264f6,#7596ff 54%,#b7caff);box-shadow:0 24px 80px rgba(0,0,0,.34),0 0 0 8px hsla(0,0%,100%,.08);overflow:hidden}.start-survey-card h1{position:relative;z-index:1;margin:0 auto 24px;max-width:11em;color:#111827;font-size:28px;font-weight:950;line-height:1.45;text-align:center}.corner-lines{position:absolute;width:70px;height:70px;border-color:rgba(206,224,255,.62);pointer-events:none}.corner-left{top:18px;left:18px;border-top:2px solid;border-left:2px solid}.corner-right{top:112px;right:18px;border-right:2px solid;border-bottom:2px solid}.start-banner{position:relative;z-index:1;overflow:hidden;border-radius:8px;background:hsla(0,0%,100%,.16);box-shadow:0 12px 26px rgba(13,43,112,.2)}.start-banner img{display:block;width:100%;aspect-ratio:3/1;object-fit:cover}.start-banner-placeholder{display:grid;place-items:center;aspect-ratio:3/1;color:hsla(0,0%,100%,.82);font-weight:900;letter-spacing:0}.survey-intro{position:relative;z-index:1;margin-top:2px;border:1px solid rgba(226,232,255,.88);border-radius:6px 6px 0 0;padding:54px 18px 18px;background:rgba(246,248,255,.92);color:#111827}.survey-intro>span{position:absolute;top:0;left:18px;transform:translateY(-1px);border-radius:0 0 6px 6px;padding:8px 16px;background:#3a68ff;color:#fff;font-size:20px;font-weight:950;box-shadow:0 8px 18px rgba(34,76,210,.24)}.survey-intro p{color:#111827;font-size:17px;line-height:1.55}.survey-intro p+p{margin-top:16px}.poster-image{display:block;width:100%;max-width:100%;height:auto;max-height:none;border-radius:8px;border:1px solid hsla(0,0%,100%,.46);background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.34),0 0 0 8px hsla(0,0%,100%,.08)}.finish-poster-card{width:100%;margin:0 auto}.finish-poster-shell{overflow-x:hidden;overflow-y:visible}.poster-placeholder{display:grid;place-items:center;min-height:min(74vh,820px);border:1px solid #d6dce5;border-radius:8px;background:linear-gradient(180deg,hsla(0,0%,100%,.92),hsla(0,0%,100%,.82)),linear-gradient(135deg,#f2f4f7,#fff 48%,#e8edf4);color:#151922;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.34),0 0 0 8px hsla(0,0%,100%,.08)}.poster-placeholder span{max-width:12em;font-size:34px;line-height:1.2;font-weight:900}.poster-placeholder.finish{gap:10px;align-content:center}.poster-placeholder.finish strong{color:var(--muted);font-size:16px}.button,.primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:8px;padding:0 18px;background:var(--primary);color:#fff;font-weight:900;text-align:center;white-space:nowrap}.primary-button{width:100%;box-shadow:0 16px 34px rgba(72,18,16,.34)}.button.secondary{border:1px solid var(--line);background:#fff;color:var(--text)}.form-card{position:relative;min-height:100vh;padding:24px 20px 30px;background:#fff;overflow:hidden}.form-card:before{background:linear-gradient(180deg,hsla(0,0%,100%,.72),hsla(0,0%,100%,.9))}.form-card:after,.form-card:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}.form-card:after{background-image:linear-gradient(90deg,rgba(221,225,231,.45) 1px,transparent 0);background-size:100% 1px}.watermark-layer{position:absolute;inset:-54px -78px;z-index:0;display:grid;grid-template-columns:repeat(4,210px);grid-auto-rows:96px;grid-gap:4px 46px;gap:4px 46px;pointer-events:none;overflow:hidden;opacity:.34;transform:rotate(-16deg);transform-origin:center}.watermark-layer span{align-self:center;color:rgba(105,114,128,.44);font-size:15px;font-weight:800;line-height:1;white-space:nowrap;text-rendering:geometricPrecision}.form-header,.question-list,.submit-panel,.summary{position:relative;z-index:1}.form-header{display:flex;justify-content:space-between;gap:14px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--line-soft)}.eyebrow,.kicker{display:block;color:var(--primary-dark);font-size:13px;font-weight:900}.form-header h1{margin-top:4px;font-size:24px;line-height:1.25}.progress{flex:0 0 auto;align-self:flex-start;border:1px solid #e3e6eb;border-radius:8px;padding:7px 10px;background:#fff;color:var(--muted);font-size:13px;font-weight:800}.summary{margin-bottom:30px;border-left:4px solid rgba(201,41,32,.78);padding:12px 14px;background:rgba(249,250,252,.88);color:#111827;font-size:16px;line-height:1.55}.survey-image{position:relative;z-index:1;margin:-14px 0 28px;overflow:hidden;border:1px solid var(--line-soft);border-radius:8px;background:#fff;box-shadow:0 12px 30px rgba(20,24,32,.08)}.survey-image img{display:block;width:100%;max-height:280px;object-fit:cover}.summary p+p{margin-top:4px}.question-list{display:grid;grid-gap:24px;gap:24px}.question{display:grid;grid-gap:10px;gap:10px;padding-bottom:18px;border-bottom:1px solid rgba(229,233,239,.76)}.question span{color:#20242c;font-size:18px;line-height:1.45}.question em{margin-right:3px;color:var(--primary);font-style:normal;font-weight:900}.answer-input{width:min(100%,520px);min-height:46px;border:1px solid #dfe3ea;border-radius:6px;padding:10px 12px;background:hsla(0,0%,100%,.94);color:var(--text);outline:none}.admin-question input:focus,.answer-input:focus,.field input:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(201,41,32,.12)}.submit-panel{display:grid;grid-gap:12px;gap:12px;margin-top:34px;padding:18px;border-top:1px solid #eceff3;border-radius:8px;background:#fafbfc}.submit-panel p{color:var(--muted);font-size:14px;line-height:1.5}.error-text{color:var(--danger)!important;font-size:13px;line-height:1.5}.admin-shell{width:min(100%,1180px);min-height:100vh;margin:0 auto;padding:24px}.login-panel,.notice,.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.login-panel{width:min(100%,420px);margin:9vh auto 0;padding:22px;display:grid;grid-gap:16px;gap:16px}.panel{padding:18px}.stack{display:grid;grid-gap:14px;gap:14px}.section-title{display:grid;grid-gap:5px;gap:5px}.section-title h1{font-size:26px;line-height:1.25}.section-title h2{font-size:18px;line-height:1.3}.muted,.section-title p{color:var(--muted);font-size:13px;line-height:1.5}.field{display:grid;grid-gap:7px;gap:7px}.field span{font-size:14px;font-weight:800}.admin-question input,.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;color:var(--text);background:#fff;outline:none}.admin-question input,.field input{min-height:46px}.field textarea{min-height:180px;resize:vertical;line-height:1.65}.question-count-field input{width:140px}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;border:1px solid var(--line);border-radius:8px;padding:18px;background:var(--panel);box-shadow:var(--shadow)}.admin-actions,.button-row{display:flex;gap:10px}.notice{margin-bottom:16px;padding:12px 14px;box-shadow:none}.admin-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);grid-gap:16px;gap:16px}.admin-question-list{display:grid;grid-gap:10px;gap:10px}.admin-question{display:grid;grid-template-columns:34px minmax(0,1fr) 70px;align-items:center;grid-gap:10px;gap:10px}.admin-question.is-hidden{opacity:.48}.admin-question.is-hidden>span{background:#e3e6eb}.admin-question.is-hidden>input{background:#f5f6f8}.admin-question>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f0f2f5;color:var(--muted);font-size:13px;font-weight:800}.required-toggle{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;font-weight:700}.poster-preview{display:grid;place-items:center;min-height:210px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfd;color:var(--muted);overflow:hidden}.poster-preview img{display:block;width:100%;max-height:360px;object-fit:contain}.file-button{position:relative;flex:1 1;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.submission-list{display:grid;grid-gap:10px;gap:10px;max-height:420px;overflow:auto}.submission-item{border:1px solid var(--line-soft);border-radius:8px;background:#fff}.submission-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:12px}.submission-main strong{display:block;color:var(--text);font-size:13px;font-weight:800}.submission-main p{margin-top:6px;overflow:hidden;color:var(--muted);font-size:13px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.button.compact{min-height:36px;padding:0 12px;font-size:13px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.44)}.modal-panel{width:min(100%,780px);max-height:min(86vh,820px);overflow:hidden;border-radius:8px;border:1px solid var(--line);background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.28)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line-soft)}.modal-header h2{margin-top:4px;font-size:18px;line-height:1.35}.answer-detail-list{display:grid;grid-gap:0;gap:0;max-height:calc(min(86vh, 820px) - 82px);margin:0;overflow:auto}.answer-detail{display:grid;grid-template-columns:36px minmax(0,1fr);grid-gap:12px;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-soft)}.answer-detail>span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f1f4f8;color:var(--muted);font-size:13px;font-weight:900}.answer-detail h3{margin:0 0 6px;color:var(--text);font-size:15px;line-height:1.45}.answer-detail p{color:#374151;font-size:14px;line-height:1.65;white-space:pre-wrap}@media (max-width:860px){.admin-grid,.admin-header{display:grid;grid-template-columns:1fr}.admin-actions{width:100%}.admin-actions .button{flex:1 1}}@media (max-width:560px){.poster-shell{padding:12px}.poster-placeholder span{font-size:28px}.start-survey-card{width:min(100%,470px);padding:44px 16px 22px}.start-survey-card h1{margin-bottom:18px;font-size:25px}.survey-intro{padding:50px 16px 16px}.survey-intro p{font-size:16px}.form-card{padding:18px 14px 24px}.watermark-layer{inset:-44px -96px;grid-template-columns:repeat(3,190px);grid-auto-rows:86px;gap:2px 30px;opacity:.32}.watermark-layer span{font-size:14px}.summary{font-size:16px}.question-list{gap:22px}.question span{font-size:17px}.admin-shell{padding:14px}.admin-question{grid-template-columns:30px minmax(0,1fr)}.required-toggle{grid-column:2}.button-row{display:grid}.button-row,.submission-main{grid-template-columns:1fr}.submission-main p{white-space:normal}.modal-header{display:grid}.button,.primary-button{width:100%}}