
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700;900&family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
:root{--navy:#1a2236;--navy-light:#2a3a5a;--gold:#b8864c;--gold-light:#d4a86a;--cream:#f8f6f1;--white:#fefdfc;--text:#2c2c2c;--text-secondary:#6b6b6b;--text-muted:#999;--border:#e8e4de}
body{font-family:'Noto Sans SC',-apple-system,sans-serif;background:#faf8f5;color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.hidden{display:none!important}
nav{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:16px 56px;background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);height:64px}
.nav-logo{font-family:'Noto Serif SC',serif;font-size:17px;font-weight:700;color:var(--navy);cursor:pointer}
.nav-logo em{font-style:normal;color:var(--gold)}
.nav-links{display:flex;gap:28px;list-style:none}
.nav-links a{color:var(--text-secondary);text-decoration:none;font-size:13px;font-weight:500;transition:color .2s;cursor:pointer}
.nav-links a:hover{color:var(--navy)}
.nav-actions{display:flex;align-items:center;gap:12px}
.nav-actions .link{font-size:12px;color:var(--text-secondary);cursor:pointer;background:none;border:none;font-family:inherit;transition:color .2s}
.nav-actions .link:hover{color:var(--navy)}
.nav-cta{background:var(--navy);color:#fff;font-size:12px;font-weight:600;letter-spacing:.5px;padding:9px 24px;cursor:pointer;transition:background .2s;border:none;font-family:inherit}
.nav-cta:hover{background:var(--navy-light)}
@media(max-width:768px){nav{padding:14px 20px}.nav-links{display:none}.nav-actions .link{display:none}}
#landingPage{padding-top:64px}
.hero{min-height:100vh;padding:6vh 56px 60px;display:flex;align-items:flex-start;background:linear-gradient(135deg,#faf8f5 0%,#f5f0ea 50%,#faf8f5 100%);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(184,134,76,0.03) 0%,transparent 70%)}
.hero-content{position:relative;z-index:1}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(26,34,54,0.04);padding:8px 20px;font-size:12px;color:var(--text-secondary);font-weight:500;margin-bottom:32px}
.hero-badge span{width:5px;height:5px;border-radius:50%;background:var(--gold)}
.hero h1{font-family:'Noto Serif SC',serif;font-size:clamp(34px,5vw,56px);font-weight:700;line-height:1.25;letter-spacing:1px;color:var(--navy)}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{font-size:16px;color:var(--text-secondary);line-height:1.8;margin-top:24px;max-width:480px}
.hero-actions{display:flex;gap:16px;margin-top:40px}
.btn-primary{background:var(--navy);color:#fff;border:none;padding:14px 40px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;letter-spacing:.5px;font-family:inherit}
.btn-primary:hover{background:var(--navy-light)}
.btn-secondary{background:transparent;color:var(--navy);border:none;padding:14px 32px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.btn-secondary:hover{color:var(--gold)}
.hero-stats{display:flex;gap:48px;margin-top:60px;padding-top:40px;border-top:1px solid var(--border);flex-wrap:wrap}
.hero-stat h3{font-size:28px;font-weight:700;color:var(--navy)}
.hero-stat span{font-size:12px;color:var(--text-muted);font-weight:500}
@media(max-width:768px){.hero{padding:24px 20px 40px;text-align:center}.hero-stats{gap:20px}}

/* ===== HERO TWO-COLUMN LAYOUT (desktop) ===== */
.hero-inner{display:flex;gap:80px;align-items:flex-start;width:100%;max-width:1280px;margin:0 auto}
.hero-content{flex-shrink:0;max-width:540px}

/* ===== RIGHT PANEL — 知识星球（设计稿） ===== */

/* Ambient glow behind the globe */
.ambient-glow{position:absolute;right:5%;top:50%;transform:translateY(-50%);width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(212,168,106,0.04) 0%,transparent 60%);pointer-events:none;z-index:0}

/* Right column wrapper */
.hero-side-col{flex:1;min-width:440px;max-width:560px;display:flex;flex-direction:column;gap:14px;position:relative}

/* Globe square — no border, no dark bg, blends into page */
.hero-side{width:100%;aspect-ratio:1/1;max-width:560px;position:relative;margin:0 auto;perspective:1000px}
.hero-side::before{content:'';position:absolute;top:10%;left:10%;width:80%;height:80%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,0.6) 0%,rgba(248,246,241,0.3) 50%,transparent 75%);z-index:0;pointer-events:none}

/* Particle canvas */
#globeParticles{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}

/* SVG connection lines */
#globeConnections{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.35}

/* 3D scene container */
.globe-scene{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;transform-style:preserve-3d;transition:transform .12s ease-out}

/* ---- Rings ---- */
.ring{position:absolute;top:50%;left:50%;border-radius:50%;transform-style:preserve-3d;pointer-events:none}
.ring--outer{width:100%;height:100%;margin:-50% 0 0 -50%;border:1px solid rgba(212,168,106,0.08);animation:ring-spin-outer 55s linear infinite}
.ring--mid{width:74%;height:74%;margin:-37% 0 0 -37%;border:1px solid rgba(212,168,106,0.13);animation:ring-spin-mid 35s linear infinite reverse}
.ring--inner{width:48%;height:48%;margin:-24% 0 0 -24%;border:1px solid rgba(212,168,106,0.2);animation:ring-spin-inner 24s linear infinite}

/* Ring glow arcs */
.ring-glow{position:absolute;top:50%;left:50%;border-radius:50%;pointer-events:none;border:1px solid transparent}
.ring-glow--1{width:87%;height:87%;margin:-43.5% 0 0 -43.5%;border-top-color:rgba(212,168,106,0.15);animation:ring-spin-arc1 20s linear infinite reverse}
.ring-glow--2{width:61%;height:61%;margin:-30.5% 0 0 -30.5%;border-left-color:rgba(212,168,106,0.1);border-bottom-color:rgba(212,168,106,0.06);animation:ring-spin-arc2 15s linear infinite}

@keyframes ring-spin-outer{to{transform:rotate(360deg)}}
@keyframes ring-spin-mid{to{transform:rotate(360deg)}}
@keyframes ring-spin-inner{to{transform:rotate(360deg)}}
@keyframes ring-spin-arc1{to{transform:rotate(360deg)}}
@keyframes ring-spin-arc2{to{transform:rotate(360deg)}}

/* ---- Nodes ---- */
.kg-node{position:absolute;z-index:4;cursor:pointer;width:28px;height:28px;margin:-14px 0 0 -14px}
.kg-node-dot{position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:#d4a86a;box-shadow:0 0 18px rgba(212,168,106,0.35),0 0 40px rgba(212,168,106,0.1);transition:all .3s cubic-bezier(.34,1.56,.64,1)}
.kg-node:hover .kg-node-dot{width:30px;height:30px;margin:-15px 0 0 -15px;background:#fff;box-shadow:0 0 32px rgba(212,168,106,0.8),0 0 64px rgba(212,168,106,0.3)}
.kg-node-label{position:absolute;top:-26px;left:50%;transform:translateX(-50%);font-size:10px;color:#6b6b6b;white-space:nowrap;letter-spacing:.3px;opacity:0;transition:opacity .3s,color .3s;pointer-events:none}
.kg-node:hover .kg-node-label{opacity:1;color:#1a2236}
/* When 学科覆盖 stat is hovered, show all node labels */
.globe-scene.show-outer-labels .kg-node .kg-node-dot{box-shadow:0 0 24px rgba(212,168,106,0.7),0 0 50px rgba(212,168,106,0.25)}
.globe-scene.show-outer-labels .kg-node .kg-node-label{opacity:1;color:#1a2236}
/* Hover over center globe area shows all node labels */
.hero-side:hover .kg-node .kg-node-label{opacity:1;color:#1a2236}
.hero-side:hover .kg-node .kg-node-dot{box-shadow:0 0 24px rgba(212,168,106,0.7),0 0 50px rgba(212,168,106,0.25)}

/* ---- Center Orb ---- */
.kg-orb,.kg-orb-ring1,.kg-orb-ring2{position:absolute;top:50%;left:50%;border-radius:50%;pointer-events:none}
.kg-orb{width:168px;height:168px;margin:-84px 0 0 -84px;z-index:3;background:radial-gradient(circle at 35% 35%,#fff,#d4a86a);box-shadow:0 0 70px rgba(212,168,106,0.35),0 0 150px rgba(212,168,106,0.1);animation:orb-pulse 2.5s ease-in-out infinite}
.kg-orb-ring1{width:260px;height:260px;margin:-130px 0 0 -130px;border:.8px solid rgba(212,168,106,0.12);animation:orb-ring-anim 2.5s ease-in-out infinite}
.kg-orb-ring2{width:380px;height:380px;margin:-190px 0 0 -190px;border:.5px solid rgba(212,168,106,0.06);animation:orb-ring-anim 2.5s ease-in-out .5s infinite}

@keyframes orb-pulse{0%,100%{box-shadow:0 0 70px rgba(212,168,106,0.35),0 0 150px rgba(212,168,106,0.1)}50%{box-shadow:0 0 120px rgba(212,168,106,0.6),0 0 200px rgba(212,168,106,0.2)}}
@keyframes orb-ring-anim{0%,100%{transform:scale(.9);opacity:.3}50%{transform:scale(1.3);opacity:.6}}

/* ---- Floating labels ---- */
.kg-float-label{position:absolute;z-index:5;pointer-events:none;font-size:9px;letter-spacing:.8px;color:#6b6b6b;animation:float-label 5s ease-in-out infinite}
@keyframes float-label{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:.9}}

/* ---- HUD ---- */
.kg-hud{position:absolute;z-index:6;pointer-events:none;font-size:7px;font-family:monospace;color:rgba(26,34,54,0.12);letter-spacing:1px}
.kg-hud-tl{top:6%;left:8%}
.kg-hud-tr{top:6%;right:8%}
.kg-hud-bl{bottom:6%;left:8%}

/* ---- LIVE bar ---- */
.kg-live-bar{position:absolute;top:3%;left:8%;z-index:7;display:flex;align-items:center;gap:10px;pointer-events:none}
.kg-live-dot{width:5px;height:5px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px rgba(34,197,94,0.4);animation:live-pulse 2s ease-in-out infinite}
.kg-live-label{font-size:7px;font-weight:700;letter-spacing:1.5px;color:#22c55e;text-transform:uppercase}
.kg-live-sys{font-size:7px;font-weight:600;letter-spacing:1px;color:#6b6b6b;opacity:.4}

/* ===== RIGHT COLUMN FOOTER — CTA + Quick actions ===== */
.hero-side-cta{display:flex;gap:8px;margin-top:16px}
.hero-side-cta .btn-sm{flex:1;padding:10px 16px;font-size:12px;font-weight:600;border-radius:6px;cursor:pointer;font-family:inherit;transition:all .25s;text-align:center;letter-spacing:.3px}
.hero-side-cta .btn-primary-sm{background:var(--navy);color:#fff;border:none}
.hero-side-cta .btn-primary-sm:hover{background:var(--navy-light);transform:translateY(-1px)}
.hero-side-cta .btn-ghost-sm{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}
.hero-side-cta .btn-ghost-sm:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.hero-side-quick{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.hero-side-quick .item{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--white);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .25s;font-family:inherit;font-size:12px;color:var(--text-secondary)}
.hero-side-quick .item:hover{background:rgba(184,134,76,0.04);border-color:var(--gold-light);color:var(--navy)}
.hero-side-quick .item .ico{font-size:13px;color:var(--text-muted)}
/* Entry animations */
@keyframes cardFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.hero-side-cta .btn-sm:nth-child(1){animation:cardFadeUp .35s ease .3s both}
.hero-side-cta .btn-sm:nth-child(2){animation:cardFadeUp .35s ease .36s both}
.hero-side-quick .item:nth-child(1){animation:cardFadeUp .35s ease .42s both}
.hero-side-quick .item:nth-child(2){animation:cardFadeUp .35s ease .48s both}
.hero-side-quick .item:nth-child(3){animation:cardFadeUp .35s ease .54s both}
.hero-side-quick .item:nth-child(4){animation:cardFadeUp .35s ease .6s both}

/* Tablet: stack vertically, keep globe visible */
@media(max-width:1023px){.hero-inner{flex-direction:column;gap:40px}.hero-content{max-width:100%}}
section{padding:100px 56px}
.section-label{font-size:11px;font-weight:600;letter-spacing:2.5px;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.section-title{font-family:'Noto Serif SC',serif;font-size:clamp(26px,3.5vw,40px);font-weight:700;line-height:1.25;color:var(--navy)}
.section-title em{font-style:normal;color:var(--gold)}
.section-desc{font-size:15px;color:var(--text-secondary);line-height:1.8;margin-top:16px;max-width:560px}
@media(max-width:768px){section{padding:60px 24px}}
.problem-wrap{background:var(--white);border-bottom:1px solid var(--border)}
.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border:1px solid var(--border)}
.problem-card{padding:48px 36px;background:var(--white)}
.problem-card:nth-child(2){border-left:1px solid var(--border);border-right:1px solid var(--border)}
.problem-icon{font-size:28px;margin-bottom:20px}
.problem-card h3{font-size:16px;font-weight:600;color:var(--navy);margin-bottom:12px}
.problem-card p{font-size:13px;color:var(--text-secondary);line-height:1.8}
@media(max-width:768px){.problem-grid{grid-template-columns:1fr}.problem-card:nth-child(2){border:none}}
.mantra-wrap{background:var(--navy);color:#fff;text-align:center;padding:100px 56px}
.mantra-wrap h2{font-family:'Noto Serif SC',serif;font-size:clamp(20px,3vw,34px);font-weight:400;line-height:1.6;color:rgba(255,255,255,0.5);max-width:700px;margin:0 auto}
.mantra-wrap strong{color:#fff;font-weight:600}
.mantra-wrap em{font-style:normal;color:var(--gold-light)}
@media(max-width:768px){.mantra-wrap{padding:80px 24px}}
.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}
.method-num{font-family:'Noto Serif SC',serif;font-size:48px;font-weight:700;color:rgba(184,134,76,0.15);line-height:1;margin-bottom:16px}
.method-card h3{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:8px}
.method-card p{font-size:13px;color:var(--text-secondary);line-height:1.7}
@media(max-width:768px){.method-grid{grid-template-columns:1fr}}
.showcase-wrap{background:var(--white);border-bottom:1px solid var(--border)}
.showcase-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;max-width:1100px;margin:0 auto}
.showcase-text .stat-row{display:flex;gap:32px;margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}
.showcase-text .stat-row h4{font-size:24px;font-weight:700;color:var(--navy)}
.showcase-text .stat-row span{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}
.chat-box{border:1px solid var(--border)}
.chat-box-header{display:flex;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--border);background:#faf8f5}
.chat-box-header span{width:8px;height:8px;border-radius:50%;background:#ddd}
.chat-box-header span:first-child{background:#e8a0a0}
.chat-box-header span:nth-child(2){background:#e8d5a0}
.chat-box-header span:nth-child(3){background:#a0c4a0}
.chat-body{padding:20px}
.msg{display:flex;gap:12px;margin-bottom:20px}
.msg:last-child{margin-bottom:0}
.msg-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}
.msg-avatar.user{background:#e8e4de;color:var(--text-secondary)}
.msg-avatar.ai{background:var(--navy);color:#fff}
.msg-content{background:var(--white);padding:16px 20px;font-size:13px;line-height:1.7;color:var(--text-secondary)}
.msg-content strong{color:var(--text);font-weight:600}
.msg-source{font-size:11px;color:var(--text-muted);margin-top:8px}
@media(max-width:900px){.showcase-grid{grid-template-columns:1fr}}

/* ===== TESTIMONIALS ===== */
.testimonial-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px}
.t-card{background:var(--white);border:1px solid var(--border);padding:36px;position:relative}
.t-card::before{content:'"';position:absolute;top:12px;left:20px;font-size:48px;color:var(--gold);opacity:.15;font-family:'Noto Serif SC',serif;line-height:1}
.t-card p{font-size:13px;color:var(--text-secondary);line-height:1.8;font-style:italic}
.t-card .t-author{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.t-card .t-author .t-avatar{width:36px;height:36px;border-radius:50%;background:rgba(184,134,76,0.1);color:var(--gold);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}
.t-card .t-author .t-name{font-size:13px;font-weight:600;color:var(--navy)}
.t-card .t-author .t-school{font-size:11px;color:var(--text-muted)}
@media(max-width:768px){.testimonial-grid{grid-template-columns:1fr}}

/* ===== FAQ ===== */
.faq-list{max-width:700px;margin:48px auto 0;display:flex;flex-direction:column;gap:0;border:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border);background:var(--white)}
.faq-item:last-child{border-bottom:none}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;background:none;border:none;font-size:14px;font-weight:500;color:var(--navy);cursor:pointer;text-align:left;font-family:inherit;transition:background .2s}
.faq-q:hover{background:rgba(26,34,54,0.02)}
.faq-q .icon{font-size:12px;color:var(--text-muted);transition:transform .2s;flex-shrink:0}
.faq-q.open .icon{transform:rotate(45deg)}
.faq-a{padding:0 28px 0;max-height:0;overflow:hidden;transition:all .25s ease;font-size:13px;color:var(--text-secondary);line-height:1.75}
.faq-a.open{padding:0 28px 20px;max-height:300px}

/* ===== COUNTRY LIST ===== */
.country-tag-wrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.country-tag{font-size:11px;padding:5px 14px;background:rgba(26,34,54,0.04);color:var(--text-secondary);letter-spacing:.3px}

/* ===== CASE STORIES ===== */
.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px}
.case-card{background:var(--white);border:1px solid var(--border);padding:36px;cursor:pointer;transition:all .25s;position:relative}
.case-card:hover{box-shadow:0 4px 20px rgba(26,34,54,0.06);border-color:var(--gold-light);transform:translateY(-2px)}
.case-card .country{font-size:10px;font-weight:600;letter-spacing:2px;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.case-card h3{font-size:16px;font-weight:600;color:var(--navy);margin-bottom:12px}
.case-card p{font-size:13px;color:var(--text-secondary);line-height:1.7}
.case-card .case-detail{max-height:0;overflow:hidden;transition:max-height .35s ease;font-size:13px;color:var(--text-secondary);line-height:1.7;border-top:1px solid var(--border);margin-top:14px;padding-top:14px}
.case-card .case-detail.open{max-height:600px}
.case-tag{display:inline-block;margin-top:16px;font-size:11px;color:var(--gold);font-weight:500}
.case-card .expand-hint{position:absolute;bottom:14px;right:20px;font-size:10px;color:var(--text-muted);opacity:0;transition:opacity .25s}
.case-card:hover .expand-hint{opacity:1}
@media(max-width:768px){.case-grid{grid-template-columns:1fr}}

/* ===== CTA ===== */
.cta-wrap{background:var(--navy);text-align:center;padding:100px 56px}
.cta-wrap h2{font-family:'Noto Serif SC',serif;font-size:clamp(24px,3.5vw,40px);font-weight:700;color:#fff;max-width:600px;margin:0 auto 16px;line-height:1.25}
.cta-wrap h2 em{font-style:normal;color:var(--gold-light)}
.cta-wrap p{font-size:15px;color:rgba(255,255,255,0.4);margin-bottom:40px}
@media(max-width:768px){.cta-wrap{padding:80px 24px}}

/* ===== FOOTER ===== */
.landing-footer{background:var(--navy);border-top:1px solid rgba(255,255,255,0.06);padding:28px 56px 32px;display:flex;justify-content:space-between;align-items:center}
.landing-footer .legal{font-size:11px;color:rgba(255,255,255,0.2)}
.landing-footer .links{display:flex;gap:20px;list-style:none}
.landing-footer .links a{font-size:11px;color:rgba(255,255,255,0.2);text-decoration:none;cursor:pointer;transition:color .2s}
.landing-footer .links a:hover{color:var(--gold-light)}
@media(max-width:768px){.landing-footer{flex-direction:column;gap:12px;padding:20px 24px}}

/* ============ CHAT APP ============ */
.chat-app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;background:var(--cream)}
.chat-top{display:flex;align-items:center;gap:12px;padding:14px 24px;background:var(--navy);flex-shrink:0}
.chat-top .brand{font-family:'Noto Serif SC',serif;font-size:15px;font-weight:600;color:#fff}
.chat-top .brand em{font-style:normal;color:var(--gold-light)}
.chat-top .tag{font-size:10px;color:rgba(255,255,255,0.4);margin-left:auto}
.chat-top .back-btn{color:rgba(255,255,255,0.6);cursor:pointer;font-size:13px;background:none;border:none;padding:4px}
.chat-top .back-btn:hover{color:#fff}
.chat-top .clear-btn{color:rgba(255,255,255,0.4);font-size:11px;background:none;border:1px solid rgba(255,255,255,0.15);padding:4px 12px;cursor:pointer}
.chat-top .clear-btn:hover{color:#fff;border-color:rgba(255,255,255,0.3)}
.chat-msgs-wrap{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column}
.chat-msgs{flex:1;overflow-y:auto;padding:20px 24px 8px;display:flex;flex-direction:column;gap:16px;min-height:0;will-change:scroll-position;contain:layout size style}
.chat-msgs .msg-row{display:flex;align-items:flex-start;gap:10px;max-width:680px;margin:0 auto;width:100%}
.chat-msgs .msg-row.user{flex-direction:row-reverse;margin-left:auto}
.chat-msgs .msg-row .av{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600}
.chat-msgs .msg-row.user .av{background:#e0dbd4;color:var(--text-secondary)}
.chat-msgs .msg-row.ai .av{background:var(--navy);color:#fff}
.chat-msgs .msg-row .bubble{padding:12px 18px;font-size:14px;line-height:1.75;max-width:500px}
.chat-msgs .msg-row.user .bubble{background:var(--navy);color:#fff;border-radius:12px 4px 12px 12px}
.chat-msgs .msg-row.ai .bubble{background:var(--white);border:1px solid var(--border);color:var(--text-secondary);border-radius:4px 12px 12px 12px;position:relative}
.chat-msgs .msg-row.ai .bubble strong{color:var(--text);font-weight:600}
.typing-dots{display:flex;gap:5px;padding:6px 0}
.typing-dots span{width:7px;height:7px;border-radius:50%;background:#d0ccc6;animation:b2 1.4s infinite}
.typing-dots span:nth-child(2){animation-delay:.2s}
.typing-dots span:nth-child(3){animation-delay:.4s}
@keyframes b2{0%,60%,100%{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}
.msg-in{animation:fi .35s cubic-bezier(.16,1,.3,1) forwards}
@keyframes fi{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.chat-sources-bar{max-width:680px;margin:0 auto;width:100%;padding:0 24px;flex-shrink:0}
.chat-sources-bar .inner{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0}
.chat-sources-bar .badge{font-size:10px;padding:2px 10px;border-radius:10px;background:rgba(184,134,76,0.1);color:var(--gold);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:all .2s}
.chat-sources-bar .badge:hover{background:rgba(184,134,76,0.2)}
.chat-sources-bar .badge.web{background:rgba(42,58,90,0.08);color:var(--navy-light)}
.chat-sources-bar .badge.web:hover{background:rgba(42,58,90,0.15)}
.scroll-bottom-btn{position:absolute;bottom:18px;right:18px;width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;border:none;font-size:14px;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(26,34,54,0.2);z-index:10;transition:all .2s;line-height:1}
.scroll-bottom-btn:hover{transform:scale(1.08)}
.msg-row.ai .copy-btn{display:block;width:100%;margin-top:10px;padding:8px 0;background:var(--cream);border:1px dashed var(--border);border-radius:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .2s;font-family:inherit;text-align:center}
.msg-row.ai .copy-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(184,134,76,0.04)}
.msg-row.ai .copy-btn.copied{border-color:#27ae60;color:#27ae60;background:#f0faf0}
.msg-row.ai.streaming .bubble{border-color:var(--gold-light);transition:border-color .3s}
.stream-cursor{display:inline-block;animation:blink .8s step-end infinite;color:var(--gold);font-weight:300;margin-left:1px}
@keyframes blink{50%{opacity:0}}
.followup-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.followup-suggestions .fu-btn{font-size:11px;padding:4px 12px;border:1px solid var(--border);background:var(--cream);color:var(--text-secondary);cursor:pointer;transition:all .2s;font-family:inherit;border-radius:10px}
.followup-suggestions .fu-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(184,134,76,0.05)}
.feedback-buttons{display:flex;gap:6px;margin-top:8px;padding-top:6px;border-top:1px solid var(--border);justify-content:flex-end}
.feedback-buttons .fb-btn{background:none;border:1px solid var(--border);font-size:12px;padding:2px 10px;cursor:pointer;border-radius:4px;color:var(--text-muted);transition:all .2s;font-family:inherit;opacity:.6}
.feedback-buttons .fb-btn:hover{opacity:1;background:var(--cream)}
.feedback-buttons .fb-btn.active-up{opacity:1;color:#2a7a2a;border-color:#2a7a2a;background:rgba(42,122,42,0.06)}
.feedback-buttons .fb-btn.active-down{opacity:1;color:#c00;border-color:#c00;background:rgba(192,0,0,0.06)}
.ai-disclaimer{font-size:11px;color:var(--text-muted);margin-top:10px;padding-top:8px;border-top:1px solid var(--border);line-height:1.5;opacity:.7}


/* Parent trigger */
.parent-trigger{color:var(--gold)\!important;font-weight:600\!important}
/* Share modal */
.share-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.4);display:none;align-items:center;justify-content:center}
.share-modal{background:#fff;border-radius:10px;padding:28px 24px;max-width:360px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,0.15);position:relative}
.share-modal h3{font-size:15px;color:var(--navy);margin-bottom:8px;font-weight:600}
.share-modal p{font-size:12px;color:var(--text-muted);margin-bottom:16px;line-height:1.6}
.share-modal input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:4px;font-size:12px;color:var(--text);background:var(--cream);font-family:inherit;text-align:center;outline:none;box-sizing:border-box}
.share-modal .copy-btn{background:var(--navy);color:#fff;border:none;padding:8px 24px;font-size:12px;font-weight:600;cursor:pointer;border-radius:4px;margin-top:10px;font-family:inherit}
.share-modal .copy-btn:hover{background:var(--navy-light)}
.share-modal .close-btn{position:absolute;top:10px;right:14px;background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer;padding:4px}

/* ---- Share Card Preview ---- */
.share-card-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.5);display:none;align-items:center;justify-content:center;padding:20px}
.share-card-modal{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:100%;text-align:center;box-shadow:0 12px 48px rgba(0,0,0,0.18);position:relative;max-height:90vh;overflow-y:auto}
.share-card-modal h3{font-size:16px;color:var(--navy);margin-bottom:4px;font-weight:600}
.share-card-modal p.desc{font-size:12px;color:var(--text-muted);margin-bottom:16px;line-height:1.5}
#shareCardPreview{width:100%;max-width:360px;border-radius:8px;margin:0 auto 16px;display:block;box-shadow:0 2px 12px rgba(0,0,0,0.08)}
.share-card-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.share-card-actions .btn{flex:1;min-width:120px;padding:10px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;text-align:center}
.share-card-actions .btn-primary{background:var(--navy);color:#fff;border:none}
.share-card-actions .btn-primary:hover{background:var(--navy-light)}
.share-card-actions .btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}
.share-card-actions .btn-secondary:hover{background:var(--cream)}
@media(max-width:768px){
  .share-card-modal{padding:16px;border-radius:8px}
  #shareCardPreview{max-width:300px}
  .share-card-actions .btn{min-width:100px;font-size:12px;padding:10px 12px}
}
/* ===== BOOKING POPUP ===== */
.booking-popup-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.4);display:none;align-items:center;justify-content:center}
.booking-popup{background:#fff;border-radius:10px;padding:32px 28px 24px;max-width:380px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,0.15);position:relative}
.booking-popup h3{font-size:16px;color:var(--navy);margin-bottom:8px;font-weight:600}
.booking-popup p{font-size:13px;color:var(--text-secondary);margin-bottom:20px;line-height:1.7}
.booking-popup .actions{display:flex;gap:10px;justify-content:center}
.booking-popup .btn-primary{background:var(--gold);color:#fff;border:none;padding:10px 24px;font-size:13px;font-weight:600;cursor:pointer;border-radius:4px;font-family:inherit}
.booking-popup .btn-primary:hover{background:var(--gold-light)}
.booking-popup .btn-skip{background:none;color:var(--text-muted);border:none;padding:8px 16px;font-size:11px;cursor:pointer;font-family:inherit}
.booking-popup .btn-skip:hover{color:var(--text-secondary)}
.booking-popup .close-btn{position:absolute;top:10px;right:14px;background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer;padding:4px}
.booking-popup .close-btn:hover{color:var(--text)}

.chat-input-area{max-width:680px;margin:0 auto;width:100%;padding:0 24px 18px;flex-shrink:0}
.chat-input-box{display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--border);padding:10px 16px;border-radius:8px}
.chat-input-box:focus-within{border-color:var(--gold);box-shadow:0 0 0 2px rgba(184,134,76,0.08)}
.chat-input-box input{flex:1;border:none;outline:none;font-size:14px;color:var(--text);background:transparent;font-family:inherit}
.chat-input-box input::placeholder{color:#bbb}
.chat-input-box button{background:var(--navy);color:#fff;border:none;padding:8px 20px;font-size:12px;font-weight:600;cursor:pointer;border-radius:4px;transition:background .2s;font-family:inherit}
.chat-input-box button:hover{background:var(--navy-light)}
.chat-input-box button:disabled{opacity:.25;cursor:default}
.welcome-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.welcome-suggestions button{font-size:12px;padding:5px 14px;border:1px solid var(--border);background:var(--white);color:var(--text-secondary);cursor:pointer;transition:all .2s;font-family:inherit;border-radius:4px}
.welcome-suggestions button:hover{border-color:var(--gold);color:var(--gold)}

/* ===== CHAT → BOOKING BRIDGE ===== */
.chat-booking-bridge{display:none;max-width:680px;margin:0 auto;width:100%;padding:0 24px 6px;flex-shrink:0}
.chat-booking-bridge .inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;background:rgba(184,134,76,0.06);border:1px solid rgba(184,134,76,0.15);border-radius:6px}
.chat-booking-bridge .inner .txt{font-size:12px;color:var(--text-secondary);line-height:1.5}
.chat-booking-bridge .inner .txt strong{color:var(--gold);font-weight:600}
.chat-booking-bridge .inner .btn{background:var(--gold);color:#fff;border:none;padding:7px 18px;font-size:11px;font-weight:600;cursor:pointer;border-radius:4px;font-family:inherit;transition:background .2s;white-space:nowrap}
.chat-booking-bridge .inner .btn:hover{background:var(--gold-light)}

/* ============ ADMIN ============ */
.admin-page{min-height:100vh;background:var(--cream);padding-top:64px}
.admin-top{display:flex;align-items:center;gap:12px;padding:14px 24px;background:var(--navy);flex-shrink:0}
.admin-top h3{font-size:15px;font-weight:600;color:#fff}
.admin-top .back-btn{color:rgba(255,255,255,0.6);cursor:pointer;font-size:13px;background:none;border:none;padding:4px}
.admin-top .back-btn:hover{color:#fff}
.admin-top .actions{margin-left:auto;display:flex;gap:8px}
.admin-top .actions button{color:rgba(255,255,255,0.4);font-size:11px;background:none;border:1px solid rgba(255,255,255,0.15);padding:4px 12px;cursor:pointer;font-family:inherit}
.admin-top .actions button:hover{color:#fff;border-color:rgba(255,255,255,0.3)}
.admin-body{max-width:800px;margin:0 auto;padding:24px}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.admin-stat-card{background:var(--white);border:1px solid var(--border);padding:16px 20px}
.admin-stat-card .lbl{font-size:11px;color:var(--text-muted);margin-bottom:2px}
.admin-stat-card .val{font-size:22px;font-weight:700;color:var(--navy)}
.admin-card{background:var(--white);border:1px solid var(--border);padding:24px;margin-bottom:20px}
.admin-card h3{font-size:14px;font-weight:600;color:var(--navy);margin-bottom:14px}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.admin-grid input,.admin-card textarea{background:var(--cream);border:1px solid var(--border);padding:10px 12px;font-size:13px;color:var(--text);outline:none;font-family:inherit}
.admin-grid input:focus,.admin-card textarea:focus{border-color:var(--gold)}
.admin-card textarea{width:100%;margin-top:10px;min-height:80px;resize:vertical}
.admin-card .row{display:flex;gap:10px;margin-top:10px;align-items:center}
.admin-card .row input{flex:1}
.btn-sm{background:var(--navy);color:#fff;border:none;padding:8px 20px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s;font-family:inherit}
.btn-sm:hover{background:var(--navy-light)}
.entry-list{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.entry-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--cream);gap:10px}
.entry-row .info{flex:1;min-width:0}
.entry-row .info .t{font-size:13px;color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entry-row .info .m{font-size:11px;color:var(--text-muted);margin-top:1px}
.entry-row .info .m .cat{background:rgba(184,134,76,0.1);color:var(--gold);padding:1px 6px;font-size:10px}
.entry-row .del{font-size:12px;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:4px 6px;font-family:inherit}
.entry-row .del:hover{color:#c00}
.entry-row .del:hover{color:#c00}
.kb-bar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
.kb-bar input{padding:8px 12px;border:1px solid var(--border);background:var(--cream);font-size:13px;outline:none;font-family:inherit;border-radius:4px;flex:1;min-width:160px}
.kb-bar input:focus{border-color:var(--gold)}
.kb-bar select{padding:8px 12px;border:1px solid var(--border);background:var(--cream);font-size:12px;outline:none;font-family:inherit;border-radius:4px;color:var(--text)}
.kb-bar .btn{background:var(--navy);color:#fff;border:none;padding:8px 16px;font-size:12px;font-weight:600;cursor:pointer;border-radius:4px;font-family:inherit}
.kb-bar .btn:hover{background:var(--navy-light)}
.kb-bar .btn-outline{background:none;color:var(--text-secondary);border:1px solid var(--border);padding:8px 16px;font-size:12px;cursor:pointer;border-radius:4px;font-family:inherit}
.kb-bar .btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.kb-table{width:100%;font-size:13px;border-collapse:collapse}
.kb-table th{background:var(--cream);padding:10px 12px;text-align:left;font-weight:600;color:var(--navy);font-size:12px;border-bottom:2px solid var(--border)}
.kb-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}
.kb-table tr:hover td{background:rgba(184,134,76,0.04)}
.kb-table .title-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.kb-table .content-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:12px}
.kb-table .tag{display:inline-block;font-size:10px;padding:1px 6px;background:rgba(184,134,76,0.1);color:var(--gold);border-radius:3px;margin:1px 2px}
.kb-table .act-btn{font-size:12px;background:none;border:none;cursor:pointer;padding:4px 8px;font-family:inherit;color:var(--text-muted)}
.kb-table .act-btn:hover{color:var(--navy)}
.kb-table .act-btn.del:hover{color:#c00}
.kb-pager{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:14px;font-size:13px;color:var(--text-muted)}
.kb-pager button{background:var(--cream);border:1px solid var(--border);padding:4px 12px;cursor:pointer;font-family:inherit;font-size:12px;border-radius:4px}
.kb-pager button:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.kb-pager button:disabled{opacity:0.3;cursor:default}
.kb-pager .cur{font-weight:600;color:var(--navy)}
/* Edit modal */
.kb-modal-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.4);display:none;align-items:center;justify-content:center}
.kb-modal{background:#fff;border-radius:10px;padding:24px;max-width:640px;width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,0.15);position:relative}
.kb-modal h3{font-size:15px;font-weight:600;color:var(--navy);margin-bottom:14px}
.kb-modal label{font-size:12px;font-weight:500;color:var(--text-secondary);display:block;margin-top:10px;margin-bottom:4px}
.kb-modal input,.kb-modal textarea,.kb-modal select{width:100%;padding:8px 10px;border:1px solid var(--border);font-size:13px;outline:none;font-family:inherit;border-radius:4px;box-sizing:border-box}
.kb-modal input:focus,.kb-modal textarea:focus{border-color:var(--gold)}
.kb-modal textarea{min-height:140px;resize:vertical}
.kb-modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.kb-modal .btn-primary{background:var(--navy);color:#fff;border:none;padding:8px 20px;font-size:12px;font-weight:600;cursor:pointer;border-radius:4px;font-family:inherit}
.kb-modal .btn-primary:hover{background:var(--navy-light)}
.kb-modal .btn-cancel{background:none;color:var(--text-muted);border:1px solid var(--border);padding:8px 20px;font-size:12px;cursor:pointer;border-radius:4px;font-family:inherit}
.kb-modal .btn-cancel:hover{color:var(--text);border-color:var(--text-muted)}
.kb-modal .close-btn{position:absolute;top:12px;right:16px;background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:4px}
.kb-modal .close-btn:hover{color:var(--text)}
.kb-modal .tag-input-area{display:flex;gap:6px;align-items:center}
.kb-modal .tag-input-area input{flex:1}
.kb-modal .tag-input-area button{background:none;border:1px solid var(--border);padding:8px 12px;cursor:pointer;font-size:12px;font-family:inherit;border-radius:4px}
.kb-badge{display:inline-block;font-size:10px;padding:1px 8px;border-radius:8px;margin-left:6px;font-weight:400}
.kb-badge.active{background:#e8f5e9;color:#2e7d32}
.kb-badge.inactive{background:#fbe9e7;color:#c62828}
.kb-counter{font-size:13px;color:var(--text-muted);margin-bottom:8px}

.admin-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid var(--border)}
.admin-tabs .tab-btn{background:none;border:none;padding:12px 24px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;font-family:inherit}
.admin-tabs .tab-btn:hover{color:var(--text)}
.admin-tabs .tab-btn.active{color:var(--navy);border-bottom-color:var(--navy);font-weight:600}
.consult-row{padding:16px 14px;background:var(--cream);margin-bottom:6px;border-left:3px solid var(--gold)}
.consult-row .hdr{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.consult-row .hdr .nm{font-size:14px;font-weight:600;color:var(--navy)}
.consult-row .hdr .wc{font-size:12px;color:var(--text-secondary)}
.consult-row .hdr .tm{font-size:11px;color:var(--text-muted);margin-left:auto}
.consult-row .meta{font-size:11px;color:var(--text-muted);margin-bottom:4px}
.consult-row .meta .rl{background:rgba(184,134,76,0.1);color:var(--gold);padding:1px 8px;font-size:10px}
.consult-row .q{font-size:13px;color:var(--text-secondary);line-height:1.6}

/* ===== ADMIN PASSWORD GATE ===== */
.admin-gate{position:fixed;inset:0;z-index:3000;background:var(--cream);display:none;align-items:center;justify-content:center}
.admin-gate.open{display:flex}
.admin-gate .box{text-align:center;max-width:360px;padding:40px}
.admin-gate .box h3{font-family:'Noto Serif SC',serif;font-size:18px;font-weight:600;color:var(--navy);margin-bottom:6px}
.admin-gate .box p{font-size:12px;color:var(--text-muted);margin-bottom:20px}
.admin-gate .box input{width:100%;padding:12px 14px;border:1px solid var(--border);background:var(--white);font-size:14px;color:var(--text);outline:none;font-family:inherit;text-align:center}
.admin-gate .box input:focus{border-color:var(--gold)}
.admin-gate .box .err{font-size:11px;color:#c00;margin-top:8px;display:none}
.admin-gate .box button{background:var(--navy);color:#fff;border:none;padding:12px 32px;font-size:13px;font-weight:600;cursor:pointer;margin-top:14px;font-family:inherit}
.admin-gate .box button:hover{background:var(--navy-light)}

/* ============ ABOUT ============ */
.about-page{min-height:100vh;background:var(--cream);padding-top:64px}
.about-body{max-width:680px;margin:0 auto;padding:40px 24px 60px}
.about-body .section-label{font-size:11px;font-weight:600;letter-spacing:2.5px;color:var(--gold);text-transform:uppercase;margin-bottom:12px}
.about-body h1{font-family:'Noto Serif SC',serif;font-size:clamp(26px,4vw,36px);font-weight:700;color:var(--navy);line-height:1.25}
.about-body .sub{font-size:15px;color:var(--text-secondary);line-height:1.8;margin-top:16px}
.about-card{background:var(--white);border:1px solid var(--border);padding:36px;margin-top:32px}
.about-card h2{font-family:'Noto Serif SC',serif;font-size:18px;font-weight:600;color:var(--navy);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}
.about-card p{font-size:14px;color:var(--text-secondary);line-height:1.9;margin-bottom:14px}
.about-card .hl{color:var(--gold);font-weight:600}
.about-quote{background:var(--navy);color:#fff;padding:36px;margin-top:32px;text-align:center}
.about-quote p{font-family:'Noto Serif SC',serif;font-size:clamp(16px,2.5vw,20px);line-height:1.7;color:rgba(255,255,255,0.5)}
.about-quote strong{color:#fff;font-weight:600}
.about-quote em{font-style:normal;color:var(--gold-light)}

/* ============ CONSULT ============ */
.consult-page{min-height:100vh;background:var(--cream);padding-top:64px}
.consult-body{max-width:560px;margin:0 auto;padding:40px 24px 60px;text-align:center}
.consult-body h1{font-family:'Noto Serif SC',serif;font-size:clamp(24px,3.5vw,32px);font-weight:700;color:var(--navy);line-height:1.25}
.consult-body .sub{font-size:14px;color:var(--text-secondary);line-height:1.8;margin-top:12px}
.consult-form{background:var(--white);border:1px solid var(--border);padding:36px;margin-top:32px;text-align:left}
.consult-form .field{margin-bottom:20px}
.consult-form .field label{display:block;font-size:12px;font-weight:600;color:var(--text);margin-bottom:6px}
.consult-form .field input,.consult-form .field textarea{width:100%;padding:12px 14px;border:1px solid var(--border);background:var(--cream);font-size:14px;color:var(--text);outline:none;font-family:inherit}
.consult-form .field input:focus,.consult-form .field textarea:focus{border-color:var(--gold)}
.consult-form .field textarea{min-height:100px;resize:vertical}
.consult-form .submit-btn{width:100%;background:var(--navy);color:#fff;border:none;padding:14px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;font-family:inherit}
.consult-form .submit-btn:hover{background:var(--navy-light)}
.consult-form .submit-btn:disabled{opacity:.3;cursor:default}
.consult-success{display:none;padding:40px;text-align:center}
.consult-success .icon{font-size:48px;margin-bottom:16px}
.consult-success h3{font-size:20px;font-weight:600;color:var(--navy);margin-bottom:8px}
.consult-success p{font-size:14px;color:var(--text-secondary)}

/* ===== SERVICE NOTE ===== */
.service-note{padding:16px 20px;background:rgba(184,134,76,0.04);border:1px solid rgba(184,134,76,0.1);margin-top:20px;font-size:12px;color:var(--text-muted);line-height:1.7;text-align:center}
.service-note strong{color:var(--text-secondary);font-weight:500}

/* ============ SOURCE MODAL ============ */
.source-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:2000;display:none;align-items:flex-end;justify-content:center}
.source-overlay.open{display:flex}
.source-modal{background:var(--cream);width:100%;max-width:600px;max-height:70vh;border-radius:16px 16px 0 0;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.source-modal .hdr{display:flex;align-items:flex-start;gap:12px;padding:20px 24px 12px;flex-shrink:0}
.source-modal .hdr .st{flex:1;min-width:0}
.source-modal .hdr .st h3{font-size:15px;font-weight:600;color:var(--navy);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.source-modal .hdr .st .sm{font-size:11px;color:var(--text-muted);margin-top:2px}
.source-modal .hdr .close-btn{background:none;border:none;font-size:18px;color:var(--text-muted);cursor:pointer;padding:4px;line-height:1}
.source-modal .hdr .close-btn:hover{color:var(--text)}
.source-modal .body{overflow-y:auto;padding:12px 24px 24px;font-size:13px;color:var(--text-secondary);line-height:1.75;white-space:pre-wrap}
.source-modal .body .type-tag{display:inline-block;font-size:10px;font-weight:600;padding:2px 8px;border-radius:3px;margin-bottom:12px}
.source-modal .body .type-tag.kb{background:rgba(184,134,76,0.1);color:var(--gold)}
.source-modal .body .type-tag.web{background:rgba(42,58,90,0.08);color:var(--navy-light)}
/* ===== MOBILE RESPONSIVE ===== */
@media(max-width:768px){
  .admin-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;gap:0}
  .admin-tabs::-webkit-scrollbar{display:none}
  .admin-tabs .tab-btn{padding:12px 14px;font-size:12px;white-space:nowrap}
  .admin-stats{grid-template-columns:repeat(2,1fr)}
  .admin-body{padding:16px}
  .admin-card{padding:16px}
  .admin-grid{grid-template-columns:1fr}
  .hero{padding:80px 20px 50px}
  .hero-actions{flex-direction:column;gap:12px}
  .hero-actions .btn-primary,.hero-actions .btn-secondary{width:100%;text-align:center}
  .hero-stat h3{font-size:22px}
  .hero-stats{gap:16px}
  .country-tag-wrap{gap:6px;margin-top:24px}
  .country-tag{font-size:12px;padding:6px 14px}
  .chat-msgs{padding:16px 12px 8px}
  .chat-msgs .msg-row .bubble{padding:10px 14px;font-size:13px;max-width:calc(100vw - 80px)}
  .chat-input-area{padding:0 12px 12px}
  .chat-input-box{padding:8px 12px}
  .chat-top{padding:12px 14px}
  .chat-sources-bar{padding:0 12px}
  .kb-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .kb-table{min-width:600px}
  .kb-bar input{min-width:120px;flex:1 1 100%}
  .kb-bar .btn,.kb-bar .btn-outline{font-size:11px;padding:6px 12px}
  .kb-modal{padding:16px;width:95vw}
  .booking-popup{padding:24px 20px 20px;margin:0 12px}
  .about-card{padding:24px}
  .consult-form{padding:24px}
  .faq-q{padding:16px 20px;font-size:13px}
  .faq-a.open{padding:0 20px 16px}
  .problem-card{padding:32px 24px}
  .t-card{padding:28px 24px}
  .case-card{padding:28px 24px}
  .showcase-text .stat-row{gap:16px;flex-wrap:wrap}
  .showcase-text .stat-row h4{font-size:20px}
}
@media(max-width:480px){
  .admin-stats{grid-template-columns:1fr}
  .admin-tabs .tab-btn{padding:10px 10px;font-size:11px}
  .admin-body{padding:12px}
  .admin-card{padding:12px}
  .hero{padding:60px 16px 40px}
  .hero h1{font-size:32px}
  .hero p{font-size:15px;line-height:1.7}
  .hero-stat h3{font-size:22px}
  .hero-stats{gap:12px}
  .hero-badge{font-size:13px;padding:6px 16px;margin-bottom:24px}
  .hero-actions{margin-top:28px}
  .btn-primary,.btn-secondary{padding:16px 28px;font-size:14px;width:100%;text-align:center}
  .country-tag-wrap{gap:6px;margin-top:24px}
  .country-tag{font-size:12px;padding:6px 12px}
  section{padding:40px 16px}
  .section-title{font-size:24px;line-height:1.3}
  .section-desc{font-size:14px}
  .chat-msgs .msg-row .bubble{font-size:13px;padding:10px 14px;max-width:calc(100vw - 64px)}
  .nav-logo{font-size:16px}
  .nav-cta{font-size:12px;padding:8px 18px}
}
/* ===== MOBILE OPTIMIZATION (design team) ===== */
@media(max-width:768px){
  /* Hero inner — globe above text, centered */
  .hero-inner{flex-direction:column-reverse !important;align-items:center !important;gap:16px !important}

  /* Constrain side-col width on mobile */
  .hero-side-col{min-width:0 !important;max-width:100% !important;width:100% !important;align-items:center !important}

  /* Globe visible on mobile */
  .hero-side{display:block !important;flex:none !important;width:100% !important;min-width:0 !important;max-width:340px !important;aspect-ratio:1/1;margin:0 auto 0 !important;perspective:800px !important}

  /* Buttons horizontal */
  .hero-actions{flex-direction:row !important;justify-content:center;gap:12px}
  .btn-primary,.btn-secondary{flex:1;max-width:180px;padding:14px 18px;font-size:13px}

  /* Hero padding & readability — override general 768px block */
  .hero{padding:24px 20px 40px !important;text-align:center}
  .hero p{line-height:1.7;font-size:14px}
  h1{font-size:32px !important;line-height:1.25}

  /* Stats spacing */
  .hero-stats{gap:20px}

  /* Nav */
  nav{padding:10px 20px;height:52px}

  /* Globe elements smaller for mobile */
  .kg-node{width:14px !important;height:14px !important;margin:-7px 0 0 -7px !important}
  .kg-node-dot{width:10px !important;height:10px !important;margin:-5px 0 0 -5px !important}
  .kg-node-label{font-size:7px !important;top:-16px !important;opacity:0.5}
  .kg-node:hover .kg-node-dot{width:16px !important;height:16px !important;margin:-8px 0 0 -8px !important}
  .kg-orb{width:100px !important;height:100px !important;margin:-50px 0 0 -50px !important}
  .kg-orb-ring1{width:160px !important;height:160px !important;margin:-80px 0 0 -80px !important}
  .kg-orb-ring2{width:220px !important;height:220px !important;margin:-110px 0 0 -110px !important}
  .kg-stats-bar{display:none !important}
  .kg-stat-num{font-size:14px !important}
  .kg-float-label{font-size:7px !important}

  /* Hide quick booking on mobile */
  .hero-side-quick{display:none !important}

  /* Hide CTA buttons on mobile (shown in hero-content) */
  .hero-side-cta{display:none !important}

  /* Compact spacing for mobile */
  .country-tag-wrap{gap:4px;margin-top:4px !important}
  .country-tag{font-size:11px;padding:4px 10px}
  .hero-badge{margin-bottom:24px !important}
  .hero p{margin-top:24px !important;line-height:1.7 !important}
  .hero-actions{margin-top:28px !important}
  .hero-stats{margin-top:40px !important}

  /* Center hero content text */
  .hero-content{text-align:center !important;align-items:center !important}

  /* Reduce hero text spacing */
  .hero h1{margin-bottom:4px}
  .hero-stats{gap:12px !important}
  .hero p{margin-top:12px !important;font-size:13px}
  .hero-actions{margin-top:24px !important;justify-content:center !important}
  .hero-badge{margin-bottom:16px !important;font-size:11px;padding:6px 14px}

  /* Fix orphaned mobile rules */
  .chat-input-box input{font-size:13px}
  .chat-input-box button{padding:6px 14px;font-size:11px}
  .kb-modal{padding:12px}
  .about-card{padding:16px}
  .consult-form{padding:16px}
}
.info-overlay.show{transform:translate(-50%,-50%) scale(1) !important}
.info-backdrop.show{opacity:1 !important;pointer-events:auto !important}
/* ===== AUTH MODAL ===== */
.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.4);z-index:1000;display:flex;align-items:center;justify-content:center}
.auth-modal{background:#fff;border-radius:12px;padding:32px;width:380px;max-width:90vw;box-shadow:0 20px 60px rgba(0,0,0,0.2)}
.auth-modal h2{margin:0 0 4px;font-size:20px;color:var(--navy)}
.auth-modal .sub{font-size:13px;color:var(--text-muted);margin-bottom:20px}
.auth-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:1px solid var(--border)}
.auth-tab{padding:10px 20px;font-size:13px;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;font-family:inherit;background:none;transition:all .2s}
.auth-tab.active{color:var(--navy);border-bottom-color:var(--gold);font-weight:600}
.auth-field{margin-bottom:14px}
.auth-field label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}
.auth-field input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;outline:none;font-family:inherit;box-sizing:border-box;transition:border-color .2s}
.auth-field input:focus{border-color:var(--gold)}
.auth-btn{width:100%;padding:12px;background:var(--navy);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s}
.auth-btn:hover{background:var(--navy-light)}
.auth-btn:disabled{opacity:.5;cursor:not-allowed}
.auth-error{color:#c00;font-size:12px;margin-top:8px;text-align:center}
.auth-success{color:green;font-size:12px;margin-top:8px;text-align:center}
/* ===== SESSION SIDEBAR ===== */
.session-sidebar{width:260px;min-width:260px;background:var(--cream);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;transition:margin-left .3s}
.session-sidebar .s-header{padding:16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.session-sidebar .s-header .s-user{font-size:13px;font-weight:600;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.session-sidebar .s-header .s-user .s-role{font-weight:400;color:var(--text-muted);font-size:11px;margin-left:4px}
.session-sidebar .s-new-btn{margin:12px 16px;padding:8px;background:var(--navy);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;text-align:center;transition:background .2s}
.session-sidebar .s-new-btn:hover{background:var(--navy-light)}
.session-list{flex:1;overflow-y:auto;padding:4px 8px}
.session-item{padding:10px 12px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--text);margin-bottom:2px;transition:background .15s;display:flex;align-items:center;justify-content:space-between}
.session-item:hover{background:rgba(184,134,76,0.08)}
.session-item.active{background:rgba(184,134,76,0.15);font-weight:600}
.session-item .s-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.session-item .s-count{font-size:10px;color:var(--text-muted);margin-left:8px;white-space:nowrap}
.session-item .s-del-btn{display:inline-block;background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-muted);padding:0 4px;margin-left:4px;line-height:1;font-family:inherit;border-radius:3px;transition:color .15s,background .15s;flex-shrink:0}
.session-item .s-del-btn:hover{color:#c00;background:rgba(204,0,0,0.08)}
.s-sidebar-toggle{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted);padding:4px;font-family:inherit;line-height:1}
.s-sidebar-toggle:hover{color:var(--navy)}
/* Sidebar collapsed state: slide off-screen */
.session-sidebar.collapsed{margin-left:-260px}
/* Sidebar backdrop on mobile */
.sidebar-backdrop{display:none}
@media(max-width:768px){
  .session-sidebar{position:fixed;top:64px;left:0;bottom:0;z-index:101;box-shadow:4px 0 24px rgba(0,0,0,0.12)}
  .session-sidebar.collapsed{margin-left:-260px;box-shadow:none}
  .sidebar-backdrop.active{display:block;position:fixed;top:64px;left:0;right:0;bottom:0;background:rgba(0,0,0,0.3);z-index:100}
  .chat-top .tag{display:none}
  .chat-top .brand{font-size:14px}
  .chat-top .clear-btn{font-size:12px;padding:4px 8px}
  .user-badge{font-size:11px;padding:2px 6px}
  .session-item .s-del-btn{display:inline-block;font-size:16px;padding:2px 6px}
}
/* ===== USER BADGE IN HEADER ===== */
.user-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer;padding:4px 10px;border-radius:4px;transition:background .15s}
.user-badge:hover{background:rgba(184,134,76,0.08)}
.user-badge .ub-name{font-weight:600;color:var(--navy);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-badge .ub-limit{font-size:10px;color:var(--text-muted)}
/* ===== CHAT LAYOUT ===== */
.chat-layout{display:flex;flex:1;overflow:hidden;height:100%}
.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
