/* SPACE — style panelu (uzupełnienie assets/style.css) */
.login-stage{min-height:calc(100vh - 30px); display:grid; place-items:center; padding:2rem 1rem;
  background:
    radial-gradient(1.5px 1.5px at 15% 25%, rgba(244,246,250,.6), transparent 100%),
    radial-gradient(1px 1px at 75% 60%, rgba(244,246,250,.4), transparent 100%),
    radial-gradient(1.5px 1.5px at 60% 20%, rgba(244,246,250,.5), transparent 100%),
    radial-gradient(ellipse 55% 45% at 70% 5%, rgba(167,88,219,.12), transparent 70%),
    var(--space);}
.login-box{width:min(400px,94vw); background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:2.2rem 2.4rem;}
.login-sub{color:var(--muted); font-size:.85rem; text-align:center; margin-bottom:1.4rem; line-height:1.5;}
.login-foot{text-align:center; margin-top:1.2rem; font-size:.8rem;}
.login-foot a{color:var(--muted); text-decoration:none;}
.login-foot a:hover{color:var(--white);}
.form-err{background:color-mix(in srgb,var(--danger) 14%,transparent); border:1px solid color-mix(in srgb,var(--danger) 40%,var(--line)); color:var(--danger-soft); border-radius:8px; padding:.6rem .9rem; font-size:.85rem; margin-bottom:1rem;}

.fld{display:block; margin-bottom:.9rem;}
.fld span{display:block; font-family:var(--font-d); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:.35rem;}
.fld input,.fld select,.fld textarea{width:100%; background:var(--panel-2); border:1px solid var(--line); border-radius:6px; color:var(--white); padding:.6rem .8rem; font:inherit; font-size:.95rem;}
.fld textarea{resize:vertical;}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--red); outline-offset:1px; border-color:var(--red);}
.rodo{display:grid;grid-template-columns:1.25rem minmax(0,1fr);gap:.65rem;align-items:start;margin:.8rem 0;color:var(--muted);font-size:.82rem;line-height:1.55;cursor:pointer;}
.rodo input[type="checkbox"],.rodo input[type="radio"]{width:1.2rem;height:1.2rem;margin:.18rem 0 0;accent-color:var(--red);}
.rodo span{display:block;min-width:0;overflow-wrap:anywhere;}

.panel-brand{display:inline-flex;flex-direction:column;align-items:flex-start;max-width:190px;letter-spacing:0;text-transform:none;}
.panel-brand-logo{display:block;width:auto;height:38px;max-width:100%;object-fit:contain;object-position:left center;}
.panel-brand small{width:100%;margin-top:.18rem;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;}

.panel-main{padding:1.8rem 0 4rem;}
.ph{font-size:1.4rem; font-weight:400; letter-spacing:.1em; text-transform:uppercase; margin-bottom:.4rem;}
.psub{color:var(--muted); font-size:.9rem; max-width:75ch; margin-bottom:1.4rem;}
.flash{background:color-mix(in srgb,var(--ok) 12%,transparent); border:1px solid color-mix(in srgb,var(--ok) 35%,var(--line)); color:var(--ok); border-radius:8px; padding:.6rem .9rem; font-size:.88rem; margin-bottom:1rem;}
.flash.temp{background:color-mix(in srgb,var(--warn) 12%,transparent); border-color:color-mix(in srgb,var(--warn) 40%,var(--line)); color:var(--warn);}
.flash code{background:var(--panel-2); padding:.15rem .5rem; border-radius:4px; font-size:1rem; letter-spacing:.05em;}

.userchip{margin-left:auto; color:var(--muted); font-size:.8rem; white-space:nowrap;}
.top .btn-login{text-decoration:none;}
.panel-public-link{flex:none;padding:.48rem .7rem;border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line));border-radius:6px;color:var(--white);font-size:.75rem;text-decoration:none;white-space:nowrap;background:color-mix(in srgb,var(--ok) 7%,transparent);}
.panel-public-link:hover{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent);}
.panel-shop-link{flex:none;display:inline-flex;align-items:center;gap:.38rem;padding:.5rem .82rem;border:1px solid color-mix(in srgb,var(--red) 58%,var(--line));border-radius:7px;color:var(--white);font-family:var(--font-d);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;white-space:nowrap;background:color-mix(in srgb,var(--red) 18%,var(--panel));box-shadow:0 8px 22px rgba(167,88,219,.1);}
.panel-shop-link::before{content:'▣';color:var(--red-soft);font-size:.72rem;}
.panel-shop-link:hover,.panel-shop-link.here{border-color:var(--red);background:color-mix(in srgb,var(--red) 30%,var(--panel));box-shadow:0 10px 28px rgba(167,88,219,.18);}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

/* Sklep recepcji — katalog, wielopozycyjny koszyk i jedna płatność. */
.shop-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1.35rem;}
.shop-page-heading>div{min-width:0;}
.shop-page-heading>.btn{flex:none;text-decoration:none;}
.shop-empty{display:grid;gap:.35rem;}
.shop-empty p{margin:0;}
.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,350px);gap:1.15rem;align-items:start;min-width:0;}
.shop-catalog{min-width:0;}
.shop-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 .75rem;}
.shop-section-heading>div{min-width:0;}
.shop-section-heading span,.shop-cart-kicker{color:var(--red-soft);font-family:var(--font-d);font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;}
.shop-section-heading h2,.shop-cart-card h2{margin:.2rem 0 0;color:var(--white);font-size:1.25rem;line-height:1.2;}
.shop-section-heading>small{color:var(--dimmed);font-size:.72rem;white-space:nowrap;}
.shop-section-heading>small b{color:var(--white);font-variant-numeric:tabular-nums;}
.shop-search{display:grid;grid-template-columns:minmax(150px,.42fr) minmax(240px,1fr);gap:1rem;align-items:center;margin:0 0 .9rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:11px;background:linear-gradient(90deg,var(--panel),var(--panel-2));}
.shop-search>label{display:flex;min-width:0;flex-direction:column;gap:.12rem;}
.shop-search>label>span{color:var(--white);font-size:.82rem;font-weight:700;}
.shop-search>label>small{color:var(--dimmed);font-size:.66rem;}
.shop-search-field{position:relative;min-width:0;}
.shop-search-field input{width:100%;height:44px;padding:.65rem 3rem .65rem 2.45rem;border:1px solid var(--line);border-radius:9px;background:#11151e;color:var(--white);font:inherit;font-size:.86rem;}
.shop-search-field::before{content:'⌕';position:absolute;z-index:1;left:.85rem;top:50%;transform:translateY(-53%);color:var(--red-soft);font-size:1.2rem;pointer-events:none;}
.shop-search-field input:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red);}
.shop-search-field input::placeholder{color:var(--dimmed);}
.shop-search-field input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;}
.shop-search-field button{position:absolute;right:.45rem;top:50%;display:grid;width:32px;height:32px;padding:0;transform:translateY(-50%);place-items:center;border:0;border-radius:7px;background:var(--panel-3);color:var(--muted);font-size:1.1rem;cursor:pointer;}
.shop-search-field button:hover{background:color-mix(in srgb,var(--red) 15%,var(--panel-3));color:var(--white);}
.shop-no-results{display:flex;flex-direction:column;gap:.22rem;margin-top:.8rem;padding:1.1rem;border:1px dashed var(--line);border-radius:11px;background:var(--panel);}
.shop-no-results b{font-size:.88rem;}
.shop-no-results span{color:var(--muted);font-size:.74rem;}
.shop-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:.8rem;min-width:0;}
.shop-product-card{display:grid;grid-template-rows:auto minmax(84px,1fr) auto;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--panel);box-shadow:0 12px 34px rgba(0,0,0,.14);transition:border-color .16s,transform .16s,box-shadow .16s;}
.shop-product-card[hidden]{display:none;}
.shop-product-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--red) 34%,var(--line));}
.shop-product-card.has-items{border-color:color-mix(in srgb,var(--red) 72%,var(--line));box-shadow:0 14px 38px rgba(167,88,219,.12);}
.shop-product-image{display:grid;place-items:center;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(145deg,#171b26,#10131c);}
.shop-product-image img{display:block;width:100%;height:100%;object-fit:cover;}
.shop-product-image>span{color:color-mix(in srgb,var(--white) 28%,transparent);font-family:var(--font-d);font-size:.72rem;font-weight:800;letter-spacing:.28em;}
.shop-product-copy{display:flex;min-width:0;flex-direction:column;justify-content:space-between;gap:.55rem;padding:.85rem .9rem .65rem;}
.shop-product-copy h3{margin:0;color:var(--white);font-size:.95rem;line-height:1.35;overflow-wrap:anywhere;}
.shop-product-copy p{display:flex;flex-direction:column;gap:.08rem;margin:0;}
.shop-product-copy b{font-size:1.1rem;font-variant-numeric:tabular-nums;}
.shop-product-copy small{color:var(--dimmed);font-size:.65rem;}
.shop-quantity{display:grid;grid-template-columns:42px minmax(50px,1fr) 42px;gap:.35rem;align-items:center;padding:.7rem .75rem .8rem;border-top:1px solid var(--line);}
.shop-quantity label{min-width:0;}
.shop-quantity input{width:100%;height:42px;padding:.35rem;border:1px solid var(--line);border-radius:8px;background:#11151e;color:var(--white);font:700 .95rem var(--font-d);text-align:center;font-variant-numeric:tabular-nums;}
.shop-quantity input:focus{outline:2px solid var(--red);outline-offset:1px;border-color:var(--red);}
.shop-quantity-button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--white);font-size:1.2rem;line-height:1;cursor:pointer;}
.shop-quantity-button:hover{border-color:var(--red);background:color-mix(in srgb,var(--red) 14%,var(--panel-2));}
.shop-cart-card{position:sticky;top:118px;display:grid;min-width:0;gap:.7rem;padding:1.15rem;border:1px solid color-mix(in srgb,var(--red) 32%,var(--line));border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--red) 7%,var(--panel)),var(--panel));box-shadow:0 20px 48px rgba(0,0,0,.25);}
.shop-cart-empty{display:flex;flex-direction:column;gap:.18rem;padding:1rem;border:1px dashed var(--line);border-radius:9px;background:var(--panel-2);}
.shop-cart-empty[hidden],.shop-cart-items[hidden],.shop-no-results[hidden],.shop-search-field button[hidden]{display:none;}
.shop-cart-empty b{font-size:.85rem;}
.shop-cart-empty span{color:var(--muted);font-size:.74rem;}
.shop-cart-items{display:grid;gap:.45rem;margin:.15rem 0 0;padding:0;list-style:none;}
.shop-cart-items li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.68rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);}
.shop-cart-items li>span{display:flex;min-width:0;flex-direction:column;gap:.12rem;}
.shop-cart-items b{overflow:hidden;color:var(--white);font-size:.78rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;}
.shop-cart-items small{color:var(--dimmed);font-size:.65rem;}
.shop-cart-items li>strong{font-size:.78rem;font-variant-numeric:tabular-nums;white-space:nowrap;}
.shop-cart-quantity{grid-column:1/-1;display:grid;grid-template-columns:34px minmax(38px,1fr) 34px;gap:.35rem;align-items:center;padding-top:.45rem;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);}
.shop-cart-quantity button{display:grid;width:34px;height:32px;padding:0;place-items:center;border:1px solid var(--line);border-radius:7px;background:#11151e;color:var(--white);font-size:1rem;cursor:pointer;}
.shop-cart-quantity button:hover{border-color:var(--red);background:color-mix(in srgb,var(--red) 14%,#11151e);}
.shop-cart-quantity span{display:grid;height:32px;place-items:center;color:var(--white);font-family:var(--font-d);font-size:.76rem;font-weight:700;font-variant-numeric:tabular-nums;}
.shop-cart-total{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.18rem .75rem;align-items:end;margin-top:.15rem;padding:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.shop-cart-total>span{color:var(--muted);font-size:.76rem;}
.shop-cart-total>strong{grid-column:2;grid-row:1/-1;font-size:1.45rem;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap;}
.shop-cart-total>small{color:var(--dimmed);font-size:.65rem;}
.shop-payment-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;}
.shop-pay-button{min-width:0;width:100%;padding:.72rem .5rem;white-space:normal;}
.shop-pay-button:disabled{cursor:not-allowed;opacity:.38;filter:saturate(.3);}
.shop-cart-note{margin:.1rem 0 0;color:var(--dimmed);font-size:.67rem;line-height:1.5;}
@media(max-width:1050px){
  .shop-layout{grid-template-columns:minmax(0,1fr) 310px;}
  .shop-product-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
}
@media(max-width:820px){
  .shop-layout{grid-template-columns:1fr;}
  .shop-cart-card{position:static;}
  .shop-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .shop-page-heading{display:block;}
  .shop-page-heading>.btn{display:inline-flex;margin-top:.85rem;}
  .shop-product-grid{grid-template-columns:1fr;}
  .shop-product-card{grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto auto;}
  .shop-product-image{grid-row:1;aspect-ratio:auto;min-height:116px;}
  .shop-product-copy{grid-row:1;}
  .shop-quantity{grid-column:1/-1;grid-row:2;}
  .shop-search{grid-template-columns:1fr;gap:.55rem;}
  .shop-payment-actions{grid-template-columns:1fr;}
  .panel-shop-link{padding:.45rem .62rem;font-size:.66rem;}
}

.form-card{max-width:520px; padding:1.5rem 1.7rem;}
.form-card .btn{border:none;}
.addrow{display:grid; grid-template-columns:1.2fr 1fr .8fr auto; gap:.9rem; align-items:end;}
@media (max-width:800px){ .addrow{grid-template-columns:1fr;} }
.form-card.card{max-width:none;}
.card h3{margin-top:0;}

.tbl-card{padding:.4rem 0; overflow-x:auto;}
.ptbl{width:100%; border-collapse:collapse; font-size:.87rem; min-width:680px;}
.ptbl th{text-align:left; font-family:var(--font-d); font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dimmed); font-weight:600; padding:.7rem 1.1rem; border-bottom:1px solid var(--line);}
.ptbl td{padding:.6rem 1.1rem; border-bottom:1px solid var(--line); vertical-align:middle;}
.ptbl tr:last-child td{border-bottom:none;}
.ptbl tr.inactive{opacity:.5;}
.record-primary-link,.record-secondary-link{color:inherit;text-decoration:none;text-underline-offset:.18em;}
.record-secondary-link{color:var(--muted);}
.record-primary-link:focus-visible,.record-secondary-link:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:2px;}
[data-panel-href]{cursor:pointer;}
.ptbl tr[data-panel-href] td,.dayrow[data-panel-href],.qr-row[data-panel-href],
.course-signup-card[data-panel-href],.qsession-head[data-panel-href]{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease;}
.ptbl tr[data-panel-href]:hover td{background:color-mix(in srgb,var(--red) 7%,transparent);}
.dayrow[data-panel-href]:hover,.qr-row[data-panel-href]:hover,.course-signup-card[data-panel-href]:hover,
.qsession-head[data-panel-href]:hover{background:color-mix(in srgb,var(--red) 8%,var(--panel));border-color:color-mix(in srgb,var(--red) 42%,var(--line));}
[data-panel-href]:hover .record-primary-link{color:var(--red-soft);text-decoration:underline;}
[data-panel-href] :is(a,button,input,select,textarea,label,summary){cursor:auto;}
[data-panel-href] :is(a,button,label,summary){cursor:pointer;}
.ptbl .you{color:var(--red-soft); font-size:.75rem;}
.mono{font-family:Consolas,Menlo,monospace; font-size:.82rem; font-variant-numeric:tabular-nums;}
.acts{white-space:nowrap;}
.inline{display:inline-block; margin:0 .2rem 0 0;}
.inline select{background:var(--panel-2); border:1px solid var(--line); border-radius:5px; color:var(--white); padding:.35rem .5rem; font-size:.82rem;}
.btn.sm{padding:.4rem .8rem; font-size:.68rem;}
.btn.danger{border:1px solid color-mix(in srgb,var(--danger) 64%,var(--line));background:color-mix(in srgb,var(--danger) 9%,transparent);color:var(--danger-soft);}
.btn.danger:hover{background:color-mix(in srgb,var(--danger) 20%,transparent);border-color:var(--danger);}
button.btn{border:none;}

.dim{color:var(--muted); font-size:.85rem;}

.dayrow{display:flex; gap:1.1rem; align-items:center; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:.85rem 1.2rem; margin-bottom:.55rem; flex-wrap:wrap;}
.dayrow.slim{padding:.55rem 1rem;}
.dayrow .dt{font-family:var(--font-d); font-weight:600; min-width:96px;}
.dayrow .dn{flex:1; min-width:220px; font-size:.92rem; line-height:1.45;}
.dayrow .dim{color:var(--muted); font-size:.8rem; font-weight:400;}
.dayrow .pill{margin-left:auto;}

.soon-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.1rem;}
.soon-grid .card{padding:1.4rem 1.5rem;}
.soon-grid h3{font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--red-soft); font-weight:600; margin-bottom:.5rem;}
.soon-grid p{color:var(--muted); font-size:.88rem;}

/* obecność */
.attendance-search{display:flex; gap:.55rem; align-items:center; max-width:760px; margin-bottom:1rem;}
.attendance-search input[type="search"]{flex:1; min-width:180px; background:var(--panel); border:1px solid var(--line); border-radius:7px; color:var(--white); padding:.72rem 1rem;}
.attendance-search-results,.attendance-now{margin-bottom:1.2rem; padding:1rem 1.2rem;}
.attendance-search-results .ch,.attendance-now .ch{padding:.15rem 0 .7rem;}
.attendance-course-links{display:flex; flex-wrap:wrap; gap:.35rem .8rem; margin-top:.2rem;}
.attendance-course-links a,.attendance-back a{color:var(--red-soft); text-decoration:none;}
.attendance-date-nav{margin:1.1rem 0;}
.attendance-session{border-left:4px solid var(--line);}
.attendance-session--now{border-left-color:var(--ok); box-shadow:0 0 0 1px color-mix(in srgb,var(--ok) 18%,transparent);}
.attendance-session--next{border-left-color:var(--warn);}
.attendance-session--done{opacity:.68;}
.attendance-now-empty{margin-bottom:.7rem;}
.attendance-day,.attendance-roster{margin-top:1.2rem;}
.attendance-upcoming{margin-top:.7rem;}
.attendance-back{margin-bottom:.6rem;}
.attendance-warning{color:var(--warn);}
.attendance-summary{display:flex; flex-wrap:wrap; gap:.45rem; margin:.5rem 0 1rem;}
.attendance-roster-filters{margin-bottom:.8rem;}
.attendance-present td{background:color-mix(in srgb,var(--ok) 5%,transparent);}
.attendance-client-note{color:var(--warn); font-size:.76rem;}
.attendance-actions{white-space:normal; min-width:180px;}
.pill.warn{background:color-mix(in srgb,var(--warn) 14%,transparent); color:var(--warn);}
.attendance-dialog{width:min(560px,92vw); max-height:88vh; overflow:auto; padding:1.3rem 1.4rem; color:var(--white); background:var(--panel); border:1px solid var(--line); border-radius:12px; box-shadow:0 24px 80px rgba(0,0,0,.7);}
.attendance-dialog::backdrop{background:rgba(5,7,12,.78); backdrop-filter:blur(3px);}
.attendance-dialog-head{display:flex; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:.8rem;}
.attendance-dialog-head h3{color:var(--red-soft); font-size:.9rem; letter-spacing:.12em; text-transform:uppercase;}
.attendance-dialog p{color:var(--muted); margin-bottom:.8rem;}
.course-list-link,.course-history-client{color:var(--white); text-decoration:none;}
.course-list-link:hover,.course-history-client:hover{color:var(--red-soft);}
.course-detail-heading{display:flex; justify-content:space-between; gap:1rem; align-items:flex-start;}
.course-detail-actions{display:flex; flex-wrap:wrap; gap:.5rem; justify-content:flex-end;}
.course-detail-meta{display:grid; grid-template-columns:2fr 1fr; gap:1.2rem; padding:1rem 1.2rem; margin:1rem 0;}
.course-detail-meta b{color:var(--white);}
.course-detail-meta ul{list-style:none; margin:.45rem 0 0; padding:0; color:var(--muted);}
.course-detail-meta li+li{margin-top:.25rem;}
.course-detail-meta p{margin-top:.5rem;}
.course-detail-summary{margin-top:.8rem;}
.course-detail-tabs{margin:.8rem 0;}
.course-detail-roster{margin-bottom:1.8rem;}
.course-history{scroll-margin-top:1rem;}
.course-history .ch{padding:.7rem 0 .35rem;}
.course-history-filters{display:grid; grid-template-columns:minmax(220px,2fr) 1fr 1fr auto auto; gap:.7rem; align-items:end; padding:1rem 1.2rem; margin:1rem 0;}
.course-history-filters .fld{margin:0;}
.course-history-count{margin:.7rem 0;}
.course-history-pages{justify-content:center; margin:1rem 0;}
.course-attendance-audit{margin-top:1.25rem;padding:0;overflow:hidden;}
.course-attendance-audit>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;list-style:none;}
.course-attendance-audit>summary::-webkit-details-marker{display:none;}
.course-attendance-audit>summary span,.course-attendance-audit>summary small{display:block;}
.course-attendance-audit>summary small{margin-top:.25rem;color:var(--muted);font-size:.78rem;}
.course-attendance-audit>summary em{color:var(--red-soft);font-size:.78rem;font-style:normal;}
.course-attendance-audit[open]>summary{border-bottom:1px solid var(--line);}
.course-attendance-audit-body{padding:1rem 1.1rem;}

/* sprzedaż, most drukarki i strefa klienta */
.sales-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1rem 0 1.4rem;}
.sales-status-card{padding:1.15rem 1.25rem;}
.sales-status-card h2{font-family:var(--font-d);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.65rem;}
.sales-status-card p{margin:.35rem 0;}
.sales-status-card code,.bridge-card code{overflow-wrap:anywhere;}
.bridge-card{padding:1.2rem;margin-bottom:1.4rem;}
.bridge-card>.tbl-card{margin-top:1rem;}
.bridge-create-form{grid-template-columns:minmax(240px,1fr) auto;max-width:650px;}
.sales-queue-summary{margin:1rem 0;}
.sales-table td{vertical-align:top;}
.invoice-dialog{width:min(620px,94vw);}
.account-link-chip{display:inline-flex;align-items:center;gap:.2rem;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:.15rem .35rem .15rem .55rem;margin:.15rem;font-size:.76rem;}
.account-list-filters{margin-bottom:1rem}
.account-list-filters>.addrow{grid-template-columns:minmax(220px,1.5fr) minmax(170px,.8fr) minmax(170px,.8fr) auto;align-items:end}
.account-list-filters .filter-actions{display:flex;gap:.5rem;align-items:center;padding-bottom:.02rem}
.account-list-filters .filter-actions .btn{white-space:nowrap}
.account-filter-count{margin:.3rem 0 0}
.account-email-form{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;min-width:260px;}
.account-email-form input{min-width:210px;flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--white);padding:.48rem .55rem;}
.link-remove{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;}
.link-remove:hover{color:var(--red-soft);}
.client-empty{padding:1.3rem;}
.client-portal-person{margin:1.4rem 0 2rem;}
.client-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem;margin:1rem 0;}
.client-course-card{padding:1.2rem;}
.client-course-card h3{color:var(--white);font-size:1rem;}
.client-course-card p{margin:.55rem 0;}
.client-pay-form{margin-top:1rem;}
.client-payment-history{margin-top:1rem;}

/* Klienci + rodziny: jedna, spójna ścieżka od konta do osoby, kursu i karnetu. */
.module-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1.1rem;}
.module-tabs a{display:inline-flex;align-items:center;min-height:2.35rem;padding:.5rem .9rem;border:1px solid var(--line);
  border-radius:999px;color:var(--muted);text-decoration:none;font-family:var(--font-d);font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;}
.module-tabs a:hover,.module-tabs a.on{color:var(--white);border-color:var(--red);background:color-mix(in srgb,var(--red) 12%,var(--panel));}
.form-help{color:var(--muted);font-size:.8rem;line-height:1.5;margin:.2rem 0 .9rem;}
.form-help a{color:var(--red-soft);}
.family-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.8rem;margin:1rem 0 1.3rem;}
.family-summary-grid .card{display:flex;flex-direction:column;justify-content:center;min-height:90px;padding:1rem 1.1rem;}
.family-summary-grid b{font-family:var(--font-d);font-size:1.35rem;color:var(--white);}
.family-summary-grid span{margin-top:.28rem;color:var(--muted);font-size:.75rem;line-height:1.35;}
.family-summary-grid .attention{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 6%,var(--panel));}
.family-summary-grid .attention b,.amount-due{color:var(--warn);}
.amount-ok{color:var(--ok);}
.family-create{margin:0 0 1.35rem;padding:1rem 1.2rem;}
.family-create>summary,.portal-add-child>summary,.family-add-child>summary,.client-add-dependent>summary,
.portal-course-signup>summary,.client-payment-history>summary{cursor:pointer;color:var(--red-soft);font-family:var(--font-d);
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;}
.family-create[open]>summary,.portal-add-child[open]>summary,.family-add-child[open]>summary,
.client-add-dependent[open]>summary,.portal-course-signup[open]>summary,.client-payment-history[open]>summary{margin-bottom:1rem;}
.family-parent-fields{display:grid;grid-template-columns:1.4fr 1.3fr 1fr;gap:.8rem;}
.child-row{display:grid;grid-template-columns:minmax(220px,2fr) auto;gap:.8rem;align-items:end;}
.child-row+.child-row{margin-top:.55rem;}
.family-search{display:flex;gap:.55rem;max-width:620px;margin:0 0 1rem;}
.family-search input{flex:1;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:7px;color:var(--white);padding:.7rem 1rem;}
.family-card{padding:1.2rem 1.35rem;margin:0 0 1rem;scroll-margin-top:1rem;}
.family-card.family-highlight{border-color:var(--ok);box-shadow:0 0 0 2px color-mix(in srgb,var(--ok) 18%,transparent);}
.family-card-head,.family-person-head,.portal-person-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.family-card-head h2,.family-person-head h3,.portal-person-head h2{margin:0;color:var(--white);}
.family-card-head h2{font-size:1.1rem;}
.family-card-head p{margin:.25rem 0;}
.family-card-head a,.family-no-course a,.client-family-link a,.client-account-cell{color:var(--red-soft);text-decoration:none;}
.family-card-head .acts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem;}
.family-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem;}
.family-money-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:1rem 0;}
.family-money-grid>div{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .8rem;
  background:var(--panel-2);border:1px solid var(--line);border-radius:7px;}
.family-money-grid span{color:var(--muted);font-size:.75rem;}
.family-money-grid b{font-family:var(--font-d);font-size:.85rem;}
.family-money-grid .due{border-color:var(--warn);}
.family-money-grid .due b,.portal-person-stats .due,.course-cost-row .due,.family-course-due b{color:var(--warn);}
.family-empty{padding:.8rem;color:var(--warn);border:1px dashed var(--warn);border-radius:7px;}
.family-people{display:grid;gap:.7rem;}
.family-person{padding:.85rem 1rem;background:color-mix(in srgb,var(--panel-2) 75%,transparent);border:1px solid var(--line);border-radius:8px;}
.family-person-head h3{font-size:.95rem;}
.family-person-head h3+span{display:block;color:var(--muted);font-size:.75rem;margin-top:.2rem;}
.family-no-course{display:flex;justify-content:space-between;gap:.7rem;align-items:center;color:var(--muted);font-size:.82rem;padding:.7rem 0 0;}
.family-course-list{display:grid;gap:.4rem;margin-top:.75rem;}
.family-course-row{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(170px,auto);gap:.7rem;align-items:center;
  padding:.6rem .7rem;background:var(--panel);border-radius:7px;}
.family-course-row>div:first-child span{display:block;color:var(--muted);font-size:.75rem;margin-top:.16rem;}
.family-course-due{text-align:right;font-size:.78rem;}
.family-course-due .paid{color:var(--ok);}
.family-add-child{margin-top:.85rem;padding-top:.8rem;border-top:1px solid var(--line);}
.family-add-child .addrow,.client-add-dependent .addrow{grid-template-columns:minmax(220px,2fr) auto;}
.family-add-child .fld,.client-add-dependent .fld{margin:0;}
.client-family-link{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem;
  background:var(--panel-2);border:1px solid var(--line);border-radius:8px;margin-bottom:.6rem;}
.client-family-link>div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;}
.client-family-link .acts{display:flex;flex-wrap:wrap;justify-content:flex-end;}
.family-account-missing{padding:1.05rem;background:color-mix(in srgb,var(--warn) 7%,var(--panel-2));border:1px solid color-mix(in srgb,var(--warn) 65%,var(--line));border-radius:10px;}
.family-account-missing p{color:var(--muted);font-size:.82rem;line-height:1.55;margin:.35rem 0 .8rem;}
.family-account-explainer{margin:0 0 .8rem;color:var(--muted);font-size:.8rem;line-height:1.55;}
.client-add-dependent{margin:.4rem 0 .8rem;}
.client-add-dependent>summary{display:grid!important;gap:.12rem;padding:.65rem .75rem!important;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);}
.client-add-dependent>summary strong{color:var(--white);font-size:.82rem;}.client-add-dependent>summary small{color:var(--muted);font-size:.7rem;font-weight:400;}
.family-account-guide{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.2rem;padding:1rem 1.1rem;border-color:color-mix(in srgb,var(--ok) 35%,var(--line));}
.family-account-guide>div{display:grid;gap:.25rem}.family-account-guide span{color:var(--muted);font-size:.8rem;line-height:1.5;}
.client-account-cell{display:flex;flex-direction:column;gap:.15rem;overflow-wrap:anywhere;}
.client-account-cell+.client-account-cell{margin-top:.35rem;}
.client-account-cell span{color:var(--muted);font-size:.72rem;}

/* Strefa rodzica. */
.portal-summary{grid-template-columns:repeat(4,minmax(0,1fr));}
.portal-family-onboarding{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:1.2rem 2rem;align-items:start;max-width:none;margin:1rem 0 1.6rem;padding:1.25rem 1.35rem;border-color:color-mix(in srgb,var(--red) 38%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--red) 7%,var(--panel)),var(--panel));}
.portal-family-onboarding-copy{display:grid;gap:.35rem}.portal-family-onboarding-copy .eyebrow{color:var(--red-soft);font-family:var(--font-d);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;}.portal-family-onboarding-copy h2{margin:0;color:var(--white);font-size:1.15rem;line-height:1.25;}.portal-family-onboarding-copy p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.6;}
.portal-add-child{max-width:none;margin:0;}
.portal-add-child>summary{display:grid!important;gap:.16rem;padding:.75rem .85rem!important;border:1px solid var(--red);border-radius:9px;background:color-mix(in srgb,var(--red) 9%,var(--panel-2));}
.portal-add-child>summary strong{color:var(--white);font-size:.86rem}.portal-add-child>summary small{color:var(--muted);font-size:.72rem;font-weight:400;}
.portal-add-child[open]>summary{margin-bottom:.8rem;}
.portal-add-child .addrow{grid-template-columns:minmax(220px,2fr) auto;}
.portal-add-child .fld{margin:0;}
.client-portal-person{padding:1.2rem 1.35rem;}
.portal-person-head{padding-bottom:.9rem;border-bottom:1px solid var(--line);}
.portal-person-export{display:flex;justify-content:flex-end;margin:.75rem 0 0;}
.portal-person-head h2{font-size:1.15rem;}
.portal-person-head h2+span{color:var(--muted);font-size:.75rem;}
.portal-person-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem;}
.portal-person-stats span{padding:.4rem .55rem;background:var(--panel-2);border-radius:6px;color:var(--muted);font-size:.75rem;}
.portal-person-stats b{color:var(--white);}
.portal-pending-list{margin:.9rem 0;padding:.8rem;background:color-mix(in srgb,var(--warn) 5%,var(--panel-2));border:1px solid var(--line);border-radius:8px;}
.portal-pending-list .ch{padding:0 0 .5rem;}
.portal-pending-row{display:grid;grid-template-columns:minmax(200px,1fr) auto auto;gap:.7rem;align-items:center;padding:.55rem 0;border-top:1px solid var(--line);}
.portal-pending-row:first-of-type{border-top:0;}
.portal-pending-row>div span{display:block;color:var(--muted);font-size:.75rem;}
.portal-course-signup{margin:.9rem 0;padding:.8rem;border:1px dashed var(--line);border-radius:8px;}
.course-cost-row{display:flex;justify-content:space-between;gap:.7rem;padding:.6rem 0;color:var(--muted);font-size:.8rem;border-top:1px solid var(--line);}
.client-course-card.portal-payment-focus{border-color:var(--red-soft);box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 25%,transparent);}
.portal-payment-callout{padding:.7rem .8rem;margin:.7rem 0;border-left:3px solid var(--red-soft);
  background:color-mix(in srgb,var(--red) 8%,var(--panel-2));color:var(--white);font-size:.82rem;}
.client-payment-history>summary{padding:.6rem 0;}

/* Przejścia między rodziną, rodzicem i dziećmi. */
.family-member-nav{display:flex;flex-wrap:wrap;align-items:stretch;gap:.45rem;margin:.8rem 0 1.15rem;padding:.65rem;
  border:1px solid var(--line);border-radius:9px;background:var(--panel);}
.family-back-link{display:inline-flex;align-items:center;padding:.45rem .7rem;color:var(--red-soft);text-decoration:none;font-size:.78rem;}
.family-person-chip{display:flex;flex-direction:column;justify-content:center;gap:.1rem;min-height:2.7rem;padding:.42rem .7rem;
  border:1px solid var(--line);border-radius:7px;background:var(--panel-2);color:var(--white);text-decoration:none;font-size:.8rem;}
.family-person-chip small{color:var(--muted);font-size:.65rem;}
.family-person-chip:hover,.family-person-chip.on{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--panel-2));}
.portal-family-nav{position:static;top:auto;z-index:auto;}
.client-portal-person{scroll-margin-top:5rem;}

/* Kartoteka klienta: najpierw bieżące kursy i rozliczenia, operacje administracyjne niżej. */
.client-card-shortcuts{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.35rem 0 .7rem;}
.client-card-shortcuts a{padding:.42rem .68rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);
  color:var(--muted);font-size:.72rem;text-decoration:none;}
.client-card-shortcuts a:hover{border-color:var(--red);color:var(--white);}
.client-card-shortcuts a:last-child{color:var(--red-soft);}
.client-quick-summary{display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(4,minmax(130px,1fr));gap:.65rem;margin-bottom:1rem;padding:0;}
.client-quick-summary>div{display:flex;flex-direction:column;gap:.14rem;min-height:88px;padding:.85rem 1rem;
  border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.client-quick-summary small{color:var(--muted);font-family:var(--font-d);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;}
.client-quick-summary strong{color:var(--white);font-family:var(--font-d);font-size:1rem;}
.client-quick-summary span{color:var(--muted);font-size:.72rem;overflow-wrap:anywhere;}
.client-quick-summary .ok strong{color:var(--ok);}
.client-quick-summary .warn strong{color:var(--warn);}
.client-summary-contact strong{font-family:var(--font-m);font-size:.82rem;}
.client-primary-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin:0 0 1rem;}
.client-primary-actions .btn{text-decoration:none;}
.client-action-note{color:var(--muted);font-size:.76rem;}
.client-record-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;}
.client-admin-column{display:contents;}
.client-activity-card{grid-column:1/-1;grid-row:1;scroll-margin-top:1rem;}
.client-data-card{grid-column:1;grid-row:2;scroll-margin-top:1rem;}
.client-family-card{grid-column:2;grid-row:2;margin:0;scroll-margin-top:1rem;}
.client-enroll-card{grid-column:1/-1;grid-row:3;margin:0;padding:0;overflow:hidden;scroll-margin-top:1rem;}
.client-enroll-card>summary{padding:1rem 1.2rem;cursor:pointer;list-style:none;color:var(--red-soft);font-family:var(--font-d);
  font-size:.8rem;letter-spacing:.08em;}
.client-enroll-card>summary::-webkit-details-marker{display:none;}
.client-enroll-card>summary::after{content:"Rozwiń formularz";float:right;color:var(--muted);font-family:var(--font-m);font-size:.68rem;letter-spacing:0;}
.client-enroll-card[open]>summary{border-bottom:1px solid var(--line);}
.client-enroll-card[open]>summary::after{content:"Zwiń formularz";}
.client-enroll-body{max-width:760px;padding:1rem 1.2rem 1.25rem;}
.client-activity-card>.ch{padding-bottom:.15rem;}
.client-activity-help{padding:0 1.1rem .55rem;margin:0;max-width:none;}
.client-enrollment-table{min-width:920px;}
.client-enrollment-links{display:flex;flex-wrap:wrap;gap:.35rem;min-width:230px;}
.client-pass-purchase{margin:.9rem 1.1rem 1.1rem;border:1px solid color-mix(in srgb,var(--red) 50%,var(--line));border-radius:10px;background:var(--panel-2);scroll-margin-top:1rem;}
.client-pass-purchase>summary{padding:.85rem 1rem;cursor:pointer;color:var(--red-soft);font-family:var(--font-d);font-size:.8rem;letter-spacing:.07em;}
.client-pass-purchase-form{padding:0 1rem 1rem;}
.client-pass-purchase-fields{grid-template-columns:minmax(220px,1.3fr) minmax(170px,.8fr) minmax(190px,.8fr);}
.client-pass-payment-fields{grid-template-columns:minmax(190px,.7fr) minmax(230px,1fr) auto;align-items:end;}
.client-pass-payment-fields .rodo{margin:0 0 .65rem;}
.client-family-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin:.75rem 0;}
.client-family-summary>div{display:flex;flex-direction:column;padding:.55rem .65rem;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;}
.client-family-summary small{color:var(--muted);font-size:.66rem;}
.client-family-summary b{color:var(--white);font-size:.86rem;}
.client-family-summary .due b{color:var(--warn);}
.client-enrollment-links .btn{text-decoration:none;}
.client-enrollment-state-action{width:1%;text-align:right;}
.client-pass-state{display:inline-flex;margin-top:.35rem;white-space:normal;line-height:1.35;}
.client-enrollment-history{border-top:1px solid var(--line);}
.client-enrollment-history>summary{padding:.8rem 1.1rem;cursor:pointer;color:var(--muted);font-size:.78rem;}
.client-enrollment-history[open]>summary{color:var(--white);}
#client-pass-history{scroll-margin-top:1rem;}

/* Zapis bez płatności / z płatnością i czytelna kalkulacja rabatu. */
.price-preview{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.65rem .8rem;margin-bottom:.7rem;
  border:1px solid var(--line);border-radius:7px;background:var(--panel-2);}
.price-preview span{display:flex;flex-direction:column;color:var(--muted);font-size:.72rem;}
.price-preview b,.price-preview strong{color:var(--white);font-family:var(--font-d);font-size:.9rem;}
.price-preview strong{color:var(--ok);}
.payment-box{padding:.75rem .8rem;margin:.7rem 0;border:1px dashed var(--line);border-radius:8px;background:var(--panel-2);}
.payment-box>b{display:block;margin-bottom:.45rem;font-size:.8rem;color:var(--white);}
.pass-admin-fields{grid-template-columns:repeat(4,minmax(0,1fr));}
.trial-choice{margin:.3rem 0 .75rem;}
.split-actions{display:flex;flex-wrap:wrap;gap:.55rem;}
.split-actions .btn{min-height:2.65rem;}
.split-actions .btn.sec{border:1px solid var(--line);padding:.65rem .9rem;}
.discount-note{color:var(--ok);font-size:.7rem;}
.discount-admin-row{grid-template-columns:minmax(220px,2fr) .7fr .7fr auto auto;align-items:end;}
.section-ph{font-size:1.25rem;margin-top:2rem;}

/* Rozwijana, niezmienna historia konkretnego karnetu. */
.pass-history-help{margin-top:-.35rem;}
.pass-history{display:grid;gap:.6rem;padding:0 .9rem 1rem;}
.pass-history-card{border:1px solid var(--line);border-radius:9px;background:var(--panel-2);overflow:hidden;}
.pass-history-card.ok{border-color:color-mix(in srgb,var(--ok) 55%,var(--line));}
.pass-history-card.warn{border-color:color-mix(in srgb,var(--warn) 60%,var(--line));}
.pass-history-card>summary{display:grid;grid-template-columns:minmax(160px,1.3fr) auto auto auto;gap:.75rem;align-items:center;
  padding:.8rem .9rem;cursor:pointer;list-style:none;}
.pass-history-card>summary::-webkit-details-marker{display:none;}
.pass-history-card>summary::after{content:"Rozwiń";color:var(--red-soft);font-size:.68rem;grid-column:1/-1;}
.pass-history-card[open]>summary::after{content:"Zwiń";}
.pass-history-title{display:flex;flex-direction:column;gap:.12rem;}
.pass-history-title small{color:var(--muted);}
.pass-history-period,.pass-history-usage{font-family:var(--font-m);font-size:.76rem;color:var(--muted);white-space:nowrap;}
.pass-history-body{padding:.85rem .9rem;border-top:1px solid var(--line);}
.pass-history-body h4{margin:.85rem 0 .45rem;font-size:.82rem;color:var(--white);}
.pass-history-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.45rem;}
.pass-history-facts span{display:flex;flex-direction:column;gap:.15rem;padding:.55rem;background:var(--panel);border-radius:6px;}
.pass-history-facts small{color:var(--muted);}
.pass-history-facts b{font-size:.75rem;}
.pass-entry-list{display:grid;gap:.35rem;}
.pass-entry-row{display:grid;grid-template-columns:90px minmax(120px,1fr) auto;gap:.6rem;align-items:center;padding:.5rem .6rem;
  background:var(--panel);border-radius:6px;font-size:.76rem;}
.pass-entry-row small{grid-column:2/-1;color:var(--muted);}
.empty-note{color:var(--muted);font-size:.8rem;}

/* Jedna płatność rodziny, osobne karnety i rozliczenia. */
.family-login-note{max-width:270px;color:var(--muted);font-size:.75rem;text-align:right;}
.family-bulk-payment{margin:.8rem 0 1rem;border:1px solid color-mix(in srgb,var(--warn) 55%,var(--line));border-radius:9px;background:var(--panel-2);}
.family-bulk-payment>summary{padding:.75rem .85rem;cursor:pointer;color:var(--white);font-family:var(--font-d);font-size:.78rem;}
.family-bulk-form{padding:0 .85rem .85rem;}
.family-bulk-items{display:grid;gap:.4rem;}
.family-bulk-item{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(170px,.8fr) auto;gap:.65rem;align-items:end;
  padding:.65rem;background:var(--panel);border-radius:7px;}
.family-bulk-item.not-selected{opacity:.48;}
.family-bulk-check{display:flex;align-items:center;gap:.55rem;min-height:2.4rem;}
.family-bulk-check span{display:flex;flex-direction:column;gap:.1rem;}
.family-bulk-check small{color:var(--muted);}
.family-bulk-item .fld{margin:0;}
.family-bulk-line-total{align-self:center;min-width:90px;text-align:right;color:var(--white);font-family:var(--font-m);font-size:.78rem;}
.family-bulk-footer{display:grid;grid-template-columns:1fr minmax(170px,.8fr) minmax(210px,1fr) auto;gap:.7rem;align-items:end;margin-top:.7rem;}
.family-bulk-footer .fld,.family-bulk-footer .rodo{margin:0;}
.family-bulk-sum{display:flex;flex-direction:column;color:var(--muted);font-size:.72rem;}
.family-bulk-sum strong{color:var(--ok);font-family:var(--font-d);font-size:1rem;}
.family-account-advanced{margin-top:.65rem;color:var(--muted);}
.family-account-advanced>summary{cursor:pointer;font-size:.72rem;}
.family-account-advanced .acts{display:flex;flex-wrap:wrap;gap:.4rem;}

/* Instruktorzy: portret i opis publikowany na stronie. */
.instructor-editor{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1rem;align-items:start;}
.instructor-photo-editor{aspect-ratio:3/4;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--panel-2);display:grid;place-items:center;}
.instructor-photo-editor img{width:100%;height:100%;object-fit:cover;object-position:center top;}
.instructor-photo-editor>span{font-family:var(--font-d);font-size:2.8rem;color:var(--muted);}
.instructor-photo-delete{margin:1rem 0 0 166px;}
.instructor-list-person{display:flex;align-items:center;gap:.55rem;}
.instructor-list-person img,.instructor-list-person>span{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:var(--panel-2);border:1px solid var(--line);}
.instructor-list-person>span{display:grid;place-items:center;font-family:var(--font-d);}

/* Grupy nawigacji (menu rozwijane) — mniej pozycji w jednym rzędzie, łatwiej znaleźć właściwą stronę. */
.top-inner{max-width:min(1320px,96vw); gap:1.25rem;}
.top nav.main{gap:1rem; flex-wrap:nowrap;}
.navgroup{position:relative; display:inline-block;}
.navgroup summary{list-style:none; cursor:pointer; color:var(--muted); padding:.3rem 0; user-select:none;}
.navgroup summary::-webkit-details-marker{display:none;}
.navgroup summary::after{content:" ▾"; font-size:.7em; vertical-align:.05em;}
.navgroup[open] summary::after{content:" ▴";}
.navgroup summary:hover{color:var(--white);}
.navgroup summary:focus-visible{outline:2px solid var(--red-soft); outline-offset:4px; border-radius:2px;}
.navgroup.here summary{color:var(--white); border-bottom:2px solid var(--red);}
.navdrop{position:absolute; top:100%; left:0; margin-top:.5rem; background:var(--panel); border:1px solid var(--line);
  border-radius:8px; padding:.4rem; display:flex; flex-direction:column; gap:.1rem; min-width:180px; z-index:60;
  box-shadow:0 10px 28px rgba(0,0,0,.4); text-transform:none; letter-spacing:normal;}
.navdrop a{padding:.5rem .65rem !important; border-radius:5px; white-space:nowrap;}
.navdrop a:hover{background:var(--panel-2);}
.navdrop a.here{border-bottom:none !important; background:var(--panel-2);}

/* Nawigacja panelu ma działać także na telefonie — poziome przewijanie zamiast ukrycia. */
@media (max-width:1100px){
  .top-inner{flex-wrap:wrap; gap:.65rem 1rem;}
  .top nav.main{display:flex; align-items:flex-start; order:3; width:100%; margin-left:0; flex-wrap:nowrap; overflow-x:auto; padding:.2rem 0 .35rem; scrollbar-width:thin;}
  .top nav.main a{flex:none;}
  .top nav.main .navgroup{flex:none;}
  .top nav.main .navgroup[open]{min-width:180px;}
  .top nav.main .navdrop{position:static; margin-top:.35rem; box-shadow:none;}
  .userchip{margin-left:auto;}
  .sales-status-grid{grid-template-columns:1fr;}
  .family-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .client-quick-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
  .family-course-row{grid-template-columns:minmax(200px,1fr) auto;}
  .family-course-due{grid-column:1/-1;text-align:left;}
}
@media (max-width:700px){
  .panel-main{padding-top:1.15rem;}
  .top-inner{padding:.65rem 0;}
  .userchip{display:none;}
  .panel-public-link{margin-left:auto;}
  .attendance-search{flex-wrap:wrap;}
  .attendance-search input[type="search"]{flex-basis:100%;}
  .attendance-dialog{padding:1rem;}
  .ptbl th,.ptbl td{padding:.55rem .75rem;}
  .course-detail-heading{display:block;}
  .course-detail-actions{justify-content:flex-start; margin-top:.7rem;}
  .course-detail-meta{grid-template-columns:1fr;}
  .course-history-filters{grid-template-columns:1fr 1fr;}
  .course-history-filters .fld:first-of-type{grid-column:1/-1;}
  .bridge-create-form{grid-template-columns:1fr;}
  .family-summary-grid,.portal-summary,.family-parent-fields,.family-money-grid{grid-template-columns:1fr 1fr;}
  .client-quick-summary{grid-template-columns:1fr 1fr;}
  .pass-admin-fields{grid-template-columns:1fr;}
  .client-record-layout{grid-template-columns:1fr;}
  .client-activity-card{grid-column:1;grid-row:1;}
  .client-data-card{grid-column:1;grid-row:2;}
  .client-family-card{grid-column:1;grid-row:3;}
  .client-enroll-card{grid-column:1;grid-row:4;}
  .client-enrollment-table{min-width:0;}
  .client-enrollment-table thead{display:none;}
  .client-enrollment-table tbody,.client-enrollment-table tr{display:block;}
  .client-enrollment-table tr{padding:.55rem .75rem;border-bottom:1px solid var(--line);}
  .client-enrollment-table tr:last-child{border-bottom:0;}
  .client-enrollment-table td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:.55rem;align-items:start;
    padding:.34rem 0;border:0;text-align:left;}
  .client-enrollment-table td::before{content:attr(data-label);color:var(--dimmed);font-family:var(--font-d);
    font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;}
  .client-enrollment-table td[colspan]{display:block;padding:.6rem 0;}
  .client-enrollment-table td[colspan]::before{content:none;}
  .client-enrollment-table .client-enrollment-links{display:grid;grid-template-columns:105px repeat(2,minmax(0,auto));
    justify-content:start;min-width:0;}
  .client-enrollment-table .client-enrollment-state-action{display:block;width:auto;padding-left:105px;text-align:left;}
  .family-card-head,.family-person-head,.portal-person-head,.client-family-link{display:block;}
  .family-card-head .acts,.client-family-link .acts,.portal-person-stats{justify-content:flex-start;margin-top:.7rem;}
  .family-add-child .addrow,.client-add-dependent .addrow,.portal-add-child .addrow,.child-row{grid-template-columns:1fr;}
  .family-person-head .btn{display:inline-block;margin-top:.6rem;}
  .family-course-row,.portal-pending-row{grid-template-columns:1fr;}
  .family-course-due{text-align:left;}
  .family-bulk-item,.family-bulk-footer,.discount-admin-row{grid-template-columns:1fr;}
  .family-account-guide,.portal-family-onboarding{display:grid;grid-template-columns:1fr;}
  .client-pass-purchase-fields,.client-pass-payment-fields{grid-template-columns:1fr;}
  .client-family-summary{grid-template-columns:1fr;}
  .instructor-editor{grid-template-columns:1fr;}
  .instructor-photo-editor{max-width:180px;}
  .instructor-photo-delete{margin-left:0;}
  .family-bulk-line-total{text-align:left;}
  .pass-history-card>summary{grid-template-columns:1fr auto;}
  .pass-history-period,.pass-history-usage{white-space:normal;}
  .pass-entry-row{grid-template-columns:80px 1fr;}
  .pass-entry-row .pill{justify-self:start;}
  .course-cost-row{display:block;}
  .course-cost-row span{display:block;margin-top:.25rem;}
}
@media (max-width:460px){
  .family-summary-grid,.portal-summary,.family-parent-fields,.family-money-grid{grid-template-columns:1fr;}
  .client-quick-summary{grid-template-columns:1fr;}
  .client-card-shortcuts{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem;}
  .client-card-shortcuts a{flex:none;}
  .family-search{flex-wrap:wrap;}
  .family-search input{flex-basis:100%;}
  .family-member-nav{flex-wrap:nowrap;overflow-x:auto;}
  .family-person-chip{flex:none;}
  .pass-history-card>summary{display:flex;flex-direction:column;align-items:flex-start;}
}

/* Obecność — grupowanie po salach + szybka lista uczestników */
.room-group{margin-bottom:1.6rem;}
.room-head{display:flex; align-items:center; gap:.55rem; font-size:1.02rem; letter-spacing:.05em; margin-bottom:.7rem; padding-bottom:.4rem; border-bottom:1px solid var(--line);}
.room-dot{width:.6rem; height:.6rem; border-radius:50%; background:var(--red); flex:none; box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 20%,transparent);}
.qsession{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:.9rem 1.1rem; margin-bottom:.7rem;}
.qsession--now{border-color:var(--ok);}
.qsession-head{display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-bottom:.55rem;}
.qsession-head .dt{font-weight:600; min-width:88px;}
.qsession-head .pill{margin-left:0;}
.qsession-head .btn.sec.sm{margin-left:auto;}
.qroster-empty{color:var(--muted); font-size:.85rem; margin:0;}
.qroster{display:flex; flex-direction:column; gap:.15rem;}
.qr-row{display:flex; align-items:center; gap:.7rem; padding:.4rem .2rem; border-top:1px solid color-mix(in srgb,var(--line) 60%,transparent);}
.qr-row:first-child{border-top:none;}
.qr-name{flex:1; min-width:0; font-size:.9rem; display:flex; align-items:center; gap:.5rem; overflow-wrap:anywhere;}
.qr-pass-state{display:flex;flex:0 1 310px;min-width:190px;flex-direction:column;gap:.08rem;padding:.3rem .55rem;
  border:1px solid var(--line);border-radius:6px;background:var(--panel-2);line-height:1.2;}
.qr-pass-state b{font-size:.75rem;color:var(--white);}
.qr-pass-state small{font-size:.66rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qr-pass-state.ok{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));}
.qr-pass-state.warn{border-color:color-mix(in srgb,var(--warn) 50%,var(--line));}
.qr-pass-state.mut{border-style:dashed;}
.qr-dot{width:.6rem; height:.6rem; border-radius:50%; flex:none; background:var(--dimmed);}
.qr-dot.ok{background:var(--ok);}
.qr-dot.warn{background:var(--warn);}
.qr-dot.mut{background:var(--dimmed);}
.qr-flag{cursor:help;}
.qr-toggle{position:relative; width:3rem; height:1.55rem; border-radius:999px; border:1px solid var(--line); background:var(--panel-3); padding:0; flex:none; cursor:pointer;}
.qr-toggle::after{content:""; position:absolute; top:2px; left:2px; width:1.15rem; height:1.15rem; border-radius:50%; background:var(--dimmed); transition:transform .15s ease, background .15s ease;}
.qr-toggle.on{background:color-mix(in srgb,var(--ok) 28%,var(--panel-3)); border-color:var(--ok);}
.qr-toggle.on::after{transform:translateX(1.45rem); background:var(--ok);}
.qr-toggle.locked{border-color:var(--warn); border-style:dashed;}
.qr-toggle.locked::after{background:var(--warn);}
.qr-toggle:focus-visible{outline:2px solid var(--red); outline-offset:2px;}
.qsession-collapsible{padding:0;overflow:hidden;}
.qsession-collapsible>summary{margin:0;padding:.85rem 1rem;cursor:pointer;list-style:none;}
.qsession-collapsible>summary::-webkit-details-marker{display:none;}
.qsession-collapsible>summary::after{content:none;}
.qsession-toggle-label{display:inline-flex;min-height:36px;align-items:center;justify-content:center;margin-left:auto;padding:.45rem .7rem;border:1px solid color-mix(in srgb,var(--red) 46%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--red) 10%,var(--panel-2));color:var(--red-soft);font-family:var(--font-d);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-align:center;text-transform:uppercase;}
.qsession-toggle-open{display:none;}
.qsession-collapsible[open] .qsession-toggle-closed{display:none;}
.qsession-collapsible[open] .qsession-toggle-open{display:inline;}
.qsession-collapsible[open]>summary{border-bottom:1px solid var(--line);}
.qsession-body{padding:.55rem 1rem .8rem;}
.qsession-tools{margin:0 0 .35rem;text-align:right;font-size:.75rem;}
.qsession-tools a{color:var(--red-soft);text-decoration:none;}
.qsession-toggle-label{gap:.45rem;}
.qsession-toggle-label b{color:var(--white);font-size:.72rem;}
.qsession-toggle-label small{color:var(--red-soft);font-size:.62rem;}
.qsession-toggle-copy{display:grid;gap:.08rem;text-align:left;}

/* Filtry kursów i klientów. */
.course-filter-form,.client-filter-form{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:.65rem;align-items:end;max-width:none;padding:1rem 1.1rem;margin:0 0 .6rem;}
.client-filter-form{grid-template-columns:repeat(7,minmax(125px,1fr));}
.course-filter-form .fld,.client-filter-form .fld{margin:0;}
.filter-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.course-filter-form .filter-actions,.client-filter-form .filter-actions{grid-column:1/-1;}
.filter-actions .btn{text-decoration:none;white-space:nowrap;}
.filter-count{color:var(--muted);font-size:.8rem;margin:0 0 .8rem;}
.filter-count b{color:var(--white);}

/* Czytelne karty zgłoszeń zamiast bardzo szerokiej tabeli. */
.course-signup-list{display:grid;gap:.8rem;}
.signup-empty{color:var(--muted);padding:1rem 1.1rem;}
.course-signup-card{padding:1rem 1.15rem;}
.course-signup-card.inactive{opacity:.55;}
.course-signup-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid var(--line);}
.course-signup-head h2{font-size:1.05rem;margin:.2rem 0 .1rem;color:var(--white);}
.course-signup-head small{color:var(--muted);}
.course-signup-facts{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:.55rem;margin:.75rem 0;}
.course-signup-facts>div{display:flex;flex-direction:column;gap:.15rem;padding:.65rem .7rem;border-radius:7px;background:var(--panel-2);}
.course-signup-facts small,.course-signup-facts span{color:var(--muted);font-size:.73rem;}
.course-signup-facts a{color:var(--white);text-decoration:none;overflow-wrap:anywhere;}
.course-signup-note{padding:.6rem .7rem;border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 6%,transparent);color:var(--muted);font-size:.82rem;}
.course-signup-actions{padding-top:.65rem;border-top:1px solid var(--line);}
.course-signup-confirm{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(170px,1fr) minmax(220px,1.2fr) minmax(220px,1.2fr);gap:.55rem;align-items:end;margin-bottom:.6rem;}
.course-signup-confirm .fld,.course-signup-confirm .rodo{margin:0;}
.course-signup-confirm .split-actions{grid-column:1/-1;}
.content-news-thumb{width:72px;height:50px;object-fit:cover;border-radius:5px;float:left;margin:0 .55rem .35rem 0;}
.content-current-media{display:flex;align-items:center;gap:.8rem;margin:0 0 1rem;padding:.7rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);}
.content-current-media .content-news-thumb{float:none;flex:none;margin:0;width:96px;height:68px;}
.content-current-media>span:last-child{color:var(--muted);font-size:.78rem;line-height:1.45;}
button:disabled{cursor:not-allowed;opacity:.5;}

/* Czytelniejsza strefa klienta — bez wpływu na widoki administracyjne. */
.role-klient .panel-main{padding:1.4rem 0 3.2rem;}
.role-klient .ph{font-size:clamp(2rem,4.5vw,3.25rem);font-weight:300;line-height:1;letter-spacing:-.025em;text-transform:none;margin-bottom:.45rem;}
.role-klient .psub{max-width:68ch;margin-bottom:.8rem;color:var(--muted);font-size:.96rem;line-height:1.6;}
.role-klient .family-summary-grid{gap:.75rem;margin:.65rem 0 1rem;}
.role-klient .family-summary-grid .card{min-height:94px;padding:1rem 1.1rem;border-radius:12px;}
.role-klient .family-summary-grid b{font-size:1.85rem;line-height:1.1;}
.role-klient .family-summary-grid span{font-size:.86rem;}
.role-klient .portal-family-nav{gap:.3rem;margin:1rem 0 0;padding:.55rem .55rem 0;border:1px solid var(--line);border-bottom:0;border-radius:13px 13px 0 0;background:rgba(22,26,36,.96);}
.role-klient .family-person-chip{min-height:48px;padding:.5rem .8rem;border-radius:9px 9px 0 0;font-size:.86rem;}
.role-klient .family-person-chip small{font-size:.72rem;}
.role-klient .portal-add-child{margin:0;padding:0;}
.role-klient .portal-add-child>summary,.role-klient .portal-course-signup>summary,.role-klient .client-payment-history>summary{font-size:.9rem;line-height:1.4;}
.role-klient .form-help{font-size:.88rem;line-height:1.65;}
.role-klient .client-portal-person{padding:1.35rem 1.45rem;margin:0 0 1.2rem;border-radius:0 0 16px 16px;}
.role-klient .portal-person-head{padding-bottom:1.15rem;}
.role-klient .portal-person-head h2{font-size:1.7rem;line-height:1.15;}
.role-klient .portal-person-head h2+span{font-size:.84rem;}
.role-klient .portal-person-stats{gap:.6rem;}
.role-klient .portal-person-stats span{padding:.55rem .7rem;border-radius:9px;font-size:.84rem;}
.role-klient .portal-pending-list{padding:1rem;border-radius:12px;}
.role-klient .portal-pending-row>div span{font-size:.84rem;}
.role-klient .portal-course-signup{margin:1.15rem 0;padding:1rem;border-radius:12px;}
.role-klient .fld span{font-size:.72rem;letter-spacing:.12em;}
.role-klient .fld input,.role-klient .fld select,.role-klient .fld textarea{min-height:48px;padding:.7rem .85rem;border-radius:8px;font-size:.98rem;}
.role-klient .client-course-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.15rem;margin:1.2rem 0;}
.role-klient .client-course-card{padding:1.4rem;border-radius:14px;}
.role-klient .client-course-card h3{font-size:1.25rem;line-height:1.25;}
.role-klient .client-course-card p{font-size:.93rem;line-height:1.55;}
.role-klient .course-cost-row{padding:.8rem 0;font-size:.88rem;}
.role-klient .portal-payment-callout{padding:.9rem 1rem;font-size:.9rem;}
.role-klient .assigned-pass{padding:.9rem 1rem;border-radius:10px;}

/* Układ konta rodzinnego jest celowo zgodny z kolejnością HTML:
   życie studia, orientacja, metryka, osoby, a na końcu ich dane. */
.role-klient .portal-account-intro{margin:.85rem 0 .1rem;}
.role-klient .portal-family-onboarding{margin:0 0 .9rem;padding:1rem 1.15rem;}
.role-klient .portal-family-nav .family-person-chip{border:1px solid var(--line);text-decoration:none;}
.role-klient .portal-family-nav .family-person-chip.active{position:relative;z-index:1;border-color:var(--red-soft);border-bottom-color:var(--panel);background:var(--panel);box-shadow:0 -1px 0 color-mix(in srgb,var(--red) 25%,transparent);}
.role-klient .portal-family-payment{margin:.75rem 0 1rem;padding:1rem 1.15rem;border-color:color-mix(in srgb,var(--red) 45%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--red) 10%,var(--panel)),var(--panel));}
.role-klient .portal-family-payment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.role-klient .portal-family-payment-head h2{margin:.25rem 0;color:var(--white);font-size:1.35rem;}.role-klient .portal-family-payment-head p{max-width:58ch;margin:0;color:var(--muted);font-size:.88rem;line-height:1.55;}
.role-klient .portal-family-payment-head>strong{white-space:nowrap;color:var(--white);font-family:var(--font-d);font-size:1.2rem;}
.role-klient .portal-family-payment-table-wrap{margin:1rem 0;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);}
.role-klient .portal-family-payment-table{min-width:720px;}
.role-klient .portal-family-payment-table th,.role-klient .portal-family-payment-table td{padding:.75rem .9rem;}
.role-klient .portal-family-payment-table td:last-child{color:var(--white);font-variant-numeric:tabular-nums;}
.role-klient .portal-family-payment-action{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;}.role-klient .portal-family-payment-action small{color:var(--muted);font-size:.74rem;}
.role-klient .portal-course-table{margin:1rem 0 1.25rem;padding:0;overflow-x:auto;}.role-klient .portal-course-table .ptbl{min-width:760px;}.role-klient .portal-course-table td{vertical-align:middle;}.role-klient .portal-course-table tr.portal-payment-focus td{background:color-mix(in srgb,var(--red) 7%,transparent);}.role-klient .portal-course-table .dim{font-size:.78rem;line-height:1.45;}.role-klient .portal-course-table .btn{white-space:nowrap;}

/* Żywy profil klienta: oferta, sukcesy, aktualności oraz historia karnetów. */
.role-klient .portal-life{margin:.25rem 0 1rem;}
.role-klient .portal-life-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.9rem;}
.role-klient .portal-life-head h2{margin:.2rem 0 0;color:var(--white);font-size:clamp(1.45rem,3vw,2.15rem);font-weight:500;}
.role-klient .portal-life-head>a,.role-klient .portal-life-more{color:var(--red-soft);font-size:.86rem;text-decoration:none;}
.role-klient .portal-life-head>a:hover,.role-klient .portal-life-more:hover{text-decoration:underline;}
.role-klient .portal-life-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:1rem;}
.role-klient .portal-birthday-card,.role-klient .portal-life-card{min-width:0;padding:1.15rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);}
.role-klient .portal-birthday-card{display:flex;flex-direction:column;align-items:flex-start;min-height:285px;overflow:hidden;position:relative;border-color:color-mix(in srgb,var(--brand) 42%,var(--line));background:
  radial-gradient(250px 180px at 100% 0,rgba(167,88,219,.22),transparent 72%),
  linear-gradient(145deg,color-mix(in srgb,var(--brand) 9%,var(--panel)),var(--panel));}
.role-klient .portal-birthday-card::after{content:"SPACE";position:absolute;right:-.15em;bottom:-.2em;color:rgba(255,255,255,.025);font-family:var(--font-d);font-size:5.6rem;font-weight:800;letter-spacing:-.08em;pointer-events:none;}
.role-klient .portal-life-kicker{color:var(--red-soft);font-family:var(--font-d);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;}
.role-klient .portal-birthday-card h3,.role-klient .portal-life-card h3{margin:.45rem 0;color:var(--white);font-size:1.25rem;line-height:1.25;}
.role-klient .portal-birthday-card h3{max-width:12ch;font-size:clamp(1.7rem,3vw,2.4rem);}
.role-klient .portal-birthday-card p{position:relative;z-index:1;max-width:39ch;margin:.3rem 0 1rem;color:var(--muted);font-size:.9rem;line-height:1.6;}
.role-klient .portal-birthday-card .btn{position:relative;z-index:1;margin-top:auto;}
.role-klient .portal-birthday-facts{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.1rem;}
.role-klient .portal-birthday-facts span{padding:.35rem .5rem;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:999px;background:rgba(255,255,255,.035);color:var(--white);font-size:.72rem;}
.role-klient .portal-life-card{display:flex;flex-direction:column;min-height:285px;}
.role-klient .portal-life-card>header{padding-bottom:.7rem;border-bottom:1px solid var(--line);}
.role-klient .portal-life-card>header h3{margin-bottom:0;}
.role-klient .portal-achievement-list,.role-klient .portal-news-list{display:grid;gap:.1rem;margin:.55rem 0 .75rem;}
.role-klient .portal-achievement-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:.7rem;align-items:center;padding:.5rem;border-radius:9px;color:var(--white);text-decoration:none;}
.role-klient .portal-achievement-row:hover,.role-klient .portal-news-row:hover{background:var(--panel-2);}
.role-klient .portal-achievement-row img{width:56px;height:56px;border-radius:8px;object-fit:cover;background:var(--panel-2);}
.role-klient .portal-achievement-row span{display:grid;min-width:0;gap:.18rem;}
.role-klient .portal-achievement-row b{overflow:hidden;font-size:.84rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;}
.role-klient .portal-achievement-row small{overflow:hidden;color:var(--muted);font-size:.7rem;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;}
.role-klient .portal-news-row{display:grid;gap:.18rem;padding:.55rem;border-radius:9px;color:var(--white);text-decoration:none;}
.role-klient .portal-news-row time{color:var(--red-soft);font-size:.67rem;letter-spacing:.08em;}
.role-klient .portal-news-row b{overflow:hidden;font-size:.86rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;}
.role-klient .portal-news-row span{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:.72rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.role-klient .portal-life-more{margin-top:auto;padding-top:.4rem;}
.role-klient .portal-life-empty{padding:.85rem;margin:.65rem 0;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:.84rem;line-height:1.55;}

.role-klient .portal-pass-section{margin:1.3rem 0 1rem;padding-top:1.1rem;border-top:1px solid var(--line);}
.role-klient .portal-pass-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.75rem;}
.role-klient .portal-pass-head h3{margin:.2rem 0 0;color:var(--white);font-size:1.25rem;}
.role-klient .portal-pass-head>span{color:var(--muted);font-size:.78rem;}
.role-klient .portal-pass-list{display:grid;gap:.7rem;}
.role-klient .portal-pass-card{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);}
.role-klient .portal-pass-card.ok{border-color:color-mix(in srgb,var(--ok) 38%,var(--line));}
.role-klient .portal-pass-card.warn{border-color:color-mix(in srgb,var(--warn) 38%,var(--line));}
.role-klient .portal-pass-card>summary{display:grid;grid-template-columns:minmax(170px,1.35fr) minmax(200px,1fr) minmax(150px,.75fr) auto 24px;gap:.8rem;align-items:center;padding:.9rem 1rem;cursor:pointer;list-style:none;}
.role-klient .portal-pass-card>summary::-webkit-details-marker{display:none;}
.role-klient .portal-pass-card>summary::after{content:"+";grid-column:5;color:var(--red-soft);font-size:1.25rem;}
.role-klient .portal-pass-card[open]>summary::after{content:"−";}
.role-klient .portal-pass-name,.role-klient .portal-pass-validity,.role-klient .portal-pass-counter{display:grid;gap:.16rem;min-width:0;}
.role-klient .portal-pass-name b{overflow:hidden;color:var(--white);font-size:.95rem;text-overflow:ellipsis;white-space:nowrap;}
.role-klient .portal-pass-name small,.role-klient .portal-pass-validity small,.role-klient .portal-pass-counter small{color:var(--muted);font-size:.68rem;}
.role-klient .portal-pass-validity b,.role-klient .portal-pass-counter b{color:var(--white);font-size:.82rem;}
.role-klient .portal-pass-body{padding:1rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent);}
.role-klient .portal-pass-body h4{margin:1rem 0 .55rem;color:var(--white);font-size:.86rem;}
.role-klient .portal-pass-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;}
.role-klient .portal-pass-facts span{display:grid;gap:.2rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);}
.role-klient .portal-pass-facts small{color:var(--muted);font-size:.68rem;}
.role-klient .portal-pass-facts b{color:var(--white);font-size:.84rem;}
.role-klient .portal-attendance-list{display:grid;gap:.4rem;}
.role-klient .portal-attendance-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.65rem .75rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);}
.role-klient .portal-attendance-row time{display:grid;gap:.08rem;}
.role-klient .portal-attendance-row time b{color:var(--white);font-size:.82rem;}
.role-klient .portal-attendance-row time small{color:var(--muted);font-size:.66rem;}
.role-klient .portal-attendance-row>span:not(.pill){overflow:hidden;color:var(--muted);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap;}
.role-klient .portal-pass-empty{padding:.75rem;margin:0;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:.8rem;}

@media(max-width:1050px){
  .role-klient .portal-life-grid{grid-template-columns:1fr 1fr;}
  .role-klient .portal-birthday-card{grid-row:span 2;}
}
@media(max-width:700px){
  .role-klient{max-width:100%;overflow-x:hidden;}
  .role-klient .top nav.main{flex-wrap:wrap;overflow:visible;gap:.35rem .8rem;}
  .role-klient .top nav.main a{white-space:normal;}
  .role-klient .panel-brand-logo{height:32px;}
  .role-klient .panel-main{padding:1rem 0 3rem;}
  .role-klient .portal-family-nav{flex-wrap:wrap;overflow:visible;padding-bottom:.35rem;}
  .role-klient .family-person-chip{flex:1 1 145px;min-width:0;border-radius:9px;}
  .role-klient :is(h1,h2,h3,p,a,b,span,small){overflow-wrap:anywhere;}
  .role-klient .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.35;overflow-wrap:anywhere;}
  .role-klient .portal-summary{grid-template-columns:1fr 1fr;}
  .role-klient .family-summary-grid .card{min-height:100px;padding:1rem;}
  .role-klient .family-summary-grid b{font-size:1.45rem;}
    .role-klient .client-portal-person{padding:1.15rem 1rem;}
  .role-klient .portal-person-head{display:block;}
  .role-klient .portal-person-stats{justify-content:flex-start;margin-top:.8rem;}
  .role-klient .client-course-grid{grid-template-columns:1fr;}
  .role-klient .portal-life-head,.role-klient .portal-pass-head{display:block;}
  .role-klient .portal-life-head>a{display:inline-block;margin-top:.55rem;}
  .role-klient .portal-life-grid{grid-template-columns:1fr;}
  .role-klient .portal-family-payment-head{display:block;}
  .role-klient .portal-family-payment-head>strong{display:block;margin-top:.7rem;white-space:normal;}
  .role-klient .portal-family-payment-action{align-items:stretch;}
  .role-klient .portal-family-payment-action .btn{width:100%;}
  .role-klient .portal-family-payment-table-wrap,
  .role-klient .portal-course-table,
  .role-klient .client-payment-history .tbl-card{overflow:visible;border:0;background:transparent;}
  .role-klient .portal-family-payment-table,
  .role-klient .portal-course-table .ptbl,
  .role-klient .client-payment-history .ptbl{display:block;min-width:0;width:100%;background:transparent;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) thead{display:none;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) tbody{display:grid;gap:.65rem;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) tr{display:block;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) td{display:grid;grid-template-columns:minmax(86px,.42fr) minmax(0,1fr);gap:.65rem;align-items:start;padding:.55rem .75rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);text-align:left;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) td:last-child{border-bottom:0;text-align:left;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) td::before{content:attr(data-label);color:var(--dimmed);font-family:var(--font-d);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) td[colspan]{display:block;padding:.75rem;}
  .role-klient :is(.portal-family-payment-table,.portal-course-table .ptbl,.client-payment-history .ptbl) td[colspan]::before{content:none;}
  .role-klient .portal-course-table .client-pay-form{display:block;margin:0;}
  .role-klient .portal-course-table .btn{width:100%;}
    .role-klient .portal-birthday-card{grid-row:auto;min-height:260px;}
  .role-klient .portal-life-card{min-height:0;}
  .role-klient .portal-pass-head>span{display:block;margin-top:.35rem;}
  .role-klient .portal-pass-card>summary{grid-template-columns:minmax(0,1fr) auto;gap:.55rem .8rem;}
  .role-klient .portal-pass-card>summary::after{grid-column:2;grid-row:1;}
  .role-klient .portal-pass-validity,.role-klient .portal-pass-counter{grid-column:1/-1;}
  .role-klient .portal-pass-card>summary>.pill{grid-column:2;grid-row:2/4;align-self:center;}
  .role-klient .portal-pass-facts{grid-template-columns:1fr;}
  .role-klient .portal-pass-name b{overflow:visible;text-overflow:clip;white-space:normal;}
  .role-klient .portal-attendance-row{grid-template-columns:95px minmax(0,1fr);}
  .role-klient .portal-attendance-row>.pill{grid-column:2;justify-self:start;}
}
@media (max-width:640px){
  .qsession-head{gap:.5rem;}
  .qsession-head .btn.sec.sm{margin-left:0;}
  .qr-row{align-items:flex-start;flex-wrap:wrap;}
  .qr-name{flex-basis:calc(100% - 4rem);}
  .qr-pass-state{order:3;flex-basis:calc(100% - 3.7rem);margin-left:0;min-width:0;}
  .qr-pass-state small{white-space:normal;}
}
@media (max-width:1100px){
  .course-filter-form,.client-filter-form{grid-template-columns:repeat(3,minmax(150px,1fr));}
  .course-signup-confirm{grid-template-columns:1fr 1fr;}
}
@media (max-width:700px){
  .course-filter-form,.client-filter-form,.course-signup-facts,.course-signup-confirm{grid-template-columns:1fr;}
  .course-signup-confirm .split-actions{grid-column:1;}
  .course-signup-head{display:block;}
  .course-signup-head .pill{display:inline-flex;margin-top:.5rem;}
  .qsession-toggle-label{width:100%;min-height:42px;margin-left:0;}
}

/* 2026-07-21 — spójny, zadaniowy panel administracyjny. */
.role-admin,.role-recepcja,.role-instruktor{background:
  radial-gradient(900px 420px at 8% -10%,rgba(167,88,219,.09),transparent 70%),
  linear-gradient(180deg,#0c0f17 0,#0b0d14 520px);}
.role-admin .panel-main.wrap,.role-recepcja .panel-main.wrap,.role-instruktor .panel-main.wrap{width:min(1400px,calc(100% - 42px));max-width:none;padding-top:2.35rem;}
.role-admin .top-inner,.role-recepcja .top-inner,.role-instruktor .top-inner{width:min(1400px,calc(100% - 42px));max-width:none;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:.7rem 1.15rem;align-items:center;padding:.72rem 0 .65rem;}
.role-admin .top .logo,.role-recepcja .top .logo,.role-instruktor .top .logo{grid-column:1;grid-row:1;}
.panel-view-context{grid-column:2;grid-row:1;display:flex;flex-direction:column;padding-left:1rem;border-left:1px solid var(--line);line-height:1.15;min-width:145px;}
.panel-view-context small{color:var(--dimmed);font-family:var(--font-d);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;}
.panel-view-context b{margin-top:.2rem;color:var(--white);font-size:.82rem;font-weight:600;}
.panel-session-actions{grid-column:4;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:.55rem;min-width:0;}
.role-admin nav.main,.role-recepcja nav.main,.role-instruktor nav.main{grid-column:1/-1;grid-row:2;display:flex;gap:.25rem;padding-top:.58rem;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);overflow:visible;}
.role-admin nav.main>a,.role-admin nav.main>details>summary,.role-recepcja nav.main>a,.role-recepcja nav.main>details>summary,.role-instruktor nav.main>a{min-height:36px;display:flex;align-items:center;border:1px solid transparent;border-radius:7px;padding:.45rem .72rem;color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-decoration:none;}
.role-admin nav.main>a:hover,.role-admin nav.main>details>summary:hover,.role-recepcja nav.main>a:hover,.role-recepcja nav.main>details>summary:hover,.role-instruktor nav.main>a:hover{color:var(--white);background:var(--panel-2);border-color:var(--line);}
.role-admin nav.main>.here,.role-admin nav.main>details.here>summary,.role-recepcja nav.main>.here,.role-recepcja nav.main>details.here>summary,.role-instruktor nav.main>.here{color:var(--white);background:color-mix(in srgb,var(--red) 11%,var(--panel-2));border-color:color-mix(in srgb,var(--red) 38%,var(--line));}
.role-admin .ph,.role-recepcja .ph,.role-instruktor .ph{font-size:clamp(1.85rem,2.6vw,2.65rem);font-weight:450;line-height:1.08;letter-spacing:-.02em;text-transform:none;margin:0 0 .5rem;}
.role-admin .psub,.role-recepcja .psub,.role-instruktor .psub{font-size:.98rem;line-height:1.65;max-width:82ch;margin:0;color:var(--muted);}
.panel-page-heading{display:flex;justify-content:space-between;gap:2rem;align-items:flex-start;margin-bottom:1.45rem;}
.panel-page-heading>.btn{flex:none;margin-top:.15rem;text-decoration:none;}
.role-admin .card,.role-recepcja .card,.role-instruktor .card{border-radius:13px;border-color:color-mix(in srgb,var(--line) 88%,transparent);box-shadow:0 12px 34px rgba(0,0,0,.14);}
.role-admin .fld input,.role-admin .fld select,.role-admin .fld textarea,.role-recepcja .fld input,.role-recepcja .fld select,.role-recepcja .fld textarea,.role-instruktor .fld input,.role-instruktor .fld select,.role-instruktor .fld textarea{min-height:44px;border-radius:8px;padding:.68rem .82rem;background:#171b25;}
.field-hint{display:block;margin-top:.35rem;color:var(--dimmed);font-size:.72rem;line-height:1.45;}
.order-badge{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 .45rem;border-radius:7px;background:color-mix(in srgb,var(--red) 13%,var(--panel-2));border:1px solid color-mix(in srgb,var(--red) 34%,var(--line));color:var(--red-soft);font-family:var(--font-d);font-size:.75rem;font-weight:700;}

/* Formularze tworzenia nie zasłaniają już najczęściej używanych list. */
.panel-create-card{margin:0 0 1.25rem;padding:0;overflow:hidden;scroll-margin-top:165px;}
.panel-create-card>summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:72px;padding:1rem 1.25rem;cursor:pointer;list-style:none;background:linear-gradient(90deg,color-mix(in srgb,var(--red) 6%,var(--panel)),var(--panel));}
.panel-create-card>summary::-webkit-details-marker{display:none;}
.panel-create-card>summary span{display:flex;flex-direction:column;gap:.2rem;}
.panel-create-card>summary b{font-size:1rem;color:var(--white);}
.panel-create-card>summary small{color:var(--muted);font-size:.78rem;}
.panel-create-card>summary em{font-style:normal;color:var(--red-soft);font-family:var(--font-d);font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;}
.panel-create-card>summary em::after{content:'  ▾';}
.panel-create-card[open]>summary{border-bottom:1px solid var(--line);}
.panel-create-card[open]>summary em::after{content:'  ▴';}
.panel-create-body{padding:1.25rem 1.35rem 1.4rem;}
.panel-create-body form{max-width:none;}
.panel-create-body .form-help{margin-top:0;}

/* Pulpit startowy. */
.panel-welcome{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;padding:1.7rem 1.8rem;margin-bottom:1rem;border:1px solid color-mix(in srgb,var(--red) 28%,var(--line));border-radius:16px;background:linear-gradient(115deg,color-mix(in srgb,var(--red) 13%,var(--panel)),var(--panel) 58%,#171b26);box-shadow:0 22px 55px rgba(0,0,0,.2);}
.panel-welcome h1{font-size:clamp(2rem,4vw,3.35rem);line-height:1.03;letter-spacing:-.035em;margin:.2rem 0 .55rem;font-weight:430;}
.panel-welcome p{color:var(--muted);font-size:.98rem;line-height:1.55;margin:0;}
.panel-welcome .panel-kicker{color:var(--red-soft);font-family:var(--font-d);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;}
.panel-welcome-actions{display:flex;gap:.55rem;flex:none;}
.panel-welcome-actions .btn{text-decoration:none;white-space:nowrap;}
.panel-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0 0 .9rem;}
.panel-metric{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.2rem .8rem;min-height:112px;padding:1.05rem 1.15rem;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--white);text-decoration:none;transition:transform .15s,border-color .15s;}
.panel-metric:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--red) 38%,var(--line));}
.panel-metric>span{color:var(--muted);font-size:.78rem;}
.panel-metric>b{grid-column:2;grid-row:1/-1;align-self:center;font-size:1.75rem;font-weight:600;font-variant-numeric:tabular-nums;}
.panel-metric>small{align-self:end;color:var(--dimmed);font-size:.7rem;}
.panel-home-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:.9rem;margin-bottom:.9rem;}
.panel-priority-card,.panel-today-card{padding:1.2rem 1.25rem;}
.panel-section-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:.8rem;}
.panel-section-head>div>span{color:var(--red-soft);font-family:var(--font-d);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;}
.panel-section-head h2{font-size:1.18rem;margin:.2rem 0 0;}
.panel-section-head>small,.panel-section-head>a{color:var(--dimmed);font-size:.72rem;text-decoration:none;}
.panel-priority-list{display:grid;gap:.42rem;}
.panel-priority-list>a{display:grid;grid-template-columns:38px 1fr auto;gap:.7rem;align-items:center;padding:.72rem .75rem;border:1px solid var(--line);border-radius:9px;color:var(--white);text-decoration:none;background:var(--panel-2);}
.panel-priority-list>a:hover{border-color:color-mix(in srgb,var(--red) 40%,var(--line));}
.panel-priority-list>a.needs-action{background:color-mix(in srgb,var(--warn) 5%,var(--panel-2));border-color:color-mix(in srgb,var(--warn) 28%,var(--line));}
.panel-priority-list a>span:nth-child(2){display:flex;flex-direction:column;gap:.1rem;}
.panel-priority-list small{color:var(--muted);font-size:.7rem;}
.panel-priority-list strong{font-size:1.05rem;}
.panel-priority-icon{display:grid;place-items:center;width:38px;height:34px;border-radius:8px;background:color-mix(in srgb,var(--red) 14%,var(--panel));color:var(--red-soft);font-family:var(--font-d);font-size:.62rem;}
.panel-today-list{display:grid;gap:.42rem;}
.panel-today-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:.65rem;align-items:center;padding:.68rem .72rem;border:1px solid var(--line);border-left:3px solid var(--dimmed);border-radius:8px;color:var(--white);text-decoration:none;}
.panel-today-row.is-now{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 6%,var(--panel-2));}
.panel-today-row.is-next{border-left-color:var(--warn);}
.panel-today-row.is-done{opacity:.55;}
.panel-today-row time{font-family:var(--font-d);font-size:.78rem;font-weight:600;}
.panel-today-row>span{display:flex;flex-direction:column;min-width:0;}
.panel-today-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.69rem;}
.panel-today-row em{color:var(--dimmed);font-size:.65rem;font-style:normal;}
.panel-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;}
.panel-shortcuts>a{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--white);text-decoration:none;}
.panel-shortcuts>a:hover{border-color:color-mix(in srgb,var(--red) 40%,var(--line));}
.panel-shortcuts span{color:var(--muted);font-size:.72rem;line-height:1.45;}

/* Portrety i kartoteki instruktorów. */
.panel-info-callout{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;padding:.9rem 1rem;margin-bottom:1rem;border:1px solid color-mix(in srgb,var(--ok) 38%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--ok) 7%,var(--panel));}
.panel-info-callout b{grid-row:1/-1;align-self:center;}
.panel-info-callout span{color:var(--muted);font-size:.8rem;line-height:1.5;}
.panel-info-callout.warn{border-color:color-mix(in srgb,var(--warn) 42%,var(--line));background:color-mix(in srgb,var(--warn) 6%,var(--panel));}
.sample-photo-label{display:block;margin-top:.45rem;color:var(--warn);font-size:.68rem;text-align:center;}
.instructor-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;}
.instructor-profile-card{display:grid;grid-template-columns:150px minmax(0,1fr);padding:0;overflow:hidden;min-height:250px;}
.instructor-profile-card.inactive{opacity:.58;}
.instructor-profile-photo{position:relative;min-height:100%;background:var(--panel-3);overflow:hidden;}
.instructor-profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.instructor-profile-photo>span{display:grid;place-items:center;width:100%;height:100%;font-size:3.2rem;color:var(--dimmed);}
.instructor-profile-photo em{position:absolute;left:.5rem;bottom:.5rem;padding:.22rem .42rem;border-radius:5px;background:rgba(8,10,15,.88);color:var(--warn);font-size:.58rem;font-style:normal;text-transform:uppercase;letter-spacing:.08em;}
.instructor-profile-main{padding:1rem 1.05rem;min-width:0;}
.instructor-profile-head{display:flex;justify-content:space-between;gap:.7rem;align-items:flex-start;}
.instructor-profile-head h2{font-size:1.15rem;margin:0 0 .2rem;}
.instructor-profile-head div>span{color:var(--muted);font-size:.7rem;}
.instructor-profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin:.7rem 0;}
.instructor-profile-facts>span{display:flex;flex-direction:column;padding:.5rem .55rem;border-radius:7px;background:var(--panel-2);}
.instructor-profile-facts small{color:var(--dimmed);font-size:.6rem;}
.instructor-profile-facts b{font-size:.82rem;margin-top:.12rem;}
.instructor-profile-courses{display:flex;flex-wrap:wrap;gap:.3rem;margin:.6rem 0;}
.instructor-profile-courses a,.instructor-profile-courses>span:not(.empty-note){padding:.26rem .45rem;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:.65rem;text-decoration:none;}
.instructor-profile-courses a:hover{color:var(--white);border-color:var(--red);}
.instructor-profile-completeness{display:flex;gap:.35rem;margin:.65rem 0;}
.instructor-profile-completeness span{padding:.22rem .4rem;border-radius:5px;background:var(--panel-2);color:var(--dimmed);font-size:.62rem;}
.instructor-profile-completeness span.done{color:var(--ok);}
.instructor-profile-contact{color:var(--muted);font-size:.7rem;overflow-wrap:anywhere;margin:.35rem 0 .7rem;}
.instructor-profile-actions{display:flex;flex-wrap:wrap;}

/* Filtry, tabele i błędy. */
.course-filter-form,.client-filter-form{border-radius:12px;background:linear-gradient(90deg,var(--panel),#151924);box-shadow:none;}
.course-filter-form .fld>span,.client-filter-form .fld>span{color:var(--dimmed);}
.ptbl thead{background:color-mix(in srgb,var(--panel-2) 88%,transparent);}
.ptbl tbody tr{transition:background .12s;}
.ptbl tbody tr:hover{background:color-mix(in srgb,var(--white) 2.5%,transparent);}
.panel-notice-stack{position:fixed;z-index:1000;right:24px;bottom:24px;width:min(520px,calc(100vw - 32px));pointer-events:none;}
.panel-notice{display:grid;grid-template-columns:46px 1fr auto;gap:.9rem;align-items:center;padding:1.05rem 1.1rem;border:1px solid color-mix(in srgb,var(--ok) 48%,var(--line));border-radius:14px;background:rgba(18,23,31,.98);box-shadow:0 20px 72px rgba(0,0,0,.62);backdrop-filter:blur(14px);pointer-events:auto;animation:panel-notice-in .22s ease-out;}
.panel-notice.error{border-color:color-mix(in srgb,var(--danger) 58%,var(--line));}
.panel-notice-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:11px;background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--ok);font-size:1.1rem;font-weight:800;}
.panel-notice.error .panel-notice-mark{background:color-mix(in srgb,var(--danger) 16%,var(--panel));color:var(--danger-soft);}
.panel-notice>span:nth-child(2){display:flex;flex-direction:column;gap:.12rem;}
.panel-notice b{font-size:.98rem;}
.panel-notice small{color:var(--muted);font-size:.88rem;line-height:1.5;}
.panel-notice button{border:0;background:transparent;color:var(--muted);font-size:1.4rem;cursor:pointer;padding:.2rem;}
@keyframes panel-notice-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.panel-system-dialog{width:min(620px,calc(100vw - 28px));max-height:min(86vh,680px);padding:0;border:0;border-radius:20px;background:transparent;color:var(--white);overflow:visible;}
.panel-system-dialog::backdrop{background:rgba(4,6,11,.78);backdrop-filter:blur(6px);}
.panel-system-dialog-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:1rem 1.1rem;padding:1.65rem;border:1px solid color-mix(in srgb,var(--red) 44%,var(--line));border-radius:20px;background:linear-gradient(145deg,#191e29,#11151e);box-shadow:0 30px 110px rgba(0,0,0,.78);}
.panel-system-dialog-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:16px;background:color-mix(in srgb,var(--red) 16%,var(--panel));color:var(--red-soft);font-family:var(--font-d);font-size:1.45rem;font-weight:800;}
.panel-system-dialog.is-info .panel-system-dialog-card{border-color:color-mix(in srgb,var(--ok) 42%,var(--line));}
.panel-system-dialog.is-info .panel-system-dialog-mark{background:color-mix(in srgb,var(--ok) 16%,var(--panel));color:var(--ok);}
.panel-system-dialog-copy .eyebrow{margin:0 0 .35rem;color:var(--red-soft);font-size:.68rem;letter-spacing:.2em;}
.panel-system-dialog.is-info .panel-system-dialog-copy .eyebrow{color:var(--ok);}
.panel-system-dialog-copy h2{margin:0 0 .55rem;font-size:clamp(1.25rem,2.8vw,1.7rem);line-height:1.2;}
.panel-system-dialog-copy>p:last-child{margin:0;color:var(--muted);font-size:.98rem;line-height:1.65;white-space:pre-line;}
.panel-system-dialog-actions{grid-column:2;display:flex;justify-content:flex-end;gap:.65rem;margin-top:.25rem;}
.panel-system-dialog-actions .btn{min-width:130px;}
.form-inline-error{display:flex;flex-direction:column;gap:.2rem;margin:0 0 1rem;padding:.8rem .9rem;border:1px solid color-mix(in srgb,var(--danger) 52%,var(--line));border-left:4px solid var(--danger);border-radius:9px;background:color-mix(in srgb,var(--danger) 9%,var(--panel));scroll-margin-top:180px;}
.form-inline-error b{color:var(--danger-soft);font-size:.8rem;}
.form-inline-error span{color:var(--white);font-size:.82rem;line-height:1.45;}
.form-inline-error:focus,.form-error-focus:focus{outline:3px solid color-mix(in srgb,var(--danger) 45%,transparent);outline-offset:3px;}
.form-error-focus{scroll-margin-top:140px;box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 10%,transparent);}

@media(max-width:1100px){
  .panel-metric-grid,.panel-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .panel-home-grid{grid-template-columns:1fr;}
  .instructor-profile-grid{grid-template-columns:1fr;}
  .role-admin .top-inner,.role-recepcja .top-inner,.role-instruktor .top-inner{grid-template-columns:auto 1fr auto;}
  .panel-view-context{display:none;}
  .panel-session-actions{grid-column:3;}
}
@media(max-width:760px){
  .panel-notice-stack{right:12px;bottom:12px;width:calc(100vw - 24px);}
  .panel-system-dialog-card{grid-template-columns:48px minmax(0,1fr);padding:1.2rem;gap:.85rem;}
  .panel-system-dialog-mark{width:48px;height:48px;border-radius:13px;}
  .panel-system-dialog-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;}
  .panel-system-dialog-actions .btn{min-width:0;width:100%;}
  .role-admin .panel-main.wrap,.role-recepcja .panel-main.wrap,.role-instruktor .panel-main.wrap,.role-admin .top-inner,.role-recepcja .top-inner,.role-instruktor .top-inner{width:min(100% - 24px,1400px);}
  .role-admin .top-inner,.role-recepcja .top-inner,.role-instruktor .top-inner{display:flex;flex-wrap:wrap;gap:.55rem;}
  .role-admin nav.main,.role-recepcja nav.main,.role-instruktor nav.main{order:5;flex-basis:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem;}
  .panel-session-actions{margin-left:auto;}
  .panel-session-actions .userchip{display:none;}
  .panel-page-heading,.panel-welcome{display:block;}
  .panel-page-heading>.btn,.panel-welcome-actions{margin-top:1rem;}
  .panel-welcome{padding:1.35rem 1.2rem;}
  .panel-welcome-actions{display:grid;grid-template-columns:1fr 1fr;}
  .panel-metric-grid,.panel-shortcuts{grid-template-columns:1fr 1fr;}
  .panel-metric{min-height:92px;}
  .instructor-profile-card{grid-template-columns:112px minmax(0,1fr);}
  .instructor-profile-facts{grid-template-columns:1fr;}
  .panel-notice-stack{right:12px;bottom:12px;width:calc(100vw - 24px);}
  .panel-create-body{padding:1rem;}
  .panel-create-card>summary{padding:.9rem 1rem;}
  .panel-create-card>summary em{font-size:0;}
  .panel-create-card>summary em::after{font-size:.8rem;content:'▾';}
  .panel-create-card[open]>summary em::after{content:'▴';}
  .responsive-cards{min-width:0;}
  .responsive-cards thead{display:none;}
  .responsive-cards tbody,.responsive-cards tr{display:block;}
  .responsive-cards tr{margin:.65rem;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;background:var(--panel-2);}
  .responsive-cards td{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.65rem;padding:.45rem 0;border:0!important;text-align:left!important;white-space:normal;}
  .responsive-cards td::before{content:attr(data-label);color:var(--dimmed);font-family:var(--font-d);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;}
  .responsive-cards td[colspan]{display:block;}
  .responsive-cards td[colspan]::before{content:none;}
}
@media(max-width:520px){
  .panel-metric-grid,.panel-shortcuts,.panel-welcome-actions{grid-template-columns:1fr;}
  .instructor-profile-card{display:block;}
  .instructor-profile-photo{height:260px;}
  .panel-priority-list>a{grid-template-columns:34px 1fr auto;}
  .panel-today-row{grid-template-columns:48px 1fr;}
  .panel-today-row em{grid-column:2;}
  .responsive-cards td{grid-template-columns:92px minmax(0,1fr);}
}

/* Hall of Fame w Ustawieniach → Treści. */
.hof-admin-section{margin-top:2.4rem;scroll-margin-top:140px;}
.hof-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;}
.hof-admin-card{display:grid;grid-template-columns:180px minmax(0,1fr);min-height:230px;padding:0;overflow:hidden;}
.hof-admin-card.inactive{opacity:.58;}
.hof-admin-card>img{width:100%;height:100%;min-height:230px;object-fit:cover;background:var(--panel-2);}
.hof-admin-card-body{display:flex;min-width:0;flex-direction:column;padding:1rem 1.05rem;}
.hof-admin-card-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.65rem;}
.hof-admin-card-body>small{color:var(--red-soft);font-family:var(--font-d);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;}
.hof-admin-card-body h3{margin:.35rem 0 .25rem;color:var(--white);font-size:1.15rem;line-height:1.2;}
.hof-admin-card-body>b{font-size:.8rem;line-height:1.45;}
.hof-admin-card-body>p{margin:.55rem 0 .7rem;color:var(--muted);font-size:.76rem;line-height:1.5;}
.hof-admin-card-body>.acts{margin-top:auto;}
.hof-admin-empty{display:flex;flex-direction:column;gap:.25rem;padding:1.2rem 1.3rem;}
.hof-admin-empty span{color:var(--muted);font-size:.8rem;}
.hof-edit-preview{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:.65rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);}
.hof-edit-preview img{width:92px;height:68px;border-radius:7px;object-fit:cover;}
.hof-edit-preview span{color:var(--muted);font-size:.76rem;}
@media(max-width:1000px){.hof-admin-grid{grid-template-columns:1fr}.hof-admin-card{grid-template-columns:150px minmax(0,1fr)}}
@media(max-width:760px){
  .dash-grid{width:100%;min-width:0;grid-template-columns:minmax(0,1fr)!important}
  .dash-grid>div,.dash-grid .card{width:100%;min-width:0;max-width:100%}
  .dash-grid .tbl-card{overflow-x:auto}
  .hof-admin-form .addrow{grid-template-columns:1fr!important}
}
@media(max-width:520px){.hof-admin-card{display:block}.hof-admin-card>img{height:220px;min-height:0}.hof-edit-preview{align-items:flex-start}.hof-edit-preview img{width:76px;height:62px}}

/* Kreator kompletnej podstrony wydarzenia i galeria. */
.event-fixed-callout{margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid color-mix(in srgb,var(--ok) 42%,var(--line));border-left:4px solid var(--ok);border-radius:10px;background:color-mix(in srgb,var(--ok) 7%,var(--panel));}
.event-fixed-callout b{color:var(--white);font-size:.9rem;}
.event-fixed-callout p{margin:.3rem 0 0;color:var(--muted);font-size:.8rem;line-height:1.55;}
.event-cms-section{display:grid;gap:.2rem;margin:1.15rem 0;padding:1.15rem;border:1px solid color-mix(in srgb,var(--red-soft) 34%,var(--line));border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--red) 5%,var(--panel)),var(--panel-2));}
.event-cms-heading{margin-bottom:.5rem;padding-bottom:.8rem;border-bottom:1px solid var(--line);}
.event-cms-heading>span{color:var(--red-soft);font-family:var(--font-d);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.event-cms-heading>p{margin:.3rem 0 0;color:var(--muted);font-size:.8rem;line-height:1.55;}
.event-cms-section textarea{width:100%;resize:vertical;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--white);padding:.65rem .8rem;font:inherit;font-size:.88rem;line-height:1.55;}
.event-initial-configuration{gap:1rem;}
.event-builder-block{padding:1rem;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel-2) 88%,transparent);}
.event-builder-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem;}
.event-builder-heading b{display:block;color:var(--white);font-size:.9rem;}
.event-builder-heading small{display:block;max-width:720px;margin-top:.22rem;color:var(--muted);font-size:.76rem;line-height:1.5;}
.event-variant-limit-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem;}
.event-variant-limit-row{padding:.65rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);}
.event-variant-limit-row>span{min-height:2.2em;line-height:1.15;}
.event-builder-rows{display:grid;gap:.65rem;}
.event-builder-row{display:grid;gap:.65rem;align-items:end;padding:.75rem;border:1px dashed color-mix(in srgb,var(--line) 82%,transparent);border-radius:9px;background:color-mix(in srgb,var(--white) 1.5%,transparent);}
.event-paid-builder-row{grid-template-columns:minmax(220px,2fr) minmax(145px,1fr) auto;}
.event-field-builder-row{grid-template-columns:minmax(180px,1.4fr) minmax(145px,.8fr) minmax(210px,1.2fr) auto auto;}
.event-builder-row .fld{margin:0;}
.event-builder-remove{margin-bottom:.05rem;}
.event-field-required{align-self:end;margin:0 0 .5rem;white-space:nowrap;}
.event-field-options[hidden]{display:none!important;}
.event-template-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:0 0 .75rem;}
.event-template-actions>span{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.event-gallery-upload{margin-top:.35rem;padding:.9rem;border:1px dashed color-mix(in srgb,var(--red-soft) 38%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--white) 1.5%,transparent);}
.event-gallery-admin-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;}
.event-gallery-admin-heading .eyebrow{margin:0 0 .3rem;color:var(--red-soft);font-size:.64rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;}
.event-gallery-admin-heading .ch{padding:0;}
.event-gallery-add-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end;padding:1rem;border:1px dashed var(--line);border-radius:10px;background:var(--panel-2);}
.event-gallery-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem;}
.event-gallery-admin-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);}
.event-gallery-admin-card.is-hidden{opacity:.58;}
.event-gallery-admin-card>img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#090b11;}
.event-gallery-item-form{display:grid;gap:.15rem;padding:.85rem;}
.event-gallery-item-controls{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.7rem;align-items:end;}
.event-gallery-item-controls .rodo{margin:0 0 .55rem;}
.event-gallery-delete-form{padding:0 .85rem .85rem;}
.event-gallery-empty{margin:1rem 0 0;padding:1rem;border-radius:9px;background:var(--panel-2);color:var(--muted);font-size:.8rem;}
@media(max-width:1050px){
  .event-field-builder-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .event-field-builder-row .event-field-options{grid-column:1/-1;}
  .event-field-required{justify-self:start;}
  .event-gallery-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .event-cms-section{padding:.9rem;}
  .event-cms-section .addrow{grid-template-columns:1fr!important;}
  .event-builder-heading{display:block;}
  .event-builder-heading>.btn{margin-top:.65rem;}
  .event-paid-builder-row,.event-field-builder-row{grid-template-columns:1fr;}
  .event-field-required{margin:.2rem 0;}
  .event-builder-remove{justify-self:start;}
  .event-gallery-admin-heading{display:block;}
  .event-gallery-admin-heading>.btn{margin-top:.7rem;}
  .event-gallery-add-form{grid-template-columns:1fr;}
  .event-gallery-admin-grid{grid-template-columns:1fr;}
}
/* Filtry zapisów wydarzeń: zwarte na desktopie, bez poziomego przewijania na telefonie. */
.event-signup-filters{
  display:grid;
  grid-template-columns:minmax(190px,1.35fr) repeat(4,minmax(145px,1fr)) auto;
  gap:.75rem;
  align-items:end;
  padding:1rem;
  margin:0 0 1rem;
}
.event-signup-filters .fld{margin:0;min-width:0}
.event-signup-filters select{width:100%;min-width:0}
.event-signup-filter-actions{display:flex;gap:.45rem;align-items:center}
.event-signup-filter-summary{display:flex;align-items:baseline;gap:.65rem;margin:.7rem 0;padding:.8rem 1rem;border:1px solid color-mix(in srgb,var(--red) 35%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--red) 7%,var(--panel));}
.event-signup-filter-summary>span{color:var(--muted);font-size:.76rem;}
.event-signup-filter-summary>b{color:var(--white);font-family:var(--font-d);font-size:1.15rem;}
.event-signup-filter-summary>small{color:var(--muted);}
.event-payment-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.42rem;
  margin-top:.7rem;
}
.event-payment-actions .inline{display:inline-flex;margin:0;}
.event-payment-actions .btn{min-height:38px;}
.event-settlement-editor{margin-top:.65rem;border-top:1px solid var(--line);}
.event-settlement-editor>summary{padding:.55rem 0;color:var(--red-soft);cursor:pointer;font-family:var(--font-d);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;}
.event-settlement-editor-body{display:grid;gap:.7rem;padding:.2rem 0 .45rem;}
.event-settlement-form{display:grid;gap:.55rem;padding:.7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);}
.event-settlement-form .fld{margin:0;}
.event-settlement-form .btn{width:100%;}
.event-manual-payment-form{border-color:color-mix(in srgb,var(--ok) 42%,var(--line));}
.event-price-history{display:grid;gap:.35rem;padding:.65rem;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.7rem;}
.event-price-history>b{color:var(--white);}
.event-price-history>span{display:grid;gap:.1rem;}
.event-price-history small{color:var(--dimmed);}
.individual-weekly-form{grid-template-columns:repeat(6,minmax(120px,1fr));}
.individual-weekly-card{margin-bottom:1rem;}
@media(max-width:1180px){
  .event-signup-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .individual-weekly-form{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:720px){
  .event-signup-filters{grid-template-columns:1fr}
  .event-signup-filter-actions .btn{flex:1;text-align:center}
  .event-signup-filter-summary{align-items:flex-start;flex-direction:column;gap:.18rem;}
  .event-payment-actions{display:grid;grid-template-columns:1fr;gap:.45rem;}
  .event-payment-actions .inline,.event-payment-actions .btn{width:100%;}
  .event-variant-limit-rows,.individual-weekly-form{grid-template-columns:1fr;}
}
.settings-explainer-list{display:grid;gap:.55rem;margin:.8rem 0 1rem;padding-left:1.3rem;color:var(--muted)}
.global-break-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;align-items:end;margin-top:1rem;}
.panel-alert{margin:.85rem 0;padding:.8rem .95rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--muted);font-size:.84rem;line-height:1.55;}
.panel-alert.warning{border-color:color-mix(in srgb,var(--warn) 55%,var(--line));background:color-mix(in srgb,var(--warn) 8%,var(--panel-2));color:var(--white);}
@media(max-width:900px){.global-break-grid{grid-template-columns:1fr;}}
.course-absence-card{margin:1rem 0 1.15rem;padding:0;overflow:hidden}
.course-absence-card>summary{cursor:pointer;list-style:none;display:flex;padding:1rem 1.1rem;align-items:center}
.course-absence-card>summary::-webkit-details-marker{display:none}
.course-absence-card>summary span{display:grid;gap:.18rem}
.course-absence-card>summary small{color:var(--muted);font-weight:400}
.course-absence-body{padding:0 1.1rem 1.1rem;border-top:1px solid var(--line)}
.course-absence-form{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(320px,1.4fr) auto;gap:.8rem;align-items:end;padding-top:1rem}
.course-absence-form .fld,.course-absence-form .rodo{margin:0}
.course-absence-history{display:grid;gap:.35rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.course-absence-history>span{color:var(--muted);font-size:.8rem}
@media(max-width:860px){
  .course-absence-form{grid-template-columns:1fr}
}

/* 2026-07-29 — pełny mobilny panel administracyjny. */
.panel-nav-toggle,.panel-mobile-help-link,.panel-nav-mobile-head,.panel-nav-mobile-actions,.panel-nav-backdrop{display:none;}

@media(max-width:760px){
  .panel-admin-mobile-ui{overflow-x:clip;}
  :is(.role-admin,.role-recepcja,.role-instruktor){
    overflow-x:hidden;
    font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) *{min-width:0;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .top{
    position:sticky;
    z-index:900;
    top:0;
    border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent);
    background:rgba(10,12,19,.96);
    box-shadow:0 10px 30px rgba(0,0,0,.26);
    backdrop-filter:blur(14px);
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .top-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    width:calc(100% - 20px);
    min-height:64px;
    padding:.55rem 0;
    gap:.55rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .panel-brand{
    grid-column:1;
    width:max-content;
    max-width:145px;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .panel-brand-logo{height:30px;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .panel-brand small{
    margin-top:.08rem;
    font-size:.46rem;
    letter-spacing:.12em;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .panel-session-actions{display:none;}
  .panel-mobile-help-link{
    grid-column:2;
    display:grid;
    place-items:center;
    width:44px;
    height:46px;
    border:1px solid var(--line);
    border-radius:10px;
    color:var(--red-soft);
    background:var(--panel);
    font:800 1rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;
    text-decoration:none;
  }
  .panel-mobile-help-link:hover,.panel-mobile-help-link.here{
    border-color:var(--red);
    color:var(--white);
    background:color-mix(in srgb,var(--red) 18%,var(--panel));
  }
  .panel-nav-toggle{
    grid-column:3;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.52rem;
    min-width:84px;
    min-height:46px;
    margin:0;
    padding:.55rem .72rem;
    border:1px solid color-mix(in srgb,var(--red) 52%,var(--line));
    border-radius:10px;
    background:color-mix(in srgb,var(--red) 13%,var(--panel));
    color:var(--white);
    font:700 .74rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;
    cursor:pointer;
  }
  .panel-nav-toggle-icon{display:grid;gap:3px;width:18px;}
  .panel-nav-toggle-icon i{display:block;width:18px;height:2px;border-radius:2px;background:var(--red-soft);}
  .panel-nav-backdrop{
    position:fixed;
    z-index:880;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(3,5,10,.72);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
    backdrop-filter:blur(3px);
  }
  .panel-nav-open{overflow:hidden;}
  .panel-nav-open .panel-nav-backdrop{display:block;opacity:1;pointer-events:auto;}
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main{
    position:fixed!important;
    z-index:1000;
    inset:0 0 0 auto;
    order:initial;
    display:flex;
    width:min(91vw,390px);
    height:100dvh;
    max-height:none;
    flex-basis:auto;
    flex-direction:column;
    align-items:stretch;
    gap:.28rem;
    margin:0;
    padding:.75rem .75rem calc(1rem + env(safe-area-inset-bottom));
    overflow-x:hidden;
    overflow-y:auto;
    border:0;
    border-left:1px solid color-mix(in srgb,var(--red) 38%,var(--line));
    background:linear-gradient(165deg,#181c27 0,#10131b 68%,#0b0d14 100%);
    box-shadow:-24px 0 70px rgba(0,0,0,.52);
    clip-path:inset(0 0 0 100%);
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transition:clip-path .22s ease,opacity .18s ease,visibility 0s linear .22s;
    overscroll-behavior:contain;
  }
  .panel-nav-open:is(.role-admin,.role-recepcja,.role-instruktor) nav.main{
    clip-path:inset(0);
    opacity:1;
    pointer-events:auto;
    visibility:visible;
    transition:clip-path .22s ease,opacity .18s ease;
  }
  .panel-nav-mobile-head{
    position:sticky;
    z-index:2;
    top:-.75rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin:-.75rem -.75rem .35rem;
    padding:calc(.9rem + env(safe-area-inset-top)) .9rem .85rem;
    border-bottom:1px solid var(--line);
    background:rgba(18,22,31,.97);
    backdrop-filter:blur(12px);
  }
  .panel-nav-mobile-head>span{display:flex;flex-direction:column;gap:.12rem;}
  .panel-nav-mobile-head small{
    color:var(--red-soft);
    font-size:.58rem;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
  }
  .panel-nav-mobile-head b{font-size:1rem;}
  .panel-nav-mobile-head>button{
    display:grid;
    width:44px;
    height:44px;
    place-items:center;
    border:1px solid var(--line);
    border-radius:10px;
    background:var(--panel-2);
    color:var(--white);
    font-size:1.45rem;
    line-height:1;
    cursor:pointer;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main>a,
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main>details>summary{
    display:flex;
    width:100%;
    min-height:48px;
    align-items:center;
    justify-content:space-between;
    padding:.72rem .85rem;
    border:1px solid transparent;
    border-radius:10px;
    color:var(--muted);
    font-size:.88rem;
    font-weight:650;
    letter-spacing:0;
    text-decoration:none;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main>a.here,
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main>details.here>summary{
    border-color:color-mix(in srgb,var(--red) 50%,var(--line));
    background:color-mix(in srgb,var(--red) 16%,var(--panel-2));
    color:var(--white);
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main .navgroup{
    display:block;
    width:100%;
    min-width:0;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main .navgroup[open]{min-width:0;}
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main .navdrop{
    position:static;
    display:grid;
    gap:.2rem;
    min-width:0;
    margin:.2rem 0 .35rem;
    padding:.35rem;
    border:1px solid color-mix(in srgb,var(--line) 75%,transparent);
    border-radius:10px;
    background:rgba(7,9,14,.36);
    box-shadow:none;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main .navdrop a{
    display:flex;
    min-height:44px;
    align-items:center;
    padding:.62rem .72rem!important;
    border-radius:8px;
    color:var(--muted);
    font-size:.82rem;
    white-space:normal;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main .navdrop a.here{
    background:color-mix(in srgb,var(--red) 14%,var(--panel-2));
    color:var(--white);
  }
  .panel-nav-mobile-actions{
    display:grid;
    gap:.55rem;
    margin-top:auto;
    padding-top:.85rem;
    border-top:1px solid var(--line);
  }
  .panel-nav-mobile-actions .panel-public-link,
  .panel-nav-mobile-actions .btn-login{
    display:flex;
    width:100%;
    min-height:48px;
    align-items:center;
    justify-content:center;
    margin:0;
    border-radius:10px;
    font-size:.78rem;
    font-weight:750;
    text-decoration:none;
  }
  .panel-nav-mobile-actions form{margin:0;}

  :is(.role-admin,.role-recepcja,.role-instruktor) .panel-main.wrap{
    width:calc(100% - 20px);
    padding:1rem 0 calc(3.2rem + env(safe-area-inset-bottom));
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .ph{
    margin:0 0 .35rem;
    font-size:clamp(1.55rem,8vw,2.05rem);
    line-height:1.08;
    letter-spacing:-.025em;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .psub{
    margin:0 0 1rem;
    font-size:.82rem;
    line-height:1.48;
  }
  .panel-page-heading{display:grid;gap:.75rem;margin-bottom:1rem;}
  .panel-page-heading>.btn{width:100%;min-height:46px;margin:0;justify-content:center;text-align:center;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .card{border-radius:12px;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .form-card{padding:1rem;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .fld{margin-bottom:.72rem;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .fld>span{
    margin-bottom:.3rem;
    font-size:.61rem;
    letter-spacing:.1em;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) :is(input,select,textarea,button){max-width:100%;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .fld :is(input,select,textarea){
    min-height:48px;
    padding:.72rem .78rem;
    font-size:1rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .fld textarea{min-height:112px;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .rodo{
    grid-template-columns:1.4rem minmax(0,1fr);
    gap:.65rem;
    font-size:.83rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .rodo :is(input[type="checkbox"],input[type="radio"]){
    width:1.35rem;
    height:1.35rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .btn{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:normal;
    text-align:center;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .btn.sm{min-height:42px;padding:.58rem .72rem;font-size:.7rem;}
  :is(.role-admin,.role-recepcja,.role-instruktor) .link-remove{
    display:inline-grid;
    width:42px;
    height:42px;
    place-items:center;
    border:1px solid var(--line);
    border-radius:9px;
    background:var(--panel-3);
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .addrow,
  :is(.role-admin,.role-recepcja,.role-instruktor) .panel-main form[style*="grid-template-columns"]{
    grid-template-columns:1fr!important;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .split-actions,
  :is(.role-admin,.role-recepcja,.role-instruktor) .filter-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:.5rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) .split-actions .btn,
  :is(.role-admin,.role-recepcja,.role-instruktor) .filter-actions .btn{width:100%;}
  .panel-create-card{margin-bottom:.85rem;scroll-margin-top:80px;}
  .panel-create-card>summary{min-height:58px;padding:.75rem .85rem;}
  .panel-create-card>summary small{display:none;}
  .panel-create-body{padding:.85rem;}
  .panel-info-callout{grid-template-columns:1fr;gap:.3rem;padding:.8rem;}
  .panel-info-callout b{grid-row:auto;}
  :is(.role-admin,.role-recepcja) .client-card-shortcuts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.42rem;
    margin:0 0 .75rem;
    padding:0;
    overflow:visible;
  }
  :is(.role-admin,.role-recepcja) .client-card-shortcuts a{
    display:flex;
    min-height:44px;
    flex:none;
    align-items:center;
    justify-content:center;
    padding:.52rem .55rem;
    border-radius:9px;
    text-align:center;
    white-space:normal;
  }
  :is(.role-admin,.role-recepcja) .family-member-nav{
    display:flex;
    flex-wrap:wrap;
    overflow:visible;
  }
  :is(.role-admin,.role-recepcja) .family-person-chip{flex:1 1 145px;}
  :is(.role-admin,.role-recepcja) .client-primary-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:.45rem;
  }
  :is(.role-admin,.role-recepcja) .client-primary-actions .btn{width:100%;}

  .panel-welcome{display:grid;gap:.9rem;padding:1rem;margin-bottom:.7rem;border-radius:13px;}
  .panel-welcome h1{margin:.12rem 0 .35rem;font-size:clamp(1.7rem,8vw,2.3rem);}
  .panel-welcome p{font-size:.82rem;line-height:1.45;}
  .panel-welcome-actions{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:0;}
  .panel-welcome-actions .btn{width:100%;min-height:44px;padding:.55rem .65rem;}
  .panel-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-bottom:.65rem;}
  .panel-metric{
    min-height:92px;
    padding:.78rem;
    border-radius:11px;
    gap:.12rem .4rem;
  }
  .panel-metric>span{font-size:.7rem;line-height:1.3;}
  .panel-metric>b{font-size:1.45rem;}
  .panel-metric>small{font-size:.61rem;line-height:1.25;}
  .panel-home-grid{gap:.65rem;margin-bottom:.65rem;}
  .panel-priority-card,.panel-today-card{padding:.85rem;}
  .panel-section-head{margin-bottom:.58rem;}
  .panel-section-head h2{font-size:1.02rem;}
  .panel-section-head>small,.panel-section-head>a{font-size:.65rem;}
  .panel-priority-list>a{grid-template-columns:32px minmax(0,1fr) auto;padding:.62rem;gap:.55rem;}
  .panel-priority-icon{width:32px;height:32px;}
  .panel-today-row{grid-template-columns:44px minmax(0,1fr);padding:.58rem .62rem;}
  .panel-today-row em{grid-column:2;}
  .panel-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;}
  .panel-shortcuts>a{min-height:82px;padding:.75rem;}

  .instructor-profile-grid{gap:.65rem;}
  .instructor-profile-card{
    display:grid;
    grid-template-columns:94px minmax(0,1fr);
    min-height:0;
  }
  .instructor-profile-photo{height:auto;min-height:100%;}
  .instructor-profile-main{padding:.78rem;}
  .instructor-profile-head h2{font-size:1rem;}
  .instructor-profile-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem;margin:.5rem 0;}
  .instructor-profile-facts>span{padding:.38rem;}
  .instructor-profile-facts small{font-size:.52rem;}
  .instructor-profile-facts b{font-size:.7rem;}
  .instructor-profile-courses{margin:.45rem 0;}
  .instructor-profile-completeness{flex-wrap:wrap;margin:.45rem 0;}
  .instructor-profile-actions{display:grid;grid-template-columns:1fr;gap:.4rem;}
  .instructor-profile-actions .btn{width:100%;}
  .instructor-editor{grid-template-columns:1fr;}
  .instructor-photo-editor{width:138px;max-width:100%;}

  :is(.role-admin,.role-recepcja,.role-instruktor) .tbl-card{max-width:100%;overflow:visible;padding:.25rem 0;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards{
    display:block;
    width:100%;
    min-width:0!important;
    background:transparent;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards thead{display:none;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards tbody{
    display:grid;
    gap:.62rem;
    width:100%;
    padding:.42rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards tr{
    display:block;
    width:100%;
    margin:0;
    padding:.42rem .68rem;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--panel-2);
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    gap:.55rem;
    width:100%;
    min-height:38px;
    align-items:start;
    padding:.48rem 0;
    border:0!important;
    border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;
    text-align:left!important;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td:last-child{border-bottom:0!important;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td::before{
    content:attr(data-label);
    grid-column:1;
    color:var(--dimmed);
    font:700 .56rem/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td>*{grid-column:2;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td[colspan]{
    display:block;
    min-height:0;
    padding:.65rem 0;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td[colspan]::before{content:none;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards .inline{
    display:flex;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:.4rem;
    margin:0 0 .4rem;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards .inline:last-child{margin-bottom:0;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards :is(input,select,textarea){
    width:100%!important;
    min-height:44px;
    font-size:.95rem!important;
  }
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards .btn{width:100%;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards .acts{white-space:normal;}

  .dayrow,.dayrow.slim{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:.35rem .65rem;
    padding:.7rem .78rem;
  }
  .dayrow .dt{min-width:0;font-size:.76rem;}
  .dayrow .dn{grid-column:1/-1;min-width:0;font-size:.86rem;}
  .dayrow .pill{grid-column:2;grid-row:1;margin:0;justify-self:end;}
  .room-group{margin-bottom:1rem;}
  .room-head{font-size:.92rem;margin-bottom:.5rem;}
  .qsession{padding:.7rem .75rem;}
  .qsession-collapsible>summary{padding:.72rem .75rem;}
  .qsession-toggle-label{width:100%;min-height:44px;margin-left:0;}
  .qsession-body{padding:.45rem .75rem .7rem;}
  .qsession-head{gap:.45rem;}
  .qsession-head .dt{min-width:72px;}
  .qsession-head .btn.sec.sm{width:100%;margin:0;}
  .qr-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;padding:.55rem 0;}
  .qr-name{grid-column:1;grid-row:1;min-width:0;font-size:.84rem;}
  .qr-pass-state{
    grid-column:1/-1;
    grid-row:2;
    order:initial;
    width:100%;
    min-width:0;
    margin:0;
  }
  .qr-pass-state small{white-space:normal;}
  .qr-row>form.inline{grid-column:2;grid-row:1;display:block;margin:0;}
  .qr-row>.qr-toggle{grid-column:2;grid-row:1;}
  .qr-toggle{width:3.25rem;height:2.65rem;}
  .qr-toggle::after{top:5px;left:5px;width:1.9rem;height:1.9rem;}
  .qr-toggle.on::after{transform:translateX(.75rem);}

  .course-signup-card{padding:.8rem;}
  .course-signup-facts{grid-template-columns:1fr;gap:.4rem;margin:.55rem 0;}
  .course-signup-confirm{grid-template-columns:1fr;}
  .course-signup-confirm .split-actions{grid-column:1;}
  .event-builder-block,.event-cms-section{padding:.78rem;}
  .event-template-actions .btn{flex:1;}
  .event-gallery-item-controls{grid-template-columns:1fr;}
  .event-gallery-item-controls .rodo{margin:0;}
  .course-absence-body{padding:0 .8rem .8rem;}

  .hof-admin-grid{gap:.65rem;}
  .hof-admin-card{display:grid;grid-template-columns:96px minmax(0,1fr);min-height:0;}
  .hof-admin-card>img{height:100%;min-height:160px;}
  .hof-admin-card-body{padding:.75rem;}
  .hof-admin-card-body h3{font-size:1rem;}
  .hof-admin-card-body>p{font-size:.72rem;}

  .panel-system-dialog{
    width:calc(100vw - 20px);
    max-height:calc(100dvh - 20px);
  }
  .panel-system-dialog-card{
    grid-template-columns:42px minmax(0,1fr);
    max-height:calc(100dvh - 20px);
    padding:1rem;
    gap:.72rem;
    overflow-y:auto;
    border-radius:16px;
  }
  .panel-system-dialog-mark{width:42px;height:42px;border-radius:11px;}
  .panel-system-dialog-copy h2{font-size:1.2rem;}
  .panel-system-dialog-copy>p:last-child{font-size:.88rem;line-height:1.5;}
  .panel-system-dialog-actions{grid-template-columns:1fr;gap:.45rem;}
  .panel-notice{
    grid-template-columns:38px minmax(0,1fr) auto;
    gap:.65rem;
    padding:.78rem;
    border-radius:12px;
  }
  .panel-notice-mark{width:38px;height:38px;border-radius:9px;}
  .panel-notice b{font-size:.88rem;}
  .panel-notice small{font-size:.8rem;line-height:1.4;}
}

@media(max-width:420px){
  .panel-welcome-actions{grid-template-columns:1fr;}
  .panel-shortcuts{grid-template-columns:1fr 1fr;}
  .panel-shortcuts>a{min-height:76px;padding:.65rem;}
  :is(.role-admin,.role-recepcja,.role-instruktor) table.admin-mobile-cards td{
    grid-template-columns:80px minmax(0,1fr);
    gap:.45rem;
  }
  .instructor-profile-card{grid-template-columns:84px minmax(0,1fr);}
  .instructor-profile-facts{grid-template-columns:1fr;}
  .panel-priority-list>a{grid-template-columns:30px minmax(0,1fr);}
  .panel-priority-list>a>strong{grid-column:2;}
}

@media(prefers-reduced-motion:reduce){
  .panel-nav-backdrop,
  :is(.role-admin,.role-recepcja,.role-instruktor) nav.main{transition:none!important;}
}
.password-control{position:relative;display:block;width:100%}
.password-control input{width:100%;padding-right:5.25rem!important}
.password-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);z-index:2;border:0;border-radius:6px;background:transparent;color:var(--red-soft);font:inherit;font-size:.78rem;font-weight:700;padding:.42rem .5rem;cursor:pointer}
.password-toggle:hover,.password-toggle:focus-visible{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--white);outline:2px solid color-mix(in srgb,var(--red) 55%,transparent);outline-offset:1px}

/* Centrum pomocy — żywa, przeszukiwalna instrukcja panelu. */
.panel-help-link{
  flex:none;display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .72rem;
  border:1px solid var(--line);border-radius:7px;color:var(--white);background:var(--panel);
  font-family:var(--font-d);font-size:.7rem;font-weight:700;letter-spacing:.05em;
  text-decoration:none;text-transform:uppercase;white-space:nowrap;
}
.panel-help-link::before{content:'?';display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;font-size:.7rem;}
.panel-help-link:hover,.panel-help-link.here{border-color:var(--red);background:color-mix(in srgb,var(--red) 16%,var(--panel));}
.help-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:1.2rem;margin-bottom:1.15rem;}
.help-hero .ph{margin:.1rem 0 .35rem;font-size:clamp(2rem,4vw,3.4rem);}
.help-hero .psub{margin:0;}
.help-search-card{
  position:sticky;top:76px;z-index:12;margin:0 0 1rem;padding:1rem;
  border:1px solid var(--line);border-radius:16px;
  background:color-mix(in srgb,var(--panel) 94%,transparent);
  box-shadow:0 18px 46px rgba(0,0,0,.24);backdrop-filter:blur(16px);
}
.help-search-field{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;
  min-height:54px;padding:.35rem .6rem .35rem 1rem;border:1px solid color-mix(in srgb,var(--red) 38%,var(--line));
  border-radius:12px;background:var(--ink);
}
.help-search-field:focus-within{border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 18%,transparent);}
.help-search-field input{width:100%;min-width:0;border:0!important;padding:.55rem 0!important;background:transparent!important;box-shadow:none!important;color:var(--white);font-size:1rem;}
.help-search-field input:focus{outline:0;}
.help-search-icon{color:var(--red-soft);font-size:1.6rem;line-height:1;}
.help-search-field kbd{padding:.25rem .42rem;border:1px solid var(--line);border-radius:5px;color:var(--muted);background:var(--panel2);font-size:.68rem;}
.help-category-list{display:flex;gap:.4rem;overflow-x:auto;padding:.75rem 0 .2rem;scrollbar-width:thin;}
.help-category-list button{
  flex:none;padding:.42rem .72rem;border:1px solid var(--line);border-radius:999px;
  color:var(--muted);background:transparent;font:inherit;font-size:.75rem;cursor:pointer;white-space:nowrap;
}
.help-category-list button:hover,.help-category-list button.is-active{border-color:var(--red);color:var(--white);background:color-mix(in srgb,var(--red) 18%,transparent);}
.help-result-summary{margin:.55rem 0 0;color:var(--muted);font-size:.76rem;}
.help-context-card{
  display:flex;align-items:center;gap:.8rem;margin:0 0 1rem;padding:.8rem 1rem;
  border:1px solid color-mix(in srgb,var(--red) 55%,var(--line));border-radius:12px;
  color:var(--white);background:linear-gradient(110deg,color-mix(in srgb,var(--red) 17%,var(--panel)),var(--panel));text-decoration:none;
}
.help-context-card>span:first-child{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--red);font-size:1.15rem;}
.help-context-card small,.help-context-card b{display:block;}.help-context-card small{margin-bottom:.14rem;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;}
.help-empty{padding:2rem;border:1px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted);}
.help-empty>span{display:grid;place-items:center;width:52px;height:52px;margin:0 auto .8rem;border-radius:50%;background:var(--panel2);color:var(--red-soft);font:700 1.4rem var(--font-d);}
.help-empty h2{margin:0;color:var(--white);}.help-empty p{margin:.35rem 0 0;}
.help-article-list{display:grid;gap:.7rem;}
.help-article{scroll-margin-top:190px;}
.help-article[hidden]{display:none!important;}
.help-article details{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;}
.help-article.is-context details{border-color:color-mix(in srgb,var(--red) 70%,var(--line));box-shadow:0 14px 38px color-mix(in srgb,var(--red) 10%,transparent);}
.help-article summary{
  display:grid;grid-template-columns:44px minmax(0,1fr) 38px;align-items:center;gap:.9rem;
  padding:1rem 1.1rem;cursor:pointer;list-style:none;
}
.help-article summary::-webkit-details-marker{display:none;}
.help-article summary:hover{background:color-mix(in srgb,var(--red) 5%,var(--panel));}
.help-article-number{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;background:var(--panel2);color:var(--red-soft);font:700 .75rem var(--font-d);}
.help-article-heading{min-width:0;}
.help-article-heading>*{display:block;}
.help-article-heading small{margin-bottom:.18rem;color:var(--red-soft);font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.help-article-heading b{color:var(--white);font:700 1rem/1.25 var(--font-d);}
.help-article-heading>span{margin-top:.25rem;color:var(--muted);font-size:.82rem;line-height:1.45;}
.help-expand{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;color:var(--red-soft);font-size:1.1rem;transition:transform .2s ease;}
.help-article details[open] .help-expand{transform:rotate(45deg);}
.help-article-body{padding:0 1.1rem 1.2rem 5.95rem;border-top:1px solid var(--line);}
.help-path-preview{margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--line);border-radius:11px;background:var(--ink);}
.help-path-preview>small{display:block;margin-bottom:.5rem;color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;}
.help-path-preview>div{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.help-path-preview b{padding:.42rem .65rem;border:1px solid color-mix(in srgb,var(--red) 35%,var(--line));border-radius:7px;color:var(--white);background:var(--panel2);font-size:.75rem;}
.help-path-preview span{color:var(--red-soft);}
.help-steps{display:grid;gap:.7rem;margin:1rem 0;padding:0;list-style:none;counter-reset:help-step;}
.help-steps li{position:relative;min-height:34px;padding:.15rem 0 0 44px;color:var(--text);font-size:.88rem;line-height:1.55;counter-increment:help-step;}
.help-steps li::before{content:counter(help-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--red) 17%,var(--panel2));color:var(--red-soft);font:700 .72rem var(--font-d);}
.help-tip{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;margin-top:1rem;padding:.75rem .85rem;border-left:3px solid var(--red);border-radius:0 9px 9px 0;background:color-mix(in srgb,var(--red) 8%,var(--ink));font-size:.8rem;line-height:1.5;}
.help-tip b{color:var(--red-soft);white-space:nowrap;}.help-tip span{color:var(--muted);}
.help-role-badges{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.85rem;}
.help-role-badges span{padding:.3rem .48rem;border-radius:6px;background:var(--panel2);color:var(--muted);font-size:.65rem;}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}

@media(max-width:760px){
  .help-hero{align-items:flex-start;margin-bottom:.65rem;}
  .role-admin .help-print-button,.role-manager .help-print-button,.role-recepcja .help-print-button,.role-instruktor .help-print-button{display:none!important;}
  .help-search-card{top:62px;margin-inline:-4px;padding:.7rem;border-radius:13px;}
  .help-search-field{min-height:50px;padding-left:.75rem;}
  .help-search-field kbd{display:none;}
  .help-article summary{grid-template-columns:38px minmax(0,1fr) 30px;gap:.65rem;padding:.85rem .75rem;}
  .help-article-number{width:38px;height:38px;border-radius:9px;}
  .help-expand{width:30px;height:30px;}
  .help-article-heading>span{font-size:.78rem;}
  .help-article-body{padding:0 .75rem 1rem;}
  .help-path-preview{margin:.8rem 0;padding:.7rem;}
  .help-path-preview>div{gap:.35rem;}
  .help-path-preview b{font-size:.7rem;padding:.36rem .5rem;}
  .help-tip{grid-template-columns:1fr;gap:.2rem;}
}
@media print{
  header.top,.help-search-card,.help-context-card,.help-print-button,.panel-notice-stack{display:none!important;}
  body,.panel-main.wrap{background:#fff!important;color:#111!important;width:100%!important;}
  .help-article[hidden]{display:block!important;}
  .help-article details{break-inside:avoid;border-color:#bbb;background:#fff;}
  .help-article details:not([open])>*:not(summary){display:block!important;}
  .help-article-heading b,.help-hero .ph{color:#111!important;}
  .help-article-heading span,.help-steps li,.help-tip span{color:#333!important;}
}

/* Pulpit instruktora. */
.instructor-dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;}
.instructor-dashboard-hero .ph{margin:.1rem 0 .25rem;font-size:clamp(2rem,4vw,3.35rem);}
.instructor-dashboard-hero .psub{margin:0;}
.instructor-link-warning{max-width:760px;border-color:color-mix(in srgb,var(--red) 55%,var(--line));}
.instructor-link-warning .ch{padding:0;margin:0 0 .45rem;}.instructor-link-warning p{margin:0;color:var(--muted);line-height:1.6;}
.instructor-month-picker{display:flex;justify-content:flex-end;margin:.5rem 0 .75rem;}
.instructor-month-picker label{display:grid;grid-template-columns:auto minmax(180px,240px);align-items:center;gap:.65rem;}
.instructor-month-picker label>span{color:var(--muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.instructor-month-picker select{min-width:210px;}
.instructor-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.65rem;}
.instructor-kpi{
  position:relative;min-width:0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--red) 5%,var(--panel2)));overflow:hidden;
}
.instructor-kpi::after{content:'';position:absolute;right:-25px;bottom:-42px;width:105px;height:105px;border:1px solid color-mix(in srgb,var(--red) 20%,transparent);border-radius:50%;}
.instructor-kpi small,.instructor-kpi span,.instructor-kpi b{position:relative;z-index:1;display:block;}
.instructor-kpi small{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;}
.instructor-kpi>b{margin:.35rem 0 .15rem;color:var(--white);font:700 clamp(1.8rem,3vw,2.8rem)/1 var(--font-d);}
.instructor-kpi>span{color:var(--red-soft);font-size:.8rem;}
.instructor-kpi.is-total{border-color:color-mix(in srgb,var(--red) 60%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--red) 24%,var(--panel)),var(--panel));}
.instructor-kpi.is-total>b{font-size:clamp(1.45rem,2.5vw,2.15rem);}
.instructor-accounting-note{margin:.4rem 0 1rem;padding-left:.7rem;border-left:2px solid var(--red);color:var(--muted);font-size:.76rem;line-height:1.45;}
.instructor-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.75fr);gap:.9rem;align-items:start;margin-bottom:1.3rem;}
.instructor-upcoming-card,.instructor-week-card,.instructor-history-card{padding:1.05rem;}
.instructor-dashboard-grid .panel-section-heading,.instructor-groups-section>.panel-section-heading,.instructor-history-card>.panel-section-heading{margin-bottom:.8rem;}
.instructor-dashboard-grid .ch,.instructor-groups-section .ch,.instructor-history-card .ch{padding:0;margin:.1rem 0;}
.instructor-empty{display:grid;gap:.25rem;padding:1rem;border:1px dashed var(--line);border-radius:11px;color:var(--muted);}
.instructor-empty b{color:var(--white);}.instructor-empty span{font-size:.78rem;line-height:1.45;}
.instructor-agenda{display:grid;gap:.3rem;max-height:650px;overflow:auto;padding-right:.2rem;scrollbar-width:thin;}
.instructor-agenda-day[hidden]{display:none!important;}
.instructor-agenda-more{width:100%;margin-top:.75rem;text-align:center;}
.instructor-agenda-day{display:grid;grid-template-columns:80px minmax(0,1fr);gap:.7rem;padding:.65rem 0;border-top:1px solid var(--line);}
.instructor-agenda-day:first-child{border-top:0;}
.instructor-agenda-date{display:flex;align-items:center;gap:.4rem;align-self:start;}
.instructor-agenda-date>b{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:color-mix(in srgb,var(--red) 17%,var(--panel2));color:var(--red-soft);font:700 1.1rem var(--font-d);}
.instructor-agenda-date>span{color:var(--muted);font-size:.63rem;line-height:1.25;}
.instructor-agenda-items{display:grid;gap:.35rem;}
.instructor-agenda-item{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.65rem .72rem;border:1px solid var(--line);border-radius:9px;background:var(--ink);}
.instructor-agenda-item.is-individual{border-color:color-mix(in srgb,var(--red) 48%,var(--line));}
.instructor-agenda-item time{color:var(--white);font:700 .75rem var(--font-d);white-space:nowrap;}
.instructor-agenda-item>span{min-width:0;}.instructor-agenda-item>span>*{display:block;}
.instructor-agenda-item>span>b{overflow:hidden;color:var(--white);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap;}
.instructor-agenda-item>span>small{margin-top:.15rem;color:var(--muted);font-size:.68rem;overflow-wrap:anywhere;}
.instructor-agenda-item em{padding:.28rem .42rem;border-radius:5px;background:var(--panel2);color:var(--muted);font-size:.58rem;font-style:normal;text-transform:uppercase;letter-spacing:.06em;}
.instructor-agenda-item.is-individual em{background:color-mix(in srgb,var(--red) 17%,var(--panel2));color:var(--red-soft);}
.instructor-week-list{display:grid;gap:.8rem;}
.instructor-week-list>div{display:grid;gap:.28rem;}
.instructor-week-list h3{margin:0 0 .18rem;color:var(--red-soft);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;}
.instructor-week-list p{display:grid;grid-template-columns:82px minmax(0,1fr);gap:.55rem;margin:0;padding:.55rem .6rem;border-radius:8px;background:var(--ink);}
.instructor-week-list time{color:var(--white);font:700 .7rem var(--font-d);}
.instructor-week-list p span>*{display:block;}.instructor-week-list p b{color:var(--white);font-size:.75rem;line-height:1.3;}.instructor-week-list p small{margin-top:.12rem;color:var(--muted);font-size:.64rem;}
.instructor-groups-section{margin:1rem 0 1.3rem;}
.instructor-groups-section .psub{margin:.15rem 0 0;}
.instructor-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;}
.instructor-group-card{padding:0;overflow:hidden;}
.instructor-group-card summary{display:grid;grid-template-columns:minmax(0,1fr) auto 34px;align-items:center;gap:.75rem;padding:1rem;cursor:pointer;list-style:none;}
.instructor-group-card summary::-webkit-details-marker{display:none;}
.instructor-group-card summary>span:first-child{min-width:0;}.instructor-group-card summary>span:first-child>*{display:block;}
.instructor-group-card summary small{color:var(--muted);font-size:.62rem;line-height:1.35;}
.instructor-group-card summary b{margin:.2rem 0;color:var(--white);font:700 .9rem/1.3 var(--font-d);}
.instructor-group-card summary em{color:var(--muted);font-size:.68rem;font-style:normal;line-height:1.45;}
.instructor-group-count{text-align:right;white-space:nowrap;}.instructor-group-count b{margin:0!important;color:var(--red-soft)!important;font-size:1.4rem!important;}.instructor-group-count small{color:var(--muted);}
.instructor-group-card summary>i{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;color:var(--red-soft);font-size:1rem;font-style:normal;transition:transform .2s ease;}
.instructor-group-card[open] summary>i{transform:rotate(45deg);}
.instructor-group-card[open] summary{border-bottom:1px solid var(--line);}
.instructor-group-body{padding:.7rem 1rem 1rem;}
.instructor-group-body ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .7rem;margin:0;padding:0;list-style:none;counter-reset:participant;}
.instructor-group-body li{position:relative;min-width:0;padding:.42rem .5rem .42rem 2rem;border-radius:7px;background:var(--ink);color:var(--text);font-size:.73rem;counter-increment:participant;}
.instructor-group-body li::before{content:counter(participant);position:absolute;left:.45rem;color:var(--red-soft);font:700 .65rem var(--font-d);}
.instructor-group-body li span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.instructor-history-table-wrap{overflow-x:auto;}
.instructor-history-table tr.is-selected td{background:color-mix(in srgb,var(--red) 8%,var(--panel));}

@media(max-width:980px){
  .instructor-dashboard-grid{grid-template-columns:1fr;}
  .instructor-week-list{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .instructor-dashboard-hero{display:grid;align-items:start;}
  .instructor-dashboard-hero .btn{width:100%;text-align:center;}
  .instructor-month-picker{justify-content:stretch;}
  .instructor-month-picker label{width:100%;grid-template-columns:1fr;}
  .instructor-month-picker select{width:100%;min-width:0;}
  .instructor-kpis{grid-template-columns:1fr 1fr;}
  .instructor-kpi.is-total{grid-column:1/-1;}
  .instructor-group-grid{grid-template-columns:1fr;}
  .instructor-upcoming-card,.instructor-week-card,.instructor-history-card{padding:.8rem;}
  .instructor-agenda{max-height:none;overflow:visible;}
  .instructor-agenda-day{grid-template-columns:1fr;gap:.45rem;}
  .instructor-agenda-date>b{width:36px;height:36px;}
  .instructor-agenda-item{grid-template-columns:74px minmax(0,1fr);}
  .instructor-agenda-item em{grid-column:2;justify-self:start;}
  .instructor-week-list{grid-template-columns:1fr;}
  .instructor-group-card summary{grid-template-columns:minmax(0,1fr) auto 30px;padding:.8rem;gap:.5rem;}
  .instructor-group-body ol{grid-template-columns:1fr;}
  .instructor-history-table-wrap{overflow:visible;}
  .instructor-history-table,.instructor-history-table tbody{display:block;}
  .instructor-history-table thead{display:none;}
  .instructor-history-table tr{display:grid;grid-template-columns:1fr auto;margin-bottom:.55rem;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
  .instructor-history-table td{display:grid;grid-template-columns:105px minmax(0,1fr);grid-column:1/-1;gap:.5rem;border:0!important;padding:.48rem .65rem!important;text-align:left!important;}
  .instructor-history-table td::before{content:attr(data-label);color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;}
  .instructor-history-table td:last-child{display:block;text-align:right!important;background:var(--ink);}
  .instructor-history-table td:last-child .btn{width:100%;text-align:center;}
}
@media(max-width:430px){
  .instructor-kpis{grid-template-columns:1fr;}
  .instructor-kpi.is-total{grid-column:auto;}
  .instructor-agenda-item{grid-template-columns:1fr;}
  .instructor-agenda-item em{grid-column:1;}
  .instructor-group-count{display:none;}
}
