:root{color:#18211f;background:#f7f1e6;font-family:Hiragino Mincho ProN,Yu Mincho,"Noto Serif JP",serif}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,a{font:inherit}.page-shell{display:grid;min-height:100vh;place-items:center;padding:32px;background:radial-gradient(circle at top left,rgba(96,134,112,.24),transparent 34rem),linear-gradient(135deg,#f7f1e6,#e8dcc8)}.hero-card{width:min(720px,100%);padding:clamp(32px,6vw,64px);border:1px solid rgba(24,33,31,.16);border-radius:28px;background:#fffcf6d6;box-shadow:0 24px 80px #3b302124}.eyebrow{margin:0 0 16px;color:#6c4f2d;font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.2rem,6vw,4.8rem);line-height:.98}p{font-size:1.05rem;line-height:1.8}.status-list{display:grid;gap:12px;margin:32px 0 0}.status-list div{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:14px;background:#6086701f}.status-list dt{font-weight:700}.status-list dd{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.login-shell,.admin-shell{min-height:100vh;background:#f7f1e6}.login-shell{display:grid;place-items:center;padding:24px}.login-panel,.admin-panel{width:min(520px,100%);border:1px solid rgba(24,33,31,.16);border-radius:8px;background:#fffdf8;box-shadow:0 16px 48px #3b30211f}.login-panel{padding:clamp(28px,5vw,48px)}.login-panel h1,.admin-header h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.1}.login-form{display:grid;gap:18px;margin-top:28px}.login-form label,.admin-form label{display:grid;gap:8px;font-weight:700}.login-form input,.admin-form input{width:100%;border:1px solid rgba(24,33,31,.28);border-radius:6px;padding:12px 14px;background:#fff;color:#18211f}.primary-button,.secondary-button{min-height:44px;border-radius:6px;padding:10px 16px;font-weight:700;cursor:pointer}.primary-button{border:1px solid #315f4b;background:#315f4b;color:#fff}.secondary-button{border:1px solid rgba(24,33,31,.24);background:#fffdf8;color:#18211f}.text-button{border:0;padding:0;background:transparent;color:#8b2d2d;font-weight:700;cursor:pointer}.primary-link,.secondary-link{display:inline-flex;align-items:center;min-height:44px;border-radius:6px;padding:10px 16px;font-weight:700;text-decoration:none}.primary-link{border:1px solid #315f4b;background:#315f4b;color:#fff}.secondary-link{border:1px solid rgba(24,33,31,.24);background:#fffdf8;color:#18211f}.form-error{margin:0;border:1px solid rgba(166,55,55,.36);border-radius:6px;padding:12px 14px;background:#a6373714;color:#8b2d2d;font-size:.95rem}.admin-shell{padding:clamp(24px,5vw,56px)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 auto 24px;width:min(960px,100%)}.admin-panel{margin:0 auto 16px;padding:24px;width:min(960px,100%)}.admin-panel h2{margin:0;font-size:1.25rem}.admin-form{display:grid;gap:18px;width:min(520px,100%)}.admin-actions,.admin-menu,.form-actions{display:flex;flex-wrap:wrap;gap:12px}.admin-menu{margin-top:20px}.admin-menu a{color:#315f4b;font-weight:700}.empty-message{margin:0;color:#18211fb8}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{border-bottom:1px solid rgba(24,33,31,.14);padding:14px 12px;text-align:left;vertical-align:middle}.data-table th{color:#18211fb8;font-size:.9rem}.data-table a{color:#315f4b;font-weight:700}.table-actions{display:flex;flex-wrap:wrap;gap:12px}.public-survey-shell{min-height:100vh;width:min(720px,100%);margin:0 auto;padding:clamp(24px,7vw,64px);background:#fffdf8;box-shadow:0 0 48px #3b30211f}.public-survey-shell h1{font-size:clamp(2rem,8vw,3.5rem);line-height:1.1}.public-survey-shell section{margin-top:clamp(32px,8vw,64px)}.public-survey-shell h2{font-size:clamp(1.35rem,5vw,2rem);line-height:1.4}.public-survey-shell ul{display:grid;gap:12px;padding:0;list-style:none}.public-survey-shell li{border:1px solid rgba(24,33,31,.18);border-radius:8px;padding:16px;background:#fff}.public-survey-form{display:grid;gap:20px}.public-survey-form fieldset{display:grid;gap:12px;margin:0;border:0;padding:0}.public-survey-form legend{margin-bottom:12px;font-weight:700}.public-survey-form label{display:flex;align-items:center;gap:12px;min-height:52px;border:1px solid rgba(24,33,31,.18);border-radius:8px;padding:14px 16px;background:#fff;cursor:pointer}.public-survey-form input[type=radio]{width:1.25rem;height:1.25rem;margin:0}@media(max-width:640px){.admin-header,.status-list div{align-items:flex-start;flex-direction:column}.public-survey-shell{box-shadow:none}}
