/* RichUP V7 isolated stylesheet. Keep UTF-8. Do not edit richup-v6.css for V7. */
/* 260525 SSOT v0.6 §4.3 migration: bg+primary+accent+font 同步 RUPF (rrxs.xyz live), drop 蓝 accent / 白色 surface */
/* 260605 rrxs 调色板彻底重铸 (Richard B "与rrxs.xyz保持一致"): 橙 accent #D2734D→深紫 #8B5CF6 · rup-blue 橙→紫 #8B5CF6 · 奶白 #FAF9F5→暗玻璃 · soft #c084fc→#CBA1FF. 紫 primary #9D66FF 已是 rrxs 同族(~30处一致)保留, 不改避免双紫杂色. 富贵金 #D4AF37 仅留 payment 成交面(永禁色契约). NOTE: #d946ef 品红是 SSOT 永禁色, 故 accent 用 #8B5CF6 非 rrxs 现场的品红. 详见 docs/RUPD_visual_anchor.md */
:root {
  --bg: #120b24;                /* deep-purple-bg (SSOT token 1) */
  --surface: #1E1538;           /* deep-purple-surface G2 */
  --card: rgba(30, 21, 56, 0.72);
  --primary: #9D66FF;
  --primary-rgb: 157, 102, 255;
  --accent: #8B5CF6;        /* 260605 rrxs re-cast: 橙→深紫 #8B5CF6 (rrxs 同族; 非 #d946ef 品红=永禁色) */
  --accent-rgb: 139, 92, 246;
  --gold: #D4AF37;
  --gold-rgb: 212, 175, 55;
  --gold-soft: #E6BE6A;
  --bright-yellow: #FFC83D;
  --text-main: #F2F2F7;
  --text: #F2F2F7;
  --text-muted: #8E8E93;
  --muted: #8E8E93;
  --border: rgba(255, 255, 255, 0.08);
  --glass: rgba(18, 11, 36, 0.76);
  --alert: #FF6B6B;
  --ok: #9D66FF;
  --warn: #FBBF24;
  --rup-purple-deep: #120b24;
  --rup-text-on-purple: #F2F2F7;
  --rup-claude-cream: rgba(255, 255, 255, .06);   /* 260605 rrxs re-cast: 奶白→暗玻璃 (kill 冷面白底杂色); 名留兼容 */
  --rup-text-on-cream: #F2F2F7;                   /* 260605: 配暗玻璃改浅色文字 (顺修旧 dark-on-dark) */
  --ru-font-sans: 'Outfit', 'IBM Plex Sans', system-ui, -apple-system, 'PingFang SC', 'Noto Sans SC', 'Microsoft YaHei', 'Segoe UI', sans-serif;
  --ru-font-display: 'Outfit', 'IBM Plex Sans', system-ui, -apple-system, 'Noto Serif SC', 'Songti SC', 'PingFang SC', serif;
}

body { 
  margin: 0; 
  font-family: var(--ru-font-sans); 
  background: 
    radial-gradient(circle at 50% 0%, rgba(157, 102, 255, 0.16), transparent 45%),
    radial-gradient(circle at 80% 20%, rgba(139, 92, 246, 0.07), transparent 35%),
    #120b24;
  color: var(--text); 
  line-height: 1.65; 
  -webkit-font-smoothing: antialiased; 
  min-height: 100vh;
}
a { color: var(--primary); text-decoration: none; transition: opacity .2s; }
a:hover { opacity: 0.8; }
code { background: rgba(255,255,255,.07); border-radius: 8px; padding: 2px 6px; font-family: monospace; color: var(--accent); }
.wrap { max-width: 1440px; margin: 0 auto; padding: 20px 16px 36px; }
.topbar, .panel, .card, .ru-glass { 
  background: linear-gradient(180deg, rgba(20,20,27,.82), rgba(20,20,27,.72)); 
  border: 1px solid rgba(255,255,255,.1); 
  border-radius: 24px; 
  box-shadow: 
    0 30px 90px rgba(0,0,0,.45), 
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 0 0 1px rgba(255,255,255,0.02);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
.topbar { position: sticky; top: 0; z-index: 100; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 24px; background: rgba(10,10,12,.76); }
.brand { display: flex; gap: 14px; align-items: center; }
.badge { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; color: #fff; font-weight: 800; background: linear-gradient(135deg, var(--primary), var(--accent)); font-size: 1.2rem; box-shadow: 0 0 28px rgba(var(--primary-rgb),.28); }
.brand h1 { margin: 0; font-size: 1.7rem; font-weight: 900; font-family:'Noto Serif SC', serif !important; line-height: 1.25; }
.brand p { margin: 4px 0 0; color: var(--muted); font-size: .9rem; }
.layout { display: grid; grid-template-columns: minmax(260px, 320px) minmax(0, 1fr); gap: 24px; align-items: start; transition: grid-template-columns .22s ease; }
.main { padding: 0; min-height: 75vh; min-width: 0; }
.ru-icp-footer{margin:22px auto 0;padding:14px 18px;text-align:center;color:var(--muted);font-size:.86rem;letter-spacing:.01em}
.ru-icp-footer a{color:rgba(242,242,247,.72);text-decoration:none;border-bottom:1px solid rgba(242,242,247,.18)}
.ru-icp-footer a:hover{color:var(--text);opacity:1;border-bottom-color:rgba(var(--primary-rgb),.5)}
.nav { display: flex; gap: 10px; flex-wrap: wrap; }
button, select, input, textarea { font: inherit; border: 1px solid var(--border); border-radius: 18px; padding: 12px 18px; background: rgba(255,255,255,.05); color: var(--text); transition: all .2s cubic-bezier(0.33, 1, 0.68, 1); cursor: pointer; outline: none; }
button:hover { border-color: var(--primary); transform: scale(1.02); box-shadow: 0 14px 40px rgba(var(--primary-rgb),.24); }
button:active { transform: scale(0.96); opacity: 0.9; }
.primary { background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); border-color: rgba(var(--primary-rgb),.72); color: #fff; font-weight: 800; border-radius: 30px; }
.primary:hover { background: linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%); filter: brightness(1.12); box-shadow: 0 14px 38px rgba(var(--primary-rgb), 0.32); }
.secondary { background: rgba(var(--accent-rgb),.12); border-color: rgba(var(--accent-rgb),.34); color: var(--accent); font-weight: 800; }
.pill { border-radius: 30px; padding: 8px 16px; font-size: .9rem; }
.section { margin-bottom: 24px; animation: fadeIn .4s ease-out; }
.muted { color: var(--muted); line-height: 1.7; }
.status { padding: 16px; border-radius: 18px; margin-bottom: 16px; border: 1px solid var(--border); background: rgba(255,255,255,.05); }
.ok { border-color: rgba(var(--primary-rgb),.38); background: rgba(var(--primary-rgb),.10); color: var(--primary); }
.warn { border-color: rgba(251,191,36,.32); background: rgba(251,191,36,.10); color: var(--warn); }
.bad { border-color: rgba(255,107,107,.32); background: rgba(255,107,107,.10); color: var(--alert); }
.ferr { color: var(--alert); font-size: 0.85em; margin-top: 4px; font-weight: 600; }
.notegrid { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); }
.field label { display: block; margin-bottom: 8px; font-size: .9rem; font-weight: 800; color: var(--text); }
.full { grid-column: 1 / -1; }
textarea { width: 100%; min-height: 110px; resize: vertical; line-height: 1.6; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.fade-in { animation: fadeIn .4s ease-out; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(var(--primary-rgb),0.42); } 70% { box-shadow: 0 0 0 10px rgba(var(--primary-rgb),0); } 100% { box-shadow: 0 0 0 0 rgba(var(--primary-rgb),0); } }
.pulse { animation: pulse 2s infinite; }
.bp-progress-container { width: 100%; height: 8px; background: rgba(255,255,255,.08); border-radius: 10px; margin: 24px 0; overflow: hidden; }
.bp-progress-bar { height: 100%; background: var(--primary); width: 0; transition: width .4s ease; }
.bp-instant-feedback { padding: 16px; background: rgba(var(--primary-rgb),.10); border-radius: 18px; margin-top: 16px; border-left: 4px solid var(--primary); opacity: 0; transform: translateY(10px); transition: all .4s ease; }
.pricing-card { border: 1px solid rgba(var(--primary-rgb),.48); border-radius: 24px; padding: 32px; background: rgba(20,20,27,.86); position: relative; overflow: hidden; text-align: center; box-shadow: 0 0 40px rgba(var(--primary-rgb),.16); }
.pricing-badge { position: absolute; top: 12px; right: -30px; background: var(--accent); color: #fff; padding: 4px 40px; transform: rotate(45deg); font-size: 0.75rem; font-weight: bold; }
@media (max-width:1100px) { .layout { grid-template-columns: 1fr; } .notegrid { grid-template-columns: 1fr; } .stats { grid-template-columns: repeat(2, 1fr); } }

.ru-live-stats { 
  display: grid; 
  gap: 8px; 
  margin: 18px 0; 
  padding: 18px 20px; 
  border-radius: 24px; 
  background: rgba(255,255,255,0.03) !important; 
  color: var(--text); 
  border: 1px solid rgba(255,255,255,0.08) !important; 
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.ru-live-stats strong{color:var(--primary)}
.ru-live-stats .muted{color:var(--muted)}.mobile-blueprint-note{display:none}.mobile-optional{display:block}.ru-mobile-sticky-cta{display:none}
@media (max-width:760px){
  body{padding-bottom:86px} input,textarea,select,button{font-size:16px}.mobile-blueprint-note{display:block}.mobile-optional{display:none!important}.bp-progress-container{height:10px}.topbar{position:static}.wrap{padding-bottom:96px}
  .ru-mobile-sticky-cta{display:block;position:fixed;left:14px;right:14px;bottom:14px;z-index:999;padding:15px 18px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:900;box-shadow:0 14px 36px rgba(var(--primary-rgb),.32)}
}


.hero-title{font-family:var(--ru-font-display);font-weight:900;letter-spacing:-.02em;color:var(--text-main)!important;text-shadow:0 0 34px rgba(var(--primary-rgb),.18)}.black-gold-gradient{background:linear-gradient(135deg,rgba(var(--primary-rgb),.18) 0%,rgba(var(--accent-rgb),.10) 100%)}.gold-border{border:1px solid rgba(var(--gold-rgb),.34)}
@keyframes ru-scan-pulse{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.45);transform:rotate(0deg)}70%{box-shadow:0 0 0 20px rgba(var(--accent-rgb),0)}100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),0);transform:rotate(360deg)}}
.ru-scan-orb{width:118px;height:118px;border-radius:999px;display:grid;place-items:center;margin:18px auto;background:conic-gradient(from 90deg,rgba(var(--accent-rgb),.10),var(--accent),rgba(var(--primary-rgb),.72),rgba(var(--accent-rgb),.10));animation:ru-scan-pulse 3.5s linear infinite}.ru-scan-orb::after{content:'H3';width:78px;height:78px;border-radius:999px;display:grid;place-items:center;background:var(--surface);color:var(--primary);font-weight:900;border:1px dashed rgba(var(--accent-rgb),.65)}
.ru-stepper{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.ru-step{padding:10px 12px;border-radius:16px;border:1px solid var(--border);background:rgba(255,255,255,.05);color:var(--text-muted);font-weight:800}.ru-step.is-active{border-color:var(--accent);color:var(--primary);background:rgba(var(--accent-rgb),.14)}.ru-step.is-done{border-color:rgba(46,125,50,.55);color:var(--ok);background:rgba(var(--primary-rgb),.10)}.ru-step.is-disabled{opacity:.52}
.error-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}.error-map span{border:1px solid var(--border);border-radius:14px;padding:10px;background:rgba(255,255,255,.05);color:var(--text-muted)}

body.visitor-funnel-mode .sidebar,
body.visitor-funnel-mode #dayList,
body.visitor-funnel-mode #fileList,
body.visitor-funnel-mode #daySelect,
body.visitor-funnel-mode #dayHint,
body.visitor-funnel-mode .sidebar-toggle { display: none !important; }
body.visitor-funnel-mode .nav { display: none !important; }
body.visitor-funnel-mode .layout { display: flex; justify-content: center; padding: 0; background: var(--bg); }
body.visitor-funnel-mode .main {
  max-width: 1200px; width: 100%; margin: 0 auto;
  border-left: none; padding: 40px 24px;
}
@media (min-width: 1024px) {
  body.visitor-funnel-mode #content {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 40px;
    align-items: start;
  }
  body.visitor-funnel-mode .hero { grid-column: 1; position: sticky; top: 100px; }
  body.visitor-funnel-mode #landingBlueprintSection { grid-column: 2; margin-top: 0; }
  body.visitor-funnel-mode #content > .section:not(.hero):not(#landingBlueprintSection) { grid-column: 1 / -1; }
}
body.visitor-funnel-mode .topbar { justify-content: center; position: static; border-bottom: 1px solid var(--border); }
body.visitor-funnel-mode .layout-toolbar { display: none !important; }
.landing-blueprint-form textarea { min-height: 96px; background:rgba(255,255,255,.05); color:var(--text-main); }
.landing-privacy { margin-top:20px; color:var(--text-muted); font-size:12px; font-weight:700; line-height:1.7; }
.founder-note{margin-top:16px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid var(--border);color:var(--text-muted);font-size:.95rem;line-height:1.8}
.ru-privacy-note{display:block;margin-top:8px;color:var(--text-muted);font-size:12px;font-weight:700;line-height:1.6}
.ru-live-stats strong{animation:ruTrustPulse 2.8s ease-in-out infinite}
@keyframes ruTrustPulse{0%,100%{opacity:1}50%{opacity:.72}}
.feedback-panel{border-left:6px solid var(--accent)}
.ru-feedback-btn{position:fixed;right:18px;bottom:92px;z-index:998;border:1px solid rgba(var(--accent-rgb),.45);background:var(--surface);color:var(--primary);font-weight:800;box-shadow:0 12px 28px rgba(0,0,0,.42)}

#liveH3Count{display:inline-grid;place-items:center;min-width:2.2em;margin:0 3px;padding:2px 8px;border-radius:999px;background:rgba(var(--accent-rgb),.18);color:var(--primary);font-weight:900;border:1px solid rgba(var(--accent-rgb),.42)}
#liveH3Count.is-pulsing{animation:liveH3Pulse 1.2s ease-out}
@keyframes liveH3Pulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--accent-rgb),.45)}55%{transform:scale(1.08);box-shadow:0 0 0 10px rgba(var(--accent-rgb),0)}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--accent-rgb),0)}}


/* PH7 Sci-Fi Purple + iOS hardening */
.ru-glass {
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  background: rgba(20,20,27,0.7);
  border: 1px solid var(--border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 24px 70px rgba(0,0,0,.34);
}
.ru-btn,
button.primary,
button.pill,
.ru-mobile-sticky-cta {
  border-radius: 30px;
  transition: transform 0.2s cubic-bezier(0.33, 1, 0.68, 1), box-shadow .2s ease, border-color .2s ease;
}
.ru-btn:active,
button.primary:active,
button.pill:active,
.ru-mobile-sticky-cta:active {
  transform: scale(0.96);
}
.black-gold-gradient,
.v7-aurora-gradient {
  background: linear-gradient(135deg, rgba(var(--primary-rgb),.22) 0%, rgba(var(--accent-rgb),.14) 100%);
}
/* 260525 SSOT v0.6: 删去重复 .hero-title 规则 (蓝色 PingFang SC sans 字体), 已统一用 --ru-font-display (Noto Serif SC) L141 */
.ru-live-stats{background:rgba(30,21,56,.70)!important;border:1px solid var(--border)!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.ru-live-stats strong{color:var(--text-main)!important}.ru-live-stats .muted{color:var(--text-muted)!important}
.landing-blueprint-form textarea{background:rgba(255,255,255,.05)!important;color:var(--text-main);border-color:var(--border)}
.landing-blueprint-form textarea:focus,input:focus,textarea:focus,select:focus{border-color:rgba(var(--primary-rgb),.72);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.12)}
.founder-note,.ru-step,.error-map span{background:rgba(255,255,255,.05)!important;border-color:var(--border)!important;color:var(--text-muted)!important}
.ru-step.is-active{background:rgba(var(--primary-rgb),.16)!important;border-color:rgba(var(--primary-rgb),.62)!important;color:var(--text-main)!important;box-shadow:0 0 24px rgba(var(--primary-rgb),.12)}
.ru-step.is-done{background:rgba(var(--primary-rgb),.10)!important;border-color:rgba(var(--primary-rgb),.45)!important;color:var(--primary)!important}
.ru-mobile-sticky-cta{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%)!important;box-shadow:0 18px 42px rgba(var(--primary-rgb),.32)!important}
.ru-feedback-btn{background:rgba(30,21,56,.86)!important;color:var(--accent)!important;border-color:rgba(var(--accent-rgb),.36)!important}
#liveH3Count{background:rgba(var(--primary-rgb),.16)!important;color:var(--primary)!important;border-color:rgba(var(--primary-rgb),.48)!important}
@keyframes liveH3Pulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--primary-rgb),.48)}55%{transform:scale(1.08);box-shadow:0 0 0 10px rgba(var(--primary-rgb),0)}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--primary-rgb),0)}}
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0.42); } 70% { box-shadow: 0 0 0 10px rgba(var(--primary-rgb), 0); } 100% { box-shadow: 0 0 0 0 rgba(var(--primary-rgb), 0); } }
@keyframes ru-scan-pulse{0%{box-shadow:0 0 0 0 rgba(var(--primary-rgb),.38),0 0 40px rgba(var(--primary-rgb),.30);transform:rotate(0deg)}70%{box-shadow:0 0 0 20px rgba(var(--primary-rgb),0),0 0 40px rgba(var(--primary-rgb),.30)}100%{box-shadow:0 0 0 0 rgba(var(--primary-rgb),0),0 0 40px rgba(var(--primary-rgb),.30);transform:rotate(360deg)}}
.ru-scan-orb{background:conic-gradient(from 0deg, var(--primary) 0%, transparent 70%)!important;box-shadow:0 0 40px rgba(var(--primary-rgb),.3)}
.ru-scan-orb::after{background:var(--surface)!important;color:var(--primary)!important;border-color:rgba(var(--primary-rgb),.46)!important}
body.visitor-funnel-mode .layout{background:transparent!important}
body.visitor-funnel-mode .hero .card{position:relative;overflow:hidden}
body.visitor-funnel-mode .hero .card::before{content:"";position:absolute;inset:-1px;background:radial-gradient(circle at 20% 12%,rgba(var(--primary-rgb),.24),transparent 36%),radial-gradient(circle at 82% 18%,rgba(var(--accent-rgb),.16),transparent 34%);pointer-events:none}
body.visitor-funnel-mode .hero .card>*{position:relative;z-index:1}
body.visitor-funnel-mode .topbar{background:rgba(10,10,12,.74)!important}
.landing-privacy,.ru-privacy-note{color:var(--text-muted)!important}
.feedback-panel{border-left:6px solid var(--primary)!important}

/* PH9 Mobile-first product UX additions */
button:disabled,
button.primary:disabled,
.ru-btn:disabled{
  opacity:.46!important;
  filter:grayscale(.35);
  cursor:not-allowed;
  transform:none!important;
  box-shadow:none!important;
}
.product-tier-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:20px;
}
.product-tier-card ul{padding-left:18px;line-height:1.75;color:var(--text-muted)}
.product-tier-card h3{margin:10px 0;color:var(--text-main)}
@media (max-width:1100px){.product-tier-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){
  body.visitor-funnel-mode .main{padding:18px 12px!important;}
  body.visitor-funnel-mode #content{display:block!important;}
  body.visitor-funnel-mode .hero{position:static!important;}
  .hero-title{font-size:clamp(2rem,10vw,3rem)!important;}
  .product-tier-grid{grid-template-columns:1fr;}
  .card.section,.hero .card{padding:20px!important;}
  .ru-live-stats{font-size:.92rem;line-height:1.7;}
  .pricing-card span[style*="4rem"]{font-size:3rem!important;}
}


/* PH9 viewport recognition + font consistency */
:root{--ru-font-sans:'IBM Plex Sans',system-ui,-apple-system,'PingFang SC','Noto Sans SC','Microsoft YaHei','Segoe UI',sans-serif;--ru-font-display:'Noto Serif SC','Songti SC','PingFang SC',serif;}
html,body,button,input,textarea,select{font-family:var(--ru-font-sans)!important;}
.hero-title,.brand h1,h1,h2,h3,.tag,.tag2,.stat strong,.pricing-card strong{font-family:var(--ru-font-display)!important;}
body.ru-wide.visitor-funnel-mode #content{grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr);}
body.ru-wide.visitor-funnel-mode .hero{position:sticky;top:96px;align-self:start;}
body.ru-mid.visitor-funnel-mode #content,body.ru-narrow.visitor-funnel-mode #content{display:block!important;}
body.ru-narrow .topbar{padding:12px 14px;}
body.ru-narrow .brand h1{font-size:1rem;}
body.ru-narrow .brand p{font-size:.82rem;}
body.ru-narrow .ru-live-stats{font-size:.9rem;}
body.ru-narrow .landing-blueprint-form textarea{min-height:88px;}

body.ru-narrow.visitor-funnel-mode .hero, body.ru-mid.visitor-funnel-mode .hero{position:static!important;top:auto!important;}

/* PH9 phone record retrieval */
.ru-phone-row{display:flex;gap:10px;align-items:stretch}
.ru-phone-row input{flex:1;min-width:0}
.ru-phone-row button{white-space:nowrap}
.ru-record-modal{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.58);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ru-record-modal.is-open{display:flex}
.ru-record-card{width:min(520px,100%);padding:24px;position:relative;border-radius:24px}
.ru-record-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:999px;padding:0;font-size:24px;line-height:1}
.ru-record-card input{width:100%;margin-bottom:12px;background:rgba(255,255,255,.05)}
@media (max-width:760px){.ru-phone-row{flex-direction:column}.ru-phone-row button{width:100%}.ru-record-card{padding:20px}}

/* V8.03 PC readability and conversion fixes */
.landing-submit-row{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:20px}
#landingBlueprintHint{display:block;line-height:1.75}
.human3-start-row{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-top:22px}
.human3-ack-label{display:flex;gap:10px;align-items:center;line-height:1.8}
.feedback-panel{position:relative;z-index:3}
.hero{z-index:1}
body.ru-wide.visitor-funnel-mode .main{font-size:17px}
body.ru-wide.visitor-funnel-mode .card,body.ru-wide.visitor-funnel-mode .section{line-height:1.78}

/* PH9 visitor nav + state restore */
.ru-visitor-nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 18px;
  padding:10px;
  border:1px solid rgba(var(--primary-rgb),.28);
  border-radius:22px;
  background:rgba(11,11,16,.72);
  box-shadow:0 12px 32px rgba(0,0,0,.22);
  position:sticky;
  top:10px;
  z-index:50;
}
.ru-visitor-nav-left,.ru-visitor-nav-right{display:flex;align-items:center;gap:8px;min-width:0}
.ru-visitor-nav-btn{min-height:40px;padding:9px 13px!important;white-space:nowrap}
.ru-visitor-nav-btn[aria-disabled="true"],.ru-visitor-nav-btn:disabled{opacity:.42!important;cursor:not-allowed!important;filter:grayscale(.45)}
.ru-nav-icon{display:inline-flex;margin-right:4px}
@media (max-width:480px){
  .ru-visitor-nav{gap:6px;padding:8px;border-radius:18px}
  .ru-visitor-nav-left,.ru-visitor-nav-right{gap:6px}
  .ru-visitor-nav-btn{min-width:44px;min-height:44px;padding:10px!important;color:#F2F2F7!important;border-color:rgba(242,242,247,.42)!important;background:rgba(10,10,12,.88)!important}
  .ru-nav-text,.ru-topnav-label{display:none!important}
  .ru-nav-icon,.ru-topnav-icon{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin-right:0;color:#F2F2F7!important}
}


/* PH11 Owner card + sidebar repair */
body.sidebar-collapsed:not(.visitor-funnel-mode) .layout{grid-template-columns:72px minmax(0,1fr);}
body.sidebar-collapsed:not(.visitor-funnel-mode) .sidebar{overflow:hidden;opacity:.82;}
body.sidebar-collapsed:not(.visitor-funnel-mode) .sidebar .item span,
body.sidebar-collapsed:not(.visitor-funnel-mode) .sidebar .item .quick-action{display:none!important;}
.ph11-owner-check-card[data-owner-only="true"]{display:block;}
body.visitor-funnel-mode [data-owner-only="true"]{display:none!important;}
.ru-protected-content{user-select:none;-webkit-user-select:none;position:relative;border:1px dashed rgba(var(--accent-rgb),.45);border-radius:18px;padding:12px;background:rgba(var(--accent-rgb),.08)}
.ru-protected-content::after{content:attr(data-watermark);position:absolute;right:12px;bottom:8px;opacity:.42;font-size:.75rem;pointer-events:none;}

/* PH12 Jane first-visitor UX: Phase A finding — first visitor felt "云里雾里" without N/13 progress or scene framing. */
.ru-progress{position:sticky;top:72px;z-index:40;margin:0 0 16px;padding:12px 14px;border:1px solid rgba(var(--primary-rgb),.34);border-radius:18px;background:rgba(255,255,255,.88);box-shadow:0 12px 28px rgba(15,23,42,.08);backdrop-filter:blur(12px)}
.ru-progress-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:900;color:var(--text)}
.ru-progress-top strong{color:var(--primary);font-size:1.05rem}.ru-progress-track{height:8px;margin-top:8px;border-radius:999px;background:rgba(var(--primary-rgb),.12);overflow:hidden}.ru-progress-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 0 12px var(--primary)}
.ru-progress .muted{margin:8px 0 0;font-size:.9rem}.ru-scene-header{margin:0 0 16px;padding:16px 18px;border-radius:22px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.10),rgba(var(--accent-rgb),.12));border:1px solid rgba(var(--primary-rgb),.22)}

/* Batch 3: Blueprint Step Transitions */
.ru-step-container { opacity: 0; transform: translateY(20px); display: none; }
.ru-step-active {
  display: block !important;
  animation: ruStepEntry 0.65s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes ruStepEntry {
  0% { opacity: 0; transform: translateY(30px) scale(0.96); filter: blur(12px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

.ru-scene-header h2{margin:8px 0 6px;font-size:clamp(1.25rem,4.8vw,1.9rem)}.ru-scene-header p{margin:0;line-height:1.7}
@media (max-width: 760px) {
  .ru-mobile-sticky-cta {
    display: flex !important;
    position: fixed !important;
    bottom: 34px !important;
    left: 20px !important;
    right: 20px !important;
    width: calc(100% - 40px) !important;
    min-height: 56px !important;
    border-radius: 28px !important;
    background: linear-gradient(135deg, rgba(var(--primary-rgb), 0.85), rgba(var(--accent-rgb), 0.85)) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
    font-weight: 900 !important;
    justify-content: center;
    align-items: center;
    z-index: 1000;
  }
}
body.theme-dark .ru-progress{background:rgba(17,24,39,.86);border-color:rgba(var(--primary-rgb),.45)}body.theme-dark .ru-scene-header{background:rgba(var(--primary-rgb),.12);border-color:rgba(var(--primary-rgb),.35)}
@media(max-width:720px){.ru-progress{top:8px;margin-bottom:14px}.ru-progress-top{font-size:.95rem}.ru-scene-header{padding:14px}}

/* 260504 PH13 B3 V9.6 Offer UX redesign — value anchor / inline QR / capacity / corner customer service / countdown emphasis */
.ru-offer-tiers-v96{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.ru-tier-with-qr{padding:20px;display:flex;flex-direction:column;gap:12px;border-radius:18px}
.ru-tier-with-qr.is-selected{border:2px solid var(--gold,#D4AF37);box-shadow:0 0 0 4px rgba(var(--gold-rgb),.18)}
.ru-tier-anchor{font-size:1.02rem;line-height:1.55}
.ru-tier-anchor .ru-anchor-name{font-weight:700}
.ru-tier-anchor .ru-anchor-original{color:rgba(120,120,120,.85);font-size:.95rem;margin:0 4px}
.ru-tier-anchor .ru-anchor-current{font-size:1.6rem;color:var(--gold,#D4AF37);margin-left:4px}
.ru-tier-remaining{font-size:.92rem;padding:6px 10px;border-radius:999px;background:rgba(var(--primary-rgb),.08);border:1px solid rgba(var(--primary-rgb),.18);align-self:flex-start}
.ru-tier-remaining-daily,.ru-tier-remaining-cumulative{background:linear-gradient(135deg,rgba(var(--gold-rgb),.18),rgba(var(--gold-rgb),.08));border-color:rgba(var(--gold-rgb),.45);color:var(--gold,#D4AF37);font-weight:600}
.ru-tier-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border-radius:14px;background:rgba(255,255,255,.6);border:1px dashed rgba(var(--primary-rgb),.28)}
.ru-tier-qr{max-width:200px;width:100%;height:auto;border-radius:10px;background:#fff;padding:6px}
.ru-tier-qr-hint{font-size:.82rem;text-align:center}
.ru-tier-tagline{margin:4px 0 0;font-size:.92rem;line-height:1.55}
.ru-tier-qr-fallback{margin-top:6px}

/* R3 双计数器并列 */
.ru-offer-capacity.ru-capacity-v96{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.ru-capacity-cell{padding:14px 16px;border-radius:14px;border:1px solid rgba(var(--primary-rgb),.22);background:linear-gradient(135deg,rgba(var(--primary-rgb),.06),rgba(var(--accent-rgb),.04));text-align:center}
.ru-capacity-cell.ru-capacity-daily{border-color:rgba(var(--gold-rgb),.55);background:linear-gradient(135deg,rgba(var(--gold-rgb),.16),rgba(var(--gold-rgb),.04))}
.ru-capacity-label{font-size:.85rem;color:var(--muted,#666);margin-bottom:6px}
.ru-capacity-num strong{font-size:1.85rem;font-weight:800;color:var(--primary)}
.ru-capacity-cell.ru-capacity-daily .ru-capacity-num strong{color:var(--gold,#D4AF37)}
.ru-capacity-num .muted{font-size:.95rem;margin-left:4px}

/* R2 倒计时放大反色 */
.ru-lock-timer{margin-top:14px;padding:14px 18px;border-radius:14px;background:linear-gradient(135deg,var(--gold,#D4AF37),#E6BE6A);color:#fff;font-size:1.1rem;line-height:1.55;text-align:center;box-shadow:0 6px 18px rgba(var(--gold-rgb),.32)}
.ru-lock-timer strong{font-size:1.4rem;font-weight:900;letter-spacing:.04em;color:#fff}
@media(max-width:720px){.ru-lock-timer{font-size:1rem}.ru-lock-timer strong{font-size:1.2rem}}

/* R5 客服 corner FAB（底部右侧 floating，不抢主视觉） */
.ru-cs-corner{position:fixed;bottom:24px;right:24px;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.ru-cs-corner > *{pointer-events:auto}
.ru-cs-toggle{padding:10px 16px;border-radius:999px;border:1px solid rgba(var(--primary-rgb),.32);background:rgba(255,255,255,.92);color:var(--primary);font-weight:600;font-size:.92rem;box-shadow:0 4px 14px rgba(0,0,0,.12);cursor:pointer;transition:transform .15s ease}
.ru-cs-toggle:hover{transform:translateY(-1px)}
.ru-cs-panel{padding:14px;border-radius:16px;background:rgba(255,255,255,.98);border:1px solid rgba(var(--primary-rgb),.22);box-shadow:0 12px 32px rgba(0,0,0,.18);max-width:240px;display:flex;flex-direction:column;gap:8px;align-items:center}
.ru-cs-panel[hidden]{display:none}
.ru-cs-panel-head{font-size:.92rem;font-weight:600;color:var(--primary);text-align:center}
.ru-cs-panel-body{font-size:.88rem;color:var(--muted,#555);text-align:center}
.ru-cs-panel-qr{max-width:180px;width:100%;border-radius:10px;background:#fff;padding:6px}
.ru-cs-close{font-size:.85rem}
@media(max-width:720px){.ru-cs-corner{bottom:14px;right:14px}.ru-cs-toggle{padding:8px 12px;font-size:.85rem}.ru-cs-panel{max-width:200px;padding:10px}}
body.theme-dark .ru-cs-toggle{background:rgba(17,24,39,.92);color:var(--accent)}
body.theme-dark .ru-cs-panel{background:rgba(17,24,39,.96);border-color:rgba(var(--primary-rgb),.4)}
body.theme-dark .ru-tier-qr-wrap{background:rgba(17,24,39,.55);border-color:rgba(var(--primary-rgb),.45)}


/* 260505 PH13 B3 V9.6.1 - package-content cards + payment modal + visitor Account */
.ru-offer-tiers-v961{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.ru-tier-package-card{padding:20px;display:flex;flex-direction:column;gap:12px;border-radius:18px;position:relative}
.ru-tier-package-card.is-selected{border:2px solid var(--gold,#D4AF37);box-shadow:0 0 0 4px rgba(var(--gold-rgb),.18)}

/* 260516 offer funnel P0: immediate subscription CTA (260520 fix: 删 order:-10 让 gold 按钮回 DOM 顺序 + margin-top:auto 推到底部, 与 Level 1/2 即将开放按钮位置一致, gold 色保留视觉强调) */
.ru-btn-subscribe-gold{
  background:linear-gradient(135deg,var(--gold,#D4AF37),var(--gold-soft,#E6BE6A))!important;
  border-color:rgba(var(--gold-rgb,212,175,55),.82)!important;
  color:#1f1600!important;
  font-weight:950!important;
  box-shadow:0 16px 42px rgba(var(--gold-rgb),.34)!important;
}
.ru-btn-subscribe-gold:hover{box-shadow:0 18px 48px rgba(var(--gold-rgb),.42)!important;filter:saturate(1.08)}
/* 260525 SSOT v0.6 §3 RUPD button/CTA bright-yellow 专属 wire-up: 标准 CTA (非高端 gold subscribe) */
.ru-btn-bright-yellow{
  background:linear-gradient(135deg,var(--bright-yellow,#FFC83D),#FFB300)!important;
  border-color:rgba(var(--bright-yellow-rgb,255,200,61),.82)!important;
  color:#1f1600!important;
  font-weight:900!important;
  box-shadow:0 14px 36px rgba(var(--bright-yellow-rgb,255,200,61),.28)!important;
}
.ru-btn-bright-yellow:hover{box-shadow:0 16px 42px rgba(var(--bright-yellow-rgb,255,200,61),.36)!important;filter:saturate(1.06)}
/* 260525 SSOT v0.6 §4.3 primary split: light scene heading 上下文切换 */
.ru-light-surface,.ru-on-cream,.feedback-panel.is-light{background:var(--rup-claude-cream);color:var(--rup-text-on-cream)}
.ru-light-surface h1,.ru-light-surface h2,.ru-light-surface h3,.ru-on-cream h1,.ru-on-cream h2,.ru-on-cream h3,.ru-light-surface .hero-title{color:var(--rup-text-on-cream)!important;text-shadow:none!important}
.ru-tier-package-card.is-disabled{opacity:.58;filter:grayscale(.35);background:rgba(120,120,120,.08)}
.ru-tier-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ru-tier-disabled-badge{font-size:.82rem;font-weight:800;padding:5px 10px;border-radius:999px;background:rgba(120,120,120,.16);color:var(--muted,#666);border:1px solid rgba(120,120,120,.25)}
.ru-tier-price-split{display:grid;gap:6px;justify-items:center}
.ru-price-label{font-size:.86rem;font-weight:800;color:var(--muted,#666);margin-right:4px}
.ru-tier-anchor .ru-anchor-original{text-decoration:line-through;text-decoration-thickness:2px;color:rgba(120,120,120,.82)}
.ru-tier-anchor .ru-anchor-current{font-size:1.7rem;color:var(--gold,#D4AF37);font-weight:950}
.ru-package-content{padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.08),rgba(var(--gold-rgb),.08));border:1px solid rgba(var(--primary-rgb),.18)}
.ru-package-content strong{display:block;margin-bottom:8px;color:var(--primary);font-size:1.02rem}
.ru-package-content ul{margin:0;padding-left:18px;line-height:1.65}
.ru-package-content li{margin:2px 0}.ru-tier-disabled-btn{cursor:not-allowed}.ru-tier-subscribe{margin-top:auto}
.ru-payment-modal-backdrop{position:fixed;inset:0;z-index:180;background:rgba(10,10,18,.62);display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(8px)}
.ru-payment-modal-card{position:relative;max-width:520px;width:min(100%,520px);max-height:92vh;overflow:auto;padding:24px;border-radius:24px;background:var(--card,#fff);color:var(--text,#1f2937);border:1px solid rgba(var(--primary-rgb),.24);box-shadow:0 24px 80px rgba(0,0,0,.28)}
.ru-payment-modal-x{position:absolute;top:12px;right:14px;border:0;background:transparent;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--muted,#666)}
.ru-payment-modal-qr-wrap{display:flex;justify-content:center;margin:16px 0;padding:14px;border-radius:18px;background:#fff;border:1px dashed rgba(var(--primary-rgb),.28)}
.ru-payment-modal-qr{max-width:260px;width:100%;height:auto;border-radius:14px}.ru-payment-modal-actions{justify-content:center;gap:12px}.ru-payment-modal-note{font-size:.86rem;line-height:1.6;margin-top:12px}.ru-account-view .status{font-size:1.02rem}
.ru-prepay-tip{margin:12px auto 4px;padding:10px 12px;border-radius:14px;border:2px solid var(--gold,#D4AF37);background:rgba(var(--gold-rgb),.12);color:var(--primary,#9D66FF);font-size:15px;font-weight:900;line-height:1.55;text-align:center}
@media(max-width:720px){.ru-offer-tiers-v961{grid-template-columns:1fr}.ru-package-content ul{max-height:220px;overflow:auto}.ru-payment-modal-backdrop{align-items:flex-end;padding:10px}.ru-payment-modal-card{border-radius:22px 22px 12px 12px;padding:20px}.ru-payment-modal-actions{flex-direction:column}.ru-payment-modal-actions .ru-btn{width:100%}.ru-payment-modal-qr{max-width:220px}}
body.theme-dark .ru-payment-modal-card{background:#111827;color:#F9FAFB;border-color:rgba(var(--primary-rgb),.42)}
body.theme-dark .ru-package-content{background:rgba(var(--primary-rgb),.14);border-color:rgba(var(--primary-rgb),.35)}

/* v9.6.8 visitor entry progress: gold focus + real stepper done state */
.field input:focus,
.field textarea:focus {
  border: 2px solid var(--gold);
  box-shadow: 0 0 0 3px rgba(var(--gold-rgb), 0.20);
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.ru-step.is-done {
  background: rgba(35, 134, 84, .14);
  border-color: rgba(35, 134, 84, .45);
  color: #1f7a4d;
  font-weight: 800;
}
.ru-step.is-done::before {
  content: "✓ ";
}
.ru-step-counter {
  margin: 8px 0 14px;
}

/* 260507 Batch B mobile UX P0: button tokens + mobile-only safety fixes. */
/* 260525 SSOT v0.6: primary CTA gold→#7c3aed purple per spec accent (was --gold #D4AF37) */
/* 260525 P-260525-002+003 visual gemba Gemini 74→fix: presale banner amber→紫 + notegrid cream→深紫 glass */
.ru-presale-top-banner.warn,
.ru-presale-top-banner.status.warn {
  background: linear-gradient(135deg, rgba(124,58,237,.14), rgba(124,58,237,.06)) !important;
  border-color: rgba(124,58,237,.42) !important;
  color: #e9d8ff !important;
}
.ru-presale-top-banner strong { color: #c4b5fd !important; }
.notegrid .item {
  background: linear-gradient(135deg, rgba(124,58,237,.10), rgba(42,21,71,.55)) !important;
  color: #f7f0ff !important;
  border: 1px solid rgba(124,58,237,.32) !important;
}
.notegrid .item strong { color: #e9d8ff !important; }
.ru-btn-primary,
button.ru-btn-primary,
a.ru-btn-primary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 20px!important;
  border-radius:8px!important;
  border:1px solid var(--primary)!important;
  background:var(--primary)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:600!important;
  line-height:1.2;
  width:auto;
  text-align:center;
}
.ru-btn-secondary,
button.ru-btn-secondary,
a.ru-btn-secondary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 20px!important;
  border-radius:8px!important;
  /* 260604 (Richard "最大转换率"): 通用 secondary 富贵金→紫 — 修 cold-path 永禁色根因(human3/landing/blueprint 等 JS 注入 secondary 曾渲染 #D4AF37 违 RUPD 视觉契约) + 金色仅留 .ru-btn-subscribe-gold 转化 CTA, 强化层级. secondary 全为真·次要动作(返回/关闭/查看/清空), 非转化键, 改紫零转化损失 */
  border:1px solid var(--primary,#9D66FF)!important;
  background:transparent!important;
  color:var(--primary,#9D66FF)!important;
  font-size:15px!important;
  font-weight:600!important;
  line-height:1.2;
  width:auto;
  text-align:center;
}
.ru-result-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.ru-feedback-placeholder-backdrop{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.62);backdrop-filter:blur(8px)}
.ru-feedback-placeholder-card{width:min(520px,100%);padding:24px;border-radius:24px}
@media (max-width:480px){
  body{padding-bottom:0}
  .ru-mobile-sticky-cta,
  .ru-feedback-btn,
  .ru-cs-corner{display:none!important}
  .ru-progress-counter,
  .ru-step-counter,
  #human3Counter{position:sticky!important;top:0!important;z-index:120!important;background:rgba(10,10,12,.96)!important;color:#F2F2F7!important;padding:10px 12px!important;border:1px solid rgba(var(--gold-rgb),.45)!important;border-radius:12px!important;box-shadow:0 10px 28px rgba(0,0,0,.24)}
  .ru-btn-primary,
  button.ru-btn-primary,
  a.ru-btn-primary,
  .ru-btn-secondary,
  button.ru-btn-secondary,
  a.ru-btn-secondary{min-height:44px;font-size:16px!important}
  .ru-result-cta-row{flex-direction:column}
  .ru-result-cta-row .ru-btn-primary,
  .ru-result-cta-row .ru-btn-secondary{width:100%}
}


/* 260508 B5+B6 UI hardening: color system, feedback, password toggles. */
body.visitor-funnel-mode { background: var(--rup-purple-deep); color: var(--rup-text-on-purple); }
body.visitor-funnel-mode .card,
body.visitor-funnel-mode .section,
body.visitor-funnel-mode .panel { color: var(--rup-text-on-purple); }
body.visitor-funnel-mode input,
body.visitor-funnel-mode textarea,
body.visitor-funnel-mode select,
.ru-feedback-placeholder-card,
.ru-record-card,
.ru-payment-modal-card,
.ru-cs-panel,
.ru-progress,
.ru-scene-header,
.founder-note,
.ru-live-stats,
.ru-step,
.notegrid .item {
  background: linear-gradient(135deg, rgba(124,58,237,.10), rgba(42,21,71,.55)) !important;
  color: #f7f0ff !important;
  border: 1px solid rgba(124,58,237,.28) !important;
}
.founder-note strong, .ru-live-stats strong, .ru-step strong, .notegrid .item strong { color: #e9d8ff !important; }
.notegrid .item { background: linear-gradient(135deg, rgba(124,58,237,.10), rgba(42,21,71,.55)) !important; color: #f7f0ff !important; }
.founder-note .muted, .ru-live-stats .muted { color: rgba(247,240,255,.72) !important; }
body.visitor-funnel-mode input::placeholder,
body.visitor-funnel-mode textarea::placeholder { color: rgba(247,240,255,.6) !important; }  /* 260605 fix(Richard): 旧深navy rgba(42,27,92,.58) 在暗底 input 上 dark-on-dark 看不清 → 浅紫白 .6 (清晰但弱于已填文字) */
body.visitor-funnel-mode select,
body.visitor-funnel-mode select option,
#feedbackModalType,
#feedbackPageType { background-color: var(--rup-claude-cream) !important; color: var(--rup-text-on-cream) !important; }
.ru-progress-top { color: var(--rup-text-on-cream) !important; }
.ru-progress-part-label { display:none !important; }
.ru-feedback-counter { display:block; margin-top:8px; font-weight:800; color:var(--gray-500,#6B7280)!important; background:transparent!important; }
.ru-feedback-counter.is-bad, .ru-feedback-counter.is-ok { color:var(--gray-500,#6B7280)!important; background:transparent!important; }
.ru-feedback-error { color:#B42318 !important; }
button[disabled], .ru-btn[disabled], .ru-feedback-submit[disabled] { opacity:.5 !important; cursor:not-allowed !important; transform:none !important; box-shadow:none !important; }
.ru-feedback-actions { display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; margin-top:14px; }
.ru-btn-cta-uniform { display:inline-flex !important; align-items:center !important; justify-content:center !important; min-height:48px !important; padding:12px 1.2ch !important; border-radius:8px !important; width:fit-content !important; line-height:1.2 !important; white-space:normal !important; }
.ru-pwd-wrap { display:flex; align-items:center; gap:8px; }
.ru-pwd-wrap input { flex:1; min-width:0; }
.ru-pwd-toggle { min-height:44px; padding:10px 12px !important; border-radius:12px !important; background:var(--rup-claude-cream) !important; color:var(--rup-text-on-cream) !important; border:1px solid rgba(var(--primary-rgb),.28) !important; }
@media (max-width:480px){ .ru-feedback-actions { flex-direction:column; } .ru-feedback-actions .ru-btn { width:100%; } }


/* ============================================================
   260523 PH14 — Codex C Native 7-Tab Shell (per OpenSpec redesign-richup-uiux-A-kimi-with-gemini-codex-detail-compare)
   主架构: A (Kimi proposal_A.md) — 7 Tab IA: 关于我们 / 大师分享 / 免费自测 / 7日体验 / 睿趣社 / 会员空间 / 联系我们
   实施: C (Codex CLI native) — 单 URL + hidden panel toggle 主, 7 URL server-side redirect 兼容
   Form 保护: 不改 .render() / 不清空 input/textarea/select / blur() 切换前
   Cold-path 富贵金禁: assessment/trial/about/masters/community/contact panel 禁 #D4AF37 / --gold / gold
============================================================ */
:root {
  --rup-bg: #120b24;
  --rup-surface: rgba(255,255,255,.064);
  --rup-surface-strong: rgba(255,255,255,.10);
  --rup-text: #f7f0ff;
  --rup-muted: rgba(247,240,255,.68);
  --rup-purple: #9D66FF;
  --rup-purple-soft: #CBA1FF;  /* 260605 rrxs soft-violet */
  --rup-blue: #8B5CF6;  /* 260605 rrxs re-cast: 橙 #D2734D → 紫 #8B5CF6 (kill 杂色, rrxs 同族); 变量名留兼容 PH14 7-tab 内部引用 */
  --rup-glow: 0 24px 80px rgba(var(--primary-rgb),.20);
  --rup-glow-strong: 0 18px 52px rgba(203,161,255,.34);
  --rup-pill: 999px;
  --rup-radius: 22px;
}
.rup-native-shell { position: relative; margin: 0 0 18px; padding: 0; }
.rup-native-shell *, .rup-native-shell *::before, .rup-native-shell *::after { box-sizing: border-box; }
.rup-topbar {
  position: sticky; top: 0; z-index: 90;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 18px; margin: 0 0 14px;
  background: rgba(18, 11, 36, .76);
  border: 1px solid rgba(var(--primary-rgb), .22);
  border-radius: var(--rup-radius);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  box-shadow: var(--rup-glow);
}
.rup-topbar-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
/* 260530 Wave13 (per Richard: topbar 品牌区太小, 至少 2 倍) — strong/wordmark 1.08→2.2rem, 副标题 .82→1.6rem */
.rup-topbar-brand strong { font-family: 'Noto Serif SC', serif; font-weight: 900; color: var(--rup-text); font-size: 2.2rem; letter-spacing: .01em; }
.rup-topbar-brand > span { color: var(--rup-muted); font-size: 1.6rem; }
.rup-tabbar {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  list-style: none; margin: 0; padding: 0;
}
.rup-tabbar a[data-rup-tab] {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 8px 14px; min-height: 36px;
  border-radius: var(--rup-pill);
  border: 1px solid rgba(var(--primary-rgb), .28);
  background: rgba(255, 255, 255, .04);
  color: var(--rup-muted);
  font-size: .92rem; font-weight: 700; letter-spacing: .01em;
  text-decoration: none; cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.rup-tabbar a[data-rup-tab]:hover { background: rgba(var(--primary-rgb), .12); color: var(--rup-text); border-color: rgba(var(--primary-rgb), .55); }
.rup-tabbar a[data-rup-tab][aria-selected="true"] {
  background: linear-gradient(135deg, rgba(var(--primary-rgb), .28), rgba(var(--accent-rgb), .18));
  color: var(--rup-text);
  border-color: rgba(203, 161, 255, .62);
  box-shadow: 0 0 0 2px rgba(var(--primary-rgb), .18), 0 12px 28px rgba(var(--primary-rgb), .18);
}
.rup-tabbar a[data-rup-tab]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(var(--primary-rgb), .55);
}
.rup-mobile-toggle { display: none; }
@media (max-width: 760px) {
  .rup-topbar { flex-direction: row; padding: 10px 14px; }
  .rup-tabbar { display: none; flex-direction: column; gap: 6px; width: 100%; margin-top: 10px; }
  .rup-tabbar.is-open { display: flex; }
  .rup-tabbar a[data-rup-tab] { width: 100%; min-height: 44px; font-size: .96rem; padding: 10px 14px; justify-content: flex-start; }
  .rup-mobile-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px;
    border-radius: 12px;
    border: 1px solid rgba(var(--primary-rgb), .35);
    background: rgba(var(--primary-rgb), .14);
    color: var(--rup-text); font-size: 1.2rem; cursor: pointer;
  }
  .rup-native-shell { position: relative; }
  .rup-topbar { flex-wrap: wrap; }
}
.rup-panel[hidden] { display: none !important; }
.rup-panel { animation: rupPanelFade .28s ease-out; padding: 4px 0 8px; }
@keyframes rupPanelFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.rup-panel-intro { margin: 0 0 14px; padding: 18px 20px; border-radius: var(--rup-radius); background: var(--rup-surface); border: 1px solid rgba(var(--primary-rgb), .22); }
.rup-panel-intro h2 { margin: 0 0 8px; font-family: 'Noto Serif SC', serif; font-weight: 900; color: var(--rup-text); font-size: clamp(1.2rem, 3.2vw, 1.7rem); }
.rup-panel-intro p { margin: 0; color: var(--rup-muted); line-height: 1.78; font-size: 1rem; }
.rup-hero-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin: 0 0 14px;
}
.rup-hero-card {
  padding: 18px; border-radius: var(--rup-radius);
  background: var(--rup-surface-strong);
  border: 1px solid rgba(var(--primary-rgb), .22);
  color: var(--rup-text);
  display: flex; flex-direction: column; gap: 8px;
}
.rup-hero-card h3 { margin: 0; font-family: 'Noto Serif SC', serif; font-weight: 800; color: var(--rup-text); font-size: 1.08rem; }
.rup-hero-card p { margin: 0; color: var(--rup-muted); line-height: 1.7; font-size: .95rem; }
.rup-soft-card {
  padding: 16px 18px; border-radius: var(--rup-radius);
  background: rgba(255, 255, 255, .03);
  border: 1px solid rgba(var(--primary-rgb), .18);
  color: var(--rup-text); margin: 0 0 12px;
}
/* Cold-path 富贵金禁: assessment/trial/about/masters/community/contact panel 内
   严禁出现 --gold / gold-class / #D4AF37 视觉; 富贵金仅允许 member/payment 已成交后 */
.rup-panel[data-rup-panel="assessment"] .ru-btn-subscribe-gold,
.rup-panel[data-rup-panel="trial"] .ru-btn-subscribe-gold,
.rup-panel[data-rup-panel="about"] .ru-btn-subscribe-gold,
.rup-panel[data-rup-panel="masters"] .ru-btn-subscribe-gold,
.rup-panel[data-rup-panel="community"] .ru-btn-subscribe-gold,
.rup-panel[data-rup-panel="contact"] .ru-btn-subscribe-gold {
  background: linear-gradient(135deg, var(--rup-purple), var(--rup-blue)) !important;
  border-color: rgba(var(--primary-rgb), .62) !important;
  color: #fff !important;
  box-shadow: 0 14px 38px rgba(var(--primary-rgb), .28) !important;
}
.rup-panel[data-rup-panel="assessment"] .ru-callout-gold,
.rup-panel[data-rup-panel="trial"] .ru-callout-gold,
.rup-panel[data-rup-panel="about"] .ru-callout-gold,
.rup-panel[data-rup-panel="masters"] .ru-callout-gold,
.rup-panel[data-rup-panel="community"] .ru-callout-gold,
.rup-panel[data-rup-panel="contact"] .ru-callout-gold {
  border: 1px solid rgba(var(--primary-rgb), .42) !important;
  background: rgba(var(--primary-rgb), .10) !important;
  border-left: 4px solid var(--rup-purple) !important;
  box-shadow: 0 12px 28px rgba(var(--primary-rgb), .14);
}
.rup-panel[data-rup-panel="member"],
.rup-panel[data-rup-panel="payment"] { /* member + payment 仍可用富贵金 (visitor 已 commit) */ }

/* ============================================================
   260528 UIUX v2 — Selfstudy Day N 3-column grid + RUPF font/wordmark align
   (per Richard 反馈: 字体 / 左右栏 / ### + L1/L2/L3 换行)
   ============================================================ */

/* RichUP wordmark gradient (RUPF "RRXS" style purple gradient) */
/* 260528 Wave8 fix (per Richard 截图 Issue 1): `.brand h1 .ru-wordmark` 太窄 — rup-topbar-brand strong 仍走 L658 Noto Serif SC 衬线 (截图证实). 改通用 `.ru-wordmark` 让任何位置都生效 (topbar-brand / dashboard / about / 未来新增点全覆盖). */
.brand h1 {
  letter-spacing: -.01em;
}
.ru-wordmark {
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.1em;
  background: linear-gradient(135deg, #f5ecff, #cf8bff 42%, #8b5cf6);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -.02em;
}

/* Selfstudy day 3-column grid (左 toc / 中 main / 右 notes) */
body.visitor-funnel-mode .ru-selfstudy-day {
  /* 260528 Wave1 fix (per critic-opus P0): #content @>=1024px 是 grid 1.1fr/0.9fr 2-col, .ru-selfstudy-day 单 child 被挤进 ~55% 轨道 ~638px. 加 grid-column: 1/-1 跨满父 grid 两列, max-width 1200 才真生效. */
  max-width: 1200px;
  width: 100%;
  margin: 18px auto;
  padding: 0;
  background: transparent;
  border: none;
  grid-column: 1 / -1;
}
.ru-selfstudy-grid {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) minmax(220px, 280px);
  gap: 20px;
  align-items: start;
  /* 260528 Wave8 (per Richard Issue 2c): grid 列宽随 aside collapse 状态自适应, 中间 main 自动扩宽 */
  transition: grid-template-columns .26s ease;
}
.ru-selfstudy-grid.toc-collapsed {
  grid-template-columns: 88px minmax(0, 1fr) minmax(220px, 280px);
}
.ru-selfstudy-grid.notes-collapsed {
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr) 88px;
}
.ru-selfstudy-grid.toc-collapsed.notes-collapsed {
  grid-template-columns: 88px minmax(0, 1fr) 88px;
}
.ru-selfstudy-grid > aside {
  position: sticky;
  top: 88px;
  max-height: calc(100vh - 100px);
  overflow: auto;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--line, rgba(255,255,255,.08));
  border-radius: 14px;
  padding: 14px 12px;
}
.ru-selfstudy-grid > .ru-selfstudy-main {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--line, rgba(255,255,255,.08));
  border-radius: 16px;
  padding: 22px 26px 28px;
  min-width: 0;
}

/* Toc + Notes aside common */
.ru-aside-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  border: none;
  color: var(--text, #f2f2f7);
  font-family: var(--ru-font-sans);
  font-size: .92rem;
  font-weight: 700;
  padding: 4px 2px 10px;
  cursor: pointer;
  letter-spacing: .02em;
}
.ru-aside-toggle .ru-aside-chev {
  /* 260528 Wave10 fix (per Richard 反馈): chev 字符由 JS textContent 切换 (不用 rotate, Unicode 旋转视觉不可靠). 仍保 inline-block 利于 hover/transition. */
  display: inline-block;
  transform-origin: center center;
  transition: color .22s ease;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
}
.ru-aside-toggle[aria-expanded="false"] .ru-aside-chev { /* Wave 10: 不再用 rotate (JS 切 textContent), 此 rule 保留空, 留 hook 后续如要加额外 collapsed 样式可用 */ }
/* 260528 Wave2 fix (per critic-opus P2): max-height auto→0 无法 transition. 改 grid-template-rows 1fr↔0fr (现代 CSS-tricks 模式), opacity 同步动. */
.ru-aside-panel {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows .22s ease, opacity .22s ease;
  overflow: hidden;
  padding: 0 2px; /* 260606 P0-3: 与 toggle padding 对齐, 修内容未左对齐错位 (Richard 反馈) */
}
.ru-aside-panel > p { text-align: left; margin-left: 0; padding-left: 2px; word-break: break-word; }
.ru-aside-panel > * { min-height: 0; }
.ru-aside-toggle[aria-expanded="false"] + .ru-aside-panel { grid-template-rows: 0fr; opacity: 0; pointer-events: none; }

/* 260528 Wave8 fix (per Richard 截图 Issue 2): aside collapsed 不只 toggle button — 显 mini 标签 (左: 当前 active Day N; 右: "笔记" 竖排). 88px 给 mini label 留空间. 中间 main 通过 grid-template-columns adapt 自动扩宽 (见 .ru-selfstudy-grid.toc-collapsed/.notes-collapsed). */
.ru-selfstudy-grid > aside { transition: max-width .26s ease, padding .26s ease, opacity .22s ease; }
.ru-selfstudy-grid > aside.aside-collapsed {
  max-width: 88px;
  padding: 14px 8px;
  overflow: hidden;
}
.ru-selfstudy-grid > aside.aside-collapsed .ru-aside-title { display: none; }
.ru-selfstudy-grid > aside.aside-collapsed .ru-aside-toggle {
  padding: 4px 0;
  justify-content: center;
}

/* Left toc collapsed: 260528 Wave10 (per Richard 反馈): 显**全部** Day 1-7 (只隐主题), active 高亮 */
.ru-selfstudy-toc-aside.aside-collapsed .ru-aside-panel { display: block; }
.ru-selfstudy-toc-aside.aside-collapsed .ru-selfstudy-toc-list { display: flex; flex-direction: column; gap: 4px; }
.ru-selfstudy-toc-aside.aside-collapsed .ru-selfstudy-toc-item {
  display: block;
  padding: 8px 4px;
  text-align: center;
  background: transparent;
  border-radius: 6px;
  border: 1px solid transparent;
}
.ru-selfstudy-toc-aside.aside-collapsed .ru-selfstudy-toc-item strong {
  display: block;
  font-size: .86rem;
  font-family: 'IBM Plex Sans', var(--ru-font-sans);
  letter-spacing: .04em;
}
.ru-selfstudy-toc-aside.aside-collapsed .ru-selfstudy-toc-item span { display: none; }
.ru-selfstudy-toc-aside.aside-collapsed .ru-selfstudy-toc-item.active {
  background: rgba(157, 102, 255, .12);
  border-color: rgba(157, 102, 255, .35);
}
.ru-selfstudy-toc-aside.aside-collapsed .ru-selfstudy-toc-item.active strong {
  color: var(--rup-purple, #9D66FF);
}

/* Right notes collapsed: 仅显 "笔记" mini-label (竖排), 隐 textarea + hint */
.ru-selfstudy-notes-aside.aside-collapsed .ru-aside-panel { display: none; }
.ru-selfstudy-notes-aside.aside-collapsed::after {
  content: "笔记";
  display: block;
  text-align: center;
  margin-top: 14px;
  font-family: var(--ru-font-display, 'Noto Serif SC', serif);
  font-size: .92rem;
  color: var(--rup-text-secondary, rgba(255,255,255,.65));
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing: .25em;
  margin-left: auto;
  margin-right: auto;
}

/* Toc list (Day 1-7 便签卡片) */
.ru-selfstudy-toc-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ru-selfstudy-toc-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(var(--primary-rgb),.05);
  border: 1px solid rgba(var(--primary-rgb),.15);
  color: var(--text, #f2f2f7);
  text-decoration: none;
  transition: background .15s, border-color .15s, transform .12s;
}
.ru-selfstudy-toc-item:hover {
  background: rgba(var(--primary-rgb),.14);
  border-color: rgba(var(--primary-rgb),.32);
  transform: translateX(2px);
}
.ru-selfstudy-toc-item.active {
  background: rgba(var(--primary-rgb),.20);
  border-color: rgba(var(--primary-rgb),.55);
  box-shadow: 0 4px 14px rgba(var(--primary-rgb),.18);
}
.ru-selfstudy-toc-item strong { font-size: .82rem; font-family: 'IBM Plex Sans', var(--ru-font-sans); letter-spacing: .04em; color: var(--rup-purple, #9D66FF); }
.ru-selfstudy-toc-item span { font-size: .92rem; font-family: var(--ru-font-display); }

/* Notes textarea */
.ru-selfstudy-notes-textarea {
  width: 100%;
  min-height: 360px;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(var(--primary-rgb),.20);
  border-radius: 10px;
  color: var(--text, #f2f2f7);
  font-family: var(--ru-font-display);
  font-size: 1.0rem;
  line-height: 1.85;
  padding: 12px 14px;
  resize: vertical;
}
.ru-aside-hint { font-size: .86rem; margin-top: 8px; line-height: 1.5; opacity: .9; text-align: left; padding-left: 2px; }

/* Main column — Day N content */
.ru-selfstudy-h1 {
  margin: 0 0 6px;
  font-family: var(--ru-font-display);
  font-weight: 900;
  font-size: 1.6rem;
  letter-spacing: -.01em;
}
.ru-selfstudy-thread { margin: 0 0 16px; font-size: .9rem; }

/* Soul-q section */
.ru-selfstudy-soul-q {
  margin: 14px 0;
  padding: 14px 18px;
  border-radius: 14px;
  background: rgba(var(--gold-rgb),.08);
  border-left: 4px solid var(--gold);
}
.ru-selfstudy-soul-q-tag { color: var(--gold); font-weight: 700; }
.ru-selfstudy-soul-q-text {
  margin: 6px 0 0;
  font-family: var(--ru-font-display);
  font-size: 1.15rem;
  line-height: 1.85;
  letter-spacing: .02em;
}

/* Voice quote */
.ru-voice-quote {
  margin: 14px 0;
  padding: 14px 18px;
  border-radius: 14px;
  background: rgba(var(--accent-rgb),.10);
  border-left: 4px solid var(--accent);
  font-family: var(--ru-font-display);
  font-style: italic;
  font-size: 1.08rem;
  line-height: 1.9;
  letter-spacing: .02em;
}

/* Main text section (Kimi-coding 4-block content) */
.ru-selfstudy-main-text {
  margin: 18px 0;
  padding: 18px 22px;
  border-radius: 18px;
  background: rgba(var(--primary-rgb),.08);
  border-left: 4px solid var(--primary);
}
.ru-day-edition-tag {
  font-size: .82rem;
  color: var(--primary);
  font-weight: 800;
  margin-bottom: 12px;
  font-family: 'IBM Plex Sans', var(--ru-font-sans);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ru-main-text-body {
  font-family: var(--ru-font-display);
  font-size: 1.08rem;
  line-height: 2.0;
  letter-spacing: .02em;
}
/* ### Day N｜theme: title → h2 */
.ru-day-heading {
  margin: 0 0 18px;
  font-family: var(--ru-font-display);
  font-size: 1.85rem;
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: -.01em;
  color: #f5ecff;
  background: linear-gradient(135deg, #f5ecff 0%, #cf8bff 60%, #8b5cf6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ru-main-text-body p {
  margin: 0 0 14px;
}
.ru-main-text-body p:last-child {
  margin-bottom: 0;
}
/* L1/L2/L3 anchor paragraphs */
.ru-anchor-para {
  padding: 10px 14px 10px 16px;
  margin: 10px 0;
  border-left: 4px solid var(--primary);
  background: rgba(var(--primary-rgb),.06);
  border-radius: 0 10px 10px 0;
}
.ru-anchor {
  display: inline-block;
  font-family: 'IBM Plex Sans', var(--ru-font-sans);
  font-weight: 700;
  color: #cf8bff;
  background: rgba(var(--primary-rgb),.14);
  padding: 1px 8px;
  border-radius: 6px;
  margin-right: 8px;
  letter-spacing: .04em;
  font-size: .92em;
}

/* Mind opener, actions, reflection sections */
.ru-selfstudy-mind-opener, .ru-selfstudy-actions, .ru-selfstudy-reflection {
  margin: 14px 0;
  padding: 16px 18px;
  border-radius: 14px;
}
.ru-selfstudy-mind-opener { background: rgba(255,255,255,.03); border: 1px solid rgba(var(--primary-rgb),.18); }
.ru-selfstudy-actions { background: rgba(255,255,255,.04); border: 1px solid rgba(var(--primary-rgb),.22); }
.ru-selfstudy-reflection { background: rgba(255,255,255,.03); border: 1px dashed rgba(var(--primary-rgb),.32); }
.ru-selfstudy-mind-opener h3, .ru-selfstudy-actions h3, .ru-selfstudy-reflection h3 {
  margin: 0 0 10px;
  font-size: 1.05rem;
  font-family: var(--ru-font-display);
  font-weight: 800;
}
.ru-selfstudy-mind-opener ul, .ru-selfstudy-actions ul, .ru-selfstudy-reflection ul {
  margin: 0;
  padding-left: 20px;
  line-height: 1.85;
}

/* CTA row */
.ru-selfstudy-cta-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
}
.ru-selfstudy-cta-row .ru-btn-primary,
.ru-selfstudy-cta-row .ru-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 10px;
  font-weight: 700;
  text-decoration: none;
  font-family: var(--ru-font-sans);
}
.ru-selfstudy-cta-row .ru-btn-primary {
  border: 1px solid var(--primary);
  background: linear-gradient(135deg, var(--primary), var(--accent));
  color: #fff;
}
.ru-selfstudy-cta-row .ru-btn-secondary {
  /* 260604 strategy(A)-followup (Richard B): !important 覆盖通用 .ru-btn-secondary 的 color:var(--gold)!important — 修 cold-path 富贵金永禁色违规 + 对比度 3.8→5.24 (紫 #9D66FF vs 深紫底 WCAG AA pass) */
  border: 1px solid var(--primary) !important;
  background: transparent !important;
  color: var(--primary) !important;
}
/* 260604 R2 mobile 打磨 (Richard B): 深色底 hover 态验证 (R1 verdict desktop#2) */
.ru-selfstudy-cta-row .ru-btn-primary:hover { filter: brightness(1.08); }
.ru-selfstudy-cta-row .ru-btn-secondary:hover { background: rgba(157,102,255,.12) !important; }
.ru-selfstudy-footer-meta { margin-top: 22px; font-size: .82rem; }
/* 260604 strategy(A)-followup (Richard B): locked stub 解锁价值列表, 填充底部死区 + 升级引导 (非收益承诺) */
.ru-selfstudy-unlock-head { margin-top: 20px; font-weight: 700; color: var(--text-main); font-size: 1.02rem; }
.ru-selfstudy-unlock-list {
  margin: 10px 0 6px;
  padding: 16px 18px 16px 38px;
  border-radius: 16px;
  /* 260604 R3 (Richard B): bg 色阶加强 .08->.13 + border .22->.30, 修 R3 verdict "边界感知依赖描边/与卡片色阶差弱" */
  background: rgba(157,102,255,.13);
  border: 1px solid rgba(157,102,255,.30);
  line-height: 1.75;
}
.ru-selfstudy-unlock-list li { margin: 5px 0; color: var(--text-main); }

/* 260604 R2 mobile 打磨 (Richard B): locked stub 组件内移动端优化 — CTA 纵向堆叠防误触 + 触控间距 + 底部安全区 padding + 行高 (不碰 shell IA / nav, 属 RUPD 视觉契约不评分项的 nav 复杂度不在此动) */
@media (max-width: 600px) {
  .ru-selfstudy-cta-row { flex-direction: column; gap: 14px; }
  .ru-selfstudy-cta-row .ru-btn-primary,
  .ru-selfstudy-cta-row .ru-btn-secondary { width: 100%; }
  .ru-selfstudy-locked { padding-bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
  .ru-selfstudy-unlock-list { line-height: 1.85; padding: 16px 16px 16px 34px; }
}

/* Responsive (mobile/tablet) — collapse to single column */
@media (max-width: 1100px) {
  .ru-selfstudy-grid {
    grid-template-columns: 1fr;
  }
  .ru-selfstudy-grid > aside {
    position: static;
    max-height: none;
  }
}

/* --- PH11 v2 UI System Improvements --- */
.rup-tag-eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--primary);
  margin-bottom: 6px;
  background: rgba(var(--primary-rgb), 0.1);
  padding: 2px 8px;
  border-radius: 4px;
}

.rup-card-link {
  display: inline-block;
  margin-top: 12px;
  font-weight: 700;
  color: var(--primary);
  text-decoration: none;
  font-size: 0.9rem;
  transition: transform 0.2s ease;
}
.rup-card-link:hover { transform: translateX(4px); color: var(--accent); }

.rup-status-tip {
  margin: 14px 0;
  padding: 14px 18px;
  background: rgba(var(--primary-rgb), 0.08);
  border-left: 4px solid var(--primary);
  border-radius: 0 12px 12px 0;
  font-size: 0.95rem;
}
.rup-status-tip strong { color: var(--primary); }

.rup-day-navigator {
  margin: 20px 0;
  padding: 20px;
  background: var(--surface);
  border-radius: 18px;
  border: 1px solid var(--border);
}
.rup-day-navigator > strong { display: block; margin-bottom: 16px; font-size: 1.1rem; }

.rup-day-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 12px;
}

.rup-day-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 14px 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  color: inherit;
  transition: all 0.2s ease;
  text-align: center;
}
.rup-day-item:hover {
  background: rgba(var(--primary-rgb), 0.08);
  border-color: var(--primary);
  transform: translateY(-2px);
}
/* 260604 (Richard "最大转换率"): Day 5 roadmap 高亮 富贵金→紫 — 完成 cold-path 永禁色根因清零
   (human3/landing/blueprint 预览里 .rup-day-item.is-highlight 曾渲染 solid #D4AF37 border 违 RUPD 视觉契约,
   是上一轮 secondary 修复时崩溃前未扫到的第二处同类违规). 紫色 .14 tint + primary border 仍让 Day 5(⭐1v1反馈) 突出, 零信息损失. */
.rup-day-item.is-highlight {
  background: rgba(var(--primary-rgb), 0.14);
  border-color: var(--primary);
}
.rup-day-item strong { font-size: 1rem; margin-bottom: 2px; color: var(--text); }
.rup-day-item span { font-size: 0.8rem; color: var(--text-muted); }

.rup-cta-block { margin-top: 24px; text-align: center; }

@media (max-width: 600px) {
  .rup-day-grid { grid-template-columns: repeat(3, 1fr); }
  .rup-day-item { padding: 10px 6px; }
  .rup-day-item strong { font-size: 0.9rem; }
}


/* 260605 (Richard A 一次到位): 悬浮「3 分钟自测」入口 — 非自测 tab 显示, 引导回自测漏斗; assessment tab 隐藏 */
.ru-fab-3min{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:880;display:inline-flex;align-items:center;gap:6px;padding:12px 20px;border:none;border-radius:30px;font-size:15px;font-weight:700;letter-spacing:.01em;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);box-shadow:0 14px 34px rgba(var(--primary-rgb),.42),0 0 0 1px rgba(255,255,255,.08) inset;transition:transform .2s cubic-bezier(.33,1,.68,1),box-shadow .2s ease}
.ru-fab-3min:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(var(--primary-rgb),.5),0 0 0 1px rgba(255,255,255,.12) inset}
.ru-fab-3min:active{transform:scale(.96)}
.ru-fab-3min[hidden]{display:none}
@media (max-width:480px){.ru-fab-3min{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));padding:11px 18px;font-size:14px}}
