:root{
  --abyss:#06243A; --lagoon:#0E6E8C; --shallow:#5FB6C8; --surface:#EEF6F7;
  --signal:#F2C230; --coral:#E8604C; --ok:#2E9B6A;
  --bg:#F7FAFB; --card:#FFFFFF; --ink:#0C2A3B; --muted:#557080; --line:#D6E3E8; --field:#FFFFFF;
  --font:"Onest","Noto Sans Georgian", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --bg:#071B2A; --card:#0C2638; --ink:#E6F1F4; --muted:#93AFBD; --line:#1D4058; --field:#0A2131; --surface:#0C2638;
}}
:root[data-theme="dark"]{ --bg:#071B2A; --card:#0C2638; --ink:#E6F1F4; --muted:#93AFBD; --line:#1D4058; --field:#0A2131; --surface:#0C2638; }
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5}
a{color:var(--lagoon)} :root[data-theme="dark"] a{color:var(--shallow)}
h1,h2,h3{line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,6vw,4.6rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;letter-spacing:-.01em}
h3{font-size:1.15rem;font-weight:600}
p{margin:0 0 1em;max-width:68ch}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.btn{display:inline-flex;align-items:center;gap:.5em;border:0;border-radius:999px;padding:.75em 1.4em;font-weight:600;cursor:pointer;text-decoration:none;background:var(--signal);color:#1B1400}
.btn.ghost{background:transparent;border:2px solid currentColor;color:inherit}
.btn.dark{background:var(--abyss);color:#fff}
.btn.sm{padding:.45em .9em;font-size:.9rem}
.btn.danger{background:var(--coral);color:#fff}
.btn:disabled{opacity:.45;cursor:not-allowed}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)} .small{font-size:.875rem}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px}
.tag{display:inline-block;font-size:.78rem;font-weight:600;padding:.15em .6em;border-radius:6px;background:var(--surface);color:var(--lagoon);border:1px solid var(--line)}
.tag.ok{color:var(--ok)} .tag.warn{color:#9A6B00;background:#FFF5D6;border-color:#F2DD9A} .tag.bad{color:var(--coral)}
label{display:block;font-size:.9rem;font-weight:500;margin:0 0 4px}
.f{margin-bottom:14px}
input[type=text],input[type=search],input[type=email],input[type=tel],input[type=date],input[type=password],input[type=number],input[type=url],select,textarea{width:100%;padding:.65em .8em;border:1px solid var(--line);border-radius:10px;background:var(--field)}
textarea{min-height:90px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin-bottom:10px}
.check input{margin-top:4px;width:18px;height:18px;flex:none}
.hint{font-size:.8rem;color:var(--muted);margin-top:4px}
.err{color:var(--coral);font-size:.85rem;margin-top:4px}
.invalid{border-color:var(--coral)!important;box-shadow:0 0 0 3px rgba(232,96,76,.18)}
.ferr{color:var(--coral);font-size:.8rem;margin-top:4px}
tr.near td{background:rgba(46,155,106,.13)}
.chip{display:inline-flex;width:22px;height:22px;border-radius:6px;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;border:1px solid var(--line);color:var(--muted);margin-right:2px}
.chip.on{background:var(--lagoon);color:#fff;border-color:var(--lagoon)}
td:has(.chip),td:has(.mini){white-space:nowrap}
.mini{display:inline-flex;align-items:center;gap:3px;margin-right:8px;font-size:.82rem;white-space:nowrap}.mini input{width:16px;height:16px}
.msg{border-left:4px solid var(--signal);background:var(--card);border-radius:10px;padding:14px 16px;margin-bottom:12px}
.topline .row{flex-wrap:nowrap}.srch{width:260px!important;max-width:60vw}
th.sort{cursor:pointer;user-select:none}th.sort:hover{color:var(--ink)}
.wait-old{color:var(--coral);font-weight:600}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--muted);font-size:.8rem}
.tscroll{overflow-x:auto}
/* toast + modal */
#toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--abyss);color:#fff;padding:.7em 1.2em;border-radius:12px;z-index:60;display:none;max-width:90vw}
.modal-bg{position:fixed;inset:0;background:rgba(6,36,58,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}
.modal{background:var(--card);border-radius:18px;padding:24px;max-width:480px;width:100%;max-height:90vh;overflow:auto}
/* dev bar */
#dev{position:fixed;left:0;right:0;bottom:0;background:#FFF5D6;color:#3a2c00;border-top:2px solid var(--signal);padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));font-size:.82rem;z-index:40;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
#dev select,#dev button{font-size:.82rem;padding:.3em .6em;border-radius:8px;border:1px solid #d9c27a;background:#fff;color:#3a2c00}


/* ---------- LANDING ---------- */
.hero{position:relative;min-height:92vh;color:#fff;overflow:hidden;background:var(--abyss);display:flex;align-items:flex-end}
.hero video,.hero .water{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.water{background:
  radial-gradient(120% 60% at 30% -10%, rgba(95,182,200,.55), transparent 60%),
  radial-gradient(80% 50% at 80% 10%, rgba(14,110,140,.6), transparent 70%),
  linear-gradient(180deg,#0E6E8C 0%,#06243A 70%)}
.bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.bubbles .bb{position:absolute;bottom:-90px;left:var(--x);width:var(--s);height:var(--s);opacity:0;animation:rise var(--d) linear infinite;animation-delay:var(--dl);will-change:transform,opacity}
.bubbles .bb.l2{z-index:2}
.bubbles .bb b{position:absolute;inset:0;display:block;width:100%;height:calc(var(--s)*var(--ar));border-radius:var(--br);filter:blur(var(--b));
 animation:sway var(--sw) ease-in-out infinite alternate,wob var(--wd) ease-in-out infinite alternate;animation-delay:var(--swd),0s;
 background:
  radial-gradient(ellipse 22% 14% at 30% 24%,rgba(255,255,255,.95),rgba(255,255,255,0) 100%),
  radial-gradient(ellipse 9% 9% at 24% 38%,rgba(255,255,255,.55),rgba(255,255,255,0) 100%),
  radial-gradient(ellipse 40% 26% at 68% 84%,rgba(160,235,255,.42),rgba(160,235,255,0) 100%),
  radial-gradient(circle at 50% 50%,rgba(150,215,235,.04) 0,rgba(150,215,235,.07) 56%,rgba(205,245,255,.2) 80%,rgba(255,255,255,.62) 97%,rgba(255,255,255,0) 100%);
 box-shadow:inset 0 0 calc(var(--s)*.14) rgba(255,255,255,.4),inset calc(var(--s)*-.07) calc(var(--s)*-.09) calc(var(--s)*.18) rgba(120,225,255,.28),inset calc(var(--s)*.05) calc(var(--s)*.06) calc(var(--s)*.12) rgba(255,190,230,.12),0 0 calc(var(--s)*.12) rgba(190,240,255,.16)}
@keyframes rise{0%{transform:translateY(0) scale(.82);opacity:0}7%{opacity:var(--o)}90%{opacity:var(--o)}100%{transform:translateY(-116vh) scale(1.3);opacity:0}}
@keyframes sway{from{transform:translateX(calc(var(--w)*-1))}to{transform:translateX(var(--w))}}
@keyframes wob{0%{scale:1 1;rotate:0deg}30%{scale:1.07 .94;rotate:var(--rot)}60%{scale:.94 1.07;rotate:calc(var(--rot)*-.7)}100%{scale:1.05 .96;rotate:calc(var(--rot)*.5)}}
.rays{position:absolute;inset:-10% -10% 0;overflow:hidden;pointer-events:none;z-index:1;mix-blend-mode:screen;opacity:.55;-webkit-mask-image:linear-gradient(to bottom,#000 0,rgba(0,0,0,.6) 45%,transparent 92%);mask-image:linear-gradient(to bottom,#000 0,rgba(0,0,0,.6) 45%,transparent 92%)}
.rays u{position:absolute;top:-10%;height:130%;transform-origin:50% 0;filter:blur(14px);background:linear-gradient(to bottom,rgba(190,240,255,.55),rgba(190,240,255,0) 85%);animation:raysway 14s ease-in-out infinite alternate}
.rays u:nth-child(1){left:12%;width:16%;transform:rotate(14deg)}
.rays u:nth-child(2){left:44%;width:22%;transform:rotate(9deg);animation-duration:19s;animation-delay:-6s;opacity:.7}
.rays u:nth-child(3){left:72%;width:12%;transform:rotate(16deg);animation-duration:23s;animation-delay:-11s;opacity:.8}
@keyframes raysway{from{translate:-4% 0;opacity:.45}to{translate:5% 0;opacity:1}}
.snow{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.snow s{position:absolute;left:var(--x);top:var(--y);width:var(--z);height:var(--z);border-radius:50%;background:#dff6ff;opacity:var(--o);filter:blur(.4px);animation:snowdrift var(--d) linear infinite;animation-delay:var(--dl)}
@keyframes snowdrift{0%{transform:translate(0,0)}50%{transform:translate(18px,-26px)}100%{transform:translate(-6px,-60px)}}
.deep{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(120% 70% at 50% 115%,rgba(2,14,26,.75),transparent 62%),linear-gradient(to bottom,rgba(6,36,58,0) 55%,rgba(3,18,32,.45) 100%)}
@media (prefers-reduced-motion:reduce){.bubbles .bb{animation:none;opacity:var(--o);bottom:calc(var(--s)*6)}.bubbles .bb b,.rays u,.snow s{animation:none}}
.hero-in{position:relative;z-index:2;padding:0 20px 8vh;max-width:1120px;margin:0 auto;width:100%;}
.hero h1{max-width:12ch;margin-bottom:.3em}
.hero .lead{font-size:1.2rem;max-width:40ch;opacity:.92}
.hero-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:18px 20px;max-width:1120px;margin:0 auto}
.logo{font-weight:800;letter-spacing:-.01em;font-size:1.1rem;color:inherit;text-decoration:none;display:flex;align-items:center;gap:8px}
.logo svg{height:52px;width:auto;display:block}
.hero-top .logo svg{height:72px}
.hero .logo{color:#fff}
.rail .logo svg{height:auto;width:58px}
footer .logo{color:#fff}
.hero .logo,.hero a.logo,footer .logo,.rail .logo,.rail a.logo-dot .logo{color:#fff!important}
.ruler{display:flex;flex-direction:column;gap:0;font-size:.8rem;font-weight:600;opacity:.9;border-left:2px solid rgba(255,255,255,.6);padding-left:10px;height:min(52vh,420px);justify-content:space-between}
.ruler span{position:relative}
.ruler span::before{content:"";position:absolute;left:-10px;top:.7em;width:8px;border-top:2px solid rgba(255,255,255,.6)}
.ruler .you{color:var(--signal)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.stat-line{margin-top:28px;display:flex;gap:28px;flex-wrap:wrap;font-size:.95rem}
.stat-line b{font-size:1.6rem;display:block;font-weight:800;color:var(--signal)}
section.blk{padding:72px 0}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border-top:2px solid var(--ink)}
.steps>div{padding:20px 20px 20px 0;border-bottom:1px solid var(--line)}
.steps .d{font-weight:800;font-size:2.2rem;color:var(--lagoon);line-height:1}
.why{background:var(--abyss);color:#E6F1F4}
.why ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.why li b{display:block;font-size:1.25rem;color:var(--signal);margin-bottom:4px}
.tours{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.tour-tile{aspect-ratio:4/5;border-radius:14px;overflow:hidden;position:relative;display:flex;align-items:flex-end;color:#fff;text-decoration:none;background:linear-gradient(160deg,var(--lagoon),var(--abyss))}
.tour-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tour-tile span{position:relative;padding:14px;font-weight:600;background:linear-gradient(transparent,rgba(6,36,58,.85));width:100%}
.quote{border-left:3px solid var(--signal);padding-left:16px}
.quote .who{display:flex;gap:10px;align-items:center;margin-top:10px}
.ava{width:40px;height:40px;border-radius:50%;background:var(--shallow);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;overflow:hidden;flex:none}
.ava img{width:100%;height:100%;object-fit:cover}
footer{background:var(--abyss);color:#cfe3ea;padding:40px 0}
footer a{color:#fff}

/* ---------- APP SHELL ---------- */
.shell{display:grid;grid-template-columns:76px 1fr;min-height:100vh}
.rail{background:var(--abyss);display:flex;flex-direction:column;align-items:center;padding:16px 0;gap:6px;position:sticky;top:0;height:100vh}
.rail a{position:relative;width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#9CC4D1;text-decoration:none}
.rail a svg{width:24px;height:24px}
.rail a.on{background:rgba(242,194,48,.16);color:var(--signal)}
.rail a.lock{opacity:.35}
.rail a .tip{position:absolute;left:62px;white-space:nowrap;background:var(--ink);color:var(--bg);padding:.3em .7em;border-radius:8px;font-size:.8rem;opacity:0;pointer-events:none;transition:opacity .15s;z-index:5}
.rail a:hover .tip,.rail a:focus-visible .tip{opacity:1}
.rail .lbl{display:none}
.main{padding:28px clamp(16px,4vw,48px) 40px;max-width:1100px;width:100%}
.topline{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}
@media (max-width:760px){
  .shell{grid-template-columns:1fr}
  .rail{position:fixed;top:auto;bottom:calc(46px + env(safe-area-inset-bottom,0px));left:0;right:0;height:auto;flex-direction:row;justify-content:space-around;padding:6px 4px;z-index:30;overflow-x:auto}
  .rail a{flex-direction:column;width:auto;min-width:54px;height:auto;padding:6px 4px;font-size:.66rem;gap:2px}
  .rail a .tip{display:none} .rail .lbl{display:block}
  .rail .logo-dot{display:none}
  .main{padding-bottom:140px}
  .hero-in{grid-template-columns:1fr}.ruler{display:none}
}
/* depth progress */
.depth{position:relative;padding-left:34px}
.depth::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--shallow),var(--abyss));border-radius:3px}
.depth li{list-style:none;position:relative;padding:6px 0 14px}
.depth li::before{content:"";position:absolute;left:-29px;top:10px;width:13px;height:13px;border-radius:50%;background:var(--card);border:3px solid var(--line)}
.depth li.done::before{background:var(--lagoon);border-color:var(--lagoon)}
.depth li.now::before{background:var(--signal);border-color:var(--signal);box-shadow:0 0 0 5px rgba(242,194,48,.25)}
.depth .m{font-size:.75rem;color:var(--muted);font-weight:600;display:inline-block;width:44px}
.depth li.done .t{color:var(--muted)}
.next{background:var(--abyss);color:#fff;border-radius:16px;padding:22px}
.next .btn{margin-top:10px}
.alert{border-left:4px solid var(--coral);background:var(--card);padding:12px 16px;border-radius:8px;margin-bottom:10px}
.photo-box{width:140px;aspect-ratio:35/45;border:2px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--surface);text-align:center;font-size:.8rem;color:var(--muted)}
.photo-box img{width:100%;height:100%;object-fit:cover}
.lesson-text{max-width:760px}.lesson-text>:first-child{margin-top:0}.lesson-text h3{margin-top:1.6em;font-size:1.3rem}.lesson-text p,.lesson-text li{max-width:68ch}
.lesson-text strong{font-weight:700;color:var(--ink)}
.callout{background:var(--surface);border-left:4px solid var(--lagoon);border-radius:10px;padding:14px 18px;margin:1.2em 0}
.callout.warn{border-left-color:var(--coral)}
.callout-t{font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;color:var(--lagoon);margin-bottom:6px}
.callout.warn .callout-t{color:var(--coral)}
.callout ul{margin:0;padding-left:20px}.callout li{margin:4px 0}.callout p{margin:0}
figure.ph{margin:1.4em 0}
figure.ph img{max-width:min(100%,460px);border-radius:12px;background:#fff;display:block}
.ph-img{aspect-ratio:3/2;max-width:560px;border-radius:12px;position:relative;overflow:hidden;
 background:radial-gradient(120% 80% at 20% 0%,hsl(calc(var(--h) + 0),55%,62%),transparent 60%),linear-gradient(160deg,hsl(calc(190 + var(--h)/12),60%,40%),hsl(205,70%,16%));display:flex;align-items:center;justify-content:center}
.ph-img::before{content:"";position:absolute;inset:0;opacity:.35;background:repeating-radial-gradient(circle at 70% 30%,transparent 0 14px,rgba(255,255,255,.25) 15px 16px,transparent 17px 36px)}
.ph-img span{position:relative;color:#fff;font-weight:700;font-size:.9rem;background:rgba(6,36,58,.45);padding:.35em .8em;border-radius:999px}
figure.ph figcaption{font-size:.85rem;color:var(--muted);margin-top:6px;max-width:560px}
.ph-note{display:inline-block;margin-left:6px;font-size:.72rem;font-weight:600;color:#9A6B00;background:#FFF5D6;border:1px solid #F2DD9A;border-radius:6px;padding:0 .5em}

.lang{width:auto;padding:.3em .5em;border-radius:8px;font-size:.85rem;font-weight:600}
.lang.on-dark{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.4)}
.lang.on-dark option{color:#0C2A3B}
.rail-lang{width:58px;padding:.25em .2em;font-size:.75rem}
.car{position:relative;display:flex;align-items:center;gap:8px;margin-top:18px}
.car-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 12px;flex:1;scrollbar-width:thin}
.car-track>*{scroll-snap-align:start;flex:0 0 auto}
.car-btn{flex:none;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:1.6rem;line-height:1;cursor:pointer}
.car-btn:hover{background:var(--signal);color:#1B1400}
.tour-tile{width:min(260px,72vw);aspect-ratio:4/5;border-radius:14px;overflow:hidden;position:relative;display:flex;align-items:flex-end;color:#fff;text-decoration:none;background:var(--abyss)}
.tour-tile img,.tour-tile svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tour-tile span{position:relative;padding:14px;font-weight:600;background:linear-gradient(transparent,rgba(6,36,58,.85));width:100%}
.rev{width:min(320px,80vw);margin:0;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:12px}
.rev-ph{width:88px;height:88px;border-radius:50%;overflow:hidden;border:3px solid var(--signal);flex:none}
.rev-ph img,.rev-ph svg{width:100%;height:100%;object-fit:cover;display:block}
.rev blockquote{margin:0;font-size:.98rem;position:relative;padding-left:22px}
.rev blockquote::before{content:"“";position:absolute;left:-2px;top:-14px;font-size:3rem;color:var(--signal);font-weight:800;line-height:1}
.rev figcaption{display:flex;flex-direction:column;font-size:.9rem}.rev figcaption span{color:var(--muted);font-size:.82rem}
.cbadge{display:inline-block;min-width:22px;padding:0 6px;border-radius:999px;background:var(--signal);color:#1B1400;font-size:.8rem}
.shop{display:grid;grid-template-columns:240px 1fr;gap:22px;align-items:start}
.cats{display:flex;flex-direction:column;gap:2px;position:sticky;top:12px}
.cats button{text-align:left;border:0;background:none;padding:.5em .7em;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;font-size:.92rem}
.cats button span{color:var(--muted);font-size:.8rem}
.cats button.on{background:var(--abyss);color:#fff}.cats button.on span{color:#9CC4D1}
.cats button:hover:not(.on){background:var(--surface)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.pcard{display:flex;flex-direction:column;gap:4px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;font:inherit;color:inherit;transition:box-shadow .15s,transform .15s}
.pcard:hover{box-shadow:0 6px 20px rgba(6,36,58,.12);transform:translateY(-2px)}
.pimg{aspect-ratio:1;background:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:6px}
.pimg img{max-width:100%;max-height:100%}
.pbrand{font-size:.7rem;font-weight:700;letter-spacing:.06em;color:var(--lagoon)}
.pname{font-weight:600;font-size:.9rem;line-height:1.25}
.pprice{font-weight:800;margin-top:auto;padding-top:6px}
.pm{display:grid;grid-template-columns:200px 1fr;gap:18px}.pm-img{background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center}.pm-img img{max-width:100%}
.pm-price{font-size:1.3rem;font-weight:800}
.modal{max-width:640px}
@media (max-width:760px){.shop{grid-template-columns:1fr}.cats{position:static;flex-direction:row;overflow-x:auto}.cats button{white-space:nowrap}.pm{grid-template-columns:1fr}.car-btn{display:none}}

.shead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.crumbs{font-size:.88rem;color:var(--muted)}.crumbs a{color:inherit}
.filters{display:flex;flex-direction:column;gap:6px;position:sticky;top:12px}
.filters h4{margin:14px 0 4px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.filters .cats{position:static}
.pstock{font-size:.78rem;color:var(--muted)}.pstock.in{color:var(--ok)}
.pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:20px}
.pager button{min-width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);cursor:pointer;font-weight:600}
.pager button.on{background:var(--abyss);color:#fff;border-color:var(--abyss)}
a.pcard{text-decoration:none}
.pp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.pp-img{background:#fff;border-radius:16px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:20px}
.pp-img img{max-width:100%;max-height:100%}
.pp-title{font-size:clamp(1.5rem,3vw,2.1rem);margin:.2em 0}
.pp-price{font-size:1.6rem;font-weight:800;margin:.2em 0}
.vpick{border:0;padding:0;margin:16px 0 8px;display:flex;flex-wrap:wrap;gap:8px}
.vpick legend{font-weight:600;font-size:.9rem;margin-bottom:6px;width:100%}
.vpick button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:.4em .9em;cursor:pointer;font:inherit;font-size:.88rem}
.vpick button.on{border:2px solid var(--abyss);font-weight:700}
.qty{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.qty button{border:0;background:var(--card);width:38px;font-size:1.2rem;cursor:pointer}
.qty input{width:52px;border:0;text-align:center;border-radius:0}
.pp-desc{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}.pp-desc summary{font-weight:700;cursor:pointer}
.cartgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.ltabs{display:flex;gap:6px;margin:14px 0 18px;flex-wrap:wrap}
.ltabs a{display:flex;align-items:center;gap:8px;padding:.55em 1em;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:inherit;font-weight:600;background:var(--card)}
.ltabs a.on{background:var(--abyss);color:#fff;border-color:var(--abyss)}
.ltabs .ln{width:24px;height:24px;border-radius:50%;background:var(--surface);color:var(--lagoon);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem}
.ltabs a.on .ln{background:var(--signal);color:#1B1400}
.lprog{height:6px;border-radius:6px;background:var(--line);margin-bottom:14px;overflow:hidden}.lprog i{display:block;height:100%;background:var(--lagoon)}
.sa{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sa-side{background:var(--abyss);color:#9CC4D1;padding:18px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}
.sa-brand{display:flex;align-items:center;gap:8px;color:#fff;font-weight:700;margin-bottom:16px}.sa-brand svg{height:36px;width:auto}
.sa-side nav{display:flex;flex-direction:column;gap:2px}
.sa-side nav a,.sa-back{color:#9CC4D1;text-decoration:none;padding:.5em .8em;border-radius:8px;font-size:.92rem}
.sa-side nav a.on{background:rgba(242,194,48,.16);color:var(--signal)}.sa-side nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.sa-back{margin-top:auto;font-size:.85rem}.sa-back+.sa-back{margin-top:0}
.sa-main{padding:28px clamp(16px,3vw,40px);background:var(--bg);color:var(--ink);min-width:0}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;text-decoration:none;color:inherit}
.kpi b{display:block;font-size:1.5rem}
@media (max-width:860px){.pp,.cartgrid{grid-template-columns:1fr}.sa{grid-template-columns:1fr}.sa-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap}.sa-side nav{flex-direction:row;flex-wrap:wrap}}
:root{--link:#0E6E8C}

@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--link:#7CC8DA}}
:root[data-theme="dark"]{--link:#7CC8DA}
a{color:var(--link)}
.pbrand{color:var(--link)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn.dark,:root:not([data-theme="light"]) .cats button.on,:root:not([data-theme="light"]) .admin-nav a.on,:root:not([data-theme="light"]) .pager button.on,:root:not([data-theme="light"]) .ltabs a.on{background:#17718E;border-color:#17718E;color:#fff}
 :root:not([data-theme="light"]) .tag{background:rgba(255,255,255,.06);color:#9fd6e3}
 :root:not([data-theme="light"]) .tag.ok{color:#6FD9A6;border-color:rgba(111,217,166,.35)}
 :root:not([data-theme="light"]) .tag.bad{color:#FF9B8A;border-color:rgba(255,155,138,.35)}
 :root:not([data-theme="light"]) .tag.warn{background:#3A3010;color:#F2C230;border-color:#6B5A1E}
 :root:not([data-theme="light"]) .pstock.in{color:#6FD9A6}}
:root[data-theme="dark"] .btn.dark,:root[data-theme="dark"] .cats button.on,:root[data-theme="dark"] .admin-nav a.on,:root[data-theme="dark"] .pager button.on,:root[data-theme="dark"] .ltabs a.on{background:#17718E;border-color:#17718E;color:#fff}
.pform{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start}
.ppreview{aspect-ratio:3/2;border:2px dashed var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;font-size:.85rem;color:var(--muted);overflow:hidden;background:var(--surface)}
.ppreview img{width:100%;height:100%;object-fit:contain}
.pscan{font-size:.82rem;margin-top:8px;color:var(--muted)}.pscan.ok{color:var(--ok)}.pscan.warn{color:#B07D00}.pscan.busy{color:var(--lagoon)}
.pscan.busy::before{content:"";display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:6px;vertical-align:-2px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#passForm.scanning input,#passForm.scanning select{opacity:.5}
input.filled,select.filled{background:rgba(46,155,106,.08)}
.pcard2{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.pthumb{width:96px;aspect-ratio:3/2;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;flex:none;background:#fff}
.pthumb.empty{display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--muted);text-align:center;cursor:default;background:var(--surface)}
.pthumb.sm{width:54px}
.tpass{display:flex;gap:8px;align-items:center;margin-top:4px}
@media (max-width:700px){.pform{grid-template-columns:1fr}}
.q{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 14px}
.q legend{font-weight:600;padding:0;display:flex;gap:10px;align-items:flex-start;float:left;width:100%;margin-bottom:8px}
.q legend+*{clear:both}
.qn{flex:none;width:26px;height:26px;border-radius:50%;background:var(--surface);color:var(--link);display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700}
.opt{display:flex!important;gap:8px;align-items:flex-start;padding:6px 8px;border-radius:8px;margin:2px 0;font-weight:400;cursor:pointer}
.opt input{margin-top:5px;flex:none}
.opt:hover{background:var(--surface)}
.q.ok{border-color:rgba(46,155,106,.5);background:rgba(46,155,106,.05)}
.q.bad{border-color:rgba(232,96,76,.6);background:rgba(232,96,76,.05)}
.q.miss{border-color:#E0A800;box-shadow:0 0 0 3px rgba(242,194,48,.25)}
.q.ok .qn{background:var(--ok);color:#fff}.q.bad .qn{background:var(--coral);color:#fff}
.opt-ok{background:rgba(46,155,106,.14);font-weight:600}
.opt-bad{background:rgba(232,96,76,.14);text-decoration:line-through;text-decoration-color:rgba(232,96,76,.6)}
.qexp{margin-top:8px;padding:10px 12px;border-left:3px solid var(--coral);background:var(--card);border-radius:6px;font-size:.92rem}
.qexp.ok{border-left-color:var(--ok);color:var(--muted)}
.qsum{border-radius:12px;padding:14px 16px;margin-bottom:16px}
.qsum.ok{background:rgba(46,155,106,.12);border:1px solid rgba(46,155,106,.4)}
.qsum.bad{background:rgba(232,96,76,.1);border:1px solid rgba(232,96,76,.4)}

.lang-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:2px;background:var(--card);gap:2px}
.lang-seg button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.03em;padding:.38em .75em;border-radius:999px;cursor:pointer;min-width:38px}
.lang-seg button.on{background:var(--abyss);color:#fff}
.lang-seg.on-dark{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.35)}
.lang-seg.on-dark button{color:rgba(255,255,255,.8)}
.lang-seg.on-dark button.on{background:#fff;color:var(--abyss)}
.lang-seg.rail-lang{display:flex;flex-direction:column;border-radius:12px;width:52px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.lang-seg.rail-lang button{min-width:0;padding:.3em 0;font-size:.7rem}
.btn .sh{display:none}
.hero-actions{flex-wrap:nowrap;gap:8px}
#dev .devbtns{display:contents}#dev .devtg{display:none}
@media (max-width:760px){
 .hero-top{padding:12px 14px}
 .hero-top .logo svg{height:46px}
 .btn .lg{display:none}.btn .sh{display:inline}
 .hero-actions .btn{padding:.5em 1.1em}
 .hero{min-height:100svh;min-height:var(--V0,100svh)}
 .hero-in{padding-top:92px;padding-bottom:6vh}
 .hero-cta .btn{width:100%;justify-content:center}
 .hide-m{display:none!important}
 .stat-line{gap:18px 26px}.stat-line b{font-size:1.35rem}
 .wrap .logo svg{height:44px}
 .card form .btn,form.card>.btn,form.card button.btn:not(.sm){width:100%;justify-content:center}
 #loginForm .btn,#regForm .btn,#verifyForm .btn,#loginForm+.btn{width:100%;justify-content:center}
 #loginForm~.btn{width:100%;justify-content:center}
 input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],input[type=number],input[type=search],select,textarea{font-size:16px;border-color:#B9CDD6;padding:.75em .85em}
 section.blk{padding:48px 0}
 #dev{padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));gap:6px;flex-wrap:nowrap}
 #dev>b{display:none}
 #dev select{flex:1;min-width:0}
 #dev .devtg{display:inline-block;flex:none;width:36px}
 #dev .devbtns{display:none}
 #dev.open{flex-wrap:wrap}
 #dev.open .devbtns{display:flex;gap:6px;flex-wrap:wrap;width:100%}
 
 .rail{bottom:calc(46px + env(safe-area-inset-bottom,0px))}
 .rail .lang-seg.rail-lang{flex-direction:row;width:auto;margin-top:0;align-self:center;flex:none}
 .rail>div[style*="margin-top:auto"]{margin-top:0!important}
}
.m-bar{display:none}
@media (max-width:760px){
 .m-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:-8px 0 14px}
 .rail-lang-wrap,.rail-out{display:none!important}
 .rail{justify-content:space-between;overflow:visible}
 .rail a{flex:1;min-width:0}
 .rail a .lbl{font-size:.64rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .rail .logo-dot{display:none!important}
}
.admin-nav a .cbadge{margin-left:4px}
.admin-sub{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:-8px 0 20px}
.admin-sub a{padding:.55em .9em;text-decoration:none;color:var(--muted);font-weight:600;font-size:.92rem;border-bottom:3px solid transparent;margin-bottom:-1px}
.admin-sub a:hover{color:var(--ink)}
.admin-sub a.on{color:var(--ink);border-bottom-color:var(--signal)}
.admin-sub .cnt{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--coral);color:#fff;font-size:.72rem;text-align:center}
.kpi.hot{border-color:var(--coral)}.kpi.hot b{color:var(--coral)}
@media (max-width:760px){.topline{flex-wrap:wrap}.topline .row{flex-wrap:wrap!important}.srch{width:100%!important;max-width:100%}.admin-nav{flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:4px}.admin-nav a{white-space:nowrap}.admin-sub{flex-wrap:nowrap;overflow-x:auto}.admin-sub a{white-space:nowrap}}
.lesson-list a{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.q{margin-bottom:18px}.q p{font-weight:600;margin-bottom:6px}
.q label{font-weight:400;display:flex;gap:8px;align-items:center;margin:4px 0}
.admin-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}
.admin-nav a{padding:.45em .9em;border-radius:999px;border:1px solid var(--line);text-decoration:none;color:inherit;font-size:.9rem}
.admin-nav a.on{background:var(--abyss);color:#fff;border-color:var(--abyss)}
.bar{height:10px;border-radius:6px;background:var(--lagoon)}
.kv{display:grid;grid-template-columns:160px 1fr;gap:4px 12px;font-size:.92rem}
.kv dt{color:var(--muted)} .kv dd{margin:0}
.pubcard{max-width:520px;margin:40px auto;background:var(--card);border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.pubcard .top{background:var(--abyss);color:#fff;padding:24px;display:flex;gap:18px;align-items:center}
.qr{background:#fff;padding:8px;border-radius:8px;display:inline-block}
.shop-item{display:flex;flex-direction:column;gap:8px}
.shop-item .pic{aspect-ratio:1;border-radius:12px;background:linear-gradient(160deg,var(--surface),var(--line));display:flex;align-items:center;justify-content:center;font-size:2.4rem}

/* ===== адаптация под любую ширину ===== */
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
.shell{grid-template-columns:76px minmax(0,1fr)}
.main{min-width:0}
img,svg,video,canvas,iframe{max-width:100%}
select,input,textarea{max-width:100%}
.grid2>*,.cartgrid>*,.shop>*,.pp>*,.pform>*,.row>*,.topline>*{min-width:0}
.lesson-text{overflow-wrap:anywhere}
.lesson-text table{display:block;overflow-x:auto}
.card{min-width:0}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
@media (max-width:760px){
 .shell{grid-template-columns:minmax(0,1fr)}
 .main{padding:16px 16px 100px}
 .main h2{font-size:1.5rem;line-height:1.2}
 .card{padding:16px}
 .grid2{grid-template-columns:minmax(0,1fr)}
 .cartgrid,.pp{grid-template-columns:minmax(0,1fr)}
 .pform{grid-template-columns:minmax(0,1fr)}
 select[data-lpage]{width:100%!important;max-width:100%}
 .ltabs{flex-wrap:nowrap;overflow-x:auto;margin-left:-16px;margin-right:-16px;padding:2px 16px 8px;scrollbar-width:none}
 .ltabs::-webkit-scrollbar{display:none}
 .ltabs a{flex:none;white-space:nowrap}
 .lesson-text{font-size:1.02rem;line-height:1.65}
 .lesson-text h3{font-size:1.2rem}
 .row{flex-wrap:wrap}
 .topline{gap:10px}
 .shead{gap:8px}
 .filters{position:static}
 .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .pcard{padding:10px}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tscroll{-webkit-overflow-scrolling:touch}
 .modal{padding:18px;max-height:92vh}
 .modal-bg{padding:12px;align-items:flex-end}
 .pm{grid-template-columns:minmax(0,1fr)}
 .revEdit .row{flex-wrap:wrap!important}
 .pcard2{flex-wrap:wrap}
 .rev{width:min(300px,82vw)}
 .tour-tile{width:min(240px,70vw)}
 .hero h1{font-size:clamp(2.1rem,9.5vw,3rem)}
 .blk .wrap,.wrap{padding-left:16px;padding-right:16px}
 .steps{grid-template-columns:minmax(0,1fr)}
 .why ul{grid-template-columns:minmax(0,1fr)}
 table{font-size:.88rem}
 th,td{padding:.55em .6em}
 .btn{max-width:100%}
 .qexp{font-size:.9rem}
 .q{padding:12px}
 .opt{padding:8px 6px}
}
@media (max-width:420px){
 .pgrid{grid-template-columns:minmax(0,1fr)}
 .hero-in{padding-top:84px}
 .stat-line{gap:14px 20px}
}
.kv dd,.kv dt{min-width:0;overflow-wrap:anywhere}
@media (max-width:480px){.kv{grid-template-columns:minmax(0,38%) minmax(0,1fr)!important}}
.msort{display:none}.fdet>summary{display:none}
@media (max-width:760px){
 .msort{display:block;margin:0 0 8px}.msort select{width:100%}
 .fdet>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;font-weight:700;padding:.7em .9em;border:1px solid #B9CDD6;border-radius:12px;background:var(--card);margin-top:8px}
 .fdet>summary::after{content:"▾"}.fdet[open]>summary::after{content:"▴"}
 .fdet>summary::-webkit-details-marker{display:none}
 .tscroll.card{padding:0!important;overflow:visible}
 table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
 table.stack thead{display:none}
 table.stack tr{padding:12px 14px;border-bottom:1px solid var(--line)}
 table.stack tr:last-child{border-bottom:0}
 table.stack td{padding:4px 0;border:0;display:flex;gap:12px;justify-content:space-between;align-items:flex-start;text-align:right;white-space:normal!important}
 table.stack td::before{content:attr(data-label);color:var(--muted);font-size:.76rem;font-weight:600;text-align:left;flex:none;max-width:40%;padding-top:.2em}
 table.stack td:not([data-label])::before,table.stack td[data-label=""]::before{display:none}
 table.stack td:not([data-label]),table.stack td[data-label=""]{justify-content:flex-start;text-align:left;flex-wrap:wrap}
 table.stack td>*{min-width:0}
 table.stack td input[type=number],table.stack td input[type=text]{max-width:120px}
 .kv{grid-template-columns:minmax(0,44%) minmax(0,1fr)!important}
}
@media (max-width:760px){
 table.stack td,table.stack td *{overflow-wrap:anywhere;word-break:normal;min-width:0}
 table.stack td .row{flex-wrap:wrap!important}
 table.stack td input[type=text],table.stack td input[type=number],table.stack td select{min-width:0!important;max-width:100%!important}
 table.stack td .btn{flex:none}
}
.tour-card{width:min(270px,76vw);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink);flex:none}
a.tour-card:hover{box-shadow:0 8px 24px rgba(6,36,58,.14)}
.tc-img{aspect-ratio:4/5;position:relative;background:var(--abyss)}
.tc-img img,.tc-img svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tc-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px}
.tc-body b{font-size:1.02rem;line-height:1.25}
.tc-date{font-size:.8rem;color:var(--muted);text-transform:capitalize}
.tc-body p{margin:4px 0 0;font-size:.92rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tc-link{margin-top:8px;font-weight:700;font-size:.88rem;color:var(--link)}
.tc-country{position:absolute;left:12px;right:12px;top:25%;transform:translateY(-50%);text-align:center;text-transform:uppercase;color:#fff;font-weight:800;font-size:clamp(1.3rem,2.4vw,1.75rem);letter-spacing:.06em;line-height:1.1;text-shadow:0 2px 10px rgba(6,36,58,.65),0 1px 2px rgba(0,0,0,.4);z-index:1;overflow-wrap:anywhere}

/* карточка прошедшего тура: обложка на всю высоту, дата и текст поверх картинки */
.tour-card{position:relative;aspect-ratio:4/5;border:0;background:var(--abyss);box-shadow:0 1px 3px rgba(6,36,58,.18);display:block}
.tour-card .tc-img{position:absolute;inset:0;aspect-ratio:auto;border-radius:inherit}
.tour-card .tc-img img,.tour-card .tc-img svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.tour-card .tc-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:48px 16px 14px;background:linear-gradient(to top,rgba(6,36,58,.88) 0%,rgba(6,36,58,.62) 55%,rgba(6,36,58,0) 100%);color:#fff;gap:2px}
.tour-card .tc-date{color:rgba(255,255,255,.85);text-transform:none}
.tour-card .tc-body p{color:#fff;margin:2px 0 0;font-size:.9rem;text-shadow:0 1px 2px rgba(0,0,0,.4)}

/* обложка показывается целиком, без обрезки: высота карточки = высота фото */
.car-track{align-items:flex-start}
.tour-card.has-cover{aspect-ratio:auto}
.tour-card.has-cover .tc-img{position:relative;inset:auto;aspect-ratio:auto}
.tour-card.has-cover .tc-img img{position:static;display:block;width:100%;height:auto;object-fit:fill}

/* видео-обложка: те же размеры и пропорции, что у фото */
.tour-card.has-video .tc-img{position:relative;inset:auto;aspect-ratio:auto}
.tour-card.has-video .tc-img video{position:static;display:block;width:100%;height:auto;background:#06243A;object-fit:cover}
.tour-card.has-video .tc-img::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(6,36,58,.5) 0%,rgba(6,36,58,0) 42%)}
.tour-card.has-video .tc-country{text-shadow:0 2px 14px rgba(0,0,0,.7)}

/* портрет автора в учебнике */
figure.ph.ph-portrait img{max-width:min(100%,340px);box-shadow:0 6px 24px rgba(6,36,58,.18)}

/* выбор языка: выпадающий список */
.lang-dd{appearance:none;-webkit-appearance:none;font:inherit;font-weight:600;font-size:.85rem;color:var(--ink);background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23587' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .8em center;border:1px solid var(--line);border-radius:999px;padding:.5em 2.1em .5em 1em;min-width:116px;cursor:pointer}
.lang-dd:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.lang-dd option{color:#0C2A3B;background:#fff}
.lang-dd.on-dark{color:#fff;background-color:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.lang-dd.rail-lang{min-width:0;width:56px;padding:.4em 1.2em .4em .55em;font-size:.72rem;background-position:right .35em center;background-color:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media (max-width:760px){.hero-actions .lang-dd{min-width:104px;padding-left:.8em}.m-bar .lang-dd{min-width:130px}}

/* админка курсов */
.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:.35em .9em;font:inherit;font-weight:600;font-size:.85rem;cursor:pointer}
.chip.on{background:var(--abyss);color:#fff;border-color:var(--abyss)}
.bk,.qc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 10px}
.bk-hd{display:flex;align-items:center;gap:10px;margin-bottom:8px}.bk-hd b{font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.bk-tools{margin-left:auto;display:flex;gap:6px}.bk-tools .btn{padding:.2em .7em}
.bk-in{width:100%}.bk textarea.bk-in,.qc textarea.bk-in{resize:vertical;line-height:1.5}
.bk-pb{background:rgba(23,113,142,.08);border-color:rgba(23,113,142,.35)}
.bk-mem{border-left:4px solid var(--lagoon)}.bk-warn{border-left:4px solid var(--coral)}.bk-fig{background:var(--surface)}
.bk-add{margin-top:8px}.bk-add select{width:auto;max-width:100%;font-size:.85rem;padding:.35em .6em}
.figprev{width:150px;aspect-ratio:3/2;flex:none;border-radius:10px;overflow:hidden;background:var(--abyss);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.8rem}
.figprev img{width:100%;height:100%;object-fit:cover}
.qopts{margin:8px 0}.qo{display:flex;align-items:center;gap:8px;margin-bottom:6px}.qo input[type=radio]{flex:none;width:20px;height:20px}.qo .bk-in{flex:1;min-width:0}
.phgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.phc{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.phc-img{aspect-ratio:3/2;background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700}
.phc-img img{width:100%;height:100%;object-fit:cover;border-radius:0;cursor:zoom-in}
.phc-b{padding:12px}
.ph-photo img{max-width:min(100%,560px)}
.hero-actions .btn{white-space:nowrap}
/* шапка: язык коротко, кнопки одной высоты, «Вход» по ширине текста */
.lang-dd{min-width:0!important;width:auto}
.hero-actions,.m-bar{align-items:center}
.hero-actions>*{flex:none}
.hero-actions .lang-dd,.m-bar .lang-dd{height:40px;padding:0 2em 0 .95em;font-size:.88rem;line-height:38px;background-position:right .75em center;min-width:0!important}
.hero-actions .btn{height:40px;padding:0 1.15em;width:auto!important;max-width:none;flex:none;justify-content:center;font-size:.9rem;line-height:1}
@media (max-width:760px){.hero-actions{flex-wrap:nowrap!important}.hero-actions .lang-dd,.hero-actions .btn{height:38px}.hero-actions .btn{padding:0 1em}}
@media (max-width:760px){.figprev{width:96px}.bk-tools .btn{padding:.2em .55em}.phgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}

/* отзывы: широкая карточка, фото слева на всю высоту, три в ряд */
.rev.rv{width:calc((100% - 28px)/3);flex:0 0 calc((100% - 28px)/3);padding:0;display:grid;grid-template-columns:42% minmax(0,1fr);gap:0;overflow:hidden;border-radius:16px;min-height:250px}
.rv-pic{position:relative;min-height:100%;background:var(--abyss)}
.rv-pic img,.rv-pic svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 14%;display:block}
.rv-bd{padding:18px 16px;display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0}
.rv-mark{font-size:2.6rem;line-height:.55;height:20px;color:var(--signal);font-weight:800}
.rev.rv blockquote{padding:0;font-size:.92rem;line-height:1.4}
.rev.rv blockquote::before{content:none}
.rev.rv figcaption{padding-top:10px;border-top:1px solid var(--line)}
@media (max-width:1000px){.rev.rv{width:calc((100% - 14px)/2);flex-basis:calc((100% - 14px)/2)}}
@media (max-width:760px){.rev.rv{display:flex;flex-direction:column;width:min(300px,82vw);flex-basis:auto;min-height:0}.rv-pic{aspect-ratio:4/3;min-height:0}.rev.rv .rv-bd{padding:16px}}
.rv-ini{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:800;font-size:2.4rem;background:linear-gradient(135deg,hsl(var(--h),60%,62%),hsl(calc(var(--h) + 40),65%,38%))}
#car-revs{align-items:stretch}
/* Формы внутри узких карточек не вылезают за край */
.grid2>*,.pform>*{min-width:0}
.f input,.f select,.f textarea{max-width:100%;box-sizing:border-box}
#passForm{container-type:inline-size}
.pform{grid-template-columns:minmax(160px,220px) minmax(0,1fr)}
.pform .grid2{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
@container (max-width:620px){.pform{grid-template-columns:minmax(0,1fr)}.pform .ppreview{max-width:260px}}
/* поля без явного type выглядят как обычные текстовые */
input:not([type]){width:100%;padding:.65em .8em;border:1px solid var(--line);border-radius:10px;background:var(--field);color:inherit;font:inherit}
/* карусели: без стрелок, перетаскивание мышью */
.car-track{cursor:grab;-webkit-user-select:none;user-select:none}
.car-track.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.car-track img,.car-track video{-webkit-user-drag:none}
/* заметная кнопка для сертифицированных дайверов */
.btn.btn-diver{background:var(--lagoon);color:#fff;border-color:var(--lagoon);font-weight:700}
.btn.btn-diver:hover{background:var(--shallow);border-color:var(--shallow);color:#06243A}
/* обработка фото: анимация */
.photo-box{position:relative;overflow:hidden}
.photo-box.busy img{filter:grayscale(.4) brightness(.6);transform:scale(1.03);transition:filter .3s,transform .3s}
.photo-box .pb-over{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff;font-size:.85rem;font-weight:600;text-align:center;padding:8px;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.photo-box .spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:var(--signal);animation:pbspin .8s linear infinite}
.photo-box .pb-scan{position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--signal),transparent);box-shadow:0 0 12px var(--signal);animation:pbscan 1.6s ease-in-out infinite}
@keyframes pbspin{to{transform:rotate(360deg)}}
@keyframes pbscan{0%{top:0}50%{top:calc(100% - 3px)}100%{top:0}}
label.btn.disabled{opacity:.5;pointer-events:none}
@media (prefers-reduced-motion:reduce){.photo-box .spin,.photo-box .pb-scan{animation-duration:3s}}
.photo-box:has(img){border-color:transparent}
.photo-box img{display:block;width:100%;height:100%;object-fit:cover}
figure.ph.wide img{max-width:100%;width:100%;height:auto}
/* выбор на странице входа: две равные кнопки с подписью */
.btn.choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:10px 18px;border-radius:16px;text-align:center;line-height:1.2;white-space:normal}
.btn.choice b{font-size:1rem;font-weight:700}
.btn.choice small{font-size:.8rem;font-weight:500;opacity:.75}
.btn.btn-diver.choice small{opacity:.85}
/* таблицы на телефоне: подпись слева, значение одним блоком справа */
table td>.cv{display:contents}
@media (max-width:760px){
 table.stack td{width:100%!important;max-width:none!important}
 table.stack td>.cv{display:block;flex:1 1 auto;text-align:right}
 table.stack td:not([data-label])>.cv,table.stack td[data-label=""]>.cv{text-align:left}
 table.stack td::before{max-width:45%;white-space:nowrap}
 table.stack td>.cv .small.muted{display:block}
}
.linkbtn{background:none;border:0;padding:0;color:var(--lagoon);text-decoration:underline;font:inherit;font-size:.85rem;cursor:pointer}

.photo-box.need{border-color:var(--coral);color:var(--coral)}

/* этапы студента - ссылки */
.depth a.t{color:inherit;text-decoration:none;border-bottom:1px dashed currentColor}
.depth a.t:hover{color:var(--signal)}
.depth li.done a.t{color:var(--muted)}
/* меню кабинета на телефоне - сверху */
@media (max-width:760px){
 .rail{position:sticky!important;top:0!important;bottom:auto!important;padding:4px 4px!important}
 .main{padding-bottom:40px}
}
/* вкладки урока: три равные кнопки во всю ширину */
.ltabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible!important;margin-left:0!important;margin-right:0!important;padding:0!important;max-width:560px}
.ltabs a{justify-content:center;min-width:0;white-space:nowrap;padding:.55em .5em;gap:6px}
@media (max-width:420px){.ltabs a{font-size:.9rem}.ltabs .ln{width:20px;height:20px;font-size:.72rem}}
/* меню кабинета на телефоне: компактная высота */
@media (max-width:760px){.rail{height:auto!important;min-height:0!important;align-items:center}}

/* первый экран: место под видео на весь экран */
.hero{min-height:100vh;min-height:100svh;min-height:var(--V0,100svh);align-items:center}
.hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center 30%}
.hero .hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,22,34,.55) 0%,rgba(6,22,34,.15) 40%,rgba(6,22,34,.7) 100%);z-index:1}
.hero-in{z-index:2;padding-bottom:10vh}
.hero h1{max-width:14ch;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.05;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero-cta .btn{font-size:1.1rem;padding:.9em 2em}
.hero-actions .btn.ghost.on-dark{color:#fff;border-color:rgba(255,255,255,.7);background:rgba(6,22,34,.25)}
@media (max-width:760px){.hero{align-items:flex-end}.hero-cta .btn{width:100%}}
/* 4 пункта */
.feats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.feat{margin:0;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.feat .fimg{aspect-ratio:1/1;overflow:hidden;background:var(--abyss)}
.feat .fimg img{width:100%;height:100%;object-fit:cover;display:block}
.feat.logo .fimg{display:flex;align-items:center;justify-content:center;background:#0C2A3B}
.feat.logo .fimg img{width:auto;height:72%;object-fit:contain}
.feat figcaption{padding:14px 16px 18px;font-weight:600;font-size:1.02rem;line-height:1.35}
@media (max-width:900px){.feats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.feat figcaption{font-size:.92rem;padding:10px 12px 14px}}
.feat .fimg{position:relative}
.feat.logo .fimg img{position:absolute;inset:14%;width:72%;height:72%;object-fit:contain}

/* большой блок «Стань дайвером» внизу главной */
.bigcta{position:relative;overflow:hidden;background:#17718E;height:min(78vh,720px);height:min(calc(var(--V0,100vh)*.78),720px);min-height:420px;display:flex;align-items:center;justify-content:center}
.bigcta .bc-track{position:absolute;left:0;top:50%;transform:translate3d(0,-50%,0);white-space:nowrap;font-weight:900;color:#fff;font-size:clamp(9rem,30vw,26rem);line-height:.82;letter-spacing:-.04em;will-change:transform;user-select:none;pointer-events:none}
.bigcta .bc-btn{position:relative;z-index:2;background:var(--abyss);color:#fff;border-radius:6px;padding:1em 1.8em;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.bigcta .bc-btn:hover{background:var(--signal);color:#1B1400}
@media (max-width:760px){.bigcta{height:62vh;height:calc(var(--V0,100vh)*.62);min-height:360px}.bigcta .bc-track{font-size:clamp(7rem,42vw,12rem)}}

/* «Стань дайвером»: бегущая строка без остановки */
.bigcta .bc-track{position:absolute;left:0;top:50%;transform:translateY(-50%);display:flex;width:max-content;animation:bcRun 28s linear infinite;will-change:transform}
.bigcta .bc-run{display:flex;flex:none}
.bigcta .bc-run span{padding-right:.35em}
@keyframes bcRun{from{transform:translate3d(0,-50%,0)}to{transform:translate3d(-50%,-50%,0)}}
@media (prefers-reduced-motion:reduce){.bigcta .bc-track{animation:none}}

/* три ролика: на компьютере - три вертикальных сектора рядом, на телефоне - стопка с наездом */
.trip{position:relative;background:#03141f;display:flex;height:100vh;height:100svh;height:var(--V0,100svh);overflow:hidden}
.trip-card{position:relative;flex:1 1 0;min-width:0;transition:flex-grow .7s cubic-bezier(.2,.7,.2,1)}
.trip-card+.trip-card{border-left:1px solid rgba(255,255,255,.12)}
.trip-in{position:absolute;inset:0;overflow:hidden;will-change:transform}
.trip video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.trip-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,20,31,0) 45%,rgba(3,20,31,.75) 100%);transition:background .5s}
.trip-t{position:absolute;left:clamp(16px,3vw,40px);right:clamp(16px,3vw,40px);bottom:clamp(28px,8vh,80px);margin:0;color:#fff;font-size:clamp(1.8rem,3.2vw,3.4rem);line-height:1.02;letter-spacing:-.02em;text-shadow:0 4px 30px rgba(0,0,0,.45)}
.trip-t span{display:inline-block;opacity:0;transform:translateY(.6em);transition:opacity .6s,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i)*90ms + 150ms)}
.trip-card.in .trip-t span{opacity:1;transform:none}
@media (min-width:761px){
 .trip:hover .trip-card:not(:hover) .trip-shade{background:linear-gradient(180deg,rgba(3,20,31,.35),rgba(3,20,31,.8))}
}
@media (max-width:760px){
 .trip{display:block;height:auto;overflow:visible;background:#03141f}
 .trip-card{position:relative;height:100vh;height:100svh;height:var(--V0,100svh)}
 .trip-card+.trip-card{border-top:2px solid #03141f}
 .trip-card+.trip-card{border-left:0}
 .trip-t{font-size:clamp(2.3rem,11vw,3.4rem);bottom:calc(48px + env(safe-area-inset-bottom,0px))}
}
@media (prefers-reduced-motion:reduce){.trip-t span{transition:none;opacity:1;transform:none}}

/* слоганы: по центру ролика, на 75% высоты, кликабельные как кнопка */
.trip-top{z-index:5}
.trip-t{left:12px;right:12px;bottom:auto;top:75%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;text-decoration:none;color:#fff;cursor:pointer}
.trip-t .tt{display:block}
.trip-t .tt>span{display:inline-block}
.trip-t .ta{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:var(--signal);color:#1B1400;font-size:1.4rem;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.3);opacity:0;transform:scale(.9);transition:opacity .5s .5s,transform .5s .5s cubic-bezier(.2,.7,.2,1),background .2s}
.trip-card.in .trip-t .ta{opacity:1;transform:none}
.trip-t:hover .ta,.trip-t:focus-visible .ta{background:#fff;transform:translateX(4px)}
.trip-t:hover .tt{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:8px}
.trip-t:active .ta{transform:scale(.92)}
.trip-shade{background:linear-gradient(180deg,rgba(3,20,31,.35) 0%,rgba(3,20,31,0) 25%,rgba(3,20,31,.15) 55%,rgba(3,20,31,.7) 100%)}
@media (max-width:760px){.trip-t{bottom:auto;top:75%}.trip-top{position:absolute;top:0;left:0;right:0}}
@media (prefers-reduced-motion:reduce){.trip-t .ta{transition:none;opacity:1;transform:none}}
.trip-t .tt{font-weight:800;font-size:clamp(1.7rem,2.9vw,3.2rem);line-height:1.04;letter-spacing:-.02em;text-wrap:balance}
@media (max-width:760px){.trip-t .tt{font-size:clamp(2.2rem,10vw,3.2rem)}}
/* шапка поверх роликов: максимально ярко и контрастно */
.trip-top .logo,.trip-top a.logo{color:#fff!important;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55)) drop-shadow(0 0 18px rgba(0,0,0,.35))}
.trip-top .hero-actions .lang-dd,.trip-top .hero-actions select{background-color:#fff!important;color:#06243A!important;border-color:#fff!important;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.35);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2306243A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}
.trip-top .hero-actions .btn.ghost.on-dark{background:var(--signal)!important;color:#1B1400!important;border-color:var(--signal)!important;font-weight:800;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.trip-top .hero-actions .btn.ghost.on-dark:hover{background:#fff!important;border-color:#fff!important}
/* слоганы: чистый белый, короткая чёткая тень вместо широкого ореола */
.trip-t,.trip-t .tt,.trip-t .tt span{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 8px rgba(0,0,0,.35)!important}

/* ---------- «Как проходит курс» с 3D-дайвером ---------- */
.dive3d{position:relative;background:var(--bg)}
.d3-run{height:calc(1100vh - 100lvh);height:calc(var(--V0,100vh)*11 - 100lvh)}
.d3-revs{position:relative;z-index:4;background:transparent!important}   /* в отзывах сквозь фон виден дайвер */
.dive3d .d3-stage{position:sticky;top:0;height:100vh;height:100lvh;overflow:hidden}   /* lvh: при скрытой панели Safari снизу не видно фона */
.dive3d canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.d3-surface{position:absolute;left:0;right:0;top:0;height:46px;z-index:3;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 46'%3E%3Cpath d='M0 0H240V20C200 20 180 32 120 32S40 20 0 20Z' fill='%2306243A'/%3E%3C/svg%3E") repeat-x 0 0/240px 46px;animation:d3wave 9s linear infinite}
.d3-surface::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 46'%3E%3Cpath d='M0 0H320V26C270 26 240 38 160 38S50 26 0 26Z' fill='%2306243A'/%3E%3C/svg%3E") repeat-x 0 0/320px 46px;opacity:.55;animation:d3wave2 14s linear infinite reverse}
.d3-surface::after{content:"";position:absolute;left:0;right:0;top:18px;height:110px;background:linear-gradient(rgba(160,228,255,.32),rgba(160,228,255,0));z-index:-1}
@keyframes d3wave{to{background-position:240px 0}}
@keyframes d3wave2{to{background-position:320px 0}}
.d3-labels{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}   /* текст для поиска и экранных чтецов; видимый - в 3D */
.d3-next{position:relative;z-index:4;margin-top:-100vh;margin-top:-100lvh;margin-top:calc(var(--V0,100lvh)*-1);background:var(--bg);padding-top:24px}   /* блок туров наплывает на неподвижную сцену сразу за линией горизонта */
.d3-next::before{content:"";position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:30vh;background:var(--bg);-webkit-mask:url(../media/lab/reef-edge.svg) 50% 100%/cover no-repeat;mask:url(../media/lab/reef-edge.svg) 50% 100%/cover no-repeat;pointer-events:none}
@media (max-width:759px){.d3-run{height:calc(1000vh - 100lvh);height:calc(var(--V0,100vh)*10 - 100lvh)}}
@media (prefers-reduced-motion:reduce){.d3-surface,.d3-surface::before{animation:none}}

/* «Стань дайвером»: в цветах сайта - контурная бегущая строка и стандартная кнопка */
.bigcta{background:var(--bg)}
.bigcta .bc-track{color:transparent;-webkit-text-stroke:2px var(--ink);opacity:.16}
.bigcta .bc-btn{background:transparent;color:var(--ink);border:2px solid var(--signal);border-radius:999px;padding:.9em 1.8em;box-shadow:none;transition:background .2s,color .2s}
.bigcta .bc-btn:hover,.bigcta .bc-btn:focus-visible{background:var(--signal);color:#1B1400}

/* «Стань дайвером»: высота букв - 90% высоты блока */
.bigcta{container-type:size}
.bigcta .bc-track{font-size:125cqh;line-height:.72;top:calc(50% + var(--bc-dy,.0em))}
@media (max-width:760px){.bigcta .bc-track{font-size:126cqh}}

/* ---------- Вопросы и ответы ---------- */
.faq{background:var(--bg)}
.faq h2{margin:0 0 28px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;position:relative;padding:22px 56px 22px 0;font-weight:700;font-size:1.15rem;line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);width:34px;height:34px;box-sizing:border-box;border:2px solid var(--signal);border-radius:50%;color:var(--signal);display:grid;place-items:center;font-size:1.3rem;font-weight:600;line-height:1;transition:background .2s,color .2s}
.faq summary:hover::after,.faq details[open] summary::after{background:var(--signal);color:#1B1400}
.faq details[open] summary::after{content:"−"}
.faq .fa{padding:0 56px 24px 0;color:var(--muted);max-width:820px}
.faq .fa p{margin:0 0 10px}.faq .fa ol,.faq .fa ul{margin:0 0 10px;padding-left:1.3em}.faq .fa li{margin:0 0 4px}
@media (max-width:760px){.faq summary{font-size:1.05rem;padding-right:48px}.faq .fa{padding-right:0}}

/* «Стань дайвером» внутри 3D-секции: прозрачный фон, сквозь него виден уплывающий дайвер */
.bigcta.d3-in{position:relative;z-index:4;background:transparent}
.faq{position:relative;z-index:5}
.faq.d3-end{background:var(--bg)}   /* FAQ внутри 3D-секции: непрозрачный, наезжает на дайвера, который стоит по центру */

/* учебник: у картинок-заглушек подписи не показываем (пока нет реальных фото) */
figure.ph-stub figcaption{display:none}

/* Главная, блок с 3D-дайвером и всё, что внутри (туры, отзывы, «Стань дайвером», FAQ): всегда тёмный, даже если в телефоне светлая тема */
.dive3d{--bg:#071B2A;--card:#0C2638;--ink:#E6F1F4;--muted:#93AFBD;--line:#1D4058;--field:#0A2131;--surface:#0C2638;--link:#7CC8DA;color:var(--ink);background:var(--bg)}

/* окна: помещаются на телефоне целиком (dvh учитывает панели Safari), крестик закрытия, кнопки действия всегда внизу на виду */
.modal{position:relative;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overscroll-behavior:contain}
.modal-x{position:sticky;top:-8px;float:right;margin:-10px -10px 0 8px;width:40px;height:40px;border-radius:50%;border:0;background:var(--line);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;z-index:3}
.modal-bar{position:sticky;bottom:-24px;margin:16px -24px -24px;padding:12px 24px calc(12px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);display:flex;gap:10px;z-index:2}
.modal-bar .btn{flex:1}
@media (max-width:760px){
 .modal{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px))}
 .modal-x{margin:-6px -6px 0 8px}
 .modal-bar{bottom:-18px;margin:14px -18px -18px;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px))}
}

/* ---------- сертификаты: фото, форма, просмотр на весь экран ---------- */
.cthumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.cthumbs img{width:auto;max-width:100%;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;object-fit:cover;background:#000}
.cert-row{padding:12px 0;border-bottom:1px solid var(--line)}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{flex:1;min-width:140px;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;padding:12px 14px;border:2px solid var(--line);border-radius:12px;font-weight:600}
.seg input:checked+span{border-color:var(--lagoon);background:rgba(14,110,140,.1)}
.seg input:focus-visible+span{outline:2px solid var(--signal);outline-offset:2px}
.cf-files{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}
.cf-files[hidden],[data-cfk][hidden]{display:none}
[data-cfk="elec"] .cf-files{grid-template-columns:1fr}
.cf-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;min-height:150px;padding:14px;border:2px dashed var(--line);border-radius:14px;cursor:pointer;background:var(--field)}
.cf-tile.has{border-style:solid;padding:8px}
.cf-tile img{width:100%;max-height:220px;object-fit:contain;border-radius:8px}
.cf-tile .cf-plus{font-size:2rem;line-height:1;color:var(--lagoon)}
.cf-tile .cf-note{color:var(--muted)}.cf-tile .cf-note.ok{color:var(--ok)}
@media (max-width:600px){.cf-files{grid-template-columns:1fr}}
#lbx{position:fixed;inset:0;z-index:10001;background:rgba(0,0,0,.92)}
#lbx .lbx-in{position:absolute;inset:0;overflow:auto;display:flex;align-items:center;justify-content:center;-webkit-overflow-scrolling:touch}
#lbx img{max-width:100vw;max-height:100vh;max-height:100dvh;object-fit:contain;cursor:zoom-in}
#lbx.zoom .lbx-in{display:block}
#lbx.zoom img{max-width:none;max-height:none;width:250vw;cursor:zoom-out}
@media (min-width:900px){#lbx.zoom img{width:auto;min-width:100vw}}
#lbx .lbx-x{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));right:12px;z-index:2;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px;margin-top:10px}
@media (max-width:760px){.grid3{grid-template-columns:1fr 1fr}}
.certEd{padding:14px 0;border-top:1px solid var(--line);margin-top:12px}
.cert-adm{margin-bottom:12px}

/* ---------- публичная страница дайвера ---------- */
.pubpage{min-height:100vh;min-height:100dvh;background:#071B2A;color:#E6F1F4;padding:0 16px 40px;--card:#0C2638;--line:#1D4058;--muted:#93AFBD;--ink:#E6F1F4}
.pub-head{max-width:520px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(14px + env(safe-area-inset-top,0px)) 0 0}
.pub-head .logo svg{height:30px;width:auto}
.pubpage .pubcard{margin:20px auto}
.pub-cert{padding:12px 0;border-bottom:1px solid var(--line)}
.pub-qr{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:22px}
.pub-qr .qr{padding:12px;border-radius:12px}
.gw{display:flex;justify-content:center;margin-top:14px}
.gw-btn{padding:0;border:0;background:none;cursor:pointer;border-radius:28px;line-height:0}
.gw-btn img{height:48px;width:auto}
.gw-btn:disabled{opacity:.6;cursor:progress}
.pub-nf{text-align:center;padding:60px 0;color:#93AFBD}

/* ---------- быстрое утверждение из письма или Telegram ---------- */
.quick{max-width:640px;margin:0 auto;padding-bottom:110px}
.quick .card{margin-bottom:12px}
.quick-bar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;gap:10px;justify-content:center;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -8px 30px rgba(0,0,0,.15)}
.quick-bar .btn{flex:1;max-width:300px}
.quick-done{flex:1;max-width:300px;align-self:center;font-weight:700;color:var(--ok)}

/* связь с человеком в админке */
.clinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cpick{display:inline-block;position:relative}
.cpick>summary{list-style:none;cursor:pointer}.cpick>summary::-webkit-details-marker{display:none}
.cpick-in{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);display:flex;flex-direction:column;gap:6px;min-width:220px}
/* поля в сетках не вылезают за колонку (особенно дата в Safari на iPhone) */
.grid2>*,.grid3>*{min-width:0}
.f input,.f select,.f textarea{min-width:0;max-width:100%}
.f input[type=date]{display:block;width:100%;-webkit-appearance:none;appearance:none;min-height:2.9em;text-align:left}
.f input[type=date]::-webkit-date-and-time-value{text-align:left}
.ce-need{margin:8px 0 6px}

/* заявление о здоровье в анкете */
.medbox{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;border:2px solid var(--line);border-radius:14px;margin:6px 0 12px}
.medbox.ok{border-color:var(--ok)}
.medbox.ok b{color:var(--ok)}
.medbox.invalid,.medbox[style*="coral"]{border-color:var(--coral)}
.medtext{max-height:min(52vh,520px);max-height:min(52dvh,520px);overflow:auto;padding:4px 14px 4px 2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);line-height:1.55;font-size:.95rem;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.medtext h4{margin:18px 0 6px;font-size:1rem}
.medtext p{margin:0 0 10px}
.medtext ul{margin:0 0 10px;padding-left:1.2em}.medtext li{margin:0 0 6px}
.medagree.is-off{opacity:.45}
/* поворот фото документов в админке */
.cimg,.pimg{display:inline-flex;flex-direction:column;align-items:center;gap:4px}
.rotb{display:flex;gap:4px}.rotb .btn{padding:.3em .7em;min-width:0}

/* ===== телефон и отклик (проверка по навыкам Emil Kowalski, 16.10.2026) ===== */
:root{--ease-out:cubic-bezier(.23,1,.32,1)}
/* без серой вспышки при нажатии: отклик даёт :active ниже */
html{-webkit-tap-highlight-color:transparent}
/* iPhone не увеличивает страницу при нажатии на поле: шрифт полей не меньше 16px */
@media (pointer:coarse){input,select,textarea,.lang-dd,.hero-actions .lang-dd,.m-bar .lang-dd,.qty input,.bk-add select{font-size:16px!important}}
/* кнопки: нажатие без задержки, текст не выделяется долгим нажатием */
.btn,.car-btn,.chip,.pager button,.vpick button,.lang-seg button,.cats button,.qty button,.modal-x,.ltabs a,.admin-nav a,.kpi,.faq summary{touch-action:manipulation;-webkit-user-select:none;user-select:none}
/* кнопка «вдавливается» в момент касания */
.btn,.car-btn,.chip,.pager button,.vpick button,.lang-seg button,.qty button,.modal-x,.ltabs a,.kpi{transition:transform 160ms var(--ease-out),background-color 160ms ease,color 160ms ease,border-color 160ms ease}
.bigcta .bc-btn{transition:transform 160ms var(--ease-out),background .2s,color .2s}
.pcard{transition:box-shadow .15s,transform 160ms var(--ease-out)}
.btn:active:not(:disabled),.car-btn:active,.chip:active,.pager button:active,.vpick button:active,.lang-seg button:active,.qty button:active,.modal-x:active,.ltabs a:active,.kpi:active,.bigcta .bc-btn:active,.pcard:active{transform:scale(.97)}
/* на сенсорных экранах эффекты наведения не залипают после касания */
@media (hover:none){
 .pcard:hover{box-shadow:none;transform:none}
 a.tour-card:hover{box-shadow:0 1px 3px rgba(6,36,58,.18)}
 .car-btn:hover{background:var(--card);color:var(--ink)}
 .btn.btn-diver:hover{background:var(--lagoon);border-color:var(--lagoon);color:#fff}
 .cats button:hover:not(.on){background:none}
 .bigcta .bc-btn:hover{background:transparent;color:var(--ink)}
 .faq details:not([open]) summary:hover::after{background:transparent;color:var(--signal)}
 .opt:hover{background:transparent}
 .depth a.t:hover{color:inherit}
 .depth li.done a.t:hover{color:var(--muted)}
 .trip-t:hover .tt{text-decoration:none}
 .trip-card.in .trip-t:hover .ta{background:var(--signal);transform:none}
 .trip-top .hero-actions .btn.ghost.on-dark:hover{background:var(--signal)!important;border-color:var(--signal)!important}
 .admin-sub a:hover{color:var(--muted)}
 .admin-sub a.on:hover{color:var(--ink)}
 .sa-side nav a:hover:not(.on){background:none;color:#9CC4D1}
 th.sort:hover{color:var(--muted)}
}
/* уведомление: плавно выезжает снизу, уходит быстрее */
#toast{display:block;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,10px);transition:opacity 150ms ease,transform 150ms ease,visibility 0s linear 150ms}
#toast.show{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out),visibility 0s}
/* окно: фон проявляется, окно появляется; на телефоне выезжает снизу. При обновлении содержимого - без анимации */
@keyframes mbIn{from{opacity:0}}
@keyframes mIn{from{opacity:0;transform:scale(.96)}}
@keyframes mInUp{from{opacity:0;transform:translateY(32px)}}
.modal-bg{animation:mbIn 200ms ease-out}
.modal-bg .modal{animation:mIn 220ms var(--ease-out)}
@media (max-width:760px){.modal-bg .modal{animation:mInUp 260ms cubic-bezier(.32,.72,0,1)}}
.modal-bg.still,.modal-bg.still .modal{animation:none}
@media (prefers-reduced-motion:reduce){
 .modal-bg .modal{animation:mbIn 150ms ease-out}
 .btn:active:not(:disabled),.car-btn:active,.chip:active,.pager button:active,.vpick button:active,.lang-seg button:active,.qty button:active,.modal-x:active,.ltabs a:active,.kpi:active,.bigcta .bc-btn:active,.pcard:active{transform:none}
 #toast,#toast.show{transform:translate(-50%,0)}
}

/* фото на сертификат: правила для студента и проверка админом */
.ph-rules{display:flex;gap:14px;align-items:flex-start;margin:0 0 16px;border-left-color:var(--signal,#e8a33d)}
.ph-rules ul{margin:6px 0;padding-left:18px}
.ph-rules li{margin:2px 0}
.ph-rules figure{margin:0;flex:0 0 auto;text-align:center}
.ph-rules figcaption{margin-top:3px}
@media (max-width:480px){.ph-rules{flex-direction:column-reverse}.ph-rules figure{align-self:center}}
.ph-tiles{display:flex;gap:10px;flex-wrap:wrap}
.ph-tiles figure{margin:0;width:120px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.ph-tiles img{width:120px;aspect-ratio:35/45;object-fit:cover;border-radius:6px;border:2px solid var(--line);background:#fff;cursor:zoom-in}
.ph-tiles figure.on img{border-color:var(--ok,#2a9d5c)}
.ph-tiles figcaption{font-size:.85rem;font-weight:600}
.ph-tiles .ph-spin{width:120px;aspect-ratio:35/45;border-radius:6px;border:2px dashed var(--line);display:grid;place-items:center}

/* три ролика: кнопка «Стать дайвером» на одной высоте во всех карточках, без подчёркивания */
.trip-t{top:auto;bottom:clamp(40px,12vh,120px);transform:none;justify-content:flex-end;gap:20px}
.trip-t:hover .tt{text-decoration:none}
.trip-t .ta{text-shadow:none;width:auto;height:auto;min-height:52px;padding:0 28px;border-radius:999px;font-size:1.05rem;font-weight:700;letter-spacing:0;white-space:nowrap}
.trip-t:hover .ta,.trip-t:focus-visible .ta{transform:translateY(-2px)}
@media (max-width:760px){.trip-t{top:auto;bottom:calc(56px + env(safe-area-inset-bottom,0px))}}

/* ---------- карточки CMAS: окно выпуска, список, электронный сертификат ---------- */
.modal:has(.cmod){max-width:1040px}
.cm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;align-items:start;margin-top:10px}
@media (max-width:820px){.cm-grid{grid-template-columns:1fr}}
.cm-prev{position:sticky;top:0;display:grid;gap:10px}
.cm-card{aspect-ratio:860/540;border-radius:14px;background:var(--surface);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.12),0 6px 18px rgba(7,27,42,.10)}
.cm-card.back{aspect-ratio:600/378}
.cm-card svg,.ca-prev svg,.ec-face svg{width:100%;height:100%;display:block}
.cm-warn{margin:0;padding-left:18px;color:#9A6B00}
.cm-warn li.bad{color:var(--coral)}
.cm-num{font-weight:700;font-size:1.05rem;letter-spacing:.02em;padding:.5em .7em;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-variant-numeric:tabular-nums}
.cm-hits{display:grid;gap:6px;margin-top:8px;max-height:220px;overflow:auto}
.cm-hit{display:block;text-align:left;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:inherit;font:inherit;cursor:pointer}
.cm-hit.on{border-color:var(--lagoon);background:rgba(14,110,140,.08)}
.cm-ext{display:flex;gap:14px;align-items:flex-start}
.cm-ph{flex:0 0 112px;aspect-ratio:35/45;border:2px dashed var(--line);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;overflow:hidden;text-align:center;background:var(--surface)}
.cm-ph.has{border-style:solid}
.cm-ph img{width:100%;height:100%;object-fit:cover}
.card-adm{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.card-adm:last-child{border-bottom:0}
.card-adm.void .ca-prev{opacity:.45;filter:grayscale(1)}
.ca-prev{width:220px;aspect-ratio:860/540;border-radius:10px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.15)}
.ecards{display:grid;gap:18px}
.ecard-item{display:grid;gap:10px}
.ecard-flip{perspective:1400px;cursor:pointer;max-width:520px;outline-offset:4px}
.ec-in{position:relative;aspect-ratio:860/540;transition:transform .6s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}
.ecard-flip.on .ec-in{transform:rotateY(180deg)}
.ec-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:4.4%/7%;box-shadow:0 1px 3px rgba(0,0,0,.18),0 10px 28px rgba(7,27,42,.18);background:#fff}
.ec-b{transform:rotateY(180deg)}
@media (prefers-reduced-motion:reduce){.ec-in{transition:none}}
.ecard-item.void .ec-in{filter:grayscale(1);opacity:.55}
.cm-hits{max-height:300px}
.cm-grp{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:8px 0 2px}
.cm-ph{position:relative}
.cm-ph-btn{position:absolute;left:0;right:0;bottom:0;background:rgba(7,27,42,.72);color:#fff;font-size:.75rem;font-weight:600;padding:4px 0;text-align:center}
.card-adm.draft .ca-prev{outline:2px dashed #E5B53C;outline-offset:3px}

/* таблица карточек CMAS: все ячейки по центру строки, кнопки компактные и справа */
table.ctable td{vertical-align:middle}
table.ctable td.small{font-size:.92rem}
table.ctable .tag{white-space:nowrap}
table.ctable td.cact{width:1%;white-space:nowrap}
table.ctable td.cact>div{display:flex;gap:6px;justify-content:flex-end;align-items:center}
table.ctable td.cact .btn.sm{min-height:34px;padding:0 14px;line-height:1}
table.ctable th.csel,table.ctable td.csel{width:1%;padding-right:4px}
table.ctable td.csel input,table.ctable th.csel input{width:18px;height:18px;margin:0;cursor:pointer}
table.ctable .btn.cdel{color:var(--coral);border-color:var(--coral);padding:0 11px}
.selbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line)}
.selbar.on{position:sticky;top:0;z-index:2;background:var(--card)}
.cv-grid{display:grid;gap:14px;margin-top:8px}
.modal:has(.cview){max-width:760px}
table.ctable td.cname{white-space:nowrap}
table.ctable td.cact .btn.sm{padding:0 11px}
.cv-grid{grid-template-columns:1fr 1fr;align-items:start}
@media (max-width:760px){.cv-grid{grid-template-columns:1fr}}
.modal:has(.cview){max-width:1080px}
.cview .modal-bar .btn{flex:0 0 auto}

/* таблица студентов: компактная, с фото, меню телефона и выбором */
table.stable th,table.stable td{padding:8px 6px;vertical-align:middle}
table.stable th.sc,table.stable td.sc{width:28px;padding-right:0}
table.stable td.sc input,table.stable th.sc input{width:17px;height:17px}
table.stable tr.sel td{background:rgba(232,163,61,.10)}
.sn-in{display:flex;gap:9px;align-items:center;min-width:150px}
.sthumb{width:34px;height:44px;border-radius:5px;object-fit:cover;flex:0 0 auto;background:#fff;cursor:zoom-in;border:1px solid var(--line)}
.sthumb.none{display:grid;place-items:center;background:var(--surface);color:var(--muted);font-size:.75rem;font-weight:700;cursor:default}
.sn-in a{font-weight:600;line-height:1.2}
details.phm{position:relative;margin-top:2px}
details.phm>summary{list-style:none;cursor:pointer;font-size:.82rem;color:var(--muted);white-space:nowrap;text-decoration:underline dotted;text-underline-offset:3px}
details.phm>summary::-webkit-details-marker{display:none}
details.phm>summary:hover{color:var(--ink)}
.phm-in{position:absolute;z-index:30;left:0;top:calc(100% + 4px);background:var(--card,#132433);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.35);padding:6px;display:flex;flex-direction:column;min-width:150px}
.phm-in a{padding:8px 10px;border-radius:6px;text-decoration:none;color:var(--ink);font-size:.9rem;white-space:nowrap}
.phm-in a:hover{background:rgba(255,255,255,.07)}
input.sdate{width:auto;padding:.3em .4em;font-size:.85rem;min-height:0}
td.slc{white-space:nowrap}
.lgrp{display:inline-flex;align-items:center;gap:2px;margin-right:7px}
.lgrp i{font-style:normal;font-size:.7rem;color:var(--muted);margin-right:2px}
.lc{display:inline-flex;width:20px;height:20px;border-radius:5px;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;border:1px solid var(--line);color:var(--muted);background:transparent}
.lc.on{background:#2e9b6a;border-color:#2e9b6a;color:#fff}
table.stable .mini{margin-right:6px}
.sbulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px}
.sbulk.on{border-color:var(--signal,#e8a33d)}
.sbulk select,.sbulk input[type=date]{width:auto;padding:.35em .5em;min-height:0}
.uedit{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.ue-ph{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ue-ph #ueImg{width:140px;aspect-ratio:35/45;border-radius:8px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;overflow:hidden}
.ue-ph #ueImg img{width:100%;height:100%;object-fit:cover}
@media (max-width:640px){.uedit{grid-template-columns:1fr}}
.uepick{display:flex;flex-direction:column;gap:4px;width:80px;cursor:pointer;font-size:.82rem}
.uepick img{width:80px;aspect-ratio:35/45;object-fit:cover;border-radius:6px;border:2px solid var(--line);background:#fff}
.uepick.on img{border-color:#2e9b6a}
#ueChoice .ph-tiles{gap:8px}
.ph-one{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.ph-one img{width:110px;aspect-ratio:35/45;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:zoom-in}
.expq .exp-note{display:none;margin-top:8px}
.expq:has(input[value=yes]:checked) .exp-note{display:block}
.sn-in .sfill{display:inline-block;margin:2px 0 0;font-size:.7rem;padding:.05em .45em}

/* сертификат: заглушка электронного - по нажатию скриншот */
.cimg.cstub{position:relative;cursor:zoom-in}
.cimg.cstub i{position:absolute;right:4px;bottom:4px;font-style:normal;font-size:.85rem;background:rgba(0,0,0,.55);border-radius:6px;padding:1px 4px}
.cimg img{border-radius:6px}
.pub-cert .cthumbs{margin-top:8px}

/* единый профиль: вкладки Студент / Дайвер / Путешественник / Снаряжение */
.ptabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;border-bottom:1px solid var(--line);padding-bottom:10px}
.ptabs a,.ptabs span{padding:.5em 1em;border-radius:999px;font-weight:600;font-size:.92rem;text-decoration:none;border:1px solid var(--line);color:var(--ink)}
.ptabs a.on{background:var(--abyss,#0b2a3c);color:#fff;border-color:var(--abyss,#0b2a3c)}
.ptabs span.off{opacity:.45;cursor:not-allowed}
.ptabs small{font-weight:500;font-size:.72rem}
.ptabs a.on{background:var(--signal,#F2C230);color:#1B1400;border-color:var(--signal,#F2C230)}

/* иконки связи */
.clinks{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ico-btn{width:40px;height:40px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;text-decoration:none;flex:0 0 auto;transition:transform .15s,filter .15s}
.ico-btn svg{width:21px;height:21px}
.ico-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.i-call.ico-btn{background:#2e9b6a}.i-tg.ico-btn{background:#2AABEE}.i-wa.ico-btn{background:#25D366}.i-vb.ico-btn{background:#7360F2}.i-mail.ico-btn{background:#5b6b7a}
.phm-in a{display:flex;align-items:center;gap:8px}
.phm-in a span{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;color:#fff}
.phm-in a span svg{width:13px;height:13px}
.phm-in .i-call{background:#2e9b6a}.phm-in .i-tg{background:#2AABEE}.phm-in .i-wa{background:#25D366}.phm-in .i-vb{background:#7360F2}
/* соцсети в подвале */
.foot-soc{display:flex;gap:10px;margin-top:12px}
.foot-soc a{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:inherit;transition:background .15s}
.foot-soc a:hover{background:var(--signal,#F2C230);color:#1B1400}
.foot-soc svg{width:19px;height:19px}
/* предложения на главной кабинета */
.offers .offer{border-left:4px solid var(--signal);display:flex;flex-direction:column}
.offers .offer .btn,.offers .offer .tag{align-self:flex-start;margin-top:auto}
.dash-cert{display:flex;flex-direction:column;gap:8px;padding:10px 0;border-top:1px solid var(--line)}
.dash-cert:first-child{border-top:0;padding-top:0}
/* подменю «Профиль» в левом меню (компьютер); на телефоне - вкладки над страницей */
.rail-sub{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 0 6px;margin:-2px 0 4px;border-left:2px solid rgba(242,194,48,.35);animation:rsIn .18s ease-out}
.rail .rail-sub a{width:40px;height:40px;border-radius:11px}
.rail .rail-sub a svg{width:18px;height:18px}
.rail .rail-sub a.lock{cursor:not-allowed}
@keyframes rsIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (min-width:761px){.ptabs{display:none}}
@media (max-width:760px){.rail-sub{display:none}}
/* обрезка документа «как сканер» */
body.ds-open{overflow:hidden}
.dscan{position:fixed;inset:0;z-index:1000;background:#06131c;color:#fff;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0px)}
.dscan .ds-top{display:flex;flex-direction:column;gap:2px;padding:12px 16px}
.dscan .ds-top .small{color:#9CC4D1}
.dscan .ds-stage{position:relative;flex:1;min-height:0;touch-action:none;user-select:none}
.dscan .ds-stage>canvas{position:absolute;inset:0}
.dscan .ds-h{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;border:3px solid #F2C230;background:rgba(242,194,48,.25);cursor:grab;touch-action:none}
.dscan .ds-h::after{content:"";position:absolute;inset:-12px}
.dscan .ds-loupe{display:none;position:absolute;width:120px;height:120px;border-radius:50%;overflow:hidden;border:3px solid #F2C230;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.5)}
.dscan .ds-bar{display:flex;gap:8px;align-items:center;padding:12px 16px;flex-wrap:wrap}
.dscan .ds-bar .btn.ghost{color:#fff;border-color:rgba(255,255,255,.4)}
@media (max-width:520px){.dscan .ds-bar>span{flex-basis:100%!important;height:0}.dscan .ds-bar [data-ds="no"],.dscan .ds-bar [data-ds="ok"]{flex:1;padding:.7em}}
/* разбор теста в админке */
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--lagoon);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .linkbtn{color:var(--shallow)}}
:root[data-theme="dark"] .linkbtn{color:var(--shallow)}
.qrev-l{padding-left:0;list-style:none;margin:8px 0}
.qrev-i{padding:8px 10px;border-radius:10px;margin-bottom:6px;border:1px solid var(--line)}
.qrev-i.bad{border-color:rgba(232,96,76,.45)}
.qr-bad{color:var(--coral)} .qr-ok{color:var(--ok)}
/* телефон: строки вкладок админки листаются только вбок, без вертикальной прокрутки и полос */
@media (max-width:760px){.admin-sub,.admin-nav{overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
 .admin-sub::-webkit-scrollbar,.admin-nav::-webkit-scrollbar{display:none}
 .admin-sub a{margin-bottom:0}}
/* загруженные сертификаты: та же переворачиваемая карточка, что и CMAS */
.cflip{max-width:420px;margin-top:8px}
.cflip .ec-face img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cflip .ec-face.shot{background:#0b1d2a}
.cflip .ec-face.shot img{object-fit:contain}
.cflip .ec-face{overflow:hidden}

/* студенты, которые сейчас занимаются (группа началась, не все практики отмечены) */
tr.active td{background:rgba(46,155,106,.26)}
tr.active td:first-child{box-shadow:inset 4px 0 0 var(--ok)}
/* shop: subcategories, gallery, placeholders */
.subcats{display:flex;flex-direction:column;gap:2px;margin:2px 0 6px 12px;border-left:2px solid var(--line);padding-left:6px}
.subcats button{font-size:.86rem;padding:.4em .6em}
.cats button.open:not(.on){font-weight:700}
.subchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.subchips button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:.4em .9em;cursor:pointer;font:inherit;font-size:.86rem;color:inherit}
.subchips button.on{background:var(--abyss);color:#fff;border-color:var(--abyss)}
.pimg.noimg,.pp-img.noimg{color:#C9D3DA;font-weight:800;letter-spacing:.08em;font-size:.85rem}
.pimg img{object-fit:contain}
.pp-gal{display:flex;flex-direction:column;gap:10px;min-width:0}
.pp-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.pp-thumbs button,.pp-thumbs span{width:64px;height:64px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.pp-thumbs button.on{border:2px solid var(--abyss)}
.pp-thumbs img{max-width:100%;max-height:100%}
.pp-desc ul{margin:.4em 0;padding-left:1.2em}.pp-desc li{margin:.2em 0}.pp-desc p{margin:.5em 0}
.vpick select{max-width:100%}
@media (max-width:760px){.pp{grid-template-columns:1fr}.subcats{display:none}.cartgrid{grid-template-columns:1fr}}
/* Магазин всегда на белом фоне, как учебник */
body:has(.shead){background:#fff;color:#0C2A3B;color-scheme:light;--bg:#fff;--card:#fff;--ink:#0C2A3B;--muted:#557080;--line:#D6E3E8;--field:#fff;--surface:#EEF6F7;--link:#0E6E8C}
body:has(.shead) main,body:has(.shead) #app{background:#fff}
:root body:has(.shead) .main a{color:#0E6E8C}
:root body:has(.shead) .main a.pcard,:root body:has(.shead) .main a.btn{color:inherit}
:root body:has(.shead) .main a.btn.dark{color:#fff}
:root body:has(.shead) .btn.dark,:root body:has(.shead) .cats button.on,:root body:has(.shead) .pager button.on,:root body:has(.shead) .subchips button.on{background:var(--abyss);border-color:var(--abyss);color:#fff}
:root body:has(.shead) .pstock.in{color:var(--ok)}
:root body:has(.shead) .tag{background:#EEF6F7;color:#0E6E8C}
body:has(.shead) .main input,body:has(.shead) .main select,body:has(.shead) .main textarea{background:#fff;color:#0C2A3B;border-color:#D6E3E8}
/* подбор размера */
.szbox{margin:10px 0 6px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface)}
.szrec{font-size:.95rem}.szrec b{font-size:1.05rem}
.szdet{margin-top:8px}.szdet summary{cursor:pointer;font-weight:600;color:var(--lagoon);font-size:.9rem}
.szform{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 12px;margin-top:8px}
.szform .f{margin:0}
.sztab{font-size:.82rem;margin-top:8px;border-collapse:collapse;width:100%}
.sztab th,.sztab td{padding:4px 8px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}
.sztab thead th{font-weight:600;color:var(--muted);font-size:.75rem;white-space:normal}
.sztab tr.szg th{text-align:left;background:var(--card);color:var(--ink);padding-top:10px}
.sztab tr.on td{background:#FFF3C4;font-weight:700}
.vpick button.rec{border-color:#D9A400}
.recst{color:#D9A400}
/* конструктор регуляторов */
.rkbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:12px 0}
.rkh{font-weight:700;margin-bottom:8px}
.rkrow{margin:8px 0}.rkl{font-size:.8rem;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.rkopts{display:flex;flex-wrap:wrap;gap:6px}
.rkopt{display:inline-flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-radius:10px;padding:.35em .7em;text-decoration:none;font-size:.85rem;font-weight:600;color:var(--ink)!important;background:var(--card);line-height:1.2}
.rkopt span{font-size:.7rem;font-weight:500;color:var(--muted)}
.rkopt.on{border:2px solid var(--abyss);background:#EEF6F7}
.rkopt.alt{opacity:.5}.rkopt.alt:hover{opacity:.85}
.vsize{max-width:360px;margin:6px 0 10px}.vsize select{width:100%}
/* магазин: дерево каталога, мобильная компоновка */
.shop{grid-template-columns:250px minmax(0,1fr)}
.ct-side{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}
.ctree,.ctree ul{list-style:none;margin:0;padding:0}
.ctree ul{margin:2px 0 6px 14px;border-left:2px solid var(--line);padding-left:6px}
.ct-row{display:flex;align-items:center;gap:4px;border-radius:8px}
.ct-row.on{background:var(--abyss)}.ct-row.on .ct-name,.ct-row.on .ct-n,.ct-row.on .ct-tog{color:#fff}
.ct-row:hover:not(.on){background:var(--surface)}
.ct-name{flex:1;text-align:left;border:0;background:none;padding:.45em .6em;font:inherit;font-size:.92rem;color:var(--ink);cursor:pointer}
.ctree ul .ct-name{font-size:.86rem;padding:.35em .5em}
.ct-n{font-size:.75rem;color:var(--muted)}
.ct-tog{border:0;background:none;cursor:pointer;font-size:1.2rem;line-height:1;width:30px;height:30px;color:#E58A00;transition:transform .15s}
.ct-tog.open{transform:rotate(90deg)}
.sbar{display:flex;gap:8px;margin-bottom:12px}.sbar input{flex:1}
.ct-open{display:none;white-space:nowrap}
.ct-drawer{position:fixed;inset:0;z-index:200}
.ct-back{position:absolute;inset:0;background:rgba(6,36,58,.45)}
.ct-panel{position:absolute;left:0;top:0;bottom:0;width:min(86vw,340px);background:#fff;overflow:auto;padding:0 12px 24px;box-shadow:4px 0 24px rgba(0,0,0,.2)}
.ct-head{position:sticky;top:0;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line);margin-bottom:8px;z-index:1}
body.noscroll{overflow:hidden}
.pcard{position:relative}
.ptop{position:absolute;top:8px;left:8px;z-index:1;background:#F2C230;color:#1B1400;font-size:.68rem;font-weight:800;padding:.2em .55em;border-radius:999px}
.rksep{flex-basis:100%;height:0;border-top:1px dashed var(--line);margin:4px 0 2px}
.rkopt{font-size:.82rem;padding:.4em .75em;cursor:pointer;font-family:inherit}
.rkopt.alt{opacity:.45;font-weight:500;font-size:.76rem}
@media (max-width:760px){
 .shop{grid-template-columns:1fr}.ct-side{display:none}.ct-open{display:inline-flex}
 .shead-btns{display:none}.shead{margin-bottom:6px}.shop-h{font-size:1.4rem;margin:.2em 0 .5em}
 .m-bar .mb-ord,.m-bar .mb-cart{padding:0 .7em;height:40px;display:inline-flex;align-items:center}
 .sztab{font-size:.74rem}.sztab th,.sztab td{padding:3px 4px}
 .sztab.kind-body .c-hip,.sztab.kind-body .c-hood,.sztab.kind-body .c-cb,.sztab.kind-body .c-eu{display:none}
 .szform{grid-template-columns:1fr 1fr}
 .pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pcard{padding:8px}.pname{font-size:.82rem}
}
@media (min-width:761px){.m-bar .mb-ord,.m-bar .mb-cart{display:none}}
.szdet .tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sztab td:first-child,.sztab th:first-child{position:sticky;left:0;background:var(--surface);font-weight:700}
.sztab tr.on td:first-child{background:#FFF3C4}
@media (max-width:760px){.shell{grid-template-rows:auto 1fr;align-content:start}}
/* корзина, допродажи, конструктор ласт, инвентарь */
.incart{margin:10px 0;padding:8px 12px;border-radius:10px;background:#E7F6EE;color:#1E6B45;font-size:.9rem}
.inv-mine{display:block;margin-top:8px;color:var(--lagoon)}
.addon{margin:12px 0;padding:12px 14px;border:1px solid #F2C230;background:#FFF9E6;border-radius:12px;display:flex;flex-direction:column;gap:10px}
.addon-n{font-size:.9rem}
.sws{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.sw{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);background:var(--sw);cursor:pointer;padding:0}
.sw.on{box-shadow:0 0 0 2px var(--abyss)}
.rkopt.ico{flex-direction:row;gap:8px;text-align:left;font-weight:500;max-width:260px}
.rkopt.ico span{font-size:.78rem;color:inherit}
.finb-tot{justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.upl{display:flex;flex-direction:column;gap:10px}
.upc{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}
.upimg{flex:none;width:64px;height:64px;display:flex;align-items:center;justify-content:center}.upimg img{max-width:100%;max-height:100%}
.upt{flex:1;display:flex;flex-direction:column;gap:4px;font-size:.88rem}.upt a{color:var(--ink);font-weight:600;text-decoration:none}.upt .btn{align-self:flex-start}
.cartlist{display:flex;flex-direction:column;gap:10px;min-width:0}
.cline{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}
.cline .cimg{width:72px;height:72px;display:flex;align-items:center;justify-content:center}.cline .cimg img{max-width:100%;max-height:100%}   /* только корзина: .cimg - ещё и миниатюры сертификатов */
.cinfo{min-width:0;overflow-wrap:anywhere}.cinfo a{color:var(--ink);text-decoration:none}
.cqty{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cqty .qty span{min-width:32px;text-align:center;align-self:center;font-weight:700}
@media (max-width:760px){.cline{grid-template-columns:56px minmax(0,1fr)}.cline .cimg{width:56px;height:56px}.cqty{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
.invbar{height:10px;border-radius:999px;background:var(--surface);overflow:hidden;margin:10px 0 4px}.invbar-f{height:100%;background:#2FA36B}
.invgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}
.invs{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:8px}
.invs.miss{border-style:dashed}.invs.other{border:0;padding:4px}
.invs-h{display:flex;align-items:center;gap:8px}.invs-ic{font-size:1.2rem}.invs-ok{margin-left:auto;color:#2FA36B;font-weight:800}.invs-h .tag{margin-left:auto}
.invi{display:flex;align-items:center;gap:10px}.invi img,.invi-ph{width:44px;height:44px;object-fit:contain;flex:none;border-radius:8px;background:var(--surface)}
.invi-t{flex:1;min-width:0;font-size:.88rem}.invi-t a{color:var(--ink);font-weight:600}
.inv-add{display:flex;flex-direction:column;gap:6px}
.inv-sug{display:flex;flex-direction:column;gap:4px}
.inv-sg{display:flex;align-items:center;gap:8px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:10px;padding:6px;cursor:pointer;font:inherit;font-size:.85rem}
.inv-sg img{width:36px;height:36px;object-fit:contain}.inv-sg small{display:block;color:var(--muted);font-size:.72rem}
/* инвентарь: экипировка дайвера (своя тёмная «подводная» палитра в любой теме) */
.irig{--ig:#0a2536;--ig2:#0f3a52;--iline:rgba(140,215,235,.18);--itxt:#e6f4f8;--imut:#8fb5c4;--iacc:#3fd0c9;--igold:#f2c230;
 background:radial-gradient(120% 80% at 50% 0%,#14506d 0%,#0b2a3d 55%,#071b28 100%);color:var(--itxt);border-radius:22px;padding:22px 18px 18px;margin-top:8px;position:relative;overflow:hidden}
.irig::before{content:"";position:absolute;inset:0;background:radial-gradient(2px 2px at 20% 30%,rgba(255,255,255,.25),transparent),radial-gradient(1.5px 1.5px at 70% 20%,rgba(255,255,255,.2),transparent),radial-gradient(2px 2px at 85% 60%,rgba(255,255,255,.15),transparent),radial-gradient(1.5px 1.5px at 35% 75%,rgba(255,255,255,.15),transparent);pointer-events:none}
.irig-h{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;position:relative}
.irig-h h2{margin:0;color:#fff}.irig-h p{margin:.3em 0 0;color:var(--imut);font-size:.88rem;max-width:520px}
.iring{flex:none;width:84px;height:84px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;
 background:radial-gradient(closest-side,#0b2a3d 79%,transparent 80% 100%),conic-gradient(var(--iacc) calc(var(--p)*1%),rgba(255,255,255,.1) 0)}
.iring b{font-size:1.25rem;color:#fff}.iring small{font-size:.68rem;color:var(--imut);text-transform:uppercase;letter-spacing:.06em}
.irig-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,240px) minmax(0,1fr);gap:14px;align-items:center;margin-top:16px;position:relative}
.icol{display:flex;flex-direction:column;gap:10px}
.islot{display:flex;align-items:center;gap:10px;text-align:left;width:100%;padding:8px 10px;border-radius:14px;cursor:pointer;font:inherit;color:var(--itxt);
 background:rgba(255,255,255,.04);border:1.5px dashed rgba(140,215,235,.28);transition:transform .15s,border-color .15s,background .15s;position:relative}
.islot:hover{transform:translateY(-1px);border-color:rgba(140,215,235,.6);background:rgba(255,255,255,.08)}
.islot.full{border:1.5px solid rgba(63,208,201,.75);background:linear-gradient(135deg,rgba(63,208,201,.16),rgba(255,255,255,.04));box-shadow:0 0 0 1px rgba(63,208,201,.15),0 6px 18px rgba(0,0,0,.25)}
.islot-ic{flex:none;width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.07);color:var(--imut)}
.islot-ic svg{width:24px;height:24px}.islot.full .islot-ic{background:#fff;color:#0b2a3d}.islot-ic img{width:100%;height:100%;object-fit:contain;border-radius:10px}
.islot-t{min-width:0;display:flex;flex-direction:column}.islot-t b{font-size:.82rem;letter-spacing:.02em}
.islot-t small{font-size:.72rem;color:var(--imut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.islot.full .islot-t small{color:#bff1ee}
.islot-n{position:absolute;top:-7px;right:-7px;background:var(--igold);color:#1b1400;font-size:.68rem;font-weight:800;border-radius:999px;padding:1px 6px}
.ifig{display:flex;justify-content:center}.idiver{width:100%;max-width:230px;height:auto;filter:drop-shadow(0 10px 30px rgba(0,0,0,.35))}
.idiver .ip{fill:rgba(255,255,255,.06);stroke:rgba(160,220,235,.35);stroke-width:1.5;transition:fill .3s,stroke .3s}
.idiver .limb,.idiver .leg{fill:none;stroke-width:18;stroke-linecap:round;stroke:rgba(160,220,235,.14)}
.idiver .limb.on,.idiver .leg.on{stroke:#1d5d7a}
.idiver .torso.on,.idiver .head{fill:#1d5d7a;stroke:#2e7ea0}.idiver .head{fill:rgba(255,255,255,.08)}
.idiver .tank{fill:rgba(255,255,255,.05)}
.idiver .snorkel{fill:none;stroke-width:5;stroke-linecap:round}
.idiver .on{stroke:var(--iacc)}
.idiver .bcd.on{fill:#20323d;stroke:var(--iacc)}.idiver .mask.on{fill:#7fe3f0}.idiver .reg.on,.idiver .gauge.on{fill:#d9e3e8}
.idiver .comp.on{fill:#2be0d4}.idiver .light.on{fill:var(--igold)}.idiver .smb.on{fill:#ff6a3d}.idiver .knife.on{fill:#cfd8dc}
.idiver .boots.on{fill:#122630}.idiver .fins.on{fill:var(--iacc);fill-opacity:.85}.idiver .snorkel.on{stroke:var(--igold)}
.ibag{margin-top:16px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--iline);padding:10px 12px;position:relative}
.ibag-h{display:flex;align-items:center;gap:10px}.ibag-h svg{width:22px;height:22px;color:var(--imut)}.ibag-h b{flex:1;font-size:.88rem}
.ibtn{border:1px solid rgba(140,215,235,.4);background:transparent;color:var(--itxt);border-radius:999px;padding:.35em .9em;cursor:pointer;font:inherit;font-size:.82rem}
.ibag-l{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ichip{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.08);border-radius:999px;padding:4px 6px 4px 10px;font-size:.8rem}
.ichip img{width:22px;height:22px;object-fit:contain;background:#fff;border-radius:6px}.ichip button{border:0;background:none;color:var(--imut);cursor:pointer;font-size:1rem}
.imod-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}.imod-h h3{margin:0}.imod-h .islot-ic{background:var(--surface);color:var(--ink)}
.imod-l{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.invi-ph svg{width:22px;height:22px}.invi-ph{display:flex;align-items:center;justify-content:center;color:var(--muted)}
@media (max-width:760px){
 .irig{padding:16px 10px;border-radius:18px}.irig-h h2{font-size:1.35rem}.iring{width:64px;height:64px}.iring b{font-size:1rem}
 .irig-b{grid-template-columns:minmax(0,1fr) 110px minmax(0,1fr);gap:6px}
 .islot{flex-direction:column;gap:4px;padding:6px 4px;text-align:center}.islot-ic{width:38px;height:38px}
 .islot-t b{font-size:.7rem}.islot-t small{font-size:.62rem;max-width:100%}
}
.iring small{font-size:.55rem;letter-spacing:.03em}
.islot-t{width:100%}
@media (max-width:760px){.islot{overflow:hidden}.islot-t small{display:block}.icol{gap:8px}}
.txopt{display:flex;gap:12px;align-items:flex-start;margin:12px 0;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;font-size:.88rem;background:var(--card)}
.txopt input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:#0E6E8C}.txopt small{color:var(--muted)}
.txopt:has(input:checked){border-color:#0E6E8C;background:#EEF6F7}
.idv{position:relative;width:100%;max-width:260px;margin:0 auto}
.idv img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45));user-select:none}
.idot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid rgba(160,220,235,.7);background:rgba(11,42,61,.6);cursor:pointer;padding:0;z-index:2}
.idot.on{background:var(--iacc);border-color:#fff;box-shadow:0 0 0 4px rgba(63,208,201,.25),0 0 14px rgba(63,208,201,.8);animation:idp 2.4s ease-in-out infinite}
@keyframes idp{50%{box-shadow:0 0 0 7px rgba(63,208,201,.12),0 0 18px rgba(63,208,201,.9)}}
.irig-b{grid-template-columns:minmax(0,1fr) minmax(170px,280px) minmax(0,1fr)}
.ilines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.ilines path{fill:none;stroke:rgba(160,220,235,.22);stroke-width:1.2;stroke-dasharray:3 4}
.ilines path.on{stroke:rgba(63,208,201,.75);stroke-dasharray:none}
.icol{position:relative;z-index:2}
@media (max-width:760px){.irig-b{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr)}.idot{width:10px;height:10px;margin:-5px 0 0 -5px}}
@media (prefers-reduced-motion:reduce){.idot.on{animation:none}}
@media (max-width:760px){.ilines{display:none}}
.idv{aspect-ratio:520/1024}.idv img{width:100%;height:100%;object-fit:contain}
/* тёмная тема: подсказки и карточки не белые */
.inv-sg{background:var(--card);color:var(--ink);border-color:var(--line)}
.inv-sg:hover,.inv-sg:focus-visible{border-color:var(--lagoon);background:var(--surface)}
.inv-sg span{color:var(--ink);font-weight:600}.inv-sg small{color:var(--muted);font-weight:400}
.inv-sg img{background:#fff;border-radius:6px}
.upc,.cline{background:var(--card);color:var(--ink)}
.upimg,.cline .cimg,.invi img{background:#fff;border-radius:8px}

.ordinv{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff8dc;border:1px solid #f2c230;color:#0c2a3b;border-radius:12px;padding:10px 14px;margin:0 0 14px}
.ordinv-l{display:grid;gap:6px;max-height:50vh;overflow:auto}
.ordinv-r{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:6px 10px;cursor:pointer}
.ordinv-r img,.ordinv-r .invi-ph{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:8px;flex:none}
.ordinv-r input{width:18px;height:18px;flex:none}
/* анкета: подсветка того, что не заполнено/не отмечено */
.flash-bad{outline:2px solid var(--coral);outline-offset:4px;border-radius:8px;animation:flashBad .9s ease-in-out 2}
@keyframes flashBad{50%{outline-color:transparent}}
/* имена в списках студентов и дайверов - в одну строку; таблица студентов шире (листается вбок) */
.sn-in a{white-space:nowrap}
table.stable{min-width:1080px}
.xcm{display:inline-block;margin-left:8px;padding:.15em .55em;border-radius:7px;border:1px solid var(--line);font-size:.78rem;font-weight:600;white-space:nowrap;text-decoration:none;color:var(--ink)}
.xcm.on{background:var(--ok);border-color:var(--ok);color:#fff}
/* фильтр студентов по курсу */
.cflt{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.cflt .cnt{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:rgba(127,127,127,.22);font-size:.72rem;text-align:center}
/* ---------- студенты: группы, путь курса, следующий шаг ---------- */
.sflt{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 8px}
.sseg{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.sseg button{background:none;border:0;color:var(--muted);font:inherit;font-weight:600;font-size:.9rem;padding:.48em .9em;cursor:pointer}
.sseg button b{font-weight:500;opacity:.75;margin-left:5px}
.sseg button.on{background:var(--signal);color:#1B1400}
.schip{border:1px solid var(--line);border-radius:999px;background:none;color:var(--muted);font:inherit;font-weight:600;font-size:.84rem;padding:.36em .8em;cursor:pointer}
.schip.on{border-color:var(--coral);color:var(--coral)}
.slegend{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.slegend span{display:inline-flex;align-items:center;gap:6px}
.lg-pr{display:inline-block;width:13px;height:13px;border-radius:4px;background:var(--ok)}
.lg-pr.today{background:none;border:2px solid var(--signal)}
.sb-all{display:inline-flex;align-items:center;gap:5px;font-size:.85rem;color:var(--muted);margin-right:6px}
.sgrp{background:var(--card);border:1px solid var(--line);border-radius:16px;margin:0 0 16px;overflow:visible}
.sgrp.live{border-color:rgba(46,155,106,.6)}
.sgrp-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.sgrp-h h3{margin:0;font-size:1.05rem}
.sgrp-a{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.sgrp-live{background:rgba(46,155,106,.16);color:var(--ok);border-radius:8px;padding:.12em .55em;font-size:.82rem;font-weight:700}
.srow{display:grid;grid-template-columns:20px minmax(200px,250px) minmax(330px,1fr) 104px minmax(170px,230px) 30px;align-items:center;gap:12px;padding:9px 16px;border-bottom:1px solid var(--line)}
.srow:last-child{border-bottom:0}
.srow.sel{background:rgba(232,163,61,.10)}
.srow-c{width:17px;height:17px;margin:0}
.srow-who{display:flex;gap:10px;align-items:center;min-width:0}
.srow-nm{min-width:0}
.srow-nm>a{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.srow-x{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.srow-x a{border:1px solid var(--line);border-radius:7px;padding:.05em .45em;font-size:.74rem;font-weight:700;text-decoration:none;color:var(--lagoon);white-space:nowrap}
.srow-tk{display:flex;align-items:center;min-width:0}
.tk-ln{display:block;height:2px;flex:1 1 8px;min-width:6px;background:var(--line)}
.tk-ln.on{background:var(--ok)}
.tk-les{position:relative;flex:none;width:30px;height:30px;display:grid;place-items:center;background:none;border:0;padding:0;color:var(--ink);cursor:default}
button.tk-les{cursor:pointer}
.tk-les svg{position:absolute;inset:0;width:30px;height:30px;transform:rotate(-90deg)}
.tk-les span{position:relative;font-size:.72rem;font-weight:800}
.tk-pr,.tk-cert{flex:none;display:grid;place-items:center;height:26px;min-width:26px;padding:0 4px;border-radius:8px;border:2px solid var(--line);font-size:.7rem;font-weight:800;color:var(--muted);cursor:pointer;background:var(--field);user-select:none}
.tk-pr input,.tk-cert input,.srow-pay input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.tk-pr.on{background:var(--ok);border-color:var(--ok);color:#fff}
.tk-pr.today{border-color:var(--signal);color:var(--signal);box-shadow:0 0 0 3px rgba(242,194,48,.18)}
.tk-cert{border-radius:50%;border-style:dashed;width:28px;height:28px;padding:0}
.tk-cert.on{border:0;background:var(--signal);color:#1B1400}
.tk-pr:focus-within,.tk-cert:focus-within,.srow-pay:focus-within{outline:2px solid var(--lagoon);outline-offset:2px}
.tk-tw{flex:none;background:none;border:0;padding:0;cursor:default}
button.tk-tw{cursor:pointer}
.tk-top{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:2px solid var(--line);font-size:.7rem;font-weight:800;color:var(--muted)}
.tk-top.on{background:var(--ok);border-color:var(--ok);color:#fff}
.tk-top.bad{border-color:var(--signal);color:var(--signal)}
.srow-pay{position:relative;border-radius:9px;padding:.32em .5em;font-weight:700;font-size:.8rem;text-align:center;border:1px solid var(--line);color:var(--muted);cursor:pointer;white-space:nowrap}
.srow-pay.on{border-color:transparent;background:rgba(46,155,106,.16);color:var(--ok)}
.srow-nx{font-size:.84rem;line-height:1.3;min-width:0}
.srow-nx b{display:block;font-size:.88rem}
.srow-nx span{color:var(--muted)}
.srow-nx.bad b{color:var(--coral)} .srow-nx.wait b{color:#B7791F} .srow-nx.ok b{color:var(--ok)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .srow-nx.wait b{color:var(--signal)}}
:root[data-theme="dark"] .srow-nx.wait b{color:var(--signal)}
.srow-m{position:relative}
.srow-m summary{list-style:none;cursor:pointer;font-size:1.25rem;color:var(--muted);text-align:center;border-radius:8px;padding:0 4px}
.srow-m summary::-webkit-details-marker{display:none}
.srow-mi{position:absolute;right:0;top:30px;z-index:20;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;min-width:230px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:grid;gap:8px}
.srow-mi .f{display:grid;gap:4px;font-size:.82rem;color:var(--muted)}
@media (max-width:900px){
 .srow{grid-template-columns:20px 1fr 30px;grid-template-areas:"c who m" "tk tk tk" "pay nx nx";row-gap:8px}
 .srow-c{grid-area:c}.srow-who{grid-area:who}.srow-m{grid-area:m}.srow-tk{grid-area:tk}.srow-pay{grid-area:pay;justify-self:start}.srow-nx{grid-area:nx}
 .srow{grid-template-areas:"c who m" "tk tk tk" "nx nx pay";grid-template-columns:20px 1fr auto}
 .sgrp-a{margin-left:0}
}
.srow[hidden]{display:none}
.sgrp:not(:has(.srow:not([hidden]))){display:none}
@media (max-width:600px){.sseg{max-width:100%;overflow-x:auto;scrollbar-width:none}.sseg::-webkit-scrollbar{display:none}.sseg button{white-space:nowrap;padding:.48em .7em}}
/* несколько курсов в строке студента: линии одна под другой, «следующий шаг» напротив своей линии */
.srow-tk{flex-direction:column;align-items:stretch;gap:4px}
.tk-line{display:flex;flex-direction:column;justify-content:center;min-height:40px}
.tk-path{display:flex;align-items:center;min-width:0}
.tk-lbl{font-size:.7rem;font-weight:700;color:var(--muted);line-height:1;margin:0 0 3px}
.srow-nx{display:flex;flex-direction:column;gap:4px}
.nx-line{min-height:40px;display:flex;flex-direction:column;justify-content:center}
.srow.multi .nx-line{min-height:calc(40px)}
.srow.multi .srow-tk .tk-line:not(:first-child),.srow.multi .nx-line:not(:first-child){border-top:1px dashed var(--line);padding-top:4px}
.nx-line b{display:block;font-size:.88rem}.nx-line span{color:var(--muted)}
.nx-line.bad b{color:var(--coral)} .nx-line.wait b{color:#B7791F} .nx-line.ok b{color:var(--ok)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nx-line.wait b{color:var(--signal)}}
:root[data-theme="dark"] .nx-line.wait b{color:var(--signal)}
.srow{grid-template-columns:20px minmax(200px,250px) minmax(380px,1fr) 104px minmax(180px,240px) 30px}
.srow.multi .tk-line,.srow.multi .nx-line{height:50px;min-height:0;overflow:hidden}
.srow.multi .nx-line{justify-content:flex-end;padding-bottom:4px}
/* оплата курса - значок доллара в конце линии курса */
.tk-pay{position:relative;flex:none;display:grid;place-items:center;width:28px;height:28px;margin-left:10px;border-radius:50%;border:2px solid var(--line);color:var(--muted);cursor:pointer}
.tk-pay input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.tk-pay.on{background:var(--signal);border-color:var(--signal);color:#1B1400}
.tk-pay:focus-within{outline:2px solid var(--lagoon);outline-offset:2px}
.srow{grid-template-columns:20px minmax(200px,250px) minmax(420px,1fr) minmax(180px,250px) 30px}
@media (max-width:900px){.srow{grid-template-columns:20px 1fr auto;grid-template-areas:"c who m" "tk tk tk" "nx nx nx"}}
.cm-th{display:block;border-radius:6px;overflow:hidden;cursor:default}
.cm-th svg{width:100%;height:100%;display:block}
