/* Кафе Full-Time Trading — карта городов (07.10.2026). Общие стили /cafe и /en/cafe.
   Цвета — токенами: светлая тема в :root, тёмная в html[data-theme="dark"] (ключ ftt_theme, как на всём сайте).
   Статусы города: бронь — янтарь, закреплён — зелёный, кафе открыто — чернила; акцент кнопок — синий сайта. */
@font-face{font-family:'Wix Madefor Display';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/wix-madefor-display-400-800-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Wix Madefor Display';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/wix-madefor-display-400-800-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Wix Madefor Text';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/wix-madefor-text-400-800-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Wix Madefor Text';font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/wix-madefor-text-400-800-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/manrope-200-800-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F,U+2212}

:root{
  --bg:#F1F4F8;--surface:#FFFFFF;--surface-2:#F6F8FB;--ink:#0A0E16;--ink-soft:#4F5869;--ink-faint:#868FA2;
  --line:#E2E7EF;--line-strong:#CBD3DE;
  --ocean:#E2EAF3;--land:#FFFFFF;--land-line:#C7D1DE;--land-1:#FBE8C2;--land-2:#CBEEDC;--land-sel:#009100;--land-sel-line:#007A00;
  --hold:#B86F05;--hold-dot:#E0960F;--hold-wash:rgba(232,160,30,.15);
  --ok:#0B8A57;--ok-dot:#11A36B;--ok-wash:rgba(17,163,107,.13);
  --open:#0A0E16;--open-ink:#FFFFFF;
  --queue:#4F5869;--queue-wash:rgba(79,88,105,.10);
  --blue:#2563EB;--blue-deep:#1D4ED8;--blue-wash:rgba(37,99,235,.09);--btn-ink:#FFFFFF;--danger:#B91C30;
  --ring:#FFFFFF;
  --shadow:0 1px 2px rgba(10,14,22,.04),0 12px 32px rgba(10,14,22,.06);
  --pop-shadow:0 12px 32px rgba(10,14,22,.18);
  --nav-bg:rgba(241,244,248,.86);
  /* фон «кафе трейдеров» (11.10.2026): свет рынка (зелёный), тёплый кофейный янтарь, вечерний синий + сетка графика */
  --g-green:rgba(17,163,107,.30);--g-amber:rgba(232,150,40,.30);--g-blue:rgba(37,99,235,.18);--g-rose:rgba(225,110,80,.14);
 --grad-a:#0B8A57;--grad-b:#C9790A;
  --disp:'Wix Madefor Display',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --text:'Wix Madefor Text',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --num:'Manrope','Wix Madefor Text',sans-serif;--mono:'IBM Plex Mono',ui-monospace,monospace;
}
html[data-theme="dark"]{
  --bg:#0B0F16;--surface:#121826;--surface-2:#0E1420;--ink:#EAF0F8;--ink-soft:#9AA7BC;--ink-faint:#64718A;
  --line:#202A3B;--line-strong:#2C3850;
  --ocean:#0C121D;--land:#1A2233;--land-line:#2C384D;--land-1:#3B3119;--land-2:#163A2D;--land-sel:#009100;--land-sel-line:#00A800;
  --hold:#E5B054;--hold-dot:#E5B054;--hold-wash:rgba(229,176,84,.15);
  --ok:#3DD598;--ok-dot:#3DD598;--ok-wash:rgba(61,213,152,.13);
  --open:#EAF0F8;--open-ink:#0B0F16;
  --queue:#9AA7BC;--queue-wash:rgba(154,167,188,.12);
  --blue:#6E8BFF;--blue-deep:#93A8FF;--blue-wash:rgba(110,139,255,.13);--btn-ink:#0B0F16;--danger:#F0556B;
  --ring:#0B0F16;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 14px 34px -18px rgba(0,0,0,.55);
  --pop-shadow:0 14px 34px rgba(0,0,0,.55);
  --nav-bg:rgba(11,15,22,.84);
  --g-green:rgba(61,213,152,.30);--g-amber:rgba(229,160,70,.24);--g-blue:rgba(110,139,255,.28);--g-rose:rgba(240,110,90,.12);
 --grad-a:#3DD598;--grad-b:#E5B054;
  color-scheme:dark;
}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--text);background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--blue-deep)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* шапка */
nav{position:sticky;top:0;z-index:50;background:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav__row{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:inherit;font-weight:700;white-space:nowrap}
.brand img{height:20px;width:auto}
html[data-theme="dark"] .brand img{filter:brightness(1.6)}
.nav__r{display:flex;align-items:center;gap:8px}
.navlink{font-size:13.5px;color:var(--ink-soft);text-decoration:none;border:1px solid var(--line);border-radius:10px;padding:7px 12px;background:var(--surface);white-space:nowrap}
.navlink.lang{font-family:var(--mono);font-size:12.5px;letter-spacing:.04em}

/* заголовок */
.hero{padding:44px 24px 26px}
.hero h1{font-family:var(--disp);font-weight:800;font-size:clamp(34px,5.6vw,60px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance;max-width:16ch}
.hero h1 .nw{white-space:nowrap}
.lede{margin-top:16px;font-size:17.5px;color:var(--ink-soft);max-width:64ch;text-wrap:pretty}
.stats{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:22px;align-items:baseline;min-height:30px}
.stats .st{font-size:14.5px;color:var(--ink-soft)}
.stats .st b{font-family:var(--num);font-weight:800;font-size:26px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-right:2px}
.stats .empty{font-size:15px;color:var(--ink-soft)}

/* карта */
.mapcard{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.map{position:relative;aspect-ratio:1975/861;background:var(--ocean);overflow:hidden;user-select:none;-webkit-user-select:none}
.map svg{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.map.zoomed svg{touch-action:none}
.map.dragging svg{cursor:grabbing}
.map.picking svg{cursor:crosshair}
.map .ocean{fill:var(--ocean)}
.map .land path{fill:var(--land);stroke:var(--land-line);stroke-width:.6;vector-effect:non-scaling-stroke;stroke-linejoin:round;transition:fill .25s}
/* страна, где выбран город, — фирменным зелёным (Di 12.10.2026): цвет логотипа F, как на /profile (#03FD00 с brightness(.55)
   saturate(1.15) = #009100), не мятный #3DD598 — «слишком яркий». Статус города (бронь/закреплён/открыто) — цветом точки */
.map .land path.on1,.map .land path.on2{fill:var(--land-sel);fill-opacity:.68;stroke:var(--land-sel-line)}  /* «чуть прозрачнее» (Di 12.10.2026) */
.map.picking .land path:hover{fill:var(--blue-wash)}
.pin{cursor:pointer;outline:none}
.pin .hit{fill:transparent}
.pin .dot{stroke:var(--ring);transition:r .15s}
.pin.st-hold .dot{fill:var(--hold-dot)}
.pin.st-confirmed .dot{fill:var(--ok-dot)}
.pin.st-open .dot{fill:var(--open)}
.pin.mine .dot{stroke:var(--blue)}
.pin.sel .dot,.pin:focus-visible .dot{stroke:var(--blue)}
.pin.preview .dot{fill:none;stroke:var(--blue);stroke-dasharray:3 2}
.pin .qn{fill:var(--ink-soft);font-family:var(--num);font-weight:800;paint-order:stroke;stroke:var(--ocean);stroke-width:3px;pointer-events:none}
.lbls{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.lbl{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:4px 9px 5px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:0 2px 8px -3px rgba(10,14,22,.22);font:inherit;text-align:left;white-space:nowrap;line-height:1.2;cursor:pointer;will-change:transform}
.lbl b{font-family:var(--disp);font-weight:800;font-size:12.5px;letter-spacing:-.005em}
.lbl span{font-size:11px;color:var(--ink-soft)}
.lbl.mine{border-color:var(--blue)}
.lbl:hover{border-color:var(--line-strong)}
@media (hover:hover) and (pointer:fine){.lbl{pointer-events:auto}}
@media (max-width:560px){.lbl{padding:3px 7px 4px;border-radius:8px}.lbl b{font-size:11px}.lbl span{font-size:10px}}
.mapload,.mapfail{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:14px;padding:20px;text-align:center}
.ctl{position:absolute;z-index:2;top:12px;right:12px;display:flex;flex-direction:column;gap:6px}
.ctl button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px rgba(10,14,22,.06)}
.ctl button:hover{background:var(--surface-2)}
.ctl button.rs svg{width:19px;height:19px}
.map::after{content:attr(data-hint);position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:var(--ink);color:var(--surface);font-size:13px;padding:7px 12px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s;white-space:nowrap}
.map.hint::after{opacity:.92}
.map.picking::before{content:attr(data-pick);position:absolute;left:12px;top:12px;right:60px;z-index:2;background:var(--blue);color:var(--btn-ink);font-size:13.5px;font-weight:700;padding:8px 12px;border-radius:10px;pointer-events:none;width:max-content;max-width:calc(100% - 72px)}
.pop{position:absolute;z-index:3;width:max-content;min-width:200px;max-width:270px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--pop-shadow);padding:12px 14px 12px}
.pop .x{position:absolute;top:4px;right:6px;width:28px;height:28px;border:0;background:none;color:var(--ink-faint);font-size:20px;cursor:pointer;border-radius:8px}
.pop .x:hover{background:var(--surface-2);color:var(--ink)}
.pop .pc{font-family:var(--disp);font-weight:800;font-size:18px;letter-spacing:-.01em;padding-right:24px;line-height:1.2}
.pop .pm{font-size:13px;color:var(--ink-faint);margin-top:1px}
.pop .pst{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-top:9px}
.pop .pn{font-size:13px;color:var(--ink-soft)}
.pop .pq{font-size:12.5px;color:var(--ink-faint);margin-top:6px}
.pop .lnk{margin-top:9px}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;padding:12px 18px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-soft)}
.legend>span{display:inline-flex;align-items:center;gap:7px}
.legend .lg-hint{margin-left:auto;color:var(--ink-faint);font-size:12.5px}
i.dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none;box-shadow:0 0 0 2px var(--surface)}
i.dot.st-hold{background:var(--hold-dot)} i.dot.st-confirmed{background:var(--ok-dot)} i.dot.st-open{background:var(--open)}

/* карточки и сетка */
.grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;margin-top:20px;align-items:start}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:24px 26px}
.card h2{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:-.015em;line-height:1.2}
.card h2 .n{font-family:var(--num);color:var(--ink-faint);font-weight:700;font-size:18px}
.card h2 .opt{font-family:var(--text);font-weight:500;font-size:13px;color:var(--ink-faint);letter-spacing:0;margin-left:6px}
.sub{color:var(--ink-soft);font-size:14.5px;margin-top:8px}
.muted{color:var(--ink-faint);font-size:14px}
.hint{font-size:12.5px;color:var(--ink-faint);margin-top:6px}
.field{margin-top:16px;position:relative}
.field label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:6px;font-weight:500}
.field .opt,label .opt{color:var(--ink-faint);font-weight:400}
input[type=text],select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:11px;padding:11px 13px;font-size:15px;background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
textarea{resize:vertical;min-height:72px;line-height:1.45}
input[type=text]:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-wash)}
::placeholder{color:var(--ink-faint)}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:11px 18px;font-weight:700;font-size:14.5px;cursor:pointer;text-decoration:none;line-height:1.2;transition:background .15s,opacity .15s}
.btn.primary{background:var(--blue);color:var(--btn-ink)} .btn.primary:hover{background:var(--blue-deep)}
.btn.ghost{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink)} .btn.ghost:hover{background:var(--surface-2)}
.btn.danger{color:var(--danger)}
.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:9px}
.btn:disabled{opacity:.5;cursor:default}
.lnk{background:none;border:0;padding:0;color:var(--blue-deep);font-weight:600;font-size:14px;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}
.lnk:hover{text-decoration-color:currentColor}
.lnk.sm{font-size:12.5px;font-weight:500}
#cfManualBtn{margin-top:10px}
.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.35;white-space:nowrap;background:var(--surface-2);color:var(--ink-soft)}
.chip.st-hold{background:var(--hold-wash);color:var(--hold)}
.chip.st-confirmed{background:var(--ok-wash);color:var(--ok)}
.chip.st-open{background:var(--open);color:var(--open-ink)}
.chip.st-queue{background:var(--queue-wash);color:var(--queue)}

/* поиск города */
.sugg{position:absolute;left:0;right:0;top:100%;margin-top:6px;z-index:20;list-style:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:13px;box-shadow:var(--pop-shadow);max-height:330px;overflow:auto;padding:5px}
.sugg li{display:flex;flex-direction:column;gap:1px;padding:8px 11px;border-radius:9px;cursor:pointer}
.sugg li b{font-weight:700;font-size:15px}
.sugg li span{font-size:12.5px;color:var(--ink-faint)}
.sugg li:hover,.sugg li.on{background:var(--blue-wash)}
.sugg li.none{cursor:default;color:var(--ink-soft);font-size:13.5px}
.sugg li.none:hover{background:none}
.pick{margin-top:10px;font-size:13.5px;padding:9px 12px;border-radius:10px;line-height:1.45}
.pick.free{background:var(--ok-wash);color:var(--ok)}
.pick.taken{background:var(--hold-wash);color:var(--hold)}
.pick.ok{background:var(--blue-wash);color:var(--blue-deep)}
.manual{margin-top:12px;padding:14px;border:1px dashed var(--line-strong);border-radius:13px}
.manual .sub{margin-top:0}

/* моя бронь */
.mine-top{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:16px}
.mine-city{font-family:var(--disp);font-weight:800;font-size:24px;letter-spacing:-.015em;line-height:1.2}
.edit{margin-top:6px;border-top:1px solid var(--line);padding-top:4px}

/* список городов */
.clist{margin-top:12px;max-height:620px;overflow:auto;margin-right:-8px;padding-right:8px}
.cgroup+.cgroup{margin-top:14px}
.ch{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);padding:6px 4px;border-bottom:1px solid var(--line)}
.ch .n{font-variant-numeric:tabular-nums}
.crow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 6px;cursor:pointer;border-radius:0}
.crow:hover{background:var(--surface-2)}
.crow.on{background:var(--blue-wash)}
.crow .cn{display:flex;flex-direction:column;min-width:0}
.crow .cn b{font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crow .cn span{font-size:12.5px;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crow .cr{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.crow .q{font-size:11.5px;color:var(--ink-faint);font-family:var(--num);font-weight:700}

/* идеи */
.ideas{margin-top:20px}
.ih{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;flex-wrap:wrap}
.ih .sub{max-width:62ch}
.sort{display:inline-flex;border:1px solid var(--line-strong);border-radius:11px;padding:3px;gap:2px;background:var(--surface-2)}
.sort button{border:0;background:none;padding:6px 12px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer}
.sort button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(10,14,22,.08)}
.ideaform{margin-top:16px}
.ideaform .row{margin-top:10px}
.check{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-soft);cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--blue)}
.count{font-size:12px;color:var(--ink-faint);font-family:var(--num);font-variant-numeric:tabular-nums;margin-left:auto}
.attach{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;border:1px solid var(--line-strong);border-radius:10px;padding:6px 11px;background:var(--surface);position:relative}
.attach svg{width:17px;height:17px;flex:none}
.attach:hover,.attach.on{border-color:var(--blue);color:var(--blue-deep)}
.attach.on{background:var(--blue-wash)}
.attach:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.ipick{display:flex;align-items:center;gap:12px;margin-top:10px}
.ipick[hidden]{display:none}
.ipick img{width:88px;height:66px;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:var(--surface-2)}
.idea .ipic{display:block;width:100%;max-width:440px;margin-top:10px;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface-2);cursor:zoom-in}
.idea .ipic img{display:block;width:100%;height:auto;max-height:300px;object-fit:cover}
.idea .ipic:hover{border-color:var(--line-strong)}
html.lbox-on{overflow:hidden}
.lbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(6,9,14,.88);cursor:zoom-out}
.lbox:focus{outline:none}
.lbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.lbox .lclose{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.lbox .lclose svg{width:18px;height:18px}
.clubwrap{margin-top:10px}
.clubwrap textarea{margin-top:8px}
.ilist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.ilist>.muted{grid-column:1/-1}
.idea{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:15px;padding:13px 14px;background:var(--surface)}
.idea .vote{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:46px;min-height:52px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink-soft);cursor:pointer;font-family:var(--num);font-weight:800;font-size:15px;font-variant-numeric:tabular-nums;transition:background .15s,color .15s,border-color .15s}
.idea .vote svg{width:15px;height:15px}
.idea .vote:hover{border-color:var(--blue);color:var(--blue-deep)}
.idea .vote.on{background:var(--blue);border-color:var(--blue);color:var(--btn-ink)}
.idea .ib{min-width:0;flex:1}
.idea .it{font-size:15px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.idea .im{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:12.5px;color:var(--ink-faint);align-items:center}
.idea.club .im span:first-child{color:var(--hold);font-weight:700}
.idea .im .mine{color:var(--blue-deep)}

/* правила */
.rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:30px 0 8px;padding-top:22px;border-top:1px solid var(--line);font-size:14px;color:var(--ink-soft);line-height:1.55}
.rules b{display:block;color:var(--ink);font-size:15px;margin-bottom:4px}

/* администратор */
.admin{margin-top:22px}
.admin h2.mt{margin-top:26px}
.arow{border-bottom:1px solid var(--line);padding:12px 2px}
.arow.off{opacity:.55}
.arow .at{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.arow .aw{font-size:12.5px;color:var(--ink-faint);margin-top:4px;overflow-wrap:anywhere}
.arow .aa{font-size:14px;margin-top:6px;white-space:pre-line;overflow-wrap:anywhere}
.arow .an{font-size:12.5px;color:var(--hold);margin-top:4px}
.arow .aacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}

.foot{padding:26px 24px 60px;font-size:12.5px;color:var(--ink-faint)}
.foot a{color:inherit}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);z-index:100;background:var(--ink);color:var(--surface);padding:11px 16px;border-radius:12px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100vw - 32px);box-shadow:var(--pop-shadow)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.bad{background:var(--danger);color:#fff}

@media (max-width:900px){
  .grid{grid-template-columns:1fr}
  .clist{max-height:none}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .hero{padding:28px 16px 18px}
  .lede{font-size:16px}
  .stats .st b{font-size:22px}
  .map{aspect-ratio:4/3.3}
  .mapcard{border-radius:18px}
  .ctl{top:10px;right:10px}
  .ctl button{width:34px;height:34px}
  .legend{padding:11px 14px;gap:6px 14px}
  .legend .lg-hint{margin-left:0;width:100%}
  .card{padding:20px 18px;border-radius:18px}
  .ilist{grid-template-columns:1fr}
  .rules{grid-template-columns:1fr;gap:14px}
  .navlink{padding:6px 10px;font-size:13px}
  .brand span{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* живые фото встреч клуба (11.10.2026): мозаика под заголовком — большой кадр зала + четыре поменьше */
.photos{margin:4px auto 30px}
.ph-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-bottom:14px}
.ph-head h2{font-family:var(--disp);font-weight:800;font-size:clamp(22px,2.6vw,28px);letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
.ph-head .sub{max-width:62ch;color:var(--ink-soft);font-size:15px}
.ph-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(120px,15vw,178px);gap:10px}
.ph-grid figure{position:relative;overflow:hidden;border-radius:16px;background:var(--surface-2);box-shadow:var(--shadow)}
.ph-grid figure.big{grid-column:span 2;grid-row:span 2}
.ph-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.ph-grid figure:hover img{transform:scale(1.035)}
.ph-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;color:#fff;font-size:12.5px;font-weight:600;line-height:1.3;
  background:linear-gradient(180deg,rgba(5,8,14,0),rgba(5,8,14,.74));text-shadow:0 1px 2px rgba(0,0,0,.4)}
.ph-grid figure.big figcaption{font-size:14px;padding:40px 16px 14px}
@media (max-width:720px){
  .photos{margin:0 auto 22px}
  .ph-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:118px;gap:8px}
  .ph-grid figure{border-radius:12px}
  .ph-grid figcaption{font-size:11.5px;padding:20px 9px 8px}
}
@media (prefers-reduced-motion:reduce){.ph-grid img{transition:none}.ph-grid figure:hover img{transform:none}}

/* ── фон «кафе трейдеров» (11.10.2026, Di: «необычный красивый градиент, чтобы не казалось обычным сайтом»):
   медленно дышащие пятна света в цветах клуба — зелёный рынка, кофейный янтарь, вечерний синий. Сетку графика
   убрали (Di: «ячеистую сетку все знают — её используют сайты, сделанные Claude»). Слой фиксирован и не ловит клики */
body::before{content:"";position:fixed;pointer-events:none;z-index:-1}
body::before{inset:-12%;
  background:
    radial-gradient(40% 36% at 16% 16%,var(--g-green),transparent 72%),
    radial-gradient(36% 32% at 82% 18%,var(--g-amber),transparent 72%),
    radial-gradient(46% 38% at 78% 78%,var(--g-blue),transparent 72%),
    radial-gradient(34% 30% at 6% 74%,var(--g-rose),transparent 72%);
  animation:cfGlow 38s ease-in-out infinite alternate}
@keyframes cfGlow{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(2.5%,-2%,0) scale(1.06)}
  100%{transform:translate3d(-2%,2.5%,0) scale(1.02)}}
/* «трейдеров» в заголовке — тем же светом: зелёный рынка переходит в кофейный янтарь */
.hero h1 .grad{background:linear-gradient(100deg,var(--grad-a) 10%,var(--grad-b) 95%);-webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-box-decoration-break:clone;box-decoration-break:clone}
@media (prefers-reduced-motion:reduce){body::before{animation:none}}

/* переключатель темы в шапке (11.10.2026, «как сказала жена Di»): тот же ключ ftt_theme, что на всём сайте */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;padding:0;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--ink-soft);cursor:pointer;transition:color .15s,border-color .15s}
.theme-toggle:hover{color:var(--ink);border-color:var(--line-strong)}
.theme-toggle svg{width:16px;height:16px;fill:currentColor}
.theme-toggle .ic-sun{display:none}
html[data-theme="dark"] .theme-toggle .ic-sun{display:block}
html[data-theme="dark"] .theme-toggle .ic-moon{display:none}
@media (max-width:720px){.theme-toggle{width:32px;height:32px}}

/* «Забронировать город» — главное действие страницы (11.10.2026, Di: «выдели, чтобы был заметнее»): рамка переливом
   зелёный → янтарь, как «трейдеров» в заголовке, мягкое свечение и тёплый оттенок; кнопка — тем же переливом */
#cfFormCard{border:1.5px solid transparent;
  background:linear-gradient(160deg,var(--fc-tint-a),var(--fc-tint-b)) padding-box,linear-gradient(var(--surface),var(--surface)) padding-box,
    linear-gradient(125deg,var(--grad-a),var(--grad-b)) border-box;
  box-shadow:0 18px 50px -18px var(--fc-glow-a),0 10px 40px -20px var(--fc-glow-b)}
#cfFormCard h2{font-size:24px}
#cfFormCard .btn.primary{background:linear-gradient(120deg,var(--grad-a),var(--grad-b));color:#fff;padding:13px 22px;font-size:15px;
  box-shadow:0 8px 22px -10px var(--fc-glow-a)}
#cfFormCard .btn.primary:hover{filter:brightness(1.07)}
:root{--fc-tint-a:rgba(17,163,107,.07);--fc-tint-b:rgba(232,150,40,.07);--fc-glow-a:rgba(17,163,107,.45);--fc-glow-b:rgba(232,150,40,.40)}
html[data-theme="dark"]{--fc-tint-a:rgba(61,213,152,.08);--fc-tint-b:rgba(229,176,84,.07);--fc-glow-a:rgba(61,213,152,.35);--fc-glow-b:rgba(229,176,84,.28)}
html[data-theme="dark"] #cfFormCard .btn.primary{color:#0B0F16}

/* «Ваши планы»: готов открыть кафе / пока интересуюсь (12.10.2026) — две кнопки-переключателя на радио */
.field.ready{border:0;padding:0;margin-left:0;margin-right:0;min-width:0}
.field.ready legend{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:6px;font-weight:500;padding:0}
.ready-opts{display:flex;flex-wrap:wrap;gap:8px}
.ready-opts label{position:relative;cursor:pointer}
.ready-opts input{position:absolute;opacity:0;width:1px;height:1px}
.ready-opts span{display:inline-flex;align-items:center;padding:9px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);
  font-size:14px;font-weight:600;color:var(--ink-soft);transition:border-color .15s,background .15s,color .15s}
.ready-opts label:hover span{border-color:var(--ink-faint);color:var(--ink)}
.ready-opts input:checked + span{border-color:var(--ok);background:var(--ok-wash);color:var(--ok)}
.ready-opts input:focus-visible + span{outline:2px solid var(--blue);outline-offset:2px}
.arow .chip.hot{background:var(--hold-wash);color:var(--hold)}
/* нет ответа при отправке брони — красная обводка и подсказка под кнопками */
.field.ready.need .ready-opts span{border-color:var(--danger)}
.hint.need{color:var(--danger);font-weight:600;font-size:13px}

/* панорама пяти напитков между заголовком и фото встреч (12.10.2026): картинка как прислана, без пережатия и обрезки */
.drinks{margin:6px auto 0}
.drinks img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:var(--shadow);background:#0E0F0C}
.drinks + .photos{margin-top:12px}
@media (max-width:720px){.drinks img{border-radius:12px}}

/* «Full-Time Trading» в заголовке (12.10.2026, Di: «анимацию для заголовка»): буквы по очереди тикают вверх и вспыхивают
   зелёным, как котировка на росте, потом становятся обычного цвета. Настоящий текст на месте и только прозрачен (.tk-on),
   анимированные буквы — слой поверх (.tk-layer), каждая в рамке своей буквы: ширина строки не меняется, дефис не прыгает.
   Пока скрипт не начал — слово скрыто (tk-wait ставит ранний скрипт в head и сам снимает через 2,5 с).
   Повтор — наведение или нажатие на заголовок. */
html.tk-wait .hero h1 .nw{visibility:hidden}
.hero h1{position:relative}
.hero h1 .nw.tk-on{color:transparent}
.hero h1 .tk-layer{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none}
.hero h1 .tk{position:absolute;white-space:pre;letter-spacing:0;animation:cfTick .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes cfTick{
  0%{opacity:0;transform:translateY(.5em);color:var(--grad-a)}
  55%{opacity:1;transform:translateY(-.05em);color:var(--grad-a)}
  100%{opacity:1;transform:none;color:var(--ink)}}
@media (prefers-reduced-motion:reduce){.hero h1 .tk{animation:none}}
