:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:#4a6cf7;text-decoration:none}a:hover{text-decoration:underline}.knowledge-list{padding:20px}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.list-header h2{margin:0;font-size:1.5rem;color:#1a1a2e}.filter-buttons{display:flex;gap:8px}.filter-buttons button{padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s;font-size:.9rem}.filter-buttons button:hover{background:#f5f5f5}.filter-buttons button.active{background:#4a6cf7;color:#fff;border-color:#4a6cf7}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.knowledge-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.knowledge-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.knowledge-card.has-knowledge{border-color:#10b981}.knowledge-card.no-knowledge{border-color:#f59e0b;opacity:.7}.knowledge-card.no-knowledge:hover{opacity:1}.card-image{position:relative;width:100%;aspect-ratio:1;background:#f5f5f5;overflow:hidden}.card-image img{width:100%;height:100%;object-fit:cover}.loading-overlay{position:absolute;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:#666}.card-content{padding:12px}.card-id{font-size:.75rem;color:#888;margin-bottom:4px}.card-title{font-size:.9rem;font-weight:600;color:#1a1a2e;margin-bottom:8px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;gap:8px;font-size:.8rem}.annotation-count{color:#4a6cf7}.has-audio{color:#10b981}.knowledge-editor{display:flex;flex-direction:column;height:calc(100vh - 80px)}.editor-loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.2rem;color:#666}.editor-toolbar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:#fff;border-bottom:1px solid #eee;flex-shrink:0}.btn-back{padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem}.btn-back:hover{background:#f5f5f5}.toolbar-title{flex:1;font-size:1.1rem;font-weight:600}.storage-id{color:#888;font-weight:400;margin-right:8px}.toolbar-actions{display:flex;gap:8px}.btn-generate,.btn-regenerate,.btn-save{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500}.btn-generate{background:#4a6cf7;color:#fff}.btn-regenerate{background:#f5f5f5;color:#333}.btn-save{background:#10b981;color:#fff}.btn-generate:disabled,.btn-regenerate:disabled{opacity:.6;cursor:not-allowed}.editor-content{display:flex;flex:1;overflow:hidden}.editor-image-container{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#1a1a2e;overflow:hidden;-webkit-user-select:none;user-select:none}.editor-image-container.add-mode{cursor:crosshair}.editor-image{max-width:100%;max-height:100%;object-fit:contain}.annotation-point{position:absolute;width:32px;height:32px;margin-left:-16px;margin-top:-16px;background:#4a6cf7e6;border:3px solid white;border-radius:50%;cursor:grab;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff;box-shadow:0 2px 8px #0000004d;transition:transform .15s,background .15s;z-index:10}.annotation-point:hover{transform:scale(1.15)}.annotation-point.selected{background:#f59e0b;transform:scale(1.2);z-index:20}.annotation-point.has-audio{border-color:#10b981}.annotation-point:active{cursor:grabbing}.point-number{pointer-events:none}.add-mode-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:12px 24px;border-radius:8px;font-size:.9rem}.editor-sidebar{width:360px;background:#fff;border-left:1px solid #eee;overflow-y:auto;flex-shrink:0}.sidebar-section{padding:16px;border-bottom:1px solid #eee}.sidebar-section h3{margin:0 0 12px;font-size:.9rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h3{margin:0}.btn-add{padding:4px 12px;border:1px solid #4a6cf7;background:#fff;color:#4a6cf7;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-add.active{background:#4a6cf7;color:#fff}.input-title{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:1rem;font-weight:600;margin-bottom:8px}.input-description,.annotation-editor textarea{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:.9rem;resize:vertical;font-family:inherit}.no-knowledge-hint{color:#888;font-size:.9rem;margin:0}.annotations-list{display:flex;flex-direction:column;gap:4px}.annotation-item{padding:10px;background:#f8f9fa;border-radius:6px;cursor:pointer;transition:background .15s}.annotation-item:hover{background:#eef1f5}.annotation-item.selected{background:#e8f0fe;border-left:3px solid #4a6cf7}.annotation-header{display:flex;align-items:center;gap:8px}.annotation-number{width:20px;height:20px;background:#4a6cf7;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.annotation-label{flex:1;font-size:.9rem;font-weight:500}.audio-badge{font-size:.8rem}.annotation-editor label{display:block;margin:12px 0 4px;font-size:.8rem;color:#666;font-weight:500}.annotation-editor input{width:100%;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:.9rem}.position-display{padding:8px;background:#f5f5f5;border-radius:4px;font-family:monospace;font-size:.85rem;color:#666}.annotation-actions{display:flex;gap:8px;margin-top:16px}.btn-tts{flex:1;padding:8px 12px;border:none;background:#4a6cf7;color:#fff;border-radius:6px;cursor:pointer;font-size:.85rem}.btn-tts:disabled{opacity:.6;cursor:not-allowed}.btn-delete{padding:8px 12px;border:1px solid #ef4444;background:#fff;color:#ef4444;border-radius:6px;cursor:pointer;font-size:.85rem}.btn-delete:hover{background:#fef2f2}.audio-player{margin-top:12px}.audio-player audio{width:100%}.tts-section{background:#f8f9fa}.btn-tts-all{width:100%;padding:12px;border:none;background:#10b981;color:#fff;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:500}.btn-tts-all:disabled{opacity:.6;cursor:not-allowed}.tts-hint{margin:8px 0 0;font-size:.8rem;color:#666}.view-toggle{display:flex;background:#f0f0f0;border-radius:8px;padding:2px;margin-right:8px}.toggle-btn{padding:6px 12px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;color:#666;transition:all .2s}.toggle-btn:hover{color:#333}.toggle-btn.active{background:#fff;color:#4a6cf7;box-shadow:0 1px 3px #0000001a}.editor-3d-container{flex:1;position:relative;background:#1a1a2e;overflow:hidden}.model-badge{margin-top:12px;padding:8px 12px;background:linear-gradient(135deg,#4a6cf7,#7c3aed);color:#fff;border-radius:6px;font-size:.85rem;font-weight:500;text-align:center}.badge-3d{padding:2px 6px;background:linear-gradient(135deg,#4a6cf7,#7c3aed);color:#fff;border-radius:4px;font-size:.65rem;font-weight:700}@media(max-width:900px){.editor-content{flex-direction:column}.editor-sidebar{width:100%;max-height:50vh}.view-toggle{margin-right:0;margin-bottom:8px}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#f5f7fa;color:#1a1a2e}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:16px;padding:16px 24px;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff}.app-header h1{margin:0;font-size:1.4rem;font-weight:600}.app-header .subtitle{font-size:.9rem;opacity:.7}.app-main{flex:1;display:flex;flex-direction:column}button{font-family:inherit}button:hover{opacity:.9}input,textarea{font-family:inherit}input:focus,textarea:focus{outline:none;border-color:#4a6cf7}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}
