@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--berry:#a33060;--ink:#4b2637;--muted:#826975;--line:#eddae3;--pink:#f9eaf0;--paper:#fffdfd}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 30%,#fbeaf0 0,transparent 48%),radial-gradient(ellipse at 95% 80%,#f4edf8 0,transparent 45%),#fffafb;color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;min-height:100svh}header{max-width:1200px;margin:auto;padding:30px 40px;display:flex;align-items:center;justify-content:space-between}header img{display:block;width:132px;height:auto}header>span,.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:700;color:var(--berry)}.survey{max-width:600px;margin:26px auto 0;padding:0 24px}.intro{text-align:center}.intro h1{font:500 44px/1.18 'Playfair Display',Georgia,serif;letter-spacing:-1.5px;margin:17px 0}.intro em{color:var(--berry);font-weight:500}.intro p{color:var(--muted);font-size:14px;line-height:1.8;margin:0 0 29px}.form-card{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:29px 32px;box-shadow:0 14px 60px #7c2b5010}.progress-heading{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.2px;color:var(--berry);font-weight:700}.progress-heading span+span{letter-spacing:0;font-weight:400;color:var(--muted)}.progress-track{height:4px;background:#f2e7ed;border-radius:5px;margin:13px 0 27px;overflow:hidden}#progress{height:100%;width:16.67%;background:var(--berry);border-radius:5px;transition:width .25s}h2{font-size:23px;line-height:1.4;letter-spacing:-.5px;margin:0 0 8px;font-weight:600}.hint{font-size:12px;color:var(--muted);margin:0 0 19px}.choices{display:grid;gap:9px}.choice{display:flex;position:relative;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:11px;cursor:pointer;min-height:53px;transition:background .15s,border-color .15s}.choice:hover{background:#fdf4f7}.choice:has(input:checked){border-color:var(--berry);background:#fbecf3;color:var(--berry)}.choice input{accent-color:var(--berry);width:18px;height:18px;margin:0;flex:none}.choice .letter{color:#a88b98;font-size:11px;width:12px}.choice .label{flex:1;font-size:14px}.actions{display:flex;align-items:center;gap:16px;margin-top:20px}.primary{background:var(--berry);border:0;border-radius:12px;color:white;padding:17px 22px;font:600 14px 'DM Sans',sans-serif;min-height:53px;cursor:pointer;flex:1;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:#8e2752}.primary:disabled{opacity:.6;cursor:wait}.back{background:none;border:0;font:500 13px 'DM Sans',sans-serif;color:var(--muted);padding:15px 0;cursor:pointer}.back[hidden]{display:none}.footnote{text-align:center;color:#967985;font-size:11px;margin:23px 0}footer{max-width:1100px;padding:28px 30px;margin:20px auto 0;display:flex;justify-content:space-between;color:#967985;font-size:11px}a{color:inherit;text-underline-offset:3px}#error{color:#af264c;font-size:13px;margin:12px 0 0}#error:empty{display:none}input[type=text],input[type=email],input[type=tel],input[type=password],textarea,select{width:100%;font:inherit;border:1px solid var(--line);border-radius:10px;padding:14px;background:white;color:var(--ink)}textarea{resize:vertical;min-height:130px;line-height:1.6}.field{display:block;font-size:13px;margin:18px 0}.field input{margin-top:7px}input:focus-visible,button:focus-visible,a:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d185a5;outline-offset:3px}.other{margin-top:12px}.rating{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.rating .choice{justify-content:center;padding:14px 4px;font-weight:600}.rating input{position:absolute;opacity:0;width:1px;height:1px}.rating .choice:focus-within{outline:3px solid #d185a5}.scale{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;margin-top:10px}.consent{display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.6;color:var(--muted);margin:15px 0}.consent input{accent-color:var(--berry);margin-top:3px}.success{text-align:center;padding:25px 0}.success .heart{font-size:48px;color:var(--berry);margin-bottom:18px}.success p{line-height:1.8;color:var(--muted)}.success a{display:inline-block;margin-top:15px;color:var(--berry)}.privacy{max-width:680px;margin:40px auto;padding:24px;line-height:1.8}.admin{max-width:1180px;margin:20px auto;padding:0 30px 40px}.admin h1{font:500 35px 'Playfair Display',Georgia,serif}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.admin-top nav{display:flex;gap:12px}.small-button{border:1px solid var(--line);background:white;border-radius:9px;padding:11px 15px;color:var(--berry);cursor:pointer;font:inherit;text-decoration:none}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.stat,.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:22px}.stat strong{display:block;font-size:30px;margin:8px 0}.stat span,.stat small{color:var(--muted);font-size:12px}.panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel h2{font-size:18px}.bar-row{margin:16px 0;font-size:12px}.bar-label{display:flex;justify-content:space-between;gap:15px}.bar{height:7px;background:#f7edf1;border-radius:8px;margin-top:8px;overflow:hidden}.bar i{display:block;height:100%;background:#ba5a80;border-radius:8px}.table-wrap{overflow:auto;margin-top:20px;background:white;border:1px solid var(--line);border-radius:16px}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:16px;border-bottom:1px solid #f3e7ed;white-space:nowrap}th{font-size:10px;letter-spacing:1px;color:var(--muted)}.toolbar{display:flex;gap:12px;align-items:center;margin:25px 0 10px}.toolbar input{max-width:350px}.empty{padding:30px;text-align:center;color:var(--muted)}.badge{padding:5px 8px;background:#f8eaf0;color:var(--berry);border-radius:6px;font-size:11px}.login{max-width:400px;margin:50px auto;padding:28px}.detail{margin-top:20px}.detail dt{font-weight:600;margin-top:15px}.detail dd{margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.toast{color:var(--berry);font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:600px){header{padding:22px 24px}header img{width:109px}header>span{font-size:8px;letter-spacing:1.3px}.survey{margin-top:14px;padding:0 18px}.intro h1{font-size:35px;margin:13px 0}.intro p{font-size:12px;margin-bottom:23px}.eyebrow{font-size:9px}.form-card{padding:23px 20px;border-radius:20px}h2{font-size:21px}.progress-heading{font-size:9px}.progress-heading span+span{font-size:10px}.choice{min-height:53px}.choice .label{font-size:13px}footer{flex-direction:column;align-items:center;gap:13px;margin-top:5px;padding:20px}.admin{padding:0 16px}.stats{grid-template-columns:1fr 1fr;gap:10px}.panels{grid-template-columns:1fr}.stat{padding:16px}.admin-top nav{flex-wrap:wrap}.toolbar{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.primary[hidden]{display:none}#save-status{margin:16px 0 0;font-size:11px}.rating .label{text-align:center}

.pin-login{text-align:center;max-width:380px;margin:35px auto;padding:30px}.pin-login h2{font:500 32px 'Playfair Display',Georgia,serif;margin:14px 0 10px}.pin-login .hint{line-height:1.6}.pin-dots{display:flex;justify-content:center;gap:16px;margin:29px 0}.pin-dots span{width:15px;height:15px;border:1.5px solid #c5a8b5;border-radius:50%;background:white;transition:background .12s,transform .12s}.pin-dots span.filled{background:var(--berry);border-color:var(--berry);transform:scale(1.08)}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pin-keypad button{height:68px;border:1px solid var(--line);border-radius:16px;background:#fffafb;color:var(--ink);font:500 26px 'DM Sans',sans-serif;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.pin-keypad button:hover{background:#f8e8ef;border-color:#c991aa}.pin-keypad button:active{background:var(--berry);color:white;transform:scale(.96)}.pin-keypad button:disabled{opacity:.55;cursor:wait}.pin-keypad .pin-action{font-size:14px;color:var(--berry);background:transparent;border-color:transparent}.pin-keypad #pin-delete{font-size:24px}#pin-help{margin:20px 0 0;font-size:11px}.pin-login #error{min-height:0}@media(max-width:420px){.pin-login{margin:18px auto;padding:26px 22px}.pin-keypad button{height:64px}}

#form-editor{max-width:850px;margin:auto}#form-editor fieldset{border:1px solid #ead8e2;border-radius:14px;padding:20px;margin:24px 0}#form-editor legend{font-weight:700}#form-editor textarea{min-height:85px}#editor-status{margin:20px 0}
