@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-color:#6366f1;--accent-hover:#4f46e5;--accent-light:#6366f126;--border-color:#334155;--shadow-color:#0000004d;--glass-bg:#1e293bb3;--glass-border:#ffffff14;--glass-blur:blur(12px);--danger-color:#ef4444;--danger-hover:#dc2626;--font-sans:"Inter", sans-serif;--font-logo:"Outfit", sans-serif}[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-color:#4f46e5;--accent-hover:#4338ca;--accent-light:#4f46e51a;--border-color:#e2e8f0;--shadow-color:#0000000f;--glass-bg:#ffffffbf;--glass-border:#0000000f;--glass-blur:blur(12px);--danger-color:#ef4444;--danger-hover:#dc2626}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .2s,border-color .2s}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;height:100vh;overflow:hidden}#root{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.navbar-mobile{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:100;justify-content:space-between;align-items:center;height:56px;padding:0 16px;display:none;position:fixed;top:0;left:0;right:0}.sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:90;flex-direction:column;width:320px;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.sidebar-header{border-bottom:1px solid var(--border-color);padding:24px}.brand{align-items:center;gap:10px;margin-bottom:20px;display:flex}.brand h1{font-family:var(--font-logo);letter-spacing:-.5px;background:linear-gradient(135deg, var(--text-primary) 30%, var(--accent-color) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:24px;font-weight:700}.btn-new-note{background-color:var(--accent-color);color:#fff;width:100%;font-family:var(--font-sans);cursor:pointer;box-shadow:0 4px 12px var(--accent-light);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:600;transition:background-color .2s,transform .1s,box-shadow .2s;display:flex}.btn-new-note:hover{background-color:var(--accent-hover);box-shadow:0 6px 16px var(--accent-light)}.btn-new-note:active{transform:scale(.98)}.sidebar-search{padding:16px 24px;position:relative}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.search-input{background-color:var(--bg-primary);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-sans);border-radius:8px;outline:none;padding:10px 12px 10px 38px;font-size:14px}.search-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px var(--accent-light)}.sidebar-actions{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:8px 24px;display:flex}.action-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px;display:flex}.action-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.sidebar-actions-group{gap:8px;display:flex;position:relative}.action-dropdown{background-color:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:0 10px 25px var(--shadow-color);z-index:110;border-radius:8px;flex-direction:column;width:180px;margin-top:8px;padding:6px 0;display:flex;position:absolute;top:100%}.action-dropdown.left{left:0}.action-dropdown.right{right:0}.dropdown-item{color:var(--text-secondary);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 16px;font-size:13px;display:flex}.dropdown-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.dropdown-item.active{color:var(--accent-color);font-weight:500}.dropdown-divider{background-color:var(--border-color);height:1px;margin:4px 0}.notes-list{flex-direction:column;flex:1;gap:10px;padding:12px 24px;display:flex;overflow-y:auto}.note-item{background-color:var(--bg-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;flex-direction:column;gap:6px;padding:12px 16px;transition:border-color .2s,transform .1s,box-shadow .2s;display:flex;position:relative}.note-item:hover{border-color:var(--text-muted);box-shadow:0 4px 10px var(--shadow-color)}.note-item.active{border-color:var(--accent-color);background-color:var(--accent-light)}.note-item-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.note-item-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;font-weight:600;overflow:hidden}.note-item-delete{color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;padding:2px;transition:opacity .2s,color .2s}.note-item:hover .note-item-delete{opacity:1}.note-item-delete:hover{color:var(--danger-color)}.note-item-snippet{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.note-item-compact .note-item-snippet{display:none}.note-item-date{color:var(--text-muted);align-self:flex-start;font-size:11px}.no-notes{text-align:center;color:var(--text-muted);margin-top:40px;font-size:14px}.editor{background-color:var(--bg-primary);flex-direction:column;flex:1;height:100%;display:flex}.editor-menu-bar{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex}.editor-menu-list{gap:4px;list-style:none;display:flex}.editor-menu-item{position:relative}.menu-trigger{color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:500}.menu-trigger:hover,.menu-trigger.active{background-color:var(--bg-tertiary);color:var(--text-primary)}.menu-dropdown{background-color:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:0 10px 25px var(--shadow-color);z-index:120;border-radius:8px;flex-direction:column;width:220px;margin-top:4px;padding:6px 0;display:flex;position:absolute;top:100%;left:0}.menu-dropdown-item{color:var(--text-secondary);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 16px;font-size:13px;display:flex}.menu-dropdown-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.menu-dropdown-label{align-items:center;gap:10px;display:flex}.menu-dropdown-shortcut{color:var(--text-muted);font-size:11px}.menu-dropdown-item.checked:after{content:"✓";color:var(--accent-color);font-weight:700}.fullscreen-trigger{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;display:flex}.fullscreen-trigger:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.user-profile-section{align-items:center;gap:12px;display:flex}.profile-auth-btn{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.profile-auth-btn:hover{background-color:var(--border-color)}.user-badge{background-color:var(--accent-light);border:1px solid var(--accent-color);color:var(--accent-color);text-overflow:ellipsis;white-space:nowrap;border-radius:12px;max-width:120px;padding:4px 8px;font-size:11px;font-weight:600;overflow:hidden}.editor-header{border-bottom:1px solid var(--border-color);align-items:center;gap:16px;padding:24px 40px;display:flex}.editor-title-input{color:var(--text-primary);font-family:var(--font-logo);background:0 0;border:none;outline:none;flex:1;font-size:28px;font-weight:700}.editor-title-input::placeholder{color:var(--text-muted)}.editor-delete-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;display:flex}.editor-delete-btn:hover{background-color:var(--bg-tertiary);color:var(--danger-color)}.editor-body{flex-direction:column;flex:1;padding:24px 40px;display:flex;overflow-y:auto}.editor-textarea{resize:none;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;width:100%;height:100%;line-height:1.6}.editor-textarea::placeholder{color:var(--text-muted)}.editor-footer{background-color:var(--bg-secondary);border-top:1px solid var(--border-color);height:32px;color:var(--text-secondary);justify-content:space-between;align-items:center;padding:0 24px;font-size:12px;display:flex}.editor-footer-status{align-items:center;gap:16px;display:flex}.autosave-status{color:var(--text-muted);align-items:center;gap:6px;display:flex}.autosave-dot{background-color:var(--text-muted);border-radius:50%;width:6px;height:6px}.autosave-dot.saving{background-color:#f59e0b;animation:1s infinite alternate pulse}.autosave-dot.saved{background-color:#10b981}@keyframes pulse{0%{opacity:.4}to{opacity:1}}.modal-overlay{z-index:200;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);background-color:#0009;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-container{background-color:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:0 20px 40px var(--shadow-color);border-radius:16px;flex-direction:column;width:100%;max-width:500px;max-height:90vh;animation:.2s cubic-bezier(.34,1.56,.64,1) scaleUp;display:flex;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{font-family:var(--font-logo);font-size:18px;font-weight:600}.modal-close-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px}.modal-close-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.modal-body{flex-direction:column;gap:16px;padding:24px;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-row{gap:12px;display:flex}.form-row .form-group{flex:1}.form-group label{color:var(--text-secondary);font-size:13px;font-weight:500}.modal-input{background-color:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-sans);border-radius:8px;outline:none;padding:10px 12px;font-size:14px}.modal-input:focus{border-color:var(--accent-color)}.modal-select{background-color:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-sans);border-radius:8px;outline:none;padding:10px}.modal-checkbox-label{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.btn{font-family:var(--font-sans);cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--border-color)}.btn-primary{background-color:var(--accent-color);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:var(--danger-hover)}.grid-container{border:1px solid var(--border-color);background-color:var(--bg-primary);border-radius:8px;grid-template-columns:repeat(8,1fr);gap:8px;max-height:250px;padding:4px;display:grid;overflow-y:auto}.grid-item{cursor:pointer;border-radius:6px;justify-content:center;align-items:center;height:40px;font-size:20px;transition:transform .1s,background-color .1s;display:flex}.grid-item:hover{background-color:var(--bg-tertiary);transform:scale(1.15)}.grid-item.character{font-family:sans-serif;font-size:16px}.toast-container{z-index:300;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background-color:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:0 10px 25px var(--shadow-color);color:var(--text-primary);border-radius:8px;align-items:center;gap:10px;min-width:250px;padding:12px 20px;font-size:13px;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex}.toast-success{border-left:4px solid #10b981}.toast-info{border-left:4px solid var(--accent-color)}.toast-warning{border-left:4px solid #f59e0b}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.no-status-bar .editor-footer{display:none}.note-item-compact{padding:8px 12px}.sidebar-toggle-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:8px;display:flex}.sidebar-toggle-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.sidebar-overlay{z-index:85;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0006;display:none;position:fixed;inset:0}@media (width<=768px){.app-container{flex-direction:column;padding-top:56px}.navbar-mobile{display:flex}.sidebar{width:280px;height:calc(100vh - 56px);position:fixed;top:56px;bottom:0;left:0;transform:translate(-100%);box-shadow:10px 0 25px #00000026}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.editor-header,.editor-body{padding:16px 20px}.editor-menu-bar{white-space:nowrap;justify-content:flex-start;gap:16px;overflow-x:auto}.editor-menu-list{flex-shrink:0}.user-profile-section{flex-shrink:0;margin-left:auto}}.fullscreen-mode .sidebar,.fullscreen-mode .navbar-mobile{display:none}.fullscreen-mode{padding-top:0!important}@media print{body{height:auto;font-size:12pt;overflow:visible;color:#000!important;background-color:#fff!important}.sidebar,.navbar-mobile,.editor-menu-bar,.editor-header,.editor-footer,.sidebar-overlay,.modal-overlay,.toast-container{display:none!important}.app-container{height:auto;padding:0;display:block}.editor{height:auto;display:block;background-color:#fff!important}.editor-body{padding:0;display:block;overflow:visible}.editor-textarea{border:none;width:100%;height:auto;color:#000!important;background:0 0!important}.editor-body:before{content:attr(data-title);border-bottom:2px solid #000;margin-bottom:20px;padding-bottom:10px;font-size:24pt;font-weight:700;display:block}}.login-page{background-color:var(--bg-primary);background-image:radial-gradient(circle at 50% 50%, var(--bg-secondary) 0%, var(--bg-primary) 100%);z-index:1000;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.login-card{background-color:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:0 20px 40px var(--shadow-color);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);text-align:center;border-radius:16px;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:40px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleUp;display:flex}.btn-google{color:#1f2937;width:100%;font-family:var(--font-sans);cursor:pointer;background-color:#fff;border:1px solid #d1d5db;border-radius:8px;justify-content:center;align-items:center;gap:12px;padding:12px 24px;font-size:14px;font-weight:600;transition:background-color .2s,box-shadow .2s,transform .1s;display:flex;box-shadow:0 2px 4px #0000000d}.btn-google:hover{background-color:#f9fafb;box-shadow:0 4px 6px #0000001a}.btn-google:active{transform:scale(.98)}
