:root {
      --bg:#101318; --text:#f5f7fa; --hint:#8f98a6; --card:#191d24; --card2:#222833;
      --accent:#368cf7; --accent-text:#fff; --grad:linear-gradient(135deg,#368cf7,#5865f2);
      --grad-green:#22a06b; --radius:16px; --blur:0px; --cardbr:#262d38;
      --success:#22a06b; --warning:#e59b25; --danger:#df4b55; --sd:#8b5cf6;
      --font:-apple-system,system-ui,"Segoe UI",Roboto,sans-serif; --glow:0 0 0 transparent;
    }
    * { box-sizing:border-box; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
    html,body { overscroll-behavior:none; overflow-x:hidden; }
    body { margin:0; font-family:var(--font,-apple-system,system-ui,"Segoe UI",Roboto,sans-serif); background:var(--bg);
      color:var(--text); padding:16px 14px 104px; min-height:100vh; -webkit-font-smoothing:antialiased;
      transition:background .3s, color .3s; }
    .center { display:flex; align-items:center; justify-content:center; min-height:74vh; text-align:center; flex-direction:column; gap:12px; }
    .spinner { width:34px; height:34px; border:3px solid var(--card2); border-top-color:var(--accent); border-radius:50%; animation:spin .8s linear infinite; }
    .loading-shell { min-height:calc(100vh - 130px); }
    .loading-logo { width:78px; height:78px; border-radius:22px; object-fit:cover; box-shadow:0 14px 34px rgba(0,0,0,.35);
      animation:logoPulse 1.8s ease-in-out infinite; }
    .loading-title { font-size:21px; font-weight:850; letter-spacing:-.3px; }
    .loading-status { color:var(--hint); font-size:13px; }
    .loading-version { color:color-mix(in srgb,var(--hint) 65%,transparent); font-size:10px; margin-top:8px; }
    @keyframes spin { to { transform:rotate(360deg); } }
    @keyframes logoPulse { 0%,100%{transform:translateY(0);box-shadow:0 14px 34px rgba(0,0,0,.35)} 50%{transform:translateY(-4px);box-shadow:0 19px 38px rgba(54,140,247,.18)} }
    @keyframes pop { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
    @keyframes shimmer { 0%{background-position:-400px 0} 100%{background-position:400px 0} }
    #app { position:relative; min-width:0; overflow-x:clip; isolation:isolate; }
    .view { min-height:1px; min-width:0; overflow-x:clip; isolation:isolate; }
    .view.enter { animation:pop .22s ease both; }
    #app.is-refreshing { cursor:progress; }
    .hint { color:var(--hint); font-size:13px; }
    .head { font-size:22px; font-weight:800; margin:4px 2px 14px; }
    .card { position:relative; z-index:0; min-width:0; background:var(--card); border:1px solid var(--cardbr); border-radius:var(--radius); padding:16px; margin-bottom:12px;
      box-shadow:0 5px 18px rgba(0,0,0,.12); backdrop-filter:blur(var(--blur));
      transition:transform .16s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease; }
    .rid { min-width:0; font-weight:800; font-size:16px; display:flex; align-items:center; gap:8px; overflow-wrap:anywhere; }
    .sdot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
    .row { min-width:0; font-size:14px; margin-top:6px; display:flex; gap:6px; }
    .row .k { color:var(--hint); min-width:64px; }
    .row > :last-child { min-width:0; overflow-wrap:anywhere; }
    .badge { display:inline-flex; align-items:center; gap:5px; max-width:100%; padding:4px 10px; border-radius:20px; font-size:11px; font-weight:750; background:var(--accent); color:#fff; overflow-wrap:anywhere; }
    .badge.muted { background:var(--card2); color:var(--hint); }
    .badge.profile30 { background:linear-gradient(135deg,#2ecc71,#16a085); color:#061711; }
    .kc-label-line { margin:7px 0 2px 17px; display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
    .kc-label { --kc:#2ea6ff; display:inline-flex; align-items:center; gap:6px; max-width:100%;
      padding:5px 9px; border-radius:999px; color:#fff; background:linear-gradient(135deg,var(--kc),color-mix(in srgb,var(--kc) 66%,#111));
      box-shadow:0 5px 16px color-mix(in srgb,var(--kc) 22%,transparent); font-size:11px; font-weight:850; vertical-align:middle; }
    .kc-label i { width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.95); box-shadow:0 0 0 3px rgba(255,255,255,.16); flex:0 0 7px; }
    .kc-label b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .kc-label small { opacity:.82; font-size:10px; font-weight:800; white-space:nowrap; }
    .kc-label-by { color:var(--hint); font-size:10px; font-weight:750; }
    .kc-label.rainbow { background:linear-gradient(110deg,#ff3b3b,#ff9f1c,#ffe66d,#2ecc71,#2ea6ff,#8b5cf6,#ff4fd8);
      background-size:220% 220%; animation:kcRainbow 5s ease infinite; box-shadow:0 5px 18px rgba(139,92,246,.28); }
    @keyframes kcRainbow { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }
    .kc-picker { display:grid; gap:8px; }
    .kc-pick { width:100%; border:1px solid var(--cardbr); background:var(--card2); color:var(--text); border-radius:14px;
      padding:10px; display:flex; align-items:center; justify-content:space-between; gap:9px; font:inherit; cursor:pointer; text-align:left; }
    .kc-pick.active { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent); }
    .kc-pick > span:last-child { color:var(--hint); font-size:11px; margin-left:auto; white-space:nowrap; }
    .kc-preview-box { margin:12px 0 4px; padding:12px; border:1px dashed var(--cardbr); border-radius:14px; background:var(--card2); }
    .muted-row { opacity:.55; }
    .btn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; border:none; border-radius:12px;
      padding:13px; background:var(--accent); color:var(--accent-text); font-size:15px; font-weight:750; margin-top:10px; cursor:pointer;
      box-shadow:0 5px 14px color-mix(in srgb,var(--accent) 22%,transparent),var(--glow,0 0 0 transparent); transition:transform .11s ease, opacity .2s, filter .18s; }
    .btn:hover { filter:brightness(1.03); }
    .btn:active { transform:scale(.97); }
    .btn.sec { background:var(--card2); color:var(--text); box-shadow:none; }
    .btn.danger-lite { color:var(--danger); border:1px solid color-mix(in srgb,var(--danger) 30%,var(--cardbr)); }
    .statusbtns { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:14px; }
    .sbtn { border:none; border-radius:12px; padding:12px 8px; background:var(--card2); color:var(--text); font-size:14px;
      font-weight:700; cursor:pointer; transition:transform .11s ease, background .18s, color .18s; display:flex; align-items:center; justify-content:center; gap:6px; }
    .sbtn:active { transform:scale(.96); }
    .sbtn.active { background:var(--success); color:#fff; box-shadow:0 4px 14px rgba(34,160,107,.28); }
    .card.status-changing { animation:statusPulse .42s ease; }
    @keyframes statusPulse { 0%{transform:scale(1)} 45%{transform:scale(.985);border-color:var(--accent)} 100%{transform:scale(1)} }
    .rep { width:100%; min-height:84px; margin-top:8px; border-radius:12px; border:1px solid var(--card2); background:var(--card2);
      color:var(--text); padding:12px; font-size:15px; font-family:inherit; resize:vertical; }
    .rep:focus { outline:none; border-color:var(--accent); }
    .cats { position:relative; z-index:2; display:flex; gap:8px; max-width:100%; margin-bottom:14px; overflow-x:auto; overscroll-behavior-x:contain; }
    .cats::-webkit-scrollbar{display:none}
    .chip { white-space:nowrap; border:none; border-radius:20px; padding:9px 14px; background:var(--card2); color:var(--text); font-size:13px; font-weight:700; cursor:pointer; flex-shrink:0; transition:background .18s, color .18s, transform .11s ease; }
    .chip.active { background:var(--accent); color:var(--accent-text); }
    .chip .cb { opacity:.7; font-size:12px; }
    .rfrow { display:flex; align-items:center; gap:10px; margin-top:8px; }
    .rfrow .rlbl { width:90px; color:var(--hint); font-size:14px; font-weight:600; }
.rin { flex:1; border-radius:10px; border:1px solid var(--card2); background:var(--card2); color:var(--text); padding:11px; font-size:16px; font-family:inherit; }
.rin.compact { min-width:140px; padding:9px 10px; font-size:13px; flex:1 1 140px; }
.rin:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent); }
    .rin.invalid,.rep.invalid { border-color:var(--danger)!important; box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 14%,transparent)!important; }
    .field-error { color:var(--danger); font-size:11px; margin:4px 0 0 100px; }
    .more { background:none; border:none; color:var(--accent); font-weight:700; font-size:13px; margin-top:10px; cursor:pointer; padding:0; }
    .full { margin-top:10px; padding-top:10px; border-top:1px solid var(--card2); white-space:pre-wrap; font-size:13px; color:var(--hint); animation:pop .2s ease both; }
    .full-section { white-space:normal; margin-top:10px; padding:12px; border-radius:14px; background:var(--card2); color:var(--text); }
    .full-section:first-child { margin-top:0; }
    .full-title { display:flex; align-items:center; gap:7px; color:var(--hint); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.45px; margin-bottom:8px; }
    .full-copy { white-space:pre-wrap; line-height:1.5; color:var(--text); overflow-wrap:anywhere; }
    .full-fields { display:grid; gap:7px; }
    .full-field { display:grid; grid-template-columns:minmax(86px,34%) 1fr; gap:9px; align-items:start; }
    .full-field span { color:var(--hint); }
    .full-field b { color:var(--text); font-weight:720; overflow-wrap:anywhere; }
    .partner-report-box { margin-top:10px; padding:12px; border:1px solid color-mix(in srgb,var(--accent) 32%,var(--cardbr));
      border-radius:15px; background:color-mix(in srgb,var(--accent) 7%,var(--card)); display:grid; gap:9px; }
    .partner-report-box b { display:block; font-size:13px; }
    .partner-report-box span { display:block; color:var(--hint); font-size:11px; line-height:1.35; margin-top:2px; }
    .partner-pick-btn { margin-top:0!important; border-style:solid!important; background:color-mix(in srgb,var(--accent) 8%,var(--card2)); }
    .partner-picker { display:grid; gap:8px; max-height:52vh; overflow:auto; padding-right:2px; }
    .partner-check { cursor:pointer; }
    .partner-check input { width:18px; height:18px; accent-color:var(--accent); }
    .partner-edit-list { display:grid; grid-template-columns:1fr; gap:7px; margin-top:8px; }
    .partner-mini { display:flex; align-items:center; gap:7px; padding:9px 10px; border-radius:12px; background:var(--card2); color:var(--text); font-size:13px; font-weight:700; }
    .partner-mini input { accent-color:var(--accent); }
    .partner-block { border-radius:14px; padding:11px; background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--card2)),var(--card2));
      border:1px solid color-mix(in srgb,var(--accent) 34%,var(--cardbr)); color:var(--text); }
    .partner-block-title { color:var(--accent); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.35px; margin-bottom:5px; }
    .partner-row { color:var(--text); }
    .important-partners { border-color:color-mix(in srgb,var(--accent) 38%,var(--cardbr)); }
    .client-flags { margin:8px 0 12px; padding:12px; border:1px solid var(--cardbr); border-radius:15px; background:var(--card); display:flex; gap:8px; flex-wrap:wrap; }
    .client-flags.has-warning { border-color:color-mix(in srgb,var(--danger) 60%,var(--cardbr)); background:color-mix(in srgb,var(--danger) 7%,var(--card)); }
    .client-flags-title { width:100%; font-size:11px; color:var(--hint); font-weight:850; text-transform:uppercase; letter-spacing:.35px; }
    .client-flags label { display:inline-flex; align-items:center; gap:6px; padding:7px 9px; border-radius:999px; background:var(--card2); font-size:12px; font-weight:750; }
    .client-flags input { accent-color:var(--accent); }
    .compact-note { min-height:58px!important; width:100%; margin-top:2px!important; }
    .client-flag { display:inline-flex; margin:0 5px 5px 0; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:900; color:#fff; }
    .client-flag.danger { background:var(--danger); }
    .client-flag.warn { background:var(--warning); }
    .client-flag.vip { background:linear-gradient(135deg,#d9b35e,#8b5cf6); }
    .client-flag.info { background:var(--accent); }
    .client-history-card.danger { box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 16%,transparent); }
    @media (max-width:380px) {
      body { padding:12px 10px 96px; }
      .head { font-size:20px; margin-bottom:11px; }
      .card { padding:13px; border-radius:14px; }
      .rid { font-size:15px; }
      .row { font-size:13px; flex-wrap:wrap; }
      .row .k { min-width:58px; }
      .btn { padding:12px 10px; font-size:14px; }
      .chip { padding:8px 11px; font-size:12px; }
      .rfrow { align-items:flex-start; flex-direction:column; gap:5px; }
      .rfrow .rlbl { width:auto; }
      .field-error { margin-left:0; }
      .hist-filters { grid-template-columns:1fr!important; }
      .bag-nav { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
      .tabs { padding:7px 7px calc(7px + env(safe-area-inset-bottom)); }
      .tab { font-size:10px; gap:2px; }
    }
    .placeholder { color:var(--hint); text-align:center; padding:50px 16px; font-size:14px; }
    .placeholder .big { font-size:46px; margin-bottom:10px; }
    .skel { height:96px; border-radius:var(--radius); margin-bottom:12px;
      background:linear-gradient(90deg,var(--card) 0px,var(--card2) 200px,var(--card) 400px); background-size:800px 100%; animation:shimmer 1.2s infinite linear; }
    /* профиль */
    .profile { display:flex; align-items:center; gap:14px; }
    .avatar { width:62px; height:62px; border-radius:50%; background:var(--grad); display:flex; align-items:center; justify-content:center;
      font-size:24px; font-weight:800; color:#fff; flex-shrink:0; overflow:hidden; }
    .avatar img { width:100%; height:100%; object-fit:cover; }
    .pname { font-size:19px; font-weight:800; }
    .profile-hero { background:var(--card); border:1px solid var(--cardbr); border-radius:22px; padding:17px; margin-bottom:14px;
      box-shadow:0 7px 24px rgba(0,0,0,.16); }
    .profile-top { display:flex; align-items:center; gap:13px; }
    .profile-top .avatar { width:58px; height:58px; }
    .profile-meta { min-width:0; flex:1; }
    .profile-name { font-size:19px; font-weight:850; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .profile-role { color:var(--hint); font-size:12px; margin-top:3px; }
    .premium-emoji { width:42px; height:42px; flex:0 0 42px; display:flex; align-items:center; justify-content:center;
      border-radius:14px; background:var(--card2); font-size:25px; filter:drop-shadow(0 5px 9px rgba(0,0,0,.28)); }
    .premium-emoji.pe-float { animation:peFloat 2.2s ease-in-out infinite; }
    .premium-emoji.pe-pulse { animation:pePulse 1.65s ease-in-out infinite; }
    .premium-emoji.pe-spark { animation:peSpark 2.1s ease-in-out infinite; }
    .premium-emoji.pe-tilt { animation:peTilt 1.9s ease-in-out infinite; }
    .premium-emoji.pe-glow { animation:peGlow 1.8s ease-in-out infinite; }
    .premium-emoji.pe-orbit { animation:peOrbit 2.8s linear infinite; }
    .premium-emoji.pe-bounce { animation:peBounce 1.5s ease-in-out infinite; }
    .premium-emoji.mini { width:25px; height:25px; flex-basis:25px; border-radius:9px; font-size:15px; display:inline-flex; vertical-align:middle; margin-left:5px; }
    .master-decor { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
    .master-status { display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:10px;
      color:#fff; background:linear-gradient(135deg,#d8a942,#8c63d8); font-size:10px; font-weight:850; box-shadow:0 4px 12px rgba(0,0,0,.18); }
    .emoji-choice { min-height:78px; border:1px solid var(--cardbr); border-radius:16px; background:var(--card);
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; color:var(--text); font:inherit; cursor:pointer; }
    .emoji-choice.active { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent); }
    .emoji-choice .premium-emoji { background:transparent; }
    @keyframes peFloat { 0%,100%{transform:translateY(2px) rotate(-3deg)} 50%{transform:translateY(-5px) rotate(4deg)} }
    @keyframes pePulse { 0%,100%{transform:scale(.92)} 50%{transform:scale(1.13)} }
    @keyframes peSpark { 0%,100%{transform:scale(.94) rotate(-7deg);filter:drop-shadow(0 0 3px #ffd36e)}
      50%{transform:scale(1.12) rotate(8deg);filter:drop-shadow(0 0 12px #ffd36e)} }
    @keyframes peTilt { 0%,100%{transform:rotate(-9deg)} 50%{transform:rotate(10deg)} }
    @keyframes peGlow { 0%,100%{transform:scale(.96);filter:drop-shadow(0 0 4px var(--accent))}
      50%{transform:scale(1.1);filter:drop-shadow(0 0 14px var(--accent))} }
    @keyframes peOrbit { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
    @keyframes peBounce { 0%,100%{transform:translateY(2px) scale(.95)} 50%{transform:translateY(-5px) scale(1.08)} }
    .reduced .premium-emoji { animation:none!important; }
    .profile-pills { display:flex; gap:7px; flex-wrap:wrap; margin-top:13px; }
    .profile-pill { display:inline-flex; align-items:center; gap:6px; background:var(--card2); padding:7px 10px; border-radius:12px;
      font-size:11px; font-weight:750; }
    .profile-pill.on { color:#8ce0ba; }
    .profile-pill.off { color:#f3bb68; }
    .settings-group { background:var(--card); border:1px solid var(--cardbr); border-radius:17px; overflow:hidden; margin-bottom:13px; }
    .settings-group .setrow { min-height:53px; padding:13px 15px; }
    .ui-icon { width:1em; height:1em; display:block; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
    .settings-icon { width:34px; height:34px; border-radius:11px; display:inline-flex; align-items:center; justify-content:center;
      margin-right:11px; color:#fff; background:var(--accent); font-size:17px; font-style:normal; box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 5px 13px rgba(0,0,0,.16); }
    .settings-icon.work { background:linear-gradient(145deg,#3187e8,#1f65bd); }
    .settings-icon.app { background:linear-gradient(145deg,#8065e8,#5c42bc); }
    .settings-icon.account { background:linear-gradient(145deg,#64748b,#465365); }
    .notification-dot { display:inline-flex; min-width:20px; height:20px; padding:0 6px; align-items:center; justify-content:center;
      border-radius:10px; background:var(--danger); color:#fff; font-size:10px; font-weight:850; }
    .notice-row { position:relative; display:flex; gap:12px; padding:13px; border-radius:15px; background:var(--card); border:1px solid var(--cardbr); margin-bottom:8px; }
    .notice-row.unread { border-color:color-mix(in srgb,var(--accent) 55%,var(--cardbr)); background:color-mix(in srgb,var(--accent) 7%,var(--card)); }
    .notice-row.critical { border-color:color-mix(in srgb,var(--danger) 58%,var(--cardbr)); background:color-mix(in srgb,var(--danger) 8%,var(--card)); }
    .notice-row.warning { border-color:color-mix(in srgb,var(--warning) 56%,var(--cardbr)); background:color-mix(in srgb,var(--warning) 8%,var(--card)); }
    .notice-row.positive { border-color:color-mix(in srgb,var(--success) 52%,var(--cardbr)); background:color-mix(in srgb,var(--success) 7%,var(--card)); }
    .notice-icon { width:38px; height:38px; flex:0 0 38px; border-radius:12px; display:flex; align-items:center; justify-content:center;
      background:var(--card2); color:var(--accent); font-size:17px; }
    .notice-row.critical .notice-icon { color:#fff; background:var(--danger); }
    .notice-row.warning .notice-icon { color:#fff; background:var(--warning); }
    .notice-row.positive .notice-icon { color:#fff; background:var(--success); }
    .notice-main { min-width:0; flex:1; }
    .notice-title { font-size:13px; font-weight:800; }
    .notice-body { color:var(--hint); font-size:11px; line-height:1.4; margin-top:3px; }
    .notice-time { color:var(--hint); font-size:9px; margin-top:5px; }
    .notice-new { position:absolute; top:12px; right:12px; width:7px; height:7px; border-radius:50%; background:var(--accent); }
    .notice-tabs { display:flex; gap:7px; overflow-x:auto; margin:0 0 12px; padding-bottom:2px; }
    .notice-tabs::-webkit-scrollbar{display:none}
    .notice-action { border:1px solid var(--cardbr); background:var(--card2); color:var(--hint); border-radius:10px;
      padding:6px 8px; font:750 10px var(--font); margin-top:8px; cursor:pointer; display:inline-flex; align-items:center; gap:5px; }
    .goal-card { background:var(--card); border:1px solid var(--cardbr); border-radius:18px; padding:14px; margin-bottom:12px; }
    .goal-head { display:flex; justify-content:space-between; gap:10px; align-items:center; }
    .goal-title { font-size:13px; font-weight:850; }
    .goal-track { height:8px; margin-top:10px; background:var(--card2); border-radius:9px; overflow:hidden; }
    .goal-fill { height:100%; border-radius:9px; background:var(--accent); }
    .goal-meta { display:flex; justify-content:space-between; color:var(--hint); font-size:10px; margin-top:6px; }
    /* статы */
    .statgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
    .stat { border-radius:14px; padding:14px 10px; color:#fff; text-align:center; box-shadow:0 6px 18px rgba(0,0,0,.2); }
    .stat.blue{background:var(--grad)} .stat.green{background:var(--grad-green)} .stat.gold{background:linear-gradient(135deg,#f7b733,#fc4a1a)}
    .stat .num { font-size:19px; font-weight:900; line-height:1.15; }
    .stat .lbl { font-size:11px; opacity:.92; margin-top:4px; }
    .stats-segment { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border-radius:13px;
      background:var(--card2); margin-bottom:10px; }
    .stats-segment button { border:0; border-radius:10px; padding:9px; background:transparent; color:var(--hint);
      font:700 13px var(--font); cursor:pointer; }
    .stats-segment button.active { background:var(--card); color:var(--text); box-shadow:0 3px 12px rgba(0,0,0,.18); }
    .stats-hero { position:relative; overflow:hidden; border-radius:22px; padding:18px 18px 10px; margin-bottom:10px;
      color:#fff; background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 82%,#111),color-mix(in srgb,var(--accent) 35%,#17172a));
      box-shadow:0 14px 36px color-mix(in srgb,var(--accent) 22%,transparent); }
    .stats-hero:before { content:""; position:absolute; width:190px; height:190px; border-radius:50%; right:-70px; top:-100px;
      background:rgba(255,255,255,.12); filter:blur(2px); }
    .stats-hero-top { position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px;
      font-size:12px; font-weight:750; opacity:.94; }
    .stats-amount { position:relative; font-size:32px; line-height:1.08; font-weight:900; letter-spacing:-1.2px; margin-top:9px; }
    .stats-hero-sub { position:relative; margin-top:6px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;
      color:rgba(255,255,255,.82); font-size:12px; }
    .stats-delta { display:inline-flex; align-items:center; padding:4px 8px; border-radius:14px; font-size:11px; font-weight:850; }
    .stats-delta.up { color:#d9ffef; background:rgba(0,184,148,.28); }
    .stats-delta.down { color:#ffe1e1; background:rgba(231,76,60,.28); }
    .stats-delta.flat { color:#fff; background:rgba(255,255,255,.14); }
    .spark { position:relative; width:100%; height:82px; display:block; margin-top:8px; overflow:visible; }
    .spark-labels { position:relative; display:flex; justify-content:space-between; margin-top:-7px; color:rgba(255,255,255,.6); font-size:10px; }
    .metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:12px; }
    .metric-card { background:var(--card); border:1px solid var(--cardbr); border-radius:16px; padding:13px;
      box-shadow:0 6px 18px rgba(0,0,0,.12); cursor:pointer; transition:transform .1s,border-color .15s; }
    .metric-card:active { transform:scale(.98); border-color:var(--accent); }
    .metric-icon { font-size:17px; margin-bottom:8px; }
    .metric-value { font-size:18px; font-weight:900; letter-spacing:-.3px; }
    .metric-label { color:var(--hint); font-size:11px; margin-top:3px; }
    .direction-card { background:var(--card); border:1px solid var(--cardbr); border-radius:18px; padding:14px; margin-bottom:12px; }
    .direction-row { margin-top:13px; }
    .direction-row:first-child { margin-top:0; }
    .direction-head { display:flex; justify-content:space-between; gap:10px; font-size:12px; margin-bottom:6px; }
    .direction-head b { font-size:12px; }
    .direction-track { height:7px; border-radius:8px; background:var(--card2); overflow:hidden; }
    .direction-fill { height:100%; border-radius:8px; background:var(--grad); box-shadow:var(--glow); }
    .leader-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
    .leader-kpi { min-width:0; background:var(--card); border:1px solid var(--cardbr); border-radius:16px; padding:12px 10px; text-align:left; }
    .leader-kpi b { display:block; font-size:17px; font-weight:900; line-height:1.12; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .leader-kpi span { display:block; color:var(--hint); font-size:9px; margin-top:4px; text-transform:uppercase; letter-spacing:.35px; }
    .leader-tools { display:grid; grid-template-columns:1fr; gap:8px; margin:0 0 9px; align-items:center; }
    .leader-search, .leader-select { width:100%; box-sizing:border-box; height:42px; margin:0; padding:10px 12px; border-radius:14px; font-size:13px; }
    .leader-select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--hint) 50%),linear-gradient(135deg,var(--hint) 50%,transparent 50%);
      background-position:calc(100% - 17px) 18px,calc(100% - 12px) 18px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; padding-right:28px; }
    .leader-tools .chip { height:40px; margin:0; white-space:nowrap; justify-content:center; }
    .leader-caption { color:var(--hint); font-size:11px; line-height:1.4; margin:0 2px 9px; }
    .podium-grid { display:grid; grid-template-columns:1fr; gap:8px; margin-bottom:9px; }
    .podium-card { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) auto; grid-template-areas:"medal name value" "medal sub value";
      align-items:center; gap:2px 8px; background:var(--card); border:1px solid var(--cardbr); border-radius:16px; padding:11px 12px;
      text-align:left; box-shadow:0 5px 16px rgba(0,0,0,.13); cursor:pointer; }
    .podium-card.first { background:linear-gradient(160deg,color-mix(in srgb,#f7b733 22%,var(--card)),var(--card)); }
    .podium-card.mine, .leader-row.mine { outline:2px solid color-mix(in srgb,var(--accent) 72%,transparent); outline-offset:0; }
    .podium-medal { grid-area:medal; font-size:25px; text-align:center; }
    .podium-name { grid-area:name; font-size:13px; font-weight:850; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .podium-value { grid-area:value; font-size:13px; font-weight:900; margin:0; text-align:right; white-space:nowrap; }
    .podium-sub { grid-area:sub; color:var(--hint); font-size:10px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .leader-list { background:var(--card); border:1px solid var(--cardbr); border-radius:18px; padding:3px 13px; }
    .leader-row { display:flex; align-items:flex-start; gap:9px; padding:12px 0; border-bottom:1px solid var(--card2); cursor:pointer; }
    .leader-row:last-child { border-bottom:0; }
    .leader-pos { width:22px; color:var(--hint); font-size:12px; font-weight:800; text-align:center; padding-top:2px; flex:0 0 22px; }
    .leader-main { min-width:0; flex:1; }
    .leader-name { font-size:13px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .leader-meta { color:var(--hint); font-size:10px; line-height:1.35; margin-top:3px; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .leader-money { font-size:13px; font-weight:900; white-space:nowrap; text-align:right; min-width:74px; padding-top:1px; }
    .leader-money span { display:block; }
    .leader-money small { display:block; color:var(--hint); font-size:9px; font-weight:800; margin-top:2px; text-transform:uppercase; letter-spacing:.35px; }
    .leader-more { margin-top:9px; }
    @media (min-width:620px){
      .leader-summary { grid-template-columns:repeat(4,1fr); }
      .leader-tools { grid-template-columns:minmax(0,1.1fr) minmax(0,.95fr) auto; }
      .leader-tools .chip { width:auto; }
      .podium-grid { grid-template-columns:repeat(3,1fr); }
      .podium-card { display:block; padding:12px 7px; text-align:center; }
      .podium-medal { display:block; text-align:center; }
      .podium-name { display:block; font-size:11px; margin-top:5px; }
      .podium-value { display:block; font-size:12px; margin-top:6px; text-align:center; }
      .podium-sub { display:block; font-size:9px; margin-top:3px; text-align:center; }
    }
    @media (max-width:360px){
      .leader-kpi b { font-size:15px; }
      .leader-list { padding-left:10px; padding-right:10px; }
      .leader-money { min-width:64px; font-size:12px; }
    }
    .sub { font-size:12px; color:var(--hint); margin:16px 2px 8px; text-transform:uppercase; letter-spacing:.5px; font-weight:700; }
    .periods { display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; margin-bottom:4px; -webkit-overflow-scrolling:touch; }
    .periods::-webkit-scrollbar{display:none}
    .pbtn { white-space:nowrap; border:none; border-radius:20px; padding:8px 14px; background:var(--card2); color:var(--text);
      font-size:13px; font-weight:700; cursor:pointer; flex-shrink:0; transition:all .15s; }
    .pbtn.active { background:var(--accent); color:var(--accent-text); }
    .lrow { display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--card2); }
    .lrow:last-child{border-bottom:none}
    .medal { font-size:20px; width:26px; text-align:center; }
    .lname { flex:1; font-weight:600; font-size:14px; } .lcnt{font-size:11px;color:var(--hint)} .lval{font-weight:800;font-size:14px}
    .dirbar { margin:10px 0; } .dirbar .t{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
    .dirbar .track{height:8px;border-radius:6px;background:var(--card2);overflow:hidden} .dirbar .fill{height:100%;background:var(--grad);border-radius:6px}
    .setrow { display:flex; justify-content:space-between; align-items:center; padding:15px 16px; cursor:pointer;
      border-bottom:1px solid var(--card2); font-size:15px; font-weight:600; }
    .setrow:last-child { border-bottom:none; }
    .setrow:active { background:var(--card2); }
    .setval { color:var(--hint); font-weight:600; }
    .themelist .trow { display:flex; align-items:center; gap:12px; padding:12px; border-radius:12px; background:var(--card2); margin-bottom:8px; cursor:pointer; transition:transform .08s; }
    .themelist .trow:active { transform:scale(.98); }
    .themelist .sw { width:52px; height:34px; border-radius:9px; flex-shrink:0; box-shadow:0 2px 8px rgba(0,0,0,.25); }
    .themelist .tn { flex:1; font-weight:700; font-size:15px; }
    .themelist .ck { color:var(--accent); font-weight:900; font-size:18px; }
    .filebtn { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; border:1px dashed color-mix(in srgb,var(--hint) 50%,transparent);
      border-radius:12px; padding:12px; background:var(--card2); color:var(--text); font-size:14px; font-weight:700; margin-top:8px; cursor:pointer; }
    .thumbs { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
    .thumbs img { width:64px; height:64px; object-fit:cover; border-radius:10px; box-shadow:0 2px 8px rgba(0,0,0,.2); }
    .din { width:100%; border-radius:10px; border:1px solid var(--card2); background:var(--card2); color:var(--text); padding:10px; font-size:14px; font-family:inherit; }
    .tabs { position:fixed; bottom:0; left:0; right:0; z-index:40; display:flex; background:var(--card); border-top:1px solid var(--card2);
      padding:8px 0 calc(8px + env(safe-area-inset-bottom)); backdrop-filter:blur(8px); transform:translateZ(0); will-change:transform; }
    /* Некоторые версии Telegram WebView при прокрутке теряют fixed-привязку.
       Класс добавляется только при фактическом смещении панели и удерживает её
       внизу видимой области без влияния на обычные браузеры. */
    .tabs.viewport-pinned { position:absolute; top:0; bottom:auto; transform:translate3d(0,var(--tabs-pin-y,0px),0); }
    .tab { flex:1; text-align:center; padding:4px; color:var(--hint); font-size:11px; font-weight:600; cursor:pointer; transition:color .15s; }
    .tab.active { color:var(--accent); }
    .tab .ico { font-size:22px; display:block; margin-bottom:3px; transition:transform .15s; }
    .tab.active .ico { transform:scale(1.15); }
    .sheet-bg { position:fixed; inset:0; background:rgba(0,0,0,.55); display:none; z-index:50; animation:pop .2s; }
    .sheet-bg.open { display:block; }
    .sheet { position:fixed; left:0; right:0; bottom:0; background:var(--card); border-radius:20px 20px 0 0;
      padding:18px 16px calc(18px + env(safe-area-inset-bottom)); max-height:80vh; overflow-y:auto; z-index:51;
      transform:translateY(100%); transition:transform .28s cubic-bezier(.2,.8,.2,1); }
    .sheet.open { transform:translateY(0); }
    .sheet h2 { font-size:17px; margin:2px 0 14px; font-weight:800; }
    .master { display:flex; align-items:center; gap:12px; padding:12px; border-radius:12px; background:var(--card2); margin-bottom:8px; cursor:pointer; transition:transform .08s; }
    .master:active { transform:scale(.98); }
    .master .ava { width:40px; height:40px; border-radius:50%; background:var(--grad); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; flex-shrink:0; color:#fff; }
    .master .nm{font-weight:700;font-size:15px} .master .rl{font-size:12px;color:var(--hint)}
    .count-pill { display:inline-block; background:var(--card2); color:var(--hint); border-radius:20px; padding:2px 10px; font-size:13px; font-weight:700; margin-left:6px; vertical-align:middle; }
    /* поиск */
    .searchbar { width:100%; border-radius:12px; border:1px solid var(--card2); background:var(--card2); color:var(--text);
      padding:11px 14px; font-size:15px; margin-bottom:12px; font-family:inherit; }
    .searchbar:focus { outline:none; border-color:var(--accent); }
    .noresults { color:var(--hint); text-align:center; padding:30px 16px; font-size:14px; }
    /* свайп влево -> кнопки управления */
    .swipe { position:relative; isolation:isolate; overflow:hidden; border-radius:var(--radius); margin-bottom:12px; }
    .swipe > .card { margin-bottom:0; position:relative; z-index:2; transition:transform .22s cubic-bezier(.2,.8,.2,1); will-change:transform; }
    .swipe-actions { position:absolute; top:0; right:0; bottom:0; width:150px; display:flex; gap:6px;
      align-items:stretch; justify-content:flex-end; z-index:1; }
    .swipe-btn { border:none; border-radius:14px; width:68px; color:#fff; font-size:12px; font-weight:700;
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; cursor:pointer; padding:0; }
    .swipe-btn .si { font-size:21px; }
    .swipe-btn.del { background:linear-gradient(135deg,#e74c3c,#c0392b); }
    .swipe-btn.re { background:linear-gradient(135deg,#f7b733,#fc7d4a); }
    .swipe-hintbar { display:flex; align-items:center; gap:6px; color:var(--hint); font-size:12px; margin:-4px 2px 10px; }
.cardmenu { margin-left:auto; border:none; background:var(--card2); color:var(--text); border-radius:9px;
  min-width:38px; height:30px; font-size:20px; line-height:1; cursor:pointer; flex-shrink:0; padding:0 6px; }
.cardmenu:active { transform:scale(.94); }
.tiny-test { border:0; background:transparent; color:color-mix(in srgb,var(--hint) 48%,transparent);
  font:800 10px var(--font); padding:2px 6px; margin:-4px 0 8px auto; display:block; cursor:pointer; opacity:.55; }
.tiny-test:active { opacity:1; transform:scale(.96); }
.hist-filters { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 12px; }
.hist-reset { margin:0; padding:9px 12px; }
.hist-count { width:100%; font-size:11px; margin-left:2px; }
.bag-hero { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--cardbr)); background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--accent) 7%,var(--card2)));
  border-radius:22px; padding:15px; box-shadow:0 12px 28px rgba(0,0,0,.18); }
.bag-hero b { display:block; font-size:19px; font-weight:950; letter-spacing:-.02em; }
.bag-hero span { display:block; color:var(--hint); font-size:11px; line-height:1.35; margin-top:4px; max-width:230px; }
.bag-add-btn { width:auto; min-width:104px; margin:0; padding:10px 12px; font-size:12px; flex-shrink:0; }
.bag-nav { display:grid; grid-template-columns:repeat(auto-fit,minmax(62px,1fr)); gap:7px; margin:0 0 11px; }
.bag-nav-item { border:1px solid var(--cardbr); background:var(--card); color:var(--hint); border-radius:15px;
  min-height:58px; padding:7px 4px; font:800 10px var(--font); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; cursor:pointer; }
.bag-nav-item span { font-size:18px; line-height:1; }
.bag-nav-item.active { color:var(--accent); border-color:color-mix(in srgb,var(--accent) 55%,var(--cardbr));
  background:color-mix(in srgb,var(--accent) 8%,var(--card)); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent); }
.bag-filterbar { display:flex; gap:8px; overflow-x:auto; margin:0 0 10px; padding-bottom:1px; }
.bag-filterbar::-webkit-scrollbar{display:none}
.bag-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:12px; }
.bag-stats div { background:var(--card); border:1px solid var(--cardbr); border-radius:15px; padding:11px 8px; text-align:center; }
.bag-stats b { display:block; font-size:18px; font-weight:900; }
.bag-stats span { display:block; color:var(--hint); font-size:10px; margin-top:3px; }
.bag-card { overflow:hidden; }
.bag-top { display:flex; gap:12px; align-items:flex-start; margin-bottom:8px; }
.bag-photo { width:72px; height:72px; flex:0 0 72px; border-radius:15px; background:var(--card2);
  display:flex; align-items:center; justify-content:center; overflow:hidden; color:var(--hint); font-size:28px; }
.bag-photo img { width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in; }
.bag-photo-chip { position:relative; display:inline-flex; }
.bag-photo-chip button { position:absolute; top:-6px; right:-6px; width:22px; height:22px; border:0; border-radius:50%;
  background:rgba(0,0,0,.7); color:#fff; font-size:16px; line-height:22px; padding:0; cursor:pointer; }
.bag-main { min-width:0; flex:1; }
.bag-main .rid { align-items:flex-start; line-height:1.2; }
.bag-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.bag-actions .btn { margin-top:0; padding:10px; font-size:13px; }
.partner-hero { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px;
  border:1px solid var(--cardbr); background:linear-gradient(145deg,var(--card),var(--card2)); border-radius:18px; padding:14px; }
.partner-hero b { display:block; font-size:17px; font-weight:900; }
.partner-hero span { display:block; color:var(--hint); font-size:11px; margin-top:3px; }
.partner-hero > div:last-child { min-width:46px; height:46px; display:flex; align-items:center; justify-content:center;
  border-radius:15px; background:var(--accent); color:var(--accent-text); font-size:18px; font-weight:900; }
.partner-card { overflow:hidden; }
.partner-head { display:flex; align-items:center; gap:11px; cursor:pointer; margin-bottom:8px; }
.partner-icon { width:42px; height:42px; flex:0 0 42px; display:flex; align-items:center; justify-content:center;
  border-radius:14px; background:var(--card2); font-size:22px; }
.partner-main { min-width:0; flex:1; }
.partner-desc { margin-top:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.35; }
.partner-detail-badge { display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:7px 10px;
  background:var(--card2); color:var(--hint); font-size:12px; font-weight:800; margin:-4px 0 10px; }
.badge.green { background:var(--success); color:#fff; }
.badge.warn { background:var(--warning); color:#fff; }
.badge.danger { background:var(--danger); color:#fff; }
.badge.purple { background:var(--sd); color:#fff; }
.checkrow { display:flex; align-items:center; gap:9px; margin-top:8px; color:var(--text); font-size:14px; font-weight:650; }
.checkrow input { width:18px; height:18px; accent-color:var(--accent); }
.full .thumbs { margin-top:10px; }
    .full .thumbs img { cursor:pointer; }
    /* выделение текста (этап 6): карточки и шторка — выделяемы, кнопки — нет */
    .card, .sheet, .full, .row, .ann-text, .cv { -webkit-user-select:text; user-select:text; -webkit-touch-callout:default; cursor:text; }
    .btn,.sbtn,.chip,.cardmenu,.tab,.swipe-btn,.pbtn,.medal,.master,.setrow,.trow,.lrow,.badge,.filebtn { -webkit-user-select:none; user-select:none; cursor:pointer; }
    .cv { word-break:break-word; }
    /* кликабельные ссылки в объявлениях (этап «Информация») */
    .lnk { color:var(--accent); text-decoration:underline; word-break:break-word; cursor:pointer; }
    /* тост «скопировано» */
    .toast { position:fixed; left:50%; bottom:92px; transform:translateX(-50%) translateY(20px); background:rgba(0,0,0,.86);
      color:#fff; padding:10px 18px; border-radius:22px; font-size:14px; font-weight:700; z-index:100; opacity:0; pointer-events:none;
      transition:opacity .2s, transform .2s; box-shadow:0 6px 20px rgba(0,0,0,.3); max-width:calc(100vw - 28px); text-align:center; }
    .toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
    .toast.success { background:#176b4a; } .toast.error { background:#8f2931; } .toast.info { background:#273142; }
    .coin-burst { position:fixed; left:50%; top:45%; z-index:120; font-size:38px; pointer-events:none; animation:coinBurst .9s ease-out forwards; }
    @keyframes coinBurst { 0%{opacity:0;transform:translate(-50%,20px) scale(.5) rotate(-15deg)} 35%{opacity:1;transform:translate(-50%,-8px) scale(1.15) rotate(8deg)} 100%{opacity:0;transform:translate(-50%,-70px) scale(.85) rotate(18deg)} }
    /* медиа-плитки и встроенная галерея (этап 6) */
    .mthumb { width:72px; height:72px; border-radius:10px; background-size:cover; background-position:center;
      background-color:var(--card2); cursor:pointer; position:relative; flex-shrink:0; box-shadow:0 2px 8px rgba(0,0,0,.2); }
    .mthumb.vid { display:flex; align-items:center; justify-content:center; }
    .mthumb .play { color:#fff; font-size:24px; text-shadow:0 2px 6px rgba(0,0,0,.7); }
    .media-openable { cursor:zoom-in; }
    .gallery { position:fixed; inset:0; background:rgba(0,0,0,.94); z-index:200; display:none; align-items:center; justify-content:center; animation:pop .2s; touch-action:none; user-select:none; -webkit-user-select:none; }
    .gallery.open { display:flex; }
    .gstage { width:100%; height:100%; display:flex; align-items:center; justify-content:center; padding:48px 10px 58px; overflow:hidden; touch-action:none; }
    .gmedia-wrap { max-width:98vw; max-height:88vh; display:flex; align-items:center; justify-content:center; will-change:transform; transition:transform .12s ease-out; transform-origin:center center; }
    .gmedia-wrap.zoomed { cursor:grab; transition:none; }
    .gstage img, .gstage video { max-width:98vw; max-height:88vh; border-radius:12px; object-fit:contain; box-shadow:0 18px 52px rgba(0,0,0,.42); }
    .gstage img { user-select:none; -webkit-user-drag:none; touch-action:none; }
    .gx { position:absolute; top:10px; right:14px; color:#fff; font-size:28px; z-index:2; cursor:pointer; width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:16px; background:rgba(255,255,255,.08); backdrop-filter:blur(8px); }
    .gnav { position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:46px; width:54px; height:84px; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2; opacity:.85; user-select:none; }
    .gprev { left:2px; } .gnext { right:2px; }
    .gcount { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); color:#fff; font-size:13px; background:rgba(0,0,0,.5); padding:4px 12px; border-radius:14px; }
    .ghelp { position:absolute; left:50%; bottom:8px; transform:translateX(-50%); color:rgba(255,255,255,.58); font-size:10px; white-space:nowrap; pointer-events:none; }
    /* система тем (этап 9A): фоновый слой, анимированные фоны, сетка тем, конструктор */
    #bgfx { position:fixed; inset:0; z-index:-1; pointer-events:none; background:transparent; transition:background .35s; }
    #bgvid { position:fixed; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; pointer-events:none; }
    body.animbg #bgfx { background-size:300% 300% !important; animation:bgmove 18s ease infinite; }
    body.reduced #bgfx { animation:none !important; }
    @keyframes bgmove { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
    .thgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:6px; }
    .thcard { border-radius:14px; padding:12px; cursor:pointer; position:relative; overflow:hidden; min-height:84px;
      display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 4px 14px rgba(0,0,0,.2); }
    .thcard.active { outline:2px solid var(--accent); outline-offset:-2px; }
    .thcard.hidden-th { opacity:.45; }
    .thcard select.rin { padding:6px; font-size:13px; }
    .thcard .thname { font-weight:700; font-size:13px; text-shadow:0 1px 3px rgba(0,0,0,.35); }
    .thcard .thfav { position:absolute; top:6px; right:8px; font-size:17px; }
    .thcard .thswatch { display:flex; gap:5px; margin-top:8px; }
    .thcard .thdot { width:16px; height:16px; border-radius:50%; box-shadow:0 0 0 1px rgba(255,255,255,.25); }
    .market-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
    .market-card { background:var(--card); border:1px solid var(--cardbr); border-radius:18px; padding:14px; min-height:150px;
      display:flex; flex-direction:column; gap:7px; justify-content:space-between; }
    .market-card .mi { font-size:30px; min-height:42px; display:flex; align-items:center; }
    .market-card .mn { font-size:14px; font-weight:800; }
    .market-card .md { color:var(--hint); font-size:11px; line-height:1.35; }
    .market-card .btn { margin-top:6px; padding:9px; font-size:12px; }
    .market-hero { padding:16px; border-radius:20px; margin-bottom:12px; background:var(--grad); color:var(--accent-text);
      box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 22%,transparent); }
    .market-hero-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
    .market-balance-label { font-size:11px; opacity:.75; }
    .market-balance { font-size:26px; font-weight:900; margin-top:2px; }
    .market-hero .btn { width:auto; margin:0; background:rgba(255,255,255,.18); color:inherit; box-shadow:none; padding:9px 12px; font-size:12px; backdrop-filter:blur(8px); }
    .market-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin-bottom:14px; }
    .market-tab { border:1px solid var(--cardbr); background:var(--card); color:var(--hint); border-radius:14px; padding:9px 4px;
      display:flex; flex-direction:column; align-items:center; gap:5px; font:inherit; font-size:10px; font-weight:750; cursor:pointer; }
    .market-tab .ui-icon { font-size:18px; }
    .market-tab.active { color:var(--accent); border-color:color-mix(in srgb,var(--accent) 55%,var(--cardbr)); background:color-mix(in srgb,var(--accent) 8%,var(--card)); }
    .section-head { display:flex; align-items:end; justify-content:space-between; gap:10px; margin:14px 2px 10px; }
    .section-head b { font-size:16px; }
    .section-head span { color:var(--hint); font-size:11px; }
    .emoji-product { position:relative; overflow:hidden; }
    .emoji-product.active { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent); }
    .emoji-price { display:inline-flex; align-items:center; padding:4px 8px; border-radius:10px; background:var(--card2); font-size:10px; font-weight:800; width:max-content; }
    .market-themes { display:grid; grid-template-columns:1fr; gap:10px; }
    .market-theme { position:relative; overflow:hidden; min-height:162px; border-radius:20px; padding:16px; cursor:pointer;
      display:flex; flex-direction:column; justify-content:flex-end; box-shadow:0 8px 24px rgba(0,0,0,.22); }
    .market-theme.featured { min-height:210px; border-radius:24px; }
    .market-theme.featured:after { content:""; position:absolute; inset:auto 14px 14px auto; width:88px; height:88px; border-radius:50%;
      background:radial-gradient(circle,rgba(255,255,255,.24),transparent 62%); filter:blur(2px); pointer-events:none; }
    .market-theme.featured .market-tag { background:linear-gradient(135deg,rgba(217,179,94,.54),rgba(139,92,246,.42)); }
    .market-theme.active { outline:2px solid color-mix(in srgb,var(--accent) 80%,#fff); outline-offset:-2px; }
    .market-theme:before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(0,0,0,.72)); pointer-events:none; }
    .market-theme > * { position:relative; z-index:1; }
    .market-theme-top { position:absolute; z-index:2; top:13px; left:13px; right:13px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .market-tag { display:inline-flex; align-items:center; gap:4px; padding:5px 8px; border-radius:999px;
      background:rgba(0,0,0,.32); color:#fff; font-size:10px; font-weight:850; backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.16); }
    .market-mini-preview { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:10px 0 2px; }
    .market-mini-preview span { height:23px; border-radius:8px; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.14); }
    .market-mini-preview span:nth-child(1) { grid-column:1/-1; height:30px; }
    .market-theme-name { font-size:17px; font-weight:850; color:#fff; }
    .market-theme-meta { font-size:10px; color:rgba(255,255,255,.72); margin-top:3px; }
    .market-theme-actions { display:flex; align-items:center; gap:8px; margin-top:10px; }
    .market-theme-actions .btn { width:auto; margin:0 0 0 auto; padding:8px 13px; font-size:12px; }
    .theme-preview { min-height:210px; border-radius:20px; padding:18px; position:relative; overflow:hidden; margin-bottom:12px;
      display:flex; flex-direction:column; justify-content:flex-end; box-shadow:0 12px 30px rgba(0,0,0,.25); }
    .theme-preview:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.68)); }
    .theme-preview > * { position:relative; z-index:1; }
    .theme-preview-title { color:#fff; font-size:22px; font-weight:900; }
    .theme-preview-card { background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.18); border-radius:14px;
      padding:11px; color:#fff; font-size:12px; margin-top:10px; backdrop-filter:blur(8px); }
    .theme-preview-dock { position:fixed; left:12px; right:12px; bottom:86px; z-index:170; padding:11px;
      border-radius:18px; background:color-mix(in srgb,var(--card) 88%,transparent); border:1px solid var(--cardbr);
      box-shadow:0 14px 42px rgba(0,0,0,.38); backdrop-filter:blur(18px); display:flex; align-items:center; gap:9px; }
    .theme-preview-dock .preview-name { min-width:0; flex:1; }
    .theme-preview-dock .preview-name b { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .theme-preview-dock .btn { width:auto; margin:0; padding:9px 11px; font-size:11px; }
    .request-chat { display:flex; flex-direction:column; min-height:52vh; }
    .request-chat-head { display:flex; align-items:center; gap:11px; padding-bottom:12px; border-bottom:1px solid var(--card2); }
    .request-chat-head .chat-mark { width:42px; height:42px; border-radius:14px; display:flex; align-items:center; justify-content:center;
      color:#fff; background:var(--grad); font-size:21px; box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 25%,transparent); }
    .request-chat-head .main { min-width:0; flex:1; }
    .request-chat-head .title { font-size:16px; font-weight:850; }
    .request-chat-head .meta { color:var(--hint); font-size:11px; margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .chat-messages { flex:1; min-height:260px; max-height:48vh; overflow-y:auto; padding:14px 2px; display:flex; flex-direction:column; gap:9px; }
    .chat-empty { margin:auto; text-align:center; color:var(--hint); font-size:13px; max-width:240px; }
    .chat-message { max-width:84%; align-self:flex-start; }
    .chat-message.mine { align-self:flex-end; }
    .chat-author { color:var(--hint); font-size:10px; margin:0 7px 3px; }
    .chat-bubble { padding:10px 12px; border-radius:16px 16px 16px 5px; background:var(--card2); color:var(--text);
      font-size:14px; line-height:1.42; white-space:pre-wrap; overflow-wrap:anywhere; }
    .chat-message.mine .chat-bubble { background:var(--accent); color:var(--accent-text); border-radius:16px 16px 5px 16px; }
    .chat-bubble .thumbs { margin-top:8px; }
    .chat-message.mine .chat-bubble .mthumb { box-shadow:0 2px 8px rgba(0,0,0,.28); }
    .chat-time { color:var(--hint); font-size:9px; margin:3px 7px 0; text-align:left; }
    .chat-message.mine .chat-time { text-align:right; }
    .chat-tools { display:flex; gap:7px; overflow-x:auto; padding:0 0 8px; }
    .chat-tools::-webkit-scrollbar{display:none}
    .chat-template { white-space:nowrap; border:1px solid var(--cardbr); background:var(--card2); color:var(--text);
      border-radius:999px; padding:7px 10px; font:750 11px var(--font); cursor:pointer; flex-shrink:0; }
    .chat-attachments { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
    .chat-attach { width:42px; height:42px; border:1px dashed color-mix(in srgb,var(--hint) 52%,transparent); border-radius:14px;
      display:inline-flex; align-items:center; justify-content:center; color:var(--hint); background:var(--card2); cursor:pointer; }
    .chat-pending { position:relative; width:48px; height:48px; border-radius:13px; background-size:cover; background-position:center;
      background-color:var(--card2); overflow:hidden; border:1px solid var(--cardbr); }
    .chat-pending button { position:absolute; top:3px; right:3px; width:18px; height:18px; border:0; border-radius:50%;
      background:rgba(0,0,0,.62); color:#fff; font-size:12px; line-height:18px; padding:0; cursor:pointer; }
    .chat-compose { display:flex; align-items:flex-end; gap:8px; border-top:1px solid var(--card2); padding-top:10px; }
    .chat-compose textarea { flex:1; min-height:44px; max-height:112px; resize:none; border:1px solid var(--cardbr);
      border-radius:15px; background:var(--card2); color:var(--text); padding:11px 12px; font:inherit; font-size:14px; }
    .chat-compose textarea:focus { outline:none; border-color:var(--accent); }
    .chat-send { width:44px; height:44px; flex:0 0 44px; border:0; border-radius:14px; background:var(--accent);
      color:var(--accent-text); display:flex; align-items:center; justify-content:center; font-size:20px; cursor:pointer; }
    .chat-unread { min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:var(--danger); color:#fff;
      display:inline-flex; align-items:center; justify-content:center; font-size:10px; font-weight:850; }
    .route-combo { margin-top:9px; border:1px solid color-mix(in srgb,var(--accent) 22%,var(--cardbr));
      border-radius:15px; background:linear-gradient(135deg,color-mix(in srgb,var(--card2) 90%,transparent),color-mix(in srgb,var(--accent) 7%,var(--card2)));
      overflow:hidden; }
    .route-combo.ready { border-color:color-mix(in srgb,var(--success) 38%,var(--cardbr)); }
    .route-mainrow { display:flex; align-items:stretch; min-height:50px; }
    .route-open { flex:1; min-width:0; display:flex; align-items:center; gap:9px; border:0; background:transparent; color:var(--text);
      padding:12px 13px; text-align:left; font:inherit; cursor:pointer; }
    .route-open span { display:flex; flex-direction:column; min-width:0; line-height:1.12; }
    .route-open b { font-size:15px; font-weight:850; }
    .route-open small { margin-top:3px; color:var(--hint); font-size:11px; font-weight:760; }
    .route-toggle { width:48px; flex:0 0 48px; border:0; border-left:1px solid color-mix(in srgb,var(--cardbr) 80%,transparent);
      background:color-mix(in srgb,var(--card) 45%,transparent); color:var(--hint); font-size:21px; font-weight:850; cursor:pointer; }
    .route-open:active,.route-toggle:active { transform:scale(.97); }
    .route-details { max-height:0; opacity:0; overflow:hidden; padding:0 11px; border-top:1px solid transparent;
      transition:max-height .22s ease, opacity .18s ease, padding .2s ease, border-color .2s ease; }
    .route-combo.open .route-details { max-height:220px; opacity:1; padding:10px 11px 11px; border-top-color:color-mix(in srgb,var(--cardbr) 85%,transparent); }
    .route-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--hint); font-size:11px; font-weight:800; }
    .route-card-top span { display:inline-flex; align-items:center; gap:6px; }
    .route-card-top b { color:var(--text); font-size:10px; padding:3px 7px; border-radius:999px; background:var(--card); white-space:nowrap; }
    .route-full { margin-top:7px; font-size:13px; line-height:1.4; font-weight:760; overflow-wrap:anywhere; }
    .route-map { margin-top:7px; color:var(--hint); font-size:11px; line-height:1.35; overflow-wrap:anywhere; }
    .route-map span { display:block; color:var(--text); font-weight:800; margin-bottom:2px; }
    .route-copy { margin-top:9px; border:1px solid var(--cardbr); border-radius:11px; background:var(--card);
      color:var(--hint); padding:8px 10px; font:750 11px var(--font); cursor:pointer; }
    .rankbadge { display:inline-flex; align-items:center; gap:3px; padding:2px 7px; border-radius:12px;
      background:linear-gradient(135deg,#f7b733,#fc4a1a); color:#fff; font-size:10px; font-weight:800; vertical-align:middle; }
    .wheel-face { width:150px; height:150px; margin:10px auto 16px; border-radius:50%; display:flex; align-items:center;
      justify-content:center; text-align:center; font-size:40px; font-weight:900; background:conic-gradient(#f7b733 0 14%,#6c5ce7 14% 28%,
      #2ea6ff 28% 42%,#00b894 42% 56%,#fc4a1a 56% 70%,#e84393 70% 84%,#2d3436 84% 100%);
      border:7px solid color-mix(in srgb,var(--text) 16%,transparent); box-shadow:0 10px 30px rgba(0,0,0,.3),var(--glow); }
    .wheel-face.spinning { animation:wheelspin .9s cubic-bezier(.15,.75,.2,1); }
    @keyframes wheelspin { to { transform:rotate(1080deg); } }
    .crow { display:flex; align-items:center; gap:12px; margin-top:12px; }
    .crow label { flex:1; font-size:14px; color:var(--hint); }
    .crow input[type=color] { width:46px; height:34px; border:none; border-radius:9px; background:none; padding:0; }
    .crow input[type=range] { flex:1; accent-color:var(--accent); }
