body{margin:0;background:#F7F4EE;color:#2A2D2B;font-family:"Zen Kaku Gothic New",sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#2F7F6D}a:hover{color:#23604F}
input,textarea,button,select{font-family:inherit}
button{-webkit-tap-highlight-color:transparent}
@keyframes spin{to{transform:rotate(360deg)}}

.maru{font-family:'Zen Maru Gothic',sans-serif;font-weight:700}
.card{background:#FFFFFF;border-radius:20px;box-shadow:0 1px 2px rgba(60,50,40,.05),0 8px 24px rgba(60,50,40,.05)}
.field{display:flex;flex-direction:column;gap:6px}
.lbl{font-size:13px;font-weight:700}
.opt{font-weight:400;color:#7A7570}
.hint{font-size:12px;color:#7A7570;line-height:1.6}
.errtext{font-size:12px;color:#B5564F}
.inp{border:1px solid #E1DACF;border-radius:12px;padding:12px 14px;font-size:15px;background:#FCFBF8;outline-color:#3C8F7C;color:#2A2D2B;width:100%}
.inp.err{border:1.5px solid #D08A84}
textarea.inp{line-height:1.6;resize:vertical}
.btn{cursor:pointer;border-radius:999px;font-weight:700;white-space:nowrap;flex:none}
.btn-primary{border:none;background:#3C8F7C;color:#FFFFFF}
.btn-outline{border:1px solid #3C8F7C;background:#FFFFFF;color:#2F7F6D}
.btn-ghost{border:1px solid #E1DACF;background:#FFFFFF;color:#2A2D2B;font-weight:400}
.spinner{width:14px;height:14px;border-radius:50%;border:2px solid #15332A;border-top-color:transparent;animation:spin .8s linear infinite;display:inline-block}
.cell{height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;transition:background .12s;color:#FFFFFF}
.matrix tr.pickable{cursor:pointer}
