/* ===== FEIFER — Oblíbené (seznamy / wishlist se skupinami) ===== */
.obl__wrap { padding-bottom:54px; }
.obl__layout { display:grid; grid-template-columns:260px 1fr; gap:26px; align-items:start; }

/* skupiny — boční seznam */
.obl__groups { border:1px solid var(--line); background:var(--char-2); position:sticky; top:96px; }
body.light .obl__groups { background:#fff; }
.obl__groups__h { font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--faint); padding:16px 18px 10px; }
.obl__glist { display:flex; flex-direction:column; }
.obl__g { display:flex; align-items:center; gap:11px; padding:13px 18px; border-top:1px solid var(--line-2); cursor:pointer; transition:.12s; border-left:2px solid transparent; background:none; width:100%; text-align:left; font-family:var(--exo); }
.obl__g:hover { background:rgba(219,10,10,.05); }
.obl__g.on { border-left-color:var(--red); background:rgba(219,10,10,.07); }
.obl__g__ic { width:30px; height:30px; flex-shrink:0; display:grid; place-items:center; color:var(--red); }
.obl__g__tx { flex:1; min-width:0; }
.obl__g__tx b { display:block; font-size:14px; font-weight:700; color:#fff; line-height:1.2; }
body.light .obl__g__tx b { color:var(--ink); }
.obl__g.on .obl__g__tx b { color:var(--red); }
.obl__g__tx span { font-family:var(--mono); font-size:10.5px; color:var(--faint); }
.obl__gadd { display:flex; align-items:center; gap:9px; padding:14px 18px; border-top:1px solid var(--line); width:100%; background:none; cursor:pointer; font-family:var(--exo); font-weight:700; font-size:13px; color:var(--red); text-transform:uppercase; letter-spacing:.03em; }
.obl__gadd:hover { background:rgba(219,10,10,.07); }
.obl__gadd svg { stroke:var(--red); }

/* obsah skupiny */
.obl__head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.obl__head h2 { font-size:26px; font-weight:800; text-transform:uppercase; }
.obl__head .meta { font-family:var(--mono); font-size:12px; color:var(--faint); margin-top:5px; }
.obl__actions { display:flex; gap:10px; flex-wrap:wrap; }

/* přidání položky (autocomplete jako poptávka) */
.obl__add { border:1px solid var(--line); background:var(--char-2); padding:14px 16px; margin-bottom:16px; position:relative; }
body.light .obl__add { background:#fff; }
.obl__add__row { display:flex; gap:12px; align-items:center; }
.obl__add__field { flex:1; position:relative; min-width:0; }
.obl__add__field input { width:100%; height:46px; background:var(--char); border:1px solid var(--line); color:#fff; padding:0 14px; font-family:var(--exo); font-size:14.5px; }
body.light .obl__add__field input { background:#f4f5f7; color:var(--ink); }
.obl__add__field input:focus { outline:none; border-color:var(--red); }
.obl__add__btn { flex-shrink:0; height:46px; padding:0 20px; background:var(--red); color:#fff; border:none; font-family:var(--exo); font-weight:700; font-size:13.5px; text-transform:uppercase; letter-spacing:.02em; cursor:pointer; transition:.15s; display:inline-flex; align-items:center; gap:8px; }
.obl__add__btn:hover { background:var(--red-600); }
.obl__ac { position:absolute; top:46px; left:0; right:0; z-index:30; background:var(--char-2); border:1px solid var(--red); box-shadow:0 22px 44px -18px rgba(0,0,0,.7); max-height:300px; overflow-y:auto; display:none; }
body.light .obl__ac { background:#fff; }
.obl__ac.open { display:block; }
.obl__acitem { display:flex; align-items:center; gap:11px; padding:10px 12px; cursor:pointer; border-top:1px solid var(--line-2); }
.obl__acitem:first-child { border-top:none; }
.obl__acitem:hover,.obl__acitem.sel { background:rgba(219,10,10,.1); }
.obl__acthumb { width:38px; height:38px; flex-shrink:0; background:#fff; border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; }
.obl__acthumb img { width:100%; height:100%; object-fit:contain; padding:4px; }
.obl__actx b { display:block; font-size:13.5px; font-weight:600; color:#fff; }
body.light .obl__actx b { color:var(--ink); }
.obl__actx span { font-family:var(--mono); font-size:11px; color:var(--faint); }
.obl__acempty { padding:14px; font-size:13px; color:var(--faint); text-align:center; }

/* položky skupiny */
.obl__items { display:flex; flex-direction:column; gap:10px; }
.obl__item { display:flex; align-items:center; gap:14px; border:1px solid var(--line); background:var(--char-2); padding:12px 14px; }
body.light .obl__item { background:#fff; }
.obl__item__thumb { width:56px; height:56px; flex-shrink:0; background:#fff; border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; }
.obl__item__thumb img { width:100%; height:100%; object-fit:contain; padding:6px; }
.obl__item__tx { flex:1; min-width:0; }
.obl__item__tx b { display:block; font-size:15px; font-weight:600; color:#fff; line-height:1.3; }
body.light .obl__item__tx b { color:var(--ink); }
.obl__item__tx span { font-family:var(--mono); font-size:11.5px; color:var(--faint); }
.obl__item__stock { font-family:var(--mono); font-size:11px; color:var(--ok); margin-top:3px; display:inline-block; }
.obl__qty { display:flex; align-items:center; border:1px solid var(--line); height:42px; flex-shrink:0; }
.obl__qty button { width:34px; height:40px; display:grid; place-items:center; color:#fff; font-size:16px; background:none; cursor:pointer; }
body.light .obl__qty button { color:var(--ink); }
.obl__qty button:hover { background:var(--red); color:#fff; }
.obl__qty input { width:42px; height:40px; border:none; background:none; text-align:center; font-family:var(--mono); font-size:14px; font-weight:600; color:#fff; -moz-appearance:textfield; }
body.light .obl__qty input { color:var(--ink); }
.obl__qty input::-webkit-outer-spin-button,.obl__qty input::-webkit-inner-spin-button { -webkit-appearance:none; }
.obl__item__add { flex-shrink:0; height:42px; padding:0 14px; background:var(--ink); color:#fff; border:none; font-family:var(--exo); font-weight:700; font-size:12px; text-transform:uppercase; cursor:pointer; display:inline-flex; align-items:center; gap:6px; transition:.15s; white-space:nowrap; }
body.light .obl__item__add { background:var(--char); }
.obl__item__add:hover { background:var(--red); }
.obl__item__del { width:40px; height:40px; flex-shrink:0; display:grid; place-items:center; color:var(--faint); border:1px solid var(--line); background:none; cursor:pointer; }
.obl__item__del:hover { border-color:var(--red); color:var(--red); }

/* prázdný stav */
.obl__empty { text-align:center; padding:50px 20px; border:1px dashed var(--line); color:var(--faint); }
.obl__empty svg { color:var(--line); margin-bottom:14px; }
.obl__empty b { display:block; color:#fff; font-size:17px; font-weight:700; margin-bottom:6px; }
body.light .obl__empty b { color:var(--ink); }

/* modal nová skupina */
.obl__dlg { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:24px; }
.obl__dlg.open { display:flex; }
.obl__dlg__bd { position:absolute; inset:0; background:rgba(8,9,12,.7); }
.obl__dlg__box { position:relative; width:100%; max-width:420px; background:var(--char-2); border:1px solid var(--line); padding:26px; }
body.light .obl__dlg__box { background:#fff; }
.obl__dlg__box h3 { font-size:18px; font-weight:800; text-transform:uppercase; margin-bottom:16px; }
.obl__dlg__box input { width:100%; height:48px; background:var(--char); border:1px solid var(--line); color:#fff; padding:0 14px; font-family:var(--exo); font-size:15px; margin-bottom:16px; }
body.light .obl__dlg__box input { background:#f4f5f7; color:var(--ink); }
.obl__dlg__box input:focus { outline:none; border-color:var(--red); }
.obl__dlg__btns { display:flex; gap:10px; justify-content:flex-end; }

@media (max-width:900px){
  .obl__layout { grid-template-columns:1fr; }
  .obl__groups { position:static; }
  .obl__glist { flex-direction:row; overflow-x:auto; }
  .obl__g { border-top:none; border-left:none; border-bottom:2px solid transparent; min-width:180px; }
  .obl__g.on { border-left:none; border-bottom-color:var(--red); }
  .obl__gadd { border-top:none; border-left:1px solid var(--line); white-space:nowrap; }
}
@media (max-width:560px){
  .obl__item { flex-wrap:wrap; }
  .obl__item__tx { flex-basis:calc(100% - 70px); }
  .obl__add__row { flex-wrap:wrap; }
  .obl__add__btn { width:100%; justify-content:center; }
}
