:root{--bg: #f7f5f2;--fg: #1c1917;--muted: #78716c;--border: #e7e5e4;--card: #fff;--soft: #f5f5f4;--accent: #0f766e}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Hiragino Sans,Noto Sans JP,ui-sans-serif,system-ui,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,#ccfbf1 0%,transparent 55%),radial-gradient(900px 500px at 100% 0%,#fef3c7 0%,transparent 50%),var(--bg);color:var(--fg);line-height:1.55;min-height:100vh;overflow-x:hidden}.shell{max-width:480px;margin:0 auto;padding:1.25rem max(1rem,env(safe-area-inset-left)) max(3rem,calc(3rem + env(safe-area-inset-bottom))) max(1rem,env(safe-area-inset-right))}.brand{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-bottom:.75rem}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.25rem;box-shadow:0 10px 30px #1c19170a}h1{font-size:1.35rem;margin:0 0 .4rem;letter-spacing:-.02em}.muted{color:var(--muted);font-size:.9rem}.progress{height:6px;background:var(--soft);border-radius:999px;overflow:hidden;margin:1rem 0 1.25rem}.progress>i{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .3s ease}.q-label{font-weight:600;margin-bottom:.75rem;display:block}.req{color:#b91c1c;margin-left:.2rem}.field{margin-bottom:1rem}.q-fieldset{border:none;padding:0;margin:0;min-width:0}.q-fieldset>legend.q-label{float:left;width:100%;margin-bottom:.75rem}.q-fieldset>legend.q-label+*{clear:both}.input,.textarea,select.input,input[type=date].input,input[type=time].input{width:100%;border:1px solid var(--border);border-radius:10px;padding:.7rem .8rem;font:inherit;font-size:1rem;background:#fff;min-height:44px;-moz-appearance:none;appearance:none;-webkit-appearance:none}input[type=date].input,input[type=time].input{-webkit-appearance:none;-moz-appearance:auto;appearance:auto}.textarea{min-height:110px;resize:vertical}.choices{display:grid;gap:.45rem}.choice{display:flex;gap:.55rem;align-items:center;border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;min-height:44px;cursor:pointer;background:#fff}.choice:has(input:checked){border-color:var(--accent);background:#f0fdfa}.choice input[type=radio],.choice input[type=checkbox]{width:20px;height:20px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.scale{display:flex;flex-wrap:wrap;gap:.4rem}.scale button{min-width:44px;min-height:44px;border-radius:10px;border:1px solid var(--border);background:#fff;font:inherit;font-size:.9rem;cursor:pointer}.scale button.on{background:var(--accent);border-color:var(--accent);color:#fff}.grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:10px}.grid-table{width:100%;border-collapse:collapse;font-size:.875rem;min-width:280px}.grid-table th,.grid-table td{padding:.55rem .6rem;border:1px solid var(--border);text-align:center;vertical-align:middle}.grid-table th:first-child,.grid-table td:first-child{text-align:left;font-weight:600;white-space:nowrap;max-width:130px}.grid-table thead th{background:var(--soft);font-weight:600;font-size:.8rem}.grid-table tbody tr:nth-child(2n){background:#fafaf9}.grid-table input[type=radio],.grid-table input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--accent)}.file-zone{position:relative;border:2px dashed var(--border);border-radius:12px;padding:1.5rem 1rem;text-align:center;cursor:pointer;min-height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;transition:border-color .15s,background .15s}.file-zone:hover,.file-zone:focus-visible{border-color:var(--accent);background:#f0fdfa}.file-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-thumb{max-width:100%;max-height:160px;border-radius:8px;display:block;object-fit:contain}.file-name{font-size:.85rem;word-break:break-all}.file-status{font-size:.82rem;margin-top:.35rem}.file-status--loading{color:var(--muted)}.file-status--error{color:#991b1b}.file-status--ok{color:#166534}.file-clear{background:none;border:1px solid var(--border);border-radius:6px;padding:.2rem .6rem;font:inherit;font-size:.8rem;cursor:pointer;color:var(--muted);min-height:32px;margin-top:.25rem}.file-clear:hover{border-color:var(--accent);color:var(--accent)}.survey-nav{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--border);padding:.75rem 1.25rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));margin:1rem -1.25rem -1.25rem;display:flex;gap:.5rem;justify-content:space-between;z-index:10;border-radius:0 0 14px 14px}.row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.1rem;min-height:44px;border-radius:10px;border:1px solid transparent;font:inherit;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;flex:1}.btn.outline{background:#fff;border-color:var(--border);color:var(--fg);flex:0 0 auto}.btn:disabled{opacity:.45;cursor:not-allowed}.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:12px;padding:1rem}.thanks h1{color:var(--accent)}:focus-visible{outline:2.5px solid var(--accent);outline-offset:2px}.input:focus-visible,.textarea:focus-visible,select.input:focus-visible{border-color:var(--accent)}img,video,iframe,table{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
