:root{--g:#014f32;--g2:#0c7a4b;--or:#fd8704;--rd:#eb171c;--bg:#f2f7ef;--ink:#17281f;--mut:#5d7166;--card:#fff;--line:#dbe6d6;
--serif:'Lora',Georgia,serif;--sans:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-padding-top:70px}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.45;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
:focus-visible{outline:3px solid var(--or);outline-offset:2px}
img{max-width:100%}
.banner{display:block;width:100%;height:auto;background:#fff}
dialog{border:0;padding:0;background:var(--bg);color:var(--ink);width:100%;max-width:560px;max-height:92vh;margin:auto auto 0;border-radius:24px 24px 0 0;overflow:auto}
dialog::backdrop{background:rgba(1,30,19,.55)}
@media(min-width:640px){dialog{margin:auto;border-radius:24px}}
.dh{position:sticky;top:0;background:var(--g);color:#fff;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;z-index:1}
.dh h2{color:#fff;margin:0;font-size:1.2rem;font-family:var(--serif)}
.x{color:#fff;font-size:1.6rem;width:36px;height:36px;flex:0 0 auto}
.db{padding:16px 18px 22px;display:grid;gap:14px}
label.f{display:grid;gap:4px;font-weight:600;font-size:.9rem}
.f input,.f textarea,.f select{border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;font-weight:400;width:100%}
.f input:focus,.f textarea:focus,.f select:focus{border-color:var(--g2);outline:0}
.ibtn{background:var(--g);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;font-size:.85rem;white-space:nowrap}
.ibtn.ghost{background:#fff;color:var(--g);border:1.5px solid var(--g)}
.ibtn.warn{background:var(--rd)}
.ibtn[disabled]{opacity:.5;pointer-events:none}
.err{color:var(--rd);font-weight:700;font-size:.9rem;min-height:1.2em}
.ok{color:var(--g2);font-weight:700;font-size:.9rem;min-height:1.2em}
.note{font-size:.8rem;color:var(--mut)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--g);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.on{opacity:1}
footer{text-align:center;color:var(--mut);font-size:.82rem;padding:24px 16px}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
