@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600&display=swap');

/* ---- design tokens odchycené z reknitosvymame.cz ---- */
:root{
  --peach:#FDC98F;
  --peach-soft:#FEDCB4;
  --paper:#FFF3E3;
  --ink:#000;
  --muted:rgba(0,0,0,.62);
  --line:rgba(0,0,0,.16);
  --pill:300px;
  --ok:#1F7A3D;
  --warn:#B3361B;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--peach);
  color:var(--ink);
  font-family:'Rubik',Verdana,Geneva,sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.5;
  letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
button{font-family:inherit}

h1,h2,h3{font-weight:500;letter-spacing:-.04em;line-height:1.05;margin:0}
h1{font-size:clamp(38px,6vw,64px)}
h2{font-size:clamp(28px,3.6vw,40px)}
h3{font-size:22px;letter-spacing:-.03em}

.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
.hairline{border:0;border-top:1px solid rgba(255,255,255,.55);margin:44px 0}

/* ---- header ---- */
.hdr{padding:26px 0 10px}
.hdr-in{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.logo{width:170px;flex:none}
.logo img{width:100%}
.nav{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 22px;max-width:640px}
.nav a{
  text-decoration:none;font-size:19px;letter-spacing:-.05em;
  padding:2px 0;border-bottom:2px solid transparent;white-space:nowrap;
}
.nav a:hover{border-bottom-color:var(--ink)}
.nav a.on{border-bottom-color:var(--ink)}

/* ---- tlačítka ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--ink);color:var(--peach);border:2px solid var(--ink);
  border-radius:var(--pill);padding:15px 32px;
  font-size:16px;font-weight:400;letter-spacing:-.02em;
  text-decoration:none;cursor:pointer;transition:.18s;
}
.btn:hover{background:transparent;color:var(--ink)}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--peach)}
.btn.sm{padding:9px 20px;font-size:14px;border-width:1.5px}
.btn.danger{border-color:var(--warn);background:transparent;color:var(--warn)}
.btn.danger:hover{background:var(--warn);color:#fff}

/* ---- hero ---- */
.hero{padding:46px 0 10px;text-align:center}
.hero p{max-width:620px;margin:18px auto 0;font-size:20px;color:var(--muted)}

/* ---- produkty ---- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:40px 30px;padding:38px 0 70px}
.prod{cursor:pointer;text-align:center}
.blob{
  background:var(--ink);aspect-ratio:1;overflow:hidden;
  display:grid;place-items:center;
  border-radius:47% 53% 44% 56% / 55% 43% 57% 45%;
  transition:border-radius .5s ease, transform .3s ease;
}
.prod:hover .blob{border-radius:56% 44% 58% 42% / 44% 57% 43% 56%;transform:translateY(-4px)}
.blob img{width:100%;height:100%;object-fit:cover}
.blob .ph{color:var(--peach);font-size:13px;letter-spacing:.06em;opacity:.7;padding:20px;text-align:center}
.prod h3{margin:16px 0 4px}
.price{font-size:19px;letter-spacing:-.02em}
.stock-note{font-size:14px;color:var(--muted);margin-top:4px}
.sold{color:var(--warn)}
.empty{text-align:center;padding:70px 0;color:var(--muted);font-size:19px}

/* ---- panel / modal ---- */
.veil{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:.25s;z-index:40}
.veil.on{opacity:1;pointer-events:auto}
.sheet{
  position:fixed;top:0;right:0;height:100%;width:min(460px,100%);
  background:var(--peach);z-index:50;transform:translateX(102%);transition:transform .32s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(0,0,0,.18);
}
.sheet.on{transform:none}
.sheet-hd{display:flex;align-items:center;justify-content:space-between;padding:24px 26px 14px}
.sheet-bd{flex:1;overflow:auto;padding:0 26px 20px}
.sheet-ft{padding:18px 26px 26px;border-top:1px solid var(--line)}
.x{background:none;border:0;font-size:30px;line-height:1;cursor:pointer;padding:0 4px}

.modal{
  position:fixed;z-index:50;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);
  width:min(760px,calc(100% - 36px));max-height:88vh;overflow:auto;
  background:var(--peach);border-radius:34px;padding:34px;
  opacity:0;pointer-events:none;transition:.22s;
}
.modal.on{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:700px){.modal-grid{grid-template-columns:1fr}}

/* ---- formuláře ---- */
label{display:block;font-size:14px;letter-spacing:.02em;margin:14px 0 6px;color:var(--muted)}
input,textarea,select{
  width:100%;font-family:inherit;font-size:16px;color:var(--ink);
  background:rgba(255,255,255,.55);border:1.5px solid var(--ink);border-radius:16px;
  padding:12px 15px;outline:none;
}
input:focus,textarea:focus,select:focus{background:#fff}
textarea{min-height:96px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media(max-width:560px){.row{grid-template-columns:1fr}}

/* ---- výběr varianty ---- */
.opts{display:flex;flex-wrap:wrap;gap:9px;margin-top:7px}
.opt{
  border:1.5px solid var(--ink);border-radius:var(--pill);background:transparent;
  padding:8px 18px;font-size:15px;cursor:pointer;transition:.15s;
}
.opt.on{background:var(--ink);color:var(--peach)}
.opt:disabled{opacity:.3;cursor:not-allowed;text-decoration:line-through}

/* ---- košík ---- */
.line{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.line-img{width:64px;height:64px;flex:none;background:var(--ink);border-radius:42% 58% 55% 45% / 52% 48% 52% 48%;overflow:hidden}
.line-img img{width:100%;height:100%;object-fit:cover}
.line b{font-weight:500}
.line small{color:var(--muted);display:block;font-size:13px}
.qty{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--ink);border-radius:var(--pill);margin-top:7px}
.qty button{background:none;border:0;width:30px;height:28px;cursor:pointer;font-size:17px}
.qty span{min-width:24px;text-align:center;font-size:15px}
.sum{display:flex;justify-content:space-between;font-size:20px;margin-bottom:14px}
.cart-btn{position:relative}
.dot{
  position:absolute;top:-7px;right:-9px;background:var(--ink);color:var(--peach);
  min-width:22px;height:22px;border-radius:11px;font-size:12px;
  display:grid;place-items:center;padding:0 6px;
}

/* ---- footer ---- */
.ft{padding:40px 0 60px;font-size:15px;color:var(--muted);text-align:center}
.ft a{text-decoration:underline}

/* ---- toast ---- */
.toast{
  position:fixed;left:50%;bottom:28px;transform:translate(-50%,120%);
  background:var(--ink);color:var(--peach);padding:14px 26px;border-radius:var(--pill);
  z-index:70;transition:.3s;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.toast.on{transform:translate(-50%,0)}

/* ---- admin ---- */
.tabs{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 6px}
.tab{border:1.5px solid var(--ink);background:transparent;border-radius:var(--pill);padding:10px 24px;cursor:pointer;font-size:16px}
.tab.on{background:var(--ink);color:var(--peach)}
.tab .n{background:var(--warn);color:#fff;border-radius:10px;padding:1px 7px;font-size:12px;margin-left:7px}
.panel{display:none;padding:24px 0 70px}
.panel.on{display:block}
.card{background:rgba(255,255,255,.45);border:1.5px solid var(--ink);border-radius:28px;padding:24px;margin-bottom:18px}
.card-hd{display:flex;gap:16px;align-items:flex-start}
.card-hd .thumb{width:86px;height:86px;flex:none;background:var(--ink);border-radius:46% 54% 44% 56% / 55% 45% 55% 45%;overflow:hidden}
.card-hd .thumb img{width:100%;height:100%;object-fit:cover}
.acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse;margin-top:14px;font-size:15px}
th{text-align:left;font-weight:500;color:var(--muted);font-size:13px;letter-spacing:.04em;padding:6px 10px 6px 0;border-bottom:1px solid var(--line)}
td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line);vertical-align:middle}
td input{padding:7px 11px;border-radius:12px;font-size:15px}
.tag{display:inline-block;border:1.5px solid var(--ink);border-radius:var(--pill);padding:3px 13px;font-size:13px;margin:3px 5px 3px 0}
.tag.low{border-color:var(--warn);color:var(--warn)}
.tag.zero{border-color:var(--warn);background:var(--warn);color:#fff}
.new{outline:3px solid var(--warn);outline-offset:4px}
.login{max-width:420px;margin:8vh auto;text-align:center}
.err{color:var(--warn);font-size:15px;min-height:22px;margin-top:10px}
.muted{color:var(--muted);font-size:15px}
.stat{display:flex;gap:30px;flex-wrap:wrap;margin:10px 0 4px}
.stat div b{display:block;font-size:30px;font-weight:500;letter-spacing:-.03em}
.stat div span{font-size:13px;color:var(--muted);letter-spacing:.04em}
.hidden{display:none!important}

/* ---- mobil ---- */
@media(max-width:700px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .hdr{padding:18px 0 4px}
  .logo{width:124px}
  .nav{margin:8px 0 0;width:100%;max-width:none;justify-content:center;gap:4px 15px}
  .nav a{font-size:16px}
  .hero{padding:26px 0 0}
  .hairline{margin:30px 0}
  .grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:30px 18px;padding:26px 0 60px}
  .prod h3{font-size:18px}
  .modal{padding:24px 20px;border-radius:26px;max-height:90vh}
  .sheet{width:100%}
  .card{padding:18px;border-radius:24px}
  .card-hd{flex-wrap:wrap}
  .acts{margin-left:0;width:100%}
  .stat{gap:18px}
  .stat div b{font-size:24px}
  table{font-size:14px}
}

/* ---- výběr dopravy a platby ---- */
.choices{display:grid;gap:10px;margin-top:10px}
.choice{
  display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;
  border:1.5px solid var(--ink);border-radius:22px;background:transparent;
  padding:14px 20px;cursor:pointer;font-size:16px;transition:.15s;color:var(--ink);
}
.choice b{font-weight:500}
.choice span{font-size:14px;color:var(--muted)}
.choice.on{background:var(--ink);color:var(--peach)}
.choice.on span{color:rgba(253,201,143,.75)}
.pointbox{
  border:1.5px dashed var(--ink);border-radius:18px;padding:14px 18px;margin-top:12px;
  display:flex;flex-direction:column;gap:2px;
}
.pointbox span{font-size:14px;color:var(--muted)}

/* ---- stavy objednávek ---- */
.st{display:inline-block;border-radius:var(--pill);padding:3px 14px;font-size:13px;border:1.5px solid;white-space:nowrap}
.st-new{border-color:#B3361B;background:#B3361B;color:#fff}
.st-ok{border-color:var(--ok);color:var(--ok)}
.st-sent{border-color:var(--ink);color:var(--ink);opacity:.6}
.st-bad{border-color:var(--muted);color:var(--muted);text-decoration:line-through}
.pay-tag{font-size:13px;border:1.5px solid var(--ink);border-radius:var(--pill);padding:3px 13px;white-space:nowrap}
.ord-hd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 6px}
.filters button{border:1.5px solid var(--ink);background:transparent;border-radius:var(--pill);padding:7px 18px;font-size:14px;cursor:pointer}
.filters button.on{background:var(--ink);color:var(--peach)}

/* ---- sklad: matice barva × velikost ---- */
.stock-hd{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:6px}
.stock-hd h3{margin-right:auto}
.matrix{width:100%;overflow-x:auto;margin-top:14px}
.matrix table{border-collapse:separate;border-spacing:6px;min-width:100%}
.matrix th{
  font-size:13px;letter-spacing:.06em;color:var(--muted);font-weight:400;
  padding:0 0 2px;border:0;text-align:center;white-space:nowrap;
}
.matrix th.rowh{text-align:left;padding-right:10px;font-size:15px;color:var(--ink);letter-spacing:-.01em}
.matrix td{padding:0;border:0}
.cell{
  display:flex;align-items:center;justify-content:space-between;gap:2px;
  border:1.5px solid var(--ink);border-radius:16px;background:rgba(255,255,255,.55);
  padding:4px 6px;min-width:104px;
}
.cell input{
  border:0;background:transparent;text-align:center;padding:2px;
  font-size:17px;width:100%;min-width:30px;-moz-appearance:textfield;
}
.cell input::-webkit-outer-spin-button,.cell input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.cell button{
  border:0;background:transparent;cursor:pointer;font-size:17px;line-height:1;
  width:24px;height:26px;border-radius:13px;flex:none;
}
.cell button:hover{background:rgba(0,0,0,.09)}
.cell.low{border-color:#C46A12;background:rgba(196,106,18,.12)}
.cell.zero{border-color:var(--warn);background:rgba(179,54,27,.14)}
.cell.none{border-style:dashed;opacity:.42}
.cell.none .dash{width:100%;text-align:center;color:var(--muted);font-size:15px}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:16px}
.legend i{display:inline-block;width:13px;height:13px;border-radius:4px;border:1.5px solid;margin-right:6px;vertical-align:-2px}
.legend .l1{border-color:#C46A12;background:rgba(196,106,18,.12)}
.legend .l2{border-color:var(--warn);background:rgba(179,54,27,.14)}
.qr-wrap{background:#fff;padding:14px;border-radius:20px;display:inline-block}
@media(max-width:700px){
  .cell{min-width:88px}
  .matrix th.rowh{font-size:14px}
}

/* ---- platební stránka ---- */
.pay-page{padding-bottom:70px}
.pay-grid{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:start;justify-content:center;padding:10px 0 20px}
.pay-grid table{margin:0}
@media(max-width:700px){
  .pay-grid{grid-template-columns:1fr;gap:28px;justify-items:center;text-align:center}
  .pay-grid table{max-width:340px}
}

/* nenápadný vstup do správy v patičce obchodu */
.ft-admin{
  display:inline-block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;color:var(--muted);opacity:.55;
  border:1px solid currentColor;border-radius:var(--pill);padding:5px 15px;
  transition:.18s;
}
.ft-admin:hover{opacity:1;background:var(--ink);color:var(--peach);border-color:var(--ink)}
