*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#2f5e4f;--green-light:#e8f4f0;--accent:#c8963c;--border:#b5c8c2;--text:#1a1a1a;--sub:#5a6b65;--bg:#f4f8f6;--white:#fff;--danger:#c0392b;--shadow:0 2px 12px #00000014}html,body{height:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.5}.btn{cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:12px 20px;font-family:inherit;font-size:15px;font-weight:700;transition:opacity .15s,transform .1s;display:inline-flex}.btn:active{opacity:.85;transform:scale(.97)}.btn-primary{background:var(--green);color:#fff}.btn-accent{background:var(--accent);color:#fff}.btn-ghost{color:var(--green);border:1.5px solid var(--green);background:0 0}.btn-danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}input,select,textarea{color:var(--text);font-family:inherit;font-size:15px}.input{border:1.5px solid var(--border);background:#fff;border-radius:9px;outline:none;width:100%;padding:11px 14px;transition:border-color .15s}.input:focus{border-color:var(--green)}.input::placeholder{color:#aab5b0}.card{box-shadow:var(--shadow);background:#fff;border-radius:14px;margin-bottom:14px;padding:18px 16px}.toast{color:#fff;white-space:nowrap;z-index:9999;pointer-events:none;background:#222;border-radius:100px;padding:10px 20px;font-size:14px;font-weight:500;animation:3s forwards fadeInOut;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.toast.success{background:var(--green)}.toast.error{background:var(--danger)}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%)translateY(8px)}10%{opacity:1;transform:translate(-50%)translateY(0)}80%{opacity:1}to{opacity:0}}.overlay{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.sheet{-webkit-overflow-scrolling:touch;background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:500px;max-height:90dvh;padding:20px 18px 36px;overflow-y:auto}.sheet-handle{background:#d0d8d4;border-radius:2px;width:36px;height:4px;margin:0 auto 18px}@media (min-width:520px){.overlay{align-items:center}.sheet{border-radius:16px;max-height:80dvh}}
