/*
 * 玄元堂 Premium UI V1
 * 目标：保留全部业务逻辑，仅重建视觉层级、人体工学与微交互。
 * 加载顺序：必须位于现有样式之后。
 */

@font-face{
  font-family:"XYT Serif";
  src:url('/assets/fonts/NotoSerifSC-VF.ttf') format('truetype');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"XYT Sans";
  src:url('/assets/fonts/NotoSansSC-VF.ttf') format('truetype');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

:root{
  --x-bg:#f2efe8;
  --x-bg-deep:#e9e4da;
  --x-surface:rgba(255,253,248,.92);
  --x-surface-solid:#fffdf8;
  --x-surface-soft:#f8f4ec;
  --x-ink:#171d19;
  --x-ink-2:#414943;
  --x-muted:#7f877f;
  --x-line:rgba(37,49,41,.12);
  --x-line-strong:rgba(37,49,41,.2);
  --x-jade:#29483b;
  --x-jade-2:#3a5d4d;
  --x-cinna:#a04e3e;
  --x-cinna-2:#7f3d31;
  --x-gold:#ad8b54;
  --x-warm:#ead7ca;
  --x-danger:#994c43;
  --x-shadow-sm:0 8px 24px rgba(34,41,36,.055);
  --x-shadow:0 20px 60px rgba(34,41,36,.08),0 2px 8px rgba(34,41,36,.035);
  --x-shadow-up:0 26px 70px rgba(34,41,36,.13),0 8px 22px rgba(34,41,36,.06);
  --x-radius-sm:10px;
  --x-radius:18px;
  --x-radius-lg:28px;
  --x-serif:"XYT Serif","Noto Serif SC","Songti SC","STSong",serif;
  --x-sans:"XYT Sans","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}

html{background:var(--x-bg);}
body{
  color:var(--x-ink) !important;
  font-family:var(--x-sans) !important;
  background:
    radial-gradient(900px 560px at 92% -8%,rgba(173,139,84,.10),transparent 58%),
    radial-gradient(680px 480px at -10% 28%,rgba(41,72,59,.06),transparent 62%),
    linear-gradient(180deg,#f7f4ee 0%,var(--x-bg) 52%,#eeeae1 100%) !important;
  background-attachment:fixed !important;
}
body::before{
  content:"" !important;
  position:fixed !important;
  inset:0 !important;
  z-index:-2 !important;
  width:auto !important;height:auto !important;
  border:0 !important;border-radius:0 !important;box-shadow:none !important;
  background-image:
    linear-gradient(rgba(35,48,40,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(35,48,40,.018) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),rgba(0,0,0,.2));
  pointer-events:none;
}
body::after{
  content:"";
  position:fixed;
  right:-14vw;top:-30vh;
  width:60vw;height:60vw;
  z-index:-1;
  border-radius:50%;
  border:1px solid rgba(160,78,62,.055);
  box-shadow:inset 0 0 0 9vw rgba(173,139,84,.018),inset 0 0 0 18vw rgba(41,72,59,.012);
  pointer-events:none;
  animation:xytAmbient 18s ease-in-out infinite alternate;
}
@keyframes xytAmbient{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-2vw,2vh,0) scale(1.035)}}

*{scrollbar-color:rgba(41,72,59,.26) transparent;scrollbar-width:thin;}
::selection{background:rgba(160,78,62,.16);color:var(--x-ink);}
a{color:var(--x-cinna);}
button,input,select,textarea{font-family:var(--x-sans) !important;}
button{-webkit-tap-highlight-color:transparent;}

.app{
  width:min(1520px,100%) !important;
  margin:0 auto !important;
  padding:22px 28px 34px !important;
}

/* ---------- controls ---------- */
.btn,.primary-action,.quiet-action,.text-action,
.shop-cart-button,.choice-btn{
  transition:transform .18s ease,box-shadow .22s ease,background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease !important;
}
.btn:active,.primary-action:active,.quiet-action:active,.portal-card:active{transform:translateY(1px) scale(.992) !important;}
.btn,.primary-action{
  border-radius:12px !important;
  font-weight:650 !important;
}
.btn.primary,.primary-action{
  min-height:48px !important;
  border:1px solid var(--x-jade) !important;
  background:linear-gradient(135deg,var(--x-jade),#365849) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(41,72,59,.16) !important;
}
.btn.primary:hover,.primary-action:hover:not(:disabled){
  transform:translateY(-1px);
  background:linear-gradient(135deg,#203c31,var(--x-jade)) !important;
  box-shadow:0 14px 30px rgba(41,72,59,.22) !important;
}
.btn.ghost,.btn.outline-action,.outline-action,.quiet-action{
  border:1px solid var(--x-line) !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.42) !important;
  color:var(--x-ink-2) !important;
}
.quiet-action:hover,.btn.ghost:hover,.outline-action:hover{
  border-color:var(--x-line-strong) !important;
  background:rgba(255,255,255,.82) !important;
  color:var(--x-ink) !important;
}
.text-action{color:var(--x-cinna) !important;border-bottom-color:rgba(160,78,62,.24) !important;}

.field label{font-size:13px !important;font-weight:620 !important;color:var(--x-ink-2) !important;}
.field input,.field select,.field textarea,.case-select,.admin-days,.case-index-search input{
  min-height:48px !important;
  border:1px solid var(--x-line-strong) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.74) !important;
  color:var(--x-ink) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8) !important;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease !important;
}
.field input:focus,.field select:focus,.field textarea:focus,.case-select:focus,.case-index-search input:focus{
  border-color:rgba(41,72,59,.6) !important;
  background:#fff !important;
  box-shadow:0 0 0 4px rgba(41,72,59,.075) !important;
}
.hint,.small{color:var(--x-muted) !important;}

/* ---------- header ---------- */
.site-header{
  position:sticky !important;
  top:14px !important;
  z-index:60 !important;
  min-height:72px !important;
  display:grid !important;
  grid-template-columns:minmax(220px,1fr) auto auto !important;
  align-items:center !important;
  gap:18px !important;
  margin:0 0 18px !important;
  padding:10px 12px 10px 16px !important;
  border:1px solid rgba(37,49,41,.11) !important;
  border-radius:18px !important;
  background:rgba(255,253,248,.82) !important;
  box-shadow:0 14px 38px rgba(31,40,34,.07) !important;
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
}
.site-brand{display:flex !important;align-items:center !important;gap:12px !important;min-width:0 !important;}
.site-brand-emblem{
  width:38px;height:38px;flex:0 0 38px;
  display:grid;place-items:center;
  border-radius:11px;
  color:#fff;
  background:linear-gradient(145deg,var(--x-cinna),var(--x-cinna-2));
  box-shadow:0 8px 18px rgba(160,78,62,.18);
  font:650 18px/1 var(--x-serif);
  letter-spacing:.02em;
}
.site-brand-copy{display:grid !important;gap:1px !important;min-width:0;}
.site-brand-copy b{
  padding:0 !important;
  color:var(--x-ink) !important;
  font:650 20px/1.2 var(--x-serif) !important;
  letter-spacing:.15em !important;
  white-space:nowrap;
}
.site-brand-copy b::before{display:none !important;}
.site-brand-copy small{color:var(--x-muted) !important;font-size:10px !important;letter-spacing:.08em !important;white-space:nowrap;}
.site-main-nav{
  display:flex;align-items:center;gap:4px;
  padding:4px;
  border:1px solid var(--x-line);
  border-radius:13px;
  background:rgba(247,244,236,.82);
}
.site-nav-btn{
  min-height:36px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:var(--x-muted);
  font-size:12px;font-weight:620;white-space:nowrap;transition:.18s ease;
}
.site-nav-btn:hover{background:#fff;color:var(--x-ink);box-shadow:var(--x-shadow-sm);}
.site-nav-btn.active{background:#fff;color:var(--x-jade);box-shadow:0 5px 14px rgba(32,46,38,.07);}
.site-account-wrap{position:relative;display:flex;align-items:center;gap:8px;}
.site-billing-chip{
  min-height:36px;display:flex;align-items:center;padding:0 11px;border:1px solid var(--x-line);border-radius:10px;
  color:var(--x-muted);background:rgba(255,255,255,.38);font-size:10px;white-space:nowrap;
}
.site-user-btn{
  min-height:42px;display:flex;align-items:center;gap:9px;padding:4px 9px 4px 5px;border:1px solid transparent;border-radius:13px;
  background:transparent;color:var(--x-ink);font-size:12px;font-weight:650;
}
.site-user-btn:hover{border-color:var(--x-line);background:#fff;box-shadow:var(--x-shadow-sm);}
.site-user-avatar{
  width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#e3d4c6,#f2e8dd);
  color:var(--x-cinna-2);font:700 14px var(--x-serif);
}
.site-user-chevron{font-size:10px;color:var(--x-muted);transition:transform .18s ease;}
.site-account-wrap.is-open .site-user-chevron{transform:rotate(180deg);}
.site-account-menu{
  position:absolute;right:0;top:calc(100% + 10px);width:220px;padding:8px;border:1px solid var(--x-line);border-radius:16px;
  background:rgba(255,253,248,.97);box-shadow:var(--x-shadow-up);backdrop-filter:blur(18px);opacity:0;transform:translateY(-6px) scale(.985);pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
}
.site-account-wrap.is-open .site-account-menu{opacity:1;transform:none;pointer-events:auto;}
.account-menu-head{padding:10px 10px 12px;border-bottom:1px solid var(--x-line);margin-bottom:6px;}
.account-menu-head b{display:block;font-size:13px;}
.account-menu-head small{display:block;margin-top:3px;color:var(--x-muted);font-size:10px;line-height:1.45;}
.account-menu-btn{width:100%;min-height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--x-ink-2);font-size:12px;text-align:left;}
.account-menu-btn:hover{background:var(--x-surface-soft);color:var(--x-ink);}
.account-menu-btn.danger{color:var(--x-danger);}
.contact-teacher-btn{border-radius:999px !important;}

/* ---------- login ---------- */
.page-login{overflow-x:hidden;}
.page-login .app{max-width:none !important;padding:0 !important;}
.xyt-r31-login{
  width:min(1220px,calc(100% - 56px)) !important;
  min-height:min(720px,calc(100vh - 56px)) !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.03fr) minmax(390px,.97fr) !important;
  margin:28px auto !important;
  overflow:hidden !important;
  border:1px solid var(--x-line) !important;
  border-radius:30px !important;
  background:var(--x-surface-solid) !important;
  box-shadow:0 30px 90px rgba(38,42,38,.11),0 4px 18px rgba(38,42,38,.04) !important;
  animation:xytPageIn .48s cubic-bezier(.2,.75,.25,1) both;
}
@keyframes xytPageIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.xyt-r31-login-hero{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
  min-height:700px !important;
  padding:52px 56px 46px !important;
  overflow:hidden;
  background:
    linear-gradient(135deg,rgba(249,246,239,.98) 0%,rgba(246,240,231,.91) 56%,rgba(230,222,208,.72) 100%),
    url('/assets/intro-figure.jpg') 82% 50%/cover no-repeat !important;
}
.xyt-r31-login-hero::before{
  content:"";position:absolute;right:-100px;bottom:-170px;width:520px;height:520px;border-radius:50%;
  border:1px solid rgba(160,78,62,.09);box-shadow:inset 0 0 0 74px rgba(173,139,84,.025),inset 0 0 0 148px rgba(41,72,59,.018);
  animation:xytSealDrift 12s ease-in-out infinite alternate;pointer-events:none;
}
@keyframes xytSealDrift{to{transform:translate(-18px,-12px) rotate(4deg)}}
.xyt-r31-login-hero::after{
  content:"道法自然" !important;position:absolute !important;right:34px !important;top:46px !important;writing-mode:vertical-rl !important;
  color:rgba(41,72,59,.19) !important;font:500 12px/1.8 var(--x-serif) !important;letter-spacing:.34em !important;
}
.xyt-r31-badge{position:relative;z-index:2;display:flex !important;align-items:center !important;gap:12px !important;font:650 22px var(--x-serif) !important;letter-spacing:.17em !important;}
.xyt-r31-badge::before{content:"玄";width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:var(--x-cinna);color:#fff;font-size:15px;letter-spacing:0;box-shadow:0 8px 20px rgba(160,78,62,.16);}
.xyt-r31-badge i{width:46px !important;background:linear-gradient(90deg,rgba(160,78,62,.55),transparent) !important;}
.xyt-r31-eyebrow{position:relative;z-index:2;margin-top:68px !important;color:var(--x-gold) !important;font-size:11px !important;letter-spacing:.2em !important;}
.xyt-r31-title{position:relative;z-index:2;margin:13px 0 20px !important;color:var(--x-ink) !important;font:540 clamp(46px,5vw,66px)/1.18 var(--x-serif) !important;letter-spacing:.06em !important;}
.xyt-r31-desc{position:relative;z-index:2;max-width:560px !important;color:var(--x-ink-2) !important;font-size:14px !important;line-height:2 !important;}
.xyt-r31-steps{position:relative;z-index:2;display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:12px !important;margin-top:48px !important;padding-top:20px !important;border-top:1px solid var(--x-line) !important;}
.xyt-r31-step{padding:0 14px !important;border-right:1px solid var(--x-line) !important;}
.xyt-r31-step:first-child{padding-left:0 !important}.xyt-r31-step:last-child{border:0 !important;}
.xyt-r31-step h4{margin:0 0 6px !important;color:var(--x-ink) !important;font:620 15px var(--x-serif) !important;}
.xyt-r31-step p{margin:0 !important;color:var(--x-muted) !important;font-size:10px !important;line-height:1.75 !important;}
.xyt-r31-auth{
  position:relative !important;display:flex !important;flex-direction:column !important;justify-content:center !important;
  padding:58px 58px 52px !important;border-left:1px solid var(--x-line) !important;background:rgba(255,253,249,.95) !important;
}
.xyt-r31-auth::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;background:linear-gradient(transparent,rgba(160,78,62,.25),transparent);}
.auth-mini-mark{display:inline-flex;align-items:center;gap:8px;margin-bottom:24px;color:var(--x-cinna);font-size:10px;font-weight:700;letter-spacing:.18em;}
.auth-mini-mark::before{content:"";width:22px;height:1px;background:currentColor;opacity:.55;}
.xyt-r31-auth .brand-title{margin:0 0 8px !important;color:var(--x-ink) !important;font:620 33px var(--x-serif) !important;letter-spacing:.10em !important;}
.xyt-r31-auth .brand-sub{color:var(--x-muted) !important;font-size:12px !important;line-height:1.7 !important;}
body.page-login #root .xyt-r31-login .xyt-r31-auth .tabbar{margin:28px 0 26px !important;gap:26px !important;border-bottom-color:var(--x-line) !important;}
body.page-login #root .xyt-r31-login .xyt-r31-auth .tabbar button{font-size:13px !important;color:var(--x-muted) !important;}
body.page-login #root .xyt-r31-login .xyt-r31-auth .tabbar button.active{border-bottom-color:var(--x-cinna) !important;color:var(--x-ink) !important;}
.login-form{gap:16px !important;}
.xyt-r31-auth .btn.primary{min-height:50px !important;border-color:var(--x-cinna) !important;background:linear-gradient(135deg,var(--x-cinna),#8b4034) !important;box-shadow:0 12px 28px rgba(160,78,62,.18) !important;}
.xyt-r31-auth .btn.primary:hover{background:linear-gradient(135deg,#934436,var(--x-cinna-2)) !important;box-shadow:0 16px 34px rgba(160,78,62,.24) !important;}

/* ---------- portal / home ---------- */
.page-portal .app{max-width:1380px !important;}
.portal-shell.shop-choice-portal{max-width:none !important;margin:0 !important;display:grid;gap:18px;}
.portal-hero-premium{
  position:relative;overflow:hidden;min-height:300px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:28px;
  padding:44px 46px;border:1px solid var(--x-line);border-radius:26px;background:
    linear-gradient(120deg,rgba(255,253,248,.98),rgba(246,241,232,.88)),
    url('/assets/hero-banner.jpg') center/cover no-repeat;
  box-shadow:var(--x-shadow);
}
.portal-hero-premium::after{content:"";position:absolute;right:-100px;top:-120px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(41,72,59,.08);box-shadow:inset 0 0 0 74px rgba(41,72,59,.018),inset 0 0 0 148px rgba(160,78,62,.018);}
.portal-welcome{position:relative;z-index:2;align-self:center;}
.portal-kicker{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--x-gold);font-size:10px;font-weight:720;letter-spacing:.18em;}
.portal-kicker::before{content:"";width:26px;height:1px;background:currentColor;opacity:.55;}
.portal-hero-premium h1{max-width:720px;margin:0;color:var(--x-ink);font:560 clamp(38px,4vw,57px)/1.2 var(--x-serif);letter-spacing:.045em;}
.portal-hero-premium p{max-width:650px;margin:18px 0 0;color:var(--x-ink-2);font-size:13px;line-height:1.9;}
.portal-resume-card{
  position:relative;z-index:2;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding:24px;
  border:1px solid rgba(41,72,59,.14);border-radius:20px;background:rgba(255,255,255,.7);box-shadow:0 14px 36px rgba(31,45,37,.07);backdrop-filter:blur(10px);
}
.portal-resume-card small{color:var(--x-muted);font-size:10px;letter-spacing:.08em;}
.portal-resume-card strong{display:block;margin-top:10px;color:var(--x-ink);font:620 24px var(--x-serif);}
.portal-resume-card p{margin:6px 0 20px !important;color:var(--x-muted) !important;font-size:11px !important;line-height:1.7 !important;}
.portal-resume-card .primary-action{width:100%;}
.portal-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:8px 2px 0;}
.portal-section-head h2{margin:0;font:610 24px var(--x-serif);letter-spacing:.06em;}
.portal-section-head p{margin:0;color:var(--x-muted);font-size:11px;}
.shop-choice-portal .portal-grid{display:grid !important;grid-template-columns:1.22fr 1fr 1fr !important;gap:16px !important;}
.shop-choice-portal .portal-card{
  position:relative;min-height:250px;display:flex !important;flex-direction:column !important;align-items:flex-start !important;justify-content:space-between !important;
  overflow:hidden;padding:26px !important;border:1px solid var(--x-line) !important;border-radius:22px !important;background:rgba(255,253,248,.88) !important;
  color:var(--x-ink) !important;text-align:left !important;box-shadow:var(--x-shadow-sm) !important;isolation:isolate;
  transition:transform .24s cubic-bezier(.2,.75,.25,1),box-shadow .24s ease,border-color .24s ease !important;
}
.shop-choice-portal .portal-card::before{content:"";position:absolute;inset:auto -80px -100px auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(160,78,62,.09),transparent 66%);z-index:-1;transition:transform .3s ease,opacity .3s ease;}
.shop-choice-portal .portal-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--x-cinna);opacity:.55;}
.shop-choice-portal .portal-card:hover{transform:translateY(-5px) !important;border-color:rgba(41,72,59,.2) !important;box-shadow:var(--x-shadow-up) !important;}
.shop-choice-portal .portal-card:hover::before{transform:scale(1.12);opacity:1;}
.shop-choice-portal .shop-entry::after{background:var(--x-jade)}
.shop-choice-portal .folk-entry::after{background:var(--x-gold)}
.shop-choice-portal .portal-index{width:48px !important;height:48px !important;display:grid !important;place-items:center !important;border:1px solid var(--x-line) !important;border-radius:14px !important;background:rgba(255,255,255,.58);color:var(--x-cinna);font:620 18px var(--x-serif) !important;}
.shop-choice-portal .shop-entry .portal-index{color:var(--x-jade)}
.shop-choice-portal .folk-entry .portal-index{color:#806337}
.portal-copy{display:grid;gap:8px;margin-top:auto;padding-top:30px;}
.portal-copy b{font:620 26px/1.25 var(--x-serif) !important;letter-spacing:.04em;}
.portal-copy small{max-width:310px;color:var(--x-muted) !important;font-family:var(--x-sans) !important;font-size:11px !important;line-height:1.8 !important;}
.portal-arrow{display:flex;align-items:center;gap:8px;margin-top:18px;color:var(--x-ink-2);font-size:11px;font-weight:650;}
.portal-arrow::after{content:"→";font-size:16px;transition:transform .18s ease;}
.portal-card:hover .portal-arrow::after{transform:translateX(4px);}
.portal-note{padding:12px 16px;border:1px solid var(--x-line);border-radius:14px;background:rgba(255,255,255,.35);color:var(--x-muted);font-size:10px;line-height:1.65;}

/* ---------- consultation workspace ---------- */
.page-workspace .app{max-width:1500px !important;}
.consultation-shell{display:grid !important;grid-template-columns:minmax(295px,330px) minmax(0,1fr) !important;gap:18px !important;align-items:stretch !important;}
.case-command,.consultation-main{
  border:1px solid var(--x-line) !important;border-radius:22px !important;background:var(--x-surface) !important;box-shadow:var(--x-shadow-sm) !important;
}
.case-command{position:sticky;top:104px;align-self:start;padding:25px 22px !important;}
.case-command-heading{padding-bottom:18px !important;border-bottom-color:var(--x-line) !important;}
.case-command h1{font:620 28px var(--x-serif) !important;letter-spacing:.06em !important;}
.eyebrow{color:var(--x-gold) !important;font-size:10px !important;font-weight:700 !important;letter-spacing:.17em !important;}
.xyt-r31-case-select{height:50px !important;padding:0 40px 0 14px !important;border-radius:13px !important;background:#fff !important;font-size:13px !important;font-weight:620 !important;}
.consult-case-summary{margin-top:14px !important;padding:17px 0 !important;border-color:var(--x-line) !important;}
.consult-case-summary-main strong{font:620 22px var(--x-serif) !important;}
.consult-case-summary-main span{color:var(--x-muted) !important;font-size:11px !important;}
.consult-case-summary-meta span{padding:4px 8px !important;border-color:var(--x-line) !important;border-radius:999px !important;background:var(--x-surface-soft) !important;font-size:9px !important;}
.case-command-actions .primary-action{width:100% !important;}
.status-line{margin-top:10px !important;padding:10px 12px !important;border:1px dashed var(--x-line-strong) !important;border-radius:11px !important;background:rgba(248,244,236,.58) !important;color:var(--x-muted) !important;font-size:10px !important;}
.consultation-main{min-height:calc(100vh - 136px);overflow:hidden !important;display:flex;flex-direction:column;}
.consultation-head{min-height:84px;padding:18px 24px !important;border-bottom-color:var(--x-line) !important;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.08));}
.consultation-head h2{font:620 25px var(--x-serif) !important;}
.consultation-head p{max-width:520px !important;color:var(--x-muted) !important;font-size:10px !important;}
.chat-wrap{position:relative;display:flex !important;flex:1;min-height:0;flex-direction:column;padding:12px 14px 14px !important;background:linear-gradient(180deg,rgba(244,240,232,.42),rgba(255,253,248,.1));}
.chat-box{
  height:calc(100vh - 280px) !important;min-height:520px !important;flex:1;padding:28px clamp(16px,3vw,44px) !important;border:1px solid var(--x-line) !important;
  border-radius:18px !important;background:
    linear-gradient(180deg,rgba(255,253,248,.93),rgba(250,247,240,.88)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8) !important;
}
.empty-state{min-height:100% !important;padding:28px !important;}
.empty-state-card{width:min(570px,100%);padding:32px 34px;border:1px solid var(--x-line);border-radius:22px;background:rgba(255,255,255,.6);box-shadow:0 18px 44px rgba(31,42,35,.055);}
.empty-state .icon{width:64px !important;height:64px !important;border-radius:18px !important;filter:saturate(.65) contrast(.96) !important;box-shadow:0 12px 30px rgba(37,45,39,.1);}
.empty-state h3{font:620 27px var(--x-serif) !important;letter-spacing:.04em !important;}
.empty-state p{max-width:450px !important;margin:0 auto !important;color:var(--x-muted) !important;font-size:11px !important;line-height:1.9 !important;}
.empty-state-actions{display:flex;justify-content:center;gap:10px;margin-top:20px;}
.empty-state-actions .primary-action{min-width:140px;}
.msg{gap:10px !important;margin:18px 0 !important;}
.avatar{width:36px !important;height:36px !important;border:1px solid rgba(255,255,255,.8) !important;box-shadow:0 5px 12px rgba(29,37,31,.08) !important;}
.bubble{
  max-width:min(820px,84%) !important;padding:14px 16px !important;border:1px solid var(--x-line) !important;border-radius:6px 17px 17px 17px !important;
  background:#fff !important;color:var(--x-ink) !important;font-family:var(--x-sans) !important;font-size:14px !important;line-height:1.9 !important;box-shadow:0 7px 18px rgba(34,43,36,.035) !important;
}
.msg.ai .bubble{border-left:3px solid rgba(41,72,59,.28) !important;}
.msg.user .bubble{border:1px solid rgba(160,78,62,.13) !important;border-radius:17px 6px 17px 17px !important;background:linear-gradient(135deg,#f1e5dc,#ead9ce) !important;box-shadow:none !important;}
.speaker{margin-bottom:6px !important;color:var(--x-jade) !important;font-size:10px !important;letter-spacing:.04em;}
.composer{
  position:sticky;bottom:0;z-index:8;grid-template-columns:minmax(0,1fr) 78px !important;gap:10px !important;margin-top:10px !important;padding:8px !important;
  border:1px solid var(--x-line) !important;border-radius:16px !important;background:rgba(255,253,248,.92) !important;box-shadow:0 14px 40px rgba(33,42,36,.08) !important;backdrop-filter:blur(14px);
}
.composer textarea{height:54px !important;min-height:54px !important;max-height:160px;padding:14px 13px !important;border:0 !important;border-radius:11px !important;background:transparent !important;box-shadow:none !important;line-height:1.55;}
.composer textarea:focus{box-shadow:none !important;}
.composer .primary-action{height:54px !important;min-height:54px !important;border-radius:12px !important;}
.composer .primary-action:disabled{border-color:transparent !important;background:#e2ded5 !important;color:#9a9b95 !important;box-shadow:none !important;}

/* ---------- case form ---------- */
.page-case-form .app{max-width:1180px !important;}
.form-card{padding:34px 38px !important;border:1px solid var(--x-line) !important;border-radius:24px !important;background:var(--x-surface) !important;box-shadow:var(--x-shadow) !important;}
.form-title h2{font:620 30px var(--x-serif) !important;letter-spacing:.055em !important;}
.form-section{margin-top:24px !important;padding-top:22px !important;border-color:var(--x-line) !important;}
.form-section h3{color:var(--x-jade) !important;font:620 18px var(--x-serif) !important;}
.choice-btn{border-color:var(--x-line-strong) !important;border-radius:11px !important;background:rgba(255,255,255,.5) !important;}
.choice-btn.active{border-color:var(--x-jade) !important;background:var(--x-jade) !important;color:#fff !important;box-shadow:0 8px 18px rgba(41,72,59,.13) !important;}
.time-tip{padding:10px 12px;border-radius:10px;background:rgba(173,139,84,.07);color:var(--x-muted) !important;}
.form-error{border-radius:10px !important;}

/* ---------- shop ---------- */
.shop-shell.shop-v2{gap:18px !important;}
.shop-v2-hero{min-height:320px !important;border-radius:24px !important;overflow:hidden !important;box-shadow:var(--x-shadow) !important;}
.shop-service-strip{border-color:var(--x-line) !important;border-radius:16px !important;overflow:hidden !important;background:var(--x-surface) !important;box-shadow:var(--x-shadow-sm);}
.shop-v2 .product-card{border-radius:18px !important;overflow:hidden !important;border-color:var(--x-line) !important;background:var(--x-surface) !important;}
.shop-v2 .product-card:hover{transform:translateY(-5px) !important;box-shadow:var(--x-shadow-up) !important;}
.shop-v2 .product-image{overflow:hidden;}
.shop-v2 .product-image img{transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.shop-v2 .product-card:hover .product-image img{transform:scale(1.025);}
.shop-category-bar button{border-radius:999px !important;}

/* ---------- admin ---------- */
.admin-shell{border-color:var(--x-line) !important;border-radius:22px !important;overflow:hidden !important;background:var(--x-surface) !important;box-shadow:var(--x-shadow) !important;}
.admin-sidebar{background:linear-gradient(180deg,#eee9df,#f5f1e9) !important;border-color:var(--x-line) !important;}
.admin-tabs button{border-radius:9px !important;}
.admin-tabs button.active{border-left-color:var(--x-cinna) !important;background:rgba(160,78,62,.075) !important;}
.table th{background:var(--x-surface-soft) !important;}
.account-card,.case-card,.report-section,.runtime-section,.report-trend-card,.report-card,.runtime-card{border-color:var(--x-line) !important;border-radius:13px !important;background:#fff !important;}

/* ---------- modal / music ---------- */
.profile-modal,.install-modal,.shop-modal{border-radius:22px !important;border-color:var(--x-line) !important;box-shadow:0 30px 90px rgba(28,36,30,.18) !important;}
.music-float,.music-float-safe-fixed{
  right:20px !important;bottom:20px !important;width:44px !important;min-width:44px !important;height:44px !important;
  border:1px solid rgba(173,139,84,.3) !important;border-radius:14px !important;background:rgba(255,253,248,.9) !important;color:var(--x-gold) !important;
  box-shadow:0 12px 30px rgba(34,41,36,.10) !important;backdrop-filter:blur(12px);opacity:.92 !important;
  transition:transform .18s ease,box-shadow .18s ease !important;
}
.music-float:hover,.music-float-safe-fixed:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(34,41,36,.14) !important;}

/* ---------- entrance animations added by xyt-premium-v1.js ---------- */
.xyt-view-enter{animation:xytViewEnter .38s cubic-bezier(.2,.75,.25,1) both;}
@keyframes xytViewEnter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
[data-xyt-glow]{--mx:50%;--my:50%;}
[data-xyt-glow]::selection{background:rgba(160,78,62,.16)}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .site-header{grid-template-columns:1fr auto !important;}
  .site-main-nav{order:3;grid-column:1/-1;justify-self:stretch;justify-content:center;}
  .site-billing-chip{display:none;}
  .consultation-shell{grid-template-columns:1fr !important;}
  .case-command{position:static !important;}
  .case-command-actions{display:grid !important;grid-template-columns:180px minmax(0,1fr) !important;align-items:center !important;gap:12px !important;}
  .case-command-actions .primary-action{width:180px !important;}
  .status-line{margin:0 !important;}
  .portal-hero-premium{grid-template-columns:1fr .62fr;}
}

@media(max-width:820px){
  body::before{background-size:28px 28px;}
  .app{padding:10px 10px 22px !important;}
  .site-header{top:8px !important;grid-template-columns:1fr auto !important;gap:8px !important;margin-bottom:10px !important;padding:9px 10px !important;border-radius:16px !important;}
  .site-brand-copy small{display:none !important;}
  .site-brand-emblem{width:34px;height:34px;flex-basis:34px;border-radius:10px;}
  .site-brand-copy b{font-size:18px !important;letter-spacing:.12em !important;}
  .site-main-nav{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);width:100%;}
  .site-nav-btn{min-height:34px;padding:0 8px;}
  .site-user-btn{min-height:38px;}
  .site-user-name{display:none;}
  .site-account-menu{position:fixed;right:10px;top:70px;width:min(250px,calc(100vw - 20px));}

  /* mobile login: form first */
  .xyt-r31-login{width:calc(100% - 16px) !important;min-height:calc(100dvh - 16px) !important;grid-template-columns:1fr !important;margin:8px !important;border-radius:22px !important;}
  .xyt-r31-auth{order:1 !important;padding:30px 24px 34px !important;border:0 !important;}
  .xyt-r31-auth::before{display:none;}
  .auth-mini-mark{margin-bottom:15px;}
  .xyt-r31-auth .brand-title{font-size:30px !important;}
  .xyt-r31-login-hero{order:2 !important;min-height:190px !important;padding:26px 24px !important;border-top:1px solid var(--x-line);}
  .xyt-r31-login-hero::after,.xyt-r31-desc,.xyt-r31-steps{display:none !important;}
  .xyt-r31-eyebrow{margin-top:22px !important;}
  .xyt-r31-title{font-size:34px !important;margin:8px 0 0 !important;}

  .portal-hero-premium{min-height:0;grid-template-columns:1fr;padding:28px 24px;border-radius:20px;}
  .portal-hero-premium h1{font-size:38px;}
  .portal-resume-card{padding:20px;}
  .shop-choice-portal .portal-grid{grid-template-columns:1fr !important;}
  .shop-choice-portal .portal-card{min-height:200px;padding:22px !important;}
  .portal-copy{padding-top:20px;}
  .portal-copy b{font-size:23px !important;}

  .case-command{padding:17px 15px !important;border-radius:18px !important;}
  .case-command-actions{display:block !important;}
  .case-command-actions .primary-action{width:100% !important;}
  .status-line{margin-top:8px !important;}
  .consultation-main{min-height:calc(100dvh - 170px);border-radius:18px !important;}
  .consultation-head{padding:14px 15px !important;}
  .consultation-head p{display:none;}
  .chat-wrap{padding:7px !important;}
  .chat-box{height:auto !important;min-height:420px !important;padding:16px 10px !important;border-radius:14px !important;}
  .empty-state-card{padding:28px 18px;border-radius:18px;}
  .bubble{max-width:88% !important;padding:12px 13px !important;font-size:13px !important;line-height:1.78 !important;}
  .composer{grid-template-columns:minmax(0,1fr) 64px !important;padding:6px !important;border-radius:14px !important;}
  .composer textarea,.composer .primary-action{height:50px !important;min-height:50px !important;}

  .form-card{padding:24px 16px !important;border-radius:18px !important;}
  .grid-basic,.grid-time{grid-template-columns:1fr 1fr !important;}
  .grid-basic .field:first-child{grid-column:1/-1;}

  .shop-v2-hero{min-height:300px !important;border-radius:18px !important;}
}

@media(max-width:480px){
  .site-header{grid-template-columns:minmax(0,1fr) auto !important;}
  .site-main-nav{gap:2px;padding:3px;}
  .site-nav-btn{font-size:11px;}
  .xyt-r31-auth{padding:26px 20px 30px !important;}
  body.page-login #root .xyt-r31-login .xyt-r31-auth .tabbar{margin:23px 0 22px !important;}
  .xyt-r31-login-hero{min-height:165px !important;}
  .xyt-r31-badge{font-size:18px !important;}
  .xyt-r31-title{font-size:30px !important;}
  .portal-hero-premium{padding:24px 20px;}
  .portal-hero-premium h1{font-size:33px;}
  .portal-section-head{display:block;}
  .portal-section-head p{margin-top:6px;}
  .empty-state-actions{display:grid;}
  .empty-state-actions .primary-action{width:100%;}
  .music-float,.music-float-safe-fixed{right:12px !important;bottom:12px !important;}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
}

/* XYT_SHOP_HERO_ACTIONS_FIX_START */

/* 商城 Hero 操作按钮：保证深色图片背景下清晰可见 */
.shop-v2-hero .shop-hero-actions{
  display:flex !important;
  align-items:stretch !important;
  gap:10px !important;
}

.shop-v2-hero .quiet-action{
  min-height:46px !important;
  padding:0 18px !important;
  border:1px solid rgba(255,255,255,.72) !important;
  border-radius:12px !important;
  background:rgba(255,253,248,.92) !important;
  color:#263b31 !important;
  font-weight:700 !important;
  text-shadow:none !important;
  box-shadow:0 8px 22px rgba(0,0,0,.14) !important;
  backdrop-filter:blur(10px) !important;
  -webkit-backdrop-filter:blur(10px) !important;
}

.shop-v2-hero .quiet-action:hover{
  background:#fffdf8 !important;
  color:#17271f !important;
  border-color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.20) !important;
}

.shop-v2-hero .shop-cart-button{
  min-height:46px !important;
  padding:0 18px !important;
  border:1px solid #ead8b1 !important;
  border-radius:12px !important;
  background:#f3e5c5 !important;
  color:#263b31 !important;
  font-weight:700 !important;
  box-shadow:0 8px 22px rgba(0,0,0,.14) !important;
}

.shop-v2-hero .shop-cart-button:hover{
  background:#fff0cf !important;
  border-color:#f3e5c5 !important;
  transform:translateY(-1px) !important;
}

.shop-v2-hero .shop-cart-button b{
  background:#29483b !important;
  color:#fff !important;
}

@media(max-width:820px){
  .shop-v2-hero .shop-hero-actions{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }

  .shop-v2-hero .quiet-action,
  .shop-v2-hero .shop-cart-button{
    min-height:44px !important;
    padding:0 12px !important;
  }
}

/* XYT_SHOP_HERO_ACTIONS_FIX_END */
