.buddy{--buddy-coral:#d7796e;--buddy-coral-soft:#fcf0ee;position:fixed;right:16px;bottom:var(--buddy-bottom,16px);z-index:25;display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-width:calc(100vw - 32px);max-height:calc(100dvh - var(--buddy-bottom,16px) - 16px);font-size:14px;line-height:1.6}
.buddy [hidden],.buddy[hidden]{display:none!important}
.buddy-launcher{display:flex;flex:0 0 auto;align-items:center;gap:8px;min-height:48px;padding:5px 14px 5px 6px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green-dark);box-shadow:0 4px 16px #20392d14;font:inherit;font-weight:650;cursor:pointer}
.buddy-launcher:hover{background:var(--mint);border-color:#a9c4b0}
.buddy-launcher img{width:38px;height:38px;object-fit:contain}
.buddy[data-animations="1"] .buddy-launcher:hover img{animation:buddy-wave .55s ease-in-out}
.buddy[data-animations="1"][data-welcome="1"] .buddy-launcher img{animation:buddy-wave .55s ease-in-out}
.buddy-invite,.buddy-panel,.buddy-greeting,.buddy-error{width:min(380px,calc(100vw - 32px));max-width:100%;min-height:0;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 8px 28px #20392d18;padding:18px;color:var(--ink);overflow-wrap:anywhere;overflow-y:auto;overscroll-behavior:contain}
.buddy p{margin:8px 0 14px;line-height:1.5}
.buddy-invite{border-top:3px solid var(--buddy-coral)}
.buddy-invite strong{font-family:var(--heading);font-size:16px;color:var(--green-dark)}
.buddy-actions{display:flex;flex-wrap:wrap;gap:8px}
.buddy .button{white-space:normal;min-height:44px;border-radius:6px}
.buddy-text-button{border:0;background:none;min-height:44px;padding:8px;color:var(--green-dark);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;font-size:12px}
.buddy-panel{display:flex;flex-direction:column;padding:0;overflow:hidden;border-top:3px solid var(--buddy-coral)}
.buddy-panel>header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line);gap:8px;background:var(--bg)}
.buddy-heading{display:flex;align-items:center;gap:10px;min-width:0}
.buddy-heading>img{width:36px;height:36px;flex:0 0 auto;object-fit:contain}
.buddy-heading strong{font-family:var(--heading);font-size:14px}
.buddy-panel>header small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.buddy-panel>header button,.buddy-greeting button{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--green-dark);font-size:24px;width:44px;min-height:44px;flex:0 0 auto;cursor:pointer;line-height:1}
.buddy-panel>header button:hover,.buddy-greeting button:hover{background:var(--mint)}
.buddy-content{min-height:0;padding:14px 18px 18px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.buddy-content>p,.buddy fieldset>p,.buddy-explanation p{font-size:12px;color:var(--muted)}
.buddy fieldset{min-width:0;border:0;padding:0;margin:0 0 16px}
.buddy legend{font-weight:700;color:var(--green-dark);margin:0 0 12px;font-size:16px}
.buddy .field{min-width:0}
.buddy .field input,.buddy .field select{width:100%;min-width:0}
.buddy-progress{display:inline-block;padding:4px 9px;border-radius:4px;background:var(--buddy-coral-soft);color:#873f37;font-size:12px;font-weight:600}
.buddy-check{display:flex;align-items:flex-start;gap:10px;font-size:13px}
.buddy-check input{flex:0 0 auto;width:18px;height:18px;accent-color:var(--green)}
.buddy-explanation{margin-top:18px;font-size:12px}
.buddy-explanation summary{cursor:pointer;color:var(--green-dark);font-weight:650}
.buddy-wishes{padding:12px;margin-bottom:16px;background:var(--mint);border:1px solid var(--line);border-radius:6px}
.buddy-wishes h3,.buddy-shortlist h3{font-size:14px;margin:0;color:var(--green-dark)}
.buddy-wishes>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;list-style:none;cursor:pointer}
.buddy-wishes>summary::-webkit-details-marker{display:none}
.buddy-wishes>summary::after{content:'+';font-size:20px;color:var(--green);flex:0 0 auto}
.buddy-wishes[open]>summary::after{content:'-'}
.buddy-wishes>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.buddy-wishes:not([open]){padding-top:2px;padding-bottom:2px}
.buddy-wishes>p,.buddy-shortlist>p{font-size:11px}
.buddy-wishes dl{margin:0}
.buddy-wishes dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:5px 0;border-top:1px solid var(--line);align-items:center}
.buddy-wishes dt{font-size:11px;color:var(--muted)}
.buddy-wishes dd{grid-column:1;margin:0;font-size:12px;overflow-wrap:anywhere}
.buddy-wishes button{grid-column:2;grid-row:1 / span 2;font-size:12px;padding:4px 6px}
.buddy-shortlist{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
.buddy-match{font-size:11px;margin-top:12px;color:var(--muted)}
.buddy-match summary{cursor:pointer;color:var(--green-dark);font-weight:650}
.buddy-match ul{padding-left:18px}
.buddy-match li{margin:6px 0}
.buddy-comparison{border:1px solid var(--line);border-radius:8px;padding:20px;background:#fff;margin-bottom:24px;overflow-wrap:anywhere}
.buddy-comparison h2{font-size:22px;color:var(--green-dark);margin-top:0}
.buddy-comparison h3{font-size:17px;color:var(--green-dark)}
.buddy-comparison h4{margin-bottom:5px}
.buddy-comparison p,.buddy-comparison li{font-size:13px;line-height:1.6;white-space:pre-line}
.buddy-comparison section{scroll-margin-top:24px;border-top:1px solid var(--line);padding-top:8px}
.buddy-greeting{display:flex;align-items:center;gap:10px;padding:8px 12px}
.buddy-greeting p{margin:0;flex:1}
.buddy-error{flex:0 1 auto;border-color:#edc5bf;background:var(--buddy-coral-soft);color:#8a241f;font-size:12px;margin:0}
.buddy button:focus-visible,.buddy a:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@keyframes buddy-wave{0%,100%{transform:rotate(0)}35%{transform:rotate(-8deg)}70%{transform:rotate(6deg)}}
@media(max-width:600px){.buddy{right:10px;max-width:calc(100vw - 20px)}.buddy-launcher img{width:32px;height:32px}.buddy-launcher span{font-size:12px}.buddy-invite,.buddy-panel{width:min(360px,calc(100vw - 20px))}.buddy-invite{font-size:13px}.buddy-content{padding:12px 14px 14px}}
@media(prefers-reduced-motion:reduce){.buddy *{animation:none!important;transition:none!important}}
