@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@300;400;500;600;700&display=swap";.admission-system{min-height:100vh;background:radial-gradient(ellipse at top right,rgba(200,48,46,.03) 0%,transparent 50%),radial-gradient(ellipse at bottom left,rgba(26,26,26,.02) 0%,transparent 50%),#f5f5f0;font-family:"Noto Serif SC","Source Han Serif SC",serif;padding:20px}.admission-title{text-align:center;margin-bottom:48px;padding:48px 0}.admission-title h1{font-size:48px;font-weight:700;margin:0 0 16px;color:#1a1a1a;letter-spacing:.5em;text-indent:.5em;position:relative;display:inline-block}.admission-title h1:after{content:"";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:120px;height:4px;background:linear-gradient(to right,transparent,#c8302e,transparent)}.admission-title p{font-size:16px;color:#6b6b6b;margin:24px 0 0;letter-spacing:.05em}.search-form-card{background:#fafafa;border:1px solid rgba(0,0,0,.08);border-radius:2px;box-shadow:0 2px 12px #0000000f;overflow:hidden;margin-bottom:24px}.search-form-header{background:linear-gradient(135deg,#c8302e,#a82725);padding:18px 24px;color:#fafafa;font-size:18px;font-weight:600;letter-spacing:.1em;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid rgba(0,0,0,.1)}.search-form-body{padding:28px;background:#fafafa}.input-group{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.input-wrapper label{display:block;margin-bottom:10px;font-size:14px;font-weight:600;color:#2d2d2d;letter-spacing:.05em}.input-wrapper input{width:100%;padding:12px 16px;border:1px solid #d4d4d4;border-radius:2px;font-size:14px;font-family:"Noto Serif SC",serif;background:#fff;color:#1a1a1a;outline:none;transition:all .3s ease}.input-wrapper input:focus{border-color:#c8302e;box-shadow:0 0 0 3px #c8302e14}.input-wrapper input::placeholder{color:#a8a8a8}.filter-section{background:#f8f8f8;padding:20px;border-radius:2px;border:1px solid rgba(0,0,0,.05);margin-top:20px}.filter-group{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.filter-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#2d2d2d;padding:8px 14px;border-radius:2px;background:#fff;border:1px solid transparent;transition:all .2s ease;letter-spacing:.02em}.filter-checkbox:hover{background:#c8302e05;border-color:#c8302e1a}.filter-checkbox.active{background:#c8302e0d;color:#c8302e;border-color:#c8302e33}.filter-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#c8302e}.button-group{display:flex;gap:12px;margin-left:auto}.btn-ink{padding:10px 28px;font-family:"Noto Serif SC",serif;font-size:14px;font-weight:600;letter-spacing:.1em;border-radius:2px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:8px;border:1px solid;position:relative;overflow:hidden}.btn-ink:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width .5s ease,height .5s ease}.btn-ink:hover:before{width:300px;height:300px}.btn-primary{background:linear-gradient(to bottom,#06b6d4,#0891b2);color:#fafafa;border-color:#0891b2;box-shadow:0 2px 8px #0891b240}.btn-primary:hover{background:linear-gradient(to bottom,#0891b2,#0e7490);box-shadow:0 4px 12px #0891b259;transform:translateY(-1px)}.btn-secondary{background:linear-gradient(to bottom,#10b981,#059669);color:#fafafa;border-color:#059669;box-shadow:0 2px 8px #10b98140}.btn-secondary:hover{background:linear-gradient(to bottom,#059669,#047857);box-shadow:0 4px 12px #10b98159;transform:translateY(-1px)}.notice-card{background:#fff;border-radius:2px;padding:18px 24px;box-shadow:0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.06);margin-bottom:24px}.notice-header{display:flex;align-items:flex-start;gap:12px}.notice-badge{background:#fef3c7;color:#92400e;padding:6px 14px;border-radius:2px;font-size:13px;font-weight:700;letter-spacing:.05em;flex-shrink:0;border:1px solid rgba(146,64,14,.2)}.notice-content{font-size:14px;color:#475569;line-height:1.8;letter-spacing:.02em}.notice-content .highlight{font-weight:600;color:#c8302e}.sort-button{padding:12px 24px;background:#fff;color:#2d2d2d;border:1px solid #d4d4d4;border-radius:2px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:10px;box-shadow:0 2px 6px #0000000a;transition:all .3s ease;letter-spacing:.05em}.sort-button:hover{background:#f9f9f9;border-color:#a8a8a8;box-shadow:0 4px 10px #00000014}.group-card{background:#fff;border-radius:2px;margin-bottom:20px;overflow:hidden;box-shadow:0 2px 10px #0000000a;border:1px solid rgba(0,0,0,.06);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.group-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(to right,#c8302e,transparent);opacity:0;transition:opacity .3s ease}.group-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-3px)}.group-card:hover:before{opacity:1}.group-header{padding:18px 24px;cursor:pointer;transition:background .2s}.group-header:hover{background:#c8302e05}.school-tags{display:flex;gap:8px;flex-wrap:wrap}.school-tag{padding:3px 10px;border-radius:2px;font-size:12px;font-weight:600;letter-spacing:.02em;border:1px solid;background:#f4f4f5;color:#5a5a5a;border-color:#e3e3e3}.tag-985{background:#fdecec;color:#c8302e;border-color:#f3d0cf}.tag-211{background:#eef3fd;color:#2e5cc8;border-color:#d6e0f6}.tag-rank{background:#fdf6e3;color:#a16207;border-color:#f0e2b6}.tag-double-first,.tag-public,.tag-private,.tag-red{background:#f4f4f5;color:#5a5a5a;border-color:#e3e3e3}.data-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.data-card{padding:12px 16px;border-radius:2px;border:1px solid;transition:transform .2s ease}.data-card:hover{transform:translateY(-2px)}.data-card-label{font-size:12px;color:#6b6b6b;margin-bottom:4px;letter-spacing:.03em}.data-card-value{font-size:16px;font-weight:700;color:#1a1a1a;letter-spacing:.02em}.data-card-plan,.data-card-2025,.data-card-2024,.data-card-2023{background:#f5f5f5;border-color:#e2e2e2}.data-card-2025 .data-card-value{color:#1a1a1a}.major-table{width:100%;border-collapse:collapse;background:#fafafa;border-top:2px solid rgba(0,0,0,.08)}.major-table thead{background:linear-gradient(to bottom,#f8f8f8,#f0f0f0);border-bottom:2px solid #d4d4d4}.major-table th{padding:14px 12px;text-align:center;font-size:13px;font-weight:700;color:#2d2d2d;letter-spacing:.05em;border-bottom:2px solid #d4d4d4}.major-table tbody tr{transition:background .2s ease;border-bottom:1px solid rgba(0,0,0,.04)}.major-table tbody tr:hover{background:#c8302e05}.major-table td{padding:14px 12px;font-size:13px;color:#2d2d2d;text-align:center}.major-name-cell{text-align:left!important;font-weight:500}.highlight-cell{background:#fef2f2!important;font-weight:700;color:#c8302e!important}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:36px;padding:24px;background:#fff;border-radius:2px;box-shadow:0 2px 8px #0000000a;border:1px solid rgba(0,0,0,.06)}.pagination-button{padding:10px 20px;background:#fafafa;color:#2d2d2d;border:1px solid #d4d4d4;border-radius:2px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.05em}.pagination-button:hover:not(:disabled){background:#f0f0f0;border-color:#a8a8a8}.pagination-button:disabled{background:#f0f0f0;color:#a8a8a8;cursor:not-allowed}.page-number{min-width:40px;height:40px;padding:0 14px;background:#fff;color:#2d2d2d;border:1px solid #d4d4d4;border-radius:2px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.page-number:hover{background:#f9f9f9}.page-number.active{background:#c8302e;color:#fafafa;border-color:#c8302e}.page-info{margin-left:16px;padding:10px 20px;background:#f9f9f9;border-radius:2px;font-size:14px;color:#6b6b6b;letter-spacing:.02em}.page-info .count{font-weight:700;color:#2d2d2d;margin:0 4px}.ink-footer{background:#1a1a1a;color:#fafafa;padding:28px;text-align:center;margin-top:48px;border-top:4px solid #c8302e;border-radius:2px 2px 0 0}.ink-footer-text{font-size:14px;letter-spacing:.05em;opacity:.9}.empty-state{background:#fff;border-radius:2px;padding:80px;text-align:center;box-shadow:0 4px 16px #0000000f;border:1px solid rgba(0,0,0,.06)}.empty-icon{font-size:72px;margin-bottom:20px}.empty-title{font-size:24px;color:#2d2d2d;margin-bottom:12px;font-weight:600;letter-spacing:.05em}.empty-description{font-size:15px;color:#a8a8a8;letter-spacing:.02em}.loading-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:#f5f5f0}.loading-spinner{width:64px;height:64px;border:4px solid rgba(0,0,0,.08);border-top-color:#c8302e;border-radius:50%;animation:spin 1s cubic-bezier(.4,0,.2,1) infinite;margin:0 auto 24px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:18px;color:#2d2d2d;font-weight:500;text-align:center;letter-spacing:.05em}@media (max-width: 768px){.admission-title h1{font-size:32px}.input-group{grid-template-columns:1fr}.button-group{width:100%;margin-left:0;margin-top:12px}.btn-ink{flex:1}.data-cards{grid-template-columns:1fr}.major-table{font-size:12px}.major-table th,.major-table td{padding:10px 8px}}.add-plan-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#c8302e;color:#fff;border:none;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.add-plan-btn:hover{background:#a82624}.add-plan-btn.in-plan{background:#fff;color:#1a8a4a;border:1px solid #b8e6c8}.add-plan-btn.in-plan:hover{background:#eafaf0}.atp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.atp-modal{width:100%;max-width:640px;max-height:85vh;background:#fff;border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000040}.atp-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 22px;border-bottom:1px solid rgba(0,0,0,.07)}.atp-title{font-size:18px;font-weight:700;color:#1a1a1a}.atp-sub{font-size:13px;color:#8a8a8a;margin-top:4px}.atp-close{background:none;border:none;cursor:pointer;color:#8a8a8a}.atp-close:hover{color:#c8302e}.atp-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;background:#faf8f5}.atp-count{font-size:13px;color:#6b6b6b}.atp-count b{color:#c8302e;font-size:15px}.atp-toolbar-actions{display:flex;gap:14px}.atp-link{background:none;border:none;color:#c8302e;cursor:pointer;font-size:13px;font-weight:600}.atp-link:hover{text-decoration:underline}.atp-list{overflow-y:auto;padding:8px 14px;flex:1}.atp-empty{text-align:center;color:#a8a8a8;padding:30px}.atp-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:8px;cursor:pointer;border:1px solid transparent}.atp-item:hover{background:#faf8f5}.atp-item.on{background:#c8302e0d;border-color:#c8302e40}.atp-item.disabled{opacity:.45;cursor:not-allowed}.atp-check{width:20px;height:20px;border-radius:5px;border:1.5px solid #cfcac3;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.atp-item.on .atp-check{background:#c8302e;border-color:#c8302e}.atp-code{font-size:13px;color:#8a8a8a;font-weight:600;width:48px;flex-shrink:0}.atp-name{font-size:14px;color:#1a1a1a;font-weight:500;flex:1}.atp-score{font-size:12px;color:#8a8a8a;flex-shrink:0}.atp-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 22px;border-top:1px solid rgba(0,0,0,.07)}.atp-btn-cancel{padding:10px 20px;background:#fff;border:1px solid #d8d4ce;border-radius:8px;cursor:pointer;font-size:14px;color:#4a4a4a}.atp-btn-confirm{padding:10px 22px;background:#c8302e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600}.atp-btn-confirm:disabled{opacity:.5;cursor:not-allowed}.pf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.pf-modal{background:#fff;border-radius:14px;width:100%;max-width:460px;padding:24px}.pf-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.pf-head h2{font-size:20px;font-weight:700;margin:0 0 4px;color:#1a1a1a}.pf-head p{font-size:12px;color:#8a8a8a;margin:0}.pf-close{background:none;border:none;cursor:pointer;color:#8a8a8a;padding:4px}.pf-close:hover{color:#1a1a1a}.pf-err{background:#fdecec;color:#c8302e;border:1px solid #f6d4d4;border-radius:8px;padding:8px 12px;font-size:13px;margin-bottom:12px}.pf-field{margin-bottom:16px;flex:1}.pf-field>label{display:block;font-size:13px;color:#4a4a4a;font-weight:600;margin-bottom:8px}.pf-count{color:#c8302e;margin-left:6px;font-size:12px}.pf-seg{display:flex;gap:8px}.pf-seg-btn{flex:1;padding:10px;border:1px solid #e0dcd6;border-radius:9px;background:#fff;cursor:pointer;font-size:14px;font-weight:600;color:#4a4a4a}.pf-seg-btn.on{background:#c8302e;color:#fff;border-color:#c8302e}.pf-chips{display:flex;gap:8px;flex-wrap:wrap}.pf-chip{padding:8px 16px;border:1px solid #e0dcd6;border-radius:9px;background:#fff;cursor:pointer;font-size:14px;color:#4a4a4a}.pf-chip.on{background:#c8302e;color:#fff;border-color:#c8302e}.pf-chip.disabled{opacity:.4;cursor:not-allowed}.pf-row{display:flex;gap:12px}.pf-year{max-width:90px}.pf-field input{width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;border:1px solid #e0dcd6;border-radius:9px}.pf-field input:focus{outline:none;border-color:#c8302e}.pf-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.pf-btn{padding:9px 20px;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid #e0dcd6;background:#fff;color:#4a4a4a}.pf-btn.ghost:hover{border-color:#c8302e;color:#c8302e}.pf-btn.primary{background:#c8302e;color:#fff;border-color:#c8302e}.pf-btn.primary:hover{background:#b02824}.pf-btn:disabled{opacity:.55;cursor:not-allowed}.grade-bar{display:flex;align-items:center;flex-wrap:wrap;gap:14px;background:#fff;border:1px solid rgba(0,0,0,.08);border-left:4px solid #c8302e;border-radius:10px;padding:12px 18px;margin-bottom:16px}.grade-bar.unfilled{border-left-color:#e0a800;background:#fffdf5}.grade-ico{display:inline-flex;color:#c8302e}.grade-cat{background:#eef3fd;color:#2e5cc8;font-weight:700;font-size:13px;padding:3px 10px;border-radius:6px}.grade-cat.history{background:#fdeeed;color:#c8302e}.grade-item{font-size:14px;color:#4a4a4a}.grade-item b{color:#1a1a1a;font-size:16px}.grade-subjects{display:flex;align-items:center;gap:6px;font-size:13px;color:#6b6b6b}.grade-sub{background:#f0f0f0;color:#6b6b6b;border-radius:5px;padding:2px 7px;font-size:12px}.grade-year{font-size:12px;color:#a8a8a8}.grade-edit{margin-left:auto;display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid #e0dcd6;border-radius:7px;padding:5px 12px;font-size:13px;color:#6b6b6b;cursor:pointer}.grade-edit:hover{border-color:#c8302e;color:#c8302e}.grade-edit.primary{background:#c8302e;color:#fff;border-color:#c8302e}.grade-warn{display:inline-flex;align-items:center;gap:5px;color:#b8860b;font-size:14px;font-weight:600}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#faf8f5,#f0ece6);padding:24px}.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;box-shadow:0 10px 40px #00000014;padding:36px 32px}.auth-title{font-size:24px;font-weight:700;color:#1a1a1a;margin:0 0 6px;text-align:center}.auth-sub{font-size:13px;color:#8a8a8a;text-align:center;margin:0 0 28px}.auth-field{margin-bottom:16px}.auth-field label{display:block;font-size:13px;color:#4a4a4a;font-weight:600;margin-bottom:6px}.auth-field input{width:100%;box-sizing:border-box;padding:11px 13px;border:1px solid #d8d4ce;border-radius:8px;font-size:14px;transition:border-color .2s}.auth-field input:focus{outline:none;border-color:#c8302e}.auth-btn{width:100%;padding:12px;background:#c8302e;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.auth-btn:hover{background:#a82624}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:#fdecec;color:#c8302e;border:1px solid #f5c6c5;padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:16px}.auth-success{background:#eafaf0;color:#1a8a4a;border:1px solid #b8e6c8;padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:16px}.auth-foot{margin-top:20px;text-align:center;font-size:13px;color:#6b6b6b}.auth-foot a,.auth-link{color:#c8302e;text-decoration:none;font-weight:600;cursor:pointer;background:none;border:none;font-size:13px}.auth-foot a:hover,.auth-link:hover{text-decoration:underline}.auth-row-between{display:flex;justify-content:space-between;align-items:center}.auth-hint{font-size:13px;color:#8a8a8a}.auth-brand{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:700;color:#1a1a1a;margin-bottom:14px}.auth-seal{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#c8302e;color:#fff;border-radius:6px;font-size:16px}.pdf-root{width:794px;box-sizing:border-box;padding:32px 36px;background:#fff;color:#1a1a1a;font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:12px;line-height:1.5}.pdf-header{border-bottom:2px solid #c8302e;padding-bottom:10px;margin-bottom:18px}.pdf-brand{font-size:13px;font-weight:700;color:#c8302e;letter-spacing:1px;margin-bottom:4px}.pdf-header h1{font-size:20px;font-weight:700;margin:0 0 4px}.pdf-sub{font-size:12px;color:#555}.pdf-grade{display:flex;flex-wrap:wrap;gap:16px;align-items:center;background:#faf2f1;border:1px solid #e6cfce;border-radius:6px;padding:8px 14px;margin-bottom:16px;font-size:13px;color:#444}.pdf-grade b{color:#1a1a1a}.pdf-grade-cat{background:#c8302e;color:#fff;font-weight:700;padding:2px 10px;border-radius:4px}.pdf-school{margin-bottom:18px;page-break-inside:avoid}.pdf-school-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.pdf-num{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#c8302e;color:#fff;border-radius:4px;font-size:12px;font-weight:700}.pdf-school-name{font-size:16px;font-weight:700}.pdf-tags{display:flex;flex-wrap:wrap;gap:5px}.pdf-tag{font-size:11px;border:1px solid #d4d4d4;border-radius:4px;padding:1px 6px;color:#555}.pdf-school-meta{font-size:11px;color:#666;margin:4px 0 8px}.pdf-group{border:1px solid #ddd;border-radius:6px;padding:8px 10px;margin-bottom:10px;page-break-inside:avoid}.pdf-group-title{font-size:13px;font-weight:700;margin-bottom:6px;display:flex;flex-wrap:wrap;gap:12px;align-items:baseline}.pdf-sel{font-size:11px;font-weight:600;color:#2e5cc8}.pdf-grp-data{width:100%;border-collapse:collapse;margin-bottom:8px}.pdf-grp-data td{border:1px solid #eee;padding:3px 6px;font-size:11px;color:#444;text-align:center}.pdf-major-table{width:100%;border-collapse:collapse}.pdf-major-table th{background:#faf2f1;border:1px solid #e6cfce;padding:4px 5px;font-size:11px;font-weight:600;color:#333}.pdf-major-table td{border:1px solid #eee;padding:4px 5px;font-size:11px;text-align:center;color:#333}.pdf-major-table td.pdf-mname{text-align:left;font-weight:600}.pdf-none{color:#999}.pdf-footer{text-align:center;color:#999;font-size:11px;margin-top:20px}.cart-page{max-width:1280px;margin:0 auto;padding:28px 20px 60px}.cart-head h1{font-size:26px;font-weight:700;color:#1a1a1a;margin:0 0 6px}.cart-head p{font-size:14px;color:#8a8a8a;margin:0 0 20px}.cart-head b{color:#c8302e}.cart-empty{text-align:center;padding:60px 20px;color:#8a8a8a;background:#fff;border:1px dashed #d8d4ce;border-radius:12px}.cart-link{color:#c8302e;font-weight:600;text-decoration:none;margin:0 4px}.cart-link:hover{text-decoration:underline}.plan-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.plan-tab{display:flex;align-items:center;gap:7px;padding:9px 16px;background:#fff;border:1px solid #e0dcd6;border-radius:9px;font-size:14px;font-weight:600;color:#4a4a4a;cursor:pointer}.plan-tab:hover{border-color:#c8302e}.plan-tab.active{background:#c8302e;color:#fff;border-color:#c8302e}.plan-tab-count{background:#00000014;color:inherit;border-radius:10px;padding:1px 8px;font-size:12px}.plan-tab.active .plan-tab-count{background:#ffffff40}.plan-tab.new{color:#c8302e;border-style:dashed}.plan-actions{display:flex;align-items:center;gap:10px;margin-bottom:18px}.plan-save-hint{font-size:13px;color:#8a8a8a;display:inline-flex;align-items:center;gap:5px}.plan-act{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;background:#fff;border:1px solid #e0dcd6;border-radius:8px;font-size:13px;color:#4a4a4a;cursor:pointer}.plan-act:hover,.plan-act.danger:hover{border-color:#c8302e;color:#c8302e}.plan-act.export{background:#c8302e;color:#fff;border-color:#c8302e}.plan-act.export:hover{background:#b02824}.plan-act:disabled{opacity:.55;cursor:not-allowed}.plan-item-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;margin-bottom:12px;padding:4px 16px 14px}.pi-bar{display:flex;align-items:center;gap:10px;padding:12px 0 8px;flex-wrap:wrap}.pi-group{font-size:14px;font-weight:600;color:#c8302e}.pi-body{border-top:1px solid rgba(0,0,0,.05);padding-top:8px;margin-top:4px}.school-block{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;margin-bottom:14px;overflow:hidden}.school-bar{display:flex;align-items:center;gap:12px;padding:14px 16px}.school-index{width:26px;height:26px;background:#c8302e;color:#fff;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.school-name{font-size:17px;font-weight:700;color:#1a1a1a}.school-tags-mini{display:flex;gap:6px}.school-meta{margin-left:auto;font-size:13px;color:#8a8a8a}.group-meta,.group-score{font-size:12px;color:#8a8a8a}.mini-tag{font-size:11px;padding:2px 7px;border-radius:5px;background:#f0f0f0;color:#6b6b6b;font-weight:600}.mini-tag.t985{background:#fdecec;color:#c8302e}.mini-tag.t211{background:#eef3fd;color:#2e5cc8}.school-body{padding:4px 16px 16px;border-top:1px solid rgba(0,0,0,.05)}.group-block{background:#faf8f5;border:1px solid rgba(0,0,0,.06);border-radius:9px;margin:10px 0}.group-bar{display:flex;align-items:center;gap:10px;padding:10px 12px}.group-index{width:22px;height:22px;background:#6b6b6b;color:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.group-title{font-size:14px;font-weight:600;color:#1a1a1a}.group-meta{margin-left:auto}.group-body{padding:4px 12px 12px}.plan-data-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.plan-data-card{flex:1;min-width:150px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:8px;padding:8px 12px}.plan-data-card.sel{background:#eef3fd;border-color:#d3e0f7}.plan-data-card.y25{background:#fdecec;border-color:#f6d4d4}.pd-label{font-size:11px;color:#8a8a8a;margin-bottom:3px}.pd-value{font-size:13px;font-weight:700;color:#1a1a1a}.major-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:7px;margin:6px 0}.major-mini{font-size:12px;color:#6b6b6b;white-space:nowrap}.major-hist{display:flex;gap:10px;margin-left:auto;flex-wrap:wrap}.mh{font-size:12px;color:#8a8a8a;white-space:nowrap}.mh.y25{color:#c8302e;font-weight:600}.major-index{width:20px;height:20px;background:#e8e4de;color:#6b6b6b;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.major-code{font-size:12px;color:#8a8a8a;font-weight:600;width:44px}.major-name{font-size:14px;color:#1a1a1a;flex:1}.major-score{font-size:12px;color:#8a8a8a}.drag-handle{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#b8b2aa;cursor:grab;padding:2px;flex-shrink:0;touch-action:none}.drag-handle:active{cursor:grabbing}.icon-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:#8a8a8a;cursor:pointer;padding:4px}.icon-btn:hover{color:#1a1a1a}.icon-btn.danger:hover{color:#c8302e}.add-inline{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:#fff;border:1px dashed #c8302e;border-radius:7px;font-size:13px;color:#c8302e;font-weight:600;cursor:pointer}.add-inline:hover{background:#fdecec}.add-group-wrap{position:relative;margin-top:6px}.add-group-panel{margin-top:8px;background:#fff;border:1px solid #e0dcd6;border-radius:9px;padding:6px;max-height:260px;overflow-y:auto}.add-group-empty{padding:14px;text-align:center;color:#a8a8a8;font-size:13px}.add-group-option{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 12px;background:none;border:none;border-radius:7px;cursor:pointer;font-size:13px;color:#1a1a1a;text-align:left}.add-group-option:hover{background:#faf8f5}.add-group-opt-meta{font-size:12px;color:#8a8a8a}.admin-page{max-width:1100px;margin:0 auto;padding:28px 20px 60px}.admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.admin-head h1{font-size:26px;font-weight:700;color:#1a1a1a;margin:0 0 6px}.admin-head p{font-size:14px;color:#8a8a8a;margin:0}.admin-head-actions{display:flex;gap:10px}.admin-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid #e0dcd6;background:#fff;color:#4a4a4a}.admin-btn.ghost:hover{border-color:#c8302e;color:#c8302e}.admin-btn.primary{background:#c8302e;color:#fff;border-color:#c8302e}.admin-btn.primary:hover{background:#b02824}.admin-btn:disabled{opacity:.55;cursor:not-allowed}.admin-error{background:#fdecec;color:#c8302e;border:1px solid #f6d4d4;border-radius:9px;padding:10px 14px;margin-bottom:14px;font-size:14px}.admin-table-wrap{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;overflow:hidden}.admin-table{width:100%;border-collapse:collapse}.admin-table th{text-align:left;font-size:13px;color:#8a8a8a;font-weight:600;padding:12px 14px;background:#faf8f5;border-bottom:1px solid rgba(0,0,0,.06)}.admin-table td{font-size:14px;color:#1a1a1a;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.05)}.admin-table tr:last-child td{border-bottom:none}.admin-empty{text-align:center;color:#a8a8a8;padding:40px 0}.admin-date{color:#8a8a8a;font-size:13px}.admin-self{display:inline-block;margin-left:8px;font-size:11px;color:#c8302e;background:#fdecec;padding:1px 7px;border-radius:5px;font-weight:600}.role-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:6px;background:#f0f0f0;color:#6b6b6b}.role-badge.admin{background:#fdecec;color:#c8302e}.icon-act{background:none;border:none;cursor:pointer;color:#8a8a8a;padding:5px;border-radius:6px}.icon-act:hover{color:#1a1a1a;background:#f4f1ec}.icon-act.danger:hover{color:#c8302e}.icon-act:disabled{opacity:.3;cursor:not-allowed}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.admin-modal{background:#fff;border-radius:14px;width:100%;max-width:420px;padding:22px}.admin-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-modal-head h2{font-size:19px;font-weight:700;margin:0;color:#1a1a1a}.admin-close{background:none;border:none;cursor:pointer;color:#8a8a8a;padding:4px}.admin-close:hover{color:#1a1a1a}.admin-field{margin-bottom:14px}.admin-field label{display:block;font-size:13px;color:#6b6b6b;margin-bottom:6px;font-weight:600}.admin-field input,.admin-field select{width:100%;box-sizing:border-box;padding:10px 12px;font-size:14px;border:1px solid #e0dcd6;border-radius:9px;background:#fff;color:#1a1a1a}.admin-field input:focus,.admin-field select:focus{outline:none;border-color:#c8302e}.admin-modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.topnav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:60px;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.07)}.topnav-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;color:#1a1a1a;text-decoration:none}.topnav-seal{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:#c8302e;color:#fff;border-radius:6px;font-size:16px}.topnav-right{display:flex;align-items:center;gap:16px}.topnav-cart{position:relative;display:flex;align-items:center;gap:7px;padding:8px 14px;background:#fff;border:1px solid #e0dcd6;border-radius:8px;font-size:14px;font-weight:600;color:#4a4a4a;cursor:pointer;transition:all .2s}.topnav-cart:hover{border-color:#c8302e;color:#c8302e}.topnav-badge{position:absolute;top:-8px;right:-8px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;background:#c8302e;color:#fff;border-radius:10px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.topnav-user{display:flex;align-items:center;gap:10px}.topnav-username{display:flex;align-items:center;gap:5px;font-size:14px;color:#4a4a4a;font-weight:600}.topnav-logout{display:flex;align-items:center;background:none;border:none;color:#8a8a8a;cursor:pointer;padding:4px}.topnav-logout:hover{color:#c8302e}.topnav-login{padding:8px 16px;background:#c8302e;color:#fff;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none}.topnav-login:hover{background:#a82624}.site-footer{display:flex;flex-direction:column;align-items:center;gap:10px;padding:26px 16px 32px;margin-top:48px;border-top:1px solid rgba(0,0,0,.08);background:#faf8f5}.footer-copy{font-size:13px;color:#9a948c;letter-spacing:.02em}.footer-beian{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:14px}.beian-link{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:#5a5a5a;font-weight:500;text-decoration:none;transition:color .2s ease}.beian-link:hover{color:#c8302e}.footer-divider{width:1px;height:14px;background:#00000026}.gongan-badge{flex-shrink:0;width:18px;height:18px;object-fit:contain;vertical-align:middle}@tailwind base;@tailwind components;@tailwind utilities;:root{--ink-black: #1a1a1a;--ink-dark: #2d2d2d;--ink-gray: #6b6b6b;--ink-light: #a8a8a8;--ink-pale: #d4d4d4;--paper-white: #fafafa;--paper-cream: #f5f5f0;--cinnabar-red: #c8302e;--vermilion-red: #d9534f;--light-red: #e8a5a3;--border-ink: 1px solid rgba(0, 0, 0, .08);--shadow-light: 0 2px 8px rgba(0, 0, 0, .04);--shadow-medium: 0 4px 16px rgba(0, 0, 0, .08);--shadow-heavy: 0 8px 24px rgba(0, 0, 0, .12)}body{font-family:"Noto Serif SC","Source Han Serif SC",STSong,SimSun,serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;background:var(--paper-cream);color:var(--ink-black);line-height:1.8}i{display:none}.ink-gradient-bg{background:linear-gradient(135deg,var(--paper-white) 0%,var(--paper-cream) 50%,#ebebeb 100%)}.ink-wash-bg{background:radial-gradient(ellipse at top,rgba(200,48,46,.03) 0%,transparent 50%),radial-gradient(ellipse at bottom,rgba(26,26,26,.02) 0%,transparent 50%),var(--paper-cream)}h1,h2,h3,h4,h5,h6{font-family:"Noto Serif SC",serif;font-weight:600;color:var(--ink-black);letter-spacing:.05em}h1{font-size:2.5rem;font-weight:700;position:relative;display:inline-block}h1:after{content:"";position:absolute;bottom:-8px;left:0;width:60%;height:3px;background:linear-gradient(to right,var(--cinnabar-red),transparent);opacity:.6}.ink-card{background:var(--paper-white);border:var(--border-ink);border-radius:2px;box-shadow:var(--shadow-light);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.ink-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--cinnabar-red),transparent);opacity:0;transition:opacity .3s ease}.ink-card:hover{box-shadow:var(--shadow-medium);transform:translateY(-2px)}.ink-card:hover:before{opacity:1}.ink-button{font-family:"Noto Serif SC",serif;padding:10px 24px;background:var(--paper-white);color:var(--ink-black);border:1px solid var(--ink-gray);border-radius:2px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;letter-spacing:.1em;position:relative;overflow:hidden}.ink-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#c8302e1a;transform:translate(-50%,-50%);transition:width .4s ease,height .4s ease}.ink-button:hover:before{width:300px;height:300px}.ink-button:hover{border-color:var(--cinnabar-red);color:var(--cinnabar-red)}.ink-button-primary{background:var(--cinnabar-red);color:var(--paper-white);border-color:var(--cinnabar-red)}.ink-button-primary:hover{background:#a82725;border-color:#a82725;color:var(--paper-white)}.ink-tag{display:inline-block;padding:4px 12px;font-size:12px;font-weight:500;letter-spacing:.05em;border-radius:2px;background:var(--paper-white);color:var(--ink-gray);border:1px solid var(--ink-pale);transition:all .2s ease}.ink-tag-red{background:#c8302e0d;color:var(--cinnabar-red);border-color:#c8302e33}.ink-tag-dark{background:var(--ink-black);color:var(--paper-white);border-color:var(--ink-black)}.ink-table{width:100%;background:var(--paper-white);border-collapse:separate;border-spacing:0;border:var(--border-ink);font-size:14px}.ink-table thead{background:linear-gradient(to bottom,#f8f8f8,#f0f0f0);border-bottom:2px solid var(--ink-pale)}.ink-table th{padding:14px 16px;text-align:left;font-weight:600;color:var(--ink-black);letter-spacing:.05em;border-bottom:2px solid var(--ink-pale)}.ink-table tbody tr{transition:background .2s ease;border-bottom:1px solid rgba(0,0,0,.04)}.ink-table tbody tr:hover{background:#c8302e05}.ink-table td{padding:12px 16px;color:var(--ink-dark)}.ink-table tbody tr:last-child{border-bottom:none}.ink-input{width:100%;padding:10px 14px;background:var(--paper-white);border:1px solid var(--ink-pale);border-radius:2px;font-family:"Noto Serif SC",serif;font-size:14px;color:var(--ink-black);outline:none;transition:all .3s ease}.ink-input:focus{border-color:var(--cinnabar-red);box-shadow:0 0 0 2px #c8302e1a}.ink-input::placeholder{color:var(--ink-light)}.ink-divider{height:1px;background:linear-gradient(to right,transparent,var(--ink-pale) 20%,var(--ink-pale) 80%,transparent);margin:24px 0;border:none}.ink-divider-red{background:linear-gradient(to right,transparent,rgba(200,48,46,.3) 20%,rgba(200,48,46,.3) 80%,transparent)}@keyframes fadeInInk{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpInk{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes inkSpread{0%{opacity:0;transform:scale(.8);filter:blur(4px)}50%{opacity:.5;filter:blur(2px)}to{opacity:1;transform:scale(1);filter:blur(0)}}.animate-fade-in-ink{animation:fadeInInk .6s cubic-bezier(.4,0,.2,1)}.animate-slide-up-ink{animation:slideUpInk .8s cubic-bezier(.4,0,.2,1)}.animate-ink-spread{animation:inkSpread 1s cubic-bezier(.4,0,.2,1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--paper-cream);border-left:1px solid rgba(0,0,0,.05)}::-webkit-scrollbar-thumb{background:var(--ink-light);border-radius:4px;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:var(--ink-gray)}.ink-header{background:var(--paper-white);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 2px 8px #0000000a}.ink-footer{background:var(--ink-black);color:var(--paper-white);border-top:3px solid var(--cinnabar-red)}.container-responsive{width:100%;margin:0 auto;padding:0 1rem}@media (min-width: 640px){.container-responsive{max-width:640px;padding:0 1.5rem}}@media (min-width: 768px){.container-responsive{max-width:768px;padding:0 2rem}}@media (min-width: 1024px){.container-responsive{max-width:1024px;padding:0 3rem}}@media (min-width: 1280px){.container-responsive{max-width:1280px;padding:0 4rem}}.ink-seal{display:inline-block;padding:8px 12px;background:var(--cinnabar-red);color:var(--paper-white);font-size:13px;font-weight:600;letter-spacing:.1em;border:2px solid var(--cinnabar-red);border-radius:2px;box-shadow:inset 0 0 10px #0003}.ink-texture{position:relative;background:var(--paper-white)}.ink-texture:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 30%,rgba(0,0,0,.01) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(0,0,0,.01) 0%,transparent 50%);pointer-events:none}.ink-vertical-text{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.2em}.ink-loader{display:inline-block;width:50px;height:50px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--cinnabar-red);border-radius:50%;animation:ink-spin 1s cubic-bezier(.4,0,.2,1) infinite}@keyframes ink-spin{to{transform:rotate(360deg)}}.ink-alert{padding:14px 18px;border-left:3px solid var(--cinnabar-red);background:#c8302e0d;color:var(--ink-black);font-size:14px;line-height:1.6;border-radius:2px}.ink-alert-info{border-left-color:var(--ink-gray);background:#6b6b6b0d}.ink-tooltip{position:relative;display:inline-block;cursor:help}.ink-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:6px 12px;background:var(--ink-black);color:var(--paper-white);font-size:12px;white-space:nowrap;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .3s ease;margin-bottom:8px}.ink-tooltip:hover:after{opacity:1}
