:root{
  --bg:#f6f7fb; --card:#fff; --ink:#171727; --muted:#8186a5;
  --brand:#5b2cff; --warn:#ffb703; --err:#e63946; --ok:#2a9d8f;
  --br:18px; --shadow:0 7px 34px #b7c8ec22;
}
.header-search-input {border: none !important;}
*{box-sizing:border-box}
body.cart-body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial}

/* Top help */
.helpbar{background:#ecebff;border-bottom:1px solid #dedcff}
.helpbar-inner{max-width:1200px;margin:auto;padding:10px 16px;display:flex;gap:18px;align-items:center}
.helpbar a{color:var(--brand);text-decoration:none}

/* Layout */
.cart-wrap{max-width:1200px;margin:24px auto;padding:0 16px}
.card{background:var(--card);border-radius:var(--br);box-shadow:var(--shadow);padding:22px;box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 2px 0px;}
.cart-layout{display:grid;grid-template-columns:1fr 360px;gap:22px}
@media (max-width:960px){.cart-layout{grid-template-columns:1fr}}

.cart-head-row,.item-row{display:grid;grid-template-columns:1.6fr 90px 90px 90px 70px;gap:14px;align-items:center}
.cart-head-row{color:var(--muted);border-bottom:1px dashed #e6e8f4;padding-bottom:6px;margin-bottom:8px}
.item-row{padding:14px 0;border-bottom:1px solid #f0f1f8}
.item-title{font-weight:600}
.item-sub{font-size:12px;color:var(--muted)}
.item-variant{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}
.item-variant-name{font-size:12px;font-weight:700}
.item-variant-limit{font-size:11px;color:var(--muted);background:#f3f4f6;border-radius:4px;padding:1px 6px}
.item-variant-feats{font-size:11px;color:var(--muted)}

/* === MOBILNÍ KOŠÍK === */
@media (max-width:640px){
  .cart-head-row{ display:none }

  .item-row{
    display:grid;
    grid-template-columns: 1fr auto auto auto;
    grid-template-rows: auto auto;
    gap:8px 10px;
    align-items:center;
    padding:16px 0;
  }

  /* Produkt + doména – celý první řádek */
  .item-row .item-main{
    grid-column: 1 / -1;
    grid-row: 1;
  }

  /* Měsíce select – 2. child (plain div bez třídy) */
  .item-row > div:nth-child(2){
    grid-row: 2; grid-column: 1;
  }
  .item-row > div:nth-child(2) select{
    width:auto; min-width:58px; padding:6px 8px;
  }

  /* Cena/ks – schovat, šetří místo */
  .item-row > .unit-price{ display:none }

  /* Celkem */
  .item-row > .line-price{
    grid-row: 2; grid-column: 2;
    font-weight:700;
  }

  /* Odstranit */
  .item-row > div:last-child{
    grid-row: 2; grid-column: 3;
  }
  .item-row .btn-ghost{
    padding:6px 10px; font-size:.82em;
  }
}

/* Inputs + buttons */
select,input[type=number],input[type=email],input[type=password],input[type=text]{width:100%;padding:10px 12px;border:1px solid #dfe3f6;border-radius:12px}
input.qty{max-width:84px}

.btn-ghost{cursor: pointer;display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:10px;text-decoration:none;border:1px solid #e5e7fb}
.btn-ghost:hover{background:#f6f6ff}
.btn-ghost.danger{border-color:#ffdadd;color:#a3292f}
.btn{margin: 10px 0;display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:5px;border:0;background:#eef0fb;cursor:pointer}
.btn.primary{background:var(--brand);color:#fff}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* Tlačítko OBJEDNAT s povinností platby */
.btn-place-order-main{
  flex-direction:column; gap:2px;
  padding:14px 24px; border-radius:10px;
  width:100%; text-align:center;
}
.btn-order-main{ font-size:1.1em; font-weight:800; letter-spacing:.04em; line-height:1.2 }
.btn-order-sub{ font-size:.78em; font-weight:400; opacity:.85 }

/* Left main column */
.cart-main{display:flex;flex-direction:column;gap:22px;min-width:0}

/* Right column – sticky souhrn */
.cart-side{display:flex;flex-direction:column;gap:22px;align-self:start;position:sticky;top:20px}
.cart-summary-card h3{margin:0 0 16px;font-size:1.1em;color:#1a2060}
.cart-totals-box{border-bottom:1px solid #eef0fb;padding-bottom:14px;margin-bottom:14px}
.sum-total{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.sum-total span{font-size:1em;color:#555}
.sum-total strong{font-size:1.5em;font-weight:800;color:#1a2060}
.sum-note{font-size:.82em;color:var(--muted);margin:4px 0 0}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tabs input{display:none}
.tabs label{text-align:center;padding:10px;border-radius:8px;background:#eef0fb;cursor:pointer;font-weight:500;transition:background .15s,color .15s}
.tabs label[for=tab-login]{grid-column:1}
.tabs label[for=tab-register]{grid-column:2}
/* Aktivní tab – řízeno JS přes třídu .active přidanou na label */
.tabs label.active{background:var(--brand);color:#fff}
.tab-panels{margin-top:12px}
.panel.hidden{display:none}
.grid{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.grid .btn{grid-column:1 / -1}
@media (max-width:720px){.grid{grid-template-columns:1fr}}

/* Messages */
.err{background:#ffe8ea;border:1px solid #ffd2d7;color:#7a1a1f;padding:10px 12px;border-radius:10px}
.ok-badge{margin:10px 0;display:inline-block;background:#e7f7f4;color:#0d5a51;border:1px solid #c9efe8;padding:6px 10px;border-radius:999px;font-size:13px}
.empty{padding:18px;background:#f6f7fb;border-radius:12px;color:var(--muted)}
.backlink{margin-top:18px}
.backlink a{text-decoration:none;color:var(--brand)}

/* Fees / checkboxes */
.fees{margin:.5rem 0 .6rem;display:flex;flex-direction:column;gap:.25rem}
.fee-row{display:flex;align-items:center;gap:.5rem;margin:.25rem 0;font-size:.95rem}
.fee-row input{transform:translateY(1px)}
.fee-row input[disabled]{filter:grayscale(1);cursor:not-allowed}

/* Tooltip */
.tip{position:relative;display:inline-flex;justify-content:center;align-items:center;width:18px;height:18px;border-radius:50%;border:1px solid #8b73d3;color:#8b73d3;font-weight:700;line-height:1;cursor:help;margin-left:.5rem}
.tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:125%;transform:translateX(-50%);background:#331c64;color:#fff;font-size:.85rem;line-height:1.25;padding:.5rem .6rem;border-radius:.5rem;white-space:normal;width:260px;max-width:70vw;opacity:0;pointer-events:none;transition:opacity .15s ease, transform .15s ease;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:50}
.tip::before{content:"";position:absolute;left:50%;bottom:115%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#331c64;opacity:0;transition:opacity .15s ease}
.tip:hover::after,.tip:focus::after,.tip:hover::before,.tip:focus::before{opacity:1}

/* Required star */
.req{color:#c00;margin-left:.25rem}

/* =========================
   DOMAINS � unified styles
   ========================= */

/* Chips container + chip */
.domains{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 .5rem}
.domain-chip{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.35rem .55rem;border-radius:999px;
  background:#f7f7fe;border:1px solid #e5e5f9;color:#2b235a;
  font-size:.92rem;
}
.domain-chip em{font-style:normal;opacity:.75;font-weight:600}
.domain-remove{appearance:none;border:0;background:transparent;cursor:pointer;line-height:1;padding:.1rem .35rem;border-radius:.35rem;color:#7b6eb6;font-weight:700}
.domain-remove:hover{background:#ebe9fb}

/* Add-domain bar (grid) */
.cart-domains{margin:.5rem 0 .25rem}
.btn-add-domain{
  appearance:none;border:1px dashed #cfd3ff;background:#f7f7fe;
  color:var(--brand);padding:.55rem .85rem;border-radius:999px;
  font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;
  transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;
}
.btn-add-domain:hover{background:#f0efff;border-color:#b7befc;transform:translateY(-1px);box-shadow:0 6px 16px #b7c8ec33}
.btn-add-domain:focus-visible{outline:2px solid #d9d5ff;outline-offset:2px}

/* Grid: [input][P�idat][Zru�it][Platforma] */
.add-domain-row{
  display: grid;
  grid-template-columns: 1fr 1fr;      /* ��dek s tla��tky = 2 sloupce */
  grid-auto-rows: auto;
  gap: .6rem;
  align-items: center;
  margin-top: .6rem;
  background: #fafbff;
  border: 1px solid #e7e9fb;
  border-radius: 12px;
  padding: .75rem;
  max-width: 640px;                    /* klidn� sma� nebo uprav */
}
.add-domain-row[hidden]{display:none !important}

.domain-input{
  width:100%;
  padding:.7rem 1rem;
  border:1px solid #dfe3f6;border-radius:10px;
  font:inherit;background:#fff;
}
.domain-input:focus{outline:none;border-color:#bfc7fb;box-shadow:0 0 0 3px #e9ecff}

/* 1) input p�es celou ���ku */
.add-domain-row .domain-input{
  grid-column: 1 / -1;
}

/* 2) tla��tka vedle sebe */
.add-domain-row .btn-save-domain{
  grid-column: 1;
  justify-self: start;
}
.add-domain-row .btn-cancel-domain{
  grid-column: 2;
  justify-self: start;
}

/* 3) �Platforma: �� pod tla��tky p�es celou ���ku */
.add-domain-row .platform-hint{
  grid-column: 1 / -1;
  font-size: .85rem;
  color: #6b7280; /* voliteln� zti�en� */
}

/* Responsivn� � na �zk�ch displej�ch tla��tka pod sebe */
@media (max-width: 560px){
  .add-domain-row{ grid-template-columns: 1fr; }
  .add-domain-row .btn-cancel-domain{ grid-column: 1; }
}

.btn-save-domain,.btn-cancel-domain{
  appearance:none;border:0;border-radius:10px;padding:.6rem .9rem;
  font-weight:600;cursor:pointer;display:inline-flex;align-items:center;
}
.btn-save-domain{background:var(--brand);color:#fff}
.btn-save-domain:hover{filter:brightness(1.05)}
.btn-save-domain:focus-visible{outline:2px solid #d9d5ff;outline-offset:2px}

.btn-cancel-domain{background:#eef0fb;color:#2b235a;border:1px solid #e1e4f8}
.btn-cancel-domain:hover{background:#e8eafe}
.btn-cancel-domain:focus-visible{outline:2px solid #d9d5ff;outline-offset:2px}

.platform-hint{color:var(--muted);font-size:.9rem;white-space:nowrap}

/* Conflict / info box */
.hint{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;line-height:1.35;margin:.5rem 0 0;padding:.6rem .75rem;border-radius:.75rem}
.hint .ico{width:18px;height:18px;flex:0 0 18px}
.icon-warn{background:#fff8e6;border:1px solid #ffe09a;color:#6b4b00}
.icon-warn a{color:inherit;text-decoration:underline dotted}

/* Responsive for add-domain row */
@media (max-width:640px){
  .add-domain-row{grid-template-columns:1fr}
  .btn-save-domain,.btn-cancel-domain{width:100%}
  .platform-hint{justify-self:start}
}

.ares-row { display:flex; align-items:center; gap:.5rem; }
.ares-msg { font-size:.9rem; }

/* User domain picker */
.user-domain-picker { margin: 6px 0 0; }
.udp-label { display:block; font-size:.82rem; color:#8186a5; margin-bottom:4px; font-weight:600; }
.udp-hint  { font-size:.8rem; color:#8186a5; display:block; margin-top:3px; }
.user-domain-select { margin-bottom:0; }

/* Inline platform mismatch warning */
.udp-mismatch-warn[hidden] { display: none !important; }
.udp-mismatch-warn {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 6px;
  padding: 8px 12px;
  background: #fff8e6;
  border: 1px solid #ffe09a;
  border-radius: 10px;
  font-size: .82rem;
  color: #7a4f00;
  line-height: 1.4;
}
.udp-mismatch-warn svg { flex-shrink:0; margin-top:1px; }
