@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap";:root{--m365-accent:#0078d4;--m365-accent-hover:#106ebe;--m365-accent-active:#005a9e;--m365-accent-light:#deecf9;--m365-accent-light-hover:#c7e0f4;--m365-bg-page:#f5f5f5;--m365-bg-surface:#fff;--m365-bg-subtle:#faf9f8;--m365-bg-subtlest:#fff;--m365-bg-hover:#f3f2f1;--m365-bg-active:#edebe9;--m365-border:#e0e0e0;--m365-border-strong:#d1d1d1;--m365-border-subtle:#f3f2f1;--m365-border-focus:#0078d4;--m365-text-primary:#242424;--m365-text-secondary:#616161;--m365-text-tertiary:#a19f9d;--m365-text-disabled:#c8c6c4;--m365-text-on-accent:#fff;--m365-success:#107c10;--m365-success-bg:#dff6dd;--m365-warning:#8c6d00;--m365-warning-bg:#fff4ce;--m365-error:#a80000;--m365-error-bg:#fde7e9;--m365-info:#0078d4;--m365-info-bg:#deecf9;--vs-series-0:#6366f1;--vs-series-1:#f59e0b;--vs-series-2:#10b981;--vs-series-3:#ef4444;--vs-series-4:#8b5cf6;--vs-series-5:#06b6d4;--vs-series-6:#ec4899;--vs-series-7:#84cc16;--vs-series-8:#f97316;--vs-series-9:#14b8a6;--vs-series-10:#eab308;--vs-series-11:#3b82f6;--vs-cb-0:#0072b2;--vs-cb-1:#e69f00;--vs-cb-2:#009e73;--vs-cb-3:#d55e00;--vs-cb-4:#cc79a7;--vs-cb-5:#56b4e9;--vs-cb-6:#f0e442;--vs-cb-7:#999;--m365-font-family:"Segoe UI Variable", "Segoe UI", system-ui, -apple-system, sans-serif;--m365-font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace;--m365-font-size-xs:11px;--m365-font-size-sm:12px;--m365-font-size-base:14px;--m365-font-size-lg:16px;--m365-font-size-xl:20px;--m365-font-weight-regular:400;--m365-font-weight-semibold:600;--m365-font-weight-bold:700;--m365-spacing-xxs:2px;--m365-spacing-xs:4px;--m365-spacing-s:8px;--m365-spacing-m:12px;--m365-spacing-l:16px;--m365-spacing-xl:20px;--m365-spacing-xxl:24px;--m365-spacing-xxxl:32px;--m365-shadow-level1:0 1px 2px #00000014, 0 1px 3px #0000001a;--m365-shadow-level2:0 2px 4px #0000001a, 0 2px 8px #00000014;--m365-shadow-level3:0 4px 8px #0000001f, 0 4px 16px #00000014;--m365-shadow-level4:0 8px 16px #00000024, 0 8px 32px #0000001a;--m365-radius-xs:2px;--m365-radius-s:4px;--m365-radius-m:6px;--m365-radius-l:8px;--m365-radius-xl:12px;--m365-radius-round:9999px;--m365-transition-fast:.1s ease;--m365-transition-default:.15s ease;--m365-transition-slow:.2s ease;--text:var(--m365-text-primary);--text-secondary:var(--m365-text-secondary);--text-tertiary:var(--m365-text-tertiary);--text-disabled:var(--m365-text-disabled);--bg:var(--m365-bg-page);--bg-secondary:var(--m365-bg-subtle);--bg-card:var(--m365-bg-surface);--bg-elevated:var(--m365-bg-hover);--border:var(--m365-border);--border-hover:var(--m365-border-strong);--border-subtle:var(--m365-border-subtle);--accent:var(--m365-accent);--accent-light:var(--m365-accent-light);--ring:var(--m365-border-focus);--destructive:var(--m365-error);--destructive-light:var(--m365-error-bg);--destructive-muted:var(--m365-error-bg);--success:var(--m365-success);--cyan:var(--m365-info);--magenta:var(--m365-accent);--radius:var(--m365-radius-m);--radius-sm:var(--m365-radius-s);--radius-md:var(--m365-radius-m);--radius-lg:var(--m365-radius-l);--radius-full:var(--m365-radius-round);--font-sans:var(--m365-font-family);--font-body:var(--m365-font-family);--font-mono:var(--m365-font-mono);--font-display:var(--m365-font-family);--transition-fast:var(--m365-transition-fast);--transition-base:var(--m365-transition-default);--transition-slow:var(--m365-transition-slow);font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);color:var(--m365-text-primary);background:var(--m365-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;line-height:1.5}[data-theme=light]{--text:var(--m365-text-primary);--text-secondary:var(--m365-text-secondary);--text-tertiary:var(--m365-text-tertiary);--bg:var(--m365-bg-page);--bg-secondary:var(--m365-bg-subtle);--bg-card:var(--m365-bg-surface);--bg-elevated:var(--m365-bg-hover);--border:var(--m365-border);--border-hover:var(--m365-border-strong);--border-subtle:var(--m365-border-subtle);--accent:var(--m365-accent);--accent-light:var(--m365-accent-light);--ring:var(--m365-border-focus);--destructive:var(--m365-error);--destructive-light:var(--m365-error-bg);--destructive-muted:var(--m365-error-bg);--success:var(--m365-success);--cyan:var(--m365-info);--magenta:var(--m365-accent);--radius:var(--m365-radius-m);--radius-sm:var(--m365-radius-s);--radius-md:var(--m365-radius-m);--radius-lg:var(--m365-radius-l);--radius-full:var(--m365-radius-round);--font-sans:var(--m365-font-family);--font-body:var(--m365-font-family);--font-mono:var(--m365-font-mono);--font-display:var(--m365-font-family);--transition-fast:var(--m365-transition-fast);--transition-base:var(--m365-transition-default);--transition-slow:var(--m365-transition-slow)}[data-theme=dark]{--m365-accent:#4cc4f3;--m365-accent-hover:#5cc1f0;--m365-accent-active:#4db8e8;--m365-accent-light:#0f3a5c;--m365-accent-light-hover:#1a4d6e;--m365-bg-page:#201f1e;--m365-bg-surface:#2d2c2b;--m365-bg-subtle:#323130;--m365-bg-subtlest:#2d2c2b;--m365-bg-hover:#3b3a39;--m365-bg-active:#454443;--m365-border:#5c5c5c;--m365-border-strong:#696969;--m365-border-subtle:#3b3a39;--m365-border-focus:#4cc4f3;--m365-text-primary:#fff;--m365-text-secondary:#d2d0ce;--m365-text-tertiary:#a19f9d;--m365-text-disabled:#696969;--m365-text-on-accent:#000;--m365-success:#0f7b0f;--m365-success-bg:#1c3d1a;--m365-warning:#a17700;--m365-warning-bg:#3d2e00;--m365-error:#f44747;--m365-error-bg:#4e1a1a;--m365-info:#4cc4f3;--m365-info-bg:#0f3a5c;--text:var(--m365-text-primary);--text-secondary:var(--m365-text-secondary);--text-tertiary:var(--m365-text-tertiary);--bg:var(--m365-bg-page);--bg-secondary:var(--m365-bg-subtle);--bg-card:var(--m365-bg-surface);--bg-elevated:var(--m365-bg-hover);--border:var(--m365-border);--border-hover:var(--m365-border-strong);--border-subtle:var(--m365-border-subtle);--accent:var(--m365-accent);--accent-light:var(--m365-accent-light);--ring:var(--m365-border-focus);--destructive:var(--m365-error);--destructive-light:var(--m365-error-bg);--destructive-muted:var(--m365-error-bg);--success:var(--m365-success);--cyan:var(--m365-info);--magenta:var(--m365-accent);--radius:var(--m365-radius-m);--radius-sm:var(--m365-radius-s);--radius-md:var(--m365-radius-m);--radius-lg:var(--m365-radius-l);--radius-full:var(--m365-radius-round);--font-sans:var(--m365-font-family);--font-body:var(--m365-font-family);--font-mono:var(--m365-font-mono);--font-display:var(--m365-font-family);--transition-fast:var(--m365-transition-fast);--transition-base:var(--m365-transition-default);--transition-slow:var(--m365-transition-slow)}.m365-app{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);color:var(--m365-text-primary);background:var(--m365-bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.5}.m365-app *{box-sizing:border-box}.m365-app button,.m365-app input,.m365-app select,.m365-app textarea{font-family:inherit;font-size:inherit}.skip-link{z-index:999;padding:var(--m365-spacing-s) var(--m365-spacing-l);background:var(--m365-accent);color:var(--m365-text-on-accent);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);border-radius:0 0 var(--m365-radius-s) var(--m365-radius-s);transition:left var(--m365-transition-fast);text-decoration:none;position:absolute;left:-9999px}.skip-link:focus{outline:2px solid var(--m365-accent);outline-offset:2px;left:0}:focus-visible{outline:2px solid var(--m365-border-focus);outline-offset:2px;border-radius:var(--m365-radius-xs)}input,select,textarea,[role=button],[tabindex="0"]{min-height:32px}.btn-tool,.category-btn,.tag-btn,.modal-close{min-height:auto}.btn-tool,.category-btn{min-height:28px}.tag-btn{min-height:24px}.modal-close{width:32px;height:32px}.btn-primary{justify-content:center;align-items:center;gap:var(--m365-spacing-xs);padding:var(--m365-spacing-xs) var(--m365-spacing-m);border-radius:var(--m365-radius-s);background:var(--m365-accent);min-width:80px;height:32px;color:var(--m365-text-on-accent);font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-regular);cursor:pointer;transition:background var(--m365-transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;text-decoration:none;display:inline-flex}.btn-primary:hover{background:var(--m365-accent-hover)}.btn-primary:active{background:var(--m365-accent-active)}.btn-secondary{padding:var(--m365-spacing-xs) var(--m365-spacing-m);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);background:var(--m365-bg-surface);height:32px;color:var(--m365-text-primary);font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);cursor:pointer;transition:background var(--m365-transition-fast), border-color var(--m365-transition-fast);-webkit-user-select:none;user-select:none;text-decoration:none}.btn-secondary:hover{background:var(--m365-bg-hover);border-color:var(--m365-border-strong)}.btn-icon{border-radius:var(--m365-radius-s);width:32px;height:32px;color:var(--m365-text-primary);cursor:pointer;transition:background var(--m365-transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover{background:var(--m365-bg-hover)}.m365-field{gap:var(--m365-spacing-xxs);margin-bottom:var(--m365-spacing-l);flex-direction:column;display:flex}.m365-label{font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);font-weight:var(--m365-font-weight-regular)}.m365-input{height:32px;padding:0 var(--m365-spacing-s);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);background:var(--m365-bg-subtlest);color:var(--m365-text-primary);font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast)}.m365-input:hover{border-color:var(--m365-border-strong)}.m365-input:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus);outline:none}.m365-helper-text{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary)}.m365-badge{padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-round);height:20px;font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);background:var(--m365-accent-light);color:var(--m365-accent);-webkit-user-select:none;user-select:none;align-items:center;display:inline-flex}.m365-chip{align-items:center;gap:var(--m365-spacing-xxs);padding:2px var(--m365-spacing-s);border-radius:var(--m365-radius-round);height:24px;font-size:var(--m365-font-size-sm);background:var(--m365-bg-hover);color:var(--m365-text-primary);border:1px solid var(--m365-border-subtle);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--m365-transition-fast);display:inline-flex}.m365-chip:hover{background:var(--m365-bg-active)}.m365-divider{background:var(--m365-border-subtle);height:1px;margin:var(--m365-spacing-s) 0}.m365-divider-vertical{background:var(--m365-border-subtle);width:1px;height:auto;margin:0 var(--m365-spacing-s)}.m365-tabs{border-bottom:2px solid var(--m365-border-subtle);gap:0;display:flex}.m365-tab{padding:var(--m365-spacing-s) var(--m365-spacing-m);font-size:var(--m365-font-size-base);color:var(--m365-text-secondary);cursor:pointer;transition:color var(--m365-transition-fast), border-color var(--m365-transition-fast);-webkit-user-select:none;user-select:none;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px}.m365-tab:hover{color:var(--m365-text-primary)}.m365-tab[aria-selected=true]{color:var(--m365-accent);border-bottom-color:var(--m365-accent)}.m365-tab:focus-visible{outline:2px solid var(--m365-accent);outline-offset:-2px;border-radius:2px}.m365-dialog-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.m365-dialog{-webkit-user-select:none;user-select:none;background:var(--m365-bg-surface);border-radius:var(--m365-radius-l);max-height:80vh;box-shadow:var(--m365-shadow-level4);border:1px solid var(--m365-border);min-width:320px;max-width:560px;overflow-y:auto}.m365-dialog[role=dialog]{-webkit-user-select:none;user-select:none}.m365-dialog input,.m365-dialog textarea{-webkit-user-select:auto;user-select:auto}.m365-dialog-footer{justify-content:flex-end;gap:var(--m365-spacing-s);padding:var(--m365-spacing-m) var(--m365-spacing-l);border-top:1px solid var(--m365-border-subtle);display:flex}.m365-dialog-footer button{white-space:nowrap}.m365-ribbon{background:var(--m365-bg-subtle);border-bottom:1px solid var(--m365-border-subtle);padding:0 var(--m365-spacing-s);align-items:stretch;gap:0;display:flex;overflow-x:auto}.m365-ribbon-tab{padding:var(--m365-spacing-s) var(--m365-spacing-m);font-size:var(--m365-font-size-base);color:var(--m365-text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;display:flex}.m365-ribbon-tab:hover{color:var(--m365-text-primary)}.m365-ribbon-tab[aria-selected=true]{color:var(--m365-text-primary);border-bottom-color:var(--m365-accent);background:var(--m365-bg-surface)}.m365-ribbon-group{align-items:center;gap:var(--m365-spacing-xs);padding:var(--m365-spacing-s) var(--m365-spacing-m);border-right:1px solid var(--m365-border-subtle);margin-left:var(--m365-spacing-s);display:flex}.m365-app-shell{height:100vh;font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);color:var(--m365-text-primary);background:var(--m365-bg-page);grid-template-rows:48px auto 32px;grid-template-columns:260px 1fr 380px;display:grid;overflow:hidden}.m365-command-bar{padding:0 var(--m365-spacing-l);background:var(--m365-bg-surface);border-bottom:1px solid var(--m365-border-subtle);align-items:center;gap:var(--m365-spacing-s);grid-area:1/1/auto/-1;display:flex}.m365-sidebar{background:var(--m365-bg-surface);border-right:1px solid var(--m365-border-subtle);grid-area:2/1;overflow-y:auto}.m365-content{background:var(--m365-bg-page);padding:var(--m365-spacing-l);grid-area:2/2;overflow-y:auto}.m365-task-pane{background:var(--m365-bg-surface);border-left:1px solid var(--m365-border-subtle);flex-direction:column;grid-area:2/3;display:flex;overflow-y:auto}.m365-status-bar{padding:0 var(--m365-spacing-m);background:var(--m365-bg-surface);border-top:1px solid var(--m365-border-subtle);font-size:var(--m365-font-size-xs);color:var(--m365-text-secondary);align-items:center;gap:var(--m365-spacing-l);grid-area:3/1/auto/-1;display:flex}.m365-transition-fast{transition:all .1s}.m365-transition-default{transition:all .15s}.m365-transition-slow{transition:all .2s}@media (prefers-reduced-motion:reduce){:root{--m365-transition-fast:0s;--m365-transition-default:0s;--m365-transition-slow:0s}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (forced-colors:active){.btn-primary,.btn-secondary,.btn-icon,.m365-input{border:1px solid buttontext}.m365-badge{border:1px solid Text}}.feedback-widget{z-index:300;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.feedback-panel{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);width:100%;max-width:480px;max-height:80vh;box-shadow:var(--m365-shadow-level4);flex-direction:column;display:flex;position:relative;overflow:hidden}.feedback-panel-header{justify-content:space-between;align-items:center;gap:var(--m365-spacing-m);padding:var(--m365-spacing-m) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);background:var(--m365-bg-surface);flex-shrink:0;display:flex}.feedback-panel-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0}.feedback-close-btn{border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);width:32px;height:32px;color:var(--m365-text-secondary);cursor:pointer;transition:background var(--m365-transition-fast), border-color var(--m365-transition-fast), color var(--m365-transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.feedback-close-btn:hover{background:var(--m365-bg-hover);border-color:var(--m365-border-strong);color:var(--m365-text-primary)}.feedback-type-switch{gap:var(--m365-spacing-xs);padding:var(--m365-spacing-m) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);flex-shrink:0;display:flex}.feedback-type-switch button{border-radius:var(--m365-radius-s);border:1px solid var(--m365-border);background:var(--m365-bg-subtle);color:var(--m365-text-secondary);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);cursor:pointer;transition:all var(--m365-transition-fast);flex:1;padding:6px 8px}.feedback-type-switch button.active{background:var(--m365-accent);color:var(--m365-text-on-accent);border-color:var(--m365-accent);font-weight:var(--m365-font-weight-semibold)}.feedback-panel textarea{resize:vertical;width:100%;min-height:120px;padding:var(--m365-spacing-m) var(--m365-spacing-l);color:var(--m365-text-primary);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);background:0 0;border:none;outline:none;flex:1;line-height:1.6}.feedback-panel textarea::placeholder{color:var(--m365-text-tertiary)}.feedback-actions{padding:var(--m365-spacing-m) var(--m365-spacing-l);border-top:1px solid var(--m365-border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.info-dialog-overlay{z-index:300;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.info-dialog{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--m365-shadow-level4);flex-direction:column;display:flex;position:relative;overflow:hidden}.info-header{justify-content:space-between;align-items:flex-start;gap:var(--m365-spacing-l);padding:var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);background:var(--m365-bg-surface);z-index:2;flex-shrink:0;display:flex;position:sticky;top:0}.info-brand{align-items:center;gap:var(--m365-spacing-m);min-width:0;display:flex}.info-icon{background:var(--m365-accent-light);border-radius:var(--m365-radius-s);width:36px;height:36px;color:var(--m365-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.info-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0 0 2px}.info-subtitle{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0}.info-close-btn{border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);width:32px;height:32px;color:var(--m365-text-secondary);cursor:pointer;transition:background var(--m365-transition-fast), border-color var(--m365-transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.info-close-btn:hover{background:var(--m365-bg-hover);border-color:var(--m365-border-strong);color:var(--m365-text-primary)}.info-body{padding:var(--m365-spacing-l);gap:var(--m365-spacing-m);min-height:0;font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);flex-direction:column;flex:1;line-height:1.6;display:flex;overflow-y:auto}.info-body::-webkit-scrollbar{width:4px}.info-body::-webkit-scrollbar-track{background:0 0}.info-body::-webkit-scrollbar-thumb{background:var(--m365-border);border-radius:2px}.info-body::-webkit-scrollbar-thumb:hover{background:var(--m365-border-strong)}.info-footer{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);text-align:center;padding-top:var(--m365-spacing-l);border-top:1px solid var(--m365-border-subtle);flex-shrink:0}.about-dialog-overlay{z-index:300;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.about-dialog{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);width:100%;max-width:560px;max-height:80vh;box-shadow:var(--m365-shadow-level4);flex-direction:column;display:flex;position:relative;overflow:hidden}.about-accent-bar{background:var(--m365-accent);border-radius:var(--m365-radius-l) var(--m365-radius-l) 0 0;flex-shrink:0;height:2px}.about-header{justify-content:space-between;align-items:flex-start;gap:var(--m365-spacing-l);padding:var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);background:var(--m365-bg-surface);z-index:2;flex-shrink:0;display:flex;position:sticky;top:0}.about-brand{align-items:center;gap:var(--m365-spacing-m);min-width:0;display:flex}.about-logo{background:var(--m365-accent);border-radius:var(--m365-radius-s);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;position:relative}.about-logo svg{width:20px;height:20px;color:var(--m365-text-on-accent)}.about-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0 0 2px}.about-subtitle{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0}.about-close-btn{border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);width:32px;height:32px;color:var(--m365-text-secondary);cursor:pointer;transition:background var(--m365-transition-fast), border-color var(--m365-transition-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.about-close-btn:hover{background:var(--m365-bg-hover);border-color:var(--m365-border-strong);color:var(--m365-text-primary)}.about-body{padding:var(--m365-spacing-l);gap:var(--m365-spacing-l);color:var(--m365-text-secondary);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);scrollbar-width:thin;scrollbar-color:var(--m365-border) transparent;flex-direction:column;max-height:calc(100vh - 180px);line-height:1.6;display:flex;overflow-y:auto}.about-body::-webkit-scrollbar{width:4px}.about-body::-webkit-scrollbar-track{background:0 0}.about-body::-webkit-scrollbar-thumb{background:var(--m365-border);border-radius:2px}.about-body::-webkit-scrollbar-thumb:hover{background:var(--m365-border-strong)}.about-meta{align-items:center;gap:var(--m365-spacing-s);flex-wrap:wrap;display:flex}.about-version-tag{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);padding:1px var(--m365-spacing-s);background:var(--m365-accent-light);border:1px solid color-mix(in srgb, var(--m365-accent) 20%, transparent);border-radius:var(--m365-radius-round);color:var(--m365-accent)}.about-divider{color:var(--m365-text-tertiary);font-size:var(--m365-font-size-sm)}.about-tag{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);padding:1px var(--m365-spacing-s);background:var(--m365-bg-hover);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);color:var(--m365-text-tertiary)}.about-desc{color:var(--m365-text-secondary);font-size:var(--m365-font-size-sm);margin:0;line-height:1.6}.about-section-label{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--m365-spacing-m)}.about-category-grid{gap:var(--m365-spacing-s);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.about-category-item{align-items:center;gap:var(--m365-spacing-s);padding:var(--m365-spacing-s) var(--m365-spacing-m);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);transition:border-color var(--m365-transition-fast);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);display:flex}.about-category-item:hover{border-color:var(--m365-border-strong);color:var(--m365-text-primary)}.about-category-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.about-shortcuts{align-items:center;gap:var(--m365-spacing-l);flex-wrap:wrap;display:flex}.about-shortcut{align-items:center;gap:var(--m365-spacing-s);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);display:flex}.about-kbd{min-width:28px;height:22px;padding:0 var(--m365-spacing-s);background:var(--m365-bg-hover);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);justify-content:center;align-items:center;display:inline-flex}.about-footer{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);padding-top:var(--m365-spacing-l);border-top:1px solid var(--m365-border-subtle);text-align:center}@media (prefers-reduced-motion:reduce){.about-dialog{opacity:1;animation:none!important}.about-dialog-overlay{animation:none!important}}.data-import-dialog{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);width:100%;max-width:520px;max-height:80vh;box-shadow:var(--m365-shadow-level4);flex-direction:column;display:flex;position:relative;overflow:hidden}.data-import-panel{padding:var(--m365-spacing-l);gap:var(--m365-spacing-m);min-height:0;font-family:var(--m365-font-family);flex-direction:column;flex:1;display:flex;overflow-y:auto}.data-import-dialog::-webkit-scrollbar{width:4px}.data-import-dialog::-webkit-scrollbar-track{background:0 0}.data-import-dialog::-webkit-scrollbar-thumb{background:var(--m365-border);border-radius:2px}.data-import-dialog::-webkit-scrollbar-thumb:hover{background:var(--m365-border-strong)}@media (prefers-reduced-motion:reduce){.data-import-dialog{animation:none!important}}.learn-page{min-height:0;padding:var(--m365-spacing-l) var(--m365-spacing-xxxl) var(--m365-spacing-xxxl);font-family:var(--m365-font-family);flex:1;overflow-y:auto}.scroll-top-btn{bottom:var(--m365-spacing-l);right:var(--m365-spacing-l);border-radius:var(--m365-radius-s);background:var(--m365-accent);width:36px;height:36px;color:var(--m365-text-on-accent);cursor:pointer;box-shadow:var(--m365-shadow-level2);opacity:1;transition:opacity var(--m365-transition-default), transform var(--m365-transition-default);z-index:50;border:none;justify-content:center;align-items:center;display:flex;position:fixed}.scroll-top-btn.hidden{opacity:0;pointer-events:none;transform:translateY(8px)}.scroll-top-btn:hover{background:var(--m365-accent-hover)}.app{background:var(--m365-bg-page);font-family:var(--m365-font-family);flex-direction:column;max-width:100%;min-height:100vh;display:flex}main[role=main]{flex:1;max-width:100%;min-height:0;overflow-x:hidden}.page-content{flex-direction:column;flex:1;max-width:100%;min-height:0;display:flex;overflow-x:hidden}.hero-content{z-index:1;max-width:720px;margin:0 auto;position:relative}.hero-badge{align-items:center;gap:var(--m365-spacing-xs);border-radius:var(--m365-radius-round);border:1px solid var(--m365-border);background:var(--m365-bg-subtle);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-secondary);margin-bottom:var(--m365-spacing-xl);padding:3px 12px;display:inline-flex}.hero h2{font-family:var(--m365-font-family);font-size:clamp(24px,4vw,40px);font-weight:var(--m365-font-weight-bold);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-l);line-height:1.2}.hero-desc{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-xxl);max-width:540px;margin-left:auto;margin-right:auto;line-height:1.6}.hero-cta{justify-content:center;align-items:center;gap:var(--m365-spacing-m);flex-wrap:wrap;display:flex}.btn-secondary.active-nav{border-color:var(--m365-accent);color:var(--m365-accent);background:var(--m365-accent-light)}.btn-secondary.active-nav:hover{background:var(--m365-accent-light-hover)}.features{max-width:1100px;padding:0 var(--m365-spacing-l) var(--m365-spacing-xxl);margin:0 auto}.features-grid{gap:var(--m365-spacing-l);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.feature-card{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-xxl);transition:box-shadow var(--m365-transition-default), border-color var(--m365-transition-fast);box-shadow:var(--m365-shadow-level1);position:relative;overflow:hidden}.feature-card:hover{border-color:var(--m365-border-strong);box-shadow:var(--m365-shadow-level2)}.feature-icon{border-radius:var(--m365-radius-s);background:var(--m365-accent-light);border:1px solid color-mix(in srgb, var(--m365-accent) 20%, transparent);width:40px;height:40px;margin-bottom:var(--m365-spacing-l);color:var(--m365-accent);justify-content:center;align-items:center;display:flex}.feature-card h3{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-s)}.feature-card p{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);line-height:1.6;font-family:var(--m365-font-family);margin:0}.stats-strip{background:var(--m365-bg-subtle);border-top:1px solid var(--m365-border-subtle);border-bottom:1px solid var(--m365-border-subtle);padding:var(--m365-spacing-xxl) var(--m365-spacing-l)}.stats-inner{gap:var(--m365-spacing-xl);text-align:center;grid-template-columns:repeat(4,1fr);max-width:900px;margin:0 auto;display:grid}.stat-value{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xxl,36px);font-weight:var(--m365-font-weight-bold);color:var(--m365-accent);margin-bottom:var(--m365-spacing-s);line-height:1}.stat-label{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.tech-strip{padding:var(--m365-spacing-xxl) var(--m365-spacing-l);text-align:center}.tech-strip-label{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;color:var(--m365-text-tertiary);margin-bottom:var(--m365-spacing-xxl)}.tech-logos{justify-content:center;align-items:center;gap:var(--m365-spacing-xxxl);flex-wrap:wrap;display:flex}.tech-logo{align-items:center;gap:var(--m365-spacing-s);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-secondary);opacity:.7;transition:opacity var(--m365-transition-fast);display:flex}.tech-logo:hover{opacity:1;color:var(--m365-accent)}.tech-logo svg{flex-shrink:0}.cta-banner{max-width:900px;padding:0 var(--m365-spacing-l) var(--m365-spacing-xxl);margin:0 auto}.cta-card{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-xxl) var(--m365-spacing-xxxl);text-align:center;box-shadow:var(--m365-shadow-level1);position:relative;overflow:hidden}.cta-card h3{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xl);font-weight:var(--m365-font-weight-bold);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-m)}.cta-card p{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-xxl);line-height:1.6}.footer{border-top:1px solid var(--m365-border-subtle);background:var(--m365-bg-subtle);padding:var(--m365-spacing-xxxl) var(--m365-spacing-l) var(--m365-spacing-xxl)}.footer-inner{max-width:1100px;margin:0 auto}.footer-top{gap:var(--m365-spacing-xxxl);margin-bottom:var(--m365-spacing-xxl);grid-template-columns:2fr 1fr 1fr 1fr 1fr;display:grid}.footer-brand h1{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-bold);margin:0 0 var(--m365-spacing-m);color:var(--m365-text-primary)}.footer-brand-desc{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:var(--m365-spacing-m) 0 var(--m365-spacing-l);max-width:280px;line-height:1.6}.footer-social{gap:var(--m365-spacing-s);display:flex}.footer-social a{border-radius:var(--m365-radius-s);border:1px solid var(--m365-border);width:32px;height:32px;color:var(--m365-text-secondary);transition:background var(--m365-transition-fast), border-color var(--m365-transition-fast);justify-content:center;align-items:center;text-decoration:none;display:flex}.footer-social a:hover{border-color:var(--m365-accent);color:var(--m365-accent);background:var(--m365-accent-light)}.footer-col h4{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--m365-text-tertiary);margin:0 0 var(--m365-spacing-m)}.footer-col ul{margin:0;padding:0;list-style:none}.footer-col li{margin-bottom:var(--m365-spacing-s)}.footer-col a{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);transition:color var(--m365-transition-fast);text-decoration:none}.footer-col a:hover{color:var(--m365-accent)}.footer-bottom{border-top:1px solid var(--m365-border-subtle);padding-top:var(--m365-spacing-l);justify-content:space-between;align-items:center;gap:var(--m365-spacing-m);flex-wrap:wrap;display:flex}.footer-copyright{font-family:var(--m365-font-family);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary)}.section-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-bold);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-m);text-align:center}.section-desc{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-xxl);text-align:center}.header{z-index:100;background:var(--m365-bg-surface);border-bottom:1px solid var(--m365-border-subtle);position:sticky;top:0}.header-inner{max-width:1440px;padding:0 var(--m365-spacing-l);justify-content:space-between;align-items:center;gap:var(--m365-spacing-l);height:48px;margin:0 auto;display:flex}.header-brand{align-items:center;gap:var(--m365-spacing-s);color:var(--m365-text-primary);padding:var(--m365-spacing-xxs) 0;flex-shrink:0;text-decoration:none;display:flex}.header-brand:hover{opacity:.85}.header-brand svg{flex-shrink:0}.header-brand h1{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0}.header-badge{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-secondary);background:var(--m365-bg-subtle);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-round);border:1px solid var(--m365-border);letter-spacing:.02em;white-space:nowrap}.header-stats{align-items:center;gap:var(--m365-spacing-l);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);display:flex}.header-stats strong{color:var(--m365-text-primary);font-weight:var(--m365-font-weight-semibold)}.header-search{align-items:center;width:260px;display:flex;position:relative}.header-search input{width:100%;height:32px;padding:0 var(--m365-spacing-m) 0 32px;font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family);color:var(--m365-text-primary);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast);outline:none}.header-search input::placeholder{color:var(--m365-text-tertiary)}.header-search input:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus)}.header-search-icon{left:var(--m365-spacing-s);color:var(--m365-text-tertiary);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.header-search-kbd{right:var(--m365-spacing-s);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);background:var(--m365-bg-page);border:1px solid var(--m365-border);border-radius:var(--m365-radius-xs);padding:1px var(--m365-spacing-xs);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.category-nav{max-width:1440px;padding:var(--m365-spacing-s) var(--m365-spacing-l) 0;gap:var(--m365-spacing-xs);flex-wrap:wrap;align-items:center;margin:0 auto;display:flex}.category-btn{border-radius:var(--m365-radius-round);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-secondary);border:1px solid var(--m365-border);transition:all var(--m365-transition-fast);white-space:nowrap;background:0 0;justify-content:center;align-items:center;min-width:44px;min-height:28px;padding:3px 10px;display:inline-flex}.category-btn:hover{color:var(--m365-text-primary);border-color:var(--m365-border-strong);background:var(--m365-bg-hover)}.category-btn:focus-visible{outline:2px solid var(--m365-border-focus);outline-offset:1px}.category-btn.active{color:var(--m365-accent);border-color:var(--m365-accent);background:var(--m365-accent-light);font-weight:var(--m365-font-weight-semibold)}.gallery{max-width:1440px;padding:var(--m365-spacing-l) var(--m365-spacing-xxxl) var(--m365-spacing-xxxl);flex:1;width:100%;margin:0 auto}.gallery-category{margin-bottom:var(--m365-spacing-xl)}.category-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--m365-text-tertiary);margin:0 0 var(--m365-spacing-m);padding-bottom:var(--m365-spacing-xs);border-bottom:1px solid var(--m365-border-subtle)}.gallery-grid{gap:var(--m365-spacing-s);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.chart-card{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);transition:box-shadow var(--m365-transition-default), transform var(--m365-transition-default), border-color var(--m365-transition-fast);cursor:pointer;flex-direction:column;display:flex;position:relative;overflow:hidden}.chart-card:hover,.chart-card:focus-within{box-shadow:var(--m365-shadow-level2);border-color:var(--m365-accent)}.chart-card:focus-within{outline:2px solid var(--m365-border-focus);outline-offset:-1px}.chart-preview{aspect-ratio:4/3;background:var(--m365-bg-subtle);flex-shrink:0;width:100%;display:block;overflow:hidden}.chart-preview svg{width:100%;height:100%;display:block}.lazy-chart{width:100%;height:100%}.lazy-chart-skeleton{background:linear-gradient(100deg, var(--m365-bg-subtle) 35%, var(--m365-bg-hover) 50%, var(--m365-bg-subtle) 65%);background-size:220% 100%;width:100%;height:100%;animation:1.4s ease-in-out infinite lazyShimmer}@keyframes lazyShimmer{0%{background-position:220% 0}to{background-position:-220% 0}}@media (prefers-reduced-motion:reduce){.lazy-chart-skeleton{animation:none}}.chart-info{padding:var(--m365-spacing-xs) var(--m365-spacing-s) var(--m365-spacing-s);align-items:flex-start;gap:var(--m365-spacing-xs);min-height:0;display:flex}.chart-fav-btn{top:var(--m365-spacing-xs);right:var(--m365-spacing-xs);z-index:3;background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-round);cursor:pointer;width:24px;height:24px;color:var(--m365-text-secondary);transition:color var(--m365-transition-fast), background var(--m365-transition-fast);opacity:0;justify-content:center;align-items:center;display:flex;position:absolute}.chart-card:hover .chart-fav-btn,.chart-card:focus-within .chart-fav-btn{opacity:1}.chart-fav-btn:hover{color:var(--m365-error);background:var(--m365-error-bg)}.chart-fav-btn.is-active{opacity:1;color:var(--m365-error)}.chart-title{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);-webkit-line-clamp:2;line-height:1.3;font-family:var(--m365-font-family);-webkit-box-orient:vertical;flex:1;margin:0;display:-webkit-box;overflow:hidden}.chart-desc{font-size:var(--m365-font-size-xs);color:var(--m365-text-secondary);-webkit-line-clamp:1;line-height:1.3;font-family:var(--m365-font-family);-webkit-box-orient:vertical;margin:2px 0 0;display:-webkit-box;overflow:hidden}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-split{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);width:95vw;max-width:1300px;height:88vh;max-height:88vh;box-shadow:var(--m365-shadow-level4);flex-direction:column;display:flex;overflow:hidden}.modal-header{height:48px;padding:0 var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);background:var(--m365-bg-surface);justify-content:space-between;align-items:center;gap:var(--m365-spacing-m);flex-shrink:0;display:flex}.modal-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0}.modal-desc{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:500px;font-family:var(--m365-font-family);margin:2px 0 0;overflow:hidden}.modal-actions{align-items:center;gap:var(--m365-spacing-s);display:flex}.modal-category{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-accent);background:var(--m365-accent-light);border:1px solid color-mix(in srgb, var(--m365-accent) 25%, transparent);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-round);white-space:nowrap}.modal-close{border-radius:var(--m365-radius-s);border:1px solid var(--m365-border);background:var(--m365-bg-subtle);width:32px;height:32px;color:var(--m365-text-secondary);transition:all var(--m365-transition-fast);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal-close:hover{border-color:var(--m365-border-strong);color:var(--m365-text-primary);background:var(--m365-bg-hover)}.split-container{-webkit-user-select:none;user-select:none;flex:1;width:100%;min-height:0;display:flex;position:relative;overflow:hidden}.split-container.is-dragging{cursor:col-resize}.pane{background:var(--m365-bg-surface);flex-direction:column;min-width:200px;height:100%;display:flex;overflow:hidden}.pane-left{background:var(--m365-bg-subtle)}.pane-right{background:var(--m365-bg-surface)}.pane-header{height:36px;padding:0 var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-secondary);background:var(--m365-bg-subtle);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.pane-tools{align-items:center;gap:var(--m365-spacing-xs);display:flex}.btn-tool{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);font-family:var(--m365-font-family);border-radius:var(--m365-radius-s);border:1px solid var(--m365-border);background:var(--m365-bg-subtle);color:var(--m365-text-primary);transition:all var(--m365-transition-fast);justify-content:center;align-items:center;gap:var(--m365-spacing-xs);min-width:44px;min-height:28px;padding:3px 8px;display:inline-flex}.btn-tool:hover{border-color:var(--m365-accent);color:var(--m365-accent);background:var(--m365-accent-light)}.editor-container{height:100%;min-height:0;padding:var(--m365-spacing-l);flex-direction:column;flex:1;display:flex}.json-editor{resize:none;width:100%;height:100%;min-height:240px;font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:var(--m365-spacing-m) var(--m365-spacing-l);transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast);white-space:pre;tab-size:2;outline:none;flex:1;line-height:1.7}.json-editor:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus)}.json-error-banner{background:var(--m365-error-bg);border-bottom:1px solid color-mix(in srgb, var(--m365-error) 30%, transparent);color:var(--m365-error);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);padding:var(--m365-spacing-m) var(--m365-spacing-l);align-items:center;gap:var(--m365-spacing-m);flex-shrink:0;display:flex}.modal-hint{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);padding:var(--m365-spacing-m) var(--m365-spacing-l);border-top:1px solid var(--m365-border-subtle);background:var(--m365-bg-subtle);align-items:center;gap:var(--m365-spacing-xs);flex-shrink:0;display:flex}.modal-footer{flex-shrink:0}.splitter{background:var(--m365-border);cursor:col-resize;z-index:10;width:4px;transition:background var(--m365-transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.splitter:hover,.split-container.is-dragging .splitter{background:var(--m365-accent)}.splitter-handle{background:var(--m365-text-tertiary);width:2px;height:24px;transition:background var(--m365-transition-fast);border-radius:2px}.splitter:hover .splitter-handle,.split-container.is-dragging .splitter-handle{background:var(--m365-bg-surface)}.pane-content{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:auto}.chart-container{padding:var(--m365-spacing-l);justify-content:center;align-items:center;height:100%;display:flex}.chart-container svg{object-fit:contain;max-width:100%;height:auto;max-height:100%}svg text{font-family:var(--m365-font-family)}@media (width<=768px){.header-inner{padding:0 var(--m365-spacing-l)}.header-stats{display:none}.header-search{width:180px}.category-nav{padding:8px var(--m365-spacing-l) 0;gap:4px}.gallery{padding:var(--m365-spacing-l) var(--m365-spacing-l) var(--m365-spacing-xxxl)}.gallery-grid{gap:var(--m365-spacing-s);grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.modal-split{border:none;border-radius:0;width:100vw;height:94vh;max-height:94vh}.modal-overlay{padding:0}.split-container{flex-direction:column}.pane-left,.pane-right{height:50%;width:100%!important}.splitter{cursor:row-resize;width:100%;height:4px}.splitter-handle{width:24px;height:2px}}@media (width<=480px){.header-search{display:none}.gallery-grid{gap:var(--m365-spacing-xs);grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.empty-state{padding:var(--m365-spacing-xxxl) var(--m365-spacing-l);text-align:center;color:var(--m365-text-secondary);flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;display:flex}.empty-state-icon{width:48px;height:48px;margin-bottom:var(--m365-spacing-l);opacity:.5}.empty-state h3{font-family:var(--m365-font-family);font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-s)}.empty-state p{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);max-width:280px;font-family:var(--m365-font-family);margin:0}.semantic-chart{margin:0;display:block}.chart-svg-container{aspect-ratio:4/3;width:100%}.lang-switcher{background:var(--m365-bg-subtle);color:var(--m365-text-primary);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:3px var(--m365-spacing-s);font-size:var(--m365-font-size-sm);cursor:pointer;font-family:var(--m365-font-family)}.lang-switcher:focus-visible{outline:2px solid var(--m365-border-focus);outline-offset:1px}.theme-toggle{border-radius:var(--m365-radius-s);border:1px solid var(--m365-border);background:var(--m365-bg-subtle);width:32px;height:32px;color:var(--m365-text-primary);cursor:pointer;transition:background var(--m365-transition-fast), border-color var(--m365-transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--m365-bg-hover);border-color:var(--m365-border-strong)}.theme-toggle:focus-visible{outline:2px solid var(--m365-border-focus);outline-offset:1px}.data-import-overlay{z-index:300}.data-import-panel{padding:var(--m365-spacing-l)}.data-import-header{justify-content:space-between;align-items:center;display:flex}.data-import-header h3{font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);font-family:var(--m365-font-family);margin:0}.data-import-info{align-items:center;gap:var(--m365-spacing-s);flex-wrap:wrap;display:flex}.data-import-format-label{align-items:center;gap:var(--m365-spacing-xs);padding:2px var(--m365-spacing-s);border-radius:var(--m365-radius-round);background:var(--m365-accent-light);color:var(--m365-accent);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);letter-spacing:.04em;display:inline-flex}.data-import-format-desc{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);font-family:var(--m365-font-family)}.drop-zone{border:2px dashed var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-xxxl);text-align:center;cursor:pointer;transition:border-color var(--m365-transition-fast), background var(--m365-transition-fast);color:var(--m365-text-secondary);font-family:var(--m365-font-family)}.drop-zone:hover,.drop-zone.dragging{border-color:var(--m365-accent);background:var(--m365-accent-light)}.drop-zone p{margin:var(--m365-spacing-s) 0 0;font-size:var(--m365-font-size-sm)}.drop-zone .hint{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary)}.import-divider{align-items:center;gap:var(--m365-spacing-m);color:var(--m365-text-tertiary);font-size:var(--m365-font-size-xs);text-transform:uppercase;letter-spacing:.06em;font-family:var(--m365-font-family);display:flex}.import-divider:before,.import-divider:after{content:"";background:var(--m365-border);flex:1;height:1px}.data-import-textarea{background:var(--m365-bg-subtle);width:100%;color:var(--m365-text-primary);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:var(--m365-spacing-m);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);resize:vertical;min-height:130px}.data-import-textarea:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus);outline:none}.data-import-textarea::placeholder{color:var(--m365-text-tertiary)}.import-actions{gap:var(--m365-spacing-s);display:flex}.import-error{align-items:center;gap:var(--m365-spacing-m);padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-error-bg);color:var(--m365-error);border-radius:var(--m365-radius-s);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family);display:flex}.import-preview{border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);overflow:visible}.import-count{padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-subtle);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);border-bottom:1px solid var(--m365-border);z-index:1;font-family:var(--m365-font-family);margin:0;position:sticky;top:0}.numeric-note{color:var(--m365-accent)}.preview-table{overflow-x:auto}.preview-table table{border-collapse:collapse;width:100%;font-size:var(--m365-font-size-sm);min-width:100%}.preview-table th,.preview-table td{padding:var(--m365-spacing-s) var(--m365-spacing-m);text-align:left;border-bottom:1px solid var(--m365-border-subtle);white-space:nowrap;font-family:var(--m365-font-family)}.preview-table th{background:var(--m365-bg-subtle);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);position:sticky;top:0}.preview-table td{color:var(--m365-text-secondary);font-family:var(--m365-font-mono)}.preview-table tr:hover td{background:var(--m365-bg-hover)}.preview-truncated{padding:var(--m365-spacing-m) var(--m365-spacing-l);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);background:var(--m365-bg-subtle);text-align:center;font-family:var(--m365-font-family);margin:0}.import-hint{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-style:italic;font-family:var(--m365-font-family);margin:0}.live-feed-badge{align-items:center;gap:var(--m365-spacing-xs);padding:1px var(--m365-spacing-s);background:var(--m365-accent-light);color:var(--m365-accent);border-radius:var(--m365-radius-round);font-size:var(--m365-font-size-xs);font-family:var(--m365-font-mono);font-weight:var(--m365-font-weight-semibold);border:1px solid color-mix(in srgb, var(--m365-accent) 25%, transparent);display:inline-flex}.live-feed-badge .live-dot{background:var(--m365-accent);border-radius:50%;width:6px;height:6px}.live-dashboard{max-width:1200px;padding:var(--m365-spacing-l);margin:0 auto}.live-dashboard-header{margin-bottom:var(--m365-spacing-l);justify-content:space-between;align-items:center;display:flex}.live-dashboard-header h2{font-size:var(--m365-font-size-lg);color:var(--m365-text-primary);font-family:var(--m365-font-family);margin:0}.live-controls{gap:var(--m365-spacing-l);margin-bottom:var(--m365-spacing-m);padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);flex-wrap:wrap;align-items:center;display:flex}.live-controls label{align-items:center;gap:var(--m365-spacing-s);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);font-family:var(--m365-font-family);display:flex}.live-controls select,.live-controls input[type=number]{background:var(--m365-bg-page);color:var(--m365-text-primary);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:3px var(--m365-spacing-s);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.live-chart-container{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);min-height:400px}.live-status{font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);margin-bottom:var(--m365-spacing-s);font-family:var(--m365-font-family)}.live-status strong{color:var(--m365-accent)}.live-count{opacity:.7}.search-panel{z-index:200;background:var(--m365-bg-page);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.search-panel-header{align-items:center;gap:var(--m365-spacing-s);padding:var(--m365-spacing-l) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border);background:var(--m365-bg-surface);flex-shrink:0;display:flex}.search-input-wrapper{align-items:center;gap:var(--m365-spacing-s);background:var(--m365-bg-page);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-s) var(--m365-spacing-m);transition:border-color var(--m365-transition-fast);flex:1;display:flex}.search-input-wrapper:focus-within{border-color:var(--m365-accent);box-shadow:0 0 0 1px var(--m365-accent)}.search-icon{color:var(--m365-text-tertiary);flex-shrink:0}.search-input{color:var(--m365-text-primary);font-size:var(--m365-font-size-base);font-family:var(--m365-font-family);background:0 0;border:none;outline:none;flex:1}.search-input::placeholder{color:var(--m365-text-tertiary)}.search-clear,.search-close{cursor:pointer;color:var(--m365-text-tertiary);padding:var(--m365-spacing-xxs);border-radius:var(--m365-radius-s);transition:color var(--m365-transition-fast);background:0 0;border:none;display:flex}.search-clear:hover,.search-close:hover{color:var(--m365-text-primary)}.search-facets{gap:var(--m365-spacing-l);padding:var(--m365-spacing-s) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border);background:var(--m365-bg-subtle);flex-wrap:wrap;flex-shrink:0;display:flex}.facet-group{align-items:center;gap:var(--m365-spacing-s);display:flex}.facet-group label{font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-family:var(--m365-font-family)}.facet-group select{background:var(--m365-bg-page);color:var(--m365-text-primary);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:3px var(--m365-spacing-s);font-size:var(--m365-font-size-sm);cursor:pointer;font-family:var(--m365-font-family);outline:none}.facet-group select:focus{border-color:var(--m365-accent)}.search-results{padding:var(--m365-spacing-xs) 0;flex:1;overflow-y:auto}.search-results-header{padding:var(--m365-spacing-s) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono);background:var(--m365-bg-page);z-index:1;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.search-query{color:var(--m365-accent)}.search-result-item{gap:var(--m365-spacing-m);padding:var(--m365-spacing-s) var(--m365-spacing-l);cursor:pointer;transition:background var(--m365-transition-fast);border-bottom:1px solid var(--m365-border-subtle);display:flex}.search-result-item:hover,.search-result-item.is-active{background:var(--m365-bg-hover)}.search-result-preview{border-radius:var(--m365-radius-s);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);flex-shrink:0;width:80px;height:60px;overflow:hidden}.search-result-info{gap:var(--m365-spacing-xs);flex-direction:column;flex:1;min-width:0;display:flex}.search-result-title{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);font-family:var(--m365-font-family)}.search-result-desc{font-size:var(--m365-font-size-xs);color:var(--m365-text-secondary);-webkit-line-clamp:1;font-family:var(--m365-font-family);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.search-result-meta{gap:var(--m365-spacing-s);flex-wrap:wrap;align-items:center;display:flex}.search-result-category{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono)}.search-result-complexity{font-size:var(--m365-font-size-xs);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-s);background:var(--m365-accent-light);color:var(--m365-accent);font-family:var(--m365-font-mono)}.search-result-tag{font-size:var(--m365-font-size-xs);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-s);background:var(--m365-bg-hover);color:var(--m365-text-tertiary);border:1px solid var(--m365-border);font-family:var(--m365-font-mono)}.search-more{padding:var(--m365-spacing-m) var(--m365-spacing-l);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);text-align:center;font-family:var(--m365-font-mono);border-top:1px solid var(--m365-border)}.search-empty{padding:var(--m365-spacing-xxxl) var(--m365-spacing-l);text-align:center;color:var(--m365-text-tertiary);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.search-empty p{margin:var(--m365-spacing-s) 0}.search-footer{gap:var(--m365-spacing-l);padding:var(--m365-spacing-s) var(--m365-spacing-l);border-top:1px solid var(--m365-border);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono);background:var(--m365-bg-subtle);flex-shrink:0;display:flex}.search-footer kbd{background:var(--m365-bg-hover);border:1px solid var(--m365-border);border-radius:var(--m365-radius-xs);padding:1px var(--m365-spacing-s);font-size:var(--m365-font-size-xs);font-family:var(--m365-font-mono)}.dashboard-page{gap:var(--m365-spacing-m);padding:var(--m365-spacing-l);flex-direction:column;width:100%;max-width:1400px;margin:0 auto;display:flex}.dashboard-header{padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);justify-content:space-between;align-items:center;gap:var(--m365-spacing-m);box-shadow:var(--m365-shadow-level1);flex-wrap:wrap;display:flex}.dashboard-header h1{font-size:var(--m365-font-size-lg);font-family:var(--m365-font-family);color:var(--m365-text-primary);margin:0}.dashboard-actions{gap:var(--m365-spacing-s);flex-wrap:wrap;display:flex}.dashboard-selector{gap:var(--m365-spacing-xs);padding:0 var(--m365-spacing-xs);flex-wrap:wrap;display:flex}.dashboard-tab{align-items:center;gap:var(--m365-spacing-s);padding:4px var(--m365-spacing-m);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);background:var(--m365-bg-surface);cursor:pointer;font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);font-family:var(--m365-font-family);transition:all var(--m365-transition-fast);display:flex}.dashboard-tab:hover{border-color:var(--m365-border-strong);color:var(--m365-text-primary)}.dashboard-tab.active{border-color:var(--m365-accent);color:var(--m365-accent);background:var(--m365-accent-light)}.dashboard-tab-close{cursor:pointer;color:var(--m365-text-tertiary);opacity:.5;transition:all var(--m365-transition-fast);background:0 0;border:none;padding:0;display:flex}.dashboard-tab-close:hover{opacity:1;color:var(--m365-error)}.dashboard-canvas{background:var(--m365-bg-page);border:1px dashed var(--m365-border);border-radius:var(--m365-radius-l);min-height:480px;padding:var(--m365-spacing-l);position:relative;overflow:auto}.dashboard-cell{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);box-shadow:var(--m365-shadow-level1);transition:box-shadow var(--m365-transition-fast);flex-direction:column;display:flex;overflow:hidden}.dashboard-cell:hover{box-shadow:var(--m365-shadow-level2);border-color:var(--m365-border-strong)}.dashboard-cell-header{padding:var(--m365-spacing-xs) var(--m365-spacing-m);background:var(--m365-bg-subtle);border-bottom:1px solid var(--m365-border);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);min-height:30px;font-family:var(--m365-font-family);justify-content:space-between;align-items:center;display:flex}.dashboard-cell-title{color:var(--m365-text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-family:var(--m365-font-family);overflow:hidden}.dashboard-cell-actions{gap:var(--m365-spacing-xxs);opacity:0;transition:opacity var(--m365-transition-fast);display:flex}.dashboard-cell:hover .dashboard-cell-actions{opacity:1}.dashboard-cell-action{cursor:pointer;color:var(--m365-text-tertiary);padding:var(--m365-spacing-xxs);border-radius:var(--m365-radius-s);transition:all var(--m365-transition-fast);background:0 0;border:none;display:flex}.dashboard-cell-action:hover{color:var(--m365-error);background:var(--m365-error-bg)}.dashboard-cell-content{padding:var(--m365-spacing-m);flex:1;justify-content:center;align-items:center;min-height:140px;display:flex;overflow:hidden}.dashboard-empty{justify-content:center;align-items:center;gap:var(--m365-spacing-m);height:320px;color:var(--m365-text-tertiary);flex-direction:column;display:flex}.dashboard-empty h2{font-size:var(--m365-font-size-lg);color:var(--m365-text-secondary);font-family:var(--m365-font-family);margin:0}.dashboard-empty p{font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);font-family:var(--m365-font-family);margin:0}.chart-picker-overlay{z-index:200;background:#0006;justify-content:center;align-items:flex-start;padding-top:70px;display:flex;position:fixed;inset:0;overflow-y:auto}.chart-picker{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);width:640px;max-width:90vw;max-height:calc(100vh - 100px);box-shadow:var(--m365-shadow-level4);flex-direction:column;margin-bottom:40px;display:flex}.chart-picker-header{padding:var(--m365-spacing-m) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.chart-picker-header h2{font-size:var(--m365-font-size-base);font-family:var(--m365-font-family);color:var(--m365-text-primary);margin:0}.chart-picker-close{cursor:pointer;color:var(--m365-text-tertiary);padding:var(--m365-spacing-xxs);border-radius:var(--m365-radius-s);transition:all var(--m365-transition-fast);background:0 0;border:none;display:flex}.chart-picker-close:hover{color:var(--m365-text-primary);background:var(--m365-bg-hover)}.chart-picker-grid{padding:var(--m365-spacing-m);gap:var(--m365-spacing-s);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid;overflow-y:auto}.chart-picker-item{padding:var(--m365-spacing-s);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);cursor:pointer;transition:all var(--m365-transition-fast);text-align:left;background:var(--m365-bg-page);flex-direction:column;display:flex}.chart-picker-item:hover{border-color:var(--m365-accent);background:var(--m365-accent-light)}.chart-picker-preview{height:80px;margin-bottom:var(--m365-spacing-s);border-radius:var(--m365-radius-s);background:var(--m365-bg-subtle);justify-content:center;align-items:center;display:flex;overflow:hidden}.chart-picker-preview svg{max-width:100%;max-height:100%}.chart-picker-title{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:var(--m365-font-family);overflow:hidden}.chart-picker-category{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono);margin-top:2px}.btn-danger{align-items:center;gap:var(--m365-spacing-s);padding:var(--m365-spacing-xs) var(--m365-spacing-m);border-radius:var(--m365-radius-s);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);color:var(--m365-error);background:var(--m365-error-bg);border:1px solid color-mix(in srgb, var(--m365-error) 30%, transparent);cursor:pointer;transition:all var(--m365-transition-fast);display:inline-flex}.btn-danger:hover{background:color-mix(in srgb, var(--m365-error) 12%, transparent);border-color:var(--m365-error)}.hero{padding:var(--m365-spacing-xxxl) var(--m365-spacing-l) var(--m365-spacing-xxl);text-align:center;background:var(--m365-bg-surface);border-bottom:1px solid var(--m365-border-subtle);position:relative;overflow:hidden}.options-editor{height:100%;font-family:var(--m365-font-family);flex-direction:column;display:flex;overflow:hidden}.options-grid{gap:var(--m365-spacing-s);padding-right:var(--m365-spacing-xs);flex-direction:column;flex:1;display:flex;overflow:auto}.option-row{align-items:center;gap:var(--m365-spacing-m);padding:var(--m365-spacing-s) 0;border-bottom:1px solid var(--m365-border-subtle);grid-template-columns:120px 1fr auto;display:grid}.option-row:last-child{border-bottom:none}.option-label{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.option-input{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:3px var(--m365-spacing-s);transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast);outline:none;width:100%;min-width:0}.option-input:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus)}.option-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--m365-accent)}.option-desc{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.btn-reset{margin-top:var(--m365-spacing-m);flex-shrink:0;align-self:flex-start}.sim-info-section{padding:var(--m365-spacing-m) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border);background:var(--m365-bg-subtle);flex-shrink:0}.sim-info-label{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--m365-spacing-s)}.sim-info-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin-bottom:var(--m365-spacing-s);line-height:1.3}.sim-formula-block{background:var(--m365-bg-subtle);border-radius:var(--m365-radius-s);padding:var(--m365-spacing-s) var(--m365-spacing-m);margin-bottom:var(--m365-spacing-s);border:1px solid var(--m365-border)}.sim-formula-line{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-secondary);margin-bottom:2px;line-height:1.5}.sim-category{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin-bottom:var(--m365-spacing-s);font-family:var(--m365-font-family)}.sim-category strong{color:var(--m365-text-tertiary);font-weight:var(--m365-font-weight-semibold)}.sim-explanation{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);line-height:1.6;font-family:var(--m365-font-family)}.sim-visual-map{margin-top:var(--m365-spacing-s);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono)}.sim-visual-map div{margin-bottom:2px}.sim-visual-map strong{color:var(--m365-text-secondary);font-weight:var(--m365-font-weight-semibold)}.sim-options-section{padding:var(--m365-spacing-m) var(--m365-spacing-l);flex:1;overflow:auto}.sim-options-label{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--m365-spacing-m)}.sim-option-row{align-items:center;gap:var(--m365-spacing-m);margin-bottom:var(--m365-spacing-s);grid-template-columns:100px 1fr auto;display:grid}.sim-option-label{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sim-option-input{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:3px var(--m365-spacing-s);width:100%;min-width:0;transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast);outline:none}.sim-option-input:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus)}.sim-option-default{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sim-btn-reset{margin-top:var(--m365-spacing-m);width:100%}.recent-section{max-width:1100px;margin:0 auto var(--m365-spacing-xxxl);padding:0 var(--m365-spacing-l)}.recent-inner{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);box-shadow:var(--m365-shadow-level1)}.recent-header{margin-bottom:var(--m365-spacing-l);justify-content:space-between;align-items:center;display:flex}.recent-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0}.recent-clear{font-size:var(--m365-font-size-sm);padding:var(--m365-spacing-xs) var(--m365-spacing-s)}.recent-grid{gap:var(--m365-spacing-m);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.recent-item{gap:var(--m365-spacing-s);padding:var(--m365-spacing-m);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);cursor:pointer;transition:border-color var(--m365-transition-fast), transform var(--m365-transition-fast);background:var(--m365-bg-subtle);flex-direction:column;display:flex}.recent-item:hover{border-color:var(--m365-accent);transform:translateY(-1px)}.recent-preview{aspect-ratio:4/3;border-radius:var(--m365-radius-xs);overflow:hidden}.recent-label{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);white-space:nowrap;text-overflow:ellipsis;text-align:center;font-family:var(--m365-font-family);overflow:hidden}.featured-section{max-width:1100px;margin:0 auto var(--m365-spacing-xxxl);padding:0 var(--m365-spacing-l)}.featured-inner{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);box-shadow:var(--m365-shadow-level1)}.featured-subtitle{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-l);font-family:var(--m365-font-family)}.featured-grid{gap:var(--m365-spacing-l);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.featured-item{gap:var(--m365-spacing-m);padding:var(--m365-spacing-m);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);cursor:pointer;transition:border-color var(--m365-transition-fast);background:var(--m365-bg-subtle);flex-direction:column;display:flex}.featured-item:hover{border-color:var(--m365-accent)}.featured-preview{aspect-ratio:4/3;border-radius:var(--m365-radius-xs);overflow:hidden}.featured-title{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);font-family:var(--m365-font-family)}.featured-desc{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);-webkit-line-clamp:2;line-height:1.4;font-family:var(--m365-font-family);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.featured-category{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-family:var(--m365-font-mono)}.suggest-section{max-width:1100px;margin:0 auto var(--m365-spacing-xxxl);padding:0 var(--m365-spacing-l)}.chart-suggest{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);box-shadow:var(--m365-shadow-level1)}.chart-suggest-label{font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin-bottom:var(--m365-spacing-s);display:block}.chart-suggest-input-wrapper{gap:var(--m365-spacing-s);display:flex}.chart-suggest-input{padding:var(--m365-spacing-s) var(--m365-spacing-m);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);background:var(--m365-bg-subtle);color:var(--m365-text-primary);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);transition:border-color var(--m365-transition-fast);flex:1}.chart-suggest-input:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus);outline:none}.chart-suggest-btn{border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);background:var(--m365-bg-subtle);width:32px;height:32px;color:var(--m365-text-secondary);cursor:pointer;transition:all var(--m365-transition-fast);justify-content:center;align-items:center;padding:0;display:flex}.chart-suggest-btn:hover{border-color:var(--m365-accent);color:var(--m365-accent)}.chart-suggest-help{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);margin:var(--m365-spacing-s) 0 0;font-family:var(--m365-font-family)}.chart-suggest-results{margin-top:var(--m365-spacing-m);padding:var(--m365-spacing-m);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s)}.chart-suggest-results h3{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--m365-spacing-m);font-family:var(--m365-font-family)}.suggest-grid{gap:var(--m365-spacing-m);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.suggest-item{gap:var(--m365-spacing-s);padding:var(--m365-spacing-m);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);cursor:pointer;transition:all var(--m365-transition-fast);text-align:center;background:var(--m365-bg-surface);flex-direction:column;display:flex}.suggest-item:hover{border-color:var(--m365-accent);background:var(--m365-accent-light)}.suggest-preview{aspect-ratio:4/3;border-radius:var(--m365-radius-xs);overflow:hidden}.suggest-title{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:var(--m365-font-family);overflow:hidden}.suggest-category{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono)}.chart-suggest-empty{margin-top:var(--m365-spacing-m);padding:var(--m365-spacing-m);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s)}.chart-suggest-empty p{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-s);font-family:var(--m365-font-family)}.chart-suggest-empty ul{padding:0 0 0 var(--m365-spacing-l);font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono);margin:0}.toast-container{bottom:var(--m365-spacing-l);right:var(--m365-spacing-l);z-index:300;gap:var(--m365-spacing-s);pointer-events:none;flex-direction:column;max-width:360px;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--m365-spacing-m);padding:var(--m365-spacing-m) var(--m365-spacing-l);border-radius:var(--m365-radius-m);background:var(--m365-bg-surface);border:1px solid var(--m365-border);box-shadow:var(--m365-shadow-level3);pointer-events:auto;font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);line-height:1.4;display:flex}.toast.toast-error{border-color:color-mix(in srgb, var(--m365-error) 30%, transparent)}.toast.toast-success{border-color:color-mix(in srgb, var(--m365-accent) 30%, transparent)}.toast-icon{font-size:var(--m365-font-size-lg);flex-shrink:0;margin-top:1px}.toast-message{color:var(--m365-text-secondary);flex:1}.toast-dismiss{padding:var(--m365-spacing-xxs);cursor:pointer;color:var(--m365-text-tertiary);border-radius:var(--m365-radius-s);transition:color var(--m365-transition-fast), background var(--m365-transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-dismiss:hover{color:var(--m365-text-primary);background:var(--m365-bg-hover)}.related-charts{padding:var(--m365-spacing-m) var(--m365-spacing-l);border-top:1px solid var(--m365-border-subtle);flex-shrink:0}.related-charts-title{font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--m365-spacing-s);font-family:var(--m365-font-family)}.related-charts-list{gap:var(--m365-spacing-s);padding-bottom:var(--m365-spacing-xs);display:flex;overflow-x:auto}.related-charts-list::-webkit-scrollbar{height:4px}.related-charts-list::-webkit-scrollbar-thumb{background:var(--m365-border);border-radius:2px}.related-card{width:160px;padding:var(--m365-spacing-m);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);cursor:pointer;transition:border-color var(--m365-transition-fast);flex-shrink:0}.related-card:hover{border-color:var(--m365-accent)}.related-card-title{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-primary);white-space:nowrap;text-overflow:ellipsis;font-family:var(--m365-font-family);margin-bottom:2px;overflow:hidden}.related-card-cat{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono)}.modal-tabs{border-bottom:1px solid var(--m365-border);padding:0 var(--m365-spacing-l);flex-shrink:0;display:flex}.modal-tab{padding:var(--m365-spacing-s) var(--m365-spacing-m);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-tertiary);cursor:pointer;transition:all var(--m365-transition-fast);align-items:center;gap:var(--m365-spacing-xs);font-family:var(--m365-font-family);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:flex}.modal-tab:hover{color:var(--m365-text-primary)}.modal-tab.active{color:var(--m365-accent);border-bottom-color:var(--m365-accent)}.modal-tab-badge{font-size:var(--m365-font-size-xs);padding:1px var(--m365-spacing-s);background:var(--m365-accent-light);border-radius:var(--m365-radius-round);color:var(--m365-accent);font-family:var(--m365-font-mono)}.tutorial-prompt-overlay{z-index:250;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.tutorial-prompt{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);box-shadow:var(--m365-shadow-level4);width:100%;max-width:480px;padding:var(--m365-spacing-xxxl)}.tutorial-prompt-icon{margin-bottom:var(--m365-spacing-m);font-size:32px}.tutorial-prompt-actions{gap:var(--m365-spacing-s);margin-top:var(--m365-spacing-l);justify-content:flex-end;display:flex}.charts-page-content{flex-direction:column;flex:1;min-height:0;display:flex}.charts-page-content .tag-gallery{flex:1;min-height:0}.page-content{flex-direction:column;flex:1;min-height:0;display:flex}.license-text{gap:var(--m365-spacing-m);flex-direction:column;display:flex}.license-pre{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-secondary);white-space:pre-wrap;word-break:break-word;background:var(--m365-bg-hover);border:1px solid var(--m365-border-subtle);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);max-height:320px;margin:0;line-height:1.6;overflow-y:auto}.gradient-text{background:linear-gradient(135deg, var(--m365-accent) 0%, var(--m365-info) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.tag-gallery{flex:1;max-width:100%;min-height:0;display:flex;overflow:hidden}.tag-gallery-left{min-width:0;padding:var(--m365-spacing-l) var(--m365-spacing-xxxl) var(--m365-spacing-xxxl);flex-direction:column;flex:1;display:flex;overflow:hidden}.gallery-scroll{flex:1;min-height:0;overflow-y:auto}.tag-gallery-right{border-left:1px solid var(--m365-border);background:var(--m365-bg-page);flex-direction:column;flex-shrink:0;width:280px;min-width:200px;max-width:500px;display:flex;overflow:hidden}.tag-splitter{background:var(--m365-border);cursor:col-resize;width:4px;transition:background var(--m365-transition-fast);flex-shrink:0}.tag-splitter:hover,.tag-splitter.dragging{background:var(--m365-accent)}.tag-sidebar-header{height:36px;padding:0 var(--m365-spacing-l);border-bottom:1px solid var(--m365-border-subtle);font-family:var(--m365-font-family);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-secondary);background:var(--m365-bg-subtle);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.tag-sidebar-header:hover{color:var(--m365-text-primary)}.tag-total{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-tertiary)}.tag-cloud{padding:var(--m365-spacing-m) var(--m365-spacing-s);gap:var(--m365-spacing-xs);flex-wrap:wrap;flex:1;align-content:flex-start;display:flex;overflow-y:hidden}.tag-btn{align-items:center;gap:var(--m365-spacing-xs);padding:2px var(--m365-spacing-s);border-radius:var(--m365-radius-round);color:var(--m365-text-primary);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);cursor:pointer;text-align:left;transition:all var(--m365-transition-fast);background:0 0;border:1px solid #0000;display:inline-flex}.tag-btn:hover{background:var(--m365-bg-hover);border-color:var(--m365-border)}.tag-btn.active{background:var(--m365-accent-light);border-color:color-mix(in srgb, var(--m365-accent) 35%, transparent);color:var(--m365-accent)}.tag-count{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);opacity:.7;flex-shrink:0;margin-left:auto}.tag-btn.active .tag-count{color:var(--m365-accent);opacity:1}.gallery-header{margin-bottom:var(--m365-spacing-m);flex-shrink:0}.gallery-title{font-family:var(--m365-font-family);font-size:var(--m365-font-size-base);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-xs)}.gallery-count{font-family:var(--m365-font-mono);font-weight:var(--m365-font-weight-regular);color:var(--m365-text-tertiary);font-size:var(--m365-font-size-xs)}.section-header{margin-bottom:var(--m365-spacing-s);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.section-header:hover .section-title{color:var(--m365-text-primary)}.section-title{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-secondary);text-transform:uppercase;letter-spacing:.06em;transition:color var(--m365-transition-fast)}.section-count{font-family:var(--m365-font-mono);font-weight:var(--m365-font-weight-regular);text-transform:none;letter-spacing:0;color:var(--m365-text-tertiary)}.section-toggle{color:var(--m365-text-tertiary);flex-shrink:0;align-items:center;display:flex}.data-type-filter.collapsed,.tag-cloud.collapsed{display:none}.data-type-filter-bar{padding:var(--m365-spacing-s) var(--m365-spacing-m) var(--m365-spacing-xs);border-bottom:1px solid var(--m365-border);background:var(--m365-bg-subtle);flex-shrink:0}.data-type-filter{gap:var(--m365-spacing-s);padding:var(--m365-spacing-s) var(--m365-spacing-m) 0;flex-wrap:wrap;display:flex}.data-type-btn{align-items:center;gap:var(--m365-spacing-xs);color:var(--m365-text-secondary);font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);cursor:pointer;transition:all var(--m365-transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;padding:2px 0;display:inline-flex}.data-type-btn:hover{color:var(--m365-text-primary);border-bottom-color:var(--m365-border)}.data-type-btn.active{color:var(--m365-accent);border-bottom-color:var(--m365-accent)}.data-type-count{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);opacity:.7}.data-type-btn.active .data-type-count{color:var(--m365-accent);opacity:1}.data-type-detail{border-top:1px solid var(--m365-border);margin-top:var(--m365-spacing-s);padding-top:var(--m365-spacing-s);background:0 0;overflow:visible}.data-type-detail-header{margin-bottom:var(--m365-spacing-s);justify-content:space-between;align-items:center;display:flex}.data-type-detail-title{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);margin:0}.data-type-detail-close{cursor:pointer;color:var(--m365-text-tertiary);padding:var(--m365-spacing-xxs);border-radius:var(--m365-radius-xs);transition:all var(--m365-transition-fast);background:0 0;border:none;align-items:center;display:flex}.data-type-detail-close:hover{color:var(--m365-text-primary);background:var(--m365-bg-page)}.data-type-detail-desc{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-m);line-height:1.6}.data-type-detail-example{gap:var(--m365-spacing-s);margin-bottom:var(--m365-spacing-m);align-items:baseline;display:flex}.data-type-detail-label{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-tertiary);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.data-type-detail-example code{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-accent);background:var(--m365-bg-page);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-xs);word-break:break-all}.data-type-detail-charts{align-items:center;gap:var(--m365-spacing-s);flex-wrap:wrap;display:flex}.data-type-detail-count{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary)}.data-type-detail-list{gap:var(--m365-spacing-xxs);flex-wrap:wrap;width:100%;display:flex}.data-type-chip{font-family:var(--m365-font-mono);font-size:var(--m365-font-size-xs);color:var(--m365-text-secondary);background:var(--m365-bg-page);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-xs);border:1px solid var(--m365-border)}.data-type-chip-more{color:var(--m365-text-tertiary);border-color:#0000;font-style:italic}.category-page{gap:var(--m365-spacing-xxxl);flex-direction:column;display:flex}.category-hero{padding:var(--m365-spacing-l);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);box-shadow:var(--m365-shadow-level1)}.category-hero h1{margin:0 0 var(--m365-spacing-m) 0;font-size:28px;font-family:var(--m365-font-family);color:var(--m365-text-primary)}.category-hero p{color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-m) 0;line-height:1.5;font-family:var(--m365-font-family)}.category-meta{align-items:center;gap:var(--m365-spacing-s);font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);font-family:var(--m365-font-family);display:flex}.category-meta select{font-size:var(--m365-font-size-sm);padding:3px var(--m365-spacing-s);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);background:var(--m365-bg-page);color:var(--m365-text-primary);font-family:var(--m365-font-family)}.category-landing{max-width:1100px;margin:0 auto var(--m365-spacing-xxxl);padding:0 var(--m365-spacing-l)}.category-grid{gap:var(--m365-spacing-l);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.category-card{gap:var(--m365-spacing-l);padding:var(--m365-spacing-l);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);cursor:pointer;transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast);box-shadow:var(--m365-shadow-level1);display:flex}.category-card:hover{border-color:var(--m365-accent);box-shadow:var(--m365-shadow-level2)}.category-card-content{flex:1;min-width:0}.category-card h3{font-size:var(--m365-font-size-base);margin:0 0 var(--m365-spacing-xs) 0;font-family:var(--m365-font-family);color:var(--m365-text-primary)}.category-card p{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-m) 0;line-height:1.4;font-family:var(--m365-font-family)}.category-count{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono)}.category-preview{flex-shrink:0;justify-content:center;align-items:center;width:100px;height:70px;display:flex}.category-preview svg{max-width:100%;max-height:100%}.complexity-badge{font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-s);text-transform:uppercase;letter-spacing:.04em;display:inline-block}.complexity-beginner{background:var(--m365-success-bg);color:var(--m365-success)}.complexity-intermediate{background:var(--m365-warning-bg);color:var(--m365-warning)}.complexity-advanced{background:var(--m365-error-bg);color:var(--m365-error)}.compare-divider{border-left:1px solid var(--m365-border);width:1px}.canvas-chart-container{display:inline-block;position:relative}.canvas-chart-container canvas{image-rendering:pixelated;display:block}.chart-renderer-badge{font-family:var(--m365-font-mono);font-weight:var(--m365-font-weight-semibold);pointer-events:none}.plugin-store{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-l);padding:var(--m365-spacing-xxxl);max-width:600px;box-shadow:var(--m365-shadow-level1);font-family:var(--m365-font-family)}.plugin-store-header h3{margin:0 0 var(--m365-spacing-s);font-family:var(--m365-font-family);color:var(--m365-text-primary);font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-semibold)}.plugin-store-desc{margin:0 0 var(--m365-spacing-l);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary)}.plugin-section{margin-bottom:var(--m365-spacing-xxxl)}.plugin-section h4{margin:0 0 var(--m365-spacing-m);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);font-family:var(--m365-font-family);font-weight:var(--m365-font-weight-semibold)}.plugin-list{gap:var(--m365-spacing-s);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.plugin-item{padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);justify-content:space-between;align-items:center;gap:var(--m365-spacing-m);display:flex}.plugin-item.plugin-builtin{border-color:color-mix(in srgb, var(--m365-accent) 30%, transparent)}.plugin-info{gap:var(--m365-spacing-xxs);flex-direction:column;min-width:0;display:flex}.plugin-name{font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.plugin-version{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-mono)}.plugin-desc{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);font-family:var(--m365-font-family)}.plugin-badge{font-size:var(--m365-font-size-xs);padding:1px var(--m365-spacing-s);background:color-mix(in srgb, var(--m365-accent) 15%, transparent);color:var(--m365-accent);border-radius:var(--m365-radius-s);font-family:var(--m365-font-mono);font-weight:var(--m365-font-weight-semibold);flex-shrink:0}.plugin-install-form{gap:var(--m365-spacing-s);display:flex}.plugin-url-input{background:var(--m365-bg-page);color:var(--m365-text-primary);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);padding:var(--m365-spacing-s) var(--m365-spacing-m);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-mono);flex:1}.plugin-url-input:focus{border-color:var(--m365-border-focus);box-shadow:0 0 0 1px var(--m365-border-focus);outline:none}.plugin-error{margin-top:var(--m365-spacing-s);padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-error-bg);border:1px solid var(--m365-error);border-radius:var(--m365-radius-s);color:var(--m365-error);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.plugin-success{margin-top:var(--m365-spacing-s);padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-accent-light);border:1px solid color-mix(in srgb, var(--m365-accent) 30%, transparent);border-radius:var(--m365-radius-s);color:var(--m365-accent);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.plugin-empty{color:var(--m365-text-tertiary);font-size:var(--m365-font-size-sm);font-style:italic;font-family:var(--m365-font-family)}.plugin-help{margin-top:var(--m365-spacing-xxxl);padding:var(--m365-spacing-m);background:var(--m365-bg-subtle);border-radius:var(--m365-radius-m);font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);line-height:1.6;font-family:var(--m365-font-family)}.a11y-scanner{top:var(--m365-spacing-s);right:var(--m365-spacing-s);z-index:10;position:absolute}.a11y-scan-btn{align-items:center;gap:var(--m365-spacing-xs);padding:var(--m365-spacing-xs) var(--m365-spacing-s);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);color:var(--m365-text-primary);font-size:var(--m365-font-size-sm);cursor:pointer;transition:all var(--m365-transition-fast);font-family:var(--m365-font-family);display:flex}.a11y-scan-btn:hover{border-color:var(--m365-border-strong);background:var(--m365-bg-hover)}.a11y-scan-btn.a11y-violations{border-color:var(--m365-error);color:var(--m365-error)}.a11y-score{font-family:var(--m365-font-mono);font-weight:var(--m365-font-weight-semibold);font-size:var(--m365-font-size-xs)}.a11y-results{margin-top:var(--m365-spacing-s);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-m);min-width:240px;max-width:360px;box-shadow:var(--m365-shadow-level3);z-index:20;font-family:var(--m365-font-family);position:absolute;top:100%;right:0}.a11y-summary{align-items:center;gap:var(--m365-spacing-l);margin-bottom:var(--m365-spacing-s);display:flex}.a11y-score-large{font-size:24px;font-weight:var(--m365-font-weight-bold);font-family:var(--m365-font-mono)}.a11y-stats{gap:var(--m365-spacing-s);font-size:var(--m365-font-size-sm);display:flex}.a11y-passes{color:var(--m365-success)}.a11y-violations{color:var(--m365-error)}.a11y-incomplete{color:var(--m365-text-tertiary)}.a11y-violations-list{margin:0 0 var(--m365-spacing-s);max-height:160px;padding:0;list-style:none;overflow-y:auto}.a11y-violation{padding:var(--m365-spacing-xxs) 0;font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);border-bottom:1px solid var(--m365-border-subtle);font-family:var(--m365-font-family)}.a11y-impact{font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);margin-left:var(--m365-spacing-xxs)}.a11y-dismiss{top:var(--m365-spacing-s);right:var(--m365-spacing-s);color:var(--m365-text-tertiary);cursor:pointer;font-size:var(--m365-font-size-base);padding:var(--m365-spacing-xxs) var(--m365-spacing-s);background:0 0;border:none;position:absolute}.a11y-dismiss:hover{color:var(--m365-text-primary)}.chart-quality-page{padding:var(--m365-spacing-l);max-width:1200px;font-family:var(--m365-font-family);margin:0 auto}.chart-quality-page h2{font-family:var(--m365-font-family);color:var(--m365-text-primary);font-size:var(--m365-font-size-xl);font-weight:var(--m365-font-weight-bold);margin:0 0 var(--m365-spacing-m)}.quality-desc{color:var(--m365-text-secondary);font-size:var(--m365-font-size-base);margin:0 0 var(--m365-spacing-l)}.quality-summary{gap:var(--m365-spacing-l);margin:var(--m365-spacing-l) 0;flex-wrap:wrap;display:flex}.quality-card{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);min-width:120px;padding:var(--m365-spacing-l) var(--m365-spacing-xl);text-align:center;box-shadow:var(--m365-shadow-level1);flex:1}.quality-value{font-size:32px;font-weight:var(--m365-font-weight-bold);font-family:var(--m365-font-mono);margin-bottom:var(--m365-spacing-s)}.quality-label{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-family:var(--m365-font-family)}.quality-section{margin:var(--m365-spacing-xxxl) 0}.quality-section h3{font-family:var(--m365-font-family);color:var(--m365-text-primary);font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-semibold);margin:0 0 var(--m365-spacing-m)}.quality-list{gap:var(--m365-spacing-s);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.quality-issue{padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family);justify-content:space-between;display:flex}.quality-issue-label{color:var(--m365-text-primary);font-weight:var(--m365-font-weight-semibold)}.quality-issue-count{color:var(--m365-text-secondary)}.quality-grid{gap:var(--m365-spacing-s);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.quality-category{padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-s);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family);justify-content:space-between;align-items:center;display:flex}.quality-category-name{color:var(--m365-text-primary);font-weight:var(--m365-font-weight-regular)}.quality-category-stats{gap:var(--m365-spacing-s);font-size:var(--m365-font-size-sm);align-items:center;display:flex}.quality-pass{color:var(--m365-success)}.quality-warn{color:var(--m365-warning)}.quality-fail{color:var(--m365-error)}.quality-table{border-collapse:collapse;width:100%;font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.quality-table th,.quality-table td{padding:var(--m365-spacing-s) var(--m365-spacing-m);text-align:left;border-bottom:1px solid var(--m365-border-subtle)}.quality-table th{color:var(--m365-text-secondary);font-weight:var(--m365-font-weight-semibold);text-transform:uppercase;font-size:var(--m365-font-size-xs);letter-spacing:.04em}.quality-table td{color:var(--m365-text-primary)}.quality-count{font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);margin-left:var(--m365-spacing-m)}.performance-benchmark{padding:var(--m365-spacing-l);max-width:900px;font-family:var(--m365-font-family);margin:0 auto}.performance-benchmark h2{font-family:var(--m365-font-family);color:var(--m365-text-primary);font-size:var(--m365-font-size-xl);font-weight:var(--m365-font-weight-bold);margin:0 0 var(--m365-spacing-m)}.perf-desc{color:var(--m365-text-secondary);font-size:var(--m365-font-size-base);margin:0 0 var(--m365-spacing-l)}.perf-progress{margin:var(--m365-spacing-m) 0;padding:var(--m365-spacing-m) var(--m365-spacing-l);background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);font-size:var(--m365-font-size-sm);color:var(--m365-text-primary);box-shadow:var(--m365-shadow-level1)}.perf-results{margin-top:var(--m365-spacing-xxxl)}.perf-table{border-collapse:collapse;width:100%;font-size:var(--m365-font-size-sm);margin-bottom:var(--m365-spacing-xxxl);font-family:var(--m365-font-family)}.perf-table th,.perf-table td{padding:var(--m365-spacing-m) var(--m365-spacing-l);text-align:left;border-bottom:1px solid var(--m365-border-subtle)}.perf-table th{color:var(--m365-text-secondary);font-weight:var(--m365-font-weight-semibold);text-transform:uppercase;font-size:var(--m365-font-size-xs);letter-spacing:.04em}.perf-table td{color:var(--m365-text-primary);font-family:var(--m365-font-mono)}.perf-chart{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);margin-bottom:var(--m365-spacing-l);box-shadow:var(--m365-shadow-level1)}.perf-notes{font-size:var(--m365-font-size-sm);color:var(--m365-text-tertiary);margin-top:var(--m365-spacing-xxxl);font-style:italic;font-family:var(--m365-font-family)}@media (width<=768px){.plugin-store{padding:var(--m365-spacing-l)}.quality-summary{flex-direction:column}.quality-card{min-width:100%}.a11y-results{min-width:unset;max-width:unset;border-radius:var(--m365-radius-l);position:fixed;inset:0}.perf-results table{font-size:var(--m365-font-size-sm)}.perf-results th,.perf-results td{padding:var(--m365-spacing-s) var(--m365-spacing-m)}}.tutorial-list-view{padding:var(--m365-spacing-l);max-width:900px;font-family:var(--m365-font-family);margin:0 auto}.tutorial-list-header{margin-bottom:var(--m365-spacing-l);justify-content:space-between;align-items:center;gap:var(--m365-spacing-s);flex-wrap:wrap;display:flex}.tutorial-list-header h2{font-size:var(--m365-font-size-xl);font-weight:var(--m365-font-weight-bold);color:var(--m365-text-primary);margin:0}.tutorial-progress-summary{align-items:center;gap:var(--m365-spacing-s);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);display:flex}.tutorial-reset-btn{font-size:var(--m365-font-size-sm);padding:var(--m365-spacing-xs) var(--m365-spacing-s)}.tutorial-grid{gap:var(--m365-spacing-l);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.tutorial-card{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);cursor:pointer;transition:border-color var(--m365-transition-fast), box-shadow var(--m365-transition-fast);box-shadow:var(--m365-shadow-level1);overflow:hidden}.tutorial-card:hover,.tutorial-card:focus-visible{border-color:var(--m365-accent);box-shadow:var(--m365-shadow-level2)}.tutorial-card.tutorial-completed{border-color:color-mix(in srgb, var(--m365-accent) 30%, transparent)}.tutorial-card-preview{background:var(--m365-bg-subtle);height:120px;position:relative;overflow:hidden}.tutorial-complete-badge{top:var(--m365-spacing-s);right:var(--m365-spacing-s);background:var(--m365-accent);width:24px;height:24px;color:var(--m365-text-on-accent);border-radius:var(--m365-radius-round);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);justify-content:center;align-items:center;display:flex;position:absolute}.tutorial-card-content{padding:var(--m365-spacing-m)}.tutorial-card-content h3{font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-semibold);margin:0 0 var(--m365-spacing-xs) 0;color:var(--m365-text-primary);font-family:var(--m365-font-family)}.tutorial-card-content p{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);margin:0 0 var(--m365-spacing-m) 0;-webkit-line-clamp:2;line-height:1.4;font-family:var(--m365-font-family);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.tutorial-meta{gap:var(--m365-spacing-s);font-size:var(--m365-font-size-xs);color:var(--m365-text-tertiary);font-family:var(--m365-font-family);display:flex}.tutorial-difficulty{background:var(--m365-bg-hover);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-s);text-transform:capitalize}.tutorial-view{padding:var(--m365-spacing-l);max-width:800px;font-family:var(--m365-font-family);margin:0 auto}.tutorial-view-header{align-items:center;gap:var(--m365-spacing-m);margin-bottom:var(--m365-spacing-m);display:flex}.tutorial-back-btn{color:var(--m365-accent);font-size:var(--m365-font-size-sm);cursor:pointer;padding:var(--m365-spacing-xs) var(--m365-spacing-s);border-radius:var(--m365-radius-s);font-family:var(--m365-font-family);background:0 0;border:none}.tutorial-back-btn:hover{background:var(--m365-accent-light)}.tutorial-view-header h2{font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-bold);color:var(--m365-text-primary);flex:1;margin:0}.tutorial-step-indicator{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);font-weight:var(--m365-font-weight-regular)}.tutorial-progress-track{background:var(--m365-border);border-radius:var(--m365-radius-round);height:3px;margin-bottom:var(--m365-spacing-l);overflow:hidden}.tutorial-progress-fill{background:var(--m365-accent);height:100%;transition:width var(--m365-transition-default);border-radius:var(--m365-radius-round)}.tutorial-chart-area{background:var(--m365-bg-subtle);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-m);margin-bottom:var(--m365-spacing-l);border:1px solid var(--m365-border);overflow:hidden}.tutorial-step-content{background:var(--m365-bg-surface);border:1px solid var(--m365-border);border-radius:var(--m365-radius-m);padding:var(--m365-spacing-l);margin-bottom:var(--m365-spacing-l);box-shadow:var(--m365-shadow-level1)}.step-number-badge{background:var(--m365-accent-light);color:var(--m365-accent);font-size:var(--m365-font-size-xs);font-weight:var(--m365-font-weight-semibold);padding:1px var(--m365-spacing-s);border-radius:var(--m365-radius-round);margin-bottom:var(--m365-spacing-m);letter-spacing:.04em;display:inline-block}.step-instruction{font-size:var(--m365-font-size-base);color:var(--m365-text-primary);margin:0 0 var(--m365-spacing-m) 0;line-height:1.5;font-family:var(--m365-font-family)}.hint-toggle-btn{border:1px dashed var(--m365-border);color:var(--m365-text-secondary);font-size:var(--m365-font-size-sm);cursor:pointer;padding:var(--m365-spacing-xs) var(--m365-spacing-m);border-radius:var(--m365-radius-s);margin-bottom:var(--m365-spacing-s);font-family:var(--m365-font-family);background:0 0}.hint-toggle-btn:hover{border-color:var(--m365-accent);color:var(--m365-accent)}.step-hint{background:var(--m365-bg-subtle);border-left:3px solid var(--m365-accent);padding:var(--m365-spacing-m) var(--m365-spacing-l);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);border-radius:0 var(--m365-radius-s) var(--m365-radius-s) 0;margin-bottom:var(--m365-spacing-s);font-family:var(--m365-font-family)}.step-challenge{background:var(--m365-accent-light);border:1px solid color-mix(in srgb, var(--m365-accent) 20%, transparent);border-radius:var(--m365-radius-s);padding:var(--m365-spacing-m) var(--m365-spacing-l);font-size:var(--m365-font-size-sm);margin-top:var(--m365-spacing-s);font-family:var(--m365-font-family)}.step-challenge strong{color:var(--m365-accent)}.tutorial-actions{gap:var(--m365-spacing-s);justify-content:flex-end;display:flex}.tutorial-complete-view{text-align:center;padding:var(--m365-spacing-xxxl) var(--m365-spacing-l);max-width:400px;margin:0 auto}.tutorial-complete-icon{margin-bottom:var(--m365-spacing-l);font-size:48px}.tutorial-complete-view h2{font-size:var(--m365-font-size-xl);margin-bottom:var(--m365-spacing-m);color:var(--m365-text-primary);font-family:var(--m365-font-family)}.tutorial-complete-view p{color:var(--m365-text-secondary);margin-bottom:var(--m365-spacing-xxxl);font-family:var(--m365-font-family)}.tutorial-complete-actions{gap:var(--m365-spacing-s);flex-direction:column;align-items:center;display:flex}.chart-hovered{filter:brightness(1.1);cursor:pointer;opacity:1!important}.chart-keyboard-focused{outline:2px solid var(--m365-border-focus);outline-offset:2px;border-radius:50%;stroke:var(--m365-border-focus)!important;stroke-width:3px!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.keyboard-nav-container{cursor:default;outline:none}.chart-data-table{max-height:300px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}.data-table th,.data-table td{padding:var(--m365-spacing-s) var(--m365-spacing-m);text-align:left;border-bottom:1px solid var(--m365-border-subtle);white-space:nowrap}.data-table th{background:var(--m365-bg-subtle);font-weight:var(--m365-font-weight-semibold);color:var(--m365-text-primary);z-index:1;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0}.data-table th:hover{background:var(--m365-bg-hover)}.data-table th.sorted{color:var(--m365-accent)}.sort-indicator{margin-left:var(--m365-spacing-xs);font-size:var(--m365-font-size-xs)}.data-table td{color:var(--m365-text-secondary)}.data-table tr:hover td{background:var(--m365-bg-hover);color:var(--m365-text-primary)}.data-table-index-cell{color:var(--m365-text-tertiary);font-size:var(--m365-font-size-xs);text-align:center;width:30px}.data-table-pagination{justify-content:center;align-items:center;gap:var(--m365-spacing-m);padding:var(--m365-spacing-s);font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);border-top:1px solid var(--m365-border);font-family:var(--m365-font-family);display:flex}.pagination-btn{background:var(--m365-bg-subtle);border:1px solid var(--m365-border);color:var(--m365-text-primary);padding:var(--m365-spacing-xs) var(--m365-spacing-m);border-radius:var(--m365-radius-s);cursor:pointer;font-size:var(--m365-font-size-sm);min-width:36px;min-height:28px;font-family:var(--m365-font-family)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{font-family:var(--m365-font-mono)}.data-table-empty{padding:var(--m365-spacing-l);text-align:center;color:var(--m365-text-secondary);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-family)}@media (prefers-contrast:high){.chart-hovered{filter:brightness(1.3)contrast(1.2);stroke:#fff!important;stroke-width:2px!important}}.mobile-chart-panel{z-index:1000;background:var(--m365-bg-page);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.mobile-panel-header{padding:var(--m365-spacing-m) var(--m365-spacing-l);border-bottom:1px solid var(--m365-border);background:var(--m365-bg-surface);flex-shrink:0;justify-content:space-between;align-items:flex-start;display:flex}.mobile-panel-title-area{flex:1;min-width:0}.mobile-panel-title{font-size:var(--m365-font-size-lg);font-weight:var(--m365-font-weight-bold);color:var(--m365-text-primary);font-family:var(--m365-font-family);margin:0 0 2px}.mobile-panel-desc{font-size:var(--m365-font-size-sm);color:var(--m365-text-secondary);-webkit-line-clamp:2;line-height:1.3;font-family:var(--m365-font-family);-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.mobile-close-btn{background:var(--m365-bg-hover);border:1px solid var(--m365-border);color:var(--m365-text-primary);border-radius:var(--m365-radius-s);cursor:pointer;margin-left:var(--m365-spacing-s);flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-close-btn:hover{background:var(--m365-bg-active)}.mobile-chart-area{min-height:0;padding:var(--m365-spacing-m);flex:1;justify-content:center;align-items:center;display:flex;overflow:hidden}.mobile-tabs{border-bottom:1px solid var(--m365-border);background:var(--m365-bg-surface);flex-shrink:0;display:flex;overflow-x:auto}.mobile-tab{min-width:80px;color:var(--m365-text-secondary);font-size:var(--m365-font-size-sm);font-weight:var(--m365-font-weight-regular);cursor:pointer;padding:var(--m365-spacing-s) var(--m365-spacing-m);white-space:nowrap;transition:color var(--m365-transition-fast), border-color var(--m365-transition-fast);font-family:var(--m365-font-family);background:0 0;border:none;border-bottom:2px solid #0000;flex:1}.mobile-tab.active{color:var(--m365-accent);border-bottom-color:var(--m365-accent)}.mobile-tab:hover:not(.active){color:var(--m365-text-primary);background:var(--m365-bg-subtle)}.mobile-tab-panel{padding:var(--m365-spacing-m);flex:1;overflow-y:auto}.mobile-action-bar{gap:var(--m365-spacing-s);padding:var(--m365-spacing-m) var(--m365-spacing-l);border-top:1px solid var(--m365-border);background:var(--m365-bg-surface);flex-shrink:0;display:flex;overflow-x:auto}.mobile-action-btn{align-items:center;gap:var(--m365-spacing-xs);background:var(--m365-bg-subtle);border:1px solid var(--m365-border);color:var(--m365-text-primary);border-radius:var(--m365-radius-s);cursor:pointer;padding:var(--m365-spacing-s) var(--m365-spacing-m);font-size:var(--m365-font-size-xs);white-space:nowrap;min-width:60px;font-family:var(--m365-font-family);flex-direction:column;flex:1;display:flex}.mobile-action-btn:hover{background:var(--m365-bg-hover)}.mobile-action-icon{font-size:var(--m365-font-size-lg)}@media (width<=768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))!important}.chart-card{min-height:180px}.chart-preview{height:100px!important}.chart-title{font-size:var(--m365-font-size-sm)}.chart-desc{font-size:var(--m365-font-size-xs);display:none}.modal-split{max-height:100vh;flex-direction:column!important}.pane-left{min-height:40vh;width:100%!important}.pane-right{max-height:50vh;width:100%!important}.splitter{cursor:row-resize;writing-mode:horizontal-tb!important;height:4px!important}.modal-footer,.related-charts{display:none}.category-card{text-align:center;flex-direction:column}.category-preview{display:none}.hero h2{font-size:22px!important}.hero-cta{flex-direction:column}.hero-cta button{width:100%}}@media (width<=480px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))!important}.chart-preview{height:80px!important}.chart-info{padding:var(--m365-spacing-xs)}.chart-title{font-size:var(--m365-font-size-xs)}.header-search{display:none}}@media (width>=769px) and (width<=1024px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important}.chart-preview{height:110px!important}}@media (pointer:coarse){button,a,input,select,.chart-card,.tutorial-card,.mobile-tab,.mobile-action-btn{min-width:40px;min-height:40px}.chart-card{padding:var(--m365-spacing-m)}}.chart-hovered{filter:brightness(1.1);transition:filter var(--m365-transition-fast)}.chart-dimmed{transition:opacity var(--m365-transition-default);opacity:.15!important}.chart-highlighted{transition:opacity var(--m365-transition-default);opacity:1!important}.chart-tooltip-overlay{pointer-events:none;background:var(--m365-bg-elevated,var(--m365-bg-hover));border:1px solid var(--m365-border);color:var(--m365-text-primary);padding:var(--m365-spacing-s) var(--m365-spacing-m);border-radius:var(--m365-radius-s);font-size:var(--m365-font-size-sm);font-family:var(--m365-font-mono);white-space:nowrap;z-index:50;box-shadow:var(--m365-shadow-level2);display:none;position:absolute}.chart-legend-item{cursor:pointer;transition:opacity var(--m365-transition-default)}.chart-legend-item.dimmed{opacity:.3}.brush-layer .selection{fill:var(--m365-accent)!important;fill-opacity:.15!important;stroke:var(--m365-accent)!important;stroke-width:1px!important}.brush-layer .handle{fill:var(--m365-accent)!important;stroke:var(--m365-bg-page)!important;stroke-width:2px!important}.interactive-chart-container{cursor:crosshair;width:100%;position:relative}.interactive-chart-container.zooming{cursor:grabbing}@media (prefers-reduced-motion:reduce){.chart-hovered{filter:none;transition:none}.chart-dimmed,.chart-highlighted,.tutorial-progress-fill{transition:none}}
