*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #0ea5e9;--primary-dark: #0284c7;--secondary-color: #64748b;--success-color: #22c55e;--warning-color: #f59e0b;--error-color: #ef4444;--background: #f8fafc;--surface: #ffffff;--text-primary: #0f172a;--text-secondary: #64748b;--border-color: #e2e8f0;--border-radius: 8px;--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:1.6}.hidden{display:none!important}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.screen{min-height:100vh}.auth-container{max-width:400px;margin:0 auto;padding:40px 20px;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.auth-header{text-align:center;margin-bottom:32px}.auth-header h1{color:var(--primary-color);font-size:2.5rem;font-weight:700;margin-bottom:8px}.auth-tabs{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:24px}.tab-btn{flex:1;padding:12px;border:none;background:none;cursor:pointer;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all .2s}.tab-btn.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.form-group{margin-bottom:20px;width:100%}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-weight:500;font-size:14px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:16px;transition:border-color .2s;background:var(--surface);color:var(--text-primary);box-sizing:border-box}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e91a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-control{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:14px;transition:border-color .2s;background:var(--surface);color:var(--text-primary);box-sizing:border-box}.form-help{display:block;margin-top:5px;color:var(--text-secondary);font-size:12px;line-height:1.4}.btn-primary,.btn-secondary{padding:12px 24px;border:none;border-radius:var(--border-radius);font-weight:500;cursor:pointer;transition:all .2s;font-size:14px}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--background)}.navbar{background:var(--surface);border-bottom:1px solid var(--border-color);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);position:sticky;top:0;z-index:100;flex-wrap:wrap;gap:12px}.nav-brand{flex-shrink:0}.nav-brand h1{color:var(--primary-color);font-size:1.5rem;font-weight:700;margin:0}.nav-menu{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center;flex:1}.nav-btn{padding:8px 16px;border:none;background:none;color:var(--text-secondary);font-weight:500;cursor:pointer;border-radius:var(--border-radius);transition:all .2s;white-space:nowrap;font-size:14px}.nav-btn.active,.nav-btn:hover{background:var(--primary-color);color:#fff}.nav-user{display:flex;align-items:center;gap:12px;flex-shrink:0;font-size:14px}.nav-user #user-name{font-weight:500;color:var(--text-primary)}.main-content{padding:24px;max-width:1200px;margin:0 auto}.view{display:none}.view.active{display:block}.view-header{display:flex;justify-content:between;align-items:center;margin-bottom:24px}.view-header h2{font-size:1.75rem;font-weight:600;color:var(--text-primary)}.card{background:var(--surface);border-radius:var(--border-radius);padding:24px;box-shadow:var(--shadow);border:1px solid var(--border-color)}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem;margin-top:1rem}.card{background:var(--surface);border-radius:var(--border-radius);padding:24px;box-shadow:var(--shadow);border:1px solid var(--border-color);display:flex;flex-direction:column;min-height:200px}.card h3{color:var(--text-primary);margin-bottom:1rem;font-size:1.1rem;font-weight:600;border-bottom:2px solid var(--primary-color);padding-bottom:.5rem}.large-card{grid-column:span 12;min-height:400px}.progress-card{grid-column:span 3;text-align:center;justify-content:center;align-items:center;min-height:200px}.target-gap-card{grid-column:span 5;min-height:200px}.recent-exams-card{grid-column:span 4;min-height:200px}.subject-analysis-card,.ranking-analysis-card{grid-column:span 6;min-height:300px}.progress-value{font-size:2.5rem;font-weight:700;margin:1rem 0;line-height:1}.progress-description{color:var(--text-secondary);font-size:.875rem;line-height:1.4}.gap-metrics{display:flex;flex-direction:column;gap:.75rem;flex:1}.gap-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.5rem 0;border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:.25rem}.gap-label{font-size:.875rem;color:var(--text-secondary);flex-shrink:0}.gap-value{font-weight:600;color:var(--text-primary);text-align:right;flex:1}.mode-btn{background:var(--primary-color);color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer;margin-left:.5rem;white-space:nowrap}.exams-list{display:grid;gap:16px}.exam-card{background:var(--surface);border-radius:var(--border-radius);padding:20px;box-shadow:var(--shadow);border:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.exam-info h3{margin-bottom:8px;color:var(--text-primary)}.exam-info p{color:var(--text-secondary);font-size:14px}.exam-actions{display:flex;gap:8px}.analytics-controls{background:var(--surface);padding:20px;border-radius:var(--border-radius);margin-bottom:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;align-items:end}.filter-group label{display:block;margin-bottom:4px;font-weight:500;color:var(--text-primary)}.chart-container{background:var(--surface);padding:24px;border-radius:var(--border-radius);box-shadow:var(--shadow);width:100%;min-height:350px;position:relative;overflow:visible}.chart-container canvas,.chart-container div{width:100%!important;height:100%!important}#trend-chart,#subject-radar,#custom-chart{width:100%;height:300px;min-height:300px;margin-top:10px;padding-top:20px}.analytics-controls+.chart-container{margin-top:24px;padding-top:32px;min-height:400px}.analytics-controls+.chart-container #custom-chart{height:350px;min-height:350px;padding-top:30px}.ai-chat{height:600px;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--border-radius);box-shadow:var(--shadow)}.chat-messages{flex:1;padding:20px;overflow-y:auto;border-bottom:1px solid var(--border-color)}.message{margin-bottom:16px;max-width:80%;padding:12px 16px;border-radius:18px;line-height:1.4;word-wrap:break-word}.message.user{align-self:flex-end;background:var(--primary-color);color:#fff;margin-left:auto;border-radius:16px 16px 4px}.message.ai{align-self:flex-start;background:var(--background);color:var(--text-primary);border:1px solid var(--border-color);border-radius:16px 16px 16px 4px}.chat-messages{display:flex;flex-direction:column}.chat-input{padding:20px;display:flex;gap:12px}.chat-input input{flex:1;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:14px}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box}.modal-content{background:var(--surface);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);max-width:600px;width:100%;max-height:calc(100vh - 40px);overflow-y:auto;position:relative;display:flex;flex-direction:column}.modal-content.large{max-width:900px}.modal-header{padding:24px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:var(--background);border-radius:var(--border-radius) var(--border-radius) 0 0;position:sticky;top:0;z-index:10}.modal-header h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0;flex:1}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);padding:8px;border-radius:4px;transition:background-color .2s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.close-btn:hover{background:var(--border-color);color:var(--text-primary)}.modal-actions{padding:20px 24px;border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;background:var(--background);border-radius:0 0 var(--border-radius) var(--border-radius);flex-wrap:wrap}.grades-form{padding:20px 24px;flex:1}.grades-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:12px;margin-bottom:16px;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color);background:var(--background);border-radius:var(--border-radius);padding:12px}.grade-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:12px;margin-bottom:12px;align-items:center;padding:8px;background:var(--background);border-radius:var(--border-radius);border:1px solid var(--border-color)}.grade-row select,.grade-row input{padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:14px;background:var(--surface);color:var(--text-primary);width:100%;box-sizing:border-box}.grade-row select:focus,.grade-row input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #0ea5e91a}.remove-row{padding:6px 12px;font-size:12px;white-space:nowrap;min-width:auto;flex-shrink:0}#add-subject-btn{margin-top:16px;align-self:flex-start}@media (max-width: 768px){.grades-header{display:none}.grade-row{display:flex;flex-direction:column;gap:12px;padding:16px;margin-bottom:16px;background:var(--background);border:1px solid var(--border-color);border-radius:var(--border-radius);position:relative}.grade-row select,.grade-row input{padding:12px 16px;font-size:16px;width:100%}.grade-row:before{content:attr(data-subject);font-weight:600;color:var(--text-primary);font-size:14px;margin-bottom:8px;display:block}.remove-row{position:absolute;top:8px;right:8px;padding:4px 8px;font-size:12px}.grade-row select{order:1}.grade-row input:nth-of-type(1):before{content:"我的得分";display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.grade-row input:nth-of-type(2):before{content:"满分";display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.grade-row input:nth-of-type(3):before{content:"班级平均分(可选)";display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}.grade-row input:nth-of-type(4):before{content:"年级平均分(可选)";display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px}}@media (max-width: 1024px){.navbar{padding:12px 16px}.nav-menu{gap:6px}.nav-btn{padding:6px 12px;font-size:13px}.dashboard-grid{grid-template-columns:repeat(6,1fr);gap:1rem}.large-card{grid-column:span 6}.progress-card{grid-column:span 2}.target-gap-card{grid-column:span 4}.recent-exams-card{grid-column:span 6}.subject-analysis-card,.ranking-analysis-card{grid-column:span 3}}@media (max-width: 768px){.navbar{flex-direction:column;gap:12px;padding:16px}.nav-brand{width:100%;text-align:center;order:1}.nav-menu{order:2;width:100%;justify-content:center;flex-wrap:wrap;gap:8px}.nav-btn{padding:8px 12px;font-size:14px;min-width:auto;flex:0 1 auto}.nav-user{order:3;width:100%;justify-content:center;padding-top:8px;border-top:1px solid var(--border-color)}.main-content{padding:16px 12px}.dashboard-grid{grid-template-columns:1fr;gap:1rem}.large-card,.progress-card,.target-gap-card,.recent-exams-card,.subject-analysis-card,.ranking-analysis-card{grid-column:span 1;min-height:auto}.gap-item{flex-direction:column;align-items:flex-start;gap:.5rem;text-align:left;padding:.75rem 0}.gap-label{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.gap-value{text-align:left;flex:none;width:100%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.mode-btn{margin-left:0;margin-top:.25rem;align-self:flex-start}.progress-value{font-size:2rem;margin:1rem 0}.progress-description{text-align:center;line-height:1.5}.targets-container{grid-template-columns:1fr;gap:1rem}.target-item{flex-direction:column;align-items:flex-start;gap:.5rem;text-align:left}.target-item strong{color:var(--text-primary);margin-bottom:.25rem}.form-row{grid-template-columns:1fr;gap:16px}.analytics-controls{grid-template-columns:1fr}.grades-header,.grade-row{grid-template-columns:1fr;gap:8px}.modal-content{width:95%;margin:10px;max-height:95vh}}@media (max-width: 480px){.navbar{padding:12px}.nav-brand h1{font-size:1.25rem}.nav-btn{padding:6px 8px;font-size:12px}.nav-user{font-size:13px;gap:8px}.main-content{padding:12px 8px}}.settings-container{max-width:800px;margin:0 auto;padding:20px}.settings-section{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:30px;box-shadow:var(--shadow)}.settings-section h3{color:var(--text-primary);margin-bottom:20px;font-size:1.25rem;border-bottom:2px solid var(--primary-color);padding-bottom:10px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:5px;color:var(--text-primary);font-weight:500}.form-control{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:14px;transition:border-color .2s;background:var(--surface);color:var(--text-primary)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e91a}.form-help{display:block;margin-top:5px;color:var(--text-secondary);font-size:12px}.range-value{display:inline-block;margin-left:10px;color:var(--primary-color);font-weight:500;min-width:30px}.settings-actions{display:flex;gap:15px;margin-top:30px;flex-wrap:wrap}.test-result{margin-top:15px;padding:12px;border-radius:var(--border-radius);font-size:14px;display:none}.test-result.success{background:#22c55e1a;color:var(--success-color);border:1px solid rgba(34,197,94,.2);display:block}.test-result.error{background:#ef44441a;color:var(--error-color);border:1px solid rgba(239,68,68,.2);display:block}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);padding:10px 20px;border-radius:var(--border-radius);cursor:pointer;font-size:14px;transition:all .2s}.btn-outline:hover{background:var(--background);border-color:var(--text-secondary)}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.settings-actions{justify-content:center}.settings-section{padding:20px}}.progress-value{font-size:2.5rem;font-weight:700;margin:1rem 0}.progress-value.positive{color:var(--success-color)}.progress-value.negative{color:var(--error-color)}.progress-value.neutral{color:var(--secondary-color)}.progress-description{color:var(--text-secondary);font-size:.875rem}.gap-metrics{display:flex;flex-direction:column;gap:.75rem}.gap-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.gap-item:last-child{border-bottom:none}.gap-label{font-size:.875rem;color:var(--text-secondary)}.gap-value{font-weight:600;color:var(--text-primary)}.mode-btn{background:var(--primary-color);color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;cursor:pointer;margin-left:.5rem}.mode-btn:hover{background:var(--primary-dark)}.targets-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem}.target-form-card,.current-target-card{background:var(--surface);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border-color)}.target-form-card h3,.current-target-card h3{margin-bottom:1.5rem;color:var(--text-primary);font-size:1.1rem;font-weight:600;border-bottom:2px solid var(--primary-color);padding-bottom:.5rem}.target-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:.5rem}.target-item:last-child{border-bottom:none}.target-item strong{color:var(--text-primary);flex-shrink:0;min-width:100px}.no-target{text-align:center;padding:2rem;color:var(--text-secondary);line-height:1.6}.cutoff-section{margin:1.5rem 0;padding:1.5rem;background:var(--background);border-radius:var(--border-radius);border:1px solid var(--border-color)}.cutoff-section h4{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.1rem;font-weight:600;padding-bottom:.5rem;border-bottom:2px solid var(--primary-color)}#exam-form{padding:24px}#exam-form .form-group{margin-bottom:20px}#exam-form .form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-weight:500;font-size:14px}#exam-form .form-group input,#exam-form .form-group textarea{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:14px;transition:border-color .2s ease}#exam-form .form-group input:focus,#exam-form .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #0ea5e91a}#exam-form .form-group textarea{resize:vertical;min-height:80px}.ai-chat{display:flex;flex-direction:column;height:600px;background:var(--surface);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;background:var(--background)}.message{max-width:70%;padding:12px 16px;border-radius:12px;line-height:1.5;word-wrap:break-word}.message.user{background:var(--primary-color);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.message.ai{background:var(--surface);border:1px solid var(--border-color);color:var(--text-primary);align-self:flex-start;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000000d}.chat-input{padding:20px;border-top:1px solid var(--border-color);display:flex;gap:12px;background:var(--surface)}.chat-input input{flex:1;padding:12px 16px;border:1px solid var(--border-color);border-radius:24px;outline:none;transition:border-color .2s ease}.chat-input input:focus{border-color:var(--primary-color)}.chat-input button{padding:12px 24px;border-radius:24px;white-space:nowrap}.analytics-controls{background:var(--surface);padding:24px;border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;align-items:end}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-weight:500;color:var(--text-primary);font-size:14px}.filter-group select{padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface);color:var(--text-primary);font-size:14px}.chart-container{background:var(--surface);padding:24px;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:var(--shadow)}.btn-primary,.btn-secondary,.btn-outline{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;font-size:14px;font-weight:500;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;border:none;outline:none;box-sizing:border-box}.btn-primary:active,.btn-secondary:active,.btn-outline:active{transform:translateY(1px);opacity:.9}.form-group input,.form-group textarea,.form-group select,.form-control{min-height:44px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 12px;padding-right:40px}.nav-btn{min-height:40px;min-width:60px;touch-action:manipulation}.nav-btn:active{transform:scale(.98)}.chat-messages{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.message{word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary:disabled:active,.btn-secondary:disabled:active{transform:none}.exam-card{background:var(--surface);border-radius:var(--border-radius);padding:20px;box-shadow:var(--shadow);border:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.exam-info{flex:1;min-width:200px}.exam-info h3{margin-bottom:8px;color:var(--text-primary);font-size:1.125rem}.exam-info p{color:var(--text-secondary);font-size:14px;margin-bottom:4px}.exam-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}@media (max-width: 768px){.exam-card{flex-direction:column;align-items:stretch}.exam-actions{width:100%;justify-content:flex-start}.exam-actions button{flex:1;min-width:auto}}.main-content,.chat-messages,.modal-content{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.nav-btn:focus,.btn-primary:focus,.btn-secondary:focus,.btn-outline:focus{outline:2px solid var(--primary-color);outline-offset:2px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus,.form-control:focus{outline:2px solid var(--primary-color);outline-offset:-2px}.nav-btn,.btn-primary,.btn-secondary,.btn-outline,.close-btn,.mode-btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.test-result{margin-top:16px;padding:12px 16px;border-radius:var(--border-radius);font-size:14px;font-weight:500;opacity:0;transition:opacity .3s ease}.test-result.success{background:#22c55e1a;color:var(--success-color);border:1px solid rgba(34,197,94,.2);opacity:1}.test-result.error{background:#ef44441a;color:var(--error-color);border:1px solid rgba(239,68,68,.2);opacity:1}.test-result.info{background:#0ea5e91a;color:var(--primary-color);border:1px solid rgba(14,165,233,.2);opacity:1}@media (max-width: 1200px){.dashboard-grid{grid-template-columns:repeat(8,1fr)}.large-card{grid-column:span 8}.progress-card{grid-column:span 2}.target-gap-card,.recent-exams-card{grid-column:span 3}.subject-analysis-card,.ranking-analysis-card{grid-column:span 4}}@media (max-width: 768px){.dashboard-grid{grid-template-columns:repeat(8,1fr);gap:1rem}.large-card{grid-column:span 8}.progress-card,.target-gap-card{grid-column:span 4}.recent-exams-card,.subject-analysis-card,.ranking-analysis-card{grid-column:span 8}.targets-container{grid-template-columns:1fr;gap:1rem}.form-row{grid-template-columns:1fr;gap:16px}}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr;gap:1rem}.large-card,.progress-card,.target-gap-card,.dashboard-grid .card:nth-of-type(4),.dashboard-grid .card:nth-of-type(5){grid-column:span 1;min-height:auto}.gap-item{flex-direction:column;align-items:flex-start;gap:.25rem;text-align:left}.gap-value{text-align:left}.progress-value{font-size:2rem}.modal-content{margin:10px;max-height:calc(100vh - 20px);width:calc(100% - 20px)}.modal-header{padding:16px}.modal-header h3{font-size:1.25rem}.grades-form{padding:16px}.grades-header,.grade-row{grid-template-columns:1fr;gap:8px}.grades-header{display:none}.grade-row{display:flex;flex-direction:column;gap:8px;padding:12px;margin-bottom:16px;background:var(--background);border:1px solid var(--border-color);border-radius:var(--border-radius)}.grade-row select,.grade-row input{padding:10px 12px;font-size:16px}.modal-actions{padding:16px;flex-direction:column-reverse;gap:8px}.modal-actions button{width:100%;padding:12px 16px;font-size:16px}.analytics-controls{grid-template-columns:1fr;gap:16px;padding:16px}.chat-input{padding:16px;flex-direction:column;gap:8px}.chat-input input{font-size:16px;padding:12px 16px}.chat-input button{width:100%;padding:12px 16px;font-size:16px;border-radius:var(--border-radius)}}@media (max-width: 480px){.card{padding:16px}.card h3{font-size:1rem}.progress-value{font-size:1.75rem}.modal-content{margin:5px;max-height:calc(100vh - 10px);width:calc(100% - 10px);border-radius:8px}.modal-header{padding:12px}.modal-header h3{font-size:1.125rem}.close-btn{width:32px;height:32px;font-size:20px}.grades-form{padding:12px}.grade-row{padding:8px}.modal-actions{padding:12px}}@media (min-width: 1200px){.main-content{max-width:1400px;margin:0 auto;padding:2rem}.dashboard-grid{grid-template-columns:repeat(6,1fr);gap:2rem}.large-card{grid-column:span 6}.progress-card{grid-column:span 2}.target-gap-card{grid-column:span 4}.dashboard-grid .card:nth-of-type(4),.dashboard-grid .card:nth-of-type(5){grid-column:span 3}.recent-exams-card{grid-column:span 2}.subject-analysis-card,.ranking-analysis-card{grid-column:span 3}.ranking-content{display:flex;flex-direction:column;gap:1rem;flex:1}.ranking-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.ranking-item:last-child{border-bottom:none}.ranking-label{font-size:.9rem;color:var(--text-secondary);font-weight:500}.ranking-value{font-weight:600;color:var(--text-primary);font-size:1rem}.ranking-settings{margin-top:1rem;text-align:center}.ranking-settings .btn-secondary{font-size:.875rem;padding:.5rem 1rem}.chart-container{width:100%;height:300px;min-height:250px;overflow:hidden;position:relative}.gap-item{flex-wrap:nowrap;align-items:center}.gap-label{min-width:80px;white-space:nowrap}.gap-value{text-align:left;margin-left:1rem;flex:none}.mode-btn{margin-left:auto;flex-shrink:0}.card{padding:2rem;min-height:250px}.card h3{font-size:1.25rem;margin-bottom:1.5rem}.progress-value{font-size:3rem;margin:1.5rem 0}.targets-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;max-width:1200px;margin:0 auto}.target-form-card,.current-target-card{padding:2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.navbar{padding:1rem 2rem}.nav-menu{gap:.5rem}.nav-btn{padding:.75rem 1.5rem;font-size:.95rem}}@media (min-width: 1600px){.main-content{max-width:1600px;padding:3rem}.dashboard-grid{gap:2.5rem}.card{padding:2.5rem}.progress-value{font-size:3.5rem}}.app-footer{background:var(--surface);border-top:1px solid var(--border-color);margin-top:4rem;padding:3rem 2rem 2rem;color:var(--text-secondary)}.footer-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.footer-brand h3{color:var(--primary-color);font-size:1.75rem;font-weight:700;margin-bottom:1rem}.footer-description{line-height:1.7;color:var(--text-secondary);margin-bottom:0}.footer-studio h4{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;border-bottom:2px solid var(--primary-color);padding-bottom:.5rem}.studio-info{display:flex;gap:1.5rem;align-items:flex-start}.studio-logo{font-size:2.5rem;flex-shrink:0}.studio-details h5{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin-bottom:.25rem}.studio-name-cn{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem;font-style:italic}.studio-description{line-height:1.6;margin-bottom:1.5rem;color:var(--text-secondary)}.studio-values{display:flex;gap:.75rem;flex-wrap:wrap}.value-tag{background:var(--primary-color);color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.8rem;font-weight:500}.footer-copyright{grid-column:1 / -1;border-top:1px solid var(--border-color);padding-top:2rem;margin-top:2rem;text-align:center}.copyright-line{margin-bottom:1rem}.copyright-line p{margin:.5rem 0;color:var(--text-secondary)}.tech-info{font-size:.875rem;color:var(--text-secondary)}.footer-links{display:flex;justify-content:center;gap:1rem;align-items:center;flex-wrap:wrap}.footer-links a{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .2s ease}.footer-links a:hover{color:var(--primary-dark)}.separator{color:var(--text-secondary)}.about-content{padding:1.5rem}.app-info{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.app-icon{font-size:3rem;flex-shrink:0}.app-details h4{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.app-tagline{color:var(--text-secondary);font-style:italic;margin:0}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.feature-card{background:var(--background);padding:1.5rem;border-radius:var(--border-radius);border:1px solid var(--border-color)}.feature-card h5{color:var(--text-primary);margin-bottom:.75rem;font-weight:600}.feature-card p{color:var(--text-secondary);margin:0;line-height:1.5}.development-info{background:var(--background);padding:1.5rem;border-radius:var(--border-radius);border:1px solid var(--border-color)}.development-info h5{color:var(--text-primary);margin-bottom:1rem;font-weight:600}.development-info p{color:var(--text-secondary);line-height:1.6;margin:0}.privacy-content{padding:1.5rem}.privacy-content h4{color:var(--text-primary);margin-bottom:1rem;margin-top:1.5rem;font-weight:600}.privacy-content h4:first-child{margin-top:0}.privacy-content p{color:var(--text-secondary);line-height:1.6;margin-bottom:1rem}.privacy-content a{color:var(--primary-color);text-decoration:none}.privacy-content a:hover{text-decoration:underline}@media (max-width: 768px){.app-footer{padding:2rem 1rem 1.5rem}.footer-content{grid-template-columns:1fr;gap:2rem}.studio-info{flex-direction:column;gap:1rem;text-align:center}.studio-logo{font-size:2rem}.studio-values{justify-content:center}.footer-links{flex-direction:column;gap:.5rem}.features-grid{grid-template-columns:1fr;gap:1rem}.app-info{flex-direction:column;text-align:center;gap:1rem}}@media (max-width: 480px){.app-footer{padding:1.5rem .75rem 1rem}.footer-brand h3{font-size:1.5rem}.footer-studio h4{font-size:1.125rem}.feature-card,.about-content,.privacy-content{padding:1rem}}
