:root{--bg-a: #f6f4ee;--bg-b: #e6efe4;--panel: #ffffff;--text: #202420;--muted: #5a6557;--accent: #0d5b40;--accent-2: #d6eee5;--error: #8e2f2f}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:"Source Sans 3",Segoe UI,sans-serif;background:linear-gradient(135deg,var(--bg-a),var(--bg-b))}.app-shell{min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:1.5rem}.card{width:min(760px,100%);background:var(--panel);border-radius:1rem;box-shadow:0 18px 40px #00000014;padding:1.75rem}.logo{max-width:140px;max-height:80px;object-fit:contain}h1{margin:.5rem 0}p,.rich-html{color:var(--muted)}.rich-html :first-child{margin-top:0}.rich-html :last-child{margin-bottom:0}.rich-html a{color:var(--accent);font-weight:600}.progress-shell{border:1px solid #dce7da;border-radius:.85rem;background:#f8fbf8;padding:.7rem .8rem;margin:1rem 0 .9rem}.progress-meta{display:flex;justify-content:space-between;gap:.75rem;font-weight:700;color:#2f3b31;font-size:.92rem}.progress-track{margin-top:.4rem;height:.45rem;background:#dfebdd;border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#1d7d5c)}.section-current{margin-bottom:.65rem}.section-current-title{margin:0;padding:.2rem 0 .2rem .65rem;border-left:4px solid var(--accent);color:#203324;font-size:1.04rem}.survey-form{display:grid;gap:1rem}.field{display:grid;gap:.45rem;color:var(--text)}.field-label{font-weight:600}.field-help{color:var(--muted);font-size:.84rem;font-weight:500;margin-top:-.2rem}.field-hint{color:var(--muted);font-size:.84rem;font-weight:500}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{width:100%;border:1px solid #c7d3c4;border-radius:.6rem;padding:.65rem;font:inherit;color:var(--text)}.field input:not([type=checkbox]):not([type=radio]):focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent-2);outline-offset:1px}.checkboxes{display:grid;gap:.3rem;padding:0;border:0;margin:0}.rating-scale{display:grid;gap:.45rem;border:0;margin:0;padding:0}.rating-scale-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(2.35rem,1fr));gap:.35rem}.rating-scale-option{display:block;position:relative}.rating-scale-option input{position:absolute;inset:0;opacity:0;cursor:pointer}.rating-scale-option span{display:flex;align-items:center;justify-content:center;border:1px solid #c7d3c4;border-radius:999px;min-height:2.15rem;font-weight:700;background:#fff}.rating-scale-option input:checked+span{border-color:#8e1f2b;background:#cc2936;color:#fff}.rating-scale-option input:hover+span{border-color:#ad3944}.rating-scale-option input:focus-visible+span{outline:2px solid #f4c6cb;outline-offset:1px}.rating-scale-labels{display:flex;justify-content:space-between;gap:.75rem;font-size:.85rem;color:var(--muted);font-weight:500}.form-actions{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding-top:.9rem;margin-top:.1rem;background:linear-gradient(180deg,rgb(255 255 255 / 0%),var(--panel) 34%)}button{border:0;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;padding:.72rem 1.25rem;width:fit-content;cursor:pointer}.button-secondary{background:#ebf1ea;color:#324936}button:hover{filter:brightness(.95)}button:disabled{cursor:default;opacity:.7;filter:none}.notice{color:#916d0e;background:#fff3cf;border-radius:.5rem;padding:.5rem .7rem}.success,.success-meta{color:var(--accent);font-weight:600}.error{color:var(--error);font-weight:600}@media(max-width:640px){.app-shell{padding:.7rem}.card{padding:1rem;border-radius:.75rem}.progress-meta{font-size:.82rem}.section-current-title{font-size:.94rem}.rating-scale-options{display:flex;flex-wrap:nowrap;gap:.3rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:.2rem}.rating-scale-option{flex:0 0 auto;scroll-snap-align:start}.rating-scale-option span{min-width:2.65rem;min-height:2.45rem;font-size:.95rem}.rating-scale-labels{font-size:.78rem}.form-actions{display:grid;grid-template-columns:1fr}.form-actions>span{display:none}.form-actions button{width:100%}}
