.app{display:flex;flex-direction:column;min-height:100vh}.header{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;background:var(--color-white);border-bottom:1px solid var(--color-lighter-gray);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:24px}.logo{font-size:20px;font-weight:700;color:var(--color-black)}.header-right{display:flex;align-items:center;gap:16px}.library-selector{position:relative}.library-button{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-white);border:1px solid var(--color-lighter-gray);border-radius:var(--radius-button);font-size:14px;color:var(--color-dark-gray)}.library-button:hover{background:var(--color-lighter-gray)}.arrow{font-size:10px;color:var(--color-light-gray)}.library-menu{position:absolute;top:100%;left:0;margin-top:4px;min-width:200px;background:var(--color-white);border:1px solid var(--color-lighter-gray);border-radius:var(--radius-card);box-shadow:var(--shadow-hover);z-index:200}.library-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;transition:background .15s}.library-item:hover{background:var(--color-lighter-gray)}.library-item.active{background:var(--color-lighter-gray);font-weight:600}.delete-btn{opacity:0;padding:2px 6px;background:transparent;color:var(--color-light-gray);font-size:16px}.library-item:hover .delete-btn{opacity:1}.delete-btn:hover{color:#999}.library-input-row{display:flex;gap:8px;padding:8px 16px;border-top:1px solid var(--color-lighter-gray)}.library-input-row input{flex:1;padding:6px 10px;font-size:13px}.library-input-row button{padding:6px 10px;background:var(--color-dark-gray);color:var(--color-white);border-radius:var(--radius-button)}.new-library-btn{display:block;width:100%;padding:10px 16px;text-align:left;background:transparent;color:var(--color-medium-gray);border-top:1px solid var(--color-lighter-gray)}.new-library-btn:hover{background:var(--color-lighter-gray);color:var(--color-dark-gray)}.zoom-controls{display:flex;align-items:center;gap:4px;margin-right:12px}.zoom-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-white);border:1px solid var(--color-lighter-gray);border-radius:var(--radius-button);font-size:16px;color:var(--color-dark-gray)}.zoom-btn:hover{background:var(--color-lighter-gray)}.zoom-btn.reset{width:auto;padding:0 8px;font-size:12px}.zoom-level{min-width:48px;text-align:center;font-size:12px;color:var(--color-medium-gray)}.sort-toggle{display:flex;background:var(--color-lighter-gray);border-radius:var(--radius-button);padding:2px}.sort-toggle button{padding:6px 12px;background:transparent;color:var(--color-medium-gray);font-size:13px;border-radius:var(--radius-button)}.sort-toggle button.active{background:var(--color-white);color:var(--color-dark-gray);box-shadow:var(--shadow-subtle)}.canvas{flex:1;position:relative;overflow:hidden;background-color:#fafafa;-webkit-user-select:none;user-select:none;width:100%;height:100%}.canvas-grid{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background-image:linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px);background-position:center center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;text-align:center;color:var(--color-medium-gray)}.empty-state h2{margin-bottom:8px;font-size:24px;color:var(--color-dark-gray)}.empty-state p{margin-bottom:24px}.chaos-canvas{position:absolute;top:0;left:0;width:10000px;height:10000px;pointer-events:none}.note-card{position:absolute;width:280px;padding:16px;background:var(--color-white);border:1px solid var(--color-lighter-gray);border-radius:var(--radius-card);box-shadow:var(--shadow-subtle);cursor:grab;transition:box-shadow .2s,width .2s,height .2s;-webkit-user-select:none;user-select:none;overflow:hidden;aspect-ratio:4 / 3;pointer-events:auto}.note-card:hover{box-shadow:var(--shadow-hover)}.note-card:active{cursor:grabbing}.note-card .note-title{font-size:16px;font-weight:600;color:var(--color-dark-gray);margin-bottom:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.note-card .note-content{font-size:14px;color:var(--color-medium-gray);line-height:1.6;white-space:pre-wrap;word-break:break-word}.axis-canvas{position:absolute;top:0;left:0;width:10000px;height:10000px;padding:40px;pointer-events:none}.axis-line{position:absolute;top:0;left:50%;bottom:0;width:1px;background:var(--color-light-gray);border-left:1px dashed var(--color-lighter-gray);transform:translate(-50%)}.axis-notes{display:flex;flex-direction:column;gap:24px;align-items:center;position:relative;z-index:1;padding-left:50%}.axis-card{position:relative;cursor:pointer;aspect-ratio:4 / 3}.editor-modal{width:95vw;height:90vh;max-width:1400px;padding:24px;display:flex;flex-direction:column}.editor-header{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.title-input{width:100%;padding:12px;font-size:18px;font-weight:600;border:1px solid var(--color-lighter-gray);border-radius:var(--radius-button)}.editor-actions{display:flex;gap:8px;justify-content:flex-end}.btn-danger{background:transparent;color:var(--color-medium-gray);border:1px solid var(--color-lighter-gray)}.btn-danger:hover{background:#f5f5f5;color:#999}.editor-body{flex:1;display:flex;min-height:0}.content-editor{width:100%;flex:1;padding:16px;font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.6;border:1px solid var(--color-lighter-gray);border-radius:var(--radius-card);resize:vertical}.preview-content{flex:1;padding:16px;border:1px solid var(--color-lighter-gray);border-radius:var(--radius-card);background:var(--color-white);overflow:auto}.preview-content h3{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-lighter-gray)}.preview-content pre{white-space:pre-wrap;word-break:break-word;font-family:inherit}.editor-hint{margin-top:12px;font-size:12px;color:var(--color-light-gray);text-align:center}@media(max-width:768px){.header{padding:0 16px}.header-left{gap:12px}.logo{font-size:16px}.sort-toggle{display:none}.note-card{width:240px}.editor-modal{width:95vw;padding:16px}}.context-menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999}.context-menu{position:fixed;background:var(--color-white);border:1px solid var(--color-lighter-gray);border-radius:var(--radius-card);box-shadow:var(--shadow-hover);z-index:1000;min-width:120px;padding:8px 0}.context-menu-title{padding:8px 16px;font-size:12px;color:var(--color-medium-gray);font-weight:600;border-bottom:1px solid var(--color-lighter-gray);margin-bottom:4px}.context-menu-item{padding:8px 16px;cursor:pointer;font-size:14px;color:var(--color-dark-gray);transition:background .15s}.context-menu-item:hover{background:var(--color-lighter-gray)}.context-menu-item.active{background:var(--color-lighter-gray);font-weight:600}.context-menu-item-danger{color:#d32f2f}.context-menu-separator{height:1px;background:var(--color-lighter-gray);margin:4px 0}.context-menu-submenu{position:relative}.context-menu-submenu-content{display:none;position:absolute;left:100%;top:0;background:var(--color-white);border:1px solid var(--color-lighter-gray);border-radius:var(--radius-card);box-shadow:var(--shadow-hover);min-width:100px;padding:4px 0}.context-menu-submenu:hover .context-menu-submenu-content{display:block}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-lightest-gray)}.auth-box{background:var(--color-white);padding:40px;border-radius:var(--radius-card);box-shadow:var(--shadow-hover);width:360px;text-align:center}.auth-box h1{font-size:28px;margin-bottom:8px;color:var(--color-black)}.auth-subtitle{color:var(--color-gray);margin-bottom:24px}.auth-tabs{display:flex;margin-bottom:24px;border-bottom:1px solid var(--color-lighter-gray)}.auth-tab{flex:1;padding:12px;background:none;border:none;cursor:pointer;font-size:14px;color:var(--color-gray);border-bottom:2px solid transparent;transition:all .2s}.auth-tab.active{color:var(--color-black);border-bottom-color:var(--color-black)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form input{padding:12px;border:1px solid var(--color-lighter-gray);border-radius:var(--radius-button);font-size:14px}.auth-form input:focus{outline:none;border-color:var(--color-gray)}.auth-error{color:#dc3545;font-size:14px;margin-bottom:16px;padding:8px;background:#ffe6e6;border-radius:var(--radius-button)}.user-info{display:flex;align-items:center;gap:12px}.username{font-size:14px;color:var(--color-gray)}:root{--color-black: #000000;--color-dark-gray: #333333;--color-medium-gray: #666666;--color-light-gray: #999999;--color-lighter-gray: #E5E5E5;--color-white: #FFFFFF;--color-bg: #FAFAFA;--shadow-subtle: 0 2px 8px rgba(0, 0, 0, .08);--shadow-hover: 0 4px 16px rgba(0, 0, 0, .12);--radius-card: 8px;--radius-button: 4px;--font-family: "Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-dark-gray);line-height:1.6;font-size:14px;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:600;color:var(--color-dark-gray)}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s ease}button:focus-visible{outline:2px solid var(--color-medium-gray);outline-offset:2px}input,textarea{font-family:inherit;border:1px solid var(--color-lighter-gray);border-radius:var(--radius-button);padding:8px 12px;font-size:14px;transition:border-color .2s ease}input:focus,textarea:focus{outline:none;border-color:var(--color-medium-gray)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-lighter-gray)}::-webkit-scrollbar-thumb{background:var(--color-light-gray);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-medium-gray)}.btn{padding:8px 16px;border-radius:var(--radius-button);font-size:14px;font-weight:500}.btn-primary{background:var(--color-dark-gray);color:var(--color-white)}.btn-primary:hover{background:var(--color-black)}.btn-secondary{background:var(--color-white);color:var(--color-dark-gray);border:1px solid var(--color-lighter-gray)}.btn-secondary:hover{background:var(--color-lighter-gray)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-white);border-radius:var(--radius-card);box-shadow:var(--shadow-hover);max-width:90vw;max-height:90vh;overflow:auto}
