:root{--color-bg-sunken: #e8e8e8;--color-bg-elevated: #ffffff;--color-bg-offset: #f5f5f5;--color-surface: #ffffff;--color-bg-hover: #e0e0e0;--color-bg-overlay: rgba(0, 0, 0, .5);--color-border-strong: #c0c0c0;--color-border-subtle: #e8e8e8;--color-text-inverse: #fafafa;--color-accent: #1a1a1a;--color-accent-hover: #4a4a4a;--color-link: #1d4ed8;--color-link-hover: #1e40af;--color-active: #1d4ed8;--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: #eef2ff;--color-primary-rgb: 79, 70, 229;--color-danger: #dc2626;--color-danger-light: #fee2e2;--color-success-bg: #f0fdf4;--color-warning-bg: #fff8e1;--color-warning-border: #f9a825;--color-warning-text: #6d4c00;--color-error: #dc2626;--color-error-bg: rgba(239, 68, 68, .1);--color-text-primary: var(--color-text);--color-text-secondary: var(--color-text-muted);--color-text-tertiary: #999999;--color-bg-primary: var(--color-bg-elevated);--color-bg-secondary: #f0f0f0;--color-accent-light: var(--color-primary-light);--color-accent-bg: rgba(29, 78, 216, .1);--color-focus-ring: rgba(79, 70, 229, .5)}html.dark{--color-bg-sunken: #181818;--color-bg-elevated: #2a2a2a;--color-bg-offset: #252525;--color-surface: #2a2a2a;--color-bg-hover: #2a2d2e;--color-bg-overlay: rgba(0, 0, 0, .6);--color-border-strong: #4d4d4d;--color-border-subtle: #2d2d30;--color-text-inverse: #1e1e1e;--color-accent: #cccccc;--color-accent-hover: #9d9d9d;--color-link: #3794ff;--color-link-hover: #4db3ff;--color-active: #0078d4;--color-primary: #6366f1;--color-primary-hover: #818cf8;--color-primary-light: #1e1b4b;--color-primary-rgb: 99, 102, 241;--color-danger: #ef4444;--color-danger-light: #450a0a;--color-success-bg: #052e16;--color-warning-bg: rgba(245, 158, 11, .15);--color-warning-border: #d97706;--color-warning-text: #fbbf24;--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .15);--color-text-primary: var(--color-text);--color-text-secondary: var(--color-text-muted);--color-text-tertiary: #666666;--color-bg-primary: var(--color-bg-elevated);--color-bg-secondary: #2a2d2e;--color-accent-light: var(--color-primary-light);--color-accent-bg: rgba(55, 148, 255, .15);--color-focus-ring: rgba(99, 102, 241, .5)}html.high-contrast{--color-bg-sunken: #ffffff;--color-bg-elevated: #ffffff;--color-bg-offset: #f8f8f8;--color-surface: #ffffff;--color-bg-hover: #f0f0f0;--color-bg-overlay: rgba(255, 255, 255, .95);--color-border-strong: #000000;--color-border-subtle: #000000;--color-text-inverse: #ffffff;--color-accent: #000000;--color-accent-hover: #333333;--color-link: #000000;--color-link-hover: #000000;--color-active: #000000;--color-primary: #3730a3;--color-primary-hover: #312e81;--color-primary-light: #e0e7ff;--color-primary-rgb: 55, 48, 163;--color-danger: #b91c1c;--color-danger-light: #fef2f2;--color-success-bg: #f0fdf4;--color-warning-bg: #fffde7;--color-warning-border: #000000;--color-warning-text: #000000;--color-error: #b91c1c;--color-error-bg: #fef2f2;--color-text-primary: var(--color-text);--color-text-secondary: var(--color-text-muted);--color-text-tertiary: #555555;--color-bg-primary: var(--color-bg-elevated);--color-bg-secondary: #f0f0f0;--color-accent-light: var(--color-primary-light);--color-accent-bg: rgba(0, 0, 0, .05);--color-focus-ring: rgba(55, 48, 163, .7)}html.high-contrast-dark{--color-bg-sunken: #000000;--color-bg-elevated: #1a1a1a;--color-bg-offset: #111111;--color-surface: #1a1a1a;--color-bg-hover: #1a1a1a;--color-bg-overlay: rgba(0, 0, 0, .95);--color-border-strong: #6fc3df;--color-border-subtle: #6fc3df;--color-text-inverse: #000000;--color-accent: #6fc3df;--color-accent-hover: #9dd3e8;--color-link: #6fc3df;--color-link-hover: #9dd3e8;--color-active: #6fc3df;--color-primary: #818cf8;--color-primary-hover: #a5b4fc;--color-primary-light: #1e1b4b;--color-primary-rgb: 129, 140, 248;--color-danger: #f87171;--color-danger-light: #450a0a;--color-success-bg: #052e16;--color-warning-bg: rgba(245, 158, 11, .2);--color-warning-border: #fbbf24;--color-warning-text: #fde68a;--color-error: #f87171;--color-error-bg: rgba(248, 113, 113, .15);--color-text-primary: var(--color-text);--color-text-secondary: var(--color-text-muted);--color-text-tertiary: #888888;--color-bg-primary: var(--color-bg-elevated);--color-bg-secondary: #1a1a1a;--color-accent-light: var(--color-primary-light);--color-accent-bg: rgba(111, 195, 223, .15);--color-focus-ring: rgba(129, 140, 248, .6)}:root{--font-typewriter: var(--font-machine);--font-size-xs: clamp(.75rem, .7rem + .25vw, .875rem);--font-size-sm: clamp(.875rem, .8rem + .35vw, 1rem);--font-size-lg: clamp(1.125rem, 1rem + .6vw, 1.25rem);--font-size-xl: clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--font-size-2xl: clamp(1.5rem, 1.25rem + 1.25vw, 2rem);--font-size-3xl: clamp(2rem, 1.5rem + 2.5vw, 3rem);--line-height-tight: 1.2;--line-height-base: 1.5;--line-height-relaxed: 1.75;--tracking-wide: .025em;--tracking-wider: .05em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--sidebar-width: 260px;--header-height: 60px;--footer-height: 38px;--status-bar-height: 38px;--content-max-width: 720px;--site-padding: clamp(1rem, 3vw, 2rem);--margin-column-width: 180px;--tag-column-width: 200px;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .15);--transition-fast: .1s ease-out;--transition-base: .2s ease-out;--transition-slow: .3s ease-out;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal: 500;--z-tooltip: 700;--color-success: #16a34a;--color-warning: #ca8a04;--color-error: #dc2626;--color-info: #2563eb;--gec-color-spelling: #dc2626;--gec-color-grammar: #2563eb;--gec-color-style: #16a34a;--gec-color-punctuation: #ea580c;--gec-color-expression: #9333ea}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}:focus:not(:focus-visible){outline:none}.app-layout{display:grid;height:100vh;width:100vw;background:var(--color-bg);grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--header-height) 1fr var(--footer-height);grid-template-areas:"sidebar-header  main-header" "sidebar-nav     main-content" "sidebar-footer  main-footer"}.sidebar-header{grid-area:sidebar-header;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);padding-left:calc(var(--space-4) + 10px);background:var(--color-bg-sidebar);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.sidebar-logo{height:32px;width:auto}.logo-light{display:block}.logo-dark,html.dark .logo-light{display:none}html.dark .logo-dark{display:block}.sidebar-title{font-family:Special Elite,monospace;font-size:calc(var(--font-size-sm) * 1.2);font-weight:400;letter-spacing:.1em;color:var(--color-text);margin:0}.main-header{grid-area:main-header;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-6);background:var(--color-bg-sidebar);border-bottom:1px solid var(--color-border);position:relative;z-index:50}.sidebar-nav{grid-area:sidebar-nav;background:var(--color-bg-sidebar);border-right:1px solid var(--color-border);overflow-y:auto}.nav-container{display:flex;flex-direction:column;height:100%;padding:var(--space-4)}.nav-spacer{flex:1}.nav-list-bottom{margin-top:auto}.main-content{grid-area:main-content;overflow-y:auto;overflow-x:hidden;padding:var(--space-6);background:var(--color-bg)}.main-content.editor-active,.main-content.document-viewer-active,.main-content.database-active{padding:0;overflow:hidden}.main-content>*+*{margin-top:var(--space-12)}.sidebar-footer{grid-area:sidebar-footer;display:flex;align-items:center;justify-content:flex-start;padding:0 var(--space-4);padding-left:calc(var(--space-4) + 10px);background:var(--color-bg-sidebar);border-right:1px solid var(--color-border);border-top:1px solid var(--color-border)}.sidebar-copyright{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0}.main-footer{grid-area:main-footer;display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-6) var(--space-3);background:var(--color-bg-sidebar);border-top:1px solid var(--color-border);font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted)}.footer-stats{display:flex;align-items:center;gap:var(--space-2)}.footer-stat{letter-spacing:var(--tracking-wide)}.footer-divider{color:var(--color-border-strong)}.nav-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:6px 8px;border-radius:4px;color:var(--color-text);text-decoration:none;font-family:var(--font-sans);font-size:.8125rem;transition:background-color .15s ease;cursor:pointer;background:transparent;border:none;width:100%;text-align:left}.nav-item:hover{color:var(--color-text);background:var(--color-bg-hover);text-decoration:none}.nav-item.active{color:var(--color-active);font-weight:600;background:var(--color-bg-hover)}.nav-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-separator{border:none;border-top:1px solid var(--color-border);margin:var(--space-2) 0}.nav-section-title{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wider);padding:var(--space-2) var(--space-3);margin-top:var(--space-4)}.avatar-menu-wrapper{position:relative}.avatar-menu-backdrop{position:fixed;inset:0;background:transparent;z-index:99;border:none;cursor:default}.avatar-menu{position:absolute;top:100%;right:0;margin-top:var(--space-2);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:180px;z-index:100;padding:var(--space-1) 0}.avatar-menu-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:.8125rem;font-family:var(--font-sans);color:var(--color-text);text-decoration:none;background:none;border:none;width:100%;cursor:pointer}.avatar-menu-item:hover{background:var(--color-bg-hover)}.avatar-menu-logout{color:var(--color-danger)}.avatar-menu-separator{border:none;border-top:1px solid var(--color-border);margin:var(--space-1) 0}.search-section{max-height:0;overflow:hidden;transition:max-height .25s ease,padding .25s ease,margin .25s ease;background:var(--color-bg);border-bottom:1px solid transparent;margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));padding-left:var(--space-6);padding-right:var(--space-6);position:sticky;top:0;z-index:10}.search-section.search-open{max-height:1800px;padding-top:var(--space-4);padding-bottom:var(--space-8);margin-top:calc(-1 * var(--space-6));margin-bottom:var(--space-6);border-bottom-color:var(--color-border)}.search-section-inner{display:flex;align-items:center;gap:var(--space-4)}.search-section-input{flex:1;min-width:0;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg-sidebar);border:none;border-radius:var(--radius-sm);outline:none;box-shadow:none;-webkit-appearance:none;appearance:none}.search-section-input:focus{outline:none;border:none;box-shadow:none}.search-section-input::placeholder{color:var(--color-text-muted)}.search-section-input::-webkit-search-decoration,.search-section-input::-webkit-search-cancel-button,.search-section-input::-webkit-search-results-button,.search-section-input::-webkit-search-results-decoration{-webkit-appearance:none}.search-filters{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.search-filter-label{display:flex;align-items:center;gap:var(--space-1);font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;user-select:none}.search-filter-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer}@media(max-width:767px){.search-section{margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4)}.search-section.search-open{margin-top:calc(-1 * var(--space-4));margin-bottom:var(--space-4)}}.header-title-area{flex:1;min-width:0;overflow:hidden}.header-title-input{width:100%;border:none;background:transparent;font-size:var(--font-size-base);font-weight:600;color:var(--color-text);outline:none;font-family:var(--font-sans);padding:var(--space-1) 0;text-overflow:ellipsis}.header-title-input::placeholder{color:var(--color-text-muted);font-weight:400}.header-controls{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:var(--tracking-wide);text-decoration:none;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.btn:hover{text-decoration:none}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover{color:var(--color-text);background:var(--color-bg-sunken)}.btn-secondary{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-bg-sunken);border-color:var(--color-border-strong)}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger)}.btn:disabled{opacity:.6;cursor:not-allowed}.fullscreen-btn.active{color:var(--color-active);background:var(--color-bg-sunken)}.fullscreen-btn.active:hover{color:var(--color-active);background:var(--color-bg-hover)}.btn-sm{padding:var(--space-1) var(--space-3)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;border-radius:var(--radius-sm)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{color:var(--color-text);background:var(--color-bg-sunken)}.icon-btn svg{width:20px;height:20px}.user-avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-bg-sunken);overflow:hidden;text-decoration:none;border:none;padding:0;cursor:pointer}.user-avatar:hover{opacity:.8}.user-avatar img{width:100%;height:100%;object-fit:cover}.avatar-initial{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.prose{font-family:var(--font-human);font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}.interface{font-family:var(--font-sans);font-size:var(--font-size-sm);line-height:var(--line-height-base);letter-spacing:var(--tracking-wide)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:var(--tracking-wider);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.form-input{width:100%;padding:var(--space-3) 0;font-family:var(--font-human);font-size:var(--font-size-base);color:var(--color-text);background:transparent;border:none;border-bottom:1px solid var(--color-border);border-radius:0;transition:border-color var(--transition-fast);-webkit-appearance:none;appearance:none}.form-input:focus{outline:none;border-bottom-color:var(--color-text)}.form-input::placeholder{color:var(--color-text-muted)}.form-hint{display:block;font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.form-range{width:100%;height:6px;border-radius:3px;background:var(--color-border);appearance:none;cursor:pointer}.form-range::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid var(--color-bg);box-shadow:0 1px 3px #0003}.form-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid var(--color-bg);box-shadow:0 1px 3px #0003}.range-value{display:flex;justify-content:center;margin-top:var(--space-2);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}@media(max-width:767px){.hide-mobile{display:none!important}.app-layout{grid-template-columns:1fr;grid-template-rows:var(--header-height) 1fr var(--footer-height);grid-template-areas:"main-header" "main-content" "main-footer"}.main-header{padding:0 var(--space-4)}.main-content{padding:var(--space-4)}.main-footer{padding:0 var(--space-4)}}@media(min-width:768px){.show-mobile-only{display:none!important}}*{scrollbar-color:var(--color-border) var(--color-bg);scrollbar-width:auto}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:6px;border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-accent);color:var(--color-text-inverse)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media print{.sidebar-header,.sidebar-nav,.sidebar-footer,.main-header,.main-footer{display:none!important}.app-layout{grid-template-columns:1fr;grid-template-rows:1fr;grid-template-areas:"main-content"}.main-content{padding:0}}.dashboard{max-width:var(--content-wide-max-width);margin:0 auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.dashboard-header h1{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:600;letter-spacing:var(--tracking-wider);color:var(--color-text);margin:0}.header-stats{display:flex;align-items:center;gap:var(--space-6)}.header-stat{display:flex;align-items:baseline;gap:var(--space-2)}.header-stat-value{font-family:var(--font-sans);font-size:var(--font-size-lg);font-weight:600;color:var(--color-text)}.header-stat-label{font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:var(--tracking-wider);color:var(--color-text-muted)}.section-title{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:600;letter-spacing:var(--tracking-wider);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.notes-section{margin-bottom:var(--space-16)}.notes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.notes-controls{display:flex;align-items:center;gap:var(--space-4)}.sort-controls{display:flex;align-items:center;gap:var(--space-2)}.sort-btn{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:var(--tracking-wide);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.sort-btn:hover{color:var(--color-text)}.sort-btn.active{color:var(--color-text);background:var(--color-bg-elevated);border-color:var(--color-border)}.sort-arrow{font-size:var(--font-size-sm)}.view-controls{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);background:transparent;border-radius:var(--radius-sm)}.view-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.view-btn:hover{color:var(--color-text)}.view-btn.active{background:transparent;color:var(--color-text);box-shadow:none}.notes-container{display:grid;gap:var(--space-4)}.notes-container.list-view{grid-template-columns:1fr}.notes-container.grid-small{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.notes-container.grid-large{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.notes-container.expanded-view,.notes-container.has-expanded-editor.grid-small,.notes-container.has-expanded-editor.grid-large{grid-template-columns:1fr}.notes-container.has-expanded-editor.grid-small .note-card:not(.new-note-card),.notes-container.has-expanded-editor.grid-large .note-card:not(.new-note-card){display:none}.note-card.new-note-card{background:var(--color-bg-elevated);border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);min-height:80px;transition:all var(--transition-fast);cursor:text}.note-card.new-note-card:hover{border-color:var(--color-accent)}.note-card.new-note-card.active{border-style:solid;border-color:var(--color-accent)}.note-card.new-note-card.expanded{grid-column:1 / -1;min-height:200px}.new-note-card .quick-edit-editor{min-height:60px;outline:none}.new-note-card .quick-edit-placeholder{font-family:var(--font-human);font-size:var(--font-size-base);color:var(--color-text-muted);font-style:italic}.new-note-card .quick-edit-loading{font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text-muted)}.new-note-card .quick-edit-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.load-more-trigger{display:flex;align-items:center;justify-content:center;padding:var(--space-8);min-height:60px}.loading-spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.recent-section{margin-bottom:var(--space-16)}.notes-list{display:flex;flex-direction:column;gap:var(--space-9)}.note-card{display:block;padding:var(--space-5) var(--space-6);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);text-decoration:none;transition:all var(--transition-fast);text-align:left;width:100%;cursor:pointer}.note-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.note-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.note-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);flex-shrink:0}.note-tag{font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:var(--tracking-wide);padding:var(--space-1) var(--space-2);background:var(--color-bg-sunken);border-radius:var(--radius-sm);color:var(--color-text-muted)}.note-tag-more{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-2)}.note-card-footer{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-3)}.note-words{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.note-card.expanded{border-color:var(--color-accent)}.note-card.expanded .note-excerpt{-webkit-line-clamp:unset;line-clamp:unset}.grid-small .note-card:not(.new-note-card){min-height:120px}.grid-small .note-excerpt{-webkit-line-clamp:3;line-clamp:3}.grid-large .note-card:not(.new-note-card){min-height:150px}.grid-large .note-excerpt{-webkit-line-clamp:4;line-clamp:4}.list-view .note-card{display:flex;align-items:center;gap:var(--space-4)}.list-view .note-card-header{flex:1;margin-bottom:0}.list-view .note-excerpt{display:none}.list-view .note-card-footer{margin-top:0;flex-shrink:0}.note-card .note-title{font-family:var(--font-human);font-size:var(--font-size-lg);font-weight:500;color:var(--color-text);margin-bottom:var(--space-2);line-height:var(--line-height-tight)}.note-excerpt{font-family:var(--font-human);font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--space-3);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-time{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.save-indicator{font-family:var(--font-sans);font-size:var(--font-size-xs);letter-spacing:var(--tracking-wide);color:var(--color-text-muted);transition:color var(--transition-fast)}.save-indicator.saved{color:var(--color-success)}.save-indicator.saving{color:var(--color-warning)}@media(max-width:767px){.dashboard-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.header-stats{gap:var(--space-4)}.notes-header{flex-direction:column;align-items:flex-start}.notes-controls{width:100%;justify-content:space-between}.notes-container.grid-small,.notes-container.grid-large{grid-template-columns:1fr}}.auth-layout-minimal{min-height:100vh;width:100%;background:var(--color-bg)}.auth-page-split{display:grid;grid-template-columns:2fr 1fr;width:100%;min-height:100vh;position:relative}.auth-controls{position:absolute;top:var(--space-4);right:var(--space-4);display:flex;align-items:center;gap:var(--space-3);z-index:10}.auth-illustration{display:flex;align-items:center;justify-content:center;padding:var(--space-12);background:var(--color-bg-sunken)}.illustration-container{position:relative;max-width:500px;width:100%}.library-drawing{width:100%;height:auto;color:var(--color-text-secondary);opacity:.8}.illustration-quote{position:absolute;bottom:-var(--space-8);left:50%;transform:translate(-50%);text-align:center;width:100%}.illustration-quote p{font-family:var(--font-human);font-size:var(--font-size-lg);font-style:italic;line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.illustration-quote cite{font-family:var(--font-sans);font-size:var(--font-size-xs);font-style:normal;color:var(--color-text-muted);letter-spacing:var(--tracking-wider)}.auth-form-section{display:flex;align-items:center;justify-content:center;padding:var(--space-8)}.auth-form-container{max-width:320px;width:100%}.auth-logo-wrapper{display:flex;justify-content:center;margin-bottom:var(--space-8)}.auth-logo{height:40px;width:auto}.auth-logo.logo-light{display:block}.auth-logo.logo-dark,html.dark .auth-logo.logo-light{display:none}html.dark .auth-logo.logo-dark{display:block}.auth-main-title{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:600;letter-spacing:var(--tracking-wider);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--space-6)}.oauth-buttons{display:flex;gap:var(--space-3);margin-bottom:var(--space-6)}.oauth-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.oauth-btn:hover:not(:disabled){border-color:var(--color-border-strong)}.oauth-btn:disabled{opacity:.5;cursor:not-allowed}.oauth-icon{width:20px;height:20px;color:var(--color-text-secondary)}.oauth-btn span{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-secondary);letter-spacing:var(--tracking-wide)}.auth-divider{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-divider span{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:lowercase}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.auth-submit-btn{width:100%;margin-top:var(--space-2)}.auth-mode-switch{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.auth-mode-text{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted)}.auth-mode-btn{font-family:var(--font-sans);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.auth-mode-btn:hover{color:var(--color-accent)}.auth-recovery-link{text-align:center;margin-top:var(--space-2)}.auth-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--font-size-sm);margin-bottom:var(--space-4);text-align:center}.auth-message-error{background:#dc26261a;border:1px solid var(--color-error);color:var(--color-error)}.auth-message-success{background:#16a34a1a;border:1px solid var(--color-success);color:var(--color-success)}.sidebar-title,.section-title,.stat-value,.stat-label,.action-label,.note-time,.nav-label,.sidebar-copyright,.status-indicator,.doc-count,.doc-author,.doc-type,.sort-select,.btn,[class*=font-machine]{position:relative;top:2px}html.high-contrast .doc-type,html.high-contrast .badge,html.high-contrast .chip,html.high-contrast .tag{border:1px solid var(--color-border)}@media(max-width:900px){.auth-page-split{grid-template-columns:1fr}.auth-illustration{display:none}.auth-form-section{padding:var(--space-6);min-height:100vh}.auth-controls{top:var(--space-3);right:var(--space-3)}}.math-block[data-display-mode=true]{padding:var(--space-4)}.math-block[data-display-mode=false]{display:inline-block;padding:var(--space-2);margin:0 var(--space-1);vertical-align:middle}.math-input-container{padding:var(--space-3);background:var(--color-bg-sunken);border-bottom:1px solid var(--color-border)}.math-input{width:100%;min-height:60px;padding:var(--space-2);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical}.math-input:focus{outline:none;border-color:var(--color-link)}.math-preview{padding:var(--space-4);text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center}.math-placeholder{color:var(--color-text-muted);font-style:italic}.math-error{color:var(--color-error);font-size:var(--font-size-sm)}.math-controls{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-sunken);border-top:1px solid var(--color-border)}.math-toggle{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text)}.math-toggle:hover{background:var(--color-bg-hover)}.math-close-btn{margin-left:auto;background:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.math-close-btn:hover{background:color-mix(in srgb,var(--color-success) 85%,black)}.math-delete-btn{color:var(--color-error);border-color:var(--color-error);background:transparent}.math-delete-btn:hover{background:var(--color-error);color:var(--color-text-inverse)}.math-block.math-collapsed{border:none;background:transparent}.math-preview-collapsed{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:background var(--transition-fast)}.math-preview-collapsed:hover{background:var(--color-bg-hover)}.equation-wrapper{display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.equation-number{color:var(--color-text-muted);font-size:var(--font-size-sm)}.katex{font-size:1.1em;font-family:KaTeX_Main,Computer Modern,Times New Roman,serif}.katex .mathnormal{font-family:KaTeX_Math,Computer Modern,Times New Roman,serif;font-style:italic}.katex .mathit{font-family:KaTeX_Math,Computer Modern,Times New Roman,serif}.katex-display{margin:0;overflow-x:auto;overflow-y:visible}.math-inline{display:inline;padding:0 2px;vertical-align:baseline}.math-inline .katex{font-size:1em}.math-display{display:block;text-align:center;margin:var(--space-3) 0;overflow-x:auto}.math-display .katex-display{margin:0}.tableWrapper{overflow-x:auto;margin:var(--space-3) 0}.tableWrapper table,.editor-table,.tiptap-editor-content table{width:100%;border-collapse:collapse;table-layout:fixed}.tableWrapper th,.tableWrapper td,.editor-table th,.editor-table td,.tiptap-editor-content table th,.tiptap-editor-content table td{border:1px solid var(--color-border);padding:6px;min-width:80px;vertical-align:middle;position:relative;line-height:1.3}.tableWrapper th,.editor-table th,.tiptap-editor-content table th{background:var(--color-bg-sunken);font-weight:600;text-align:left}.tableWrapper td,.editor-table td,.tiptap-editor-content table td{background:var(--color-bg)}.tableWrapper tr:hover td,.editor-table tr:hover td,.tiptap-editor-content table tr:hover td{background:var(--color-bg-hover)}.selectedCell{background:var(--color-highlight-bg)!important}.selectedCell:after{content:"";position:absolute;inset:0;border:2px solid var(--color-primary);pointer-events:none}.column-resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;background:var(--color-primary);cursor:col-resize;opacity:0;transition:opacity .15s ease}th:hover .column-resize-handle,td:hover .column-resize-handle{opacity:1}html.dark .tableWrapper th,html.dark .editor-table th,html.dark .tiptap-editor-content table th{background:var(--color-bg-elevated)}html.dark .tableWrapper td,html.dark .editor-table td,html.dark .tiptap-editor-content table td{background:var(--color-bg)}.mermaid-block{margin:var(--space-4) 0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:border-color .15s ease}.mermaid-block:hover{border-color:var(--color-border)}.mermaid-preview-display{display:flex;align-items:center;justify-content:center;padding:0;min-height:100px;width:100%}.mermaid-preview-display svg{max-width:100%;height:auto;margin:0 auto}.mermaid-block.editing{border-color:var(--color-primary);background:var(--color-bg-elevated);cursor:default}.mermaid-edit-container{display:flex;gap:var(--space-3);padding:var(--space-3)}.mermaid-edit-input{flex:1;min-height:150px;padding:var(--space-2);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-bg-sunken);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical}.mermaid-edit-input:focus{outline:none;border-color:var(--color-primary)}.mermaid-live-preview{flex:1;min-height:150px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:var(--radius-sm);overflow:auto;border:1px solid var(--color-border)}.mermaid-live-preview svg{max-width:100%;height:auto}.mermaid-error{color:var(--color-error);font-size:var(--font-size-sm);padding:var(--space-2)}@media(max-width:768px){.mermaid-edit-container{flex-direction:column}}.excalidraw-block{margin:var(--space-4) 0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:border-color .15s ease}.excalidraw-block:hover{border-color:var(--color-border)}.excalidraw-preview-display{display:flex;align-items:center;justify-content:center;min-height:150px;width:100%;padding:0}.excalidraw-preview-display svg{max-width:100%;height:auto;margin:0 auto}.excalidraw-empty,.excalidraw-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-4)}.excalidraw-empty svg{opacity:.5}.excalidraw-error{color:var(--color-error)}.excalidraw-block.editing{border-color:var(--color-primary);background:var(--color-bg);cursor:default}.excalidraw-edit-container{display:flex;flex-direction:column}.excalidraw-wrapper{display:flex;flex-direction:column;height:500px}.excalidraw-wrapper.excalidraw-fullscreen{position:fixed;inset:0;height:100vh;z-index:1000;background:var(--color-bg);padding:0}.excalidraw-toolbar{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);flex-shrink:0}.excalidraw-canvas-wrapper{flex:1;width:100%;min-height:0;border-radius:var(--radius-sm);overflow:hidden;position:relative}.excalidraw-canvas-wrapper .excalidraw,.excalidraw-iframe{width:100%;height:100%;border:none}.excalidraw-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-sans);cursor:pointer;transition:all .15s ease}.excalidraw-btn-save{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.excalidraw-btn-save:hover{background:var(--color-primary-hover)}.excalidraw-btn-cancel{background:var(--color-bg);color:var(--color-text)}.excalidraw-btn-cancel:hover{background:var(--color-bg-hover)}.excalidraw-btn-fullscreen{display:flex;align-items:center;justify-content:center;padding:var(--space-1);margin-right:auto}.excalidraw-btn-fullscreen:hover{background:var(--color-bg-hover)}.drawio-block{margin:var(--space-4) 0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:border-color .15s ease}.drawio-block:hover{border-color:var(--color-border)}.drawio-preview-display{display:flex;align-items:center;justify-content:center;min-height:150px;width:100%;padding:0}.drawio-preview-display svg{max-width:100%;height:auto;margin:0 auto}.drawio-empty,.drawio-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-4)}.drawio-empty svg{opacity:.5}.drawio-error{color:var(--color-error)}.drawio-block.editing{border-color:var(--color-primary);background:var(--color-bg);cursor:default}.drawio-edit-container{width:100%}.drawio-wrapper{display:flex;flex-direction:column;height:600px}.drawio-wrapper.drawio-fullscreen{position:fixed;inset:0;height:100vh;z-index:1000;background:var(--color-bg);padding:0}.drawio-toolbar{display:flex;justify-content:flex-start;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);flex-shrink:0}.drawio-btn{padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.drawio-btn:hover{background:var(--color-bg-hover)}.drawio-canvas-wrapper{flex:1;width:100%;min-height:0}.drawio-iframe{width:100%;height:100%;border:none;border-radius:var(--radius-sm)}.canvas-block{margin:var(--space-4) 0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:border-color .15s ease}.canvas-block:hover{border-color:var(--color-border)}.canvas-preview-display{display:flex;align-items:center;justify-content:center;min-height:150px;width:100%;padding:0}.canvas-preview-display img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.canvas-empty,.canvas-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-4)}.canvas-empty svg{opacity:.5}.canvas-error{color:var(--color-error)}.canvas-block.editing{border-color:var(--color-primary);background:var(--color-bg);cursor:default}.canvas-edit-container{width:100%}.canvas-wrapper{display:flex;flex-direction:column;height:500px;border-radius:var(--radius-md);overflow:hidden}.canvas-wrapper.canvas-maxview{position:fixed;inset:0;height:100vh;z-index:1000;background:var(--color-bg);border-radius:0}.canvas-toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}.canvas-tool-group{display:flex;gap:2px;background:var(--color-bg-sunken);border-radius:var(--radius-sm);padding:2px}.canvas-tool-btn{padding:var(--space-1);min-width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);cursor:pointer;font-size:var(--font-size-base);transition:all .15s ease;display:flex;align-items:center;justify-content:center}.canvas-tool-btn:hover{background:var(--color-bg-hover)}.canvas-tool-btn.active{background:var(--color-primary);color:#fff}.canvas-color-picker{width:32px;height:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:transparent}.canvas-color-picker::-webkit-color-swatch-wrapper{padding:2px}.canvas-color-picker::-webkit-color-swatch{border-radius:2px;border:none}.canvas-width-slider{width:80px;height:32px;cursor:pointer;accent-color:var(--color-primary)}.canvas-action-group{display:flex;gap:var(--space-2);margin-left:auto}.canvas-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-sans);cursor:pointer;transition:all .15s ease;background:var(--color-bg);color:var(--color-text)}.canvas-btn:hover{background:var(--color-bg-hover)}.canvas-btn-icon{padding:var(--space-1);min-width:32px}.canvas-btn-save{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.canvas-btn-save:hover{background:var(--color-primary-hover)}.canvas-btn-cancel{background:var(--color-bg);color:var(--color-text)}.canvas-btn-maxview{display:flex;align-items:center;justify-content:center}.canvas-canvas-wrapper{flex:1;width:100%;min-height:0;display:flex;align-items:center;justify-content:center;background:#fff;overflow:hidden}.canvas-canvas-wrapper canvas{max-width:100%;max-height:100%}.flow-block{margin:var(--space-4) 0;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;transition:border-color .15s ease}.flow-block:hover{border-color:var(--color-border)}.flow-preview-display{display:flex;align-items:center;justify-content:center;min-height:150px;width:100%;padding:var(--space-2)}.flow-preview-display svg{max-width:100%;height:auto}.flow-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-4)}.flow-empty svg{opacity:.5}.flow-block.editing{border-color:var(--color-primary);background:var(--color-bg);cursor:default}.flow-edit-container{width:100%}.flow-wrapper{display:flex;flex-direction:column;height:500px;border-radius:var(--radius-md);overflow:hidden}.flow-wrapper.flow-maxview{position:fixed;inset:0;height:100vh;z-index:1000;background:var(--color-bg);border-radius:0}.flow-toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}.flow-node-group{display:flex;gap:var(--space-1)}.flow-action-group{display:flex;gap:var(--space-2);margin-left:auto}.flow-btn{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-sans);cursor:pointer;transition:all .15s ease;background:var(--color-bg);color:var(--color-text)}.flow-btn:hover{background:var(--color-bg-hover)}.flow-btn-icon{padding:var(--space-1);min-width:32px}.flow-btn-node{font-size:var(--font-size-xs)}.flow-btn-save{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.flow-btn-save:hover{background:var(--color-primary-hover)}.flow-btn-cancel{background:var(--color-bg);color:var(--color-text)}.flow-canvas{flex:1;width:100%;min-height:0;position:relative;background:var(--color-bg);background-image:radial-gradient(circle,var(--color-border) 1px,transparent 1px);background-size:20px 20px;overflow:hidden}.flow-edges{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.flow-edges line{pointer-events:stroke;cursor:pointer}.flow-edges line:hover{stroke:var(--color-error)!important}.flow-node{position:absolute;width:150px;height:40px;background:var(--color-bg-elevated);border:2px solid var(--color-primary);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:move;user-select:none;transition:box-shadow .15s ease}.flow-node:hover{box-shadow:0 2px 8px #00000026}.flow-node.selected{box-shadow:0 0 0 2px var(--color-primary)}.flow-node.dragging{opacity:.8;z-index:10}.flow-node-input{border-color:var(--color-success)}.flow-node-output{border-color:var(--color-error)}.flow-node-label{width:100%;text-align:center;border:none;background:transparent;font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text);padding:var(--space-1)}.flow-node-label:focus{outline:none;background:var(--color-bg);border-radius:var(--radius-sm)}.flow-port{position:absolute;width:12px;height:12px;background:var(--color-bg);border:2px solid var(--color-primary);border-radius:50%;cursor:crosshair}.flow-port-input{top:-6px;left:50%;transform:translate(-50%)}.flow-port-output{bottom:-6px;left:50%;transform:translate(-50%)}.flow-port:hover{background:var(--color-primary)}.code-block{position:relative;margin:var(--space-3) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);overflow:hidden;padding:var(--space-3)}.code-block code{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);tab-size:2;display:block;overflow-x:auto}.code-lang-select{position:absolute;top:4px;right:4px;font-family:var(--font-sans);font-size:.6rem;color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;opacity:.5;transition:opacity .15s ease;padding:2px 4px}.code-lang-select:hover,.code-lang-select:focus{opacity:1;outline:none}.code-block:hover .code-lang-select{opacity:.8}.code-copy-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.code-copy-btn:hover{background:var(--color-bg-hover);color:var(--color-text)}.code-container{position:relative}.code-textarea{width:100%;min-height:36px;padding:var(--space-3);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text);background:var(--color-bg-sunken);border:none;resize:none;overflow:hidden;tab-size:4}.code-textarea:focus{outline:none}.code-block.editing .code-textarea{position:relative;z-index:1}.code-block.editing .code-view{display:none}.code-block:not(.editing) .code-textarea{position:absolute;top:0;left:0;opacity:0;pointer-events:none}.code-block:not(.editing) .code-view{display:block}.code-view{margin:0;padding:var(--space-3);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);overflow-x:auto;cursor:text;background:var(--color-bg-sunken)}.code-view code{font-family:var(--font-mono);background:transparent}.code-view .hljs{background:transparent;padding:0}.tiptap-editor-content pre{margin:var(--space-4) 0;padding:var(--space-4);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto;font-family:var(--font-mono);font-size:.875rem;line-height:1.6;tab-size:4}.tiptap-editor-content pre code{font-family:var(--font-mono);background:transparent!important;padding:0;border:none;border-radius:0;color:var(--color-text)}.tiptap-editor-content pre code.hljs{background:transparent!important;padding:0!important}.tiptap-editor-content code:not(pre code){font-family:var(--font-mono);font-size:.875em;padding:.1em .3em;background:transparent;border:1px solid var(--color-border-subtle, var(--color-border));border-radius:var(--radius-sm);color:var(--color-text)}.tiptap-editor-content pre .hljs-keyword,.tiptap-editor-content pre .hljs-selector-tag,.tiptap-editor-content pre .hljs-built_in,.tiptap-editor-content pre .hljs-type{color:#d73a49;font-weight:500}.tiptap-editor-content pre .hljs-string,.tiptap-editor-content pre .hljs-template-tag,.tiptap-editor-content pre .hljs-template-variable{color:#22863a}.tiptap-editor-content pre .hljs-number,.tiptap-editor-content pre .hljs-literal,.tiptap-editor-content pre .hljs-boolean{color:#005cc5}.tiptap-editor-content pre .hljs-comment,.tiptap-editor-content pre .hljs-quote{color:#6a737d;font-style:italic}.tiptap-editor-content pre .hljs-title,.tiptap-editor-content pre .hljs-section{color:#6f42c1;font-weight:500}.tiptap-editor-content pre .hljs-variable,.tiptap-editor-content pre .hljs-params,.tiptap-editor-content pre .hljs-attr{color:#e36209}.tiptap-editor-content pre .hljs-operator,.tiptap-editor-content pre .hljs-punctuation{color:var(--color-text)}.tiptap-editor-content pre .hljs-tag{color:#22863a}.tiptap-editor-content pre .hljs-name{color:#22863a;font-weight:500}.tiptap-editor-content pre .hljs-selector-class,.tiptap-editor-content pre .hljs-selector-id{color:#6f42c1}.tiptap-editor-content pre .hljs-attribute,.tiptap-editor-content pre .hljs-property{color:#005cc5}.tiptap-editor-content pre .hljs-regexp{color:#032f62}.tiptap-editor-content pre .hljs-meta,.tiptap-editor-content pre .hljs-meta-keyword{color:#d73a49}.tiptap-editor-content pre .hljs-addition{color:#22863a;background-color:#22863a1a}.tiptap-editor-content pre .hljs-deletion{color:#d73a49;background-color:#d73a491a}.tiptap-editor-content pre .hljs-emphasis{font-style:italic}.tiptap-editor-content pre .hljs-strong{font-weight:700}html.dark .tiptap-editor-content pre .hljs-keyword,html.dark .tiptap-editor-content pre .hljs-selector-tag,html.dark .tiptap-editor-content pre .hljs-built_in,html.dark .tiptap-editor-content pre .hljs-type{color:#f97583}html.dark .tiptap-editor-content pre .hljs-string,html.dark .tiptap-editor-content pre .hljs-template-tag,html.dark .tiptap-editor-content pre .hljs-template-variable{color:#9ecbff}html.dark .tiptap-editor-content pre .hljs-number,html.dark .tiptap-editor-content pre .hljs-literal,html.dark .tiptap-editor-content pre .hljs-boolean{color:#79b8ff}html.dark .tiptap-editor-content pre .hljs-comment,html.dark .tiptap-editor-content pre .hljs-quote{color:#8b949e;font-style:italic}html.dark .tiptap-editor-content pre .hljs-title,html.dark .tiptap-editor-content pre .hljs-section{color:#b392f0}html.dark .tiptap-editor-content pre .hljs-variable,html.dark .tiptap-editor-content pre .hljs-params,html.dark .tiptap-editor-content pre .hljs-attr{color:#ffab70}html.dark .tiptap-editor-content pre .hljs-tag,html.dark .tiptap-editor-content pre .hljs-name{color:#85e89d}html.dark .tiptap-editor-content pre .hljs-selector-class,html.dark .tiptap-editor-content pre .hljs-selector-id{color:#b392f0}html.dark .tiptap-editor-content pre .hljs-attribute,html.dark .tiptap-editor-content pre .hljs-property{color:#79b8ff}html.dark .tiptap-editor-content pre .hljs-regexp{color:#dbedff}html.dark .tiptap-editor-content pre .hljs-meta,html.dark .tiptap-editor-content pre .hljs-meta-keyword{color:#f97583}html.dark .tiptap-editor-content pre .hljs-addition{color:#85e89d;background-color:#2ea04326}html.dark .tiptap-editor-content pre .hljs-deletion{color:#f97583;background-color:#f8514926}.mermaid-controls{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-sunken);border-top:1px solid var(--color-border)}.mermaid-export-btn,.mermaid-template{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text)}.mermaid-export-btn:hover,.mermaid-template:hover{background:var(--color-bg-hover)}@media(max-width:768px){.mermaid-split{grid-template-columns:1fr}}.drag-handle{position:fixed;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);border-radius:4px;cursor:grab;opacity:0;transition:opacity .15s ease,color .15s ease,transform .1s ease;z-index:1000;pointer-events:auto}.drag-handle:hover{color:var(--color-text);transform:scale(1.1)}.drag-handle:active,.drag-handle.dragging{cursor:grabbing;color:var(--color-link)}.drag-handle svg{width:24px;height:24px;pointer-events:none}.block-hover-indicator{width:2px;background:var(--color-link);border-radius:1px;opacity:0;transition:opacity .15s ease;pointer-events:none}.block-context-menu{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 16px #0000001f}html.dark .block-context-menu{box-shadow:0 4px 16px #0006}.block-context-menu .block-menu-header{color:var(--color-text-muted)!important;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:8px 12px 4px;border-bottom:1px solid var(--color-border)!important}.block-context-menu .block-menu-item{color:var(--color-text)!important;font-size:13px}.block-context-menu .block-menu-item:hover{background:var(--color-bg-hover)!important}.block-context-menu .block-menu-item svg{color:var(--color-text-muted);flex-shrink:0}.block-context-menu .block-menu-item:hover svg{color:var(--color-text)}.block-context-menu .block-menu-item[data-action=delete]{color:var(--color-danger)!important}.block-context-menu .block-menu-item[data-action=delete] svg{color:var(--color-danger)}.editor-full .marginalia-sidebar{position:relative;flex-shrink:0;height:100%;overflow-y:auto;overflow-x:visible;scrollbar-width:none}.editor-full .marginalia-sidebar::-webkit-scrollbar{display:none}.editor-full .marginalia-sidebar .marginalia-gutter{position:absolute;top:0;bottom:0;right:0;width:24px;cursor:crosshair;background:transparent;z-index:1}.editor-full .marginalia-sidebar .marginalia-gutter:hover{background:rgba(var(--color-primary-rgb, 74, 144, 217),.03)}.editor-full .marginalia-sidebar .marginalia-gutter.can-add{background:rgba(var(--color-primary-rgb, 74, 144, 217),.05)}.editor-full .marginalia-sidebar .marginalia-notes{position:relative;padding-right:28px;min-height:100%}.editor-full .editor-scroll-container{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden}.editor-full .content-wrapper,.editor-full .editor-body{position:relative}.editor-full .marginalia-note-inline{position:absolute;left:0;right:8px;padding:2px 0;background:transparent;font-size:.8rem;font-family:var(--font-sans);color:var(--color-text-muted);line-height:1.4;pointer-events:auto;cursor:default;text-align:left;word-break:break-word}.editor-full .marginalia-note-inline:hover{color:var(--color-text-secondary)}.editor-full .marginalia-note-content{word-break:break-word}.editor-full .marginalia-note-delete{position:absolute;top:0;right:-4px;width:16px;height:16px;border:none;background:transparent;color:var(--color-text-muted);font-size:12px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center}.editor-full .marginalia-note-inline:hover .marginalia-note-delete{opacity:1}.editor-full .marginalia-note-delete:hover{color:#e74c3c}.editor-full .marginalia-note-inline{cursor:grab;user-select:none;transition:opacity .15s ease,box-shadow .15s ease,color .15s ease}.editor-full .marginalia-note-inline.dragging{cursor:grabbing;opacity:.8;box-shadow:0 4px 12px #00000026;z-index:100}.editor-full .marginalia-note-inline.editing{cursor:default}.editor-full .marginalia-drag-handle{position:absolute;left:-16px;top:50%;transform:translateY(-50%);opacity:0;color:var(--color-text-muted);font-size:.7rem;cursor:grab;padding:2px;transition:opacity .15s ease;letter-spacing:-2px}.editor-full .marginalia-note-inline:hover .marginalia-drag-handle{opacity:.6}.editor-full .marginalia-drag-handle:hover{opacity:1!important}.editor-full .marginalia-content strong,.editor-full .marginalia-note strong{font-weight:600}.editor-full .marginalia-content em,.editor-full .marginalia-note em{font-style:italic}.editor-full .marginalia-content u,.editor-full .marginalia-note u{text-decoration:underline}.editor-full .marginalia-edit-input{width:100%;min-height:60px;padding:.375rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:.8rem;line-height:1.4;resize:vertical}.editor-full .marginalia-edit-input:focus{outline:none;border-color:var(--color-primary)}.editor-full .marginalia-edit-actions{display:flex;gap:4px;margin-top:4px;justify-content:flex-end}.editor-full .marginalia-edit-btn{width:24px;height:24px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease}.editor-full .marginalia-edit-btn.save{background:var(--color-success);color:#fff}.editor-full .marginalia-edit-btn.save:hover{background:color-mix(in srgb,var(--color-success) 85%,black)}.editor-full .marginalia-edit-btn.cancel{background:var(--color-bg-elevated);color:var(--color-text-muted)}.editor-full .marginalia-edit-btn.cancel:hover{background:var(--color-bg-hover)}.editor-full .marginalia-input-inline{position:absolute;left:0;right:8px;pointer-events:auto;z-index:20}.editor-full .marginalia-inline-input{width:100%;min-height:24px;padding:2px 0;border:none;background:transparent;color:var(--color-text);font-size:.8rem;font-family:var(--font-sans);resize:none;outline:none;line-height:1.4}.editor-full .marginalia-inline-input::placeholder{color:var(--color-text-muted)}.editor-full .marginalia-column.wide-mode{width:28px!important;min-width:28px}.editor-full .marginalia-icon{position:absolute;left:4px;width:20px;height:20px;border:none;background:var(--color-bg-hover);color:var(--color-text-muted);font-size:10px;font-weight:700;font-family:var(--font-sans);line-height:20px;text-align:center;cursor:pointer;border-radius:4px;transition:background .15s ease,color .15s ease}.editor-full .marginalia-icon:hover{background:var(--color-primary);color:#fff}@media(max-width:767px){.editor-full .marginalia-column,.editor-full .marginalia-gutter{display:none}}.ProseMirror .is-dragging{opacity:.5;background:var(--color-bg-sunken);border-radius:4px}.ProseMirror .drag-over{position:relative}.ProseMirror .drag-over:before{content:"";position:absolute;left:-8px;right:-8px;top:-2px;height:3px;background:var(--color-link);border-radius:2px}@media(max-width:767px){.drag-handle{display:none!important}}.slash-command-menu{position:fixed;z-index:9999;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 4px 12px #00000026;padding:4px;min-width:240px;max-width:320px;max-height:480px;overflow-y:auto;overflow-x:hidden}html.dark .slash-command-menu{background:#252526;border-color:#3c3c3c;box-shadow:0 4px 16px #0006}.slash-command-empty{padding:12px 16px;color:var(--color-text-muted);font-size:.875rem;text-align:center}.slash-command-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:4px;border:none;background:transparent;cursor:pointer;transition:background .1s ease;color:var(--color-text);width:100%;text-align:left;font-family:var(--font-sans)}.slash-command-item:hover,.slash-command-item.selected{background:var(--color-bg-hover)}html.dark .slash-command-item:hover,html.dark .slash-command-item.selected{background:#04395e}.slash-command-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;background:var(--color-bg-sunken);border:1px solid var(--color-border-subtle);border-radius:4px;color:var(--color-text-muted);font-size:.875rem;font-weight:600}html.dark .slash-command-icon{background:#2d2d30;border-color:#3c3c3c;color:#9d9d9d}.slash-command-content{display:flex;flex-direction:column;gap:1px;overflow:hidden}.slash-command-title{font-size:.875rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slash-command-desc{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.math-inline{display:inline;padding:0 2px;border-radius:2px;background:#0000000d;cursor:pointer}html.dark .math-inline{background:#ffffff14}.math-inline.ProseMirror-selectednode{outline:2px solid var(--color-primary);outline-offset:1px}.math-block{display:flex;align-items:center;width:100%;padding:8px 0;margin:16px 0;background:transparent!important;border-radius:8px;position:relative;border:1px solid transparent;transition:border-color .15s ease;cursor:pointer;box-sizing:border-box;min-height:48px}.math-block:hover{border-color:var(--color-border);background:transparent!important}html.dark .math-block:hover,html.dark .math-block{background:transparent!important}.math-block .katex-display{flex:1;margin:0!important;text-align:center;font-size:1em}.math-block .katex-display .katex{font-size:1em}.math-block .math-number{position:absolute;right:0;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-family:KaTeX_Main,Computer Modern,serif;font-size:1em}.math-block.ProseMirror-selectednode{outline:2px solid var(--color-primary);outline-offset:2px}.math-block.editing{border-color:var(--color-primary);background:transparent!important}.math-block .math-edit-container{width:100%;display:flex;flex-direction:column;gap:8px}.math-block .math-edit-input{width:100%;min-height:60px;padding:12px 16px;font-family:var(--font-mono);font-size:.9rem;line-height:1.5;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;resize:vertical}.math-block .math-edit-input:focus{outline:none;border-color:var(--color-primary)}.math-input-wrapper{display:flex;flex-direction:column;gap:8px}.math-input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:.875rem;resize:vertical}.math-input:focus{outline:none;border-color:var(--color-primary)}.block-editor .tiptap-editor-content{line-height:1.53!important}html.dark .block-editor .tiptap-editor-content{color:#e8e8e8}html.high-contrast-dark .block-editor .tiptap-editor-content{color:#fff}.stats-language-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.stats-language-label{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted)}.stats-language-select{appearance:none;background:var(--color-bg-sunken);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-xs);padding:4px 8px}.stats-language-select option.detected{color:var(--color-success);font-weight:600}.block-editor.show-toc-numbers .tiptap-editor-content{counter-reset:h1counter h2counter h3counter h4counter h5counter}.block-editor.show-toc-numbers .tiptap-editor-content h1{counter-reset:h2counter h3counter h4counter h5counter;counter-increment:h1counter}.block-editor.show-toc-numbers .tiptap-editor-content h1:before{content:counter(h1counter) " ";color:var(--color-text-muted);font-weight:400}.block-editor.show-toc-numbers .tiptap-editor-content h2{counter-reset:h3counter h4counter h5counter;counter-increment:h2counter}.block-editor.show-toc-numbers .tiptap-editor-content h2:before{content:counter(h1counter) "." counter(h2counter) " ";color:var(--color-text-muted);font-weight:400}.block-editor.show-toc-numbers .tiptap-editor-content h3{counter-reset:h4counter h5counter;counter-increment:h3counter}.block-editor.show-toc-numbers .tiptap-editor-content h3:before{content:counter(h1counter) "." counter(h2counter) "." counter(h3counter) " ";color:var(--color-text-muted);font-weight:400}.block-editor.show-toc-numbers .tiptap-editor-content h4{counter-reset:h5counter;counter-increment:h4counter}.block-editor.show-toc-numbers .tiptap-editor-content h4:before{content:counter(h1counter) "." counter(h2counter) "." counter(h3counter) "." counter(h4counter) " ";color:var(--color-text-muted);font-weight:400}.block-editor.show-toc-numbers .tiptap-editor-content h5{counter-increment:h5counter}.block-editor.show-toc-numbers .tiptap-editor-content h5:before{content:counter(h1counter) "." counter(h2counter) "." counter(h3counter) "." counter(h4counter) "." counter(h5counter) " ";color:var(--color-text-muted);font-weight:400}.readability-moderate{background-color:#eab30859;border-radius:2px;padding:0 1px}.readability-hard{background-color:#f9731666;border-radius:2px;padding:0 1px}.readability-very-hard{background-color:#ef444466;border-radius:2px;padding:0 1px}html.dark .readability-moderate{background-color:#eab30826}html.dark .readability-hard{background-color:#f9731633}html.dark .readability-very-hard{background-color:#ef444433}html.high-contrast .readability-moderate{background-color:transparent;outline:none;text-decoration:underline;text-decoration-color:var(--color-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-style:dotted}html.high-contrast .readability-hard{background-color:transparent;outline:none;text-decoration:underline;text-decoration-color:var(--color-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-style:dashed}html.high-contrast .readability-very-hard{background-color:transparent;outline:none;text-decoration:underline;text-decoration-color:var(--color-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-style:solid}html.high-contrast-dark .readability-moderate{background-color:transparent;outline:none;text-decoration:underline;text-decoration-color:var(--color-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-style:dotted}html.high-contrast-dark .readability-hard{background-color:transparent;outline:none;text-decoration:underline;text-decoration-color:var(--color-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-style:dashed}html.high-contrast-dark .readability-very-hard{background-color:transparent;outline:none;text-decoration:underline;text-decoration-color:var(--color-text);text-decoration-thickness:2px;text-underline-offset:3px;text-decoration-style:solid}.quality-hard{text-decoration:underline wavy;text-decoration-color:#f97316;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-very-hard{text-decoration:underline wavy;text-decoration-color:#ef4444;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-nested{text-decoration:underline wavy;text-decoration-color:#a855f7;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-monotonous{text-decoration:underline wavy;text-decoration-color:#64748b;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-adverb{text-decoration:underline wavy;text-decoration-color:#c084fc;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-passive{text-decoration:underline wavy;text-decoration-color:#3b82f6;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-nominalization{text-decoration:underline wavy;text-decoration-color:#14b8a6;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-filler{text-decoration:underline wavy;text-decoration-color:#f59e0b;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-longword{text-decoration:underline wavy;text-decoration-color:#06b6d4;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-foreign{text-decoration:underline wavy;text-decoration-color:#6366f1;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-repetition{text-decoration:underline wavy;text-decoration-color:#f43f5e;text-decoration-thickness:2.4px;text-underline-offset:3px}.quality-connector{text-decoration:underline wavy;text-decoration-color:#fbbf24;text-decoration-thickness:2.4px;text-underline-offset:3px}html.dark .quality-hard{text-decoration-color:#fb923c}html.dark .quality-very-hard{text-decoration-color:#f87171}html.dark .quality-nested{text-decoration-color:#c084fc}html.dark .quality-monotonous{text-decoration-color:#94a3b8}html.dark .quality-adverb{text-decoration-color:#d8b4fe}html.dark .quality-passive{text-decoration-color:#60a5fa}html.dark .quality-nominalization{text-decoration-color:#2dd4bf}html.dark .quality-filler{text-decoration-color:#fcd34d}html.dark .quality-longword{text-decoration-color:#22d3ee}html.dark .quality-foreign{text-decoration-color:#818cf8}html.dark .quality-repetition{text-decoration-color:#fb7185}html.dark .quality-connector{text-decoration-color:#fcd34d}html.high-contrast .quality-hard,html.high-contrast .quality-very-hard,html.high-contrast .quality-nested,html.high-contrast .quality-monotonous,html.high-contrast .quality-adverb,html.high-contrast .quality-passive,html.high-contrast .quality-nominalization,html.high-contrast .quality-filler,html.high-contrast .quality-longword,html.high-contrast .quality-foreign,html.high-contrast .quality-repetition,html.high-contrast .quality-connector{text-decoration-color:var(--color-text);text-decoration-thickness:2px}html.high-contrast .quality-connector{background-color:transparent;opacity:1}html.high-contrast-dark .quality-hard,html.high-contrast-dark .quality-very-hard,html.high-contrast-dark .quality-nested,html.high-contrast-dark .quality-monotonous,html.high-contrast-dark .quality-adverb,html.high-contrast-dark .quality-passive,html.high-contrast-dark .quality-nominalization,html.high-contrast-dark .quality-filler,html.high-contrast-dark .quality-longword,html.high-contrast-dark .quality-foreign,html.high-contrast-dark .quality-repetition,html.high-contrast-dark .quality-connector{text-decoration-color:var(--color-text);text-decoration-thickness:2px}html.high-contrast-dark .quality-connector{background-color:transparent;opacity:1}.math-preview{padding:12px;background:var(--color-bg-secondary);border-radius:6px;text-align:center}.context-menu{position:fixed;z-index:1000;min-width:180px;max-width:280px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000026;padding:4px 0;font-family:var(--font-sans);font-size:.875rem}.context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:none;background:transparent;color:var(--color-text);text-align:left;cursor:pointer;transition:background-color .1s ease}.context-menu-item:hover{background:var(--color-bg-hover)}.context-menu-item svg{flex-shrink:0;opacity:.7}.context-menu-divider{height:1px;margin:4px 0;background:var(--color-border)}.context-menu-submenu{position:relative}.context-menu-submenu-content{position:absolute;left:100%;top:0;min-width:160px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 4px 20px #00000026;padding:4px 0}html.high-contrast .panel-right,html.high-contrast-dark .panel-right{border-left:1px solid var(--color-border)}html.high-contrast .marginalia-marker .marker-icon,html.high-contrast-dark .marginalia-marker .marker-icon{background:transparent;border:2px solid var(--color-accent);color:var(--color-text)}html.high-contrast .highlight-note-marker,html.high-contrast-dark .highlight-note-marker{background:transparent;border:2px solid var(--color-accent)}html.high-contrast .highlight-note-marker .marker-icon,html.high-contrast-dark .highlight-note-marker .marker-icon{color:var(--color-text)}.gec-error-spelling,.gec-error-grammar,.gec-error-style,.gec-error-punctuation,.gec-error-expression{cursor:pointer;position:relative;background-position:bottom;background-repeat:repeat-x;padding-bottom:2px}.gec-error-spelling{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='3' viewBox='0 0 4 3'%3E%3Cpath fill='none' stroke='%23dc2626' stroke-width='1' d='M0 2 Q1 0 2 2 T4 2'/%3E%3C/svg%3E");text-decoration-color:var(--gec-color-spelling)}.gec-error-grammar{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='3' viewBox='0 0 4 3'%3E%3Cpath fill='none' stroke='%232563eb' stroke-width='1' d='M0 2 Q1 0 2 2 T4 2'/%3E%3C/svg%3E");text-decoration-color:var(--gec-color-grammar)}.gec-error-style{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='3' viewBox='0 0 4 3'%3E%3Cpath fill='none' stroke='%2316a34a' stroke-width='1' d='M0 2 Q1 0 2 2 T4 2'/%3E%3C/svg%3E");text-decoration-color:var(--gec-color-style)}.gec-error-punctuation{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='3' viewBox='0 0 4 3'%3E%3Cpath fill='none' stroke='%23ea580c' stroke-width='1' d='M0 2 Q1 0 2 2 T4 2'/%3E%3C/svg%3E");text-decoration-color:var(--gec-color-punctuation)}.gec-error-expression{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='3' viewBox='0 0 4 3'%3E%3Cpath fill='none' stroke='%239333ea' stroke-width='1' d='M0 2 Q1 0 2 2 T4 2'/%3E%3C/svg%3E");text-decoration-color:#9333ea}.gec-error-spelling:hover,.gec-error-grammar:hover,.gec-error-style:hover,.gec-error-punctuation:hover,.gec-error-expression:hover{background-color:#0000000d}html.dark .gec-error-spelling:hover,html.dark .gec-error-grammar:hover,html.dark .gec-error-style:hover,html.dark .gec-error-punctuation:hover,html.dark .gec-error-expression:hover{background-color:#ffffff1a}html.high-contrast .gec-error-spelling,html.high-contrast-dark .gec-error-spelling{background-image:none;text-decoration:underline wavy var(--gec-color-spelling);text-underline-offset:3px}html.high-contrast .gec-error-grammar,html.high-contrast-dark .gec-error-grammar{background-image:none;text-decoration:underline wavy var(--gec-color-grammar);text-underline-offset:3px}html.high-contrast .gec-error-style,html.high-contrast-dark .gec-error-style{background-image:none;text-decoration:underline wavy var(--gec-color-style);text-underline-offset:3px}html.high-contrast .gec-error-punctuation,html.high-contrast-dark .gec-error-punctuation{background-image:none;text-decoration:underline wavy var(--gec-color-punctuation);text-underline-offset:3px}html.high-contrast .gec-error-expression,html.high-contrast-dark .gec-error-expression{background-image:none;text-decoration:underline wavy #9333ea;text-underline-offset:3px}.gec-line-markers{position:absolute;right:0;top:0;bottom:0;width:60px;pointer-events:none;z-index:5}.gec-line-marker{position:absolute;right:4px;font-family:var(--font-sans);white-space:nowrap;pointer-events:auto;cursor:default;display:flex;align-items:center;gap:3px;line-height:1}.gec-line-marker .marker-badge{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:20px;height:20px;padding:0 5px;color:#fff;font-size:11px;font-weight:700;font-family:var(--font-sans);border-radius:4px;text-transform:uppercase;box-shadow:0 1px 2px #00000026}.gec-line-marker .marker-count{font-size:9px;opacity:.9;margin-left:1px}.gec-line-marker .marker-pipes{color:var(--color-border-strong);font-weight:600;letter-spacing:-1px}.gec-line-marker .marker-codes{display:flex;gap:0}.gec-line-marker .marker-code{font-weight:700;font-size:11px}.gec-line-marker .marker-spelling{color:var(--gec-color-spelling)}.gec-line-marker .marker-grammar{color:var(--gec-color-grammar)}.gec-line-marker .marker-style{color:var(--gec-color-style)}.gec-line-marker .marker-punctuation{color:var(--gec-color-punctuation)}.gec-line-marker .marker-expression{color:var(--gec-color-expression)}html.dark .gec-line-marker .marker-spelling{color:#f87171}html.dark .gec-line-marker .marker-grammar{color:#60a5fa}html.dark .gec-line-marker .marker-style{color:#4ade80}html.dark .gec-line-marker .marker-punctuation{color:#fb923c}.api-provider-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:1rem;transition:all .2s ease}.api-provider-card:hover{border-color:var(--color-border-strong)}.api-provider-card.collapsed .api-provider-header .chevron{transform:rotate(-90deg)}.api-provider-header{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem 1.25rem;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit}.api-provider-header:hover{background:var(--color-bg-hover)}.api-provider-header .chevron{margin-left:auto;color:var(--color-text-muted);transition:transform .2s ease;flex-shrink:0}.provider-logo{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.provider-logo.openrouter{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.provider-logo.openai{background:#10a37f;color:#fff}.provider-logo.google{background:#fff;border:1px solid var(--color-border)}.provider-logo.anthropic{background:#cc785c;color:#fff}.provider-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.provider-name{font-weight:600;font-size:.9375rem;color:var(--color-text)}.provider-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.125rem .375rem;border-radius:var(--radius-sm);width:fit-content}.provider-badge.recommended{background:var(--color-success-bg);color:var(--color-success)}.provider-usage{font-size:.8125rem;color:var(--color-success);font-weight:500;margin-left:auto;margin-right:.5rem;white-space:nowrap}.provider-status{font-size:.8125rem;color:var(--color-text-muted);margin-left:auto;margin-right:.5rem;white-space:nowrap}.provider-status.connected{color:var(--color-success)}.api-provider-content{padding:0 1.25rem 1.25rem;border-top:1px solid var(--color-border)}.provider-description{font-size:.875rem;color:var(--color-text-secondary);margin:1rem 0;line-height:1.5}.provider-description a{color:var(--color-primary);text-decoration:none}.provider-description a:hover{text-decoration:underline}.provider-note{font-size:.8125rem;color:var(--color-text-muted);margin-top:.75rem;font-style:italic}.input-with-toggle{display:flex;gap:0;position:relative}.input-with-toggle .form-input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1}.btn-toggle-visibility{display:flex;align-items:center;justify-content:center;padding:0 .75rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-left:none;border-radius:0 var(--radius-md) var(--radius-md) 0;cursor:pointer;color:var(--color-text-muted);transition:all .15s ease}.btn-toggle-visibility:hover{background:var(--color-bg-hover);color:var(--color-text)}.api-key-status{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.8125rem;color:var(--color-text-secondary)}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-text-muted)}.status-indicator.success{background:var(--color-success)}.btn-clear-key{margin-left:auto;padding:.25rem .5rem;font-size:.75rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all .15s ease}.btn-clear-key:hover{border-color:var(--color-error);color:var(--color-error);background:var(--color-error-bg)}.balance-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border)}.balance-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.balance-title{font-weight:600;font-size:.875rem;color:var(--color-text)}.btn-refresh-balance{padding:.25rem .5rem;font-size:.875rem;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);transition:all .15s ease;display:flex;align-items:center;gap:.25rem}.btn-refresh-balance:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-refresh-balance:disabled{opacity:.5;cursor:not-allowed}.balance-display{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.balance-item{display:flex;flex-direction:column;gap:.25rem}.balance-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.balance-value{font-size:1rem;font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.balance-value.success{color:var(--color-success)}.balance-error{font-size:.875rem;color:var(--color-error)}.balance-hint{font-size:.8125rem;color:var(--color-text-muted)}.feature-model-grid{display:flex;flex-direction:column;gap:var(--space-3)}.feature-model-card{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md)}.feature-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-muted)}.feature-icon svg{width:20px;height:20px}.feature-info{display:flex;flex-direction:column;gap:var(--space-1);flex:1;min-width:0}.feature-name{font-family:var(--font-sans);font-weight:500;font-size:var(--font-size-sm);color:var(--color-text)}.feature-description{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted)}.feature-model-select{width:200px;flex-shrink:0}.model-legend{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1.5rem;padding:.75rem 1rem;background:var(--color-bg-secondary);border-radius:var(--radius-md)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--color-text-secondary)}.spinner-small{width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gec-mode-toggle{display:flex;gap:0;margin-bottom:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.gec-mode-toggle .mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;background:var(--color-bg);border:none;cursor:pointer;color:var(--color-text-muted);transition:all .15s ease;font-family:inherit}.gec-mode-toggle .mode-btn:first-child{border-right:1px solid var(--color-border)}.gec-mode-toggle .mode-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text)}.gec-mode-toggle .mode-btn.active{background:var(--color-primary);color:#fff}.gec-mode-toggle .mode-btn:disabled{opacity:.5;cursor:not-allowed}.error-explanation{font-size:.75rem;color:var(--color-text-muted);margin:.25rem 0 0;padding-left:1.5rem;font-style:italic}html.dark .gec-line-marker .marker-expression{color:#c084fc}
