﻿@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Playfair+Display:ital,wght@0,400;0,600;1,400;1,600&display=swap');

/* ============================================================
   URANAI / Kairós — 暗金天体 · 双页面共用样式
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg-deep:#0f0c29;--bg-mid:#1a1740;--bg-card:rgba(255,255,255,0.03);--border:rgba(255,255,255,0.08);
  --text:#d0d0e0;--text-dim:#8a7a9a;--accent:#3a1c4d;--accent-hov:#4a2d5c;--accent-soft:#5c3a70;
  --fire:#e74c3c;--fire-bg:rgba(231,76,60,0.10);--water:#3498db;--water-bg:rgba(52,152,219,0.10);
  --air:#f1c40f;--air-bg:rgba(241,196,15,0.10);--earth:#2ecc71;--earth-bg:rgba(46,204,113,0.10);
  --gold:rgba(212,175,55,0.08);--gold-border:rgba(212,175,55,0.22);
  --glass-bg:rgba(255,255,255,0.03);--glass-border:rgba(255,255,255,0.08);
  --ease-out:cubic-bezier(0.25,1,0.5,1);
}

body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans SC","Helvetica Neue",Arial,sans-serif;
  background:
    radial-gradient(rgba(241,213,146,0.06) 0.3px,transparent 0),
    #15101f;
  background-size:20px 20px;
  color:var(--text);min-height:100vh;overflow-x:hidden;position:relative;
}
/* 固定背景星轨 — 放大慢转暗金底盘 + 呼吸泛光 */
.bg-rings{
  position:fixed;top:50%;left:50%;z-index:-1;pointer-events:none;
  animation:bg-breathe 8s ease-in-out infinite;
}
@keyframes bg-breathe{
  0%,100%{opacity:.4}
  50%{opacity:.6}
}
.bg-ring{
  position:absolute;border-radius:50%;border-style:solid;
  border-color:#fff3d1;
  box-shadow:
    0 0 2px rgba(255,223,140,0.9),
    0 0 8px rgba(241,213,146,0.5),
    0 0 18px rgba(197,165,91,0.25);
  transform-origin:center center;
}
.bg-r-outer{
  width:1000px;height:1000px;margin:-500px 0 0 -500px;
  border-width:1.5px;border-top-color:#fff3d1;border-right-style:dashed;border-left-style:dashed;
  animation:bg-spin-cw 70s linear infinite;
}
.bg-r-middle{
  width:700px;height:700px;margin:-350px 0 0 -350px;
  border-width:1.5px;border-bottom-color:#fff3d1;border-left-style:dotted;
  transform:rotateX(26.7deg);
  animation:bg-spin-ccw 42s linear infinite;
}
.bg-r-inner{
  width:420px;height:420px;margin:-210px 0 0 -210px;
  border-width:1.5px;border-style:dashed;border-color:#fff3d1;
  animation:bg-spin-cw 30s linear infinite;
}
@keyframes bg-spin-cw{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes bg-spin-ccw{from{transform:rotateX(26.7deg) rotate(0deg)}to{transform:rotateX(26.7deg) rotate(-360deg)}}

/* ── 汉堡菜单（全局常驻）── */
.hb-btn{position:fixed;top:16px;left:16px;z-index:1001;width:38px;height:38px;background:rgba(21,16,31,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(241,213,146,0.1);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;transition:all .35s cubic-bezier(0.25,1,0.5,1)}
.hb-btn span{display:block;width:20px;height:1.5px;background:rgba(220,205,180,0.55);transition:all .35s cubic-bezier(0.25,1,0.5,1);transform-origin:center}
.hb-btn:hover span{background:#f1d592}
.hb-btn.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hb-btn.active span:nth-child(2){opacity:0}
.hb-btn.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.hb-overlay{position:fixed;inset:0;z-index:998;background:rgba(0,0,0,0.5);transition:opacity .35s ease;opacity:1}
.hb-overlay.hidden{display:none;opacity:0}
.hb-drawer{position:fixed;top:0;left:0;z-index:999;width:250px;height:100vh;background:linear-gradient(180deg,rgba(21,16,31,0.98) 0%,rgba(15,10,22,0.98) 100%);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid rgba(241,213,146,0.08);transform:translateX(-100%);transition:transform .4s cubic-bezier(0.25,1,0.5,1);display:flex;flex-direction:column;padding:4rem 1.3rem 2rem;gap:2px}
.hb-drawer:not(.hidden){transform:translateX(0)}
.hb-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:rgba(220,205,180,0.4);font-size:1.15rem;cursor:pointer;transition:color .25s;padding:4px 8px}
.hb-close:hover{color:#f1d592}
.hb-item{background:transparent;border:none;color:rgba(220,205,180,0.5);font-size:.88rem;padding:.6rem .5rem;text-align:left;cursor:pointer;letter-spacing:.05em;transition:all .25s;border-radius:6px;font-weight:500}
.hb-item:hover{color:#f1d592;background:rgba(241,213,146,0.06)}
.content-view{position:fixed;inset:0;z-index:100;background:#09050d;overflow-y:auto;display:flex;flex-direction:column}
.content-view.hidden{display:none}
.content-view-inner{max-width:680px;margin:0 auto;padding:3rem 1.5rem 5rem;width:100%}
.content-back{display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:1px solid rgba(241,213,146,0.2);color:#a193b0;font-size:.82rem;padding:.4rem 1rem;border-radius:8px;cursor:pointer;transition:all .25s;margin-bottom:2.5rem;letter-spacing:.04em}
.content-back:hover{border-color:#f1d592;color:#fff3d1}
.content-title{font-size:1.2rem;color:#c5a55b;font-weight:600;margin-bottom:1.5rem;letter-spacing:.06em}
.content-text{line-height:2;font-size:.9rem;color:#a193b0}
.content-text p{margin-bottom:1rem}
.content-text strong{color:#c5a55b;font-weight:600}
.activation-container{margin-top:2rem;padding-top:1.5rem;border-top:1px dashed rgba(197,165,91,0.15)}
.quantum-input{
  background:rgba(9,5,13,0.6);border:1px solid rgba(197,165,91,0.2);
  color:#e0d5c0;padding:.6rem 1rem;font-family:'Inter',sans-serif;
  font-size:.85rem;letter-spacing:1px;width:100%;outline:none;box-sizing:border-box;transition:border .3s ease;
}
.quantum-input:focus{border-color:#c5a55b;box-shadow:0 0 8px rgba(197,165,91,0.15)}
.quantum-btn{
  background:#c5a55b;color:#09050d;border:none;padding:.6rem 1.5rem;
  font-family:'Inter',sans-serif;font-weight:700;font-size:.8rem;
  letter-spacing:1.5px;cursor:pointer;width:100%;box-sizing:border-box;
  margin-top:.8rem;transition:opacity .3s ease;
}
.quantum-btn:hover{opacity:.85}
.sync-toast{
  margin-top:1rem;padding:.8rem 1rem;font-family:'Inter',sans-serif;
  font-size:.8rem;letter-spacing:1px;line-height:1.4;border-radius:0;
  animation:toastFadeIn .4s cubic-bezier(0.25,1,0.5,1) forwards;
  will-change:opacity,transform;
}
.sync-toast.success{
  background:rgba(14,25,20,0.8);border:1px solid rgba(197,165,91,0.3);color:#c5a55b;
}
.sync-toast.error{
  background:rgba(28,14,16,0.8);border:1px solid rgba(220,100,100,0.2);color:#a193b0;
}
@keyframes toastFadeIn{
  0%{opacity:0;transform:translateY(5px)}
  100%{opacity:1;transform:translateY(0)}
}
#main-wrapper{position:relative;z-index:2}
#main-wrapper.hidden{display:none}


#celestial-canvas{display:none}

#app{width:100%;max-width:960px;margin:0 auto;padding:2rem 1.5rem 4rem;position:relative;z-index:2}

/* ============================================================
   三大方舟区块 · 磨砂玻璃 + 极夜紫高低阻尼布局（仅塔罗）
   ============================================================ */
body:not([data-system="lenormand"]) .intent-block,
body:not([data-system="lenormand"]) #selection-area,
body:not([data-system="lenormand"]) .manual-area,
body:not([data-system="lenormand"]) .deck-area{
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(241,213,146,0.1);
}
body:not([data-system="lenormand"]) .intent-block{
  background:rgba(9,5,13,0.28);border-radius:16px;padding:1.5rem 1.2rem;margin-bottom:1.8rem;
}
body:not([data-system="lenormand"]) #selection-area{
  background:rgba(9,5,13,0.22);border-radius:14px;padding:1.2rem 1rem;margin-bottom:1.8rem;
}
body:not([data-system="lenormand"]) .manual-area,
body:not([data-system="lenormand"]) .deck-area{
  background:rgba(9,5,13,0.32);border-radius:14px;padding:1.2rem 1rem;margin-bottom:1.5rem;
}

/* ============================================================
   通用: Header / 返回链接
   ============================================================ */
header{text-align:center;margin-bottom:1.25rem;position:relative}
.home-link{
  position:absolute;left:0;top:.3rem;font-size:.8rem;color:var(--text-dim);
  text-decoration:none;opacity:.55;transition:opacity .25s;letter-spacing:.04em;
}
.home-link:hover{opacity:1;color:var(--accent-soft)}
h1{font-family:'Cinzel',serif;font-weight:700;font-size:2.2rem;letter-spacing:.08em;margin-bottom:.3rem;background:linear-gradient(135deg,#E6C687,#C89B4A,#B3893E,#9A7030);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.subtitle{color:var(--text-dim);font-size:.85rem;letter-spacing:.05em}

/* ============================================================
   首页 Landing
   ============================================================ */
#app.landing{max-width:760px}
.landing-header{text-align:center;margin-bottom:2.5rem;padding-top:1.5rem}
.landing-title{font-family:'Cinzel',serif;font-style:italic;font-size:3.2rem;letter-spacing:.04em;margin-bottom:.15rem;background:linear-gradient(135deg,#E6C687 0%,#C89B4A 35%,#B3893E 65%,#9A7030 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 20px rgba(200,160,60,0.3)) drop-shadow(0 2px 4px rgba(0,0,0,0.4))}
.landing-subtitle{font-size:1rem;color:rgba(180,150,70,0.45);letter-spacing:.24em;margin-bottom:.6rem}
.landing-tagline{font-size:.82rem;color:var(--text-dim);letter-spacing:.06em;opacity:.7}

.landing-main{display:flex;flex-direction:column;gap:2rem}
.landing-section{line-height:2;font-size:.92rem;color:rgba(210,210,230,0.82)}
.landing-section p{margin-bottom:1.25rem}
.landing-section p:last-child{margin-bottom:0}

/* 双术数编年史 */
.landing-section.dual{display:flex;gap:2rem}
.dual-col{flex:1;min-width:0}
.dual-col strong{color:#b8a8c8;font-weight:700;font-size:.95rem}
.dual-col p{font-size:.88rem;line-height:1.95}
@media(max-width:640px){.landing-section.dual{flex-direction:column;gap:1.5rem}}

/* 分流入口 */
.landing-section.portals{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}
.portal-card{
  display:flex;flex-direction:column;align-items:center;gap:.65rem;
  padding:2rem 1.8rem;border-radius:16px;text-decoration:none;
  border:1px solid var(--gold-border);background:rgba(212,175,55,0.04);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:all .4s var(--ease-out);
  min-width:220px;flex:1;max-width:300px;cursor:pointer;
}
.portal-card.active:hover{background:rgba(212,175,55,0.1);border-color:rgba(212,175,55,0.45);transform:translateY(-4px);box-shadow:0 8px 30px rgba(212,175,55,0.12)}
.portal-card.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.portal-icon{font-size:2rem;color:rgba(212,175,55,0.45)}
.portal-title{font-size:1.05rem;font-weight:700;color:rgba(210,200,240,0.8);letter-spacing:.05em}
.portal-desc{font-size:.78rem;color:var(--text-dim);text-align:center;line-height:1.5}
.portal-card.disabled .portal-desc{color:rgba(255,255,255,0.25)}

/* ============================================================
   登录方舟 · 居中雾面悬浮模态框
   ============================================================ */
.auth-btn{
  position:absolute;top:.5rem;right:0;background:transparent;
  border:1px solid rgba(197,165,91,0.4);color:#e1c78a;font-size:.78rem;
  padding:.35rem 1rem;border-radius:8px;cursor:pointer;
  letter-spacing:.04em;transition:all .35s var(--ease-out);z-index:5;
}
.auth-btn:hover{border-color:#c5a55b;box-shadow:0 0 14px rgba(197,165,91,0.45);color:#f1d592}
.auth-btn.logged-in{border-color:rgba(197,165,91,0.5);color:#e1c78a;padding-right:2rem}
.auth-btn.logged-in::after{content:' ▼';font-size:.55rem;position:absolute;right:.55rem;top:50%;transform:translateY(-50%);opacity:.5}
.auth-balance{
  position:absolute;top:2.3rem;right:0;font-size:.75rem;
  color:#c5a55b;letter-spacing:.06em;z-index:5;text-align:right;
  font-weight:600;font-family:'Inter',sans-serif;
}
.lang-btn{
  position:absolute;top:2.8rem;right:0;background:transparent;
  border:1px solid rgba(197,165,91,0.25);color:#a193b0;font-size:.62rem;
  padding:.15rem .45rem;cursor:pointer;letter-spacing:.04em;z-index:5;
  transition:all .25s;border-radius:0;
}
.lang-btn:hover{border-color:#c5a55b;color:#c5a55b}
.auth-overlay{
  position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
  background:rgba(10,5,19,0.82);
  transition:opacity .35s var(--ease-out);
}
.auth-overlay.hidden{display:none;opacity:0}
.auth-modal{
  background:#1a1224;border:1px solid rgba(212,175,55,0.25);border-radius:18px;
  padding:2rem 2rem 2rem;min-width:340px;max-width:420px;width:90%;
  box-shadow:0 0 60px rgba(212,175,55,0.08),0 8px 32px rgba(0,0,0,0.5);
  position:relative;animation:modalIn .35s var(--ease-out);
}
@keyframes modalIn{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.auth-modal-close{
  position:absolute;top:.8rem;right:1rem;background:none;border:none;
  color:rgba(255,255,255,0.35);font-size:1.2rem;cursor:pointer;transition:color .2s;
}
.auth-modal-close:hover{color:var(--gold)}
.auth-title{font-family:'Cinzel',serif;font-size:1.3rem;color:#f1d592;letter-spacing:.08em;margin-bottom:1.5rem;text-align:center;text-shadow:0 0 10px rgba(241,213,146,0.35)}
.auth-input{
  display:block;width:100%;margin-bottom:.9rem;padding:.7rem .9rem;
  background:rgba(0,0,0,0.4);border:1px solid rgba(212,175,55,0.18);
  border-radius:10px;color:#f0e8f4;font-size:.88rem;outline:none;transition:border-color .3s;
}
.auth-input::placeholder{color:rgba(180,170,190,0.45);font-size:.82rem}
.auth-input:focus{border-color:#f1d592}
.auth-submit{
  display:block;width:100%;margin-top:1.2rem;padding:.75rem;
  background:linear-gradient(135deg,#3a1c4d,#4a2d5c);border:1px solid rgba(212,175,55,0.25);
  border-radius:10px;color:#ece6f0;font-size:.92rem;font-weight:600;
  cursor:pointer;letter-spacing:.06em;transition:all .3s;
}
.auth-submit:hover{background:linear-gradient(135deg,#4a2c5d,#5c3a70);border-color:#f1d592;box-shadow:0 0 20px rgba(212,175,55,0.15);color:#fff}
.auth-submit.ready{border-color:#f1d592;box-shadow:0 0 14px rgba(212,175,55,0.25);color:#f1d592}
.shake-error{
  animation:kairósRegisterShake .4s cubic-bezier(.36,.07,.19,.97) both;
  transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px;
}
@keyframes kairósRegisterShake{
  10%,90%{transform:translate3d(-1px,0,0)}
  20%,80%{transform:translate3d(2px,0,0)}
  30%,50%,70%{transform:translate3d(-4px,0,0)}
  40%,60%{transform:translate3d(4px,0,0)}
}
.auth-links{display:flex;justify-content:space-between;margin-top:.8rem}
.auth-link{background:none;border:none;color:rgba(255,255,255,0.45);font-size:.75rem;cursor:pointer;padding:.3rem 0;transition:color .2s}
.auth-link:hover{color:#f1d592}
.auth-err{color:#e74c3c;font-size:.75rem;text-align:center;margin-top:.6rem;min-height:1.1em}

/* 模式切换 */
.mode-switch{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}
.mode-tab{background:transparent;border:1.5px solid var(--border);color:var(--text-dim);font-size:.85rem;font-weight:600;padding:.45rem 1.1rem;border-radius:20px;cursor:pointer;letter-spacing:.04em;transition:all .25s;align-self:center}
.mode-tab:hover{border-color:var(--accent-soft);color:#b8a8c8}
.mode-tab.active{background:rgba(58,28,77,0.25);border-color:var(--accent);color:#fff;box-shadow:0 0 14px rgba(58,28,77,0.25)}
.mode-hint{font-size:.72rem;color:var(--text-dim);opacity:.7;line-height:1.5;flex:1 1 200px;margin-left:.5rem}

/* 牌数 */
.count-section{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem}
.count-label{font-size:.85rem;color:var(--text-dim);font-weight:600;letter-spacing:.05em}
.count-group{display:flex;gap:.35rem}
.count-btn{background:transparent;border:1.5px solid var(--border);color:var(--text-dim);font-size:.82rem;font-weight:600;padding:.35rem .85rem;border-radius:16px;cursor:pointer;transition:all .25s;letter-spacing:.03em}
.count-btn:hover{border-color:var(--accent-soft);color:#b8a8c8}
.count-btn.active{background:rgba(58,28,77,0.25);border-color:var(--accent);color:#fff;box-shadow:0 0 10px rgba(58,28,77,0.20)}

/* 语调维度 */
.tone-section{display:flex;align-items:center;gap:.7rem;margin-bottom:.85rem}
.tone-label{font-size:.85rem;color:var(--text-dim);font-weight:600;letter-spacing:.05em}
.tone-group{display:flex;gap:.35rem}
.tone-btn{background:transparent;border:1.5px solid var(--border);color:var(--text-dim);font-size:.8rem;font-weight:600;padding:.32rem .75rem;border-radius:16px;cursor:pointer;transition:all .4s var(--ease-out);letter-spacing:.03em}
.tone-btn:hover{border-color:var(--accent-soft);color:#b8a8c8}
.tone-btn.active{background:rgba(58,28,77,0.22);border-color:var(--accent);color:#fff;box-shadow:0 0 10px rgba(58,28,77,0.20)}

/* 表单 */
form{display:flex;flex-direction:column;gap:.65rem;margin-bottom:1.25rem}
label{font-size:.95rem;color:#c0c0d0;position:relative;overflow:visible}
.chat-section h3{position:relative;overflow:visible}
textarea{width:100%;padding:.8rem 1rem;border:1px solid var(--glass-border);border-radius:12px;background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f0f0f0;font-size:1rem;resize:vertical;outline:none;transition:all .4s var(--ease-out);font-family:inherit}
textarea:focus{border-color:var(--accent)}
button{padding:.85rem 1.5rem;border:none;border-radius:12px;background:var(--accent);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .4s var(--ease-out);letter-spacing:.06em;align-self:flex-start}
button:hover:not(:disabled){background:var(--accent-hov);transform:translateY(-1px)}
button:disabled{background:#2a1838;color:#888;cursor:not-allowed;opacity:.55;transform:none}

/* ── 解读按钮暗金潮汐 ── */
@keyframes goldPulse {
  0%,100%{box-shadow:0 0 8px rgba(212,175,55,0.18),inset 0 0 3px rgba(212,175,55,0.06);border-color:rgba(212,175,55,0.32)}
  25%{box-shadow:0 0 12px rgba(212,175,55,0.30),inset 0 0 4px rgba(212,175,55,0.10);border-color:rgba(212,175,55,0.42)}
  50%{box-shadow:0 0 14px rgba(212,175,55,0.38),inset 0 0 5px rgba(212,175,55,0.12);border-color:rgba(212,175,55,0.48)}
  75%{box-shadow:0 0 12px rgba(212,175,55,0.30),inset 0 0 4px rgba(212,175,55,0.10);border-color:rgba(212,175,55,0.42)}
}
#submit-btn.btn-pulse-active {animation:goldPulse 5s linear infinite;cursor:pointer}

/* 动态牌位 */
.selection-area{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;align-items:flex-start;margin-bottom:1.25rem}
.card-slot{flex:1 1 170px;min-width:140px;max-width:240px;border:1px solid var(--glass-border);border-radius:16px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.7rem .6rem .9rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;transition:all .4s var(--ease-out);cursor:default}
.card-slot.empty{border-style:dashed}
.card-slot.filled{border-style:solid;cursor:pointer}
.card-slot.filled:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,0.4)}
.card-slot[data-element="火"]{border-color:var(--fire);background:var(--fire-bg)}
.card-slot[data-element="水"]{border-color:var(--water);background:var(--water-bg)}
.card-slot[data-element="风"]{border-color:var(--air);background:var(--air-bg)}
.card-slot[data-element="土"]{border-color:var(--earth);background:var(--earth-bg)}
.slot-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);font-weight:700}
.slot-placeholder{font-size:.82rem;color:var(--text-dim);opacity:.55;padding:1.5rem 0}

/* 卡牌图片 + 3D */
.slot-img-wrap{width:100%;max-width:160px;border-radius:6px;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,0.5),0 0 0 1px rgba(255,255,255,0.06);background:#1a1040;transform-style:preserve-3d}
.slot-img-wrap.flip-in{animation:card-flip-in .55s cubic-bezier(.25,.46,.45,.94) both}
@keyframes card-flip-in{0%{transform:rotateY(90deg) scale(.85);opacity:.3}60%{transform:rotateY(-10deg) scale(1.02);opacity:1}100%{transform:rotateY(0deg) scale(1);opacity:1}}
.slot-img-wrap.reversed{transform:rotate(180deg)}
.slot-img-wrap.reversed.flip-in{animation:card-flip-in-rev .55s cubic-bezier(.25,.46,.45,.94) both}
@keyframes card-flip-in-rev{0%{transform:rotateY(90deg) rotate(180deg) scale(.85);opacity:.3}60%{transform:rotateY(-10deg) rotate(180deg) scale(1.02);opacity:1}100%{transform:rotateY(0deg) rotate(180deg) scale(1);opacity:1}}
.slot-card-img{display:block;width:100%;height:auto;aspect-ratio:5/7;object-fit:cover}

/* 防碎图 */
.slot-img-wrap.img-fallback{aspect-ratio:5/7;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:radial-gradient(ellipse at 50% 35%,rgba(92,58,112,0.18) 0%,transparent 60%),linear-gradient(160deg,#1a1224 0%,#150d22 50%,#0c0718 100%);border:1.5px solid rgba(92,58,112,0.35);box-shadow:inset 0 0 30px rgba(58,28,77,0.10),0 0 0 1px rgba(255,255,255,0.03);position:relative;overflow:hidden}
.slot-img-wrap.img-fallback::before{content:'';position:absolute;inset:-1px;border-radius:inherit;box-shadow:inset 0 0 20px rgba(58,28,77,0.15);animation:fallback-glow 3s ease-in-out infinite;pointer-events:none}
@keyframes fallback-glow{0%,100%{opacity:.5}50%{opacity:1}}
.slot-img-wrap.img-fallback::after{content:'✦';color:rgba(160,140,240,0.55);font-size:1.6rem;text-shadow:0 0 12px rgba(58,28,77,0.35);order:-1;line-height:1}
.fallback-name{color:rgba(200,180,240,0.8);font-size:.82rem;font-weight:600;text-align:center;padding:0 .4rem;line-height:1.35;z-index:1}
.slot-img-wrap.img-fallback .slot-card-img{display:none}

.slot-info{text-align:center;width:100%}
.slot-card-name{font-size:1rem;font-weight:700;margin-bottom:.1rem}
.slot-card-en{font-size:.68rem;color:var(--text-dim);margin-bottom:.2rem}
.slot-orient{display:inline-block;font-size:.72rem;font-weight:700;padding:.1rem .5rem;border-radius:10px;margin-bottom:.2rem}
.slot-orient.upright{background:rgba(46,204,113,0.18);color:#2ecc71}
.slot-orient.reversed{background:rgba(231,76,60,0.18);color:#e74c3c}
.slot-detail{font-size:.65rem;color:var(--text-dim);opacity:.75}

/* 智能搜索 */
.search-wrap{flex:1;position:relative}
.search-input{width:100%;padding:.45rem .6rem;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f0f0f0;font-size:.82rem;outline:none;font-family:inherit;transition:all .4s var(--ease-out)}
.search-input:focus{border-color:var(--accent)}
.search-input::placeholder{color:var(--text-dim);opacity:.5}
.search-dropdown{position:absolute;top:100%;left:0;right:0;max-height:240px;overflow-y:auto;background:#1a1040;border:1px solid var(--border);border-radius:6px;z-index:20;box-shadow:0 8px 30px rgba(0,0,0,0.6)}
.search-dropdown::-webkit-scrollbar{width:4px}
.search-dropdown::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.search-item{padding:.45rem .65rem;font-size:.8rem;cursor:pointer;color:var(--text);transition:background .15s;border-bottom:1px solid rgba(255,255,255,0.03)}
.search-item:last-child{border-bottom:none}
.search-item:hover{background:rgba(58,28,77,0.22);color:#fff}
.search-item strong{color:#e0d8ff}
.search-item span{color:var(--text-dim);font-size:.7rem;margin-left:.4rem}
.search-item i{float:right;color:var(--text-dim);font-size:.65rem;font-style:normal;opacity:.6}

/* 自选行 */
.manual-area{margin-bottom:1.5rem}
.manual-intro{font-size:.8rem;color:var(--text-dim);margin-bottom:.65rem;opacity:.75}
.manual-slots{display:flex;flex-direction:column;gap:.55rem}
.manual-row{display:flex;align-items:center;gap:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.5rem .7rem}
.manual-pos-label{font-size:.75rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;min-width:3em}
.orient-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .8rem;border-radius:8px;font-size:.78rem;font-weight:700;letter-spacing:.04em;cursor:pointer;flex-shrink:0;user-select:none;transition:background .22s,color .22s,border-color .22s,box-shadow .22s;font-family:inherit;border:2px solid transparent}
.orient-btn.upright{background:rgba(46,204,113,0.15);border-color:rgba(46,204,113,0.5);color:#2ecc71}
.orient-btn.upright:hover{background:rgba(46,204,113,0.25);border-color:#2ecc71;box-shadow:0 0 14px rgba(46,204,113,0.3)}
.orient-btn.reversed{background:rgba(231,76,60,0.15);border-color:rgba(231,76,60,0.5);color:#e74c3c}
.orient-btn.reversed:hover{background:rgba(231,76,60,0.25);border-color:#e74c3c;box-shadow:0 0 14px rgba(231,76,60,0.3)}

/* 盲抽 */
.deck-area{margin-bottom:1.5rem}
.deck-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}
.deck-label{display:flex;align-items:baseline;gap:.6rem}
.deck-label-text{font-size:.95rem;font-weight:600;color:#c0c0d0}
.deck-label-count{font-size:.8rem;color:var(--text-dim)}
.deck-label-count strong{color:var(--accent);font-size:1.05rem}
.deck-hint{font-size:.72rem;color:var(--text-dim);opacity:.65}
.shuffle-row{text-align:center;margin-bottom:.65rem}
.shuffle-btn{display:inline-block;background:transparent;border:1.5px solid var(--accent-soft);color:var(--accent-soft);font-size:.9rem;font-weight:600;padding:.55rem 2rem;border-radius:8px;cursor:pointer;letter-spacing:.06em;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:all .2s}
.shuffle-btn:hover{background:rgba(58,28,77,0.15);border-color:var(--accent);color:#b8a8c8}
.shuffle-btn.active{background:rgba(58,28,77,0.28);border-color:#7a5c8a;color:#fff;box-shadow:0 0 22px rgba(58,28,77,0.35);animation:shuffle-pulse .3s ease-in-out infinite}
@keyframes shuffle-pulse{0%,100%{box-shadow:0 0 22px rgba(58,28,77,0.35)}50%{box-shadow:0 0 40px rgba(58,28,77,0.6)}}

.deck-grid{display:grid;grid-template-columns:repeat(13,1fr);gap:5px;padding:.75rem;background:var(--bg-mid);border:1px solid var(--border);border-radius:10px;max-height:420px;overflow-y:auto;scroll-behavior:smooth}
.deck-grid::-webkit-scrollbar{width:5px}
.deck-grid::-webkit-scrollbar-track{background:transparent}
.deck-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
.deck-grid.shuffling .card-back:not(.drawn){animation:shuffle-flicker .12s ease-in-out infinite}
@keyframes shuffle-flicker{0%{opacity:1;border-color:#24142c}50%{opacity:.55;border-color:#5c3a70}100%{opacity:1;border-color:#24142c}}

.card-back{aspect-ratio:2.5/3.5;background:linear-gradient(145deg,#1e1450 0%,#150d22 60%,#0c0718 100%);border:1.5px solid #24142c;border-radius:4px;cursor:pointer;position:relative;transition:transform .2s,box-shadow .2s,opacity .3s,border-color .2s;overflow:hidden}
.card-back::before{content:'';position:absolute;inset:4px;border:1px solid rgba(92,58,112,0.22);border-radius:2px;pointer-events:none}
.card-back-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.card-back-inner::after{content:'✦';font-size:clamp(.55rem,1.4vw,1rem);color:rgba(92,58,112,0.4);text-shadow:0 0 6px rgba(58,28,77,0.28)}
.card-back:not(.drawn):not(.locked):hover{transform:translateY(-3px) scale(1.06);box-shadow:0 6px 22px rgba(58,28,77,0.35);border-color:#5c3a70;z-index:2}
.card-back.drawn{opacity:.1;border-color:transparent;cursor:default;filter:grayscale(.8)}
.card-back.locked{cursor:default;opacity:.5;border-color:#2a2a5a}

/* 结果 */
#result{padding:1.5rem;border-radius:16px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);margin-bottom:1.5rem;transition:all .4s var(--ease-out)}
#result h2{font-size:1.05rem;color:#c0c0f0;margin-bottom:1rem;padding-bottom:.45rem;border-bottom:1px solid var(--border)}
#result-content{line-height:1.95;white-space:pre-wrap;font-size:.95rem}

/* 深入探讨 */
.chat-section{margin-bottom:1.5rem;padding:1.25rem;border-radius:16px;background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);transition:all .4s var(--ease-out)}
.chat-section h3{font-size:.95rem;color:#c0c0f0;margin-bottom:.75rem}
.chat-history{max-height:360px;overflow-y:auto;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.65rem}
.chat-history::-webkit-scrollbar{width:4px}
.chat-history::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.chat-bubble{max-width:88%;padding:.7rem .9rem;border-radius:10px;font-size:.88rem;line-height:1.7;white-space:pre-wrap}
.chat-bubble.user{align-self:flex-end;background:rgba(58,28,77,0.15);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(58,28,77,0.25);color:#d0d0ff}
.chat-bubble.assistant{align-self:flex-start;background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);color:var(--text)}
.chat-bubble.streaming{border-color:rgba(58,28,77,0.32);box-shadow:0 0 8px rgba(58,28,77,0.10)}
.typing-indicator{font-size:.75rem;color:rgba(160,140,240,0.7);padding:.3rem .5rem;margin-bottom:.5rem;letter-spacing:.04em;animation:typing-fade 2s ease-in-out infinite}
@keyframes typing-fade{0%,100%{opacity:.45}50%{opacity:.9}}
.chat-input-row{display:flex;gap:.5rem;align-items:flex-end}
.chat-input-row textarea{flex:1;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-mid);color:#f0f0f0;font-size:.88rem;resize:none;outline:none;font-family:inherit;transition:border-color .25s}
.chat-input-row textarea:focus{border-color:var(--accent)}
.chat-input-row button{padding:.6rem 1.1rem;font-size:.88rem;align-self:stretch}
.chat-input-row textarea:disabled{opacity:.4}
.chat-status{margin-top:.5rem;font-size:.75rem;color:var(--text-dim);opacity:.7}
.chat-status.finished{color:#c0a0f0;opacity:.9;font-style:italic}

/* 操作行 */
.action-row{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-bottom:1rem}
#reset-btn,#export-btn{align-self:center;display:inline-block;background:transparent;border:1.5px solid var(--accent-soft);color:var(--accent-soft);font-size:.95rem;font-weight:600;padding:.7rem 2rem;border-radius:8px;cursor:pointer;letter-spacing:.06em;transition:background .25s,color .25s,border-color .25s,transform .15s,box-shadow .25s}
#reset-btn:hover,#export-btn:hover{background:rgba(58,28,77,0.20);border-color:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 4px 18px rgba(58,28,77,0.28)}
#reset-btn:active,#export-btn:active{transform:translateY(0)}
#export-btn{border-color:rgba(160,140,240,0.45);color:rgba(180,160,240,0.8)}
#export-btn:hover{border-color:#7a5c8a;color:#fff;background:rgba(92,58,112,0.15);box-shadow:0 4px 18px rgba(92,58,112,0.25)}

.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(30,20,60,0.95);border:1px solid rgba(92,58,112,0.4);color:rgba(200,180,240,0.9);padding:.7rem 1.4rem;border-radius:10px;font-size:.85rem;pointer-events:none;opacity:0;transition:opacity .35s,transform .35s;z-index:100;max-width:90vw;text-align:center;letter-spacing:.03em}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── Kairós 星轨交织加载动画 ── */
#kairos-loader{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:3rem 1.5rem;margin-bottom:1.5rem;opacity:1;
  transition:opacity .4s var(--ease-out);
}
#kairos-loader.hidden{display:none!important;opacity:0}
.kairos-rings{
  position:relative;width:140px;height:140px;margin-bottom:1.2rem;
}
.k-ring{
  position:absolute;top:50%;left:50%;border-radius:50%;
  border-style:solid;transform-origin:center center;
}

/* 外环 — 细线暗金，顺时针极慢 */
.k-ring.outer{
  width:130px;height:130px;margin:-65px 0 0 -65px;
  border-width:1.5px;border-color:rgba(212,175,55,0.3);
  border-top-color:rgba(212,175,55,0.15);
  border-right-style:dashed;border-left-style:dashed;
  animation:k-spin-cw 18s linear infinite;
}

/* 中环 — 26.7° 倾斜，逆时针中速 */
.k-ring.middle{
  width:94px;height:94px;margin:-47px 0 0 -47px;
  border-width:2px;border-color:rgba(200,160,50,0.28);
  border-bottom-color:rgba(200,160,50,0.12);
  border-left-style:dotted;
  transform:translate(-50%,-50%) rotateX(26.7deg);
  animation:k-spin-ccw 10s linear infinite;
}

/* 内环 — 暗金微光粒子虚线圈，顺时针快速 */
.k-ring.inner{
  width:58px;height:58px;margin:-29px 0 0 -29px;
  border-width:1.5px;border-color:rgba(220,190,80,0.35);
  border-style:dashed;
  box-shadow:0 0 14px rgba(212,175,55,0.15),inset 0 0 10px rgba(212,175,55,0.08);
  animation:k-spin-cw 5s linear infinite;
}

/* 核心呼吸灯 */
.k-ring.core{
  width:16px;height:16px;margin:-8px 0 0 -8px;
  background:radial-gradient(circle,rgba(220,190,80,0.6),rgba(180,140,40,0.15));
  border:none;border-radius:50%;
  box-shadow:0 0 18px rgba(212,175,55,0.35);
  animation:k-breathe 1.5s ease-in-out infinite;
}

@keyframes k-spin-cw{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes k-spin-ccw{from{transform:translate(-50%,-50%) rotateX(26.7deg) rotate(0deg)}to{transform:translate(-50%,-50%) rotateX(26.7deg) rotate(-360deg)}}
@keyframes k-breathe{0%,100%{opacity:.3;transform:translate(-50%,-50%) scale(.85)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.15)}}

.kairos-loader-text{
  font-size:.82rem;color:rgba(200,170,100,0.55);
  letter-spacing:.1em;font-weight:400;
  animation:k-text-pulse 2s ease-in-out infinite;
}
@keyframes k-text-pulse{0%,100%{opacity:.35}50%{opacity:.75}}

/* ── 追问微型星轨（底部原地，不触发行滚动） ── */
.followup-loader{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:.6rem 0;opacity:1;transition:opacity .35s var(--ease-out);
}
.followup-loader.hidden{display:none!important;opacity:0}
.fl-rings{position:relative;width:54px;height:54px;flex-shrink:0}
.fl-ring{
  position:absolute;top:50%;left:50%;border-radius:50%;
  border-style:solid;transform-origin:center center;
}
.fl-ring.outer{
  width:50px;height:50px;margin:-25px 0 0 -25px;
  border-width:1.2px;border-color:rgba(212,175,55,0.28);
  border-top-color:rgba(212,175,55,0.12);
  border-right-style:dashed;border-left-style:dashed;
  animation:k-spin-cw 18s linear infinite;
}
.fl-ring.inner{
  width:34px;height:34px;margin:-17px 0 0 -17px;
  border-width:1.5px;border-color:rgba(200,160,50,0.25);
  border-bottom-color:rgba(200,160,50,0.10);
  border-style:dashed;
  animation:k-spin-ccw 10s linear infinite;
}
.fl-ring.core{
  width:8px;height:8px;margin:-4px 0 0 -4px;
  background:radial-gradient(circle,rgba(220,190,80,0.55),rgba(180,140,40,0.12));
  border:none;border-radius:50%;
  box-shadow:0 0 10px rgba(212,175,55,0.28);
  animation:k-breathe 1.5s ease-in-out infinite;
}
.fl-text{
  font-size:.72rem;color:rgba(200,170,100,0.45);
  letter-spacing:.08em;white-space:nowrap;
  animation:k-text-pulse 2s ease-in-out infinite;
}

/* ── Tooltip 悬停提示问号 ── */
.tooltip-trigger{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;margin-left:8px;
  background:rgba(212,175,55,0.12);color:rgba(212,175,55,0.55);
  font-size:11px;font-weight:700;cursor:help;position:relative;
  vertical-align:middle;user-select:none;flex-shrink:0;
  animation:tooltip-breathe 2.5s ease-in-out infinite;
}
@keyframes tooltip-breathe{0%,100%{opacity:.45}50%{opacity:.85}}

/* 初始提问框气泡 — 斜右上方 45° 优雅浮现 */
.tooltip-bubble{
  position:absolute;bottom:120%;left:110%;
  transform:translate(-10px,10px);
  background:rgba(255,255,255,0.05);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.1);color:#F8F9FA;font-size:13px;
  border-radius:8px;padding:12px;max-width:300px;width:max-content;
  z-index:999;pointer-events:none;white-space:normal;line-height:1.55;
  opacity:0;visibility:hidden;
  transition:all .4s cubic-bezier(0.25,1,0.5,1);
  font-weight:400;letter-spacing:.02em;
}
.tooltip-trigger:hover .tooltip-bubble{
  transform:translate(0,0);
  opacity:1;visibility:visible;
}

/* 深入探讨气泡 — 正右方横向长条，两到三行平铺 */
.tooltip-bubble-wide{
  position:absolute;top:50%;left:105%;width:max-content;max-width:620px;
  transform:translateY(-50%) translateX(10px);
  background:rgba(255,255,255,0.05);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.1);color:#F8F9FA;font-size:13px;
  border-radius:8px;padding:10px 18px;
  z-index:999;pointer-events:none;white-space:normal;line-height:1.6;
  opacity:0;visibility:hidden;
  transition:all .4s cubic-bezier(0.25,1,0.5,1);
  font-weight:400;letter-spacing:.02em;
}
.tooltip-trigger:hover .tooltip-bubble-wide{
  transform:translateY(-50%) translateX(15px);
  opacity:1;visibility:visible;
}

.hidden{display:none!important}

/* ── 响应式 ── */
@media(max-width:800px){.deck-grid{grid-template-columns:repeat(10,1fr);max-height:350px}.manual-row{flex-wrap:wrap}}
@media(max-width:600px){
  #app{padding:1rem .7rem 3rem}h1{font-size:1.5rem}.landing-title{font-size:2.2rem}
  .card-slot,.chat-section,#result,.portal-card,.chat-bubble{backdrop-filter:none;-webkit-backdrop-filter:none}
  .selection-area{gap:.4rem}
  .card-slot{flex:1 1 98px;min-width:90px;padding:.4rem .3rem .6rem}
  .slot-img-wrap{max-width:110px}.slot-card-name{font-size:.82rem}
  .deck-grid{grid-template-columns:repeat(6,1fr);gap:3px;padding:.5rem;max-height:280px}
  .card-back{border-radius:2px}.card-back::before{inset:2px}
  button{align-self:stretch;text-align:center}
  #reset-btn,#export-btn,.shuffle-btn,.mode-tab,.count-btn{width:auto}
  .mode-switch{flex-direction:column;align-items:stretch}.mode-hint{margin-left:0;text-align:center}
  .manual-row{flex-direction:column;align-items:stretch;gap:.35rem}.manual-pos-label{text-align:center}
  .chat-bubble{max-width:95%}.action-row{flex-direction:column}#reset-btn,#export-btn{width:100%}
  .home-link{position:static;display:block;margin-bottom:.8rem}
}

/* ============================================================
   Le Miroir du Destin · 雷诺曼法式冷酷主义视觉覆盖
   通过 body[data-system="lenormand"] 全量隔离，零污染塔罗
   ============================================================ */
body[data-system="lenormand"] {
  --len-bg: #0F172A;
  --len-surface: rgba(30,41,59,0.6);
  --len-border: rgba(226,232,240,0.18);
  --len-text: rgba(226,232,240,0.82);
  --len-dim: rgba(148,163,184,0.55);
  --len-accent: #4C0519;
  --len-accent-glow: rgba(76,5,25,0.3);
}
body[data-system="lenormand"] #app { background: var(--len-bg); }
body[data-system="lenormand"] header h1 {
  font-family: 'Playfair Display', 'Times New Roman', serif;
  font-style: italic; font-weight: 500; letter-spacing: 0.06em;
  background: none; -webkit-text-fill-color: var(--len-text); color: var(--len-text);
}
body[data-system="lenormand"] .subtitle { color: var(--len-dim); }
body[data-system="lenormand"] .home-link { color: var(--len-dim); }
body[data-system="lenormand"] .home-link:hover { color: rgba(226,232,240,0.7); }

/* 模式切换 */
body[data-system="lenormand"] .mode-tab {
  border-color: var(--len-border); color: var(--len-dim); background: transparent;
}
body[data-system="lenormand"] .mode-tab.active {
  background: var(--len-surface); color: var(--len-text); border-color: rgba(226,232,240,0.35);
}

/* 牌数按钮 */
body[data-system="lenormand"] .count-btn {
  border-color: var(--len-border); color: var(--len-dim); background: transparent;
}
body[data-system="lenormand"] .count-btn.active {
  background: var(--len-surface); color: var(--len-text); border-color: rgba(226,232,240,0.35);
}

/* 语调按钮 */
body[data-system="lenormand"] .tone-btn {
  border-color: var(--len-border); color: var(--len-dim); background: transparent;
}
body[data-system="lenormand"] .tone-btn.active {
  background: var(--len-surface); color: var(--len-text); border-color: rgba(226,232,240,0.35);
}

/* 输入框 */
body[data-system="lenormand"] textarea, body[data-system="lenormand"] input[type="text"] {
  background: var(--len-surface); border-color: var(--len-border); color: var(--len-text);
}
body[data-system="lenormand"] textarea::placeholder { color: var(--len-dim); }

/* 提交按钮 */
body[data-system="lenormand"] #submit-btn {
  background: transparent; border-color: var(--len-border); color: var(--len-dim);
}
body[data-system="lenormand"] #submit-btn:not(:disabled) {
  border-color: rgba(226,232,240,0.4); color: var(--len-text);
}
body[data-system="lenormand"] #submit-btn:not(:disabled):hover {
  background: var(--len-accent); border-color: var(--len-accent); color: #E2E8F0;
}

/* 卡牌槽位 */
body[data-system="lenormand"] .card-slot {
  background: var(--len-surface); border-color: var(--len-border);
}
body[data-system="lenormand"] .card-slot.filled { border-color: rgba(226,232,240,0.3); }
body[data-system="lenormand"] .slot-label { color: var(--len-dim); }
body[data-system="lenormand"] .slot-card-name { color: var(--len-text); }
body[data-system="lenormand"] .slot-card-en { color: var(--len-dim); }
body[data-system="lenormand"] .slot-detail { color: rgba(148,163,184,0.5); }

/* 解读报告 */
body[data-system="lenormand"] #result {
  border-color: var(--len-border); background: var(--len-surface);
}
body[data-system="lenormand"] #result h2 { color: var(--len-text); }
body[data-system="lenormand"] #result-content { color: var(--len-text); }

/* 追问区域 */
body[data-system="lenormand"] .chat-section {
  border-color: var(--len-border); background: var(--len-surface);
}
body[data-system="lenormand"] .chat-section h3 { color: var(--len-text); }
body[data-system="lenormand"] .chat-bubble.assistant {
  background: rgba(30,41,59,0.5); border-color: var(--len-border); color: var(--len-text);
}
body[data-system="lenormand"] .chat-bubble.user {
  background: rgba(76,5,25,0.25); border-color: rgba(76,5,25,0.3); color: var(--len-text);
}

/* 洗牌 / 操作按钮 */
body[data-system="lenormand"] .shuffle-btn { border-color: var(--len-border); color: var(--len-dim); }
body[data-system="lenormand"] .shuffle-btn.active { background: var(--len-surface); color: var(--len-text); }

/* 操作行 */
body[data-system="lenormand"] #reset-btn, body[data-system="lenormand"] #export-btn {
  border-color: var(--len-border); color: var(--len-dim);
}
body[data-system="lenormand"] #reset-btn:hover, body[data-system="lenormand"] #export-btn:hover {
  border-color: rgba(226,232,240,0.4); color: var(--len-text);
}

/* 牌背 */
body[data-system="lenormand"] .card-back {
  border-color: var(--len-border); background: var(--len-surface);
}
body[data-system="lenormand"] .card-back-inner { border-color: rgba(226,232,240,0.1); }

/* 搜牌弹窗 */
body[data-system="lenormand"] .search-dropdown {
  background: var(--len-bg); border-color: var(--len-border);
}
body[data-system="lenormand"] .search-item { color: var(--len-text); }
body[data-system="lenormand"] .search-item:hover { background: rgba(76,5,25,0.2); }
body[data-system="lenormand"] .search-item strong { color: var(--len-text); }
body[data-system="lenormand"] .search-item span { color: var(--len-dim); }
body[data-system="lenormand"] .search-item i { color: rgba(148,163,184,0.4); }

/* Tooltip */
body[data-system="lenormand"] .tooltip-trigger {
  background: rgba(226,232,240,0.08); color: var(--len-dim);
}
body[data-system="lenormand"] .tooltip-bubble, body[data-system="lenormand"] .tooltip-bubble-wide {
  background: var(--len-bg); border-color: var(--len-border); color: var(--len-text);
}

/* 星轨 loader */
body[data-system="lenormand"] .k-ring { border-color: rgba(226,232,240,0.15); }
body[data-system="lenormand"] .k-ring.core { background: radial-gradient(circle,rgba(226,232,240,0.4),rgba(148,163,184,0.1)); box-shadow: 0 0 10px rgba(226,232,240,0.15); }
body[data-system="lenormand"] .kairos-loader-text { color: rgba(226,232,240,0.35); }
body[data-system="lenormand"] .fl-ring { border-color: rgba(226,232,240,0.15); }
body[data-system="lenormand"] .fl-ring.core { background: radial-gradient(circle,rgba(226,232,240,0.35),rgba(148,163,184,0.08)); box-shadow: 0 0 8px rgba(226,232,240,0.12); }
body[data-system="lenormand"] .fl-text { color: rgba(226,232,240,0.3); }

/* Chat 状态栏 */
body[data-system="lenormand"] .chat-status { color: var(--len-dim); }
body[data-system="lenormand"] .typing-indicator { color: var(--len-dim); }
