.ukm-modal-overlay{position:fixed;inset:0;background:rgba(27,24,20,.5);z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px}
.ukm-modal{background:var(--bg-card,#fff);border-radius:var(--r-xl,16px);width:min(420px,100%);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.ukm-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border,#e5e5e5)}
.ukm-head-person{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-decoration:none;color:inherit}
.ukm-head-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}
.ukm-head-info{min-width:0}
.ukm-head-name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ukm-head-city{font-size:12px;color:var(--ink-mute,#aaa)}
.ukm-close{background:none;border:none;cursor:pointer;color:var(--ink-mute,#aaa);font-size:20px;padding:4px;flex-shrink:0}
.ukm-body{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:8px;min-height:120px;max-height:340px}
.ukm-bubble{max-width:75%;padding:8px 12px;border-radius:12px;font-size:14px;line-height:1.45}
.ukm-bubble.mine{background:var(--primary,#1F4A3D);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.ukm-bubble.theirs{background:var(--bg-soft,#f5f2ed);color:var(--ink,#222);align-self:flex-start;border-bottom-left-radius:4px}
.ukm-bubble.pending{opacity:.7}
.ukm-bubble.sending{opacity:.55}
.ukm-bubble.failed{opacity:.75;box-shadow:0 0 0 1px #d9534f inset}
.ukm-bubble-time{font-size:10px;opacity:.6;margin-top:2px}
.ukm-bubble-lbl{font-size:10px;opacity:.8;margin-top:2px;font-style:italic}
.ukm-empty{color:var(--ink-mute,#aaa);font-size:13px;text-align:center;padding:20px}
.ukm-templates{display:flex;gap:6px;flex-wrap:wrap;padding:8px 18px;border-top:1px solid var(--border,#e5e5e5)}
.ukm-tpl{background:var(--bg-soft,#f5f2ed);border:1px solid var(--border,#e5e5e5);border-radius:var(--r-pill,20px);padding:5px 12px;font-size:12px;cursor:pointer;color:var(--ink-soft,#666)}
.ukm-tpl:hover{border-color:var(--primary,#1F4A3D);color:var(--primary,#1F4A3D)}
.ukm-composer{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--border,#e5e5e5);align-items:flex-end}
/* min-height + margin explicit felülírás: a Listeo szülő-téma globális
   input/textarea/select{margin:0 0 16px 0} (style.css:49) és
   textarea{min-height:130px} (style.css:138) szabálya minden textareára
   vonatkozik — e nélkül a mező 16px-szel a gomb alja fölé csúszna, és
   130px magas maradna a rows="1" ellenére is. */
.ukm-input{flex:1;min-width:0;margin:0;min-height:40px;height:40px;border:1px solid var(--border,#e5e5e5);border-radius:var(--r-md,8px);padding:10px 12px;font-size:14px;line-height:1.3;resize:none;outline:none;font-family:inherit}
.ukm-input:focus{border-color:var(--primary,#1F4A3D)}
.ukm-send{flex-shrink:0;display:flex;align-items:center;gap:7px;border:none;border-radius:999px;background:var(--primary,#1F4A3D);color:#fff;padding:10px 18px 10px 16px;font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s ease,box-shadow .15s ease;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ukm-send:hover{background:#163528;box-shadow:0 3px 10px rgba(31,74,61,.28)}
.ukm-send svg{width:15px;height:15px;transition:transform .15s ease}
.ukm-send:hover svg{transform:translateX(2px)}
.ukm-request-banner{background:#fff7e6;border:1px solid #f0d999;border-radius:10px;margin:0 0 10px;padding:10px 12px;font-size:13px;color:#6b5416}
.ukm-request-banner p{margin:0 0 8px}
.ukm-request-actions{display:flex;gap:8px}
.ukm-req-accept,.ukm-req-reject{border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer}
.ukm-req-accept{background:var(--primary,#1F4A3D);color:#fff}
.ukm-req-reject{background:#eee;color:#555}
@media(max-width:600px){.ukm-modal-overlay{align-items:flex-end;padding:0}.ukm-modal{width:100%;max-height:88vh;border-radius:var(--r-xl,16px) var(--r-xl,16px) 0 0}}

/* Bal-alsó sarokban (NEM jobb-alsó): asztalin/tableten a jobb-alsó sarkot
   site-szerte a felgörgető gomb + a "Nem tudod merre indulj?" FAB foglalja
   el — ahelyett, hogy pixelben próbálnánk kikerülni őket, a dokk a mindig
   üres másik sarokba kerül, így strukturálisan kizárt az átfedés. Mobilon
   (lásd a media query-t lent) a FAB szinte a teljes szélességet elfoglalja,
   ott függőleges távolsággal védekezünk. A footer.php #scroll-to-top és a
   ttk-guided-entry-flow .ttk-gef-trigger SAJÁT szabályai ettől a
   változástól TELJESEN érintetlenek maradnak, semmit nem módosítunk rajtuk. */
#ukm-bubble-root{position:fixed;bottom:20px;left:20px;z-index:9998}
.ukm-bubble-panel{width:340px;max-width:calc(100vw - 40px);background:var(--bg-card,#fff);border-radius:var(--r-lg,16px);box-shadow:0 20px 48px rgba(0,0,0,.22);display:flex;flex-direction:column;max-height:480px;overflow:hidden}
.ukm-bubble-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--primary,#1F4A3D);color:#fff;cursor:pointer}
.ukm-bar-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,.25)}
.ukm-bar-name{flex:1;min-width:0;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ukm-bar-btn{background:none;border:none;color:#fff;opacity:.85;cursor:pointer;font-size:13px;padding:2px 6px;flex-shrink:0}
.ukm-bar-btn:hover{opacity:1}
.ukm-bubble-panel.is-collapsed{width:fit-content;max-height:none;border-radius:999px;box-shadow:0 6px 20px rgba(31,74,61,.28);transition:transform .15s ease,box-shadow .15s ease}
.ukm-bubble-panel.is-collapsed:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(31,74,61,.34)}
.ukm-bubble-panel.is-collapsed .ukm-bubble-bar{padding:8px 16px 8px 8px}
.ukm-bubble-panel.is-collapsed .ukm-bubble-body{display:none}
.ukm-bubble-body{display:flex;flex-direction:column;flex:1;min-height:0}
.ukm-bubble-body .ukm-head{display:none}
.ukm-bubble-body .ukm-body{max-height:280px}
/* Mobilon a "Nem tudod merre indulj?" FAB szinte a teljes szélességet elfoglalja
   (saját mobil-nézete: left:12/right:12), tehát ott az oldalra-költöztetés nem
   véd — csak a függőleges távolság. 150px bőven fedezi a legrosszabb esetet is
   (FAB felgörgetéskor 80px-re tolva + ~50px magas + biztonsági ráhagyás). */
@media(max-width:600px){
  #ukm-bubble-root{left:12px;right:12px;bottom:150px}
  .ukm-bubble-panel{width:100%;max-width:none;border-radius:var(--r-lg,16px)}
  .ukm-bubble-panel.is-collapsed{width:fit-content;max-width:calc(100vw - 64px)}
}

.ukm-toast{position:fixed;bottom:20px;right:20px;z-index:10001;display:flex;align-items:center;gap:10px;background:var(--bg-card,#fff);border:1px solid var(--border,#e5e5e5);border-radius:var(--r-md,10px);box-shadow:0 8px 24px rgba(0,0,0,.16);padding:12px 16px;max-width:320px;font-size:13.5px;color:var(--ink,#1B1814);opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s}
.ukm-toast.is-visible{opacity:1;transform:translateY(0)}
.ukm-toast-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}
@media(max-width:600px){.ukm-toast{right:12px;left:12px;max-width:none}}
