/* ============================================================
   mimo · simphone.css — 模拟手机的皮肤
   ============================================================ */
:root{
  --bg:#0a0a12;
  --wall1:#1c1430; --wall2:#081020; --wall3:#2b0f2e;
  --ink:#f4f2ff; --ink-dim:#9a95b8;
  --bubble-ai:#1e1c33; --bubble-me:linear-gradient(135deg,#6d4df2,#a05cf0);
  --accent:#8b5cf6;
  --glass:rgba(255,255,255,.07);
  --radius:22px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overscroll-behavior:none}
body{
  background:radial-gradient(1200px 800px at 20% 10%,#181228,#07070d 60%),
             radial-gradient(900px 700px at 85% 90%,#101426,#07070d);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue","Microsoft Yahei",sans-serif;
  color:var(--ink);
  display:flex;align-items:center;justify-content:center;
}

#desk{position:relative;width:100%;height:100dvh;display:flex;align-items:center;justify-content:center}
.desk-hint{
  position:fixed;top:18px;left:50%;transform:translateX(-50%);
  font-size:12px;letter-spacing:.35em;color:#4a4568;text-transform:uppercase;user-select:none;
}

/* ================= 手机机身 ================= */
#phone{
  position:relative;
  width:min(392px,100vw);height:min(846px,100dvh);
  background:#000;
  border-radius:56px;
  padding:10px;
  box-shadow:0 0 0 2px #2a2a35,0 0 0 5px #0b0b10,
             0 30px 90px rgba(0,0,0,.75),0 0 90px rgba(120,80,255,.10);
}
@media (max-width:430px){
  #phone{width:100vw;height:100dvh;border-radius:0;padding:0;box-shadow:none}
  .btn-side{display:none}
  .desk-hint{display:none}
}
/* 侧边按键 */
.btn-side{position:absolute;right:-3px;top:190px;width:3px;height:76px;background:#26262e;border-radius:2px;cursor:pointer}
.btn-side:active{background:#3a3a46}
.btn-side.btn-vol{right:auto;left:-3px;height:110px}

#screen{
  position:relative;width:100%;height:100%;
  border-radius:46px;overflow:hidden;
  background:linear-gradient(160deg,var(--wall1),var(--wall2) 55%,var(--wall3));
  user-select:none;
}
@media (max-width:430px){#screen{border-radius:0}}

/* ================= 状态栏 ================= */
#statusbar{
  position:absolute;top:0;left:0;right:0;height:52px;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 26px 0;pointer-events:none;
  font-size:14px;font-weight:600;
}
.sb-right{display:flex;align-items:center;gap:5px}
.sb-ico{width:17px;height:13px;color:var(--ink)}
#sb-batt{display:flex;align-items:center;gap:4px;font-size:12px}
#sb-batt-body{width:23px;height:11.5px;border:1.5px solid var(--ink-dim);border-radius:3.5px;position:relative;display:inline-block}
#sb-batt-body::after{content:"";position:absolute;right:-4px;top:2.5px;width:2px;height:5px;background:var(--ink-dim);border-radius:1px}
#sb-batt-fill{position:absolute;left:1px;top:1px;bottom:1px;background:#4ade80;border-radius:2px;transition:width .4s;width:82%}
/* 灵动岛 */
.island{
  position:absolute;left:50%;top:11px;transform:translateX(-50%);
  width:112px;height:30px;background:#000;border-radius:20px;z-index:51;
  box-shadow:inset 0 0 3px rgba(255,255,255,.06);
}
.island.pulse::after{
  content:"";position:absolute;left:12px;top:9px;width:12px;height:12px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#a78bfa,#3b1a7a 70%);
  animation:ispulse 1.4s ease-in-out infinite;
}
@keyframes ispulse{50%{opacity:.35;transform:scale(.8)}}

/* ================= 图层系统 ================= */
.layer{
  position:absolute;inset:0;
  display:flex;flex-direction:column;
  opacity:0;pointer-events:none;
  transform:translateY(14px) scale(.985);
  transition:opacity .32s ease,transform .32s ease;
}
.layer.show{opacity:1;pointer-events:auto;transform:none;z-index:10}
/* 聊天类 App 滑入动画更像开屏 */
.layer.app-layer{transform:translateX(60px);}
.layer.app-layer.show{transform:none}
.hide{display:none !important}

/* ================= 锁屏 ================= */
#lock{
  z-index:40;background:linear-gradient(170deg,rgba(10,8,22,.25),rgba(5,5,14,.65));
  align-items:center;justify-content:flex-end;
  padding:0 0 46px;
  touch-action:none;
}
#lock.dragging{transition:none}
.lock-clock{text-align:center;margin-bottom:auto;padding-top:88px;text-shadow:0 2px 30px rgba(0,0,0,.5)}
#lk-time{font-size:82px;font-weight:200;letter-spacing:-2px;line-height:1}
#lk-date{margin-top:8px;font-size:15px;color:#d8d4ee;font-weight:500}
.lock-preview{
  width:calc(100% - 36px);display:flex;gap:12px;align-items:center;
  background:rgba(255,255,255,.10);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-radius:20px;padding:14px 16px;margin-bottom:34px;
  animation:lp-in .6s ease both;
}
@keyframes lp-in{from{opacity:0;transform:translateY(12px)}}
.lp-avatar{font-size:30px;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lp-name{font-weight:600;font-size:14px}
.lp-text{font-size:13px;color:#c9c4e4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}
.lock-unlock{text-align:center;color:#b6b1d6;font-size:12px;cursor:grab}
.lk-bar{width:120px;height:5px;border-radius:3px;background:rgba(255,255,255,.85);margin:0 auto 10px;transition:transform .2s}
#lock.aching .lk-bar{transform:translateY(-56px)}

/* ================= 主屏 ================= */
#home{padding:76px 26px 30px}
.home-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 10px;align-content:start}
.app{position:relative;background:none;border:0;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;font-family:inherit}
.app:active .app-ico{transform:scale(.88)}
.app-ico{
  width:60px;height:60px;border-radius:17px;font-size:30px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .14s;
}
.app-ico.ai{background:linear-gradient(145deg,#7c3aed,#c026d3)}
.app-ico.notes{background:linear-gradient(145deg,#f59e0b,#ef4444)}
.app-ico.settings{background:linear-gradient(145deg,#64748b,#334155)}
.app-ico.about{background:linear-gradient(145deg,#0ea5e9,#2563eb)}
.app-label{font-size:11.5px;color:#e6e2f8;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.badge{
  position:absolute;top:-5px;right:calc(50% - 26px);
  min-width:19px;height:19px;border-radius:10px;background:#ef4444;color:#fff;
  font-size:11px;font-weight:700;line-height:19px;padding:0 5px;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
}
.dock{
  margin-top:auto;display:flex;justify-content:space-around;
  background:var(--glass);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-radius:26px;padding:12px 8px;
}
#home .dock{margin-bottom:8px}
.dock-ico{font-size:26px;background:none;border:0;cursor:pointer;width:54px;height:54px;display:flex;align-items:center;justify-content:center}
.dock-ico:active{transform:scale(.86)}

/* ================= App 通用 ================= */
.app-head{
  display:flex;align-items:center;gap:10px;flex-shrink:0;
  padding:58px 14px 10px;
  background:rgba(8,8,18,.72);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(255,255,255,.06);
  z-index:5;
}
.app-head-title{font-size:17px;font-weight:700;flex:1;text-align:center;font-family:inherit}
.hb{
  width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.09);color:var(--ink);font-size:22px;line-height:1;
  font-family:inherit;flex-shrink:0;display:flex;align-items:center;justify-content:center;
}
.hb:active{background:rgba(255,255,255,.2)}
.hb.ghost{visibility:hidden}
.pad-scroll{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}

/* ================= 聊天 ================= */
.chat-peer{flex:1;display:flex;align-items:center;gap:10px}
.peer-avatar{font-size:24px;width:42px;height:42px;border-radius:50%;background:var(--glass);display:flex;align-items:center;justify-content:center}
.peer-meta{display:flex;flex-direction:column}
#ch-name{font-weight:700;font-size:16px}
#ch-status{color:var(--ink-dim);font-size:11.5px;display:flex;align-items:center;gap:5px}
.dot{width:7px;height:7px;border-radius:50%;background:#4ade80;display:inline-block;animation:blink 2.2s infinite}
@keyframes blink{50%{opacity:.35}}

#chat-scroll{flex:1;overflow-y:auto;padding:16px 14px 10px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:text}
#msg-list{display:flex;flex-direction:column;gap:10px}
.msg{
  max-width:78%;padding:10px 14px;border-radius:19px;
  font-size:15px;line-height:1.55;white-space:pre-wrap;word-break:break-word;
  animation:msg-in .28s ease both;position:relative;cursor:pointer;
}
@keyframes msg-in{from{opacity:0;transform:translateY(8px) scale(.97)}}
.msg .ts{display:block;font-size:10px;opacity:.55;margin-top:4px;text-align:right}
.msg.me{align-self:flex-end;background:var(--bubble-me);color:#fff;border-bottom-right-radius:6px}
.msg.ai{align-self:flex-start;background:var(--bubble-ai);border:1px solid rgba(255,255,255,.05);border-bottom-left-radius:6px}
.msg.ai.streaming::after{
  content:"▍";color:var(--accent);animation:caret .9s steps(1) infinite;margin-left:1px;
}
@keyframes caret{50%{opacity:0}}
.msg.err{align-self:center;background:rgba(239,68,68,.16);border:1px solid rgba(239,68,68,.4);font-size:12.5px;color:#fca5a5;text-align:center}

#chat-scroll{display:flex;flex-direction:column}
#chat-scroll > #msg-list{margin-top:auto}
.typing{align-self:flex-start;display:flex;gap:5px;padding:13px 16px;background:var(--bubble-ai);border-radius:19px;border-bottom-left-radius:6px;margin-top:10px;width:max-content}
.typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-dim);animation:ty 1.2s infinite}
.typing span:nth-child(2){animation-delay:.15s}
.typing span:nth-child(3){animation-delay:.3s}
@keyframes ty{0%,60%,100%{transform:none;opacity:.4}30%{transform:translateY(-5px);opacity:1}}

.inputbar{
  display:flex;gap:9px;padding:10px 12px calc(12px + env(safe-area-inset-bottom));
  background:rgba(8,8,18,.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid rgba(255,255,255,.06);flex-shrink:0;
}
#msg-input{
  flex:1;border:0;border-radius:22px;outline:none;
  background:rgba(255,255,255,.09);color:var(--ink);
  padding:12px 17px;font-size:15px;font-family:inherit;
}
#msg-input::placeholder{color:#6f6a8e}
#msg-input:focus{background:rgba(255,255,255,.14)}
#btn-send{
  width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;
  background:var(--bubble-me);color:#fff;display:flex;align-items:center;justify-content:center;
  transition:transform .15s,opacity .2s;
}
#btn-send:disabled{opacity:.4;transform:scale(.9)}
#btn-send:not(:disabled):active{transform:scale(.9)}

/* ================= 备忘录 ================= */
.note-card{
  background:rgba(255,255,255,.07);border-radius:14px;padding:13px 15px;margin-bottom:10px;
  font-size:14px;line-height:1.5;position:relative;cursor:text;white-space:pre-wrap;
}
.note-card .note-x{
  position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;
  background:#ef4444;color:#fff;border:0;font-size:12px;cursor:pointer;display:none;
  align-items:center;justify-content:center;
}
.note-card:hover .note-x{display:flex}
.empty-hint{text-align:center;color:#57527a;font-size:13px;padding-top:80px;letter-spacing:.1em}

/* ================= 设置 ================= */
.set-group{background:rgba(255,255,255,.055);border-radius:16px;padding:14px;margin-bottom:16px}
.set-title{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.12em;margin-bottom:11px}
.field{display:flex;align-items:center;gap:10px;margin-bottom:10px;position:relative}
.field:last-child{margin-bottom:0}
.field>span{width:82px;flex-shrink:0;font-size:13px;color:var(--ink-dim)}
.field.col{flex-direction:column;align-items:stretch}
.field.col span{width:auto;margin-bottom:6px}
.field input,.field select,.field textarea{
  flex:1;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08);
  border-radius:10px;color:var(--ink);padding:9px 12px;font-size:13.5px;font-family:inherit;outline:none;
  min-width:0;resize:vertical;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}
.field textarea{line-height:1.55}
.eye{position:absolute;right:10px;background:none;border:0;cursor:pointer;font-size:14px;opacity:.6}
.set-row{display:flex;align-items:center;gap:12px;margin-top:4px}
.btn{
  border:0;cursor:pointer;border-radius:11px;padding:10px 20px;
  background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;font-family:inherit;
  transition:transform .13s,filter .2s;
}
.btn:active{transform:scale(.95)}
.btn.danger{background:rgba(239,68,68,.2);color:#fca5a5;border:1px solid rgba(239,68,68,.35)}
.test-result{font-size:12px;color:var(--ink-dim)}
.test-result.ok{color:#4ade80}
.test-result.bad{color:#fca5a5}
.set-foot{text-align:center;font-size:11px;color:#57527a;line-height:1.8;padding-bottom:30px}

/* ================= 关于 ================= */
.about-body{text-align:center;padding-top:60px}
.about-ico{font-size:64px;margin-bottom:12px}
.about-body h2{font-size:26px;font-weight:800;letter-spacing:.5px}
.about-tag{color:var(--ink-dim);font-size:13px;margin:6px 0 22px}
.about-card{
  background:rgba(255,255,255,.05);border-radius:16px;padding:18px;margin:0 30px 26px;
  text-align:left;font-size:13px;line-height:2;color:#c9c4e4;
}

/* ================= 主屏指示条 ================= */
.home-indicator{
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  width:120px;height:5px;border-radius:3px;background:rgba(255,255,255,.75);z-index:60;pointer-events:none;
}

/* ================= Toast ================= */
#toast{
  position:absolute;bottom:70px;left:50%;transform:translateX(-50%);
  background:rgba(20,18,36,.92);color:var(--ink);font-size:13px;
  padding:11px 20px;border-radius:20px;z-index:100;
  box-shadow:0 8px 30px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.08);
  animation:msg-in .25s ease;max-width:86%;text-align:center;
}

/* ================= PWA 横幅 ================= */
#pwa-banner{
  position:fixed;bottom:18px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:10px;z-index:200;
  background:rgba(20,18,36,.95);border:1px solid rgba(255,255,255,.1);
  padding:10px 14px;border-radius:16px;font-size:13px;
  box-shadow:0 10px 40px rgba(0,0,0,.6);
}
#pwa-banner button{border:0;border-radius:9px;padding:6px 12px;font-size:12.5px;cursor:pointer;font-family:inherit}
#btn-pwa-install{background:var(--accent);color:#fff}
#btn-pwa-close{background:rgba(255,255,255,.1);color:var(--ink)}

/* 滚动条隐藏美化 */
::-webkit-scrollbar{width:0;height:0}
