:root{--ink:#302239;--muted:#75657e;--berry:#8e526f;--rose:#d79bb7;--lav:#a99bcf;--paper:rgba(255,253,255,.68);--line:rgba(92,61,111,.13)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink)}button,input{font:inherit}button{cursor:pointer}.hidden{display:none!important}
body{background:#f8f2f7}.cosmos{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;display:grid;place-items:center;padding:32px 18px;background:linear-gradient(rgba(255,252,255,.16),rgba(250,244,251,.28)),url("/watercolor-bg.png") center/cover fixed no-repeat}
.cosmos:after{content:"";position:fixed;z-index:-4;inset:0;pointer-events:none;background:radial-gradient(circle at 52% 42%,rgba(255,255,255,.62) 0 18%,rgba(255,255,255,.22) 44%,transparent 70%),linear-gradient(115deg,rgba(218,184,215,.13),rgba(255,255,255,.08) 45%,rgba(184,172,217,.14));mix-blend-mode:screen}
.wash,.cloud,.stars{position:fixed;pointer-events:none}.wash{z-index:-3;border-radius:48% 52% 43% 57%;filter:blur(42px);opacity:.34;mix-blend-mode:multiply}.wash-one{width:70vw;height:56vw;left:-24vw;top:-20vw;background:radial-gradient(ellipse at 58% 50%,rgba(167,130,197,.4),rgba(226,170,196,.19) 46%,transparent 73%);animation:drift 18s ease-in-out infinite alternate}.wash-two{width:68vw;height:62vw;right:-22vw;bottom:-28vw;background:radial-gradient(ellipse at 42% 44%,rgba(219,151,181,.3),rgba(161,148,202,.2) 48%,transparent 75%);animation:drift 22s ease-in-out -6s infinite alternate-reverse}
.cloud{z-index:-2;width:390px;height:136px;border-radius:50%;filter:blur(26px);background:rgba(255,255,255,.67);opacity:.5}.cloud:before,.cloud:after{content:"";position:absolute;border-radius:50%;background:inherit}.cloud:before{width:190px;height:190px;left:44px;top:-74px}.cloud:after{width:220px;height:170px;right:22px;top:-56px}.cloud-one{left:-110px;bottom:9%;animation:cloud 24s ease-in-out infinite alternate}.cloud-two{right:-90px;top:14%;transform:scale(.72);animation:cloud 21s ease-in-out -5s infinite alternate-reverse}
.stars{z-index:-1;inset:0}.stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:var(--star-core,#fff);box-shadow:0 0 7px 2px var(--star-core,#fff),0 0 18px 6px var(--star-glow,rgba(210,167,221,.35));animation:twinkle 2.8s ease-in-out infinite}.stars i:nth-child(4n){width:4px;height:4px}.stars i:nth-child(9n){width:6px;height:6px}.stars i:nth-child(7n){box-shadow:0 0 10px 3px var(--star-core,#fff),0 0 23px 8px var(--star-glow,rgba(224,154,184,.35))}.stars i:nth-child(11n){border-radius:1px;rotate:45deg}.stars i:nth-child(13n){filter:saturate(1.35)}
@keyframes twinkle{0%,100%{opacity:.22;transform:scale(.65)}50%{opacity:1;transform:scale(1.45)}}@keyframes drift{to{transform:translate(5vw,3vw) rotate(7deg)}}@keyframes cloud{to{transform:translate(60px,-18px) scale(.9)}}
.panel{width:min(720px,100%);border:1px solid rgba(255,255,255,.78);border-radius:34px;background:var(--paper);box-shadow:0 26px 75px rgba(88,57,99,.12),inset 0 1px 0 rgba(255,255,255,.94);backdrop-filter:blur(22px) saturate(108%);-webkit-backdrop-filter:blur(22px) saturate(108%)}
.hero{text-align:center;padding:70px 30px}.hero h1{margin:0;font-family:Georgia,serif;font-size:clamp(72px,16vw,132px);font-weight:500;letter-spacing:-.08em;color:#6f315f;text-shadow:0 12px 28px rgba(140,58,105,.18)}.hero p{margin:18px 0 36px;color:var(--muted);font-size:16px}.primary{border:0;border-radius:999px;padding:15px 28px;color:#fff;font-weight:700;background:linear-gradient(135deg,#8f406b,#a66aa8);box-shadow:0 12px 30px rgba(124,55,101,.26);transition:.2s transform,.2s box-shadow}.primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(124,55,101,.3)}.primary:disabled{opacity:.55;cursor:wait}.primary span{margin-left:12px}
.question{padding:28px 34px 32px}.topline{display:flex;align-items:center;justify-content:space-between;color:#6c426d}.topline span{font-family:Georgia,serif;font-size:25px;letter-spacing:-.04em}.topline b{font-size:12px;letter-spacing:.14em}.progress{height:4px;margin:20px 0 38px;border-radius:99px;background:rgba(105,69,122,.1);overflow:hidden}.progress i{display:block;height:100%;width:10%;border-radius:99px;background:linear-gradient(90deg,#9a6dcc,#df87ae);transition:width .35s ease}.question-copy p{margin:0 0 10px;color:#9d5b88;font-size:12px;font-weight:800;letter-spacing:.08em}.question-copy h2{margin:0;color:#32203e;font-family:Georgia,"Songti SC",serif;font-size:clamp(25px,5vw,36px);font-weight:600;line-height:1.3}.question-copy small{display:block;min-height:24px;margin-top:10px;color:var(--muted)}
.options{display:grid;gap:11px;margin-top:25px}.option{width:100%;display:grid;grid-template-columns:34px 1fr 24px;align-items:center;gap:10px;padding:15px 17px;text-align:left;color:#4b3554;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.56);transition:.2s}.option:hover{border-color:rgba(142,65,108,.34);transform:translateY(-1px)}.option.active{color:#6e2f5c;border-color:#b96b98;background:linear-gradient(135deg,rgba(242,211,230,.92),rgba(228,217,247,.82));box-shadow:0 9px 24px rgba(124,67,105,.11)}.option-key{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(144,88,139,.09);font-size:12px;font-weight:800}.option b{text-align:center;color:#a04e7b}.option-copy{display:grid;gap:5px}.option-copy strong{color:#4b2f50;font-size:15px}.option-copy small{color:#766079;font-size:12px;line-height:1.65}.option.active .option-copy strong{color:#6e2f5c}.other{display:grid;gap:8px;margin-top:2px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.62);font-size:13px;color:var(--muted)}.other input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;outline:0;background:#fff;color:var(--ink)}.other input:focus{border-color:#b56393;box-shadow:0 0 0 3px rgba(181,99,147,.1)}.notice{min-height:22px;margin:14px 4px 0;color:#a33e64;font-size:13px}.actions{display:flex;align-items:center;justify-content:space-between;margin-top:7px}.back,.text-button{border:0;background:transparent;color:#755f7a}.back:disabled{opacity:.3}.next{min-width:136px}.thanks{text-align:center;padding:64px 28px}.thanks .moon{font-size:34px;color:#b15c88}.thanks h2{font:600 clamp(30px,6vw,46px)/1.25 Georgia,"Songti SC",serif}.thanks em{color:#90436e}.thanks p{color:var(--muted);margin-bottom:28px}
.rating-grid{display:grid;gap:13px}.rating-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.58)}.rating-card p{margin:0 0 13px;color:#4b3554;font-size:14px;line-height:1.55}.rating-choices{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.rating-choices button{height:40px;border:1px solid rgba(102,68,116,.14);border-radius:12px;background:rgba(255,255,255,.72);color:#6d5774;font-weight:700;transition:.2s}.rating-choices button:hover{transform:translateY(-1px);border-color:#bc7ca2}.rating-choices button.active{border-color:#b96b98;color:#fff;background:linear-gradient(135deg,#a86591,#9b7fc2);box-shadow:0 8px 18px rgba(121,71,110,.18)}.open-answer{display:grid;gap:8px}.open-answer textarea{width:100%;min-height:160px;resize:vertical;padding:17px;border:1px solid var(--line);border-radius:18px;outline:0;background:rgba(255,255,255,.68);color:var(--ink);line-height:1.7}.open-answer textarea:focus{border-color:#b56393;box-shadow:0 0 0 3px rgba(181,99,147,.1)}.open-answer span{text-align:right;color:var(--muted);font-size:12px}.city-helper{display:grid;justify-items:start;margin-top:4px}.city-helper-link{border:0;background:transparent;color:#91527b;text-decoration:underline;text-underline-offset:3px;font-size:13px}.city-helper-panel{width:100%;display:grid;grid-template-columns:1fr auto;gap:9px;padding:14px;border:1px dashed rgba(113,78,125,.22);border-radius:17px;background:rgba(255,255,255,.45)}.city-helper-panel input{min-width:0;padding:11px 13px;border:1px solid var(--line);border-radius:12px;outline:0;background:rgba(255,255,255,.82);color:var(--ink)}.city-helper-panel>button{padding:0 16px;border:0;border-radius:12px;background:#9a5f88;color:#fff}.city-helper-panel p,.city-helper-panel small{grid-column:1/-1;margin:0;color:#6c5673;font-size:12px;line-height:1.55}.city-helper-panel p button{margin-left:5px;padding:4px 9px;border:1px solid rgba(154,95,136,.25);border-radius:9px;background:#f7eaf3;color:#8b4773}.text-response{margin:10px 0 0;padding:11px 13px;border-radius:13px;background:rgba(245,237,247,.72);color:#5d4965;font-size:13px;line-height:1.55}.text-response strong{color:#8a4f78}
.admin-body{min-height:100vh;background:linear-gradient(145deg,#f7f0f8,#f2e6f1)}.admin-shell{min-height:100vh}.admin-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7);backdrop-filter:blur(14px)}.admin-header div{display:flex;align-items:center;gap:16px}.admin-header strong{font:600 30px Georgia,serif;color:#7d365f}.admin-header span{color:var(--muted)}.login-card{width:min(460px,calc(100% - 32px));margin:10vh auto;padding:38px;border:1px solid rgba(255,255,255,.9);border-radius:28px;background:rgba(255,255,255,.74);box-shadow:0 26px 70px rgba(73,39,83,.13)}.login-card>p,.admin-title p{margin:0;color:#9b6088;font-size:11px;font-weight:800;letter-spacing:.16em}.login-card h1{font:600 34px Georgia,"Songti SC",serif}.login-card form{display:grid;gap:18px}.login-card label{display:grid;gap:9px;color:var(--muted);font-size:13px}.login-card input{padding:14px;border:1px solid var(--line);border-radius:13px;outline:0}.dashboard{width:min(1260px,92vw);margin:0 auto;padding:48px 0 70px}.admin-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.admin-title h1{margin:8px 0 0;font:600 36px Georgia,"Songti SC",serif}.primary.small{padding:11px 20px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-grid article,.chart-card,.table-card{border:1px solid rgba(255,255,255,.9);border-radius:22px;background:rgba(255,255,255,.72);box-shadow:0 15px 38px rgba(78,45,88,.08)}.stat-grid article{padding:22px}.stat-grid span{display:block;color:var(--muted);font-size:13px}.stat-grid strong{display:block;margin-top:9px;font:600 34px Georgia,serif;color:#7e3c65}.analysis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}.chart-card{padding:22px}.chart-card h2{margin:0 0 18px;font-size:16px}.bar-row{margin:13px 0}.bar-row div{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#59445f}.bar-row b{white-space:nowrap;color:#8b5373}.bar-row i{display:block;height:7px;margin-top:7px;border-radius:99px;background:#eee4ef;overflow:hidden}.bar-row em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a87cc9,#da80aa)}.table-card{margin-top:14px;padding:22px}.table-title{display:flex;align-items:center;justify-content:space-between}.table-title h2{margin:0 0 18px;font-size:18px}.table-title span{color:var(--muted);font-size:13px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:820px}th,td{padding:13px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:12px}th{color:#7d657f}td{color:#46364b}.empty{color:var(--muted);font-size:13px}
@media(max-width:820px){.panel{border-radius:26px}.question{padding:24px 19px}.hero{padding:58px 22px}.stat-grid{grid-template-columns:repeat(2,1fr)}.analysis-grid{grid-template-columns:1fr}.admin-header{padding:0 18px}.admin-header span{display:none}.dashboard{width:calc(100% - 28px);padding-top:28px}.admin-title{align-items:flex-start;gap:20px}.admin-title h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
