:root{--bg:#f6f7fb;--surface:#fff;--text:#202332;--muted:#73798c;--primary:#5b5cf0;--border:#e7e8f0;--shadow:0 12px 35px rgba(30,35,70,.08);--success:#1aa36f;--danger:#df4c62}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Poppins,Arial,sans-serif}.app{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:var(--surface);border-right:1px solid var(--border);padding:28px 18px;z-index:20}.logo{display:flex;gap:12px;align-items:center;margin:0 8px 38px}.logo-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--primary);color:white;font-size:25px;font-family:"Noto Sans SC",sans-serif}.logo h2{font-size:17px;margin:0}.logo span{font-size:11px;color:var(--muted)}nav{display:grid;gap:8px}.nav-item,.theme-btn{width:100%;border:0;background:transparent;padding:13px 14px;border-radius:12px;text-align:left;cursor:pointer;color:var(--muted);font:inherit}.nav-item span{margin-right:8px}.nav-item:hover,.nav-item.active{background:#eeeeff;color:var(--primary);font-weight:600}.sidebar-bottom{position:absolute;left:18px;right:18px;bottom:22px}.theme-btn{border:1px solid var(--border)}.main{margin-left:245px;width:calc(100% - 245px);padding:0 34px 60px}.topbar{height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px;width:min(430px,100%)}.search input{border:0;outline:0;background:transparent;width:100%;font:inherit}.profile{font-weight:600}.mobile-menu{display:none}.page{display:none}.page.active{display:block}.hero{display:flex;justify-content:space-between;align-items:center;padding:44px;border-radius:25px;background:linear-gradient(135deg,#eeeeff,#fff);overflow:hidden}.hero h1{font-size:38px;line-height:1.2;max-width:680px;margin:12px 0}.hero h1 span{color:var(--primary)}.hero p,.page-title p{color:var(--muted);line-height:1.7}.greeting,.eyebrow{font-size:12px;letter-spacing:1.2px;color:var(--primary);font-weight:700}.hero-character{font-family:"Noto Sans SC";font-size:170px;opacity:.13}.primary-btn,.secondary-btn,.lesson-btn,.learn-btn{border:0;border-radius:12px;padding:12px 18px;cursor:pointer;font:inherit;font-weight:600}.primary-btn{background:var(--primary);color:#fff}.secondary-btn{background:var(--surface);color:var(--text);border:1px solid var(--border)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.stat-card,.card,.achievement,.big-progress,.quiz-card,.lesson-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px}.stat-card{padding:20px;display:flex;align-items:center;gap:14px}.stat-card strong{display:block;font-size:24px}.stat-card span{font-size:12px;color:var(--muted)}.stat-icon{font-size:22px}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.card{padding:25px}.card-header{display:flex;justify-content:space-between}.card h2{margin:8px 0}.lesson-number{font-weight:700;font-size:30px;color:#ddd}.pinyin{color:var(--primary)}.progress-info{display:flex;justify-content:space-between;margin-top:22px;font-size:13px}.progress{height:8px;background:#ececf3;border-radius:99px;overflow:hidden;margin:8px 0 20px}.progress>div{height:100%;background:var(--primary);border-radius:99px;transition:width .3s}.goal-circle{width:120px;height:120px;border-radius:50%;border:10px solid #eeeeff;display:grid;place-items:center;margin:24px auto}.goal-circle strong{font-size:27px}.page-title{padding:28px 0 20px}.page-title h1{margin:8px 0;font-size:32px}.lesson-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.lesson-card{padding:24px}.lesson-icon{font-size:34px}.lesson-card h2{font-size:22px}.lesson-card p{color:var(--muted)}.lesson-card .progress{margin-bottom:15px}.lesson-btn{background:#f0f0ff;color:var(--primary)}.lesson-player-header{display:flex;gap:20px;align-items:center;padding:25px 0}.back-btn{border:0;background:transparent;cursor:pointer;font:inherit;color:var(--primary)}.lesson-player-info h1{margin:0}.lesson-player-info p{margin:3px 0;color:var(--muted)}.lesson-progress-wrapper{margin-bottom:24px}.lesson-progress-track{height:10px;background:#e9e9f1;border-radius:99px;overflow:hidden}.lesson-progress-bar{height:100%;width:0;background:var(--primary);transition:width .3s}.lesson-content{max-width:850px;margin:auto}.lesson-intro,.lesson-word-card,.lesson-sentence-card,.lesson-exercise-card,.lesson-complete{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;padding:38px;text-align:center}.lesson-badge,.lesson-section-label{font-size:11px;letter-spacing:1.3px;color:var(--primary);font-weight:700}.lesson-big-hanzi{font-family:"Noto Sans SC";font-size:76px;margin:20px}.lesson-word-hanzi,.sentence-hanzi{font-family:"Noto Sans SC";font-size:64px;margin:18px 0}.lesson-word-pinyin,.sentence-pinyin{color:var(--primary);font-size:20px}.lesson-word-meaning,.sentence-meaning{font-size:18px;margin:8px}.lesson-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:25px}.lesson-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.lesson-option{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:14px;cursor:pointer;font:inherit}.lesson-option:hover:not(:disabled){border-color:var(--primary)}.lesson-option.correct,.quiz-option.correct{border-color:var(--success);background:#eafaf4}.lesson-option.wrong,.quiz-option.wrong{border-color:var(--danger);background:#fff0f2}.exercise-feedback{margin-top:20px;line-height:2}.feedback-correct{color:var(--success)}.feedback-wrong{color:var(--danger)}.flashcard-container{max-width:650px;margin:20px auto;text-align:center}.flashcard{height:360px;position:relative;transform-style:preserve-3d;transition:transform .55s;cursor:pointer}.flashcard.flipped{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;inset:0;backface-visibility:hidden;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:24px;display:grid;place-content:center;gap:10px;padding:30px}.card-back{transform:rotateY(180deg)}.card-front h1{font-family:"Noto Sans SC";font-size:80px;margin:0}.card-back h1{font-size:35px;margin:0}.flash-actions{display:flex;justify-content:center;gap:10px;margin:20px}.flash-actions button{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px 18px;cursor:pointer;font:inherit}.quiz-card{max-width:750px;margin:auto;padding:30px}.quiz-top{display:flex;justify-content:space-between;color:var(--muted)}.quiz-question{text-align:center;padding:40px 0}.quiz-hanzi{font-family:"Noto Sans SC";font-size:70px;margin:15px 0}.quiz-pinyin{color:var(--primary)}.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quiz-option{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:15px;cursor:pointer;font:inherit}.quiz-option:disabled{cursor:default}.quiz-feedback{min-height:40px;text-align:center;padding:15px}.quiz-result{text-align:center;padding:30px}.progress-dashboard{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px}.big-progress{padding:28px;grid-row:span 2}.big-progress strong{font-size:48px;display:block;margin:10px 0}.achievement{text-align:center;padding:25px}.achievement>div{font-size:32px}.toast{position:fixed;right:24px;bottom:24px;background:#222;color:#fff;padding:13px 18px;border-radius:12px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s;z-index:50}.toast.show{opacity:1;transform:none}body.dark-mode{--bg:#11131b;--surface:#1a1d27;--text:#f2f3f7;--muted:#a3a8b8;--border:#2d3140;--shadow:0 12px 35px rgba(0,0,0,.2)}body.dark-mode .hero{background:linear-gradient(135deg,#1d1f33,#191b24)}body.dark-mode .nav-item:hover,body.dark-mode .nav-item.active{background:#272844}.mobile-menu{border:0;background:var(--surface);padding:9px;border-radius:10px}.lesson-card[hidden]{display:none}@media(max-width:1000px){.sidebar{width:220px}.main{margin-left:220px;width:calc(100% - 220px)}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{margin-left:0;width:100%;padding:0 16px 40px}.topbar{height:70px}.mobile-menu{display:block}.search{width:auto;flex:1}.hero{padding:28px}.hero-character{display:none}.hero h1{font-size:28px}.content-grid,.progress-dashboard{grid-template-columns:1fr}.lesson-grid,.lesson-options,.answers,.stats{grid-template-columns:1fr}.big-progress{grid-row:auto}.lesson-big-hanzi{font-size:58px}.lesson-word-hanzi,.sentence-hanzi,.quiz-hanzi{font-size:50px}.flashcard{height:310px}.profile{display:none}}
.level-card{margin-top:20px}.level-card-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.level-card h2{margin:7px 0}.level-card-top>strong{font-size:18px;color:var(--primary)}.xp-track{height:12px;background:#ececf3;border-radius:99px;overflow:hidden;margin:16px 0 8px}.xp-track>div{height:100%;background:linear-gradient(90deg,var(--primary),#8b6cff);border-radius:99px;transition:width .4s}.level-card p{margin:0;color:var(--muted);font-size:13px}.compact-title{padding:25px 0 10px}.compact-title h2{margin:7px 0}.achievements-section{margin-top:10px}.achievements-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.achievement-badge{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;padding:22px;text-align:center;transition:.2s}.achievement-badge.locked{opacity:.48;filter:grayscale(.8)}.achievement-badge.unlocked{border-color:#d8d5ff}.achievement-badge .badge-icon{font-size:38px;margin-bottom:8px}.achievement-badge h3{margin:5px 0}.achievement-badge p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}.achievement-status{display:inline-block;margin-top:12px;font-size:11px;font-weight:700;color:var(--primary)}
@media(max-width:900px){.achievements-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.achievements-grid{grid-template-columns:1fr}.level-card-top{align-items:flex-start;flex-direction:column;gap:5px}}


/* LEVEL 3 — Smart Learning */
.level3-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.hearts-card h2,.challenge-card h2{margin:10px 0 8px}.hearts-card p,.challenge-card p{margin:0 0 16px;color:var(--muted,#6b7280)}
#heartsDisplay{font-size:1rem;letter-spacing:2px;margin-left:8px}.quiz-hearts{text-align:right;font-size:1.15rem;letter-spacing:2px;margin:8px 0}
.challenge-card .primary-btn{margin-top:4px}.primary-btn:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.level3-grid{grid-template-columns:1fr}}

/* LEVEL 4 TRAINING */
.training-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.training-launch-card{padding:24px}.training-launch-card h2{margin:8px 0}.training-launch-card p{color:var(--muted,#64748b);min-height:48px}.training-card{max-width:860px;margin:30px auto;padding:32px;border-radius:24px;background:var(--card,#fff);box-shadow:0 12px 35px rgba(15,23,42,.08);text-align:center}.training-muted{color:var(--muted,#64748b)}.training-audio{margin:18px auto}.training-options{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:24px}.training-option{padding:16px;border:1px solid rgba(100,116,139,.2);border-radius:14px;background:transparent;font:inherit;cursor:pointer}.training-option:hover{transform:translateY(-1px)}.training-option.correct{border-color:#16a34a;background:rgba(22,163,74,.1)}.training-option.wrong{border-color:#dc2626;background:rgba(220,38,38,.1)}.training-feedback{min-height:28px;margin-top:18px;font-weight:700}.feedback-correct{color:#15803d}.feedback-wrong{color:#b91c1c}.target-hanzi,.hanzi-large{font-size:92px;line-height:1.1;margin:20px 0;font-family:"Noto Serif SC",serif}.target-pinyin{font-size:24px;font-weight:700}.speaking-card .primary-btn{margin:16px 8px}.hanzi-stage{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.stroke-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}.stroke-chip{padding:9px 12px;border-radius:10px;background:rgba(100,116,139,.1);font-size:20px}.stroke-chip.done{opacity:.55}.stroke-chip.active{outline:2px solid currentColor;transform:scale(1.06)}.hanzi-actions{display:flex;justify-content:center;gap:12px;margin-top:20px}.level4-banner{margin-top:24px;padding:24px;border-radius:20px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(168,85,247,.1))}.dark-mode .training-card,.dark-mode .training-option{background:#18212f}.dark-mode .training-card{box-shadow:0 12px 35px rgba(0,0,0,.25)}@media(max-width:800px){.training-grid{grid-template-columns:1fr}.training-options{grid-template-columns:1fr}.hanzi-stage{grid-template-columns:1fr}.target-hanzi,.hanzi-large{font-size:72px}}

/* ===== LEVEL 5: AI MANDARIN TUTOR ===== */
.tutor-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:22px;align-items:start}.tutor-panel{position:sticky;top:24px}.tutor-panel h2{margin-top:0}.tutor-modes{display:grid;gap:10px;margin:18px 0}.tutor-mode{border:1px solid var(--border-color,#e5e7eb);background:transparent;border-radius:14px;padding:12px 14px;text-align:left;font:inherit;cursor:pointer;color:inherit}.tutor-mode.active{background:#eef2ff;border-color:#818cf8;font-weight:700}.dark-mode .tutor-mode.active{background:#312e81}.tutor-stat{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border-color,#e5e7eb)}.tutor-note{font-size:.82rem;line-height:1.5;opacity:.7;margin-top:14px}.tutor-chat-card{padding:0;overflow:hidden}.tutor-chat-header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border-color,#e5e7eb)}.tutor-chat-header h2,.tutor-chat-header p{margin:0}.tutor-chat-header p{font-size:.85rem;opacity:.65}.tutor-avatar{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#4f46e5;color:#fff;font-size:1.35rem;font-weight:800}.tutor-messages{height:480px;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:14px}.tutor-message{display:flex;gap:10px;max-width:86%}.tutor-message.user{align-self:flex-end;flex-direction:row-reverse}.tutor-bubble{border-radius:18px;padding:12px 15px;background:#f3f4f6;line-height:1.55}.dark-mode .tutor-bubble{background:#262b36}.tutor-message.user .tutor-bubble{background:#4f46e5;color:#fff}.tutor-bubble p{margin:.25rem 0}.tutor-chinese{font-size:1.08rem;font-weight:700}.tutor-pinyin{font-size:.9rem;opacity:.72}.tutor-correction{margin-top:9px;padding-top:9px;border-top:1px solid rgba(127,127,127,.25);font-size:.9rem}.tutor-suggestions{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 14px}.tutor-suggestion{border:1px solid #c7d2fe;background:transparent;color:inherit;border-radius:999px;padding:8px 12px;cursor:pointer}.tutor-input-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:16px 20px;border-top:1px solid var(--border-color,#e5e7eb)}.tutor-input-row input{min-width:0;border:1px solid var(--border-color,#d1d5db);border-radius:14px;padding:12px 14px;font:inherit;background:transparent;color:inherit}.tutor-icon-btn{width:44px;border:1px solid var(--border-color,#d1d5db);border-radius:14px;background:transparent;cursor:pointer}.tutor-typing{opacity:.65;font-style:italic}@media(max-width:850px){.tutor-layout{grid-template-columns:1fr}.tutor-panel{position:static}.tutor-messages{height:420px}}@media(max-width:560px){.tutor-input-row{grid-template-columns:auto 1fr}.tutor-input-row .primary-btn{grid-column:1/-1}.tutor-message{max-width:94%}}
/* Level 6 · Yufa */
.grammar-summary{padding:16px 22px;display:flex;flex-direction:column;align-items:center}.grammar-summary strong{font-size:1.7rem}.grammar-summary span{font-size:.78rem;opacity:.7}.grammar-layout{display:grid;grid-template-columns:280px 1fr;gap:22px}.grammar-sidebar{padding:18px}.grammar-module-list{display:grid;gap:8px;margin-top:14px}.grammar-module{width:100%;display:flex;gap:12px;align-items:center;text-align:left;border:1px solid var(--border-color,#e5e7eb);background:transparent;border-radius:12px;padding:11px;cursor:pointer;color:inherit}.grammar-module>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f3f4f6;color:#111827;font-weight:700}.grammar-module div{display:flex;flex-direction:column}.grammar-module small{opacity:.65;margin-top:2px}.grammar-module.active{outline:2px solid #f59e0b}.grammar-module.done>span{background:#dcfce7;color:#166534}.grammar-stage{padding:28px}.grammar-kicker{font-size:.75rem;font-weight:800;letter-spacing:.1em;opacity:.6}.grammar-subtitle{opacity:.7}.grammar-pattern{padding:18px;border-radius:14px;background:#fff7ed;margin:20px 0;color:#7c2d12}.grammar-pattern small,.grammar-pattern strong{display:block}.grammar-pattern strong{font-size:1.15rem;margin-top:5px}.grammar-examples{display:grid;gap:10px;margin:12px 0 22px}.grammar-examples>div{padding:14px;border:1px solid var(--border-color,#e5e7eb);border-radius:12px;display:grid}.grammar-examples strong{font-size:1.25rem}.grammar-examples span{color:#d97706}.grammar-examples small{opacity:.7}.grammar-warning{padding:18px;border-radius:14px;background:#fef2f2;margin:20px 0;color:#7f1d1d}.grammar-bad{text-decoration:line-through}.grammar-good{font-weight:700;color:#166534}.grammar-quiz{margin-top:24px}.grammar-option{display:block;width:100%;text-align:left;padding:13px 15px;margin:8px 0;border-radius:11px;border:1px solid var(--border-color,#e5e7eb);background:transparent;color:inherit;cursor:pointer}.grammar-option:hover{transform:translateY(-1px)}.grammar-option.correct{background:#dcfce7;border-color:#22c55e;color:#166534}.grammar-option.wrong{background:#fee2e2;border-color:#ef4444;color:#991b1b}.dark-mode .grammar-pattern{background:#3b2a12;color:#fde68a}.dark-mode .grammar-warning{background:#3f1d1d;color:#fecaca}.dark-mode .grammar-module>span{background:#374151;color:#f9fafb}@media(max-width:900px){.grammar-layout{grid-template-columns:1fr}.grammar-module-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.grammar-module-list{grid-template-columns:1fr}.grammar-stage{padding:18px}}

/* Level 6.1 · 词类 Cílèi */
.grammar-tabs{display:flex;gap:10px;margin:0 0 20px;flex-wrap:wrap}.grammar-tab{border:1px solid var(--border-color,#e5e7eb);background:transparent;color:inherit;border-radius:999px;padding:11px 16px;font-weight:700;cursor:pointer}.grammar-tab.active{background:#f59e0b;color:#111827;border-color:#f59e0b}.grammar-tab-panel{display:none}.grammar-tab-panel.active{display:block}.grammar-side-note{font-size:.86rem;opacity:.65;margin-top:4px}.grammar-pattern-header{display:flex;justify-content:flex-end;margin-bottom:14px}.wordclass-vocab{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 24px}.wordclass-vocab>div{border:1px solid var(--border-color,#e5e7eb);border-radius:12px;padding:13px;display:grid}.wordclass-vocab strong{font-size:1.35rem}.wordclass-vocab span{color:#d97706;font-size:.9rem}.wordclass-vocab small{opacity:.72;margin-top:3px}.wc-pattern{margin-top:10px!important;opacity:.8}.grammar-note{padding:16px 18px;border-radius:14px;background:#eff6ff;color:#1e3a8a;margin:20px 0}.grammar-note p{margin:7px 0 0}.dark-mode .grammar-note{background:#172554;color:#bfdbfe}@media(max-width:700px){.wordclass-vocab{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.wordclass-vocab{grid-template-columns:1fr}.grammar-tab{width:100%}}


/* Level 7 · Fundamentals */
.foundation-launch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.foundation-launch-card{padding:26px}.foundation-launch-card h2{margin:8px 0}.foundation-launch-card p{color:var(--muted);line-height:1.65;min-height:76px}.foundation-icon{font-size:44px;margin-bottom:8px}.foundation-progress-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0 18px;margin-top:8px;border-top:1px solid var(--border)}.foundation-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px}.foundation-sidebar,.foundation-stage{padding:22px}.foundation-module-list{display:grid;gap:9px;margin-top:14px}.foundation-module{display:flex;align-items:center;gap:11px;width:100%;padding:11px;border:1px solid var(--border);border-radius:13px;background:transparent;color:inherit;text-align:left;cursor:pointer}.foundation-module>span{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:50%;background:#eef2ff;color:#4338ca;font-weight:800}.foundation-module div{display:grid}.foundation-module small{opacity:.65;margin-top:2px}.foundation-module.active{outline:2px solid #6366f1}.foundation-module.done>span{background:#dcfce7;color:#166534}.foundation-kicker{font-size:.74rem;font-weight:800;letter-spacing:.11em;opacity:.6}.foundation-pinyin{color:#d97706;font-weight:700}.foundation-points{display:grid;gap:10px;margin:20px 0}.foundation-points>div{padding:14px 16px;border-radius:13px;background:#f8fafc;border:1px solid var(--border);display:grid;gap:5px}.foundation-points span{opacity:.78;line-height:1.55}.pinyin-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.pinyin-example{position:relative;padding:16px;border:1px solid var(--border);border-radius:14px;display:grid}.pinyin-example strong{font-size:1.7rem}.pinyin-example span{color:#d97706;font-weight:700}.pinyin-example small{opacity:.67;margin-top:4px}.audio-mini{position:absolute;right:10px;top:10px;border:0;background:transparent;cursor:pointer;font-size:1.05rem}.foundation-quiz{margin-top:26px;padding-top:22px;border-top:1px solid var(--border)}.foundation-options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.foundation-option{padding:13px;border:1px solid var(--border);border-radius:12px;background:transparent;color:inherit;cursor:pointer;font:inherit}.foundation-option.correct{background:#dcfce7;border-color:#22c55e;color:#166534}.foundation-option.wrong{background:#fee2e2;border-color:#ef4444;color:#991b1b}.foundation-feedback{min-height:30px;margin-top:16px;line-height:1.6}.sentence-card{max-width:900px;margin:24px auto;padding:30px}.sentence-topline{display:flex;justify-content:space-between;gap:14px}.sentence-meaning{font-size:1.25rem;font-weight:700;margin:18px 0 8px}.sentence-hint{color:var(--muted);margin-bottom:22px}.sentence-answer-zone{min-height:86px;border:2px dashed #cbd5e1;border-radius:17px;padding:15px;display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;color:var(--muted)}.sentence-answer-zone.has-words{justify-content:flex-start;border-style:solid;border-color:#a5b4fc}.sentence-token-pool{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;padding:25px 0}.sentence-token{border:1px solid #c7d2fe;background:#eef2ff;color:#312e81;border-radius:12px;padding:10px 15px;font-size:1.2rem;cursor:pointer;box-shadow:0 3px 0 #c7d2fe}.sentence-token:active{transform:translateY(2px);box-shadow:0 1px 0 #c7d2fe}.sentence-token.selected{background:#4f46e5;color:#fff;border-color:#4f46e5;box-shadow:0 3px 0 #3730a3}.sentence-actions,.sentence-nav{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:16px}.sentence-nav{justify-content:space-between;padding-top:16px;border-top:1px solid var(--border)}.sentence-success{padding:14px;border-radius:13px;background:#ecfdf5;color:#166534}.sentence-success span{color:#047857}.dark-mode .foundation-points>div{background:#18212f}.dark-mode .sentence-token{background:#312e81;color:#eef2ff;border-color:#4f46e5;box-shadow:0 3px 0 #1e1b4b}.dark-mode .sentence-answer-zone{border-color:#475569}.dark-mode .sentence-success{background:#052e24;color:#a7f3d0}@media(max-width:850px){.foundation-launch-grid,.foundation-layout{grid-template-columns:1fr}.foundation-module-list{grid-template-columns:repeat(2,minmax(0,1fr))}.foundation-sidebar{padding:18px}}@media(max-width:600px){.pinyin-examples,.foundation-options,.foundation-module-list{grid-template-columns:1fr}.sentence-card{padding:20px}.sentence-nav{justify-content:center}.sentence-token{font-size:1.05rem}}

/* =========================
   VOCABULARY LIBRARY 500+
========================= */
.vocab-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}
.vocab-summary-card{padding:18px 20px;display:flex;flex-direction:column;gap:5px}
.vocab-summary-card strong{font-size:1.45rem}.vocab-summary-card span{opacity:.7;font-size:.9rem}
.vocab-toolbar{display:grid;grid-template-columns:2fr 1fr;gap:16px;padding:18px;margin-bottom:20px}
.vocab-toolbar label{display:flex;flex-direction:column;gap:7px;font-size:.82rem;font-weight:700}
.vocab-toolbar input,.vocab-toolbar select{width:100%;border:1px solid var(--border,#ddd);border-radius:12px;padding:12px 14px;background:var(--card,#fff);color:inherit;font:inherit;outline:none}
.vocab-toolbar input:focus,.vocab-toolbar select:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.vocabulary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.vocab-card{border:1px solid var(--border,#e6e6ea);background:var(--card,#fff);border-radius:18px;padding:17px;min-height:225px;display:flex;flex-direction:column;transition:.18s ease}
.vocab-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.07)}
.vocab-card.learned{border-color:rgba(34,197,94,.45)}
.vocab-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vocab-category{font-size:.72rem;font-weight:800;opacity:.62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80%}
.vocab-audio{border:0;background:rgba(139,92,246,.1);width:34px;height:34px;border-radius:10px;cursor:pointer}
.vocab-hanzi{font-family:"Noto Sans SC",sans-serif;font-size:2rem;font-weight:800;margin-top:16px;line-height:1.1}
.vocab-pinyin{font-size:1rem;font-weight:700;color:#7c3aed;margin-top:7px}
.vocab-meaning{font-size:.94rem;line-height:1.45;margin:8px 0 15px;opacity:.8;flex:1}
.vocab-learn-btn{border:1px solid var(--border,#ddd);background:transparent;color:inherit;border-radius:11px;padding:10px 12px;font-weight:800;cursor:pointer}
.vocab-learn-btn.is-learned{border-color:rgba(34,197,94,.45);color:#16a34a;background:rgba(34,197,94,.08)}
.vocab-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:24px 0 8px}.vocab-pagination button:disabled{opacity:.4;cursor:not-allowed}
.vocab-empty{grid-column:1/-1;padding:42px;text-align:center;border:1px dashed var(--border,#ddd);border-radius:18px;opacity:.7}
.flashcard-back-pinyin{font-weight:700;opacity:.75;margin-top:4px}
.dark-mode .vocab-toolbar input,.dark-mode .vocab-toolbar select{background:#171821;border-color:#30313d}
@media(max-width:1100px){.vocabulary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.vocab-summary-grid{grid-template-columns:1fr}.vocab-toolbar{grid-template-columns:1fr}.vocabulary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vocab-pagination{gap:10px}.vocab-pagination button{padding:9px 10px}}
@media(max-width:480px){.vocabulary-grid{grid-template-columns:1fr}.vocab-card{min-height:200px}}

/* Level 7.1 · Vocabulary Examples */
.vocab-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.vocab-example-btn{border:1px solid var(--border,#ddd);background:rgba(91,92,240,.06);color:inherit;border-radius:11px;padding:10px 12px;font-weight:800;cursor:pointer}.vocab-example{margin:4px 0 14px;padding:12px;border:1px solid var(--border,#e6e6ea);border-radius:13px;background:rgba(91,92,240,.035)}.vocab-example[hidden]{display:none}.vocab-example-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;opacity:.72}.vocab-example-audio{border:0;background:transparent;cursor:pointer}.vocab-example-hanzi{font-family:"Noto Sans SC",sans-serif;font-size:1rem;font-weight:700;margin-top:8px;line-height:1.5}.vocab-example-pinyin{font-size:.82rem;color:#7c3aed;font-weight:700;line-height:1.45;margin-top:4px}.vocab-example-meaning{font-size:.8rem;opacity:.72;line-height:1.45;margin-top:4px}.flashcard{height:430px}.flashcard-example{margin:8px auto 2px;padding:10px 12px;max-width:510px;border-radius:12px;background:rgba(91,92,240,.06);font-size:.82rem;line-height:1.45}.flashcard-example>div:first-child{font-family:"Noto Sans SC",sans-serif;font-weight:700}.flashcard-example>div:nth-child(2){color:var(--primary);font-weight:700;margin-top:2px}.flashcard-example small{display:block;opacity:.72;margin-top:2px}@media(max-width:760px){.flashcard{height:400px}.vocab-card-actions{grid-template-columns:1fr}}

/* Level 7.2 · Yufa Practice */
.grammar-practice-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.grammar-practice-summary{padding:17px 20px;display:grid;gap:3px}.grammar-practice-summary span{font-size:.8rem;opacity:.68}.grammar-practice-summary strong{font-size:1.45rem}.grammar-practice-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.grammar-practice-mode{font:inherit;color:inherit;text-align:left;cursor:pointer;transition:.18s ease}.grammar-practice-mode:hover{transform:translateY(-2px);border-color:#8b5cf6}.grammar-practice-mode-icon{display:block;font-size:2.25rem;margin-bottom:10px}.grammar-practice-mode small{display:block;color:#7c3aed;font-weight:800;letter-spacing:.06em}.grammar-practice-mode strong{display:block;font-size:1.2rem;margin:6px 0}.grammar-practice-mode p{color:var(--muted);line-height:1.6;margin:7px 0 16px}.grammar-practice-mode em{font-style:normal;font-weight:800;color:var(--primary)}.grammar-practice-area{min-height:320px;padding:28px}.grammar-practice-welcome,.grammar-practice-result{text-align:center;display:grid;place-items:center;align-content:center;min-height:260px}.grammar-practice-icon,.grammar-result-icon{font-size:3rem}.grammar-practice-welcome p{max-width:680px;line-height:1.7}.grammar-practice-welcome small{opacity:.68}.grammar-practice-card{max-width:760px;margin:auto}.grammar-practice-top{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;font-weight:800;color:var(--muted)}.grammar-practice-track{height:7px;background:#ececf3;border-radius:99px;overflow:hidden;margin:10px 0 24px}.grammar-practice-track>div{height:100%;background:var(--primary);border-radius:99px;transition:.2s}.grammar-practice-topic{display:inline-block;border-radius:99px;padding:6px 10px;background:rgba(124,58,237,.1);color:#7c3aed;font-size:.78rem;font-weight:800;margin-bottom:18px}.grammar-fill-sentence{font-family:"Noto Sans SC",sans-serif;font-size:2.2rem;font-weight:800;text-align:center;line-height:1.5;margin:6px 0}.grammar-blank{color:#7c3aed;letter-spacing:.08em}.grammar-practice-meaning,.grammar-manual-meaning{text-align:center;color:var(--muted);font-size:1rem;margin-bottom:16px}.grammar-manual-meaning{font-size:1.25rem;color:inherit;font-weight:700}.grammar-word-bank{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:15px 0 18px}.grammar-word-bank span{font-size:.8rem;color:var(--muted)}.grammar-word-bank b{font-family:"Noto Sans SC",sans-serif;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:rgba(91,92,240,.05)}.grammar-pinyin-hint{margin:14px 0 20px;border:1px dashed var(--border);border-radius:12px;padding:10px 13px}.grammar-pinyin-hint summary{cursor:pointer;font-weight:700;color:var(--primary)}.grammar-pinyin-hint p{margin:8px 0 2px;color:#d97706;font-weight:700}.grammar-answer-label{display:block;font-size:.82rem;font-weight:800;margin-bottom:7px}.grammar-practice-input{width:100%;border:2px solid var(--border);border-radius:13px;padding:14px 16px;background:var(--surface);color:inherit;font:inherit;font-family:"Noto Sans SC",Poppins,sans-serif;font-size:1.08rem;outline:none}.grammar-practice-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}.grammar-practice-input.correct{border-color:#22c55e;background:#ecfdf5;color:#166534}.grammar-practice-input.wrong{border-color:#ef4444;background:#fef2f2;color:#991b1b}.grammar-practice-feedback{min-height:30px;margin-top:14px;border-radius:12px}.grammar-practice-feedback.correct,.grammar-practice-feedback.wrong{padding:14px;display:grid;gap:4px}.grammar-practice-feedback.correct{background:#ecfdf5;color:#166534}.grammar-practice-feedback.wrong{background:#fef2f2;color:#991b1b}.grammar-practice-feedback.warn{color:#b45309}.grammar-practice-feedback span{font-family:"Noto Sans SC",sans-serif;font-size:1.1rem;font-weight:800}.grammar-practice-feedback em{font-style:normal;color:#d97706;font-weight:700}.grammar-practice-feedback small{line-height:1.5;opacity:.82}.grammar-practice-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:20px}.grammar-result-score{font-size:3rem;color:var(--primary);margin:5px 0}.dark-mode .grammar-practice-input{background:#171821}.dark-mode .grammar-practice-input.correct{background:#052e24;color:#a7f3d0}.dark-mode .grammar-practice-input.wrong{background:#3f1d1d;color:#fecaca}.dark-mode .grammar-practice-feedback.correct{background:#052e24;color:#a7f3d0}.dark-mode .grammar-practice-feedback.wrong{background:#3f1d1d;color:#fecaca}@media(max-width:700px){.grammar-practice-summary-grid{grid-template-columns:1fr}.grammar-practice-mode-grid{grid-template-columns:1fr}.grammar-practice-area{padding:18px}.grammar-fill-sentence{font-size:1.75rem}}

/* Level 7.3 — Pinyin companion */
.hanzi-with-pinyin{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;vertical-align:middle;line-height:1.15;gap:2px}.hanzi-with-pinyin .hanzi-text{font-weight:700}.hanzi-with-pinyin .hanzi-pinyin{font-size:.72em;font-weight:500;opacity:.72;white-space:nowrap}.inline-pinyin{ruby-position:over}.inline-pinyin rt{font-size:.58em;opacity:.72;font-weight:500}.grammar-option .hanzi-with-pinyin,.wordclass-option .hanzi-with-pinyin,.lesson-option .hanzi-with-pinyin{width:100%}.sentence-token .hanzi-with-pinyin{pointer-events:none}.grammar-pinyin-prompt{font-size:.95rem;opacity:.72;margin:.35rem 0 .8rem}.grammar-word-bank b{display:inline-flex;align-items:center;justify-content:center;min-width:54px}.answer-reveal{display:grid;gap:5px;margin-top:8px}.answer-reveal .answer-hanzi{font-size:1.15rem;font-weight:800}.answer-reveal .answer-pinyin{opacity:.75;font-style:normal}.logo-icon,.tutor-avatar{position:relative}.logo-pinyin,.avatar-pinyin{display:block;font-size:8px;line-height:1;font-weight:600;opacity:.75}.grammar-practice-topic.safe-topic{letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;opacity:.72}
.hero-character{display:flex;flex-direction:column;align-items:center;justify-content:center}.hero-character-pinyin{font-size:.14em;letter-spacing:.04em;opacity:.7;margin-top:.25rem}


/* ===== Branding: KIBA MANDARIN ===== */
.brand-logo{width:48px;height:48px;border-radius:14px;display:block;box-shadow:0 10px 24px rgba(91,92,240,.22)}
.logo h2{letter-spacing:.04em}
.logo span{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.12em}

/* ===== Footer / Copyright ===== */
.app-footer{margin-top:34px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:14px}
.footer-logo{width:44px;height:44px;border-radius:14px;display:block}
.footer-brand strong{display:block;font-size:15px}
.footer-brand span{display:block;font-size:12px;color:var(--muted);margin-top:3px;max-width:460px;line-height:1.5}
.footer-meta{text-align:right}
.footer-meta p{margin:0;font-size:13px;font-weight:600}
.footer-meta small{display:block;margin-top:4px;color:var(--muted)}
body.dark-mode .app-footer{background:var(--surface)}
@media(max-width:760px){.app-footer{padding:16px}.footer-meta{text-align:left}.footer-brand span{max-width:none}}

/* ===== KIBA MANDARIN · Full Brand Polish ===== */
.brand-kicker{display:inline-flex;align-items:center;gap:7px;margin-bottom:8px;padding:6px 10px;border:1px solid rgba(91,92,240,.18);background:rgba(91,92,240,.07);border-radius:999px;color:var(--primary);font-size:10px;font-weight:700;letter-spacing:.12em}
.logo{min-height:52px}
.brand-logo{flex:0 0 auto}
.logo h2{font-size:18px;line-height:1.05;font-weight:800;color:var(--text)}
.logo span{display:block;margin-top:4px}
.hero h1 span{font-weight:800;letter-spacing:-.02em}
.app-footer{position:relative;overflow:hidden}
.app-footer:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#5B5CF0,#8B5CF6)}
.footer-brand strong{letter-spacing:.04em}
@media(max-width:760px){.brand-kicker{font-size:9px}.brand-logo{width:44px;height:44px}}


/* ===== KIBA MANDARIN · Dragon Logo Refinement ===== */
.logo{align-items:center;gap:14px}
.logo-text h2{margin:0 0 2px 0}
.logo-mark,.footer-logo-mark{display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(180deg,rgba(91,92,240,.08),rgba(139,92,246,.12));border:1px solid rgba(91,92,240,.14);box-shadow:0 10px 28px rgba(91,92,240,.12);padding:6px;border-radius:16px}
.brand-logo{width:52px;height:52px;border-radius:12px;display:block;object-fit:contain;background:#fff;padding:2px;box-shadow:none}
.hero-brand-chip{display:inline-flex;align-items:center;gap:10px;margin-bottom:10px;padding:7px 12px;border:1px solid rgba(91,92,240,.18);background:rgba(91,92,240,.07);border-radius:999px;color:var(--primary);font-size:10px;font-weight:700;letter-spacing:.12em}
.hero-brand-chip img{width:24px;height:24px;border-radius:8px;object-fit:contain;background:#fff;padding:2px;box-shadow:0 6px 18px rgba(91,92,240,.15)}
.footer-logo-mark{padding:5px;border-radius:15px}
.footer-logo{width:46px;height:46px;border-radius:12px;display:block;object-fit:contain;background:#fff;padding:2px}
.footer-brand-text strong{display:block;font-size:15px}
.footer-brand-text span{display:block;font-size:12px;color:var(--muted);margin-top:3px;max-width:460px;line-height:1.5}
body.dark-mode .logo-mark,body.dark-mode .footer-logo-mark{background:linear-gradient(180deg,rgba(91,92,240,.12),rgba(139,92,246,.16));border-color:rgba(139,92,246,.22)}
@media(max-width:760px){.brand-logo{width:46px;height:46px}.hero-brand-chip{font-size:9px;padding:6px 10px}.hero-brand-chip img{width:22px;height:22px}.footer-logo{width:42px;height:42px}}
\n\n/* ===== Auth Step 1 · Local Prototype ===== */\nbody.auth-locked .app{display:none}\n.auth-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 15% 15%,rgba(91,92,240,.14),transparent 38%),radial-gradient(circle at 85% 80%,rgba(245,158,11,.12),transparent 34%),var(--bg)}\nbody:not(.auth-locked) .auth-screen{display:none}\n.auth-shell{width:min(1040px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:var(--surface);border:1px solid var(--border);border-radius:28px;overflow:hidden;box-shadow:0 28px 80px rgba(30,35,70,.14)}\n.auth-brand-panel{padding:52px;background:linear-gradient(145deg,#252663,#5b5cf0 58%,#8b5cf6);color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}\n.auth-brand-panel:after{content:"中";position:absolute;right:-18px;bottom:-80px;font-family:"Noto Sans SC",sans-serif;font-size:260px;font-weight:800;opacity:.08}\n.auth-logo{width:92px;height:92px;object-fit:contain;border-radius:24px;background:#fff;padding:6px;box-shadow:0 16px 40px rgba(0,0,0,.2)}\n.auth-kicker{margin-top:24px;font-size:11px;letter-spacing:.13em;font-weight:800;opacity:.85}\n.auth-brand-panel h1{font-size:38px;line-height:1.18;margin:14px 0;max-width:520px}\n.auth-brand-panel p{line-height:1.7;opacity:.86;max-width:520px}\n.auth-feature-list{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.auth-feature-list span{padding:8px 11px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);border-radius:999px;font-size:12px}\n.auth-card{padding:42px;display:flex;flex-direction:column;justify-content:center}\n.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);padding:5px;border-radius:13px;margin-bottom:24px}.auth-tab{border:0;background:transparent;padding:11px;border-radius:10px;font:inherit;font-weight:700;color:var(--muted);cursor:pointer}.auth-tab.active{background:var(--surface);color:var(--primary);box-shadow:0 5px 18px rgba(30,35,70,.08)}\n.auth-form{display:grid;gap:16px}.auth-form[hidden]{display:none}.auth-heading h2{margin:0 0 5px}.auth-heading p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.6}.auth-form label{display:grid;gap:7px;font-size:13px;font-weight:700}.auth-form input{width:100%;border:1.5px solid var(--border);background:var(--surface);color:var(--text);padding:13px 14px;border-radius:12px;outline:none;font:inherit}.auth-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,92,240,.12)}.auth-submit{border:0;background:var(--primary);color:#fff;border-radius:12px;padding:13px 16px;font:inherit;font-weight:800;cursor:pointer;margin-top:3px}.auth-message{min-height:22px;margin:0;font-size:12px}.auth-message.error{color:var(--danger)}.auth-message.success{color:var(--success)}.auth-demo-note{margin-top:20px;padding:11px 12px;border-radius:11px;background:rgba(245,158,11,.1);color:#a16207;font-size:11px;line-height:1.5}\n.profile-menu-wrap{position:relative}.profile-button{border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer;display:flex;align-items:center;gap:10px;text-align:left;padding:7px 9px;border-radius:12px}.profile-button:hover{background:var(--surface)}.profile-caret{font-size:12px;color:var(--muted)}.profile-dropdown{position:absolute;right:0;top:calc(100% + 9px);width:230px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:10px;z-index:60}.profile-dropdown-head{padding:8px 9px 12px;border-bottom:1px solid var(--border);display:grid;gap:2px}.profile-dropdown-head small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.logout-btn{width:100%;margin-top:8px;border:0;background:transparent;color:var(--danger);font:inherit;font-weight:700;text-align:left;padding:10px;border-radius:9px;cursor:pointer}.logout-btn:hover{background:rgba(223,76,98,.08)}\n@media(max-width:800px){.auth-shell{grid-template-columns:1fr}.auth-brand-panel{padding:30px}.auth-brand-panel h1{font-size:29px}.auth-logo{width:74px;height:74px}.auth-card{padding:28px}}\n
/* PHP Auth */
.logout-link{display:block;text-decoration:none}.auth-demo-note a{color:var(--primary);font-weight:800;text-decoration:none}.auth-demo-note a:hover{text-decoration:underline}

/* ===== KIBA MANDARIN · Premium PHP Auth UI ===== */
.auth-page{min-height:100vh;overflow-x:hidden}
.auth-login-screen,.auth-register-screen{position:relative;isolation:isolate;padding:32px;background:
radial-gradient(circle at 10% 12%,rgba(91,92,240,.18),transparent 34%),
radial-gradient(circle at 88% 84%,rgba(245,158,11,.14),transparent 32%),
linear-gradient(135deg,#f8f9ff 0%,#f6f7fb 52%,#fffaf3 100%)}
.auth-orb{position:fixed;border-radius:50%;filter:blur(4px);opacity:.55;z-index:-1;pointer-events:none}
.auth-orb-one{width:230px;height:230px;left:-70px;top:8%;background:rgba(139,92,246,.14)}
.auth-orb-two{width:300px;height:300px;right:-100px;bottom:-80px;background:rgba(245,158,11,.12)}
.auth-shell-premium{width:min(1120px,100%);min-height:690px;grid-template-columns:1.08fr .92fr;border-radius:32px;border:1px solid rgba(91,92,240,.12);box-shadow:0 32px 90px rgba(32,36,75,.16);background:rgba(255,255,255,.92);backdrop-filter:blur(14px)}
.auth-brand-premium{padding:46px 48px;background:
linear-gradient(150deg,rgba(26,27,71,.98),rgba(57,44,142,.98) 48%,rgba(91,92,240,.96));justify-content:space-between}
.auth-brand-premium:before{content:"";position:absolute;inset:auto -80px -130px auto;width:330px;height:330px;border:1px solid rgba(255,255,255,.09);border-radius:50%;box-shadow:0 0 0 36px rgba(255,255,255,.025),0 0 0 72px rgba(255,255,255,.018)}
.auth-brand-premium:after{content:"龙";right:18px;bottom:-42px;font-size:215px;opacity:.055;transform:rotate(-8deg)}
.auth-brand-top{display:flex;align-items:center;gap:15px;position:relative;z-index:2}
.auth-logo-wrap{width:80px;height:80px;display:grid;place-items:center;border-radius:23px;background:rgba(255,255,255,.96);box-shadow:0 16px 42px rgba(0,0,0,.22);padding:5px}
.auth-logo-premium{width:100%;height:100%;padding:0;border-radius:18px;box-shadow:none;background:transparent}
.auth-brand-name{display:grid;gap:3px}.auth-brand-name strong{font-size:18px;letter-spacing:.055em}.auth-brand-name span{font-size:11px;opacity:.68;letter-spacing:.04em}
.auth-brand-copy{position:relative;z-index:2;margin:42px 0 32px}.auth-kicker-premium{display:inline-flex;padding:7px 10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:999px;margin:0 0 14px;font-size:9px;letter-spacing:.16em}
.auth-brand-copy h1{font-size:42px;letter-spacing:-.035em;max-width:580px;margin:0 0 17px}.auth-brand-copy p{font-size:14px;max-width:570px;margin:0;opacity:.79}
.auth-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:30px}.auth-benefits>div{padding:14px 12px;border-radius:15px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.11);display:grid;gap:3px}.auth-benefits b{font-size:19px}.auth-benefits span{font-size:10px;opacity:.73}
.auth-quote{position:relative;z-index:2;display:grid;gap:3px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}.auth-quote-hanzi{font-family:"Noto Sans SC",sans-serif;font-size:20px;font-weight:700}.auth-quote-pinyin{font-size:11px;color:#fbbf24;font-weight:700}.auth-quote small{font-size:10px;opacity:.65}
.auth-card-premium{padding:54px 56px;background:rgba(255,255,255,.985)}
.auth-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:24px}.auth-mobile-brand img{width:48px;height:48px;object-fit:contain;border-radius:14px}.auth-mobile-brand div{display:grid}.auth-mobile-brand strong{font-size:14px}.auth-mobile-brand span{font-size:10px;color:var(--muted)}
.auth-heading-premium{margin-bottom:24px}.auth-welcome-badge{display:inline-flex;align-items:center;padding:6px 9px;background:#f0f0ff;color:#4f46e5;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em;margin-bottom:11px}.auth-heading-premium h2{font-size:29px;letter-spacing:-.025em}.auth-heading-premium p{font-size:13px;max-width:430px}
.auth-alert{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid rgba(223,76,98,.18);background:#fff3f5;color:#b42339;border-radius:13px;margin-bottom:17px}.auth-alert>span{width:22px;height:22px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#df4c62;color:#fff;font-size:12px;font-weight:800}.auth-alert p{margin:2px 0 0;font-size:12px;line-height:1.5}
.auth-form-premium{gap:17px}.auth-field{gap:8px!important}.auth-label{font-size:12px;font-weight:800;color:#303345}.auth-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-label-row small{color:var(--muted);font-size:9px;font-weight:500}
.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:14px;z-index:1;font-size:14px;opacity:.58}.auth-form-premium .auth-input-wrap input{padding:14px 45px 14px 42px;border:1.5px solid #e3e5ef;border-radius:14px;background:#fbfbfe;font-size:13px;transition:border-color .18s,box-shadow .18s,background .18s}.auth-form-premium .auth-input-wrap input:hover{border-color:#cfd2e2;background:#fff}.auth-form-premium .auth-input-wrap input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 4px rgba(99,102,241,.1)}
.password-toggle{position:absolute;right:10px;width:34px;height:34px;border:0;border-radius:9px;background:transparent;cursor:pointer;display:grid;place-items:center;opacity:.68}.password-toggle:hover{background:#f0f0ff;opacity:1}
.auth-submit-premium{margin-top:5px;border-radius:14px;padding:14px 17px;background:linear-gradient(135deg,#5657ec,#7c3aed);display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 13px 26px rgba(91,92,240,.24);transition:transform .18s,box-shadow .18s}.auth-submit-premium:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(91,92,240,.29)}.auth-submit-premium:active{transform:translateY(1px)}
.auth-register-link{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:22px;font-size:12px;color:var(--muted)}.auth-register-link a{color:var(--primary);font-weight:800;text-decoration:none}.auth-register-link a:hover{text-decoration:underline}
.auth-security-note{display:flex;align-items:flex-start;gap:8px;margin-top:24px;padding:11px 12px;border-radius:12px;background:#f8fafc;border:1px solid #edf0f5}.auth-security-note span{font-size:14px}.auth-security-note p{margin:0;font-size:9.5px;color:var(--muted);line-height:1.55}
.auth-register-card{padding-top:42px;padding-bottom:42px}
body.dark-mode .auth-login-screen,body.dark-mode .auth-register-screen{background:radial-gradient(circle at 10% 12%,rgba(91,92,240,.17),transparent 34%),radial-gradient(circle at 88% 84%,rgba(245,158,11,.08),transparent 32%),#11131b}
body.dark-mode .auth-shell-premium{background:#181a24;border-color:#2d3140}body.dark-mode .auth-card-premium{background:#181a24}.dark-mode .auth-form-premium .auth-input-wrap input{background:#12141c;border-color:#303443}.dark-mode .auth-form-premium .auth-input-wrap input:hover,.dark-mode .auth-form-premium .auth-input-wrap input:focus{background:#151821}.dark-mode .auth-label{color:#f2f3f7}.dark-mode .auth-welcome-badge{background:#272844;color:#c7d2fe}.dark-mode .auth-security-note{background:#12151e;border-color:#2d3140}.dark-mode .password-toggle:hover{background:#272844}
@media(max-width:900px){.auth-shell-premium{grid-template-columns:1fr;min-height:0}.auth-brand-premium{display:none}.auth-card-premium{padding:38px 34px}.auth-mobile-brand{display:flex}.auth-login-screen,.auth-register-screen{padding:22px}.auth-heading-premium h2{font-size:26px}}
@media(max-width:520px){.auth-login-screen,.auth-register-screen{padding:0;background:var(--surface)}.auth-shell-premium{border:0;border-radius:0;box-shadow:none;min-height:100vh}.auth-card-premium{padding:28px 20px;justify-content:center}.auth-heading-premium h2{font-size:24px}.auth-benefits{grid-template-columns:1fr}.auth-register-link{font-size:11px}.auth-security-note{margin-top:18px}.auth-orb{display:none}}


/* ===== PHP Logout ===== */
.sidebar-logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;padding:11px 14px;border:1px solid rgba(223,76,98,.24);border-radius:12px;color:#c7354e;text-decoration:none;font-size:13px;font-weight:700;background:rgba(223,76,98,.06);transition:.18s ease}
.sidebar-logout-btn:hover{background:rgba(223,76,98,.12);transform:translateY(-1px)}

/* ===== First Admin Setup ===== */
.admin-setup-page{min-height:100vh;background:linear-gradient(135deg,#f5f3ff,#fff7ed)}
.simple-setup-shell{min-height:100vh;display:grid;place-items:center;padding:28px}
.simple-setup-card{width:min(520px,100%);background:#fff;border:1px solid #e8e7f0;border-radius:28px;padding:36px;box-shadow:0 24px 70px rgba(44,47,141,.13);text-align:center}
.setup-logo{width:92px;height:92px;object-fit:contain;border-radius:22px;margin-bottom:14px}
.simple-setup-card h1{margin:12px 0 6px}.simple-setup-card>p{color:#73798c;margin:0 0 22px}.setup-success{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:14px;border-radius:13px;background:#ecfdf5;color:#166534;margin:14px 0}.setup-success p{margin:0}.setup-warning{display:block;margin-top:18px;color:#8a5b13;line-height:1.6}

/* ===== Admin Dashboard ===== */
.admin-body{margin:0;background:#f5f6fb;color:#202332;font-family:Poppins,Arial,sans-serif}
.admin-shell{min-height:100vh;display:flex}.admin-sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:#17182b;color:#fff;padding:24px 18px;display:flex;flex-direction:column;z-index:20}.admin-brand{display:flex;align-items:center;gap:11px;padding:4px 7px 24px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-brand img{width:50px;height:50px;border-radius:14px;object-fit:contain;background:#fff;padding:2px}.admin-brand strong{display:block;font-size:14px}.admin-brand span{font-size:9px;letter-spacing:.14em;color:#aeb1cf}.admin-nav{display:grid;gap:8px;margin-top:22px}.admin-nav a{color:#b9bdd3;text-decoration:none;padding:12px 13px;border-radius:11px;font-size:13px}.admin-nav a:hover,.admin-nav a.active{background:#292b4c;color:#fff}.admin-sidebar-bottom{margin-top:auto}.admin-user{display:flex;align-items:center;gap:10px;padding:12px;background:#22243d;border-radius:13px;margin-bottom:9px}.admin-user>span{font-size:22px}.admin-user strong,.admin-user small{display:block}.admin-user small{color:#9297b7;font-size:10px}.admin-logout{display:block;text-align:center;text-decoration:none;color:#fecaca;border:1px solid rgba(248,113,113,.23);background:rgba(248,113,113,.08);padding:10px;border-radius:11px;font-size:12px;font-weight:700}.admin-main{margin-left:250px;width:calc(100% - 250px);padding:34px}.admin-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.admin-topbar h1{margin:5px 0 3px;font-size:30px}.admin-topbar p{margin:0;color:#73798c}.admin-date{background:#fff;border:1px solid #e6e7ef;padding:10px 14px;border-radius:12px;font-size:12px;font-weight:700}.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.admin-stat{background:#fff;border:1px solid #e6e7ef;border-radius:17px;padding:20px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 28px rgba(30,35,70,.05)}.admin-stat>span{font-size:26px}.admin-stat small,.admin-stat strong{display:block}.admin-stat small{color:#7b8091;font-size:11px}.admin-stat strong{font-size:22px;margin-top:2px}.admin-panel{background:#fff;border:1px solid #e6e7ef;border-radius:18px;padding:22px;box-shadow:0 8px 28px rgba(30,35,70,.05)}.admin-panel-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.admin-panel-head h2{margin:0}.admin-panel-head p{margin:3px 0 0;color:#7b8091;font-size:12px}.admin-search{display:flex;align-items:center;gap:8px;border:1px solid #e2e3eb;border-radius:11px;padding:9px 12px;width:min(320px,100%)}.admin-search input{border:0;outline:0;width:100%;font:inherit;font-size:12px}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:980px}.admin-table th{text-align:left;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8b90a0;padding:11px;border-bottom:1px solid #e8e9ef}.admin-table td{padding:12px 11px;border-bottom:1px solid #f0f0f4;font-size:12px;vertical-align:middle}.student-cell{display:flex;align-items:center;gap:10px}.student-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#eeeeff;color:#5b5cf0;font-weight:800}.student-cell strong,.student-cell small{display:block}.student-cell small,.table-sub{color:#8a8fa0;font-size:10px;margin-top:2px}.table-sub{display:block}.admin-detail-btn{display:inline-block;text-decoration:none;background:#eeeeff;color:#5556d9;padding:7px 10px;border-radius:9px;font-weight:700;font-size:11px}.admin-empty{text-align:center!important;padding:30px!important;color:#8b90a0}.admin-detail-page{max-width:1180px;margin:0 auto;padding:34px}.admin-back{text-decoration:none;color:#5b5cf0;font-weight:700;font-size:12px}.student-hero{display:flex;align-items:center;gap:18px;margin:26px 0}.student-big-avatar{width:74px;height:74px;border-radius:22px;display:grid;place-items:center;background:#5b5cf0;color:#fff;font-size:28px;font-weight:800}.student-hero h1{margin:3px 0}.student-hero p{margin:0;color:#7b8091}.detail-stats{margin-bottom:18px}.admin-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.admin-detail-grid .admin-panel h2{margin-top:0}.detail-list{display:grid;gap:0}.detail-list>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #eeeef3;font-size:12px}.detail-list>div:last-child{border-bottom:0}.detail-list span{color:#74798a}.detail-list strong{text-align:right}
@media(max-width:1000px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-detail-grid{grid-template-columns:1fr}.admin-sidebar{width:210px}.admin-main{margin-left:210px;width:calc(100% - 210px)}}
@media(max-width:760px){.admin-sidebar{position:static;width:100%;min-height:auto}.admin-shell{display:block}.admin-main{margin-left:0;width:100%;padding:18px}.admin-topbar{display:block}.admin-date{display:inline-block;margin-top:12px}.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-panel-head{display:block}.admin-search{margin-top:12px;width:100%}.admin-detail-page{padding:18px}.detail-stats{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.admin-stat-grid,.detail-stats{grid-template-columns:1fr}.simple-setup-card{padding:24px 18px}}

/* ===== Admin Monitoring · Visual Polish ===== */
.admin-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.admin-filter{border:1px solid #e2e3eb;background:#fff;color:#36394a;border-radius:11px;padding:10px 12px;font:inherit;font-size:11px;font-weight:600;outline:none;min-width:130px}.admin-filter:focus{border-color:#7778ef;box-shadow:0 0 0 3px rgba(91,92,240,.08)}
.admin-insights-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:20px}.admin-mini-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}.admin-mini-head h2{margin:4px 0 0;font-size:18px}.admin-mini-head>span{font-size:28px}.admin-ranking-list{display:grid;gap:9px}.admin-rank-row{display:grid;grid-template-columns:30px 38px 1fr;align-items:center;gap:10px;padding:10px;border:1px solid #ececf3;border-radius:13px;text-decoration:none;color:inherit;transition:.17s ease}.admin-rank-row:hover{transform:translateY(-1px);border-color:#cfd0fa;background:#fafaff}.rank-number{font-weight:800;color:#8a8fa0;text-align:center}.admin-rank-row:first-child .rank-number{color:#d97706}.rank-avatar{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#eeefff,#fff2dd);color:#5b5cf0;font-weight:800}.rank-person{min-width:0}.rank-person strong,.rank-person small{display:block}.rank-person strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-person small{font-size:10px;color:#858a9b;margin-top:1px}.rank-person i,.level-bar-row i,.student-progress-row i{display:block;height:6px;background:#eeeef5;border-radius:999px;overflow:hidden;margin-top:7px}.rank-person i b,.level-bar-row i b,.student-progress-row i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b5cf0,#8b5cf6)}.admin-level-panel{display:flex;flex-direction:column}.level-bars{display:grid;gap:15px}.level-bar-row>div{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:11px}.level-bar-row span{color:#74798a}.level-bar-row strong{font-size:11px}.admin-health{margin-top:auto;padding-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-health>div{border:1px solid #ececf3;border-radius:12px;padding:11px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px}.admin-health small{font-size:9px;color:#838899}.admin-health strong{font-size:13px}.health-dot{width:7px;height:7px;border-radius:99px;background:#aeb2c0}.health-dot.active{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.1)}.activity-badge{display:inline-flex;align-items:center;border-radius:99px;padding:4px 7px;font-size:9px;font-weight:700;background:#f1f2f6;color:#818697}.activity-badge.today{background:#ecfdf5;color:#15803d}.activity-badge.recent{background:#fff7ed;color:#c2410c}.activity-badge.inactive{background:#f4f4f7;color:#858a98}.admin-table tbody tr{transition:.14s}.admin-table tbody tr:hover{background:#fafaff}.admin-detail-btn{transition:.14s}.admin-detail-btn:hover{background:#5b5cf0;color:#fff}.admin-empty-small{font-size:12px;color:#8c91a0;text-align:center;padding:18px 0}
.detail-top-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.detail-logout{text-decoration:none;color:#b91c1c;border:1px solid #fecaca;background:#fff1f2;padding:8px 11px;border-radius:10px;font-size:11px;font-weight:700}.student-status-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;color:#888d9e;font-size:10px}.student-status-pill{border:1px solid #e3e4eb;background:#f8f8fb;border-radius:99px;padding:4px 8px;font-weight:700}.student-status-pill.online{background:#ecfdf5;border-color:#bbf7d0;color:#15803d}.student-progress-panel{margin-bottom:18px}.student-progress-bars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}.student-progress-label{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:11px}.student-progress-label span{font-weight:600}.student-progress-label strong{font-size:11px}.student-progress-label small{color:#7778ef;margin-left:4px}.student-progress-row i{height:8px;margin-top:8px}
@media(max-width:1100px){.admin-insights-grid{grid-template-columns:1fr}.admin-toolbar{justify-content:flex-start}.admin-panel-head{align-items:flex-start;flex-direction:column}.admin-toolbar{width:100%}.admin-search{width:min(420px,100%)}}
@media(max-width:760px){.admin-toolbar{display:grid;grid-template-columns:1fr 1fr}.admin-search{grid-column:1/-1;width:100%}.admin-filter{width:100%;min-width:0}.student-progress-bars{grid-template-columns:1fr}.admin-health{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.admin-toolbar,.admin-health{grid-template-columns:1fr}.admin-insights-grid{gap:12px}.admin-rank-row{grid-template-columns:26px 34px 1fr}.detail-top-actions{align-items:flex-start}.student-status-row{display:grid;gap:6px}}


/* ===== Simple Auth UI · KIBA MANDARIN ===== */
.simple-auth-page{margin:0;min-height:100vh;background:#f5f6fa;color:#202332;font-family:Poppins,Arial,sans-serif}
.simple-auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px 18px;background:radial-gradient(circle at 50% -10%,rgba(91,92,240,.12),transparent 34%),#f5f6fa}
.simple-auth-card{width:min(430px,100%);background:#fff;border:1px solid #e9eaf2;border-radius:24px;padding:34px;box-shadow:0 22px 65px rgba(31,35,65,.10)}
.simple-register-card{width:min(470px,100%)}
.simple-auth-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;margin-bottom:30px}
.simple-auth-logo-wrap{width:54px;height:54px;display:grid;place-items:center;background:#f4f3ff;border:1px solid #e4e1ff;border-radius:16px;padding:5px;flex:0 0 auto}
.simple-auth-logo-wrap img{width:100%;height:100%;object-fit:contain;border-radius:11px;background:#fff}
.simple-auth-brand-text{display:grid;gap:2px}.simple-auth-brand-text strong{font-size:17px;letter-spacing:.04em}.simple-auth-brand-text small{font-size:10px;color:#7c8193}
.simple-auth-heading{margin-bottom:24px}.simple-auth-heading h1{margin:0 0 6px;font-size:26px;line-height:1.25;letter-spacing:-.025em}.simple-auth-heading p{margin:0;color:#7c8193;font-size:13px;line-height:1.6}
.simple-auth-alert{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:12px;background:#fff1f3;border:1px solid #ffd4dc;color:#b4233d;margin-bottom:18px}.simple-auth-alert>span{width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#df4c62;color:#fff;font-size:11px;font-weight:800;flex:0 0 auto}.simple-auth-alert p{margin:1px 0 0;font-size:12px;line-height:1.5}
.simple-auth-form{display:grid;gap:16px}.simple-auth-field{display:grid;gap:7px}.simple-auth-field>span{font-size:12px;font-weight:700;color:#353849}
.simple-auth-input-wrap{position:relative;display:flex;align-items:center}.simple-auth-icon{position:absolute;left:14px;font-size:13px;opacity:.55;pointer-events:none}
.simple-auth-input-wrap input{width:100%;height:48px;border:1.5px solid #e1e3ec;border-radius:12px;background:#fbfbfd;color:#202332;padding:0 76px 0 41px;outline:none;font:inherit;font-size:13px;transition:.18s ease}.simple-auth-input-wrap input:hover{border-color:#cfd2df;background:#fff}.simple-auth-input-wrap input:focus{border-color:#5b5cf0;background:#fff;box-shadow:0 0 0 4px rgba(91,92,240,.09)}
.simple-password-toggle{position:absolute;right:7px;border:0;background:transparent;color:#62677a;font:inherit;font-size:11px;font-weight:700;padding:8px 9px;border-radius:8px;cursor:pointer}.simple-password-toggle:hover{background:#f0f0ff;color:#5b5cf0}
.simple-auth-submit{height:48px;border:0;border-radius:12px;background:#5b5cf0;color:#fff;font:inherit;font-weight:700;font-size:13px;cursor:pointer;margin-top:2px;box-shadow:0 10px 22px rgba(91,92,240,.2);transition:.18s ease}.simple-auth-submit:hover{background:#4e4fe0;transform:translateY(-1px)}.simple-auth-submit:active{transform:translateY(0)}
.simple-auth-switch{text-align:center;margin:21px 0 0;font-size:12px;color:#7c8193}.simple-auth-switch a{color:#5b5cf0;font-weight:700;text-decoration:none}.simple-auth-switch a:hover{text-decoration:underline}
.simple-auth-footer{margin-top:27px;padding-top:18px;border-top:1px solid #eef0f5;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#9297a8}.simple-auth-footer span{font-family:"Noto Sans SC",Poppins,sans-serif;font-size:10px}.simple-auth-footer small{font-size:9px}
@media(max-width:520px){.simple-auth-shell{padding:0;background:#fff;place-items:stretch}.simple-auth-card,.simple-register-card{width:100%;min-height:100vh;border:0;border-radius:0;box-shadow:none;padding:30px 21px;display:flex;flex-direction:column;justify-content:center}.simple-auth-brand{margin-bottom:26px}.simple-auth-heading h1{font-size:24px}.simple-auth-footer{margin-top:24px}}
