#iconChatAppRoot{
      --pink1:#ff8fc1;
      --pink2:#ffb3d5;
      --pink3:#ffe1ee;
      --text:#7b2e54;
      --shadow:0 18px 50px rgba(255,105,180,.25);
      --shadow-soft:0 10px 28px rgba(255,105,180,.14);
    }

html.chat-open,
body.chat-open {
  overflow: hidden !important;
  height: 100% !important;
  touch-action: none;
}

    #iconChatAppRoot *{box-sizing:border-box}
.overlay{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.28);
      backdrop-filter:blur(2px);
      opacity:0;
      pointer-events:none;
      transition:.22s ease;
      z-index:998;
    }
    .overlay.show{opacity:1;pointer-events:auto}

    .hint{
      position:fixed;
      left:0;
      top:0;
      width:min(240px,calc(100vw - 120px));
      background:#ffb0d3;
      color:#fff;
      border-radius:18px;
      padding:14px 16px;
      box-shadow:var(--shadow);
      opacity:0;
      transform:translateY(10px) scale(.96);
      pointer-events:none;
      z-index:999;
      transition:.25s ease;
      will-change:left,top,transform,opacity;
    }
    .hint.show{
      opacity:1;
      transform:translateY(0) scale(1);
      pointer-events:none;
      animation:floatHint 1.9s infinite ease-in-out;
    }
    .hint-title{font-size:15px;font-weight:800;margin-bottom:4px}
    .hint-sub{font-size:13px;opacity:.95}

    @keyframes floatHint{
      0%,100%{transform:translateY(0) scale(1)}
      50%{transform:translateY(-4px) scale(1.01)}
    }

    .bubble{
      position:fixed;
      right:18px;
      bottom:18px;
      width:78px;
      height:78px;
      border:none;
      border-radius:24px;
      background:linear-gradient(180deg,var(--pink1),#ff9ecb);
      box-shadow:var(--shadow);
      color:#fff;
      cursor:pointer;
      z-index:1000;
      user-select:none;
      touch-action:none;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-direction:column;
      gap:2px;
      padding:0;
    }
    .bubble::before{
      content:"";
      position:absolute;
      inset:8px;
      border-radius:20px;
      border:2px dashed rgba(255,255,255,.8);
      opacity:.75;
    }
    .bubble-star{
      position:absolute;
      top:-10px;
      right:-8px;
      width:24px;
      height:24px;
      border-radius:50%;
      background:#fff;
      color:#ff6ea7;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:15px;
      box-shadow:0 8px 18px rgba(0,0,0,.12);
      animation:starPulse 1.35s infinite ease-in-out;
    }
    .bubble-text{
      font-size:16px;
      font-weight:800;
      letter-spacing:1px;
      line-height:1;
    }
    .bubble-heart{
      font-size:12px;
      line-height:1;
      margin-top:2px;
      opacity:.95;
    }

    @keyframes starPulse{
      0%,100%{transform:scale(1)}
      50%{transform:scale(1.15)}
    }

    .panel{
      position:fixed;
      right:18px;
      bottom:104px;
      width:min(92vw,390px);
      border-radius:30px;
      overflow:hidden;
      background:linear-gradient(180deg,#ff8ec1 0%,#ffb0d3 22%,#fff 22%,#fff 100%);
      box-shadow:var(--shadow);
      z-index:1001;
      opacity:0;
      transform:translateY(18px) scale(.97);
      pointer-events:none;
      transition:.22s ease;
      max-height:min(76vh,560px);
      display:flex;
      flex-direction:column;
    }
    .panel.show{
      opacity:1;
      transform:translateY(0) scale(1);
      pointer-events:auto;
    }

    .panel-head{
      padding:18px 18px 16px;
      color:#fff;
      position:sticky;
      top:0;
      z-index:2;
      cursor:grab;
      touch-action:none;
      user-select:none;
    }
    .panel-head:active{cursor:grabbing}
    .panel-head-title{
      display:flex;
      align-items:center;
      gap:10px;
      font-size:22px;
      font-weight:900;
      margin-bottom:8px;
    }
    .spark{
      width:26px;
      height:26px;
      border-radius:50%;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      background:rgba(255,255,255,.24);
      box-shadow:0 6px 16px rgba(0,0,0,.08);
      animation:sparkleBlink 1.2s infinite ease-in-out;
    }
    .panel-head-sub{
      font-size:14px;
      line-height:1.55;
      opacity:.96;
    }

    .panel-body{
      background:#fff;
      padding:14px;
      overflow-y:auto;
      flex:1;
    }

    .main-view{
      display:grid;
      grid-template-columns:1fr;
      gap:12px;
    }

    .more-label{
      margin:6px 4px 2px;
      font-size:13px;
      color:#c2477d;
      font-weight:800;
      opacity:.9;
    }

    .app-card{
      position:relative;
      width:100%;
      display:flex;
      align-items:center;
      gap:12px;
      border:none;
      text-align:left;
      padding:13px 14px;
      border-radius:20px;
      background:#fff;
      box-shadow:0 6px 16px rgba(255,105,180,.08);
      cursor:pointer;
      border:1px solid #f8d8e6;
      transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
    }
    .app-card:hover{
      transform:translateY(-1px);
      background:#fff7fb;
      box-shadow:0 10px 22px rgba(255,105,180,.12);
    }
    .app-card:active{transform:scale(.99)}

    .icon{
      width:50px;
      height:50px;
      border-radius:16px;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#fff;
      font-weight:900;
      font-size:22px;
      flex:0 0 50px;
    }
    .tg .icon{background:#2aabee}
    .zalo .icon{background:#0b74ff}
    .fbapp .icon{background:#1877f2}
    .waapp .icon{background:#25d366}
    .tiktok .icon{background:linear-gradient(135deg,#000,#444)}
    .dcapp .icon{background:#5865f2}
    .xapp .icon{background:#111}
    .vkapp .icon{background:#4a76a8}

    .meta{
      display:flex;
      flex-direction:column;
      min-width:0;
      flex:1;
    }
    .name{
      font-size:16px;
      font-weight:900;
      color:#c2477d;
      margin-bottom:3px;
    }
    .sub{
      font-size:13px;
      color:#8d7282;
    }
    .go{
      width:32px;
      height:32px;
      border-radius:50%;
      background:#ffe3ef;
      color:#d15e92;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:18px;
      flex:0 0 32px;
    }
    .tag{
      position:absolute;
      top:-9px;
      left:12px;
      padding:4px 8px;
      border-radius:999px;
      background:#ff6ea9;
      color:#fff;
      font-size:11px;
      font-weight:800;
      letter-spacing:.5px;
      box-shadow:0 8px 16px rgba(255,105,180,.24);
    }
    .blink{animation:blink 1s infinite ease-in-out}

    @keyframes blink{
      0%,100%{opacity:1;transform:scale(1)}
      50%{opacity:.45;transform:scale(.96)}
    }
    @keyframes sparkleBlink{
      0%,100%{opacity:1;transform:scale(1) rotate(0deg)}
      50%{opacity:.55;transform:scale(1.08) rotate(8deg)}
    }

    .hidden{display:none}
    .sub-view{animation:fadeUp .18s ease}

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

    .back-btn{
      width:100%;
      border:none;
      border-radius:16px;
      padding:12px 14px;
      margin-bottom:12px;
      background:var(--pink3);
      color:#b14679;
      font-weight:800;
      cursor:pointer;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);
    }

    .sub-title{
      font-size:18px;
      font-weight:900;
      color:#c2477d;
      margin:4px 0 12px;
    }

    .sub-list{
      display:flex;
      flex-direction:column;
      gap:10px;
    }

    .sub-item{
      border:1px solid #f7d7e3;
      border-radius:18px;
      padding:12px 14px;
      background:#fff;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      cursor:pointer;
      transition:.16s ease;
      box-shadow:0 6px 16px rgba(255,105,180,.06);
      text-align:left;
    }
    .sub-item:hover{
      background:#fff7fb;
      transform:translateY(-1px);
    }
    .sub-item-left{
      min-width:0;
      flex:1;
    }
    .sub-item-name{
      font-size:15px;
      font-weight:900;
      color:#c2477d;
      margin-bottom:3px;
    }
    .sub-item-desc{
      font-size:13px;
      color:#8d7282;
      line-height:1.4;
    }
    .sub-go{
      width:32px;
      height:32px;
      border-radius:50%;
      background:#ffe3ef;
      color:#d15e92;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:18px;
      flex:0 0 32px;
    }

    @media (max-width:480px){
      .panel{
        width:min(94vw,390px);
        right:3vw;
        bottom:100px;
      }
      .hint{
        width:min(220px,calc(100vw - 112px));
      }
      .hero h1{font-size:28px}
    }