*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#f0f2f5;color:#333}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#1a73e8,#0d47a1);color:#fff;padding:24px 32px;text-align:center}.header h1{font-size:28px;margin-bottom:8px}.subtitle{font-size:14px;opacity:.9}.tabs{display:flex;background:#fff;border-bottom:1px solid #e0e0e0;padding:0 32px}.tab{padding:14px 24px;border:none;background:none;font-size:15px;cursor:pointer;color:#666;border-bottom:3px solid transparent;transition:all .2s}.tab:hover{color:#1a73e8;background:#f5f9ff}.tab.active{color:#1a73e8;border-bottom-color:#1a73e8;font-weight:600}.main-content{flex:1;padding:24px 32px;max-width:1400px;margin:0 auto;width:100%}.query-section{display:flex;flex-direction:column;gap:20px}.filter-panel{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f}.filter-panel h3{font-size:18px;margin-bottom:16px;color:#1a73e8}.filter-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.filter-row label{font-weight:500;min-width:70px}.filter-row select,.filter-grid select{padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;min-width:160px}.filter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:16px}.filter-item{display:flex;flex-direction:column;gap:6px}.filter-item label{font-size:13px;font-weight:500;color:#555}.filter-item input,.filter-item select{padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;transition:border-color .2s}.filter-item input:focus,.filter-item select:focus{outline:none;border-color:#1a73e8;box-shadow:0 0 0 2px #1a73e81a}.range-query{background:#f8faff;border:1px solid #d4e4ff;border-radius:8px;padding:16px;margin-bottom:16px}.range-query h4{font-size:14px;color:#1a73e8;margin-bottom:12px}.range-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.range-row label{font-size:13px;font-weight:500;color:#555}.range-row input,.range-row select{padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;width:120px}.hint{font-size:12px;color:#888;margin-top:8px}.btn-row{display:flex;gap:12px}.btn{padding:10px 24px;border:none;border-radius:8px;font-size:15px;cursor:pointer;transition:all .2s;font-weight:500}.btn-primary{background:#1a73e8;color:#fff}.btn-primary:hover{background:#1557b0}.btn-primary:disabled{background:#a0c4f1;cursor:not-allowed}.btn-secondary{background:#f0f0f0;color:#555}.btn-secondary:hover{background:#e0e0e0}.result-panel{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.result-header h3{font-size:18px;color:#1a73e8}.result-count{font-size:13px;color:#888;background:#f0f2f5;padding:4px 12px;border-radius:12px}.table-wrapper{overflow-x:auto;max-height:600px;overflow-y:auto;border:1px solid #e8e8e8;border-radius:8px}table{width:100%;border-collapse:collapse;font-size:13px}thead{position:sticky;top:0;z-index:1}th{background:#f0f5ff;padding:12px 10px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #d4e4ff;white-space:nowrap}td{padding:10px;border-bottom:1px solid #f0f0f0;color:#555}tr:hover td{background:#f8faff}.empty-state{text-align:center;padding:60px 20px;color:#999;font-size:15px}.school-link{color:#1a73e8;text-decoration:none;cursor:pointer;font-weight:500;transition:all .2s;border-bottom:1px dashed #1a73e8;padding-bottom:1px}.school-link:hover{color:#0d47a1;border-bottom-style:solid;background:#f0f5ff}.matched-panel{border:2px solid #d4e4ff;background:#fafcff}.matched-panel .result-header h3{color:#0d47a1}.no-match{text-align:center;padding:30px 20px;color:#e67700;font-size:14px;background:#fff8e1;border-radius:8px;margin:8px 0}.remark-cell{max-width:300px;word-break:break-all;font-size:12px;color:#666}.chat-section{display:flex;flex-direction:column;gap:16px;height:calc(100vh - 200px)}.chat-container{flex:1;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px}.message{display:flex;gap:12px;margin-bottom:16px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.user{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;background:#f0f2f5;flex-shrink:0}.message-content{max-width:70%;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.6}.message.assistant .message-content{background:#f0f5ff;color:#333;border-top-left-radius:4px}.message.user .message-content{background:#1a73e8;color:#fff;border-top-right-radius:4px}.typing .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1a73e8;margin:0 2px;animation:bounce 1.4s infinite}.typing .dot:nth-child(2){animation-delay:.2s}.typing .dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}}.chat-input{display:flex;gap:12px;padding:16px 20px;border-top:1px solid #f0f0f0;background:#fafafa}.chat-input textarea{flex:1;padding:10px 14px;border:1px solid #d0d0d0;border-radius:8px;font-size:14px;resize:none;font-family:inherit;transition:border-color .2s}.chat-input textarea:focus{outline:none;border-color:#1a73e8}.chat-input button{padding:10px 20px;background:#1a73e8;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;font-weight:500;transition:background .2s;align-self:flex-end}.chat-input button:hover{background:#1557b0}.chat-input button:disabled{background:#a0c4f1;cursor:not-allowed}.quick-questions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.quick-questions h4{font-size:13px;color:#888;margin-right:4px}.quick-btn{padding:6px 14px;border:1px solid #d4e4ff;border-radius:16px;background:#fff;font-size:12px;color:#1a73e8;cursor:pointer;transition:all .2s}.quick-btn:hover{background:#f0f5ff;border-color:#1a73e8}@media(max-width:768px){.header{padding:16px}.header h1{font-size:22px}.main-content{padding:16px}.filter-grid{grid-template-columns:1fr}.range-row{flex-direction:column;align-items:flex-start}.message-content{max-width:85%}}
