/* 1:1 对齐源站 lg2miniapp: pink #ff69b4 / purple #9b30ff / gradient 135deg */
:root{--pink:#ff69b4;--purple:#9b30ff;--grad:linear-gradient(135deg,#ff69b4,#9b30ff);--grad-gallery:linear-gradient(135deg,#ff6b9d,#c44569,#9b59b6)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}
body{background:#f9fafb;color:#1f2937;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;min-height:100vh}
[hidden]{display:none!important}button{font-family:inherit;cursor:pointer}
/* 首页顶栏 ContentTabBar */
.src-topbar{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.src-tabs{display:flex;align-items:center;gap:32px}
.src-tab{position:relative;border:0;background:none;font-size:16px;font-weight:500;color:#6b7280;padding:0 0 6px}
.src-tab.active{color:var(--pink)}
.src-tab .src-underline{display:none;position:absolute;bottom:0;left:0;right:0;height:2px;border-radius:2px;background:var(--pink)}
.src-tab.active .src-underline{display:block}
.src-filterbtn{border:0;color:#fff;font-size:14px;font-weight:500;background:var(--grad);padding:6px 16px;border-radius:9999px;transition:.2s}
.src-filterbtn:active{transform:scale(.95)}
.src-feed{padding:16px 16px 90px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:#f9fafb;min-height:100vh}
/* 卡片 ContentCard */
.src-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.05);cursor:pointer;transition:transform .2s}
.src-card:active{transform:scale(.98)}
.src-cover{position:relative;aspect-ratio:2/3;background:#fff}
.src-cover img{width:100%;height:100%;object-fit:cover;display:block}
.src-heart{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 6px rgba(0,0,0,.1)}
.src-heart .fa-heart{font-size:16px}.src-heart.on .fa-heart{color:var(--pink)}.src-heart:not(.on) .fa-heart{color:#9ca3af}
.src-loc{position:absolute;bottom:8px;left:8px;background:rgba(0,0,0,.5);color:#fff;font-size:12px;padding:2px 8px;border-radius:4px}
.src-body{padding:12px}
.src-line{display:flex;align-items:center;font-size:14px;color:#374151;margin-bottom:2px}
.src-line i{color:#4b5563;font-size:12px;margin-right:6px;width:14px}
.src-services{display:flex;flex-wrap:wrap;gap:4px;min-height:20px;margin:8px 0}
.src-services span{font-size:12px;color:var(--pink);background:linear-gradient(to right,#fdf2f8,#faf5ff);padding:2px 8px;border-radius:9999px;border:1px solid #fce7f3}
.src-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#6b7280}
.src-status{text-align:center;font-size:12px;color:#9ca3af;padding:0 0 90px;background:#f9fafb}
/* 底部导航 BottomNavigation */
.src-bottomnav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;display:flex;justify-content:space-around;padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:20}
.src-nav{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;color:#9ca3af;padding:8px 12px}
.src-nav i{font-size:18px;margin-bottom:2px}.src-nav.active{color:var(--pink)}
/* 详情 DetailView */
#view-detail{position:fixed;inset:0;background:#f9fafb;z-index:30;overflow-y:auto}
.src-dhead{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.src-dhead h1{font-size:18px;font-weight:600;margin:0}
.src-back{width:32px;height:32px;border:0;background:none;display:flex;align-items:center;justify-content:center;color:#4b5563;font-size:16px}
.src-gallery-wrap{position:relative;background:#fff}
.src-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.src-gallery::-webkit-scrollbar{display:none}
.src-slide{flex-shrink:0;width:100%;position:relative;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;background:#fff;min-height:300px}
.src-slide img,.src-slide video{width:100%;max-height:70vh;min-height:300px;object-fit:contain;background:#fff}
.src-count{position:absolute;right:16px;background:rgba(31,41,55,.9);color:#fff;padding:4px 12px;border-radius:9999px;font-size:14px;box-shadow:0 10px 15px rgba(0,0,0,.1);z-index:10}
.src-count.top{top:16px}.src-count.bottom{bottom:16px}
.src-dur{position:absolute;top:16px;right:16px;background:rgba(31,41,55,.9);color:#fff;padding:4px 12px;border-radius:9999px;font-size:12px;display:flex;align-items:center;z-index:10}
.src-navbtn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;border:0;display:flex;align-items:center;justify-content:center;z-index:20;backdrop-filter:blur(4px)}
.src-navbtn.left{left:16px}.src-navbtn.right{right:16px}
.src-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:10}
.src-dots i{width:8px;height:8px;border-radius:50%;background:#1f2937;box-shadow:0 2px 8px rgba(0,0,0,.3);opacity:.5}.src-dots i.on{opacity:1}
.src-locked{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(0,0,0,.7),rgba(0,0,0,.5),rgba(0,0,0,.7));backdrop-filter:blur(2px);color:#fff;text-align:center;padding:20px}
.src-locked h3{font-size:18px;font-weight:600;margin:12px 0 8px}.src-locked p{font-size:14px;opacity:.8;margin:0 0 16px}
.src-locked .row{display:flex;flex-direction:column;gap:8px;align-items:center}
.btn-grad{background:var(--grad-gallery);color:#fff;border:0;padding:8px 24px;border-radius:9999px;font-size:14px;font-weight:500}
.btn-line{border:1px solid #fff;background:transparent;color:#fff;padding:8px 24px;border-radius:9999px;font-size:14px}
.src-white{background:#fff}
.src-cardbox{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.src-cardbox h3{font-size:16px;font-weight:600;margin:0 0 12px}
.src-inforow{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}
.src-no{font-size:18px;font-weight:600;color:#1f2937}
.src-verified{font-size:14px;color:#16a34a}.src-kv{display:flex;flex-direction:column;gap:8px}
.src-kv div{display:flex;align-items:center;font-size:14px}.src-kv .k{color:#4b5563;width:64px}.src-kv .v{color:#1f2937;font-weight:500}
.src-taggrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.src-taggrid div{display:flex;align-items:center;font-size:14px;color:#1f2937}.src-taggrid i{color:#22c55e;margin-right:8px}
.src-descbox{background:#f9fafb;border-radius:8px;padding:16px}
.src-descbox p{color:#374151;font-size:14px;line-height:1.6;white-space:pre-line;margin:0}
.src-pub{text-align:center;font-size:14px;color:#6b7280;margin-top:8px}
.src-bottombar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;padding:16px;z-index:30}
.src-contact{width:100%;border:0;color:#fff;background:var(--grad);padding:12px;border-radius:8px;font-size:16px;font-weight:600;transition:.2s}
.src-contact:active{transform:scale(.95)}
/* 复用筛选/抽屉 */
.page-full{position:fixed;inset:0;z-index:40;background:#f9fafb;display:flex;flex-direction:column}
/* 订阅/我的（源站 Profile/Membership 同款） */
.src-subhead{background:var(--grad);color:#fff;text-align:center;padding:32px 16px}
.src-subhead h2{font-size:22px;margin:0 0 4px}.src-subhead p{opacity:.9;font-size:14px;margin:0 0 12px}
.src-substat{background:rgba(255,255,255,.2);border-radius:12px;padding:12px;font-size:13px}
.src-plan{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.src-plan .main{flex:1}.src-plan .name{font-weight:700;font-size:15px}.src-plan .sub{font-size:12px;color:#9ca3af}.src-plan .price{font-weight:700;color:var(--purple)}
.src-plan button{border:0;border-radius:8px;padding:8px 14px;background:var(--grad);color:#fff;font-weight:600}
.src-phead{background:var(--grad);color:#fff;padding:24px 16px 28px}
.src-stat{background:rgba(255,255,255,.15);border-radius:12px;padding:12px;text-align:center}
.src-stat .v{font-size:20px;font-weight:700;margin:0}.src-stat .l{font-size:12px;opacity:.85;margin:2px 0 0}
.src-menu{background:#fff;border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.src-menu button{width:100%;border:0;background:none;display:flex;align-items:center;gap:12px;padding:15px 16px;font-size:14px;color:#1f2937}
.src-menu button+button{border-top:1px solid #f3f4f6}
.src-menu i:first-child{color:var(--purple);width:20px}
.src-menu span{flex:1;text-align:left}.src-menu em{font-style:normal;font-size:12px;color:#9ca3af}
.src-menu .badge{background:#ef4444;color:#fff;border-radius:999px;padding:2px 9px;font-size:11px}
.page-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#fff;border-bottom:1px solid #e5e7eb}
.page-head h1{font-size:16px;font-weight:600;margin:0}.icon-btn{border:0;background:none;font-size:22px;color:#4b5563;width:32px;height:32px}.ghost-link{border:0;background:none;color:var(--purple);font-weight:600}
.page-body{flex:1;overflow-y:auto;padding:12px 16px 20px}.bottom-bar{flex:0 0 auto;display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e5e7eb}
.fsearch{display:flex;gap:8px;margin-bottom:6px}.fsearch input{flex:1;border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;font-size:13px;outline:none}.fsearch button{border:0;border-radius:10px;padding:0 15px;background:var(--grad);color:#fff;font-weight:600}
.fsec{padding:14px 0;border-bottom:1px solid #eef0f2}.fsec h4{margin:0 0 10px;font-size:13.5px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid #e5e7eb;background:#fff;color:#4b5563;border-radius:999px;padding:7px 14px;font-size:13px}.chip.active{background:var(--grad);border-color:transparent;color:#fff;font-weight:600}
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;z-index:50}.sheet-inner{width:100%;max-width:620px;margin:0 auto;background:#fff;border-radius:16px 16px 0 0;padding:18px 16px;max-height:80vh;overflow-y:auto}.sheet-inner.small{text-align:center}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.drawer-row{display:flex;justify-content:space-between;font-size:13px;padding:11px 0;border-bottom:1px solid #f3f4f6}.amount{font-size:26px;font-weight:700;color:var(--purple);margin:10px 0}.primary,.ghost{border-radius:10px;padding:12px 16px;font-size:15px;font-weight:600;border:0;width:100%}.primary{background:var(--grad);color:#fff}.ghost{background:#fff;border:1px solid #e5e7eb;color:#4b5563}.tips{font-size:11.5px;color:#9ca3af}.toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%,14px);background:rgba(0,0,0,.9);color:#fff;padding:9px 16px;border-radius:999px;font-size:12.5px;opacity:0;pointer-events:none;transition:.2s;z-index:60}.toast.show{opacity:1;transform:translate(-50%,0)}
/* 本地对号（替代FA，截图1:1绿勾） */
.ck{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#22c55e;color:#fff;font-size:11px;font-weight:700;margin-right:8px;flex-shrink:0}
.src-verified .ck{margin-right:4px}
.src-heart{font-size:16px;line-height:1}
.src-heart.on{color:var(--pink)}
.spin{display:inline-block;width:22px;height:22px;border:3px solid #e5e7eb;border-top-color:var(--purple);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.src-nav svg{display:block}
/* 筛选1:1源站 */
.src-input{width:100%;padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none}
.src-input:focus{border-color:var(--purple)}
.src-rangeval{font-size:12px;color:var(--pink);font-weight:600;margin-left:8px}
.src-dual{position:relative;height:32px}
.src-dual input[type=range]{position:absolute;left:0;right:0;top:6px;width:100%;appearance:none;background:transparent;pointer-events:none}
.src-dual input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(135deg,#ff69b4,#9b30ff)}
.src-dual input[type=range]::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid #ff69b4;pointer-events:all;box-shadow:0 2px 6px rgba(0,0,0,.2);cursor:pointer}
.src-cupgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.src-cupgrid button{padding:8px 12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;font-size:14px}
.src-cupgrid button.on{background:linear-gradient(135deg,#ff69b4,#9b30ff);color:#fff;border-color:transparent}
.src-taggrid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.src-taggrid2 button{padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff}
.src-taggrid2 button.on{background:linear-gradient(135deg,#ff69b4,#9b30ff);color:#fff;border-color:transparent;font-weight:600}
/* 订阅1:1 */
.src-pushhead{background:linear-gradient(135deg,#ff69b4,#9b30ff);color:#fff;text-align:center;padding:24px 16px}
.src-pushhead h2{font-size:20px;margin:8px 0 4px}.src-pushhead p{font-size:14px;opacity:.9;margin:0}
.src-pushhead .v{font-size:30px;font-weight:700;margin:0}.src-pushhead .l{font-size:14px;opacity:.8;margin:4px 0 0}
.src-pushcard{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.src-pushcard h4{margin:0;font-size:16px}.src-pushcard .desc{font-size:14px;color:#4b5563;margin-top:4px}
.src-pushmeta{background:#f9fafb;border-radius:8px;padding:12px;margin:12px 0;display:flex;justify-content:space-between;font-size:14px;color:#4b5563}
.src-toggle{position:relative;width:50px;height:28px;background:#ddd;border-radius:14px;cursor:pointer;transition:.3s}
.src-toggle.on{background:linear-gradient(135deg,#ff69b4,#9b30ff)}
.src-toggle::after{content:'';position:absolute;top:2px;left:2px;width:24px;height:24px;background:#fff;border-radius:50%;transition:.3s}
.src-toggle.on::after{left:24px}
.src-steps{background:#fff;padding:12px 16px;border-bottom:1px solid #f3f4f6}
.src-steps .row{display:flex;align-items:center}
.src-step{width:32px;height:32px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500}
.src-step.on{background:linear-gradient(135deg,#ff69b4,#9b30ff);color:#fff}
.src-step.done{background:#10b981;color:#fff}
.src-stepline{flex:1;height:4px;background:#e5e7eb;margin:0 8px;border-radius:2px;overflow:hidden}
.src-stepline i{display:block;height:100%;background:linear-gradient(135deg,#ff69b4,#9b30ff)}
/* 创建订阅1:1源站 */
.src-stepbar{background:#fff;padding:12px 16px;border-bottom:1px solid #f3f4f6}
.src-steprow{display:flex;align-items:center}
.src-stepn{width:32px;height:32px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;flex-shrink:0}
.src-stepn.on{background:linear-gradient(135deg,#ff69b4,#9b30ff);color:#fff}
.src-stepn.done{background:#10b981;color:#fff}
.src-steptrack{flex:1;height:4px;background:#e5e7eb;margin:0 8px;border-radius:2px;overflow:hidden}
.src-steptrack i{display:block;height:100%;background:linear-gradient(135deg,#ff69b4,#9b30ff);border-radius:2px;transition:width .3s}
.src-steplabels{display:flex;margin-top:8px}
.src-steplabels span{flex:1;text-align:center;font-size:12px;color:#4b5563}
.src-bluebox{background:#eff6ff;border:1px solid #bfdbff;border-radius:8px;padding:12px}
/* 自定义双滑杆（替代原生重叠input，各端一致） */
.src-dual input[type=range].native-hide{display:none}
.dsl{position:relative;height:32px;touch-action:none;user-select:none;-webkit-user-select:none}
.dsl-track{position:absolute;left:10px;right:10px;top:13px;height:6px;border-radius:3px;background:#e5e7eb}
.dsl-fill{position:absolute;top:0;bottom:0;border-radius:3px;background:linear-gradient(135deg,#ff69b4,#9b30ff)}
.dsl-thumb{position:absolute;top:16px;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:#fff;border:3px solid #ff69b4;box-shadow:0 2px 6px rgba(0,0,0,.2);transform:translateY(-50%);cursor:pointer;touch-action:none}
