:root{--bg: #0f0f17;--bg-surface: #1a1a2e;--bg-card: #252542;--bg-input: #1e1e35;--accent: #7c6ff7;--accent-dim: #4a4580;--accent-glow: rgba(124,111,247,.25);--text: #e8e8f0;--text-muted: #8888a8;--text-dim: #5a5a7a;--border: #2e2e4a;--success: #4caf8a;--danger: #e94560;--warning: #f0a050;--r: 8px;--r-lg: 14px;--topbar-h: 56px;--nav-h: 64px;--sidebar-w: 260px;--safe-bottom: env(safe-area-inset-bottom, 0px)}body.light{--bg: #f8f9fa;--bg-surface: #ffffff;--bg-card: #ffffff;--bg-input: #f0f0f0;--accent: #6366f1;--accent-dim: #9399ff;--accent-glow: rgba(99, 102, 241, .25);--text: #1a1a2e;--text-muted: #6c757d;--text-dim: #9ca3af;--border: #dee2e6;--success: #28a745;--danger: #dc3545;--warning: #ffc107}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow:hidden;margin:0;padding:0}@media (max-width: 767px){.status-bar-spacer{position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,20px);background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:1000}.app-layout{padding-top:env(safe-area-inset-top,20px)}}body.keyboard-open{overflow:hidden;height:100%}.mobile-editor-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);overflow:hidden}.mobile-editor-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;height:100dvh;max-height:100dvh;overflow-y:auto;display:flex;flex-direction:column;animation:slideUp .25s ease-out;-webkit-overflow-scrolling:touch}.mobile-editor-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-card);flex-shrink:0}.mobile-editor-meta{padding:6px 16px;flex-shrink:0}.mobile-editor-meta input{width:100%}.mobile-editor-controls{display:flex;padding:4px 16px;background:var(--bg-card);border-bottom:1px solid var(--border);flex-shrink:0}.mobile-folder-btn-wrapper{position:relative;flex-shrink:0}.mobile-folder-popup{position:absolute;top:100%;left:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r);padding:4px;z-index:1001;min-width:120px;max-height:200px;overflow-y:auto}.mobile-toolbar-wrapper{flex:1;display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-left:8px}.mobile-toolbar-wrapper::-webkit-scrollbar{display:none}.mobile-toolbar-wrapper .btn-sm{padding:4px 6px;font-size:12px;min-width:28px;flex-shrink:0}.mobile-editor-content{flex:1;overflow:hidden;padding:12px 16px;display:flex;flex-direction:column;min-height:0}.mobile-editor-content textarea{flex:1;min-height:250px}.mobile-editor-content .tiptap-editor-wrapper{flex:1;min-height:0}.mobile-editor-content .tiptap-editor{min-height:0}.note-editor-mode.keyboard-focused{position:fixed;top:0;left:0;right:0;bottom:var(--keyboard-height, 200px);z-index:1000;background:var(--bg);overflow-y:auto}@media (max-width: 767px){.note-panel{overflow-y:auto}.note-preview-panel{display:none!important}.note-viewer,.note-editor-mode{flex:1;overflow-y:auto}.note-editor-split{height:auto;min-height:100%}.note-editor-panel{flex:1;min-height:0;display:flex;flex-direction:column}.note-editor-panel textarea{flex:1;min-height:200px;height:auto}.mobile-editor-content{flex:1;overflow:hidden;padding:8px 16px;display:flex;flex-direction:column}.mobile-editor-content textarea{flex:1;min-height:200px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media (max-width: 767px){.note-panel.keyboard-open{height:calc(100% - var(--nav-h) - env(safe-area-inset-bottom,0px));overflow-y:auto}.note-panel.keyboard-open .note-editor-split{height:auto;min-height:100%}.note-panel.keyboard-open .note-editor-panel textarea{min-height:200px}.note-panel.keyboard-open .note-viewer-header,.note-panel.keyboard-open .note-editor-mode{transform:translateY(0)}}button{cursor:pointer;font:inherit;border:none;background:none}input,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}.app-layout{display:flex;flex-direction:column;height:100dvh}.app-topbar{height:var(--topbar-h);min-height:var(--topbar-h);background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:12px;z-index:100}.app-body{flex:1;display:flex;overflow:hidden}.app-sidebar{display:none;width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;padding:16px 0;overflow-y:auto;transition:all .25s ease-out}@media (min-width: 768px){.app-sidebar{display:flex}.app-sidebar.collapsed{width:0;min-width:0;padding:0;border-right:none;overflow:hidden}.app-sidebar.collapsed .sidebar-toggle-header,.app-sidebar.collapsed .sidebar-nav,.app-sidebar.collapsed .sidebar-divider,.app-sidebar.collapsed .history-panel{display:none}.app-sidebar:not(.collapsed) .nav-item{justify-content:flex-start;padding:10px 12px}.app-sidebar.collapsed .nav-item{justify-content:center;padding:10px 6px}.app-sidebar.collapsed .nav-icon{margin:0}.sidebar-collapsed-handle{display:none}.app-sidebar.collapsed+.sidebar-collapsed-handle{display:flex}}.sidebar-collapsed-handle{width:20px;height:100%;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0;position:relative;z-index:90}.sidebar-collapsed-handle:hover{background:var(--bg-card);color:var(--text)}.sidebar-collapsed-handle svg{color:var(--text-muted);transition:all .15s}.sidebar-collapsed-handle:hover svg{color:var(--text)}.app-content{flex:1;overflow:hidden;display:flex;flex-direction:column;transition:all .25s ease-out}@media (min-width: 768px){.app-sidebar.collapsed+.app-content{width:100%}}.app-bottom-nav{height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-surface);border-top:1px solid var(--border);display:flex;align-items:center;z-index:100}@media (min-width: 768px){.app-sidebar{display:flex}.app-bottom-nav{display:none}}.topbar-logo{font-size:18px;font-weight:700;color:var(--accent);letter-spacing:-.3px;flex:1}@media (min-width: 768px){.sidebar-toggle-btn{display:flex;flex-shrink:0;margin-right:8px}}@media (max-width: 767px){.sidebar-toggle-btn{display:none}}.topbar-logo span{color:var(--text-muted);font-weight:400}.topbar-actions{display:flex;align-items:center;gap:8px}.web-toggle{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:20px;background:var(--bg-card);border:1px solid var(--border);font-size:12px;color:var(--text-muted);transition:all .2s}.web-toggle.active{background:var(--accent-dim);border-color:var(--accent);color:var(--text)}.web-toggle .dot{width:7px;height:7px;border-radius:50%;background:var(--text-dim);transition:background .2s}.web-toggle.active .dot{background:var(--accent)}.icon-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);color:var(--text-muted);transition:all .15s}.icon-btn:hover{background:var(--bg-card);color:var(--text)}.sidebar-toggle-header{display:flex;justify-content:flex-end;padding:4px 8px 8px}.sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--r);transition:all .15s}.sidebar-collapse-btn:hover{background:var(--bg-card);color:var(--text)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);color:var(--text-muted);font-size:14px;font-weight:500;transition:all .15s;text-decoration:none}.nav-item:hover{background:var(--bg-card);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--accent)}.nav-item .nav-icon{width:20px;text-align:center;font-size:16px}.bottom-nav-inner{width:100%;display:flex;justify-content:space-around;padding:0 8px}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:var(--r);color:var(--text-muted);font-size:11px;font-weight:500;text-decoration:none;transition:all .15s}.bottom-nav-item .bn-icon{font-size:20px;line-height:1}.bottom-nav-item.active{color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r);font-size:14px;font-weight:500;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#9388f9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-card);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:5px 10px;font-size:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--text-muted);font-weight:500}.input{width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:14px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-dim)}select.input{cursor:pointer}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:380px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:40px 32px;display:flex;flex-direction:column;gap:24px}.login-header{text-align:center}.login-logo{font-size:36px;margin-bottom:8px}.login-title{font-size:22px;font-weight:700;color:var(--text)}.login-sub{font-size:13px;color:var(--text-muted);margin-top:4px}.login-form{display:flex;flex-direction:column;gap:16px}.login-error{padding:10px 14px;background:#e9456026;border:1px solid var(--danger);border-radius:var(--r);font-size:13px;color:var(--danger)}.chat-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth}.chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);text-align:center;padding:32px}.chat-empty-icon{font-size:48px;opacity:.5}.chat-empty h3{font-size:18px;color:var(--text)}.chat-empty p{font-size:14px;max-width:300px}.message{display:flex;flex-direction:column;gap:6px;max-width:100%}.message-user{align-items:flex-end}.message-user .msg-bubble{background:var(--accent-dim);border:1px solid var(--accent);color:var(--text);border-radius:var(--r-lg) var(--r-lg) 4px var(--r-lg);padding:10px 14px;max-width:80%;font-size:14px;white-space:pre-wrap;word-break:break-word}.message-assistant{align-items:flex-start}.message-assistant .msg-bubble{background:var(--bg-card);border:1px solid var(--border);border-radius:4px var(--r-lg) var(--r-lg) var(--r-lg);padding:12px 16px;width:100%;font-size:14px}.msg-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-dim);padding:0 4px}.msg-source-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-vault{background:#7c6ff733;color:var(--accent)}.badge-web{background:#4caf8a33;color:var(--success)}.msg-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.cursor-blink{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;animation:blink .8s step-end infinite;vertical-align:text-bottom}@keyframes blink{50%{opacity:0}}.msg-searching{display:flex;align-items:center;padding:10px 14px}.searching-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:4px;animation:dot-bounce 1.2s infinite ease-in-out}.searching-dot:nth-child(2){animation-delay:.2s}.searching-dot:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1);opacity:1}}.chat-input-bar{padding:12px 16px;background:var(--bg-surface);border-top:1px solid var(--border);display:flex;gap:10px;align-items:center}.chat-textarea{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 14px;color:var(--text);font-size:14px;resize:none;outline:none;max-height:140px;line-height:1.5;transition:border-color .15s}.chat-textarea:focus{border-color:var(--accent)}.chat-textarea::placeholder{color:var(--text-dim)}.send-btn{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:all .15s}.send-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn:not(:disabled):hover{background:#9388f9;transform:scale(1.05)}.voice-btn{background:transparent!important;border:none!important;box-shadow:none!important;padding:8px!important;height:auto!important}.voice-btn:hover{background:transparent!important}.md-content{color:var(--text);line-height:1.7;word-break:break-word}.md-content h1,.md-content h2,.md-content h3,.md-content h4,.md-content h5,.md-content h6{color:var(--text);margin:1em 0 .4em;font-weight:700;line-height:1.3}.md-content h1{font-size:1.5em}.md-content h2{font-size:1.25em}.md-content h3{font-size:1.1em}.md-content p{margin:.6em 0}.md-content ul,.md-content ol{padding-left:1.4em;margin:.5em 0}.md-content li{margin:.3em 0}.md-content code{background:var(--bg-surface);padding:1px 5px;border-radius:4px;font-family:Fira Code,Cascadia Code,monospace;font-size:.88em;color:#a89efa}.md-content pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;overflow-x:auto;margin:.8em 0}.md-content pre code{background:none;padding:0;color:var(--text)}.md-content blockquote{border-left:3px solid var(--accent);padding-left:12px;color:var(--text-muted);margin:.8em 0;font-style:italic}.md-content hr{border:none;border-top:1px solid var(--border);margin:1.2em 0}.md-content a{color:var(--accent)}.md-content table{border-collapse:collapse;width:100%;margin:.8em 0;font-size:13px}.md-content th,.md-content td{border:1px solid var(--border);padding:6px 10px;text-align:left}.md-content th{background:var(--bg-card);font-weight:600}.md-content img{max-width:100%;border-radius:var(--r)}.explorer-page{display:flex;height:100%;overflow:hidden}.file-tree-panel{width:240px;min-width:200px;background:var(--bg-surface);border-right:1px solid var(--border);overflow-y:auto;padding:12px 8px;display:flex;flex-direction:column;gap:4px;flex-shrink:0;transition:all .25s ease-out}.file-tree-panel.collapsed{width:0;min-width:0;padding:0;border-right:none;overflow:hidden}.file-tree-panel .panel-header{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.note-panel{flex:1;overflow:hidden;display:flex;flex-direction:column;transition:all .25s ease-out}@media (max-width: 767px){.explorer-page{flex-direction:column}.file-tree-panel{width:100%;min-width:unset;border-right:none;border-bottom:1px solid var(--border);max-height:40%}.file-tree-panel.collapsed{display:none}.note-panel{flex:1}}@media (min-width: 768px){.file-tree-panel.collapsed+.note-panel{width:100%}}.file-tree-collapse-btn{transition:all .15s}.file-tree-collapse-btn:hover{background:var(--bg-card);color:var(--text)}.file-tree-panel-collapsed-handle{width:20px;height:100%;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0}.file-tree-panel-collapsed-handle:hover{background:var(--bg-card);color:var(--text)}.file-tree-panel-collapsed-handle svg{color:var(--text-muted);transition:all .15s}.file-tree-panel-collapsed-handle:hover svg{color:var(--text)}.tree-node{-webkit-user-select:none;user-select:none}.tree-folder-header{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--r);font-size:13px;color:var(--text-muted);cursor:pointer;transition:all .12s}.tree-folder-header:hover{background:var(--bg-card);color:var(--text)}.tree-folder-children{padding-left:14px}.tree-file{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--r);font-size:13px;color:var(--text-muted);cursor:pointer;transition:all .12s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-file:hover{background:var(--bg-card);color:var(--text)}.tree-file.selected{background:var(--accent-dim);color:var(--accent)}.tree-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-item-actions{display:none;flex-direction:row;gap:4px;flex-shrink:0}.tree-action-btn{background:none;border:none;cursor:pointer;padding:2px 4px;font-size:14px;color:var(--text-muted);border-radius:4px;line-height:1;transition:all .15s}.tree-action-btn:hover{color:var(--text);background:#ffffff1a}.tree-delete-btn{background:none;border:none;cursor:pointer;padding:2px 4px;font-size:14px;color:var(--text-muted);border-radius:4px;line-height:1;transition:all .15s}.tree-delete-btn:hover{color:var(--danger);background:#e9456026}.tree-folder-header:hover .tree-item-actions,.tree-file:hover .tree-item-actions{display:flex}.tree-confirm-btns{display:flex;gap:3px;flex-shrink:0}.tree-confirm-btns button{background:none;border:1px solid var(--border);border-radius:3px;cursor:pointer;padding:1px 5px;font-size:11px;color:var(--text-muted);line-height:1.4}.tree-confirm-btns button:first-child{color:var(--danger);border-color:var(--danger)}.tree-confirm-btns button:first-child:hover{background:#e9456026}.tree-confirm-btns button:last-child:hover{background:var(--bg-card);color:var(--text)}.tree-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:flex-start;justify-content:center;z-index:200;padding-top:100px}.tree-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:320px;padding:20px;display:flex;flex-direction:column;gap:16px;animation:fadeIn .15s ease-out}.tree-modal h4{font-size:16px;font-weight:700;color:var(--text);margin:0 0 8px}.tree-rename-input{width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r);color:var(--text);font-size:14px;outline:none;transition:border-color .15s}.tree-rename-input:focus{border-color:var(--accent)}.tree-rename-input::placeholder{color:var(--text-dim)}.tree-modal-btn{padding:8px 16px;border-radius:var(--r);font-size:13px;font-weight:500;transition:all .15s}.tree-modal-btn.cancel{background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border)}.tree-modal-btn.cancel:hover{background:var(--bg-input);color:var(--text)}.tree-modal-btn.confirm{background:var(--accent);color:#fff}.tree-modal-btn.confirm:hover{background:#9388f9}.note-viewer{flex:1;overflow-y:auto;padding:24px}.note-viewer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:12px}.note-viewer-title{font-size:18px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 767px){.note-viewer-header{flex-direction:column;align-items:stretch;gap:12px}.note-viewer-header .input{width:100%;font-size:16px!important;font-weight:600}.note-viewer-header select.input{width:100%;font-size:14px!important}.note-viewer-header>div:last-child{display:flex;gap:8px;width:100%}.note-viewer-header .btn{flex:1}}.note-editor-mode{padding:0 24px 24px}.note-editor-mode .EasyMDEContainer{height:100%;min-height:0;display:flex;flex-direction:column}.note-editor-mode,.note-editor-mode *,.note-editor-mode *:before,.note-editor-mode *:after{direction:ltr!important;unicode-bidi:embed!important}.note-editor-mode .EasyMDEContainer,.note-editor-mode .EasyMDEContainer *,.note-editor-mode .EasyMDEContainer *:before,.note-editor-mode .EasyMDEContainer *:after{direction:ltr!important;unicode-bidi:embed!important}.note-editor-mode textarea{direction:ltr!important;unicode-bidi:embed!important}.note-editor-mode .EasyMDEContainer .CodeMirror{flex:1;min-height:0;overflow-y:auto}.note-editor-mode .EasyMDEContainer .editor-preview{flex:1;overflow-y:auto;padding:0!important;background:transparent!important}.note-editor-mode .EasyMDEContainer .editor-preview>div{color:var(--text);line-height:1.7;word-break:break-word}.note-editor-mode .EasyMDEContainer .editor-preview h1,.note-editor-mode .EasyMDEContainer .editor-preview h2,.note-editor-mode .EasyMDEContainer .editor-preview h3,.note-editor-mode .EasyMDEContainer .editor-preview h4,.note-editor-mode .EasyMDEContainer .editor-preview h5,.note-editor-mode .EasyMDEContainer .editor-preview h6{color:var(--text);margin:1em 0 .4em;font-weight:700;line-height:1.3}.note-editor-mode .EasyMDEContainer .editor-preview h1{font-size:1.5em}.note-editor-mode .EasyMDEContainer .editor-preview h2{font-size:1.25em}.note-editor-mode .EasyMDEContainer .editor-preview h3{font-size:1.1em}.note-editor-mode .EasyMDEContainer .editor-preview p{margin:.6em 0}.note-editor-mode .EasyMDEContainer .editor-preview ul,.note-editor-mode .EasyMDEContainer .editor-preview ol{padding-left:1.4em;margin:.5em 0}.note-editor-mode .EasyMDEContainer .editor-preview li{margin:.3em 0}.note-editor-mode .EasyMDEContainer .editor-preview code{background:var(--bg-surface);padding:1px 5px;border-radius:4px;font-family:Fira Code,Cascadia Code,monospace;font-size:.88em;color:#a89efa}.note-editor-mode .EasyMDEContainer .editor-preview pre{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;overflow-x:auto;margin:.8em 0}.note-editor-mode .EasyMDEContainer .editor-preview pre code{background:none;padding:0;color:var(--text)}.note-editor-mode .EasyMDEContainer .editor-preview blockquote{border-left:3px solid var(--accent);padding-left:12px;color:var(--text-muted);margin:.8em 0;font-style:italic}.note-editor-mode .editor-toolbar{background:var(--bg-surface)!important;border:1px solid var(--border)!important;border-bottom:none!important;border-radius:var(--r) var(--r) 0 0!important;padding:4px 6px!important;opacity:1!important}.note-editor-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.editor-textarea{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r);padding:14px;color:var(--text);font-family:Fira Code,Cascadia Code,monospace;font-size:13px;line-height:1.7;resize:none;outline:none;transition:border-color .15s}.editor-textarea:focus{border-color:var(--accent)}.search-page{display:flex;flex-direction:column;height:100%;padding:16px;gap:16px;overflow:hidden}.search-bar{display:flex;gap:8px;align-items:center}.search-results{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.search-result-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;cursor:pointer;transition:border-color .15s,background-color .15s}.search-result-card:hover{border-color:var(--accent);background-color:var(--bg-surface)}.search-result-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px}.search-result-path{font-size:11px;color:var(--text-dim);margin-bottom:8px;font-family:monospace}.search-excerpt{font-size:12px;color:var(--text-muted);line-height:1.5;padding:6px 10px;background:var(--bg-surface);border-radius:var(--r);margin-top:4px;white-space:pre-wrap;word-break:break-word}.search-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:8px;font-size:14px}.settings-page{overflow-y:auto;padding:24px;max-width:640px;display:flex;flex-direction:column;gap:28px}.settings-section{display:flex;flex-direction:column;gap:16px}.settings-section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding-bottom:8px;border-bottom:1px solid var(--border)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-row-label{font-size:14px;color:var(--text)}.settings-row-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.toggle{position:relative;width:44px;height:24px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.toggle input:checked+.toggle-track{background:var(--accent);border-color:var(--accent)}.toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--text-dim);border-radius:50%;transition:all .2s}.toggle input:checked~.toggle-thumb{left:23px;background:#fff}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--success)}.save-feedback{padding:8px 12px;background:#4caf8a26;border:1px solid var(--success);border-radius:var(--r);font-size:13px;color:var(--success)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0}@media (min-width: 480px){.modal-backdrop{align-items:center;padding:24px}}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:480px;padding:24px;display:flex;flex-direction:column;gap:16px;max-height:90dvh;overflow-y:auto;animation:slideUp .2s ease-out}@media (min-width: 480px){.modal{border-radius:var(--r-lg);animation:fadeIn .15s ease-out}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-title{font-size:16px;font-weight:700;color:var(--text)}.modal-desc{font-size:13px;color:var(--text-muted)}.modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.loading-dots:after{content:"...";animation:dots 1.2s steps(4,end) infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:48px 24px;color:var(--text-muted);text-align:center}.page-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-size:15px;font-weight:600}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.app-sidebar{overflow-y:auto}.sidebar-divider{height:1px;background:var(--border);margin:8px 12px}.history-panel{padding:0 8px 12px}.history-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 8px;border-radius:var(--r);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);cursor:pointer;transition:background .12s}.history-header:hover{background:var(--bg-card)}.history-count{font-size:11px;font-weight:600;background:var(--accent-dim);color:var(--accent);padding:1px 6px;border-radius:8px}.history-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}.history-empty{padding:8px 10px;font-size:12px;color:var(--text-dim)}.history-item{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:var(--r);cursor:pointer;transition:background .12s}.history-item:hover{background:var(--bg-card)}.history-item.active{background:var(--accent-dim)}.history-item.active .history-item-title{color:var(--accent)}.history-item-body{flex:1;overflow:hidden}.history-item-title{font-size:12px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item-meta{font-size:10px;color:var(--text-dim);margin-top:1px}.history-item-delete{flex-shrink:0;opacity:0;width:18px;height:18px;border-radius:4px;font-size:14px;line-height:1;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .12s}.history-item:hover .history-item-delete{opacity:1}.history-item-delete:hover{background:var(--danger);color:#fff}.color-picker-popup{left:0!important;right:auto!important}.EasyMDEContainer .CodeMirror{background:var(--bg-input)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:0 0 var(--r) var(--r)!important;font-family:Fira Code,Cascadia Code,Consolas,monospace!important;font-size:13px!important;line-height:1.7!important;min-height:200px;height:100%!important}.EasyMDEContainer .CodeMirror-focused{border-color:var(--accent)!important;outline:none!important}.CodeMirror-cursor{border-left-color:var(--accent)!important}.editor-toolbar{background:var(--bg-surface)!important;border:1px solid var(--border)!important;border-bottom:none!important;border-radius:var(--r) var(--r) 0 0!important;padding:4px 6px!important;opacity:1!important}.editor-toolbar:before,.editor-toolbar:after{display:none!important}.editor-toolbar a,.editor-toolbar button{color:var(--text-muted)!important;border:1px solid transparent!important;border-radius:var(--r)!important;transition:all .12s!important;width:28px!important;height:28px!important}.editor-toolbar a:hover,.editor-toolbar button:hover{background:var(--bg-card)!important;color:var(--text)!important;border-color:var(--border)!important}.editor-toolbar a.active,.editor-toolbar button.active{background:var(--accent-dim)!important;color:var(--accent)!important;border-color:var(--accent-dim)!important}.editor-toolbar i.separator{border-left-color:var(--border)!important}.editor-toolbar a.mde-wikilink:before{content:"[[]]";font-family:Fira Code,monospace;font-size:10px;font-style:normal}.editor-preview,.editor-preview-side{background:transparent!important;color:var(--text)!important;border:none!important;padding:0!important}.editor-preview-active-side{border-color:var(--accent)!important}.cm-s-easymde .cm-header{color:#a89efa!important;font-weight:700!important}.cm-s-easymde .cm-strong{color:var(--text)!important;font-weight:700!important}.cm-s-easymde .cm-em{color:#d4c8ff!important;font-style:italic!important}.cm-s-easymde .cm-link{color:var(--accent)!important}.cm-s-easymde .cm-url{color:var(--accent)!important;opacity:.75}.cm-s-easymde .cm-quote{color:var(--text-muted)!important;font-style:italic!important}.cm-s-easymde .cm-comment{color:#4caf8a!important}.cm-s-easymde .cm-strikethrough{color:var(--text-dim)!important}.editor-toolbar.fullscreen,.CodeMirror-fullscreen,.editor-preview-active.fullscreen{background:var(--bg)!important}.editor-statusbar{color:var(--text-dim)!important;font-size:11px!important}.tasks-page{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:16px;gap:16px}.tasks-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.tasks-title{font-size:20px;font-weight:700;color:var(--text)}.tasks-actions{display:flex;gap:8px;flex-wrap:wrap}.tasks-input-form{display:flex;gap:10px;align-items:flex-end;padding:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg)}.tasks-input-wrapper{flex:1;display:flex;gap:10px;align-items:center}.tasks-input{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;color:var(--text);font-size:14px;outline:none;transition:border-color .15s}.tasks-input:focus{border-color:var(--accent)}.tasks-input::placeholder{color:var(--text-dim)}.color-picker-wrapper{position:relative;flex-shrink:0}.color-picker-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all .15s;flex-shrink:0}.color-picker-btn:hover{border-color:var(--accent);transform:scale(1.05)}.color-picker-popup{position:absolute;top:100%;right:0;left:auto;margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;padding:8px;max-width:168px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r);z-index:100;box-shadow:0 4px 12px #0000004d}.color-option{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .15s}.color-option:hover{transform:scale(1.1);border-color:var(--text-muted)}.tasks-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.tasks-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);text-align:center}.tasks-empty-sub{font-size:13px;color:var(--text-dim)}.tasks-section{display:flex;flex-direction:column;gap:10px}.tasks-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:0 4px}.tasks-section-list{display:flex;flex-direction:column;gap:6px}.task-item{border-radius:var(--r);padding:10px 14px;transition:all .15s}.task-item:hover{filter:brightness(1.1)}.task-content{display:flex;align-items:center;gap:12px;width:100%}.task-checkbox{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.task-text-container{flex:1;cursor:pointer;padding:4px 0;margin:-4px 0}.task-text{font-size:14px;color:var(--text);word-break:break-word;display:block}.task-text-container:hover{opacity:.8}.task-item.task-completed .task-text{color:var(--text-dim);text-decoration:line-through}.task-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.task-action-btn{width:28px;height:28px;border-radius:var(--r);color:var(--text-muted);font-size:14px;transition:all .15s}.task-action-btn:hover{background:var(--bg-surface);color:var(--text)}.task-delete-btn:hover{background:#e9456026;color:var(--danger)}.task-color-btn{width:20px;height:20px;border:2px solid var(--border)}.task-color-btn:hover{border-color:var(--accent)}.task-edit-wrapper{flex:1;display:flex;gap:8px;align-items:center}.task-edit-input{flex:1;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r);padding:6px 10px;color:var(--text);font-size:14px;outline:none}.task-edit-input:focus{border-color:var(--accent)}.task-edit-actions{display:flex;gap:2px;flex-shrink:0}.task-edit-btn{width:24px;height:24px;border-radius:var(--r);font-size:12px;color:var(--text-muted);transition:all .15s}.task-edit-btn:hover{background:var(--bg-surface);color:var(--text)}.task-edit-btn:first-child:hover{background:#4caf8a26;color:var(--success)}.task-edit-btn:last-child:hover{background:#e9456026;color:var(--danger)}.task-color-picker{position:relative}.tasks-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.toggle-completed-btn{font-size:12px;padding:4px 8px}.task-details{padding:12px 14px 8px;background:var(--bg-card);border-top:1px solid var(--border);margin-top:4px;border-radius:0 0 var(--r) var(--r)}.task-details-input{width:100%;min-height:80px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r);padding:10px;color:var(--text);font-size:14px;resize:vertical;outline:none;margin-bottom:8px}.task-details-input:focus{border-color:var(--accent)}.task-details-input::placeholder{color:var(--text-dim)}.task-details-actions{display:flex;gap:8px;justify-content:flex-end;margin-bottom:8px}.task-details-preview{font-size:13px;color:var(--text-muted);padding:8px;background:var(--bg-surface);border-radius:var(--r)}.task-details-preview p{margin:4px 0 0;white-space:pre-wrap;word-break:break-word}.mobile-menu-header{display:none;padding:8px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r);color:var(--text-muted);transition:all .15s}.mobile-menu-toggle:hover{background:var(--bg-surface);color:var(--text)}.mobile-file-tree-drawer{display:none;position:fixed;top:0;left:-280px;width:280px;max-width:90%;height:100%;background:var(--bg-surface);border-right:1px solid var(--border);z-index:200;transition:left .25s ease-out;overflow-y:auto;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}.mobile-panel-header{display:flex;align-items:center;gap:8px;padding:12px 8px 8px;border-bottom:1px solid var(--border);margin-bottom:8px}.mobile-file-tree-drawer.open{left:0}.mobile-drawer-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}@media (max-width: 767px){.mobile-menu-header{display:block}.mobile-file-tree-drawer{display:flex}.mobile-drawer-backdrop{display:block}.explorer-page .file-tree-panel{display:none}.explorer-page{flex-direction:column}.note-panel{flex:1;width:100%}}@media (min-width: 768px){.mobile-menu-toggle,.mobile-file-tree-drawer,.mobile-history-drawer,.mobile-drawer-backdrop{display:none}}.mobile-history-drawer{display:none;position:fixed;top:0;left:-280px;width:280px;max-width:90%;height:100%;background:var(--bg-surface);border-right:1px solid var(--border);z-index:200;transition:left .25s ease-out;overflow-y:auto;padding-top:env(safe-area-inset-top,0px)}.mobile-history-drawer.open{left:0}@media (max-width: 767px){.mobile-history-drawer{display:block}}.calendar-page{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:16px;gap:16px}.calendar-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.calendar-header-left{display:flex;flex-direction:column;gap:2px}.calendar-title{font-size:20px;font-weight:700;color:var(--text)}.calendar-subtitle{font-size:12px;color:var(--text-muted)}.calendar-header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-view-toggle{display:flex;gap:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r);padding:2px}.view-toggle-btn{width:36px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);color:var(--text-muted);font-size:14px;transition:all .15s}.view-toggle-btn:hover{background:var(--bg-card);color:var(--text)}.view-toggle-btn.active{background:var(--accent-dim);color:var(--accent)}.calendar-error{padding:10px 14px;background:#e9456026;border:1px solid var(--danger);border-radius:var(--r);font-size:13px;color:var(--danger);display:flex;align-items:center;gap:12px}.calendar-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.calendar-upcoming-widget{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px}.upcoming-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:10px}.upcoming-icon{font-size:14px}.upcoming-events{display:flex;flex-direction:column;gap:8px}.upcoming-event{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-card);border-radius:var(--r);cursor:pointer;transition:all .15s}.upcoming-event:hover{background:var(--bg-input)}.upcoming-event-date{font-size:12px;color:var(--text-muted);min-width:80px}.upcoming-event-title{flex:1;font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-event-calendar{width:10px;height:10px;border-radius:50%;flex-shrink:0}.calendar-main{flex:1;overflow-y:auto}.calendar-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);text-align:center;padding:48px 24px}.empty-state-icon{font-size:40px;opacity:.4}.empty-state-sub{font-size:13px;color:var(--text-dim)}.calendar-event-list{display:flex;flex-direction:column;gap:16px}.calendar-date-group{display:flex;flex-direction:column;gap:8px}.calendar-date-header{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:0 4px}.calendar-date-events{display:flex;flex-direction:column;gap:6px}.calendar-event-item{border-radius:var(--r);padding:12px 14px;cursor:pointer;transition:all .15s;border:1px solid transparent}.calendar-event-item:hover{filter:brightness(1.1);border-color:var(--border)}.calendar-event-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.calendar-event-time{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.event-date{font-weight:600}.event-all-day{font-size:10px;padding:1px 6px;background:var(--bg-card);border-radius:4px;text-transform:uppercase}.calendar-event-calendar{font-size:12px}.calendar-event-body{display:flex;flex-direction:column;gap:4px}.calendar-event-title{font-size:14px;font-weight:600;color:var(--text);word-break:break-word}.calendar-event-location,.calendar-event-description,.calendar-event-recurrence{font-size:12px;color:var(--text-muted)}.event-icon{margin-right:4px}.calendar-event-footer{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:6px;border-top:1px solid var(--border)}.calendar-event-duration{font-size:11px;color:var(--text-dim)}.calendar-event-status{font-size:10px;padding:1px 6px;border-radius:4px;text-transform:uppercase;font-weight:600}.calendar-event-status.cancelled{background:#e9456033;color:var(--danger)}.calendar-event-status.tentative{background:#f0a05033;color:var(--warning)}.calendar-week-view{display:flex;flex-direction:column;gap:12px}.week-view-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.week-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);color:var(--text-muted);font-size:18px;transition:all .15s}.week-nav-btn:hover{background:var(--bg-card);color:var(--text)}.week-view-title{font-size:14px;font-weight:600;color:var(--text);text-align:center}.week-view-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-view-day{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}.week-day-header{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--bg-card);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;color:var(--text-muted)}.week-day-date{font-size:10px;color:var(--text-dim)}.week-day-events{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:4px}.week-day-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-dim);text-align:center;padding:8px 0}.week-event-item{padding:6px 8px;border-radius:var(--r);font-size:11px;cursor:pointer;transition:all .15s;overflow:hidden}.week-event-item:hover{filter:brightness(1.1)}.week-event-time{font-size:10px;color:var(--text-muted);margin-bottom:2px}.week-event-title{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-month-view{display:flex;flex-direction:column;gap:12px}.month-view-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);color:var(--text-muted);font-size:18px;transition:all .15s}.month-nav-btn:hover{background:var(--bg-card);color:var(--text)}.month-view-title{font-size:16px;font-weight:600;color:var(--text)}.month-view-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);padding:6px 0}.month-view-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:4px 6px;border-radius:var(--r);cursor:pointer;transition:all .15s;min-height:60px}.month-day:hover:not(.month-day-other){background:var(--bg-card)}.month-day-other,.month-day-other .month-day-number{color:var(--text-dim)}.month-day-selected{background:var(--accent-dim)}.month-day-number{font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px}.month-day-events{display:flex;flex-direction:column;gap:2px;width:100%;margin-top:auto}.month-day-event-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.month-day-more{font-size:10px;color:var(--text-muted);margin-top:2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:300;padding:16px;animation:fadeIn .15s ease-out}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:500px;max-height:90dvh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .2s ease-out}.modal-wide{max-width:800px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:16px;font-weight:700;color:var(--text)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);color:var(--text-muted);font-size:20px;transition:all .15s}.modal-close:hover{background:var(--bg-card);color:var(--text)}.modal-body{flex:1;overflow-y:auto;padding:20px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--border)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{font-size:13px;color:var(--text-muted);font-weight:500}.form-hint{font-size:11px;color:var(--text-dim);margin-top:2px}.color-picker-container{display:flex;align-items:center;gap:10px}.color-preview{width:24px;height:24px;border-radius:50%;border:2px solid var(--border)}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.alert{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r);font-size:13px;margin-bottom:16px}.alert-error{background:#e9456026;border:1px solid var(--danger);color:var(--danger)}.alert-close{margin-left:auto;color:inherit;opacity:.7;transition:opacity .15s}.alert-close:hover{opacity:1}.test-result{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r);font-size:13px;margin-bottom:16px}.test-success{background:#4caf8a26;border:1px solid var(--success);color:var(--success)}.test-error{background:#e9456026;border:1px solid var(--danger);color:var(--danger)}.test-event-count,.test-error-message{font-size:12px;opacity:.8}.calendar-settings{display:flex;flex-direction:column;gap:16px}.calendar-settings-header{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr 1fr 1fr;gap:8px;padding:0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.calendar-settings-list{display:flex;flex-direction:column;gap:4px}.calendar-settings-item{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr 1fr 1fr;gap:8px;align-items:center;padding:8px 12px;background:var(--bg-card);border-radius:var(--r)}.settings-cell{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-cell-name{display:flex;align-items:center;gap:8px}.calendar-color-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.calendar-name{font-weight:500}.calendar-disabled-badge{font-size:10px;padding:1px 6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);margin-left:4px}.settings-header-cell{padding:0 4px}.settings-cell-actions{display:flex;gap:4px;justify-content:flex-end}.settings-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r);font-size:12px;color:var(--text-muted);transition:all .15s}.settings-action-btn:hover{background:var(--bg-surface);color:var(--text)}.settings-action-btn.settings-action-delete:hover{background:#e9456026;color:var(--danger)}.settings-empty{text-align:center;padding:24px;color:var(--text-muted)}.settings-empty-sub{font-size:12px;color:var(--text-dim);margin-top:4px}.calendar-settings-footer{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.settings-info{font-size:13px;color:var(--text-muted);margin-bottom:8px}.settings-tips{font-size:12px;color:var(--text-dim);line-height:1.6}.settings-tips li{margin-bottom:6px}.settings-tips strong{color:var(--text)}.modal-event-details{max-width:600px}.event-details{display:flex;flex-direction:column;gap:12px}.event-details-title{font-size:18px;font-weight:700;color:var(--text);word-break:break-word}.event-detail-row{display:flex;gap:16px;padding:8px 0;border-bottom:1px solid var(--border)}.event-detail-row:last-child{border-bottom:none}.event-detail-row-full{grid-column:1 / -1}.event-detail-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);min-width:100px}.event-detail-value{flex:1;font-size:13px;color:var(--text);word-break:break-word}.event-date-range{display:flex;flex-direction:column;gap:4px}.event-date-start,.event-date-end{display:flex;align-items:center;gap:6px}.event-date-icon{font-size:14px}.event-all-day-badge{display:inline-block;font-size:10px;padding:1px 6px;background:var(--bg-card);border-radius:4px;text-transform:uppercase;color:var(--text-muted);margin-top:4px}.event-duration{font-size:12px;color:var(--text-muted)}.calendar-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.event-location-icon,.event-organizer-icon,.event-recurrence-icon{margin-right:4px;font-size:14px}.event-recurrence{font-family:Fira Code,monospace;font-size:12px;background:var(--bg-card);padding:2px 6px;border-radius:4px}.event-attendees-list{display:flex;flex-direction:column;gap:4px}.event-attendee{font-size:12px;color:var(--text-muted)}.attendee-role{font-size:11px;color:var(--text-dim)}.event-description{font-size:13px;line-height:1.6;color:var(--text-muted)}.event-description p{margin:4px 0}.event-status-badge{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.event-status-badge.cancelled{background:#e9456033;color:var(--danger)}.event-status-badge.tentative{background:#f0a05033;color:var(--warning)}.sync-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px}.sync-status.success{background:#4caf8a33;color:var(--success)}.sync-status.error{background:#e9456033;color:var(--danger)}.sync-status.pending{background:var(--bg-card);color:var(--text-dim)}@media (max-width: 767px){.calendar-page{padding:12px}.calendar-header{flex-direction:column;align-items:flex-start}.calendar-header-right{width:100%;justify-content:flex-end}.calendar-view-toggle{order:-1}.week-view-grid{grid-template-columns:repeat(7,1fr);gap:4px}.week-day-header,.week-day-date,.week-event-item{font-size:10px}.month-view-weekdays{gap:2px}.month-weekday{font-size:10px;padding:4px 0}.month-view-days{gap:2px}.month-day{min-height:50px}.month-day-number{font-size:12px}.modal{max-height:95dvh;border-radius:var(--r-lg) var(--r-lg) 0 0}.modal-wide{max-width:100%}.calendar-settings-header,.calendar-settings-item{grid-template-columns:1.5fr 1fr 1fr}.settings-header-cell:nth-child(4),.settings-header-cell:nth-child(5),.settings-header-cell:nth-child(6),.settings-cell:nth-child(4),.settings-cell:nth-child(5),.settings-cell:nth-child(6){display:none}.settings-cell-actions{justify-content:flex-start}}@media (min-width: 600px){.calendar-settings-header,.calendar-settings-item{grid-template-columns:2fr 1fr 1fr 1.5fr 1fr 1fr}}.note-editor-split{display:flex;flex-direction:column;gap:24px;height:100%;min-height:400px}.note-editor-panel,.note-preview-panel{flex:1;min-height:0}.note-editor-panel textarea{width:100%;height:100%;min-height:300px}.note-preview-panel{overflow-y:auto}@media (max-width: 767px){.note-preview-panel{display:none!important}.note-editor-split{flex-direction:column}.note-editor-panel{flex:1}}@media (min-width: 768px){.note-editor-split{flex-direction:row;gap:24px}.note-editor-panel,.note-preview-panel{flex:1;min-width:0}.note-preview-panel{display:block!important}}.week-time-grid-container{display:flex;flex:1;overflow:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface)}.week-time-axis{width:50px;flex-shrink:0;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column}.week-time-slot-label{font-size:11px;color:var(--text-muted);display:flex;align-items:flex-end;padding:0 8px 4px;border-bottom:1px solid var(--border);text-align:right}.week-time-slot-label:last-child{border-bottom:none}.week-days-grid{display:flex;flex:1;flex-direction:column;overflow:hidden}.week-days-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-card)}.week-day-header-cell{padding:6px 8px;text-align:center;font-size:11px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:2px}.week-day-header-cell.today{background:#7c6ff726}.week-day-header-cell:last-child{border-right:none}.week-day-date{font-size:10px;color:var(--text-muted)}.week-days-columns{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow:auto}.week-day-column{position:relative;border-right:1px solid var(--border);background:var(--bg-card);overflow:visible}.week-day-column:last-child{border-right:none}.week-grid-event{position:absolute;left:4px;right:4px;border-radius:var(--r);padding:6px 8px;font-size:11px;cursor:pointer;transition:all .15s;overflow:hidden;word-break:break-word;box-sizing:border-box}.week-grid-event:hover{filter:brightness(1.1);transform:scale(1.02)}.week-grid-event-time{font-size:10px;color:var(--text-muted);margin-bottom:2px;font-weight:600}.week-grid-event-title{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-grid-event-location{font-size:10px;color:var(--text-muted);margin-top:2px;display:flex;align-items:center;gap:4px}.week-day-column .week-grid-event:nth-child(1){z-index:1}.week-day-column .week-grid-event:nth-child(2){z-index:2}.week-day-column .week-grid-event:nth-child(3){z-index:3}.week-day-column .week-grid-event:nth-child(4){z-index:4}.week-days-columns::-webkit-scrollbar{width:8px;height:8px}.week-days-columns::-webkit-scrollbar-track{background:var(--bg-card)}.week-days-columns::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.week-days-columns::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
