@import url("https://fonts.googleapis.cn/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap");:root{--primary:#135058;--primary-light:#1a6b7c;--primary-dark:#0d3a44;--secondary:#f1f2b5;--secondary-dark:#dde09a;--gradient:linear-gradient(135deg,#135058,#1a6b7c);--gradient-secondary:linear-gradient(135deg,#f1f2b5,#dde09a);--gradient-primary:linear-gradient(135deg,#135058,#1a6b7c);--gradient-success:linear-gradient(135deg,#22c55e,#4ade80);--gradient-info:linear-gradient(135deg,#135058,#1a6b7c);--bg:#f4f5ec;--card-bg:#fff;--card-hover:#efefde;--text:#135058;--text-secondary:#3d6b76;--text-muted:#7a9ea5;--success:#22c55e;--success-bg:#dcfce7;--warning:#b8860b;--warning-bg:#fef9e7;--danger:#c0392b;--danger-bg:#fee2e2;--info:#135058;--info-bg:#e8f4f6;--border:#dde0cc;--card-border:rgba(19,80,88,.08);--radius-sm:6px;--radius:12px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 2px rgba(19,80,88,.06);--shadow-md:0 4px 6px rgba(19,80,88,.08);--shadow-lg:0 10px 15px rgba(19,80,88,.1)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:Noto Sans SC,PingFang SC,-apple-system,sans-serif;font-weight:500;background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh}.navbar{background:var(--gradient-primary);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:0 24px;height:56px;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-brand,.navbar{display:flex;align-items:center}.nav-brand{font-size:18px;font-weight:700;color:#fff;letter-spacing:-.3px;gap:8px}.nav-links{display:flex;gap:4px}.nav-links a{padding:6px 14px;border-radius:var(--radius);font-size:13px;color:hsla(0,0%,100%,.8);text-decoration:none;transition:all .2s}.nav-links a:hover{background:hsla(0,0%,100%,.15);color:#fff}.nav-links a.active{background:hsla(61,70%,83%,.25);color:#fff;font-weight:600}.nav-streak{font-size:13px;color:hsla(0,0%,100%,.85);display:flex;align-items:center;gap:5px}.container{max-width:960px;margin:0 auto;padding:24px 20px}.grid-2{grid-template-columns:repeat(2,1fr);grid-gap:16px}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:16px}.card{padding:20px;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .18s;text-decoration:none;box-shadow:var(--shadow-sm)}.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{transform:scale(.97) translateY(0);box-shadow:var(--shadow-sm)}.btn-primary:hover{filter:brightness(1.08)}.btn-secondary{background:var(--gradient-primary);color:#fff}.btn-secondary:hover{filter:brightness(1.08)}.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--secondary);border-color:var(--secondary-dark)}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 12px;font-size:13px}.btn-block{display:flex;width:100%}.badge{display:inline-flex;align-items:center;font-size:11px}.badge-easy{background:var(--success-bg);color:var(--success)}.badge-medium{background:var(--warning-bg);color:var(--warning)}.badge-hard{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--primary)}.badge-secondary{background:var(--secondary);color:var(--primary-dark)}.stat-card{transition:all .2s}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-value{background-clip:text;line-height:1.1;letter-spacing:-1px}.stat-label{font-size:12px;color:var(--text-muted);margin-top:6px}.countdown-box{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px;text-align:center;box-shadow:var(--shadow-sm)}.countdown-number{font-size:52px;font-weight:900;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;letter-spacing:-2px}.streak-bar{gap:4px}.streak-bar,.streak-dot{display:flex;justify-content:center}.streak-dot{width:30px;height:30px;border-radius:50%;align-items:center;font-size:11px;background:var(--bg);color:var(--text-muted)}.streak-dot.active{background:rgba(19,80,88,.1);color:var(--primary);font-weight:600}.streak-dot.today{border:2px solid var(--primary)}.chapter-list{display:flex;flex-direction:column;gap:8px}.chapter-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--card-hover);border-radius:var(--radius);cursor:pointer;transition:background .15s}.chapter-item:hover{background:#e4e6d6}.question-card{padding:14px;border-bottom:1px solid var(--border)}.question-card:last-child{border-bottom:none}.question-content{font-size:14px;color:var(--text);margin-bottom:8px}.question-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.subject-list{display:flex;flex-wrap:wrap;gap:8px}.subject-tag{padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;background:var(--card-hover);color:var(--text-muted);border:1px solid transparent;transition:all .15s}.subject-tag.active,.subject-tag:hover{border-color:var(--primary);color:var(--primary)}.subject-tag.active{background:rgba(19,80,88,.1);font-weight:600}.empty-state{text-align:center;padding:40px 20px}.empty-state-icon{font-size:42px;margin-bottom:12px;padding:0 16px;opacity:.5}.empty-state p{color:var(--text-muted);font-size:14px}.badge-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.achievement-badge{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:var(--radius);min-width:72px}.achievement-badge.unlocked{background:rgba(19,80,88,.08)}.achievement-badge.locked{background:var(--bg);opacity:.5}.badge-icon{font-size:28px}.badge-name{font-size:11px;color:var(--text-muted);text-align:center}.ring-progress{position:relative;display:inline-flex;align-items:center;justify-content:center}.ring-progress svg{transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--bg);stroke-width:8}.ring-fill{fill:none;stroke:url(#ring-gradient);stroke-width:8;stroke-linecap:round}.ring-text{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-text span:first-child{font-size:22px;font-weight:800;color:var(--primary)}.ai-thinking{display:flex;align-items:center;gap:10px;padding:12px}.ai-thinking-dots{display:flex;gap:4px}.ai-thinking-dots span{width:7px;height:7px;border-radius:50%;background:var(--primary);animation:dotPulse 1.4s ease-in-out infinite}.ai-thinking-dots span:nth-child(2){animation-delay:.2s}.ai-thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-xl);padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s}.upload-area:hover{border-color:var(--primary);background:rgba(19,80,88,.04)}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:10px 14px;background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(19,80,88,.1)}.form-input::placeholder{color:var(--text-muted)}textarea.form-input{resize:vertical;min-height:100px}.app-wrapper{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.main-content{flex:1 1;padding-bottom:80px}.content-wrapper{padding:0 16px 80px;max-width:480px;margin:0 auto;width:100%;box-sizing:border-box;background:var(--bg)}@media (min-width:768px){.content-wrapper{max-width:720px;padding:0 24px 80px}}@media (min-width:1024px){.content-wrapper{max-width:960px}}.bottom-tab-bar{position:fixed;bottom:0;left:0;right:0;height:64px;background:hsla(0,0%,100%,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);justify-content:space-around;z-index:999;padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -4px 20px rgba(19,80,88,.06)}.bottom-tab-bar,.tab-item{display:flex;align-items:center}.tab-item{flex-direction:column;justify-content:center;gap:2px;padding:6px 12px;text-decoration:none;color:var(--text-muted);transition:color .2s;min-width:52px}.tab-item:hover{color:var(--text-secondary)}.tab-item.active{color:var(--primary)}.tab-item.active .tab-icon{transform:scale(1.1)}.tab-icon{font-size:22px;transition:transform .2s;line-height:1}.tab-label{font-size:10px;font-weight:600;line-height:1}@media (min-width:769px){.bottom-tab-bar{height:70px;border-bottom:1px solid var(--border);box-shadow:0 4px 20px rgba(19,80,88,.06)}.main-content{padding-top:56px;padding-bottom:0}.tab-label{font-size:12px}.grid-3{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}.container{padding:16px 14px}.stat-value{font-size:26px}.countdown-number{font-size:40px}}.chat-container{padding:0 16px;max-width:480px;margin-left:auto;margin-right:auto;box-sizing:border-box;max-height:400px;overflow-y:auto;margin-bottom:12px}.chat-message{display:flex;flex-direction:column;margin-bottom:14px;max-width:100%}.chat-message.user{align-items:flex-end}.chat-message.ai{align-items:flex-start}.chat-message>div:last-child{max-width:480px;width:100%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word;box-sizing:border-box}.chat-message.user>div:last-child{background:var(--secondary);color:var(--primary-dark);border-bottom-right-radius:4px}.chat-message.ai>div:last-child{background:rgba(19,80,88,.06);color:var(--text);border-bottom-left-radius:4px}.chat-message img{max-width:100%;height:auto;border-radius:8px;display:block}.neon-text-cyan,.neon-text-purple{color:var(--primary)!important}@media (min-width:769px){.desktop-nav{display:flex!important}.bottom-tab-bar{display:none!important}}@media (max-width:768px){.desktop-nav{display:none!important}.bottom-tab-bar{display:flex!important}}.crop-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);z-index:9999;display:flex;align-items:center;justify-content:center}.crop-modal{background:#1a1a2e;border-radius:16px;width:95vw;max-width:900px;height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}.crop-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#16213e;border-bottom:1px solid hsla(0,0%,100%,.1);font-size:15px;font-weight:600;color:#fff}.crop-close-btn{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;opacity:.7;transition:opacity .2s}.crop-close-btn:hover{opacity:1;background:hsla(0,0%,100%,.1)}.crop-container{flex:1 1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#000;padding:8px}.crop-image{max-width:100%;max-height:100%;display:block}.crop-footer{padding:16px 20px;background:#16213e;border-top:1px solid hsla(0,0%,100%,.1);display:flex;justify-content:center;gap:12px}.cropper-container{direction:ltr!important}.cropper-view-box{outline:2px solid #135058!important;outline-color:rgba(19,80,88,.75)!important}.cropper-line,.cropper-point{background-color:#135058!important}.cropper-point{width:10px!important;height:10px!important;opacity:1!important}.cropper-point.point-nw{top:-3px;left:-3px}.cropper-point.point-ne{top:-3px;right:-3px}.cropper-point.point-sw{bottom:-3px;left:-3px}.cropper-point.point-se{bottom:-3px;right:-3px}.cropper-point.point-n{top:-3px}.cropper-point.point-s{bottom:-3px}.cropper-point.point-e{right:-3px}.cropper-point.point-w{left:-3px}.cropper-modal{background-color:rgba(0,0,0,.7)!important}.cropper-dashed{border-color:hsla(0,0%,100%,.5)!important}.question-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}.question-detail-modal{background:var(--card-bg);border-radius:16px;width:95vw;max-width:700px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}.question-detail-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg);border-radius:16px 16px 0 0;position:-webkit-sticky;position:sticky;top:0}.question-detail-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-muted);padding:4px 8px;border-radius:6px}.question-detail-close:hover{background:var(--card-hover)}.question-detail-body{padding:20px}.top-bar{position:-webkit-sticky;position:sticky;top:0;z-index:200;width:100%;background:var(--primary);box-shadow:0 2px 12px rgba(19,80,88,.25)}.top-bar-inner{max-width:960px;margin:0 auto;height:56px;justify-content:space-between;padding:0 16px}.top-bar-inner,.top-bar-logo{display:flex;align-items:center}.top-bar-logo{gap:8px;flex-shrink:0}.top-bar-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.3px;white-space:nowrap}.top-bar-nav{display:none;align-items:center;gap:2px;flex:1 1;justify-content:center}.top-bar-nav-item{padding:5px 12px;border-radius:8px;font-size:13px;font-weight:500;color:hsla(0,0%,100%,.75);text-decoration:none;transition:all .2s;white-space:nowrap}.top-bar-nav-item:hover{background:hsla(0,0%,100%,.15);color:#fff}.top-bar-nav-item.active{background:hsla(61,70%,83%,.25);color:#fff;font-weight:600}.top-bar-user{display:none;align-items:center;gap:10px;flex-shrink:0}.top-bar-username{font-size:13px;color:hsla(0,0%,100%,.9);font-weight:500}.top-bar-logout-btn{padding:5px 12px;border-radius:8px;border:1px solid hsla(0,0%,100%,.35);background:hsla(0,0%,100%,.1);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.top-bar-logout-btn:hover{background:hsla(0,0%,100%,.2)}@media (min-width:768px){.top-bar{background:hsla(0,0%,100%,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);box-shadow:0 2px 12px rgba(19,80,88,.08)}.top-bar-inner{height:52px;padding:0 20px}.top-bar-title{font-size:17px;font-weight:700;color:var(--primary)}.top-bar-nav,.top-bar-user{display:flex}.top-bar-nav-item{color:var(--text-muted);font-size:13px}.top-bar-nav-item.active,.top-bar-nav-item:hover{background:var(--info-bg);color:var(--primary)}.top-bar-nav-item.active{font-weight:600}.top-bar-username{color:var(--text)}.top-bar-logout-btn{border:1px solid var(--border);background:var(--danger-bg);color:var(--danger)}}.page-content{padding:0 16px 80px;max-width:600px;margin:0 auto;width:100%;box-sizing:border-box}@media (min-width:768px){.page-content{max-width:720px;padding:0 24px 80px}}@media (min-width:1024px){.page-content{max-width:960px}}.page-title-wrap{padding:20px 0 16px}.page-title{font-size:26px;font-weight:800;color:var(--primary);letter-spacing:-.5px;line-height:1.2}.page-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px;font-weight:400}@media (min-width:768px){.page-title{font-size:28px}.page-title-wrap{padding:24px 0 20px}}.page-root{min-height:100vh;background:var(--bg)}.page-header-bar{background:var(--primary);color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.card,.page-body{padding:16px}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:14px}.btn{padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .2s}.btn-primary{background:var(--gradient);color:#fff}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-ghost{background:transparent;color:var(--text-muted);font-size:13px;box-shadow:none}.input{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--border);font-size:15px;background:var(--bg);color:var(--text);outline:none;box-sizing:border-box}.input:focus{border-color:var(--primary)}.badge{padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-primary{background:rgba(19,80,88,.1);color:var(--primary)}.progress-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:var(--gradient)}.list-item{padding:12px 14px;background:var(--card-hover);border-radius:var(--radius);cursor:pointer;transition:background .15s}.list-item:hover{background:var(--border)}.stat-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:20px 14px;text-align:center;box-shadow:var(--shadow-sm)}.stat-value{font-size:32px;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-pill{display:inline-block;margin-right:8px;padding:5px 14px;border-radius:20px;border:1px solid var(--border);font-size:13px;cursor:pointer}.topic-pill.active{border:2px solid var(--primary);background:var(--primary);color:#fff}.topic-pill.inactive{background:#fff;color:var(--text)}