@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.topnav{display:flex;align-items:center;height:var(--topnav-h);background:var(--bg-topnav);border-bottom:1px solid var(--border-default);padding:0 var(--sp-4);gap:var(--sp-2);z-index:var(--z-topnav);flex-shrink:0;-webkit-user-select:none;user-select:none}.topnav__left{display:flex;align-items:center;gap:var(--sp-2);min-width:160px}.topnav__brand{display:flex;align-items:center;gap:var(--sp-2);text-decoration:none;color:var(--text-primary);font-weight:700;font-size:var(--fs-lg);letter-spacing:-.02em}.topnav__logo{font-size:20px;line-height:1}.topnav__title{background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.topnav__badge{font-size:var(--fs-xs);font-weight:600;background:var(--primary-muted);color:var(--accent-blue);padding:1px 6px;border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase}.topnav__center{display:flex;align-items:center;gap:var(--sp-1);flex:1;justify-content:center}.topnav__divider{width:1px;height:20px;background:var(--border-default);margin:0 var(--sp-2)}.topnav__link{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:500;text-decoration:none;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);white-space:nowrap}.topnav__link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.topnav__link--active{background:var(--primary-muted);color:var(--accent-blue)}.topnav__link--mini{padding:6px 8px}.topnav__link--mini .topnav__link-label{display:none}.topnav__right{display:flex;align-items:center;gap:var(--sp-1);min-width:120px;justify-content:flex-end}.topnav__icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast)}.topnav__icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}@media(max-width:1100px){.topnav__link-label{display:none}.topnav__link{padding:6px 8px}}@media(max-width:768px){.topnav__center{overflow-x:auto}.topnav__center::-webkit-scrollbar{display:none}.topnav__brand .topnav__title,.topnav__badge{display:none}}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip-bubble{position:absolute;z-index:var(--z-tooltip);padding:4px 10px;background:var(--bg-tooltip);color:var(--text-primary);font-size:var(--fs-xs);font-weight:500;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);white-space:nowrap;pointer-events:none;animation:tooltipIn var(--duration-fast) var(--ease-out)}.tooltip-bubble--top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-bubble--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip-bubble--left{right:calc(100% + 6px);top:50%;transform:translateY(-50%)}.tooltip-bubble--right{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}@keyframes tooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.floating-panel{position:fixed;z-index:var(--z-modal);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;min-width:200px;overflow:hidden}.floating-panel__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-raised);border-bottom:1px solid var(--border-subtle);cursor:grab;-webkit-user-select:none;user-select:none}.floating-panel__header:active{cursor:grabbing}.floating-panel__title{font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.floating-panel__actions{display:flex;gap:2px}.floating-panel__btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--duration-fast)}.floating-panel__btn:hover{background:var(--bg-hover);color:var(--text-primary)}.floating-panel__btn--close:hover{background:var(--danger-muted);color:var(--danger)}.floating-panel__body{flex:1;overflow:auto;padding:var(--sp-3)}.floating-panel--minimized{height:auto!important}.param-slider{display:flex;flex-direction:column;gap:4px;padding:var(--sp-2) 0}.param-slider__header{display:flex;align-items:center;justify-content:space-between}.param-slider__label{font-size:var(--fs-xs);font-weight:500;color:var(--text-secondary)}.param-slider__value{display:flex;align-items:center;gap:2px}.param-slider__num{width:52px;padding:2px 4px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--fs-xs);text-align:right;outline:none}.param-slider__num:focus{border-color:var(--border-focus)}.param-slider__unit{font-size:var(--fs-xs);color:var(--text-tertiary)}.param-slider__range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--border-default);outline:none;cursor:pointer}.param-slider__range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-blue);border:2px solid var(--bg-surface);box-shadow:0 1px 3px #0003;cursor:pointer;transition:transform var(--duration-fast)}.param-slider__range::-webkit-slider-thumb:hover{transform:scale(1.2)}.param-slider__range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent-blue);border:2px solid var(--bg-surface);box-shadow:0 1px 3px #0003;cursor:pointer}.shortcuts-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:#00000080;display:flex;align-items:center;justify-content:center;animation:fadeIn var(--duration-fast) var(--ease-out)}.shortcuts-dialog{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:440px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp var(--duration-normal) var(--ease-out)}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border-subtle)}.shortcuts-title{font-size:var(--fs-lg);font-weight:600;color:var(--text-primary)}.shortcuts-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--duration-fast)}.shortcuts-close:hover{background:var(--bg-hover);color:var(--text-primary)}.shortcuts-body{padding:var(--sp-3) var(--sp-5);overflow-y:auto}.shortcuts-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.shortcuts-row:last-child{border-bottom:none}.shortcuts-desc{font-size:var(--fs-sm);color:var(--text-secondary)}.shortcuts-keys{display:flex;align-items:center;gap:2px}.shortcuts-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;padding:2px 6px;background:var(--bg-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:500;color:var(--text-primary);box-shadow:0 1px 0 var(--border-default)}.shortcuts-plus{font-size:var(--fs-xs);color:var(--text-tertiary);margin:0 1px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg-app)}.app-layout__body{display:flex;flex:1;overflow:hidden}.sidebar-shell{display:flex;flex-direction:column;background:var(--bg-sidebar);border-right:1px solid var(--border-default);z-index:var(--z-sidebar);flex-shrink:0;transition:width var(--duration-normal) var(--ease-out);overflow:hidden}.sidebar-shell--open{width:var(--sidebar-w)}.sidebar-shell--collapsed{width:0}.sidebar-shell__title{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:var(--sp-3) var(--sp-4) var(--sp-2);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.sidebar-shell__content{flex:1;overflow-y:auto;padding:var(--sp-2)}.bottom-panel{display:flex;flex-direction:column;height:var(--bottom-panel-h);background:var(--bg-panel);border-top:1px solid var(--border-default);flex-shrink:0;transition:height var(--duration-normal) var(--ease-out)}.bottom-panel--collapsed{height:33px}.bottom-panel__header{display:flex;align-items:center;justify-content:space-between;height:33px;min-height:33px;padding:0 var(--sp-3);background:var(--bg-raised);border-bottom:1px solid var(--border-subtle)}.bottom-panel__tabs{display:flex;gap:var(--sp-1);overflow-x:auto}.bottom-panel__tab{display:flex;align-items:center;gap:4px;padding:4px 10px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:500;cursor:pointer;transition:color var(--duration-fast),background var(--duration-fast);white-space:nowrap}.bottom-panel__tab:hover{background:var(--bg-hover);color:var(--text-secondary)}.bottom-panel__tab--active{background:var(--primary-muted);color:var(--accent-blue)}.bottom-panel__tab-icon{display:flex;align-items:center;font-size:12px}.bottom-panel__toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-tertiary);cursor:pointer;transition:background var(--duration-fast)}.bottom-panel__toggle:hover{background:var(--bg-hover)}.bottom-panel__body{flex:1;overflow:auto;padding:var(--sp-2) var(--sp-3)}.module-shell{display:flex;flex-direction:column;flex:1;overflow:hidden}.module-shell__workspace{display:flex;flex:1;overflow:hidden}.module-shell__canvas{flex:1;display:flex;justify-content:center;align-items:center;background:var(--bg-canvas);overflow:auto;position:relative}.home-page{flex:1;overflow-y:auto;padding:var(--sp-8) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-12);max-width:1200px;margin:0 auto;width:100%}.home-hero{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-8) 0}.home-hero__content{flex:1}.home-hero__title{font-size:2.5rem;font-weight:700;line-height:1.15;color:var(--text-primary);letter-spacing:-.03em}.home-hero__accent{background:linear-gradient(135deg,var(--accent-blue),var(--accent-violet));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-hero__subtitle{margin-top:var(--sp-4);font-size:var(--fs-lg);color:var(--text-secondary);line-height:1.6;max-width:520px}.home-hero__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-6)}.home-hero__visual{flex-shrink:0}.home-hero__graphic{width:200px;height:200px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--primary-muted),rgba(139,92,246,.12));display:flex;align-items:center;justify-content:center;border:1px solid var(--border-default)}.home-hero__emoji{font-size:80px}.home-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--fs-md);font-weight:600;text-decoration:none;transition:background var(--duration-fast),transform var(--duration-fast),box-shadow var(--duration-fast);cursor:pointer}.home-btn:hover{transform:translateY(-1px);text-decoration:none}.home-btn--primary{background:var(--accent-blue);color:#fff}.home-btn--primary:hover{background:var(--primary-hover);box-shadow:0 4px 16px #3b82f64d;color:#fff}.home-btn--secondary{background:var(--bg-raised);color:var(--text-primary);border:1px solid var(--border-default)}.home-btn--secondary:hover{background:var(--bg-hover)}.home-features__heading{font-size:var(--fs-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-4)}.home-features__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4)}.home-card{display:flex;flex-direction:column;padding:var(--sp-5);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);text-decoration:none;color:var(--text-primary);position:relative;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast)}.home-card:hover{border-color:var(--accent-blue);box-shadow:0 4px 20px #3b82f61a;transform:translateY(-2px);text-decoration:none}.home-card__icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--primary-muted);color:var(--accent-blue);display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:var(--sp-3)}.home-card__title{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--sp-1)}.home-card__desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.5;flex:1}.home-card__arrow{position:absolute;top:var(--sp-4);right:var(--sp-4);color:var(--text-tertiary);opacity:0;transform:translate(-4px);transition:opacity var(--duration-fast),transform var(--duration-fast)}.home-card:hover .home-card__arrow{opacity:1;transform:translate(0)}.home-stats{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap}.home-stat{display:flex;flex-direction:column;align-items:center;padding:var(--sp-5) var(--sp-8);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:140px}.home-stat__num{font-size:var(--fs-2xl);font-weight:700;color:var(--accent-blue)}.home-stat__label{font-size:var(--fs-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--sp-1)}@media(max-width:768px){.home-hero{flex-direction:column;text-align:center}.home-hero__subtitle{max-width:100%}.home-hero__actions{justify-content:center}.home-hero__title{font-size:1.8rem}}.about-page{flex:1;overflow-y:auto;padding:var(--sp-8) var(--sp-6);max-width:800px;margin:0 auto;width:100%}.about-page__title{font-size:var(--fs-3xl);font-weight:700;margin-bottom:var(--sp-6);color:var(--text-primary)}.about-page__body{display:flex;flex-direction:column;gap:var(--sp-6)}.about-section h2{font-size:var(--fs-xl);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-2)}.about-section p{color:var(--text-secondary);line-height:1.7}.about-section ul{padding-left:var(--sp-5);color:var(--text-secondary);line-height:2}.about-section li strong{color:var(--text-primary)}.contact-page{flex:1;overflow-y:auto;padding:var(--sp-8) var(--sp-6);max-width:800px;margin:0 auto;width:100%}.contact-page__title{font-size:var(--fs-3xl);font-weight:700;margin-bottom:var(--sp-6);color:var(--text-primary)}.contact-page__body{display:flex;flex-direction:column;gap:var(--sp-4)}.contact-page__body>p{color:var(--text-secondary);line-height:1.7}.contact-card{padding:var(--sp-5);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.contact-card h3{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.contact-card p{font-size:var(--fs-sm);color:var(--text-secondary)}.mod-dash{flex:1;overflow-y:auto;padding:var(--sp-8) var(--sp-6);max-width:1100px;margin:0 auto;width:100%}.mod-dash__header{margin-bottom:var(--sp-8)}.mod-dash__title{font-size:var(--fs-3xl);font-weight:700;color:var(--text-primary)}.mod-dash__subtitle{margin-top:var(--sp-2);font-size:var(--fs-md);color:var(--text-secondary);max-width:600px}.mod-dash__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.mod-card{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5);background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);text-decoration:none;color:inherit;position:relative;transition:border-color var(--duration-fast),box-shadow var(--duration-fast),transform var(--duration-fast)}.mod-card:hover{border-color:var(--accent-blue);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}.mod-card__icon{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:20px}.mod-card__body{flex:1;min-width:0}.mod-card__title{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);margin-bottom:var(--sp-1)}.mod-card__desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.5;margin-bottom:var(--sp-2)}.mod-card__tags{display:flex;flex-wrap:wrap;gap:4px}.mod-card__tag{font-size:var(--fs-xs);padding:2px 8px;border-radius:var(--radius-full);background:var(--bg-raised);color:var(--text-tertiary);border:1px solid var(--border-subtle)}.mod-card__arrow{position:absolute;top:var(--sp-5);right:var(--sp-5);color:var(--text-tertiary);opacity:0;transform:translate(-4px);transition:opacity var(--duration-fast),transform var(--duration-fast)}.mod-card:hover .mod-card__arrow{opacity:1;transform:translate(0)}.toolbar{display:flex;flex-direction:column;gap:6px;padding:12px;width:220px;background:#f4f6f8;height:auto;box-sizing:border-box;overflow-y:auto;flex:1}.toolbar-title{margin:0 0 4px;font-size:16px;color:#333;text-align:center}.toolbar-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#777;margin-bottom:2px}.toolbar-btn{padding:7px 10px;font-size:13px;border:1px solid #c0c0c0;border-radius:6px;cursor:pointer;transition:background .2s,transform .1s;text-align:left}.toolbar-btn:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000001f}.toolbar-btn:active{transform:translateY(0)}.toolbar-row{display:flex;gap:6px}.toolbar-row .toolbar-btn{flex:1;text-align:center;padding:8px 4px;font-size:13px}.draw-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:4px}.draw-mode-btn{text-align:center;padding:6px 4px;font-size:11px}.draw-mode-active{border:2px solid #1a237e!important;background:#c5cae9!important;font-weight:600}.btn-select{background:#eceff1}.btn-line{background:#e3f2fd}.btn-circle{background:#fce4ec}.btn-rect{background:#e3f2fd}.btn-rounded-rect{background:#fff3e0}.btn-ellipse{background:#e8eaf6}.btn-triangle{background:#e8f5e9}.btn-polygon{background:#f3e5f5}.btn-arrow{background:#ffebee}.btn-text{background:#e8f5e9}.btn-delete{background:#ffcdd2}.btn-undo,.btn-redo{background:#e8eaf6}.btn-generate{background:#ede7f6}.btn-download-tex{background:#e0f7fa}.btn-download-png{background:#f3e5f5}.btn-export{background:#fff3e0}.btn-clear{background:#ffebee}.toolbar-divider{border:none;border-top:1px solid #d0d7de;margin:2px 0}.canvas-wrapper{flex:1;display:flex;justify-content:center;align-items:center;padding:20px;background:#e8ecf1;overflow:auto}.canvas-wrapper canvas{border:2px solid #90a4ae;border-radius:4px;box-shadow:0 4px 12px #0000001a}.shape-props-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f9fafb;border-top:1px solid #d0d7de}.props-title{margin:0 0 4px;font-size:13px;color:#555;text-align:center;text-transform:uppercase;letter-spacing:.5px}.prop-row{display:flex;align-items:center;gap:6px;font-size:12px}.prop-label{width:48px;flex-shrink:0;color:#555;font-weight:500}.prop-row input[type=color]{width:28px;height:24px;border:1px solid #c0c0c0;border-radius:4px;padding:1px;cursor:pointer}.prop-row input[type=range]{flex:1;min-width:60px}.prop-value{width:36px;text-align:right;font-size:11px;color:#777}.fill-group{display:flex;align-items:center;gap:6px}.transparent-check{display:flex;align-items:center;gap:3px;font-size:11px;color:#666;cursor:pointer}.transparent-check input[type=checkbox]{width:13px;height:13px}.apply-btn{padding:6px 10px;font-size:12px;background:#e3f2fd;border:1px solid #90caf9;border-radius:5px;cursor:pointer;transition:background .2s}.apply-btn:hover{background:#bbdefb}.fcp-panel{padding:10px 12px;display:flex;flex-direction:column;gap:7px;border-top:1px solid #c5cae9;background:#e8eaf6}.fcp-title{margin:0 0 2px;font-size:14px;font-weight:700;color:#283593;letter-spacing:.3px}.fcp-toggle-btn{padding:7px 0;font-size:13px;font-weight:600;border:2px solid #5c6bc0;border-radius:5px;background:#fff;color:#283593;cursor:pointer;transition:all .15s}.fcp-toggle-btn:hover{background:#e8eaf6}.fcp-toggle-active{background:#283593;color:#fff;border-color:#283593}.fcp-toggle-active:hover{background:#1a237e}.fcp-row{display:flex;align-items:center;gap:6px;font-size:12px}.fcp-row-col{flex-direction:column;align-items:stretch}.fcp-label{width:52px;flex-shrink:0;font-size:11px;font-weight:600;color:#444}.fcp-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #c5cae9;border-radius:4px;background:#fff;cursor:pointer}.fcp-select:focus{border-color:#5c6bc0;outline:none}.fcp-num{width:44px;padding:4px;font-size:12px;text-align:center;border:1px solid #c5cae9;border-radius:4px;background:#fff}.fcp-num:focus{border-color:#5c6bc0;outline:none}.fcp-x{font-size:13px;color:#666;font-weight:600}.fcp-checkbox-row{gap:6px;font-size:11px;color:#555;cursor:pointer}.fcp-checkbox-row input{accent-color:#5c6bc0}.fcp-input{padding:4px 6px;font-size:12px;border:1px solid #c5cae9;border-radius:4px;background:#fff}.fcp-input:focus{border-color:#5c6bc0;outline:none}.fcp-export-row{display:flex;gap:6px}.fcp-btn{flex:1;padding:6px 0;font-size:12px;font-weight:600;border:none;border-radius:5px;cursor:pointer;transition:opacity .15s;color:#fff}.fcp-btn:hover{opacity:.88}.fcp-btn-png{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.fcp-btn-latex{background:linear-gradient(135deg,#5c6bc0,#3949ab)}.fcp-custom-labels{display:flex;flex-direction:column;gap:4px}.fcp-sublabel{font-size:10px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.3px}.fcp-label-grid{display:flex;flex-wrap:wrap;gap:4px}.fcp-label-input{width:52px;padding:3px 5px;font-size:11px;font-family:serif;font-weight:600;text-align:center;border:1px solid #c5cae9;border-radius:3px;background:#fff}.fcp-label-input:focus{border-color:#5c6bc0;outline:none;background:#e8eaf6}.fcp-label-input::placeholder{color:#aaa;font-weight:400}.fcp-hint{font-size:10px;color:#777;line-height:1.5;padding:4px 6px;background:#f5f5f5;border-radius:4px;border:1px solid #e0e0e0}.figure-canvas-root{display:flex;flex-direction:column;gap:6px;align-items:center;width:100%}.fc-toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#e8eaf6;border-radius:6px;flex-wrap:wrap}.fc-btn{padding:5px 10px;font-size:11px;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:opacity .15s}.fc-btn:hover{opacity:.85}.fc-btn-capture{background:#1565c0;color:#fff}.fc-btn-clear{background:#e53935;color:#fff}.fc-btn-reset{background:#6a1b9a;color:#fff}.fc-btn-export{background:#2e7d32;color:#fff}.fc-sep{width:1px;height:20px;background:#bbb;margin:0 4px}.fc-grid{background:#f5f5f5;border:2px solid #ccc;border-radius:4px;overflow:hidden;-webkit-user-select:none;user-select:none}.fc-cell{transition:box-shadow .15s}.fc-cell:hover{box-shadow:0 0 0 2px #1565c040}.fc-cell-drop-target{box-shadow:0 0 0 3px #1565c0,inset 0 0 12px #1565c026!important;border-radius:3px}.fc-cell-idx{position:absolute;bottom:2px;right:4px;font-size:10px;font-weight:700;color:#999;pointer-events:none}.fc-cell-idx-active{color:#1565c0}.fc-resize-guide{position:absolute;z-index:5;pointer-events:none;transition:background .12s}.fc-resize-guide-v{cursor:col-resize;background:transparent}.fc-resize-guide-h{cursor:row-resize;background:transparent}.fc-grid:hover .fc-resize-guide-v,.fc-grid:hover .fc-resize-guide-h{background:#1565c014}.fc-panel-selector{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.fc-panel-btn{padding:4px 10px;font-size:11px;font-weight:600;font-family:serif;border:2px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;transition:all .15s}.fc-panel-btn:hover{border-color:#90caf9}.fc-panel-btn-active{border-color:#1565c0;background:#e3f2fd;color:#1565c0}.fc-panel-btn-filled{background:#e8f5e9}.fc-panel-btn-active.fc-panel-btn-filled{background:#c8e6c9;border-color:#1565c0}.figure-panel{border-radius:2px;overflow:hidden;transition:border-color .15s}.figure-panel:hover{border-color:#90caf9!important}.collapsible-panel{transition:max-height .3s ease}.collapsible-panel.closed{max-height:42px;overflow:hidden}.collapsible-panel.open{max-height:350px;overflow:auto}.collapsible-header{display:flex;align-items:center;justify-content:space-between}.collapsible-toggle{flex:1;padding:10px 16px;font-size:13px;font-weight:600;border:none;cursor:pointer;text-align:left}.collapsible-toggle:hover{filter:brightness(.95)}.collapsible-header-right{padding-right:10px}.collapsible-body{padding:12px 16px;font-size:13px;line-height:1.6;overflow-x:auto}.collapsible-panel.light{border-top:2px solid #d0d7de;background:#fafbfc}.collapsible-panel.light .collapsible-toggle{background:#f4f6f8;color:#555}.collapsible-panel.light .collapsible-body{color:#333;white-space:pre-wrap;word-break:break-word;font-family:Consolas,Fira Code,monospace;font-size:12px}.collapsible-panel.dark{border-top:2px solid #1a237e;background:#1e1e2e;color:#cdd6f4}.collapsible-panel.dark .collapsible-header{background:#2a2a3c}.collapsible-panel.dark .collapsible-toggle{background:transparent;color:#89b4fa}.collapsible-panel.dark .collapsible-toggle:hover{background:#313244}.collapsible-panel.dark .collapsible-body{font-family:Consolas,Fira Code,Courier New,monospace;white-space:pre}.collapsible-panel.dark .copy-btn{padding:5px 12px;font-size:12px;border:1px solid #585b70;border-radius:4px;background:#313244;color:#cdd6f4;cursor:pointer}.collapsible-panel.dark .copy-btn:hover{background:#45475a}.code-panel{border-top:2px solid #1a237e;background:#1e1e2e;color:#cdd6f4;transition:max-height .3s ease}.code-panel.closed{max-height:42px;overflow:hidden}.code-panel.open{max-height:450px;overflow:auto}.code-panel-header{display:flex;align-items:center;justify-content:space-between;background:#2a2a3c}.code-toggle-btn{flex:1;padding:10px 16px;font-size:13px;font-weight:600;background:transparent;border:none;cursor:pointer;text-align:left;color:#89b4fa}.code-toggle-btn:hover{background:#313244}.code-copy-btn{padding:6px 14px;margin-right:10px;font-size:12px;border:1px solid #585b70;border-radius:4px;background:#313244;color:#cdd6f4;cursor:pointer}.code-copy-btn:hover{background:#45475a}.code-btn-group{display:flex;gap:4px;padding-right:8px}.code-action-btn{padding:4px 8px;font-size:11px;font-weight:500;border:1px solid #585b70;border-radius:3px;background:#313244;color:#cdd6f4;cursor:pointer;white-space:nowrap;transition:background .15s}.code-action-btn:hover{background:#45475a}.code-content{margin:0;padding:14px 18px;font-family:Consolas,Fira Code,Courier New,monospace;font-size:13px;line-height:1.6;white-space:pre;overflow-x:auto;display:block}.code-editor{width:100%;min-height:260px;max-height:380px;padding:14px 18px;margin:0;font-family:Consolas,Fira Code,Courier New,monospace;font-size:13px;line-height:1.6;background:#181825;color:#cdd6f4;border:none;border-top:1px solid #313244;resize:vertical;outline:none;-moz-tab-size:2;tab-size:2;box-sizing:border-box}.code-editor:focus{border-top-color:#89b4fa}.code-status{padding:4px 12px;font-size:11px;color:#a6e3a1;background:#1e1e2e;border-top:1px solid #313244;text-align:center;animation:code-flash .2s ease}@keyframes code-flash{0%{opacity:0}to{opacity:1}}.sketch-canvas-wrapper{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.sketch-mode-badge{position:absolute;top:var(--sp-3);right:var(--sp-3);padding:4px 12px;border-radius:var(--radius-full);background:var(--primary-muted);color:var(--accent-blue);font-size:var(--fs-xs);font-weight:600;z-index:5}.graph-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f0f4f8;border-top:1px solid #d0d7de}.graph-panel-title{margin:0 0 4px;font-size:13px;color:#1a237e;text-align:center;text-transform:uppercase;letter-spacing:.5px}.gp-row{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.gp-label{width:48px;flex-shrink:0;color:#555;font-weight:500}.gp-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;background:#fff}.gp-select optgroup{font-weight:600;color:#1a237e}.gp-select option{font-weight:400;color:#333}.gp-input{width:56px;padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;text-align:center;transition:border-color .15s}.gp-input:focus{outline:none;border-color:#5c6bc0;box-shadow:0 0 0 2px #5c6bc02e}.gp-input-error{border-color:#e53935;background:#fff5f5}.gp-input-error:focus{box-shadow:0 0 0 2px #e539352e}.gp-error{font-size:10px;color:#e53935;font-weight:500;white-space:nowrap}.gp-no-params{font-size:11px;color:#90a4ae;text-align:center;padding:2px 0;font-style:italic}.gp-check-row{gap:4px}.gp-check-row .gp-label{width:auto}.gp-check-row input[type=checkbox]{width:14px;height:14px}.gp-generate-btn{padding:8px 12px;font-size:13px;font-weight:600;background:#c5cae9;border:1px solid #7986cb;border-radius:6px;cursor:pointer;transition:background .2s;color:#1a237e}.gp-generate-btn:hover{background:#9fa8da}.gp-generate-btn:active{background:#7986cb;color:#fff}.gtp{display:flex;flex-direction:column;gap:6px;padding:12px;background:#f0f4f8;border-top:1px solid #d0d7de}.gtp-title{margin:0 0 4px;font-size:13px;color:#1a237e;text-align:center;text-transform:uppercase;letter-spacing:.5px}.gtp-section{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#555;margin-top:6px;padding-bottom:2px;border-bottom:1px solid #d0d7de}.gtp-sub{font-size:11px;font-weight:600;color:#666;margin-top:4px}.gtp-row{display:flex;align-items:center;gap:6px;font-size:12px}.gtp-lbl{width:52px;flex-shrink:0;color:#555;font-weight:500;font-size:11px}.gtp-val{width:36px;text-align:right;font-size:11px;color:#777}.gtp-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;background:#fff}.gtp-num{width:56px;padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;text-align:center}.gtp-check{gap:4px}.gtp-check input[type=checkbox]{width:14px;height:14px}.gtp-row input[type=color]{width:32px;height:24px;border:1px solid #b0bec5;border-radius:4px;padding:0;cursor:pointer}.gtp-row input[type=range]{flex:1;height:4px}.gtp-btn{padding:6px 10px;font-size:12px;font-weight:600;border-radius:5px;cursor:pointer;transition:background .2s;border:1px solid #7986cb}.gtp-btn-generate{margin-top:4px;background:#c5cae9;color:#1a237e}.gtp-btn-generate:hover{background:#9fa8da}.gtp-btn-generate:active{background:#7986cb;color:#fff}.gtp-btn-add{background:#e8f5e9;border-color:#81c784;color:#2e7d32;font-size:11px;padding:4px 8px}.gtp-btn-add:hover{background:#c8e6c9}.gtp-editor{display:flex;flex-direction:column;gap:4px}.gtp-node-list{max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:3px}.gtp-node-item{display:flex;flex-direction:column;gap:2px}.gtp-node-row{display:flex;align-items:center;gap:4px}.gtp-node-label{flex:1;padding:3px 6px;font-size:11px;border:1px solid #ccc;border-radius:3px;background:#fff;min-width:0}.gtp-pos-sel{width:62px;padding:2px 3px;font-size:10px;border:1px solid #b0bec5;border-radius:3px;background:#fff;flex-shrink:0}.gtp-custom-offset{display:flex;gap:8px;padding-left:4px}.gtp-offset-lbl{display:flex;align-items:center;gap:3px;font-size:10px;color:#666}.gtp-offset-num{width:44px;padding:2px 4px;font-size:10px;border:1px solid #ccc;border-radius:3px;text-align:center}.gtp-edge-list{max-height:100px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.gtp-edge-row{display:flex;align-items:center;gap:4px;font-size:11px}.gtp-edge-label{flex:1;color:#444}.gtp-add-edge{display:flex;align-items:center;gap:4px;margin-top:2px}.gtp-edge-sel{flex:1;padding:3px 4px;font-size:11px;border:1px solid #b0bec5;border-radius:3px}.gtp-edge-arrow{color:#888;font-size:12px}.gtp-btn-add-edge{background:#e3f2fd;border-color:#64b5f6;color:#1565c0;font-size:13px;padding:2px 8px;line-height:1}.gtp-btn-add-edge:hover{background:#bbdefb}.gtp-btn-xs{width:20px;height:20px;padding:0;font-size:14px;line-height:18px;text-align:center;border:1px solid #ccc;border-radius:3px;background:#f5f5f5;color:#555;cursor:pointer;flex-shrink:0}.gtp-btn-xs:hover{background:#e0e0e0}.gtp-btn-xs.gtp-btn-remove{border-color:#ef9a9a;background:#ffebee;color:#c62828}.gtp-btn-xs.gtp-btn-remove:hover{background:#ffcdd2}.gtp-btn-xs.gtp-btn-active{border-color:#64b5f6;background:#bbdefb;color:#1565c0;font-weight:700}.gtp-add-edge-opts{display:flex;gap:10px;margin-top:2px;padding-left:2px}.gtp-check-sm{display:flex;align-items:center;gap:3px;font-size:10px;color:#666;cursor:pointer}.gtp-check-sm input[type=checkbox]{width:12px;height:12px}.plot-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f0f7f4;border-top:1px solid #a5d6a7}.plot-panel-title{margin:0 0 4px;font-size:13px;color:#1b5e20;text-align:center;text-transform:uppercase;letter-spacing:.5px}.pp-row{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.pp-label{width:52px;flex-shrink:0;color:#555;font-weight:500;font-size:11px}.pp-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #a5d6a7;border-radius:4px;background:#fff}.pp-select optgroup{font-weight:600;color:#2e7d32}.pp-select option{font-weight:400;color:#333}.pp-input{padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;transition:border-color .15s}.pp-input:focus{outline:none;border-color:#43a047;box-shadow:0 0 0 2px #43a0472e}.pp-input-text{flex:1;min-width:80px;font-family:Consolas,Fira Code,monospace}.pp-input-num{width:64px;text-align:center}.pp-error{font-size:11px;color:#c62828;background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;padding:4px 8px;word-break:break-word}.pp-generate-btn{padding:8px 12px;font-size:13px;font-weight:600;background:#a5d6a7;border:1px solid #66bb6a;border-radius:6px;cursor:pointer;transition:background .2s;color:#1b5e20}.pp-generate-btn:hover{background:#81c784}.pp-generate-btn:active{background:#66bb6a;color:#fff}.comp-plot-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f3f0f7;border-top:1px solid #b39ddb}.comp-panel-title{margin:0 0 4px;font-size:13px;color:#4527a0;text-align:center;text-transform:uppercase;letter-spacing:.5px}.cp-row{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.cp-label{width:72px;flex-shrink:0;color:#555;font-weight:500;font-size:11px}.cp-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #b39ddb;border-radius:4px;background:#fff}.cp-select optgroup{font-weight:600;color:#512da8}.cp-select option{font-weight:400;color:#333}.cp-input{padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;transition:border-color .15s}.cp-input:focus{outline:none;border-color:#7e57c2;box-shadow:0 0 0 2px #7e57c22e}.cp-input-text{flex:1;min-width:80px;font-family:Consolas,Fira Code,monospace}.cp-input-num{width:64px;text-align:center}.cp-error{font-size:11px;color:#c62828;background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;padding:4px 8px;word-break:break-word}.cp-generate-btn{padding:8px 12px;font-size:13px;font-weight:600;background:#b39ddb;color:#311b92;border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .1s}.cp-generate-btn:hover{background:#9575cd;color:#fff}.cp-generate-btn:active{transform:scale(.97)}.cp-sliders{background:#ede7f6;border:1px solid #b39ddb;border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:6px}.cp-sliders-header{display:flex;align-items:center;justify-content:space-between}.cp-sliders-title{font-size:11px;font-weight:600;color:#4527a0;text-transform:uppercase;letter-spacing:.4px}.cp-live-toggle{display:flex;align-items:center;gap:4px;font-size:10px;color:#555;cursor:pointer;-webkit-user-select:none;user-select:none}.cp-live-toggle input{margin:0;accent-color:#7e57c2}.cp-slider-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.cp-slider-name{width:20px;font-size:12px;font-weight:700;color:#311b92;font-family:Consolas,Fira Code,monospace;text-align:center}.cp-slider-range{flex:1;min-width:80px;height:4px;accent-color:#7e57c2;cursor:pointer}.cp-slider-val{width:42px;font-size:11px;font-family:Consolas,Fira Code,monospace;color:#333;text-align:right;font-weight:500}.cp-slider-config{display:flex;gap:3px;width:100%;padding-left:25px}.cp-slider-cfg-input{width:48px;padding:2px 4px;font-size:10px;border:1px solid #ce93d8;border-radius:3px;text-align:center;background:#faf5ff;color:#555}.cp-slider-cfg-input:focus{outline:none;border-color:#7e57c2}.thm-panel{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.thm-panel-title{margin:0 0 2px;font-size:14px;font-weight:700;color:#00695c;letter-spacing:.3px}.thm-row{display:flex;align-items:center;gap:8px}.thm-row-col{flex-direction:column;align-items:stretch}.thm-label{font-size:12px;font-weight:600;color:#333;min-width:62px;white-space:nowrap}.thm-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #b2dfdb;border-radius:4px;background:#e0f2f1;cursor:pointer;outline:none}.thm-select:focus{border-color:#00897b;box-shadow:0 0 0 2px #00897b26}.thm-textarea{width:100%;padding:6px 8px;font-size:12px;font-family:inherit;border:1px solid #b2dfdb;border-radius:4px;background:#e0f2f1;resize:vertical;box-sizing:border-box;outline:none;line-height:1.4}.thm-textarea:focus{border-color:#00897b;box-shadow:0 0 0 2px #00897b26}.thm-textarea::placeholder{color:#80cbc4;font-style:italic}.thm-preview{background:#f1f8f6;border:1px solid #b2dfdb;border-radius:4px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.thm-tag-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.thm-tag-label{font-size:10px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.4px}.thm-tag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:3px;font-weight:500}.thm-tag-shape{background:#b2dfdb;color:#004d40}.thm-tag-mod{background:#c8e6c9;color:#1b5e20}.thm-tag-cons{background:#bbdefb;color:#0d47a1}.thm-tag-lbl{background:#fff3e0;color:#e65100}.thm-hint{font-size:11px;color:#999;font-style:italic}.thm-error{font-size:11px;color:#c62828;background:#fce4ec;border:1px solid #ef9a9a;padding:4px 8px;border-radius:4px}.thm-generate-btn{padding:7px 0;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(135deg,#00897b,#00695c);border:none;border-radius:5px;cursor:pointer;transition:opacity .15s}.thm-generate-btn:hover:not(:disabled){opacity:.88}.thm-generate-btn:disabled{opacity:.45;cursor:default}:root{--exp-bg: #e8f5e9;--exp-bg-dark: #c8e6c9;--exp-border: #81c784;--exp-border-light: #a5d6a7;--exp-primary: #43a047;--exp-primary-light:#66bb6a;--exp-text: #1b5e20;--exp-text-muted: #555;--exp-accent: #2e7d32;--exp-mono: "Consolas", "Fira Code", monospace}.exp-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--exp-bg);border-top:1px solid var(--exp-border)}.exp-panel-title{margin:0 0 4px;font-size:13px;color:var(--exp-text);text-align:center;text-transform:uppercase;letter-spacing:.5px}.exp-row{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.exp-label{width:72px;flex-shrink:0;color:var(--exp-text-muted);font-weight:500;font-size:11px}.exp-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid var(--exp-border);border-radius:4px;background:#fff}.exp-select optgroup{font-weight:600;color:var(--exp-accent)}.exp-select option{font-weight:400;color:#333}.exp-input{padding:4px 6px;font-size:12px;border:1px solid var(--exp-border-light);border-radius:4px;transition:border-color .15s}.exp-input:focus{outline:none;border-color:var(--exp-primary);box-shadow:0 0 0 2px #43a0472e}.exp-input-text{flex:1;min-width:80px;font-family:var(--exp-mono)}.exp-input-num{width:56px;text-align:center}.exp-sweep-section{background:var(--exp-bg-dark);border:1px solid var(--exp-border);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:6px;transition:border-color .2s}.exp-sweep-section.exp-sweep-invalid{border-color:#ef5350;background:#fff3f3}.exp-sweep-header{display:flex;align-items:center;justify-content:space-between}.exp-sweep-title{font-size:11px;font-weight:600;color:var(--exp-text);text-transform:uppercase;letter-spacing:.4px}.exp-sweep-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.exp-sweep-param-name{width:40px;padding:3px 5px;font-size:12px;font-weight:700;color:var(--exp-text);font-family:var(--exp-mono);text-align:center;border:1px solid var(--exp-border);border-radius:3px;background:#fff}.exp-sweep-field{display:flex;flex-direction:column;gap:1px;align-items:center}.exp-sweep-field-label{font-size:9px;color:#666;text-transform:uppercase}.exp-sweep-preview{font-size:10px;color:var(--exp-accent);font-family:var(--exp-mono);word-break:break-all;line-height:1.4;padding:3px 4px;background:var(--exp-bg);border-radius:3px;max-height:40px;overflow-y:auto}.exp-sweep-error{font-size:10px;color:#c62828;padding:2px 4px}.exp-panel-count{font-size:10px;color:#666;text-align:center}.exp-run-btn{padding:8px 12px;font-size:13px;font-weight:600;background:var(--exp-primary-light);color:var(--exp-text);border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .1s}.exp-run-btn:hover{background:var(--exp-primary);color:#fff}.exp-run-btn:active{transform:scale(.97)}.exp-run-btn:disabled{background:var(--exp-bg-dark);color:#999;cursor:not-allowed}.exp-cancel-btn{padding:8px 12px;font-size:13px;font-weight:600;background:#ef5350;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .1s}.exp-cancel-btn:hover{background:#c62828}.exp-cancel-btn:active{transform:scale(.97)}.exp-btn-row{display:flex;gap:6px;flex-wrap:wrap}.exp-btn-small{padding:5px 8px;font-size:11px;font-weight:500;background:var(--exp-border-light);color:var(--exp-text);border:none;border-radius:4px;cursor:pointer;transition:background .15s}.exp-btn-small:hover{background:var(--exp-border)}.exp-progress{height:4px;border-radius:2px;background:var(--exp-bg-dark);overflow:hidden}.exp-progress-bar{height:100%;background:var(--exp-primary);transition:width .2s ease}.exp-progress-text{font-size:10px;color:var(--exp-text-muted);text-align:center}.exp-progress-errors{color:#c62828;font-weight:600}.exp-error{font-size:11px;color:#c62828;background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;padding:4px 8px;word-break:break-word}.exp-model-params{background:var(--exp-bg);border:1px solid var(--exp-border-light);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:5px}.exp-model-params-title{font-size:10px;font-weight:600;color:var(--exp-accent);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}.exp-mode-toggle{display:flex;border:1px solid var(--exp-border);border-radius:4px;overflow:hidden}.exp-mode-btn{flex:1;padding:4px 8px;font-size:11px;font-weight:500;border:none;background:var(--exp-bg);color:var(--exp-text-muted);cursor:pointer;transition:background .15s,color .15s}.exp-mode-btn.active{background:var(--exp-primary);color:#fff}.exp-grid-root{margin-top:8px;background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.exp-grid-toolbar{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#f1f8e9;border-bottom:1px solid var(--exp-bg-dark);flex-wrap:wrap}.exp-grid-toolbar-title{font-size:12px;font-weight:600;color:var(--exp-text);margin-right:auto}.exp-grid-container{display:grid;gap:6px;padding:8px}.exp-grid-cell{position:relative;background:#fff;border:1px solid #e0e0e0;border-radius:4px;overflow:hidden;cursor:pointer;transition:box-shadow .15s}.exp-grid-cell:hover{box-shadow:0 2px 8px #0000001f}.exp-grid-cell.selected{border-color:var(--exp-primary);box-shadow:0 0 0 2px #43a0474d}.exp-grid-cell-canvas{display:block;width:100%;height:auto}.exp-grid-cell-label{position:absolute;bottom:0;left:0;right:0;padding:3px 6px;font-size:10px;font-weight:600;color:#fff;background:#0000008c;text-align:center;font-family:var(--exp-mono)}.exp-grid-cell-error{width:100%;display:flex;align-items:center;justify-content:center;color:#999;font-size:11px;aspect-ratio:800 / 600;background:#f5f5f5}.exp-grid-loading{padding:12px;text-align:center;font-size:11px;color:var(--exp-text-muted);animation:exp-pulse 1.2s ease-in-out infinite}@keyframes exp-pulse{0%,to{opacity:1}50%{opacity:.5}}.exp-grid-hint{padding:12px;color:#666;font-size:12px}.exp-compare-canvas{margin-top:6px;border:1px solid #e0e0e0;border-radius:4px}.exp-compare-legend{padding:4px 8px;display:flex;flex-wrap:wrap;gap:6px}.exp-compare-legend-item{font-size:10px;display:flex;align-items:center;gap:3px}.exp-compare-legend-swatch{display:inline-block;width:14px;height:3px;border-radius:1px}.exp-anim-controls{display:flex;align-items:center;gap:6px;padding:4px 8px 6px}.exp-anim-slider{flex:1;accent-color:var(--exp-primary)}.exp-anim-label{font-size:11px;font-family:var(--exp-mono);color:#333;min-width:60px;text-align:right}.exp-anim-counter{font-size:10px;color:#999;text-align:center;padding-bottom:4px}.exp-filter-row{display:flex;gap:3px;flex-wrap:wrap;padding:4px 0}.exp-filter-chip{padding:2px 6px;font-size:10px;border-radius:10px;border:1px solid var(--exp-border);background:var(--exp-bg);color:var(--exp-text);cursor:pointer;transition:background .15s}.exp-filter-chip.active{background:var(--exp-primary);color:#fff;border-color:var(--exp-accent)}.exp-history{font-size:11px;color:var(--exp-text-muted)}.exp-history-empty{color:#999;text-align:center;padding:4px 0}.exp-history-item{display:flex;align-items:center;gap:4px;padding:3px 0;border-bottom:1px solid #f0f0f0}.exp-history-name{flex:1;font-weight:500;color:var(--exp-text);cursor:pointer}.exp-history-name:hover{text-decoration:underline}.exp-history-meta{font-size:10px;color:#999}.exp-history-delete{font-size:10px;color:#c62828;cursor:pointer;border:none;background:none;padding:0 2px}.sym-panel{display:flex;flex-direction:column;gap:8px;padding:10px;background:#f6f8fc;border-top:1px solid #d0d7de;font-size:12px}.sym-section{display:flex;flex-direction:column;gap:4px}.sym-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sym-label{width:62px;flex-shrink:0;color:#555;font-weight:500;font-size:11px}.sym-label-order{width:auto;margin-left:6px}.sym-input{flex:1;padding:5px 8px;font-size:12px;font-family:Consolas,Menlo,monospace;border:1px solid #b0bec5;border-radius:4px;background:#fff;transition:border-color .15s}.sym-input:focus{outline:none;border-color:#5c6bc0;box-shadow:0 0 0 2px #5c6bc02e}.sym-input-error{border-color:#e53935;background:#fff5f5}.sym-order-input{width:48px;flex:none;text-align:center}.sym-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;background:#fff}.sym-var-select{flex:0 0 52px}.sym-vars-detected{font-size:10px;color:#78909c;font-style:italic}.sym-btn{cursor:pointer;border:none;border-radius:4px;font-size:12px;font-weight:500;transition:background .15s,transform .1s}.sym-btn:active{transform:scale(.97)}.sym-btn-compute{padding:7px 0;background:#3949ab;color:#fff;letter-spacing:.3px}.sym-btn-compute:hover{background:#283593}.sym-btn-small{padding:3px 8px;background:#e8eaf6;color:#3949ab;font-size:11px}.sym-btn-small:hover{background:#c5cae9}.sym-btn-plot{background:#e3f2fd;color:#1565c0}.sym-btn-plot:hover{background:#bbdefb}.sym-btn-tiny{padding:2px 6px;background:transparent;color:#999;font-size:10px}.sym-btn-tiny:hover{color:#555}.sym-error{padding:4px 8px;background:#ffebee;border:1px solid #ffcdd2;border-radius:4px;color:#c62828;font-size:11px}.sym-result{display:flex;flex-direction:column;gap:4px;padding:8px;background:#e8eaf6;border-radius:6px;border:1px solid #c5cae9}.sym-result-label{font-size:10px;color:#5c6bc0;font-style:italic}.sym-result-formatted{font-family:Consolas,Menlo,monospace;font-size:14px;color:#1a237e;font-weight:600;word-break:break-all;padding:4px 0}.sym-result-latex-label{font-size:10px;color:#78909c;margin-top:2px}.sym-result-latex{display:block;font-family:Consolas,Menlo,monospace;font-size:11px;color:#37474f;background:#fff;padding:4px 6px;border-radius:3px;border:1px solid #cfd8dc;word-break:break-all;-webkit-user-select:all;user-select:all}.sym-result-actions{display:flex;gap:6px;margin-top:4px}.sym-solutions{display:flex;flex-direction:column;gap:4px}.sym-result-method{font-size:10px;color:#78909c;font-style:italic}.sym-solution-item{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:3px 0;border-bottom:1px solid #e0e0e0;font-size:12px}.sym-solution-item:last-child{border-bottom:none}.sym-sol-var{color:#5c6bc0;font-weight:600}.sym-sol-exact{font-family:Consolas,Menlo,monospace;color:#1a237e;font-weight:600}.sym-sol-approx{color:#78909c;font-size:11px}.sym-sol-latex{font-family:Consolas,Menlo,monospace;font-size:10px;color:#607d8b;background:#fff;padding:1px 4px;border-radius:2px}.sym-no-solution{color:#e53935;font-style:italic}.sym-history{border-top:1px solid #d0d7de;padding-top:6px;margin-top:4px}.sym-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.sym-history-title{font-size:10px;color:#78909c;text-transform:uppercase;letter-spacing:.4px}.sym-history-list{display:flex;flex-direction:column;gap:2px;max-height:120px;overflow-y:auto}.sym-history-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border:none;border-radius:3px;background:#fff;cursor:pointer;text-align:left;font-size:11px;transition:background .12s}.sym-history-item:hover{background:#e3f2fd}.sym-hist-op{flex-shrink:0;width:32px;font-size:9px;font-weight:600;color:#5c6bc0;text-transform:uppercase}.sym-hist-expr{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Consolas,Menlo,monospace;color:#333}.dat-panel{--dat-primary: #1976d2;--dat-primary-dark: #1565c0;--dat-bg: #fff;--dat-bg-alt: #f5f5f5;--dat-border: #e0e0e0;--dat-border-light: #f0f0f0;--dat-text: #333;--dat-text-muted: #888;--dat-text-secondary: #555;--dat-success: #43a047;--dat-warning: #e65100;--dat-accent-csv: #43a047;--dat-accent-json: #ff9800;--dat-accent-latex: #7b1fa2;--dat-mono: "Consolas", "Fira Code", "SF Mono", "Menlo", "Liberation Mono", monospace;display:flex;flex-direction:column;gap:8px;padding:8px 0;font-size:12px}.dat-btn{padding:6px 10px;font-size:11px;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:background .15s,transform .1s}.dat-btn:active{transform:scale(.97)}.dat-btn:disabled{opacity:.5;cursor:not-allowed}.dat-btn-extract{background:var(--dat-primary);color:#fff;font-size:12px;padding:8px 12px}.dat-btn-extract:hover{background:var(--dat-primary-dark)}.dat-btn-csv{background:var(--dat-accent-csv);color:#fff}.dat-btn-csv:hover{background:#2e7d32}.dat-btn-json{background:var(--dat-accent-json);color:#fff}.dat-btn-json:hover{background:#ef6c00}.dat-btn-latex{background:var(--dat-accent-latex);color:#fff}.dat-btn-latex:hover{background:#6a1b9a}.dat-btn-sm{padding:3px 8px;font-size:10px;background:#e3f2fd;color:var(--dat-primary-dark);border:1px solid #90caf9;border-radius:3px}.dat-btn-sm:hover{background:#bbdefb}.dat-btn-sm.active{background:var(--dat-primary);color:#fff;border-color:var(--dat-primary)}.dat-btn-row{display:flex;gap:5px;flex-wrap:wrap}.dat-flash{font-size:11px;text-align:center;padding:4px 8px;background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7;border-radius:4px;animation:dat-fadeIn .2s ease}@keyframes dat-fadeIn{0%{opacity:0}to{opacity:1}}.dat-ds-list{display:flex;align-items:center;gap:6px}.dat-label{font-size:11px;font-weight:600;color:var(--dat-text-secondary);white-space:nowrap}.dat-select{flex:1;font-size:11px;padding:3px 6px;border:1px solid #ccc;border-radius:4px}.dat-view-tabs{display:flex;gap:0;border-bottom:2px solid var(--dat-border)}.dat-view-tab{flex:1;padding:5px 8px;font-size:11px;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;color:var(--dat-text-muted);transition:color .15s}.dat-view-tab:hover{color:var(--dat-text)}.dat-view-tab.active{color:var(--dat-primary);border-bottom-color:var(--dat-primary)}.dat-table-wrap{display:flex;flex-direction:column;gap:4px}.dat-table-info{display:flex;justify-content:space-between;font-size:11px;color:var(--dat-text-secondary);padding:2px 0}.dat-table-count{font-family:var(--dat-mono);color:var(--dat-text-muted)}.dat-table-scroll{max-height:min(40vh,400px);overflow:auto;border:1px solid var(--dat-border);border-radius:4px}.dat-table{width:100%;border-collapse:collapse;font-size:11px;font-family:var(--dat-mono)}.dat-th{position:sticky;top:0;background:var(--dat-bg-alt);padding:4px 8px;text-align:right;font-weight:600;border-bottom:1px solid #ccc;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.dat-th:hover{background:#e8e8e8}.dat-sort-arrow{font-size:9px;color:var(--dat-primary)}.dat-td{padding:3px 8px;text-align:right;border-bottom:1px solid var(--dat-border-light)}.dat-row-num{text-align:center;color:#bbb;width:36px;font-size:10px}.dat-tr:hover{background:#f5f9ff}.dat-tr.selected{background:#e3f2fd}.dat-table-empty{font-size:11px;color:#999;text-align:center;padding:12px}.dat-table-pager{display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;color:var(--dat-text-muted)}.dat-table-pager button{padding:2px 6px;font-size:10px;border:1px solid #ccc;border-radius:3px;background:var(--dat-bg);cursor:pointer}.dat-table-pager button:disabled{opacity:.4;cursor:not-allowed}.dat-analysis{display:flex;flex-direction:column;gap:6px}.dat-analysis-tabs{display:flex;gap:0}.dat-tab{flex:1;padding:4px 6px;font-size:10px;font-weight:600;background:var(--dat-bg-alt);border:1px solid var(--dat-border);border-bottom:none;cursor:pointer;color:var(--dat-text-muted)}.dat-tab.active{background:var(--dat-bg);color:var(--dat-primary);border-bottom:2px solid var(--dat-primary)}.dat-analysis-section{padding:6px 0}.dat-analysis-empty,.dat-analysis-hint{font-size:11px;color:#999;text-align:center;padding:8px 0}.dat-section-title{margin:0 0 4px;font-size:11px;font-weight:600;color:var(--dat-text)}.dat-stats-table{width:100%;border-collapse:collapse;font-size:10px}.dat-stats-table th{background:var(--dat-bg-alt);padding:3px 6px;text-align:right;font-weight:600;border-bottom:1px solid #ccc}.dat-stats-table td{padding:3px 6px;text-align:right;border-bottom:1px solid var(--dat-border-light);font-family:var(--dat-mono)}.dat-stats-col{text-align:left!important;font-weight:500;color:var(--dat-primary-dark)}.dat-warnings{padding:4px 0}.dat-warning{font-size:10px;color:var(--dat-warning);padding:1px 0}.dat-metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0}.dat-metric-card{background:var(--dat-bg-alt);border:1px solid var(--dat-border);border-radius:4px;padding:6px 8px;text-align:center}.dat-metric-label{font-size:9px;color:var(--dat-text-muted);text-transform:uppercase;letter-spacing:.3px}.dat-metric-value{font-size:13px;font-weight:700;color:var(--dat-primary-dark);font-family:var(--dat-mono)}.dat-trend-summary{font-size:11px;color:var(--dat-text-secondary);padding:4px 0}.dat-trend-eq{font-family:var(--dat-mono);font-size:12px;color:var(--dat-text);background:var(--dat-bg-alt);padding:4px 8px;border-radius:4px;text-align:center}.dat-error-preview{margin-top:6px;max-height:min(30vh,200px);overflow-y:auto}.dat-error-metrics h4{margin:0 0 4px;font-size:11px}.dat-error-dist{text-align:center;margin:6px 0;padding:4px 8px;background:var(--dat-bg-alt);border:1px solid var(--dat-border);border-radius:4px}.dat-sparkline{font-size:18px;letter-spacing:1px;line-height:1;color:var(--dat-primary);cursor:help}.dat-error-range{display:flex;justify-content:space-between;font-size:9px;color:var(--dat-text-muted);font-family:var(--dat-mono);margin-top:2px}.dat-export{display:flex;flex-direction:column;gap:8px}.dat-export-section{padding:4px 0;border-bottom:1px solid var(--dat-border-light)}.dat-export-section:last-child{border-bottom:none}.dat-snippet{font-family:var(--dat-mono);font-size:10px;background:#263238;color:#eff;padding:8px 10px;border-radius:4px;overflow-x:auto;white-space:pre;margin:4px 0 0}:root{--rep-bg: #e3f2fd;--rep-bg-dark: #bbdefb;--rep-border: #64b5f6;--rep-border-light: #90caf9;--rep-primary: #1976d2;--rep-primary-light:#42a5f5;--rep-text: #0d47a1;--rep-text-muted: #555;--rep-accent: #1565c0;--rep-success: #43a047;--rep-danger: #c62828;--rep-mono: "Consolas", "Fira Code", monospace}.rep-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--rep-bg);border-top:1px solid var(--rep-border)}.rep-panel-title{margin:0 0 4px;font-size:13px;color:var(--rep-text);text-align:center;text-transform:uppercase;letter-spacing:.5px}.rep-meta{display:flex;flex-direction:column;gap:5px}.rep-meta-row{display:flex;align-items:center;gap:6px;font-size:12px}.rep-meta-label{width:72px;flex-shrink:0;color:var(--rep-text-muted);font-weight:500;font-size:11px}.rep-meta-input{flex:1;padding:4px 6px;font-size:12px;border:1px solid var(--rep-border-light);border-radius:4px;transition:border-color .15s}.rep-meta-input:focus{outline:none;border-color:var(--rep-primary);box-shadow:0 0 0 2px #1976d22e}.rep-btn-row{display:flex;gap:6px;flex-wrap:wrap}.rep-btn{flex:1;min-width:70px;padding:7px 10px;font-size:12px;font-weight:600;border:none;border-radius:5px;cursor:pointer;transition:background .15s,transform .1s;text-align:center}.rep-btn:active{transform:scale(.97)}.rep-btn:disabled{opacity:.5;cursor:not-allowed}.rep-btn-save{background:var(--rep-primary-light);color:#fff}.rep-btn-save:hover{background:var(--rep-primary)}.rep-btn-load{background:var(--rep-bg-dark);color:var(--rep-text)}.rep-btn-load:hover{background:var(--rep-border-light)}.rep-btn-export{background:var(--rep-success);color:#fff}.rep-btn-export:hover{background:#2e7d32}.rep-btn-import{background:#ff9800;color:#fff}.rep-btn-import:hover{background:#ef6c00}.rep-btn-bundle{background:#7b1fa2;color:#fff}.rep-btn-bundle:hover{background:#6a1b9a}.rep-btn-danger{background:#ef5350;color:#fff}.rep-btn-danger:hover{background:var(--rep-danger)}.rep-btn-small{padding:4px 8px;font-size:11px;font-weight:500;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.rep-storage-bar{display:flex;flex-direction:column;gap:3px;padding:4px 0}.rep-storage-label{font-size:10px;color:var(--rep-text-muted)}.rep-storage-track{height:4px;background:#e0e0e0;border-radius:2px;overflow:hidden}.rep-storage-fill{height:100%;background:var(--rep-primary-light);border-radius:2px;transition:width .3s ease}.rep-storage-fill.warning{background:#ff9800}.rep-status{font-size:11px;text-align:center;padding:3px 6px;border-radius:4px;animation:rep-fadeIn .2s ease}.rep-status-success{color:#1b5e20;background:#e8f5e9;border:1px solid #a5d6a7}.rep-status-error{color:var(--rep-danger);background:#ffebee;border:1px solid #ef9a9a}@keyframes rep-fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.rep-autosave{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--rep-text-muted)}.rep-autosave-dot{width:6px;height:6px;border-radius:50%;background:var(--rep-success);animation:rep-pulse 2s ease-in-out infinite}.rep-autosave-dot.inactive{background:#bdbdbd;animation:none}@keyframes rep-pulse{0%,to{opacity:1}50%{opacity:.4}}.rep-section-toggle{display:flex;align-items:center;gap:4px;padding:4px 0;font-size:11px;font-weight:600;color:var(--rep-accent);cursor:pointer;border:none;background:none;text-transform:uppercase;letter-spacing:.3px;width:100%}.rep-section-toggle:hover{color:var(--rep-primary)}.rep-section-arrow{font-size:9px;transition:transform .2s}.rep-section-arrow.open{transform:rotate(90deg)}.rep-history{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.rep-history-empty{font-size:11px;color:#999;text-align:center;padding:8px 0}.rep-history-item{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:11px;transition:border-color .15s}.rep-history-item:hover{border-color:var(--rep-primary-light)}.rep-history-thumb{width:40px;height:30px;border-radius:3px;object-fit:cover;border:1px solid #e0e0e0;flex-shrink:0}.rep-history-thumb-placeholder{width:40px;height:30px;border-radius:3px;background:#f5f5f5;border:1px dashed #ccc;flex-shrink:0}.rep-history-item-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.rep-history-item-title{font-weight:600;color:var(--rep-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rep-history-item-meta{display:flex;gap:8px;align-items:center}.rep-history-item-meta>span{font-size:10px;color:#999}.rep-history-size{font-family:var(--rep-mono);font-size:9px!important;color:#757575!important}.rep-history-item-actions{display:flex;gap:4px;flex-shrink:0}.rep-history-btn{padding:3px 6px;font-size:10px;border:1px solid #e0e0e0;border-radius:3px;background:#fafafa;color:#555;cursor:pointer;transition:background .15s}.rep-history-btn:hover{background:#e0e0e0}.rep-history-btn.load{color:var(--rep-primary);border-color:var(--rep-border-light)}.rep-history-btn.delete{color:var(--rep-danger)}.rep-history-btn.delete.confirm{background:#ffebee;border-color:var(--rep-danger);color:var(--rep-danger);font-weight:600}.rep-versions{display:flex;flex-direction:column;gap:3px;padding:4px 0;max-height:200px;overflow-y:auto}.rep-version-item{display:flex;align-items:center;gap:6px;padding:3px 6px;font-size:10px;color:var(--rep-text-muted);border-left:2px solid var(--rep-border-light)}.rep-version-label{flex:1;font-weight:500}.rep-version-counts{font-family:var(--rep-mono);font-size:9px;color:#999}.rep-version-time{color:#999;flex-shrink:0}.rep-version-diff-btn{padding:1px 5px;font-size:9px;font-family:var(--rep-mono);border:1px solid var(--rep-border-light);border-radius:3px;background:#fff;color:var(--rep-primary);cursor:pointer;transition:background .15s}.rep-version-diff-btn:hover{background:var(--rep-bg)}.rep-comparison{margin:4px 0;padding:6px 8px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;font-size:10px}.rep-comparison-title{font-weight:600;color:var(--rep-text);margin-bottom:4px}.rep-comparison-row{display:flex;justify-content:space-between;padding:2px 0;color:var(--rep-text-muted)}.rep-comparison-count{font-family:var(--rep-mono);color:#e65100}.err-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#fef8f0;border-top:1px solid #ffcc80}.err-panel-title{margin:0 0 2px;font-size:13px;color:#e65100;text-align:center;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.err-panel-body{display:flex;flex-direction:column;gap:7px}.err-row{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.err-label{width:62px;flex-shrink:0;color:#555;font-weight:500;font-size:11px}.err-label-sm{width:32px}.err-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #ffcc80;border-radius:4px;background:#fff}.err-input{padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;transition:border-color .15s}.err-input:focus{outline:none;border-color:#ff9800;box-shadow:0 0 0 2px #ff98002e}.err-input-text{flex:1;min-width:80px;font-family:Consolas,Fira Code,monospace}.err-input-num{width:54px;text-align:center}.err-btn-row{display:flex;gap:6px;margin-top:2px}.err-btn{padding:6px 10px;font-size:12px;font-weight:600;border:none;border-radius:5px;cursor:pointer;transition:background .15s,transform .1s}.err-btn:disabled{opacity:.45;cursor:default}.err-btn-primary{flex:1;background:#ffcc80;color:#bf360c}.err-btn-primary:hover:not(:disabled){background:#ffb74d;color:#fff}.err-btn-primary:active:not(:disabled){transform:scale(.97)}.err-btn-secondary{background:#fff3e0;color:#e65100;border:1px solid #ffcc80}.err-btn-secondary:hover:not(:disabled){background:#ffe0b2}.err-results{background:#fff;border:1px solid #ffe0b2;border-radius:5px;padding:8px 10px;display:flex;flex-direction:column;gap:3px}.err-result-item{font-size:11px;color:#444;font-family:Consolas,Fira Code,monospace}.err-result-item strong{color:#bf360c}.err-status{font-size:11px;color:#2e7d32;padding:3px 0}.err-status-error{color:#c62828;background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;padding:4px 8px}.conv-panel{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f0f4fe;border-top:1px solid #90caf9}.conv-panel-title{margin:0 0 2px;font-size:13px;color:#1565c0;text-align:center;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.conv-panel-body{display:flex;flex-direction:column;gap:7px}.conv-row{display:flex;align-items:center;gap:6px;font-size:12px;flex-wrap:wrap}.conv-label{width:62px;flex-shrink:0;color:#555;font-weight:500;font-size:11px}.conv-label-sm{width:32px}.conv-select{flex:1;padding:4px 6px;font-size:12px;border:1px solid #90caf9;border-radius:4px;background:#fff}.conv-input{padding:4px 6px;font-size:12px;border:1px solid #b0bec5;border-radius:4px;transition:border-color .15s}.conv-input:focus{outline:none;border-color:#1565c0;box-shadow:0 0 0 2px #1565c02e}.conv-input-text{flex:1;min-width:80px;font-family:Consolas,Fira Code,monospace}.conv-input-num{width:54px;text-align:center}.conv-method-group{display:flex;align-items:flex-start;gap:6px;font-size:12px}.conv-checkboxes{display:flex;flex-wrap:wrap;gap:6px 12px}.conv-checkbox{display:flex;align-items:center;gap:3px;font-size:11px;color:#444;cursor:pointer}.conv-checkbox input[type=checkbox]{accent-color:#1565c0}.conv-btn-row{display:flex;gap:6px;margin-top:2px}.conv-btn{padding:6px 10px;font-size:12px;font-weight:600;border:none;border-radius:5px;cursor:pointer;transition:background .15s,transform .1s}.conv-btn:disabled{opacity:.45;cursor:default}.conv-btn-primary{flex:1;background:#90caf9;color:#0d47a1}.conv-btn-primary:hover:not(:disabled){background:#64b5f6;color:#fff}.conv-btn-primary:active:not(:disabled){transform:scale(.97)}.conv-btn-secondary{background:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.conv-btn-secondary:hover:not(:disabled){background:#bbdefb}.conv-results{overflow-x:auto}.conv-table{width:100%;border-collapse:collapse;font-size:11px}.conv-table th,.conv-table td{padding:4px 8px;border:1px solid #bbdefb;text-align:center}.conv-table th{background:#e3f2fd;color:#0d47a1;font-weight:600}.conv-table td{font-family:Consolas,Fira Code,monospace;color:#333}.conv-best{font-size:11px;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:5px;padding:6px 10px;color:#2e7d32}.conv-best strong{color:#1b5e20}.conv-status{font-size:11px;color:#2e7d32;padding:3px 0}.conv-status-error{color:#c62828;background:#ffebee;border:1px solid #ef9a9a;border-radius:4px;padding:4px 8px}.conv-btn-link{background:none;border:none;color:#1565c0;cursor:pointer;font-size:11px;padding:3px 0;text-decoration:underline}.conv-rates{font-size:10px;color:#555;padding:2px 0}.conv-rate-chip{display:inline-block;background:#e3f2fd;border-radius:3px;padding:1px 5px;margin:1px 2px;font-family:Consolas,Fira Code,monospace;font-size:10px}:root{--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--fs-xs: .6875rem;--fs-sm: .75rem;--fs-base: .8125rem;--fs-md: .875rem;--fs-lg: 1rem;--fs-xl: 1.125rem;--fs-2xl: 1.5rem;--fs-3xl: 1.75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 2px 8px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.14);--shadow-xl: 0 12px 40px rgba(0,0,0,.18);--ease-out: cubic-bezier(.22, 1, .36, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .35s;--topnav-h: 48px;--sidebar-w: 260px;--sidebar-collapsed-w: 52px;--bottom-panel-h: 200px;--z-sidebar: 20;--z-topnav: 30;--z-dropdown: 40;--z-modal: 50;--z-tooltip: 60;--z-toast: 70;--accent-blue: #3b82f6;--accent-indigo: #6366f1;--accent-violet: #8b5cf6;--accent-emerald: #10b981;--accent-amber: #f59e0b;--accent-rose: #f43f5e;--accent-cyan: #06b6d4;--accent-orange: #f97316}[data-theme=dark]{--bg-app: #0f1117;--bg-surface: #161822;--bg-raised: #1c1f2e;--bg-overlay: #232738;--bg-hover: rgba(255,255,255,.06);--bg-active: rgba(255,255,255,.1);--bg-canvas: #1a1d2b;--bg-input: #1c1f2e;--bg-sidebar: #13151f;--bg-topnav: #0d0f16;--bg-panel: #161822;--bg-card: #1c1f2e;--bg-tooltip: #2a2e40;--border-default: #2a2e3f;--border-subtle: #1f2233;--border-strong: #3a3f55;--border-focus: var(--accent-blue);--text-primary: #e8eaf0;--text-secondary: #9ca3b4;--text-tertiary: #6b7280;--text-inverse: #0f1117;--text-accent: var(--accent-blue);--text-link: #60a5fa;--primary: #3b82f6;--primary-hover: #2563eb;--primary-muted: rgba(59,130,246,.15);--danger: #ef4444;--danger-muted: rgba(239,68,68,.15);--success: #22c55e;--success-muted: rgba(34,197,94,.15);--warning: #f59e0b;--warning-muted: rgba(245,158,11,.15);--scrollbar-track: transparent;--scrollbar-thumb: rgba(255,255,255,.12);--scrollbar-thumb-hover: rgba(255,255,255,.22);color-scheme:dark}[data-theme=light]{--bg-app: #f5f6f8;--bg-surface: #ffffff;--bg-raised: #f0f1f4;--bg-overlay: #eaecf0;--bg-hover: rgba(0,0,0,.04);--bg-active: rgba(0,0,0,.08);--bg-canvas: #ffffff;--bg-input: #f5f6f8;--bg-sidebar: #fafbfc;--bg-topnav: #ffffff;--bg-panel: #ffffff;--bg-card: #ffffff;--bg-tooltip: #1e293b;--border-default: #e2e4ea;--border-subtle: #eef0f4;--border-strong: #cbd0dc;--border-focus: var(--accent-blue);--text-primary: #1a1d2b;--text-secondary: #4b5563;--text-tertiary: #9ca3af;--text-inverse: #ffffff;--text-accent: var(--accent-blue);--text-link: #2563eb;--primary: #3b82f6;--primary-hover: #2563eb;--primary-muted: rgba(59,130,246,.1);--danger: #ef4444;--danger-muted: rgba(239,68,68,.1);--success: #22c55e;--success-muted: rgba(34,197,94,.1);--warning: #f59e0b;--warning-muted: rgba(245,158,11,.1);--scrollbar-track: transparent;--scrollbar-thumb: rgba(0,0,0,.12);--scrollbar-thumb-hover: rgba(0,0,0,.22);color-scheme:light}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--text-primary);background:var(--bg-app);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}::selection{background:var(--primary-muted);color:var(--text-primary)}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}code,pre,kbd{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.module-sidebar-actions{display:flex;flex-wrap:wrap;gap:6px;padding:var(--sp-2) 0;margin-bottom:var(--sp-2);border-bottom:1px solid var(--border-subtle)}.mod-action-btn{flex:1;min-width:80px;padding:6px 10px;font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:600;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast),color var(--duration-fast),border-color var(--duration-fast);text-align:center}.mod-action-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.mod-action-btn--danger{color:var(--danger);border-color:var(--danger-muted)}.mod-action-btn--danger:hover{background:var(--danger-muted);color:var(--danger)}
