/* KM Dizajnér – Pomocník a prehliadka */

/* Tlačidlá na otvorenie */
.kmdz-help-btn {
	display: inline-flex; align-items: center; gap: 6px; height: 42px; padding: 0 14px;
	border: 1px solid var(--kmdz-border); border-radius: 21px; background: #fff; color: inherit; font-weight: 600; font-size: 14px; cursor: pointer;
}
.kmdz-help-btn:hover { border-color: var(--kmdz-blue); color: var(--kmdz-blue); }
.kmdz-help-btn.is-pulse { animation: kmdzh-pulse 0.8s ease-in-out 3; }
@keyframes kmdzh-pulse { 50% { box-shadow: 0 0 0 6px rgba(31, 79, 180, .25); border-color: var(--kmdz-blue); } }
.kmdz-qhelp {
	display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-left: 4px; vertical-align: 2px;
	border: 1px solid var(--kmdz-border); border-radius: 50%; background: #fff; color: var(--kmdz-muted); font-size: 12px; font-weight: 700; line-height: 1; cursor: pointer;
}
.kmdz-qhelp:hover { color: var(--kmdz-blue); border-color: var(--kmdz-blue); }
.kmdz-place__help, .kmdz-printinfo__help { display: block; margin: 8px 0 0; font-size: 12.5px; color: var(--kmdz-muted); }
.kmdz-props__empty .kmdz-link { font-size: 13px; color: var(--kmdz-blue); }
@media (max-width: 760px) { .kmdz-help-btn span { display: none; } .kmdz-help-btn { width: 42px; padding: 0; justify-content: center; } }

/* Okno Pomocníka */
.kmdz-help { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(17, 17, 17, .55); }
.kmdz-help[hidden] { display: none; }
.kmdz-help__box {
	display: flex; flex-direction: column; width: min(980px, 100%); max-height: min(720px, calc(100vh - 32px));
	background: #fff; border-radius: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, .3); overflow: hidden; animation: kmdzh-in .22s ease-out;
}
@keyframes kmdzh-in { from { opacity: 0; transform: translateY(10px) scale(.98); } }
.kmdz-help__head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--kmdz-border); }
.kmdz-help__head h2 { flex: 1; margin: 0; font-size: 1.2rem; }
.kmdz-help__tour { border: 1px solid var(--kmdz-border); background: var(--kmdz-soft); border-radius: 18px; padding: 7px 14px; font-size: 13px; font-weight: 600; cursor: pointer; }
.kmdz-help__tour:hover { border-color: var(--kmdz-blue); color: var(--kmdz-blue); }
.kmdz-help__close { width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--kmdz-soft); font-size: 22px; line-height: 1; cursor: pointer; }
.kmdz-help__body { display: grid; grid-template-columns: 220px minmax(0, 1fr); min-height: 0; flex: 1; }
.kmdz-help__nav { padding: 10px; border-right: 1px solid var(--kmdz-border); overflow-y: auto; background: #fafafa; }
.kmdz-help__nav button {
	display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; margin-bottom: 2px; border: 0; border-radius: 8px;
	background: none; text-align: left; font-size: 14px; color: inherit; cursor: pointer;
}
.kmdz-help__nav button span { width: 22px; text-align: center; font-size: 16px; }
.kmdz-help__nav button:hover { background: #eee; }
.kmdz-help__nav button.is-active { background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .12); font-weight: 600; color: var(--kmdz-blue); }
.kmdz-help__content { padding: 18px 24px 22px; overflow-y: auto; }
.kmdz-help__topic { display: none; }
.kmdz-help__topic.is-active { display: block; animation: kmdzh-fade .25s ease-out; }
@keyframes kmdzh-fade { from { opacity: 0; transform: translateX(8px); } }
.kmdz-help__topic h3 { margin: 14px 0 8px; font-size: 1.15rem; }
.kmdz-help__topic p, .kmdz-help__steps li { font-size: 14.5px; line-height: 1.55; }
.kmdz-help__steps { margin: 0 0 12px; padding-left: 22px; }
.kmdz-help__steps li { margin-bottom: 6px; }
.kmdz-help__tip { background: #f0f5ff; border-left: 3px solid var(--kmdz-blue); padding: 9px 12px; border-radius: 0 8px 8px 0; }
.kmdz-help__keys { border-collapse: collapse; margin: 6px 0 14px; font-size: 14px; }
.kmdz-help__keys td { padding: 6px 14px 6px 0; border-bottom: 1px solid #f0f0f0; }
.kmdz-help kbd { display: inline-block; min-width: 22px; padding: 2px 6px; border: 1px solid #ccc; border-bottom-width: 2px; border-radius: 5px; background: #fafafa; font: 600 12px/1.4 ui-monospace, monospace; text-align: center; }
.kmdz-help__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--kmdz-border); }
.kmdz-help__foot span { color: var(--kmdz-muted); font-size: 13px; }
.kmdz-help__foot .kmdz-btn:disabled { opacity: .35; }

@media (max-width: 760px) {
	.kmdz-help { padding: 0; align-items: stretch; }
	.kmdz-help__box { max-height: none; height: 100%; border-radius: 0; }
	.kmdz-help__body { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
	.kmdz-help__nav { display: flex; gap: 6px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--kmdz-border); padding: 8px; }
	.kmdz-help__nav button { flex: 0 0 auto; width: auto; white-space: nowrap; margin: 0; padding: 7px 10px; font-size: 13px; }
	.kmdz-help__content { padding: 12px 16px 18px; }
	.kmdz-help__tour { padding: 6px 10px; font-size: 12px; }
	.kmdz-help__foot .kmdz-btn { padding: 0 12px; font-size: 13px; }
}

/* ---------- Animácie ---------- */
.kmdz-help__anim { background: linear-gradient(180deg, #f6f8fc, #eef2f9); border-radius: 12px; padding: 8px; }
.kmdzh { display: block; width: 100%; max-width: 420px; height: auto; margin: 0 auto; font-family: inherit; }
.kmdzh text { font-size: 10px; text-anchor: middle; fill: #333; }
.kmdzh .shirt { fill: #fff; stroke: #c9ced8; stroke-width: 1.2px; }
.kmdzh * { transform-box: fill-box; transform-origin: center; }
.kmdzh .cur { transform-box: view-box; transform-origin: 0 0; }

/* Pravidlo: základný štýl = konečný stav (pri vypnutých animáciách je všetko viditeľné), animácia začína od skrytého. */

/* Začíname */
.kmdzh-start .p { fill: #fff; stroke: #d7dbe3; stroke-width: 1.5px; animation: kmdzh-hl 6s infinite; }
.kmdzh-start .p2 { animation-delay: 2s; }
.kmdzh-start .p3 { animation-delay: 4s; }
@keyframes kmdzh-hl { 0%, 34%, 100% { stroke: #d7dbe3; fill: #fff; } 4%, 28% { stroke: #1f4fb4; fill: #eef3fd; } }
.kmdzh-start .lbl circle { fill: #1f4fb4; }
.kmdzh-start .lbl text { fill: #fff; font-weight: 700; font-size: 11px; }
.kmdzh-start .lbl text.t { fill: #1f4fb4; font-size: 10px; }
.kmdzh-start .go { fill: #111; animation: kmdzh-go 6s infinite; }
.kmdzh-start .got { fill: #fff; font-size: 8.5px; font-weight: 600; }
@keyframes kmdzh-go { 0%, 85%, 100% { transform: scale(1); } 90% { transform: scale(1.08); } }

/* Logo */
.kmdzh-logo .area { fill: rgba(31, 79, 180, .06); stroke: #1f4fb4; stroke-width: 1.2px; stroke-dasharray: 4 3; animation: kmdzh-area 5s infinite; }
@keyframes kmdzh-area { 0%, 40% { fill: rgba(31, 79, 180, 0); } 50%, 60% { fill: rgba(31, 79, 180, .18); } }
.kmdzh-logo .file rect { fill: #fff; stroke: #c9ced8; }
.kmdzh-logo .file text { font-size: 6px; fill: #777; }
.kmdzh-logo .file { transform: translate(166px, 56px) scale(.95); transform-box: view-box; transform-origin: 0 0; animation: kmdzh-file 5s infinite cubic-bezier(.5, 0, .3, 1); }
@keyframes kmdzh-file {
	0%, 8% { transform: translate(262px, 6px) scale(1); opacity: 0; }
	12% { opacity: 1; }
	46% { transform: translate(166px, 52px) scale(1); }
	56%, 90% { transform: translate(166px, 56px) scale(.95); opacity: 1; }
	98%, 100% { opacity: 0; transform: translate(166px, 56px) scale(.95); }
}
.kmdzh-logo .file rect { animation: kmdzh-filebg 5s infinite; }
@keyframes kmdzh-filebg { 0%, 50% { fill: #fff; stroke: #c9ced8; } 58%, 100% { fill: transparent; stroke: transparent; } }
.kmdzh-logo .file text { animation: kmdzh-filetx 5s infinite; }
@keyframes kmdzh-filetx { 0%, 50% { opacity: 1; } 56%, 100% { opacity: 0; } }
.kmdzh-logo .cur { transform: translate(290px, 150px); animation: kmdzh-lcur 5s infinite cubic-bezier(.5, 0, .3, 1); }
@keyframes kmdzh-lcur { 0%, 8% { transform: translate(290px, 30px); opacity: 0; } 12% { opacity: 1; } 46% { transform: translate(194px, 76px); } 60% { transform: translate(194px, 76px); } 85% { transform: translate(290px, 150px); opacity: 1; } 95%, 100% { opacity: 0; } }
.kmdzh-logo .dim { fill: #1f4fb4; font-weight: 700; animation: kmdzh-show 5s infinite; }
@keyframes kmdzh-show { 0%, 58% { opacity: 0; } 64%, 92% { opacity: 1; } 100% { opacity: 0; } }

/* Text */
.kmdzh-text .name { font: 800 17px/1 Impact, 'Arial Black', sans-serif; letter-spacing: 1px; fill: #111; }
.kmdzh-text .cover { fill: #fff; opacity: 0; transform-box: view-box; transform-origin: 0 0; animation: kmdzh-type 6s infinite steps(5, end), kmdzh-typeo 6s infinite; }
@keyframes kmdzh-type { 0%, 5% { transform: translateX(0); } 35%, 100% { transform: translateX(80px); } }
@keyframes kmdzh-typeo { 0%, 34% { opacity: 1; } 35%, 100% { opacity: 0; } }
.kmdzh-text .h path { stroke: #1f4fb4; stroke-width: 1.3px; fill: none; }
.kmdzh-text .h text { fill: #1f4fb4; text-anchor: start; font-weight: 700; }
.kmdzh-text .h { animation: kmdzh-th 6s infinite; }
@keyframes kmdzh-th { 0%, 36% { opacity: 0; } 42%, 94% { opacity: 1; } 100% { opacity: 0; } }
.kmdzh-text .num { font: 800 60px/1 Impact, 'Arial Black', sans-serif; fill: #c62828; animation: kmdzh-num 6s infinite cubic-bezier(.3, 1.5, .5, 1); }
@keyframes kmdzh-num { 0%, 48% { transform: scale(0); opacity: 0; } 58%, 94% { transform: scale(1); opacity: 1; } 100% { opacity: 0; } }

/* Umiestnenia a sady */
.kmdzh-place .panel { fill: #fff; stroke: #d7dbe3; }
.kmdzh-place .ph { text-anchor: start; font-weight: 700; font-size: 9px; }
.kmdzh-place .row rect { fill: #f5f6f8; }
.kmdzh-place .row text { text-anchor: start; font-size: 8.5px; }
.kmdzh-place .row text.s { text-anchor: end; fill: #1f4fb4; font-weight: 700; }
.kmdzh-place .r1 rect { animation: kmdzh-r1 7s infinite; }
.kmdzh-place .r3 rect { animation: kmdzh-r3 7s infinite; }
@keyframes kmdzh-r1 { 0%, 14% { fill: #f5f6f8; } 18%, 100% { fill: #e3f1e7; } }
@keyframes kmdzh-r3 { 0%, 52% { fill: #f5f6f8; } 56%, 100% { fill: #e3f1e7; } }
.kmdzh-place .crest { animation: kmdzh-pop1 7s infinite cubic-bezier(.3, 1.6, .5, 1); }
@keyframes kmdzh-pop1 { 0%, 20% { transform: scale(0); opacity: 0; } 28%, 94% { transform: scale(1); opacity: 1; } 100% { opacity: 0; } }
.kmdzh-place .sponsor rect { fill: #111; }
.kmdzh-place .sponsor text { fill: #fff; font-weight: 800; font-size: 9px; letter-spacing: 1px; }
.kmdzh-place .sponsor { animation: kmdzh-pop2 7s infinite cubic-bezier(.3, 1.6, .5, 1); }
@keyframes kmdzh-pop2 { 0%, 58% { transform: scale(0); opacity: 0; } 66%, 94% { transform: scale(1); opacity: 1; } 100% { opacity: 0; } }
.kmdzh-place .cur { transform: translate(100px, 128px); animation: kmdzh-pcur 7s infinite ease-in-out; }
@keyframes kmdzh-pcur {
	0% { transform: translate(150px, 175px); opacity: 0; } 5% { opacity: 1; }
	14% { transform: translate(60px, 66px); } 16% { transform: translate(60px, 66px) scale(.85); } 18% { transform: translate(60px, 66px); }
	50% { transform: translate(60px, 126px); } 54% { transform: translate(60px, 126px) scale(.85); } 56% { transform: translate(60px, 126px); }
	90% { transform: translate(100px, 175px); opacity: 1; } 100% { opacity: 0; }
}

/* Vlastné umiestnenie */
.kmdzh-custom .draw { fill: rgba(240, 123, 29, .14); stroke: #f07b1d; stroke-width: 1.5px; stroke-dasharray: 4 3; transform-origin: 0 0; animation: kmdzh-draw 6s infinite ease-in-out; }
@keyframes kmdzh-draw { 0%, 10% { transform: scale(.15); opacity: 0; } 14% { opacity: 1; } 42%, 92% { transform: scale(1); opacity: 1; } 100% { opacity: 0; } }
.kmdzh-custom .dl { fill: #b45a0c; font-weight: 700; font-size: 9px; animation: kmdzh-show2 6s infinite; }
@keyframes kmdzh-show2 { 0%, 40% { opacity: 0; } 46%, 92% { opacity: 1; } 100% { opacity: 0; } }
.kmdzh-custom .max rect { fill: #fff1e4; stroke: #f0a35e; }
.kmdzh-custom .max text { fill: #9a4a06; font-weight: 700; font-size: 9.5px; }
.kmdzh-custom .max { animation: kmdzh-max 6s infinite; }
@keyframes kmdzh-max { 0%, 55% { opacity: 0; transform: translateY(6px); } 62%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.kmdzh-custom .cur { transform: translate(206px, 52px); animation: kmdzh-ccur 6s infinite ease-in-out; }
@keyframes kmdzh-ccur { 0%, 10% { transform: translate(176px, 44px); opacity: 0; } 14% { opacity: 1; } 42%, 70% { transform: translate(206px, 52px); opacity: 1; } 80%, 100% { transform: translate(270px, 110px); opacity: 0; } }

/* Úpravy prvku */
.kmdzh-edit .sel { fill: none; stroke: #1f4fb4; stroke-width: 1px; }
.kmdzh-edit .hd { fill: #fff; stroke: #1f4fb4; stroke-width: 1.2px; }
.kmdzh-edit .rl { stroke: #1f4fb4; stroke-width: 1px; }
.kmdzh-edit .snap { stroke: #1f4fb4; stroke-width: 1.2px; stroke-dasharray: 5 4; opacity: 0; animation: kmdzh-snap 8s infinite; }
@keyframes kmdzh-snap { 0%, 20% { opacity: 0; } 24%, 34% { opacity: 1; } 40%, 100% { opacity: 0; } }
.kmdzh-edit .mv { animation: kmdzh-mv 8s infinite ease-in-out; }
@keyframes kmdzh-mv { 0%, 4% { transform: translate(-40px, 18px); } 24%, 100% { transform: none; } }
.kmdzh-edit .rot { animation: kmdzh-rot 8s infinite ease-in-out; }
@keyframes kmdzh-rot { 0%, 38% { transform: rotate(0); } 52%, 66% { transform: rotate(28deg); } 76%, 100% { transform: rotate(0); } }
.kmdzh-edit .btn rect { fill: #fff; stroke: #c9ced8; }
.kmdzh-edit .btn text { font-weight: 700; font-size: 11px; }
.kmdzh-edit .btn { animation: kmdzh-btn 8s infinite; }
@keyframes kmdzh-btn { 0%, 64%, 78%, 100% { transform: scale(1); } 68% { transform: scale(.9); } 70% { transform: scale(1.06); } }
.kmdzh-edit .btn rect { animation: kmdzh-btnbg 8s infinite; }
@keyframes kmdzh-btnbg { 0%, 64%, 80%, 100% { fill: #fff; stroke: #c9ced8; } 68%, 74% { fill: #e8eefb; stroke: #1f4fb4; } }

/* Strany a farba */
.kmdzh-sides .shirt { animation: kmdzh-col 9s infinite; }
@keyframes kmdzh-col { 0%, 30% { fill: #fff; } 36%, 63% { fill: #c62828; } 69%, 96% { fill: #1c2a5a; } 100% { fill: #fff; } }
.kmdzh-sides .dots circle { stroke: #c9ced8; }
.kmdzh-sides .ring { fill: none; stroke: #111 !important; stroke-width: 1.6px; transform-box: view-box; transform-origin: 0 0; animation: kmdzh-ring 9s infinite; }
@keyframes kmdzh-ring { 0%, 30% { transform: translateX(0); } 36%, 63% { transform: translateX(24px); } 69%, 96% { transform: translateX(48px); } 100% { transform: translateX(0); } }
.kmdzh-sides .tabs rect { fill: #fff; stroke: #d7dbe3; }
.kmdzh-sides .tabs text { font-size: 9.5px; font-weight: 600; }
.kmdzh-sides .t1 { animation: kmdzh-t1 9s infinite; }
.kmdzh-sides .t2 { animation: kmdzh-t2 9s infinite; }
@keyframes kmdzh-t1 { 0%, 45%, 100% { fill: #e8eefb; stroke: #1f4fb4; } 50%, 95% { fill: #fff; stroke: #d7dbe3; } }
@keyframes kmdzh-t2 { 0%, 45%, 100% { fill: #fff; stroke: #d7dbe3; } 50%, 95% { fill: #e8eefb; stroke: #1f4fb4; } }

/* Potlač a cena */
.kmdzh-print .fc { font: 800 12px/1 Impact, 'Arial Black', sans-serif; fill: #111; letter-spacing: .5px; }
.kmdzh-print .spn { fill: #c62828; }
.kmdzh-print .bb { fill: none; stroke: #1f4fb4; stroke-width: 1.3px; stroke-dasharray: 4 3; }
.kmdzh-print .b1 { animation: kmdzh-bb 7s infinite; }
.kmdzh-print .b2 { animation: kmdzh-bb2 7s infinite; }
@keyframes kmdzh-bb { 0%, 8% { opacity: 0; } 14%, 94% { opacity: 1; } 100% { opacity: 0; } }
@keyframes kmdzh-bb2 { 0%, 40% { opacity: 0; } 46%, 94% { opacity: 1; } 100% { opacity: 0; } }
.kmdzh-print .lab rect { fill: #1f4fb4; }
.kmdzh-print .lab text { fill: #fff; font-weight: 700; font-size: 9px; }
.kmdzh-print .l1 { animation: kmdzh-l1 7s infinite cubic-bezier(.3, 1.5, .5, 1); }
.kmdzh-print .l2 { animation: kmdzh-l2 7s infinite cubic-bezier(.3, 1.5, .5, 1); }
@keyframes kmdzh-l1 { 0%, 16% { opacity: 0; transform: scale(.6); } 22%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }
@keyframes kmdzh-l2 { 0%, 48% { opacity: 0; transform: scale(.6); } 54%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }

/* Odoslanie */
.kmdzh-send .tbl text { font-weight: 700; font-size: 11px; }
.kmdzh-send .tbl text.n { text-anchor: end; fill: #555; font-weight: 600; }
.kmdzh-send .tbl .tot { fill: #111; font-size: 12px; font-weight: 800; }
.kmdzh-send .bar { fill: #1f4fb4; transform-origin: left center; animation: kmdzh-bar 8s infinite ease-out; }
.kmdzh-send .q2 { animation-delay: .15s; } .kmdzh-send .q3 { animation-delay: .3s; } .kmdzh-send .q4 { animation-delay: .45s; }
@keyframes kmdzh-bar { 0%, 4% { transform: scaleX(0); } 22%, 100% { transform: scaleX(1); } }
.kmdzh-send .tbl { animation: kmdzh-tbl 8s infinite; }
@keyframes kmdzh-tbl { 0%, 60% { opacity: 1; } 66%, 96% { opacity: .12; } 100% { opacity: 1; } }
.kmdzh-send .send rect { fill: #111; }
.kmdzh-send .send text { fill: #fff; font-weight: 700; font-size: 11px; }
.kmdzh-send .send { animation: kmdzh-send 8s infinite; }
@keyframes kmdzh-send { 0%, 46%, 56%, 100% { transform: scale(1); } 50% { transform: scale(.92); } }
.kmdzh-send .ok circle { fill: #1c7c3c; }
.kmdzh-send .ok path { fill: none; stroke: #fff; stroke-width: 5px; stroke-linecap: round; stroke-linejoin: round; }
.kmdzh-send .ok { opacity: 0; animation: kmdzh-ok 8s infinite cubic-bezier(.3, 1.6, .5, 1); }
@keyframes kmdzh-ok { 0%, 56% { opacity: 0; transform: scale(.3); } 64%, 94% { opacity: 1; transform: scale(1); } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	.kmdzh *, .kmdz-help__box, .kmdz-help__topic.is-active, .kmdz-tour__card, .kmdz-tour__spot { animation: none !important; transition: none !important; }
	.kmdzh-send .ok, .kmdzh-edit .snap { opacity: 0 !important; }
}

/* ---------- Prehliadka ---------- */
.kmdz-tour { position: fixed; inset: 0; z-index: 100001; }
.kmdz-tour[hidden] { display: none; }
.kmdz-tour__spot {
	position: fixed; border-radius: 12px; pointer-events: none;
	box-shadow: 0 0 0 4px rgba(255, 255, 255, .9), 0 0 0 9999px rgba(17, 17, 17, .6);
	transition: left .35s ease, top .35s ease, width .35s ease, height .35s ease;
}
.kmdz-tour.is-center .kmdz-tour__spot { box-shadow: 0 0 0 9999px rgba(17, 17, 17, .6); }
.kmdz-tour__card {
	position: fixed; width: 360px; padding: 18px 18px 14px; background: #fff; border-radius: 14px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .35); transition: left .35s ease, top .35s ease;
}
.kmdz-tour__card.is-in { animation: kmdzh-card .3s ease-out; }
@keyframes kmdzh-card { from { opacity: 0; transform: translateY(6px); } }
.kmdz-tour__n { margin: 0 0 4px; font-size: 12px; font-weight: 700; color: var(--kmdz-blue); text-transform: uppercase; letter-spacing: .04em; }
.kmdz-tour__n:empty { display: none; }
.kmdz-tour__card h3 { margin: 0 0 6px; font-size: 1.1rem; }
.kmdz-tour__card p { margin: 0 0 12px; font-size: 14.5px; line-height: 1.5; }
.kmdz-tour__dots { display: flex; gap: 5px; margin-bottom: 12px; }
.kmdz-tour__dots i { width: 7px; height: 7px; border-radius: 50%; background: #d7dbe3; }
.kmdz-tour__dots i.is-on { width: 20px; border-radius: 4px; background: var(--kmdz-blue); }
.kmdz-tour__actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kmdz-tour__actions > span { display: flex; gap: 6px; }
.kmdz-tour__actions .kmdz-btn { min-height: 38px; padding: 0 16px; }
.kmdz-tour__actions .kmdz-link { color: var(--kmdz-muted); font-size: 13px; }
body.kmdz-touring .kmdz-body { pointer-events: none; }

/* Posun umiestnenia */
.kmdzh-move .orig { fill: none; stroke: #9aa3b2; stroke-width: 1px; stroke-dasharray: 3 3; opacity: 0; animation: kmdzh-mo 8s infinite; }
@keyframes kmdzh-mo { 0%, 22% { opacity: 0; } 28%, 66% { opacity: 1; } 72%, 100% { opacity: 0; } }
.kmdzh-move .box { fill: rgba(31, 79, 180, .06); stroke: #1f4fb4; stroke-width: 1.2px; stroke-dasharray: 4 3; animation: kmdzh-mbox 8s infinite; }
@keyframes kmdzh-mbox { 0%, 18%, 74%, 100% { stroke: #1f4fb4; fill: rgba(31, 79, 180, .06); } 24%, 66% { stroke: #f07b1d; fill: rgba(240, 123, 29, .14); } }
.kmdzh-move .ar { animation: kmdzh-mar 8s infinite ease-in-out; }
@keyframes kmdzh-mar { 0%, 28% { transform: none; } 42%, 66% { transform: translate(-14px, 26px); } 76%, 100% { transform: none; } }
.kmdzh-move .lock rect:first-child { fill: #fff; stroke: #c9ced8; }
.kmdzh-move .lock .bd { fill: #1f4fb4; }
.kmdzh-move .lock .sh { fill: none; stroke: #1f4fb4; stroke-width: 2px; stroke-linecap: round; transform-box: view-box; transform-origin: 232px 48px; animation: kmdzh-shk 8s infinite; }
@keyframes kmdzh-shk { 0%, 12%, 76%, 100% { transform: none; } 18%, 70% { transform: translate(5px, -2px) rotate(25deg); } }
.kmdzh-move .lock { animation: kmdzh-lk 8s infinite; }
@keyframes kmdzh-lk { 0%, 10%, 20%, 100% { transform: scale(1); } 14% { transform: scale(.85); } }
.kmdzh-move .rst rect { fill: #fff; stroke: #c9ced8; }
.kmdzh-move .rst text { font-weight: 700; font-size: 9.5px; }
.kmdzh-move .rst { animation: kmdzh-rst 8s infinite; }
@keyframes kmdzh-rst { 0%, 66%, 76%, 100% { transform: scale(1); } 70% { transform: scale(.9); } }

/* Zarovnanie a mriežka */
.kmdzh-align .grid path { fill: none; stroke: rgba(31, 79, 180, .22); stroke-width: .7px; }
.kmdzh-align .grid { animation: kmdzh-grid 8s infinite; }
@keyframes kmdzh-grid { 0%, 52% { opacity: 0; } 58%, 94% { opacity: 1; } 100% { opacity: 0; } }
.kmdzh-align .t1 { font: 800 13px/1 Impact, 'Arial Black', sans-serif; fill: #111; letter-spacing: .5px; }
.kmdzh-align .mv { animation: kmdzh-amv 8s infinite ease-in-out; }
@keyframes kmdzh-amv { 0%, 6% { transform: translate(-34px, 14px); } 26%, 100% { transform: none; } }
.kmdzh-align .gl { stroke: #e5197e; stroke-width: 1.3px; opacity: 0; animation: kmdzh-agl 8s infinite; }
@keyframes kmdzh-agl { 0%, 22% { opacity: 0; } 26%, 40% { opacity: 1; } 46%, 100% { opacity: 0; } }
.kmdzh-align .chip rect { fill: #fff; stroke: #c9ced8; animation: kmdzh-achip 8s infinite; }
.kmdzh-align .chip text { font-size: 9.5px; font-weight: 600; }
@keyframes kmdzh-achip { 0%, 48%, 100% { fill: #fff; stroke: #c9ced8; } 52%, 94% { fill: #fdf0f6; stroke: #e5197e; } }
@media (prefers-reduced-motion: reduce) { .kmdzh-align .gl, .kmdzh-move .orig { opacity: 0 !important; } }

/* Text do oblúka v animácii textu */
.kmdzh-text .arc { font: 800 13px/1 Impact, 'Arial Black', sans-serif; fill: #1f4fb4; letter-spacing: 1px; animation: kmdzh-arc 6s infinite; }
@keyframes kmdzh-arc { 0%, 60% { opacity: 0; } 66%, 94% { opacity: 1; } 100% { opacity: 0; } }

/* Techniky */
.kmdzh-tech .c rect { fill: #fff; stroke: #d7dbe3; stroke-width: 1.5px; }
.kmdzh-tech .c text { font-size: 8.5px; fill: #555; }
.kmdzh-tech .c text.t { font-size: 12px; font-weight: 800; fill: #111; }
.kmdzh-tech .c text.ok { font-size: 22px; fill: #1c7c3c; font-weight: 800; }
.kmdzh-tech .st { stroke: #1f4fb4; stroke-width: 3px; stroke-dasharray: 3 2.5; fill: none; }
.kmdzh-tech .c { animation: kmdzh-tc 7.5s infinite; }
.kmdzh-tech .c2 { animation-delay: 2.5s; }
.kmdzh-tech .c3 { animation-delay: 5s; }
@keyframes kmdzh-tc { 0%, 34%, 100% { transform: none; } 6%, 28% { transform: translateY(-6px) scale(1.04); } }
.kmdzh-tech .c rect { animation: kmdzh-tcr 7.5s infinite; }
.kmdzh-tech .c2 rect { animation-delay: 2.5s; }
.kmdzh-tech .c3 rect { animation-delay: 5s; }
@keyframes kmdzh-tcr { 0%, 34%, 100% { stroke: #d7dbe3; } 6%, 28% { stroke: #1f4fb4; } }

/* Súpiska */
.kmdzh-roster .panel { fill: #fff; stroke: #d7dbe3; }
.kmdzh-roster .ph { text-anchor: start; font-weight: 700; font-size: 9px; }
.kmdzh-roster .row rect { fill: #f5f6f8; }
.kmdzh-roster .row text { text-anchor: start; font-size: 8.5px; }
.kmdzh-roster .row text.s { text-anchor: end; font-weight: 700; }
.kmdzh-roster .row text.z { text-anchor: end; fill: #1f4fb4; font-weight: 700; }
.kmdzh-roster .cnt { font-size: 8px; fill: #555; font-weight: 600; }
.kmdzh-roster .shirt { fill: #c62828; stroke: #a31f1f; }
.kmdzh-roster .nm { font: 800 14px/1 Impact, 'Arial Black', sans-serif; fill: #fff; letter-spacing: .5px; }
.kmdzh-roster .nb { font: 800 50px/1 Impact, 'Arial Black', sans-serif; fill: #fff; }
.kmdzh-roster .p { opacity: 0; animation: kmdzh-rp 9s infinite; }
.kmdzh-roster .p1 { opacity: 1; }
.kmdzh-roster .p2 { animation-delay: 3s; }
.kmdzh-roster .p3 { animation-delay: 6s; }
@keyframes kmdzh-rp { 0% { opacity: 0; } 4%, 30% { opacity: 1; } 34%, 100% { opacity: 0; } }
.kmdzh-roster .row rect { animation: kmdzh-rr 9s infinite; }
.kmdzh-roster .r2 rect { animation-delay: 3s; }
.kmdzh-roster .r3 rect { animation-delay: 6s; }
@keyframes kmdzh-rr { 0%, 34%, 100% { fill: #f5f6f8; } 4%, 30% { fill: #fde4ef; } }
@media (prefers-reduced-motion: reduce) { .kmdzh-roster .p2, .kmdzh-roster .p3 { opacity: 0 !important; } }

/* Zdieľanie */
.kmdzh-share .link rect { fill: #1f4fb4; }
.kmdzh-share .link text { fill: #fff; font-weight: 700; font-size: 9px; }
.kmdzh-share .link { animation: kmdzh-lnk 7s infinite ease-in-out; }
@keyframes kmdzh-lnk { 0%, 8% { transform: translateX(-30px); opacity: 0; } 14% { opacity: 1; } 34% { transform: translateX(0); opacity: 1; } 40%, 100% { transform: translateX(26px); opacity: 0; } }
.kmdzh-share .ph > rect:first-child { fill: #222; }
.kmdzh-share .sc { fill: #f3f5f9; }
.kmdzh-share .ph { animation: kmdzh-ph 7s infinite; }
@keyframes kmdzh-ph { 0%, 30% { opacity: .35; } 40%, 94% { opacity: 1; } 100% { opacity: .35; } }
.kmdzh-share .ok rect { fill: #1c7c3c; }
.kmdzh-share .ok text { fill: #fff; font-weight: 700; font-size: 8.5px; }
.kmdzh-share .ok { animation: kmdzh-okb 7s infinite; }
@keyframes kmdzh-okb { 0%, 54%, 62%, 100% { transform: scale(1); } 58% { transform: scale(.88); } }
.kmdzh-share .bdg circle { fill: #1c7c3c; }
.kmdzh-share .bdg text { fill: #fff; font-size: 14px; font-weight: 800; }
.kmdzh-share .bdg { animation: kmdzh-bdg 7s infinite cubic-bezier(.3, 1.6, .5, 1); }
@keyframes kmdzh-bdg { 0%, 62% { transform: scale(0); opacity: 0; } 70%, 94% { transform: scale(1); opacity: 1; } 100% { opacity: 0; } }

/* Predlohy */
.kmdzh-presets .cards rect { fill: #fff; stroke: #d7dbe3; stroke-width: 1.5px; }
.kmdzh-presets .c1 { animation: kmdzh-pc 8s infinite; }
@keyframes kmdzh-pc { 0%, 10%, 30%, 100% { stroke: #d7dbe3; } 14%, 26% { stroke: #7b3fa0; stroke-width: 3px; } }
.kmdzh-presets .tpl { animation: kmdzh-tpl 8s infinite; }
@keyframes kmdzh-tpl { 0%, 22% { opacity: 0; transform: scale(.85); } 30%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.kmdzh-presets .t { font: 800 13px/1 Impact, 'Arial Black', sans-serif; fill: #111; letter-spacing: .5px; }
.kmdzh-presets .ph { animation: kmdzh-ph2 8s infinite; }
@keyframes kmdzh-ph2 { 0%, 58% { opacity: 1; } 62%, 100% { opacity: 0; } }
.kmdzh-presets .lg { animation: kmdzh-lg 8s infinite cubic-bezier(.3, 1.6, .5, 1); }
@keyframes kmdzh-lg { 0%, 60% { opacity: 0; transform: scale(.4); } 68%, 94% { opacity: 1; transform: none; } 100% { opacity: 0; } }
.kmdzh-presets .cur { transform: translate(40px, 60px); animation: kmdzh-pcur 8s infinite ease-in-out; }
@keyframes kmdzh-pcur { 0%, 6% { transform: translate(90px, 170px); opacity: 0; } 10% { opacity: 1; } 18% { transform: translate(40px, 62px); } 22% { transform: translate(40px, 62px) scale(.85); } 26% { transform: translate(40px, 62px); } 48% { transform: translate(205px, 112px); } 54% { transform: translate(205px, 112px) scale(.85); } 58%, 80% { transform: translate(205px, 112px); opacity: 1; } 90%, 100% { transform: translate(280px, 170px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .kmdzh-presets .ph { opacity: 0 !important; } }
