/* Molly Trade Team — светлая тема. Графики бота остаются тёмными (#0f141c / #141b25):
   они лежат в тёмной подложке --chart со скруглением, внутри белой карточки. */
:root{
  color-scheme:light;
  --sat:var(--tg-safe-area-inset-top,0px);
  --csat:var(--tg-content-safe-area-inset-top,0px);
  --sab:max(var(--tg-safe-area-inset-bottom,0px),env(safe-area-inset-bottom));
  --head:calc(var(--sat) + max(var(--csat),44px));
  /* поверхности */
  --bg:#f3f5f8;--bg-a:rgba(243,245,248,.97);--panel:#ffffff;--card:#ffffff;--card-2:#eef1f5;--card-3:#f7f8fa;
  --chart:#0f141c;--chart-2:#141b25;
  /* линии: --edge — контур карточки (вместе с тенью), --line — разделители, --line-2 — поля ввода */
  --edge:rgba(16,24,40,.06);--line:rgba(16,24,40,.08);--line-2:rgba(16,24,40,.14);
  /* текст (контраст на #fff / #f3f5f8: 17.9 / 9.8 / 5.7 / 3.1 — --faint только для иконок) */
  --text:#0f172a;--text-2:#3a4454;--muted:#5d6878;--faint:#8a94a3;
  /* смысловые: зелёный и красный — только плюс/минус, жёлтый — «НОВЫЙ» и избранное */
  --green:#08785f;--green-soft:#e5f3ef;--green-edge:rgba(8,120,95,.28);
  --red:#c62a31;--red-soft:#fcebeb;--red-edge:rgba(198,42,49,.26);
  --yellow:#f5b80f;--yellow-ink:#8f5400;--yellow-soft:#fdf4d9;--yellow-edge:rgba(214,152,0,.45);
  --accent:#1a66e0;--accent-2:#3b82f6;--accent-soft:#e8f0fd;--accent-edge:rgba(26,102,224,.32);
  --r-xs:8px;--r-sm:11px;--r:16px;--r-lg:22px;
  --tabs:62px;
  --sh-1:0 1px 2px rgba(16,24,40,.04),0 2px 10px rgba(16,24,40,.05);
  --sh-2:0 2px 4px rgba(16,24,40,.05),0 8px 24px rgba(16,24,40,.08);
  --shadow:0 12px 36px rgba(16,24,40,.16);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
body{min-height:100vh;overflow-x:hidden}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}
button:disabled{opacity:.55;cursor:default}
svg.i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
input{font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 13px;height:46px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;font-variant-numeric:tabular-nums;-webkit-appearance:none;appearance:none}
input::placeholder{color:var(--faint)}
input:focus{border-color:var(--accent);background:var(--card);box-shadow:0 0 0 3px var(--accent-soft)}
input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield}
a{color:var(--accent);text-decoration:none}
b,strong{font-weight:600}

/* ---------- каркас (без backdrop-filter: сплошной фон дешевле на слабом Android) */
#top{position:sticky;top:0;z-index:6;padding-top:var(--sat);background:var(--bg-a)}
#top .bar{height:max(var(--csat),44px);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16.5px;letter-spacing:-.01em;max-width:560px;margin:0 auto;padding:0 90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#view{padding:8px 16px calc(var(--tabs) + 24px + var(--sab));display:flex;flex-direction:column;gap:12px;max-width:560px;margin:0 auto}
.center{text-align:center;padding:44px 16px}
.muted{color:var(--muted)}
.small{font-size:13px}
.foot{font-size:12.5px;color:var(--muted);text-align:center;line-height:1.5}
.foot a{font-weight:500}
h1{font-size:23px;line-height:1.25;letter-spacing:-.015em;font-weight:700}
h2{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:8px 2px 0}
.list{display:flex;flex-direction:column;gap:12px}
.stack{display:flex;flex-direction:column;gap:10px}

/* ---------- нижние вкладки */
#tabs{position:fixed;left:0;right:0;bottom:0;height:calc(var(--tabs) + var(--sab));padding-bottom:var(--sab);display:flex;justify-content:center;background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(16,24,40,.04);z-index:5}
#tabs button{flex:1;max-width:128px;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:10.5px;font-weight:500;letter-spacing:.01em;transition:color .15s}
#tabs button span{width:52px;height:30px;border-radius:15px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
#tabs button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#tabs button.on{color:var(--text);font-weight:600}
#tabs button.on span{background:var(--accent-soft);color:var(--accent)}
#tabs button:active span{background:var(--card-2)}

#toast{position:fixed;left:50%;bottom:calc(var(--tabs) + 20px + var(--sab));transform:translateX(-50%);max-width:calc(100% - 40px);background:rgba(17,24,39,.95);color:#fff;padding:11px 18px;border-radius:999px;font-size:14px;font-weight:500;z-index:40;box-shadow:var(--shadow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:toast-in .22s ease-out}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}

/* ---------- скелеты и пустые состояния */
.skel{border-radius:var(--r);background:linear-gradient(100deg,#e9edf2 30%,#f5f7f9 50%,#e9edf2 70%);background-size:300% 100%;animation:shimmer 1.4s linear infinite}
.skel.line{height:12px;border-radius:6px}
.skel-card{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-1)}
.skel-card .skel{border-radius:0}
/* место под тёмный график: тот же отступ и скругление, что у настоящей картинки */
.skel-card > .skel:first-child{margin:6px 6px 0;border-radius:11px;background-image:linear-gradient(100deg,var(--chart-2) 30%,#1d2633 50%,var(--chart-2) 70%)}
.skel-card .pad{padding:14px;display:flex;flex-direction:column;gap:10px}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-200% 0}}
.empty{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:36px 24px;color:var(--muted);font-size:14px;line-height:1.5}
.empty:before{content:"";width:52px;height:52px;border-radius:16px;background:var(--card) no-repeat center/26px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235d6878' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v4M7 17v4M17 3v2M17 13v8'/%3E%3Crect x='4.5' y='7' width='5' height='10' rx='1.2'/%3E%3Crect x='14.5' y='5' width='5' height='8' rx='1.2'/%3E%3C/svg%3E");border:1px solid var(--edge);box-shadow:var(--sh-1)}
.empty.q:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235d6878' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2'/%3E%3C/svg%3E")}
.empty[hidden]{display:none!important}
.ill{width:64px;height:64px;border-radius:20px;margin:0 auto;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}
.ill svg.i{width:30px;height:30px}

/* ---------- лента сигналов */
.status{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);padding:0 6px 0 13px;height:46px;font-size:13px}
#st{min-width:0;overflow:hidden;text-overflow:ellipsis}
.live,.idle{display:block;font-weight:600;white-space:nowrap}
.live{color:var(--green);position:relative}
.idle{color:var(--muted);font-weight:500}
.live:before,.idle:before{content:"";display:inline-block;vertical-align:1px;width:8px;height:8px;border-radius:50%;background:currentColor;margin-right:8px}
/* пульс — расходящееся кольцо на transform/opacity (только композитор, без перерисовки) */
.live:after,.session.on .sess-h:after{content:"";position:absolute;left:0;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--green);opacity:0;pointer-events:none;will-change:transform,opacity;animation:pulse 2s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.45}70%{transform:scale(2.8);opacity:0}100%{transform:scale(2.8);opacity:0}}
.timer{display:flex;align-items:center;gap:7px;color:var(--muted);white-space:nowrap;font-size:12.5px;flex:none}
.timer b{font-variant-numeric:tabular-nums;color:var(--text);background:var(--card-2);border-radius:9px;padding:0 8px;height:32px;min-width:46px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}

.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;flex:none;margin:0 -16px;padding:2px 16px 4px}
.chips::-webkit-scrollbar{display:none}
.chip{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 13px;border-radius:999px;background:var(--card);border:1px solid var(--edge);box-shadow:var(--sh-1);color:var(--text-2);font-size:13px;font-weight:500;white-space:nowrap;flex:none;transition:background .15s,border-color .15s,color .15s}
.chip:active{background:var(--card-2)}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(26,102,224,.25)}
.chip svg.i{width:16px;height:16px}

.sig{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);overflow:hidden;cursor:pointer;transition:border-color .3s,box-shadow .3s,transform .12s}
.sig:active{transform:scale(.99)}
/* тёмный график в ленте: подложка ровно под картинкой, отступ 6px и скругление, светлых полос нет */
.sig > .wmk{margin:6px 6px 0;border-radius:11px;overflow:hidden;background:var(--chart)}
.sig img{width:100%;display:block;aspect-ratio:16/10;object-fit:contain;background:var(--chart)}
.sig .in{padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}
.sig .top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.pair{font-weight:700;font-size:16px;letter-spacing:-.01em;display:flex;align-items:center;flex-wrap:wrap;column-gap:6px;min-width:0}
.pair .sub{color:var(--muted);font-weight:500;font-size:14px}
.ago{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;font-size:13px;font-weight:500;color:var(--text-2);background:var(--card-2);border-radius:var(--r-xs);padding:5px 9px;line-height:1.3}
.sig.new{border-color:var(--yellow-edge);box-shadow:0 0 0 3px rgba(245,184,15,.16),var(--sh-1)}
.newb{background:var(--yellow);color:#3a2700;font-size:10px;font-weight:800;letter-spacing:.05em;padding:2px 7px;border-radius:6px;line-height:1.4}
/* открытый сигнал: вся карточка — тёмная рамка графика */
.sig.big{cursor:zoom-in;position:relative;background:var(--chart);border:0;box-shadow:var(--sh-2)}
.sig.big img{aspect-ratio:auto}
.zbadge{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:10px;background:rgba(15,20,28,.66);border:1px solid rgba(255,255,255,.14);color:#e4e9f0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:3}
.zbadge svg.i{width:17px;height:17px}

/* ---------- карточки и блоки */
.box{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);padding:14px}
.box h3{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.box-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.box-h h3{margin:0}
.box-h span{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.box-h span b{font-weight:600}
.kv{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;font-size:14.5px;border-top:1px solid var(--line)}
.kv:first-child{border-top:0}
.kv span{color:var(--muted)}
.kv b{font-variant-numeric:tabular-nums;font-weight:600}
.kv.warn{margin-top:2px}
.linkrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);padding:12px 14px;min-height:58px;transition:background .15s}
.linkrow:active{background:var(--card-3)}
.linkrow .ic{width:36px;height:36px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}
.linkrow .tx{flex:1;min-width:0;font-size:14px;font-weight:600;line-height:1.3}
.linkrow .tx small{display:block;color:var(--muted);font-weight:400;font-size:12.5px;margin-top:2px}
.chev{color:var(--faint)}
.chev svg.i{width:18px;height:18px}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;text-align:center;min-height:48px;padding:0 16px;border-radius:13px;background:var(--accent);color:#fff;font-weight:600;font-size:15px;border:1px solid transparent;transition:filter .15s,transform .1s,background .15s}
.btn:active{transform:scale(.98);filter:brightness(.93)}
.btn svg.i{width:19px;height:19px}
.btn.ghost{background:var(--card-2);border-color:transparent;color:var(--text)}
.btn.win{background:var(--green-soft);color:var(--green);border-color:var(--green-edge)}
.btn.loss{background:var(--red-soft);color:var(--red);border-color:var(--red-edge)}
.btn.sm{min-height:40px;padding:0 14px;font-size:13.5px;width:auto;display:inline-flex;border-radius:11px}
.btns{display:flex;gap:8px}
.btns .btn{flex:1;padding:0 6px}
.row{display:flex;gap:10px;align-items:center}
.row > *{flex:1;min-width:0}
label.f{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--muted);font-weight:500}
.form{display:flex;flex-direction:column;gap:12px}
.ladder{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ladder .chip{flex-direction:column;justify-content:center;gap:1px;height:auto;min-height:48px;padding:6px 4px;border-radius:12px;font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--text);font-weight:600;background:var(--card-2);border-color:transparent;box-shadow:none}
.ladder .chip:active{background:var(--accent-soft)}
.ladder .chip small{font-size:11px;color:var(--muted);font-weight:500}
.chip.fav{height:40px;padding:0 13px;font-size:13px;background:var(--card-2);border-color:transparent;box-shadow:none}
.chip.fav.on{background:var(--yellow-soft);border-color:var(--yellow-edge);color:var(--yellow-ink)}
.chip.fav.on svg.i{fill:var(--yellow);stroke:var(--yellow-ink)}

.sighead{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sighead .pair{font-size:18px}
.meta{color:var(--muted);font-size:12.5px;margin-top:3px;font-variant-numeric:tabular-nums}

/* ---------- база знаний */
.search{position:sticky;top:var(--head);z-index:3;margin:-8px -16px 0;padding:8px 16px 8px;background:linear-gradient(var(--bg) 82%,rgba(243,245,248,0))}
.search .fld{position:relative}
.search .fld svg.i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);width:18px;height:18px;pointer-events:none}
.search input{padding-left:40px;background:var(--card);border-color:var(--edge);border-radius:13px;box-shadow:var(--sh-1)}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.kb{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);padding:12px;text-align:left;width:100%;min-height:68px;transition:background .15s}
.kb:active{background:var(--card-3)}
.kb .ic{position:relative;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;background:var(--card-2)}
.kb.read .ic:after{content:"";position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:50%;border:2px solid var(--card);background:var(--green) no-repeat center/10px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.kb .tx{flex:1;min-width:0}
.kb .tt{font-weight:600;font-size:15px;line-height:1.3;letter-spacing:-.005em}
.kb .ds{color:var(--muted);font-size:13px;line-height:1.4;margin-top:3px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.kb.read .tt{color:var(--text-2)}
.kb .ar{color:var(--faint);display:flex}
.kb .ar svg.i{width:18px;height:18px}
.pill{display:inline-flex;align-items:center;gap:3px;vertical-align:1px;margin-right:6px;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:1px 6px 1px 4px;line-height:1.5}
.pill svg{width:10px;height:10px;fill:currentColor;stroke:none}
.sec{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 2px 0}
.sec:first-child{margin-top:4px}
.sec b{font-size:17px;font-weight:700;letter-spacing:-.01em}
.sec > div{display:flex;align-items:center;gap:8px;flex:none}
.sec > div span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.prog{height:5px;background:#dfe4ea;border-radius:3px;width:56px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--green);border-radius:3px}

.art{display:flex;flex-direction:column;gap:14px}
.art h1{margin-top:4px}
.art .body{font-size:15.5px;line-height:1.6;color:var(--text-2)}
.art .body b,.art .body strong{color:var(--text)}
.art .body p{margin:0 0 12px}
.art .body ul,.art .body ol{margin:0 0 14px;padding-left:22px}
.art .body li{margin:5px 0;padding-left:2px}
.art .body li::marker{color:var(--accent)}
.art .body ol li::marker{font-weight:600;font-variant-numeric:tabular-nums}
.art .body blockquote{border-left:3px solid var(--accent);padding:10px 14px;margin:0 0 14px;background:var(--card);box-shadow:var(--sh-1);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--text)}
.art .body code{background:var(--card-2);padding:1px 6px;border-radius:6px;font-size:14px}
.art .body a{text-decoration:underline;text-decoration-color:rgba(26,102,224,.35);text-underline-offset:3px}
.art .body .tbl{overflow-x:auto;margin:4px 0 16px;border:1px solid var(--edge);border-radius:var(--r-sm);background:var(--card);box-shadow:var(--sh-1);-webkit-overflow-scrolling:touch}
.art .body table{border-collapse:collapse;font-size:13px;min-width:100%;font-variant-numeric:tabular-nums}
.art .body th,.art .body td{border-top:1px solid var(--line);padding:9px 12px;text-align:left;white-space:nowrap}
.art .body th{border-top:0;background:var(--card-3);color:var(--muted);font-weight:600;font-size:12px}
.art .body td{color:var(--text)}
.art .body tbody tr:nth-child(even) td{background:rgba(16,24,40,.018)}
/* картинки статьи (в основном светлые инфографики): белая подложка, контур и мягкая тень */
.art > .wmk{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-1)}
.art img.pic{width:100%;border-radius:var(--r);display:block;background:var(--card);border:1px solid var(--edge);cursor:zoom-in}
/* метка зрителя (--wm, белый текст 17 % с тонкой тёмной обводкой) на белой инфографике почти не видна:
   режим difference делает её светло-серой на белом и прежней на тёмном. Только картинки статьи, не видео */
.protect .art > .wmk::after{mix-blend-mode:difference}
.vid{background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1);overflow:hidden}
.vid video{width:100%;display:block;background:#000;max-height:70vh}
.vid .ch{display:flex;flex-direction:column;padding:4px 0}
.vid .ch-h{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:10px 14px 4px}
.vid .ch button{display:flex;align-items:baseline;gap:12px;text-align:left;font-size:14px;line-height:1.4;color:var(--text-2);padding:10px 14px;min-height:42px;border-top:1px solid var(--line);transition:background .15s}
.vid .ch-h + button{border-top:0}
.vid .ch button:active{background:var(--card-3)}
.vid .ch button b{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600;font-size:13px;min-width:40px;flex:none}
.vid .send{padding:6px 14px 14px}
.vid .send .btn{width:100%}

/* ---------- дневник (цвета только из переменных палитры) */
.big{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pos{color:var(--green)} .neg{color:var(--red)}
.session{position:relative;overflow:hidden}
.session.on{border-color:var(--green-edge);background:linear-gradient(160deg,var(--green-soft),rgba(229,243,239,0) 62%),var(--card)}
.sess-h{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:500}
.session.on .sess-h{color:var(--green);position:relative}
.session.on .sess-h:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);flex:none}
.sess-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:10px}
.sess-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.stats{display:flex;background:var(--card);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--sh-1)}
.stats .box{flex:1;min-width:0;background:none;border:0;border-radius:0;box-shadow:none;padding:12px 2px;text-align:center}
.stats .box + .box{border-left:1px solid var(--line)}
.stats b{display:block;font-size:20px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.stats b .muted{font-weight:500}
.stats small{color:var(--muted);font-size:11px;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trade{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14.5px}
.trade:first-child{border-top:0;padding-top:2px}
.trade:last-child{padding-bottom:0}
.dot{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex:none}
.dot.win{background:var(--green-soft);color:var(--green)}
.dot.loss{background:var(--red-soft);color:var(--red)}
.dot.skip{background:var(--card-2);color:var(--muted)}
.trade .m{flex:1;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trade .m small{display:block;color:var(--muted);font-size:12px;font-weight:400;font-variant-numeric:tabular-nums;white-space:normal;line-height:1.35;margin-top:1px}
.trade > b{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.trade > b.muted{font-weight:500;font-size:13px}
.trade .x{color:var(--faint);width:40px;height:40px;margin:-6px -10px -6px -6px;display:flex;align-items:center;justify-content:center;border-radius:10px}
.trade .x:active{background:var(--red-soft);color:var(--red)}
.trade .x svg.i{width:16px;height:16px}
.hint{color:var(--muted);font-size:13.5px;line-height:1.5}
.bars{display:flex;align-items:flex-end;gap:8px;height:96px;padding-top:6px;border-bottom:1px solid var(--line-2)}
.bars div{flex:1;border-radius:6px 6px 2px 2px;position:relative;min-height:3px;background:var(--card-2)}
.bars div.p{background:linear-gradient(var(--green),rgba(8,120,95,.55))} .bars div.n{background:linear-gradient(var(--red),rgba(198,42,49,.55))}
.bars div span{position:absolute;bottom:-22px;left:0;right:0;text-align:center;font-size:11px;color:var(--muted);font-weight:500}
.bars-room{height:22px}
.fab{position:fixed;right:max(18px,calc(50% - 262px));bottom:calc(var(--tabs) + 18px + var(--sab));width:56px;height:56px;border-radius:18px;background:linear-gradient(160deg,var(--accent-2),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 22px rgba(26,102,224,.32),0 2px 6px rgba(16,24,40,.12);z-index:4;transition:transform .12s}
.fab:active{transform:scale(.94)}
.fab svg.i{width:26px;height:26px;stroke-width:2.2}
.calc{display:flex;flex-direction:column;margin-top:10px}
.calc .hint{padding-top:2px}
.calc .foot{text-align:left;margin-top:6px}
.fab-room{height:56px}

.sheet-bg{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:10;display:flex;align-items:flex-end;animation:fade .2s ease-out}
.sheet{background:var(--panel);border:0;width:100%;max-width:560px;margin:0 auto;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:10px 16px calc(16px + var(--sab));display:flex;flex-direction:column;gap:12px;max-height:90vh;overflow:auto;box-shadow:0 -10px 40px rgba(16,24,40,.18);animation:sheet-in .26s cubic-bezier(.2,.8,.2,1)}
.sheet:before{content:"";width:38px;height:5px;border-radius:3px;background:#d5dbe3;align-self:center;flex:none;margin-bottom:4px}
.sheet h1{font-size:19px}
.sheet input{background:var(--bg)}
.sheet input:focus{background:var(--card)}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes sheet-in{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}

/* просмотр графика остаётся тёмным */
.zoom{position:fixed;inset:0;background:#05070a;z-index:30;display:flex;align-items:center;justify-content:center;overflow:auto;animation:fade .18s ease-out}
.zoom img{max-width:none;width:200%;cursor:zoom-out}
.zoom.fit img{width:100%;cursor:zoom-in}
.zoom-x{position:fixed;top:calc(var(--sat) + var(--csat) + 10px);right:14px;width:44px;height:44px;border-radius:50%;background:rgba(40,50,64,.82);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:18px;line-height:1;z-index:31;display:flex;align-items:center;justify-content:center}
.zoom-hint{position:fixed;bottom:calc(var(--sab) + 22px);left:50%;transform:translateX(-50%);text-align:center;color:#c3ccd8;font-size:12.5px;pointer-events:none;background:rgba(40,50,64,.6);padding:7px 14px;border-radius:999px;white-space:nowrap}
.zoom:not(.fit) .zoom-hint{display:none}

/* ---------- команда */
.tbl.team{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl.team table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px;font-variant-numeric:tabular-nums}
.tbl.team th{background:var(--card-3);color:var(--muted);font-weight:600;font-size:12px;text-align:left;padding:0 12px;height:42px;white-space:nowrap;cursor:pointer;user-select:none;border-bottom:1px solid var(--line)}
.tbl.team th.on{color:var(--accent)}
.tbl.team td{padding:11px 12px;border-top:1px solid var(--line);white-space:nowrap;vertical-align:top;background:var(--card)}
.tbl.team tbody tr:first-child td{border-top:0}
.tbl.team th:first-child,.tbl.team td:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--line)}
.tbl.team td:first-child{font-weight:600}
.tbl.team td small{display:block;color:var(--muted);font-size:11.5px;font-weight:400;margin-top:1px}
.tbl.team tbody tr{cursor:pointer}
.tbl.team tbody tr:active td{background:var(--card-3)}
.tblbox{padding:0;overflow:hidden}
.ava{width:48px;height:48px;border-radius:16px;flex:none;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--accent);background:var(--accent-soft)}
.who{display:flex;align-items:center;gap:14px}
.who .pair{font-size:18px}

/* ---------- нет доступа */
.gate{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:56px 12px 24px}
.gate h1{font-size:22px;margin-top:6px}
.gate p{color:var(--muted);font-size:15px;line-height:1.55;max-width:340px}
.gate .btn{margin-top:10px;max-width:340px}

@media (min-width:600px){
  #view{padding-left:20px;padding-right:20px}
  .chips{margin:0;padding:2px 0 4px}
  .search{margin:-8px 0 0;padding:8px 0 8px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
[hidden]{display:none!important}

/* защита от копирования (не для Молли): метка зрителя поверх медиа, без выделения и сохранения */
.wmk:not(.zoom){position:relative}
.protect .wmk::after{content:"";position:absolute;inset:0;background:var(--wm) repeat;pointer-events:none;z-index:2}
.protect .zoom.wmk::after{position:fixed}
.protect{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.protect input,.protect textarea{-webkit-user-select:text;user-select:text}
.protect img,.protect video{-webkit-user-drag:none;-webkit-touch-callout:none}

/* дневник v2: сессия по балансу, отметки одним нажатием, итог в шторке */
.ladder div.chip{cursor:default}
.ladder .chip.on{background:var(--accent-soft);border-color:var(--accent-edge);color:var(--accent);box-shadow:none}
.ladder .chip.on small{color:var(--accent)}
#rec .ladder,.box > .ladder{margin:10px 0 12px}
#rec .foot,.box > .foot{margin-top:10px}
.session .f{margin-top:10px}
.session > .foot{margin-top:10px;text-align:left}
.sess-sub{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.trade > b small{display:block;text-align:right;font-size:12px;font-weight:500;color:var(--muted);margin-top:1px}
.result{text-align:center;padding:6px 0 4px;display:flex;flex-direction:column;gap:6px;font-variant-numeric:tabular-nums}
.result .big{font-size:38px}
.warnbox{background:var(--red-soft);border:1px solid var(--red-edge);color:var(--text);border-radius:var(--r);padding:12px 14px;font-size:14px;line-height:1.45;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.warnbox b{color:var(--red)}
.linkbtn{color:var(--muted);font-size:13.5px;padding:8px;text-decoration:underline;text-underline-offset:3px}
.tbl.team td small.pos{color:var(--green)}
