/* 沿用原型 v2 的视觉（原样抽出），app.css 里做网页版适配覆盖 */
  :root{
    --ink:#1d1d1f;
    --sub:#86868b;
    --sub2:#a1a1a6;
    --line:rgba(0,0,0,.075);
    --soft:#f5f5f7;
    --ease:cubic-bezier(.32,.72,0,1);
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{height:100%}
  body{
    margin:0;
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
    color:var(--ink);
    background:
      radial-gradient(900px 620px at 78% -5%, #ffffff, rgba(255,255,255,0) 62%),
      radial-gradient(760px 720px at 4% 105%, #e9ecf2, rgba(233,236,242,0) 68%),
      #f4f5f7;
    -webkit-font-smoothing:antialiased;
    display:flex;align-items:center;justify-content:center;
    gap:74px;padding:40px;min-height:100vh;
  }

  /* ---------- 左侧说明 ---------- */
  .rail{width:300px;flex:none}
  .brand{font-size:32px;font-weight:700;letter-spacing:-1.2px;display:flex;align-items:baseline;gap:9px}
  .brand span{font-size:10.5px;font-weight:700;letter-spacing:.16em;color:var(--sub);text-transform:uppercase}
  .rail-desc{margin:14px 0 24px;font-size:13.5px;line-height:1.78;color:#6e6e73}
  .rail-nav{display:flex;flex-direction:column;gap:1px}
  .rail-nav button{
    all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;
    padding:9px 12px;border-radius:10px;font-size:14px;color:#3a3a3c;
    transition:background .18s ease,box-shadow .18s ease;
  }
  .rail-nav button:hover{background:rgba(0,0,0,.045)}
  .rail-nav button.on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06),0 6px 16px -10px rgba(0,0,0,.3);font-weight:600}
  .rail-nav i{width:5px;height:5px;border-radius:50%;background:#c7c7cc;flex:none;transition:background .18s}
  .rail-nav button.on i{background:var(--ink)}
  .rail-foot{margin-top:28px;padding-top:16px;border-top:1px solid rgba(0,0,0,.07);font-size:11.5px;line-height:1.75;color:#a1a1a6}

  /* ---------- 设备 ---------- */
  .device{
    position:relative;flex:none;width:390px;height:844px;background:#000;border-radius:56px;
    box-shadow:
      0 0 0 10px #141416,
      0 0 0 11.5px #3d3d40,
      0 60px 100px -34px rgba(16,18,26,.5),
      0 24px 48px -24px rgba(16,18,26,.35);
  }
  .viewport{position:absolute;inset:0;border-radius:56px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
  .island{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:116px;height:33px;background:#000;border-radius:20px;z-index:70;pointer-events:none}
  .statusbar{
    position:absolute;top:0;left:0;right:0;height:54px;z-index:60;pointer-events:none;
    display:flex;align-items:center;justify-content:space-between;padding:0 28px;
    font-size:14.5px;font-weight:600;letter-spacing:.2px;color:var(--ink);transition:color .3s ease;
  }
  .st-right{display:flex;align-items:center;gap:6px}
  .st-right svg{display:block;fill:currentColor}
  .viewport.dark .statusbar{color:#fff}

  /* ---------- 屏幕栈 ---------- */
  .stack{position:absolute;inset:0;overflow:hidden}
  .screen{
    position:absolute;inset:0;background:#fff;display:flex;flex-direction:column;
    padding-top:54px;transform:translateX(100%);z-index:2;overflow:hidden;
    transition:transform .46s var(--ease),filter .46s var(--ease);will-change:transform;
  }
  .screen.active{transform:none;z-index:5}
  .screen.prev{transform:translateX(-26%);filter:brightness(.955);z-index:1}
  .screen.instant{transition:none}
  .scroll{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
  .scroll::-webkit-scrollbar{display:none}

  .mono{font-family:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;font-size:9.5px;letter-spacing:.11em;font-variant-numeric:tabular-nums}
  .pdot{width:5px;height:5px;border-radius:50%;background:#34c759;flex:none;animation:pd 2.2s infinite}
  @keyframes pd{0%{box-shadow:0 0 0 0 rgba(52,199,89,.5)}70%{box-shadow:0 0 0 6px rgba(52,199,89,0)}100%{box-shadow:0 0 0 0 rgba(52,199,89,0)}}

  .ghost-btn{
    all:unset;cursor:pointer;width:34px;height:34px;border-radius:50%;
    display:grid;place-items:center;color:var(--ink);background:rgba(0,0,0,.045);transition:background .18s;
  }
  .ghost-btn:hover{background:rgba(0,0,0,.085)}
  .round-btn{
    all:unset;cursor:pointer;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;
    color:var(--ink);background:rgba(255,255,255,.72);backdrop-filter:blur(12px);
    box-shadow:0 1px 4px rgba(0,0,0,.07);transition:transform .15s,background .18s;
  }
  .round-btn:active{transform:scale(.94)}
  .back{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:16px;color:var(--ink);padding:6px 4px;margin-left:-4px}
  .nav{flex:none;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;gap:10px}
  .nav .nt{font-size:16px;font-weight:650;letter-spacing:-.2px}

  /* ---------- 头像 ---------- */
  .avatar{
    flex:none;border-radius:50%;display:grid;place-items:center;font-weight:600;
    color:rgba(29,29,31,.7);background:linear-gradient(155deg,var(--c1,#e9e9ee),var(--c2,#d6d6de));
    width:44px;height:44px;font-size:17px;letter-spacing:.5px;position:relative;
    box-shadow:inset 0 0 0 .5px rgba(0,0,0,.05);
  }
  .avatar .dot-on{position:absolute;width:9px;height:9px;border-radius:50%;background:#0a84ff;right:-1px;bottom:-1px;box-shadow:0 0 0 2px #fff}
  .avatar.xs{width:30px;height:30px;font-size:12px}
  .avatar.sm{width:36px;height:36px;font-size:14px}
  .avatar.lg{width:52px;height:52px;font-size:20px}
  .avatar.xl{width:84px;height:84px;font-size:32px;font-weight:650}
  .avatar.me{--c1:#e4e5ec;--c2:#cdced9;font-size:15px}
  .stackav{display:flex;flex:none}
  .stackav .avatar{border:2px solid #fff;margin-left:-15px}
  .stackav .avatar:first-child{margin-left:0}

  /* ---------- 像素风头像 ---------- */
  .avatar{padding:0;overflow:visible}
  .avatar svg{width:100%;height:100%;display:block;border-radius:50%}
  .avatar.me svg{display:none}
  .avatar.rounded{border-radius:15px}
  .avatar.rounded svg{border-radius:15px}
  .avatar.xs{border-radius:50%}
  .pix-shake svg{image-rendering:pixelated}

  /* ================= 首页：分身列表 ================= */
  .h-head{flex:none;display:flex;align-items:center;gap:8px;padding:8px 18px 14px}
  .h-head .spacer{flex:1}
  .icobtn{all:unset;cursor:pointer;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background .18s}
  .icobtn:active{background:rgba(0,0,0,.05)}
  .add-btn{all:unset;cursor:pointer;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;transition:transform .16s}
  .add-btn:active{transform:scale(.92)}

  .list{padding:2px 20px 34px}
  .row{display:flex;gap:15px;padding:14px 0;cursor:pointer;transition:opacity .16s;align-items:flex-start}
  .row:active{opacity:.5}
  .r-main{flex:1;min-width:0}
  .r-top{display:flex;align-items:center;gap:6px;height:20px}
  .r-name{font-size:15px;font-weight:600;letter-spacing:-.25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .r-time{margin-left:auto;font-size:10.5px;color:#b4b4ba;font-variant-numeric:tabular-nums;flex:none}
  .r-prev{position:relative;font-size:13px;line-height:1.5;color:#9a9aa0;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .r-prev.un{color:#3f3f42;padding-right:16px}
  .r-tag{display:inline-flex;align-items:center;gap:4px;height:16px;line-height:1;margin-left:3px;font-size:9px;font-weight:600;color:#5b6bff;background:rgba(91,107,255,.08);padding:0 6px;border-radius:5px;white-space:nowrap;flex:none}
  .r-tag.green{color:#1f9d55;background:rgba(31,157,85,.09)}
  .r-tag.gray{color:#6e6e73;background:rgba(0,0,0,.05)}
  .r-meta{font-size:10px;color:#b4b4ba}
  .r-dot{position:absolute;right:0;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:#0a84ff}
  .udot{width:6px;height:6px;border-radius:50%;background:#0a84ff;flex:none;margin-right:1px}
  .typing{display:flex;gap:3px;align-items:center;height:12px}
  .typing i{width:4px;height:4px;border-radius:50%;background:#b0b0b6;animation:blink 1.2s infinite}
  .typing i:nth-child(2){animation-delay:.18s}
  .typing i:nth-child(3){animation-delay:.36s}
  @keyframes blink{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}

  /* 列表里的特殊行：直播 / 课程 */
  .r-tile{width:48px;height:48px;border-radius:15px;flex:none;display:grid;place-items:center;position:relative;overflow:hidden}
  .r-tile.live{background:#0b0c10}
  .r-tile.live .lb{display:flex;align-items:flex-end;gap:2.5px;height:18px}
  .r-tile.live .lb i{width:3px;height:100%;background:#ff3b5c;border-radius:2px;transform-origin:bottom;animation:nw 1.1s ease-in-out infinite}
  .r-tile .cdot{position:absolute;top:5px;right:5px;width:5px;height:5px;border-radius:50%;background:#ff3b5c;animation:pd2 1.6s infinite}
  .r-tile.course{background:linear-gradient(150deg,#eef1ff,#dfe4ff);color:#5b6bff}
  .r-tile .num{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:16px;font-weight:700;letter-spacing:-.6px}
  .livepill{display:inline-flex;align-items:center;gap:4px;font-size:8px;font-weight:800;letter-spacing:.14em;color:#ff3b5c;background:rgba(255,59,92,.1);padding:3px 6px;border-radius:5px;flex:none}
  .livepill i{width:4px;height:4px;border-radius:50%;background:#ff3b5c;animation:pd2 1.5s infinite}
  @keyframes pd2{0%{box-shadow:0 0 0 0 rgba(255,59,92,.6)}70%{box-shadow:0 0 0 6px rgba(255,59,92,0)}100%{box-shadow:0 0 0 0 rgba(255,59,92,0)}}

  .r-avwrap{width:48px;flex:none;height:48px;display:flex;align-items:center}

  /* ================= 聊天 ================= */
  .chat-nav{height:56px;border-bottom:.5px solid var(--line)}
  .chat-id{display:flex;align-items:center;gap:9px;flex:1;justify-content:center}
  #chat-av{cursor:pointer;transition:transform .16s var(--ease)}
  #chat-av:active{transform:scale(.92)}
  #chat-name{cursor:pointer}
  .chat-name{font-size:14px;font-weight:650;letter-spacing:-.2px;line-height:1.25}
  .chat-sub{font-size:10.5px;color:var(--sub);line-height:1.4;display:flex;align-items:center;gap:4px}
  .chat-body{flex:1;overflow-y:auto;padding:16px 16px 6px;display:flex;flex-direction:column;gap:10px;scrollbar-width:none}
  .chat-body::-webkit-scrollbar{display:none}
  .daystamp{align-self:center;font-size:10px;color:var(--sub2);margin-bottom:2px;letter-spacing:.02em}
  .sysnote{align-self:center;font-size:10.5px;color:var(--sub2);background:rgba(0,0,0,.035);padding:5px 12px;border-radius:999px;margin-bottom:2px}
  .msg{display:flex;gap:8px;max-width:88%;animation:pop .34s var(--ease)}
  @keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
  .msg.kol{align-self:flex-start;align-items:flex-end}
  .msg.me{align-self:flex-end}
  .bubble{font-size:14.5px;line-height:1.68;padding:11px 14px;border-radius:18px;background:var(--soft);color:#1d1d1f;border-bottom-left-radius:6px}
  .msg.me .bubble{background:var(--ink);color:#fff;border-bottom-left-radius:18px;border-bottom-right-radius:6px}
  .msg .avatar{align-self:flex-end}

  /* 群聊 */
  .gmsg{display:flex;gap:8px;max-width:90%;align-items:flex-start;animation:pop .34s var(--ease)}
  .gname{font-size:10.5px;color:var(--sub);margin:0 0 4px 2px;display:flex;align-items:center;gap:5px}
  .gname b{font-weight:650;color:#48484a}
  .gname .mono{font-size:8px;color:#c0c0c6}

  /* 任务卡 */
  .task{
    align-self:stretch;margin:2px 0 2px 44px;border-radius:16px;background:#fff;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.07),0 8px 20px -18px rgba(0,0,0,.6);padding:13px 14px;
    animation:pop .4s var(--ease);
  }
  .task-top{display:flex;align-items:center;justify-content:space-between}
  .task-top .mono{color:#a0a0a6;font-size:8.5px}
  .task-ok{width:16px;height:16px;border-radius:50%;background:#34c759;color:#fff;display:grid;place-items:center;font-size:9px}
  .task-title{font-size:13px;font-weight:650;letter-spacing:-.2px;margin-top:8px}
  .task-grid{display:flex;gap:18px;margin-top:10px}
  .task-cell{flex:1}
  .task-cell span{display:block;font-size:9.5px;color:var(--sub2)}
  .task-cell b{display:block;font-size:17px;font-weight:700;letter-spacing:-.4px;margin-top:2px;font-variant-numeric:tabular-nums}
  .task-cell b.up{color:#d2402b}
  .task-file{display:flex;align-items:center;gap:6px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(0,0,0,.06);font-size:11px;color:#5b6bff}

  /* 对话页内容卡：观点 / 课程 / 提醒 */
  .ccard{
    align-self:stretch;margin:2px 0 2px 44px;border-radius:16px;background:#fff;padding:13px 14px;
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.07),0 8px 20px -18px rgba(0,0,0,.6);animation:pop .4s var(--ease);
  }
  .cc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .cc-label{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:8.5px;letter-spacing:.11em;color:#a0a0a6}
  .cc-title{font-size:13.5px;font-weight:650;letter-spacing:-.2px;line-height:1.55;margin-top:8px}
  .cc-body{font-size:12.5px;line-height:1.72;color:#5c5c61;margin-top:6px}
  .cc-foot{display:flex;align-items:center;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid rgba(0,0,0,.06);font-size:10.5px;color:#a0a0a6}
  .cc-cta{all:unset;margin-left:auto;cursor:pointer;font-size:11px;font-weight:650;color:#5b6bff;padding:3px 0}
  .cc-cta:active{opacity:.6}
  .cc-conf{font-size:9.5px;font-weight:650;color:#1f9d55;background:rgba(31,157,85,.09);padding:3px 7px;border-radius:5px}
  .ccourse{
    align-self:stretch;margin:2px 0 2px 44px;border-radius:16px;padding:13px 14px;animation:pop .4s var(--ease);
    background:linear-gradient(150deg,#f5f7ff,#e9eeff);box-shadow:inset 0 0 0 1px rgba(91,107,255,.15);
  }
  .ccourse .cc-title{color:#2f3a7a}
  .ccourse .cc-label{color:#8f9ad6}
  .cc-prog{display:flex;align-items:center;gap:9px;margin-top:11px}
  .cc-bar{flex:1;height:3px;border-radius:3px;background:rgba(91,107,255,.2);overflow:hidden}
  .cc-bar i{display:block;height:100%;background:#5b6bff;border-radius:3px}
  .cc-remind{
    align-self:stretch;margin:2px 0 2px 44px;border-radius:14px;padding:11px 13px;background:rgba(0,0,0,.035);
    display:flex;align-items:center;gap:9px;animation:pop .4s var(--ease);font-size:12px;color:#48484a;line-height:1.5;
  }
  .cc-remind .ic{width:15px;height:15px;flex:none;color:#8e8e93}
  .flist{margin-top:9px}
  .fitem{display:flex;gap:10px;padding:10px 0;border-top:1px solid rgba(0,0,0,.055)}
  .fitem:first-child{border-top:0}
  .ftime{flex:none;width:38px;color:#b4b4ba;font-size:9px;padding-top:2px}
  .fmain{flex:1;min-width:0}
  .ftext{font-size:13px;line-height:1.55;color:#1d1d1f;font-weight:500}
  .fmeta{font-size:10px;color:#a1a1a6;margin-top:4px}

  /* 首页：分区标签 + 功能 Agent 图标 */
  .sect{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:9px;letter-spacing:.14em;color:#c0c0c6;font-weight:700;padding:18px 0 2px}
  .scroll>.sect{padding-left:18px;padding-right:18px}

  .chips{flex:none;display:flex;gap:7px;padding:8px 16px 4px;overflow-x:auto;scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .chip{all:unset;flex:none;cursor:pointer;font-size:12px;color:#48484a;padding:7px 13px;border-radius:999px;background:var(--soft);white-space:nowrap;transition:background .18s}
  .chip:active{background:#e8e8ed}
  .composer{flex:none;display:flex;align-items:center;gap:8px;padding:8px 14px 26px;border-top:.5px solid var(--line);background:#fff}
  .cbtn{all:unset;flex:none;cursor:pointer;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:#48484a}
  .composer input{flex:1;min-width:0;border:0;outline:0;background:var(--soft);border-radius:999px;padding:10px 15px;font-size:14px;font-family:inherit;color:var(--ink)}
  .composer input::placeholder{color:var(--sub2)}
  .send{all:unset;flex:none;cursor:pointer;width:32px;height:32px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;transition:transform .16s}
  .send:active{transform:scale(.9)}

  /* 群成员条 */
  .members{flex:none;display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:.5px solid var(--line);background:#fbfbfd}
  .members .m{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#6e6e73}
  .members .m .avatar{width:22px;height:22px;font-size:9px}
  .members .mk{margin-left:auto;font-size:10px;color:var(--sub2)}

  /* ================= 直播 ================= */
  .screen[data-screen="live"]{padding-top:0;background:#08090c;color:#fff}
  .live-wrap{
    position:absolute;inset:0;display:flex;flex-direction:column;padding:60px 0 0;
    background:
      radial-gradient(420px 340px at 50% 4%, rgba(255,59,92,.18), rgba(255,59,92,0) 70%),
      radial-gradient(500px 400px at 12% 40%, rgba(91,107,255,.18), rgba(91,107,255,0) 72%),
      #08090c;
  }
  .live-top{flex:none;display:flex;align-items:center;gap:8px;padding:0 18px;height:40px}
  .live-top .mono{color:rgba(255,255,255,.4)}
  .live-close{margin-left:auto;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;cursor:pointer;color:#fff}
  .live-topic{flex:none;padding:14px 20px 0;font-size:21px;font-weight:700;letter-spacing:-.5px;line-height:1.45}
  .live-sub{flex:none;padding:8px 20px 0;font-size:11.5px;color:rgba(255,255,255,.48);line-height:1.6}
  .live-speakers{flex:none;display:flex;justify-content:space-between;padding:20px 20px 0;gap:8px}
  .spk{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer}
  .spk .avatar{width:52px;height:52px;font-size:19px;transition:transform .3s var(--ease),box-shadow .3s}
  .spk.live .avatar{transform:scale(1.08);box-shadow:0 0 0 2px rgba(255,59,92,.85),0 0 24px -4px rgba(255,59,92,.7)}
  .spk .nm{font-size:10.5px;color:rgba(255,255,255,.55)}
  .spk.live .nm{color:#fff;font-weight:650}
  .spk .sbars{display:flex;align-items:flex-end;gap:2px;height:12px;opacity:0;transition:opacity .3s}
  .spk.live .sbars{opacity:1}
  .spk .sbars i{width:2px;height:100%;background:#ff3b5c;border-radius:2px;transform-origin:bottom;animation:nw 1s ease-in-out infinite}
  @keyframes nw{0%,100%{transform:scaleY(.2);opacity:.5}50%{transform:scaleY(1);opacity:1}}

  .danmaku{flex:1;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;padding:14px 20px 0;position:relative}
  .danmaku::before{content:"";position:absolute;left:0;right:0;top:0;height:60px;background:linear-gradient(180deg,#08090c,rgba(8,9,12,0));pointer-events:none;z-index:2}
  .dm{font-size:12px;line-height:1.5;color:rgba(255,255,255,.62);animation:dmin .4s var(--ease)}
  @keyframes dmin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .dm b{color:rgba(255,255,255,.92);font-weight:600}
  .dm.me{color:#fff;background:rgba(255,255,255,.09);padding:7px 11px;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
  .dm.answer b{color:#ff8fa3}

  .live-bar{flex:none;display:flex;align-items:center;gap:9px;padding:12px 16px 30px;border-top:1px solid rgba(255,255,255,.08)}
  .live-bar input{
    flex:1;min-width:0;border:0;outline:0;background:rgba(255,255,255,.09);border-radius:999px;
    padding:10px 15px;font-size:13px;color:#fff;font-family:inherit;
  }
  .live-bar input::placeholder{color:rgba(255,255,255,.35)}
  .lact{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;cursor:pointer;flex:none}

  /* ================= 添加分身 ================= */
  .search{
    flex:none;display:flex;align-items:center;gap:8px;margin:4px 18px 14px;padding:10px 13px;border-radius:13px;background:var(--soft);
  }
  .search input{flex:1;border:0;outline:0;background:none;font-size:13.5px;font-family:inherit;color:var(--ink)}
  .search input::placeholder{color:var(--sub2)}
  .filters{display:flex;gap:7px;padding:0 18px 14px;overflow-x:auto;scrollbar-width:none;flex:none}
  .filters::-webkit-scrollbar{display:none}
  .filters button{all:unset;cursor:pointer;font-size:12px;padding:6px 13px;border-radius:999px;background:var(--soft);color:#48484a;white-space:nowrap;transition:all .2s}
  .filters button.on{background:var(--ink);color:#fff;font-weight:600}

  .arow{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid rgba(0,0,0,.05)}
  .arow .a-main{flex:1;min-width:0}
  .arow .a-name{font-size:14px;font-weight:650;letter-spacing:-.2px;display:flex;align-items:center;gap:5px}
  .arow .a-desc{font-size:11.5px;color:var(--sub);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .arow .a-stat{font-size:9.5px;color:var(--sub2);margin-top:4px}
  .follow{
    all:unset;flex:none;cursor:pointer;font-size:12px;font-weight:600;padding:7px 15px;border-radius:999px;
    background:var(--ink);color:#fff;transition:all .2s;
  }
  .follow.on{background:var(--soft);color:var(--sub)}
  .follow:active{transform:scale(.96)}

  /* ================= 添加 Agent：图标 ================= */
  .at-ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;flex:none}
  .at-ic.dashed{background:rgba(0,0,0,.03);box-shadow:inset 0 0 0 1px rgba(0,0,0,.09)}
  .arow.new-agent{background:#fcfcfe}

  /* ================= 我的 ================= */
  .me-head{padding:6px 20px 0;display:flex;align-items:center;gap:14px}
  .me-name{font-size:20px;font-weight:700;letter-spacing:-.4px}
  .me-sub{font-size:11.5px;color:var(--sub);margin-top:4px}
  .me-stats{display:flex;margin:22px 20px 0;padding:14px 0;border-top:1px solid rgba(0,0,0,.055);border-bottom:1px solid rgba(0,0,0,.055)}
  .me-stats>div{flex:1;text-align:center;position:relative}
  .me-stats>div+div::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:rgba(0,0,0,.06)}
  .me-stats b{display:block;font-size:17px;font-weight:700;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
  .me-stats span{display:block;font-size:10.5px;color:var(--sub);margin-top:3px}
  .mgroup{margin:20px 18px 0;border-radius:16px;background:var(--soft);overflow:hidden}
  .mrow{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid rgba(0,0,0,.05);cursor:pointer;font-size:14px}
  .mrow:last-child{border-bottom:0}
  .mrow:active{background:#ebebef}
  .mrow .mi{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:#fff;flex:none}
  .mrow .ml{flex:1}
  .mrow .mv{font-size:11.5px;color:var(--sub)}
  .switch{width:40px;height:24px;border-radius:12px;background:#d6d6dc;position:relative;transition:background .24s;flex:none;cursor:pointer}
  .switch::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .24s var(--ease)}
  .switch.on{background:#34c759}
  .switch.on::after{transform:translateX(16px)}
  .me-card{
    margin:20px 18px 0;border-radius:20px;padding:17px;color:#fff;
    background:linear-gradient(145deg,#26272d,#131418);position:relative;overflow:hidden;cursor:pointer;
  }
  .me-card::after{content:"";position:absolute;right:-30px;bottom:-50px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(120,150,255,.42),rgba(120,150,255,0) 70%)}
  .mc-label{font-size:10px;color:rgba(255,255,255,.5);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
  .mc-title{font-size:16px;font-weight:650;letter-spacing:-.3px;margin-top:8px}
  .mc-sub{font-size:11.5px;color:rgba(255,255,255,.5);margin-top:6px;line-height:1.55}

  /* ================= 分身详情 ================= */
  .screen[data-screen="profile"]{padding-top:0}
  .p-head{flex:none;padding:54px 20px 0;background:linear-gradient(180deg,#eef1f6 0%,#f7f8fa 52%,#ffffff 100%)}
  .p-nav{display:flex;align-items:center;justify-content:space-between;height:40px}
  .p-id{display:flex;flex-direction:column;align-items:center;text-align:center;margin-top:8px}
  .p-name{font-size:25px;font-weight:700;letter-spacing:-.7px;margin-top:13px;display:flex;align-items:center;gap:6px}
  .p-title{font-size:12px;color:var(--sub);margin-top:5px}
  .p-tags{display:flex;gap:6px;margin-top:11px;flex-wrap:wrap;justify-content:center}
  .p-tag{font-size:11px;color:#5a5a5f;background:rgba(0,0,0,.045);padding:4px 10px;border-radius:999px}
  .p-stats{display:flex;margin:18px -20px 0;padding:13px 0;border-top:1px solid rgba(0,0,0,.055);border-bottom:1px solid rgba(0,0,0,.055)}
  .p-stats>div{flex:1;text-align:center;position:relative}
  .p-stats>div+div::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1px;background:rgba(0,0,0,.06)}
  .p-stats b{display:block;font-size:15.5px;font-weight:650;letter-spacing:-.3px}
  .p-stats span{display:block;font-size:10.5px;color:var(--sub);margin-top:3px}
  .p-actions{display:flex;gap:9px;padding:15px 0 13px}
  .btn-dark{
    all:unset;flex:1.5;cursor:pointer;text-align:center;background:var(--ink);color:#fff;
    font-size:14px;font-weight:600;padding:13px 0;border-radius:14px;
    display:flex;align-items:center;justify-content:center;gap:7px;transition:transform .16s;
  }
  .btn-light{
    all:unset;flex:1;cursor:pointer;text-align:center;background:rgba(255,255,255,.9);color:var(--ink);
    font-size:14px;font-weight:600;padding:13px 0;border-radius:14px;
    box-shadow:0 0 0 1px rgba(0,0,0,.07);display:flex;align-items:center;justify-content:center;gap:6px;transition:transform .16s;
  }
  .btn-dark:active,.btn-light:active{transform:scale(.975)}
  .seg{display:flex;flex:none;padding:0 20px;gap:22px;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:2}
  .seg button{all:unset;cursor:pointer;font-size:14px;color:var(--sub);font-weight:500;padding:13px 0 12px;position:relative;transition:color .2s}
  .seg button.on{color:var(--ink);font-weight:650}
  .seg button.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink);border-radius:2px}
  .panel{display:none;padding:18px 20px 40px}
  .panel.on{display:block;animation:fade .32s ease}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .bio{font-size:13.5px;line-height:1.82;color:#3a3a3c;margin:0}
  .bio em{font-style:normal;color:var(--sub);font-size:11.5px;display:block;margin-top:12px;line-height:1.7}
  .sub-h{font-size:11px;font-weight:650;color:var(--sub);letter-spacing:.05em;margin:20px 0 10px;text-transform:uppercase}

  .voice-card{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;background:var(--soft)}
  .play-btn{all:unset;flex:none;cursor:pointer;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;transition:transform .16s}
  .play-btn:active{transform:scale(.93)}
  .play-btn .ic-pause{display:none}
  .play-btn.playing .ic-play{display:none}
  .play-btn.playing .ic-pause{display:block}
  .wave{flex:1;height:32px;display:flex;align-items:center;gap:2.5px;cursor:pointer;min-width:0}
  .wave i{flex:1;min-width:1.5px;background:rgba(0,0,0,.16);border-radius:2px;transition:background .16s}
  .wave i.lit{background:var(--ink)}
  .voice-dur{flex:none;font-size:11px;color:var(--sub);font-variant-numeric:tabular-nums}

  .crow{display:flex;gap:13px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);cursor:pointer}
  .crow:last-child{border-bottom:0}
  .crow:active{opacity:.6}
  .c-thumb{flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(155deg,var(--c1,#eaeaf0),var(--c2,#d8d8e0));font-size:19px;font-weight:600;color:rgba(29,29,31,.62)}
  .c-main{flex:1;min-width:0}
  .c-title{font-size:13.5px;font-weight:600;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .c-sub{font-size:11px;color:var(--sub);margin-top:4px}
  .bar{height:3px;border-radius:3px;background:rgba(0,0,0,.07);margin-top:8px;overflow:hidden}
  .bar i{display:block;height:100%;border-radius:3px;background:var(--ink)}

  .fcard{border:1px solid var(--line);border-radius:18px;padding:14px;margin:0 0 11px}
  .fc-head{display:flex;align-items:center;gap:9px}
  .fc-name{font-size:13px;font-weight:650}
  .fc-time{font-size:10.5px;color:var(--sub2);margin-top:2px}
  .fc-text{font-size:13px;line-height:1.72;color:#2b2b2d;margin:10px 0 0}
  .live-soon{display:flex;align-items:center;gap:11px;padding:13px;border-radius:16px;background:#0a0b0f;color:#fff;margin-bottom:16px;cursor:pointer}
  .ls-main{flex:1}
  .ls-label{font-size:8.5px;letter-spacing:.14em;color:rgba(255,255,255,.45);font-weight:700}
  .ls-title{font-size:13px;font-weight:650;margin-top:4px}
  .ls-time{font-size:10.5px;color:rgba(255,255,255,.45);margin-top:3px}

  /* ================= 课程页 ================= */
  .course-hero{flex:none;padding:4px 20px 0}
  .ch-label{font-size:9px;letter-spacing:.16em;color:var(--sub2);font-weight:700}
  .ch-title{font-size:23px;font-weight:700;letter-spacing:-.6px;line-height:1.35;margin-top:9px}
  .ch-meta{font-size:11.5px;color:var(--sub);margin-top:8px}
  .player{
    margin:20px;border-radius:22px;padding:18px;background:linear-gradient(150deg,#1a1b21,#0c0d11);color:#fff;
    position:relative;overflow:hidden;
  }
  .player::after{content:"";position:absolute;right:-60px;top:-70px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(120,150,255,.35),rgba(120,150,255,0) 70%)}
  .pl-top{display:flex;align-items:center;justify-content:space-between;position:relative}
  .pl-top .mono{color:rgba(255,255,255,.4)}
  .pl-controls{display:flex;align-items:center;gap:12px;margin-top:16px;position:relative}
  .pl-play{width:44px;height:44px;border-radius:50%;background:#fff;color:#0d0e11;display:grid;place-items:center;cursor:pointer;flex:none}
  .pl-wave{flex:1;height:30px;display:flex;align-items:center;gap:2px}
  .pl-wave i{flex:1;background:rgba(255,255,255,.22);border-radius:2px;transition:background .2s}
  .pl-wave i.lit{background:#fff}
  .pl-time{font-size:10.5px;color:rgba(255,255,255,.5);margin-top:12px;display:flex;justify-content:space-between;position:relative;font-variant-numeric:tabular-nums}
  .srow{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line);font-size:13.5px;cursor:pointer}
  .srow .n{width:18px;font-size:10.5px;color:var(--sub2);font-variant-numeric:tabular-nums}
  .srow .t{flex:1}
  .srow.now .t{font-weight:650}
  .srow.now .n{color:var(--ink);font-weight:650}
  .course-foot{flex:none;padding:12px 20px 30px;border-top:.5px solid var(--line);display:flex;gap:9px}
  .btn-check{all:unset;flex:1;cursor:pointer;text-align:center;background:var(--ink);color:#fff;font-size:13.5px;font-weight:600;padding:13px 0;border-radius:14px}
  .btn-check.done{background:#e8f7ed;color:#1f9d55}
  .btn-note{all:unset;flex:none;width:52px;cursor:pointer;text-align:center;background:var(--soft);color:#48484a;border-radius:14px;display:grid;place-items:center}

  /* ================= 创建分身 ================= */
  .create-wrap{padding:4px 20px 0}
  .ch-num{display:flex;gap:7px;margin:14px 0 4px}
  .ch-num div{flex:1;height:3px;border-radius:3px;background:rgba(0,0,0,.08);transition:background .3s}
  .ch-num div.on{background:var(--ink)}
  .step-title{font-size:23px;font-weight:700;letter-spacing:-.6px;margin:16px 0 0;line-height:1.35}
  .step-desc{font-size:12.5px;color:var(--sub);line-height:1.75;margin:9px 0 0}
  .uploads{margin:18px 0 0;border-radius:16px;background:var(--soft);overflow:hidden}
  .urow{display:flex;align-items:center;gap:11px;padding:13px 15px;border-bottom:1px solid rgba(0,0,0,.05);font-size:12.5px}
  .urow:last-child{border-bottom:0}
  .urow .dot{width:7px;height:7px;border-radius:50%;background:#c7c7cc;flex:none}
  .urow.done .dot{background:#34c759}
  .urow .u-main{flex:1;color:#3a3a3c}
  .urow .u-val{font-size:10.5px;color:var(--sub2)}
  .rec-area{display:flex;flex-direction:column;align-items:center;padding:22px 0 0}
  .rec-time{font-size:34px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums}
  .rec-hint{font-size:11.5px;color:var(--sub);margin-top:6px}
  .live-wave{display:flex;align-items:center;gap:3px;height:36px;margin:18px 0 4px;width:100%}
  .live-wave i{flex:1;background:rgba(0,0,0,.14);border-radius:2px;height:20%}
  .recording .live-wave i{animation:nw .9s ease-in-out infinite;background:var(--ink);opacity:.85}
  .rec-btn{all:unset;cursor:pointer;margin-top:16px;width:72px;height:72px;border-radius:50%;background:var(--ink);display:grid;place-items:center;transition:transform .18s}
  .rec-btn:active{transform:scale(.95)}
  .rec-btn::after{content:"";width:21px;height:21px;border-radius:50%;background:#fff;transition:all .22s}
  .recording .rec-btn{background:#ff3b30}
  .recording .rec-btn::after{width:17px;height:17px;border-radius:4px}

  /* ================= 通话 ================= */
  .screen[data-screen="call"]{padding-top:0;background:#0d0e11;color:#fff}
  .call-wrap{
    position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding:96px 30px 44px;
    background:
      radial-gradient(420px 420px at 50% 12%, rgba(84,104,255,.34), rgba(84,104,255,0) 72%),
      radial-gradient(500px 400px at 50% 108%, rgba(255,255,255,.08), rgba(255,255,255,0) 70%),#0d0e11;
  }
  .call-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:600}
  .call-pulse{position:relative;margin-top:32px;display:grid;place-items:center}
  .call-pulse .ring{position:absolute;width:132px;height:132px;border-radius:50%;border:1px solid rgba(255,255,255,.28);animation:ripple 2.6s infinite var(--ease)}
  .call-pulse .ring:nth-child(2){animation-delay:.9s}
  .call-pulse .ring:nth-child(3){animation-delay:1.8s}
  @keyframes ripple{0%{transform:scale(.92);opacity:.7}100%{transform:scale(1.85);opacity:0}}
  .call-avatar{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;font-size:48px;font-weight:600;color:rgba(255,255,255,.9);background:linear-gradient(155deg,rgba(255,255,255,.24),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px);overflow:hidden}
  .call-avatar svg{width:100%;height:100%;display:block;border-radius:50%}
  .call-name{font-size:26px;font-weight:700;letter-spacing:-.6px;margin-top:26px}
  .call-status{font-size:13px;color:rgba(255,255,255,.55);margin-top:8px;font-variant-numeric:tabular-nums}
  .call-wave{display:flex;align-items:center;gap:3px;height:44px;margin-top:28px;width:210px}
  .call-wave i{flex:1;border-radius:2px;background:rgba(255,255,255,.5);height:12%;animation:nw 1.15s ease-in-out infinite}
  .call-actions{display:flex;gap:26px;margin-top:auto}
  .cact{display:flex;flex-direction:column;align-items:center;gap:9px;cursor:pointer}
  .cact span{font-size:10.5px;color:rgba(255,255,255,.55)}
  .cact .circle{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);color:#fff;transition:background .2s,transform .16s}
  .cact:active .circle{transform:scale(.93)}
  .cact.on .circle{background:#fff;color:#1d1d1f}
  .cact.end .circle{background:#ff3b30}
  .call-foot{font-size:10.5px;color:rgba(255,255,255,.3);margin-top:24px;text-align:center;line-height:1.6}

  /* ---------- 其他 ---------- */
  .homebar{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:134px;height:5px;border-radius:3px;background:#1d1d1f;z-index:45;transition:background .3s}
  .viewport.dark .homebar{background:#fff}
  .toast{
    position:absolute;left:50%;bottom:44px;transform:translate(-50%,14px);
    background:rgba(29,29,31,.92);color:#fff;font-size:12.5px;padding:10px 16px;border-radius:999px;
    z-index:80;opacity:0;pointer-events:none;transition:all .32s var(--ease);white-space:nowrap;backdrop-filter:blur(10px);
  }
  .toast.show{opacity:1;transform:translate(-50%,0)}

  /* ---------- 底部卡片：分身档案 ---------- */
  .sheet-mask{position:absolute;inset:0;z-index:74;background:rgba(20,21,26,.32);opacity:0;pointer-events:none;transition:opacity .34s var(--ease)}
  .sheet-mask.open{opacity:1;pointer-events:auto}
  .sheet{
    position:absolute;left:0;right:0;bottom:0;z-index:75;background:#fff;border-radius:24px 24px 0 0;
    transform:translateY(102%);transition:transform .42s var(--ease);padding:8px 20px 30px;
    max-height:86%;overflow-y:auto;scrollbar-width:none;box-shadow:0 -12px 40px -18px rgba(0,0,0,.4);
  }
  .sheet::-webkit-scrollbar{display:none}
  .sheet.open{transform:none}
  .sheet-grab{width:36px;height:5px;border-radius:3px;background:rgba(0,0,0,.12);margin:0 auto 12px}
  .sheet-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:4px 0 2px}
  .sheet-nm{font-size:19px;font-weight:700;letter-spacing:-.4px;margin-top:12px}
  .sheet-tt{font-size:11.5px;color:var(--sub);margin-top:5px}
  .sheet-h{font-size:9.5px;letter-spacing:.13em;color:#b4b4ba;font-weight:700;margin:20px 0 8px;font-family:ui-monospace,Menlo,monospace}
  .sheet-rows{border-radius:14px;background:var(--soft);overflow:hidden}
  .sheet-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.05);font-size:13px}
  .sheet-row:last-child{border-bottom:0}
  .sheet-row .sk{color:var(--sub);flex:none;min-width:58px}
  .sheet-row .sv{flex:1;text-align:right;color:#2b2b2d}
  .sheet-tags{display:flex;gap:6px;flex-wrap:wrap}
  .sheet-btn{all:unset;display:block;cursor:pointer;text-align:center;margin-top:18px;background:var(--ink);color:#fff;
    font-size:14px;font-weight:600;padding:13px 0;border-radius:14px}
  .sheet-btn.ghost{background:var(--soft);color:var(--ink);margin-top:9px}
  .av-tappable{cursor:pointer;transition:transform .18s var(--ease)}
  .av-tappable:active{transform:scale(.94)}

