/* ============================================================
   R6 -- style.css
   استخراج‌شده از فایل اصلی index.html برای کش شدن جدا توسط مرورگر
   ============================================================ */

/* ============================================================
   R6 — Design System
   Steps 1-4: Bug fixes + Channel Card Redesign + CSS Refactor
   ============================================================ */

/* ── 1. CSS Variables ─────────────────────────────────────── */
:root {
  /* Backgrounds */
  --bg:    #0B0D12;
  --bg2:   #10121A;
  --bg3:   #161922;
  --bg4:   #1C2030;
  --bg5:   #222640;

  /* رنگ اختصاصیِ گروهِ باز — با JS (applyGroupAccent) روی هر گروه با رنگ خودش ست می‌شه */
  --group-accent: #7C5CFC;
  --group-accent-rgb: 124,92,252;

  /* Borders */
  --border:  #1A1D27;
  --border2: #232634;

  /* Text */
  --text:  #ECEEF3;
  --text2: #8A8FA3;
  --text3: #6E7186;
  --text4: #454860;

  /* Accent */
  --accent1: #7C5CFC;
  --accent2: #FF4FA3;
  --accent3: #22D3C9;
  --grad:    linear-gradient(135deg, #8A6BFF, #7C5CFC 45%, #B84FFF 75%, #FF4FA3 130%);
  --grad-ring: conic-gradient(from 0deg, #7C5CFC, #FF4FA3, #B84FFF, #7C5CFC);

  /* Semantic */
  --danger: #FF6B6B;
  --online: #3DDC84;
  --warn:   #F5B547;

  /* Shadows */
  --shadow:  0 8px 24px rgba(0,0,0,0.35);
  --shadow2: 0 2px 4px rgba(0,0,0,0.18), 0 10px 28px rgba(0,0,0,0.28);
  --shadow3: 0 20px 60px rgba(0,0,0,0.5), 0 4px 16px rgba(0,0,0,0.3);

  /* Advanced UI v13 Revolution */
  --pink-verified: #FF4FA3;
  --gold: #FFD700;
  --grad-animated: linear-gradient(-45deg, #7C5CFC, #6647E0, #FF4FA3, #7C5CFC);
  --glass-bg: rgba(16, 18, 26, 0.75);
  --glass-border: rgba(255, 255, 255, 0.15);
  --pulse-duration: 2s;
  --gradient-size: 400% 400%;
  --neumorph-shadow: 6px 6px 12px rgba(0,0,0,0.4), -4px -4px 8px rgba(255,255,255,0.05);
  --liquid-ease: cubic-bezier(0.68, -0.55, 0.265, 1.55);

  /* Radii */
  --r-sm:  8px;
  --r-md:  12px;
  --r-lg:  16px;
  --r-xl:  20px;
  --r-2xl: 24px;

  /* Nav */
  --nav-h: 70px;

  /* Logo */
  --logo-url: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAIAAAD2HxkiAAEAAElEQVR42tT9d7xuV1U3io/vnGs9Ze99+slJDyEhgQQCCT30Kh0VK4jYC69XUK+I7xVF1BdF6fqiXBQRG6CgFKUFAoEQAoQQkkB6Pyknp+/2lDXHuH/MNuZcz8m9vz9/+WA82WfvZz/PWmvOOcZ3fAsGg22U/hEi5D+S/y//fyLV94AgJLTgH4Ao/RUIUrzkom+G/0vR70T83x3zH6TvFyGEb5Vjfzsg6TP4H8kvUv7l/+s/qH5RvBRQF0j0RaV8XXsvJbLw7+J1E/UbISRQ183/YHzjEr5cfpD4SYvXFhGAAJCkXy8L32f5YSQ/Eem/hQCS+u+lfJqOfSkkPi8Lvh/6a/GTCS18XvuP1f/nG5ovAQj/v9z+dN/DhdRfXPjWqi/Gh9Dk61s+DSCBiF8N0J8cepkc60PpR9A/N6KeHf2XLP5XE1d/Ab0dLPhV+Usw/j+lfo/66fQXScT/f+jXlfL1F94HCfdUFi31eAMkXqhi28HilxR9rSDovybUK8TXJ7X0REjE///8G/39yssKC+5XeB1hCU+FiP916H04qI8AAkQtev8jRm0NyK+Paj8X8m8svTcJH13SW8PiR138hZVinUr1LNbPY38FyqKnKG1cJEICofpiyYIVqN8q1EujeODVz6YnzV+++NIwRCAhMWn5HmOLAuqXe6Dz5lg7E/rXwr9tIP9ZvTLKh1hv1gt2q/IJzmdvejREnYfxHE+bVbkAQUII34b8bpEfStFFQdoSH2APlfpvUbw5LD6AwsIXvUcD/q3hgQ5ZpGOlvizIpwqK7QXpK6G6yW8YvQsE9SLx8Vv8rJa3IbyoVDcCqrbS3yj6vkr1clIuM6hTLJ4cVNVGUJ/KX1cRva8BRSmDouirDrDey0vvnEP1eaAfwXCN4xZg1GvFLU3CDaf6UwDFJQPSC+UVop+88F6kOL7VZ1bvEOki6ZsUb7moL1ZPCeIdSA+Z6LLCb8D6ucn1XHzu4Df19HeIZ4voK51+n4EptgqJJY1Aqj0ifgZ1q5BOF738pNzI01szMOHKkIAg8eRDuISod6X0XKGuGFT7UNdLKPYz4NgVlORtgdReVj534YCOz4nfNuJmHh6hdCyKfkb9N+U7JAAkPHjxdI3ne7/I9k8jQGTy3gf1V/FXAEYvO4TDAHUVkB8XFN2Yfw4l3zXplWdYdFpAPTm5bBey1oziW5PiZ6WqyePTnD6ZxI05f3jEm5Iumm4tY9+VzpkFBWp1UdOS889luhOIKw1EEr8JC6p6EIB0qeLTAOR9AEUn6/tDvY+p9wdgwflT/CFfsnhl8gpWe1hqWZDfkrqSqRVHLpLynmjy50qLGPqJK/obqEcQeZ3ER0+91XCZIf3PhlS5IX/EsGAB/bbTYhTKz0DcnMINhSpP0iIJ9y8dkPo9E3LZApRbcFiikl45b6/qaQc0BpDur16ieVOA+o/4sKUFKcXzGSsTqFoD6vTDolI2XeRw062141itQi03MeWhlwoHXQGmk7VaUEDVzoDK29PfIygdDqns0sCPOpol3uH8rKV9UVBcWyJ1wqZlhmrXR1kxSa4E4usuuLbIu2J6GIrDOW/y5ZMMlJiXqDufEQWkh1Lii/v+DUZXKtX1T++1WLaAb7ChKsvyJNGPJOr6e1HhjBq1UzgR0qYisUKJ+2n+3cU9V6tcVbtqj4jbkb5HqCDAorha3Iarm1Hsv0D98aA7cL3BqSdKoXH6hkpZXghyj1PAOeqS+HtKZfUp8e/Lnt4DNPG9+kpBRFVXFLuL+HXpN2zFs6IfAgkXtLhfpFdAwhxEQwWCXF8jlH755yGI9w+6gCuaC3UDJTVVkNSVoTyIkPoYVFCBJAwzfF0kFzzF8RKqrHiglJ/WqL5PFdIg1UyoYhlUrD3plfu6qkbaOkPBKAD0FaugbPQKlrLkVmBGLIV9LeqvuYS+K69/XwoD+XSq2voEgeqW2F9JpMM1X3fpFyS5dlTlOkJbJAoPEAUkUW5zIKrOgqAPQ4aXKp5hpH60qO1Tm10BqhJvIpGYvNKktxdVcEVZOuY36ssBLiAQpH0KFW5ZzxIQzwPJCFJA/WI9J+hjolLgin6jkXS6CPL+EB42Eb9JhOdG8rMcbz3SblWU1bpMh7rQgt6cRvV/FM4fNVpQSLhQgJ79K0BBQP6+SIJz/ScUSY+nL1rCZVLNhcYSc2ld4PrpFxcYg/8OpE4GGUFB2fYgb8qSV6HkHkGfSqk/8R8lbBP+bJeIiaN+uCWBq+lE06h9ujAo0RnkRSWqFJKyFhMN+UgfeJKwRVDdZINUByQL8HTEz1gjZRXyK6nrVruaEckTHxRnnxQdrd6YxR9cSPB8nDaJH7j5jyoi1Qab2xQq5nJS/LoIAYYHDmpqCLX9xFIkXjbR7XP8OcQ3GF86LtyyPVNVQHi8M8gTHv/0Ihk8EI2LSDoZwyYrquTMXWlc5JKKrHxmA4BI6gxi8+M3jvCe0+9IC1JymdCDSoTDzpLAXsSnKlVckDSrlHyGEzwkBF02LOiGUQGGaeuR3PTmNxVL+dyB6Yo+oR5qFeRjBLoJTH8yqTJM7wFFq+JHKXkeIvkS5qZaENGWeLmI87Chwkgk9YGSyx9BMXEsYNCq7FcFnZ8SwjZ2FLcp6I+ra/NqeBPaYF0KVdiEHib3m3wFtqfvQzmejudDUaiUkExccKYcnooo8JZyWRHPZV3Yg3S5GF7AL09dhqE/lEdvmhzrmPyZYx+NAkDQ+7ogomESLmsPlITqezTiU/RquUVOf0J8R8ibxTEnXigwLd2jip5qFPWzetj77Ity6Vaor/QfrKJbQ64qBWW3rcooyegWFhEn8j0H9KRBoUflYEQDlhl3VN2/mnUrkL+/xNIDVw6uNZBWtOdE1tgR+vcFi4ptqTGVBVdaCKbG6BFnC1BITh4P6PlVeXli6xWbgUD1yNNhPTtbNERJWxlUfwbF+NEgSgFvopj9RKih6ObT4lLIGhbsRnlXU/MS9SFNnmvG8xfHnCyifNalHpNlKLEoxvLHJzX7RdEdgNTxW32oAmZCb3fFojXwAOQTpANHCiASqmtNB4MUN1SDY8W0SdKRmDEbKaovyTuIxoQXA4YosLo0XF60/4qecsRiK6EuomFrXQXn32XyakBBmlmAp6iTCWnehWIHS8hyWTjF2Y4qkHUrIqHDS6dTCWuQriVKRDu2j0VfhBIsznSXdDTFMxWLCQXIvZIvHKXsuFOVm26BKGy7oIVoGEliAYncgoaLDnWMhQ1Fyhmfoqnp+hNli14cNULpEkqeT6ZOqj6lRHVKGuvTyEy+LrECLAa2qLmHpIbAIF9oQv3GPDiLMEgm0IgiXUCtGQhyl5+23bIbVMgZNHgaKxEBgRVoBDVwLocN0EdfqFeRT2I1uUhPaYFZS+bUCFUfNp2E1o4WlJ7pbEZRB+pKFfVQDosoZRXRMI7FURY/krc9UD3LKqafESgRUjUn8rxe1P6qdwM98o51INSyLErS0FMiFXoZIUCaNkLt40AfdkpUAwjEw0bxzffO67QvpF03fDfpCTX1CQ3FZEnVkVB8BNETmfLtooRMK4ynHrVV9xy6El7E+0QBrEqNlRTtoBAAVgN2PXRFRULufWbRxZ4+stPNTc1zNbcsCwxJ0xSN6OZV2udLL5jIFzPMY1HH8s6BuBNJ8cTW/SRVgGxc9Cj4ArKIugRVWMOfvKbY7vJQAOp0l4yA6NGWgoxSMRM5xFBbkS41NQUylLIJR4Pi+ULyjF56IER9EEpmjUcQhqC3Q03NM0LlE6lPUb8CRcH9oucnvVGeZDwp4qWCmvSib4kU+5AISONOC7iWC1jaJd6PBVThxUxtxCssFUEvkWBSC48w3xJkaDnMlyIALrlSFYEiVHr+alG1C7IsAEWXu5BVLbmsK8H8YijWH6EuIgw9AItT1MVV45k4rC/uBsopRUluSE+ToKYdYQHLNYMlUjakPUIj1Q1hvIsZK4Vm1evP0WuhUJ0b1XtHBC8FRYuVDtbcVKIYlUn5cCIivSjH3wYlyyGM49LC602G9SlYk5USMgzNn5Sqiw+jFFUj+Fc3+ukJL5PB7bJu1x27UHFs5mYPFfdVHdEFqgfVU2CROAI9nAKpzUFNI665kIHTIFC1ej7BStYY1MmTOS7xkuYyqhxdpE8vqM6DY6wyPcEvRDBSkLNjgZ5GUHFYj6yKQY94Ln0qWB5upsIMvUUbjhcpIKeCwK0HspkUJqnIUMiyH4QA+hlQREmRVEFqkmTRtKZ5FWXNgK6S9LAkN/FhEpYLapS4TR4nS3ozYYyJpDYAJDO/JULhiadGBS4KKoG6fDgrMDqdZSgPfCmZ0oopqDECvdQlDO3UkaUGcfkFk3hCoUf9X11QncLkVkoqplQzMLVryALdATTxL96CNBOTqOeA9PUzqemASKLjSRq6LhRWVIt+sbxJD/MUTUIkrNig/ICiK0v5UyIZXLKNOglLUmeBNqM83GLtHGcVWAiCH0MioHqskv2UesXU1yHD0Ch6k9Rb5eIzEVEWALsZh0FmfUkm40Ji7aSmAMeEgdUhHavcou1Exg7UDKw49mJVDegCE2pL1kdwIgaoxlShJhDdBaIqW0RxXhUflxSGRijYzBp4pmIVLRAICDSY1iOLV0qHUiZBAUv3mF1RPWj+qWrm9Y+CBNUIiRSxZpHeNUMbKCRaUjGEBEldFku5cESbzJWtqd56Q5HedcilhBS1VQRm6lJebZSoRlaePy6AZlJmYjTFDg1YNDvpEwp6z3w1lAMBC+qvaiRZFFT5OAIUr6WCn4UWqgjKiqK3J6U1L/odpn/Xaha9lk21CRXPOTKKUn9S5JKu6KkkV32SWOkSR/vQlVWefBaIlCbEq6JXMhECNcEei+aHevylSaqLduZimJT4pbqzUX1TZjICFYdR4fMF0Usr0BVRsSiRQEWNveh8KwY+0AxqVUHjASYxUm6jJbgoVIzryFo7rJZfWfIVHGjJincNb2ryRzlkokWrmmqWOXAMeE097lp4hKLVRqldQ4mq5g9NUJixqqFBWhmUCDtSDtoivqnXs+iDTPrtKQS+O0Qe/tYirF7TkmFM/3AKFTRzzY2WXDeiwlQkb3t6iohS6SQeuU1kJz1XrIjb1aBOAjCVq9C+UlEp56Cbrh5/APkNZ2ZF3oKlBLdLC4OKXN/XQWqCLqojMD20FZO5pEAgf5KSQ9GTnuXLZYLWpTfqFVFTjnDYmmMBOQtmaL3xki5iRLeDC4tQzbHQFD2Q9F5Wd6JJPU6L+/ueswDlUg9aqMBq4YrE7gJSjEriIC1x6IttQwoZtQbO+vh8YiFB6wZJMtFZ7UXecIJKqRhBU9QyiTGgntLnkfT1vcUdkUxVjbOT3KZGRSSVNTAVH1mOBc2HqlRic1712woPB5U6NwXOi5LJ6OlND6/v6WzjfpBmOQLUj0op9pZYLIHK8bcu2LKJQK5ye2h5YMZlLeXi+Vxx/USESZ2Eo0IeXrkHKB2H5O1GUndSVIyo5nKFnLgo2FBySQg9mFTvdcX2DMpjxbBfGhyruYYmekXlhy6DpZAPITPmPKQL6RFqUFK9VN2fMc9cQmbMQBTpDamYjBLdYuwooaPnQpRfELKyvjJtbUAlMUrHSHnKUu5MMocW9QEB3UhTKh3TfUTVaOUGr2wCUSKqtV6h2qAzzieACaWq5HMpFjUK/QuzYyncEwophaJSlfLsQhsoUmjQ1BOZHgyhPgOHFlV2Jk/vpKLwmapkEK8nHFVdsP4oPXSoKEQlTHNQyYvqVaQEYJW4Lk9bgtmGQdLp586y0IuKnitJjwuoV0Kx5IRKvWoa5lIhIo2VQs0yRH3jVBumiaK9X5pnA0qarNkERjNJFWMjLsWeBkXrU7WqLQM2UPUtjCqkcnEYETC92NDrjjK7HYQHoKRpZltFQtQTc/TXrWJ/FEMJE3kOpT1JpEuI6GJ7IaIoOBa3VY9nNEki0SQ1gbmcEqWSyJ99WLjx1+dH6d+BHmxgrRmr1hWJaSyLXcDSASJVg1fy+noH4DGAU6QdC56JvcAQqrphFZwniumF3g9SQb2PsLAGRvr6S1S/aME71zYvmrIIVDhbzxZIEick1UJSqmFrS5q+s5AsEK6irKtLkrpmNipsL9IGFYqOrLUHVXTzmlveR7/Tx1f4YdbyZfV8rjtR1mD5misujoBITFqmKIGHDPPWPkmLjX8W2BH1wEygJCcAeb6VQVrpn4Pq8YCuRHoNe4kQZvZwpLEEG6/00fo9q9T8QNKalDzslwVDlQpx0dVpVuOgVuj3uA6Q3MJJGidJof5f7JpWnm9Cys5JJMnnlL6pRKGxmJCnWC99QkUWNRa7EhYo2qQcqxZz7ZJ95DVPee6iqUXabicrKEuKSNJPaxOfUuojkYyzYF5TPBWyGGBUTGApJqAaBpRiEA4l70pKJ0mPvVET0PJeqLYS5dWvECApuEKgzMVZzMFEGliXlizQvjdaYynJ0m8xXrDAE85aO0Lh3KBvlVK7a7sk1aRWuBCypKe0w6BC3yRl47Rg25L+VdH+CFKSDyDEag/NQFzx44j0hwITQ0JEsIizLvHckzQrXsCurKafsbMD+gT9dEqkKh01/KkhU81rqWR1eX5YIpkiitwLjYSUFg1JZZ9l5KnayzMA0fMALDoMRQreNNVslYLyKQUWEFn9KJaHurdS+Q/0L2iazOrVi4LyqvFM1EtukdlKlpNw7CNM4a5TsJ16uojFsnjkPqv4vUKGslS5LM8UiTJBO1KJ92uCryirrYUUH8ECe7zF35o7KilnFcllptAaGOrJPxS0HeXcXl6qLDYj+bKy4kC2Bkl7ObTodRFDL/HnRbso1CSHzKRJGpNicUlptqW3M6k48vJABpO1B3Ht6JbqHtJIS7Z9EBEhzgMJEfQVarTY2U1jBFRaDUZ5RHFIIgtdlXq9IOAWIvm41waWD6Rns3GMykt0WVLvoFCuxaTk+6rW63l3+vW5iCJafXP6vaamoCMSABTvphjpS4AopMfpVfIiqKJMy5B69HyqaVAFxYkqjlb6fSZT5EqLOa2MruQ0xfOf3pYgQPb+D4h7rWSdTsaxpVd4Vzapi+DcCNz2xMFEJN5tlwr/owRxSVJQKZKaFJzJvLCltIIpeZZ5hpE53pKZ8hUjQxW0oahXICI0xaQym8udS698kVIeVXYRmTamJ+7Ia06kHFPFeRJJEr4p4xJQz5szVbiIHLVaCpcPngL5EmgvH2V55LHTeqdODLxj+UWXXRgKEEFxIa21w0JmW/Cqj7nRZno+tOI4oQ04JqhTQGJqUCOZJFWKZXJpIKnOWsRxQRIoaMZVPbjXdEyN+Od5vRhl0FJcjTTmL31l0LOZSXt5ZOnG9sH0uNoFnKAr0jyCWMwERNLnKZcNJZHIyldokrqkOY1SNuXhnHJs7JvFlfwkWeSrmR3W+ryiAMIVPrug7OGNqpJMhH0B1aB9lBUKFbYSQI3Mq3+jp4PKz7D3FVFWY4vGbAplB9UO08cSNwV6WV3KS2DWk4AQfEcrCrUedCxuxCPRs/zdPZJODROrzwaRdNuACtqtuXmi5aUKoEiDKKo9PlBTYCv8LWlmoEDdgmmgH24p9J1Kv4u8m1YjaAiK7pn6dgiowY7c7EVXJCqEP2U0gy6Mo6ucMo1MtBZQwTzJHxiad1L3M0BFO1sgRKdKPLFgyFH285o/W3DPC8ZHBnKQwx5KSIF6bxI1JA5taQqi/kZcmW1kPy7oqa4CeNNjUkyajsFbqzB7ZLdbqa6MyfZauimQWkiij3IqBg9F4YtjHX6lmlh3RsjlU50msaDXyFBUwomVAdbiBzSXd6LojgtkxP4frmbNCekKYoiCvyTJEhoilR1/XxRWiglEqmQVdRFEzY4zbIpy5J0/f3m9klF3qscoCvDKeZFOg9GzlgwtRqBcWyb0iq7qIdHyjWOK7SSTcWRR3gAVphwKAqeiF0jyek227i0HyTdfG8+JYCFVLD+OyRdLlNwZirXYJwonQiDV2qG+u1z4RxO4RZELVHdHQpJsMPL+VOkJpbdSytludmcqx9W9YfRCE3btCtwzOEG5USE7oSZDK+2rLIWXsGrHVRBFhX5q7z1RW6MUTHn0iwIsIDCUjsOl2a0eo1HFrkSWPUkJhi3e9Baq+Kg2O1KzMomkXMmeVIXuubTiQTHC7PmUo1+mVmd+NaataJmgBXDxAs+umnddm0MsPpypsJ9ZNM1WE4AHSF/BMTjcpn9BygJVfzxDxYAcuYuXXHuXzgLleEhpP8qmiKL3YcIYlJxOOypXZ6n01AYFt0h32FKBUep4UpiFti9QDMUQhKL1g6SODkUnyNBEdHNUGTvHxIHVXh8PuoBWiZSoNspRbwYmVAMs2ignFR091rEQiNE3dy2XokcURcPOyYg178ASRPE1B0DTFKiHey7KA5Mi0yy532rcXT9KGeVGn9qfAZl0tzkToSCJItufFhc8ClSimfpB1OkOtIhTWfI7a7BVoKHIIrBCWx77LwTamuL7IwkxcvlksEg2XwZ9lOdDVtCUBs/Jngw4BtmzEmdoLkfPdCYX7tGTRarOo2A5SY/bUHD8RQPr/bwUKf39Dfqz0OpaUD3aMwoxj6erMGU7GciCW6rnj6iSt3S3RMcATDSnRxaM3atZH2o9SmnyXXVXgKarF89Z34zvgTUCqGA7xTJA+diJ8pbXUFlCnRdG+dFirn36fdVJk2aX5cx5gRcoUGq7si6htkFcBBASBXsL6Lk81TClBm312EFqBiPpBaMY0jrrBz2rs+LJiV0OKlo5jqHRVJ2yogVXBoBpcEA6cAWlaKPOUzvG6FLLwhZMexfK/x7glY6lhz7WFlXwaHsiTRyD05NtXaUyH1GAdr59C/gjUsKD9cj+mPhE5ZovtFA7WghWy71GOetFEA+V7Vg1wcIxLvoigwgsOMx65auot42cYNIz39EbmdSxOtWM0SiQPOoJaQGGi2MZxtJCwDNJOmtTCSrQOI0jJPerZPqiXR5lAR2nXOcVoTm3VhINtqJiXlBNLDPxV3SIVvma/Q/dP/Cr3YjqsAB1roqakEodyVJv1WnQaiCobWCQjYAhurCQBZE7oAXGpdrbT7RKvUrAqdahKLgE/1+6o147XKxDWaT6LQjPSeuszWgqgKA8R6HNyAsviGOQYKvWOmX+ZRfP3omN+jXz44Rj50vXZOK4WTc9Ilv+pFJm/y7KlFZGLBnKlwXJWpJ2Re1XX+2QUtCCoKGpxS1OwK+95U+yXxNIdpwojc3y8CG7EOmw45iDFXj8QlVuCakDtZ/erKJa48XI7TGSEHYRmSX3a7qC8Hum1CIUETLIjA4rya+6lOyRptNqsT3K/WGxCVccasNApCi2dbSGJiKK6FBrEHHmUIoU0cHh+TOUwWUqMx6yraw6TcpOW+qLXGe5a7gYWfaQd174yEeBQVKsHysEXju+KlcRlEFAysqkjm0qwQblD4sis145YSacJAAzkEWbFzSriApzzkgyyMlJ6nhKi93f4xQD0ysOAxgrggXhWIVFYCwBRKgkIOmdUnTyO5RhLjQoysLC3LFjZhIm4pBNQAvdgXAMwUPFHcMx057z30qvlaSFJMwFHHJ6IGLFMX6wl6Fev0/qZcRTGWTd/5jp9U2ACckQGWONNdbAxIhVFXkqUhFfM0WmeKiofNZVpfNA4e0omekl5i3FqsvkVZQbt85gq0GZogvJnvJ6l14gWC9788FgW+WILv2woXQGygM0OdR3W0CPuyT1tQZpp4aQmgudjJ3uk4Hp+bjoQbCk/KLyUsWgP2W/YozxN885N+/mzDOijoiJQNSYZjAejsaD8fJ4ecvSyvJoZct4ZWm0NG6H48Hy0mhlNFgetKPxoG1t25jGWGuMMTBkTGMaayxAzJIkDd53xxgQgZmJyBgIQZilMG6sTX1EiJmtgTGGFWrDLCQCaxB3cBgEKXLkGjIJsYiCrEqHRRKOzEERzRlz7AxgYJiZWfylcsydm/tny7Hruo6ZWdixE5KZm0/ns+l8czLbnMzXJ9ONzdlkfTLZmK1tTNbXNo4e3VjbmKxvzCbi5kRd/LiNsYO2aQ2sf8rZ680zwbO/I1PqDXVdVkMGqqeRHiZVPpaFV0ihRS4MJiNkbDTyL1KswLhYWMpEcyD3lguAmeIkXDD7Kr+eLZ4WtYmoGCuSqUBUWaqEClI730nvaqJMCwstC0uOc00ktQQPoXDhUClOIEPGV1bzbt51U6I5EZp2aff2407ZdcrJO045ZcepJ+057fitp2xb2r19vH2p3TqyS4N2ZGlgqQGTOBImYWJHzIHCyEzMkdGoNhv/xaI3UU+CSXRw/YFBRkeeCokjEjKGYIuSw78NWCIQcy41Q2tu/HmuJptSVsr+lThT0vVgO20MIkROGbmzUlIGogfBECwZQzAEQ8aQtQRLAiJL1HRi5vNuOplvbHSHj06OHFjfd9/RvXcfuPPO+2+74/479h646+DRA85tEglR2zSjtmkAsIgwy+KVg7LoV6do/ed+VlJ9bPSs1oSO+fpJPVcbwBb+u0JVFUY97V51ksZF2Ju5IzvTKF5LYUguFeBTMehzW6GaeZ3CqV8nL6dY5WdVce4Q5ViFREk7KmV4BgaWmSezTZJNIrtz24lnn3z2+WdccM7Jjzr9uIft2XbKMu/mtXa2TtOOZhOabtB0SvOpm8/ZOWYW5ySsrPDYhl3YGG0prSY2ibNigvlqDHCRJBFFaFNI5STDLyGjG2gSQyYOrURiNoYULPacDJLNGOKaZO+vI9qSJwO0/j1wyZaSNEtlUR+X0jeA4F1SSEnAEwHDUzsMYCzZxjSNbRszHNrREMMlGq7QeIkGS+Sa2Rr27Vvfe+u9133vju9cfdtVN+694eDRe4iYaDgcLhkYEdZ2LNFpRdDzQ1U4oDZil2OXbMqUwKObLBX2I/Vig/LVowoHicl7Eu3EKR+AskDZl888vwgXl6qLXBMVo49KYU7CZSWe6NrQLuS2llImqXxTQhNqynBKBYsL9VCKfEzW1Ykxlgib0w2STZjRwx700Kc87OmPP/uZZ+1+9HY5xc3M0QN0+BAdPTKfbMznc8cpZRQ5Qb40QtCwU7bfEW/vX7H2FOIR6xOk5IES1FGUHBTZF4nKq/RmiMbCEplvkbhu1FCrKFCQiWzl3p9DVpN8VIgjmyAhAyTeJYvipylcH6LbPiSdOqIh3Ey8EyYRiDCBrDVta5aXm23bh1u308oOapf4CN117T3f+vp1X/j6jZfecMeNzBuE8XgwJhD7g7ukzyj2o8dYaj79IjgU1dy4XpOV9kOkincum9I0Iyu7x2w8W8KZQtptPPzKtt2GavjfQ0GxsLEtmHKJzlL495QbRlZCqCJSCiPTTAZMqBktKIylDkYRfS4A1jQdd7PZKhGdfeq5P3DBC55+7gvP2PloWttyYC/dt687fGjiV50J4ZyBqZBjeCWrIxP9P54ztcaiDJPJlpsxlzaBvyBEpx+VDRAXojJWMAAWWBgI6ZzeGEqeO2uEBap9XwUco4sTrSVUlrSAn+fRQtFlWf7BcL1ZBKE7Ct/CanuNtCY9eU/euaSzu3Ims1BjMRw1O3YMdu5sd51ItHX99qNXffbKT3z2yv+6ee91RDxotzS2YXYh37MQ/KV5p1CJSS46+lQqh9TPjy7iyrRMKfiJUk7IY2gn9BlBGkaWBwBWYjm6YP5QFr/HmLGUUT7lL1OdRXlqkY53qYw9pBBxapMCoargKL4annQL27luNj86HG551iOf9dLH/vT5Jz/XrG+5807ad/fGxvpchIxH7ESE05afHesVD1ntiGoRUnAhEp3OGdgwItTXwIQyRkpLLsXhEipZGJ69pP0cRTcbyBtG1skZU0xjirGg4nOrq54mNKIkiKXHomJj65xy/9cGhe5b1HPBQlpVRoU1g6bnCoGMgQm7hgGEmY0xyyvtCSeNTziB5kurV937xf/85j9+4aqLZrMjbbOtaRtmlx3+C9vVkiJem53U67MyTc0fRtUTUkKM9WJGZttL8YgimYxq95CFTE0MBts1CVN7bPfUTLVusp8oIEWptlBij0XA/UIZiM5gQCFlLXD1YG5gYZh5Ojs8Hm/78af85E8++Zf2mMfcexvdccfG6vqUHBmDgDeKCKcdP19IkWJ/ESlZNCDEpJfoz58Nc5GKOY1BGpIe9xgLAP8S/QvstmAPk4AeIp3iqdMmapKcaL9Tf6yxsGLVKFpvjrUX0dRYpDNQ9bn+N3K9OavCR5RoIEhSknQMdf6r/15rAPK1SFiNxqbmkrasDE4+eXzC6XTn7Nsfuuz9H7vs39bX7x8OthljHLvw3qRKMtM6FO10SxpuWNxtPeBUR2UPammFhh8FSoQMFW4jPYZAuk4YDLb34COd4YZi3IF0WWvAqpj+1Y1HNvLqwzwP0IWq4uaBRmAGMLAbk6NN2/7ok3/8Z576m8fjkTdfT3fdtdp1DpZIiB2x89CfRzZYhDk9i1LYsmo7hCorQ3E1SHtWK+ILqMgiLdiLKPqRhDIWVKUFKYGSQ7q037t+yyqjombAiwRNfzmnQJ9epvFT8UMWVryJNA4XLfKissdV5stELJS1ecrJWhlR+6+HkVFYiwgTHWtBhsRJ05qTT1558ENwoL3h/V9+54e+/EHXTZdG2x07IS4TlqmcMlIPulPs6NqpV/T3pKWbPEKldGQTCHFpl6g+u/TOWxFZNM/zi3BxNCRpxuhCpFiLsClvtZTNmLGg1EzneIoxqhMd1D1aNJ8uMmWtaeZu2s3XnnLec3/7pX94+uBJN1xNd9511AkbgFnYj94ZwgJ/oPjxWSTqQFmMIfk7ZPFXoZPJVvYqoASauqj5xUqCpSMElMOdoHCLp1xh5MEnZX/QXmx6MVJeIDxBPNE1gQR9TkBKaZQMgYoI+SeclLt0NofxSUeZZ61DnWLlomlqomS8ItqVCMYYHXHmMW0DA1gL68ehTICcesryQx7R3LT5tbd98g8vveaixi4PBsPOdfkRV8+6OvHUuypmYsV6i2SqYppXVpxp6ki6/1SQZFYeLgwbpfyueiOKcgJROhPXdKySMpbsuIXKyDB94KKHWRVnAUy8cAJNaeNMP6MUjaZBG2uajc1Du7Ye/1sve8MLHvbLd3zP3nzTatexMeTnCn79CRGHsR044sUKgClyLPx/skg2mFQBJiqBnhS1o0dBVNtRQX8Xb5mj6X5KYIhSGpt34MCrqkojPZNKEdKLNi9daAOijnm1TKRIHkBStCV8Oj4h8dJIxUZJljOZA6BSCtRJLRm+EmW5qusgY/zh6M9Dk/pGIbaWzjh9x4POdZ+77QN/9m9v2n/o7qXxDnYdl51bGuqreY307pTK8xDfPtQ8UllUuCk6q4L8JSdnFThq3oIXl3IYDLarHl+rmReffrnd1LVlMRbVBMj66FP1arXUZRHq0ydBh68Ya0V4Oj383Ate8rs//M7B4TO+c+X6xubcAK4Tx8KOOTZ+wiLEyv3SSH42pBAtFVTTvOUlLq/2myAPM1YeC9plv9K+SCWGkyJ3pS+RKdJnISosI0XFSM0QkpLQrsibeSIRSwmpcYxi2QTXp3Tj/BA/L0UkxXd4ZwsTm0W0SFQKQWKoxaPdil4cfsnBwHgukgmr1FhqGiNC43Fz/mNX3M5b3/jh137h258cDrYDhsX1WC995laxouqJvB9/ooYVtR2RFDnnBaUujIJFna5l0VuoNkAijAqYqcaAinJJqqMoGZ5SaB8WzCT8ZsREWNwHLxikysJwnXgzQdY009kmgX/3h9708sf8zrXf5dtvXTWGmLnrJJSgzpOu/NMWOYo5vzE+wVLJ8dSANZNboCRcxYpNvNOkrEs9RBqjoNSjaSOYMuuiBuoq707lUZak23X3o1BHKNhHlCLHQK0r0s5uUmZmh5tp0k6VGkIB+WaIctHJ2gY3RxsI9d5AT2MC8fQEqkpzQyAYAwJZY2BgAGNhDZrGNo3pOnfqiSsPe4z50Hff9pZ/f5NjGQ/GHXfHwlfKZamfWFA/RbCcy2spGWn+c3m0UOHPvZhPon8s7K95WA9adGjWp3O11ZUx2MVSVBw1ojLN65jE5kUbQYXCNbbdmBw5fseJb//5950z/oGvXbaxtj4HiXPsnDjnmIWdiLBjiQ9vILvEDcrUUIJJmWg9HEig7LeyAktJboo0z6TNMKVzVOkPUCnqpS8brpwCC9hZM/Sqbj6+OZG+xWggOhhoQbzEmyNFZnEe1uf+XyI7IOfjxkT6ePMT24nUaSPZd1CowO+UZVEMNBAddQiFhhlrAGMsWWOssU2DtoXraNjiwidvvZm+/Jr3/cI9+29fGm3veL5Avix6ilgMGItZX76pWZbSd47LnXguo6WiwuUOszCFiumESvRR0NaOMYuvju9qfS0wZyocF0H9UfsD0xqwKLrbP+LGtJuTg+ed8fh3vfJDs/tO/+41h8mhc845YRbH7GlmzCIsvv0TzqYSCj6OlodapoxFHiRiqJAHFf6ByTcOEC0SVRooyWmb0DCsHprlXrTSMSaygoraTrddiiZSdJJK6uwKPCJ9XgOjrEFEP0LFQMyDyclsTjSnrUBDRVPl1YEjKRG9NCaBrhqLKMDA8MnoVwRrQotoYYwxQGNtY2EbAHAdP/KCnUun3fkbH3jlFTd+ZWm0y3Gnn7QE88uxCdJ9PUBSwvZOM0ouSyn/IS7ZYlWrhFspPYqKN+Bt8B9A2p0ZDkBhh141dVXuej+kpq+ApgVi2WMKg0Cwpt2cHHjGI1/yVz/9sbu+t/va7x8GUee461znHDtxjh1zx05iP8jCIsLEcTIYtuXcLpIWEKgw83zTkE2iw4+r5y5xLQVUm4vn+MK0TOKvQPzl8XtYMb8yoAkFPGq7XpH8iqnUC8tdCq/pOLyUus73n4V7DiiS3mIg42S6DEsu7P23MefvD8hNAMrV8stMVEkfjbNzcEjqo/iS8bvCC3Ogovt/aUpdJtA2jb3nno12uvtnnvuTNx+87vq9VwzalaR4WKA0WGRTj5x9psfj6EmWSGcDQxeiCgpR1q9S5K0t0rBZY0cLlXBU5AhqvZRabyJ9M1wqY2i0rXtGNRbUnwt0djpvydp2Y7L/BY/78T99yb9edXlzx11r1qDr2DnpHLPjjp1j59h5+Q+H3lAUcTKcjVzCfikRRZCfG6+pifVlliIU5uyK0KyBB5VUI6KYF5m1JKXBZl6iVFkqxveD/Dfp7JP0RaRlGX8FcsCNiDoWFY6pA3DSsF6E41Re4lRVTeGLdiXvYkotrUIy45YmcU0GmVJCUCVol0RtO8rSSpRVYOwrOG1B/iX8pJeFmsYcPDg9em/7qqf+5IHZHd+942vDdsXvvCnzEIVtQm3UUNmqA6UbQU6sKrrBsvlHCgiIBg+i3W61pa2O2rONHUNqn8+6L6lC5ythpEpiqH3m9E/Jgrz1Bb94ATBLjW03Nvf/0IU/96bn/8M3Lu32H5wY0Hzuuo4ds3Nu3vn/zyzxFExPWrzBInlEKMrYKBJnpMwmyvp/iYh9ggwziNFzaFUQBHHyd1Osr7h+qLQ6S2u1dnbO/h/F8oc6DbIHSmWNxlImSKhdneNlEM4ahDQhTas0PaUkxMSJSheRLtFsbXVQC0cCKhcCeVJzDgpiMH9BEjCrCpO8AkWf8XlSmSzvmKkx2Jh0++/nVzz7xw50915161eHgy1R6tEvOBe50Swws1aZboUnSElCC9r0/gxP+XwWXjDFwMNaO6RF7oqCBb6YRekopVUBUGYGLUxZUinK0aC977qRB7t+BZp2Y3LgRY/7yT96/gcu/cr0yOoMRPPOOec6dty5ruscu1h/xv05Xm4RF78i+ckrnDX68SA9hB3JJSnNWjUuT3pa7b/IxaxITdQZWt+pRRkiUvXYOkJN1KMXqr+y9SvZueLFCunI1ScxR91gJP6p4jANHMLyRvx9KtUhFbN5Vi2iwyRSEQwpmsG8G4VjLZ/fOR6vqIxzNV6q4/zP+RsabyusNdOO9+1zP/n0l929fuu1d3xt1G5xzFQbl5UPPIpBHJXrrXJnLQKnteMJsm1vXfn3Yu4rfyxt/lsZy2HB1Kq0MyqrTKBHkNOnaAEEmvrUA1XYeniHjW03Jgeedu6L3vKD//L1r7vDR6Ygmc2dc13H7JzHYZwLjwxzpv2Hk4+9Cp0DVIXimRa9eCTf99TgRKtQLpqyXDupTbUsHQsvl9ImFZofIHV4M7QkQ2KOTfqFsQsrbEuyOqIMGpQ0GpTs7KPmo9nemYk4eI8n02ttQkO+UE0zeUnFoSbiS65Ii7pdlbOS0lwky56koLyVTNTK5Ds7oksWeOS6BI0x05m7/17+8ae+7MYD373x3u8OByssDqWyKrGdIjRWJEyVKWB9MzHKqSJFV0m1JfKC71F573FQXCzCSiKkIXI6xnGBIqG+ULITLRATlCl5vTkHtCyLDOzmdPWhJ5//zh/9j6uvHOw/tAnIbOY613Vd51zH4pgdi57KS277hf2fWZTONlucByQgPjzpAEhEGtG1GenzQIQQhekIT7/+Zl3zqJpNlE2N9ISHRcFY1q9UPqxUHnzVIASiv0sJo3sPbQ4t0vhOZq1lamGgd6vTTKLTe4ZdvCxFcqKbcGws46ElTLmcD8hOJir6ildA5OI5KYoDoLefAIHHvSIteBaywHTq1g7Ylz/zpd/ae/Fd+28ftWMWzn1QadWXBsj9kMqoMalxHZVyp8IqpAyo0NF8yrWxYnUgn4RStKLowaPl+ya1NxQuXZBqmVXbDwhVpvkiODYK4js327a8890/9qn9t514132rAM2mnXOuc13HHTMzO/b3mIUDpuAR0QjBiHDG2nxtJaKPKNR+3gG89Ht/kUnosYXwUHrIhwpkheMGUhw5ev1Iqm9TAoOoIXmRWialEWL2FxMcQ1VGuS9E8FNSSWtp9bBItbxVZFlZHfjKIe1Tov6nX0GUOUZs+eLOmAnmcSVrS27Jkm9K6zyeseGdQuM6iZGe2scyB9K/sLV2YzLn2ZaXPOdZF13zsbXNNWtbZbzQG1lT4euDwnGfqvR4LOJ/Kj1d9EQ0Ndu5lpipnnBED7QmqK+EIHogX9vC9iJySmoynhQ+GzUTJW5R827zzT/6jytrF15/x4HGYDZzc+c65/w6dMIsTAkFDRC6o9TLxKrJaybCthrlslLsnhITQzQdWioaVuZGhJoq7+Ilc4wpxz5L3vfBxeOabBEFYUVDT2qg4YFYKRSWn5WxXLYKQ5Kb6zASzU70ja4IOIGsaU9BzAgQSuchSz7Mq/qAFA83d4AqGFD0OIHjS0ncxQR6eXOe4KjDGZVwEaIXXbgAXCzFprGHjk52D09+/PnnfuqKDxnTVEnd6Os+Cwo8kjF5MOrSrrKaR5y5/QsEBsea+ulKNS7CRab0qLZnpIM1N6kLNuSyiV6YyFGmoPQvhBg0k+mhn3/2//yBU199xXf3N5bm87D2uq5z3DnH5OnZkiy6OLiLBcBAMkwXld6SMyfj2El1F1T6tkhJwFTqPzXAg5RinjDq0KPqHqtbyjywmPsWfC9UtqAyfY8BbDoaACncK+YKp+Ym2VWUkhzV2JfVcuG2kc9LBLu3CLfEsqCI08jgc8JIvKZGo9PKS8DfL1X95h6WCVLMTPIf8ijUm31lwg/K6UmqRogGjb1//8b5p5433OG+fsNnBu2KCMdQPVF+ItlCO6XuJcalovFXzZPeNWt1fj+Ohnqgtz4Jx8c6CIuUShwDyq1Oc6B8I0YzBxYNIRe8vEEzmR0970FP+L+e8fdXfmfSdZ2fAHad6zrnpxIszOziEot9YMRmqvqTCnvp1Fxwvt851bUclesNX9S8DhmaV3iTSF7AkgQtCZGXVIGRjiygen6VFlVO9fSEZm9rCBgCyFikf8Pr073lmWKChQvLopSQla4izRXjJiUiiIeKqDOq3m6ohF2KblOi6Ua4QWFe6bsDUYG9YT7CofTlKlW3bKeLdl31tDqGWJNAQQRrse++2fMe/fTv3veVO+6/adiMY51SxCsg24YIiv2RqvVWkO4qmWJuAhcJEqQ4Y/XMLnFHK3eqYznK9P2gakdHWUT47B11C3kzKn6Tur951UXtfY+7ee8BEpp3nXM86/z/dyxO/EzCVy9CavEEACAJZ5gE2bAa2t1FDVqSeD8pltLbNlFqaDQNKffPgHivh8BhS9wIlDmJSdWUM1QMhCT+qGSDGW9w4a0A/KyNhcQJM3EnzMoHJofUxh82ZGwwIIQlT4BO6CgH9klcZdEzjf2v0WSBMDlkKaSQdQp0Ij5IwcoJAA+nSWAWIUrFDoxmsELgEB+kmEp1riZi+DCyp1v8YxAhWmtb29jGDpqmbSyBHrRnmz3t6p//++cEe0ghAZeOEJGKi8JRWpW3kRed9VE9RXCPvNlbDpJCBzQNqlGj4kJ0GxnvKCfAPTu2YBlUrnmvzSJZNH8Ml1WonzIKgTSm2ZwceNXTf+8k84TL7toP0Lzr5h6OcQkLdY7YE2PiJEr1+nmeFXsOYuUVgdC0kQBgKkPuizGMd9TneCQxiWf2Z2lT8h1jKrs85ZROpX8kVPZTNEokEGDjw9sJz6nrSBwJUWPRDM1gCYNdMlrC0g47XJF2BDuAHcBYEibpRITcXGabMl2nyRHeXHWTozRbl9lE3JyFxFrjfwQtNTCB2CAEgCmREVDmmLHUqffqKkNPGdPHl+ChKEwC/6xrmgsSugQkpoRJzD2ObIiY8KbAyYiY5DrEGIITGASXRSF2cURLoLmXKLTN7fuOPOHUR//8s37rf3/6D5ZGu52bF1LdQn8Z5a+B8Km8/1OMZSyKNCFVChN1kWptRlBUFpamyfxXUY8Xu6spIUZ+1IoUlEj6BRl5oL4U2WW75AkYY+bzyYk7Tv+bH7/0hmsGR46uO+bZvOtc59j5UlREWDomF0narDL3NAVFSzUARjE8ia6f6EUwF8VgwAeh5kVa4hf9eBSYRJx5x6m3M8kaKr66gTWhhgQx3Iy6qXDHxsrydrPjpGbX6e3uBw92PKjZcZJd2W2WttjBEjVBZi4kIKeGHv6ctf60g2NxzPMJba7y2gE+dHd38Pb5wdvcgVv58F3dxmHp5ixW7BBmEHgyLvJtI5kmWblxohsBEGKSTG3O3AfFddadsAZLCxN73TarKaA2hVFFQtZBFV1cuBlZAOxBSS9CbJumtW3bNK21bdssj4bnPH7+K//ytNvvu3nQDJnUOCkjiArtQpLO5cAiPU2qfUqOHVQgCyfnSpbUUI89oDneSXZDpILeSxZ8WaaKzhwn6vsoeFyOSipd9rl1bvILT37ddP+Ow0fuJ6Kuc467jp3jzrELWCg5xxyteP3oKQ4bkiln3pHCJhrP7CLVWAoPNC8niEVjHukYZHA8S5lEHQexeDNIgaiqCRViiPE/YwwFu4YZzSYiYkfLZucp9oRzzWmPGpz0sHb3g9qV7bZpjMzIrct8jeZrNDsgGxvkZuJmnTcC1w1TTAkSAMaSackO0IzRju3x25tTTxu0zwFG1DlZP8KH7ur2XtPdeeVs77XdwTvnk3UHS3aEdmCExDkSxyIMZdSmwGFKykxhEnLK3jCnrma8hDLvHeR7QIgCmlnXv8i8YhEhQ6x0zEIqRbGoWJgJJGTAQjBhMiydywiztbK6MTl8+85fuPB3f+9jP0009tbiMZw+F83J9RGLVF21s5VariXdS9tki7LVCsMjUVkvhZQp+egph5hYN3LxC+lYivi+SFC5RhNRn/JDKpDHwExn6w896fx3v+TiK77Vbc6nnXPz+XzmZh3PvUhJgirCE7U5PxVxMCBCBhlZrzIaa6e3GKIGxdjR1xUwRMr+RKA0IchRqpIYu4YioA0iYwwRGTII+zMgcFOabUhjzK7TmtPOHzzkyePTHjXcdbIdDo3bwOZB3jwgk8PcbYLnwWfXgzFk+pGRalAdtjZIwps8wBINNMyA2jENt9NoF0Y7TLNCk5kc3OvuvHJ6y2WT2741O3jXvGNpxmSHJIjmIOIKgpEQUyg9nHBkVBeXNg5CmUwoeViKLJ3Spj6ZEkumnECy0WBhZJsn7SpcnIhgyFhjfVVqTACwWusPw8GgadrWNqZ53OOWXv+Z53/rlq+NByssTup4H2WJhMIxSj37kHLorghDUiA9C5InitZnQTn6gBNC0RHvpd9GLY76f8VyoltO3Sga2Mn04B+99B/PMq/87o33AjSfd3M377jreM7ihEMTyOKcuJhVIBocCOY0ixw9siw6GvMrtS7040wqNDecWzXTAFL63MU0Y0MRoQSsPwutNRbgGc1WyZhm1+nNw54+PO/5y6edNxi2tjtCG/fJxj6erLI4EQ94mtL1uWAsK/NR5ZAacpDU2CzZgBXm5U7EkQhsK8OtZrzHrJyMdivW1/iuq2ffu3jz+i9v3nfTnJ20y2QGxOwCKzcMgeJAiNiRi0tSTyuSf3NPVpXtPESZ+EE5HFCwGlcWKmqmZpLdTrBkyzGhQfdrrG8PDQAD0xjb2Kax7aBp2qYxwMPPOG7v8qd+/YM/Mh5uE+ki+zdLhMKut+BhRhF+Xppi9AwHi3yYQiu/KHfLO3CXCX291Aop4xRLVxbl5lQ5pvao0ChAiqIZBjDvJqfveei7XnDpd77jNmYbnXOd6+bdrJO5c50IM3Hg/YuLqk1WhPx8wCODTZm34rG0/JDoyWXO9oUE9CWPNE0wAvU4ndGRtZFIGIcIvt8j6yFWawGy8zXiKe06qTn3OcuPesnyaQ8fjgdmY58cvYM394ub+4JJPJKZl5Uo4WaWYqCwtk5AD4Qqny31tFOZiRhDu8Un24gj29B4J7acYpdOxIz4jqun13x68r2LZvffPhHrBiskEOdTmIiYXNASgiMLjaNWqyDlxrormmNAsucJZRyItMEcKOkeUqI4langCEbLcWqKPCD1BYcNPhgwfhGaprVt27ajQTs0g0c/YfBbn3red267fDxYZnFhmrKAsFk6jSCQfQhF2uaC4q4XOxGgCiywOPNftE0zysOLaI9bzQ+COFIEPaGSNiLQGegouNr1daxPV5BBM+9WX/X41x3XPf2ufYeE/Uhw3vG8406ERVwcvjOTY3JxBRb4W4Dd82SJ02Qvyuwly2iJhQp9bIKVs0ICimVSeSplG8lYhZKx/jloAMb0iICasx6/9LzXbP/B39v1mOevjLg5eA3vu6pb3SvdhGDJtGJsDpLJVRsyvpN1+pBUkEmehOhs5XwbAvK3iBeSwSdDpiEhmq3R0bvc4Rtkfoj2nNKe/9Lx41+5fOojRtMjOHCrm65KM4BpAytFskQjc00jBSJqI8AcR7IgDuSYqEiq60B9y4QZkj0W1ceNmqbkcUbZrx+9nO80VQr/GB/2ttKuHHei+eL3PtY2S9E2NGU2VznTujKKT7XJBl5Ei0LRewSVGAWtMpAqvftgsG1hGgwtyHMqjt1CgZwmQ32zNuU3Kwu48mF5duy2jHa854e/tvf6nQfWjvhCdM7Tjmcsfg+ODDXyvr2OpOB1UmB45KkuQgwD9VT7qawvNJxS0uGRe5DEUfKJSYgpZkFvDJ/FItJY2zS2m9F0Fdt2DS548dKFL9/6oHNG8wN08Aa3vo/YCVoyVs2fIvlIEhkOygZxYRZBVPQmF9PSrEf5NevM41rAI8J6ZhR5H47cXEwjKydhx1lNuxN7r5t9/Z/WvvXx1UP3zwZbnBmQ65jFsadfB4qZi5Vq4EknNjxEKs1KiLhJczOUapDEGs/qWWXmWpCQ4y3wvQAM+Vo+LjlvDdWYtm3agW3adjBqm+XR6IzzNn7l356078i9rR0kGz6hviVazrctg08WOPIqP8FFdvfyQLRQTeAmFBZAJaN8kf4RFZ8AC9MWFtDhkEO//WDazudHnnXOTzxux0/dsvcgi8xd17m5bwU58dE8UkCOictrl8/ASK3mQsENjshn4LXFM1A5pxDl5wE99WxuS7K/gcB4LNUYY2Ga1pDD5kHZctzwWb+04xV/tucJL95qjrT3fYMP3NR1E0FLpone+PF/yOArclmZEVgVUKlkruJPX8NifH5qxChNpuRlum+cMgOmFPhrnlP25TUNwWB2lI7cwmu3yvY9zaN/ZOnRP7IyXLH7bnBr9zrTkh0qniiFQ0/xvJNWkMWbLks4DBOOHa+/KEKcIrIlVWPS50Prn+ITj6JUQVa3x6sXJ0l+bmGNmc/ne7bvXhvcetXtXx22Syof4FhyAk3ifYBvBC3UBKpY7eI71bK01o4Wk1rKcxMleJjoc4nfKLWrXEIwAGDBZlCEZoGFf/bRf+wOnXFobY0d+xXoZO6NKoiE2c8GOfYkEmPrWEXNesYjE8WZV4/4z4men4scpsIKuNDXZ+pIOLCQhYAS6GKNNSRm4xBt3Tl+wWt3/tSf73nUk7ds3IK7L+tW7xEyZFvAIHLYoHuOuJGZ2E8Hb2AyImCyYixZa5rGWmMbsg3ZRmxLthHbiG2ctZ1t2LZkG4R/W2NtY00D05B4QiY4sVPyaDGRBUw50ZKQA4GGmLF2txy60Q2NefSLlp/4U1u2Ht/s/d7s8L3zZghrIS4lWXDSSzEpXnimzibMXZBmnODINeXY5PtmgSt+b9CpKHY9oPKnSA2Jk5IFqc0yIZwZMNZQNzz55OXPf//DRLZHn1TmekD5qNfS9tIBQyo6Z/XYo7JiUrIpDAfbpNekVSP7VDeT6KydZDuuETo5RqxvbaGWKxOYWTc5ZedZb3naV2+4mTdnm/P5fNpNZ27qZOaCWIlFHIvznXQyBSphn0jGQGARa5IMSWWLnNLFffNkTGyG07sF2Rp8gyEyIIswwTettQaYHsV46+AZP7vtub+4a+tye9+VfOR2JhI77CWGIJcYUFLicC2s+JxqC2sZ0lG3SZMNmmzO1zcmq6uT1dX11Y21jclkMp3Puq5zXcdOyBmYxjTDth227dJotDRe2rK8vG15eXnLeGV5MFymdonMkByoE+dcxxICWnI/WXAcSD1+fh8lmYNYtp5mjjvfrm52F7334Jfff3D10Hy4zXUiznXsmZ8IdYpH0UqpmygLXSVbCWPxnPuRJMHK/rwEqWBMTKwIpajnr5MuRGFgARiyjZ9V2HbQDoZtM2gG55zTvP4Lz7j+nmtHgzGHQaMoZVVB9tKkzl7+U1DVlDBKaWRahc2g2jCo4UI+TdTzQtb890Txj54gyUhQ6QNiOecj5qNlt0jZWCbplYERnjzu5KfSZOv6dC9YHHfBwzDZ+ZBjcdEcjH2BWjnYJQ0RSeE7VDhDpDwzJGd9Tw3lJM5NG0uey/v0ruwX6gE601jM1gSueeKPbH/xa3edcPJo39XunltnRLCDiAdz8PwKSDynIjPmhxHDijXWcmvmNF+lI4e6++8/dOd9++64/+57D++7f3X/oY1Da9Mj0246d3MnXRArsAgxEO2aRITEEBnYgR21djhqRkuD5R1LO3cv7zxu265Tdp9w8p49e47buWPXeLyVaEzcuo476YjYQCoVduKIRfCvESI6chcfuYO3noYf/q09T3nl9v/6iwNf/dBBZ+aDFeucceJEmQWI8p+PHhysRGwcp0KcPTmgJfXpNMs2ALGWEzYeEIvOqeGvDIkImIlMom35mRYbYwyzc4zJfNJt7Hnig5593d3fAi0DXBEzoX6rWlSSI4Lz4EH09tVnRJdWvipIR4320Q62LcoHyV5RBTetCAxckD2DioCqwQMpbeTiXTawk/nRP3ruh3asv+S2++8T5tl8Nu1mHU99B+hkLhTo2h6SUQruQlWXhlalzSVExZ9Vjry+DjSRgJbOPaWYtoA1ZI0xsf601ho4s3GQHnzByk/8/gnnPXHLgWvlwA1OiOwgeBkm8qhCLwmEoEY1BFCLxkwxX6f990xvvfOem+66/ab7brvz0F0H1/evz9c7mRHEANb7UCPkT0WMn0mT0vX1hfGpG75+8O5XRDJuhtvHu07ZccrZJ5310NNOP/Pkk3cfvzzaQdzQjOcsDDHQEZ49wy9vacwdwWD72Wb3I8y1X9348B/cfdOVq+OdBOvmXcfETKFmARJT1HNsmMGxjOo9rtnYTIW8xduULHD9ERc2Q6P1t8ZQE6gN8MTA5NkNa9vWDga2HTSNteak43bNdnz5tR97ybBZiv2ILEgToz5RpjgLe4THahJfroVF1vIk5BdhYae/UPqARW5MGanX9y0bIamTfZGPlF88neu2L+962w985dYbltYm653rZt1s1k06mYn4ufzcq3X9hFDIr0NRpFpOaQ3ZLDfLvlNzWkQQSjgQTVyKUrRJgWZu/AoEDMj6QrGxZnNVRqP2pb95wgt+ZU93r9l7edfNxA7UllBKlvO03QhZadHaGTYO0p23Hbj6hpuuuuOaG/fduG/t3pnMDNDapjGNhfXvzZsCitrkwiMsHOfVwRgid+CeHwejykoRYSeuE+dYnJOBbXeMd5++87QLTj/v/LPPPfXU41d2k4xlTjOZU6D+oGzdJY6crBAMz8Q0dOJj7eB4+tz7DnzyHfs21ieDrTLr5i40Dpxry4jNSFA28yK1TRpIlJVpoCJlK+Bsgo50E2G88oSMEIyxJiVZeOTMNK0ZtLYdNO1w0I7awZkPm//Wp5+299Bdg2ZAGU8q68w6ALj0a0uqC2XcLAs0RDrEoqeGADXaP0O01YvXABUHICdSRhZOVqzx7L6lZEKS9NGoNlcD49zkIbsePnInrU3uFRGvVEroC5OLbjHE/hikqJHXeHA8DtkTNdVSy5+1UJdzYGB4dg1C6gITQUxwG8m7L1kYErIGhsza/XLOU7f+7J+d8qAzlvdeyqt3d6Zl25KwatRZj8jBwgJprBlQ2x2h2245+o1rrr7i5iuv33fd4ckBIdda2zTtCoYUjQZdYIgqB0YySCYbRIARNRcOHSy00JyzL44ElVBrmoEBNWByByf33nPHbZfd8eVtX99x5nEPveDBFzzu7PMf/JDdSzuos50jJ+wpe5GBI0IEhpADiXgBx12XupUT8OJXH3fBi7d+8Dfvvuri/cOdIANyhpVRRbAZCZRvjvKJfsIuOHlclIlD5UwOoZqNUI/vfYjY+UJUWGBYmJhgjPgKCs6K9dY0k+msnR338BMec+eBmwxG7BUrhYFFMl4OPJSSRyOaG+HLxkh1hAiVUKUUjMhIrE3IgLXNKNem4QUiTIfKAFEnLhXrvjfMKBHRtGP1pPcGtnPrz3nIK04yz7r74CERdtx1PHfcMXkLGcfJnCL9oYK/s4G7ZHmuZDZ5dHzyPSFns8C8PYUjFLl69QWgBVmLBmSa1sw3DE8HP/H7p/7S20+1hwd3XOJm64yBBxkiPB71cR5REyKy3LTNaN4cup0vu/S6D/zXJz/wpX/68k1fvHf1TqFu2AwGdmA8VUQcK55tYkXCGEM2Chr9uNIinM9ejGENGoTDMxDoQphwsibKLobsZC7sDDCw7agddJjvPXrHFbdfccn3vn7t92+f7Lc77J5tW4ZmDKboqsOqKYmjdxAwoNkGHbjO7djTPvN/7GiG5uovrncdN8MwQ/T7YAyCSxnlHqAWKajYpVkBosQxiM+Sx0ek2UMxV4ymlSDNduMfQ2cPMsZYawwRbVtaceN7vnbLf7XNMielb4yWQ0lvzpB4GcClTAnRHw0oiFVtysXBFvWEcahfMFpKabDPqwznBUTbpyYz1gVuXxW7rTSNiL/FNGdsOf/w0c5TLlgcU8fJuYLCiCKL6IUEwuRSZmFgv6RiIufucZw0xflFBL9C4F4EumPVmhnBns3qj0RjTNuYtf100llLv/ru0885b8vtF7nJIUYr4oScCmGRrAQgFjEyaAZ2Qrd/b/Xib3zj4u9/6fbDt3YyHTbNymDsd/2OY9AsfPVLIEv+gQmQLECGAL9RQE2481mRaOhQVh3BRZ5NwJn88EaEXCQYs4CYAYNRMzSNncvaN/Ze8s27vnraNx78tIc99VmPedKDz9qGFZryjAhBDBA1hkGN6QiGCHTPt7rRzfih/3Hiw56y8t5X33bHTatbjsN8nsZwLqR2g0EpLzmJDJHobPHx5sJVPutg/X+KZjN48bEy/PTTEjawHnn175xZxAgLO8ew9vARPmP3+dYuJbd1IggYJV9QkPnZfs5Uhjj3MBiU6ZHZVUTSUSdUGsz2Q0L7c0gkiiKpKCDd+BzzZxfRBSK1BQCLtM3wbc+85L7bTzg4OcQ8n/Fs3k07N/UGFo46IRepwy67yJDzz7mGdMPFSnSzcH6m/YBToKMKeUQIKvKPN4w/TAw1lloi29rGUrt+hJ7+48f9wptPp4PtnZd3BEITGYGaDp6VcDywLa3ixu/t/8w3L/7SjV+5f33voLGjZixCLC5ULilYJgw/TMRjI/5OBrAkYasvpNCSAlhECtKwXyhxaO+VFHE+zuRE/AjOZQ41wMJCYkA+pWzmZtPO7Vo64WlnPfXFT3zOWefsli0yczN0Js12EqsFEU2RTkA47akt7eS//Y27Lv7wPaMdcwJ3zgkcgYWcC79XRQpE+4JCrVMaqMWtE4lf5vHqeKqErHuQ9cCVn0z4CUbw/TDWGtuY4cC2AzscNO1ys3z6mUd/4wtP2b++vzUtC4OI4yIs62RggaGEVvj2PNcyFli3lH3AJbut4die4DmcWbTHr7rxJen7mA40ChnyKP/MTU7Z/uDnn/yaO+/fYJk77jqZO5k5cSKOETpAhkQHUY6MUKbKtzcHqCQioqOcDSrS48tVfgBpIAFYQw2JaRsjczOfmJ/9o9N/5g9OP3Al7vuus75xcyU5IiqGmLhtzGDS3nT1oX/4xMf/7y/+3RV3X84yWRqMLJqYRJYmH0AQGDYGraXWkLXU+vLSf9FQA1j4CSIsqDXUhB8hDxq1Fo2BNdSArEULakB+kmaNaXztasj6etWvbQP/PSZWcGkrd0xsjRm17dStX3Pvd7/yvcvvuXN9l5y8Z+sKRsLhIM0onUS1ICzQ0JHbxBKe8+s7lrYOrvzMmhjXtN5WA4IiQiBMhULrHhFvlFqtvjMSkj5OCu8yUmQZZcuJgrhsYawh06BxjFOO237Vwf+669CtrR3E2YPiogoysgXlhKeVQ70IibRGhI6hZkDBoQShob5Q0a86lioyNoupUbibauxVFnpL6aTa9A688o/nJ245TdzyjA8LSSfO8ZzFkV94wmVApoQpsKetZYm3SNJBqtgWiTkIKaJIPWpZMxbGYWJ9QSiAEStEg9ZMV2m8zbzufQ99zIW7b/6Em26wHYs4KNPZFOgNFhZDYzfYe/36R7/86c9d+7lD0/1Lg9HW4RbHrmMHAUKBBOMXABmQIY+t+2VGofgE+TRPEx2EfDli/PghnBvxETDheczoF1OXTQYgkf7OgE1+jUxO4EQ6pih7h4/zdt5kw5BZGSxvuiP/cdWHL77uC885+7k//JQXnnLO8nw45XkQTyrPfzIelR3RoZt584C89Jf3nHzW+F2/dP3R1dXRlmbeOUjAzvySC+QdBCRNWxwFkwyfFRzuULQ/kxSFixj1CyH2HQGTM2raKwATTJgDE7Nj5k6E/RCH21O2nfEturgcy8SxoZHsbyVlnkHyV9OFMpL/TIrJWCybUDAoCUnpwO1RCZMCZ4/ptJYoxgt8fHtTR6BwfEx/aWE6t/HE01744PYFew8dJHIdd53MmbsIxuT/cYjiSiP7TA3NFUHAVRSXP1DZvONGkiyhEqt4BmcQ0cNA0LbN5mGcfNbKG//lkacfv/2mizp2hIbEaXFR5pGy4bEZTPbZ//z0JW//xHsuu/2rsN1SO040BePhk4imWGottQatodZiEM+9xlCDcCT6Y9CGSSF56MUgr14b5mFk4tHXRLA+Hn2+PIu/lxAAnnAqhsrNIGVRw4uwDHkanc9zJhq1wxmvf+eeb1923Xfk0MoZO89Y2mo7mqXeDcoGnpzAEE9x8AZ+6JPHj3vZ9u9+7ujBe2aDZfjIrHh3mCiQXRecJZQAGO3JnwFBKJPb5AulLOwSzB/VKDAx+ddasgbWGLNr29Jhc803b/9C2yyLOCotqGoF9cKOK6y9vPx0kkVPHVXa08YPGbmjqPT6xZCoGBiJFjvX/qPoqUDSUSkkUZgXfoExpusmzzzzFdvdY/evHmLq5m7qeCaBtO0iHBoJayQiLm7bnn4Sixu1YXA4P0UyRq+g5oJsKyU3P1hPtK1d28/nP+P4N37oke3q+LbL5maQSUIVYdcJW2NGk/bb37z9rR/5m49/56Nz2lgZLIuAA+iCCLQ2oMaiMWgsBqH+NAPjV6NfgaHObAw1JlgcGgorKpyThoCwIG1Y2PFQRbE+vUTKmFSCBkzVN04mnKthhfvvN1GRAE05ZGGQHTfDtdnhy2752nevv/E4c+ppe46TETsnAU/Kfh/w4wNjcOhm3vOg4bN/5bgbvj694/q18Ra4wPiVzHAsXDKzb5LoEioRgQs+vQQUP8mWM+UQ8TMgDRK9f5OBtWistRZmy/ISLd3zxRv/o21GotIEik9fJKZRVu+pBpWSxwIdi+0N/Vd5zUjsCdNmg7LQTKY6NYcAyvH+GAdgcRdFv0u9WNHx/AVn/7zZOPPQxmHH805mLJ2IOPH4Qcz3JJZwBpbdYBaneXfa9A3aK5oKw0wEoUXsFRIWYi01gGmtPXrAPe2HTvq9v3/U6nX27qtcMwqeEdBbkjfGJTeyoyO3zd/38f94z0V/c/fqrSvDsYH13PzQ2oXDpzF+BVJrxJ9+/rizNrZzsdNr/CoKQEk4+iIRGcbAev1URG5MmMsjkmqQ5xnRFDgcfXH5RexHrPUrM//PwySISzQJq4SFjcGgbe5eu/2S73/l6D46a9dDV7YP5piH2lEUx0wgQqbBkdt5vGyf+6u77/ju5Oarjw6XjbAC6CFZkk/sBX5+n9VdZ86MLtUfWbCfYmzTREaFRkTYJvgeWLQW1hg7HAyXt65+7qYPURTrF2m2hXpbW48CdeA7itS0BFlmr4xMAa880whKylR2nkkukeN1q8oziZdQapviOCObSQd+ke6Q05oweNFDXr15eNfq9CgHVCZI5pmYqahIo7s2e0v5ZJmuilK1SpHSWnIkZb6pRu9PJp0qrbVHDnQveNUZv/2uR937TTpws2uG0QpXcokS5qmWxm74za/d8if/9udfvvmzw8YM7SjGJ/gjqLFoAWvQWrQWraHWkDUYBHAlsFJT9djEVYQw6yNjyFJ+kqxBBgDDGSs52t2vXhP3XUPemib3n6n4zHhjXuReZmBVsxq/mEsnEZGhHQJyxV3fuOr67508OOu0k3dJ69ghuftHv24IkW1o7R6mDs/7tT17b558/4rDy8vWMecsGmG9par7lfTZetcXyonakq1jC+Z9Klth8iQjfN6w69nGGtOYduuO2Rdu++d51+UpNnQOIaQmU2fv2Z67fBFxBO2lrtaVgkGxKItCdMxLXXfFG90XJPWM7nW62TGc8H2RszRcft6D/8fB/cPNbt1rl5x0sRyNCnrDit3n8g0Dq7aQyiz1lJKbUhZ4kWrZz7XDY9e29ugBfukvPuQ1b3nknV/mo3vZDClZGSl3AjC5QdvyYfvBj3/qHZ9568HJPVuHW/1hadKB5qtKf/RRYzHwpx/C8mtM6Mps+E9/uIUpRZBrUPBHzLSsePMijUv0hQ4rSlVVJuqPjR4cJ56XP1opfpsJR2uAiMPEH7Xdo9/+Ru3o/o27L/ne1+YHt5xz4lmDLeicyxJj/51MwoQGG/tlvko/8Orj7r1t87pvHR0vm8551gRH12V9K6FUVcnlAHFSn1J3oSbipQ88gtMMAAqUNxMFFtYYa4y11hqYPcc1l9z5odXNI9Y0JU5Ai63j1QMseXiPKpFQk6m1geGCV4noaP4RheOLossUTkqaq1rmnYe+S8rEyuSGRCqjloiY3LjdNsD2uZtT1L8EzS5yigtzmnolYC3yoTId1G/Bug6g7Dar9fdhpmeCEjbuSU2DQ/tnP/hz5/z6nz7iti+5tfvYtCRdHqgEwTeTE7c8HN59y+q7/+1vv3rTxcujQYvlznE8Q3xR1xgyxjQRMrGGDNBATGoR4wZpglpf0iwoQqDKgxhUhXZETzOEAXbkRDNpp3DlWgSyPqXDywctQWCCJzyxhBrMX14DOM8uEjIQx9QBhqkDmKnz98K5btSMWSZ/f9l7vn/3Nb/2gz9/8plbN3nTkM0lXZwsmZaO3MZubl731+cZmM9/+M6VnXbeMcgof0RF64AypQ625cEYOHpwSeavhQfTUFCp+McF1qN0QgY2J09B0qyr61wry1tH2+6SOwfJhxG+Hs5WdmVHJtqsp2eGnw270xAgWymGrQaJQuSfqSaHR1Zu21UvBVrgDKdSMJIPQ/L0r3pFHRHtQRpmt3WwrZFxJ0d8O8ficpJEXHIxnDwDa54NzMTIJrJR1q3T4JGcn5PptYmqMb+pBgyjaezhA90LXn7ma/7XI+74stvYx2g8Lpi8oininLyC4eWXXvfWj7/znqN3bVva0jnH4p32kU628G/xJ2GoCYkNPP1fguwtksitolRkKyHSglWiZB9ZOkxKdqiE8oLVCYlppithK4meXJKkbRxtxAkmWS6B2AlMWIFzIniOhOfcCJiZQdgyHl5+5+fv+IcbXvvC1z3h8Q/eMJsgK+nNMsSQzMlYWrtb7rqUf/PdD59tdl/6xJ1bdjazTttYCUGEXSk+RUpPyyaCoUw1AqXoCxYK0fAUEDIi4ZbHXZoiuCDC3KEDbd062k3SRcg/zZ4E/dZPCoevRP3I5YiUR2L0L03mrBWQAmNIxKDvAqXSlzQ9B32vUSm8w1PBk8YH6CXEqABbkPB4sI146Hgeh33BwCL6WXDI35VA9fCqbY6Ol5HX5j2zmIgJHNpFsBDHSVRcxuF09TclmFM0FocPzJ76olN/+88fvfcyt76f0QSUT9OCmASWRt3wI5/6wv/8l9fvW799y3DcdXPyWRcBDvGwiu/9Wkt5UG4SmUNgIkgQ7URVhIvOokeaiPpAUhcVlslVKXHvSAd3p7GolEVV7A5ysDOM7/1sqskRZvqBKmDRWGotDS2GFgNDrfWgLhqLhghM0rluebB87/rtb/zY6z71+a+N3Fgsi9cOenCMSRy5jmBk9W7Ze7n7rb985GOfccLaQde2DZEhMdGWy+f5sISmsQwm1UGPpPuRSGjNfD0PGyjTYLUpR5k4CRF1dvtwFxHnhd9zcSlpmGpRRHA38K2SBTyKOD3JS0RQ2h/6pzEnRlSBEVKG74FIak6pFOWp9NwaoX2gVC0faQ0kbku7k13rgmCCxRNlcux8HrvHlCVWHmqiwlw5/FXwxhcvO2RyElimpGI6U/Aemgarh+fnPXHP777jcfd+W47cKwJiZ6JmOHwMx2wsNZvt//7Ih97+mT8HeGjGc9cRkaEG1EDSXGFgA+7SAK2R1sjASJu+AbCU0UujyW7axkmiy4O+Y9kpl2IMFUUDch0l5vHf7M3j1e46IJsKdgW8VVWecBhYCttHa2hgqLE0bGhoaWBpkIElNJ7m37EbNUsi87/47//1tx/6z3ZtBOMzewK9k1n8OiTI0btk/zX8+veef9ajdm4ccY21LORPLf/JOZTZIiTOD4chkcqf8oBJchSpC1Qq6LvMpRV/ukg+0DLGeDnaMthOijFXhAeqoUdFXInTBIhO0ZG+r53y76k0lPE7Td+wbZGDTVUEoTA1TCte1GcGVdFW9awRIJLldptjMDlmx2FCz0IuDRs87ThnTUs4DDgbkzDFGFCOFt2hmUxzYZEqjNfLtGyDzTU++Yxtf/ieJ63dag/eyWTIdSEIO30G58TC8oHmTz/wN/906fu3jFYMtSwSZ3E2zP2otTSII3g/gWg9O0z/L038osIj6uKhniGQkM9+iydeOPVYr0VO7W6OdeBQT4SdiJUWLHn4ImSXhaudBjkmOscZI7moVoOWxqBFJBggjFIC/YCZDbVLw9EHL3/PWz/4t/MDrW3ALDkulEmY3JyMocO3uM07ze+9/zG7T1iZbrC1lvKQI/kaS5Alk2PxtqceMydR+7MQe3KVSALwIuk/5dqLKEFckfDtOlputyvdBrSBvxqf9JcH9Aysjnsp9jnRec6lGhci3qxL9Hf2s7J7Poq5oCksg0o/XQ1bRrBIdPUsRDJqltnBX990ylF8PjjwttPmx1646s9M5xdeeNQCpUYCtOPE33MJHpjJEhMhWwLGmm5Oo5XBm9735GZztO/mDo14t5FszShwLK01k/vd77//zz511b9vX9oSOFXwCKef7zWGWouhQQtpjDQWjUdBSWzE5aw3b/JE7QR2qeS9XCzEDCMOM81g2B7q4rjHJ1kQiQ6kjmZJynw1WbCy6FTd+LNhtUs2M4/Qa1A2E1k/tPS89rj1tL4KMNJ4OMoXe1vHyx+/5p/f/MG3zw/YtjUuJIbEkGsmnpNpzf3XuaVu/LvvfbRtWnZijCWyFNmlnEE4FbRMpE7CmGqeI5/SOkwIUz/lW9TrEAmco3GzohwoYyNazOTCnoW6yFvgMQ9FE8shFTpKppIxw9sVIOnfSliml+aeqW1KwqhD6nSIllryUofUxidq3C47piiPYE+LDt4NEre03Csy+QXGqcETEaeAHI4qAVGHp3aVhHh0HgaE6YR/561PPHH7tjuumsMIO1XCg0jIMQ+smdwvv/+BN3/lxs9sX9rq2PkS1J94CCVoY33ZJgM/aiexkPDgggzEJpqon78p5zUoLMYQ2RycmPdAU3Ds0yLxoEOQMKTX1FswqjjWuBaiB6S/qhDkiCJUTEmKqaSporYSj/pALWgMtZ5CQCSd4+3jbV++5ZN//A9vmx4w7cA4F4nrQuzEOXFzalrcdcX8jFO3/9qbH7WxKsYEI5+oWq48gpFbZQ/gRZeTSBHOcykPs3Pax5GZ/R6VzHE6JMw0HizXp1fxsBJld2ClZldSQ01VU9tlHk2UxNEKnSFTtKMoXYB1UJW+izkeIecyZzdEFYKajO9FFkv+h80W54KDA7Ly3X8SV43g/VJkduk0UH2jKsa0+DBn0OtnUWxjjh6e/8xrH/WEx51802VzEurmJC5waXxd5Jhba6aH5Y0f/POv3/rl7eMdfg4GsoHvgtZiYGhgaGAwsNIGAppfolHuEFmpuStQCx2pCMyeuX4M6Cd4ZMnTRz1bmmwcAMRwXi+wEItI+wRpShpMmiiGAb0kI2hJLJBIcJUcVwyJIW7BKCfw4yzEGrRGGiON8eQ7MzBoIS3ih3Us28bbv3rbZ//oA2+d7jONNZLPb2JHHHAa3HLZ/NkvOPnHfvWs1UNd05jgYw5TlWUelc0EqfQHZfnF5IG4HHnkCyUVmp74ABw/KTmmYTNUm548kAep1N8iJKW5ko7HWcQ3hTqv4m80hR958Vc52Iqq/PoUjkXZyxlFphtJ7YTT9/QRIrRmNJ8rhBO+A3RCznlbp2D1KxwPQ1+HcKhdA1ga9rww4k/7ZV69cUhiRKRpzNHD86c879RX/OIjbv56J0zOiTC8oTT5konZGDM/at70D2+77OaLdoy3O3aGEOoxagzahkaWhg2GDQ0MDSwGATmUQWSoWc+GC+BNAEhtAj8CQ41sWGxkIIbEGk1zCz9ijViIhfg/+A7SghrKwKZinyJCsv4NRIqpIYOYCBqphYayaYryydaRT6QdQjyfzuYjMZ6KQIOAPME53jbe9pVbP/Un//TW2aHGmHA//AsySzcnNxfp6Javda/69XMvuPD4tcOdT3RRUhi/WoK9d8ZaJKVtR66iBGggikhjyam0b7FX5tCoEBHRvKPWjgsUUXonT//RFZCg/G/0OWEF3IpFi4CICI3OF43qjFooj0BQqC0Gg8JbJMfCLJAb62hqqbyjGgy7rgtFv0SUJcItnFG/wK4I35M8VIwGsHNllqW2ObCLvLOoMZhszncfv/U1f/DEe6/l2abAVGUyxAkAbDZ/+s9v+8r1n9m+tKNzndfgGWoR+sC2MYPGDODngdTGFRX8JqicBehWmCrLFJ2Tq4Ws2cIWGb5TBneJJqIubJoPSiJJK198SbsV56B678yd+meV1pLqqey6H+C+lO5pyTB1sVx0RIbE+oFj5+bbRlu/fPPHVz66/Duv+D94PBFnEg/T1x2moY1DdPAGes2bL3jtyw5PJ5toPPUglHwc133kFRgJgX1Ix7VAvOQ9Bkd7YwNfRYdWFMJiWGAjIhONGxy1Zkwq10IWDMb7HvIFTVr109m6UfqSVZ11L5l83ejRX42fBomIiZQiWhBZIT1rRYoyq14ORA4Wjmd1g5ELqFfiavtDzG96PgfGqf3M/ztMZVLmpP6sMZnJP3cmoKEEFq9gNdOZe+2bnjSeje+7Y94MiB1yTlMwA5MRD97+b+///NUf3zHe4dgZeMPfxvipA5rGtPNptzFHS03jI72oA0njXffIpT3IpEkg0QJvyULMkbgaHMFrUw3ew1MYh/JRkJ5MgAIVCcGCLWz5vqAAkSXTWNMM2rbxZ4hfly7x2cOpEm6fRHaHSTQAzs+aNWH9+4LKCtqQaUUQ6kjICW8b7/jva/51xyf2vPpHf3yDJsSZTyOAdGJbuv+W7swLV375985/y29furLNpJ6CyUWpdNgJmCSZEkgO0Y78IR0aHOg68dVCpeqF87GkEnGOWjsMbZ6PKMCCE0NZqGbuhEZPRctV0zJEeQyicAROz0OTuCxUpGemfJcHilbLpaq/4fGVywlLSTdQumUiNDRkDogoJ0/RdA8kgmOI3hbx2mW3tRL9DXa6mXOiWBdE1tCRI7NX/OIFT7rw1Osv7pqW2OU4vRj2y1sHww9+8hMf/eY/bl/a5ucTFMXvfhrR2tHG+vRBp5/8sp9+8lmPOK5tG3YSUxaNJJGbqM5aFP0SVQSsEqAl7DxZb0EdSpKtSHrKlvB7WBQFEtJ1srnerR2ZHT00uf/u9fv3rt2/d23f3rVDBzZmMm/IjJZt25iOO+dc5F7ZDPeLvqTJdY0VmscGVkiEGiPiZUzBNA2WiJll63jbv1z+N3u2Hvejz3vmUZkYsaSgCDcna3HbN2bPfPapV/zg6Z//+E1btpuuc1FAx1ReyEyLlOTAKgbeAcafhSYmy4XgraS7FRQAqV+O1rR509Hm8KV8T4sKhWqeKZVD8kznQlpziWcn5UkmTfI4jptBvjqAClsrV2BKg65im+rHIpYOypkqOIN6BmVrBk4cAOfjByO44mmQgDD7EzIICCXr/lkyzze9OVYWqhIE1x6LhLHGbGzMz3rYcT/76gvuvJJDpm35KLPwlsHwi5dd8b7P/+XW0RKzb5xsIMGgNdQ0tp1tmsc96by/+rdX7Tphif7/7Z/Z1B3at3nTtQeuuuTub3/lzhuuuv/I0U1rZDi28enj0sgr6QT9RsUq7JEDMAtrkgcqvITfGLJRF0rjQfOeL775+B0nXfj4h27MJ4YaP+UWB2JiQyS49xr3i7/1qO9cfvfakU20Rph9xAsHi0QoGNHkLMMcmslENhbYItlSyYnin0j2lxIiYWYv3azqzZoe6CWSCG/kgZNhRAn3Ksf7Wl8vQkATTXpS/i9y2mrY/UxxsGqlLvpxuOGEMiBtPUrpnXHR/Bi0eq7KKqFYoite7nAAf95KKkQoLtdUKqfwOkpieVFolfza7zxxtq9dOzg3LajzyvEQHSdOxoPmhlvvfet/vrlpxMBKqMS878vAQxHk0Fi84R0v3XXC0vrBuQ3enPmYr9mGOhMuA8k5X0DpZYpOgHLaKRZDddmyXtlgFiGVepOMkkSL409aOf7UlSc//0EkF9523aFLPnHrpz983bVX7rUkS8vDTqZxv9OtEcf+X6IRNscd0W/IjYlifAumqL0mAsvMoumw9s5P/8nJx//lyQ9amc3ZBxAk12vb4PA97sxTxz/7m498y+u/tm1ghQwCxVxCfoAY0kMGZOJ7hANYgp2sEIRJjO+4A6AADkz3JtopC7N4vUWWRahGSuWpgKga3CfFAgobtczE9puWpJBQ6Xtyp+Ta2tpKMeMWGtWI1kqJaEWjpOxKQY+H1/PYAFnTREd3TixbbwqmkLo0pM5ZWRQ4/spoNIhifDSa6JRMETYNjhyZ/NBPnnveuafcff3cNpBOUjaaX/G2wepR9+cfecvhzftaO2KRqEVqAmcSw8YONjZn51xw8jkXnDjf5MHQmgbGlv8zMTA2/Tt6fXnrLxu/zTbGGGMsrPopBO/o9G3GeNFR+E+CAazE76T0PeHP/pW9C7yFtbCNaVtjGgNjSODmNF1zkyPd5Eg323Cnn7PjVa9/9D9c9pPv+OjLHv3U09fWXTelxjaRFAVKZDJPqMgkME6+BuT56wH1DZNDS60Nhh2WxY2a5X1rt/zvT71rvtr4gjEA2Swi5JwYi9u+M3/608983FNPXjvKxhrV7Zg0P0yBFZxrZk03EU1FIBUfVKXBKv2bASh5M0oWISiXtxxTqR5mkyxmij9ooX8e1lIZ/63WlamXiZRe+ljo561SyLO6OazsbCjTc7jpba6mQaPi6VjyxIOVuNMxMYnLk0Ow2qqZMoMk2nVl6imILIyZbE5OPHXplT//hLuvYwGF8XEsAVjECQ+p+dtP/N01d319ZbiVmf043pvBABbSQBprB3PBM19ynrFw8/yQJElRKWSM90DF70qK5FNIVQKRs28hDPVYTJLV10ZHt1TJ2qwguPCV5AyAoC231hhrhGlyxG0e7ozQs1925t9+6cfe/I8v3HPKtqNr87Zp83sIS7AT4pAmEDme/qwIyE0gU/ql2ILapCYBGRZeGW2//NaL/vVzHx/xwLELMyGYYB/kZD6RgzfLz73mgsF44LoE1KYGI1CC4/TYpQlWctZTkXic8p700Dg9wI6dn2kEb55gUpP7ckg1DFQOKckdX3P8QTrTojAOliIkV8M08Jo6KXPDj+WOSLJQd1wmrCRhdDVbqr8W9wyD7Gyf97A8dw9cv8jI9wQI0T+S2Wp6rK/H4jDGrE9mP/MrTxzMxmv7HUAJjfW7HjOvtMPPfuXSj3/jX7eOtzFLVOW2hobeZdBHo7mZ3bV11/Nedh7PCT3gWudjFGwjPZtAyYhJBLP+dpiyiUonO4mhTgIqlN85ecro3S+yKyocORiZ2cY0jeGOJkddtykveuW5//T1V/3wKx69uWoNBtZEu7dEJ8j0JsW8CVCB51BZgwHEjze9sYBfkw0zL43GH/nWe7/53RvHzYA5uDaHKbADAftum5+2Z+eLXv6Qo+sb1ppYheYFmXjbqq9iyWOqZCQVFw8SyTNpTnNQvcT8nLRQCuF5Mq5XJxukCHyD1vjWZLMo8Cg90zKbOlTVUtDGkX00ciCU4jNl/EVytgNAyQNCpAyWUh8K/QYSxjJx3HC9yCtzlDnwj6KEIpD4XFiu0ol0kaCc3qjXcucD3xhZX+ue8MQzn/2Mh9/5vc5Y4i5mZTIRg0WGg/aOvfv/+jPvapsGYv0kkMiY4INmPe/MGGxMpo95yoPPOHvPbNP5t12y20U7hfQNxJQvpV6nWe2WXoQz0K2k1kIF4ifZ/b8mMGlPeSyaLVEKgw+iN2PALBuHux27lv/XP7/of777eTxvnCNjTGbPCaVZUcx1kSwBlTSwCAZwgWYQitKGCFaamay+56K/OHpg3jQmcTiFwY7EEYj2XtX90I+de+Kpy7Pp3Hgaguqbouw7hfg6P82Pw/1EuI3GGcp+MFNe4uViFsAYAyWFyNYuMecSFUtGccxQedVDERKRG8E0Y8/+Bqk5M0AmrZMsSK6vnKM831CbKlA2oYlG7BQLbSywtYge9QKCJevZw1mDFHdZikdfCCRIfPhIVspPAxWeAAG0jsWtbxF/7leftHoPZlMXGQEBJvO6KbB533+/b//63cNmJEKGrCFvoes1Sq13BySiuUyf/6OPgEmRN6U2hPJGW/bAJvciiMVyKfUKm0ISE0APj8rrL6hM2HMySVS4LiZtHNuqIVlxN42Zb7rpmvvJX3/Un/7Ti8kY14m1ns0Tm3OK1S38TKSLh0885cPbsxDP4/HaCwMxTnjULN2479v//KUPDdGyj1lM3G4mIqwedKPp+Edf+ciNzbkx0Rs+RDH6u8c5dls0W1OTGCP1X4p8wNgfaj2NyVHxMdYrIr3INk6i/dx0pQE1J/SmqJoxquy4FdtetWl+li20MMiiJ2jKZpvIamg1+kD9FntOp9VBaEgMxxQ9ISZhZBaojyWKshwoTn1m1oc/5IYw/rgvNY01R45uPOv5Z5zzkJPvvW1uW5M4S5755RwvNYMvfOPSr1z7ua3j7SJiYEMzIxaSHQcN7HQyPe64pWc8/xzpyFgTy5+sn427a300quZP8640zVHBYIkwsgjcQn1nYq8nJGKKlZcE5ZUglrIyVha1HsYAgo1D8+f+2EPf9qEftbYFN8aYHCqfyZlJn+GtKNPDm+C6yNGjBmK93Tez2zLa8skr//E7379p3Axc5wKlwNO7OzIWe6/rnvn0h571sN2TjS7MIvIDzFTIKTxXIA2WE+knDJ9Jx3Yn9Zaa6INBZUiQFuVqRBE9xRIVKyofd+k6hYlDHV0hJb4T0J9a2iss9RGsxgApcq+yPUkFNBTBNK1PWeSuHzmfTkoeYFpL5Aml4pTjnQ8ziT0CJLOD1WYswnM3W9rSvvLnnrTv5vTcR/saEhFqjb3vvtUPfPb/bhsvtG8i8bpBoDgFpYm1zcZ8/qTnPnz3iSuT9S6WFFI88ckNVlQln574FHmi/UulUn+VBUi54uIqKgN1RSnppcDjslBYbY/1upaifU2HqrV2/cD8mS85+4/f94PzafpZCSoQXwfCRUTEZcqhcOLZIHNlvfG+DT5XGMzdxgcu/pvpusCY1HsIBzHnbN3J6uBHXv6o6bQzxiBknjoBZ/f9eB4GGX101ovrM34bhMAxmVbv16mnMj06J2lrvnKj0nlI+RaCtD8oNAUbBWeDeprDDMEpVwzRTm36fUTjPXXeVi+sbJfCSCzATZynXgX7QOBdyWNtGHaysKuJQGdLhMXJkTETEvyUdDU7dgFiGz6ydvS5L3rYqbv3HNg7b6yGLP2WyEM0H/rSv95x8IaBHXrTnZDxAK8JADKoDWsGL/6J85M+VXowVkyFFtT5HmoHVYApFocHZGFvEZpSxCMH7VLm08RxcxpFV1dcL7N+vgGVp6Xfw9uB3TzSvfAVD//5373w0Nq6MVomxYpO6H9fotcXPnxRzey3TOuNBYRlabB85V1f/cK3L1myrfNIAEdRhCPbmntvmV944ZkPOWf3xuY8OGylViUWXz4MmFJvEllWISsBBVqjY7u0nNL4RCAFmJEUDr1FKowW2ip0POV/qfNJUtaUP+UCtUAH3gixsKEiXYkygT0ruVRCQNhyRcnzpHDhRg7VieN80RmmCq6PJBdm8XhMEmumNEIEcadqAiO8Hxj5ieClYygD2NU5Xl5pX/bSJ9x7nSRENBIl4FhGzeCam2/7zLc/vmW4RcTTgC2kAVoKakCLYNQuk43Jg87c9aRnnjXfEGPqOiByB5AjQlL2VxbpKtsETdYRaC6fEpTpW1XuzbnEVLtE5gqGyWmxoRe/sZipkTLWrWzJjTHTNffqP3jaY55w2vrG1FqbaFkuyt4D215YpIsHo66jjEj01IrNNsES0cA2H/vGPx86NLMwShkfZAzTDZH19sU/9vCN6aZgHiNTU/iPL7NCDUVZ2uuYu6g4zdCzyqhMVUI6DKFYj1igUurp4ynadaVcG+TeXkQDg5G3DxVLk90nvIWzlOIHQOVaRAqGth6NDSgySZ/6Ja+2SM4kAsmrXSWtKSw0bGZhD0syMPWfxKIsZmOMto/dipEVECIxjVlbmzzrOY84aevxB+/pjAE7CoMpit4Yc3z4kg9uzlatGVDwh0+JK4giI0MiMLzaHXn6C89e3jKaz1z0LC9k6rkX0x2fZOc+UhZM6psVnQpU0EnzcdjrsmtnhYIirjQZqGqqCEYq2QBlIzNkZ7q8Jt1cBk3zf73jJYPBIGZRpVzI2Jwj2Z+7xJpIHLHoA9JkLykxIlhqV27Zf+1F3/78mFrnXAyvIRKwg7Xm3hv5SU8465QHL002N/xJH4zEyKUPFEQhwSFKokw555FwEjrlt5RCL/0PA/1GUDJJpvDql9qXFNpaGpUfrxK7KyeFWtRbDvFzkVlkExcOp5kIVSpepKTe4Ji+NWlnyI4McbyuHXjSyMGDNGCfcamcC1QTkvSaqZl0Ml4a/ujLnnxwrwDCLq1oEjHMvNwOr7z+msuu/+KW0bIIR68KE+TqCE64Xlnh3MyY+fN/+PwiDTG8OTVp8COh+IjHmlEBuOl/Sty50LrY7xI5lkEU1UO0nbhkE/KUS65V9ArQ862GSLn8FLaQniNRp661Zv2wu+DCB73sVU9YnUyN9eqVCrDV98JlabWvDcK2aShltsECjQiGTfPJ7/zr/fs3G9NKvF4ixI6EZeNwR0eGz3neIzZmE2NCvFTARxMukL0wI8cjYHgueWT6bZ2y4ZBEVZcL1WCJTkEnfiabc6XkAtX7ZTQ/LLB6UK21L+S0hbIeyG6NCvlSLLVK6JStY+ozu+wRy5Gl2o/z3UM2nAmDA1/Ca6MejsnJgcMdKUvEukxFfBqFYWR1bf3JTz3rISefdHBfZ1ukLiuU5mK6OX3sa//sZBpdxmyQ3obll1y6BIbWJ5tnPvTERz7mwbN1T6eSzFqQhH76y8T68ypkUjSrBYoiU4QjZ5K/x29FH4aiJ/tlESqLtKcp37mYWiRrKckhn8nfYgFqI2QMiaNX/caF46VmPpuHJz4s7dhuhZqFixlGjsX2bgBQnv9GRIbN+M5DN178vYuXBo2PN0s+VTwniLnvRn76hY88fs/OrnMwos5YJ8nuMQ9OsjNtTJJ17CG9qAqIriiSDk9jEqU3siBRSs10GLs+96SwRUThQJ2lTLoPQe0dJSGTASr+lRBklIAuY+o0onKAkq2SC5tRxSlNxKpcSwbzYCjKtsTJXiTERKWp6F0erHaBtIbzxfVeNQL3/B949ME7KZgYpfxeAYuM2/aK66+64ubLlgdbhJmi+TzCaMuoo4uNwSZ3z3nJY5dWBrMJJ1OezPtRWsYKaylK0RLzztxDUcajKgFLSqA0Tj4kaYOzE3zcDolj6rPKZcgsG/UOkxJJgfKVt2UONDYNJmvurHP3PO35D1mdrYehfQarHSFMyXtASNTeInNTkNXPEMLQjj5/zSeOrM2ssQEgcMSduI5IZO1gt2u09anPPGdjo4OReAhL1JqK2pSSRW3VUCcfwNQhcC4nEMUZoV2LkRViCobLQhu0qG+WfOKpjY1UJIySSZVeKxA/JxTtTi8UY660EVE1q0hNoFR6KilcWkVbHioiEJQqK2Yb5Dcdy3fJ5UR0/uO4pelsiSxOCXWpkY2NycPOOfHhD3nIvrs624Cdtg0SELmO/vOyD3UyDY4MZCOck/plbzPVMXVd1y0NRi/9scdLR4Hpy9XALUbUCSUn63SORmlHHANJNeMvOBzUc9DLnBdkymEmxQTLMUmyteyFoNvUcBipx0n6oCh0jBWKUzqMrH7wpx+rHrWAZkpwJGFODF6JWFrKOROOqERMuSALakgwapdvu/+6r17ztaFpXMeeN8MxnNm2OHI3PfOZ5zRDcd08VNNSAOb5AcgrJr0JIRUzm8C/Ep2A9EmDpEiD6HM3U81X6bNDz6poOookA/Q7NACm4hOqyDXtIBXtBDRDUUP0NdVGFoT85vGFFGA5gvVyJAfrFai8fcvnNPCfxYXyw1sYEBGRNWbipj/wvAtos+3mDhXcJTIett+54dorbvnq8mBZWOIs3ih2boTq0Bkj65O1Rz76lHMeecpkw8GAo7tw8t5VO05yj4h+jOnffpNOJA4W5ZGqjvD0jcycxJX550gSzSdLufRfUyq7WBTFSMevGyqrHJLezZLEH4gPtjGm25QnPOWsU0/bPZlOyXCc2iVyRdIcRf50LAuzBXyeftqUOUNCMLNPf+cjk9Uo9OdsIWsbOnjf/JRtx59x9o61jXWBi3txOtvYRzsnFp9kVaoIaRCd8tJF3DuFmDlHpiOBlyqNlHJstmLPUdXFRx8RHepWuteV5Uv60abPiiq7Ckn7a/Dj0udsAQbl6BkO/gjFNiGovqQcrKAuEEmSLIWnKcMwnsmdygmKY/ogavdH/3Q237Vz5UmPedT+u9g2RlgndQgRyZw+fcV/zNzmuB1HDkqYZZEK3BLvbGJlIrMX/dAT2oElJ+0IviDK6mHUpq+oHUKKWbneqLDIRah/kcp0g6I30IZMUJpsYXKOus6xcwSy1ic7KV9LKrbq/JGSrwWQKcbwamDeuXv5kU889ZMfuXtgRuwLDCScJjmdINcJKL2PUth9dDQFwfF82AxvuPfbl1/7nWc/8YLVTZ8nLsYQLAxR1wnfj2ddeMHVV99O5DjFqgA6Az2uAY7Vt4kVenA0E+KI/Cd9ljCFtx+TsvP5wfl6xLIdKq0+eiWEayW5q1BR81KJ3GsxA4iEGtQNSLYSFW0XitxlQlO0e9YYPuylNsUASMvxY2tjTCazirBIp50LI9Csy4NE4GZlvhEpARBj6Oj6+tOe8bgdw123HJm2QxOyJ4L1gwyb9obb77r8xkuW2hVm7zpDEdMMx7sJ9Qn7lPPWmMu/ev1zXnJBa1oOiTVRSVlBvkLCnBpGdTsT/zHc0awUlRymI1JkUsbi3YS9iXsBrFoeYIvL3Zp2OBxu2TZe2mKppfmUuxkbGN226HxlSZ+GlStCeRP9lTz/caf8x0e+JNIIdZWnkVTpB/ngYFFpl9FgwQict0I2Yltr3/vV/7X/8C+fvvNsErKtaVoDa4jJdXLnLaPb96/aQWQXh+ttFSLiR95G++eW0hwlZcpKN86MVymOE1F83CiUVvkwiSWdiSw5eKPeXAtTjGKe5//UEEmtWpI8NK7iJbyxhKIVZ88TnXnWc/9dZHeYlCmhSSoHD/DPrUvyTf9LshlU0nGmMy5gcY7AT3/qo9b3B5hfb0YsbAlfuPJTq9P7tw13x4GECWEMsV6SDFXx3LnRAJ/+1Ne+dPE3m9FszmtM08gWKyqBaKabA48RFJvMBSmJknFYsgBV89RIsUg+0AEGYf23JlDIQ/aRCFljhIS584u4acyW5eU9x+95xMPPffZzn/zs5z1xaUe7cbgziaIFLb8pCysUTw80643pYQ8/2ZKwzMPTjwIcFDAppY9yig8qOx+v6gVKIOuLDaZ5YwZrs3ve+43fHbUjAJZGjVm2GEJsY5ZabJnPZTQYO5qDmngmcFjMJD6hWxQHl/qetGR1N6g4sKhGeygHD7mXim4xSdeul1/xE1QECid+vGa5pMeySSVDP8dQh2ZH4QobmHxEqvC7uj1EnuxLtqqiSjGcp/nC0RnDCZgStx6++w9+TCVLu2AxQBxA01l38im7zz3jYQdvcMbC24jFy8QN2gMH1r92wxdGdolCrLrPZjFa/xyyWBAOZ0fdcCzT7sjakXWmmZNZHGAu2GGEykDNTAKLZUSANGoydo591syaZNuivLNEUucjJYOCVAoK77//wI233XHJ5d/6v9//oYeddfrrXv/LL3/FC9fXOtMYZHtL1JoLFIVNnUMypxNP3r28NHLsIjvLhHy2VKokUkbFLxbNXAhhBBGJt0xsTbM8XHEy5VBpsKOpRQsIYNrBWKhjSTnEIdBKyIFAsJKH/RAwAZG/wQb+KzERL4xWRBHrEV0dssFLZFQXtZ6EPVPYR+dBFRH9MEMlW8tZmqgbj0brMUTiboJsPqaXpYkpTqGAQXrzyGxt6qfBZFQvvlvoM1zSQIm0zkBNn7SbvejqgpO02c8SNmYbj33sY8cYb25OBiMjhY2tLDX2a7ddce+RO1eGW6LmzaY08xCbFTQM6VeLiOu4I7Cx/gY28dsU6kSsnWV04qofiAFahW19vB6yy0y6KEg6rwJNqVmfOiA1t4Y+6y4RSoeeEyXy/RuvfcUv/sJdd77pdf/zlzc3XJKA5Aq4bj0pe8alvcCgc7R95/LylubIwTXbNpUafCEHNrKLJN5vyQyBHAttEdXboNabayX0XZgFHcMBQt61SaxREQvR6klMnaOaktVRBulwRmukoskjRD4i2cYUbhLRXolKiEP0keN72pRqUoyUVDkq2X0XSimF9G+p9LtUGQvGrTQ+LlQX1qIljwk6D6d4qqujIJSVk4XTOQTR4DCrBDXZS7LNAKLVmlz4mPOO7g9+sVLgRsRMl11/CcgYtD6KI1kR6EqdKeezh2RNYpGOisy2EsNX+Z0cDhCmnkOQCvkEkYKyhSpjyJJ+GU9XKVUb2TRBSHQAGEW7Hfbc3PFgNKT29970Z49/0qOf/pzHbq52yV+MFujY/KaBPtGbHbUD246l45mFKd0BJZ/16oCHGM+ByaaJWbtlCA1EfLK8oOOYjaxUIszUscxBc0MNkz8JjbpkWbLlfUkBK0U0hSi4igwxPJ5s4gDISG0fKdIfzpHyC8uFJXIXr5y2NE03HX+x70/ulAGDhllEra88FsqSIuIGiQFS4xN510a5IWbuaCLaJx9Izsb1AfRPs+BITZKCmyasZE3h1aaz2Qkn7DzrQWccPci2MdpiklgaM7jnwMHv3fHtUTtiZoIpWwBFTKX4psI+qrp8b+vsxZAwABTGkvXUMX1eM1G9EYuKSYuQbKCS+MBQH4oC4+MBff6R/180j4t7oPgXN+F3pQy2LGMKYmgAjqkxAybznr/6RxHvdwwpmQRqlqS1+XrgTyRirbUWiR4tWYkWB7nB/cCJdN47hiT29sm0xKQknJCvanzEWkybS2KDODsW5cvOQZoUWAEuxTmTxw5ivmrW3KRxl4jL1EjyJWVUBWXfGJWhUg4jlG0fkR6C593lGLCIaGVampn4/250v1b9w2rcF/UZ/qCVmP2eTdzzTqg39OT3ll6FJXO/RYoMOR3wAue9vTyVDZRi6z3uYaJmIg9MjMFkNjnnYQ9fMdv2bUybIRL07MORx8BVN15x/+rdW4Zbkyli2pF6ltisymCXKhAIgggz9wwJ+i2unpGocUh+45LY1drZIHCmkuY+V0fezbbYn5N8GKl9UDOq9HGjiDwE0IJAzvGSGX/jG1fec/uB43bv6pzryYMpw9aJVqy7G48DhRw7R+RE2TQos4AieD3GXaTOKRkfpWfFgjjKLASwyqYMRFZN58SRMwQhpxTMQgSWcJ6Y0G1KnFqp4NCwjE2IM4kpJpqgIDH12IeSlBO9OrUsjV9Adf+FvmM+RFG3RQ+WmiyLjHZTiYavWnRI2QPFb5bS6hsEYmHk8z/x2dTxpyimiHRAJYQTAqXJk/d6iqVfvL1xNhh6rXjnHXWPesTZk9U8zs+m0UTdlK646VLytzn1gbAIwH0RNw3lL54TbslEETRTEZgiykA9PC6Iw6McKAEoJyxEl1h/vjGIyCQWn79ZJuAe8DA/J/VGftiV23HKTzd6chiInUwQY3D0yNqBI/tPOmXXfM0XgWqMKRUZv8JIhYlsQ5PpbH1jFYZZOhF/vIcZLoowIil1c+GIgIlNIdLc0EiMNTFiMvAf3FoaIhsJYoyUg4D0O4uzhtQ10EihBGKWBONGpERR1ZwmFDiZl5Q5ZUC/eYiYdbkLp3GkSDAED9AJYmx2eupzIEy6Hz2ednrwpUdbI467OFQMKRZNSUTSKteXzBBsYM6xSVBpDLhWjjTR1SuXpqztsYSkczIaDx76oLNXD5JpottrfAlr2v2Hj1x/z1XDdkyhMgTI+oIYYZ2H1I3ExPWrHb5CI6WlIRvnwKjkkf4WBjdzpCUdBOniY59iN4WUs6Ky7bQ9MCLySEQm0Llz8KSC43LYfYJc40ZnOE56iNjxXMiRLVt3qUkzwOJMImvoyKG11bWjxlghFxGmamKV9JN+jVnJTBpTOksE+ijARNYo3kNg7YYcqxbURpamMzGtLUIiBpLSO8B+Li9+WB0lrZloL2RIIMIiVifnESmIT8ugcyWHvkF+KHQkwzdpzBDF15UTc8oHU6dps8BctAycSEEKUpI9cnaDVBNm9f40CRFURWwEGmVYzRJjaiLGwFHZGMNhkkjMc7g9Uw0AEcNgMpmd8uBdJ+w6cf9NHUzBTGFx48bcvPf7+9fu81S1RLpWYEcGbaW2uPJgXShvgu8wmMjWjoWJYBQPKIOMDIaOHRZ5GXHPCwtqmSWwzECZmafpJ+r5eNJsirr9mczteDpealfG29zEl9ZB6p0f/jyGjrtB/DS+ECVL++45sLkxXRptEaYs8BDlDOjzEwUEWGOMseqpMj3rPV9FOvEXM8sO/HX2yXANs43RGMmSN3AXIEZieEoM1WVFsBcmRjKogbCwBSlgT9ReXUY/aGUDFC8hHRamJjPFeA6uABFaaOKb5oSV0E8KylsfPkNWilPmtRX1piDbk4qqZCWVH1Ci5mTeqrXlaYYY5bLaRQaSZ/ABECYDmrrpWWeeNuDRbD5ph0ZxW0Npce2d3+54BqzoCybpbXk4mqicT2tGUJw0BGNPbXyq7Stg6vAQMeqwgiYxZUJusEqHUdykPD/IGGwcSCuMPJ8/YdaaN2Iv4wsBLrbj2ZlnPuikk/ZMJ2xsSuOTnjO0Ujim0tLfgYZuu/2uCU+XscWTV/xWYwIcz8nV3zaWhNY3JvPYlSMEJEJPqxDaRdEX2yPkhixIfPTa8qAZhImI8WbBQGrQWEOpoY8L783ETpsZYnR+c9LNQSfSxbpDyiyj3POnkbrPdFDPO1QSZ65woKrJjMCjnL82eoysUrdLokyudaSYzsc2TXSecDKbApHJ7uIJuZGahVGetkhBbOkpjEGtvgMvuF2JLw+m7pwzz5yuZ1kLAUHWArsx5evu+U5jmiTVQzgu476Xb2qGmRR4YAKTHZpQ5HstgxzSVVFE03CM8g9K3MhjekFukGMhFyDXdCsFhBw1RYgGI57tmmZZOY0oxSN4kYEhYWvNlLrn/MDTR1vbtf1zE/AP5VuTjJxAOqMwwT/+Ra+99oaOZiydkAHZFDsX90cSoqZpNjY2rWmf9ORHnv/os3Zt32Es2kFjYRKJL0BSyJNn/4uF2TmBoWZgxcE52jocf/DvL7nmulvHo9ZzPX1/YiJwBdJhfOwZoiZyR7N5B6DE7aJd26F9Y9Cbz0fOdEgZUkAOUkxAOTNFGShCJSeiMhZtJHMAMiojVWxFuTjzwBEoXNh8dR9ys5LiL2Z+SJT/FcvPaLsGhS9xUuhSIeqlzCZFHic4puGgPfOU0zfWKCReKnJca5v79t9z94Hbh80onD4mJcIyYk5WgkyiCI616QfBgFiIoYSywZGtstwtZvapHU+a7MRgZuUiIpUNKeWRalZdI/G3vaQqDqxyDQWFK4bReOdDqbpuumXU/sRPvZjnZKzOT0UqjUnhUUYdif71jDFuIlddeX1DYOmANm62TLDJULVtm8Nr6xec97A//qNfeOTZD5cNmh2J7FajbPrTc+rbOz+cZ3JTkjmZETUrxEzLQl/+6t59+1et9VQtE49QjvKCeB0TM4OREhBFGHmomJ+xaE0Vp9SKs4LC4CxHlgWYgKWIJ4Mo66bFBq+VpXBhZAAiogaKEych7VRyiFmibvTynGiRTbByKlL9bPJz06lFabJikEKwczZhNo4Qya0gsr2DcMBiCTA0n8937FzZs/2E1b0MQOlWwMyNwR333bi6eWTZE2VglNmSCDmEqQOH4QJyLKbk/Y78zwo45maSNtqJIT6q1EqEnuhOj1yihPygWMgjXZFYFgfWaDyurY9y82WH30iy/Xmoqmw0+ED6OsGCMGzau9f3vfrnXv7w885a3981rSlyZXOplQHGDDUIYIiFBiNz9933XXftLSM7ZGEjsQfLU2HTWLp/7eALnvWMv3776+b3jK/9RDfbDKKvgnxnMhEkHOZxks0dkSMhGSyZpWH7iYu+/ncX/attJ8PBkIUsTD5JEMcwIQk0hTxWxEbfc7oEmao00ezgcEyX5Ni51JadOfm2x/cs4uLLsJYaNiEhavqa3ZgrGM54zRuOoX/xgUFvNJmD2SSeKcjy1Fw+pe4jGBwVSs3gA+9YnIjzZO7IvXMMFS7nlw0w62YnHH/qyG47MOtsQwpq8TYYdMt91ztxgBExMapBKLTsUGq0tHc4bXSVP1A4MiRCrKKCrGNhmOkrRoNbVFmyZv1QAnlTgUr5PwUl8UKJ2yBKFOUNNI2Wk/t71TbD1Y21hz/43Df+0W9Mj7JqpyL2F/dzVb0p4yMEoaQdmyuuuPq+A/t2jHYJB4YKxH9GBprGNvevHXzlj7zoz37/tXd+0xy4fdYOrG2NOg0iXU9BXnpAC4gM0M25pUE35f/9Xx++6NtfWVlpRUbs4wpT0YsQaxeN5UwY84RoF68qjlWkoWBcmpxQ0h4tmeyqNgbE4ibydFOeTt85VEqtnqJP6/arAJ9NovIJgCbBLMrFL+X0IjH186JhSVZt2aIJpRKkNAcvs4Mzb9jvohw0BsGxJ7F+VMSSL448jTty++LFEnEgmvHslBNOMGydm1sbeHsJW5l3dMf9N1k0vriP1QVDrJTmqqLivxG/U48L8jIKv99IQck1lM1BdMBqQgIpMkZihRlen1W6VtRbS5qDIa38+Bwkug+X6kU/GWdEplDbDjY35ytbVz7wobfs2b17dX/XDJAYdVAdYR2LmVmtkigkn//cV+Y0j6go+3GLP5UBOrS29huvfvnrf+3nrvucO7rftSPDLJoIF36pUxKoyH1I1pmO3NJoeN+9q+/+xN9ceesVO5Z3uJh9E50p/GNk4vw9t/dRYsZqhs4EK2HK6olWRidXJzP0ctgoNUxe0TGTZUjJt81AF2IfiGKxJiYtFCm4yUCmjjTwnRxpW+6Yih4thuPMSkrOjRSqkMKDOH8WpDErhwls8sdgcazkJ6k5TJy1CCsqq1+Qo9lpJ57Is3xt0mU0sJuTzXsP723tgBXwGNLFgnYja/VIH1dlsEs8+U242WAJHDRisOrmmXpJVMqoN4tQfDmtZvfKKTKjtVI4cgeyuLaq9W0zYoysIbJ+V20ae3htbceOrf/yn3/8mMefu3rfvGltVWrVfWy+n/k8Fqa2tQf3Hf3iZy9fwbLzh5KwgA2RMZalO7hx5I2/8z9+7ed/7KpPdpsHxbbEc6UL9za7QGldHXf50G4RE29ZGd5w2z1v++i7btt/3dblLZ1sEFmDQYhsCEOfmA1ODmQE0ZYuCnEjKiM5uyhIBZhS5RUg93ziIwMksfQTCHkCQS3VTm2eiMBAJ9enFaIGAclmh6Qm30CPKERNN/zrFrOovkpQchICZEGWaH86onGAbFgaI75Splxy+E2mIJwWskS1YTJTYHEWdPzuPdPNnIeSNjpjmkPrew+t398Yq2QesZVSQFniCiqFlu94vEYuSbah6NqpADVqOmprPq1InifE9gdePwXJpX6wZIeA4f1OQcpe2cb2w6qZsBHhpDnwyixjAPDGZO3A5NATH3v+X/3d7zzikWduHJy3AyvSy2xTBCrtaallTM658bb20/9+8c133rFjvJ0dI078jCHnZH06+dM3vPZVP/hDV/z7vNuEbcEuRb5q3WnkdKcyNMuJhEiW7eCiy77x3s//9cbsyNJwNOepd2cTiEFDYhVmxNnsn12qFQ0akDZlYyEXvbEkIcY6LaF0QUAhS06WWaLPuvjI63q9L6bVc/0oOq8WkX90mqTTz4GfBOmfyLUkP2OnCYwRWcg6F0VFyGZEmnUYXX1zSiFyBG8wEQxsESVi8lMpz8kaDtsdK7snm9UHJWZpBrR/9Z7N2eq4Xc4T0OQALNmhIo6l07gmtnhRWhWXlId2mvyVsBP6Y9WkYUORl5pNuZ0QDGItKsr5OQpCDKx3nSujKHOEZTQA8JyGxuP71lgi65zb3JhNaXbiidtf9+qfec1v/+SwHazf39nGFhY/SApy9LrAYKuL6CttjZmtu7//uw8bkJobSWOxOduwdvTed77hBx7z9G/+xxRsbCPcRbS1oPZVStlcyjnHbWMb2H+86N8/eOnfDAambcZz3gRZA8UkhK9CEY8oF4IxQEKchc6Zl+wV6B72SyU6x0CL8Fyp2DT0xusaTdEnW/a909S8LO9M3WT+4WTGXKiZQNQENlum1+RjNzEP1NAyE56BsoTtO6OQ+qWF5BjZsDjkWjOLU55w7JlWehJDyVzZw5hxKCTknOvGS+Mt4x3TQ5EBE8cA3jPzwOo9nZubgWE1Eor522rIlB1ESTmIpDdtRMQ0BmSIDcECoGBJ7VXyhS8+TLaOyJ02iVDSYYDF5TOoIAeASIxBLNpSC2dBEJ/ilyQMTph5LnNHjshsGa5c8ISzf/Annvqjr3jGnuN3TI/I2pqztogNjTlAopwuUHmgRvcUYsdLW5vPfvqSr1x26ZbBccx+mzGDZnhkfXXH9i1/+64/efTpF1zx3zOwISuuy3TOImMmOeRq0jzg2I2awXTDve2/3vn5az+6Mh6R0Jw3DTX+dCcgU7HVXKpqZlnEhFEWggsbOCKiseMAR7yA/YBB7ZKIuvmU3ZKWk5byIYP7FVNNLbDMxA+TlORY6ZtZqDgXNJG21B84CKp80dJElv04JmkFa1JaUgYQKEdDqyM6KuUlKixj+CyHn+YkXY3W2d7OVfu2MYEdz5eXty7ZlSNzzlsBsurzwNF9caxZwDDKzJ4jZoSEHFEIYU4KFGuNObqxJuTGdmxoZIxhSbpBaBErVIREHGAUQeRxiuWiWUn+28TVDhgDmfhRDMj5ntBxR8TW2nYwWto+Xtk6PP6kbaefefwjH332E5708Ief9+CmNTKj9QMOQsafJoyUI1ki8pkvUERBh2sRyALvevd75zyLU3vTtsMja5sPOf3B73nrH56EM6745LQZGDIkncqUBgpHleRrQSnXSBzzynB4190H/vw///C793x163inj+8FTOx1mcim8aCAJcWCUZ6dK6a1X4cmpcQkMDwjxsGBW1RYJ5CrzmJtJXS69AmImico/6a+cVeuhqCayGjWHolJTQWp9ICgemSijS3UNcai+b5CgvIoKo3xQMT+iosOAVXvT8TbnkseFWScNTFfqHOzLStLbTN2znmOZ+KmeDT60Po+FBb95WaRakJoAbtyqYcRogZ2Y8IveckzXv4Lz9qxcwUGoccUyUOq0lVN8756ZTrU6xczEKmo0OQzgyJUFCTGDKJ20C4tjXfsXFlaHm7ZuhRefEqbq7zZza0xYcAtJAyNxaKAEAgFkK4jUcjNeMvxzX9//OLPf/HLWwY7nHMWTWPb/WtHnv3Ep77nnf9zesuO710+bUeGhMSJzjBMysbC40x9Mie8dTC84rpr3vKJ39+3dsvW8baOZ4YsqIGYIPhU+2ZMXGPxA9sYhF2eEJ4Py4Ahchz5P1EyGsWrktIT4CsOBbxqxCrf1EzgKwQiGcLPBMA49FFScb3MsvRNNHc08s40/6WyJkTixfdgmeKO9mxuKqsNUqQwAGDm7I0X+j+UKmeRXipfUmoC5MStjMdGrJOugQ/uzgQKx3Rk7bCBZ3tGh5JCjSea8ZO95pEniMZgdbr6ohc//YOfeH3oJjjC68eK3KDFlluLfSC0SYVuF7DYKIskDyzZETvaPOS6OXMnxsBYWGuRPUEUwyMV2gTFR85nglIzkrBYS2uHNv/g999maGSoAQAj927s+6kX/cg73vSG+65t9l49a8cIzYRkzYwo9k0kFxeAAyxtscNPXvb5v/ziGzqeLA+3zF2HUHITYIKmOYieg4TGkxzg/639Gz1/MJWVoWcxBD+j5/hMedp9qkSEiG08VwPFSPIFkkxakbhXmdprQg06o4I025xrfgzyAL7Ii2gUVSquZgH17SpSJnZa4TWiJlSZyor0WeDQ9bPnYgSWbZovimT2CLNoIYmUbjpBr8nCy0tLxCGTKdhFxzHlfN4dnRw2xqQoKqUkES3BoRpY1fsN5jx71a88h4hW908NmpB6kmnZiHNLUvzpgoehDa171HipDZNV4lyBiXEhQAbBGD8whzXGDEpOv5TJhknkppRnZYWc7VAB6uZu687BG9/47iuu/s7O0XEiwtwdmhx9/S+/9vU//Zrvf7Y7en83HBt2OfotdZkSRaGoegMCM7fWUmf/+gvv/9A33zVq7bAZdzw31PjnIfq++A9mg0BJkulRVNmkUO4oiBdUDsZsxKrQ48RI5mC8TXEOoXfe9P/TrEEXOZVusKRRkPSUQgmGz4ElUgSnETXaVyT4jmDB7p5+XkzxAqVVV2FMpHgDaeWZyMeM684Eh3DlqRecRVnn0Uum2+bKHcFcjMktj5f9gSqcNXf+UJ13s8l0HbB5XQYMs4/mRmwtSnRDjInBfNadsHvXOQ8/Y35UrLHGkJg08s7GeGEKry11M+EhqV4LDmDuFWTxsYnC86t0Gs6a6+RqqnOCNCs/si3rny9Ya6K0IM65rTsHF190+V+8463L7QqBurnMCe98wx//9LNf8Z1PzzZXqRnQfFYC88lwQO/QSrHK7EbD4erRybv+6w1fuOmjW4fbQIaZQf5RsBAbnD5EVQJBBesQbAuDgUAQYWSbycQeyVwRyTIORYdU3txO8ow38TSz2DfW1VLWJqqNqdYLUq8qGrQ0mqBQzPGbwlNUFs/2JNKpSmimCljWfxapdYmaP6M+jPLwUIOLYBNPGtdKPr+S4qAkkjDdaDBijjlhkjg3ZACW2dzNg+9t3jZYxRVJeSgGAaOncgmRNXbqZs984iNOOnnn0X2zdmS9qzdVSkvRrFjS9rlCpflH9OXr7WILKtsyRkCoxHNL8pTun6jQdKiMoFowqqwto8ASLDwY2f0HDr/6Na+dzeZbR+3a5urO7Se8761/8ZgTLrz8P6YAmpa4y1ThSOxFZuplh4Gwsp24lcHwljvvftunf/d79122bbiNRQjsU7UpBEIixcWknguFal5r6j30kso9zWTIJ5i2UQnafHDy7TNYkASSdC9VDGzBTEMpfdNW2VK7sisRqaDcdRt9AgOLO5bU0GkZP7LjWGIn14OVutFRdPT09p2nrXn4IKWuUiayZdleEq0FE+7EOuLWNsw9Jm6oJZz3U4k4tg6TS0C0lJZjadV4diJ1xM983iPRJEQ8G1YKKWuY2FmqPNgi2lztJiikgrJgbagNDYpPmK0ile2svk2qjCoVv8WGmVyJUt6sCbUZswBkG7z6V3/n+ltu3LG0+9DGvWeccu6H//LvTsTZ3/7cxBpDRNwlV0zF2k9fysa4CFp3kaXB8NKrv/XOi153cHPvltEOF6YZBjCGLBBMq0TUQDQ3CuEOxnEFlHNM9G7LR5elHP6tk1hzNkXOtvcFYDGb0GcMOHJ9oMMC1IqQeh3WWypyprV64ejY0pR2NA8kAI5aRh3LIiVMqrR4orx9y8UMfV7Eh4OJRToWF5Jd+kmHfnzoGQ/eIzgIIBgk1tg0sZMYpeCRbseOHeerlEMVRdcd6sFkRc4mArpuvjxsLnzKI2VKtlHYGcqeT/skFIOUwhkhjVcppWnEKJ8Ek0sKX9KqZIKaYQICqW0mpdz8tFHOAs/ZcpgXtiRP5V1ebn79//iDf//kp3Ytn3Rg/a7Hn/ek9//J3+KeE6+4ajpaatiJOOV3AqiBVib851kIi7E0psF/XPqx9371jTDzpcEW5+YI5jFel2hFgqmczhGIKAtUqIeE/D5E/wUypdVIGNMbZH4pi/NWiIG3nTGQLAVUu0fmgonSYadHX9ch2vEphcTrlgskOjO01AlEJl5JH6Rsco2eQLVysEipFTlEhbSpeASVyhlI3bmS2ps4Z3rAd2QqkReOwgoMJqVxgAESr99FkuJTCh0Jkbekk9viL2Uq8CRRMYoc93LenK2ffe5JZ5196uYGG2syP6JyBpXCH6P6m1Si+6NYhQoh4dwixe2imMJWTjwks4JEexIoN8TMfwFVBONst5IPh+yCzsIiW7Y1b/j9P/vff/fuXUu7D6zf+8Jn/PBH3vqRzRtPvOHKSdOimwl3xEzMxI44Sj6d87QBxQAQkKBzzlIjm+1ffebtf3XJbxvrWjNi7uJWZIzPJA8JGzGYoLQXSR4oirMuIl20I0ohzSkUUWUrFHa1LEgbPAfHMI7C3eyLRtp3jgq6owEqlKXw+c/Bg1ho0aYcsaMdQyMAPP03teRpBL9QpVjZNOtQE6lVw1A0DFEJRQmxCASiLFCJuVaBD5044sGOIDFpJEzSOUy3GcxUhhVVDIPiENBfQU9+Ev3k4Tv/dVl98tPOGy61R47OEgFashpfj7rTJpdnpdkrCNoSrOQY+dIyVnLp5TKVWpCHv5U/YwHD5k1YoNxfCMS53chlF+IlFmJmY2nrjvYNv/vnb377H60Mdx/YuPtXX/k/3viLf3jjxXTgnmk7Muyy51eowiTPb4XEIMobDBHBSTceDA/uP/yOL/zu1+/6xLbBDhHDmewKA+P/jFSCaiJ0Eo4iGfR6wS4HDi2SfpJif4jkWMvEhownPDA5iCOyULHlLMzskmd59jiIGFW1gKrHm71xCajGofoSXMrSKM2qCb6jyIskidvU+pPSnKK28q62hDR9kpqMrwld2tIrRA55z9ZUKxf4QsD8khtMLvKDrbbv+uJXjWYkR9UrlLUrZYpPOSpMwcthgOntyRxZkqc+8zHUEcoKrnToisNwkar1Qn+IqOuRQnimgMXYfKRVDAVlJgaE9rVUqHS01Qp+HFjgy+BHcbF0cuyGg9Ya+j9f+4dvf8+7l9qda9Mjv/+aP3ztj/3mlf81XzsktoWbp7mt5LiXPBKLK4iDuYHDfMtgdNNdd/z5Z19zy+FvbhvudMxI4mYYkPGa4xgsYSKdA5pbnLx4ChvPbFETvQWy7U5IQQsa9UQ/Dlx5JgSrYoHUVkRqCB8QpTokR7muV1GCWMDcLnd27ZYvURaKRlN3SJH5NaOpN9ySrLgvRfQlIi0JByTtSRnnXZRsKsBRkRnPaEmm91zBHgFV9tno4Qh0bj7P9gWkmmiRBqYxRnQtH6rTPJZIz69kr1KfvkvT2eykE/Y89vGPmK4JDOoqs0JVsmtl0TtTNY4kzVHL4kRixfKVZGqxcLqPnv2eBt7qfTvtwYqgE7txYXa8dedg392Hf+lXf+MTn/3YUrtt6rr3/Mlf/8jjX3HZv83mUzSN4Y6VZZ96bQmmyKSyqLpOBLxsR1/57qV/9dXfOjo7sHV4nONZ6URuAWtSdrckJ1itokxalYhpR7ktZbEbAjFNFwFIpgdpap+dFIVZDIsK9F0YHxYeJaN26ZQhmh4XFD+QTe5KiLiSSmsijZA0xSkFVIrhnomonmfE7LSK+VZUXHoEVWQ+5yYNnGGS/DrK5Z5Y2+9Hlx7SA4xZ1+njLKUWdcSDNhp1Kb6cUBmEolIEkoOGt3zf5MnjLrzwuBO2Hb1vbhpTsJJLt8Ik+kCZMojKzU7qPxf0YN1F6DCWnM6FcgZ0DES7mnwo1Wj8Rd6W2w3aZrS1+eLnLnvNb/3OtTdevzTY4WTy/re+7wfOfumlH534AtPNKVpPql2g8kqx0UpPmIwM5sOPfeMjf3/lbxtDo2ZrxzMTh+8mZGX7gYQXZNrshpjFQgl3NILOzy2U8FXTKjgeWy7uThy3bRbdKoVNN4T1lpaNmlKQLXuD6DE/xcqKDhX9MYYw5lMnOtCocC5Q/mxhRJFHKkBf7FRYMBdrTMfrLuRfoex6YjJM2gvC1hToowitefAZKQLkMvuWRQkyfE1vIEQ0mW8mux49nWMnzbAdDkaJ3imljlV5GYvyU06De3Y0f87zLkwIndTDvEzWQ3YaKmbr0V5FcsaBRktl4YhQqGwR6mTy+JCiykpOrVplZhpm6CGXQISYHTls3d4eObr5J7/3zr94x9sdy/JgmWD++R3/9JjjnnvJRzebxhJ56wKpOBjSj5FhENCBxyNLM/t3X3nrv1//Z0vNssXIydz7LIecCbFEOl3DxE4vo3ua8+Gf7mhCxmGRhvfimaImm7UHTWbQYanXDBGXkqWGKhC8IKVIPcpJ19Yo0m9VbUqFRYj0PDDqhA+qCNyVV5RW3/gjWHozfXUM6n4DmgOLevhRPE2xf88cC5XqGGrS7KWfEtg4aOFVWujGZJWZkuN8HjwK2bYZj1YkGyGKtrjxjPuY+JctJILn0LzbPl564pMf5TYoGD0XiXN9DSWU4C6vXOXtGeG0HMSMinWUjJ6UD6I2X6Qyt0RzxtM6jww6iHY79U7X7NgYbN3adpv0sQ9/+k1v+ZPvfv+q5eEuw1Oh2b/81T8/atuzLv/UZjtEzmJVHWtyXNfjKSKwI8fd0mB09NDme778hq/c/qGtg93C3gzbxirUgpqQQZArAqPNA1M7r/iUUfSdfaYNdEmgLYvDAAI5DSBnsHjAj1UjH26rVDqIHh7TS3lHYfqTdO09cQBlnPpYoz80QDU+iMayMUQy/77EAEZpboMUUpYD6CiJTZL7vWhnT8kmqBQlIXmWLVocwipUIioy/frilKOyun6EWYkTossUMzd2uHVpC2dcL+mUEoXXlRKLiMgZWp9OHvOoc88660GbR53J7owFIV5NGyir8hVmA9IiCegBOhJ2kg9OiGST3wX3XxNLg+u9DrAUlL5gKXiUmYXYWrt1a8sz+tLFl7/tHe/+1EUfJ5Ito93zroNp/+kv/+G8Lc/6xn9P2pGR2KeLmqgRoK0dcmSEQJiXMLr1jr1/dfmrbz185fbRcUxdsOBBC7EkNlSeQRXpKwKjNIxJReAEhoQMkOJJkPxAcneFnqbP675Mdp2BTxOK0l5mMT6qiTNRi5W8rT9Tzey1HCMiRWJBbuqpCOQkUfPuUhNRpDU2JQSqQE7RggqgMNCvwiSpbkILL13FYoQhKVdxGOakQZlUxiw6xzntJxxK1vB1A7O6ebRz3kwtNOTJRBMG27ft6GQerzeieFckn51IVN6IXbIBpjR96jMuaId2Yz63rVGTlcxd7flv6ZKelb8OMj5W2CihKHiUz6CCUtNd0yNyon7HXtopiJf8EltrlpYb29Lmqnz2v7/6nvf+3X9//hMdzZfa7QBN5xtM7h/e/k8X7H7W1/9z0g4Nd7Gd8ReLVZFVAA/eYAUwwp256Ltf/Ovv/NKM7mjohKOTw5aGHOy0u5aaoR0PBwNrWpJG0n0oOOrIaSjCBE9V8UQeTvW8N0n0RnbBk9uf+dGpziQbEVCIjpIo2kQerCgum8ojTByqdMblgV9ZLUbz19p0VCgz6krnF+hJhmRcp1lolrjAflvjtoowCTUVSQ6I2jBJ6tFYKkKgLaVJHGlFbwzZDFUEpRCYArqguFrWJkdnPAFGkjRtavq+e9txTJ1HpZEzTCRbV5AKr4zNOLM0ZJ/xrCfIjGrPOikHWkqfXnqWaE8tidu/2jWhVYSF8iIUpSyZuS/ZCSDRy0NOEOdnRDiMfIyBbe2gsZZoNqXrrr39M5/77Ef/4z+/8e0rHU1HzXhgxv4Tz930PX/8vicd/8LL/nPSDix3QbIT6LtKcZwPIYkM1uDhbNYH+9vzvv+Hz/yd41fOGA4a0zR2iEm3ceDIwXvu2XfDjbfectudd99z/2q3OcbSeDwCwTEXEdrFeUKFLZLCaQI/JnzZpHjQsC7BUReXeKRhMpHyJ1nEgji43MJU/BFAa4Cg6aAo7PHj1KxU0iYbfUBKenztPpGAmf5wu+pS9PFaHHVKIV4w/KC4mEiwntGGOEpIE8KPYhCv6IMhrhDOvIdgBAxkS3o21q5vrm/M11qz5LoOanhAJPM57d62B6UgI+ndgMgfJD2D9ZGj01NO2nP+BedO18SYRVZWtUJSj2iF6oMqO0hS0cZVwHSq3ovQ41yb5n4f8bLA72C2QdOYpkHbWBoSMR3ZN7/6+mu//KWvfe7iz3zj21cc3ThAZJcGW4Et7JywGIP12YE3/5/veOE5P3HpxyfWGu4CT0FcnrNoYj+TcueyAcjuZnLSqbsed+avzdZo8wi5OZHQYEhLx9H4TGqXCIYmbuO2e++47IorvnjJ5Vdfe1PH85XxCEZc15Ef/kAx9KiQ3mm+dCzvWGC0ebhSryrYMwczxdrASIrhiw9VASaWapJS46LqcUn26aT9RXMK4SKXeuUmqvJzmj7CowPT8wNtsoICubbq0U2z5MK77yjP+CJBLqNOkcoheQYviXorohIek5NB8HWN79jAbExWj24cPH75+HlpLGCA6ZR2bjmxtQNFvJMi+yON7RV1FwbrvPmCJz589/Hbj9wzt43pA76F8DhTe2O9XXFEdSffe7gLzqXuSMpxB8oh5cq2BkOiCblVms9pNpWN9dUDBw/ecuOd13zvmu9c/e2rr/7+zbffNumOEElrxsuDHULi2Pl6rrXDo9N9r3nV637qwl+97FMTYw1L5MZnKX/RGLHanAXeIRledXvgdtp3y0yIxYWD2hO8fP78YGyWtw93Hv+wn37mw37mh17+vdu/9+GPfubTn7tk5iZbV5Y7x8EVJqwok2lRSHkEKXQnSXsrkMMJMYkNOTC+ZxFTaKM92IR0KlaREUWBpM1jUgqLPvVioJVo4SAtnhpI6s9BkJja5wnATc4I1UqkiBaIylfK7OfM0y+so1KsjRTeN9GkEyhLY6RJg6p3oosB57VH2vIQmhnvouODmc429h/ad9KWc5jFhmC60FltTmX31hNWxiuz2dyEqX3QjSV5tbKNCx8TMEL8zGc/kaTy+VmgtxSl6xPNQoMREnbMzMYYAjGzNcYAgtqGrUyeREZ8yry2ZEa+tN1++r8u/spXvzJZ53333Xfw8OGDhw4dOnz4wMGDh9YOCq0SEdFoaJdWhrtE2HHXZQ8msU1zdHrkZc9/xe+84o++9m8z13nzRFKpDSU1RWUup/fkRAzy4MVYAYxpU44Te2GECLkpHbnXHdrb3XIlr+ywp537iLf89iN++ide/O73/esll357edRY2zjnCEzkIoQdUtMQpHg2VsMcIJvMI/Wu6hz8tvI8RrKMMD1r8EQZF9wQSQqXQ+gaTdsxKvBDJ9pX3iYCJfJOObZQHYxkzDKCCw0qrCXPmkwplMu2uOlu6D4mhx+CqJqGF8QCTRnx6TFNYZ+jrJ+UtUzWFgpxucEIQCzu3oN3P+o0UrP28Ipdx7u27t61Y+edd+8dmEFZYbOmv2uhZjd320fbnvLUx3UbZKzpj/HSzKzcZXOcUzRw4+UtjWFaP0ymofEOYqGNtXmYi+pyImP/GqrIUYHFxApC9P809t5xl11nfe/zW2vvfc7bp6r3aslFlm1Zlpss27JNIDQTQkuuAwESEyDEkFCdkEuuIRADISRAEoLBNjY22AYDtpFkuTfJalZvM5rR9Jm3v6fttZ77x17ledY54t5cPlwja2beOWfvtZ7y+31/fN6l+9/93e8eu3UiEDVEfUuNNaZfNzB7u8LRe5604yhAMcGLbuzW6PT119z47p969/1/50ZDtoY6TiEXdovc1MSUseRGlcE4HJeRRshdMumse0WpamBQjbb4kS8On7obl17/vD/87V/+yKdu/+X/9AdbO+tLC4vOtT4YfEIir9hD+M7pC6iOMQGUkU8pRzJBRCZmI9456AIqfMq4lGOVFKNLmIkGUiUoZfFfAfLKiuJY9ImANPHkmDhHgeb1otjGpnWRlKjJryJpeaUtAzrfW1SDEedNhoOIGF78Qh95CbkATukrELL/cHR7In987UBuvUUN3vpJbRcuPPfSiZsY2JAxKkSD2UOd5mHA9mT7BdddfuWVlwy2HQwUsZOKoVVadCJTxgieqZ34xZXqwQee+ImfeOc3v/Uf/sO3fvvP/ptfefShpxb31l0/osgIMRI4F8w5SqeECRtjtlbbF1//gj96z/8G6qX58xaaffPNYlNXxpD3rm1b550PGPoQQmZgQMYYO/HD3Su7fusdv3vgswsnD7VVZZxD8tt5H9iAyRIR6EieY3AP0qzMOc+enO9WIMRMzpPz7GPupI+4rY6F4z0zoaots33iq+OvfnD8zS97wwfe858uveyija1BbXsd5YnTLjSvdnMaU0BSxDxlKe0IZzQnC69o9fOmJQ5UovZY2bI4kxDzFcnSti+bDWHKKTszBZ9BwaQRP1nOD9EBzOlNQbImi0YwO5aY1K2Y8uKkIB4zgEXhojJkOmK5DyamqESDY3giJ4AQFHdjFB0ryYHBFnR09cnWK4JtFjW1uPKiq130oKZBa941Ib4TXWCJxYgGt7zhxrpvXOvEvi2lBcq2IVWOHOeFzMRu7Bfnqw+9/5Ovfv03/c7/+a3PfPXTt3/xb37tv//KK1/7pt9+1/9emKtcG+gBiEGDgssq0KxqbJe0zbDGnD44/t7vf+vb/ukPbu6cIFjnWu99DNzr7j1ryJiozDRUGdTWNGM3fteP/dbi6aueemRQNWgn8djzxB7M6N4iTnyyzg/WLdg6hoineI4Em2f45y5BuNh7dp6i2Rrh7XXht/KeTIPhOj73/tHS6Ss+9v7fuOkVL1nbGtRVjTCwTLkBXkRosXgtHClvt2NqOS8dogkjsTWD0qN7cpJUGzIYAkWkCk+t6aPjIo1GkMckkPb3uExIgQWJACpFK53noHhz8+Gena9A9qzIvZi6PLIMncVJHg26rJVsafkgDEjR6Cwqb0EuJaFo4aDqDjs3z96a6tjqwa3hpjU1C5Y4MxmDnQFdcdHVFrYjBQqHhjyCYo8Bds710bz2lpfzkGCMVjkoqIGmfORQRmaeW7T3P/DYD//YD+8MNpfn9s03u+bqfYu9/aPR8F//wk++89+/a3m5ZvZp34sC/qoO467DzNFXXeFqrdk60b77N3/t+dfcMBgPrK2jL9gC1nQaMbLxCwSRaeq5zdH22//xv37jVd9535eHzZwNKgbKYHOOoob07nU+w4Q5CAp7H/7bGGgX7qb0jnlH3jF79j6+ro59d1U6aluejNm1vumZR748PPG1xf/zX3/+ZS++dnVr3VqbVDLpqYopWlLPJ1cKMaQAKmMw/EThtBOMOvBMXbx0qBUq6vAVJRKp+AWxqMnHhDgF8ppAuPtk+DUZTP0sM/LWWCt6QFCETM5FJoN114epOQYrNwaFRM9AjHRyLx+ddJwcYvFfIzEF7oQgzfrWqVObh+vKcmBrh+PJGGxvuYv2X7preWkyGam/GLJDNDo7PMDD0eCSS85/yUteMNxiYySHnmbY+NRqIZetzSJ+63/85vr2oX6/Ho13vHfe+0k7AXihv/Ir7/7597z3A8tnNa51KbhbnI5MMz//DL8kENkKkzHvWln5X//nt3t1QwRDBrCGrKEK3f+GJQSXUGWrreHwhmtf8XNv+/kHvtiaxngPTrHRscTxnsh3VxmlfAIfIVrp6MwJY/Gi66JyOkpXrv7ie+jjtekdO+edc96xa2ky4V7fPnXf5Kk7mv/2qz932aUXDYbDylYh6ik/TiyMyMnC4WNXApGbxb4DB3c2X3YEz3BhPNNxW6PdTiajSSIPSVAdsnoiv1rTIUeljLd4WjJTCEk/zEyam1mK/gsYHqv/HhJFFYKkRQxhmn1ycY2UCRfZG8ApHQ0s/koewQHNIgwseuTj52dMPZrsPHP8sSrJWChzkQaD8WJz9mUXXTRux12GIPLwIIpvEDXzhnZ48+U3vWBlz+Jo1AoqcyEwFiYMytVTd7I0verk8bU77rjTYLltJxGhBAIct975ptr9b372px+499GFlcZ7n0ObEHNyJVU/8t8787mAOlPdM5unJq+48WW/9M6f2RmftLYCmXABououw+6FBIzzvq6bX/23v3zkgd76urcV+ZY7Rzx79gwfsJEcfT75f8ILGQpR+BByi5y9kmoLL+rVjnzW/WuePHexWz6/kEzsaDJia3DgG5ONR1Z++10/Pz+/4hwjqRCQQ+KiXUg0FKkAzW10mKj71BSy5CBAiigYUDb1biqjPf3yGEBUzKoZCBTajOk5QNOCnhSLxQ70r+YLRUFaeKaew6eW9V7J0R0HtzLjB8QiLjrtfHyMdkFxFcN0YxvOEWsiNEZ0qN1v6eGfPHKfd2Lo092yTN6zG9XXXf3iCbUm9OIZ85BQD1HXwp7c6994E5UFS0zrNVAJX9GUlJ2Szvca3HXX1589erSp5tl7bXMg731l+qvr6z/yoz8xGo9tFTLfQ3xTp3dDAd5imQPEcZlJRAZme7X9tz/3r95wy61bozO1bQysQWW69zAgdG1l6q3JmR/+7n96af+6R+8d1Y3xbfe2dNdUqKlkDek9dy+e96yGzgyBag1vSaQpIUWxcOfg9eFbYCZ24TXubKDes3fsHLUtTYbcn7NP3jO4uH/Zz/zkP10bbhlDpIMvhe9BIDCz/ciX+UWI716UN7MXv5aYmU3mfCGurootLdGMnM9pkVn+uYpORfyGrN+w8BoahXvPtayOW6JpMiZl/ZsQ2UAJDTL6XjKO8uUN+Dxt8bHr7f46rpOtIYtP84K1dAExmH0N+/TJ+waTia2qgHzuhgWeYbC5Qddf87LaVN7HKgXZVRTOa/ZENB5Pzl7e/+pX3TjZJGONIjYmp7ASFHGwesqzxdLtt3/WE1emJjLgbrZuEAfGrXMLvV1fvvtzP/vvfnl+0Xrn4vCrcFRriEliFog4exi4Ebkd83u//9v79pw7ca4yPYPKoDIEgwpUWVMPJoMrLrj6bbf+2Ndvb2HgWuY0MvHptIoWT48EvI7FKlKsQO4W4qmKYjUU/mUKJL1uNBoaSLBH6ie9g3fdmw/XUq9X33f7+FtfeesN1127Odg2tkrFWhyxpLKo+7684BumiPW0lwjRaD7PJboytesgu8PHGyOV9Yj5ypAgBEn3g5R7x1bMGJG8JWF3gjbPBfokJctKeRVPg/EU0mLqVpAybkDl1EOSCBSmQOXZGEFzgJB758TsltmLWXPqzLw0SzH5yjYnNg4cXz9Sm5qV1gOVMWvr7rLznnfe2WeNJmMqFg5ZyMbGYKcdvPj6ay+57ILBtjNGu9CLsNOUFcMkN6aVrbbX28987nOgmhkGFdDp+gF0dE1DZNq2nW92/84f/NYHP/CXK3ubtvWAEgBnR6jqN2JyIoUOgJmsNdur7RVXXPo7//XXRy1b04PARhjYyjRj79/xA/928PTK2qkJO3JtrC3T6MWJK0tIltJdx6yhksx5p2+IZR2GUIJ2qxqO16n3cQDryTt0F6Pz1BGi2pZcyzurfPTu6l9+7w9wl0gRi8n0mou+uZMxOlELc+JByXy/uKjjMGPKN2Hr2KPQSlDOj1EzlMItK7zzOZQXVA7wJDkt7xDUGlZkp6JwUylPVGk/naH0VtQxElDqfEFyjtMRvo08oQlwVpDS/mTZW8l6FvUCW1MNRutPHb/PGHIxZyZ0YgbDwcRO9l537QsGbmBtlVImImM4POwGNKbhq29+qangvZO3tvTUQykm1EfvPc/N49EnHnvowUf6do49R5pDZ4GDgQVZ08FRPDd2/id++icffuip+aXKeS8EG3IRIqzAydAKSbWjumfXnp18z/d/27/45/9sdTCoba9LTSGCtc3WcPzGG9782qu/9eH7R1Vt2nF8JRg5FZk5tnzRBZTRaRTGjqlXJHbeO3YM540Lb5lPY8KE5gKnhaFPvWVah+QRq/PkHbVjstY8/dDw+vNf+sobXro1GBljBCZP+d/FYeqlBSkx+6QpJ0shu4E6B8YMkXdedYWFfSE/0bPwzIJTghnNX+rZRANZDj4RJKHP8aun37NU7+YU2/wgCBiuVDAIKXrMJ4i4RVOQ+/OJkXYGLLQLEJNY+fcW6QmPHvly24bLIhYk5D0T/JmT9MrrX60mxUGvGIoyEDvn++jdfMtNPKTMezUonNGsb0XOXHXyzLZPX/jSF3bGa1Vlu9uvC9CN12DXpJmOIFab3olTJ97+4/+ajI+hy8hLghkOlCR4YpFaz0RkKjNcc+96909fd82128NxVdXhcGZjq+bHvv9Hjz9uQwXm0Qm1w/LAw3tix7FiJO/SLJSS2cwzOcfet0RUm37PzjV+3ozm68l8TXM9O1ehJu+9c2qNIX7eNJvpXtfuPeg6w25EFP6Hee2w/a5vetOEJ5RyyDm5zLJSinOuNcfgyhggK7FBMfU5TRZiyGxmvWdwcnIcIadrCneQyM6hksaUVuelnZ1JOvyyviW5KFTWUinUkcwLadlJJahkuwi1h0ioKYXfUjvDPto6EUt2SZ4ulPMkXUNSGtP92sr2njz21dWNzaWFua7M4OhcqCp76kT7whfeeN7+c9ZXN00lbdpxhAsajgaXX37BdS96/nCLjTUodipqFgNNF0kvLHxLt93+eaImdGwEkPHwEMye2G3BebfQ7Lnz87e9612/+c5//9Nrp8aVtQpiohx8nCc4LFL/qMtPxHjol/ct/s7v/9Jb3vA2x74LJ9wYbr7hptc8b//LvvylSVXbthMJdJ2B59TlcvQEh71bDJTptAiePcC9ao5GtHZm58TgoVODI+uD41ujNYaf7+/aN3/hOfOXn7VwweISPEYdw4WF/yHJMH1mECCuCGAMec8gOCJb26MH2hfddN255+w6c/JMXTfiPkuxMCZTXzjmUsIK5ZdHflRTmRog7p7aLnSdiQk6nIHFrK1khjIr9o9a3KUHnqdWfVzoy1IlBxBTRc9NcyKV1MNUyFhn3KGJKgUh8U4Hi6LLdO9msE6zXDOyXoZAFsrRweRzpSxsrnXVP7P59MHjD7z4yle27SiGw3c7DAyG43mcc9NLbvyLT/7lSrPQOp+YTN1vY63Z4cErX/Oy5T3z60cmtjaZ+klSx85iJg1NcuReUx159uRdd99TY953llMyRGTIFmu/jjVBZDz7uXrXr/zau171qle+4ZZXrp+ZxGhrlmefUE9LBBdEmg7ZyqyfnLzqNS/52V/44V/8D7+6f/6ctp14Gvyj1/6jQ3djMnbWmDibEBv27NHM+kEIAYJnV2MOLT124uEvHfrQYxt/d2ZyqOWWyTGPPY0NNRWW5u3KefMvuuGc73vFpW9ZXMRoMuxyyGKIQYwJ0XYaCnFjEUdIMEybG229veclL7j247d9utfr+YhiJsycWUhJSN7VJ/V2puIzAezZWwgviJm6d0rCBSLMRoAliQslqaaPQrD8kBOAZXUYKRRGelOmufc0dQ+VRSsXMsr43quKLb1eU78GxpBBaiOQOSuJPZnqUj0+Umg1xBCflof3Hfi0b8kHj2Im3RlrTh6nW256AxCWvEUZzMSG8MZbX02tgAfylJlX/RXykqMzTDTz9LW7vnb0+JF+06Pc4BoItCZC7kL4h+wJZL3jt//4j584fqbXN2FzKOpvFJZTpBF9cJWnq8Jas33a/czP/4vXv/rmzZ3hpPUvuvzFVy297omHJiDjXBzDxOVEEMX7AKKW46quhvTMPZo7fOLJ/3n3T/7Wvd9y56n/cnLyMKFtbN23c3PVyoLdN1ct15ZGtPr41ife/9gPvvuL33vfgYcq12d23ifSYOICZZe7j+Vu2It0jaYjz7RxjK6/4nqBe6as2UgohjBLip9ASMmmJL1KO0MWadBZxkYkZ3j51ZpBL8vhw8+BApbFaiyYqXSAZ5tNPvZiFIbw5KvTBmIiAdmAJgQKkDd2Mb5QbpTTCjf6kpE0R6ndzncfA1TsIPJ7xiRi62OZH0UVocdrTO/RY59d3xxWpvbCckxMVWVOHGuvueBlV1x86WA0Ml3ofNLdGYxHk3P3nH3TTS8dbyXnhFyRsghVyvRiFc7LTKBP3fZppnGMVejWioaoQrc0p9AoxkoV3Rp9rll47MmH//U7frY3bzmqQzBNHRLr3vTh510yE4B2xBjVv/+H79q/b//AT15y0becfLqZuNY7cm1UrsSdgY/7ie4Z9xSVaN3/ItTc+9Rjf/IbX7/1yyf/D2G8YHbXWADBc+v9xFPrKQyxDZmeWelXC09v3fa79/6DO574uJ302bc+DXMEbVfpAXynBY+jEs8gbJyhy865Yr43x7JSDDMHTg+SmIvG1yc/JBQFWRmD74OJSZJTZ2XmqCGlSvDlqVhLHYE+q6LULy6QM3SY2ICINDzGKzYu0k4o562lt0nOUDIRmlnIzkDiDqdITMiXvIuaY3EAUw6djIeTV/q40BF1ogogq1h8bfsnNx976vg9jamSCSfGk2A8aSdbC2+++U0DPzS25sw4JRjsuMF1L736ggvOHQ3baPUWknm1JjCQ6RPx56+qan118PnPf8XSPHs2IU22cxdD6JJNYN129yEbkGlbt9Ds/dM//5Pf+70/XtlXt86LNkF4rBEz4aHOcBlvUtVma218xZUX/6df/3Ems59e++SBsW3gHLm4Egi3kKcwog8GO44KUngGyGCMP77nZz7w2NsnfrBg9zCToy63hxWMMWzCvedJy+OeWWQavvfRf/KFA5+qed55JwfZlPJdfVpMh6SyeD8TMW1utnvmzt29a1fr2oy9DBdqN98MyK+wwAhSHy+EyD5leUXddhZwx7SFzvYrYLaQZDGwVIyXAC0SQyO9Ac+zSGVQVH28ugmVwZikkFg6iYSpjcvyNP2c0m7GWV2YjXqQJPtw3GY66pT2p9A3JJNJXo6DNZrDeD+47+Cn/IQEjjvEx1iLQ0/7W176TXsX97TtOBoUO2UwtzS8+ZZXoCLnHUhy1xkKDacgNslu4r3vz5kHH37o8Sef6FVzodvodvQd2C9Kq2KpbQxZgglRqYD3vlct/9w7f+m+rz+yuFw750U+pYSuC1s+68WrCVPrurFbJ9p/8rbv/Hc//POnn+6f2d7a2vZt260HwzsW1GRhi9D1fghiTO56M/OH9779s8/+7kK915jGcUsyGYVMlgqr4oc9tYbqCtWfP/FTR7ePVKZxaY/GYE4ot/h8JIV3EpcyDweu5xf2rixP2kkUM6VtoWSHJg1wgYHn6KFgsfXrKuLwAfhOBpvHFNEggZwwjClXX6rrZCEigZ0gYbyNQw2Be1LWIFY9KaaHDVJnLare5/h/EOeVqDxFbYnp8SsA40W4qlhaBv9EsgDEibMIFlIfD8CGiZtq/uFn7zi5umZRUfLsdeJI0JnTw5Xqkltvfv3GeNtak/4s59qFev7mW27yA7LGJoKBiN6b8tQL92D3MZk5uu2OO0eTraqy4rpPm5iu+AR3lww6X69JK3lmrkyzvrn2w//yx4aDYVWTZ49pSLtkAYNlmLmYZIMI4y1652/8k2avP3Z4sL7V7gydc+xdIZTJ4/0gl3FwzvfR/NnDv/DVE3+yUJ/tfSdg6vacXYpLV2kbQ9ag6hDasePtnjlf28W18bN3Hvpfja3C9eXj5Ve8GZwVid2Oo6ucadhbXlhw3FJYkSgJM1IgQ0ykUM+sPMPDxeLzfcg+XVgu6XpSYn3OPI/hCdB3GabIehDzFi0rg2QcCm5WVK6w0ZCF9JyLuZP+PVnZSAQ/U+mYEqoV+V0DIC234VPxUBYEiZRWjMZo3yGRZszJ19VtB7r7vDa90zuPPfD0nZZrzpE9ICLvusuQ3/qW71rsLbFHELIYMxyPr77qshc8/6rhto8u3vjnQY0hSVgeIBLZjbXjbX/b7XeAGiUghFItxCENkrwr6K3JAtY5v9Bb/to9n/+5X/jl+eWKndcafVBR3rBK1YDIt4HBYNM3ff6R3zh7e2ewtTXcHrSuzQW+D1vyIBBNlYbzbt7OfeGZP/30wf82X53leNJ9uB3SswP4GlQBp40YLNHF6+YW3TC7nl265+jH1kYnK9PzgTdJYTcZKXpRm8opxyyIB7xnb/q9uW47AhE0oouCJBiPa8BcnWaJqUdib/tIIsku5ch0hkTepVFlpGQkvig02oSEDgY5REEOGkm8WSGyD7GiC/Uwy93FlE4qa6RUJixrX5PyGQgkmNAWxN+DBaY32wuC2qkDOkUJOIqiGrKDRZyNxKoovPwA6KsHPzwYso2JI0mZVlfm+NHhhXte9MbXvmZrOLDWhgUGb7765pfOL/Un41Y2L5DjyXCWSIJTONC9537fPvb4E/fd89CcXfYeInU9zl9Sj5zX70HUkk52gJxz882+//Y/f/tP3/uR5b1N23oT/6IQfTOrAw2ZdZvKJCZbYfOkf9Hr5t/607tPHRuNfTscee/JeQQLkPdxdU7RZ+57tndqcOAjT76zZ5c5pzQYkLWw3esXo61Nlh/AEOL/Ga4mqkx1ZufggbUv96x13YI+WCg4NxhZlZr/Qzfw9F1gREdwMowcBO6j1iJhSjIMOljSyBOCOzzOabxwQnHa14dnKM1f9fI378hQgoamwh9nRRmkGTppRlqYLXHsCXOENpTWRslPC6ythjIQix02y58uboVz/46MPkzKAUytATiJpTU2n5hnmkQQx0WGyffs0oEzX3ry+IO1aWJRGflvzCB++iH+3m/9vrquvHdM3vvWkLv5llfQRFQdIe8BsmnNxxSkyh7MvurTF7/ytY3BRl1XEJ0SKQabHMOZeDGGfEzqXkgmZm7s/Dt+9mefevrZuYVOdC7/6kaUorFryc7d3KCDyNbYOePf+tN7rn1V/9Sx8Y6bDEbOOe86pVh49HNl6Dw3lf3kwd9eH52obb/7OQ0ZIMGzDciYDpYBG5AZ3T+Ml2HXMUY/yPjg5r3WknOcsCVJxZYmB5w7w8DCYObxiIfjgac2SIijUz6MV9OBru6QYFGN8bIJiRKdh0nY3YmpyJMkSGj7npRAQ3VjUpvJQlnDujNDDsNkIcoRBuJoZSq6PkahiUxOqmjtZzH8SQ5LFpzTGclt2r9BudsCSXIVi7RpmRwIAs0OH5K3cbhPrLGTduPup/6cW0TpFEUNPtcNDj25c2H/xa+76aa14anK0ng8vmD/Ra94+Q2jvJxIk2QmXfUi/4NccXdvwJ2f/pw49rTbk6UwMb+cOZ0PiHFFhj3V1dzRE4d//F+9o6qTDgmqdJe2Nx0unkaX3ejNt0yefvC3dnHtVtfGm8PJeOx90M2ktxUdMKZG/9mNR+8+9hf9asV7n9ab2aaYd54hXylY+GHlv2a6GFAQUbXljlVNssUj2bRjH8jpSvRZ6s3sMR5MNrc2CHmLIpb63ZwmLUtZCZflaq6ruMM20TO7zmhMcMxZMERyp5bHkxATQp4ScTJybSbgFbJc5Dy6EiNu9WKYPG+BMjBL75KCcKd4MrGUUOQ+kbatpOn51S3eocT/EGis+IAmmz0XNF2oO4V13cDs+vXC/Yc/evj40do0Po784jEMWHriQf9//cMf6jd9Ioyce/krXnbuBftH44kRyKcQypFB/Sr6LI5CQMS9pjr27OoXv/iVBv2QLRtY0YgbFVbFQ+hB0lmWt/ndzMO5dqG3629u++hv/Jf/vrivdq1XCOx0YoIBGWiYRkUZRWksbZ/x515Rf887F04eHQwm7c7IeUd5OkrJBOgba+47+dGdyaqlOk1B9esn6zOTmoQ4YTIgAxPeWwNDVJFtm35QhiSOEBN1hkPOIj5lQCIyw/Foc3vTAj6HKOVFqVjfp428E7H1ynEkLcpxP9BhAFziGU/xuygNxmeMI+WyMN+LseeTURkMtfWWDHwm5axnaec1eXycg3u1k0KSnZQJRJoike9lOdUqPNFSNyVdIiE0t9vJwcg3U7yRKVok7c7ZE1n0NoaHvvjYn7mR9d6J9xoE6ver46dGl59z3be87k3bwwETvfZ1L43gd0jNCKcl5gwle/jf3nOzgK9+7a5njhzuxxg2FR6esqtFZZ/mTPF17IaNeWbjnO9Xu9/5f/+Hz99519Kuum0dl/zhrF2OfG8u7S/MzDAVto67N75t5VXf2T/97Gji/WjCIXGeyXnfrexBFtY9sf4FY/oxtjW/WrEoM4ABGzGNQ9oPIQ5pwq3IIMLS/FJlybvILEouivwfkI328f0wxgzd1vpgtbJVrEUTZyhLwoHoXcr0p4hyz51I3EgGbrvPAWnsy9xUJc+ctk9glnCTpaSGc10swYSCLi2IXbEcLQLLZGKmNk3FhyhdUZhhaOLZvn7MCBIT+Vrizwt/RELzsLDXB/tF0tmaNMaUc7nug+jZxa8f/tCxU+sWNcXs6VTXG8tPP0ZnrVw89OtzjX3Fq17CQzLG6PMQkLeOuHVVU86eDN1+x6eZJsirVwhmSZw8xfpERn3Ka5CCvKab6xgLO5mM3/5jP3Hm9Hpdg71DhFxol1WepGOKEJ4CbMab/IO/sXffRbS+Oh5O3HjifeuThoY91ba3Uz17dPvJxsx1COvu1Yqfqu18ybGJRXF3hNkMG3lDErV7F88ej8l1f4736lby3NkLKU43Iz7DV6Y6s3l8Y2fVGDBJFG3EsQdgTNr/c3ZQkSd2OV42NBDdktAJTR5leFXxGkojhVTH8IxYX1YJLAKLDSU9YymKFq+YoaQoUKZZLl5rKNewcjDIOXzapwTjbZAvJF4YZCIjo3Nec57Bql2jxEVSzP2QMB4wlEYhJi93TwBXpn9m67H7nvnrmpqO2N5dP56o9QzQsUP+S1/7BtPWJZeffe3VzxtuszHas5mjCBgCb1dws+u62t4YffZzXzTU9wnhXTK6k8uFFcgK2hjDiJ2VAYxnP98sPvDoV//NT//c/GIVMKIqk1AeDUQML30scqtsabTtl/dV/+zdu3e2x4PxeDCZtK57Mch7ds5Z4PTw6c3hGQsLQodLpFBVIv5OpgM6xXlG7m/DGR2H/fHAMeetXLG9TYQcKsLS6cuew4iIo7WfnOPG4NnVJwfj7RSSEMJoRGhilMuEAFCw8N3HMsCTcPFCreyTYCrtpLUQLfvoMSulTpytKhZitgEx1QFCYp7hv0mFGHX1kC0bsu5dTVYgsggpYxhU4Q4VGQqx3JCYbkQGFrMwMkmiVD7rREMhthXd924oyMHT4phr03z9mQ9u7YxsVen+gImrta21o6uPE5nX3PyKhV29yXiCUuMXVasoxEO5OPGe+3PmoYcefeSxR+fqOfYeGaYvpPpqaQi5ZmRVynfqmW7qCCLTOjffnPXHH/zD97znwytnNa1zVAalB/ZpdtnlL4aT5AbEpqKN4+5Ft8y/6UfnTjw7nHA7ci71Kp4YTBuDo86Pu2knhdYOsTfOSiwpDIjNkFwfme4Jcd7tmt996Z4Xb255Y0xWYbNkp8X/i03amXtHdUNPnv6G52IkwdJ5mvhAxBF3r16AdOR58V+x/JEZkiUp0ydIa7Vj7cLSKsuQjmHIxMqMVJMw0ghvVIpDQ1ELy6k4zdx7IjmQSAhQFvhb0HOFFQnnIk8JkCVXyohrOgzJVLmd1QM8nVCGNGPNANYuAx1MXFeLRzfue/rk1yv0fMdLj69g02tODw5uDs5UtOdNb3odteJOJUVFEBoEKjhc4bCco89/6UvDyXYAZkJw11R6roL2sIy+plgqRw2N3OkzU22Xfubnf/aJxw8udHK2ZKSGjIVOmbGsZkD5GocxNFj13/Xzuy+63p4+NRmzn7QZg2AssRmyWs8SkUKizvBzCNS6iEaCNfXQjV506Q277MXbO2MoKWZWG+Y6kvPi1aDiZvzEyW/UaISvI0prJOQzX8Ndy5duQh/nqHmFyImEHy4GHwlaCmlNU1G1EeFkVPem0zkFGx/KoS5CyKR4jfKJpTCc0BjbGdbgJAiY3tQViFHOITC5A4r4ioBPyXgcmeHNM5Tn4mOJ7UeuwlBcnN1l0ok2x27w9Okv225+4iNshH3To8Pr922NNy4495yX33D9OGKdIhSfczUeEyKkqyhNtwHjh3TbbXeCGonckQsYlsM6VmvP9IYn2ZeY43d/FcNMTdU/eebUv/jRn3K+NTZHI+clFqs+Ow3BmMQUnhmgyZDryvzIb+4CJjs7k1Hr2tZ3D6e1NDe/AGriiAXKV8jPJVmELuB9F69sUBFVb3nZd2+cNp4ceyRlS7LqJw1V8hp15WO/bk4PDh46/WS/7nl2odEjGQfkI9aPRbEqU0aUZoWjVj1WVFEzjNCJy0wXrYuXJzIbqPl47oNm4il4JkJUC0BZpL6UnJvCXyjMBABK4dz0Ei8nYE/PlljeAyyENTmtKq/ms+mL8zBQ3a+ykE+DchNS0RnEJ3cehqUQctP5+YxpHR08fp+n7Re/7Opzzz5rMGyDpCWoOwOsCPHmknEIcrLS79kDBw599Sv39MyCdznEKDfikjkQmJk8w6vfVaJKk4o46K+c46X+yu2f++Sv/MffXNxVtROnNQ7a7ViGIKQ+H92kdPuMu+z6ue/+xZWtM+PWu+HEO0fsaTymlYW9te2H4UpUlnO0oUzP6cV2KQXoERNZa7ZHg5de8dIbLnzTkWOjurLOcVzQU2LzsjSMxt/UOTc/j4dPfHFjsGqt7eT1kewkPTipvYiZCFGeyElAk+9Mz5kpn2PSoW79UqwiCSoApuY2ktAJHbiMaWSaeF1ZlhlGCmw4BuzAq/oRWhKgckK5mChpy4ZwHnEmzUA0uj6WUxxCdjkrlMUHFtCdUZ/GEofKYR2PuJwxRIYzStGP/Zmq7mDcMAYEsqY5vbr6zKl7iPj1r38V1UQiIC3qp4I9Oea4TZmHQMyu6vHnPvfF0+vHmrrJXWRBlUvhB/ni9tNmXUFo7WQ03WVuu79a207mm12/9u5f+fhH7ti1u3GuzVmiPFUn62QeIezu+Pm0c9q/5V8sv/jWevXkeMLtaOI9Y3OT9/UvWuzPB/cQG7CJj7vPFZoI4YzFcKhwOl5sdwI6nrz9299x8sBc6xxn+ihLa4wkWnNGJhrbuK8d+HRl6rheFmqE0AZ5iOIzf8g5QifJUZPOJvXMCSvm9UPM4lqPUxIuGJ8UirBinwE5g8MsSNsMWUX3lzHKuBhtgZwfJSqiSoSgS6anSg+SGKbmJE+Jq0m3nJcYPxZiDxJ2qC6jnpV3K6ftxkKEo8O3mOGDya8sLTQNudgaeeIK1eGTD5/ceGyxt/vmm1/JAzJW3j8szCxQubkxLCj+t4YMPnXb3zG1malMBfyGizo7kYDCqA/qiUzzRuXjjte9J377T/3LIydPzq/UHUI/1oqQM1YBtJPmM07YdO/8ZOC//127ewvt9lo78Z6AsRvuri694tyrh27bmLQpScVo/IqQRvxFZxf+TFtVq6Pj33fr9185/6onnxjUtenIUeRLnqLnlM4bhRae5+re0Y3HHj52V6+a896xzO+NkbLdiRg3i+ktifv6UF9GBalY0AflBuI5yGBBdYBuGwBt41ZZFKo0KM28Oj8X2v9QaLMN0TRzH8/JM5R/Hp6DygbRw0EqzPMKuwCxecpBOkhh32qXwTrDOH4tcU9PKkEnqbtgyBKZ519xXSCLRZ2UMfTMqXsm7sw111x51dWXD3a8sXleknHPBa04HVoBdsy9eXvq5MZnP//FCvPee5JjMVm2ltsKsDpQvG4wEBctJiqkQ3vmPfer5UNHDv/QD/24p7a/UE3GbQgwS34XYAoZKzY4cdwOg8EZv/+C+nv/49L66VHrfOs9Kjca2je/9B878hZ1cEJCbsJkUh7nGVRUZIDQVHOrO+s3XfO6H7nl57/ymSGgTBJCtyQHIDlMyXm/vGg+f/DPtkdrsSYkk2XpxCqiLJ/W0R1KOdIG8beV5g0Kh0EGO6R3UHqXGCowCNJUxHlhpmGhkMhrgVTjMhFWpqPHZb18jPnvG3kWbsPssSi9VqTo4HLzKHO4u8EGChKjkn1EYTJYbXEiyCsj8QsmFgGwntCziy+47GU7A4KBc+QcM2PS0uHT9xHRq1798v58005aBF2LFKVJlzGTdDcxg9BOfL2Av/7EJw4fPTJXL/j8pZgZIEp5TyWVUGJ3q/liUhQgTphN+qid48Xe/k/c/snvfus/39zYXlluXOtdF62UCLGQi6volYMYYDGxJ1Nh/Yh7zfct3fx/za2ebifkrcHBgzs3XvRtN1z52q3hqLY9Utss5Jl89Kt0m6H0hdVVc2Z7/cVXvOQ3fuj3H/5ib2vbdVwuEeeEDJlM73JY+MJ7bqre+vjYF57+2Fy14IMMDbEgCZunJHlJ0BPB3hb5ZyEZW0TOkSN2xI7Im/gZOe9lBHHmZOfHCuI1yUc8i9JXE39RvkNMYpstIcbETEb7aDMFCzOKWkTUl9r0RYY8S/UocanEQzH8CbsST2k0H6EvnCTQDI26UKgM5fGXE6r0VwDaiT9//0UXnPW8rZ0W6LCZbLg+tX76yOpDlvbc+ubXUkvi7oW4euUbmB2GnRfXO19bc+bw1q//2u82ZlETgFlp78QNT8XCJmg3AfF1h4SSaJyNmb4mwmmMc26pv+tjf/sXr3v9rZ/45J3Lu+vls5qmVzGz8469c751zrnWeeddy96xd961naPXu9a3rXcTdo480fYZ/p5fXj7vatrccMPWD3bck/fYn/veX9m1vG80Hle27q5lCkSc/MzFa6qTFnTCd39i++jN17/qf/3sHxz4+p6jxyZNY70zKaTJe439zcSnYK103i/3qzuefu+p7WO1rdNpSsykU8BAXK4EIbmIXsTspf7FqwlNvNOcH3t22QpPAoPIUibIeWgdnHkokBZAGoTJAQokBkSGy8cjljFFTFOjKmJB+URSWhVvGeIistBZK+oipBYmZwOEdO4oj2I9yocmXIX0F21fCfsO3drCGDt27dVXXNuv948m44DLZwe2B09+49T2Uxedf+nLb3jpeKtblYQVFidZGaZgkNES6NjB0NyC/cl3/LsHH7+7X/eZk7wLTCXFOaXOyujdhKsRb6RgzBJlWFvo0ONHBJq044Xe8gOP3v/N3/Ud3/od3//e//0XTz1xEI6WF5qlpWZ5V7O8p1ne2yyvVMvL1fLuavmsanlfvbynWtpdLa9UK8vV8nK1ssvuPsfOL5jlfdVb3j63veHGE66tPXR4aE9f9bvv+O25+cXVwcnaWGtqQzYIAsKgyqSqoLKVNc3mYHvcjn78297+7h/8H9/41J6nHh/3eqbzELO0C0qmW4qE7zYWjvt1/9TkwB1PvmeuWvQx8Ezso2PmXRBuq60FRVRN0RmH16/bcwTzlmdyjKiHTAFBIVFspkteVpRxSZCOhijqScihrAKLgYTIUxTInguEStqgSi05CVlY/BwMwFNrEM7Ux67CRDBucBK2QGL4wwqRvffOJEMd1LQvV4OlLyrxHpERVOHvbIhc3Ll5A+No8qLnvXh7XWwJPBPTM6e+6vj0DTd+2779uzdPtsaYxJoSn06SRMSzmLl13hha3FOTo3f81H9475/9wXy9v/VjUEW5aIylqzHd38fHZoylDS0qNITySObEJnZy2iJ6IgN04XvsWp5vdjHzxz/1Vx//1F/sXd5/6cVXXnDuhXv3Lc/NN0sLuxYWFnb1XliZZWNbYw3CprT76aoKc00z31S92vT6VXP/p33dA3vyhhYW7F1f2rnxppf94b95369++J1ffvCLlnpzzZwxxoLSzUyMlseD8daI3UK16y2vfPM/e/MPnzO57rY/m2xsjvpzNJlQMHBCClrh0xMpRV8ejt3SQvXeB//r+vDEUrMvDtoinxMR/knlcFJrluXeK4684QNVpJtscixiwQbGBRYyusxWpqksTrXdhS4xoTlPkXWKPKZMWQ9xkZG4tQHQW80waKDIrNfrZVCiuOZ/jfO7glIbk57k/KrHnAX23LEkzBRyLix/UBxuSaclLGQBiE5SAeY7Xutc3bvq/OtPHQ8iyI50Ohj5g2e+QkSvu+UmMsTekzXqBY+J2KnY6JTHBnZpoSaiu7/0wC/9h1/729v+aq45y3s2aZMDoY1hQwI2nb6qcIBO2ZjjqsarjyoUP4aYu619Vzt0J0WnvJ1rFoh4fWtw1wP33vXA3URDolH3uy/QW/fQqxytdm0SyIOMoaaihR729LCnZ1bm7fJyvWv30tLKStM9Lq1nA3zu9p2rr7rk3f/kT+45ccdff/Fv73v0/uOrB0e0DbKGGkMViHuNveSCS19+zU3f+spvv/zs6x/9Cv3t17etNVVFk0nenEXOdxRHxmcgRGQCYDjfLvUXHjr5+S898+cLzS5PjhJ9Jy4HUhx7AjMQpu0CHkFEHpWhUZIZPnjOWy7vnYFx3HrvrQj56iDEcTsP8VAn0mcSZjOLloWjEEUUfErZEq/EdBsRE1d5kk/a8JSfEZ/fImg3E6SzPkmdu+Mgh3p7yCEsy5mt40kUB0cHdIx995zgrWn/mSiuJJRASJ1jStXu/jqjyfi8c88/e+HqRx+boEKnl6ir3qnNo8+ufqPX7L7plS/1AzLWkJZ6ys7Ne8/EvV7dLNrRhv+bv7nz//zxH378k38znEwWeru8dzo2KUOL012tRYUc45+RHsys/TKUp03hczLogPRkmONxTuBwMXY/oSOmylR11R01i91p7NktVKvn9c+acD96tABUlmqDpkK/Qr82pl/xYsVNRenddp48+bpnHn50cOg4XX/j6//9P3792ujUM6cfPb1xfNDueO8aM797cdd5+88/a+Eyv9l/6hH66McHkxE3PUPMresGaZAPYfgr+0zcixZxIuIK9cSvffihXwpDIE7ShdSje+66p2Rli30byDOZKaQPC6yKctHFtXPoDCdu4ryvLARlMwexar98V9ywoFmAVFgoJfk1B9I/C04Gh/sCaTXSlaPFODK+VNlGmP62rPIXFLK/RLIr3AAyvhP5fSOEl5Cq7JhI8hjVdnrF6eiyB6BCFdNkJg3IjMGw3bn28msa7BqOtuesZSJPfr62J7cf2RodfumLX37V5VcNNh2Msh3kGG7vAbO4VFFFRw6c+cs/+vgfv/d9X77rq0zbjV2aaxacm3TunjzbnJ4OJTyx0saA5Z8FFsbrnMwqxnMhIyCr8oiITdw1mzin94ELFUSV2Bg/2tr1hfq8FmOwRQf/JgMylipDteXG+ga+s/+hm+J3vHYPnl+gdkJfvHOr+Rx27d511rmvuvYsmlsibmm0RdubdOpZevTUZH112zuqG9QNeS+J01InyT5FZMrsykCq8Mv9/vse/5lDWw8s1fs8eQMrnHuxhstDEZIoQo6SdZO2buSJTJSCeCGi9mGrjMieBLd+EhwVyKtyLxRvz1G2iHWipFAqKrHoG+OOjXPYQ/jhK/XisTABgzRXgotxjJoFAgU3cUocoCRVqWZueWzIeOTVqGcnZ0ga8RnXioErYUJ2c34XWZIFHbkXXXX95irB5L+0AT1z6h6i0c23vHp+qV7bGtc9Kxzp3VLL1XWzsGJ5RF/64tf/9AMf/OjH//LQsaeIenPNAjDnXOu9A1WxzzWin08jZjbJzEvgGVE+6epFwqwQS4PM9LHYjek7HFZS0CUIM+cmlgAyI3/mZPv5F8z96zFvWfSgeRgWVWV6jelXtrZI46N8nzgPEJrKOM/HT4yPHR8LuzM6G3JVm6o2VHOH9JaS3+4ZlAez2Llntplzbncz/9kj/+tLx963VO3x5MIcmIzkuENClgDxwEMDcDk+kFN/HzVh6+ovb2GdH+WZJURQC8unWHIiwFNWhNzKqctKVMwcYsKmf7cqt7JQ+RZpI69e2ul4CpKZNrI5RLL7saAfpma7+7jGfmBgyLMxhsh0YS8+SgEZCnSr8GIiUUk//UFh6B0vNgtXXXDd6UNU1SZ1rts77ZNH7wKtvOkNb+BRJ5RBRI96AyzMVejRyWc3/vzDt7/vA396+2duH7sNQ4vzzR4mct4jfMlGEWKTl1dSX5ChPkgFNVMxYGZgaiYN0W7Iaqd7hg0hTBFIWkjZJ05Y931XmD8+vv1q/sHd9SVMExgkc7oBDFUWVW2bylbW2mTUhbA5emJyRIaqmmSljbTUps5pLAI5FSmJ5dUHGevS0QO4Xarm7z11+8ee/g/zdtmzC6io4D8Vt0mAmkY5fco9y2uCZNXrzixPMNw1Q0g524K+DGIiC+v8IN6cObokVyYiW5NzESNeSGZWwRHKFJUgUSyxJAKPxkQVMwMzNG5hcEOpVeDy+pNdquzSlKYOxBLnl1okDi+h2140NsrVhDxQinQRFCqQ4iCdtQGApSzMYDgeXXrxJWfvuvq+B8fGAgwPb9A7dubwgdNfu/iii196w3WjARtr2HvHvq7rpd2WJnTffY/96Qc/+OGPfOTJZx4j4n61uNDb77xz3hPBdN9oUHEY5LSbgGNJgdFyth6kcLl2gWxqcx8SswagYrAiywCpNDMIrbKNT14635JPhBjemt7Irx0YfPjmxV+d8DrI+hxTZUCwMNYYa6w1xsAI2UX4NoJosNvmek72tPDD+MQi1nRylSgiyX+x7wSxJ+fbhWr+iTNf/sDT/6JLcWTylDgaecEQliOZqdUlF8gtN3vKZ1Me/AE2ll4cRlOwoJx3amEdT8hzMfPMiRHx8JT6hzTrZGEGVc5eFDAoxZ6Ceg+5Suo4z94k4TTNegPjMUJeiXyyxiYNfigdJKJd5PjtZdUOD9qdFVt1+FNAql9CP604dKKk9Cl1Netq41kEAjD0o+df9Ty0i+PJoF8FjFcFc+jMXSP39Ctu/OF9+3etHx8Rm/n5ul6grTOTj374jve897233XHH1vAUaGG+t0JE3jnnfKwD5WzJxAheoIABRRl8RnNr1xVHWkecl4rzHAIZhKKMQqrku4jlKG7mODNkSXQFGwL3zK4Dg488b/Adly6+dsAbhgwLhKoFusgaA2NMdkyKwOgsKBb2NE7ltaTAlgsu2brJKIWgSmnnsfDk2r3vf/ptLW3XmGP2MVfc5BNY2hLYE2yHiBLaKxOvOB+nVuFNNvG67KJ5DZI1Il1dbG095EH4tD3LwpIlQ1suJhCfcwFrEr8QhXK0wOinMzLBgaqwsdM5oeJlYnl1IqEA0/zEQEQq6z2pdt1G/XDeDxHRyG1WlQmpBpHUx2mTQ56U/VV26Swqr2zTAJHnbv/tX3j59eunCLabkhN7dkxPnPgcEb35LbcQaHmlh5YeevjgRz/+0Q/9+Z/f+9C9RK6xiwu9fd6zcz4+BcZQtjQRcRSyGMrzk0igipuptG/X2u0Ae00bQv2QS/6jlMCTcmuFzspEh4s477j7pyztYAB/afU/ntV8eLG35DExxrDionaB4sZCJm4oRXJc0HMiPuTxZjiTWb18LDu5LF9GFHQwt4t24YkzX3r/oR8a0UaDeU8OguWVO8D4yiMsG1i1QKIYFC8OGGyy1NR7gunuSmbhqSYmU9lq5HaSMIKFn531eEQwCAvISLE2Z+1VQHGZIW1J4jdZASwqxrLiZKZQYeXanqXgI1blQhnKogJWeIBMYEz/cOQ369rETb2JjiV48aYJwlj3aPsEF2N9SaTLxHm32J+/4pwXnTlEtoIPpvp6Z7J1ZO1eol39etkN6JN/87k/ed/7PnnbJ1Y3jxLNz/eWumSC1jmxMo32Vg42HWOtIcsE773gyIneTKrdwonjA8SABeRZzbTS3pUAmsFqyrKBQo6R/6vQyYT8Wx/1ElxhbtV9445TP/3t5/xR1fNkYGBy4Gh3xQtxkBePjBISsJjVMhcj/HSF5xtTMmc7ciIzMxugTwtfPfaxjx/5KY9RbeY8txA1RYyyIvmRiuytOKAEz7bOghOrRcmrBfQvcuNMbevBZL20AmVaKEMEjpVXWjGpBKYhGYiTHmUOFkBKJqqm2TUxQ5ggQr8F0isJ69L2NJuIOOFY8jYsT3gEALH7Icyo3bAWINtFukaebhbKi86JSUyOYoRAV+hrZQBoMBpedvEly73LnlmbwHZSXt9Uc4e3HlrdOrLY7P+3P/0ff/3XfueeB7/GtNWYpYXe/o4Jr/io3bkQtJEwMJ7dcDxqiYhqIr9Y9WxVOefCqDv37gJQml1QLG+7pJ/QX6AvkQKhJVILfFI82K49SFyLNLYAx1GI50kPywdGH/3MmXe+5dx3ebvT8ZcStSd/qgIvzILUxkIgGKhDoScLNwsUh4iZu0stkrfiCevhGszxBJ86+uufPf2fa8zVpt+9gZS5HuApfJUQ9SU+qRXuWOiKOK+bE84BUu2dryJjjRm5bRITMJAMRyI1+SGekrKwLlvSZhgcb+r8giOrryECNqtSDSfdWRBwJp9Ejyq0hplhYtITuNSOZzZwVrsKIIrZnKzVtYHJI2lEcfqU8zMBjcXgLY+8WfB2MPLja696Pk8Wxu1OY03noKksPX387tFkc7G36/TqyaMnnpnvzRHmXOtaF05isZrrEoisNRURhqPRmFdB1TWXvfAtb3jT1Zdees/9D7//ox/cHK6vzO1xglQCksb/rBoUhY0u85JbWJIop+7BVPbOyAGSK8XQsHF0GxiQJ8CT65vd92z+jqWFN533i1QPJ94bMmlbjlz5hCBvSudtYuSkAjs/X7J8zqt1GMHi7H4D9jA0b+ePrj/7t8/+7OODv5ozu4jgfdslNxJbmE6kns4Dqe5D3qnms1yAjvMqnFNlmm5ycKzAg9mgG7UaYlNXZqddI5iouofg9AqoJ8T8Tz3ikYMVj1hWc1TZCGdWWMqF6U69qlTdad949Igz9JKQJQ6KSyO3kHsyqfAXaLuR3Z6cttZV6E26ksVn9Ux5IYjTIezrpRdTSuwBQ7juypdurMb0CQLBjIb0xPHPAs75ibWYs3POTTy5MGUJD043G7AWlgij8XibR4bqyy+68OZXvOYtr/2mF1/zcj+eP/UMvfrb6K2v/8c//5u/8LWHv767v5vgO/upmCDJmkgsUVHYbhG5oMyl8VB63BjyO5+RXA7RJ4uqhtI03vfNyl0bvzpyZ9547q/O95uJ3wLq7j5jKUJOtx/0/aLjbXW/N3NFRQTyng1zbed8S18//olPnPi32/7QvN3j2SF01zEojhN2NTtdObYeWWMj5o2CPy/dn6l5YmY2lExLXlS4nXa+ritsj89Q4LxA+0iVGiZt8qDEy5yXKJBDby6CLSRCqti0V0RTLxGKsVfqHcCCrS82FQKjwtMIoDxLg2jrQWRgt8ZrTKMKdY7zDEtCIcKE3EHpvF71f4Y/0Du3PL94yVnPP/MEGxsCTyrbnNk8fmTj3so2HAPt47Q2GBkAGFsx03g82eEdUHXJeZe89hWvefOr3/TCS2/k7eVDj9Lffn586vj2aJsN8ctf/fwP/sYHf/uD/+1//PEfVWYy1++3ruUUfSFOI85soKiaLD9CzlsGtamBWj4R1KQgN4hQGPw0OA9Pk0lwh77d9cDO/zj1zGNv3v+bF6xc6bDD5NGtOiQdAbJ/gADfkoICadJz3qGEr9wTcx/zrcNT6w/ds/rhB7f+kDDoYw/zRIC9IYINo2sR0JWejIKQVBZOwwZ1csWPDkkiiLRLR0fpZ4Klhmy71Z4mstndkmc84kITqgMuvwSlmBF3ae7IZGiEDLXuXooqLYSR6tf8HqY1nXbCizkQYgmahPKe035efInxx0u/gIkNzM543dF2z/aNq5KOKHxSsbdJZL88PWVPIoFVPqIAhqPxFZdfutxc8szmCFXXB/jamKNr39gen5irFj35ZA4LJnZTgTAaj0Z+mwiXnH3Za1/5qje/+i0vvvpGbO46+DDd+X53+uSgdVTVMMYuLBMx3fWlnRMn7U//wDtec8Mrf/E//8ojhx7c3VuCrZ13FNN/EsEydQVcgAnAkjKZT7Jo3EhyZR3qBNGkMTI2NoEouJipdn+sZ9c3e49N7vjA0TfdNPq/X7bv++cbjHnH+5iTl1+kbBHOESesswpk1k90oXbDPMOmpjnX0oGtR+9b/6uDgy9v+HutaUF9z+NIcws2xaAdiHHiyf8Tu5j42HCJaxHLoPTaQZxo3fSYqYDvdCNqpgr9lsZbozPWVJTVlNq0QDr4JKJ7Oe/h4kRsFndC9Y5RGyxyhIgZVdJM56aT806V5JBMuqxDR5CnsUruyFN5vyBd0YDAxlSDyeaEN/r1AreRGJvHS8ma5bN0O2C6spZN6Jq67FWM/ejay17odhYmfrsP45nYsyE6cPqrvqs2uRvwM5mK4Mfj8cgPQPVF55736hteeetr33zDNa+y413PPEJ3vtcdf3bHOar7pu6Zmrt8L+p+/eKKPX6E/uS3Bq/+pps+9Jsf+K9/+t/e+5H3Oj9anl9s/YS9T+DEuN1Dp2bM35PnNEzS5UfSNgnLCjNNRTcrwZ7Y3sQP37Dx8AiNO3sQeW572O1o89Onf/TxrT972dJPXb78ml5TMcYOE86pyWGBIbY/krSTMQCCCgvAVNTA2c3RzuHtux7d+rujw/uJ/YCeIN4BKiYvfZbdL4kDMFmxdTep3I4KhGq6tJCT56IwlcNwVUwBBTkp8Py7bUWvmp/w1s543cBKHUgeMZkkOJStBmc1dfxesgQl9APM8k4mrSkSS0hirvLUIJ19ut0QJHw5ZuUSfyp8BGk6qndeLBmkRGRghu32kE8v1BfwDgmmQ/oxmNl1ZiZ2jsglMydPg/gTtoH8Cy9/6eZ6Z18yxJ5gBiN36MzdFhUBtWk88WQy2mm3idrz91/whle/7s2ve9N1l7yiavcefpw+86ft0UM7bkx1Y+qe6ZmwaZQnMYjalqwhPzGf/MDWhZf03/HWn/uHr3vLu37/v3z5G1+at02/13e+7ewLeaSWkn1FHBemcSLZksgQecipM+LCtpotalTA9uK0KOq5QmCOM1T30Bwe3vbs4LPnrr3y6qXvv2zpDXsXzqkNeYwZLXdpnnH2YUTRwSJOI9LyK0O1czSctM8Onj6487VDO3evjR+vTW/O7F51Xxv7o4aaOFA3EAiPvJoOblXKu8FOr4FkIZDHeNI1hGjU+HyZIuU5V5HBGW2izNDMV0sTd2Yw2bKm1+WBF9cs5YsrvoyQjqTC2h9/IuRjQnGLZN+ebRiouFh6oFwspnZ7BveJuwtF7jaIwGQgFNhQdsMoHmViC5Afrw+fWehdDbaB4MCGu3ikuCkJiofu60jlf9klhr1k693K4u7LznnRqSeoqmzXP1TcrK8fO752f2PryWS86VoiXLD/7G++4dZbX3nry19w84Ld/8yj9Jk/a48d3m4d6srUte01MfnHpfQqNgr9FECac317+ODkQ/9zdOMt1//xr7zno5/9yH9/3+8fOP7kYt1v6sZ5532HACMT7zXOu6xy1wkxloO81ViKydRonjgu6QUFQVQtPsINwjreR6NIz6wQ+yOTO549c9tdG1ed33v9+c2r99ZX71u4aKm/qwG8I2O7J9KH2TrHpYMPiU477fbG5Pip0TPHh4+cGj+y5Y96HtaY211f5mh0YvLpCa8a6gm1FFS+Gps0HmY1c2SC3oXnDyjZfGORkPspnkF87+ahgRZlAVgYsF3oLQ/8fa0bVqZPUDAksRhDzvGd2tAHuUgOi5AzuOIWxFQ9HWrISvp0w4A7eerlWDX+GjNVEpFk8oqjJ0puYuhopkdCztzODJ++qp4DNaZLgYUFWc+tSF2UW+9wHchxKIepJgNmPB5fe9nzd89d/NTmxNbkPQOYTNyFFy1ccfn59zzy0OXnXf3KV9zwxtfccsPzX94MzzrwMH3pL9yxI9vjEVUVqsbUMF0f4X0GDKkXRcQDBKglo9cjJvuZT2w/dI997Ru/602/e+v7/uq97/nI+05uHFts5mvbON9Gqhry6lnjSfMDBiW/kLAFziLUkvKbLoaiiomi5ZQz0klPu67aEdDDbiIa+WOP7fzRI9t/aHlhpbpy/9wLF6sL+3z2QrW7X+1teBcDFpbgWx4M/fbQre+4kwN3aqs9utWeaHmHwLXp97BSm/MqXhnyoRPtHc5vGfQIXlDf0jBGAODDnccFI45ZpkBkFQwyzSQnlEBA35J8UiB/BNmMDHG13F86NjhE7KLIoTCv5MNdqLYhPHrISjGWg/oCT5sjjdTYLYrIKjk/Za0azT+Aam3lby8mr3lPw1A1cKZrI2Jig06OmGBObD1x/dm1pV7LFqgNVc5jGgHO6aJV6DLOdhYiYzB27gWXv2AyqNp2UFXGeyZD3jtg6Q/+05+dGD5x5QXX9P2ugw/Rlz7Eh54ajMbc65m6ruqavaO8+WdOSdYkbJypOEpI49gXAIbm5qvV0/yx921fevX8D7z2x77tNd/x/r/7049+6mNHVg/N216/6TM5lzJYEAtUsaJgqXru0CAoChBWZsT8E8VZKCS20QvKTRp3dPotL/l4zAz0GuozWs/jDf/g2vb9zu8Q0Zy5ZL662lA/jG5AnlwHOAPBml5Fc71qaY72GjQgW9F8Qytr/r7jk9sBb0wX0pvsGSY6iXJauAIjC5Uzi0ceKmg6TK1QrkgQt46psUm41OwSIQLYWvTnmvr42qNB/CbnHzJLUPwwehkmBqhiZCJSYuREB2Jgwgkj2f2jqlSglmcsa9RhHFKbDINARlbEfHvxN4q+AilSj2kPIKB3ZPMpc75rzOLYV4ZqsJWTmYIXLL6hGV1U11S84LLr1k4GsWAHO68rnD4+eeD2vedctP8LX2gPPz0cbLuqMnWDxV6AbTOL0KhOeejz390Yb4LFhjz54J1jJiYDk74Sz1RVqOrqmcfbpx8dXXnF2T966zve9i0/8Gef+tCHP/kXB08crAlz/Z5B1SWCheMclCju0aCkhqDJMqhQwMJjkcdiKuIimgWQBnoxWriDZWTPTveLPWCZjWfHcH1zzlJ95Zy52NKCh/c8YZoQsSET5U1dVnYD1AY1qDKwNS36tj3efmKVv27RA1WdmUiMXrq5SC5NQ+qAlD6nH1c96mJRWeQyynktM5FD0iqI3ALO0yBjYBta6DV8dOsRQpPFWCW9Xq9IKdsaBFSPdSADS19RUvmlflqGNOU94XPFfKhyhhT4bZor3YkVk4ZFig6mUhJifeF9ZetTgyNjnF7u790eHO46QwPrBI9cJAxF9ypyOprYhMM5t3tl98XnXvvs/VxZG5RtIO/JWBw+OH76ca6ssZYWlmyKpFT8+Hi3MzEMG+OtreCawTatbW2N2kHT9JYWF+cbY+24nfiOZQIDktEZoLpGxdXjj46ffMJffs3e73nlv/quW37gM/ff/rHbPnrXg18Z8858tdCre4wAp4gUo1jhKPkoFIKSKc8CSUzgoUFASkKd5KiGyHdzEQ6CMx+n0sazG/ltIr9UnX9+/027eze2zu+0J1o/iGqYVhRUTASLylBNqC2a2vYt9zdGjx+a/MWQD1qaj/IRI9aAEIHbJHPUWUhmUY7wiMViQC/I5CPg44kUyVLRYgDAdInfCNkeILtQrzi7eWrnUGUawduGWuoK2lPsUDkI1vWlhdysQ9gros0HVORNyCF4JbAvaekPccNpc30WZ+tPCUobnn56nxZc+b0XBlywJTsYnzkzeWTv/HVHdyqDylAVMvrSfEwKqiI3nWWyaAzCHI5HV19xxZK5aHNzUjXUHQtpwdLUqCti301TkPauUkjXXd0AG7Ls6uEmnVo788zq3U9tfP7M+KExb1a0uFRfftHCK67e+9rzztplqon3ItAnOEHCX7rXB5F54uHJ4w8Nz7tg4cYb3votv/SdDx286+Of/ss77/7c4ROHidxcM1fbmsDet9HbQtrQp4CUDL2rlVmWs9MOoCooMt0SNjzU4Ikfj9pNz5PF+pwr9rzlwvm3zPnneV9ttEdbOjln97PpTtqOME8yexJkDVewVYMF8nh2+Kkjk486bFuaZ/LgzhrfWYgMBRRI15TGDUgW6sYJikGCB2ZqgkQLSnSIojUwyDJlsH5egsQkL6AyVBk0xNWu3r619vGN0aletcRCH6JSIziOSREjZpXkVwa3SyaLCuFM0XRipoqMfOSAtxDeXEYxHFIdHfLGOU/uMniHhcYWMmoD5aopPDcwIHaHN79+9dzNlhuPimDBxpDxMKIfEpQEZhMirVh4hBgwYz++5tJrd9Zr54Y1GxWLQRQigbyM0Io2BGYCG0MWltreYIuOnz71zPq9BzbveHb42U3/mDc7FTWAZbhTk799+szvP7h68/Wn3nHdRa/ZvW/iybkWkfsfBc5x09Jr4NkcPewOHxjv2meuet4N/+of3PCj37n69ae+9Kkv/N3d37j72JlnHY0aNL2mV9k6pCx05iuZ74EMyRAWxJJ33G0jU5tiYPItAZOKkEk7HrdDpna5v+fq/a+4cuUNFyzc2riLT26sntg5NGrXDFfz5ixmFx9EH8F3HEf8nSPRGt87PXrk6dGfbvj7LfUszXHnS2KRuJhbQeREoFQLz4rFoQ4LJXWRU2S9cNOyjBGhdA+GU6o7DUIraGAqg4Z8vXdh75Ht29iP86JdYp5J4JEQRqBy2i9+3Dz50RoJ+RpwZhzqNq4bzAiEXLJuJVdWsUJk0s5DeWWztLtAgKGkDA9R7R9Jsp7QPLX2tZdcYmosOmwaqoypva/BY8AwQdLnxR4bGc7c2TzZGdA1l7x4Y7UzWBfpGR35Kt7VPjh+ADYVLFnf1oMNOrl2+tDq/U9s3HZ0eOc2P+ExMFRVZg60O5UbhuZgaJU++5n1bxx+9Idv3HjbJeedbXvDdpK7EOll9Z6YuKq5rs32On35M9tf+4I/74KFK679B+/8nn+w2Z586MC9X3n48/c+cs/Bo8+s76wzcQ1b11Vlrcn4ygJ8LgMZY83QNULBftWp8xF1/c6xG49HEz9y1M7VC+fsuvCKs174/LNefdHKa/p08emTdGxt7ejWMyO305he08x57z1PcjR1p5RATIsDjLEVNRuDo49vv/+o++uWtiqaD/pbSru4qEFjI1IYZKCfUbeK0n8mnaPRPkvo1i3c7NBRKPlNyLqRLgK5Btma5pbn57905GuEWlniaHr8ksZhSVE9bVEQu4GsJeQk2UxMQOlfixNXrtQ8CpgZ8UIzo19YDXHznxqfi+4HEH9enu1KLkpdzR1cf2BMR5Z7+0ejEwa14YrIAhbchrpURV+YeDioPr5146XFufP3XnvyEapqk2S2YdLiU/pjh4bw1niLmibNYINOnDp+cO3ep7fuPDr+whY/5rFj0Vj0K2oCOx0uqdC7v0uFJcbosfY/Hz34t9ec/OHrzv/ms/cv1dXEtWEsptSCIbWIjcHcnPFkjjzbHjo4bvp01lkrF1926798463m28Ynh888dvDBBx6/9+GnHn7m2NOr66sjN/TkDBlLtrIWMNYYGANYAguwTSzIiNl75tZ59p5b37Y0YeKaqqWFlYvOufiKc6+++pzrLjvr+j31VW5j5fQZOnJseHrj5HA8Zs/9aq4xPd8Fp1iKCSrJYRGmKaZioJ6MJ89sfvrx0Xs2+eEKvYrnw8UlVaDCoJTyo6iAW+cuLLWqUu1SEIw0Dj/6JyM6JVlWOyNsJP2EP9oClaHaollpzmKzfnDtXmvnO5KOWvRxOR0tEAepiJKtLBebJkpw1Vz+s76uop9QzE/FkhB686gkUlJlCn10ANLAgRSgRoD+FBMViyrU28OTR7e/dvbCq04OH6vQb6kxZD2ZfPkBIOMpyWWmYFbAaDy6+pLL53D+zvbENl1WbNqMpWE+WzBMxZPezhadOHP86ZN3Hdi6/dj4Czv0tDdjS3WFHtHuFDTJ4jMXFTuYHDMqWtzEA1/efvuTT9z6opM/8cLzX7Fnj2W0rVMfXBZec5iVVRWq2hLzsSOTI4cnVYXlFbvvnCuuPu+Kl7/+2+w3+a3xiVPbh4+eOPTMsUNHTh4+tX7ixOrx9e21Xr9b7wAASb5JREFUnZ2d8WTc+tazc52ILvAwjTXGWFObutfMLyws717YvXfX3vN2n3/+/gsv2H/RObsv29U7zw3m1o7RkWfpgZOD9a31cesAWLLzTd979p3lgWOqZudKT1ZIJmNNhXrcukPrdz8x+KOT/nPErsESkyNKmoYESpN7+SS1NhKKxvKiSpgz4ebjIq07EGjSZg5IiO4wxzNZYiIA34ANDaGpier9CxeeHt63PjzSr3d3SPzCsinBgNOuMg2PIHVJcrqboN8l1uve/CdVmYsWOKV5fSB54lmrBCFRLekaZX8ZbYN5rKmEf9mFiIdOf+qW/d9SnVlkDI2vDSzYxvPTELs8iUb3gvlQiXbDDIOW+QWXXz/e6I8mOwt1xYEgTN4zLBvDlmo/7O1s+OOnjxxYvevA1meOjb6wxU8wJpWZq9AnnovkbyfxsprjJ5e53pOzPGdBJ/lTd65+5bHN77hu9w9cee51K7srmNa1xD6hYCAlV3EJiroKatbNdT5zavDwfQ6G5ubMrt379u4/5/JdL7vuGurfSLahUbs9Gg9GbmfotsbtYDIZj9qd1k2IyZA1xtam36vn55uFfrPYqxYq7vO4mezQ1iatrtJTT01Wz0x2NjcnbZcTapq6qq31zN6T764+45l9TE3yOeip8zVTPR62z27f/9jOh460n/BYs7RIVIcBXOTTmJjJATkUhUl7EahVmli2FQJjUVGKgYjUe8m3pvvVRrSPiCa1jqpqDdWWGks9g7l9i3vuWr0tuVOhrO4Qu25l4QwYO2EmFpMKFvAVznbsqLxlObvpipjY3FXifVdgDC5IoZquqxinyP/Zx+yShDDqqDwEKSjIb2NgP9qFR9a+8Lrz1leas0+NVy0acAVYIkvsuq/Qh/cwsf0pB2hTt6+z1154/eY6kWHn2BgGuKqYfOUn9WCLjp05fuDU157euO3o6HPb/gCjrdDUmI8eZ6dM7jGgGZoh2X14Er7YDdZq2sVon3F/dOzUXz+w+q3P3/N9V53z/F3LfVO1rYsDm+Qukf6XkI7CxqDpEZMlpnbCJ46Mjx0adZeotVTVqGvT7y/Nze3u9WzdUFXTUkPGhoQj39JkQjsTWhvzaOxGO35n4EajrYlj55mIrCELYy2qKnRoUQyKWNkys2VY7vD6bLo4UGMBXw/G48Nr33h8+8NH/F+N6VSFeUtLzC5dNqEERXoBTE7YTel+wehglEKS5PwMJB2XqgssCBMsdDady6b7Jg0LT2Bn0TCoQBWoBvqguSV7VtUbPrL62aqa71LWsuoMwu0gdGvyFoRgCEoeKkMPqJOLSe/mmBX8mYgrOUFRu4TY0k2pi6F9cUwzVhkkDRYEbXXNEo3uZ/KNbTYHzx4Zfem85decOvmERd+gBltQRdR2cRTIFG4u7MUg8q6d6/V2NZdvnXCVZYID92hitzbo6Mlnnj7zlQPbnzk++soOHySMDPVqMxfYwcQ+8OR12DRB+mNMUueHLiAp+oMsgbklQo1dTNvP+P995OTH7z/9huctf+flZ920f89S02u9964NTkkILqmcLEnkua2pbsIozTNPHE1av7XtvZ90V1WcewccSar+wpVkYAyMNU0VMnxSUG43WUnTaTCbdDFzFzBuOriVNca1dnOwdXjzrsd2PnJ0cnuLEwZzNS8TeWKXM2BV4ZDE2Ym6AT23Z5mdkphYwRAUv2mEkSzkUEQ4J6EJysjglDjIibNZC9QGjaHG0Bz53nkLV54Yf/3MzoFevdtTq4SpjAzghRBBxHpaDhjFNjAOhrjwt1Cs1yC9hYWgrZqlCA1/jLInUpG+V5jA80IHBhnTohi98SFWI6b4OJvqnuN//u0XfFvvzK4hDw16BrWhynOnB88re4Q6SaergNt28I27tq892/axuHmKj5x45okzXzi4/elTk7sGdIiotejX6AFznh0TE7fFuFlKn9KrGK0wECrClPfCebsfvCMtYCte8dg67N9/ZPUv71l/5SUL33r1rpvP33vewkKFunXeeY84vGWfqCNUorE8haBLJrKdCdqKe4LTJlGlp1Ly86doq+hNk8xkysvecM76yCStjSFfTSZ0bPvYU5tfODj8q9PuKw6rBv2Klpgcw8XVNSRNtxNSyddPBgQIr5uCYmU+V0AOgkQsiRDDqEDi3G1y0gyZJOlIZxHIECyoBtfGNEBT09LZy2ffcfxjkYwjaNsQvkCRWh0rSjkgFZ4EmZGkOdnZfSmOGTHUjH/1pl4pWAFyflqkNc0iS7EW18yAUGWXV0Z3qZjEkJjl23/1ok8dOmkObn9lTGsjvzrx6xO/xTTxNPLcMjmilqnLmkvDg2AxmvidJVz9/L3fyzQ6tP7lo8PPb9MBwFeYN9Qn6lJaPeuotTQvFhO8PFUi0R7IXpwVhVFY+6OImIjAxlPraYfZzPOV59Svv3zlmy7dfd2eXSv9vmfyznkfLf4ySCAr/1lxlvK2RdqYczOigoL0HlntGFO2dB70mU6EBmLTDu3qxtqzm48cGN757ORTW/QwUVthHmyZXE76kjrMnEwM4U02pHqzdC2CtNFI+U85/VUKuaNcAkLAyG3+b7vYYO6UHtaYClQZ9CrMV5ivsFSbXRV2X9B/yZXnLP7eg7c675P4rBCpkTbpS+dEwolLupzYUmSJmaCCiI9al4XdP60kpyCe8zwV9Vz8o2zeIu0Pn5a9UUxFLS5VzqcWiMjCjtq1r5/645ft/o+Ht79hMbK03VIFqpgckSVygCkyiVJ967mt0Fvnb3zmxE8SexhjTdWnPSGxFS4HRmt1bGTsyam5ydoZig63Qq5JcZBFce0ojr+4mnVEZGmZiIfmqafcIwdPf2DX2nVnN6+7ePGm85cv27W00muqyriYsZ7rLkH20ABgFhSptJCCDDNMMqkkgg8M3EwRy8srBsiaCmzHLa/tbB7dPHho46vPjP5uje9p6ZSFrWiOaI7YM7kMaIQs2k3sBtMPDElmF9OTLmYsP69TY3/S3oBskM09V3YaJtmiif+bBEU1/mywhiqgsmgqzFW0cOnuKx46/V8H4zPzzT7HLU15JkhjfTkbf4p6M/pd8kfB6h5EtiSKa78AdDMDaJoVkkCmVKXEtT1LU4xa3AjIn5BxaqERNLYukzXV7QwDJs+uMv1/+YI7Hj12/NjgG2NeHfrTLW86v+1o7HnC5JgmzJ7hiV302rsuh5XhPTuilrllYs+dCsyTRLrmdIfoSuLifE2bFcqBbjJmSEWksrBx+RgjxyzW6/FBNCDDaB3tEFPF+5Zw7dn1jecu3HDWwtW7F89aWmj6Dch69uy8Z98lImbuZAdsAaPMqVQsIeG16yZGQrMMAgwHKxEsvJmMMRhMNrbPnNh+6vDoK8fGX1n1D47pqAEb6hlq4icsGRcqUqZbfyesoTiwM+mxe0tlKIr0SuTxSfpP4rzvzkFNXEqDIIg23hjY9K3FfaA1aCzmKyzUZqkxu3u0b1999QsvuPh/PXTrVrthYTkZoHKcaKJxqf1bmv/K60dAWQEp754hyJaXISXHWffLqpnL+AzP0ItVlNphCBka6VwWKe+Lqt9MIkXUrIXFPhNVqHfGx+8/88cv2vuOE4efrMzI8o7jEWFM3IKqXDyGKb9JRP74Pjhmx+w9OZGwmW1BGbKv6k6TwWYp6UTSBLNmx8REIlH4hXmCSc216onTyACOGBWWCMTYWqXPn2k/+9ja0tzapcvmhWc11509d+3ehQtW5vfO9XtNVVWGUHFoDJk9d3klPluBNQGJI4YwfK4dItmEYtGSJbbMpp3QYDTcGq6e3jlybPvB46O7z7j7t/nJllaNgUGvpvmQesitnCElmAwS64zT/j31ehHb240YU2cUqlMu2PmQNEcuuh6UE8fU/smfqUMVAhkyHDzjHVK8q0ibysxXZsH43sW7n3ff2h+uDp+da/Y6bqEij4TYOutgkNAaaRInLUbQWDWFG0+3uBr+hnlU6s5AhLpeAaYTBIqPgzVUT5qcBV5ItqpaqyqJt5RVm7Eb8gFM4Nn1zNxPXnf7/c+eODr8xsifHvvVCW84HjgeMU88TZhaJsfhzvFMznNL5Dw7ppapZW49eyI/xX1T57P+52LgEUaeUOVFnuVpcX8KDk4DkBChwaJ71HE9ucMxTBNPY+YJszW83Kfzluxly9WVy71Ld/UuXm7OXWx2zzXz/aqua1MZY21Iry3oHnn/yN2ZAsfsPDvnJ60fjgfbo63N4cm10TOr40dXx49v8hM7fKilM2xay7VBA7ZRaueLQbEoZiKPUEiiEyo7XYYi4VTOnIv5vfbe5Z1f+p1RuPhi75I6RpKryNiXWoKJWcKNRc+ahcbs6tu9jd29t7ryqv3nv+ext+xMtgxsNgNLpG/2+oELDTUVgjiE+AvxfooXlQHtv556jzLyEFOKtGQb0chtzuOf3O1LuxMkqI0yEYeF8kABHPJdGbvyyjRb4xOfOfY7N+7/f04ePOAxdBjGF6/11E0VY1gvuUSGFTsWE5xFIYIcuRmOY+JkWGfd3yQqRycAFYz6DBkzkGYhpbMwgI+g9bQ3ld0jK4JlZ0qA4T5hjsCM4YAe2+EHj41hxrXdWqpoT0P7e+acRXPuvN3ft3t6ZqWxi71qrjI9ayvAgoNCm9k751o/bt1wzNsjvzl0ZwbtyaE/tdMe3eGjYzrR8rqnQUf8MKgrmk9BK1G6BWnlVuUfCdlnJtWrtYQ88GkG+1LLPkukDjJoVGYJiFoGws6U+lxOZU73QnZbQVQGtaFehX5l5mssVn7xyt0veuD0r68PjvSbfUxttnpJ+hiUOYWgKbuqUSTyUSqs1TIxL0IqU9K7SUIuHg8e1RNO1aU5Fo8ziy39rGIiVIChcoQdCzsFS46NGHYkpV33jTs/+ZEXfuL06fknt74w4bUxr014Y8JbnsfMY88TxxOmlsJz3DWE3U3omNs0Ms17yfw9cVTxCxEeSXyfFPaQtpX5qSOMhRg2nXqpOGTtphQs5JyZIsj2EfgXUaWOqWuDQyYUyBLXoBrUGKqDOy6otNANjcPVShOPCdHEU4vOwsPWoAJXnP/6XCYqpS8qBobGjaheFCS8PQVw4BSJmMW+xwhFIyWjn15w5ec++sElz028hGotaKgDkQRyVOcVtKDu9Wss5izmG7vcM/sa2nvx/EvP20f/8xtvdrozSkZb5WwQOgCRzYZCLxn0+hBfZo4WSVwSaE1pjm9O333FXHKgkkQtadQ4uvoYmcajd3155CiHQUiFNTocO6vhDQg+m/zDNQUz5sknD/7S91z6oePDJ7ed837iecLUtuQduW59z9zlBCZXO4JjlWzuQJNlS3a1JAogmT4cOlw2QBkenlMpKWsrkH2DomP3lAb4YaTBxYcqLSHxuErPpe8y/7r7wKBfhN0wmKglGvt0txgBhkZuiixVRHWlkL3dqRQsqRzrByYoonfaPYg0wHLBIM1UIB3Ml84tk2NOpSe2iNUlNYbMS9lU4iidjHIDx4feMAEwpqtF2YAqY3qGepWZt5ivzEKf9l6+94qPH/mnw3ar16wwt8IfK83TDImdFrN/Vlz6nGclZv6AwpNCZkWU3gwdCGOrqk/QBI3syBIWRmmV0KtCsRFB2QPGwoVVtJcYVor3w0QaQ23nT2x9Y/fC3qsWv/3Y9gGG6xo/hidyEeuUenQO9LC8vg9KCVDOVAru6jDI7sLYuqFlHo1Syq9LlhutLyrZSqSDdaHCugPsJPH6wiqO8xY7QjtzGFgaE4KQsyIT7T91WtmkBzLE0TOOBE+msO/InMY0XjCKWIXuQ0gCM5MTXMI/DFCmoB7l+IdkPQr0AjBNwKBvhvCUShGXOhCT4Ce0eem/NlmOI06ZDtocvMJkTUCEVQaNQa/CnMVCjeW+3QNauG7PG4+OP3Lnod+aq/d0u5Yc+JPzsUk+4uVkbWpjmU+p8EUyGwm8ySdMAnlEQhyg8fbWmv6MPwoyoUura6f+PS32IimeURhHQUAWf8aUSaxTS5r+E+ufe+m531r7c9fHx2MD7XMkQ/x7hGRo5PsnfpegFDKBRKwVtvXggjFQr1DJXJUGfsWPyDtGLQ5Mwv5y+Q6IkQ+pB7B7YQGxUOD8UMY+oEj7YMHdAUMDUZDrbCgQS+IAxT83FZYIGTjxAyGjBDFimUB6Min8s5J3EC9TMXfOYfJUPE5y5SBPfvFuQH4XJjG8O4EdYEG1QW3Qs5irsFDbpZ7Zbc3C+f0X7VuefPDJHyKyaSCpQ6i0BUFHfahzonAzxUNU8BBkjQWJoE9Hk+Y+EoGsrebEsAdlPH0RO4WZJwT0/5HO/owggrwlZWhrktKIuTMzG1QTv3NscPerL/iR05tbY78dvwIf+QU+O00Vikqs8MODDcOim2D9vRci4bI/jskKUnjO5fMjPs/iq0qT9KzISXKTdG2JFVxGg0rUtdwLUDHWVe88RIWoJvb5jcvSlnhb5z2iUetSUj8eVAKS5vKgIENA1mcQYtJ0qrCowaElzvIWle+zGMZ0ngzTobsBG2xKaAzVxvQqM1+bxcas1HZlyV74wv0v/MtDP3h854nGzhH7vHpHIeoSQwO1loQ4U1BsSpk0jbx4ADiteYW8FkWFDWttP/Bc06th1Gtahm+p2WjxZgJ56pjN7yLJmXK8pejHWRwakb3vazt3aucJZ7eu3/e2E5uH2bQE8hSno5GpLL1kcf6Yn/xAeFAvSh706S0ohOY/5RpAPAqMvGstR3zhwy0FcMh7ZUTyF0weNsDE/woiRrwjXovK1iDV1/FVRry4xG2WH4WMuDaQtM/sdYAxsa41OQg13oH5x4EyJUGdM5g6/gpCa/xx83TMUHa4qqd5WsYo1eHy0o7nRYDWGKo63FssROct5huz0rN7atr18nNvvWf9175+9ANz9d5uTEVihZAhNyz2LCRiIFIHrILtOAvaAJpSpQlFgTwzoUVXuaKy1vYFZ4rkfi9R8iDmLDzNH5VpXflIlD3SND0gGTQU1YDV/e3raunA2ufPXrrgyoVvPr5z0ACM7iX0QqMnWFLIjb1MqBS6keJoIVVM5jNKNAhQ+2IZX85l1cXKfMHIUhWC7LBR5Gcm6UJ6K4QjNje3wlTXJXjn+JRonOhEW5R/oSGoxzdEkamrz8iOKLdfkWNAkqKH4kyW5SODS9hUTKrJjFWRwqhMt7pnMWCw+BxCSnJHKw2nRgDzGTQGNai26FkzX5mFxiw3do/x89fvfcsZfOKvnvyFfr2HyUmdZ06YgSixWd5b0Ks9ZCKbOjrkU4AcMyokWuIhTE8XpPTMWttHGeIiIDY6xkvWHdBlvOy68/BIimjUNA3SlQ/BgoMWylboP772t8/b/+r9zctPD5+1xsbNhMyp7oaQPqsqo30GekUMsezSR6w8T2jqeJbDBOQPAEqbjEi3l46MXBbm/18KYkuhJvktlbVj1GQHZlm8VuQARv4nQ7nENFBNuDHId2n8wY1oBfO7GgTZ+ipUXynJzjD9+7mchDiI9JljpFyCoErx/JfpfjYjhrPpb4QEboPpdKGo403YqzBfmYXaLPfsXsvzz991S7Nw4P2PvM2iByl2Frx9iLm3ZKNLWz3k96si2MThP3sxWrRsUP+mUG11N6FW5akJJ6iktHNJ2lBFHJ6rixUqHIjw1WTMgvYQhb++gfFEj6799UvO+/YFXLY6etaamkFTyYReFtndDBAazRgzPToKklHvozI0cXoXeBaSVTwuVDA+WFKGOL9WqQ2Mji7IBiiLHk3EUefSqOsNDERJFget4hZNPPngJIj/ONbA4U+P73B8mgGgmFJ2ZXOs9KFry7QKg2g5y4IrVk6pduVcrnOe9CDVLcKKEbQWCKPrfCohlfHdqRFYFUDT0YAs+hUWGrPSM3sM5q9efu2+PaM/fuSto3ZcmZrZkUgYTNOTePNBuTyzoTDV1KkAFN8wiqV3Ti0QUkkU3gbkxUMW03QvYTEwlj0foN0m4kjQCXgsfxvmImJG3Dl5YlucJ5yQTmEY1y2VranG7c7ja3994wXfXeHCjdExY+oUaJ82YGBR4UZdTDYipNKARKsiJhmQu4Q8xkyfLMollRjzd2+L/LjE+SRktoGAEss8qYIOj7OJx34uKU12rKdPxsRy1shbxUAUtKF+y3dRt0qNybiSvBRnWKop1X/NqeNVTFALB6ac5KctkXw28kUtinKopzRuRIAu1E0OQg1Qw9QGjTG1QbeUn6uw0Njlxu62WLhy+aZz9lZ/8uhbNwanetWc4xb5PWJdz5XHbEYSqSGLfOzjocDMRanFErkhY+VzmcFq/kf5JYQyL4oPhTt7g2adRX0c9DAwfqNppCH+W05SQPVmIpv09Vg+uy3CPrSyvZ3J2hPrn3j5hd/bp4s2hsesaTx5QET2gvPLlVP68vwQsvNR3QgYIuGH9G5PvmwlxYTEm6AWjMKWmSzBokKXcHYxTZGnQ3x803WDVJmlSzSWkZRrSITuMV138RLKrWaU30FX5sWl1/WK3d/O6K2SnAizpDmlASjyiCO8/ZAGfNUYpCMpr3BzWUqdJCjNjboMtsp0kxjqVWauMgu1WartSs/usTR/1eLN5+yz73v8H53eOtyrFz1PROXFKYc1fSiYpvimARtR8V4JTWyETLHsSaCINHnVXC42ytqq6e2SLiONWgMJ0lN8LzrmgIyqUFIdZX0iOUTK6exFFHCxKEh0sgxlITKoR+32Sm//P7r6A8Pt/Y+v3jmhrQlvjv16y5ut32n9oBNteW6JJ53WNFp+ffzxODAeUop1tqPIqsFLuCNnZpv8GTkvnYRWAiGGBVNuaM4YEZ5pli6+nUIswgowB4lTlv5t5hnCzKKRKIxdJMxrUX40Q7v/HN4/MUPOAZpFSc4sJNfqeUVIhkVxuoVhHyNGx4a4LpA1qIHaUC9PYrBcm2WL+Wt3vWF5aeMDj3/v6e0j/WrR+UmKDxZ0TuZCUMKyAeTI7kcRWz3FRuVszmLWvVtheABpn0NBQrPG9FUDx9NrawjX7hR2W7iPtd8TxT4uRgFjqr2EjteBVgilRApX297OZP3hM3/xvH2vOm/uprXBcTJkTZWqOGSuo4kXiqFy3R6vAkicjxgyqqUFKE70NcIvn+UhZohJXrcsx/yQdyaLNj/NSJDGuGmLZ7qbjUku+hL9Md2KPHPriOhOzkuNdE/mzTuESA1ibQpjNGtHigum5g2yL8xWJzGPkeVu7mMRa+1YfKZhrNxSoltCBF5odwGiQ8LaOYt+hcWe3V2Z5b7Zc93+b8Lck+9/5LvXB2f61YLjCaNAh0oRT9ZxIZ0DnLfpxSpPrNjE+jMxY9THEW9KIyWHqZhR+tDwElZVT81dlM4SQj5ZDIWg9O1ioMqFhlui6uSqW7QDObuKRFGYN3Jp4+Er20zc6MHTHzxn14XX7P3OreG24yGM7QxE0vmG3FYJ8DPi/EMQGfQCWrWHUIIYqfWQigNDecwYLBhicJFLNElACmRO1i8qkPd4EG+qCDASf5f0L4ThTRjfpLFNmMbkj0I4IUSJy7GnTc0LQ8suIJ8hXUJT+afIoY46fUAwJv/YJjaH4X+4G7dEdHe3he8kaUDTueNBtTX9ysxZzFVmscZibVesXdxtLnnJWW863n78Q4/94LidNFXfc6tlFOLlkkeo6H4AySvLPUUGS+UiWy0W080po1EAFbtSbOAKN5M1to9pimM+M2RgqLwCw4/K4kwHFdYmVQ1Da4RkEZrCCRhM0m5rsrwhvtveoALsI6c+RnbjhvO+3/DK1vgkANPpJ42Nfb/cIJt49Rk5ENe7OBNeDCRJNXLrMBUxK8IuobQU+qHv3owovyT9mxg5JxKh7SlhL+8YhMghXSBSGRCFneFRRvFrkx4gznVM3kPkt4KEPU/K2bqf38ZPUh5scWiZ/sphrNkp/ePkFoKKn2Wf8XvhjsUEwFICUpA1iJYI1J01qTJ9S/PWzHVO+cYsWVq6sP/y5+1+yV2r/88nn3mnxbw1VdhgJfoYBI0LMt9XTyDT3g/Fug6C+ETF+E2sa+TcTkk6AkJOOONKUFzTrKQxUQHepmLIo1XLkfomausS+cTxt4RnBsphqUo/VAgD2azw9DQJAKgaTk5ftOuGb7rsN7274PFTX9xqn3U8mvjtid9s3Y6jgfdjxx0Xo+2c5sye0OGefKAdBewZi0hT2QdTiErmwqpTOr44Y2SDlwliic/KYcksT03O8eh6v5ZRbmVQWOk6xyzUBedlgRqJlQzoKZ6SknPEoD/Z9QiSVDp+WRJPCi2ymL/Ek71T7cZxVFK4yV08KFyMVcw/rK3pWZprzGJtlozpLZhznrd0c9Wc+MSRf3Ng7fNz9X4ml1JbOyAefIZzcEFsSo8ci2huVnEYhblpOo2vCDwXlnqVOKpizsQ0JPoJ65Vp+SfPfKekNgcCdChc8rLbQxksrkBUwjmqRhC5c9Oeq2l+lEE9aDd7tnn9pb/4vN3//ND6k0c27h3xeut3Jm5r4recH3oeexp7381p2g7TFjQ3HaUmrDp89O5GRxN8TnCL5DMR3Jz3RhzyEpU9hckrrFgCuXLM4M5Dq9nMmGBgyz4TLZvIFkcUTE+JZYNkaWV0M2KIg375IpZeKLdIJjZKgE36jVmprTHjz+/i0ApVfddLs9xJpM1E9x7awCtG0+nRLBqL+RqLxvQaWrpo/qWXrlzz+M4H/+7wLw4mW3N2JRBEBVlx2uyCEiOYRJM5vDoGTmveBE/vjDFrHiPL0PQSiDE8k5gPxVu2M/WGVQDKqQ5nAxSlXGCobpfKnzgnjKuTVYVgqOlOka7O+mBPVrwEl8mpNwbWsxu365euvPa1F//7efv8A+v3nxo+OHFb3o0nPGj9juehowlz63nMNPE++oDJUQRvR39G0IVHqJNICAwYuhhelXwb8eWi4i2F8oTz1OQp3bfF7JM0Y0yKeCUgSIA45BBdHpdFwnnGpM98QOWBCJFlQFJNJX/r/G9I54QMGvFTLicq+IgJ8xGEoKEjMKEQpXgBorFmvjGLxvQNFvY0V1yx9GJvnr7z6K88vvZ3tVmxpvLcZkUn5ThLUiAycYUE3k34e6cpt/xomQsidkIcQoYfZfCSDhaMf7bcfmdsWooQRXoJCzvv1CBd5B95UXBkiobGt2gQkUTjaD6NhGcK8ZzufAVIjLlU33RcIztsNyvYF5/9fS866+2edh/dfODMzpMj3nQ8Yh65UJeO4qvYej+JBnznu+sx/Dk+m2CTQjX8FbyuPdJnLkB3MqggP3lehwrJj4Il/S5ejFywT3MQgmDKcBobcNatMyt0CydCd1KNc2zC2YvrTac452uTRTsqq5vilOZIRjOAuDQY2aqfZqSc9Gtx/kkm6FfZgqwxjel8SVRb9C0aa/oGvQYre3pXXbj8/Mpu3Hvq9+459d5JO+7XyxywhT5rU3RuXI5Ig/qWJO8hsVs1gDTmHIS5C08dRpk5ykCRmjZ1CZWOdoo9SH4JZ9afpTJn1gvN03PRhL3Jq8ucVM80pX3LypZ8BImXkjnfnzJiMW81AUvMI7e6UO277twfeP5Z/wy86/DmI6cGj4/bdedHjofeT5gnTGPnh47bcB9y69mlDKapLjFxKHwAfyczaAgXZXW5peYvztFYffjFDpAVQoQkGqMrU4yy+ORX0EP0YFOeMubpPzFXTAEyDQmXyKQ/SAJQISeOpZJ6FqXlR9x7EbIixMAitj6L1KIdudsB1oYqmNpQXZm+QW3RAL3GrOxrrjp//vl1s/Hoxp/cffxPNkfHe3YXDHxOEKGpR2sGtEUjJzijLWZQmKCyYkpPX8J/Fkt1RTzLwhpSBgnZUoAITbMr++UK57zM6E1niDLmS9HzVN8oxhZiNz89cRH9LM36OWepNz0nBUo+eg0q5yeTdmOhf/bz93/H1Xu+t19dujo8eXLn8c3xs63fImodj7yfeJqwHzueMHvPbaSY+pDYEFWpHMNEPft4TyohQQy4hkBIEApAuVL4sQJ5CSh2yj+WrNj8fKfiiQUNnGcs+bk4c7NsWbV2EOmcnJMTSGVwSxVwJlWAU18MJbGJz5tYuHI6mju7sIUx3QC5c0JwtOQa1KbzBJoeqLKmb83cUnXO2c3zzpq/YEyHHjjz3ofOfGhrdLy2KxZ150viKUK1F94kZh25mVmeeaQxjdDQttKinlNhZyiZTdP5ufJ6nLpAMgY/vITZpi6qJOma4umZTdHezPo7lH8ZlBPRHPGRJoQ8NZIpx7Zy188yJaJ7BCrnxxO32ZilC1duumrvt5+1cGPLS+vjk+ujgzuTo63bYZ74xIxiT9x6bjtmabgPg3HRe+8SEymeiOmGzA2GiqlJKY7k8+QttIBeZjNEzRynwU9gP6qFLqbmn6xYv7mZKYN3Ys3JUyAJk/HLSvwSfyouFvQRHpd1jOm+7e4xDvWI4OHLTLEAoeg2tIwYV2ZAXWaghamJrDXzNRYW67P39C/e0z+34vGp4Vce2fjIgbXPDtuN2i5Z03TRpeWjF291g0QkibOP7HGNpxjKaad4W5WQKyU1+Ti/0awzxVQQSYLybs0D/0TSYNacnKbZNXXniBluFvmkHMXM7xZTJdXRFYYQmgox5WJKq46o8hSHnhHP0N1KKlzyM8N69uN2k9gt9c+9YOlVF6zcsmf+ugorIzfcnpzanpwYTE6N3BZz2/0PkXPsIgXIUZfbx23UviGWej57TMKPzSkSI3k3mH22b4XgMfnJpPVV90p3l7BMbFIrHWThWxTUxm8gtxf5LTPpXEi5E0mJKqYKpdSD8/RTayrlaD3NPvMXZMLEFyqTMD4Z3eIhyF/C/2bDjADnNU3PLM2ZfQv1Wcv1vp6Zg91cnzx0aOszB9Y/tzY6SGQas2hQeXKqiJ5xytMM0aWIPNKtFjLmkKFVmnoAI8YTPgKAmGf0aiE+KMUjpCjhIrdCt5S5HJXBZazQvSlISxPcCrNjPGMEHj9hyphnFK4Q2AhNmprVysifJzUjohzIw7BY8Xb/Pwug9aPW7YB4vjlr//y1Zy++ZP/Ci5Z7l1Rm14T9qN0euK1RuzFqN8eTnYnfcX5ENPE88ewCZp84gW3SZ5HJK8nsn4uFmCmcXbY87TNLSdTi1vLCf9gB5H16NpQ3lKfKLQhKAYv8Rha0QJQiUkyFtIjnLyLJcjYllzrG5DlT22oo4pixlirAGlTW9Cqaq818z6707UpjF3pmzoKc295pD5we33985+snhg9tjY4Tc2UXKvTS+Lq8IVjMQONTnpc6DAYbUb4lsa2aDqKYUGvJyiypp1Q+kxy6SjUYC0diHNuQ2tLlgaS+CTlljSmKNvJMaUr1Wyq2oTneCSei9Dw57Div5nmaepr3VHGWoOpefSWqrC2oGA/EN8H5ceuHzBOgmqt27+pfvHv+spX+pcu9ixeq8xq7D9zzbBx7z67l1vvWc+t44qirV1sXCN9x2Sgg3D7PZRxl50zac6QuIuX0cp4Dc0buhuYTwhTLUVOOvI2IB6kPw1eO9vr81efT2eSuIrLboYDNUsMhOM3dbjMMYkMDTAmOB0TAGMhYVAYdDRWANWQNVdbUFRpLlUVtrK2MtWSI2NOg5bXtyZH10YHVwZNnRo+vjQ4O2zPMjkxdo9+51YTqHVNhKmIUnbtAEmGB5T05w7mkxCH6JWfFtCinjL4Ut8iceBnepPeJ+jaKQOj4Euq9io49E0lxrAvwcqOVF3oaNcwR7lfoBsSvKiET0xNacN6rsv7XpxKt0r+bUwYiEQxdSC17mjg/9n7SVSuV7Td2aa7a1a921XaxZ/bU1WKvWulXZ9V2vqnmrOl35lGg5k7LT4aYjDHWWJCJ7ZWJpYyJf5Zn8kj+oDD+5CTmZ2b5mIUcmwBuJGO6MQYzO+bOc26ynJHJeRd8l8qWxCZakGJ1xL7rpljgbToWeF7ARy9tfOicZ5mUCfnXCSTx1nsmdo5cJIuPPI+cH7R+6Hg0cTujyfrIr4/82qhdHbVrO+3ayK2O3cbEDTpLjjGNDQLRbuwctkGxo54h4opPjuaSkaq1CcIWQX+/FGamV1ctzAo9kMR2U46syBu3YtNOypmiByVNsysD3Vm2m1pKUUi0cpUK0ajpDlBi/ZlFBzU1a+EpblD6+01vO6bH/XnzBtYbyNxHpn1jHtHmOR6HQahnar13zE7MSKVTtkMqWILtDKYEGDJiGBhnHtAmPWIusk5kIF8Zj8Iq1EOyO3MJL/+jnGTyNAABYmSaA2SzsycpELIUq0yfVLOAkHXFue30TL57w7uErFDGpxVOfkMMBTBMBVhD8VRCSB4WKOup0Z6WZbIoJvVMRAuPyux36eAqXg+evZITg6m8mc3vfjSjZvta0ZGJwGfFMRJkzVSOTme2KDpLKe3ATOlZ8bsL4asCPsoMYDk1JiKdwUczfFkZTlAIvjCrcFfnnMzoQFH2yk06SHF3iPVOQPRa0nNYfvssV/RFKClPiZ1klLmU3eshm/CMUW41tKpNKk7LP1oMDrM3DqTjF9OZBe0dn3kIKmBLwWUQLmoWap+A4WcJrcnbUVkcYebsTZ9G6q+s12OkyzS9x5FQ+jDQLWIIpQCs0KyU12PRtam7ZEqALZVhIKJKbI0ZJelIbUlEkVIItmNUGRete7zJIB+uUHOlQpaLO5q1QEOQNbo/pbusmXmWYDK/V0ZJrvIdIw8/1tN5ymPGmLOklukFsyNMwxEzojEDoJz/DDOTsCwOMAO1IuUZuSnxNyqWQalTMPpnnCHtLmMgZv9IhUxtxnmoCja9T+KchsKFCgxpD8Z5HcIyf26GX2BqECL21qxS+MofNtehidArbMYCbo/8CHBJoCUpf+eY+iF8goKygqzay3veONOjPFCBEHty4o4WHkKV21Eit5HobiWsDsq/J9By8hxKk6GUkVRYhBWGIpkAkeIxtDBSIE9Y7rbSGCnohBXIBIqHpqKeZ1TjsvQjei46+lScuBDfYVbUFsU4i7hIBE1BCaTuqWj05UBYSuJi/2ayrDcHBYlPppRcTF9sciVdLJ+kbLW8IXUZLtAKSBAr1nYfZuHMKsSS8u+IdHFDa8VzdICWxUgfIRd3NaCOSYmAkb7SWZBZhbbi/JjmNk3qNDNJjBQ/X7xC1lR9qC8gxz1CMqFy/GoB0tBQ4kxoQQyzCY+R0Z9cuNPAGhzEhWcnOE1mEgbFCyT8YaDyRMMsNabktE53m6ASwZhYNDyDgKgJ4vJUSt7ePIeRwOwIOhG3SnZjZrxixi6XfzoLfXKypkpcJ5VOSFnLoSi/p1IEZ/HqKR8cxUQRUyIn6VZmKn/2KVyg5KxK4RQEgCMX64p0q9oWmgpgUxgziJEnNPRbr7sS+AVd9g407Vp2UsIryBLwiSk+SI5eTE5Na/tTNU/5dGqKpoRBsRoQ0xQjHpTDf9TZlgbw8gYXZz+LbweQnaB4HBEn/ulBJ2i+kmSHapC8ogzEgS7kiAd6kiSOz+l6juk5GSz69RTXsfzSpP96Wi8hYV6U8xXT8S/C+1jfA6q7Vrw0FRkwDe8v5pCsoyCgskaQuLJqklkuMCnjHwU7UsuzKKdFqc8gYSg1XYoFtz6/uroxQIHKEx7czOjXUgdMf38l45NKWzAXN1k5HNR8W9WvkMHUICgVOOkwZi5wQ2Bm1TqjFMbEnwM68biYiBDPUoey0J1A6KHTJ57lf9o7FnbUwWcEJs6Bnly8KqyPm1TGsyhhMP2pQHyv8jNBQSWfYjZJnURSq4h4U7mfS0UL5+kTJ/y3yKUB1J7Hcx7oi+9MThcidkkKV5X4v2SBiVcL07NsSPWM9Hikr/o5OZFp0y84fax/CxlMlLpdjgWuQMUqHe0M5x8XjzCk+kt6Y9JzMqWAN9IOFNcTzCUMTU0rWIYpc5YigfSgyBTlvB7sTLkxKZNqZGSc8D2UhPRZa3gSn2d4pxVMVxx/xfec/pJJqxlfttwyZkS2yrcggmHFQow6/6Q2EmT+qF3gUt+SXUK6AQDrvUMKPBOvGU/9B0xNT/N50O0a88eQslkFElVEIOa/E0mqt3RpQMMhmTjDLeMPrMa84sLOjvXcJPOMEh6Yarm9rEZYW0mY1WRG7NPTr46qG4Fs4TjNlBbA5PjUAWDM5a4DYs8s0w+SOwHT0608yhAWBOnJ0FjW7AeXjCKF087pdx38l/XBJNB1Uh+jeFQ5y2pGyYtpzTFDUP9ZCAAK5L7kCkOO1knQ6pS2mDlQ2DnFAEGPqcMLxjloK9SwMZmPCmMrtDJLsuwhDOU0PQaQyNJyjC5z2WVvJj4x5pJ6HQEblNJ25MaJ0yeXA8EFJjoym3Jvoz00MnpN0LayQlXRKVC8cMldjSIrm7QRbWoVTrnOIv2nAyUNPcWSsu4PpxQwkIjqlPKuKtgCJaoyV4jFAxi/I870rdwPqVYCzJSGHWqAIqlOs++jPME0pKF8koaWahukyqiUSHI5HMwHEgu0iPDshBdAtF9xyx1Ghazv29xBkibPshD+56MxmynEqIZFEQf1TbL+Rllcg2l2J7vWUO+xGl1IIVG0E+gRLmlbAauxZzqYGZrLyMKcnX59uvPzaCRGYKR6Lu9Ewy8TNN38fySVXNHPyDWidHSK1VQA6mQHnG46SNelrDfirE1cYBFszrPqR7FzVus1Lr7GrHpHyv1l+TiHGp5FsYjyvkvlP6crlTk/pSQearBnE/8UWe7GJ5BnuvDyyDiCiQzJbx0pLxjygEohgkmUwcxcJNVrmzgl3lEqHUvBD9EUi2GK4ZGOTTHwBdOMNRYXM/EITUy8xXwnyOAapuJqTQVPfBTAs/6MsBYF6WynUNiVROPuR5/eioO4BKLmyk4jp1DwJiRAQQMyS3lhydJgno6NF3G+3b9k5BfARRRXzt5Qwzy1mkSYERXFOKPkaggAC7EYuoRDI+n3AiKAlGkLcqXJ2j7F06UtnqND4pwha0S2D5d+C23dFjWJfEjLyawSHDC4jNalQuDfHRNCHpK8E6y+j+iK4RR4op0lrPa+U3MfBuQ9IP7lKK1h2XIUOIE02+AZ+6108HFWQOUSlaQsRKT+sCaaxSEBimgNAf0MtU7ukOQzKoAJedXLRUkmnWBSj5OVUUn3OjUPYUkLTnb6eFin6AxWZgN9XITPF8qeJFbWaRBNWc6dJQ2I4m61H0i6chGWp4bPUDRhKeMq06pJ+SPLA1s0Y0gHlkDZkmQayMwllGgtVfdx8HWGxrkYZ2a6ByctO7SCqtiBTAvG0x3JXgQ4mPQTdFx9Rhzl+QJEDVFWkVzkYCZDoHDuSE1UqbNKEy8VrDnFFsKMtCm9y1Y1q1JRqasptvYQxbOePHGZVSmOlu6rYnCOKsyeaNHRCZ89yxkPi2mWmFPmz1i0HyJ+ccbIj1kw3OPRn6k8HJW34sXj3BizghCJroRJJa92FTnLoB1OwRom3RPskywX2SfJsqflYsoOiFEkF2c+QptBYtwkyAGMjASQt2geWiaonXxhOJ+W8l+O8bKZ/qZKLda/fEonQKq3UkSmqZkzU0Gij4wDRhJzIuU0aFNubpnAgiA2VUoy0SznotZBZEqnnL/kC0m2NzMHq7P/T6CAlkJtiuIIVcJR5FSxaGcg4GHy/AkfOyM3VFAtU/q2MC2+0cevoGGQCnpj1m5acd5ONa6F8hastseQHSYizorwHD+P7Bggdx2q7M2NCOdTAnpJXsZuyKj4hAaQwDbGrDIx/kOj12tinARSLF+leeOoZaHIbZAfAOsJPImbLnnKCPKMULQDwbDINQvrFmmqYJuRW8ViWS/TFTBzZZTvw6khD2s9UCH5p0KbIc5+CXCSwzGWrkvxzzE1j2UVVFqGaUhS/6woR7X+S29UAXubIcRS46jU1wSZWL7QZSq4midDMZSkvFSEm2bPLgvZC1TsgKDNFrYA6N1lR+HhGRI7zrEWMjBK+99I/bTQQTZa+i7CG7LeCKVeRuzqQLkmg15vS4mwjuucyi6DTsAUqj3xOhbnRRR1cJrho1A4FKVYgeQtFX9aRzWF2mIqMz8F/zi1yOm8gvAfsX7sWGlAsmYbYjCgAjO0tEL3z8RdkCwJe1gBN5F3KTg9kHJBwMlZxXnWwmVAYzEeVaBaIVtCTtwWl5KolKZZICnVjtMUDuJRjW2naJ3jSkvOj2U1K5yhajlWfp96iEkUbb3iw4SGbTOKOMo86eHCss1TK3qkm1iS8EnLTSUhSmFmpCd1Kj3Ki0dd7+mY82MAPUBgDnsZ3TCL49eI3kk5lyBHDKIWi8VF/MLBZRKOiHuAHIjpASQgV7wy56KUq7OJNu9UnYXKM8tzGfkl635eXwDwUyURC2tV+CtxySyrVAIHsgAHQxQe2fNN8m0Vs4zOQawXYUh/vBTD5Nw10UqBJIWetUZGjTRJTZNyyeDjEJtTFRh6EcERVSQYZDJM+cIrV0cc8yg3WlohmSQHiPLhONaSywHOwmdldGI5TZF/MtLgUYBLKCvNZS9HGpmjkPNMMoo437WFKAIpqi3uA3gq+EGeyWImxvETRnoDhJAjlKEclBppt8ciSTYb9VTySrrRc1ImOM2PQ40uuw+5u+HcU0u9lB4xpYyuUI4qgguEvVP17MIBrpe3EBGbQCF+VNoEEKYpNbrNRSFYn+Lwy59J2SYIZdZwjn3I7TiKgliPieRGSxJu0t8Z00t6Zhho3X4eWIsSC1NLg9l2ZCThREmeKBpFFCGtrGViSiYKXddNrZNR6INRDmzKM2naJ6EV7TxDbqsVI6WoGkkhrWoCoDB8T9sHstQe+XKWRnPMdHOl9qYEH8/wzfC0sh3TzVEp0QPRDJE8tNzUzBhvqHpPXlZQO1L9Xwc/HJEUfVCRQknFmjsZzMSOlvnv2x0Sz8461eqhYg2Z7xyesUyW4t9ZK0GlAExzAuhOlzXInovRkPpsqXQUSJeRMtSVyMPSyik8TSxCveX4A6DpX6UPZaHdkTMyJS7gVF8JE15hNeJ8uxfbumSH5wyjm7LykUaE8gxprlQFyOEF60waPWfTZzNLMQOV8R5cOAnlAn5mHyhLHBS7QRSCa7HG1cW4EZ95qU2S1XX4AzzlSDqxt4g77alnX/wccSLK0xJqBpTPidVcSnrwpWpGRr+F2N0AXpBaR5LpCzAoH2DIaSzk5i6/XN3imaWMTGzepUqNZU8HaC9wRJUW2bvFi5J4BVJpUiwY45KWpdIWeWwfH34uTqL4nqcOcIZwPjbdnf0sVG8shCNl9yVKZXG2x/UxgqCEhZmQpt+8tNXl6TxILk9eRH1lLLyN/M0gHh+oHlMzVYVSp7iqxJVXDpbAqmdgNZeXbXRhI2RiL3WUyLBojniL6bxrnWhNumWaQQEo/huIHoJnwG2Eaj0JHoGksEmhU5iFG9aqVIYe2WqzKeeVZpJqy5lH7mBy8yh0N8iJaSgw/gWOsbBTEwpMGDBFGdJSCjENnWaFyFzI6aWQSBPIE10WQsmwxStPi0K+InA8IHgl21FfcAasSuKGZh6VH5RiUkw5dyW+ZEp9NaX8SrQ+6TvjKU79lD1aAMGl8iZ+uuKpoykMJzTVlwvSPIg8M57jZy6Gq8UlbPRnEF4AMHSxDx1PyKS9TurClVVpAk9TSc2Kgc5BfA0m9ozS+jSli8mnaQp9jvtz7U/IhVUQnyiOeV7/peWh2MLlG01RNkFi101Udj/Koxa1i4pjp9LrWfpwwvxFvoHyr0piic1qTptG8wCmmHOK1wK9BCRtPZoaUgh8n1aBCM1MMo7lBxlFER7NsSijNotSVglBaHo8otphVj8H5B5KV9NCkA+aKvOz9Iu0qQmcgxdzhBllmGxCu6p5ptYukvyFQQUuNOVyAGB4qjMpwRasNNtCVyE+UCi2dBBnKO08CDJFO005WXaFLAKRtKwP+vZglT+MmHkdOwLVeEF2blJgUmxRuVira7hT0UvmBa5awogRqOZkiUl77MQ5vx9SLpigolx+/Xk8nb28iWAY4aBp8is4Uzw1442CN1aOezmplQuSWByrS0xVyowE2GWVSaob/E5qBLECDrjjULWiPNzz311QJEgKb5kErSMesHrGHOXgAZ0tevY8ds7j+XQFSVQcRMhgbmaE3k9TCiXmSi4wOGt0BDsNZmqXCK2G6OCahakyTZRZiNCgcGpqIht/SrkrEbR1FNMkOUFNPd+UET4+xCKKRfxA7FlwCNX8Svjiwiyes/0vBwug8CFFVzVL+o3y6WWMD2t3nOgjAAK89OxA9pBiMiJykzj5krqXFfr30/z92BTJ36mYSkIVOSQ2XFEUJvbBmsYv1b95whgnBTJiJVtPhOkB4NwacyIRd79Q2GshO5p4N8m4KRTGb3GDCRpINuixDopkNZVjibiQThTpFlaZsUo8L9czsn1ApCyztEdpx1PyEz4XtyywYso5bA71JmmRoZnCiCkpTZbO5+94hiiFCk0GlbXWbGoTiql6CdeQvZYUWIDlqqgYZUjABumijZJTMZYlnP2UQrqFLKpO2Ljcv6X7XidbIatciaGTzrXFjmMw+tROmTS8BwW4HNIOCJEKXDys8iNlJVORnvYCrBr2xpEVImtUpQDJzwBQDhTS+xOJHpL4XJhYQteXsUOkNwRq8awBH7ID56k6t7BFxvwDTHeqpCvjLMSBNNnlvo/Aaa7EMzU4hfwUqmwTJABFlZUPSpw4TL1FImqNpxgnKHFD6VyFMvulvnN6r8A0cyNUotEBZTREemnztxuvSlJ6+Sze4TTk0OE+iA5JtejnCCCJ5mSeWjOJuzEbqRK1AVn4kjUrMXKzLJrBJQkn5VNIqYQGPARRuSKgU0FaYF2VSdGMkDxKgw9LkkjZb7IYy2QZc/byqcK6nL1xjmTjcjGZ1ZxpjSIMaLOXPZpBlFvnQmicZt54bgdecQpyiVKMpVsMKcguShSbS9kYQJ0oyF1psopmPmRaSKiTV0ZAJ6k+Q2l6WMAzU9OomUssaWrBvwfhDZBCckzv+/LUg2V1U1AbBBlTbhORnXF6lSMyHvK0Lb4eLAps5BZRCE0FtlXInjOgQT9PYLGFI5JhzYzSoi41otr4ki33kMbUvHeNN42IBMoQh64CkFapCLAJzSrrqG7KjmQ165G8Ly6ZYWWAlNyRFGZK0ZdCfOTQPqOsY1cuuBnOAKV04dx/sZhosGr5stcE0tvKMQk33uosiTHWmr4ihKJ8vxFYuoZUcKEyNiqgHU+NnZX+IHdT2g0r/R/5/5MCYWjhtEjzSrOPyPpLnAudZS0rh5TcE69jDgFaLKse0ohEKeMiXaOy1MviuebrReUsMoEiQy9gIhWiczrUSdj3AFF1RxmHRnkgrxMF5T76WEVZIqpozEjRKmbbuTfvFrAC1lhIZWgaOij98NMOWAj5tpCjF70C5Nq4oDZCy/80rzPf14piyLO2hUCOboIubiEaPECgHLooetU+SHkNILhwBDT1rjTgDkltUJlRyj8oMkQliL6Mm1GRgyWFJROYBRI3kznTB8JFmkIZQ5dCojTJCKQW9EXzrjZIyGaZGPyULX7ZscsqY5WL7TeVAPZuohM3EyqvMrsPIk2VpfUGcr+YjnMpJJ1Coie12qx0x4JizSUcqSAK6nx3gS+J4RWcM3/KHX+S4abnJ9vv4q3k5bUzY/sr9z+skiwL8SgVxhGWH7AUZaUmgFWER7F/Fs9jgTFFoYUiwZj2cghMUgWg5MfE4o4grRvixLAK/gNh6lJfs3DB6u6Osv2DlbeNld5efFIRRqJ99wW0CzMUEiwxiFn7CxSrR2a5h0BeZjCL34KL4BkW3JSy+Q8MNhbIJjnAx9QVUe4pYxvHclTDytIl11QJls5aYC1BCsnWr1xtUPZj1sq8TICTiR2qeZrax0552YLFDjkVmAuDIZAzydLEMyrcFdUBspsvCUdq35UoYUmsLQ7TacB/9ojQFLJgCkPxnPewUKROB1iINQyXxHAl3I5qMFLXPosxdjh7wnSUpHxEtR+zXXji4oLwXxealkjZzsVggUSNeXmqKAdprb3st0BTshFlt8iILHkyiQkag4qFmQTRxfbMqNkmEtdM0PV10pVOipX+/iIenIVWBXm6Tep0p6l2oNCZK5ItT2POMD1elipn0uH1Wh0gj7DSxkclojv/wkLhCN1o5E3vrOm3gPFCsH1lonFQ6jGKITE9J9FM8dohGZqQZdcMSfrM01VvAaeG8+KRMCneIcfOQLm99LATudOLr0KGUKTbgGmWx6zLt9PIekqdHpINhMUsPQ3nxPIdmAHGDvCHtMnLM1g536CSZ6kiXNKKEDkIiORRKMx/4uiJqojEdEBOHSNZBIpVJSR2ifVRAXkns0kHI5glUDyr11gfCiwELuylajnW9Vm3iVwC6mdITDtYdjrdFx1vN8j5Z2B5lUZS1vQAPbrLUvJ4IbCogzTPWSw2WdiP0l2fiTc5chFy1MDFCD1fXWIXl3YJyP2qJhrKJW6eDs4gHOXtJAu4KwrPndApqZaVtBEyfJddMdxZmZAVhyI9A4LSJf8sVUJpvU4hJc3NRHHZaPGnZtLrojztzAha65PGSaQdNJgKRSjlCwr8UwJntTA9tt5amibvW5Zba7mKi20fSIOMprBGBUAG8Ysu9qswpNFQ+QfhEO2pQV5BZ8+QguICzgy1vZ+aH5UhKNNIcoX1JF2qQIigy55KWOvF7D/vj8HTTwtEmIfMwsuFVFx1lt0aZtpyoNm/Gs4rNkAiF4SKDxl5cJ0gtii+5mLvJ/ykU4qZwvAuzk+e8R2lHUeJbMnGQzUL1aEW0qvMqVpRpBeQZAgnhEZhN+DCkKBkZSqAkJPqIpPUcmNTuhg0BCavQ2QCl4ZSkdzJhA46WnsEoUBaniExLAy9zZPHEAv4t0zkgfhdmKdmmAEdhllT/dTm5y6SuSh0DU1x7CPfSZOA0taBNVJIYNqELIgECA/yC5NrLKYCccSUNUwad1AkubCGAgv3cEnCFnMuFE9OUrdlC1BWTeVzg9PZIc9GPUtiiUhUhsB88hoB/2NShrG4jgdDG5anknryFcFRDMLEhd4z2b2TqFnriol19yI0oiyIt2L5CRZKQs5KHN2ckEwPEYOTtCZhBrMMISzrnHCdsJoqchIu5vUea+toxjZrtwKi5Krwyxc5vhmPWwiHAkJN1J0gQIEBChMTlDoy0SUkT6WUVCRLemIQhCaFo4Ev7wz0mSGZz+lM4wy25YJWRsVcPX3LJou/Wea4ims9aQCEWy0lrRUY0pzzxZrLLMAZ+h5gBTTTMa5iSwnWxUEpHUlGIkjUm1BVm/TmcrRPIHrOkBfPSWhMAkE2Q1QGge8T6tdpJ1LKimCVaRYjvsikeMdChU2xW4sKd05iGoGRZc4FazJSZGAmNHVXkmQVZU1R8aU9nYtlHaa8Rdm9pEUQSBoVlnbIKekT6WtTzptTf4ss3uaZucaQ3oCUr5TRpiwmpXF3VeQdhmWRMPoF8CYJLYuSM+ZvJalEsghBtS9C75G/W4GFSA1lLlXynHtq/5iLM6Gql44fyh02ssxEzn5Z+PPVuB4ghok/ocw3ZxXTIEs7kgsvhdwopOBkKzNXdo5aTp3ZlwKXBq2xYqXzLQogMKAVm3G/DDVWYZ1QKVbh0pxGWqCHshEhvYwSLRlmZNbJtAKUWRjKYciz0jPk5JULiISmgGi1CqgIM4faCsnVqxo6hL+Bgd7sTJlMcrsqbAEsI8249BwRRKRxaFmUBoOgm+7yp5OJiFOpmhI+KTSWQQiV30ZSWuQC+pcdMzLhfEpIk1xQAlHGEvWR6Ks8PVOWlr/ixubCoFVIaoUgL4JhYqXGpZlTD85jUq9STFDGjkecq4zR4zy0yE88CsybbE106w9thZG5T7Pn8iDMpuRr/XAOHKUiOEDBBET9pgW4eI4HiKRtgMU3WyY2TpsMUVhUJNklDcIkzbSY3+jlOzDDDqFlx5j9o2W5NDIMG8UOXFsh/77xTQ4tfA7YA1QyNPBcqJJCAcRSA5TXtSrjtpS7Tek9WZWEM0JW9MALymIHFWMi+N1aYZN1/UaR9WVYgxYL6q0KdIpwx6BiHVBJpLhYYd9dRt6JyGdSkyS5dRAXjeB6yHlGKpJFsZ4pvakWmoX2D2JcIcQpkd3C0MqYSs1E5g1zCgkQUFCmQo5EiQ2r7IiQpjWSdGO5O0cSe4fNaNbTsfyxQbrGLey36rZhvWwrFvvaCaF+SCQH3AzSGtIgRKwxGVO8TWSgEAgasqJoJbNim8phn7Q/5v+XfwY1eBNp82X+XJRolhJHvfRWLyWr7LD4MbHS3iXIL+dIvixtzqGJef5SaveLda+wYpJRYJkSVCNrFXHhEJfsACmfYMlvFnt7NS9LlTrnc0sKdpOiHBrIw+pDLeZ+Mv8KIsdICQO9yFeSTm5FPxIM7lI8DIBVqEMJUi0GfQo+wMmhzwiTh4zT7dxIif9JXPjLSb13TDmMSTZRamAmdiRMyRYk5mOzEzVnY/IgZ1Kk5sLSDKLFjihOCRDUOT+96ysLPKYiExKY6pfz5BwmKY6UBhyKm8/qwOO80MyuLmZBZcxGsKjsjXOTwp+jdP0s7QwF2UCOCWM+odrHoKTWixSCMLuZGgFLSk0+C1OhJmVa2QVKLBXPqTg1iO5VBj+HG0z35CgEqhECnFPAxLCCdcY8lF4A+afJjRSLecZUhcxTyYuCy1DksZt8KUOBIoXUJlG9gQIYwTGEh0qkRqFZLuo0dcezKmZL4bIHGa1IlwLAZI1j1jOg8gSfWhpAIqkS3eG5hsJp/iq/KM7LgVJ0RxC6iNwbTae4q3EQ54DIqf0nTyFhlKd0lkYfhaWdZvUP0nyZwF3BRUE6+BNQfA+ApNNc7M2hR3mYRc7PWykoQxNJ+AckZJ2neuGZZCk9yCcARv4SYIan6++xNqQ1P/TcPKq6OjsPku6eFSUVU2YN+cvVjhQk2mzBrZuS42UsF4SokDFDjKB2l8U4IR1FxbvBQlNEsoDlKS8BzzJRzPxvi6jnYkCX0jmnVvvllAVTazBM+XXKVVnankhZBWYLeyHCCbSKQ4JtoNPUgGlZiTLXQuf/zZBX6mUlOplFR1sj5WGRbILi0WcqHlAqS08JrWGTF2jJc8OspK9TPLXpElqnyqOcxPPf0/fPVGDOniUka0jprZfuAqkwm/kgglDo60vVHzJ+yJepUfzcP6+WGf3/+CuL43vWTzLjC5v+QP6e/6e/jf9fH//0HIj5//sbQ+Frfa7ZDkrNBmY9Rjzrp5qhpWGCZr/Rc8lJZ31WTOV9w8wCPCi4IiD8v8rSWe3DCJeEAAAAAElFTkSuQmCC");
}

/* ── 2. Reset & Base ──────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  height: 100%;
  height: 100dvh; /* real visible viewport height — avoids the app being taller/shorter
                     than the screen while the mobile browser's toolbar shows/hides */
  overflow: hidden;
  overscroll-behavior: none; /* stop pull-to-refresh / rubber-band bounce from making
                                 the app feel like it's "not fixed" on mobile browsers */
  position: fixed;
  inset: 0;
  width: 100%;
  font-family: 'Vazirmatn', Tahoma, 'Segoe UI', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body { transition: background .3s, color .3s; }

/* Global fast-tap fix: removes the mobile browser's ~300ms tap-recognition
   delay and the gray tap-flash on every clickable element in the app,
   so a single quick tap always registers immediately. */
button, [onclick], .btn-primary, .icon-btn, .tab-btn, .bottom-nav-item,
.home-folder-item, #fab, .list-row, label, .kebab-btn, .chat-item {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* ── 3. Light Theme ───────────────────────────────────────── */
body.light {
  --bg:    #F0F2F8;
  --bg2:   #FFFFFF;
  --bg3:   #E8EAF2;
  --bg4:   #D8DAEC;
  --bg5:   #CDD0E8;
  --border:  #D0D3E8;
  --border2: #C0C4DC;
  --text:  #1A1D2E;
  --text2: #4A4F6A;
  --text3: #7A7F9A;
  --text4: #A0A5C0;
}

/* ── 4. Scrollbars ────────────────────────────────────────── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--text4); }

/* ── 5. Animations ────────────────────────────────────────── */
@keyframes modalIn {
  from { opacity: 0; transform: scale(0.94) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pulseSend {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.18); }
  100% { transform: scale(1); }
}
@keyframes shake {
  0%,100% { transform: translateX(0); }
  20%,60% { transform: translateX(-6px); }
  40%,80% { transform: translateX(6px); }
}
@keyframes ripple {
  to { transform: scale(4); opacity: 0; }
}
@keyframes floatUp {
  0%   { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-60px) scale(1.4); opacity: 0; }
}
@keyframes tdot {
  0%,80%,100% { transform: scale(.6); opacity: .4; }
  40%         { transform: scale(1); opacity: 1; }
}
@keyframes bannerShimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

.shake { animation: shake .35s ease; }
.ripple-el {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
  transform: scale(0);
  animation: ripple .6s linear;
  pointer-events: none;
}

/* ── 6. Auth Screen ───────────────────────────────────────── */
#authScreen {
  position: fixed;
  inset: 0;
  display: none; /* پیش‌فرض مخفی؛ فقط وقتی مطمئن شدیم کاربر لاگین نیست نمایش داده می‌شه (رفع فلش صفحه ورود بعد از رفرش) */
  align-items: center;
  justify-content: center;
  background: var(--bg);
  z-index: 100;
  padding: 20px;
  padding-top: calc(20px + env(safe-area-inset-top));
  padding-bottom: calc(20px + env(safe-area-inset-bottom));
  overflow-y: auto;
  overflow-x: hidden;
}
#authScreen.shown { display: flex; }

/* ── Ambient background: aurora wash + drifting brand-color orbs ── */
.auth-bg-orbs {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.auth-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(70px);
  opacity: 0.5;
  will-change: transform;
  animation: authOrbDrift ease-in-out infinite;
}
.auth-orb-1 {
  width: 380px; height: 380px;
  top: -140px; left: -120px;
  background: radial-gradient(circle, #7C5CFC, transparent 70%);
  animation-duration: 24s;
}
.auth-orb-2 {
  width: 320px; height: 320px;
  top: -80px; right: -140px;
  background: radial-gradient(circle, #FF4FA3, transparent 70%);
  animation-duration: 28s;
  animation-delay: -6s;
}
.auth-orb-3 {
  width: 300px; height: 300px;
  bottom: -160px; left: 20%;
  background: radial-gradient(circle, #36C9C6, transparent 70%);
  animation-duration: 26s;
  animation-delay: -12s;
}
@keyframes authOrbDrift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(22px, 18px) scale(1.1); }
}

/* ── Signature: small chat-bubble particles rising slowly ── */
.auth-bubbles {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.auth-bubble {
  position: absolute;
  bottom: -60px;
  border-radius: 10px 10px 10px 2px;
  background: linear-gradient(135deg, rgba(124,92,252,0.16), rgba(255,79,163,0.12));
  border: 1px solid rgba(255,255,255,0.06);
  animation: authBubbleRise linear infinite;
}
@keyframes authBubbleRise {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
  12%  { opacity: 0.55; }
  88%  { opacity: 0.3; }
  100% { transform: translateY(-115vh) rotate(6deg); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .auth-orb, .auth-bubble, .logo-mark { animation: none !important; }
}

/* ── 6b. Boot Loading Splash (تا وقتی وضعیت لاگین از سرور مشخص بشه) ── */
#bootLoading {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
}
#bootLoading.hidden { display: none; }
#bootLoading .boot-spinner {
  position: relative;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: conic-gradient(from 0deg,
    transparent 0deg,
    rgba(124,92,252,0.10) 60deg,
    #7C5CFC 200deg,
    #36C9C6 300deg,
    #FF4FA3 355deg,
    transparent 360deg);
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
  animation: bootspin 1s linear infinite;
  filter: drop-shadow(0 0 8px rgba(255,79,163,0.35));
}
#bootLoading .boot-spinner::after {
  content: '';
  position: absolute;
  top: -2px; left: 50%;
  width: 9px; height: 9px;
  margin-left: -4.5px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #FF4FA3 55%, transparent 100%);
  box-shadow: 0 0 10px 3px rgba(255,79,163,0.75), 0 0 20px 7px rgba(124,92,252,0.4);
}
@keyframes bootspin { to { transform: rotate(360deg); } }

.auth-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 360px;
  background: rgba(16,18,26,0.72);
  backdrop-filter: blur(22px) saturate(150%);
  -webkit-backdrop-filter: blur(22px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--r-2xl);
  padding: 32px 28px;
  box-shadow: var(--shadow3), 0 0 0 1px rgba(124,92,252,0.06);
  animation: slideUp .45s cubic-bezier(.2,.9,.3,1.1);
  isolation: isolate;
  overflow: hidden;
}
.auth-card::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1.5px;
  background: var(--grad-ring);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.55;
  animation: ringSpin 6s linear infinite;
  z-index: -1;
  pointer-events: none;
}
.auth-card::after {
  content: '';
  position: absolute;
  top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(75deg, transparent, rgba(255,255,255,0.06), transparent);
  animation: authSheen 5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ringSpin { to { transform: rotate(360deg); } }
@keyframes authSheen {
  0%, 20% { left: -120%; }
  55%, 100% { left: 140%; }
}
@media (prefers-reduced-motion: reduce) {
  .auth-card::before, .auth-card::after { animation: none !important; }
}

.auth-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 28px;
}
.auth-logo { position: relative; isolation: isolate; }
.logo-mark {
  width: 72px;
  height: 72px;
  border-radius: 22px;
  background: var(--logo-url) center/cover no-repeat;
  box-shadow: 0 8px 32px rgba(124,92,252,0.4);
  animation: logoBreathe 3.6s ease-in-out infinite;
  position: relative;
  z-index: 2;
}
/* نور/هاله پشت لوگو — یک هاله‌ی نرم، دایره‌ای و کاملاً ثابت (بدون چرخش)،
   با z-index پایین‌تر از خود لوگو، همیشه زیر آن قرار می‌گیرد */
.auth-logo::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 118px;
  height: 118px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(124,92,252,0.55), rgba(255,79,163,0.28) 45%, transparent 72%);
  filter: blur(22px);
  z-index: 1;
  opacity: 0.85;
  pointer-events: none;
}
@keyframes logoBreathe {
  0%, 100% { box-shadow: 0 8px 32px rgba(124,92,252,0.4); transform: scale(1); }
  50% { box-shadow: 0 10px 46px rgba(124,92,252,0.65), 0 0 0 9px rgba(124,92,252,0.07); transform: scale(1.035); }
}
.auth-title {
  font-size: 22px;
  font-weight: 800;
  color: var(--text);
}
.auth-sub {
  font-size: 13px;
  color: var(--text3);
  text-align: center;
  line-height: 1.6;
}
.auth-steps {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-bottom: 20px;
}
.step-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--border2);
  transition: background .2s;
}
.step-dot.active { background: var(--accent1); }

/* ── 7. Form Fields ───────────────────────────────────────── */
.field { margin-bottom: 14px; }
.field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--text3);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .4px;
}
.field-input-wrap {
  display: flex;
  align-items: center;
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  padding: 0 12px;
  transition: border-color .15s, box-shadow .15s;
  overflow: hidden;
}
.field-input-wrap:focus-within {
  border-color: var(--accent1);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.18);
}
.field-input-wrap.valid { border-color: var(--online); }
.field-input-wrap input,
.field-input-wrap textarea {
  flex: 1;
  min-width: 0;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  padding: 12px 0;
}
.field-input-wrap textarea { padding: 10px 0; resize: none; }
.prefix {
  color: var(--text3);
  font-size: 14px;
  font-weight: 600;
  flex-shrink: 0;
  padding-left: 6px;
}
.field-hint { font-size: 11.5px; color: var(--text3); margin-top: 5px; line-height: 1.5; }
.field-error {
  display: none;
  font-size: 11.5px;
  color: var(--danger);
  margin-top: 5px;
}
.char-counter { font-size: 11px; color: var(--text4); text-align: left; margin-top: 4px; }

.eye-btn {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  padding: 4px;
  font-size: 16px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .15s, transform .15s;
}
.eye-btn svg { width: 18px; height: 18px; }
.eye-btn:hover { color: var(--accent1); transform: scale(1.1); }
.eye-btn:active { transform: scale(.9); }

/* Completion bar */
.completion-bar-wrap {
  height: 4px;
  background: var(--bg4);
  border-radius: 4px;
  overflow: hidden;
  margin: 8px 0 4px;
}
.completion-bar-fill {
  height: 100%;
  border-radius: 4px;
  background: var(--accent1);
  transition: width .4s ease, background .3s;
}
.completion-label { font-size: 11.5px; color: var(--text3); }

/* ── 8. Buttons ───────────────────────────────────────────── */
.btn-primary {
  display: block;
  width: 100%;
  padding: 13px;
  border-radius: var(--r-md);
  border: none;
  background: var(--grad);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  margin-top: 10px;
  position: relative;
  overflow: hidden;
  transition: transform .12s, box-shadow .15s;
  box-shadow: 0 4px 16px rgba(124,92,252,0.3);
}
.btn-primary:hover { box-shadow: 0 6px 24px rgba(124,92,252,0.5); }
.btn-primary:active { transform: scale(0.97); }
.btn-primary::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(75deg, transparent, rgba(255,255,255,0.28), transparent);
  transition: left .55s ease;
}
.btn-primary:hover::before { left: 140%; }
.btn-primary.small { flex: 1; margin-top: 0; padding: 10px 14px; font-size: 13px; }
.btn-primary.danger { background: linear-gradient(135deg, var(--danger), #e05050); box-shadow: 0 4px 16px rgba(255,107,107,0.3); }

.btn-secondary {
  flex: 1;
  padding: 11px;
  border-radius: var(--r-md);
  border: 1.5px solid var(--border2);
  background: transparent;
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  position: relative;
  overflow: hidden;
}
.btn-secondary:hover { background: var(--bg3); }
.btn-secondary.small { padding: 8px 12px; font-size: 12.5px; }
.btn-secondary.danger { color: var(--danger); border-color: rgba(255,107,107,0.3); }

.btn-text {
  display: block;
  width: 100%;
  padding: 10px;
  background: none;
  border: none;
  color: var(--text3);
  font-size: 13.5px;
  font-family: inherit;
  cursor: pointer;
  text-align: center;
  margin-top: 6px;
}
.btn-text:hover { color: var(--text); }
.btn-text b { color: var(--accent1); }

.btn-back {
  background: none;
  border: none;
  color: var(--text3);
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  padding: 4px 0;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.btn-back:hover { color: var(--text); }

.icon-btn {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  padding: 7px;
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background .15s, color .15s;
  position: relative;
  overflow: hidden;
}
.icon-btn:hover { background: var(--bg3); color: var(--text); }
.icon-btn:active { transform: scale(0.9); }
.icon-btn.on { color: var(--accent1); }

/* ── 9. App Shell ─────────────────────────────────────────── */
#app {
  display: none;
  position: fixed;
  inset: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;
}
#app.shown { display: flex; }

/* ── 10. Sidebar ──────────────────────────────────────────── */
#sidebarWrap {
  width: 320px;
  min-width: 280px;
  max-width: 360px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border);
  background: var(--bg2);
  position: relative;
  height: 100%;
  overflow: hidden;
}
#sidebar {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
.top {
  position: relative;
  padding: 12px 16px 8px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% -10%, rgba(124,92,252,0.35), transparent 55%),
    radial-gradient(circle at 88% 0%, rgba(255,79,163,0.28), transparent 50%),
    radial-gradient(circle at 50% 120%, rgba(54,201,198,0.18), transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1, var(--bg2)) 100%);
}
.top::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 90%);
  mask-image: linear-gradient(180deg, #000 0%, transparent 90%);
  pointer-events: none;
}
.topbar-row {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  gap: 4px;
}
.brand {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.brand .mark {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--logo-url) center/cover no-repeat;
  box-shadow: 0 4px 14px rgba(124,92,252,0.35), 0 0 0 1px rgba(255,255,255,0.06);
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.brand .mark::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,0.55) 48%, transparent 66%);
  background-size: 220% 100%;
  background-position: 130% 0;
  animation: markShine 2.2s ease .4s 1;
}
@keyframes markShine {
  0% { background-position: 130% 0; }
  60%, 100% { background-position: -30% 0; }
}
.brand .mark::after {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 16px;
  background: radial-gradient(circle, rgba(124,92,252,0.35), transparent 70%);
  z-index: -1;
  filter: blur(6px);
}

/* ── Clean, modern header cover: soft animated aurora orbs, no clutter ── */
#sidebar { position: relative; }
.sidebar-ambient {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.sidebar-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(50px);
  opacity: 0.22;
  will-change: transform;
  animation: sidebarOrbDrift ease-in-out infinite;
}
.sidebar-orb-1 {
  width: 220px; height: 220px;
  top: 30%; left: -80px;
  background: radial-gradient(circle, #7C5CFC, transparent 70%);
  animation-duration: 22s;
}
.sidebar-orb-2 {
  width: 200px; height: 200px;
  bottom: 5%; right: -70px;
  background: radial-gradient(circle, #36C9C6, transparent 70%);
  animation-duration: 26s;
  animation-delay: -9s;
}
@keyframes sidebarOrbDrift {
  0%, 100% { transform: translate(0,0) scale(1); }
  50% { transform: translate(14px, -10px) scale(1.08); }
}
.sidebar-twinkle {
  position: absolute;
  width: 3px; height: 3px;
  border-radius: 50%;
  background: #C9B9FF;
  box-shadow: 0 0 6px 1px rgba(199,169,255,0.8);
  animation: sidebarTwinkle 3.4s ease-in-out infinite;
}
@keyframes sidebarTwinkle {
  0%, 100% { opacity: 0.12; transform: scale(0.8); }
  50% { opacity: 0.85; transform: scale(1.3); }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar-orb, .sidebar-twinkle { animation: none; opacity: 0.18; }
}
#chatList, .home-folders-row, #globalSearchResults { position: relative; z-index: 1; }

.aurora-cover {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 150px;         /* extends down to embrace #searchBox too */
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
  border-radius: 0 0 22px 22px;
}
.aurora-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(30px);
  opacity: 0.5;
  will-change: transform;
  animation: auroraDrift 14s ease-in-out infinite;
}
.aurora-orb-1 {
  width: 190px; height: 190px;
  top: -80px; left: -40px;
  background: radial-gradient(circle, #7C5CFC, transparent 70%);
  animation-duration: 16s;
}
.aurora-orb-2 {
  width: 170px; height: 170px;
  top: -70px; right: -30px;
  background: radial-gradient(circle, #FF4FA3, transparent 70%);
  animation-duration: 18s;
  animation-delay: -4s;
}
.aurora-orb-3 {
  width: 150px; height: 150px;
  bottom: -90px; left: 40%;
  background: radial-gradient(circle, #36C9C6, transparent 70%);
  animation-duration: 20s;
  animation-delay: -8s;
}
@keyframes auroraDrift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(10px, 8px) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .aurora-orb { animation: none; }
}
@media (max-width: 380px) {
  .aurora-orb { filter: blur(24px); opacity: 0.4; }
}
.brand-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.brand .title {
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -.3px;
  color: var(--text);
}
.conn-status {
  display: none;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 600;
}
.conn-status.show { display: flex; animation: connFadeIn .2s ease; }
.conn-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.conn-status.connecting .conn-dot { background: var(--warn); animation: connPulse 1s ease-in-out infinite; }
.conn-status.connecting .conn-label { color: var(--warn); }
.conn-status.offline .conn-dot { background: var(--danger); animation: connPulse 1s ease-in-out infinite; }
.conn-status.offline .conn-label { color: var(--danger); }
.conn-status.online .conn-dot { background: var(--online); }
.conn-status.online .conn-label { color: var(--online); }
@keyframes connPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.7); } }
@keyframes connFadeIn { from { opacity: 0; transform: translateY(-2px); } to { opacity: 1; transform: translateY(0); } }
.me-avatar {
  cursor: pointer;
  border-radius: 50%;
  overflow: hidden;
  transition: transform .15s, box-shadow .15s;
}
.me-avatar:hover { transform: scale(1.06); box-shadow: 0 0 0 2px var(--accent1); }

/* Tabs */
.tabs {
  display: flex;
  gap: 2px;
  margin-bottom: 10px;
  background: var(--bg3);
  border-radius: var(--r-md);
  padding: 3px;
}
.tab-btn {
  flex: 1;
  padding: 7px 4px;
  background: none;
  border: none;
  color: var(--text3);
  font-size: 12px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  border-radius: 9px;
  transition: background .15s, color .15s;
  position: relative;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tab-btn.active { background: var(--bg2); color: var(--text); box-shadow: 0 1px 4px rgba(0,0,0,0.2); }
.tab-notif-dot {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--danger);
  display: none;
}
.tab-notif-dot.show { display: block; }

.hfi-icon { display: inline-flex; align-items: center; justify-content: center; margin-left: 5px; width: 15px; height: 15px; }
.hfi-icon svg { width: 100%; height: 100%; }

/* Search box */
#searchBox {
  position: relative;
  z-index: 3;                 /* always sit above .aurora-cover so the cover can never paint over it */
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: text;
  background: rgba(28,32,48,0.55);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1.5px solid rgba(124,92,252,0.35);
  border-radius: var(--r-md);
  padding: 9px 12px;
  box-shadow: 0 2px 10px rgba(124,92,252,0.12);
  transition: border-color .15s, box-shadow .15s;
  touch-action: manipulation;      /* removes the ~300ms mobile tap delay */
  -webkit-tap-highlight-color: transparent;
}
/* Signature detail: a living gradient ring blooms around the search bar on focus,
   using the same animated gradient as the rest of the brand identity. */
#searchBox::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: calc(var(--r-md) + 2px);
  background: var(--grad-animated);
  background-size: var(--gradient-size);
  z-index: -1;
  opacity: 0;
  filter: blur(2px);
  animation: gradientShift 6s ease infinite;
  transition: opacity .3s ease;
  pointer-events: none;
}
#searchBox:focus-within::before { opacity: 1; }
#searchBox:focus-within { border-color: var(--accent1); box-shadow: 0 0 0 3px rgba(124,92,252,0.18); }

/* When search mode is active, hide the logo + cover and keep only the search bar */
.aurora-cover, .topbar-row {
  transition: opacity .18s ease, transform .18s ease;
}
body.search-active .aurora-cover,
body.search-active .topbar-row {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  position: absolute;      /* pulled out of flow after the fade so #searchBox slides up smoothly */
}
.top { transition: padding-top .18s ease; }
body.search-active .top { padding-top: 10px; }
#searchBox .search-icon-chip {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(124,92,252,0.22), rgba(255,79,163,0.18));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
#searchInput {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 13.5px;
  font-family: inherit;
  touch-action: manipulation;
}

/* Chat list */
#chatList {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  padding: 6px 8px;
  contain: layout style;
}
.chat-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border-radius: var(--r-lg);
  cursor: pointer;
  contain: layout style;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: background .18s ease, transform .12s ease;
  position: relative;
  margin-bottom: 4px;
}
.chat-item:hover { background: var(--bg3); }
.chat-item:active { transform: scale(0.985); }
.chat-item.active { background: var(--bg4); }
.chat-item.active::before {
  content: '';
  position: absolute;
  right: 0;
  top: 18%;
  bottom: 18%;
  width: 3px;
  border-radius: 3px;
  background: var(--grad);
}
.chat-meta { flex: 1; min-width: 0; }
.chat-name-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.chat-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chat-time { font-size: 11px; color: var(--text4); flex-shrink: 0; }
.chat-last {
  font-size: 13px;
  color: var(--text3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 200px;
}
.chat-badge {
  background: var(--accent1);
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  min-width: 20px;
  text-align: center;
  flex-shrink: 0;
}
.chat-item.muted .chat-badge { background: var(--text4); }
.draft-indicator { color: var(--warn); font-size: 11.5px; font-weight: 600; }

/* Empty state */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  gap: 8px;
  text-align: center;
}
.empty-state .icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: var(--bg3);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
  animation: emptyIconFloat 3.2s ease-in-out infinite;
}
@keyframes emptyIconFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-5px); }
}
@media (prefers-reduced-motion: reduce) {
  .empty-state .icon-wrap { animation: none; }
}
.empty-state .t1 { font-size: 15px; font-weight: 700; color: var(--text2); }
.empty-state .t2 { font-size: 12.5px; color: var(--text3); line-height: 1.6; }

/* FAB */
#fab {
  position: absolute;
  bottom: calc(var(--nav-h) + 16px);
  left: 20px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--grad);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(124,92,252,0.4);
  transition: transform .22s cubic-bezier(.34,1.56,.64,1), box-shadow .15s, opacity .2s ease;
  z-index: 500;
  overflow: hidden;
  opacity: 1;
  pointer-events: auto;
}
#fab:hover { transform: scale(1.08); box-shadow: 0 6px 20px rgba(124,92,252,0.5); }
#fab:active { transform: scale(0.94); }
/* Signature detail: the + rotates into a × while the menu is open — pure CSS,
   stays correct no matter which code path closes the menu. */
#fab svg { transition: transform .3s var(--liquid-ease, ease); }
#fab:has(~ #fabMenu.shown) svg { transform: rotate(45deg); }
#fabMenu.shown button {
  animation: fabItemIn .28s var(--liquid-ease, ease) backwards;
}
#fabMenu.shown button:nth-child(1) { animation-delay: .02s; }
#fabMenu.shown button:nth-child(2) { animation-delay: .06s; }
#fabMenu.shown button:nth-child(3) { animation-delay: .10s; }
@keyframes fabItemIn {
  from { opacity: 0; transform: translateY(6px) scale(.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
#fab.fab-hidden {
  opacity: 0;
  transform: scale(0.4);
  pointer-events: none;
}

/* ── Telegram-like search mode ─────────────────────────────── */
.bottom-nav, #fab { transition: opacity .22s ease, transform .22s ease; }
body.search-active .bottom-nav {
  opacity: 0;
  transform: translateY(100%);
  pointer-events: none;
}
body.search-active #fab { opacity: 0; transform: scale(0.4); pointer-events: none; }
body.search-active .home-greeting-strip {
  opacity: 0;
  max-height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
}
.home-greeting-strip { transition: opacity .18s ease, max-height .22s ease, padding .22s ease, margin .22s ease; max-height: 80px; }
body.search-active #homeFoldersRow {
  opacity: 0;
  max-height: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
}
.home-folders-row {
  transition: opacity .18s ease, max-height .22s ease, padding .22s ease;
  max-height: 60px;
}
#chatList { transition: opacity .18s ease; }
body.search-active #chatList { opacity: 1; }
#globalSearchResults {
  display: none;
  flex-direction: column;
  overflow-y: auto;
  animation: fadeIn .15s ease;
  padding: 0 16px;
}
body.search-active #globalSearchResults.has-query { display: flex; }
body.search-active #chatList { display: none; }
.search-results-section {
  font-size: 12px;
  font-weight: 700;
  color: var(--accent1);
  padding: 12px 2px 6px;
}
.search-result-row { padding: 8px 2px; cursor: pointer; border-radius: var(--r-sm); transition: background .12s; }
.search-result-row:hover, .search-result-row:active { background: var(--bg3); }

#fabMenu {
  position: absolute;
  bottom: calc(var(--nav-h) + 72px);
  left: 16px;
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow);
  display: none;
  flex-direction: column;
  overflow: hidden;
  min-width: 170px;
  z-index: 6;
  animation: modalIn .18s ease;
}
#fabMenu.shown { display: flex; }
#fabMenu button {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  background: none;
  border: none;
  color: var(--text);
  font-size: 13.5px;
  font-family: inherit;
  cursor: pointer;
  text-align: right;
  transition: background .12s;
}
#fabMenu button:hover { background: var(--bg3); }

/* ── 10.5 Sidebar Bottom Section ─────────────────────────── */
#sidebarBottom {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  border-top: 1px solid var(--border);
  padding: 10px 8px;
  gap: 8px;
}
.sidebar-section-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border2), transparent);
  margin: 0 0 4px 0;
}
.sidebar-quick-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.quick-action-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 8px;
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  color: var(--text2);
  font-size: 11px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all .15s ease;
  white-space: nowrap;
}
.quick-action-btn:hover {
  background: var(--bg4);
  color: var(--text);
  border-color: var(--accent1);
  transform: translateY(-1px);
}
.quick-action-btn:active {
  transform: translateY(0);
}
.quick-action-btn svg {
  flex-shrink: 0;
}
.quick-action-btn span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

/* ── 11. Chat Panel ───────────────────────────────────────── */
#chatPanel {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  height: 100%;
  overflow: hidden;
  position: relative;
}
#chatHeader {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
  flex-shrink: 0;
  padding-top: calc(10px + env(safe-area-inset-top));
  position: sticky;
  top: 0;
  z-index: 10;
}
#chatHeader .info { flex: 1; min-width: 0; cursor: pointer; }
#chatHeader .name {
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#chatHeader .status { font-size: 12px; color: var(--text3); }
#backBtn {
  display: none;
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  padding: 6px;
  border-radius: var(--r-sm);
  flex-shrink: 0;
}
#backBtn:hover { background: var(--bg3); }

/* Search in chat */
#searchInChat {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--bg3);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
#searchInChat input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 13.5px;
  font-family: inherit;
}
#searchInChat button {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 16px;
}

/* Banners */
#anonBanner {
  display: none;
  padding: 7px 16px;
  font-size: 12px;
  color: var(--accent1);
  background: rgba(124,92,252,0.1);
  border-bottom: 1px solid rgba(124,92,252,0.2);
  flex-shrink: 0;
}
#pinnedMsgBar {
  background: var(--bg4);
  border-bottom: 1px solid var(--border);
  padding: 7px 14px;
  display: none;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  flex-shrink: 0;
}
#pinnedMsgBar .pmb-bar { width: 3px; height: 32px; background: var(--accent1); border-radius: 3px; flex-shrink: 0; }
#pinnedMsgBar .pmb-txt { flex: 1; font-size: 12.5px; color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#pinnedMsgBar .pmb-close { color: var(--text3); font-size: 16px; cursor: pointer; padding: 2px 6px; }

/* Messages area */
#messages {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
#emptyChatPanel {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--text4);
  gap: 8px;
  overflow: hidden;
}
#emptyChatPanel .mark-big {
  position: relative;
  z-index: 1;
  width: 88px;
  height: 88px;
  border-radius: 26px;
  background: var(--logo-url) center/cover no-repeat;
  margin-bottom: 8px;
  opacity: .95;
  box-shadow: var(--shadow2);
  animation: logoBreathe 3.6s ease-in-out infinite;
}
#emptyChatPanel > div:not(.mark-big):not(.empty-bubbles) { position: relative; z-index: 1; }
.empty-bubbles {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.empty-bubbles .auth-bubble {
  background: linear-gradient(135deg, rgba(124,92,252,0.13), rgba(255,79,163,0.1));
  animation-name: emptyBubbleRise;
}
.ecp-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.28;
  will-change: transform;
  animation: sidebarOrbDrift ease-in-out infinite;
}
.ecp-orb-1 {
  width: 260px; height: 260px;
  top: -60px; left: 10%;
  background: radial-gradient(circle, #7C5CFC, transparent 70%);
  animation-duration: 20s;
}
.ecp-orb-2 {
  width: 240px; height: 240px;
  bottom: -60px; right: 8%;
  background: radial-gradient(circle, #FF4FA3, transparent 70%);
  animation-duration: 24s;
  animation-delay: -8s;
}
@media (prefers-reduced-motion: reduce) {
  .ecp-orb { animation: none; }
}
@keyframes emptyBubbleRise {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
  12%  { opacity: 0.5; }
  88%  { opacity: 0.28; }
  100% { transform: translateY(-320px) rotate(5deg); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #emptyChatPanel .mark-big { animation: none; }
}

/* Scroll to bottom btn */
#scrollBottomBtn {
  position: absolute;
  bottom: 72px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--shadow);
  z-index: 10;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
#scrollBottomBtn.visible { opacity: 1; pointer-events: all; }
/* Hard guard: this button belongs only inside an open chat. If the
   'visible' state was ever left on from a previous chat, this stops
   it from floating over the chat-list / home screen. */
body:not(.chat-open) #scrollBottomBtn { display: none !important; }

/* ── 12. Message Bubbles ──────────────────────────────────── */
.msg-row {
  display: flex;
  flex-direction: column;
  max-width: 72%;
  animation: fadeIn .15s ease;
}
.msg-row.me { align-self: flex-start; animation: msgPopInMe .26s var(--liquid-ease, ease) backwards; }
.msg-row.them { align-self: flex-end; animation: msgPopInThem .26s var(--liquid-ease, ease) backwards; }
.msg-row.grouped { margin-top: -2px; }
@keyframes msgPopInMe {
  from { opacity: 0; transform: translateX(-10px) scale(.94); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes msgPopInThem {
  from { opacity: 0; transform: translateX(10px) scale(.94); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}

.bubble-line { display: flex; align-items: flex-end; gap: 6px; }
.msg-row.me .bubble-line { flex-direction: row; }
.msg-row.them .bubble-line { flex-direction: row-reverse; }

.bubble {
  padding: 9px 13px;
  border-radius: 18px;
  font-size: 14px;
  line-height: 1.55;
  word-break: break-word;
  position: relative;
  max-width: 100%;
}
.bubble.me {
  background: var(--grad);
  color: #fff;
  border-radius: 18px 18px 6px 18px;
  box-shadow: 0 3px 14px rgba(124,92,252,0.28);
}
.bubble.them {
  background: var(--bg3);
  color: var(--text);
  border-radius: 18px 18px 18px 6px;
}
.bubble.me.g-first  { border-radius: 18px 18px 6px 18px; }
.bubble.me.g-mid    { border-radius: 18px 6px 6px 18px; }
.bubble.me.g-last   { border-radius: 18px 6px 18px 18px; }
.bubble.them.g-first { border-radius: 18px 18px 18px 6px; }
.bubble.them.g-mid  { border-radius: 6px 18px 18px 14px; }
.bubble.them.g-last { border-radius: 6px 18px 18px 18px; }
.bubble.deleted { font-style: italic; opacity: .6; }
.bubble.sending { opacity: .72; }
.bubble a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255,255,255,0.5); }
.bubble a.mention-link { text-decoration: none; font-weight: 700; }
.bubble.them a.mention-link { color: var(--accent1); }
.bubble.me a.mention-link { color: #fff; opacity: .95; }
.bubble.them a { color: var(--accent1); text-decoration-color: rgba(124,92,252,0.4); }

.msg-text.long-collapsed { max-height: 220px; overflow: hidden; position: relative; }
.show-more-btn { display: block; margin-top: 4px; font-size: 12px; font-weight: 700; color: inherit; opacity: .85; background: none; border: none; text-decoration: underline; padding: 0; cursor: pointer; }
.reply-quote { border-right: 3px solid rgba(255,255,255,0.5); padding-right: 8px; margin-bottom: 5px; font-size: 12px; opacity: .85; }
.bubble.them .reply-quote { border-right-color: var(--accent1); }
.reply-quote-sender { font-weight: 700; font-size: 11.5px; margin-bottom: 1px; opacity: .95; }
.reply-quote-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.reply-quote-clickable { cursor: pointer; transition: opacity .12s; }
.reply-quote-clickable:hover { opacity: 1; }
.reply-quote-missing { opacity: .6; font-style: italic; cursor: default; }
.reply-banner-sender { font-size: 11.5px; font-weight: 700; color: var(--accent1); }
.forward-label { font-size: 11px; font-weight: 600; opacity: .75; margin-bottom: 4px; font-style: italic; }
@keyframes msgHighlightFlash {
  0%, 100% { background: transparent; }
  30% { background: rgba(124,92,252,0.22); }
}
.msg-highlight .bubble { animation: msgHighlightFlash 1.4s ease; border-radius: 18px; }
.msg-meta { display: flex; justify-content: flex-end; align-items: center; gap: 4px; margin-top: 4px; font-size: 10.5px; opacity: .75; cursor: default; }
.anon-tag { font-size: 10px; background: rgba(124,92,252,0.18); color: var(--accent1); padding: 1px 6px; border-radius: 6px; }
.emoji-only { background: none !important; box-shadow: none !important; padding: 2px 0 !important; font-size: 44px !important; line-height: 1.1 !important; }
.msg-sender { font-size: 11.5px; font-weight: 700; margin-bottom: 3px; }

.day-divider { display: flex; align-items: center; justify-content: center; margin: 14px 0 8px; position: sticky; top: 4px; z-index: 2; }
.day-divider span { background: var(--bg4); color: var(--text2); font-size: 11.5px; font-weight: 600; padding: 4px 12px; border-radius: 12px; box-shadow: var(--shadow2); backdrop-filter: blur(6px); }

.msg-actions { display: flex; gap: 2px; opacity: 0; transition: opacity .12s; }
.msg-row:hover .msg-actions { opacity: 1; }
@media (hover: none), (pointer: coarse) {
  /* روی گوشی هاور معنی نداره؛ این دکمه‌های نامرئی کنار حباب، جای لمس رو می‌گرفتن
     و باعث می‌شد لمس ساده‌ی پیام مستقیم بره تو حالت ریپلای/ویرایش/حذف.
     تو گوشی با یه تپ ساده (بدون نگه‌داشتن) روی پیام، منو باز می‌شه. */
  .msg-actions { display: none !important; pointer-events: none !important; }
}
.msg-actions button { background: var(--bg3); border: 1px solid var(--border2); border-radius: var(--r-sm); width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; color: var(--text3); cursor: pointer; }
.msg-actions button:hover { color: var(--text); }

/* ── Telegram-style swipe-to-reply ── */
.msg-row { touch-action: pan-y; position: relative; }
.msg-row .bubble-line { transition: transform .18s cubic-bezier(.2,.8,.2,1); will-change: transform; }
.msg-row.swiping .bubble-line { transition: none; }
.swipe-reply-icon {
  position: absolute; top: 50%; transform: translateY(-50%) scale(.6);
  width: 30px; height: 30px; border-radius: 50%; background: var(--bg4);
  display: flex; align-items: center; justify-content: center; color: var(--accent1);
  opacity: 0; pointer-events: none; transition: opacity .12s, transform .12s;
  box-shadow: var(--shadow2);
}
.msg-row.me .swipe-reply-icon { right: -18px; }
.msg-row.them .swipe-reply-icon { left: -18px; }
.msg-row.swipe-active .swipe-reply-icon { opacity: 1; transform: translateY(-50%) scale(1); }
.msg-row.ctx-target { z-index: 45; }
.msg-row.ctx-target .bubble { box-shadow: 0 0 0 2px var(--accent1); }

/* ── Long-press action popup (reactions + menu), Telegram-style ── */
.msg-ctx-backdrop { position: fixed; inset: 0; z-index: 199; background: rgba(0,0,0,0.16); backdrop-filter: blur(1px); animation: fadeIn .12s ease; }
.msg-ctx-popup {
  position: fixed; z-index: 200; min-width: 190px; max-width: 240px;
  background: var(--bg4); border: 1px solid var(--border2); border-radius: 16px;
  box-shadow: 0 10px 32px rgba(0,0,0,0.32), 0 2px 10px rgba(0,0,0,0.16);
  overflow: hidden; animation: modalIn .14s ease;
}
.ctx-reaction-row { display: flex; justify-content: space-between; padding: 8px 8px; border-bottom: 1px solid var(--border2); gap: 2px; }
.ctx-reaction-row button { background: none; border: none; font-size: 21px; padding: 4px; border-radius: 50%; cursor: pointer; transition: transform .12s; line-height: 1; }
.ctx-reaction-row button:hover { background: var(--bg3); transform: scale(1.2) rotate(-6deg); }
.ctx-reaction-row button svg { width: 20px; height: 20px; display: block; }
.ctx-menu-list { display: flex; flex-direction: column; padding: 4px 0; }
.ctx-menu-list button {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 14px;
  background: none; border: none; color: var(--text); font-size: 13.5px; font-family: inherit;
  text-align: right; cursor: pointer;
}
.ctx-menu-list button svg { flex-shrink: 0; opacity: .8; }
.ctx-menu-list button:hover { background: var(--bg3); }
.ctx-menu-list button.danger { color: var(--danger); }
.ctx-menu-list button.danger svg { opacity: 1; }

.reaction-bar { display: none; position: absolute; top: -42px; background: var(--bg4); border: 1px solid var(--border2); border-radius: 20px; padding: 4px 6px; gap: 3px; box-shadow: var(--shadow2); z-index: 6; }
.msg-row.them .reaction-bar { left: 0; }
.msg-row.me .reaction-bar { right: 0; }
.reaction-bar.shown { display: flex; animation: reactionBarIn .22s var(--liquid-ease, ease); }
@keyframes reactionBarIn {
  from { opacity: 0; transform: scale(.8) translateY(6px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.reaction-bar button { background: none; border: none; font-size: 17px; padding: 3px; border-radius: 50%; transition: transform .12s; cursor: pointer; }
.reaction-bar button:hover { background: var(--bg3); transform: scale(1.3) rotate(-6deg); }
.reaction-bar button svg { width: 17px; height: 17px; display: block; color: var(--text2); }
.reaction-bar button:hover svg { color: var(--accent1); }

.reactions-row { display: flex; gap: 4px; margin-top: 3px; flex-wrap: wrap; }
.reactions-row.me { justify-content: flex-start; }
.reactions-row.them { justify-content: flex-end; }
.reaction-chip { background: var(--bg3); border: 1px solid var(--border2); border-radius: 10px; padding: 1px 7px; font-size: 11.5px; display: flex; align-items: center; gap: 3px; cursor: pointer; transition: transform .12s; }
.reaction-chip:hover { transform: scale(1.06); }
.reaction-chip.mine { border-color: var(--accent1); background: rgba(124,92,252,0.12); }
.reaction-chip svg { width: 12px; height: 12px; flex-shrink: 0; }
.reaction-chip.mine svg { color: var(--accent1); }
@keyframes reactionPop { 0%{ transform: scale(.4); } 60%{ transform: scale(1.25); } 100%{ transform: scale(1); } }
.reaction-chip { animation: reactionPop .25s cubic-bezier(.34,1.56,.64,1); }

.media-bubble img, .media-bubble video { max-width: 240px; border-radius: 12px; display: block; transition: filter .15s; }
.media-bubble { position: relative; cursor: pointer; overflow: hidden; border-radius: 12px; }
.media-bubble:hover img { filter: brightness(0.88); }
.media-download-btn {
  position: absolute;
  top: 8px; left: 8px;
  width: 30px; height: 30px;
  border-radius: 50%;
  background: rgba(10,12,20,0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.16);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: background .15s ease, transform .15s ease;
}
.media-download-btn:hover { background: rgba(124,92,252,0.55); transform: scale(1.08); }
.media-download-btn:active { transform: scale(0.94); }
.voice-row { display: flex; align-items: center; gap: 8px; min-width: 170px; }
.voice-row button { background: rgba(255,255,255,0.2); border: none; border-radius: 50%; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; color: inherit; flex-shrink: 0; cursor: pointer; }
.bubble.them .voice-row button { background: var(--bg4); }
.voice-wave { flex: 1; height: 22px; display: flex; align-items: center; gap: 2px; }
.voice-wave i { display: block; width: 2px; border-radius: 2px; background: currentColor; opacity: .6; }
.sticker-bubble { font-size: 52px; line-height: 1; background: none !important; box-shadow: none !important; padding: 0 !important; }

/* Typing indicator */
.typing-row { display: flex; align-self: flex-end; padding: 4px 0; }
.typing-bubble { background: var(--bg3); border-radius: 18px 18px 18px 6px; padding: 10px 14px; display: flex; gap: 4px; align-items: center; }
.typing-bubble span { width: 6px; height: 6px; border-radius: 50%; background: var(--text3); animation: tdot .9s infinite ease-in-out; }
.typing-bubble span:nth-child(2) { animation-delay: .2s; }
.typing-bubble span:nth-child(3) { animation-delay: .4s; }

/* Double tick */
.msg-ticks { display: inline-flex; align-items: center; gap: 1px; margin-right: 3px; }
.msg-ticks svg { color: var(--text4); }
.msg-ticks.seen svg { color: var(--accent2); }

/* ── 13. Input Bar ────────────────────────────────────────── */
#replyBanner { display: none; align-items: center; gap: 10px; padding: 8px 16px; background: var(--bg3); border-top: 1px solid var(--border); flex-shrink: 0; }
#replyBanner .bar { width: 3px; align-self: stretch; background: var(--accent1); border-radius: 2px; }
#replyBanner .txt { flex: 1; font-size: 12.5px; color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#replyBanner button { background: none; border: none; color: var(--text3); cursor: pointer; }

#editBanner { display: none; align-items: center; gap: 10px; padding: 8px 16px; background: rgba(245,181,71,0.1); border-top: 1px solid var(--border); flex-shrink: 0; }
#editBanner .txt { flex: 1; font-size: 12.5px; color: var(--warn); }
#editBanner button { background: none; border: none; color: var(--text3); cursor: pointer; }

#destructBanner { display: none; align-items: center; gap: 6px; padding: 6px 16px; font-size: 11.5px; color: var(--accent1); background: rgba(124,92,252,0.08); flex-shrink: 0; }

#inputBar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--border);
  background: var(--bg2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position: relative;
  flex-shrink: 0;
}
#inputWrap {
  flex: 1;
  min-width: 0;
  background: var(--bg3);
  border-radius: 18px;
  display: flex;
  align-items: flex-end;
  padding: 9px 12px;
  gap: 6px;
  transition: box-shadow .15s;
}
#inputWrap:focus-within { box-shadow: 0 0 0 2px rgba(124,92,252,0.35); }
#msgInput { flex: 1; min-width: 0; background: transparent; border: none; outline: none; color: var(--text); font-size: 14.5px; font-family: inherit; resize: none; overflow-y: auto; max-height: 120px; line-height: 1.5; padding: 0; }
#sendBtn {
  background: var(--grad);
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  color: #fff;
  position: relative;
  overflow: hidden;
  transition: transform .12s;
  box-shadow: 0 2px 8px rgba(124,92,252,0.3);
}
#sendBtn.active-pulse { animation: pulseSend .5s ease; }
#sendBtn:active { transform: scale(0.9); }
#micBtn.recording { color: var(--danger); animation: pulseSend 1s ease infinite; }

/* Emoji panel */
#emojiPanel {
  position: absolute;
  bottom: 68px;
  right: 14px;
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow);
  display: none;
  width: 290px;
  z-index: 6;
  overflow: hidden;
  backdrop-filter: blur(10px);
  animation: modalIn .18s ease;
}
#emojiPanel.shown { display: block; }
.panel-tabs { display: flex; border-bottom: 1px solid var(--border2); }
.panel-tabs button { flex: 1; padding: 9px; background: none; border: none; color: var(--text3); font-size: 12.5px; font-weight: 600; font-family: inherit; cursor: pointer; transition: color .15s; }
.panel-tabs button.active { color: var(--accent1); border-bottom: 2px solid var(--accent1); }
.panel-search { padding: 8px; border-bottom: 1px solid var(--border2); }
.panel-search input { width: 100%; background: var(--bg3); border: 1px solid var(--border2); border-radius: var(--r-sm); padding: 6px 10px; color: var(--text); font-size: 12.5px; outline: none; font-family: inherit; }
.panel-cats { display: flex; gap: 4px; padding: 6px 8px; border-bottom: 1px solid var(--border2); overflow-x: auto; }
.panel-cats button { background: none; border: none; font-size: 16px; padding: 3px 6px; border-radius: 6px; flex-shrink: 0; cursor: pointer; }
.panel-cats button.active { background: var(--bg3); }
.panel-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 4px; padding: 10px; max-height: 170px; overflow-y: auto; }
.panel-grid button { background: none; border: none; font-size: 20px; padding: 5px; border-radius: var(--r-sm); cursor: pointer; transition: transform .1s; }
.panel-grid button:hover { background: var(--bg3); transform: scale(1.15); }
.recent-label { font-size: 10.5px; color: var(--text3); padding: 6px 10px 0; }

/* Destruct menu */
#destructMenu {
  position: absolute;
  bottom: 68px;
  left: 14px;
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: var(--r-md);
  box-shadow: var(--shadow);
  display: none;
  z-index: 6;
  overflow: hidden;
  min-width: 160px;
}
#destructMenu.shown { display: block; }
#destructMenu button { display: block; width: 100%; padding: 9px 14px; background: none; border: none; color: var(--text); font-size: 13px; font-family: inherit; text-align: right; cursor: pointer; }
#destructMenu button:hover { background: var(--bg3); }
#destructMenu button.active { color: var(--accent1); font-weight: 700; }

/* ── 14. Modals ───────────────────────────────────────────── */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 21;
  padding: 16px;
}
.modal-overlay.shown { display: flex; }
.modal {
  width: 100%;
  max-width: 360px;
  background: rgba(16,18,26,0.72);
  backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--r-xl);
  padding: 22px;
  max-height: 90vh;
  overflow-y: auto;
  animation: modalIn .22s cubic-bezier(.2,.9,.3,1.1);
  box-shadow: var(--shadow3), 0 0 0 1px rgba(124,92,252,0.06);
}
.modal h3 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.modal h3 .x {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 16px;
  transition: transform .2s, color .15s;
  padding: 4px;
  border-radius: 50%;
}
.modal h3 .x:hover { transform: rotate(90deg); color: var(--text); background: var(--bg3); }

/* هدر (X + آیکون تنظیمات) توی مودال‌های طولانی (مثل تنظیمات کانال) موقع اسکرول
   باید ثابت بمونه بالای صفحه، نه اینکه بره زیر کاور/محتوا */
.sticky-header-modal { position: relative; }
.sticky-header-modal h3 {
  position: sticky;
  top: -22px;
  margin: -22px -22px 16px -22px;
  padding: 20px 22px 14px 22px;
  background: var(--bg2);
  z-index: 30;
  border-radius: var(--r-xl) var(--r-xl) 0 0;
}

.admin-close-btn {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border2);
  color: var(--text2);
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  margin-right: auto;
}
.admin-close-btn:hover {
  background: rgba(255, 79, 163, 0.2);
  color: var(--pink-verified);
  border-color: var(--pink-verified);
  transform: rotate(90deg);
}
.admin-close-btn svg {
  width: 16px;
  height: 16px;
}
.modal .btn-row { display: flex; gap: 10px; margin-top: 16px; }

.report-reason-list { display: flex; flex-direction: column; gap: 6px; }
.report-reason-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: var(--r-md);
  background: var(--bg3); border: 1px solid var(--border2);
  cursor: pointer; font-size: 13px; color: var(--text);
  transition: border-color .15s, background .15s;
}
.report-reason-item:hover { border-color: var(--text4); }
.report-reason-item.selected { border-color: var(--danger); background: rgba(255,107,107,0.08); }
.report-reason-item input[type="radio"] { accent-color: var(--danger); width: 16px; height: 16px; flex-shrink: 0; }

/* Bottom sheet */
.bottom-sheet-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.6);
  backdrop-filter: blur(6px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 20;
  padding: 16px;
}
.bottom-sheet-overlay.shown { display: flex; }

/* Photo lightbox (avatar zoom + multi-photo nav) */
.lightbox-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.92);
  display: none; align-items: center; justify-content: center;
  z-index: 60; padding: 20px;
}
.lightbox-overlay.shown { display: flex; }
.lightbox-img-wrap {
  position: relative; width: 100%; max-width: 420px; aspect-ratio: 1/1;
  border-radius: 20px; overflow: hidden; background: var(--bg2);
  display: flex; align-items: center; justify-content: center;
}
.lightbox-img-wrap img { width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.lightbox-close {
  position: absolute; top: -46px; left: 0; background: none; border: none;
  color: #fff; font-size: 22px; cursor: pointer; padding: 6px;
}
.lightbox-arrow {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: 50%; border: none;
  background: rgba(0,0,0,0.45); color: #fff; display: flex;
  align-items: center; justify-content: center; cursor: pointer; z-index: 2;
}
.lightbox-arrow:active { background: rgba(0,0,0,0.65); }
.lightbox-arrow.prev { right: 10px; }
.lightbox-arrow.next { left: 10px; }
.lightbox-dots {
  display: flex; gap: 6px; justify-content: center; margin-top: 12px;
}
.lightbox-dots span {
  width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,0.35);
}
.lightbox-dots span.active { background: #fff; width: 16px; border-radius: 4px; }

/* Privacy settings rows */
.privacy-row { padding: 10px 0; border-bottom: 1px solid var(--border); }
.privacy-row:last-child { border-bottom: none; }
.privacy-row .lbl { font-size: 14px; font-weight: 700; margin-bottom: 8px; }
.privacy-options { display: flex; gap: 6px; }
.privacy-options button {
  flex: 1; padding: 7px 4px; border-radius: 8px; border: 1px solid var(--border);
  background: var(--bg3); color: var(--text2); font-size: 12px; cursor: pointer;
  transition: 0.15s;
}
.privacy-options button.active { background: linear-gradient(135deg, #7C5CFC, #FF4FA3); color: #fff; border-color: transparent; box-shadow: 0 2px 8px rgba(124,92,252,0.35); }
.bottom-sheet {
  width: 100%;
  max-width: 400px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--r-2xl);
  padding: 0 0 24px;
  max-height: 88vh;
  overflow-y: auto;
  animation: modalIn .22s cubic-bezier(.2,.9,.3,1.1);
  box-shadow: var(--shadow3);
}
.sheet-handle { display: none; }
.sheet-cover {
  height: 110px;
  background: var(--grad);
  position: relative;
  border-radius: var(--r-2xl) var(--r-2xl) 0 0;
  overflow: hidden;
}
.sheet-avatar-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: -44px;
  position: relative;
  z-index: 1;
}
.sheet-name { font-size: 18px; font-weight: 700; margin-top: 10px; text-align: center; padding: 0 20px; }
.sheet-sub { font-size: 12.5px; color: var(--text3); margin-top: 3px; text-align: center; }
.sheet-bio { font-size: 13px; color: var(--text2); text-align: center; padding: 10px 24px; line-height: 1.7; }
.sheet-actions { display: flex; gap: 10px; padding: 12px 20px; }
.sheet-actions button {
  flex: 1;
  padding: 12px;
  border-radius: var(--r-md);
  border: 1.5px solid var(--border2);
  background: var(--bg3);
  color: var(--text);
  font-size: 12.5px;
  font-weight: 600;
  font-family: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  transition: background .15s;
}
.sheet-actions button:hover { background: var(--bg4); }
.sheet-actions button.danger { color: var(--danger); }

/* ── Contact profile sheet v2 (Telegram style) ───────────── */
.contact-sheet-v2 { position: relative; padding: 0 0 22px; }
.sheet-close-btn {
  position: absolute;
  top: 14px; left: 14px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: none;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  z-index: 5;
  transition: background .15s;
}
.sheet-close-btn:hover { background: rgba(0,0,0,0.6); }
.sheet-photo-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-height: 320px;
  border-radius: var(--r-2xl) var(--r-2xl) 0 0;
  overflow: hidden;
  background: linear-gradient(150deg, #8A6BFF, #7C5CFC 45%, #B84FFF 75%, #FF4FA3 130%);
  box-shadow: inset 0 -1px 0 rgba(255,255,255,0.06);
}
.sheet-photo {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background-size: cover;
  background-position: center;
}
.sheet-photo.has-photo { background-color: #000; }
.sheet-photo .avatar { box-shadow: none !important; }
.sheet-photo-scrim {
  position: absolute; left: 0; right: 0; bottom: 0; height: 50%;
  background: linear-gradient(to top, rgba(0,0,0,0.78), rgba(0,0,0,0));
  pointer-events: none;
}
.sheet-photo-info {
  position: absolute; right: 20px; left: 20px; bottom: 16px;
  text-align: right;
}
.sheet-photo-info .sheet-name {
  color: #fff; margin-top: 0; padding: 0; text-align: right;
  font-size: 22px; font-weight: 800; text-shadow: 0 2px 12px rgba(0,0,0,0.55);
  display: flex; align-items: center; gap: 6px; justify-content: flex-end;
}
.sheet-photo-info .sheet-sub {
  color: rgba(255,255,255,0.9); text-align: right; margin-top: 4px;
  font-size: 13px; font-weight: 600; letter-spacing: 0.2px;
  text-shadow: 0 1px 6px rgba(0,0,0,0.5);
}
.sheet-quick-actions {
  display: flex; justify-content: space-around;
  padding: 18px 14px 4px;
}
.sqa-btn {
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  background: none; border: none; font-family: inherit;
  color: var(--text2); font-size: 11.5px; font-weight: 600;
  cursor: pointer; padding: 2px 4px;
}
.sqa-icon {
  width: 50px; height: 50px; border-radius: 50%;
  background: var(--bg3); border: 1.5px solid var(--border2);
  display: flex; align-items: center; justify-content: center;
  color: var(--accent1);
  transition: background .15s, transform .15s, border-color .15s, box-shadow .15s;
}
.sqa-btn:hover .sqa-icon, .sqa-btn:active .sqa-icon { background: var(--bg4); transform: translateY(-2px); border-color: var(--accent1); box-shadow: 0 0 0 4px rgba(124,92,252,0.12), 0 6px 16px rgba(124,92,252,0.22); }
.sqa-btn.danger { color: var(--danger); }
.sqa-btn.danger .sqa-icon { color: var(--danger); }
.sheet-info-card {
  margin: 14px 16px 0;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--r-lg, 16px);
  overflow: hidden;
}
.sheet-info-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; transition: background .15s; }
.sheet-info-row:hover { background: var(--bg4); }
.sheet-info-row + .sheet-info-row { border-top: 1px solid var(--border); }
.sir-icon {
  width: 34px; height: 34px; flex-shrink: 0;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  background: var(--grad);
  box-shadow: 0 3px 10px rgba(124,92,252,0.35);
}
.sir-text { flex: 1; min-width: 0; text-align: right; }
.sir-value { font-size: 13.5px; color: var(--text); line-height: 1.55; word-break: break-word; }
.sir-label { font-size: 11px; color: var(--text3); margin-top: 2px; }

/* ── 15. Profile Modal ────────────────────────────────────── */
.cover-wrap {
  height: 110px;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  background: var(--grad);
  background-size: cover;
  background-position: center;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  margin: -22px -22px 0;
}
.cover-hint {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: rgba(255,255,255,0.7);
  background: rgba(0,0,0,0.2);
  opacity: 0;
  transition: opacity .2s;
}
.cover-wrap:hover .cover-hint { opacity: 1; }

.profile-avatar-row { display: flex; flex-direction: column; align-items: center; margin-bottom: 18px; margin-top: 6px; }
/* Signature detail: a slow-spinning gradient halo behind the profile photo,
   the same brand palette used across the app's accents. */
#profileAvatarView { position: relative; }
#profileAvatarView::before {
  content: '';
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #7C5CFC, #FF4FA3, #36C9C6, #7C5CFC);
  z-index: -1;
  opacity: 0.85;
  animation: avatarHaloSpin 6s linear infinite;
  filter: blur(1px);
}
@keyframes avatarHaloSpin { to { transform: rotate(360deg); } }
.color-swatches { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; justify-content: center; }
.swatch { width: 26px; height: 26px; border-radius: 50%; border: 2px solid transparent; cursor: pointer; transition: transform .12s; }
.swatch:hover { transform: scale(1.15); }
.swatch.selected { border-color: var(--text); box-shadow: 0 0 0 2px var(--bg2); }

.copy-row { display: flex; align-items: center; gap: 8px; }
.copy-row .field-input-wrap { flex: 1; }
.copy-btn {
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text2);
  flex-shrink: 0;
  cursor: pointer;
  transition: background .15s;
}
.copy-btn:hover { background: var(--bg4); }
.copy-btn.copied { background: rgba(61,220,132,0.18); color: var(--online); animation: copyPop .3s var(--liquid-ease, ease); }
@keyframes copyPop { 0% { transform: scale(0.7); } 55% { transform: scale(1.15); } 100% { transform: scale(1); } }

.toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--border); }
.toggle-row:last-child { border-bottom: none; }
.toggle-row .lbl { font-size: 14px; }
.toggle-row .sub { font-size: 11.5px; color: var(--text3); margin-top: 2px; }

/* ── Telegram-style compact profile ───────────────────────── */
.tg-profile-name-wrap { text-align: center; margin-top: 2px; }
.tg-profile-name-wrap #profileName {
  text-align: center;
  font-size: 19px;
  font-weight: 800;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text);
  font-family: inherit;
  width: auto;
  max-width: 100%;
  flex: 0 1 auto;
  min-width: 40px;
  padding: 2px 0;
}
.tg-profile-name-wrap > div { max-width: 100%; }
.tg-profile-hint { font-size: 11.5px; color: var(--text3); margin-top: 2px; }

.tg-actions-row { display: flex; justify-content: center; gap: 10px; margin: 16px 0 4px; }
.tg-action-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
  max-width: 116px;
  background: var(--bg3);
  border: none;
  border-radius: 16px;
  padding: 12px 6px;
  color: var(--text2);
  font-size: 11px;
  cursor: pointer;
  font-family: inherit;
  transition: background .12s, transform .12s;
}
.tg-action-btn svg { color: var(--accent1); }
.tg-action-btn:hover { background: var(--bg4); }
.tg-action-btn:active { transform: scale(0.96); }
.tg-action-icon {
  width: 34px; height: 34px; border-radius: 11px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 10px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.16);
  transition: transform .15s;
}
.tg-action-btn:hover .tg-action-icon { transform: translateY(-1px) scale(1.05); }
/* Clean, edgeless ambient glow behind the avatar — no hard-edged banner block */
.profile-view-glow {
  position: absolute;
  top: -26px;
  left: 50%;
  width: 230px;
  height: 230px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(124,92,252,0.32), rgba(255,79,163,0.14) 45%, transparent 72%);
  filter: blur(34px);
  z-index: 0;
  pointer-events: none;
  animation: profileGlowPulse 6s ease-in-out infinite;
}
@keyframes profileGlowPulse {
  0%, 100% { opacity: 0.85; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.06); }
}
@media (prefers-reduced-motion: reduce) {
  .profile-view-glow { animation: none; }
}
/* Soft diffused glow behind the avatar, on top of the halo ring, for a
   premium "matte glass" look instead of a flat spinning ring. */
#profileAvatarView {
  position: relative;
  filter: drop-shadow(0 6px 22px rgba(124,92,252,0.45));
}
#profileAvatarView::before {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #7C5CFC, #FF4FA3, #36C9C6, #7C5CFC);
  z-index: -1;
  opacity: 0.9;
  animation: avatarHaloSpin 7s linear infinite;
  filter: blur(9px) saturate(1.3);
}
#profileAvatarView { border-radius: 50%; box-shadow: 0 0 0 4px var(--bg2); }
/* Frosted-glass info cards inside "پروفایل من" for a softer, matte feel */
#profileViewSection .tg-card {
  background: var(--glass-bg, rgba(16,18,26,0.75));
  border: 1px solid var(--glass-border, rgba(255,255,255,0.1));
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  box-shadow: var(--shadow2);
}
#profileViewName {
  background: linear-gradient(135deg, #EDEBFF, #C9BFFF 60%, #FFD9EC);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 1px 6px rgba(124,92,252,0.35));
}

.settings-hero {
  display: flex; align-items: center; gap: 12px;
  margin: -24px -24px 14px;
  padding: 18px 20px;
  border-radius: 20px 20px 0 0;
  background: var(--grad);
  position: relative; overflow: hidden;
}
.settings-hero::before {
  content: ''; position: absolute; inset: -40%;
  background: radial-gradient(circle at 25% 30%, rgba(255,255,255,0.3), transparent 60%);
  animation: heroDrift 9s ease-in-out infinite;
}
.settings-hero-icon {
  position: relative; z-index: 1;
  width: 42px; height: 42px; border-radius: 13px;
  background: rgba(255,255,255,0.16);
  display: flex; align-items: center; justify-content: center;
  color: #fff; flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.3);
}
.settings-hero-icon svg { width: 22px; height: 22px; }
.settings-hero-title { position: relative; z-index: 1; font-size: 16px; font-weight: 800; color: #fff; }
.settings-hero-sub { position: relative; z-index: 1; font-size: 11.5px; color: rgba(255,255,255,0.85); margin-top: 2px; }
.section-title { position: relative; padding-inline-start: 10px; }
.section-title::before {
  content: ''; position: absolute; inset-inline-start: 0; top: 2px; bottom: 2px;
  width: 3px; border-radius: 2px; background: var(--grad);
}

.tg-card {
  background: var(--bg3);
  border-radius: 16px;
  overflow: hidden;
  margin-top: 16px;
}
.tg-row { padding: 9px 14px; border-bottom: 1px solid var(--border); }
.tg-row:last-child { border-bottom: none; }
.tg-row-copy-inline { display: flex; align-items: center; gap: 8px; }
.tg-row-copy-inline input, .tg-row-copy-inline textarea,
.tg-row > input, .tg-row > textarea,
.tg-row-body > input, .tg-row-body > textarea,
.tg-row-body input[type="date"] {
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 14.5px;
  font-family: inherit;
  padding: 0;
  resize: none;
  color-scheme: dark;
}
.tg-row .copy-btn { width: 34px; height: 34px; border-radius: var(--r-sm); flex-shrink: 0; }
.tg-row input:disabled, .tg-row textarea:disabled,
.tg-row-body input:disabled, .tg-row-body textarea:disabled { opacity: 1; -webkit-text-fill-color: var(--text); color: var(--text); }
.tg-row-body input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.7; cursor: pointer; }
.tg-row-label { display: flex; justify-content: space-between; font-size: 11px; color: var(--text3); margin-top: 3px; }
.tg-row-flex { display: flex; align-items: center; gap: 11px; }
.tg-row-icon {
  width: 34px; height: 34px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color: #fff;
  box-shadow: 0 3px 8px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.15);
}
.tg-row-body { flex: 1; min-width: 0; }
.tg-row-body .tg-row-label { margin-top: 4px; }
.switch { position: relative; width: 42px; height: 24px; background: var(--bg4); border-radius: 14px; cursor: pointer; flex-shrink: 0; transition: background .25s var(--liquid-ease, ease), box-shadow .25s ease; }
.switch.on { background: var(--accent1); box-shadow: 0 0 10px 1px rgba(124,92,252,0.45); }
.switch .knob { position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; background: #fff; border-radius: 50%; transition: transform .32s var(--liquid-ease, ease); box-shadow: 0 1px 4px rgba(0,0,0,0.3); }
.switch.on .knob { transform: translateX(-18px); }

.section-title { font-size: 11.5px; color: var(--text3); font-weight: 700; margin: 18px 0 8px; text-transform: uppercase; letter-spacing: .5px; }
.list-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; }
.list-row .name { flex: 1; font-size: 13.5px; }
.list-row button { background: var(--bg3); border: 1px solid var(--border2); color: var(--text2); font-size: 12px; padding: 5px 10px; border-radius: var(--r-sm); cursor: pointer; font-family: inherit; }

.menu-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 6px;
  width: 100%;
  background: none;
  border: none;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  text-align: right;
  border-radius: var(--r-sm);
  cursor: pointer;
  transition: background .12s;
}
.menu-row:hover { background: var(--bg3); }
.menu-row.danger { color: var(--danger); }

/* ── 16. Chip Input ───────────────────────────────────────── */
.chip-input {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  padding: 8px 10px;
  min-height: 46px;
  align-items: center;
}
.chip { background: var(--bg4); border-radius: var(--r-sm); padding: 4px 8px; font-size: 12.5px; display: flex; align-items: center; gap: 5px; }
.chip button { background: none; border: none; color: var(--text3); font-size: 13px; cursor: pointer; }
.chip-input input { flex: 1; min-width: 80px; background: transparent; border: none; outline: none; color: var(--text); font-size: 13.5px; padding: 4px; font-family: inherit; }

/* ── 17. Channel List ─────────────────────────────────────── */
.channel-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  cursor: pointer;
  border-radius: var(--r-md);
  transition: background .15s;
  position: relative;
}
.channel-item:hover { background: var(--bg3); }
.channel-item.active { background: var(--bg4); }
.channel-avatar-wrap { position: relative; flex-shrink: 0; }
.channel-avatar {
  width: 48px;
  height: 48px;
  border-radius: 32%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.18);
  transition: transform .18s ease;
}
.channel-item:hover .channel-avatar { transform: scale(1.05) rotate(-1deg); }
.channel-avatar-badge {
  position: absolute;
  bottom: -3px;
  left: -3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--grad);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 0 0 3px var(--bg2);
}
.channel-name { font-weight: 600; font-size: 14.5px; color: var(--text); }
.channel-sub { font-size: 12px; color: var(--text3); margin-top: 2px; }
.channel-owner-badge {
  font-size: 10px;
  background: var(--grad);
  color: #fff;
  padding: 2px 8px;
  border-radius: 20px;
  margin-right: 4px;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(124,92,252,0.35);
}
.channel-badge {
  background: var(--grad);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  min-width: 18px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(124,92,252,0.3);
}

/* ── 18. Channel Profile Card (REDESIGNED) ────────────────── */
/* Channel View Modal */
#channelViewOverlay .modal {
  max-width: 540px;
  padding: 0;
  overflow: hidden;
  border-radius: var(--r-2xl);
}

/* Banner / Cover */
.ch-header-wrap {
  position: relative;
  width: 100%;
}

.ch-cover {
  width: 100%;
  height: 180px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}

/* Gradient overlay on cover */
.ch-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.05) 0%,
    rgba(0,0,0,0.15) 50%,
    rgba(0,0,0,0.55) 100%
  );
}

/* Glassmorphism close button */
.ch-close-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 10;
  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 50%;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  cursor: pointer;
  font-size: 15px;
  transition: background .15s, transform .12s;
}
.ch-close-btn:hover { background: rgba(0,0,0,0.65); transform: scale(1.08); }

/* Avatar wrapper — overlaps the banner */
.ch-avatar-big-wrap {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  padding: 0 22px 0;
  margin-top: -44px;
  position: relative;
  z-index: 2;
}

/* Channel avatar squircle (app-icon style, matches channel list) */
.ch-avatar-big {
  width: 88px;
  height: 88px;
  border-radius: 30%;
  border: 4px solid var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  background-size: cover;
  background-position: center;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.18);
  overflow: hidden;
  transition: transform .2s, box-shadow .2s;
}
.ch-avatar-big:hover { transform: scale(1.04) rotate(-1deg); box-shadow: 0 6px 28px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.18); }

/* Channel name + id below avatar — padding-top matches the wrap's negative
   margin so the text never rises above the cover's bottom edge. */
.ch-identity {
  flex: 1;
  min-width: 0;
  padding-top: 44px;
  padding-bottom: 6px;
  box-sizing: border-box;
}
.ch-identity .ch-name {
  font-size: 20px;
  font-weight: 800;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  line-height: 1.2;
}
.ch-identity .ch-handle {
  font-size: 13px;
  color: var(--text3);
  margin-top: 3px;
}

/* Channel info body */
.ch-info-body {
  padding: 14px 22px 18px;
}

/* Description */
.ch-desc {
  font-size: 14px;
  color: var(--text2);
  line-height: 1.7;
  margin-bottom: 14px;
  white-space: pre-wrap;
}

/* Stats row */
.ch-stats-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.ch-stat-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--text3);
}
.ch-stat-item svg { flex-shrink: 0; }

/* Action buttons row */
.ch-actions-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.ch-actions-row .btn-primary,
.ch-actions-row .btn-secondary {
  flex: 1;
  min-width: 100px;
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* Admin button */
.admin-panel-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  background: rgba(124,92,252,0.12);
  border: 1.5px solid rgba(124,92,252,0.3);
  border-radius: var(--r-md);
  color: var(--accent1);
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.admin-panel-btn:hover { background: rgba(124,92,252,0.2); border-color: var(--accent1); }

/* Divider */
.ch-divider { height: 1px; background: var(--border); margin: 0; }

/* ── 19. Channel Posts ────────────────────────────────────── */
.ch-posts-wrap { padding: 16px 18px; }

.ch-post {
  background: var(--bg3);
  border-radius: var(--r-lg);
  padding: 16px;
  margin-bottom: 18px;
  border: 1px solid var(--border);
  box-shadow: 0 2px 10px rgba(0,0,0,0.18);
  transition: border-color .15s;
}
.ch-post:last-child { margin-bottom: 0; }
.ch-post:hover { border-color: var(--border2); }
.ch-post-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.ch-post-title { font-weight: 700; font-size: 13.5px; color: var(--text); }
.ch-post-time { font-size: 11px; color: var(--text4); margin-right: auto; white-space: nowrap; }
.ch-post-body { font-size: 13.5px; color: var(--text); line-height: 1.7; margin: 2px 0 12px; white-space: pre-wrap; }
.ch-post-stats { display: flex; gap: 14px; font-size: 12px; color: var(--text3); align-items: center; }
.ch-post-stat { display: flex; align-items: center; gap: 4px; cursor: pointer; padding: 4px 8px; border-radius: var(--r-sm); transition: background .15s; }
.ch-post-stat:hover { background: var(--bg4); }
.ch-post-reactions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.ch-reaction-btn {
  background: var(--bg4);
  border: 1.5px solid var(--border2);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 13px;
  cursor: pointer;
  transition: all .15s;
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: inherit;
}
.ch-reaction-btn:hover { background: rgba(124,92,252,0.1); border-color: var(--accent1); transform: scale(1.05); }
.ch-reaction-btn.active { background: rgba(124,92,252,0.15); border-color: var(--accent1); color: var(--accent1); font-weight: 700; }
.ch-reaction-btn svg { width: 15px; height: 15px; flex-shrink: 0; }

/* Post input area */
.ch-post-input-wrap {
  padding: 14px 18px;
  border-top: 1px solid var(--border);
  background: var(--bg2);
}
.ch-post-input-inner {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}
.ch-post-input-inner textarea {
  flex: 1;
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  padding: 10px 14px;
  color: var(--text);
  font-family: inherit;
  font-size: 13.5px;
  resize: none;
  outline: none;
  transition: border-color .15s;
  min-height: 44px;
}
.ch-post-input-inner textarea:focus { border-color: var(--accent1); }
.ch-post-input-inner .btn-primary.small { flex: 0 0 auto; align-self: flex-end; height: 44px; padding: 0 20px; }
.ch-media-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--border2);
  background: linear-gradient(135deg, rgba(124,92,252,0.14), rgba(54,201,198,0.10));
  color: var(--accent1);
  cursor: pointer;
  transition: transform .15s, background .2s, box-shadow .2s, color .2s;
}
.ch-media-btn:hover {
  background: var(--grad);
  color: #fff;
  box-shadow: 0 6px 16px rgba(124,92,252,0.35);
  transform: translateY(-2px);
}
.ch-media-btn:active { transform: scale(0.92); }

/* Rocket publish button (right side) */
.ch-rocket-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: var(--grad);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(124,92,252,0.4);
  transition: transform .15s, box-shadow .15s;
}
.ch-rocket-btn:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 6px 18px rgba(124,92,252,0.5); }
.ch-rocket-btn:active { transform: scale(0.9); }
.ch-rocket-btn.editing { background: linear-gradient(135deg, var(--online), #2fbd73); }

/* Pin/attach button + popup menu (left side), opens upward */
.ch-attach-wrap { position: relative; flex-shrink: 0; }
.ch-pin-btn.active { background: var(--grad); color: #fff; transform: rotate(45deg); }
.ch-attach-menu {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: 16px;
  padding: 8px;
  box-shadow: var(--shadow2);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease, transform .22s cubic-bezier(.34,1.56,.64,1), visibility .18s;
  z-index: 5;
}
.ch-attach-menu.shown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* ── 20. Edit Channel Modal ───────────────────────────────── */
#editChannelOverlay .modal { max-width: 500px; }

.edit-ch-header-wrap {
  position: relative;
  margin: -22px -22px 0;
  margin-bottom: 80px;
}
.edit-ch-cover {
  height: 130px;
  background: var(--grad);
  background-size: cover;
  background-position: center;
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.edit-ch-cover:hover .cover-hint { opacity: 1; }
.edit-ch-avatar-wrap {
  position: absolute;
  bottom: -44px;
  right: 22px;
}
.edit-ch-avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 4px solid var(--bg2);
  background: var(--grad);
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  overflow: hidden;
}

/* Admin section */
.admin-section { margin-top: 16px; }
.admin-section h4 { font-size: 13px; font-weight: 700; color: var(--text2); margin-bottom: 10px; }
.admin-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: var(--bg3);
  border-radius: var(--r-md);
  margin-bottom: 8px;
  gap: 10px;
}
.admin-action-row span { font-size: 13.5px; color: var(--text); flex: 1; }

/* ── 21. Super Admin Panel ────────────────────────────────── */
#superAdminOverlay .modal { max-width: 420px; }
.admin-search-row { display: flex; gap: 8px; margin-bottom: 16px; }
.admin-search-row .field-input-wrap { flex: 1; }

/* ── 22. Other Modals ─────────────────────────────────────── */
.media-gallery-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 4px; padding: 12px 16px; }
.media-gallery-grid img, .media-gallery-grid video { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-sm); }

/* Stats */
.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.stat-card { background: var(--bg3); border-radius: var(--r-md); padding: 16px; text-align: center; }
.stat-card .sv { font-size: 24px; font-weight: 800; color: var(--accent1); }
.stat-card .sl { font-size: 11.5px; color: var(--text3); margin-top: 4px; }

/* Multi-account */
.account-switcher { display: flex; flex-direction: column; gap: 8px; padding: 8px 0; }
.account-row { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: var(--r-md); cursor: pointer; transition: background .15s; }
.account-row:hover { background: var(--bg3); }
.account-row.active-acc { background: rgba(124,92,252,0.1); border: 1px solid rgba(124,92,252,0.25); }

/* ── 23. Onboarding Tour ──────────────────────────────────── */
#tourOverlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 200;
  padding: 20px;
}
#tourOverlay.shown { display: flex; }
.tour-card {
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--r-2xl);
  padding: 32px 28px;
  max-width: 340px;
  width: 100%;
  text-align: center;
  box-shadow: var(--shadow3);
  animation: modalIn .3s cubic-bezier(.2,.9,.3,1.1);
}
.tour-emoji { display:flex; align-items:center; justify-content:center; width:64px; height:64px; margin:0 auto 16px; border-radius:20px; background:linear-gradient(135deg, rgba(124,92,252,0.18), rgba(255,79,163,0.14)); color:var(--accent1); }
.tour-title { font-size: 20px; font-weight: 800; margin-bottom: 10px; }
.tour-desc { font-size: 14px; color: var(--text2); line-height: 1.7; margin-bottom: 20px; }
.tour-dots { display: flex; gap: 6px; justify-content: center; margin-bottom: 20px; }
.tour-dots span { width: 8px; height: 8px; border-radius: 50%; background: var(--border2); transition: background .2s; }
.tour-dots span.active { background: var(--accent1); }

/* ── 24. Lock Screen ──────────────────────────────────────── */
#lockScreen {
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: 9999;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
#lockScreen.shown { display: flex; }
#lockScreen .lock-icon { display: flex; align-items: center; justify-content: center; color: var(--accent1); filter: drop-shadow(0 0 10px rgba(124,92,252,0.45)); margin-bottom: 4px; }
#lockScreen .lock-title { font-size: 18px; font-weight: 700; }
#lockScreen .lock-sub { font-size: 13px; color: var(--text3); }
#lockScreen input {
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  padding: 12px 16px;
  color: var(--text);
  font-size: 15px;
  width: 240px;
  text-align: center;
  font-family: inherit;
  outline: none;
}
#lockScreen input:focus { border-color: var(--accent1); }

/* ── 25. Notifications ────────────────────────────────────── */
.r6-notify {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: var(--r-xl);
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  box-shadow: var(--shadow);
  z-index: 9997;
  opacity: 0;
  transition: opacity .3s, transform .3s;
  pointer-events: none;
  white-space: nowrap;
  max-width: calc(100vw - 32px);
}
.r6-notify.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ── 26. Misc UI ──────────────────────────────────────────── */
/* Pinned message bar */
#pinnedMsgBar { flex-shrink: 0; }

/* Date separator */
.date-sep { text-align: center; margin: 10px 0; position: relative; }
.date-sep::before { content: ''; position: absolute; top: 50%; right: 0; left: 0; height: 1px; background: var(--border); }
.date-sep span { position: relative; background: var(--bg2); padding: 0 12px; font-size: 11.5px; color: var(--text3); }

/* Link preview */
.link-preview { background: var(--bg3); border-right: 3px solid var(--accent1); border-radius: 0 10px 10px 0; padding: 8px 12px; margin-top: 6px; font-size: 12.5px; }
.link-preview .lp-title { font-weight: 600; color: var(--text); margin-bottom: 2px; }
.link-preview .lp-url { color: var(--accent1); font-size: 11.5px; }

/* Scheduled badge */
.sched-badge { background: rgba(245,181,71,0.15); color: var(--warn); font-size: 11px; padding: 2px 8px; border-radius: var(--r-sm); display: inline-flex; align-items: center; gap: 4px; }

/* Kebab menu */
.kebab-menu {
  display: none;
  position: absolute;
  top: 40px;
  left: 10px;
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: var(--r-md);
  box-shadow: var(--shadow3);
  overflow: hidden;
  min-width: 160px;
  z-index: 100;
  animation: modalIn .15s ease;
}
.kebab-menu.shown { display: block; }
.kebab-menu button { display: block; width: 100%; padding: 9px 14px; background: none; border: none; color: var(--text); font-size: 13px; font-family: inherit; text-align: right; cursor: pointer; }
.kebab-menu button:hover { background: var(--bg3); }
.kebab-menu button.danger { color: var(--danger); }

/* Shared chat-list kebab menu: lives at the body/#app level (not inside the
   scrollable, clipped chat list) so it can never get cut off by overflow or
   painted over by the rows below it, and always shows a fully solid, opaque
   panel instead of the see-through look. */
#globalKebabMenu.kebab-menu-global {
  position: fixed;
  top: 0; left: 0;
  z-index: 99999;
  background: #14151d;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 14px 36px rgba(0,0,0,0.55), 0 4px 14px rgba(0,0,0,0.4);
}
body.glass #globalKebabMenu.kebab-menu-global {
  background: #14151d;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Reaction float */
.reaction-float { position: absolute; font-size: 22px; pointer-events: none; animation: floatUp .8s ease-out forwards; z-index: 50; }

/* Glassmorphism mode — heavy blur across all main chrome surfaces */
body.glass #app, body.glass #sidebarWrap, body.glass #chatPanel { backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
body.glass #sidebar { background: rgba(16,18,26,0.75); }
body.glass .chat-item { background: transparent; }
body.glass .chat-item:hover { background: rgba(255,255,255,0.06); }
body.glass .top {
  background:
    radial-gradient(circle at 18% -10%, rgba(124,92,252,0.30), transparent 55%),
    radial-gradient(circle at 88% 0%, rgba(255,79,163,0.24), transparent 50%),
    rgba(16,18,26,0.55);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
}
body.glass #chatHeader, body.glass #inputBar {
  background: rgba(16,18,26,0.62);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
}
body.glass .bottom-nav {
  background: rgba(16,18,26,0.6);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
}
body.glass .modal {
  background: rgba(22,25,34,0.72);
  backdrop-filter: blur(28px) saturate(170%);
  -webkit-backdrop-filter: blur(28px) saturate(170%);
  border: 1px solid rgba(255,255,255,0.08);
}
body.glass .header-more-menu, body.glass .msg-ctx-popup, body.glass .reaction-bar {
  background: rgba(28,32,48,0.75);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
}
body.glass .kebab-menu {
  background: var(--bg4);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
body.glass .bottom-sheet {
  background: rgba(22,25,34,0.78);
  backdrop-filter: blur(28px) saturate(170%);
  -webkit-backdrop-filter: blur(28px) saturate(170%);
}
body.glass .section-card, body.glass .sheet-info-card {
  background: rgba(28,32,48,0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* Compact mode */
body.compact .ch-post { padding: 10px 12px; margin-bottom: 8px; }
body.compact .channel-item { padding: 7px 12px; }
body.compact .chat-item { padding: 7px 10px; }

  /* ── 27. Advanced Features v14 Ultimate ────────────────── */
  
  /* Cyberpunk Theme */
  body.theme-cyberpunk {
    --bg: #050010; --bg2: #0d001a; --bg3: #15002a; --bg4: #1f003a;
    --accent1: #FF2D78; --accent2: #00FFAA;
    --grad: linear-gradient(135deg, #FF2D78, #FF0055);
    --border: #300050; --border2: #400070;
    --text: #ffffff; --text2: #00FFAA; --text3: #FF2D78;
  }
  body.theme-cyberpunk .chat-item, body.theme-cyberpunk .msg-bubble {
    border: 1px solid var(--accent1);
    box-shadow: 0 0 10px rgba(255, 45, 120, 0.3);
  }
  
  /* Retro Terminal Theme */
  body.theme-retro {
    --bg: #000000; --bg2: #050505; --bg3: #0a0a0a; --bg4: #111111;
    --accent1: #00FF41; --accent2: #008F11;
    --grad: linear-gradient(180deg, #00FF41, #008F11);
    --border: #00FF41; --border2: #008F11;
    --text: #00FF41; --text2: #008F11; --text3: #00FF41;
    font-family: 'Courier New', Courier, monospace !important;
  }
  body.theme-retro * { border-radius: 0 !important; }

  /* Midnight Theme */
  body.theme-midnight {
    --bg: #020617; --bg2: #0f172a; --bg3: #1e293b; --bg4: #334155;
    --accent1: #3B82F6; --accent2: #60A5FA;
    --grad: linear-gradient(135deg, #3B82F6, #2563EB);
    --border: #1e293b; --border2: #334155;
  }

  /* Emerald Theme */
  body.theme-emerald {
    --bg: #022c22; --bg2: #064e3b; --bg3: #065f46; --bg4: #047857;
    --accent1: #10B981; --accent2: #34D399;
    --grad: linear-gradient(135deg, #10B981, #059669);
    --border: #065f46; --border2: #047857;
  }

  /* Lava Theme */
  body.theme-lava {
    --bg: #1c0000; --bg2: #2d0000; --bg3: #450000; --bg4: #600000;
    --accent1: #EF4444; --accent2: #F87171;
    --grad: linear-gradient(135deg, #EF4444, #B91C1C);
    --border: #450000; --border2: #600000;
  }
  
  /* Blur Aura Effect */
  body.blur-aura .msg-bubble {
    position: relative;
    overflow: visible;
  }
  body.blur-aura .msg-bubble::before {
    content: '';
    position: absolute;
    inset: -10px;
    background: inherit;
    filter: blur(20px);
    opacity: 0.4;
    z-index: -1;
    border-radius: inherit;
  }
.nav-container {
  display: none; /* Hidden old tabs */
}

/* ── Bottom Navigation ────────────────────────────────────── */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: var(--nav-h);
  background: var(--glass-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid var(--glass-border);
  display: flex;
  align-items: center;
  justify-content: space-around;
  z-index: 1000;
  padding-bottom: env(safe-area-inset-bottom);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
}

.bottom-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: var(--text3);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.3s var(--liquid-ease);
  flex: 1;
  padding: 8px 0;
  position: relative;
}

.bottom-nav-item svg {
  width: 22px;
  height: 22px;
  transition: transform 0.3s var(--liquid-ease);
}

.bottom-nav-item .nav-label {
  font-size: 10px;
  font-weight: 600;
}

.bottom-nav-item.active {
  color: var(--accent1);
}
.bottom-nav-item.active::before {
  content: '';
  position: absolute;
  top: 2px;
  width: 38px;
  height: 26px;
  border-radius: 12px;
  background: radial-gradient(circle, rgba(124,92,252,0.28), rgba(124,92,252,0.06) 70%, transparent);
  z-index: -1;
  animation: navGlowPop .3s cubic-bezier(.2,.9,.3,1.1);
}
@keyframes navGlowPop {
  0% { opacity: 0; transform: scale(0.6); }
  100% { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .bottom-nav-item.active::before { animation: none; }
}

.bottom-nav-item.active svg {
  transform: translateY(-2px);
}
.bottom-nav-item:not(.center-profile):active {
  transform: scale(0.92);
}

.bottom-nav-item:not(.center-profile)::before {
  content: '';
  position: absolute;
  top: 2px;
  width: 40px;
  height: 26px;
  border-radius: 14px;
  background: rgba(124,92,252,0.14);
  box-shadow: 0 0 16px 2px rgba(124,92,252,0.22);
  opacity: 0;
  transform: scale(0.7);
  transition: opacity .25s var(--liquid-ease, ease), transform .25s var(--liquid-ease, ease);
  z-index: -1;
}
.bottom-nav-item.active:not(.center-profile)::before {
  opacity: 1;
  transform: scale(1);
}

.bottom-nav-item .nav-dot {
  position: absolute;
  top: 10px;
  right: 30%;
  width: 6px;
  height: 6px;
  background: var(--danger);
  border-radius: 50%;
  display: none;
}
.bottom-nav-item .nav-dot.show { display: block; }

/* Center elevated Profile button */
.bottom-nav-item.center-profile {
  flex: 0 0 auto;
  width: 62px;
  margin-top: -26px;
}
.center-profile-circle {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #8a63ff, #3d1f8f 70%);
  border: 3px solid var(--bg1, #0a0a12);
  box-shadow: 0 0 0 2px rgba(124,92,252,0.35), 0 0 18px 4px rgba(124,92,252,0.55), 0 4px 14px rgba(0,0,0,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 15px;
  color: #fff;
  letter-spacing: 0.5px;
  transition: transform 0.3s var(--liquid-ease);
  overflow: hidden;
}
.center-profile-circle img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.bottom-nav-item.center-profile:active .center-profile-circle,
.bottom-nav-item.center-profile.active .center-profile-circle { transform: scale(1.06); }
.bottom-nav-item.center-profile .nav-label { margin-top: 2px; }

/* Home folder-row (Telegram-style top tab strip) */
.home-folders-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 8px 12px 10px;
  scrollbar-width: none;
}
.home-folders-row::-webkit-scrollbar { display: none; }
.home-folder-item {
  flex: 0 0 auto;
  padding: 7px 16px;
  border-radius: 20px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text3);
  background: var(--bg3, rgba(255,255,255,0.05));
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.25s var(--liquid-ease);
}
.home-folder-item.active {
  color: #fff;
  background: linear-gradient(135deg, var(--accent1, #7C5CFC), #FF4FA3);
  box-shadow: 0 3px 10px rgba(124,92,252,0.35);
  animation: tabPillPop .3s var(--liquid-ease, ease);
}
@keyframes tabPillPop {
  0%   { transform: scale(0.92); }
  60%  { transform: scale(1.05); }
  100% { transform: scale(1); }
}
.home-folders-row.hidden { display: none; }
#topBrandBar.hidden { display: none; }

/* ── Home tab greeting strip ─────────────────────────────── */
.home-greeting-strip {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin: 2px 2px 12px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(124,92,252,0.14), rgba(255,79,163,0.08) 60%, rgba(54,201,198,0.08));
  border: 1px solid rgba(255,255,255,0.08);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-shadow: 0 6px 20px -10px rgba(124,92,252,0.35), inset 0 1px 0 rgba(255,255,255,0.05);
  transition: transform .18s ease, box-shadow .18s ease;
}
.home-greeting-strip::before {
  content: '';
  position: absolute;
  top: -60%; left: 20%;
  width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(124,92,252,0.35), transparent 70%);
  filter: blur(24px);
  z-index: -1;
  animation: hgsDrift 9s ease-in-out infinite;
  pointer-events: none;
}
@keyframes hgsDrift {
  0%, 100% { transform: translate(0,0) scale(1); opacity: .7; }
  50% { transform: translate(30px,10px) scale(1.15); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .home-greeting-strip::before { animation: none; } }
.home-greeting-strip:active { transform: scale(0.99); }
.home-greeting-strip.hidden { display: none; }
#hgsAvatar { position: relative; z-index: 1; }
#hgsAvatar .avatar {
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 3.5px rgba(124,92,252,0.4);
}
.hgs-text { flex: 1; min-width: 0; position: relative; z-index: 1; }
.hgs-greeting { font-size: 13.5px; font-weight: 750; color: var(--text); letter-spacing: -0.1px; }
.hgs-sub { font-size: 11px; color: var(--text3); margin-top: 2px; }

/* Per-folder accent identity */
.home-folder-item[id="folderChats"] .hfi-icon { color: #7C5CFC; }
.home-folder-item[id="folderChannels"] .hfi-icon { color: #36C9C6; }
.home-folder-item[id="folderFriends"] .hfi-icon { color: #FF4FA3; }
.home-folder-item[id="folderMoments"] .hfi-icon { color: #EAB308; }
.home-folder-item[id="folderCloud"] .hfi-icon { color: #22C55E; }
.home-folder-item.active .hfi-icon { color: #fff; }

/* Bottom Sheet for "More" */
#moreMenuSheet {
  position: fixed;
  bottom: -100%;
  left: 0;
  right: 0;
  background: var(--bg2);
  border-radius: 24px 24px 0 0;
  padding: 20px 20px calc(20px + var(--nav-h));
  z-index: 2000;
  transition: bottom 0.4s var(--liquid-ease);
  box-shadow: 0 -10px 40px rgba(0,0,0,0.4);
  max-height: 80vh;
  overflow-y: auto;
}
#moreMenuSheet.shown { bottom: 0; }
.more-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}
.more-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.more-icon {
  width: 50px;
  height: 50px;
  border-radius: 15px;
  background: var(--bg3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  transition: transform 0.2s;
}
.more-item:hover .more-icon { transform: scale(1.1); background: var(--bg4); }
.more-label { font-size: 11px; color: var(--text2); font-weight: 600; }

#sidebarWrap { padding-bottom: var(--nav-h); }
#chatPanel { padding-bottom: var(--nav-h); }
@media (max-width: 760px) {
  body.chat-open #chatPanel { padding-bottom: 0; }
}

.floating-btn-glass {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 60px;
  height: 60px;
  background: rgba(124, 92, 252, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 30px;
  box-shadow: 0 8px 32px rgba(124, 92, 252, 0.4);
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  z-index: 100;
}
.floating-btn-glass:hover {
  transform: scale(1.1) rotate(90deg);
  background: rgba(124, 92, 252, 0.8);
  box-shadow: 0 0 20px rgba(124, 92, 252, 0.6);
}

.dynamic-backdrop {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 200px;
  z-index: -1;
  filter: blur(40px);
  opacity: 0.5;
  transition: background 0.8s ease;
}

/* ── 28. Advanced Features v13 Revolution (Legacy) ────────────────── */
.neumorph-btn {
  background: var(--bg3);
  box-shadow: var(--neumorph-shadow);
  border: none;
  transition: all 0.3s var(--liquid-ease);
}
.neumorph-btn:active {
  box-shadow: inset 4px 4px 8px rgba(0,0,0,0.5), inset -2px -2px 4px rgba(255,255,255,0.05);
  transform: scale(0.98);
}
.parallax-bg {
  position: fixed;
  top: 0; left: 0; width: 100%; height: 100%;
  z-index: -1;
  background: radial-gradient(circle at center, #161922 0%, #0B0D12 100%);
  overflow: hidden;
}
.particle {
  position: absolute;
  background: rgba(124, 92, 252, 0.2);
  border-radius: 50%;
  pointer-events: none;
  transition: transform 0.1s linear;
}
.section-card {
  background: var(--glass-bg);
  backdrop-filter: blur(15px);
  border-radius: var(--r-xl);
  padding: 20px;
  margin-bottom: 15px;
  border: 1px solid var(--glass-border);
  transition: transform 0.4s var(--liquid-ease);
}
.section-card:hover { transform: translateY(-5px); }
.liquid-in { animation: liquidIn 0.6s var(--liquid-ease) forwards; }
@keyframes liquidIn {
  from { opacity: 0; transform: scale(0.8) translateY(30px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.gradient-animated {
  background: var(--grad-animated);
  background-size: var(--gradient-size);
  animation: gradientShift 8s ease infinite;
}
@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.2); opacity: 0.8; }
}
.pulse-indicator { animation: pulse var(--pulse-duration) ease-in-out infinite; }
.glass-panel {
  background: var(--glass-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--glass-border);
}
.profile-banner {
  height: 120px;
  background: var(--grad);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  position: relative;
  overflow: hidden;
}
.profile-banner-animated { animation: gradientShift 6s ease infinite; }
.badge-pink-verified {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(255, 79, 163, 0.15);
  color: var(--pink-verified);
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
  filter: drop-shadow(0 0 4px rgba(255, 79, 163, 0.4));
}
.admin-badge {
  background: var(--gold);
  color: #000;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 800;
  margin-right: 6px;
}
.reserved-username-tag {
  background: rgba(255, 215, 0, 0.1);
  border: 1px solid var(--gold);
  color: var(--gold);
  padding: 4px 10px;
  border-radius: var(--r-sm);
  font-size: 11px;
  font-weight: 700;
}

/* ── 28. Responsive ───────────────────────────────────────── */
@media (max-width: 760px) {
  #sidebarWrap {
    position: absolute;
    inset: 0;
    z-index: 2;
    max-width: 100%;
    width: 100%;
    flex-basis: 100%;
  }
  #sidebarWrap.hide { display: none; }
  #sidebar { width: 100%; }
  #sidebarBottom { padding: 8px 8px; }
  .sidebar-quick-actions { grid-template-columns: 1fr 1fr; }
  #chatPanel { width: 100%; max-width: 100%; height: 100%; padding-bottom: 0; }
  body.chat-open .bottom-nav, body.profile-open .bottom-nav, body.channel-open .bottom-nav { display: none !important; }
  #backBtn { display: inline-flex; }
  #emojiPanel { width: min(290px, calc(100vw - 28px)); right: 6px; }
  .msg-row { max-width: 86%; }
  #chatHeader { display: flex; padding-top: calc(10px + env(safe-area-inset-top)); position: sticky; top: 0; z-index: 100; }
  /* #inputBar stays in normal flex flow (flex-shrink:0, set in the base rule) instead of
     position:fixed, so it always sits right above whatever space is left once #app's
     height is adjusted for the keyboard by the visualViewport script below. */
  #authScreen { padding-top: calc(20px + env(safe-area-inset-top)); padding-bottom: calc(20px + env(safe-area-inset-bottom)); }

  /* Channel card mobile */
  .ch-cover { height: 140px; }
  .ch-avatar-big { width: 72px; height: 72px; font-size: 26px; }
  .ch-avatar-big-wrap { margin-top: -36px; padding: 0 16px 0; }
  .ch-identity { padding-top: 36px; }
  .ch-identity .ch-name { font-size: 17px; }
  .ch-info-body { padding: 12px 16px 16px; }
  .ch-actions-row { flex-wrap: wrap; }
  .ch-actions-row .btn-primary,
  .ch-actions-row .btn-secondary { min-width: 80px; }

  /* Edit channel mobile */
  .edit-ch-cover { height: 100px; }
  .edit-ch-avatar { width: 72px; height: 72px; font-size: 24px; }
  .edit-ch-avatar-wrap { bottom: -36px; }
  .edit-ch-header-wrap { margin-bottom: 60px; }
}

@media (max-width: 480px) {
  .auth-card { padding: 24px 20px; }
  .modal { padding: 18px; }
  .ch-cover { height: 120px; }
  .ch-avatar-big { width: 64px; height: 64px; font-size: 22px; border-width: 3px; }
  .ch-avatar-big-wrap { margin-top: -32px; }
  .ch-identity { padding-top: 32px; }
  .ch-identity .ch-name { font-size: 16px; }
  .ch-stats-row { gap: 10px; }
  .sheet-actions { gap: 6px; padding: 10px 14px; }
  .sheet-actions button { padding: 10px 6px; font-size: 11.5px; }
}

@media (max-width: 380px) {
  #inputBar { gap: 3px; padding: 8px 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
  #inputBar .icon-btn { padding: 4px; }
  #inputBar .icon-btn svg { width: 17px; height: 17px; }
  #inputWrap { padding: 8px 10px; }
  #sendBtn { width: 36px; height: 36px; }
  .tabs .tab-btn { font-size: 11px; padding: 6px 2px; }
}

@media (max-width: 340px) {
  #attachBtn, #videoBtn { display: none; }
  .chat-last { max-width: 120px; }
}

/* ══════════════════════════════════════════════════════════
   R6 v15 — NEW FEATURES CSS
   ══════════════════════════════════════════════════════════ */

/* ── Top Channels / Top Groups ─────────────────────────── */
.discover-section { padding: 12px 14px; overflow-x: hidden; }
.discover-section-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.top-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--r-md);
  background: var(--bg3);
  margin-bottom: 8px;
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid var(--border);
}
.top-item:hover { background: var(--bg4); border-color: var(--border2); transform: translateX(-2px); }
.top-item-rank {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--bg4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  color: var(--text3);
  flex-shrink: 0;
}
.top-item-rank.gold { background: rgba(255,215,0,0.15); color: var(--gold); }
.top-item-rank.silver { background: rgba(192,192,192,0.15); color: #C0C0C0; }
.top-item-rank.bronze { background: rgba(205,127,50,0.15); color: #CD7F32; }
.top-item-info { flex: 1; min-width: 0; }
.top-item-name { font-size: 13.5px; font-weight: 600; color: var(--text); }
.top-item-sub { font-size: 11.5px; color: var(--text3); margin-top: 2px; }
.top-item-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 10px;
  background: rgba(124,92,252,0.15);
  color: var(--accent1);
  flex-shrink: 0;
}
.discover-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  padding: 0 2px;
}
.discover-tab {
  flex: 1;
  padding: 8px;
  border-radius: var(--r-md);
  border: 1.5px solid var(--border2);
  background: var(--bg3);
  color: var(--text2);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
  text-align: center;
}
.discover-tab.active { background: var(--grad); color: #fff; border-color: transparent; }

/* ── Game System ─────────────────────────────────────────── */
.game-card {
  background: var(--bg3);
  border-radius: var(--r-lg);
  padding: 16px;
  margin-bottom: 10px;
  border: 1px solid var(--border);
  transition: all 0.2s;
  cursor: pointer;
}
.game-card:hover { border-color: var(--accent1); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.2); }
.game-card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.game-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0,0,0,0.32), inset 0 1px 0 rgba(255,255,255,0.18);
  transition: transform var(--transition-fast, .15s);
}
.game-icon svg { width: 25px; height: 25px; }
.game-card:hover .game-icon { transform: translateY(-1px) scale(1.04); }
.game-title { font-size: 15px; font-weight: 700; color: var(--text); }
.game-sub { font-size: 12px; color: var(--text3); margin-top: 2px; }
.game-play-btn {
  width: 100%;
  padding: 10px;
  background: var(--grad);
  border: none;
  border-radius: var(--r-md);
  color: #fff;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: opacity 0.2s;
}
.game-play-btn:hover { opacity: 0.9; }

/* Tic Tac Toe */
.ttt-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 16px 0;
}
.ttt-cell {
  aspect-ratio: 1;
  background: var(--bg3);
  border: 2px solid var(--border2);
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  cursor: pointer;
  transition: all 0.15s;
  font-weight: 800;
}
.ttt-cell:hover:not(.taken) { background: var(--bg4); border-color: var(--accent1); }
.ttt-cell.taken { cursor: default; }
.ttt-cell.x-cell { color: var(--accent1); }
.ttt-cell.o-cell { color: var(--accent2); }
.ttt-cell.win-cell { background: rgba(124,92,252,0.15); border-color: var(--accent1); animation: winPulse 0.5s ease; }

/* ── چهار در ردیف ─────────────────────────────────────────── */
.c4-board { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; background: linear-gradient(135deg,#1a2740,#0d1626); border-radius: 14px; padding: 8px; }
.c4-cell { position: relative; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,0.06); cursor: pointer; transition: background 0.15s; }
.c4-cell:hover { background: rgba(255,255,255,0.12); }
.c4-cell.p1 { background: radial-gradient(circle at 35% 30%, #FF7A7A, #F43F5E 70%); box-shadow: 0 2px 6px rgba(244,63,94,0.5); }
.c4-cell.p2 { background: radial-gradient(circle at 35% 30%, #FFE08A, #EAB308 70%); box-shadow: 0 2px 6px rgba(234,179,8,0.5); }
.c4-cell.win-disc { animation: winPulse 0.6s ease; box-shadow: 0 0 0 3px #fff, 0 2px 10px rgba(255,255,255,0.6); }

/* ── اتللو (Reversi) ──────────────────────────────────────── */
.reversi-board { display: grid; grid-template-columns: repeat(8, 1fr); gap: 3px; background: linear-gradient(135deg,#0d3b2e,#0a2a21); border-radius: 12px; padding: 6px; }
.reversi-cell { position: relative; aspect-ratio: 1; background: rgba(255,255,255,0.05); border-radius: 4px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.reversi-cell:hover.hint { background: rgba(255,255,255,0.14); }
.reversi-cell.hint::after { content: ''; width: 22%; height: 22%; border-radius: 50%; background: rgba(255,255,255,0.35); }
.reversi-disc { width: 82%; height: 82%; border-radius: 50%; transition: transform 0.35s; }
.reversi-disc.black { background: radial-gradient(circle at 35% 30%, #4a4a4a, #0a0a0a 75%); box-shadow: 0 2px 5px rgba(0,0,0,0.5); }
.reversi-disc.white { background: radial-gradient(circle at 35% 30%, #ffffff, #d8d8d8 75%); box-shadow: 0 2px 5px rgba(0,0,0,0.35); }
.reversi-disc.flipping { animation: reversiFlip 0.4s ease; }
@keyframes reversiFlip { 0% { transform: rotateY(0); } 50% { transform: rotateY(90deg); } 100% { transform: rotateY(0); } }

/* ── تخته نرد (Backgammon) ────────────────────────────────────────
   ظاهر چوبی: قاب گردویی تیره + خانه‌های عاجی/گردویی متناوب          */
.bg-menu-card { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 14px; background: var(--bg3); cursor: pointer; transition: transform 0.15s, background 0.15s; margin-bottom: 10px; border: 1px solid var(--border); }
.bg-menu-card:active { transform: scale(0.97); }
.bg-menu-card .bg-menu-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.bg-menu-card .bg-menu-text b { display: block; font-size: 13.5px; }
.bg-menu-card .bg-menu-text span { font-size: 11.5px; color: var(--text3); }

.bg-frame {
  background: linear-gradient(160deg, #6b3f22, #3d2213 55%, #2a1608);
  border-radius: 16px;
  padding: 10px;
  box-shadow: inset 0 0 0 2px rgba(255,200,140,0.15), 0 8px 24px rgba(0,0,0,0.45);
}
.bg-board {
  display: grid;
  grid-template-columns: repeat(6, 1fr) 24px repeat(6, 1fr);
  grid-template-rows: 1fr 1fr;
  gap: 0;
  background: linear-gradient(135deg, #9c6b3e, #7a4e28);
  border-radius: 8px;
  overflow: hidden;
  height: 320px;
  position: relative;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.5);
}
.bg-quad-top, .bg-quad-bottom { display: contents; }
.bg-point { position: relative; display: flex; flex-direction: column; align-items: center; overflow: visible; }
.bg-point.top { justify-content: flex-start; }
.bg-point.bottom { justify-content: flex-end; }
.bg-point .bg-triangle {
  position: absolute; left: 8%; right: 8%; height: 96%;
}
.bg-point.top .bg-triangle { top: 0; clip-path: polygon(0 0, 100% 0, 50% 100%); }
.bg-point.bottom .bg-triangle { bottom: 0; clip-path: polygon(0 100%, 100% 100%, 50% 0); }
.bg-point.light .bg-triangle { background: linear-gradient(180deg, #e8d3ab, #cbaa72); }
.bg-point.dark .bg-triangle { background: linear-gradient(180deg, #7a3b2e, #5c2a20); }
.bg-point-num { position: absolute; font-size: 8px; color: rgba(255,255,255,0.55); left: 50%; transform: translateX(-50%); z-index: 2; }
.bg-point.top .bg-point-num { top: 2px; }
.bg-point.bottom .bg-point-num { bottom: 2px; }
.bg-point.legal-dest .bg-triangle { filter: brightness(1.35); box-shadow: 0 0 10px rgba(255,220,120,0.7) inset; }
.bg-point.legal-dest::before { content:''; position:absolute; left:50%; top:50%; width:16px; height:16px; border-radius:50%; background:rgba(255,220,120,0.55); transform:translate(-50%,-50%); z-index:3; animation: winPulse 1s infinite; }
.bg-point.selected-src .bg-triangle { filter: brightness(1.5); }

.bg-checker-stack { position: absolute; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; z-index: 4; cursor: pointer; }
.bg-point.top .bg-checker-stack { top: 4px; }
.bg-point.bottom .bg-checker-stack { bottom: 4px; }
.bg-checker { width: 22px; height: 22px; border-radius: 50%; margin-top: -13px; box-shadow: 0 2px 3px rgba(0,0,0,0.5); }
.bg-checker:first-child { margin-top: 0; }
.bg-checker.w { background: radial-gradient(circle at 35% 30%, #fffaf0, #e6d5b8 70%, #cbb894 100%); border: 1px solid #a88a5c; }
.bg-checker.b { background: radial-gradient(circle at 35% 30%, #5a3824, #2e1c10 70%, #1a0f08 100%); border: 1px solid #0a0603; }
.bg-checker-count { font-size: 10px; font-weight: 800; color: #fff; background: rgba(0,0,0,0.55); border-radius: 50%; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; margin-top: -13px; z-index: 5; }

.bg-bar { grid-row: 1 / 3; grid-column: 7; background: linear-gradient(180deg,#3d2213,#2a1608); display: flex; flex-direction: column; justify-content: space-between; align-items: center; padding: 8px 0; position: relative; cursor: pointer; }
.bg-bar.legal-dest { box-shadow: inset 0 0 10px rgba(255,220,120,0.8); }
.bg-bar-half { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 40px; }

.bg-off-tray { display: flex; flex-direction: column; gap: 3px; align-items: center; padding: 4px; background: rgba(0,0,0,0.25); border-radius: 8px; min-height: 40px; justify-content: center; }
.bg-off-tray .bg-checker { width: 16px; height: 16px; margin-top: -10px; }
.bg-off-tray .bg-checker:first-child { margin-top: 0; }

.bg-dice-row { display: flex; justify-content: center; gap: 10px; margin: 12px 0; min-height: 46px; align-items: center; }
.bg-die { width: 42px; height: 42px; border-radius: 10px; background: linear-gradient(145deg,#fff,#e0d5c0); box-shadow: 0 3px 8px rgba(0,0,0,0.4); display: grid; grid-template-columns: repeat(3,1fr); grid-template-rows: repeat(3,1fr); padding: 6px; gap: 2px; }
.bg-die.used { opacity: 0.35; filter: grayscale(0.6); }
.bg-die-dot { width: 100%; height: 100%; border-radius: 50%; background: #2a2a2a; visibility: hidden; align-self: center; justify-self: center; }
.bg-die[data-v="1"] .d5 { visibility: visible; }
.bg-die[data-v="2"] .d1, .bg-die[data-v="2"] .d9 { visibility: visible; }
.bg-die[data-v="3"] .d1, .bg-die[data-v="3"] .d5, .bg-die[data-v="3"] .d9 { visibility: visible; }
.bg-die[data-v="4"] .d1, .bg-die[data-v="4"] .d3, .bg-die[data-v="4"] .d7, .bg-die[data-v="4"] .d9 { visibility: visible; }
.bg-die[data-v="5"] .d1, .bg-die[data-v="5"] .d3, .bg-die[data-v="5"] .d5, .bg-die[data-v="5"] .d7, .bg-die[data-v="5"] .d9 { visibility: visible; }
.bg-die[data-v="6"] .d1, .bg-die[data-v="6"] .d3, .bg-die[data-v="6"] .d4, .bg-die[data-v="6"] .d6, .bg-die[data-v="6"] .d7, .bg-die[data-v="6"] .d9 { visibility: visible; }
.bg-die.rolling { animation: bgDieRoll 0.5s ease; }
@keyframes bgDieRoll { 0%{ transform: rotate(0);} 50%{ transform: rotate(180deg) scale(1.15);} 100%{ transform: rotate(360deg);} }

.bg-status-bar { display: flex; justify-content: space-between; align-items: center; font-size: 12px; margin-bottom: 8px; padding: 0 4px; }
.bg-player-chip { display: flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 20px; background: var(--bg3); }
.bg-player-chip.active-turn { background: linear-gradient(135deg, rgba(139,92,246,0.25), rgba(54,201,198,0.2)); box-shadow: 0 0 0 1.5px var(--accent1); }
.bg-invite-bubble { background: linear-gradient(135deg,#6b3f22,#3d2213); border-radius: 14px; padding: 12px 14px; color: #fff; min-width: 220px; }
.bg-invite-bubble .bg-invite-title { font-size: 13px; font-weight: 800; margin-bottom: 8px; display:flex; align-items:center; gap:6px; }
.bg-invite-bubble .bg-invite-actions { display: flex; gap: 8px; margin-top: 4px; }
.bg-invite-bubble button { flex: 1; border: none; border-radius: 10px; padding: 7px 0; font-size: 12px; font-weight: 700; cursor: pointer; }
.bg-invite-bubble .bg-accept-btn { background: linear-gradient(135deg,#22C55E,#16A34A); color: #fff; }
.bg-invite-bubble .bg-decline-btn { background: rgba(255,255,255,0.15); color: #fff; }
.bg-invite-bubble.resolved { opacity: 0.7; }

/* ── حدس کلمه (وردل فارسی) ───────────────────────────────── */
.wordle-grid { display: flex; flex-direction: column; gap: 6px; align-items: center; margin-bottom: 14px; }
.wordle-row { display: flex; gap: 6px; flex-direction: row-reverse; }
.wordle-tile { width: 42px; height: 42px; border: 2px solid var(--border); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 800; color: var(--text); background: var(--bg3); transition: transform 0.3s; }
.wordle-tile.filled { border-color: var(--text3); }
.wordle-tile.correct { background: linear-gradient(135deg,#22C55E,#16A34A); border-color: transparent; color: #fff; }
.wordle-tile.present { background: linear-gradient(135deg,#EAB308,#CA8A04); border-color: transparent; color: #fff; }
.wordle-tile.absent { background: var(--bg4); border-color: transparent; color: var(--text3); }
.wordle-tile.flip { animation: wordleFlip 0.4s ease; }
@keyframes wordleFlip { 0% { transform: rotateX(0); } 50% { transform: rotateX(90deg); } 100% { transform: rotateX(0); } }
.wordle-keyboard { display: flex; flex-direction: column; gap: 6px; align-items: center; }
.wordle-krow { display: flex; gap: 4px; flex-direction: row-reverse; }
.wordle-key { min-width: 26px; height: 38px; padding: 0 6px; border: none; border-radius: 7px; background: var(--bg4); color: var(--text); font-size: 13px; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.wordle-key.wide { min-width: 46px; font-size: 11px; }
.wordle-key.correct { background: linear-gradient(135deg,#22C55E,#16A34A); color: #fff; }
.wordle-key.present { background: linear-gradient(135deg,#EAB308,#CA8A04); color: #fff; }
.wordle-key.absent { background: var(--bg2); color: var(--text4); }

/* ── کنترل‌های لمسی تتریس / رانندگی ──────────────────────── */
.tetris-controls { display: flex; justify-content: center; gap: 10px; margin-top: 12px; }
.tetris-controls button { width: 52px; height: 44px; border: none; border-radius: 10px; background: var(--bg4); color: var(--text); font-size: 18px; cursor: pointer; transition: background 0.15s, transform 0.1s; }
.tetris-controls button:active { background: var(--accent1); color: #fff; transform: scale(0.94); }

/* ── هواپیمای ضریبی (Aviator) ─────────────────────────────── */
.aviator-action-btn { font-size: 15px; font-weight: 800; }
.aviator-action-btn.cashout { background: linear-gradient(135deg,#22C55E,#16A34A) !important; animation: aviatorPulse 1s infinite; }
.aviator-action-btn.crashed { background: linear-gradient(135deg,#4b4b4b,#2a2a2a) !important; }
@keyframes aviatorPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.55); } 50% { box-shadow: 0 0 0 10px rgba(34,197,94,0); } }
@keyframes winPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.08)} }
.ttt-status { text-align: center; font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 12px; min-height: 24px; }
.ttt-score { display: flex; justify-content: center; gap: 24px; margin-bottom: 12px; font-size: 13px; color: var(--text2); }
.ttt-score span { font-weight: 800; color: var(--accent1); }

/* ── Friends System ──────────────────────────────────────── */
.friends-section { padding: 12px 14px; }
.friend-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: var(--r-md);
  background: var(--bg3);
  margin-bottom: 8px;
  border: 1px solid var(--border);
  transition: all 0.2s;
}
.friend-item:hover { background: var(--bg4); }
.friend-info { flex: 1; min-width: 0; }
.friend-name { font-size: 13.5px; font-weight: 600; color: var(--text); }
.friend-status { font-size: 11.5px; color: var(--text3); margin-top: 2px; }
.friend-actions { display: flex; gap: 6px; }
.friend-btn {
  padding: 5px 10px;
  border-radius: var(--r-sm);
  border: 1.5px solid var(--border2);
  background: var(--bg4);
  color: var(--text2);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}
.friend-btn:hover { border-color: var(--accent1); color: var(--accent1); }
.friend-btn.accept { background: rgba(61,220,132,0.1); border-color: var(--online); color: var(--online); }
.friend-btn.reject { background: rgba(255,107,107,0.1); border-color: var(--danger); color: var(--danger); }
.friend-tabs { display: flex; gap: 6px; margin-bottom: 14px; }
.friend-tab {
  flex: 1;
  padding: 7px;
  border-radius: var(--r-sm);
  border: 1.5px solid var(--border2);
  background: var(--bg3);
  color: var(--text2);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
  text-align: center;
}
.friend-tab.active { background: var(--grad); color: #fff; border-color: transparent; }
.friends-search { display: flex; gap: 8px; margin-bottom: 12px; }
.friends-search input {
  flex: 1;
  background: var(--bg3);
  border: 1.5px solid var(--border2);
  border-radius: var(--r-md);
  padding: 8px 12px;
  color: var(--text);
  font-size: 13px;
  font-family: inherit;
  outline: none;
}
.friends-search input:focus { border-color: var(--accent1); }
.friends-search button {
  padding: 8px 14px;
  background: var(--grad);
  border: none;
  border-radius: var(--r-md);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}

/* ── Ghost Mode ──────────────────────────────────────────── */
.ghost-indicator {
  position: fixed;
  top: 60px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(124,92,252,0.92);
  backdrop-filter: blur(10px);
  color: #fff;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  z-index: 9998;
  display: none;
  align-items: center;
  gap: 6px;
  box-shadow: 0 4px 16px rgba(124,92,252,0.4);
}
.ghost-indicator.shown { display: flex; }

/* ── Smart Reactions ─────────────────────────────────────── */
.smart-reaction-chip {
  background: var(--bg4);
  border: 1.5px solid var(--border2);
  border-radius: 20px;
  padding: 4px 10px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.smart-reaction-chip:hover { background: rgba(124,92,252,0.1); border-color: var(--accent1); transform: scale(1.08); }

/* ── Smart Feed ──────────────────────────────────────────── */
.smart-feed-item {
  background: var(--bg3);
  border-radius: var(--r-lg);
  padding: 14px;
  margin-bottom: 10px;
  border: 1px solid var(--border);
  transition: all 0.2s;
  cursor: pointer;
}
.smart-feed-item:hover { border-color: var(--border2); }
.smart-feed-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(124,92,252,0.12);
  color: var(--accent1);
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 10.5px;
  font-weight: 700;
  margin-bottom: 8px;
}

/* ── Level Ring ──────────────────────────────────────────── */
.level-badge {
  background: var(--grad);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  padding: 2px 5px;
  border-radius: 8px;
  border: 2px solid var(--bg2);
}

/* ── Shadow Ban Indicator ────────────────────────────────── */
.shadow-banned-indicator {
  font-size: 10px;
  background: rgba(245,181,71,0.15);
  color: var(--warn);
  padding: 1px 6px;
  border-radius: 6px;
  border: 1px solid rgba(245,181,71,0.3);
}

/* ── Advanced Admin Panel v15 ────────────────────────────── */
.admin-v15-wrap {
  max-height: 80vh;
  overflow-y: auto;
  padding: 0;
  background: var(--bg2);
}
.admin-v15-content {
  padding: 20px;
}
.admin-v15-wrap::-webkit-scrollbar { width: 4px; }
.admin-v15-wrap::-webkit-scrollbar-track { background: var(--bg3); }
.admin-v15-wrap::-webkit-scrollbar-thumb { background: var(--accent1); border-radius: 2px; }
.admin-stat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}
.admin-stat-card {
  background: var(--bg3);
  border-radius: var(--r-md);
  padding: 12px 8px;
  text-align: center;
  border: 1px solid var(--border);
  transition: all 0.2s;
}
.admin-stat-card:hover { border-color: var(--accent1); }
.admin-stat-value { font-size: 20px; font-weight: 800; color: var(--accent1); }
.admin-stat-label { font-size: 10px; color: var(--text3); margin-top: 3px; }
.admin-log-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 10px;
  border-radius: var(--r-sm);
  background: var(--bg3);
  margin-bottom: 6px;
  font-size: 12px;
  border-right: 3px solid var(--border2);
}
.admin-log-item.warn { border-right-color: var(--warn); }
.admin-log-item.danger { border-right-color: var(--danger); }
.admin-log-item.success { border-right-color: var(--online); }
.admin-log-time { color: var(--text4); font-size: 10.5px; flex-shrink: 0; }
.admin-log-text { color: var(--text2); flex: 1; }
.admin-role-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
}
.admin-role-badge.owner { background: rgba(255,215,0,0.15); color: var(--gold); border: 1px solid rgba(255,215,0,0.3); }
.grp-member-row { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; transition: background .15s; }
.grp-member-row:hover { background: var(--bg3); }
.grp-member-row .gmr-name { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grp-role-badge { font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 8px; flex-shrink: 0; }
.grp-role-badge.owner { background: rgba(255,215,0,0.15); color: var(--gold); border: 1px solid rgba(255,215,0,0.3); }
.grp-role-badge.admin { background: rgba(124,92,252,0.15); color: var(--accent1); border: 1px solid rgba(124,92,252,0.3); }
.grp-member-menu-btn { background: none; border: none; color: var(--text3); cursor: pointer; padding: 4px; border-radius: 6px; flex-shrink: 0; }
.grp-member-menu-btn:hover { background: var(--bg4); color: var(--text); }
#lockPinDots span { width: 14px; height: 14px; border-radius: 50%; background: var(--bg4); border: 1px solid var(--border2); display: inline-block; transition: background .15s, transform .15s; }
#lockPinDots span.filled { background: var(--accent1); transform: scale(1.15); }
.admin-role-badge.mod { background: rgba(124,92,252,0.15); color: var(--accent1); border: 1px solid rgba(124,92,252,0.3); }
.admin-role-badge.vip { background: rgba(255,79,163,0.15); color: var(--pink-verified); border: 1px solid rgba(255,79,163,0.3); }
.admin-role-badge.user { background: var(--bg3); color: var(--text3); border: 1px solid var(--border); }
.online-dot-live {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--online);
  animation: pulse 1.5s ease-in-out infinite;
  display: inline-block;
  margin-right: 4px;
}
.emergency-btn {
  background: rgba(255,107,107,0.1);
  border: 2px solid var(--danger);
  border-radius: var(--r-md);
  color: var(--danger);
  padding: 10px 16px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.emergency-btn:hover { background: rgba(255,107,107,0.2); }
.emergency-btn.active { background: var(--danger); color: #fff; }
.ai-spam-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: var(--r-sm);
  background: var(--bg3);
  margin-bottom: 6px;
  border: 1px solid var(--border);
}
.ai-spam-score {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  flex-shrink: 0;
}
.ai-spam-score.high { background: rgba(255,107,107,0.15); color: var(--danger); }
.ai-spam-score.medium { background: rgba(245,181,71,0.15); color: var(--warn); }
.ai-spam-score.low { background: rgba(61,220,132,0.15); color: var(--online); }
.admin-section-v15 {
  background: var(--bg3);
  border-radius: var(--r-lg);
  padding: 16px;
  margin-bottom: 16px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.admin-section-v15 h4 {
  font-size: 12px;
  font-weight: 800;
  color: var(--text2);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.theme-grid-v16 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 12px 0;
}
.theme-card-v16 {
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: var(--r-md);
  padding: 12px 8px;
  cursor: pointer;
  transition: all 0.2s var(--liquid-ease);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  color: var(--text);
  font-family: inherit;
}
.theme-card-v16:hover {
  transform: translateY(-3px);
  border-color: var(--t-color, var(--accent1));
  background: var(--bg5);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.theme-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--t-color, var(--accent1)) 85%, white), var(--t-color, var(--accent1)));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--t-color, var(--accent1)) 20%, transparent);
}
.theme-name { font-size: 11px; font-weight: 600; }
.admin-user-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: var(--r-sm);
  background: var(--bg4);
  margin-bottom: 6px;
  transition: all 0.15s;
}
.admin-user-row:hover { background: var(--bg5); }
.admin-user-info { flex: 1; min-width: 0; }
.admin-user-name { font-size: 13px; font-weight: 600; color: var(--text); }
.admin-user-id { font-size: 11px; color: var(--text3); }
.admin-user-actions { display: flex; gap: 4px; }
.admin-mini-btn {
  padding: 8px 12px;
  border-radius: var(--r-md);
  border: 1px solid var(--border2);
  background: var(--bg4);
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s var(--liquid-ease);
  font-family: inherit;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.admin-mini-btn:hover { 
  border-color: var(--accent1); 
  background: var(--bg5);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.admin-mini-btn.danger { color: var(--danger); border-color: rgba(255,107,107,0.2); }
.admin-mini-btn.danger:hover { border-color: var(--danger); background: rgba(255,107,107,0.1); }
.admin-mini-btn svg, .admin-mini-btn span { font-size: 16px; }

/* ── Channel badge toggle pills (add + remove combined, fixes overflow) ─── */
.badge-pill-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 8px;
}
.badge-pill {
  display: flex;
  align-items: stretch;
  min-width: 0;
  border-radius: var(--r-md);
  border: 1px solid color-mix(in srgb, var(--bpc) 35%, var(--border2));
  background: color-mix(in srgb, var(--bpc) 12%, transparent);
  overflow: hidden;
}
.badge-pill-main {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: none;
  background: transparent;
  color: var(--bpc);
  font-family: inherit;
  font-weight: 650;
  font-size: 12.5px;
  padding: 9px 4px;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.badge-pill-main span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
}
.badge-pill-ic { display: inline-flex; flex-shrink: 0; font-size: 15px; }
.badge-pill-ic svg { width: 15px; height: 15px; }
.badge-pill-x {
  flex: 0 0 auto;
  width: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-inline-start: 1px solid color-mix(in srgb, var(--bpc) 30%, var(--border2));
  background: rgba(0,0,0,0.12);
  color: var(--text3);
  cursor: pointer;
  transition: all 0.15s var(--liquid-ease);
}
.badge-pill-x:hover { color: var(--danger); background: rgba(255,107,107,0.12); }
.badge-pill-x svg { width: 13px; height: 13px; }
@media (max-width: 360px) {
  .badge-pill-main { font-size: 11.5px; padding: 8px 2px; gap: 4px; }
  .badge-pill-x { width: 28px; }
}

/* ── Admin sub-cards (grouped controls with a colored top accent bar) ───── */
.admin-subcard {
  position: relative;
  background: var(--bg4);
  border: 1px solid var(--border2);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 10px;
  overflow: hidden;
  transition: border-color 0.2s var(--liquid-ease);
}
.admin-subcard::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--sc, var(--accent1));
  box-shadow: 0 0 10px var(--sc, var(--accent1));
}
.admin-subcard:hover { border-color: color-mix(in srgb, var(--sc, var(--accent1)) 40%, var(--border2)); }
.admin-subcard-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 750;
  color: var(--text2);
  margin-bottom: 10px;
}

/* Segmented control rows (e.g. ban/unban, shadow/unshadow) */
.seg-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.seg-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  padding: 10px 6px;
  border-radius: 10px;
  border: 1px solid var(--border2);
  background: var(--bg3);
  color: var(--text);
  font-family: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: all 0.15s var(--liquid-ease);
}
.seg-btn svg { flex-shrink: 0; width: 13px; height: 13px; }
.seg-btn:hover { transform: translateY(-1px); border-color: var(--accent1); }
.seg-btn.danger-fill { background: linear-gradient(135deg,#EF4444,#DC2626); border-color: transparent; color: #fff; }
.seg-btn.success-fill { background: linear-gradient(135deg,#10B981,#059669); border-color: transparent; color: #fff; }
@media (max-width: 360px) {
  .seg-btn { font-size: 10.5px; padding: 9px 3px; gap: 3px; }
}

/* ── "من ربات نیستم" — تیک تأیید انسانی ──────────────────────────────── */
.hv-box {
  margin: 14px 0;
  border: 1px solid var(--border2);
  border-radius: 12px;
  background: var(--bg2);
  padding: 12px 14px;
}
.hv-checkbox-row {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  user-select: none;
}
.hv-checkbox {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 2px solid var(--border2);
  background: var(--bg3);
  position: relative;
  transition: all 0.15s var(--liquid-ease);
}
.hv-checkbox.on {
  background: linear-gradient(135deg, var(--accent1), var(--accent2));
  border-color: transparent;
}
.hv-checkbox.on::after {
  content: '';
  position: absolute;
  left: 6px; top: 2px;
  width: 6px; height: 11px;
  border-right: 2.5px solid #fff;
  border-bottom: 2.5px solid #fff;
  transform: rotate(45deg);
}
.hv-checkbox.loading {
  border-color: var(--accent1);
  animation: hvSpin 0.8s linear infinite;
  border-top-color: transparent;
}
@keyframes hvSpin { to { transform: rotate(360deg); } }
.hv-challenge { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border2); }
.hv-challenge-q { font-size: 12.5px; color: var(--text3); margin-bottom: 10px; text-align: center; }
.hv-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.hv-opt {
  font-size: 24px;
  line-height: 1;
  padding: 12px 0;
  border-radius: 10px;
  border: 1px solid var(--border2);
  background: var(--bg3);
  cursor: pointer;
  transition: all 0.15s var(--liquid-ease);
}
.hv-opt:hover, .hv-opt:active { transform: translateY(-2px) scale(1.05); border-color: var(--accent1); background: var(--bg4); }
.hv-msg { margin-top: 8px; font-size: 11.5px; color: var(--danger); text-align: center; min-height: 14px; }

/* ── Ripple Effect ───────────────────────────────────────── */
.ripple-el {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.15);
  transform: scale(0);
  animation: rippleAnim 0.6s linear;
  pointer-events: none;
}
@keyframes rippleAnim { to { transform: scale(4); opacity: 0; } }

  /* ── Page Transitions ────────────────────────────────────── */
  
  /* Focus Mode */
  body.focus-mode .bottom-nav, body.focus-mode #sidebarWrap, body.focus-mode #chatHeader .icon-btn:not(#focusBtn) { display: none !important; }
  body.focus-mode #chatPanel { padding-bottom: 0; width: 100% !important; max-width: 100% !important; }
  
  /* Split View */
  body.split-view #chatPanel { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); }
  body.split-view .chat-panel-column { height: 100%; display: flex; flex-direction: column; background: var(--bg); }
  
  /* Scheduled Indicator */
  .msg-scheduled-tag { font-size: 10px; color: var(--warn); margin-left: 4px; }
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes bounceIn {
  0% { transform: scale(0.8); opacity: 0; }
  60% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); }
}
.page-enter { animation: slideInRight 0.3s ease; }
.bounce-in { animation: bounceIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }

/* ── Folder Emoji Picker ─────────────────────────────────── */

/* ---- بلوک بعدی ---- */

/* ================================================================
   R6 Chat — Visual Upgrade Layer
   Overrides existing styles for a more modern, polished aesthetic.
   All functionality, JS logic, and structure remain untouched.
   ================================================================ */

/* ── 1. Refined CSS Variables ─────────────────────────────── */
:root {
  /* Shadows — deeper and more layered */
  --shadow:  0 2px 12px rgba(0,0,0,0.28), 0 1px 3px rgba(0,0,0,0.18);
  --shadow2: 0 4px 20px rgba(0,0,0,0.32), 0 2px 6px rgba(0,0,0,0.20);
  --shadow3: 0 8px 40px rgba(0,0,0,0.40), 0 4px 12px rgba(0,0,0,0.24);

  /* Richer gradients */
  --grad: linear-gradient(135deg, #7C5CFC 0%, #5B3FE8 50%, #9B59B6 100%);
  --grad-soft: linear-gradient(135deg, rgba(124,92,252,0.15) 0%, rgba(155,89,182,0.10) 100%);

  /* Transition defaults */
  --transition-fast: 0.14s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-med:  0.22s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── 2. Dark Theme — Refined Palette ─────────────────────── */
body:not(.light) {
  --bg:    #0D0F14;
  --bg2:   #13161E;
  --bg3:   #1A1E29;
  --bg4:   #1F2433;
  --bg5:   #252A3A;
  --border:  #252A38;
  --border2: #2D3245;
  --text:  #E8EBF5;
  --text2: #B8BCCE;
  --text3: #7A7F9A;
  --text4: #50556E;
}

/* ── 3. Light Theme — Refined Palette ────────────────────── */
body.light {
  --bg:    #EEF0F8;
  --bg2:   #FFFFFF;
  --bg3:   #E6E9F4;
  --bg4:   #DADDF0;
  --bg5:   #CDD1E8;
  --border:  #D4D7EB;
  --border2: #C2C6DE;
  --text:  #14172A;
  --text2: #3E4460;
  --text3: #6B7090;
  --text4: #9298B4;
}

/* ── 4. Refined Scrollbars ────────────────────────────────── */
::-webkit-scrollbar { width: 3px; height: 3px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--text4); }

/* ── 5. Enhanced Typography ───────────────────────────────── */
html, body {
  font-feature-settings: "kern" 1, "liga" 1;
  letter-spacing: -0.01em;
  text-rendering: optimizeLegibility;
}

/* ── 6. Auth Screen — Polished Card ──────────────────────── */
#authScreen {
  background: var(--bg);
  background-image:
    radial-gradient(ellipse at 20% 50%, rgba(124,92,252,0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 20%, rgba(155,89,182,0.06) 0%, transparent 40%);
}

.auth-card {
  border-radius: 24px;
  border-color: var(--border2);
  box-shadow:
    0 0 0 1px rgba(124,92,252,0.08),
    0 20px 60px rgba(0,0,0,0.35),
    0 4px 16px rgba(0,0,0,0.18);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.logo-mark {
  border-radius: 24px;
  box-shadow:
    0 0 0 1px rgba(124,92,252,0.25),
    0 8px 40px rgba(124,92,252,0.45),
    0 2px 8px rgba(0,0,0,0.3);
}

.auth-title {
  font-size: 23px;
  font-weight: 800;
  letter-spacing: -0.4px;
}

.auth-sub {
  font-size: 13.5px;
  line-height: 1.65;
}

.step-dot {
  width: 7px;
  height: 7px;
  border-radius: 4px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.step-dot.active {
  width: 20px;
  background: var(--accent1);
}

/* ── 7. Refined Form Fields ───────────────────────────────── */
.field label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: var(--text4);
}

.field-input-wrap {
  border-radius: 12px;
  border-width: 1.5px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
.field-input-wrap:focus-within {
  border-color: var(--accent1);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.16), 0 1px 4px rgba(0,0,0,0.12);
  background: var(--bg2);
}
.field-input-wrap.valid {
  border-color: var(--online);
  box-shadow: 0 0 0 3px rgba(61,220,132,0.12);
}

.field-input-wrap input,
.field-input-wrap textarea {
  font-size: 14px;
  letter-spacing: 0.01em;
}

.field-hint {
  font-size: 11.5px;
  color: var(--text4);
  line-height: 1.6;
}
.field-error {
  font-size: 11.5px;
  color: var(--danger);
  font-weight: 600;
}

/* ── 8. Buttons — Polished ────────────────────────────────── */
.btn-primary {
  background: var(--grad);
  border-radius: 12px;
  font-weight: 700;
  font-size: 14.5px;
  letter-spacing: 0.01em;
  box-shadow: 0 4px 16px rgba(124,92,252,0.38), 0 1px 4px rgba(0,0,0,0.15);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);
  position: relative;
  overflow: hidden;
}
.btn-primary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(255,255,255,0.12) 0%, transparent 60%);
  pointer-events: none;
  border-radius: inherit;
}
.btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 22px rgba(124,92,252,0.48), 0 2px 6px rgba(0,0,0,0.18);
}
.btn-primary:active:not(:disabled) {
  transform: translateY(0px) scale(0.98);
  box-shadow: 0 2px 8px rgba(124,92,252,0.3);
}
.btn-primary:disabled {
  opacity: 0.38;
  box-shadow: none;
}
.btn-primary.small {
  border-radius: 10px;
  font-size: 13.5px;
}

.btn-secondary {
  border-radius: 12px;
  border-width: 1.5px;
  font-weight: 600;
  font-size: 14px;
  transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}
.btn-secondary:hover {
  background: var(--bg4);
  border-color: var(--border2);
  transform: translateY(-1px);
}
.btn-secondary:active {
  transform: scale(0.98);
}

.btn-text {
  font-size: 14px;
  font-weight: 500;
  color: var(--text3);
  transition: color var(--transition-fast);
}
.btn-text:hover { color: var(--accent1); }
.btn-text b { font-weight: 700; color: var(--accent1); }

.btn-back {
  color: var(--text3);
  font-size: 13.5px;
  font-weight: 600;
  border-radius: 8px;
  padding: 5px 8px;
  transition: background var(--transition-fast), color var(--transition-fast);
  background: none;
  border: none;
  cursor: pointer;
}
.btn-back:hover { background: var(--bg3); color: var(--text2); }

/* ── 9. Sidebar — Refined ─────────────────────────────────── */
#sidebarWrap {
  background:
    radial-gradient(46% 30% at 6% -4%, rgba(124,92,252,0.10), transparent 60%),
    radial-gradient(40% 28% at 102% 8%, rgba(54,201,198,0.08), transparent 60%),
    var(--bg2);
  border-right: 1px solid var(--border);
}

.sidebar-header {
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
  padding: 14px 14px 10px;
}

/* Tabs */
.tabs {
  background: var(--bg3);
  border-radius: 12px;
  padding: 3px;
  gap: 2px;
}
.tab-btn {
  border-radius: 9px;
  font-size: 12px;
  font-weight: 600;
  transition: all var(--transition-fast);
}
.tab-btn.active {
  background: var(--bg2);
  color: var(--text);
  box-shadow: 0 1px 6px rgba(0,0,0,0.18), 0 0 0 0.5px rgba(255,255,255,0.04);
}

/* Search */
#searchBox {
  border-radius: 12px;
  border-width: 1.5px;
  padding: 9px 12px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
#searchBox:focus-within {
  border-color: var(--accent1);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14);
}

/* Chat items */
.chat-item {
  border-radius: 12px;
  padding: 10px 12px;
  transition: background var(--transition-fast), transform var(--transition-fast);
  margin-bottom: 1px;
}
.chat-item:hover {
  background: var(--bg3);
}
.chat-item.active {
  background: var(--bg3);
  box-shadow: inset 0 0 0 1px var(--border2);
}
.chat-name {
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -0.2px;
}
.chat-last {
  font-size: 12.5px;
  color: var(--text3);
}
.chat-badge {
  background: var(--accent1);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 12px;
  min-width: 20px;
  box-shadow: 0 2px 6px rgba(124,92,252,0.4);
}

/* FAB */
#fab {
  box-shadow: 0 4px 20px rgba(124,92,252,0.45), 0 2px 6px rgba(0,0,0,0.2);
  border-radius: 16px;
  width: 46px;
  height: 46px;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
#fab:hover {
  transform: scale(1.08) translateY(-1px);
  box-shadow: 0 8px 28px rgba(124,92,252,0.55), 0 3px 8px rgba(0,0,0,0.25);
}
#fab:active { transform: scale(0.94); }

#fabMenu {
  border-radius: 14px;
  border-color: var(--border2);
  box-shadow: 0 8px 30px rgba(0,0,0,0.35), 0 2px 8px rgba(0,0,0,0.18);
}
#fabMenu button {
  font-size: 13.5px;
  padding: 11px 14px;
  transition: background var(--transition-fast);
  gap: 10px;
}
#fabMenu button:hover { background: var(--bg3); }

/* ── 10. Chat Panel — Header ──────────────────────────────── */
#chatHeader {
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
  padding: 10px 16px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
#chatHeader .name {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.2px;
}
#chatHeader .status {
  font-size: 11.5px;
  color: var(--text3);
}

/* ── Chat header polish ──────────────────────────────────── */
#chatHeader {
  box-shadow: 0 8px 24px -12px rgba(0,0,0,0.5);
  gap: 8px;
}
#chatHeader #headerAvatar {
  border-radius: 50%; flex-shrink: 0;
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 3.5px rgba(124,92,252,0.45);
}
#chatHeader .info:hover .name { color: var(--accent1); }
#chatHeader .info .name, #chatHeader .info .status { transition: color .15s; }
#chatHeader > .icon-btn { width: 34px; height: 34px; }
#chatHeader > .icon-btn + .icon-btn { margin-right: -2px; }

/* ── Header "more" dropdown menu (Telegram-style) ─────────── */
.header-more-wrap { position: relative; flex-shrink: 0; }
.header-more-menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 196px;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 14px;
  box-shadow: 0 12px 32px -8px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.03);
  padding: 6px;
  z-index: 200;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  transform: translateY(-6px) scale(0.96);
  pointer-events: none;
  transform-origin: top left;
  transition: opacity .16s ease, transform .16s cubic-bezier(.2,.9,.3,1.2);
}
.header-more-wrap.open .header-more-menu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.hmm-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: none;
  background: none;
  border-radius: 9px;
  color: var(--text);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  text-align: right;
  transition: background .12s;
}
.hmm-row:hover, .hmm-row:active { background: var(--bg4); }
.hmm-row.on { color: var(--accent1); }
.hmm-row.on .hmm-icon { color: var(--accent1); }
.hmm-row.danger { color: var(--danger); }
.hmm-row.danger .hmm-icon { color: var(--danger); }
.hmm-icon { display:flex; align-items:center; justify-content:center; width:20px; height:20px; flex-shrink:0; color: var(--text2); }
.hmm-label { flex: 1; }

/* ── 11. Chat Bubbles — Polished ──────────────────────────── */
#messages {
  padding: 16px 16px;
  gap: 8px;
  background:
    radial-gradient(55% 38% at 8% 0%, rgba(124,92,252,0.09), transparent 60%),
    radial-gradient(48% 34% at 96% 12%, rgba(54,201,198,0.07), transparent 60%),
    radial-gradient(50% 42% at 30% 100%, rgba(255,79,163,0.05), transparent 60%),
    var(--bg);
}

.msg-row {
  max-width: 74%;
  animation: msgAppear 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes msgAppear {
  from { opacity: 0; transform: translateY(8px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.msg-row.grouped { margin-top: 2px; }

.bubble {
  padding: 10px 15px;
  font-size: 14px;
  line-height: 1.58;
  border-radius: 18px;
  transition: filter var(--transition-fast);
}
.bubble.me {
  background: linear-gradient(145deg, #8A6BFF 0%, #7C5CFC 40%, #5B3FE8 75%, #4A35CC 100%);
  border-radius: 18px 4px 18px 18px;
  box-shadow: 0 3px 14px rgba(124,92,252,0.42), 0 1px 3px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.12);
}
.bubble.them {
  background: linear-gradient(160deg, var(--bg3), var(--bg2));
  border-radius: 4px 18px 18px 18px;
  border: 1px solid var(--border2);
  box-shadow: 0 1px 6px rgba(0,0,0,0.14), inset 0 1px 0 rgba(255,255,255,0.02);
}
.bubble:hover { filter: brightness(1.05); }

/* Grouped bubbles */
.bubble.me.g-first  { border-radius: 18px 4px 18px 18px; }
.bubble.me.g-mid    { border-radius: 18px 4px 4px 18px; }
.bubble.me.g-last   { border-radius: 18px 18px 18px 4px; }
.bubble.them.g-first { border-radius: 4px 18px 18px 18px; }
.bubble.them.g-mid  { border-radius: 4px 18px 18px 4px; }
.bubble.them.g-last { border-radius: 4px 18px 18px 18px; }



.reply-quote {
  border-right: 3px solid rgba(255,255,255,0.5);
  padding-right: 10px;
  margin-bottom: 7px;
  font-size: 12.5px;
  border-radius: 2px;
  opacity: 0.85;
}
.bubble.them .reply-quote {
  border-right-color: var(--accent1);
}

.msg-meta {
  font-size: 10px;
  opacity: 0.65;
  margin-top: 5px;
  gap: 3px;
}

.day-divider {
  margin: 18px 0 10px;
  position: sticky;
  top: 6px;
  z-index: 2;
}
.day-divider span {
  background: var(--bg4);
  color: var(--text3);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 14px;
  border-radius: 20px;
  box-shadow: 0 1px 8px rgba(0,0,0,0.14);
  border: 1px solid var(--border);
}

/* Message actions */
.msg-actions button {
  border-radius: 8px;
  width: 28px;
  height: 28px;
  background: var(--bg4);
  border: 1px solid var(--border2);
  transition: background var(--transition-fast), transform var(--transition-fast);
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.msg-actions button:hover {
  background: var(--bg5);
  transform: scale(1.08);
}

/* Reactions */
.reaction-bar {
  border-radius: 20px;
  padding: 5px 8px;
  gap: 2px;
  border-color: var(--border2);
  box-shadow: 0 4px 16px rgba(0,0,0,0.22), 0 1px 4px rgba(0,0,0,0.12);
}
.reaction-chip {
  border-radius: 12px;
  padding: 2px 8px;
  font-size: 11.5px;
  border-color: var(--border);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  transition: transform var(--transition-fast), background var(--transition-fast);
}
.reaction-chip.mine {
  border-color: var(--accent1);
  background: rgba(124,92,252,0.14);
}

/* Typing indicator */
.typing-bubble {
  background: var(--bg3);
  border-radius: 4px 18px 18px 18px;
  border: 1px solid var(--border);
  padding: 11px 16px;
  gap: 5px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.typing-bubble span {
  width: 7px;
  height: 7px;
  background: var(--text3);
  border-radius: 50%;
}

/* ── Send/Voice merged button ─────────────────────────────── */
#sendVoiceBtn {
  background: var(--grad);
  border: none;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  color: #fff;
  box-shadow: 0 3px 12px rgba(124,92,252,0.42), 0 1px 4px rgba(0,0,0,0.16);
  transition: transform .15s cubic-bezier(.34,1.56,.64,1), box-shadow .2s, background .2s;
  transform-style: preserve-3d;
  -webkit-user-select: none; user-select: none;
  touch-action: none;
}
#sendVoiceBtn:hover { transform: scale(1.06); }
#sendVoiceBtn:active { transform: scale(0.9) perspective(300px) rotateX(8deg); }
/* Signature detail: a quick pop + gradient shimmer the instant the button
   becomes "ready to send", so sending feels like a tiny reward. */
#sendVoiceBtn.is-send {
  background: var(--grad-animated);
  background-size: var(--gradient-size);
  animation: sendReadyPop .32s var(--liquid-ease, ease), gradientShift 5s ease infinite 0.32s;
}
@keyframes sendReadyPop {
  0%   { transform: scale(0.7) rotate(-20deg); }
  55%  { transform: scale(1.15) rotate(6deg); }
  100% { transform: scale(1) rotate(0deg); }
}
#sendVoiceBtn.recording {
  background: linear-gradient(135deg,#ff4d6d,#ff1f4d);
  transform: scale(1.15) perspective(400px) rotateX(6deg);
  animation: recPulseRing 1.15s ease-out infinite;
}
@keyframes recPulseRing {
  0% { box-shadow: 0 0 0 0 rgba(255,60,90,0.55), 0 3px 12px rgba(255,60,90,0.4); }
  70% { box-shadow: 0 0 0 18px rgba(255,60,90,0), 0 3px 12px rgba(255,60,90,0.4); }
  100% { box-shadow: 0 0 0 0 rgba(255,60,90,0), 0 3px 12px rgba(255,60,90,0.4); }
}

#recordingUI {
  display: none;
  flex: 1;
  min-width: 0;
  align-items: center;
  gap: 10px;
  background: var(--bg3);
  border-radius: 22px;
  padding: 9px 16px;
  border: 1.5px solid rgba(255,60,90,0.25);
  transition: opacity .15s;
}
#recordingUI.will-cancel { opacity: .5; }
#recordingUI .rec-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: #ff3355; flex-shrink: 0;
  animation: recBlink 1s ease infinite;
}
@keyframes recBlink { 0%,100%{opacity:1} 50%{opacity:.25} }
#recordTimerText { font-size: 13px; color: var(--text2); min-width: 38px; font-variant-numeric: tabular-nums; }
#recordWave { display: flex; align-items: center; gap: 3px; flex: 1; height: 26px; overflow: hidden; }
#recordWave .wave-bar {
  width: 3px; min-height: 6px; height: 6px; border-radius: 2px;
  background: var(--accent1);
  transition: height .08s ease;
}
#recordCancelHint { font-size: 11px; color: var(--text3); white-space: nowrap; flex-shrink: 0; }

/* ── Telegram-style horizontal attach menu ────────────────── */
#attachMenuRow {
  display: none;
  gap: 18px;
  padding: 16px 18px;
  background: var(--bg2);
  border-top: 1px solid var(--border);
  overflow-x: auto;
  flex-shrink: 0;
}
#attachMenuRow.shown { display: flex; animation: attachSlideUp .22s cubic-bezier(.2,.8,.3,1); }
@keyframes attachSlideUp { from { transform: translateY(14px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.attach-opt {
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  background: none; border: none; cursor: pointer; flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.attach-opt-icon {
  width: 56px; height: 56px; border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  box-shadow: 0 6px 16px -4px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.06) inset, 0 1px 0 rgba(255,255,255,0.22) inset;
  transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s;
}
.attach-opt-icon::after {
  content: ''; position: absolute; inset: 0; border-radius: 18px;
  background: linear-gradient(160deg, rgba(255,255,255,0.28), rgba(255,255,255,0) 45%);
  pointer-events: none;
}
.attach-opt:hover .attach-opt-icon { transform: translateY(-2px); box-shadow: 0 10px 22px -6px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.08) inset, 0 1px 0 rgba(255,255,255,0.25) inset; }
.attach-opt:active .attach-opt-icon { transform: scale(0.88); }
.attach-opt span { font-size: 11.5px; font-weight: 600; color: var(--text3); letter-spacing: .1px; }
#attachBtn.active { background: var(--bg4); color: var(--accent1); transform: rotate(45deg); }

/* ── 12. Input Bar — Refined ──────────────────────────────── */
#inputBar {
  padding: 10px 14px;
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
  background: var(--bg2);
  border-top: 1px solid var(--border);
  gap: 8px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

#inputWrap {
  background: var(--bg3);
  border-radius: 22px;
  border: 1.5px solid var(--border);
  padding: 9px 14px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}
#inputWrap:focus-within {
  border-color: rgba(124,92,252,0.55);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14), 0 4px 14px rgba(124,92,252,0.1);
  background: var(--bg2);
}

#msgInput {
  font-size: 14.5px;
  letter-spacing: 0.01em;
  line-height: 1.5;
}

#sendBtn {
  background: var(--grad);
  border-radius: 50%;
  width: 42px;
  height: 42px;
  box-shadow: 0 3px 12px rgba(124,92,252,0.42), 0 1px 4px rgba(0,0,0,0.16);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
#sendBtn:hover {
  transform: scale(1.06);
  box-shadow: 0 5px 18px rgba(124,92,252,0.52);
}
#sendBtn:active {
  transform: scale(0.92);
}

.icon-btn {
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
  color: var(--text3);
  background: none;
  border: none;
  cursor: pointer;
}
.icon-btn:hover {
  background: var(--bg4);
  color: var(--text2);
  transform: scale(1.06);
}
.icon-btn:active { transform: scale(0.94); }

/* Emoji panel */
#emojiPanel {
  border-radius: 18px;
  border-color: var(--border2);
  box-shadow: 0 10px 40px rgba(0,0,0,0.32), 0 3px 10px rgba(0,0,0,0.16);
  background: var(--bg3);
}
.panel-tabs button {
  font-size: 12.5px;
  font-weight: 600;
  transition: color var(--transition-fast);
}
.panel-grid button {
  border-radius: 8px;
  transition: background var(--transition-fast), transform var(--transition-fast);
}
.panel-grid button:hover {
  background: var(--bg4);
  transform: scale(1.2);
}

/* Reply / Edit banners */
#replyBanner {
  background: var(--bg3);
  border-top: 1px solid var(--border);
  padding: 9px 16px;
  gap: 10px;
}
#replyBanner .bar {
  border-radius: 3px;
  background: var(--accent1);
  width: 3px;
}
#replyBanner .txt {
  font-size: 12.5px;
  color: var(--text2);
}

/* ── 13. Modals — Polished ────────────────────────────────── */
.modal-overlay {
  background: rgba(0,0,0,0.62);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.modal {
  border-radius: 20px;
  border-color: var(--border2);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.04),
    0 24px 70px rgba(0,0,0,0.45),
    0 8px 20px rgba(0,0,0,0.22);
  padding: 24px;
}
.modal h3 {
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -0.2px;
  margin-bottom: 18px;
}
.modal h3 .x {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 14px;
  background: var(--bg4);
  border: 1px solid var(--border);
  transition: background var(--transition-fast), transform var(--transition-fast);
  padding: 0;
}
.modal h3 .x:hover {
  background: var(--bg5);
  transform: rotate(90deg);
}

/* Bottom sheet */
.bottom-sheet {
  border-radius: 24px;
  border-color: var(--border2);
  box-shadow: 0 -4px 40px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.04);
}

/* Profile / user sheet */
.sheet-cover {
  height: 120px;
  background: linear-gradient(145deg, #7C5CFC, #5B3FE8, #9B59B6);
}
.sheet-name {
  font-size: 19px;
  font-weight: 750;
  letter-spacing: -0.3px;
}
.sheet-sub {
  font-size: 12.5px;
  color: var(--text3);
}
.sheet-bio {
  font-size: 13.5px;
  line-height: 1.72;
  color: var(--text2);
}
.sheet-actions button {
  border-radius: 14px;
  padding: 13px 8px;
  font-size: 12px;
  font-weight: 650;
  border-width: 1.5px;
  transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
}
.sheet-actions button:hover {
  background: var(--bg4);
  transform: translateY(-1px);
}

/* ── 14. Profile Modal ────────────────────────────────────── */
.cover-wrap {
  height: 120px;
  border-radius: 16px 16px 0 0;
}

.profile-avatar-row { margin-top: 6px; }

.color-swatches { gap: 10px; }
.swatch {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
  cursor: pointer;
}
.swatch:hover {
  transform: scale(1.18);
  box-shadow: 0 3px 10px rgba(0,0,0,0.3);
}
.swatch.selected {
  border: 2.5px solid var(--text);
  box-shadow: 0 0 0 2px var(--bg2), 0 3px 10px rgba(0,0,0,0.3);
}

/* Toggle / Switch */
.toggle-row {
  padding: 13px 0;
  border-bottom: 1px solid var(--border);
}
.toggle-row .lbl { font-size: 14.5px; font-weight: 550; }
.toggle-row .sub { font-size: 12px; color: var(--text4); margin-top: 2px; }

.switch {
  width: 46px;
  height: 26px;
  border-radius: 15px;
  background: var(--bg4);
  border: 1.5px solid var(--border2);
  transition: background var(--transition-med), border-color var(--transition-med);
}
.switch.on {
  background: linear-gradient(135deg, #7C5CFC, #FF4FA3);
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(124,92,252,0.45);
}
.switch .knob {
  width: 20px;
  height: 20px;
  top: 1px;
  right: 2px;
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.28);
  transition: transform var(--transition-med);
}
.switch.on .knob { transform: translateX(-20px); }

/* Settings section title */
.section-title {
  font-size: 11px;
  font-weight: 750;
  color: var(--text4);
  letter-spacing: 0.8px;
  text-transform: uppercase;
  margin: 20px 0 10px;
}

/* Menu rows */
.menu-row {
  border-radius: 10px;
  padding: 12px 8px;
  font-size: 14px;
  font-weight: 500;
  gap: 12px;
  transition: background var(--transition-fast);
}
.menu-row:hover { background: var(--bg3); }
.menu-row:active { transform: scale(0.98); }
.menu-row.danger { color: var(--danger); }
.menu-row-icon {
  width: 32px; height: 32px; border-radius: 10px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color: #fff;
  box-shadow: 0 3px 8px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.15);
  transition: transform var(--transition-fast);
}
.menu-row:active .menu-row-icon { transform: scale(0.9); }
.modal-title-icon {
  width: 34px; height: 34px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; color: #fff;
  box-shadow: 0 3px 8px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.15);
}
.modal h3 .modal-title-wrap { display: flex; align-items: center; gap: 10px; }
.copy-btn {
  border-radius: 10px;
  width: 40px;
  height: 40px;
  transition: background var(--transition-fast), transform var(--transition-fast);
}
.copy-btn:hover {
  background: var(--bg4);
  transform: scale(1.06);
}

/* ── 15. Avatars ──────────────────────────────────────────── */
.avatar {
  position: relative;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-radius var(--transition-med);
}
.avatar:hover { transform: scale(1.04); }
.me-avatar:hover {
  transform: scale(1.06);
  box-shadow: 0 0 0 2.5px var(--accent1), 0 3px 10px rgba(124,92,252,0.35) !important;
}

/* Online status dot */
.online-dot {
  width: 10px;
  height: 10px;
  background: var(--online);
  border-radius: 50%;
  border: 2px solid var(--bg2);
  box-shadow: 0 0 6px rgba(61,220,132,0.5);
}

/* ── Avatar shape language ──────────────────────────────────
   People are circles. Groups & channels are squircles with a
   colored signal so the two are recognizable at a glance. ── */
.avatar .dot {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--online);
  border: 2.5px solid var(--bg2);
  box-shadow: 0 0 7px rgba(61,220,132,0.65);
  z-index: 2;
}
.avatar.mosaic {
  border-radius: 30% !important;
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 3.5px rgba(54,201,198,0.5), 0 4px 12px rgba(0,0,0,0.35) !important;
}
.avatar .grp {
  position: absolute;
  left: -4px;
  bottom: -4px;
  width: 19px;
  height: 19px;
  border-radius: 7px;
  background: linear-gradient(135deg,#36C9C6,#1F8F8C);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--bg2);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  z-index: 2;
}
.avatar .grp svg { color: #fff !important; width: 10px; height: 10px; }

/* ── 16. Bottom Navigation ────────────────────────────────── */
.bottom-nav {
  background: var(--bg2);
  border-top: 1px solid var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 -2px 20px rgba(0,0,0,0.14);
}
.bottom-nav-item {
  border-radius: 10px;
  transition: background var(--transition-fast), transform var(--transition-fast);
  padding: 6px 4px;
}
.bottom-nav-item.active .nav-label {
  color: var(--accent1);
  font-weight: 700;
}
.bottom-nav-item.active svg,
.bottom-nav-item.active i {
  color: var(--accent1);
  filter: drop-shadow(0 0 6px rgba(124,92,252,0.55));
}

.center-profile-circle {
  background: var(--grad);
  box-shadow:
    0 0 0 2px rgba(124,92,252,0.35),
    0 0 20px rgba(124,92,252,0.5),
    0 4px 16px rgba(0,0,0,0.4);
  transition: transform var(--transition-med), box-shadow var(--transition-med);
}
.bottom-nav-item.center-profile:active .center-profile-circle,
.bottom-nav-item.center-profile.active .center-profile-circle {
  transform: scale(1.08);
  box-shadow:
    0 0 0 2.5px rgba(124,92,252,0.5),
    0 0 28px rgba(124,92,252,0.65),
    0 6px 20px rgba(0,0,0,0.45);
}

.nav-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: color var(--transition-fast);
}

/* Home folder strip */
.home-folder-item {
  border-radius: 22px;
  padding: 6px 16px;
  font-size: 12.5px;
  font-weight: 650;
  transition: all var(--transition-fast);
}
.home-folder-item.active {
  background: var(--grad);
  box-shadow: 0 2px 12px rgba(124,92,252,0.4);
}

/* ── 17. Channel Items ────────────────────────────────────── */
.channel-item {
  border-radius: 12px;
  padding: 11px 12px;
  transition: background var(--transition-fast);
}
.channel-item:hover { background: var(--bg3); }
.channel-item.active { background: var(--bg3); box-shadow: inset 0 0 0 1px var(--border2); }
.channel-name {
  font-size: 14.5px;
  font-weight: 650;
  letter-spacing: -0.1px;
}
.channel-sub { font-size: 12px; margin-top: 3px; }

/* ── 18. Discover / Games ─────────────────────────────────── */
.discover-tab {
  border-radius: 10px;
  font-size: 13px;
  font-weight: 650;
  padding: 9px;
  transition: all var(--transition-fast);
}
.discover-tab.active {
  background: var(--grad);
  box-shadow: 0 2px 10px rgba(124,92,252,0.38);
}

.game-card {
  border-radius: 16px;
  padding: 18px;
  border-width: 1.5px;
  transition: all var(--transition-med);
}
.game-card:hover {
  border-color: rgba(124,92,252,0.5);
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.24), 0 4px 10px rgba(124,92,252,0.12);
}
.game-play-btn {
  border-radius: 12px;
  font-size: 14px;
  padding: 11px;
  box-shadow: 0 2px 10px rgba(124,92,252,0.38);
  transition: opacity var(--transition-fast), transform var(--transition-fast);
}
.game-play-btn:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

/* ══════════════════════════════════════════════════════════
   Explore & Games — hero redesign
   ══════════════════════════════════════════════════════════ */
@keyframes heroDrift {
  0%,100% { transform: translate(0,0) scale(1); }
  50% { transform: translate(-3%,3%) scale(1.08); }
}
@keyframes heroIconPulse {
  0%,100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(255,255,255,0)); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 10px rgba(255,255,255,0.55)); }
}
@keyframes tileShine {
  0% { transform: translateX(-120%) rotate(20deg); }
  100% { transform: translateX(220%) rotate(20deg); }
}
.section-hero {
  position: relative;
  border-radius: 20px;
  padding: 18px 16px;
  margin-bottom: 16px;
  overflow: hidden;
  background: var(--grad);
  isolation: isolate;
}
.section-hero::before {
  content: '';
  position: absolute;
  inset: -40%;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.35), transparent 60%);
  animation: heroDrift 9s ease-in-out infinite;
  z-index: 0;
}
.section-hero-row { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }
.section-hero-icon {
  width: 46px; height: 46px; border-radius: 14px;
  background: rgba(255,255,255,0.16);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  color: #fff; flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.3);
  animation: heroIconPulse 3.2s ease-in-out infinite;
}
.section-hero-icon svg { width: 24px; height: 24px; }
.section-hero-title { font-size: 16.5px; font-weight: 800; color: #fff; letter-spacing: -0.2px; }
.section-hero-sub { font-size: 12px; color: rgba(255,255,255,0.85); margin-top: 2px; }
.section-hero-stats { position: relative; z-index: 1; display: flex; gap: 8px; margin-top: 14px; }
.section-hero-stat {
  flex: 1; text-align: center; background: rgba(0,0,0,0.16);
  border-radius: 12px; padding: 8px 6px;
  backdrop-filter: blur(2px);
}
.section-hero-stat b { display: block; font-size: 15px; font-weight: 800; color: #fff; }
.section-hero-stat span { font-size: 10.5px; color: rgba(255,255,255,0.8); }

/* Segmented sliding tabs (Explore) */
.seg-tabs {
  position: relative;
  display: flex;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 14px;
  padding: 4px;
  margin-bottom: 16px;
}
.seg-tabs-indicator {
  position: absolute;
  top: 4px; bottom: 4px;
  inset-inline-start: 4px;
  width: calc(50% - 4px);
  border-radius: 10px;
  background: var(--grad);
  box-shadow: 0 2px 10px rgba(124,92,252,0.38);
  transition: transform 0.3s cubic-bezier(.4,0,.2,1);
  z-index: 0;
}
.seg-tab {
  position: relative; z-index: 1;
  flex: 1; text-align: center; padding: 9px 4px;
  font-size: 12.5px; font-weight: 650;
  color: var(--text2);
  cursor: pointer;
  transition: color 0.2s;
  font-family: inherit;
  /* ریست کامل استایل پیش‌فرض <button> — بدون این‌ها بعضی وب‌ویوهای اندروید یه
     باکس/سایه‌ی بومی جداگانه دور هر دکمه می‌کشن و به‌جای یه نوار یکپارچه‌ی
     لغزنده، دو تا قرص/باکس جدا از هم نشون داده می‌شه (باگی که با گوشی دیده می‌شد) */
  background: transparent; border: 0; margin: 0; border-radius: 0;
  box-shadow: none; outline: none; -webkit-appearance: none; appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.seg-tab::-moz-focus-inner { border: 0; }
.seg-tab:focus { outline: none; }
.seg-tab.active { color: #fff; }

/* Podium (top 3 channels) */
.podium-row { display: flex; align-items: flex-end; gap: 8px; margin-bottom: 16px; }
.podium-item {
  flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 14px 14px 10px 10px; padding: 12px 6px 10px; cursor: pointer;
  transition: all 0.2s; position: relative;
}
.podium-item:hover { transform: translateY(-3px); border-color: var(--border2); }
.podium-item.rank-1 { order: 2; padding-top: 16px; padding-bottom: 14px; z-index: 1; box-shadow: 0 8px 24px rgba(255,215,0,0.14); }
.podium-item.rank-2 { order: 1; }
.podium-item.rank-3 { order: 3; }
.podium-medal { font-size: 18px; margin-bottom: 6px; }
.podium-avatar-wrap { position: relative; margin-bottom: 8px; }
.podium-item.rank-1 .podium-avatar-wrap::after {
  content: ''; position: absolute; inset: -4px; border-radius: 50%;
  background: conic-gradient(from 0deg, var(--gold), #fff8dc, var(--gold));
  z-index: -1; animation: heroIconPulse 2.4s ease-in-out infinite;
}
.podium-name { font-size: 12px; font-weight: 700; color: var(--text); text-align: center; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.podium-sub { font-size: 10px; color: var(--text3); margin-top: 2px; }

/* Category filter chips (Games) */
.cat-chip-row { display: flex; gap: 8px; margin-bottom: 16px; overflow-x: auto; padding-bottom: 2px; }
.cat-chip-row::-webkit-scrollbar { display: none; }
.cat-chip {
  flex-shrink: 0; padding: 7px 14px; border-radius: 20px;
  border: 1.5px solid var(--border2); background: var(--bg3);
  color: var(--text2); font-size: 12px; font-weight: 650;
  cursor: pointer; transition: all 0.2s; font-family: inherit; white-space: nowrap;
}
.cat-chip.active { background: var(--grad); color: #fff; border-color: transparent; box-shadow: 0 2px 10px rgba(124,92,252,0.3); }

/* Game tile grid */
.game-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.game-tile {
  position: relative; background: var(--bg3); border: 1.5px solid var(--border);
  border-radius: 16px; padding: 14px 12px; cursor: pointer;
  transition: all var(--transition-med, .2s); overflow: hidden;
}
.game-tile:hover { border-color: rgba(124,92,252,0.5); transform: translateY(-3px); box-shadow: 0 12px 26px rgba(0,0,0,0.24); }
.game-tile::before {
  content: ''; position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,0.08), transparent);
  transform: translateX(-120%) rotate(20deg);
}
.game-tile:hover::before { animation: tileShine 0.9s ease forwards; }
.game-tile-icon {
  width: 44px; height: 44px; border-radius: 13px;
  display: flex; align-items: center; justify-content: center;
  color: #fff; margin-bottom: 10px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.32), inset 0 1px 0 rgba(255,255,255,0.18);
}
.game-tile-icon svg { width: 22px; height: 22px; }
.game-tile-title { font-size: 13.5px; font-weight: 700; color: var(--text); }
.game-tile-sub { font-size: 11px; color: var(--text3); margin-top: 3px; line-height: 1.5; min-height: 32px; }
.game-tile-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.game-tile-tag {
  font-size: 10px; font-weight: 650; padding: 2px 7px; border-radius: 8px;
  background: rgba(61,220,132,0.1); color: var(--online);
}
.game-tile-play {
  width: 28px; height: 28px; border-radius: 9px; background: var(--grad);
  display: flex; align-items: center; justify-content: center; color: #fff;
  flex-shrink: 0; box-shadow: 0 2px 8px rgba(124,92,252,0.4);
}
.game-tile-play svg { width: 14px; height: 14px; }

/* ── 19. Friends ──────────────────────────────────────────── */
.friend-item {
  border-radius: 14px;
  padding: 12px 14px;
  border-width: 1.5px;
  transition: background var(--transition-fast), transform var(--transition-fast);
}
.friend-item:hover {
  background: var(--bg4);
  transform: translateX(-2px);
}
.friend-name {
  font-size: 14px;
  font-weight: 650;
}
.friend-btn {
  border-radius: 8px;
  font-size: 12px;
  font-weight: 650;
  padding: 5px 12px;
  transition: all var(--transition-fast);
}
.friend-btn:hover {
  border-color: var(--accent1);
  color: var(--accent1);
  transform: translateY(-1px);
}

.friend-tab {
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 650;
  transition: all var(--transition-fast);
}
.friend-tab.active {
  background: var(--grad);
  box-shadow: 0 2px 10px rgba(124,92,252,0.38);
}

/* ── 20. Toast Notifications ──────────────────────────────── */
.toast {
  border-radius: 12px;
  padding: 12px 18px;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: 0 8px 30px rgba(0,0,0,0.35), 0 2px 8px rgba(0,0,0,0.18);
  border: 1px solid var(--border2);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ── 21. Admin Panel ──────────────────────────────────────── */
.admin-stat-card {
  border-radius: 14px;
  padding: 14px;
  border-width: 1.5px;
  transition: transform var(--transition-fast), border-color var(--transition-fast);
}
.admin-stat-card:hover {
  transform: translateY(-2px);
  border-color: rgba(124,92,252,0.4);
}
.admin-stat-value {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.3px;
}
.admin-stat-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2px;
  margin-top: 3px;
}

.admin-section-v15 {
  border-radius: 16px;
  padding: 18px;
  margin-bottom: 14px;
  border-width: 1.5px;
}
.admin-section-v15 h4 {
  font-size: 13.5px;
  font-weight: 750;
  margin-bottom: 14px;
  letter-spacing: -0.1px;
}

.admin-mini-btn {
  border-radius: 10px;
  padding: 11px;
  font-size: 13px;
  font-weight: 650;
  transition: all var(--transition-fast);
}
.admin-mini-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.18);
}

/* ── 22. Code Blocks (Markdown) ───────────────────────────── */
.bubble code {
  background: rgba(0,0,0,0.25);
  border-radius: 5px;
  padding: 1px 6px;
  font-size: 12.5px;
  font-family: 'Courier New', 'Menlo', monospace;
  letter-spacing: 0;
}
.bubble.them code {
  background: var(--bg4);
}
.bubble pre {
  background: rgba(0,0,0,0.3);
  border-radius: 10px;
  padding: 12px;
  margin-top: 6px;
  overflow-x: auto;
  font-size: 12.5px;
  font-family: 'Courier New', 'Menlo', monospace;
  letter-spacing: 0;
  line-height: 1.6;
}
.bubble.them pre {
  background: var(--bg4);
  border: 1px solid var(--border);
}

/* ── 23. Scroll to Bottom Button ──────────────────────────── */
#scrollBottomBtn {
  border-radius: 50%;
  width: 38px;
  height: 38px;
  border-color: var(--border2);
  box-shadow: 0 4px 16px rgba(0,0,0,0.24), 0 1px 4px rgba(0,0,0,0.14);
  transition: opacity var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}
#scrollBottomBtn.visible {
  opacity: 1;
}
#scrollBottomBtn:hover {
  transform: translateX(-50%) translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}

/* ── 24. Chip Input ───────────────────────────────────────── */
.chip-input {
  border-radius: 12px;
  border-width: 1.5px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.chip-input:focus-within {
  border-color: var(--accent1);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14);
}
.chip {
  background: rgba(124,92,252,0.12);
  border-radius: 8px;
  padding: 4px 10px;
  font-size: 12.5px;
  font-weight: 600;
  border: 1px solid rgba(124,92,252,0.25);
  color: var(--text2);
}

/* ── 25. Pinned Message Bar ───────────────────────────────── */
#pinnedMsgBar {
  background: var(--bg3);
  border-bottom: 1px solid var(--border);
  padding: 8px 16px;
  gap: 12px;
}
#pinnedMsgBar .pmb-bar {
  width: 3px;
  border-radius: 4px;
  background: var(--accent1);
}
#pinnedMsgBar .pmb-txt {
  font-size: 12.5px;
  font-weight: 500;
}

/* ── 26. Verified Badges ──────────────────────────────────── */
.badge-pink-verified {
  border-radius: 14px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.1px;
}
.badge-purple-verified {
  border-radius: 14px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 750;
}

/* ── 27. More Menu Sheet ──────────────────────────────────── */
#moreMenuSheet {
  border-radius: 24px 24px 0 0;
  box-shadow: 0 -8px 40px rgba(0,0,0,0.36);
}
.more-icon {
  border-radius: 16px;
  width: 52px;
  height: 52px;
  font-size: 22px;
  background: var(--bg3);
  border: 1px solid var(--border);
  transition: transform var(--transition-fast), background var(--transition-fast);
}
.more-item:hover .more-icon {
  transform: scale(1.1) translateY(-2px);
  background: var(--bg4);
}
.more-label {
  font-size: 11px;
  font-weight: 650;
  color: var(--text3);
}

/* ── 28. Section Card ─────────────────────────────────────── */
.section-card {
  border-radius: 16px;
  padding: 18px;
  border-width: 1.5px;
  transition: transform var(--transition-med), border-color var(--transition-med);
}
.section-card:hover {
  transform: translateY(-3px);
  border-color: rgba(124,92,252,0.4);
}

/* ── 29. Quick Action Buttons ─────────────────────────────── */
.quick-action-btn {
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 650;
  padding: 9px 12px;
  border-width: 1.5px;
  transition: all var(--transition-fast);
}
.quick-action-btn:hover {
  background: var(--bg4);
  border-color: var(--accent1);
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
.quick-action-btn:active { transform: translateY(0); }

/* ── 30. Empty State ──────────────────────────────────────── */
.empty-state .icon-wrap {
  width: 62px;
  height: 62px;
  border-radius: 20px;
  background: var(--bg3);
  border: 1.5px solid var(--border);
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
}
.empty-state .t1 {
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: -0.2px;
}
.empty-state .t2 {
  font-size: 13px;
  color: var(--text3);
  line-height: 1.65;
}

/* ── 31. Stats Grid ───────────────────────────────────────── */
.stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 6px;
}
.stat-card {
  background: var(--bg3);
  border-radius: 14px;
  padding: 14px;
  text-align: center;
  border: 1.5px solid var(--border);
  transition: transform var(--transition-fast);
}
.stat-card:hover { transform: translateY(-2px); }

/* ── 32. Kebab Menu ───────────────────────────────────────── */
.kebab-menu {
  border-radius: 12px;
  border-color: var(--border2);
  box-shadow: 0 8px 28px rgba(0,0,0,0.28), 0 2px 8px rgba(0,0,0,0.14);
  overflow: hidden;
  min-width: 160px;
}
.kebab-menu button {
  font-size: 13.5px;
  padding: 10px 14px;
  transition: background var(--transition-fast);
}
.kebab-menu button:hover { background: var(--bg4); }
.kebab-menu button.danger { color: var(--danger); }

/* ── 33. Tour / Onboarding ────────────────────────────────── */
#tourOverlay .tour-card {
  border-radius: 24px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.45), 0 4px 16px rgba(0,0,0,0.22);
  border: 1px solid var(--border2);
}

/* ── 34. Completion Bar ───────────────────────────────────── */
.completion-bar-wrap {
  height: 4px;
  background: var(--bg4);
  border-radius: 6px;
  overflow: hidden;
  margin: 10px 0 5px;
}
.completion-bar-fill {
  height: 100%;
  background: var(--grad);
  border-radius: 6px;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── 35. Media bubbles ────────────────────────────────────── */
.media-bubble img,
.media-bubble video {
  border-radius: 14px;
  max-width: 260px;
  transition: filter var(--transition-fast), transform var(--transition-fast);
}
.media-bubble:hover img {
  filter: brightness(0.86);
}

/* ── 36. Voice message ────────────────────────────────────── */
.voice-row {
  min-width: 185px;
  gap: 10px;
}
.voice-row button {
  background: rgba(255,255,255,0.22);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  transition: background var(--transition-fast), transform var(--transition-fast);
}
.voice-row button:hover {
  background: rgba(255,255,255,0.35);
  transform: scale(1.06);
}
.bubble.them .voice-row button {
  background: var(--bg4);
}
.bubble.them .voice-row button:hover {
  background: var(--bg5);
}

/* ── 37. Ghost mode indicator ─────────────────────────────── */
.ghost-indicator {
  border-radius: 20px;
  padding: 6px 16px;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 4px 16px rgba(124,92,252,0.45);
}

/* ── 38. Animations — Refined ─────────────────────────────── */
@keyframes modalIn {
  from { opacity: 0; transform: scale(0.95) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes slideUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes tdot {
  0%,80%,100% { transform: scale(0.55); opacity: 0.35; }
  40%         { transform: scale(1); opacity: 1; }
}
@keyframes pulseSend {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.2); }
  100% { transform: scale(1); }
}

/* ── 39. Light mode refinements ───────────────────────────── */
body.light .bubble.me {
  box-shadow: 0 2px 10px rgba(91,63,232,0.28), 0 1px 3px rgba(0,0,0,0.08);
}
body.light .bubble.them {
  background: #FFFFFF;
  border: 1px solid #E0E3F2;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
body.light #inputWrap {
  background: #F0F2FA;
  border-color: #DADDEF;
}
body.light #inputWrap:focus-within {
  background: #FFFFFF;
  border-color: rgba(124,92,252,0.5);
}
body.light .auth-card {
  box-shadow:
    0 0 0 1px rgba(124,92,252,0.06),
    0 20px 60px rgba(0,0,0,0.10),
    0 4px 16px rgba(0,0,0,0.06);
}
body.light .chat-item:hover { background: #E6E9F4; }
body.light .chat-item.active { background: #DDE1F2; }
body.light .day-divider span {
  background: rgba(255,255,255,0.92);
  border-color: #D4D7EB;
  color: #6B7090;
}

/* ── 39b. رفع باگ‌های تم روشن ──────────────────────────────
   یه سری کامپوننت (کارت ورود/ثبت‌نام، مودال‌ها، منوی کباب سراسری، و هر
   چیزی که از متغیرهای --glass-bg/--glass-border استفاده می‌کنه — از جمله
   خودِ نوار پایین ناوبری!) رنگ پس‌زمینه‌شون رو به‌صورت ثابت و فقط برای
   تم تیره تنظیم کرده بودن و توی تم روشن آپدیت نمی‌شدن؛ نتیجه‌اش این بود
   که توی تم روشن، این پنل‌ها همچنان تیره می‌موندن ولی متنشون (که از
   var(--text) میاد) به‌رنگ تیره‌ی تم روشن درمیومد — یعنی متن تیره روی
   پس‌زمینه‌ی تیره و عملاً ناخوانا. */
body.light {
  --glass-bg: rgba(255,255,255,0.75);
  --glass-border: rgba(0,0,0,0.08);
}
body.light .auth-card,
body.light .modal {
  background: rgba(255,255,255,0.88);
  border-color: rgba(0,0,0,0.08);
}
body.light #globalKebabMenu.kebab-menu-global,
body.light .kebab-menu {
  background: #FFFFFF;
  border-color: rgba(0,0,0,0.08);
  box-shadow: 0 14px 36px rgba(30,34,54,0.14), 0 4px 14px rgba(30,34,54,0.08);
}
body.light .glass-panel,
body.light .section-card,
body.light #profileViewSection .tg-card {
  border-color: rgba(0,0,0,0.08);
}

/* ── 40. Responsive refinements ───────────────────────────── */
@media (max-width: 760px) {
  .msg-row { max-width: 85%; }
  .bubble { font-size: 14px; padding: 9px 13px; }
  #inputBar { gap: 7px; }
  #sendBtn { width: 40px; height: 40px; }
  .auth-card { padding: 26px 22px; }
}
@media (min-width: 761px) {
  #sidebarWrap {
    border-right: 1px solid var(--border);
  }
  .chat-item { margin-bottom: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ================= R6 UI Polish v2 ================= */

/* Online status: soft radar-style pulse ring around the avatar dot */
.online-dot { position: relative; z-index: 1; }
.online-dot::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 1.5px solid var(--online);
  opacity: 0.65;
  animation: onlinePing 1.8s cubic-bezier(0.2, 0.7, 0.4, 1) infinite;
  pointer-events: none;
}
@keyframes onlinePing {
  0%   { transform: scale(1);   opacity: 0.55; }
  70%  { transform: scale(2.1); opacity: 0; }
  100% { transform: scale(2.1); opacity: 0; }
}

/* FAB: gentle breathing glow so it feels alive without being distracting */
#fab {
  animation: fabBreathe 3.4s ease-in-out infinite;
}
#fab:active { animation: none; }
@keyframes fabBreathe {
  0%, 100% { box-shadow: 0 4px 16px rgba(124,92,252,0.35), 0 0 0 0 rgba(124,92,252,0.22); }
  50%      { box-shadow: 0 6px 22px rgba(124,92,252,0.5), 0 0 0 8px rgba(124,92,252,0); }
}

/* Chat open: native-app-style push transition (RTL-aware — enters from the left) */
@media (max-width: 760px) {
  body.chat-open #chatPanel {
    animation: chatPanelIn 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  }
}
@keyframes chatPanelIn {
  from { transform: translateX(-6%); opacity: 0.35; }
  to   { transform: translateX(0);   opacity: 1; }
}

/* Bottom nav: lively bounce when switching tabs */
.bottom-nav-item.active svg {
  animation: navTapBounce 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes navTapBounce {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.25); }
  100% { transform: scale(1); }
}

/* Sent tick (seen/delivered) pop-in */
.msg-ticks { display: inline-flex; animation: ticksPop 0.25s ease; }
@keyframes ticksPop {
  from { transform: scale(0.5); opacity: 0; }
  to   { transform: scale(1);   opacity: 1; }
}

/* Directional message entrance: own messages glide in from their side, incoming from theirs */
.msg-row.me:not(.grouped) {
  animation: msgAppearMe 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.msg-row.them:not(.grouped) {
  animation: msgAppearThem 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes msgAppearMe {
  from { opacity: 0; transform: translate(14px, 10px) scale(0.9); }
  to   { opacity: 1; transform: translate(0, 0) scale(1); }
}
@keyframes msgAppearThem {
  from { opacity: 0; transform: translate(-14px, 10px) scale(0.9); }
  to   { opacity: 1; transform: translate(0, 0) scale(1); }
}
.msg-row.grouped {
  animation: fadeIn 0.18s ease;
}

/* ================= New feature styles ================= */

/* Location bubble */
.location-bubble {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; cursor: pointer;
  background: var(--bg3); border-radius: 12px;
  min-width: 180px;
}
.location-icon { font-size: 22px; }
.location-title { font-size: 13px; font-weight: 600; }
.location-sub { font-size: 11px; color: var(--text3); margin-top: 2px; }

/* Poll bubble */
.poll-bubble { min-width: 220px; }
/* ── Poll creation modal — redesigned inputs ─────────────────── */
.poll-question-wrap { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.poll-question-wrap .field-input-wrap { flex: 1; }
.poll-q-icon {
  width: 34px; height: 34px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg,#7C5CFC,#5B3FE0);
  box-shadow: 0 3px 10px rgba(124,92,252,0.4);
}
.poll-opt-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.poll-opt-num {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: #fff;
  background: linear-gradient(135deg,#7C5CFC,#a78bfa);
  box-shadow: 0 2px 6px rgba(124,92,252,0.35);
}
.poll-opt-field { flex: 1; }
.poll-opt-remove {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg3); border: 1px solid var(--border2); color: var(--text3);
  cursor: pointer; transition: background .15s, color .15s, transform .15s;
  -webkit-tap-highlight-color: transparent;
}
.poll-opt-remove:hover { background: var(--danger); border-color: var(--danger); color: #fff; }
.poll-opt-remove:active { transform: scale(0.88); }
.poll-add-btn {
  width: 100%; margin-top: 4px; padding: 10px; border-radius: var(--r-md);
  background: transparent; border: 1.5px dashed var(--border2); color: var(--accent1);
  font-size: 13px; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  transition: background .15s, border-color .15s;
}
.poll-add-btn:hover { background: rgba(124,92,252,0.08); border-color: var(--accent1); }
.poll-add-btn:disabled { opacity: .4; cursor: default; }
.poll-question { font-size: 13.5px; font-weight: 700; margin-bottom: 10px; }
.poll-option {
  position: relative; overflow: hidden;
  background: var(--bg3); border-radius: 9px;
  padding: 8px 10px; margin-bottom: 6px; cursor: pointer;
  transition: background var(--transition-fast);
}
.poll-option:hover { background: var(--bg4); }
.poll-option.voted { box-shadow: inset 0 0 0 1.5px var(--accent1); }
.poll-option-fill {
  position: absolute; inset: 0; right: auto;
  background: rgba(124,92,252,0.18);
  transition: width 0.4s ease;
  z-index: 0;
}
.poll-option-row {
  position: relative; z-index: 1;
  display: flex; justify-content: space-between; gap: 8px;
  font-size: 12.5px;
}
.poll-pct { color: var(--text3); font-size: 11.5px; }
.poll-total { font-size: 11px; color: var(--text3); margin-top: 4px; }

/* Message translation */
.msg-translate-row { margin-top: 4px; }
.translate-btn {
  background: none; border: none; color: var(--accent1);
  font-size: 11px; cursor: pointer; padding: 2px 0;
}
.translated-text {
  font-size: 12.5px; color: var(--text2);
  margin-top: 4px; padding-top: 4px;
  border-top: 1px dashed var(--border);
}

/* Starred messages list */
.starred-item {
  display: flex; flex-direction: column; gap: 2px;
  position: relative;
  padding: 10px 34px 10px 12px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}
.starred-item:hover { background: var(--bg3); }
.starred-item-chat { font-size: 11.5px; color: var(--accent1); font-weight: 600; }
.starred-item-text { font-size: 13px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.starred-item-remove {
  position: absolute; left: 8px; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: var(--text3); cursor: pointer; font-size: 13px;
}

/* Promise Tracker */
.promise-item {
  padding: 10px 12px; border-bottom: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 5px;
}
.promise-item-text { font-size: 13px; color: var(--text); }
.promise-item-meta { font-size: 11px; color: var(--text3); display: flex; justify-content: space-between; align-items: center; }
.promise-hint-badge {
  background: rgba(52,211,153,0.15); color: #059669; border-radius: 20px;
  padding: 2px 9px; font-size: 10.5px; font-weight: 600;
}
.promise-item-actions { display: flex; gap: 6px; margin-top: 2px; }
.promise-item-actions button {
  flex: 1; font-size: 11.5px; padding: 5px 6px; border-radius: 8px; border: 1px solid var(--border);
  background: var(--bg3); color: var(--text2); cursor: pointer;
}
.promise-item-actions button.pos { color: #059669; border-color: #059669; }
.promise-item-actions button.neg { color: var(--danger); border-color: var(--danger); }
.promise-item.resolved { opacity: 0.55; }
#promiseTabMine.active, #promiseTabToMe.active { background: var(--accent1); color: #fff; border-color: var(--accent1); }

/* Slash quick-reply menu */
.quick-reply-menu {
  position: absolute; bottom: 100%; left: 0; right: 0;
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px; margin-bottom: 6px;
  max-height: 160px; overflow-y: auto;
  box-shadow: 0 6px 18px rgba(0,0,0,0.3);
  z-index: 20;
}
#inputWrap { position: relative; }
.quick-reply-menu button {
  display: block; width: 100%; text-align: right;
  padding: 8px 12px; background: none; border: none;
  color: var(--text); font-size: 12.5px; font-family: inherit; cursor: pointer;
}
.quick-reply-menu button:hover { background: var(--bg4); }

/* ================================================================
   R6 Chat — Premium Visual Upgrade v2
   لایه تکمیلی: ورود/ثبت‌نام، پروفایل، تنظیمات و چت خفن‌تر می‌شوند.
   هیچ ساختار/JS تغییر نکرده؛ فقط ظاهر ارتقا یافته.
   ================================================================ */

/* ── Auth screen: richer glass card + premium buttons ─────── */
.auth-card {
  background: linear-gradient(180deg, rgba(22,25,36,0.82), rgba(14,16,24,0.86));
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,0.6),
    0 0 0 1px rgba(124,92,252,0.10),
    0 0 60px -10px rgba(124,92,252,0.18);
}
.auth-title {
  background: linear-gradient(90deg,#fff,#C9BFFF 55%,#FF9FD1);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.field-input-wrap {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.field-input-wrap:focus-within {
  border-color: rgba(124,92,252,0.55);
  background: rgba(124,92,252,0.06);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14);
}
#authScreen .btn-primary {
  background: var(--grad-animated, var(--grad));
  background-size: var(--gradient-size, 300% 300%);
  animation: gradShift 6s ease infinite;
  box-shadow: 0 10px 28px -8px rgba(124,92,252,0.55);
  border: 1px solid rgba(255,255,255,0.14);
}
#authScreen .btn-primary:active { transform: scale(0.98); }
@keyframes gradShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }

/* ── Profile modal: glowing gradient avatar ring + glass sections ── */
.profile-avatar-row .avatar,
#profileModal .avatar-lg,
.avatar-xl {
  box-shadow: 0 0 0 3px var(--bg2), 0 0 0 5px rgba(124,92,252,0.45), 0 10px 30px -8px rgba(124,92,252,0.5);
}
.cover-wrap {
  background: linear-gradient(135deg, rgba(124,92,252,0.35), rgba(255,79,163,0.25) 55%, rgba(54,201,198,0.25));
  position: relative;
  overflow: hidden;
}
.cover-wrap::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.16), transparent 55%);
  pointer-events: none;
}
.section-card, .toggle-row {
  border-radius: 14px;
}
.swatch.selected { box-shadow: 0 0 0 2px var(--bg2), 0 0 14px rgba(124,92,252,0.6); }

/* ── Main screen / settings sheets: elevated glass surfaces ─ */
.modal, .more-sheet, .header-more-menu {
  background: linear-gradient(180deg, rgba(24,27,38,0.94), rgba(15,17,25,0.96));
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 24px 60px -16px rgba(0,0,0,0.6), 0 0 0 1px rgba(124,92,252,0.06);
}
.quick-action-btn:hover, .menu-row:hover { background: rgba(124,92,252,0.10); }

/* ── Chat: premium bubbles + glass header/input bar ─────────── */
#chatHeader {
  background: linear-gradient(180deg, rgba(20,22,32,0.9), rgba(16,18,26,0.75));
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.msg-row.me .bubble {
  background: linear-gradient(135deg, #7C5CFC, #6647E0 60%, #5B3FE8);
  box-shadow: 0 6px 18px -6px rgba(124,92,252,0.55);
}
.msg-row.them .bubble {
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.07);
}
#inputWrap, .composer, .input-bar {
  background: linear-gradient(180deg, rgba(20,22,32,0.85), rgba(16,18,26,0.92));
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-top: 1px solid rgba(255,255,255,0.06);
}
.send-btn, #sendBtn {
  box-shadow: 0 6px 20px -4px rgba(124,92,252,0.6);
}
.send-btn:active, #sendBtn:active { transform: scale(0.94); }

@media (prefers-reduced-motion: reduce) {
  #authScreen .btn-primary { animation: none; }
}

/* ================================================================
   R6 Chat — Premium Visual Upgrade v3
   فوکوس عمیق روی «صفحه اصلی» (سایدبار/چت‌لیست/ناوبری) و
   «صفحه ثبت‌نام و ورود». ساختار/JS دست‌نخورده.
   ================================================================ */

/* ───────────────────── AUTH: ورود و ثبت‌نام عمیق‌تر ───────────────────── */
#authScreen {
  background:
    radial-gradient(circle at 18% 8%, rgba(124,92,252,0.16), transparent 45%),
    radial-gradient(circle at 85% 12%, rgba(255,79,163,0.12), transparent 45%),
    radial-gradient(circle at 50% 100%, rgba(54,201,198,0.10), transparent 50%),
    var(--bg);
}
.auth-card {
  padding: 36px 26px 30px;
  border-radius: 28px;
}
.auth-card::before {
  animation-duration: 8s;
  opacity: 0.65;
}
.logo-mark {
  border-radius: 24px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.10),
    0 10px 40px -8px rgba(124,92,252,0.6),
    0 2px 10px rgba(0,0,0,0.35);
}
.auth-title { font-size: 24px; letter-spacing: -0.4px; }
.auth-sub { font-size: 13.5px; }
.step-dot { width: 7px; height: 7px; transition: all .25s ease; }
.step-dot.active { width: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(124,92,252,0.7); }
.btn-back {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12.5px; color: var(--text3);
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px; padding: 6px 12px; margin-bottom: 14px;
  transition: background .18s, color .18s, transform .18s;
}
.btn-back:hover { background: rgba(124,92,252,0.14); color: var(--text); }
.btn-back:active { transform: scale(0.96); }
.field label {
  font-size: 12px; font-weight: 600; color: var(--text3);
  letter-spacing: 0.2px;
}
.field-input-wrap {
  border-radius: 14px;
  padding: 3px 14px;
}
.field-input-wrap input {
  padding: 12px 2px;
  font-size: 14.5px;
}
.field-error {
  border-radius: 8px;
  background: rgba(255,107,107,0.08);
  padding: 6px 10px;
  margin-top: 6px;
}
#authScreen .btn-primary {
  border-radius: 15px;
  padding: 14px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2px;
  transition: transform .15s ease, box-shadow .15s ease;
}
#authScreen .btn-primary:hover { box-shadow: 0 14px 34px -8px rgba(124,92,252,0.65); }
#authScreen .btn-text { transition: color .18s ease; }
#authScreen .btn-text b { color: var(--accent1); }
#authScreen .btn-text:hover { color: var(--text); }
.auth-footer-links span:hover { color: var(--text); }
#recoveryCodeDisplay {
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(124,92,252,0.14), rgba(255,79,163,0.10));
  border: 1px dashed rgba(124,92,252,0.4);
  color: var(--text);
}

/* ───────────────────── صفحه اصلی: سایدبار / چت‌لیست / ناوبری ───────────────────── */
#sidebar .top {
  background: linear-gradient(180deg, rgba(124,92,252,0.10), transparent 70%);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  padding-bottom: 10px;
}
.brand .mark {
  width: 46px; height: 46px;
  border-radius: 15px;
  box-shadow: 0 6px 20px -4px rgba(124,92,252,0.55), 0 0 0 1px rgba(255,255,255,0.08);
}
.brand .title {
  font-size: 18.5px;
  background: linear-gradient(90deg, #fff, #C9BFFF 60%, #FF9FD1);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.4px;
}
#searchBox {
  border-radius: 16px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: border-color .2s, box-shadow .2s, background .2s;
}
#searchBox:focus-within {
  border-color: rgba(124,92,252,0.55);
  background: rgba(124,92,252,0.08);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14);
}
.home-folders-row { gap: 6px; padding: 4px 2px 8px; }
.home-folder-item {
  border-radius: 12px;
  padding: 7px 12px;
  font-size: 12.5px;
  font-weight: 600;
  border: 1px solid transparent;
  color: var(--text3);
  background: rgba(255,255,255,0.03);
  transition: background .2s, color .2s, border-color .2s, transform .15s;
}
.home-folder-item:hover { color: var(--text); background: rgba(255,255,255,0.06); }
.home-folder-item.active {
  color: #fff;
  background: linear-gradient(135deg, #7C5CFC, #6647E0 70%);
  border-color: rgba(255,255,255,0.14);
  box-shadow: 0 6px 16px -6px rgba(124,92,252,0.65);
}
.home-folder-item.active:active { transform: scale(0.96); }
.home-folder-item .hfi-icon svg { width: 14px; height: 14px; }
.chat-item { border-radius: 16px; padding: 12px 14px; }
.chat-item:hover { background: rgba(255,255,255,0.045); transform: translateX(-1px); }
.chat-item.active {
  background: linear-gradient(135deg, rgba(124,92,252,0.16), rgba(255,79,163,0.08));
  box-shadow: 0 0 0 1px rgba(124,92,252,0.20) inset;
}
.chat-item.active::before { width: 3px; box-shadow: 0 0 10px rgba(124,92,252,0.7); }

/* Unread rows get a soft accent bar too, dimmer than the active one */
.chat-item:has(.chat-badge):not(.active)::before {
  content: '';
  position: absolute;
  right: 0;
  top: 28%;
  bottom: 28%;
  width: 2.5px;
  border-radius: 3px;
  background: var(--grad);
  opacity: 0.55;
}

/* Group conversations pick up the teal identity used on group avatars,
   so the whole row hints at what kind of chat it is before you even read it */
.chat-item:has(.avatar .grp):hover { background: rgba(54,201,198,0.07); }
.chat-item:has(.avatar .grp).active {
  background: linear-gradient(135deg, rgba(54,201,198,0.16), rgba(124,92,252,0.08));
  box-shadow: 0 0 0 1px rgba(54,201,198,0.22) inset;
}
.chat-item:has(.avatar .grp).active::before,
.chat-item:has(.avatar .grp):has(.chat-badge):not(.active)::before {
  background: linear-gradient(180deg, #36C9C6, #7C5CFC);
}
.chat-name { font-size: 14.5px; }
.chat-badge {
  background: linear-gradient(135deg, #7C5CFC, #FF4FA3);
  box-shadow: 0 3px 10px -2px rgba(124,92,252,0.6);
  padding: 3px 8px;
}
.chat-item.muted .chat-badge { background: var(--text4); box-shadow: none; }
#fab {
  box-shadow: 0 10px 30px -6px rgba(124,92,252,0.7), 0 0 0 1px rgba(255,255,255,0.10);
  background: linear-gradient(135deg, #8A6BFF, #7C5CFC 55%, #FF4FA3 140%);
}
#fab:active { transform: scale(0.92); }
#fabMenu {
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(24,27,38,0.96), rgba(15,17,25,0.98));
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 20px 50px -12px rgba(0,0,0,0.6);
}
#fabMenu button:hover { background: rgba(124,92,252,0.14); }
.bottom-nav {
  background: linear-gradient(180deg, rgba(20,22,32,0.85), rgba(14,16,24,0.96));
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  border-top: 1px solid rgba(255,255,255,0.06);
}
.bottom-nav-item.active svg { filter: drop-shadow(0 0 6px rgba(124,92,252,0.65)); }
.bottom-nav-item.center-profile .center-profile-circle {
  box-shadow: 0 6px 20px -4px rgba(124,92,252,0.65), 0 0 0 3px var(--bg2);
}
.aurora-orb { opacity: 0.6; }

@media (prefers-reduced-motion: reduce) {
  .chat-item:hover { transform: none; }
}

/* ================================================================
   R6 Chat — Premium Visual Upgrade v4
   فوکوس عمیق روی «صفحه‌ی خود چت» (هدر، حباب پیام‌ها، نوار ورودی،
   واکنش‌ها، صدا، رسانه، تایپینگ، پین‌شده و ...). ساختار/JS دست‌نخورده.
   ================================================================ */

/* ── هدر چت: شیشه‌ای، عمیق‌تر، آواتار با حلقه‌ی نور ─────────── */
#chatHeader {
  background: linear-gradient(180deg, rgba(22,25,36,0.92), rgba(16,18,26,0.82));
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 4px 20px -8px rgba(0,0,0,0.4);
}
#chatHeader #headerAvatar {
  box-shadow: 0 0 0 2px var(--bg2), 0 0 0 4px rgba(124,92,252,0.35), 0 4px 14px -4px rgba(124,92,252,0.5);
}
#chatHeader .name { font-size: 15.5px; letter-spacing: -0.1px; }
#chatHeader .status { font-size: 11.5px; }
#backBtn:hover { background: rgba(124,92,252,0.14); color: var(--text); }
#chatHeader > .icon-btn { border-radius: 12px; transition: background .18s, transform .12s; }
#chatHeader > .icon-btn:hover { background: rgba(124,92,252,0.14); }
#chatHeader > .icon-btn:active { transform: scale(0.9); }

/* نوار جستجوی داخل چت، بنر پین‌شده و بنرها — شیشه‌ای‌تر */
#searchInChat {
  background: rgba(255,255,255,0.04);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
#pinnedMsgBar {
  background: linear-gradient(90deg, rgba(124,92,252,0.14), rgba(255,79,163,0.06));
  border-bottom: 1px solid rgba(124,92,252,0.18);
}
#pinnedMsgBar .pmb-bar { background: linear-gradient(180deg, #7C5CFC, #FF4FA3); box-shadow: 0 0 8px rgba(124,92,252,0.6); }
#anonBanner { background: rgba(124,92,252,0.10); border-bottom-color: rgba(124,92,252,0.22); }
#editBanner { background: rgba(245,181,71,0.08); }
#destructBanner { background: rgba(124,92,252,0.06); }

/* پس‌زمینه ناحیه‌ی پیام‌ها: بافت ظریف به‌جای سطح تخت */
#messages {
  background:
    radial-gradient(circle at 15% 0%, rgba(124,92,252,0.05), transparent 40%),
    radial-gradient(circle at 90% 25%, rgba(255,79,163,0.04), transparent 35%);
}
.date-sep span {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 20px;
  padding: 3px 14px;
  font-weight: 600;
  backdrop-filter: blur(6px);
}

/* ── حباب پیام‌ها: عمق، گرادیان و سایه‌ی درست ─────────────── */
.bubble {
  padding: 10px 14px;
  line-height: 1.6;
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.bubble.me {
  background: linear-gradient(135deg, #8A6BFF, #7C5CFC 55%, #6647E0);
  box-shadow: 0 6px 18px -6px rgba(124,92,252,0.55);
  position: relative;
  overflow: hidden;
}
.bubble.me::before {
  content: '';
  position: absolute;
  top: 0; left: -60%;
  width: 45%; height: 100%;
  background: linear-gradient(75deg, transparent, rgba(255,255,255,0.24), transparent);
  transform: skewX(-12deg);
  animation: bubbleSheen 1.1s ease .12s 1;
  pointer-events: none;
}
@keyframes bubbleSheen { to { left: 150%; } }
@media (prefers-reduced-motion: reduce) { .bubble.me::before { animation: none; display: none; } }
.bubble.them {
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 2px 8px -4px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.06);
}
.bubble.deleted { background: rgba(255,255,255,0.02) !important; border-color: rgba(255,255,255,0.04) !important; box-shadow: none !important; }
.bubble.deleted::before { display: none !important; }
.reply-quote { border-radius: 6px; background: rgba(255,255,255,0.06); padding: 5px 8px; }
.bubble.them .reply-quote { background: rgba(124,92,252,0.08); }
.bubble a.mention-link { padding: 0 2px; border-radius: 4px; }
.bubble.them a.mention-link { background: rgba(124,92,252,0.12); }
.day-divider span {
  background: linear-gradient(135deg, rgba(124,92,252,0.14), rgba(255,79,163,0.07)), var(--bg4);
  border: 1px solid rgba(124,92,252,0.2);
}

/* ری‌اکشن‌ها: شیشه‌ای، سریع‌تر و شیک‌تر */
.reaction-bar {
  background: linear-gradient(180deg, rgba(28,30,42,0.96), rgba(18,20,28,0.98));
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 14px 34px -10px rgba(0,0,0,0.55);
}
.reaction-chip {
  background: rgba(255,255,255,0.05);
  border-radius: 12px;
}
.reaction-chip.mine {
  background: linear-gradient(135deg, rgba(124,92,252,0.22), rgba(255,79,163,0.12));
  border-color: rgba(124,92,252,0.5);
}

/* رسانه، صدا و استیکر */
.media-bubble { border-radius: 14px; box-shadow: 0 4px 16px -6px rgba(0,0,0,0.4); }
.media-bubble img, .media-bubble video { border-radius: 14px; }
.voice-row button {
  background: rgba(255,255,255,0.18);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.bubble.them .voice-row button { background: linear-gradient(135deg, #7C5CFC, #6647E0); color: #fff; }
.voice-wave i { opacity: 0.75; }
.sticker-bubble { filter: drop-shadow(0 6px 14px rgba(0,0,0,0.35)); }

/* تایپینگ در حال نوشتن */
.typing-bubble {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 2px 8px -4px rgba(0,0,0,0.3);
}
.typing-bubble span { background: linear-gradient(135deg, #7C5CFC, #FF4FA3); }

/* تیک دیده‌شدن */
.msg-ticks.seen svg { filter: drop-shadow(0 0 3px rgba(54,201,198,0.6)); }

/* دکمه اسکرول به پایین */
#scrollBottomBtn {
  background: linear-gradient(180deg, rgba(28,30,42,0.95), rgba(18,20,28,0.98));
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 10px 26px -8px rgba(0,0,0,0.5);
}

/* ── نوار ورودی: شیشه‌ای، عمیق، دکمه ارسال با گلو ─────────── */
#inputBar {
  background: linear-gradient(180deg, rgba(20,22,32,0.9), rgba(15,17,24,0.96));
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  border-top: 1px solid rgba(255,255,255,0.06);
}
#inputWrap {
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 20px;
  transition: border-color .18s, box-shadow .18s, background .18s;
}
#inputWrap:focus-within {
  border-color: rgba(124,92,252,0.5);
  background: rgba(124,92,252,0.06);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14);
}
#msgInput::placeholder { color: var(--text4); }
#sendBtn {
  background: linear-gradient(135deg, #8A6BFF, #7C5CFC 55%, #FF4FA3 150%);
  box-shadow: 0 6px 18px -4px rgba(124,92,252,0.6);
}
#sendBtn:hover { box-shadow: 0 8px 24px -4px rgba(124,92,252,0.75); }
#micBtn.recording { filter: drop-shadow(0 0 6px rgba(255,107,107,0.6)); }
#replyBanner, #editBanner, #destructBanner {
  border-top-color: rgba(255,255,255,0.06);
}
#replyBanner .bar { background: linear-gradient(180deg, #7C5CFC, #FF4FA3); box-shadow: 0 0 8px rgba(124,92,252,0.6); }

/* پنل ایموجی */
#emojiPanel {
  background: linear-gradient(180deg, rgba(26,29,40,0.97), rgba(16,18,26,0.99));
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 20px 50px -12px rgba(0,0,0,0.6);
}
.panel-tabs button.active { color: var(--accent1); }

/* منوی صفحه‌ی خالی چت */
#emptyChatPanel .mark-big {
  box-shadow: 0 10px 34px -8px rgba(124,92,252,0.55), 0 0 0 1px rgba(255,255,255,0.08);
}

/* ---- بلوک بعدی ---- */

/* ================================================================
   R6 Chat — Premium Visual Upgrade v5
   ۱) جایگزینی خط مربعِ چرخان دور کارت ورود/ثبت‌نام با یک افکت
      نوری روان‌تر و خفن‌تر («border beam»)
   ۲) پرداخت عمیق صفحه‌ی کانال (کاور، آواتار، پست‌ها، نوار ارسال پست)
   ۳) اصلاح/تنظیم دقیق صفحه‌ی چت برای نمایش درست روی گوشی
   ================================================================ */

/* ── ۱) حذف خط مربعِ چرخان قدیمی و جایگزینی با نور روان دور کارت ── */
.auth-card::before {
  content: '';
  position: absolute;
  inset: -1.5px;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from 0deg, transparent 0%, rgba(124,92,252,0.9) 12%, rgba(255,79,163,0.85) 22%, transparent 38%, transparent 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0.85;
  filter: blur(0.4px);
  animation: authBeamSpin 3.2s linear infinite;
  z-index: -1;
  pointer-events: none;
}
@keyframes authBeamSpin { to { transform: rotate(360deg); } }
/* هاله‌ی نرم پشت کارت هم‌زمان با نور می‌تپد تا حس پرمیوم‌تری بده */
.auth-card {
  position: relative;
}
.auth-card::after {
  content: '';
  position: absolute;
  top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(75deg, transparent, rgba(255,255,255,0.05), transparent);
  animation: authSheen 6s ease-in-out infinite;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .auth-card::before, .auth-card::after { animation: none !important; }
}

/* ── ۲) صفحه کانال: کاور، آواتار، پست‌ها، نوار ارسال ─────────── */
#channelViewOverlay .modal {
  background: linear-gradient(180deg, rgba(20,22,32,0.97), rgba(13,15,22,0.99));
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 30px 80px -18px rgba(0,0,0,0.65);
}
.ch-cover::after {
  background: linear-gradient(to bottom, rgba(20,10,40,0.05) 0%, rgba(10,8,20,0.35) 55%, rgba(8,6,14,0.85) 100%);
}
.ch-cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 25% 20%, rgba(124,92,252,0.30), transparent 55%), radial-gradient(circle at 85% 10%, rgba(255,79,163,0.22), transparent 50%);
  pointer-events: none;
}
.ch-close-btn {
  background: rgba(10,10,16,0.55);
  border: 1px solid rgba(255,255,255,0.18);
}
.ch-avatar-big {
  border-radius: 26%;
  border: 3px solid var(--bg2);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.35), 0 10px 30px -6px rgba(124,92,252,0.5), inset 0 1px 0 rgba(255,255,255,0.2);
}
.ch-identity .ch-name {
  font-size: 21px;
  background: linear-gradient(90deg, #fff, #D6CBFF 55%, #FFB4E0);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ch-identity .ch-handle { color: var(--text3); }
.ch-stat-item {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 20px;
  padding: 4px 10px;
}
.ch-actions-row .btn-primary {
  background: linear-gradient(135deg, #8A6BFF, #7C5CFC 55%, #FF4FA3 150%);
  box-shadow: 0 8px 22px -6px rgba(124,92,252,0.6);
  border-radius: 13px;
}
.ch-actions-row .btn-secondary {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 13px;
}
.admin-panel-btn {
  background: linear-gradient(135deg, rgba(124,92,252,0.18), rgba(255,79,163,0.10));
  border-radius: 12px;
}
.ch-divider { background: rgba(255,255,255,0.06); }
.ch-post {
  background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.015));
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 18px;
  box-shadow: 0 6px 18px -8px rgba(0,0,0,0.4);
}
.ch-post:hover {
  border-color: rgba(124,92,252,0.3);
  box-shadow: 0 10px 26px -10px rgba(124,92,252,0.35);
}
.ch-post-title { font-size: 14px; }
.ch-post-time { color: var(--text4); }
.ch-post-stat:hover { background: rgba(124,92,252,0.12); color: var(--text); }
.ch-reaction-btn {
  background: rgba(255,255,255,0.04);
  border-radius: 20px;
}
.ch-reaction-btn:hover { background: rgba(124,92,252,0.14); }
.ch-reaction-btn.active {
  background: linear-gradient(135deg, rgba(124,92,252,0.25), rgba(255,79,163,0.14));
  border-color: rgba(124,92,252,0.55);
}
.ch-post-input-wrap {
  background: linear-gradient(180deg, rgba(20,22,32,0.92), rgba(15,17,24,0.97));
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-top: 1px solid rgba(255,255,255,0.07);
}
.ch-post-input-inner textarea {
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  transition: border-color .18s, box-shadow .18s;
}
.ch-post-input-inner textarea:focus {
  border-color: rgba(124,92,252,0.5);
  box-shadow: 0 0 0 3px rgba(124,92,252,0.14);
}
.ch-rocket-btn {
  background: linear-gradient(135deg, #8A6BFF, #7C5CFC 55%, #FF4FA3 150%);
  box-shadow: 0 6px 18px -4px rgba(124,92,252,0.6);
}
.ch-media-btn { background: rgba(255,255,255,0.05); border-radius: 12px; }
.ch-media-btn:hover { background: rgba(124,92,252,0.14); }
.ch-pin-btn.active { background: linear-gradient(135deg, #7C5CFC, #FF4FA3); }
.ch-attach-menu {
  background: linear-gradient(180deg, rgba(26,29,40,0.97), rgba(16,18,26,0.99));
  border: 1px solid rgba(255,255,255,0.09);
}

/* ── ۳) اصلاح دقیق صفحه‌ی چت روی موبایل ─────────────────────── */
@media (max-width: 760px) {
  #chatHeader {
    padding: 9px 12px;
    padding-top: calc(9px + env(safe-area-inset-top));
    gap: 8px;
  }
  #chatHeader .name { font-size: 14.5px; }
  #chatHeader .status { font-size: 11px; }
  #chatHeader #headerAvatar { width: auto; height: auto; }
  #messages { padding: 10px 10px; }
  .msg-row { max-width: 84%; }
  .bubble { padding: 9px 12px; font-size: 13.5px; }
  #inputBar {
    padding: 8px 10px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
    gap: 5px;
  }
  #inputWrap { padding: 8px 11px; border-radius: 18px; }
  #msgInput { font-size: 14px; max-height: 100px; }
  #sendBtn, .icon-btn { width: 38px; height: 38px; }
  .reaction-bar { max-width: calc(100vw - 24px); overflow-x: auto; }
  #emojiPanel { max-height: 46vh; }
  .ch-avatar-big { width: 68px; height: 68px; font-size: 24px; }
  .ch-identity .ch-name { font-size: 18px; }
  .ch-post { padding: 13px; border-radius: 14px; }
  .ch-post-input-inner { gap: 6px; }
  /* بلور سنگین روی گوشی‌های ضعیف‌تر می‌تونه لگ بده — کمی سبک‌ترش می‌کنیم */
  #chatHeader, #inputBar, .ch-post-input-wrap {
    backdrop-filter: blur(10px) saturate(130%);
    -webkit-backdrop-filter: blur(10px) saturate(130%);
  }
}
@media (max-width: 380px) {
  .auth-card { padding: 28px 18px 24px; }
  .logo-mark { width: 64px; height: 64px; }
  .auth-title { font-size: 20px; }
}

/* ---- بلوک بعدی ---- */

/* ================================================================
   R6 Chat — Premium Visual Upgrade v6
   ۱) حذف کامل «خط نور» دور کارت ورود/ثبت‌نام و جایگزینی با یک
      افکت نورپردازی کاملاً متفاوت: هاله‌ی نرم شناور بالای کارت +
      تپش ملایم سایه (بدون هیچ خط یا مرز متحرک)
   ۲) اصلاح جای پروفایل طرف مقابل در چت: به‌جای مودالِ وسط صفحه با
      حاشیه‌های نامتوازن، به یک Bottom Sheet واقعی (چسبیده به پایین
      صفحه) با ابعاد مناسب گوشی تبدیل می‌شه
   ================================================================ */

/* ── ۱) نورپردازی کاملاً جدید برای کارت ورود/ثبت‌نام (بدون خط) ── */
.auth-card::before,
.auth-card::after { content: none !important; animation: none !important; }

.auth-card { position: relative; overflow: visible; }
.auth-card::before {
  content: '' !important;
  position: absolute;
  top: -70px;
  left: 50%;
  width: 230px;
  height: 230px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(124,92,252,0.55), rgba(255,79,163,0.28) 45%, transparent 72%);
  filter: blur(46px);
  z-index: -1;
  opacity: 0.85;
  animation: authGlowFloat 5.5s ease-in-out infinite !important;
  pointer-events: none;
}
@keyframes authGlowFloat {
  0%, 100% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.75; }
  50%      { transform: translateX(-50%) translateY(14px) scale(1.08); opacity: 1; }
}
.auth-card {
  animation: authCardBreathe 4.5s ease-in-out infinite;
}
@keyframes authCardBreathe {
  0%, 100% { box-shadow: 0 30px 80px -20px rgba(0,0,0,0.6), 0 0 0 1px rgba(124,92,252,0.10), 0 0 50px -14px rgba(124,92,252,0.20); }
  50%      { box-shadow: 0 30px 90px -18px rgba(0,0,0,0.6), 0 0 0 1px rgba(124,92,252,0.20), 0 0 80px -8px rgba(124,92,252,0.40); }
}
@media (prefers-reduced-motion: reduce) {
  .auth-card::before, .auth-card { animation: none !important; }
}
@media (max-width: 380px) {
  .auth-card::before { width: 180px; height: 180px; top: -50px; filter: blur(36px); }
}

/* ── ۲) پروفایل طرف مقابل در چت → Bottom Sheet واقعی، متناسب با گوشی ── */
.bottom-sheet-overlay {
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}
.bottom-sheet {
  max-width: 480px;
  width: 100%;
  margin: 0 auto;
  border-radius: 22px 22px 0 0;
  max-height: 85vh;
  animation: sheetSlideUp .3s cubic-bezier(.2,.9,.3,1.1);
  background: linear-gradient(180deg, rgba(24,27,38,0.98), rgba(15,17,25,0.99));
  border: 1px solid rgba(255,255,255,0.08);
  border-bottom: none;
}
@keyframes sheetSlideUp {
  from { transform: translateY(40px); opacity: 0.4; }
  to   { transform: translateY(0); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .bottom-sheet { animation: none; }
}
/* عکس/کاور پروفایل طرف مقابل: کوچیک‌تر و متناسب‌تر با ارتفاع صفحه گوشی */
.sheet-photo-wrap { max-height: 240px; border-radius: 22px 22px 0 0; }
.sheet-close-btn { background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.15); }
.sqa-icon { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.08); }
.sheet-info-card {
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.07);
}
@media (max-width: 420px) {
  .sheet-photo-wrap { max-height: 190px; }
  .sheet-quick-actions { padding: 14px 10px 2px; }
  .sqa-icon { width: 44px; height: 44px; }
  .sheet-name { font-size: 16.5px; }
  .bottom-sheet { max-height: 90vh; }
}

/* ---- بلوک بعدی ---- */

/* ================================================================
   R6 Chat — Premium Visual Upgrade v7
   فیکس چیدمان هدر چت (آواتار/اسم طرف مقابل): طبق اسکرین‌شات، روی
   بعضی گوشی‌ها هدر به‌جای یک نوار یک‌دست، پخش/شناور به‌نظر می‌رسه.
   این لایه چیدمان رو مستحکم و جای هرچیز رو تثبیت می‌کنه.
   ================================================================ */
#chatHeader {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  gap: 10px;
  /* پس‌زمینه‌ی کاملاً غیرشفاف‌تر تا هدر همیشه به‌شکل یک نوار مشخص دیده بشه،
     حتی روی مرورگر/دستگاه‌هایی که backdrop-filter رو درست پشتیبانی نمی‌کنن */
  background: linear-gradient(180deg, rgba(18,20,30,0.97), rgba(14,16,23,0.94));
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 2px 10px rgba(0,0,0,0.25);
}
#backBtn { flex-shrink: 0; }
#headerAvatar { flex-shrink: 0; }
#chatHeader .info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#chatHeader .info .name,
#chatHeader .info .status {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#chatHeader .header-more-wrap,
#chatHeader #searchToggleBtn {
  flex-shrink: 0;
}
/* گروه آیکون‌های سمت دیگر هدر (جستجو/بیشتر) همیشه چسبیده به هم و به لبه باقی می‌مونن */
#chatHeader #searchToggleBtn { margin-inline-start: auto; }

@media (max-width: 760px) {
  #chatHeader { padding: 10px 14px; padding-top: calc(10px + env(safe-area-inset-top)); }
}

/* ================================================================
   R6 Chat — v8: فیکس قطعی آواتار هدر چت + طرح جدید (حلقه‌ی نور چرخان)
   مشکل قبلی: روی موبایل، خودِ آواتار ۴۰px رندر می‌شد ولی جعبه‌ی دورش
   با یک قاعده‌ی قدیمی به ۳۶px قفل شده بود؛ در نتیجه لبه‌ی آواتار از
   قاب بیرون می‌زد. اینجا اندازه‌ی جعبه رو کاملاً به محتوا می‌سپاریم
   (بدون هیچ تناقضی) و یک طرح مدرن با حلقه‌ی گرادیانِ چرخان اضافه می‌کنیم.
   ================================================================ */
#chatHeader #headerAvatar {
  position: relative;
  width: auto !important;
  height: auto !important;
  flex-shrink: 0;
  border-radius: 50%;
  box-shadow: none !important;
  overflow: visible;
  isolation: isolate;
}
#chatHeader #headerAvatar::before {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #7C5CFC, #FF4FA3 35%, #8A6BFF 65%, #7C5CFC 100%);
  z-index: -1;
  animation: r6HeaderRingSpin 5s linear infinite;
}
#chatHeader #headerAvatar::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 50%;
  box-shadow: 0 4px 16px -3px rgba(124,92,252,0.55);
  pointer-events: none;
}
#chatHeader #headerAvatar .avatar {
  box-shadow: 0 0 0 2.5px var(--bg2) !important;
}
#chatHeader .info:hover #headerAvatar::before { animation-duration: 2.2s; }
@keyframes r6HeaderRingSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #chatHeader #headerAvatar::before { animation: none; }
}

/* ================================================================
   R6 Chat — v8: بازطراحی مدرن پروفایل مخاطب (Contact Sheet)
   - مودال حالا واقعاً وسط صفحه قرار می‌گیره (نه چسبیده به پایین)
   - عکس پروفایل کامل و بدون بُرش نمایش داده می‌شه (با پس‌زمینه‌ی محوِ
     هم‌رنگِ خودِ عکس برای یک جلوه‌ی مدرن، به‌جای crop زشت)
   - اسم و آیدی دیگه روی عکس نیستن؛ یک بخش مخصوص و جدا زیر عکس دارن
   ================================================================ */
#contactSheetOverlay {
  align-items: center !important;
  justify-content: center !important;
  padding: 18px !important;
}
#contactSheetOverlay .bottom-sheet.contact-sheet-v2 {
  border-radius: 26px !important;
  max-height: 86vh;
  animation: r6SheetPopIn .32s cubic-bezier(.2,.9,.3,1.1);
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 24px 60px -12px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.04);
}
@keyframes r6SheetPopIn {
  from { opacity: 0; transform: scale(0.93) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  #contactSheetOverlay .bottom-sheet.contact-sheet-v2 { animation: none; }
}

#contactSheetOverlay .sheet-photo-wrap {
  max-height: 300px;
  border-radius: 26px 26px 0 0;
}
#contactSheetOverlay .sheet-photo-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: blur(30px) saturate(1.35) brightness(0.55);
  transform: scale(1.25);
}
#contactSheetOverlay .sheet-photo {
  position: relative;
  z-index: 1;
}
#contactSheetOverlay .sheet-photo.has-photo {
  background-color: transparent !important;
}
#contactSheetOverlay .sheet-photo-img {
  position: relative;
  max-width: 88%;
  max-height: 88%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 18px;
  box-shadow: 0 14px 34px -8px rgba(0,0,0,0.55);
}
/* دیگه متنی روی عکس نیست، پس اسکریمِ تیره‌کننده هم لازم نیست */
#contactSheetOverlay .sheet-photo-scrim { display: none; }
#contactSheetOverlay .sheet-photo-info { display: none; }

/* بخش مخصوص و جدا برای نام + آیدی، درست زیر عکس */
.sheet-name-block {
  text-align: center;
  padding: 16px 22px 2px;
}
.sheet-name-block .sheet-name {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 19px;
  font-weight: 800;
  color: var(--text);
  text-shadow: none;
}
.sheet-name-block .sheet-sub {
  margin-top: 5px;
  font-size: 12.5px;
  color: var(--text3);
}
@media (max-width: 420px) {
  #contactSheetOverlay .sheet-photo-wrap { max-height: 230px; }
  .sheet-name-block .sheet-name { font-size: 17px; }
}

/* ================================================================
   R6 Chat — v9: تمرکز کامل روی طراحی «کانال‌ها»
   لیست کانال‌ها، صفحه‌ی کانال (کاور/آواتار/آمار)، و کارت پست‌ها
   ================================================================ */

/* ── لیست کانال‌ها: هر آیتم حالا یک کارت شیشه‌ای مجزاست ── */
#chatList .channel-item {
  background: linear-gradient(180deg, rgba(255,255,255,0.032), rgba(255,255,255,0.008));
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 16px;
  padding: 11px 13px;
  margin-bottom: 8px;
  transition: transform .18s, border-color .18s, background .18s, box-shadow .18s;
}
#chatList .channel-item:hover {
  transform: translateY(-2px);
  border-color: rgba(124,92,252,0.4);
  background: linear-gradient(180deg, rgba(124,92,252,0.10), rgba(255,79,163,0.03));
  box-shadow: 0 12px 28px -14px rgba(124,92,252,0.55);
}
#chatList .channel-item.active {
  border-color: rgba(124,92,252,0.55);
  background: linear-gradient(180deg, rgba(124,92,252,0.14), rgba(255,79,163,0.05));
}
.channel-avatar-wrap { position: relative; isolation: isolate; }
.channel-avatar-wrap::before {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 38%;
  background: conic-gradient(from 0deg, #7C5CFC, #FF4FA3 40%, #8A6BFF 70%, #7C5CFC 100%);
  opacity: 0;
  transition: opacity .2s;
  z-index: -1;
}
#chatList .channel-item:hover .channel-avatar-wrap::before,
#chatList .channel-item.active .channel-avatar-wrap::before { opacity: 0.9; }
.channel-avatar {
  width: 50px;
  height: 50px;
  border-radius: 30%;
  font-size: 20px;
  box-shadow: 0 4px 14px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.2), 0 0 0 2px var(--bg2);
}
.channel-name { font-size: 14.8px; }
.channel-sub { display: flex; align-items: center; gap: 4px; }
.channel-sub::before {
  content: "";
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--text4);
  flex-shrink: 0;
  display: none;
}

/* ── صفحه‌ی کانال: کاور با مش گرادیانِ متحرک، آواتار با هاله‌ی نور ── */
.ch-cover {
  background-color: #14101f;
}
.ch-cover::before {
  animation: chCoverDrift 12s ease-in-out infinite alternate;
}
@keyframes chCoverDrift {
  from { transform: translate3d(0,0,0) scale(1); }
  to   { transform: translate3d(-2%, 1.5%, 0) scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
  .ch-cover::before { animation: none; }
}
.ch-avatar-big-wrap { position: relative; }
.ch-avatar-ring { position: relative; flex-shrink: 0; isolation: isolate; }
.ch-avatar-big { position: relative; z-index: 1; }
.ch-avatar-ring::before {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 26%;
  background: conic-gradient(from 0deg, #7C5CFC, #FF4FA3 40%, #8A6BFF 70%, #7C5CFC 100%);
  filter: blur(3px);
  opacity: .75;
  z-index: 0;
  animation: r6HeaderRingSpin 6s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .ch-avatar-ring::before { animation: none; }
}

/* آمار (ممبر/عمومی‌بودن) با آیکون در دایره‌ی گرادیانی */
.ch-stat-item {
  gap: 7px;
  font-weight: 600;
}
.ch-stat-item svg {
  background: linear-gradient(135deg, rgba(124,92,252,0.28), rgba(255,79,163,0.18));
  border-radius: 50%;
  padding: 4px;
  width: 22px !important;
  height: 22px !important;
  box-sizing: border-box;
  color: #C9B9FF;
}
.ch-stat-item:nth-child(2) svg {
  background: linear-gradient(135deg, rgba(54,201,198,0.28), rgba(34,197,94,0.16));
  color: #8FEAE6;
}

/* دکمه‌های اکشن: کمی حس فشردن و درخشش هنگام هاور */
.ch-actions-row .btn-primary:active,
.ch-actions-row .btn-secondary:active,
.admin-panel-btn:active { transform: scale(0.97); }
.ch-actions-row .btn-primary,
.ch-actions-row .btn-secondary,
.admin-panel-btn {
  transition: transform .12s, background .15s, border-color .15s, box-shadow .15s;
}

/* ── کارت پست‌های کانال: نوار تاکیدِ کناری + هدر شسته‌رفته‌تر ── */
.ch-post { position: relative; padding-right: 18px; overflow: hidden; transition: border-color .15s, box-shadow .2s, transform .18s; }
.ch-post:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -14px rgba(124,92,252,0.45); }
.ch-post::before {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #7C5CFC, #FF4FA3);
  opacity: .55;
}
.ch-post:hover::before { opacity: 1; }
.ch-post-header .channel-avatar {
  box-shadow: 0 0 0 2px var(--bg2), 0 2px 8px rgba(124,92,252,0.3);
}
.ch-post-title { letter-spacing: -0.1px; }
.ch-post-media img { transition: transform .3s; }
.ch-post-media img:hover { transform: scale(1.015); }

/* ── حالت خالی لیست کانال‌ها: هماهنگ با زبان طراحی جدید ── */
#chatList .empty-state .icon-wrap {
  background: linear-gradient(135deg, rgba(124,92,252,0.18), rgba(255,79,163,0.1));
  border: 1px solid rgba(124,92,252,0.25);
}

/* ================================================================
   R6 Chat — v10: پرداخت نهایی صفحه‌ی ورود/ثبت‌نام
   ================================================================ */
#authScreen .auth-title {
  background: linear-gradient(90deg, #fff, #D6CBFF 60%, #FFB4E0);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
#authScreen .field-input-wrap:focus-within {
  box-shadow: 0 0 0 3px rgba(124,92,252,0.16), 0 4px 14px -6px rgba(124,92,252,0.4);
}

/* ── ستاره‌های چشمک‌زن در فضاهای خالیِ صفحه‌ی ورود/ثبت‌نام ── */
.auth-stars {
  position: fixed;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.auth-star {
  position: absolute;
  font-size: 10px;
  line-height: 1;
  color: #fff;
  text-shadow: 0 0 6px currentColor, 0 0 12px currentColor;
  animation: authStarTwinkle ease-in-out infinite;
  will-change: opacity, transform;
}
.auth-star.s-sm { font-size: 6px; }
.auth-star.s-md { font-size: 10px; }
.auth-star.s-lg { font-size: 15px; }
.auth-star.c-purple { color: #B79CFF; }
.auth-star.c-pink { color: #FF9FD1; }
.auth-star.c-teal { color: #7DEDE8; }
@keyframes authStarTwinkle {
  0%, 100% { opacity: 0.15; transform: scale(0.7) rotate(0deg); }
  50%      { opacity: 1;    transform: scale(1.15) rotate(8deg); }
}
@media (prefers-reduced-motion: reduce) {
  .auth-star { animation: none; opacity: 0.55; }
}

/* ---- بلوک بعدی ---- */

      .tile-2048 { aspect-ratio:1; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:800; transition:background .1s; }
    

/* ---- بلوک بعدی ---- */

      .reflex-cell { aspect-ratio:1; border-radius:10px; background:var(--bg4); cursor:pointer; transition:background .12s, transform .12s; }
      .reflex-cell.active { background:linear-gradient(135deg,#F43F5E,#BE123C); transform:scale(0.94); box-shadow:0 0 14px rgba(244,63,94,0.6); }
    

/* ---- بلوک بعدی ---- */

      .mem-card { height:60px; background:var(--bg4); border:1px solid var(--border2); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:24px; cursor:pointer; transition:all 0.2s; }
      .mem-card.flipped { background:var(--bg2); border-color:var(--accent1); }
    

/* ---- بلوک بعدی ---- */

.leaderboard-row { display:flex; align-items:center; gap:10px; padding:10px 8px; border-bottom:1px solid var(--border); }
.leaderboard-row:last-child { border-bottom:none; }
.leaderboard-row.top { background:linear-gradient(90deg, rgba(255,215,0,0.1), transparent); border-radius:10px; }
.lb-rank { width:22px; text-align:center; font-weight:800; color:var(--text3); font-size:13px; flex-shrink:0; }
.leaderboard-row.top .lb-rank { color:var(--gold, #FFD700); }
.lb-name { font-size:13.5px; font-weight:600; flex-shrink:0; }
.lb-id { font-size:11.5px; color:var(--text3); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lb-score { font-size:13.5px; font-weight:800; color:var(--accent1); flex-shrink:0; }
.game-record-btn {
  display:flex; align-items:center; justify-content:center; gap:6px;
  width:100%; margin-top:10px; padding:9px; border-radius:12px;
  background:linear-gradient(135deg, rgba(255,215,0,0.16), rgba(184,134,11,0.16));
  border:1px solid rgba(255,215,0,0.3); color:#FFD700; font-size:12.5px; font-weight:700;
  cursor:pointer; font-family:inherit;
}
.record-game-card {
  display:flex; align-items:center; gap:12px; padding:14px; margin-bottom:10px;
  background:var(--bg3); border:1px solid var(--border2); border-radius:16px;
  cursor:pointer; transition:transform .12s, border-color .12s;
}
.record-game-card:hover { border-color:var(--accent1); transform:translateY(-1px); }
.record-game-icon {
  width:44px; height:44px; border-radius:13px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:19px;
  box-shadow:0 3px 10px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.16);
}
.record-game-title { font-size:14px; font-weight:700; margin-bottom:3px; }
.record-game-holder { font-size:12px; color:var(--text2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* ================= Voice / Video Call Screen — Brand theme (بنفش/صورتی/فیروزه‌ای) (تماس صوتی و تصویری) ================= */
#callScreen {
  position: fixed; inset: 0; z-index: 500;
  display: none; flex-direction: column; align-items: center; justify-content: space-between;
  background:
    radial-gradient(ellipse 120% 60% at 50% -10%, rgba(124,92,252,0.38) 0%, rgba(124,92,252,0) 55%),
    radial-gradient(ellipse 130% 70% at 50% 110%, rgba(255,79,163,0.30) 0%, rgba(255,79,163,0) 55%),
    linear-gradient(160deg, #1B1030 0%, #170A20 55%, #0A0714 100%);
  color: #fff; padding: 40px 20px 30px; text-align: center;
  animation: callScreenIn .28s ease;
  overflow: hidden;
}
#callScreen::before {
  /* soft ambient glow drifting behind the UI, gives the screen its own identity instead of a flat gradient */
  content: ''; position: absolute; inset: -20%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(circle at 20% 25%, rgba(124,92,252,0.24) 0%, transparent 42%),
    radial-gradient(circle at 80% 75%, rgba(34,211,201,0.20) 0%, transparent 44%);
  animation: callGlowDrift 9s ease-in-out infinite alternate;
}
/* تماس تصویری رنگ کم‌رنگ‌تری داره تا تصویر خودش دیده بشه؛ تماس صوتی با
   هاله‌ی بنفش-صورتی-فیروزه‌ای پررنگ‌تر، فضای مخصوص به خودش رو داره */
#callScreen.video-mode::before {
  background:
    radial-gradient(circle at 20% 25%, rgba(124,92,252,0.14) 0%, transparent 40%),
    radial-gradient(circle at 80% 75%, rgba(255,79,163,0.14) 0%, transparent 42%);
}
@keyframes callGlowDrift { from { transform: translate(-2%, -2%) scale(1); } to { transform: translate(2%, 2%) scale(1.08); } }
#callScreen::after {
  /* لبه‌ی دندونه‌دار ظریف پایین صفحه، یک امضای کوچیک هم‌رنگ برند */
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 10px 0, transparent 8px, rgba(34,211,201,0.18) 9px) repeat-x;
  background-size: 20px 14px;
}
@keyframes callScreenIn { from { opacity:0; transform: scale(1.02); } to { opacity:1; transform: scale(1); } }
#callScreen.shown { display: flex; }

/* لایه‌ی پس‌زمینه‌ی محو‌شده از عکس پروفایل طرف مقابل — هم برای تماس صوتی
   (که تمام صفحه رو رنگ می‌کنه) و هم برای تماس تصویری (پیش از وصل شدن ویدیو
   یا وقتی دوربین طرف مقابل خاموشه)، به‌جای یک صفحه‌ی مسطح مشکی/بنفش. */
#callBackdrop {
  position: absolute; inset: -10%; z-index: 0; pointer-events: none;
  background-size: cover; background-position: center;
  filter: blur(46px) saturate(1.35) brightness(0.5);
  transform: scale(1.2);
  opacity: 0; transition: opacity .5s ease;
}
#callBackdrop.shown { opacity: 1; }
#callScreen.video-mode.connected #callBackdrop { opacity: 0; }

/* پارتیکل‌های شناور — فقط جلوه‌ی تماس صوتی رو از تصویری متمایز می‌کنه */
#callParticles { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; display: none; }
#callScreen:not(.video-mode) #callParticles { display: block; }
#callParticles span {
  position: absolute; bottom: -40px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(196,181,253,0.9), rgba(34,211,201,0.05));
  animation: callParticleFloat linear infinite;
  opacity: 0;
}
#callParticles span:nth-child(3n+1) { background: radial-gradient(circle at 30% 30%, rgba(255,159,214,0.9), rgba(255,79,163,0.05)); }
#callParticles span:nth-child(3n+2) { background: radial-gradient(circle at 30% 30%, rgba(126,240,232,0.9), rgba(34,211,201,0.05)); }
#callParticles span:nth-child(1) { left: 12%; width: 10px; height: 10px; animation-duration: 8s; animation-delay: 0s; }
#callParticles span:nth-child(2) { left: 28%; width: 6px; height: 6px; animation-duration: 11s; animation-delay: 1.5s; }
#callParticles span:nth-child(3) { left: 48%; width: 14px; height: 14px; animation-duration: 9.5s; animation-delay: 3s; }
#callParticles span:nth-child(4) { left: 65%; width: 8px; height: 8px; animation-duration: 7s; animation-delay: .8s; }
#callParticles span:nth-child(5) { left: 80%; width: 11px; height: 11px; animation-duration: 10.5s; animation-delay: 2.4s; }
#callParticles span:nth-child(6) { left: 92%; width: 7px; height: 7px; animation-duration: 12s; animation-delay: 4.2s; }
@keyframes callParticleFloat {
  0% { transform: translateY(0) scale(0.6); opacity: 0; }
  12% { opacity: .55; }
  85% { opacity: .35; }
  100% { transform: translateY(-115vh) scale(1); opacity: 0; }
}

/* --- PiP دوربین خودم: قابل کشیدن به هر گوشه‌ی صفحه + ضربه برای جابه‌جایی با تصویر اصلی --- */
#callLocalVideoWrap {
  position: absolute; bottom: 132px; left: 16px; width: 96px; height: 130px;
  border-radius: 16px; overflow: hidden; background: #111; display: none;
  border: 2px solid rgba(34,211,201,0.55); box-shadow: 0 6px 18px rgba(0,0,0,0.45);
  z-index: 3; opacity: 1; cursor: grab; touch-action: none;
  transition: opacity 0.3s ease, transform 0.25s ease, width .25s ease, height .25s ease, border-radius .25s ease;
}
#callLocalVideoWrap.dragging { cursor: grabbing; transition: none; box-shadow: 0 10px 30px rgba(0,0,0,0.55); }
#callLocalVideoWrap video {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
/* فقط دوربین جلو (سلفی) باید به‌صورت آینه‌ای نمایش داده بشه؛ دوربین پشت نه */
#callLocalVideoWrap video.mirrored { transform: scaleX(-1); }
#callLocalVideoWrap video.loading { opacity: 0.5; }
#callScreen.video-mode.cam-on #callLocalVideoWrap { display: block; }
.pip-swap-hint {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  background: rgba(10,7,20,0.0); color: #fff; opacity: 0; transition: opacity .15s ease, background .15s ease;
  pointer-events: none;
}
#callLocalVideoWrap:active .pip-swap-hint { opacity: 1; background: rgba(10,7,20,0.35); }
/* حالت مبادله‌شده: تصویر خودم بزرگ می‌شه و تصویر طرف مقابل توی PiP کوچیک می‌ره */
#callScreen.pip-swapped #callRemoteVideo {
  position: absolute; bottom: 132px; left: 16px; width: 96px; height: 130px;
  border-radius: 16px; z-index: 4; border: 2px solid rgba(34,211,201,0.55);
  box-shadow: 0 6px 18px rgba(0,0,0,0.45); inset: auto;
}
#callScreen.pip-swapped #callLocalVideoWrap {
  position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 0; border: none; box-shadow: none; z-index: 0;
}

/* --- سایه‌های گرادیانی روی ویدیو برای خوانا موندن متن/دکمه‌ها --- */
#callVideoScrimTop, #callVideoScrimBottom {
  position: absolute; left: 0; right: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .3s ease;
}
#callVideoScrimTop { top: 0; height: 140px; background: linear-gradient(180deg, rgba(10,7,20,0.55), transparent); }
#callVideoScrimBottom { bottom: 0; height: 190px; background: linear-gradient(0deg, rgba(10,7,20,0.6), transparent); }
#callScreen.video-mode.connected #callVideoScrimTop,
#callScreen.video-mode.connected #callVideoScrimBottom { opacity: 1; }

/* --- نوار بالای صفحه: دکمه‌ی مینیمایز + نشان کیفیت اتصال --- */
#callTopBar {
  position: absolute; top: 14px; left: 14px; right: 14px; z-index: 4;
  display: flex; align-items: center; justify-content: space-between;
}
#callMinimizeBtn {
  width: 38px; height: 38px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(255,255,255,0.10); border: 1px solid rgba(124,92,252,0.22);
  backdrop-filter: blur(8px); color: #fff; display: flex; align-items: center; justify-content: center;
}
#callMinimizeBtn:active { transform: scale(0.9); }
#callQualityBadge {
  display: flex; align-items: center; gap: 6px; padding: 5px 10px 5px 8px; border-radius: 999px;
  background: rgba(255,255,255,0.10); border: 1px solid rgba(124,92,252,0.22); backdrop-filter: blur(8px);
  font-size: 11px; font-weight: 700; color: rgba(255,255,255,0.85);
}
.cqb-bars { display: flex; align-items: flex-end; gap: 1.5px; height: 10px; }
.cqb-bars i { display: block; width: 2.5px; border-radius: 1px; background: currentColor; opacity: .45; }
.cqb-bars i:nth-child(1) { height: 4px; }
.cqb-bars i:nth-child(2) { height: 7px; }
.cqb-bars i:nth-child(3) { height: 10px; }
#callQualityBadge.good { color: #34D399; }
#callQualityBadge.good .cqb-bars i { opacity: 1; }
#callQualityBadge.medium { color: #F5B547; }
#callQualityBadge.medium .cqb-bars i:nth-child(1),
#callQualityBadge.medium .cqb-bars i:nth-child(2) { opacity: 1; }
#callQualityBadge.poor { color: #FF6B6B; }
#callQualityBadge.poor .cqb-bars i:nth-child(1) { opacity: 1; }

/* --- هاله‌ی نوری تماس صوتی که با ولوم واقعی صدای طرف مقابل بزرگ/کوچیک می‌شه --- */
#callVoiceOrb {
  position: absolute; top: 50%; left: 50%; z-index: 0; pointer-events: none;
  width: 260px; height: 260px; transform: translate(-50%, -50%); display: none;
}
#callScreen.connected:not(.video-mode) #callVoiceOrb { display: block; }
#callVoiceOrb .orb-ring {
  position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid rgba(124,92,252,0.35);
  transform: scale(var(--orb-scale, 1)); transition: transform .12s ease-out;
}
#callVoiceOrb .r2 { border-color: rgba(255,79,163,0.28); }
#callVoiceOrb .r3 { border-color: rgba(34,211,201,0.24); }

#callVideoStage { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
#callRemoteVideo {
  /* توجه: این المنت حتی توی تماس صوتی هم نباید display:none بشه — بعضی
     مرورگرهای موبایل (خصوصاً سافاری/iOS) پخش صدای یک ویدیوی کاملاً
     display:none رو متوقف یا محدود می‌کنن. برای همین توی تماس صوتی با
     opacity:0 مخفی می‌شه نه display:none، تا صدا هیچ‌وقت قطع نشه؛ تصویری
     هم چون تراک ویدیو نداره اصلاً رندر نمی‌شه. */
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  background: transparent; opacity: 0; pointer-events: none; z-index: -1;
  transition: opacity 0.3s ease;
}
#callScreen.video-mode #callRemoteVideo { z-index: 0; pointer-events: auto; opacity: 1; }
#callRemoteVideo.loading {
  opacity: 0.3;
}
#callRemoteVideo.connected {
  opacity: 1;
}
#callTopInfo { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 8px; }
#callScreen.video-mode.connected #callTopInfo { margin-top: 0; }
#callAvatarWrap {
  transform: scale(1.35); margin-bottom: 6px; position: relative;
  filter: drop-shadow(0 6px 22px rgba(124,92,252,0.45));
}
#callAvatarWrap::before {
  /* رینگ چرخان بنفش-صورتی-فیروزه‌ای پشت آواتار، هم‌رنگ برند خود اپ */
  content: ''; position: absolute; inset: -7px; z-index: -1; border-radius: 50%;
  background: conic-gradient(from 0deg, #7C5CFC, #FF4FA3, #22D3C9, #7C5CFC);
  animation: callRingSpin 4.5s linear infinite;
  opacity: 0.85;
}
@keyframes callRingSpin { to { transform: rotate(360deg); } }
#callScreen.video-mode.connected #callAvatarWrap { display: none; }
#callPeerName { font-size: 21px; font-weight: 800; text-shadow: 0 2px 10px rgba(0,0,0,0.4); letter-spacing: .2px; }
/* اکولایزر زیر اسم — با ولوم واقعی صدای طرف مقابل درایو می‌شه (نه صرفاً انیمیشن ثابت CSS)، فقط توی تماس صوتیِ متصل نشون داده می‌شه */
#callEqualizer { display: none; align-items: flex-end; justify-content: center; gap: 4px; height: 20px; margin-top: -2px; }
#callScreen.connected:not(.video-mode) #callEqualizer { display: flex; }
#callEqualizer span {
  display: block; width: 3.5px; border-radius: 3px;
  background: linear-gradient(180deg, #22D3C9, #7C5CFC);
  animation: callEqBounce 1.1s ease-in-out infinite;
}
#callEqualizer span:nth-child(1) { height: 8px; animation-delay: 0s; }
#callEqualizer span:nth-child(2) { height: 16px; animation-delay: .12s; }
#callEqualizer span:nth-child(3) { height: 20px; animation-delay: .24s; }
#callEqualizer span:nth-child(4) { height: 14px; animation-delay: .36s; }
#callEqualizer span:nth-child(5) { height: 9px; animation-delay: .48s; }
@keyframes callEqBounce { 0%,100% { transform: scaleY(0.4); opacity: .7; } 50% { transform: scaleY(1); opacity: 1; } }
/* وقتی صدای واقعی طرف مقابل از طریق Web Audio Analyser اندازه‌گیری می‌شه، کلاس
   «live» اضافه می‌شه و انیمیشن ثابت CSS کنار می‌ره تا مقدار scaleY واقعی
   (که با جاوااسکریپت روی هر span ست می‌شه) دیده بشه */
#callEqualizer.live span { animation: none; opacity: 1; }
#callStatusText { font-size: 14px; color: rgba(214,204,255,0.8); }
#callStatusText.ringing { animation: callStatusPulse 1.4s ease-in-out infinite; }
@keyframes callStatusPulse { 0%,100% { opacity:0.72; } 50% { opacity:1; } }
#callActionsRow {
  position: relative; z-index: 2; display: flex; align-items: center; justify-content: center;
  gap: 10px; width: 100%; max-width: 360px; flex-wrap: wrap;
  background: rgba(18,12,32,0.45); backdrop-filter: blur(14px);
  border: 1px solid rgba(124,92,252,0.22); border-radius: 32px;
  padding: 12px 16px; box-shadow: 0 10px 30px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.05);
}
.call-btn {
  width: 58px; height: 58px; border-radius: 50%; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: #fff;
  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease; flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(0,0,0,0.4);
}
.call-btn:active { transform: scale(0.9); }
/* دکمه‌ی پاسخ/پایان همون سبز/قرمز رایج و قابل‌فهم برای همه می‌مونه (استاندارد
   جهانیِ تماسه)؛ رنگ‌بندی برند (بنفش/صورتی/فیروزه‌ای) روی کل فضای پس‌زمینه،
   هاله‌ها، رینگ آواتار و دکمه‌های میانی (میوت/دوربین/اسپیکر) پیاده شده */
.call-btn-accept {
  background: linear-gradient(135deg, #34D399, #0EA5E9); display: none;
  box-shadow: 0 6px 20px rgba(52,211,153,0.5), 0 0 0 0 rgba(52,211,153,0.5);
  animation: callAcceptPulse 1.8s ease-in-out infinite;
}
@keyframes callAcceptPulse {
  0%,100% { box-shadow: 0 6px 20px rgba(52,211,153,0.5), 0 0 0 0 rgba(52,211,153,0.45); }
  50% { box-shadow: 0 6px 20px rgba(52,211,153,0.5), 0 0 0 10px rgba(52,211,153,0); }
}
.call-btn-decline { background: linear-gradient(135deg, #FF4FA3, #B3216E); display: none; }
.call-btn-end { width: 58px; background: linear-gradient(135deg, #FF4FA3, #B3216E); display: none; }
.call-btn-mute, .call-btn-cam, .call-btn-speaker, .call-btn-flip {
  width: 50px; height: 50px; background: rgba(255,255,255,0.10);
  border: 1px solid rgba(124,92,252,0.22);
  backdrop-filter: blur(6px); display: none;
}
.call-btn-mute.on, .call-btn-cam.off, .call-btn-speaker.on { 
  background: linear-gradient(135deg, #7C5CFC, #22D3C9); color: #12081F; 
  box-shadow: 0 0 15px rgba(124,92,252,0.55);
}
.call-btn-flip.spinning svg { animation: callFlipSpin .5s ease; }
@keyframes callFlipSpin { from { transform: rotate(0deg); } to { transform: rotate(180deg); } }
/* حالت‌های مختلف تماس (کلاس‌ها روی #callScreen ست می‌شن) */
#callScreen.incoming .call-btn-accept,
#callScreen.incoming .call-btn-decline { display: flex; }
#callScreen.dialing .call-btn-end,
#callScreen.connected .call-btn-end,
#callScreen.dialing .call-btn-mute,
#callScreen.connected .call-btn-mute,
#callScreen.dialing .call-btn-speaker,
#callScreen.connected .call-btn-speaker { display: flex; }
#callScreen.video-mode.dialing .call-btn-cam,
#callScreen.video-mode.connected .call-btn-cam,
#callScreen.video-mode.dialing .call-btn-flip,
#callScreen.video-mode.connected .call-btn-flip { display: flex; }
#callScreen.incoming .call-btn-mute,
#callScreen.incoming .call-btn-cam,
#callScreen.incoming .call-btn-flip,
#callScreen.incoming .call-btn-speaker,
#callScreen.incoming .call-btn-end { display: none; }


/* دکمه‌های تماس (صوتی/تصویری) در هدر چت — فقط برای گفتگوی خصوصی نمایش داده می‌شن */
#voiceCallBtn.hidden-call-btn, #videoCallBtn.hidden-call-btn { display: none !important; }

/* نشان لرزشِ زنگ برای آواتار در حالت تماس ورودی */
#callScreen.incoming #callAvatarWrap { animation: callRingPulse 1.1s ease-in-out infinite; }
@keyframes callRingPulse { 0%,100% { transform: scale(1.35); } 50% { transform: scale(1.44); } }

/* ================= حباب شناور تماسِ مینیمایز‌شده ================= */
/* وقتی کاربر تماس رو کوچیک می‌کنه، #callScreen مخفی می‌شه و به‌جاش این حباب
   کوچیک بالای بقیه‌ی صفحه‌ها می‌مونه — می‌شه توی چت‌ها گشت بدون قطع تماس */
#callBubble {
  position: fixed; z-index: 600; top: 70px; inset-inline-end: 14px;
  display: none; align-items: center; gap: 8px;
  padding: 6px 14px 6px 6px; border-radius: 999px; cursor: pointer;
  background: linear-gradient(135deg, rgba(124,92,252,0.92), rgba(255,79,163,0.85));
  box-shadow: 0 10px 26px rgba(20,10,40,0.5), 0 0 0 1px rgba(255,255,255,0.12) inset;
  animation: callBubbleIn .25s ease;
  -webkit-user-select: none; user-select: none;
}
#callBubble.shown { display: flex; }
@keyframes callBubbleIn { from { opacity: 0; transform: translateY(-8px) scale(0.9); } to { opacity: 1; transform: translateY(0) scale(1); } }
#callBubbleAvatar {
  width: 34px; height: 34px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
#callBubbleVideo {
  width: 34px; height: 34px; border-radius: 50%; object-fit: cover; display: none; flex-shrink: 0;
}
#callScreen.video-mode ~ #callBubble #callBubbleVideo.cam-on { display: block; }
#callScreen.video-mode ~ #callBubble #callBubbleAvatar.cam-on { display: none; }
#callBubblePulse {
  position: absolute; inset-inline-start: 6px; top: 6px; width: 34px; height: 34px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.65); animation: callBubblePulse 1.6s ease-out infinite;
}
@keyframes callBubblePulse { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.6); opacity: 0; } }
#callBubbleInfo { display: flex; flex-direction: column; line-height: 1.25; }
#callBubbleName { font-size: 12px; font-weight: 800; color: #fff; max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#callBubbleTimer { font-size: 11px; color: rgba(255,255,255,0.85); font-variant-numeric: tabular-nums; }
/* موقع کوچیک بودن تماس، صفحه‌ی اصلی از دید کاربر مخفی می‌شه ولی display:none
   نمی‌گیره — چون همون‌طور که بالاتر برای callRemoteVideo توضیح داده شد،
   display:none روی المنتی که صداش داره پخش می‌شه می‌تونه توی موبایل صدا رو قطع کنه.
   به‌جاش با opacity + جابه‌جایی خارج از صفحه + pointer-events:none مخفی می‌شه. */
#callScreen.minimized {
  opacity: 0; pointer-events: none; transform: scale(0.94);
  transition: opacity .2s ease, transform .2s ease;
}

/* ================= Language switch button (auth screen) ================= */
.lang-switch-btn {
  position: absolute;
  top: 16px;
  inset-inline-end: 16px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.14);
  background: rgba(255,255,255,0.08);
  backdrop-filter: blur(10px);
  color: var(--text2, #cfd3dc);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}
.lang-switch-btn:hover { background: rgba(255,255,255,0.16); }
.lang-switch-btn:active { transform: scale(0.94); }
.lang-switch-btn svg { flex-shrink: 0; }

/* ================= شخصی‌سازی حرفه‌ای ظاهر گروه ================= */
/* هر گروه رنگ اختصاصی خودش رو داره (توسط ادمین قابل انتخابه) و هدر/حباب‌ها/
   رینگ آواتار همون رنگ رو منعکس می‌کنن — نه یه تم ثابت یکسان برای همه‌ی گروه‌ها */
body.group-chat-open #chatHeader {
  position: relative;
  background:
    linear-gradient(90deg, rgba(var(--group-accent-rgb),0.14), rgba(var(--group-accent-rgb),0.05) 60%, transparent),
    var(--bg2, #15151a);
}
body.group-chat-open #chatHeader::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: linear-gradient(90deg, rgba(var(--group-accent-rgb),0.9), rgba(var(--group-accent-rgb),0.15));
  opacity: .7;
}
/* رینگ نازک هم‌رنگ گروه دور آواتار موزاییکی توی هدر */
body.group-chat-open #chatHeader #headerAvatar {
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(var(--group-accent-rgb),0.4), 0 0 14px rgba(var(--group-accent-rgb),0.28);
}
/* نشان تعداد عضو کنار وضعیت گروه توی هدر، به‌شکل یه پیل ریز */
body.group-chat-open #chatHeader .status,
body.group-chat-open #chatHeader #headerStatus {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--text3);
}
/* هاله‌ی ظریف پشت پیام‌های ورودی توی گروه، هم‌رنگ گروه — فضای گفتگو رو از پیوی متمایز می‌کنه */
body.group-chat-open #messages {
  background-image: radial-gradient(circle at 15% 8%, rgba(var(--group-accent-rgb),0.06) 0%, transparent 32%);
}
/* دور آواتار گروه توی لیست چت‌ها هم همون رنگ اختصاصی خودش رو بگیره (هر ردیف
   رنگ گروه خودش رو داره، چون --row-accent-rgb موقع رندر هر ردیف جدا ست می‌شه) */
.chat-item.is-group .avatar { box-shadow: 0 0 0 2px rgba(var(--row-accent-rgb, var(--group-accent-rgb)), 0.35); }

/* --- اسم فرستنده بالای پیام‌های گروه: رنگ ثابت و مخصوص هر عضو + آواتار ریز --- */
.msg-sender {
  font-size: 11.5px;
  font-weight: 800;
  margin-bottom: 3px;
  margin-inline-start: 4px;
}
.msg-sender > span, .msg-sender .avatar { flex-shrink: 0; }

/* --- نوار رنگی باریک کنار حباب پیام‌های دیگران توی گروه، هم‌رنگ اسم فرستنده —
   کمک می‌کنه چشم سریع‌تر بفهمه پیام از کیه، حتی وقتی اسم (به‌خاطر پشت‌سرهم
   بودن پیام‌ها) تکرار نشده باشه */
body.group-chat-open .msg-row.them .bubble {
  border-inline-start: 3px solid var(--sender-color, transparent);
}
body.group-chat-open .msg-row.them.grouped .bubble {
  border-inline-start: 3px solid var(--sender-color, transparent);
  opacity: 1;
}

/* --- نشان نقش (سازنده/ادمین) توی لیست اعضای گروه --- */
.grp-role-badge {
  font-size: 10px; font-weight: 800; padding: 2px 7px; border-radius: 999px;
  margin-inline-start: auto;
}
.grp-role-badge.owner { background: linear-gradient(135deg,#F5B547,#E0932C); color: #2B1B00; }
.grp-role-badge.admin { background: linear-gradient(135deg, var(--group-accent), rgba(var(--group-accent-rgb),0.7)); color: #12081F; }
.grp-member-row { display: flex; align-items: center; gap: 8px; padding: 6px 4px; }
.gmr-name { font-size: 13px; font-weight: 600; color: var(--text1); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* --- انتخابگر رنگ اختصاصی گروه، توی شیت اطلاعات گروه --- */
#groupColorSwatches { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px 16px 16px; }
#groupColorSwatches .swatch { width: 30px; height: 30px; }

/* --- ردیف پوشه‌ی «گروه‌ها» توی خانه: از همون آیکون دو حباب استفاده می‌کنه که
   بالا تعریف شد؛ استایل خاص اضافه‌ای لازم نداره چون از کلاس مشترک
   .home-folder-item همون ظاهر یکدست رو می‌گیره */

/* ================= ورود سریع به حساب‌های قبلی (صفحه‌ی خوش‌آمدگویی) ================= */
/* وقتی از یه حساب خارج می‌شی، دیگه لازم نیست دوباره رمز حساب‌های دیگه‌ت رو
   وارد کنی — این چیپ‌ها با توکن ذخیره‌شده‌ی همون حساب، بی‌صدا واردت می‌کنن */
.welcome-quick-acc-chip {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  cursor: pointer; padding: 6px; border-radius: 14px;
  transition: transform .12s ease, background .12s ease;
  width: 62px;
}
.welcome-quick-acc-chip:active { transform: scale(0.93); background: rgba(255,255,255,0.06); }
.welcome-quick-acc-chip .wqa-avatar {
  width: 46px; height: 46px; border-radius: 50%; overflow: hidden;
  box-shadow: 0 0 0 2px rgba(124,92,252,0.4);
}
.welcome-quick-acc-chip .wqa-name {
  font-size: 10.5px; color: var(--text2); max-width: 60px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ================= ویرایش اطلاعات گروه از داخل شیت (اسم/عکس/بیو/شناسه) ================= */
#sheetPhotoEditBtn {
  position: absolute; bottom: 6px; inset-inline-end: 6px; z-index: 3;
  width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--bg1, #0d0d10);
  background: linear-gradient(135deg,#7C5CFC,#22D3C9);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35);
}
#sheetPhotoEditBtn:active { transform: scale(0.92); }
body.sheet-editable .sheet-name { cursor: pointer; }
body.sheet-editable .sheet-name::after {
  content: '✎'; font-size: 12px; margin-inline-start: 6px; color: var(--text3); opacity: .8;
}
body.sheet-editable .sheet-info-row { cursor: pointer; }
body.sheet-editable .sheet-info-row:active { background: rgba(255,255,255,0.04); }

/* ================= ارسال خوش‌بینانه‌ی پیام: حالت «ناموفق / ضربه برای امتحان دوباره» ================= */
.bubble.failed { opacity: .85; border: 1px solid rgba(239,68,68,0.45); cursor: pointer; }
.bubble.failed:active { opacity: .65; }
.msg-ticks.failed { color: #EF4444; }
.msg-retry-hint { color: #EF4444; font-size: 10.5px; font-weight: 600; }

/* ================= حالت کم‌مصرف (Data Saver) ================= */
.media-saver-placeholder {
  display: flex; align-items: center; gap: 10px; padding: 14px 16px;
  background: rgba(255,255,255,0.05); border: 1px dashed var(--border2);
  border-radius: 12px; cursor: pointer; min-width: 200px;
}
.media-saver-placeholder .msp-icon { font-size: 20px; }
.media-saver-placeholder .msp-text { font-size: 12.5px; color: var(--text2); }
.media-saver-placeholder:active { background: rgba(255,255,255,0.09); }

/* ================= فرمت‌بندی متن پیام ================= */
.msg-code {
  background: rgba(0,0,0,0.28); padding: 1px 6px; border-radius: 5px;
  font-family: 'Courier New', monospace; font-size: 12.5px; direction: ltr; display: inline-block;
}

/* ================= جستجوی سراسری پیام‌ها ================= */
.search-msg-hit mark {
  background: rgba(124,92,252,0.35); color: #fff; border-radius: 3px; padding: 0 2px;
}
.search-hit-group-tag {
  font-size: 9.5px; font-weight: 700; color: var(--group-accent, #7C5CFC);
  background: rgba(var(--group-accent-rgb,124,92,252),0.15); padding: 1px 6px; border-radius: 999px;
  margin-inline-start: 4px;
}

/* ================= دستگاه‌های من (مدیریت نشست‌ها) ================= */
.device-row {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  background: var(--bg3); border: 1px solid var(--border2); border-radius: 12px;
}
.device-row.current { border-color: rgba(34,211,201,0.4); }
.device-icon {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  background: rgba(34,211,201,0.12); color: #22D3C9;
  display: flex; align-items: center; justify-content: center;
}
.device-info { flex: 1; min-width: 0; }
.device-label { font-size: 13px; font-weight: 700; color: var(--text1); }
.device-current-tag {
  font-size: 9.5px; font-weight: 700; color: #22D3C9;
  background: rgba(34,211,201,0.15); padding: 1px 6px; border-radius: 999px; margin-inline-start: 4px;
}
.device-sub { font-size: 11px; color: var(--text3); margin-top: 2px; }
.device-revoke-btn {
  background: rgba(239,68,68,0.12); color: #EF4444; border: none; border-radius: 8px;
  padding: 6px 12px; font-size: 11.5px; font-weight: 700; cursor: pointer; flex-shrink: 0;
}
.device-revoke-btn:active { background: rgba(239,68,68,0.22); }

/* ================= پیش‌نمایش لینک ================= */
.link-preview-card {
  margin-top: 6px; border-radius: 10px; overflow: hidden;
  background: rgba(255,255,255,0.05); border: 1px solid var(--border2);
  cursor: pointer; max-width: 280px;
}
.link-preview-card .lpc-loading { padding: 10px 12px; font-size: 11px; color: var(--text3); }
.link-preview-card.loaded:active { background: rgba(255,255,255,0.09); }
.lpc-img { width: 100%; max-height: 140px; object-fit: cover; display: block; }
.lpc-body { padding: 8px 10px; }
.lpc-title { font-size: 12.5px; font-weight: 700; color: var(--text1); margin-bottom: 2px; line-height: 1.4; }
.lpc-desc { font-size: 11px; color: var(--text2); line-height: 1.5; margin-bottom: 3px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.lpc-domain { font-size: 10px; color: var(--text3); direction: ltr; text-align: end; }

/* ================= دیده‌شدن گروهی ================= */
.msg-ticks.group-seen {
  font-size: 10px; font-weight: 700; cursor: pointer; letter-spacing: -0.3px;
}

/* ================= کهکشان خاطرات (Memory Galaxy) ================= */
.galaxy-screen {
  position: fixed; inset: 0; z-index: 60;
  background: #0B0D12;
  display: none; flex-direction: column;
}
.galaxy-screen.shown { display: flex; }
.galaxy-topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 12px; border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(124,92,252,0.10), transparent);
}
.galaxy-title { font-weight: 700; font-size: 15px; color: var(--text); }
#galaxyCanvasWrap { position: relative; flex: 1; overflow: hidden; touch-action: none; }
#galaxyCanvas { width: 100%; height: 100%; display: block; cursor: grab; }
#galaxyCanvas:active { cursor: grabbing; }
.galaxy-empty {
  position: absolute; inset: 0; display: none; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  color: var(--text2); font-size: 14px; padding: 24px; pointer-events: none;
}
.galaxy-detail-card {
  position: absolute; left: 12px; right: 12px; bottom: 16px;
  background: rgba(16,18,26,0.88); backdrop-filter: blur(20px) saturate(150%);
  -webkit-backdrop-filter: blur(20px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.08); border-radius: var(--r-xl);
  padding: 16px; display: none; flex-direction: column; gap: 8px;
  box-shadow: var(--shadow3), 0 0 0 1px rgba(124,92,252,0.08);
  animation: modalIn .2s cubic-bezier(.2,.9,.3,1.1);
}
.galaxy-detail-card.shown { display: flex; }
.galaxy-detail-img { width: 100%; max-height: 160px; object-fit: cover; border-radius: 12px; }
.galaxy-detail-preview { font-size: 14px; color: var(--text); font-weight: 600; }
.galaxy-detail-note { font-size: 13px; color: var(--accent3); font-style: italic; }
.galaxy-detail-meta { font-size: 11.5px; color: var(--text3); }
.galaxy-detail-actions { display: flex; gap: 10px; margin-top: 6px; }
.galaxy-detail-actions .btn-primary { flex: 1; margin-top: 0; padding: 10px 14px; font-size: 13px; }
.galaxy-detail-actions .btn-text.danger { color: var(--danger); }

.galaxy-note-modal-box .galaxy-note-textarea {
  width: 100%; background: var(--bg3); border: 1px solid var(--border2);
  border-radius: 12px; color: var(--text); padding: 10px 12px;
  font-family: inherit; font-size: 13.5px; resize: none; margin-top: 6px;
}
.galaxy-note-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }

/* ================= پالس رابطه (Relationship Pulse) ================= */
.pulse-body { flex: 1; overflow-y: auto; padding: 24px 16px 32px; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.pulse-score-wrap { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.pulse-score-ring {
  --pulse-color: #7C5CFC; --pulse-pct: 0;
  width: 140px; height: 140px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: conic-gradient(var(--pulse-color) calc(var(--pulse-pct)*1%), rgba(255,255,255,0.08) 0);
  box-shadow: 0 0 40px -4px var(--pulse-color);
  transition: background 0.6s ease, box-shadow 0.6s ease;
  animation: pulseRingBeat 1.4s ease-in-out infinite;
}
@keyframes pulseRingBeat { 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.035); } }
.pulse-score-num {
  width: 112px; height: 112px; border-radius: 50%; background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  font-size: 34px; font-weight: 800; color: var(--text);
}
.pulse-score-label { font-size: 13.5px; color: var(--text2); font-weight: 600; }
.pulse-ecg-wrap {
  width: 100%; max-width: 480px; height: 110px;
  border-radius: var(--r-xl); overflow: hidden;
  border: 1px solid var(--border2); background: #0B0D12;
}
.pulse-ecg-wrap canvas { width: 100%; height: 100%; display: block; }
.pulse-stats-grid {
  width: 100%; max-width: 480px; display: grid;
  grid-template-columns: repeat(2, 1fr); gap: 10px;
}
.pulse-stat-chip {
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: 14px; padding: 12px; text-align: center;
}
.pulse-stat-icon { font-size: 18px; }
.pulse-stat-val { font-size: 18px; font-weight: 800; color: var(--text); margin-top: 4px; }
.pulse-stat-label { font-size: 11px; color: var(--text3); margin-top: 2px; }

/* ================= خلاصه‌ساز هوشمند گفتگو (AI Digest) ================= */
.digest-modal-box { max-width: 400px; }
.digest-body { max-height: 60vh; overflow-y: auto; }
.digest-loading, .digest-error { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px 10px; text-align: center; }
.digest-meta { font-size: 11.5px; color: var(--text3); margin-bottom: 12px; }
.digest-section { margin-bottom: 14px; }
.digest-section-title { font-size: 13.5px; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.digest-section-body ul { margin: 0; padding-right: 18px; display: flex; flex-direction: column; gap: 5px; }
.digest-section-body li { font-size: 13px; color: var(--text2); line-height: 1.6; }
.digest-none { font-size: 12.5px; color: var(--text3); }


/* ================= دستیار هوشمند (AI Assistant) ================= */

/* دکمه شناور */
.ai-floating-btn {
  position: fixed;
  bottom: calc(var(--nav-h) + 14px);
  inset-inline-start: 16px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--grad);
  border: 2px solid rgba(255,255,255,0.16);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow3);
  z-index: 18;
  transition: all 0.3s ease;
  animation: aiPulse 2s infinite;
}

.ai-floating-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 0 20px rgba(124, 92, 252, 0.6);
}

.ai-floating-btn:active {
  transform: scale(0.95);
}

.ai-fab-icon {
  width: 24px;
  height: 24px;
  color: #fff;
  display: flex;
}

.ai-fab-icon svg {
  width: 100%;
  height: 100%;
}

.ai-fab-badge {
  position: absolute;
  top: 4px;
  inset-inline-end: 4px;
  width: 10px;
  height: 10px;
  background: var(--danger);
  border: 2px solid var(--bg1, #0f1119);
  border-radius: 50%;
  display: none;
}

.ai-fab-badge.show { display: block; }

/* کارت‌های یافته‌های «بررسی روزانه» */
.ai-report-summary {
  font-size: 12.5px;
  color: var(--text2);
  margin-bottom: 4px;
}

.ai-finding-card {
  border: 1px solid var(--border2);
  border-radius: 10px;
  padding: 10px 12px;
  margin-top: 8px;
  background: var(--bg3);
}

.ai-finding-card.sev-critical { border-color: rgba(255,107,107,0.4); background: rgba(255,107,107,0.08); }
.ai-finding-card.sev-warn { border-color: rgba(245,181,71,0.4); background: rgba(245,181,71,0.07); }
.ai-finding-card.sev-info { border-color: var(--border2); }

.ai-finding-head {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: var(--text3);
  margin-bottom: 4px;
}

.ai-finding-msg {
  font-size: 13.5px;
  color: var(--text);
  line-height: 1.6;
}

.ai-finding-snippet {
  direction: ltr;
  text-align: left;
  unicode-bidi: plaintext;
  font-family: 'Courier New', monospace;
  font-size: 11.5px;
  color: var(--text3);
  background: rgba(0,0,0,0.2);
  padding: 6px 8px;
  border-radius: 6px;
  margin-top: 6px;
  white-space: pre-wrap;
  word-break: break-all;
}

.ai-finding-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.ai-finding-btn {
  flex: 1;
  border: none;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.ai-finding-btn.apply { background: var(--accent1); color: #fff; }
.ai-finding-btn.dismiss { background: var(--bg4); color: var(--text2); }
.ai-finding-btn:disabled { opacity: 0.6; cursor: default; }

/* وقتی چت، پروفایل، کانال یا هر مودالی باز است، دکمه شناور هوش مصنوعی
   نباید روی محتوا بیفتد - دقیقاً مثل نوار پایین مخفی می‌شود */
body.chat-open .ai-floating-btn,
body.profile-open .ai-floating-btn,
body.channel-open .ai-floating-btn,
body.focus-mode .ai-floating-btn {
  display: none !important;
}

@keyframes aiPulse {
  0%, 100% { box-shadow: var(--shadow3); }
  50% { box-shadow: 0 0 20px rgba(124, 92, 252, 0.4), var(--shadow3); }
}

/* مودال هوش مصنوعی */
.ai-modal-box {
  max-width: 420px;
  width: 90%;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--r-xl);
  overflow: hidden;
}

.ai-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px;
  border-bottom: 1px solid var(--border2);
  background: linear-gradient(135deg, rgba(124, 92, 252, 0.1), rgba(255, 79, 163, 0.05));
}

.ai-modal-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}

.ai-icon {
  width: 22px;
  height: 22px;
  color: var(--accent1, #7C5CFC);
  display: flex;
  flex-shrink: 0;
}

.ai-icon svg {
  width: 100%;
  height: 100%;
}

.ai-modal-header .x {
  background: none;
  border: none;
  color: var(--text2);
  cursor: pointer;
  font-size: 20px;
  padding: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.ai-modal-header .x:hover {
  background: var(--bg3);
  color: var(--text);
}

/* منطقه چت */
.ai-chat-container {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ai-chat-messages {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ai-message {
  display: flex;
  gap: 8px;
  animation: slideIn 0.3s ease;
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.ai-message.user {
  justify-content: flex-end;
}

.ai-message.ai {
  justify-content: flex-start;
}

.ai-message-content {
  max-width: 75%;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
  word-wrap: break-word;
}

.ai-message.user .ai-message-content {
  background: var(--accent1);
  color: white;
  border-bottom-right-radius: 4px;
}

.ai-message.ai .ai-message-content {
  background: var(--bg3);
  color: var(--text);
  border: 1px solid var(--border2);
  border-bottom-left-radius: 4px;
}

.ai-message.ai .ai-message-content.unknown {
  background: rgba(255, 107, 107, 0.1);
  border-color: rgba(255, 107, 107, 0.3);
  color: #FF8A8A;
}

.ai-message.ai .ai-message-content.success {
  background: rgba(61, 220, 132, 0.1);
  border-color: rgba(61, 220, 132, 0.3);
  color: #5FE3A0;
}

.ai-message.ai .ai-message-content.ai-response {
  background: rgba(120, 130, 255, 0.1);
  border-color: rgba(120, 130, 255, 0.3);
  color: var(--text);
}

.ai-message.ai .ai-message-content.error {
  background: rgba(255, 107, 107, 0.1);
  border-color: rgba(255, 107, 107, 0.3);
  color: #FF8A8A;
}

.ai-cmd-block {
  margin-top: 8px;
  padding: 10px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid var(--border2);
}

.ai-cmd-code {
  display: block;
  direction: ltr;
  text-align: left;
  unicode-bidi: plaintext;
  font-family: 'Courier New', monospace;
  font-size: 12.5px;
  color: #9FE3A0;
  white-space: pre-wrap;
  word-break: break-all;
  margin-bottom: 8px;
}

.ai-cmd-run-btn {
  width: 100%;
  padding: 8px 10px;
  border: none;
  border-radius: 8px;
  background: var(--accent1);
  color: #fff;
  font-size: 13px;
  cursor: pointer;
}

.ai-cmd-run-btn:hover {
  filter: brightness(1.08);
}

.ai-cmd-run-btn:disabled {
  opacity: 0.6;
  cursor: default;
}

.ai-cmd-output-title {
  font-size: 12.5px;
  color: var(--text2);
  margin-bottom: 6px;
}

.ai-cmd-output {
  direction: ltr;
  text-align: left;
  unicode-bidi: plaintext;
  font-family: 'Courier New', monospace;
  font-size: 12px;
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 260px;
  overflow-y: auto;
  margin: 0;
}

/* منطقه ورودی */
.ai-input-area {
  display: flex;
  gap: 8px;
  padding: 12px;
  border-top: 1px solid var(--border2);
  background: var(--bg2);
}

.ai-input {
  flex: 1;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 20px;
  padding: 10px 16px;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  transition: all 0.2s ease;
}

.ai-input::placeholder {
  color: var(--text3);
}

.ai-input:focus {
  border-color: var(--accent1);
  background: var(--bg4);
}

.ai-send-btn {
  background: var(--accent1);
  border: none;
  color: white;
  border-radius: 20px;
  padding: 10px 20px;
  cursor: pointer;
  font-weight: 600;
  font-size: 13px;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.ai-send-btn:hover {
  background: #8A6BFF;
  transform: translateY(-2px);
}

.ai-send-btn:active {
  transform: translateY(0);
}

/* پنل مدیریت */
.ai-admin-panel {
  padding: 12px;
  border-top: 1px solid var(--border2);
  background: rgba(124, 92, 252, 0.05);
}

.ai-admin-controls {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.ai-admin-btn {
  flex: 1;
  min-width: 140px;
  background: var(--bg3);
  border: 1px solid var(--border2);
  color: var(--text2);
  border-radius: 8px;
  padding: 8px 12px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  transition: all 0.2s ease;
}

.ai-admin-btn:hover {
  background: var(--bg4);
  color: var(--text);
  border-color: var(--accent1);
}

/* حالت آموزش */
.ai-teach-mode {
  background: rgba(245, 181, 71, 0.1);
  border: 1px dashed var(--warn);
}

.ai-teach-mode .ai-input-area {
  background: rgba(245, 181, 71, 0.05);
}

.ai-teach-label {
  font-size: 11px;
  color: var(--warn);
  padding: 8px 12px;
  text-align: center;
  border-bottom: 1px solid rgba(245, 181, 71, 0.2);
}

/* نمایش دانش */
.ai-knowledge-list {
  max-height: 400px;
  overflow-y: auto;
  padding: 12px;
}

.ai-knowledge-item {
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 8px;
  font-size: 13px;
}

.ai-knowledge-q {
  color: var(--accent1);
  font-weight: 600;
  margin-bottom: 4px;
}

.ai-knowledge-a {
  color: var(--text2);
  line-height: 1.5;
}

.ai-knowledge-delete {
  font-size: 11px;
  color: var(--danger);
  cursor: pointer;
  margin-top: 6px;
}

.ai-knowledge-delete:hover {
  text-decoration: underline;
}

/* پیام خالی */
.ai-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
  color: var(--text3);
}

.ai-empty-icon {
  font-size: 48px;
  margin-bottom: 12px;
  opacity: 0.6;
}

.ai-empty-text {
  font-size: 13px;
  line-height: 1.6;
}

/* رسپانسیو */
@media (max-width: 480px) {
  .ai-modal-box {
    max-width: 95vw;
    max-height: 80vh;
  }
  
  .ai-message-content {
    max-width: 85%;
  }
  
  .ai-floating-btn {
    width: 48px;
    height: 48px;
  }
  
  .ai-fab-icon {
    width: 22px;
    height: 22px;
  }
}
