:root{--bg: #f2f5fb;--bg-card: #ffffff;--bg-card-hover: #fafafa;--bg-elevated: rgba(255, 255, 255, .72);--bg-frost: rgba(255, 255, 255, .65);--bg-header: rgba(249, 251, 255, .9);--line: rgba(0, 0, 0, .06);--line-strong: rgba(0, 0, 0, .1);--line-focus: rgba(0, 122, 255, .35);--text: #1d1d1f;--text-secondary: #6e6e73;--text-tertiary: #86868b;--text-white: #ffffff;--accent: #5b5ce2;--accent-light: rgba(91, 92, 226, .08);--accent-mid: rgba(91, 92, 226, .14);--accent-2: #0f9f9a;--accent-green: #34c759;--accent-orange: #ff9500;--danger: #ff3b30;--danger-light: rgba(255, 59, 48, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 34px rgba(26, 32, 72, .09);--shadow-xl: 0 24px 70px rgba(26, 32, 72, .14);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--font: "Segoe UI Variable Text", "Segoe UI", "Microsoft YaHei UI", sans-serif;--font-display: "Segoe UI Variable Display", "Segoe UI", "Microsoft YaHei UI", sans-serif;--font-mono: "SF Mono", "Menlo", monospace;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-spring: .4s cubic-bezier(.16, 1, .3, 1);color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 15% 0%,rgba(91,92,226,.08),transparent 32%),radial-gradient(circle at 92% 90%,rgba(15,159,154,.07),transparent 28%),var(--bg);color:var(--text)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;outline:none}a{color:var(--accent);text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#0003}.app{height:100vh;display:flex;flex-direction:column;background:transparent;position:relative}.app-header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:64px;background:var(--bg-header);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--line);z-index:10;position:relative}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius-md);background:linear-gradient(145deg,#4f46e5,#0ea5a6);color:#fff;font-weight:700;font-size:18px;font-family:var(--font-display);letter-spacing:-.02em;box-shadow:0 7px 18px #4f46e53d}.brand strong{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.brand span{display:block;margin-top:1px;font-size:11px;font-weight:400;color:var(--text-tertiary)}.workspace-tabs{display:flex;gap:2px;padding:3px;background:#0000000a;border-radius:var(--radius-md)}.workspace-tabs button{padding:7px 16px;border-radius:7px;font-size:13px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.workspace-tabs button:hover{color:var(--text)}.workspace-tabs button.active{background:#fff;color:var(--text);font-weight:600;box-shadow:var(--shadow-sm)}.header-actions{display:flex;align-items:center;gap:8px}.backend-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--radius-full);font-size:11px;font-weight:500;color:var(--text-tertiary);background:#0000000a}.backend-pill i{width:6px;height:6px;border-radius:50%;background:var(--accent-orange)}.backend-pill.ok i{background:var(--accent-green);box-shadow:0 0 6px #34c75980}.backend-pill.error{color:var(--danger)}.backend-pill.error i{background:var(--danger)}.restart-btn{padding:5px 12px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--accent-orange);background:#ff950014;transition:all var(--transition-fast)}.restart-btn:hover{background:#ff950024}.import-button{padding:6px 16px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:12px;font-weight:500;transition:all var(--transition-fast);box-shadow:0 1px 3px #007aff40}.import-button:hover{transform:translateY(-1px);box-shadow:0 3px 10px #007aff4d}.import-button:active{transform:translateY(0)}.ghost-button{padding:6px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.ghost-button:hover{background:#0000000a;color:var(--text)}.ghost-button kbd{margin-left:6px;padding:1px 5px;border-radius:3px;font-size:9px;color:var(--text-tertiary);background:#0000000a;border:1px solid var(--line);font-family:var(--font)}.connection-banner{flex:none}.connection-banner-content{display:flex;align-items:center;gap:12px;padding:10px 24px;background:#ff3b300d;border-bottom:1px solid rgba(255,59,48,.1);font-size:13px;color:var(--text)}.connection-icon{color:var(--danger);font-size:16px}.connection-banner-content strong{display:block;font-weight:600;font-size:13px}.connection-banner-content div>p{margin:2px 0 0;color:var(--text-secondary);font-size:12px}.retry-btn{margin-left:auto;padding:5px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--accent);background:var(--accent-light);transition:all var(--transition-fast)}.retry-btn:hover{background:var(--accent-mid)}.presentation-nav{flex:none;display:flex;align-items:center;gap:12px;padding:10px 24px;background:var(--bg-frost);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);z-index:6}.presentation-nav button{padding:6px 16px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--text-secondary);background:#fff;border:1px solid var(--line);transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.presentation-nav button:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--line-strong)}.presentation-nav button:disabled{opacity:.4;cursor:not-allowed}.presentation-nav .nav-brief.active{color:var(--accent);border-color:var(--accent);background:var(--accent-light)}.slide-indicator{flex:1;text-align:center;font-size:13px;font-weight:500;color:var(--text-secondary)}.app-body{flex:1;min-height:0;display:grid;grid-template-columns:clamp(220px,16vw,250px) minmax(0,1fr) clamp(280px,21vw,330px);transition:padding-right var(--transition-normal),grid-template-columns var(--transition-normal)}.app.workspace-molecule .app-body{grid-template-columns:minmax(0,1fr) clamp(300px,22vw,350px)}.app.workspace-molecule .nav-panel{display:none}.app.workspace-molecule .info-panel{background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-panel{min-height:0;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line)}.nav-header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.nav-header h3{font-size:13px;font-weight:600;color:var(--text-tertiary);letter-spacing:.05em;text-transform:uppercase}.nav-list{flex:1;overflow:auto;padding:12px}.nav-deck{width:100%;margin-bottom:8px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-card);overflow:hidden;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.nav-deck:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.nav-deck-selected{border-color:var(--accent);box-shadow:0 2px 8px #007aff1f}.nav-deck-main{width:100%;padding:14px 16px;text-align:left;background:transparent;cursor:pointer}.nav-deck-title{font-size:14px;font-weight:500;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nav-deck-meta{margin-top:6px;font-size:11px;color:var(--text-tertiary);display:flex;align-items:center;gap:6px}.nav-deck-meta:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.6}.nav-deck-delete{position:absolute;right:12px;bottom:12px;width:24px;height:24px;border-radius:50%;font-size:14px;color:var(--text-tertiary);display:grid;place-items:center;transition:all var(--transition-fast)}.nav-deck-delete:hover{background:var(--danger-light);color:var(--danger)}.nav-deck{position:relative}.nav-empty,.empty-copy,.inline-loading{padding:32px 16px;text-align:center;color:var(--text-tertiary);font-size:13px;line-height:1.6}.workspace{min-width:0;min-height:0;overflow:hidden;background:var(--bg)}.welcome-state{height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:720px;padding:60px clamp(40px,6vw,80px)}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.welcome-state h1{margin:20px 0 24px;font:600 clamp(32px,3.5vw,48px)/1.15 var(--font-display);letter-spacing:-.03em;color:var(--text)}.welcome-state>p{max-width:500px;font-size:15px;line-height:1.7;color:var(--text-secondary)}.welcome-metrics{display:flex;gap:32px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}.welcome-metrics div{display:flex;flex-direction:column;gap:4px}.welcome-metrics strong{font:600 36px/1 var(--font-display);letter-spacing:-.02em;color:var(--accent)}.welcome-metrics span{font-size:12px;color:var(--text-tertiary)}.slide-view{height:100%;overflow:auto;padding:24px}.slide-view-header{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.slide-view-header h3{font-size:20px;font-weight:600;letter-spacing:-.01em}.slide-count{font-size:12px;color:var(--text-tertiary)}.slide-view-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.slide-thumb{width:100%;min-width:0;text-align:left;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.slide-thumb:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.slide-thumb-num{font-size:18px;font-weight:600;color:var(--accent);letter-spacing:-.02em}.slide-thumb-title{margin-top:8px;font-size:13px;font-weight:500;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.slide-thumb-meta{margin-top:6px;font-size:11px;color:var(--text-tertiary)}.slide-detail-layout{height:100%;overflow:auto;padding:24px clamp(24px,4vw,48px)}.back-button{display:inline-flex;align-items:center;gap:4px;margin-bottom:16px;font-size:12px;color:var(--accent);transition:all var(--transition-fast)}.back-button:hover{opacity:.7}.slide-content{max-width:1000px;margin:0 auto}.slide-content-header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line);margin-bottom:20px}.slide-content-header h4{display:none}.slide-content-badge{font-size:20px;font-weight:500;line-height:1.3;color:var(--text);max-width:600px}.open-pptx-btn{flex:none;padding:6px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--accent);background:var(--accent-light);border:1px solid rgba(0,122,255,.15);transition:all var(--transition-fast)}.open-pptx-btn:hover{background:var(--accent-mid)}.slide-text-section,.slide-notes-section,.slide-images-section,.candidates-section{margin-bottom:20px;padding:20px;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.section-label{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:8px}.slide-text{white-space:pre-wrap;font-size:14px;line-height:1.8;color:var(--text)}.slide-notes{font-size:13px;line-height:1.7;color:var(--text-secondary)}.slide-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:12px}.slide-image-grid a{display:grid;place-items:center;padding:8px;border-radius:var(--radius-md);background:var(--bg);border:1px solid var(--line);overflow:hidden}.slide-image-grid img{width:100%;max-height:240px;object-fit:contain}.slide-content-actions{margin-top:16px}.action-btn{padding:8px 20px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:12px;font-weight:500;transition:all var(--transition-fast)}.action-btn:hover:not(:disabled){box-shadow:0 2px 8px #007aff4d}.action-btn:disabled{opacity:.5;cursor:not-allowed}.section-hint{margin-bottom:12px;font-size:12px;color:var(--text-tertiary)}.candidate-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.candidate-item:last-child{border-bottom:none}.candidate-main{min-width:0}.candidate-name{font-weight:600;font-size:13px}.candidate-evidence,.candidate-confidence{font-size:11px;color:var(--text-tertiary);margin-top:2px}.candidate-evidence{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.candidate-actions{display:flex;gap:6px}.candidate-actions button{padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-light);transition:all var(--transition-fast)}.candidate-actions button:hover:not(:disabled){background:var(--accent-mid)}.candidate-actions button.reject{color:var(--text-secondary);background:transparent}.candidate-actions button.reject:hover{color:var(--danger);background:var(--danger-light)}.candidate-actions button.correct{color:var(--accent-2);background:#5856d614}.candidate-actions button.correct:hover{background:#5856d626}.candidate-actions button:disabled{opacity:.5;cursor:not-allowed}.candidate-item.rejected{opacity:.5}.suggestion-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}.teaching-suggestion{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);background:var(--bg);margin-bottom:8px}.teaching-suggestion strong{font-size:13px;color:var(--accent)}.teaching-suggestion small{font-size:11px;color:var(--text-tertiary)}.molecule-workspace{height:100%;display:grid;grid-template-columns:292px minmax(0,1fr)}.molecule-sidebar{min-height:0;overflow:auto;border-right:1px solid var(--line);background:linear-gradient(180deg,#fff,#f8faff)}.molecule-sidebar-intro{padding:22px 20px 18px;background:radial-gradient(circle at 100% 0%,rgba(15,159,154,.13),transparent 48%),linear-gradient(145deg,#5b5ce217,#ffffffb8);border-bottom:1px solid var(--line)}.molecule-sidebar-intro span{display:block;margin-bottom:7px;color:var(--accent);font-size:9px;font-weight:700;letter-spacing:.16em}.molecule-sidebar-intro strong{display:block;font:650 19px/1.25 var(--font-display);letter-spacing:-.02em}.molecule-sidebar-intro p{margin-top:6px;color:var(--text-tertiary);font-size:11px;line-height:1.55}.molecule-resolve{margin:14px;padding:16px;border-bottom:1px solid var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);background:#ffffffdb;box-shadow:var(--shadow-sm)}.molecule-resolve-header h4{font-size:12px;font-weight:600;color:var(--text-tertiary);letter-spacing:.04em;margin-bottom:12px}.molecule-resolve-input{display:flex;flex-direction:column;gap:8px}.molecule-resolve input{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-md);font-size:13px;background:#f7f8fc;transition:all var(--transition-fast)}.molecule-resolve input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #007aff1a;outline:none}.molecule-result{margin-top:12px;padding:12px;border-radius:var(--radius-md);background:var(--bg);border:1px solid var(--line);font-size:12px;color:var(--text-secondary);line-height:1.7;word-break:break-all}.molecule-library{padding:2px 14px 18px}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:0 4px 12px;border-bottom:1px solid var(--line);margin-bottom:12px}.section-heading>span{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.section-heading small{font-size:12px;font-weight:500;color:var(--accent)}.molecule-list-item{width:100%;display:flex;gap:12px;align-items:center;padding:10px 12px;margin-bottom:6px;border:1px solid transparent;border-radius:var(--radius-md);text-align:left;transition:all var(--transition-fast);cursor:pointer}.molecule-list-item:hover,.molecule-list-item.active{background:var(--accent-light);border-color:#5b5ce21f;transform:translate(2px)}.molecule-list-item.active{box-shadow:inset 3px 0 0 var(--accent),var(--shadow-sm)}.molecule-orb{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:14px;flex-shrink:0;box-shadow:0 2px 6px #007aff33}.molecule-list-item span:last-child{min-width:0}.molecule-list-item strong{display:block;font-size:13px;font-weight:500}.molecule-list-item small{display:block;margin-top:2px;font-size:11px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-stage{position:relative;overflow:hidden;background:radial-gradient(circle at 24% 18%,rgba(91,92,226,.1),transparent 32%),radial-gradient(circle at 78% 82%,rgba(15,159,154,.1),transparent 34%),linear-gradient(145deg,#f8faff,#edf1f8)}.viewer-title{position:absolute;z-index:4;top:16px;left:16px;display:flex;gap:16px;align-items:flex-end;padding:12px 16px;border-radius:var(--radius-lg);background:#ffffffd6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-md);border:1px solid var(--line)}.viewer-title span,.viewer-title strong{display:block}.viewer-title span,.viewer-title small{font-size:11px;color:var(--text-tertiary)}.viewer-title strong{margin-top:2px;font-size:14px;font-weight:600}.delete-molecule-btn{padding:4px 12px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--danger);background:var(--danger-light);transition:all var(--transition-fast)}.delete-molecule-btn:hover{background:#ff3b3024}.complex-banner{position:absolute;z-index:4;top:16px;left:16px;display:flex;gap:12px;align-items:center;padding:10px 16px;border-radius:var(--radius-lg);background:var(--bg-elevated);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--shadow-md)}.complex-banner button{font-size:12px;color:var(--accent);padding:2px 6px;border-radius:var(--radius-sm)}.complex-banner button:hover{background:var(--accent-light)}.complex-banner div{display:flex;flex-direction:column;gap:2px}.complex-banner strong{font-size:13px;color:var(--accent)}.complex-banner span{font-size:11px;color:var(--text-tertiary)}.viewer-style-switcher{position:absolute;z-index:6;top:16px;right:16px;display:flex;padding:3px;border-radius:var(--radius-md);background:var(--bg-elevated);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.viewer-style-switcher button{padding:5px 10px;border-radius:6px;font-size:11px;font-weight:500;color:var(--text-tertiary);transition:all var(--transition-fast)}.viewer-style-switcher button.active{background:var(--accent);color:#fff}.molstar-container,.molstar-iframe,.three-dmol-canvas{width:100%;height:100%}.molstar-container{position:relative}.molstar-iframe{display:block;border:0}.three-dmol-canvas{position:absolute;inset:0}.molstar-placeholder,.molstar-loading-overlay,.molstar-error-overlay{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.molstar-placeholder{color:var(--text-tertiary)}.placeholder-icon{font-size:48px;opacity:.3}.molstar-placeholder h3{margin:12px 0 4px;font-size:16px;font-weight:500;color:var(--text-secondary)}.molstar-placeholder p,.hint-text{font-size:12px;color:var(--text-tertiary)}.features-row{display:flex;gap:8px;margin-top:16px}.feature-item{padding:4px 10px;border-radius:var(--radius-full);background:var(--bg);border:1px solid var(--line);font-size:11px;color:var(--text-tertiary)}.molstar-loading-overlay,.molstar-error-overlay{position:absolute;inset:0;background:#f8f9fae0}.loading-spinner{width:24px;height:24px;margin-bottom:12px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.molstar-error-overlay strong{display:block;color:var(--danger);font-size:14px;margin-bottom:8px}.molstar-error-overlay p{max-width:400px;font-size:12px;color:var(--text-secondary);line-height:1.6}.info-panel{min-height:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line)}.info-header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.info-header>span{font-size:13px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.info-header small{font-size:11px;color:var(--accent)}.info-content{flex:1;overflow:auto;padding:16px}.info-section{margin-bottom:16px;padding:16px;border-radius:var(--radius-lg);background:var(--bg);border:1px solid var(--line);transition:all var(--transition-fast)}.info-section h4{margin:0 0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.info-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--line)}.info-row:last-child{border-bottom:none}.info-row strong{color:var(--text);font-weight:500;text-align:right;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.molecule-identity{padding:20px 8px 24px;text-align:center}.molecule-depiction{width:100%;height:140px;object-fit:contain;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.identity-icon{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:22px;box-shadow:0 4px 12px #007aff40}.molecule-identity h2{margin:0 0 4px;font-size:18px;font-weight:600;letter-spacing:-.01em}.molecule-identity p{font-size:13px;color:var(--text-tertiary)}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.property-cell{padding:10px 12px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--line)}.property-cell span{display:block;font-size:11px;color:var(--text-tertiary);font-weight:500}.property-cell strong{display:block;margin-top:4px;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smiles-block{display:block;max-height:80px;overflow:auto;padding:10px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--line);font-family:var(--font-mono);font-size:11px;line-height:1.6;word-break:break-all;white-space:pre-wrap;color:var(--accent-2)}.descriptor-summary{margin-top:12px;padding:12px;border-left:3px solid var(--accent);background:var(--accent-light);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:12px;line-height:1.7;color:var(--text-secondary)}.group-list{display:flex;flex-wrap:wrap;gap:6px}.group-tag{padding:3px 10px;border-radius:var(--radius-full);font-size:11px;color:var(--accent-2);background:#5856d614;border:1px solid rgba(88,86,214,.15);cursor:pointer;transition:all var(--transition-fast)}.group-tag.active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.group-tag:hover:not(.active){background:#5856d624}.muted-copy{font-size:12px;color:var(--text-tertiary);line-height:1.7}.panel-action{width:100%;padding:8px 16px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:12px;font-weight:500;margin-top:12px;transition:all var(--transition-fast)}.panel-action:hover{box-shadow:0 2px 8px #007aff4d}.panel-action.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}.panel-action.secondary:hover{background:var(--accent-light)}.binding-empty p{font-size:12px;color:var(--text-tertiary);line-height:1.7}.binding-source{display:flex;justify-content:space-between;font-size:10px;color:var(--text-tertiary);margin-bottom:8px}.binding-source strong{color:var(--accent)}.binding-warning{padding:8px;border-radius:var(--radius-sm);background:#ff95000f;border:1px solid rgba(255,149,0,.15);font-size:11px;color:#ff9500cc;line-height:1.5;margin-bottom:8px}.binding-block{margin-top:12px}.binding-block h5{font-size:11px;color:var(--text-tertiary);margin-bottom:6px}.binding-card,.binding-pdb{width:100%;text-align:left;padding:10px;margin-bottom:6px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--bg);transition:all var(--transition-fast)}.binding-pdb{cursor:pointer}.binding-pdb:hover{border-color:var(--accent);background:var(--accent-light)}.binding-card strong,.binding-pdb strong{display:block;font-size:12px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.binding-card span,.binding-pdb span{font-size:10px;color:var(--accent-2)}.binding-card small,.binding-pdb small{font-size:10px;color:var(--text-tertiary)}.context-hint{display:grid;grid-template-columns:20px 1fr;gap:8px;padding:8px 4px}.context-hint span{color:var(--accent);font-size:12px}.context-hint p{margin:0;font-size:11px;color:var(--text-secondary);line-height:1.5}.ai-brief-panel{min-height:0;overflow:auto;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line)}.ai-brief-header{flex:none;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.ai-brief-header span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-2)}.ai-brief-actions{display:flex;gap:6px}.brief-generate-btn{padding:4px 12px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-light);transition:all var(--transition-fast)}.brief-generate-btn:hover:not(:disabled){background:var(--accent-mid)}.brief-generate-btn:disabled{opacity:.5;cursor:not-allowed}.brief-close-btn{font-size:14px;color:var(--text-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.brief-close-btn:hover{background:#0000000a}.ai-brief-status{padding:8px 20px;border-bottom:1px solid var(--line);font-size:11px;color:var(--text-tertiary)}.ai-brief-content{flex:1;overflow:auto;padding:20px}.brief-loading{display:flex;align-items:center;gap:12px;padding:20px;color:var(--text-tertiary);font-size:12px}.brief-empty{text-align:center;padding:40px 16px;color:var(--text-tertiary);font-size:13px;line-height:1.8}.brief-error{padding:16px;border-radius:var(--radius-md);background:var(--danger-light);border:1px solid rgba(255,59,48,.15)}.brief-error strong{display:block;color:var(--danger);font-size:12px;margin-bottom:4px}.brief-error p{font-size:12px;color:var(--text-secondary);margin-bottom:12px}.brief-error button{padding:4px 12px;border-radius:var(--radius-sm);font-size:11px;color:var(--danger);background:var(--danger-light)}.brief-text{font-size:13px;line-height:1.8;color:var(--text-secondary)}.brief-text strong{color:var(--accent-2);font-weight:600;font-size:14px}.brief-item{margin:8px 0;padding-left:12px;border-left:2px solid var(--accent)}.brief-subitem{margin:4px 0 4px 16px;font-size:12px;color:var(--text-tertiary)}.ai-brief-footer{flex:none;padding:12px 20px;border-top:1px solid var(--line)}.ai-brief-footer small{font-size:10px;color:var(--text-tertiary)}.ai-panel{position:fixed;right:14px;top:76px;bottom:36px;z-index:20;width:370px;height:auto;display:flex;flex-direction:column;border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-xl);border:1px solid var(--line);overflow:hidden;animation:slideUp .35s var(--transition-spring)}.app.has-presentation-nav .ai-panel{top:126px}.app.ai-open .app-body{grid-template-columns:clamp(210px,15vw,235px) minmax(0,1fr);padding-right:394px}.app.ai-open .info-panel,.app.ai-open .ai-brief-panel{display:none}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-panel-header{flex:none;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);gap:10px}.ai-panel-header div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}.ai-panel-header strong{font-size:14px;font-weight:600}.ai-panel-header span{font-size:11px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-header-actions{display:flex;gap:4px;flex:none}.ai-header-actions button{padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast);white-space:nowrap}.ai-header-actions button:hover{background:#0000000a}.ai-provider-strip{flex:none;display:flex;align-items:center;gap:7px;padding:8px 18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#5b5ce214,#0f9f9a0f);color:var(--text-secondary);font-size:11px}.ai-provider-strip i{width:7px;height:7px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 0 3px #34c7591f}.ai-provider-strip span{margin-left:auto;color:var(--accent);font-weight:600}.ai-settings{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg)}.ai-settings label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:500;color:var(--text-tertiary)}.ai-settings input{padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:12px;background:#fff;transition:all var(--transition-fast)}.ai-settings input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #007aff1a;outline:none}.ai-connection-test{grid-column:1 / -1;display:flex;align-items:center;gap:8px}.ai-connection-test button{padding:5px 12px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-light);transition:all var(--transition-fast)}.ai-connection-test button:hover{background:var(--accent-mid)}.ai-connection-test span{font-size:11px;color:var(--text-tertiary)}.ai-quick-actions{display:flex;gap:4px;padding:10px 12px;border-bottom:1px solid var(--line);overflow-x:auto;flex-shrink:0}.ai-quick-actions button{flex:none;padding:4px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:500;color:var(--text-secondary);background:var(--bg);border:1px solid var(--line);transition:all var(--transition-fast)}.ai-quick-actions button:hover{border-color:var(--accent);color:var(--accent)}.ai-quick-actions .selected-text-action{color:var(--accent);border-color:#007aff40}.selected-text-bar{flex:none;padding:8px 14px;background:var(--accent-light);border-bottom:1px solid var(--line);font-size:12px;color:var(--text-secondary)}.selected-text-label{color:var(--accent);font-weight:500}.ai-messages{flex:1;overflow:auto;padding:16px}.ai-message{width:fit-content;max-width:85%;margin-bottom:12px;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.7;white-space:pre-wrap;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ai-message.assistant{background:var(--bg);border:1px solid var(--line);color:var(--text)}.ai-message.user{margin-left:auto;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ai-message small{display:block;margin-top:6px;font-size:10px;opacity:.7}.ai-compose{flex:none;display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--bg)}.ai-compose textarea{flex:1;height:44px;resize:none;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);font-size:13px;line-height:1.5;background:#fff;transition:all var(--transition-fast)}.ai-compose textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #007aff1a;outline:none}.ai-compose button{width:48px;height:44px;border-radius:var(--radius-lg);background:var(--accent);color:#fff;font-size:14px;font-weight:500;transition:all var(--transition-fast)}.ai-compose button:hover:not(:disabled){box-shadow:0 2px 8px #007aff4d}.ai-compose button:disabled{opacity:.4;cursor:not-allowed}.ai-fab{position:fixed;right:16px;bottom:24px;z-index:20;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;font-weight:600;font-size:13px;cursor:pointer;box-shadow:0 4px 16px #007aff59;transition:all var(--transition-fast)}.ai-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #007aff73}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:#00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fadeIn .2s ease}.search-backdrop{place-items:start center;padding-top:10vh}.library-search{width:min(720px,100%);max-height:min(700px,85vh);display:flex;flex-direction:column;border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-xl);overflow:hidden;animation:scaleIn .3s var(--transition-spring)}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.search-input-row{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.search-input-row>span{font-size:20px;color:var(--accent)}.search-input-row input{flex:1;border:none;background:transparent;font-size:16px;color:var(--text);outline:none}.search-input-row input::placeholder{color:var(--text-tertiary)}.search-input-row button{padding:4px 10px;border-radius:var(--radius-sm);font-size:11px;color:var(--text-secondary);transition:all var(--transition-fast)}.search-input-row button:hover{background:#0000000a}.search-results{min-height:200px;overflow:auto;padding:16px}.search-empty{padding:80px 20px;text-align:center;color:var(--text-tertiary);font-size:14px}.search-result{width:100%;display:flex;gap:12px;align-items:flex-start;padding:14px;margin-bottom:6px;border-radius:var(--radius-md);text-align:left;transition:all var(--transition-fast)}.search-result:hover{background:var(--accent-light)}.search-kind{flex:none;padding:2px 6px;border-radius:4px;font-size:9px;font-weight:500;color:var(--text-tertiary);background:var(--bg);border:1px solid var(--line)}.search-kind.molecule{color:var(--accent-2);border-color:#5856d633}.search-result strong{display:block;font-size:13px;font-weight:500}.search-result small{display:block;margin-top:2px;font-size:11px;color:var(--accent)}.search-result p{margin:4px 0 0;font-size:11px;color:var(--text-tertiary);line-height:1.6}.import-dialog{width:min(600px,100%);max-height:min(750px,calc(100vh - 40px));display:flex;flex-direction:column;border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-xl);overflow:hidden;animation:scaleIn .3s var(--transition-spring)}.import-dialog-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid var(--line)}.import-dialog-header span{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.import-dialog-header h2{margin:6px 0 0;font-size:22px;font-weight:600;letter-spacing:-.01em}.import-dialog-header>button{font-size:22px;color:var(--text-tertiary);padding:2px 6px;border-radius:var(--radius-sm);line-height:1}.import-dialog-header>button:hover{background:#0000000a}.import-dropzone{margin:24px;padding:36px 32px;border:2px dashed var(--line-strong);border-radius:var(--radius-lg);text-align:center;background:var(--bg);transition:all var(--transition-fast)}.import-dropzone:hover{border-color:var(--accent);background:var(--accent-light)}.import-symbol{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:24px;box-shadow:0 4px 12px #007aff40}.import-dropzone strong{display:block;font-size:15px;font-weight:500}.import-dropzone p{max-width:400px;margin:8px auto 16px;font-size:13px;color:var(--text-secondary);line-height:1.7}.import-dropzone button{padding:6px 16px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:12px;font-weight:500;transition:all var(--transition-fast)}.import-dropzone button:hover:not(:disabled){box-shadow:0 2px 8px #007aff4d}.import-dropzone button:disabled{opacity:.5;cursor:not-allowed}.import-results{min-height:0;overflow:auto;padding:0 24px 16px}.import-result{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.import-result>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:12px;color:var(--text-tertiary);background:var(--bg)}.import-result.ok>span{color:var(--accent-green)}.import-result.error>span{color:var(--danger)}.import-result strong{display:block;font-size:12px;font-weight:500}.import-result small{display:block;margin-top:2px;font-size:10px;color:var(--text-tertiary)}.import-dialog-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--text-tertiary)}.import-dialog-footer button{padding:6px 16px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:12px;font-weight:500}.import-dialog-footer button:disabled{opacity:.5}.status-bar{flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:24px;border-top:1px solid var(--line);background:var(--bg);font-size:10px;color:var(--text-tertiary)}.status-left,.status-right{display:flex;align-items:center;gap:6px}.runtime-setup-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:#f5f5f7e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.runtime-setup{width:min(580px,100%);padding:40px;border-radius:var(--radius-xl);background:#fff;box-shadow:var(--shadow-xl);border:1px solid var(--line)}.runtime-setup h1{font-size:24px;font-weight:600;letter-spacing:-.01em;margin:8px 0 12px}.runtime-setup>p{font-size:13px;color:var(--text-secondary);line-height:1.7}.runtime-checks{display:grid;gap:8px;margin:24px 0 16px}.runtime-checks>div{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--bg)}.runtime-checks>div>span:first-child{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;font-size:12px;color:var(--text-tertiary);background:#fff;border:1px solid var(--line)}.runtime-checks .ready>span:first-child{color:var(--accent-green);border-color:#34c7594d}.runtime-checks strong{display:block;font-size:12px;font-weight:500}.runtime-checks small{display:block;margin-top:2px;font-size:10px;color:var(--text-tertiary)}.runtime-checks button{margin-left:auto;padding:5px 12px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-light);transition:all var(--transition-fast)}.runtime-checks button:hover{background:var(--accent-mid)}.runtime-output{max-height:140px;overflow:auto;padding:10px;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);font-size:10px;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;margin-bottom:12px}.runtime-error{margin-bottom:12px;font-size:11px;color:var(--danger)}.runtime-primary{width:100%;padding:10px;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:13px;font-weight:600;transition:all var(--transition-fast)}.runtime-primary:hover:not(:disabled){box-shadow:0 2px 8px #007aff4d}.runtime-primary:disabled{opacity:.4;cursor:not-allowed}.runtime-note{display:block;margin-top:10px;font-size:10px;color:var(--text-tertiary);text-align:center}.ppt-slide-canvas{margin-top:20px}.ppt-window-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;border:1px solid var(--line);border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;background:#fff}.ppt-window-toolbar strong{font-size:12px;font-weight:500;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ppt-stage{position:relative;aspect-ratio:16 / 9;overflow:hidden;border:1px solid var(--line);background:#f7f8f4;box-shadow:var(--shadow-md)}.ppt-rendered-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;z-index:5}.ppt-stage-image{position:absolute;display:block;object-fit:contain}.ppt-stage-image:not([style]){inset:7% 7% auto auto;max-width:42%;max-height:70%}.ppt-text-layer{position:absolute;inset:8% 9%;display:flex;flex-direction:column;justify-content:center;pointer-events:none}.ppt-text-layer.with-media{right:46%}.ppt-slide-title{max-width:100%;color:#1d1d1f;font:600 32px/1.25 var(--font-display)}.ppt-text-layer .ppt-slide-text{margin-top:16px}.ppt-text-layer .ppt-slide-text p{margin:0 0 8px;padding-left:16px;color:#3a3a3c;font-size:16px;line-height:1.6;position:relative}.ppt-text-layer .ppt-slide-text p:before{position:absolute;left:0;content:"•";color:var(--accent)}.ppt-asset-strip{display:flex;gap:8px;overflow-x:auto;padding:12px;border:1px solid var(--line);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);background:var(--bg)}.ppt-asset-strip a{flex:0 0 92px;height:52px;display:grid;place-items:center;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--line);overflow:hidden}.ppt-asset-strip img{width:100%;height:100%;object-fit:contain}.ppt-slide-body{margin-top:20px;padding:20px;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line)}.ppt-slide-text p{font-size:14px;line-height:1.8;margin:0 0 8px}@media(max-width:1180px){.app-body{grid-template-columns:210px minmax(0,1fr)}.info-panel,.ai-brief-panel{display:none}.app-header{padding:0 16px}.workspace-tabs{order:3}.header-actions{display:flex}.backend-pill,.ghost-button kbd,.brand span{display:none}.import-button{padding-inline:11px}.ghost-button{padding-inline:8px}.app.ai-open .app-body{grid-template-columns:minmax(0,1fr);padding-right:378px}.app.ai-open .nav-panel{display:none}.ai-panel{width:354px}}@media(max-width:820px){.app-body{grid-template-columns:1fr}.nav-panel,.brand span{display:none}.molecule-workspace{grid-template-columns:200px minmax(0,1fr)}.app.workspace-molecule .app-body{grid-template-columns:1fr}.app.workspace-molecule .info-panel{display:none}.molecule-sidebar-intro{padding:16px 14px 14px}.molecule-sidebar-intro p{display:none}.ai-panel{right:8px;width:calc(100vw - 16px);height:min(520px,calc(100vh - 100px))}.ai-settings{grid-template-columns:1fr}}.teaching-suggestion-card{margin-top:20px;padding:20px;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.suggestion-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.suggestion-heading span{font-size:12px;font-weight:600;color:var(--accent-2)}.suggestion-heading strong{font-size:13px;color:var(--text)}.teaching-suggestion{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;margin-bottom:8px;border-radius:var(--radius-md);background:var(--bg);border:1px solid var(--line)}.teaching-suggestion:last-child{margin-bottom:0}.teaching-suggestion strong{color:var(--accent);font-size:13px}.teaching-suggestion small{color:var(--text-tertiary);font-size:11px}.teaching-suggestion ul{margin:4px 0 0 16px;font-size:12px;color:var(--text-secondary)}.teaching-suggestion li{margin-bottom:2px}.slide-notes-section{margin-top:20px;padding:20px;border-radius:var(--radius-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.slide-notes-section .section-label{font-size:12px;font-weight:600}.s3d-btn{padding:6px 16px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;color:var(--accent);background:var(--accent-light);border:1px solid rgba(0,122,255,.15);transition:all var(--transition-fast)}.s3d-btn:hover{background:var(--accent-mid)}.deck-ref{margin-top:6px;font-size:11px;color:var(--text-tertiary)}:root{--bg: #edf3f5;--bg-card: #ffffff;--bg-card-hover: #f8fbfb;--bg-elevated: rgba(255, 255, 255, .86);--bg-frost: rgba(247, 251, 251, .84);--bg-header: rgba(248, 252, 252, .86);--line: rgba(25, 70, 76, .09);--line-strong: rgba(25, 70, 76, .17);--text: #172b32;--text-secondary: #526970;--text-tertiary: #7a9096;--accent: #276c68;--accent-light: rgba(39, 108, 104, .09);--accent-mid: rgba(39, 108, 104, .16);--accent-2: #5b61d6;--accent-green: #20a978;--shadow-sm: 0 2px 8px rgba(26, 60, 66, .05);--shadow-md: 0 10px 28px rgba(26, 60, 66, .09);--shadow-lg: 0 18px 46px rgba(26, 60, 66, .12);--shadow-xl: 0 28px 80px rgba(19, 48, 55, .18);--radius-md: 12px;--radius-lg: 17px;--radius-xl: 24px;--font: "Segoe UI Variable Text", "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;--font-display: "Segoe UI Variable Display", "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif}body{background-color:#edf3f5;background-image:radial-gradient(circle at 9% 12%,rgba(64,169,158,.15),transparent 24%),radial-gradient(circle at 83% 8%,rgba(91,97,214,.12),transparent 25%),radial-gradient(circle at 72% 92%,rgba(47,128,126,.1),transparent 30%),linear-gradient(rgba(29,91,94,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(29,91,94,.025) 1px,transparent 1px);background-size:auto,auto,auto,28px 28px,28px 28px}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(39,108,104,.2);outline-offset:2px}.app-header{height:72px;padding:0 26px;background:var(--bg-header);border-bottom-color:#19464c14;box-shadow:0 8px 30px #1f45490e}.brand{gap:13px}.brand-home{padding:5px 8px 5px 4px;margin-left:-4px;border-radius:15px;text-align:left;transition:transform var(--transition-fast),background var(--transition-fast),box-shadow var(--transition-fast)}.brand-home:hover{transform:translateY(-1px);background:#ffffffb8;box-shadow:0 7px 20px #1e464a14}.brand-home:active{transform:translateY(0)}.brand-mark{position:relative;width:42px;height:42px;border-radius:14px;background:radial-gradient(circle at 72% 25%,rgba(255,255,255,.75) 0 3px,transparent 4px),linear-gradient(145deg,#256f6b,#438e88 48%,#5b61d6);box-shadow:0 10px 24px #276c6847,inset 0 1px #ffffff59}.brand-mark:after{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.32);border-radius:50%;transform:rotate(-28deg) scaleY(.45)}.brand strong{font-size:16px;font-weight:720;letter-spacing:-.025em}.brand span{margin-top:2px;color:#698087}.workspace-tabs{padding:5px;gap:4px;background:#265b5f12;border:1px solid rgba(38,91,95,.07);border-radius:14px}.workspace-tabs button{padding:8px 18px;border-radius:10px}.workspace-tabs button.active{color:var(--accent);box-shadow:0 5px 15px #1e464a17}.import-button{padding:8px 17px;border-radius:11px;background:linear-gradient(135deg,#2c756f,#5b61d6);box-shadow:0 9px 22px #35657538}.import-button:hover{box-shadow:0 12px 28px #3565754d}.ghost-button{border:1px solid transparent}.ghost-button:hover{background:#fff;border-color:var(--line);box-shadow:var(--shadow-sm)}.backend-pill{background:#ffffffb3;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.presentation-nav{margin:0;min-height:52px;background:#f6fafae6;box-shadow:0 7px 20px #1a3c420b}.app-body{gap:12px;padding:12px}.app.ai-open .app-body{padding:12px 402px 12px 12px}.nav-panel,.workspace,.info-panel,.ai-brief-panel{border:1px solid rgba(25,70,76,.08);border-radius:19px;box-shadow:0 12px 34px #1e424712;overflow:hidden}.nav-panel{background:#fbfdfde0;border-right:1px solid rgba(25,70,76,.08)}.nav-header,.info-header,.ai-brief-header{min-height:57px;background:linear-gradient(135deg,#276c6811,#5b61d609)}.nav-header h3,.info-header>span,.ai-brief-header span{color:#345b60;font-size:12px;font-weight:750;letter-spacing:.08em}.nav-list{padding:12px 10px 18px}.nav-deck{margin-bottom:9px;border-color:transparent;background:#ffffffbf;box-shadow:0 4px 14px #1c464a0b}.nav-deck:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 4px 4px 0;background:linear-gradient(#49a49a,#5b61d6);opacity:.2;transition:opacity var(--transition-fast)}.nav-deck:hover:before,.nav-deck-selected:before{opacity:1}.nav-deck:hover{border-color:#276c6829;transform:translateY(-2px)}.nav-deck-selected{background:linear-gradient(135deg,#276c6818,#5b61d60e);border-color:#276c682e}.nav-deck-title{font-weight:650}.workspace{position:relative;background:radial-gradient(circle at 10% 8%,rgba(53,154,143,.08),transparent 26%),radial-gradient(circle at 92% 94%,rgba(91,97,214,.07),transparent 26%),#f9fcfcb8}.workspace:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.4;background-image:radial-gradient(rgba(39,108,104,.22) .7px,transparent .7px);background-size:18px 18px;-webkit-mask-image:linear-gradient(135deg,black,transparent 52%);mask-image:linear-gradient(135deg,black,transparent 52%)}.welcome-state{position:relative;z-index:1;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(270px,.92fr);align-items:center;gap:clamp(24px,5vw,72px);width:100%;max-width:1180px;padding:clamp(34px,5vw,74px)}.welcome-copy{position:relative;z-index:2}.eyebrow{display:inline-flex;align-items:center;gap:9px;color:var(--accent);font-weight:750;letter-spacing:.14em}.eyebrow i{width:9px;height:9px;border:2px solid #3a9088;border-radius:50%;box-shadow:0 0 0 5px #3a90881a}.welcome-state h1{margin:22px 0 20px;font-size:clamp(38px,4.15vw,62px);line-height:1.12;font-weight:760;letter-spacing:-.055em;color:#16343a}.welcome-state h1 span{color:transparent;background:linear-gradient(100deg,#27756e,#5b61d6 80%);background-clip:text;-webkit-background-clip:text}.welcome-state>.welcome-copy>p{max-width:590px;color:#5a7278;font-size:15px;line-height:1.85}.welcome-path{display:flex;align-items:center;gap:9px;margin-top:24px;flex-wrap:wrap}.welcome-path span{padding:7px 12px;border:1px solid rgba(39,108,104,.12);border-radius:999px;background:#ffffffb8;color:#42666a;font-size:12px;font-weight:650;box-shadow:var(--shadow-sm)}.welcome-path i{color:#8aa0a4;font-style:normal;font-size:12px}.welcome-metrics{gap:10px;margin-top:34px;padding:0;border:0}.welcome-metrics div{min-width:112px;padding:14px 17px;border:1px solid rgba(39,108,104,.1);border-radius:15px;background:#ffffffad;box-shadow:0 8px 24px #214c500f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.welcome-metrics strong{color:#286f69;font-size:30px}.welcome-metrics span{color:#6d858a}.hero-molecule{position:relative;width:min(31vw,430px);aspect-ratio:1;justify-self:center;border-radius:50%;background:radial-gradient(circle at center,rgba(255,255,255,.96) 0 18%,rgba(222,241,239,.62) 19% 35%,rgba(255,255,255,.2) 36% 58%,transparent 59%);filter:drop-shadow(0 24px 40px rgba(40,90,96,.12))}.hero-molecule:before,.hero-molecule:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(39,108,104,.14)}.hero-molecule:before{inset:4%}.hero-molecule:after{inset:18%;border-style:dashed;border-color:#5b61d633;animation:heroSpin 24s linear infinite}.hero-core{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:104px;height:104px;display:grid;place-content:center;text-align:center;border-radius:34px;color:#fff;background:linear-gradient(145deg,#246d68,#4b8e88 48%,#5b61d6);box-shadow:0 24px 48px #2d5b6b47,inset 0 1px #ffffff59}.hero-core span{font-size:30px;line-height:1;font-weight:780;letter-spacing:-.06em}.hero-core small{margin-top:5px;font-size:9px;letter-spacing:.22em;opacity:.72}.hero-orbit{position:absolute;inset:8%;border:2px solid rgba(55,136,127,.24);border-radius:50%;transform:rotate(28deg) scaleY(.42)}.hero-orbit.orbit-two{inset:15%;transform:rotate(-33deg) scaleY(.46);border-color:#5b61d642}.hero-orbit i{position:absolute;width:17px;height:17px;border-radius:50%;background:#3f8d86;border:4px solid white;box-shadow:0 5px 14px #1b575440}.hero-orbit i:nth-child(1){left:3%;top:42%}.hero-orbit i:nth-child(2){right:10%;top:12%;background:#5b61d6}.hero-orbit i:nth-child(3){right:18%;bottom:2%;background:#e3a14b}.orbit-two i:nth-child(1){left:24%;top:-5%}.orbit-two i:nth-child(2){right:7%;bottom:20%;background:#5b61d6}.hero-float{position:absolute;z-index:6;padding:11px 14px;border:1px solid rgba(39,108,104,.11);border-radius:14px;background:#ffffffd4;box-shadow:0 15px 35px #23494f1f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#426267;font-size:11px}.hero-float strong,.hero-float span{display:block}.hero-float strong{color:#244d51;font-size:16px;letter-spacing:.04em}.hero-float span{margin-top:3px;color:#7b9094}.float-one{left:-5%;bottom:16%}.float-two{right:-5%;top:17%;display:flex;align-items:center;gap:7px;font-weight:650}.float-two i{width:7px;height:7px;border-radius:50%;background:#20a978;box-shadow:0 0 0 4px #20a97821}.app.ai-open .welcome-state{display:flex;justify-content:flex-start;padding:clamp(34px,4vw,58px)}.app.ai-open .welcome-copy{max-width:620px}.app.ai-open .welcome-state h1{font-size:clamp(38px,3.7vw,54px)}.app.ai-open .hero-molecule{position:absolute;right:-155px;width:420px;opacity:.25;pointer-events:none}.app.ai-open .hero-float{display:none}@keyframes heroSpin{to{transform:rotate(360deg)}}.slide-view,.slide-detail-layout{position:relative;z-index:1}.slide-view{padding:28px}.slide-view-header{border:0;padding:0 2px 16px}.slide-view-header h3{font-size:24px;font-weight:740;color:#21464b}.slide-view-thumbs{gap:14px}.slide-thumb{border-color:#19464c14;box-shadow:0 8px 24px #1e42470f}.slide-thumb:hover{border-color:#276c6840;box-shadow:0 15px 32px #1e42471c}.slide-thumb-num{color:#2e7972}.slide-content-header{padding:20px 22px;margin-bottom:16px;border:1px solid rgba(25,70,76,.09);border-radius:18px;background:linear-gradient(135deg,#fffffff0,#ebf6f5d1);box-shadow:var(--shadow-md)}.slide-content-badge{color:#1f4248;font-weight:720}.slide-text-section,.slide-notes-section,.slide-images-section,.candidates-section,.teaching-suggestion-card,.ppt-slide-body{position:relative;overflow:hidden;border-color:#19464c17;border-radius:18px;background:#ffffffe6;box-shadow:0 10px 30px #1e424711}.slide-text-section:before,.slide-notes-section:before,.slide-images-section:before,.candidates-section:before,.teaching-suggestion-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(#3d9188,#5b61d6)}.section-label{display:inline-flex;align-items:center;gap:7px;width:auto;color:#2c6965;font-size:12px;font-weight:750;letter-spacing:.06em}.section-label:before{content:"";width:8px;height:8px;border-radius:3px;background:linear-gradient(135deg,#3d9188,#5b61d6);box-shadow:0 0 0 4px #3d918817}.info-panel,.ai-brief-panel{background:#fbfdfdeb;border-left:1px solid rgba(25,70,76,.08)}.info-content{padding:12px}.info-section{padding:15px;background:#ffffffd1;border-color:#19464c14;box-shadow:0 6px 18px #1e42470b}.info-section h4{display:flex;align-items:center;gap:7px;color:#3d666a;font-weight:750}.info-section h4:before{content:"";width:7px;height:7px;border-radius:50%;background:#3e9189;box-shadow:0 0 0 4px #3e918917}.property-cell{border-color:#19464c14;box-shadow:var(--shadow-sm)}.molecule-sidebar{background:linear-gradient(180deg,#f9fcfcf5,#ecf5f4e6)}.molecule-sidebar-intro{background:linear-gradient(145deg,#276c681f,#5b61d612);border-bottom-color:#19464c14}.molecule-sidebar-intro strong{color:#234d51;font-size:19px}.molecule-resolve{margin:12px;padding:16px;border:1px solid rgba(25,70,76,.09);border-radius:16px;background:#ffffffc7;box-shadow:var(--shadow-sm)}.molecule-list-item{border:1px solid transparent}.molecule-list-item:hover,.molecule-list-item.active{border-color:#276c6824;box-shadow:var(--shadow-sm)}.molecule-orb{background:linear-gradient(135deg,#276c6821,#5b61d61a)}.viewer-stage{border-radius:0}.ai-panel{right:14px;top:84px;bottom:38px;width:376px;border-color:#1f505321;background:#fcfefef7;box-shadow:0 30px 90px #12343b38,0 0 0 1px #ffffffb3 inset}.app.has-presentation-nav .ai-panel{top:136px}.ai-panel-header{min-height:67px;padding:15px 18px;color:#fff;border:0;background:radial-gradient(circle at 90% -40%,rgba(255,255,255,.32),transparent 50%),linear-gradient(125deg,#245f5d,#357d76 48%,#555bc0)}.ai-panel-header strong{font-size:15px;font-weight:720}.ai-panel-header span{color:#ffffffad}.ai-header-actions button{color:#ffffffd1;border:1px solid rgba(255,255,255,.16)}.ai-header-actions button:hover{color:#fff;background:#ffffff1f}.ai-provider-strip{background:linear-gradient(90deg,#276c6817,#5b61d60f)}.ai-quick-actions{gap:7px;padding:11px 12px}.ai-quick-actions button{padding:6px 11px;background:#fff;box-shadow:var(--shadow-sm)}.ai-messages{background:linear-gradient(180deg,#f6fafab3,#ffffff8c)}.ai-message.assistant{background:#fff;border-color:#19464c14;box-shadow:0 7px 18px #1e42470f;border-bottom-left-radius:5px}.ai-message.user{background:linear-gradient(135deg,#2f7973,#5860cf);box-shadow:0 8px 18px #365d772e}.ai-compose{padding:12px;background:#f5f9f9f2}.ai-compose textarea{border-color:#19464c1c;box-shadow:inset 0 1px 3px #19464c0a}.ai-compose button{background:linear-gradient(135deg,#2e7771,#5b61d6);box-shadow:0 8px 18px #365d7733}.ai-fab{width:54px;height:54px;background:linear-gradient(135deg,#2b746e,#5b61d6);box-shadow:0 12px 32px #2d587057}.status-bar{height:27px;background:#f4f9f9e6;border-top-color:#19464c12}.library-search,.import-dialog,.runtime-setup{border:1px solid rgba(25,70,76,.11);box-shadow:0 35px 100px #1131383d}.modal-backdrop{background:#11293047;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(max-width:1180px){.app.ai-open .app-body{padding:12px 378px 12px 12px}.welcome-state{grid-template-columns:1fr}.hero-molecule{position:absolute;right:-8%;width:390px;opacity:.24}.welcome-copy{max-width:650px}}@media(max-width:820px){.app-header{height:64px;padding:0 12px}.brand-mark{width:36px;height:36px;border-radius:11px}.workspace-tabs button{padding:7px 10px}.app-body{padding:8px;gap:8px}.app.ai-open .app-body{padding:8px}.welcome-state{display:flex;padding:34px 26px}.hero-molecule{display:none}.welcome-state h1{font-size:clamp(34px,10vw,48px)}.welcome-metrics{flex-wrap:wrap}.welcome-metrics div{min-width:96px}.ai-panel{top:72px;bottom:34px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden;background:#f3f6fb;color:#1d1d1f;font-family:Segoe UI Variable Text,Segoe UI,Microsoft YaHei UI,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid rgba(91,92,226,.5);outline-offset:2px}::selection{background:#5b5ce233}
