/* ============================================================
   Tyasayoga — public booking UI (plugin shortcodes)
   Self-contained: defines its own brand tokens so the booking
   board renders correctly under any theme. Floating elements
   (modal, selection bar) use tyasa- prefixed classes to avoid
   collisions with the active theme.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&family=Barlow+Semi+Condensed:wght@500;600;700&family=Caveat:wght@500;600;700&display=swap');

.tyasa-app, .tyasa-preview, .tyasa-scrim, .tyasa-selbar {
  --bg:#F6F1E8; --surface:#FFFFFF; --surface-2:#EFE7D9;
  --accent:#E6704C; --accent-deep:#CC5B39;
  --accent-2:#91C256; --accent-2-deep:#6FA13A;
  --ink:#3D2F45; --ink-soft:#6E6173; --ink-faint:#A199A7;
  --line:rgba(61,47,69,0.14); --line-soft:rgba(61,47,69,0.07);
  --font-sans:'Barlow',system-ui,sans-serif;
  --font-head:'Barlow Semi Condensed','Barlow',system-ui,sans-serif;
  --font-script:'Caveat',cursive;
  --radius:16px;
  --shadow-soft:0 22px 60px -34px rgba(62,46,33,0.45);
  --shadow-card:0 14px 40px -28px rgba(62,46,33,0.4);
}

.tyasa-app, .tyasa-preview { font-family:var(--font-sans); color:var(--ink); line-height:1.6; }
.tyasa-app *, .tyasa-preview *, .tyasa-scrim *, .tyasa-selbar * { box-sizing:border-box; }
.tyasa-app h2, .tyasa-preview h2 { font-family:var(--font-head); font-weight:600; line-height:1.05; letter-spacing:-0.01em; margin:0; color:var(--ink); }

.tyasa-loading { padding:40px; text-align:center; color:var(--ink-faint); }

/* ---- buttons ---- */
.tyasa-app .btn, .tyasa-preview .btn, .tyasa-scrim .btn, .tyasa-selbar .btn {
  display:inline-flex; align-items:center; gap:.55em; font-family:var(--font-sans);
  font-size:.95rem; font-weight:600; padding:.92em 1.6em; border-radius:999px;
  border:1.5px solid transparent; cursor:pointer; transition:transform .25s, background .25s, color .25s, border-color .25s; white-space:nowrap;
}
.tyasa-app .btn--primary, .tyasa-preview .btn--primary, .tyasa-scrim .btn--primary, .tyasa-selbar .btn--primary { background:var(--accent); color:#fff; box-shadow:0 12px 30px -16px var(--accent-deep); }
.tyasa-app .btn--primary:hover, .tyasa-preview .btn--primary:hover, .tyasa-scrim .btn--primary:hover, .tyasa-selbar .btn--primary:hover { background:var(--accent-deep); transform:translateY(-2px); }
.tyasa-app .btn--ghost, .tyasa-scrim .btn--ghost { background:transparent; color:var(--ink); border-color:var(--line); }
.tyasa-app .btn--ghost:hover, .tyasa-scrim .btn--ghost:hover { border-color:var(--ink); transform:translateY(-2px); }
.tyasa-scrim .btn--green { background:var(--accent-2); color:#fff; box-shadow:0 12px 30px -16px var(--accent-2-deep); }
.tyasa-scrim .btn--green:hover { background:var(--accent-2-deep); transform:translateY(-2px); }
.btn--sm { padding:.55em 1em !important; font-size:.85rem !important; }
.tyasa-app .arrow, .tyasa-preview .arrow { transition:transform .25s; }
.tyasa-app .btn:hover .arrow, .tyasa-preview .btn:hover .arrow { transform:translateX(3px); }

/* ---- intro ---- */
.tyasa-intro { padding:8px 0; }
.tyasa-intro .eyebrow { display:inline-block; margin-bottom:8px; font-family:var(--font-script); font-size:1.6rem; line-height:1; color:var(--accent); font-weight:500; }
.tyasa-intro h2 { font-size:clamp(1.8rem,4vw,2.6rem); }
.tyasa-intro p { margin-top:.9rem; color:var(--ink-soft); font-size:1.05rem; max-width:56ch; }

/* ---- week navigation ---- */
.tyasa-app .weekbar { display:flex; align-items:center; gap:16px; margin:28px 0 18px; flex-wrap:wrap; }
.tyasa-app .weekbar .range { font-family:var(--font-head); font-weight:600; font-size:1.25rem; }
.tyasa-app .nav-btns { display:flex; gap:8px; }
.tyasa-app .iconbtn { width:42px; height:42px; border-radius:50%; border:1.5px solid var(--line); background:var(--surface); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:var(--ink); transition:all .2s; }
.tyasa-app .iconbtn:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-1px); }
.tyasa-app .iconbtn svg { width:18px; height:18px; }
.tyasa-app .legend, .tyasa-preview .sched-legend { display:flex; flex-wrap:wrap; gap:8px 16px; margin-left:auto; }
.tyasa-app .legend .lg, .tyasa-preview .sched-legend .lg { display:flex; align-items:center; gap:7px; font-size:.82rem; color:var(--ink-soft); }
.tyasa-app .legend .dot, .tyasa-preview .sched-legend .dot { width:11px; height:11px; border-radius:4px; }
.tyasa-preview .sched-legend { margin:0 0 16px; }

/* ---- board ---- */
.tyasa-app .board, .tyasa-preview .sched-board { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-card); }
.tyasa-app .board-grid, .tyasa-preview .sched-days { display:grid; grid-template-columns:repeat(7,1fr); }
.tyasa-app .col, .tyasa-preview .sched-col { border-right:1px solid var(--line-soft); min-height:260px; }
.tyasa-app .col:last-child, .tyasa-preview .sched-col:last-child { border-right:0; }
.tyasa-app .col.is-today { background:color-mix(in oklab,var(--accent) 5%,transparent); }
.tyasa-app .col .dh, .tyasa-preview .day-head { padding:14px 14px 12px; border-bottom:1px solid var(--line-soft); }
.tyasa-app .col .dh .dn, .tyasa-preview .day-name { font-family:var(--font-head); font-weight:600; font-size:1.02rem; }
.tyasa-app .col .dh .dd, .tyasa-preview .day-date { font-size:.78rem; color:var(--ink-faint); margin-top:2px; }
.tyasa-app .col.is-today .dh .dn { color:var(--accent); }
.tyasa-app .col .slots, .tyasa-preview .slots { padding:12px; display:flex; flex-direction:column; gap:10px; }
.tyasa-app .col .empty { padding:18px 12px; font-size:.8rem; color:var(--ink-faint); text-align:center; }

.tyasa-app .cls, .tyasa-preview .cls {
  text-align:left; border:0; border-left:3px solid var(--c,var(--accent));
  background:var(--bg); border-radius:10px; padding:11px 13px;
  cursor:pointer; transition:transform .18s, box-shadow .18s; font-family:inherit; width:100%; display:block; position:relative;
}
.tyasa-app .cls:hover, .tyasa-preview .cls:hover { transform:translateY(-2px); box-shadow:var(--shadow-card); }
.tyasa-app .cls .t, .tyasa-preview .cls .t { font-size:.82rem; font-weight:600; color:var(--ink); letter-spacing:.02em; }
.tyasa-app .cls .n, .tyasa-preview .cls .n { font-size:.95rem; font-weight:600; margin-top:3px; font-family:var(--font-head); }
.tyasa-app .cls .who, .tyasa-preview .cls .who { font-size:.78rem; color:var(--ink-soft); margin-top:2px; }
.tyasa-app .cls .bar { height:5px; border-radius:3px; background:color-mix(in oklab,var(--ink) 10%,transparent); margin-top:9px; overflow:hidden; }
.tyasa-app .cls .bar i { display:block; height:100%; background:var(--c,var(--accent)); border-radius:3px; }
.tyasa-app .cls .free, .tyasa-preview .cls .free { font-size:.74rem; margin-top:6px; font-weight:600; color:var(--accent-2-deep); }
.tyasa-app .cls.full, .tyasa-preview .cls.full { opacity:.55; cursor:not-allowed; }
.tyasa-app .cls.full .free, .tyasa-preview .cls.full .free { color:var(--ink-faint); }
.tyasa-app .cls.sel { outline:2px solid var(--c,var(--accent)); outline-offset:1px; background:color-mix(in oklab,var(--c,var(--accent)) 9%,var(--bg)); }
.tyasa-app .cls .pick { position:absolute; top:8px; right:8px; width:22px; height:22px; border-radius:50%; background:var(--c,var(--accent)); color:#fff; display:none; align-items:center; justify-content:center; }
.tyasa-app .cls .pick svg { width:13px; height:13px; }
.tyasa-app .cls.sel .pick { display:flex; }

/* ---- preview cta ---- */
.tyasa-preview .sched-cta { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-top:18px; }
.tyasa-preview .sched-note { color:var(--ink-soft); font-size:.92rem; }

/* ---- selection bar (floating, appended to body) ---- */
.tyasa-selbar { position:fixed; left:50%; bottom:22px; transform:translate(-50%,140%); z-index:9000; display:flex; align-items:center; gap:18px; background:var(--ink); color:#fff; border-radius:999px; padding:12px 14px 12px 24px; box-shadow:0 20px 50px -20px rgba(40,30,46,.7); transition:transform .32s cubic-bezier(.22,.61,.36,1); max-width:calc(100vw - 32px); font-family:var(--font-sans); }
.tyasa-selbar.show { transform:translate(-50%,0); }
.tyasa-selbar .info { display:flex; flex-direction:column; line-height:1.2; }
.tyasa-selbar .info .c { font-weight:600; font-size:.98rem; }
.tyasa-selbar .info .t { font-size:.82rem; color:#C9BFD0; }
.tyasa-selbar .clear { background:none; border:0; color:#C9BFD0; cursor:pointer; font-family:inherit; font-size:.86rem; padding:6px 8px; }
.tyasa-selbar .clear:hover { color:#fff; }

/* ---- modal / sheet (floating) ---- */
.tyasa-scrim { position:fixed; inset:0; background:rgba(40,30,46,.46); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; pointer-events:none; transition:opacity .25s; z-index:9100; font-family:var(--font-sans); color:var(--ink); }
.tyasa-scrim.open { opacity:1; pointer-events:auto; }
.tyasa-sheet { background:var(--surface); border-radius:20px; width:100%; max-width:560px; max-height:90vh; overflow-y:auto; padding:30px 32px 32px; box-shadow:var(--shadow-soft); transform:translateY(14px) scale(.98); transition:transform .3s; position:relative; }
.tyasa-scrim.open .tyasa-sheet { transform:none; }
.tyasa-sheet .x { position:absolute; right:14px; top:14px; background:none; border:0; cursor:pointer; color:var(--ink-faint); padding:6px; border-radius:8px; }
.tyasa-sheet .x:hover { color:var(--ink); background:var(--bg); }
.tyasa-sheet .x svg { width:22px; height:22px; }
.tyasa-sheet .m-tag { display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--accent); padding:4px 11px; border-radius:999px; }
.tyasa-sheet h3 { font-family:var(--font-head); font-size:1.7rem; margin:14px 0 0; color:var(--ink); line-height:1.1; }
.tyasa-sheet .sub { color:var(--ink-soft); margin-top:4px; }

/* review list */
.tyasa-sheet .rev-list { display:flex; flex-direction:column; gap:10px; margin:16px 0 20px; }
.tyasa-sheet .rev-item { display:flex; align-items:center; gap:12px; background:var(--bg); border-radius:10px; padding:12px 14px; border-left:3px solid var(--c,var(--accent)); }
.tyasa-sheet .ri-main { flex:1; min-width:0; }
.tyasa-sheet .ri-when { font-size:.8rem; color:var(--ink-soft); }
.tyasa-sheet .ri-name { font-weight:600; font-family:var(--font-head); margin-top:1px; }
.tyasa-sheet .ri-price { font-weight:600; white-space:nowrap; }
.tyasa-sheet .ri-x { background:none; border:0; cursor:pointer; color:var(--ink-faint); padding:5px; border-radius:7px; flex:none; }
.tyasa-sheet .ri-x:hover { color:#C0392B; background:color-mix(in oklab,#C0392B 12%,transparent); }
.tyasa-sheet .ri-x svg { width:18px; height:18px; }
.tyasa-sheet .rev-total { display:flex; justify-content:space-between; align-items:baseline; padding-top:14px; border-top:1px solid var(--line); margin-bottom:6px; }
.tyasa-sheet .rt-l { color:var(--ink-soft); }
.tyasa-sheet .rt-v { font-family:var(--font-head); font-weight:600; font-size:1.5rem; color:var(--accent); }
.tyasa-sheet .pay-items { list-style:none; margin:4px 0 0; padding:0; }
.tyasa-sheet .pay-items li { display:flex; justify-content:space-between; gap:12px; font-size:.9rem; padding:5px 0; border-bottom:1px dashed var(--line-soft); }
.tyasa-sheet .pay-items li:last-child { border-bottom:0; }
.tyasa-sheet .pay-items .pi-when { color:var(--ink-faint); }

/* forms */
.tyasa-sheet .field { margin-bottom:14px; }
.tyasa-sheet .field label { display:block; font-size:.82rem; font-weight:600; color:var(--ink); margin-bottom:6px; }
.tyasa-sheet .field input, .tyasa-sheet .field textarea { width:100%; font-family:inherit; font-size:.96rem; color:var(--ink); background:var(--bg); border:1.5px solid var(--line); border-radius:10px; padding:.7em .85em; }
.tyasa-sheet .field input:focus, .tyasa-sheet .field textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 18%,transparent); }
.tyasa-sheet .field-row { display:flex; gap:12px; }
.tyasa-sheet .field-row .field { flex:1; }
.tyasa-sheet .actions { display:flex; gap:12px; margin-top:8px; }
.tyasa-sheet .actions .btn { flex:1; justify-content:center; }

/* QR payment */
.tyasa-sheet .pay { text-align:center; }
.tyasa-sheet .pay .ok { width:58px; height:58px; margin:0 auto 14px; border-radius:50%; background:color-mix(in oklab,var(--accent-2) 20%,transparent); display:flex; align-items:center; justify-content:center; color:var(--accent-2-deep); }
.tyasa-sheet .pay .ok svg { width:28px; height:28px; }
.tyasa-sheet .qr-box { display:flex; gap:22px; align-items:center; margin:20px 0; text-align:left; }
.tyasa-sheet .qr-img { background:#fff; border:1px solid var(--line); border-radius:14px; padding:10px; flex:none; }
.tyasa-sheet .qr-img svg { display:block; }
.tyasa-sheet .qr-fallback { width:200px; height:200px; display:flex; align-items:center; justify-content:center; font-size:.72rem; color:var(--ink-faint); text-align:center; padding:10px; }
.tyasa-sheet .pay-details { font-size:.9rem; flex:1; }
.tyasa-sheet .pay-details .pd { display:flex; justify-content:space-between; gap:14px; padding:6px 0; border-bottom:1px dashed var(--line-soft); }
.tyasa-sheet .pay-details .pd:last-child { border-bottom:0; }
.tyasa-sheet .pay-details .pd .k { color:var(--ink-faint); }
.tyasa-sheet .pay-details .pd .v { font-weight:600; color:var(--ink); text-align:right; }
.tyasa-sheet .pay-details .pd .v.big { color:var(--accent); font-size:1.1rem; }
.tyasa-sheet .pay-note { font-size:.84rem; color:var(--ink-soft); background:var(--bg); border-radius:10px; padding:12px 14px; margin-top:4px; }

@media (max-width:520px){ .tyasa-sheet .qr-box { flex-direction:column; align-items:stretch; } .tyasa-sheet .qr-img { align-self:center; } }

/* ---- lookup / my reservations ---- */
.tyasa-app .lookup { margin-top:40px; }
.tyasa-app .tyasa-lookup-form { display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; align-items:stretch; }
.tyasa-app .tyasa-lookup-form input { flex:1 1 240px; font-family:inherit; font-size:.96rem; background:var(--surface); border:1.5px solid var(--line); border-radius:10px; padding:.7em .9em; color:var(--ink); }
.tyasa-app .tyasa-lookup-form button { flex:none; }
.tyasa-app .mybox { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:22px 24px; margin-top:16px; }
.tyasa-app .mybox .row { display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid var(--line-soft); flex-wrap:wrap; }
.tyasa-app .mybox .row:last-child { border-bottom:0; }
.tyasa-app .mybox .row .when { font-weight:600; min-width:120px; }
.tyasa-app .mybox .row .st { margin-left:auto; }
.tyasa-app .linkbtn { background:none; border:0; cursor:pointer; font-family:inherit; font-size:.86rem; font-weight:600; color:var(--ink-faint); padding:5px 8px; border-radius:7px; }
.tyasa-app .linkbtn:hover { background:var(--bg); color:var(--ink); }

/* ---- status pills ---- */
.tyasa-app .pill { font-size:.72rem; font-weight:700; letter-spacing:.04em; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.tyasa-app .pill.paid { background:color-mix(in oklab,var(--accent-2) 20%,transparent); color:var(--accent-2-deep); }
.tyasa-app .pill.pending { background:color-mix(in oklab,#E0A93B 24%,transparent); color:#9A6B12; }
.tyasa-app .pill.cancelled { background:color-mix(in oklab,var(--ink) 12%,transparent); color:var(--ink-faint); text-decoration:line-through; }

/* ---- responsive board ---- */
@media (max-width:860px){
  .tyasa-app .board-grid, .tyasa-preview .sched-days { grid-template-columns:1fr; }
  .tyasa-app .col, .tyasa-preview .sched-col { border-right:0; border-bottom:1px solid var(--line-soft); min-height:0; }
  .tyasa-app .col .slots, .tyasa-preview .slots { flex-direction:row; flex-wrap:wrap; }
  .tyasa-app .cls, .tyasa-preview .cls { flex:1 1 200px; }
}

/* ============================================================
   Contact form ([tyasa_kontakt]) + booking-page lookup grid
   Self-contained tokens so it works standalone under any theme.
   ============================================================ */
.tyasa-contact {
  --bg:#F6F1E8; --surface:#FFFFFF; --surface-2:#EFE7D9;
  --accent:#E6704C; --accent-deep:#CC5B39;
  --accent-2:#91C256; --accent-2-deep:#6FA13A;
  --ink:#3D2F45; --ink-soft:#6E6173; --ink-faint:#A199A7;
  --line:rgba(61,47,69,0.14); --line-soft:rgba(61,47,69,0.07);
  --font-sans:'Barlow',system-ui,sans-serif;
  --font-head:'Barlow Semi Condensed','Barlow',system-ui,sans-serif;
  --font-script:'Caveat',cursive;
  --radius:16px;
  font-family:var(--font-sans); color:var(--ink); line-height:1.6;
}
.tyasa-contact * { box-sizing:border-box; }
.tyasa-contact .tyasa-intro h2 { font-family:var(--font-head); font-weight:600; line-height:1.05; letter-spacing:-0.01em; margin:0; color:var(--ink); }
.tyasa-contact .tyasa-intro .eyebrow { display:inline-block; margin-bottom:8px; font-family:var(--font-script); font-size:1.6rem; line-height:1; color:var(--accent); font-weight:500; }
.tyasa-contact .tyasa-intro p { margin-top:.9rem; color:var(--ink-soft); font-size:1.05rem; }

.tyasa-contact-form { margin-top:18px; }
.tyasa-contact .tyasa-field-row { display:flex; gap:14px; }
.tyasa-contact .tyasa-field-row .tyasa-field { flex:1; }
.tyasa-contact .tyasa-field { display:block; margin-bottom:14px; }
.tyasa-contact .tyasa-field > span { display:block; font-size:.84rem; font-weight:600; color:var(--ink); margin-bottom:6px; }
.tyasa-contact .tyasa-field em { color:var(--ink-faint); font-style:normal; font-weight:500; }
.tyasa-contact .tyasa-field input,
.tyasa-contact .tyasa-field textarea {
  width:100%; font-family:inherit; font-size:1rem; color:var(--ink); background:var(--surface);
  border:1.5px solid var(--line); border-radius:12px; padding:.75em .9em; transition:border-color .2s, box-shadow .2s;
}
.tyasa-contact .tyasa-field textarea { resize:vertical; min-height:110px; }
.tyasa-contact .tyasa-field input:focus,
.tyasa-contact .tyasa-field textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 18%,transparent); }
.tyasa-contact .tyasa-consent { display:flex; align-items:flex-start; gap:10px; font-size:.88rem; color:var(--ink-soft); margin:4px 0 16px; cursor:pointer; }
.tyasa-contact .tyasa-consent input { margin-top:3px; width:17px; height:17px; accent-color:var(--accent); flex:none; }
.tyasa-hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; pointer-events:none; }
.tyasa-contact .tyasa-form-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.tyasa-contact .tyasa-form-msg { font-size:.9rem; font-weight:600; }
.tyasa-contact .tyasa-form-msg.ok { color:var(--accent-2-deep); }
.tyasa-contact .tyasa-form-msg.err { color:#C0392B; }

/* booking page: "moje rezervace" + contact form side by side */
.tyasa-app .lookup-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,56px); margin-top:44px; align-items:start; }
.tyasa-app .lookup-grid .lookup { margin-top:0; }
@media (max-width:860px){ .tyasa-app .lookup-grid { grid-template-columns:1fr; gap:36px; } }

/* booking consent checkbox (terms + GDPR) */
.tyasa-sheet .ty-consent { display:flex; align-items:flex-start; gap:10px; font-size:.86rem; color:var(--ink-soft); margin:8px 0 16px; cursor:pointer; line-height:1.45; }
.tyasa-sheet .ty-consent input { margin-top:3px; width:17px; height:17px; accent-color:var(--accent); flex:none; }
.tyasa-sheet .ty-consent a { color:var(--accent-deep); text-decoration:underline; text-underline-offset:2px; }
.tyasa-sheet .ty-consent.err, .tyasa-sheet .ty-consent.err a { color:#C0392B; }

/* contact consent link → GDPR */
.tyasa-contact .tyasa-consent a { color:var(--accent-deep); text-decoration:underline; text-underline-offset:2px; }
.tyasa-contact .tyasa-consent a:hover { color:var(--accent); }

/* ---- drop-in price tiers (booking review) ---- */
.tyasa-sheet .tier-pick { margin:14px 0 4px; }
.tyasa-sheet .tier-lbl { display:block; font-size:.82rem; font-weight:600; color:var(--ink-soft); margin-bottom:6px; }
.tyasa-sheet .tier-opts { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.tyasa-sheet .tier-opt { display:flex; flex-direction:column; gap:2px; align-items:flex-start; padding:10px 12px; border:1.5px solid var(--line); border-radius:12px; background:var(--surface); cursor:pointer; font-family:inherit; text-align:left; transition:all .15s; }
.tyasa-sheet .tier-opt .to-l { font-weight:600; color:var(--ink); font-size:.9rem; }
.tyasa-sheet .tier-opt .to-s { font-size:.82rem; color:var(--ink-soft); }
.tyasa-sheet .tier-opt.on { border-color:var(--accent); background:color-mix(in oklab,var(--accent) 8%,var(--surface)); box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 14%,transparent); }
.tyasa-sheet .tier-opt.dis { opacity:.45; cursor:not-allowed; }
.tyasa-sheet .tier-note { font-size:.8rem; color:var(--ink-soft); margin-top:6px; }

/* ---- permanentka cards (booking page) ---- */
.tyasa-pass { margin:34px 0 8px; }
.pass-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; margin-top:16px; }
.pass-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:20px; box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.pass-card .pc-lessons { font-family:var(--font-head); font-size:2rem; font-weight:700; color:var(--accent); line-height:1; }
.pass-card .pc-label { font-weight:600; color:var(--ink); }
.pass-card .pc-price { font-size:1.1rem; color:var(--ink); margin-bottom:8px; }

/* ---- my reservations: pass balance banner ---- */
.my-pass { display:flex; align-items:center; gap:10px; background:color-mix(in oklab,var(--accent-2) 12%,var(--surface)); border:1px solid color-mix(in oklab,var(--accent-2) 30%,transparent); border-radius:12px; padding:12px 14px; margin-bottom:12px; color:var(--ink); font-size:.95rem; }
.my-pass .mp-badge { flex:none; font-weight:700; background:var(--accent-2); color:#fff; border-radius:999px; padding:2px 10px; font-size:.85rem; }

/* my reservations: sections + flash message */
.tyasa-app .my-sec { margin-top:14px; }
.tyasa-app .my-sec h4 { font-family:var(--font-head); font-size:1rem; font-weight:600; color:var(--ink); margin:0 0 6px; }
.tyasa-app .my-flash { background:#EEF6E6; border:1px solid color-mix(in oklab,var(--accent-2) 34%,transparent); color:var(--ink); border-radius:12px; padding:12px 14px; margin-bottom:12px; font-size:.95rem; }
