/* 各 Tab 通用 + 专属样式 */
.appbar{display:flex;align-items:center;justify-content:space-between;padding:calc(8px + var(--safe-top)) 16px 6px;}
.appbar .ttl{font-size:21px;font-weight:600;}
.ic{width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;}
.ic svg{width:18px;height:18px;stroke:var(--tx);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.note{margin:0 16px 12px;background:var(--ind-ll);border:1px solid var(--ind-l);border-radius:12px;padding:9px 12px;font-size:12px;color:var(--ind-d);display:flex;gap:7px;align-items:flex-start;}

/* ===== 我的 ===== */
.profile-card{margin:4px 16px 0;padding:16px;display:flex;align-items:center;gap:13px;}
.pavatar{width:54px;height:54px;border-radius:50%;background:var(--ind);color:#fff;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:600;flex-shrink:0;}
.pname{font-size:17px;font-weight:600;}
.psub{font-size:12px;color:var(--tx2);margin-top:3px;}
.mstats{display:flex;margin:10px 16px 0;padding:14px 0;}
.mstat{flex:1;text-align:center;}
.mstat .n{font-size:21px;font-weight:600;line-height:1;}
.mstat .l{font-size:11.5px;color:var(--tx2);margin-top:5px;}
.mdv{width:1px;background:var(--bd-l);margin:2px 0;}
.mh{font-size:13px;font-weight:500;color:var(--tx3);margin:18px 16px 8px;}
.mlist{margin:0 16px;overflow:hidden;}
.mrow{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--bd-l);}
.mrow:last-child{border-bottom:none;}
.mrow .ib{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.mrow .ib svg{width:18px;height:18px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.mrow .t{flex:1;font-size:14px;font-weight:500;}
.mrow .cnt{font-size:11.5px;color:var(--tx3);}
.mrow .ar{color:#CBD5E1;font-size:18px;}

/* ===== 规划 ===== */
.pp{display:flex;align-items:flex-start;position:relative;padding:4px 0;}
.pp .line{position:absolute;top:13px;left:34px;right:34px;height:2px;background:var(--bd);}
.pp .line-on{position:absolute;top:13px;left:34px;height:2px;background:var(--ind);}
.pstep{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;z-index:1;}
.pstep .dot{width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--tx3);}
.pstep.on .dot{background:var(--ind);border-color:var(--ind);color:#fff;}
.pstep.cur .dot{box-shadow:0 0 0 4px var(--ind-l);}
.pstep .lb{font-size:11.5px;color:var(--tx3);}
.pstep.on .lb{color:var(--tx);font-weight:500;}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 16px;scrollbar-width:none;}
.chips::-webkit-scrollbar{display:none;}
.chip{flex:0 0 auto;font-size:12px;color:var(--tx2);background:#fff;border:1px solid var(--bd);padding:6px 13px;border-radius:20px;}
.chip.on{background:var(--ind);color:#fff;border-color:var(--ind);font-weight:500;}
.scard{margin:0 16px 10px;padding:13px 14px;}
.sh{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.sh .nm{font-size:15px;font-weight:600;}
.badge{font-size:11px;font-weight:500;padding:3px 9px;border-radius:8px;flex-shrink:0;}
.smeta{font-size:11.5px;color:var(--tx2);margin-top:5px;display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.tier{display:inline-flex;align-items:center;gap:4px;color:#475569;}
.tier i{width:7px;height:7px;border-radius:50%;display:inline-block;}

/* ===== 市场 ===== */
.seg{display:flex;background:var(--ind-l);border-radius:12px;padding:3px;margin:0 16px;}
.seg div{flex:1;text-align:center;font-size:13.5px;font-weight:500;color:var(--ind);padding:8px;border-radius:9px;}
.seg div.on{background:#fff;color:var(--tx);}
.mkcard{margin:0 16px 10px;padding:12px;display:flex;gap:12px;align-items:center;}
.mkcard .thumb{width:54px;height:54px;border-radius:12px;background:var(--ind-ll);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ind);font-size:22px;font-weight:700;}
.mkcard .av{width:48px;height:48px;border-radius:50%;background:var(--ind-l);color:var(--ind-d);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px;flex-shrink:0;}
.mkcard .nm{font-size:14.5px;font-weight:600;}
.mkcard .role{font-size:11.5px;color:var(--tx2);margin-top:3px;}
.mkcard .pr{font-size:14px;font-weight:600;color:var(--ind);margin-top:6px;}
.mkbtn{font-size:12px;font-weight:500;color:var(--ind);background:var(--ind-l);padding:6px 12px;border-radius:9px;border:none;flex-shrink:0;}

/* ===== OceanAI ===== */
.chat{padding:6px 16px 150px;}
.cdate{text-align:center;font-size:12px;color:var(--tx2);padding:6px 0 12px;}
.msg{display:flex;gap:8px;margin-bottom:14px;align-items:flex-start;}
.msg .mav{width:34px;height:34px;border-radius:50%;background:var(--ind);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:17px;}
.msg .bub{font-size:13.5px;line-height:1.55;padding:11px 13px;border-radius:14px;max-width:80%;white-space:pre-wrap;word-break:break-word;}
.msg.ai .bub{background:#fff;border:1px solid var(--bd);border-top-left-radius:4px;}
.msg.me{justify-content:flex-end;}
.msg.me .bub{background:var(--ind);color:#fff;border-top-right-radius:4px;}
.qcs{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 14px;padding-left:42px;}
.qc{font-size:12.5px;color:var(--ind);background:#fff;border:1px solid var(--ind-l);padding:6px 12px;border-radius:18px;}
.inbar{position:fixed;left:0;right:0;bottom:calc(64px + var(--safe-bot));background:#fff;border-top:1px solid var(--bd);padding:9px 12px;display:flex;gap:9px;align-items:center;z-index:40;}
.inbar input{flex:1;height:40px;background:var(--ind-ll);border:none;border-radius:20px;padding:0 15px;font-size:14px;outline:none;}
.sendb{width:40px;height:40px;border-radius:50%;background:var(--ind);border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sendb svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.typing{display:inline-block;}
.typing::after{content:'▋';animation:bl 1s steps(2) infinite;}
@keyframes bl{0%,50%{opacity:1}51%,100%{opacity:0}}


/* ===== APP-POLISH ===== */
.inbar input:focus{box-shadow:0 0 0 2px var(--ind-l);background:#fff;}
.seg div{transition:background .22s,color .22s;}
.pstep .dot{transition:transform .3s,background .3s,border-color .3s,box-shadow .3s;}
.pstep.cur .dot{animation:pulseDot 1.8s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{box-shadow:0 0 0 4px var(--ind-l);}50%{box-shadow:0 0 0 7px rgba(79,70,229,.10);}}
.pp .line-on{transition:width .55s cubic-bezier(.22,.61,.36,1);}
.qc{transition:transform .14s,background .18s;}
.badge,.pin,.tier i{transition:none;}


/* 应用中心 宫格 */
.appgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;}
.appgrid-item{display:flex;flex-direction:column;align-items:center;gap:9px;padding:16px 6px;background:#fff;border-radius:14px;cursor:pointer;box-shadow:0 1px 4px rgba(30,27,75,.05);}
.appgrid-item:active{transform:scale(.97);}
.appgrid-ic{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;}
.appgrid-ic svg{width:24px;height:24px;}
.appgrid-item span{font-size:13px;color:#1E1B4B;}


/* 主页 快捷入口 */
.home-quick{display:flex;gap:12px;padding:0 16px 4px;}
.home-quick .hq-item{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;background:#fff;border-radius:14px;cursor:pointer;font-size:14px;font-weight:600;color:#1E1B4B;box-shadow:0 1px 4px rgba(30,27,75,.05);}
.home-quick .hq-item svg{width:20px;height:20px;stroke:#4F46E5;fill:none;stroke-width:2;}
.home-quick .hq-item:active{transform:scale(.98);}


/* ===== 指导：卡片 / 详情 / 预约 ===== */
.mkcard2{display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer;}
.mk-thumb{width:58px;height:58px;border-radius:10px;background-size:cover;background-position:center;flex:none;background-color:var(--ind-l);}
.mk-av{width:52px;height:52px;border-radius:50%;background-size:cover;background-position:center;flex:none;background-color:var(--ind-l);}
.mk-thumb-ph,.mk-av-ph{display:flex;align-items:center;justify-content:center;color:var(--ind-d);font-weight:600;font-size:20px;}
.mkc-body{flex:1;min-width:0;}
.mkc-title{font-size:15px;font-weight:600;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mkc-tag{font-size:11px;font-weight:500;color:var(--ind-d);background:var(--ind-l);padding:1px 6px;border-radius:6px;}
.mkc-sub{font-size:12px;color:var(--tx2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mkc-price{font-size:14px;font-weight:600;color:var(--ind);margin-top:4px;}
.mkc-arrow{color:var(--tx3);font-size:22px;flex:none;}
.dt-back{color:var(--ind);cursor:pointer;font-size:15px;font-weight:500;}
.dt-cover{height:172px;background-size:cover;background-position:center;background-color:var(--ind-l);}
.dt-title{font-size:19px;font-weight:700;color:var(--tx);margin-top:10px;line-height:1.35;}
.dt-sub{font-size:13px;color:var(--tx2);margin-top:5px;}
.dt-meta{font-size:13px;color:var(--tx2);margin-top:6px;}
.dt-price{font-size:18px;font-weight:700;color:var(--ind);margin:12px 0;}
.dt-desc{font-size:14px;line-height:1.7;color:var(--tx);margin-top:10px;white-space:pre-wrap;word-break:break-word;}
.dt-exp-hd{display:flex;gap:14px;align-items:center;margin-top:6px;}
.dt-av{width:66px;height:66px;border-radius:50%;background-size:cover;background-position:center;flex:none;background-color:var(--ind-l);}
.dt-av.dt-av-ph{display:flex;align-items:center;justify-content:center;color:var(--ind-d);font-weight:600;font-size:26px;}
.dt-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.dt-chip{font-size:12px;color:var(--ind-d);background:var(--ind-l);padding:3px 9px;border-radius:20px;}
.dt-srv{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--bd-l);}
.dt-srv:last-child{border-bottom:none;}
.dt-srv-name{font-size:14px;font-weight:600;color:var(--tx);}
.dt-srv-desc{font-size:12px;color:var(--tx2);margin-top:3px;}
.dt-srv-price{font-size:13px;color:var(--ind);font-weight:600;margin-top:4px;}
.dt-srv-btn{flex:none;background:var(--ind);color:#fff;border:none;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;}
.dt-bar{position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(10px + var(--safe-bot));background:#fff;border-top:1px solid var(--bd);z-index:40;}
.dt-btn{width:100%;background:var(--ind);color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:600;cursor:pointer;}
.dt-btn-ghost{background:var(--ind-l);color:var(--ind-d);}
.mk-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:80;display:flex;align-items:flex-end;}
.mk-sheet{background:#fff;width:100%;border-radius:18px 18px 0 0;padding:16px 16px calc(16px + var(--safe-bot));animation:mkUp .25s ease;}
@keyframes mkUp{from{transform:translateY(30px);opacity:.6;}to{transform:none;opacity:1;}}
.mk-sheet-hd{font-size:16px;font-weight:600;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.mk-sheet .form-group{margin-bottom:12px;}
.mk-sheet label{display:block;font-size:13px;color:var(--tx2);margin-bottom:5px;}
.mk-sheet input,.mk-sheet textarea{width:100%;border:1px solid var(--bd);border-radius:10px;padding:10px;font-size:14px;font-family:inherit;box-sizing:border-box;background:#fff;}
.mk-sheet textarea{min-height:72px;resize:vertical;}
.mk-sheet-btn{width:100%;background:var(--ind);color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:600;margin-top:4px;cursor:pointer;}
.mk-toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:rgba(30,27,75,.92);color:#fff;padding:10px 18px;border-radius:20px;font-size:13px;z-index:120;max-width:80%;text-align:center;}
