:root{--bg-color: #f3f4f6;--text-dark: #1f2937;--text-light: #6b7280;--border-color: #e5e7eb;--note-yellow: #fef08a;--note-pink: #fbcfe8;--note-blue: #bfdbfe;--note-green: #bbf7d0;--note-orange: #ffedd5;--note-purple: #f3e8ff;--note-gray: #e5e7eb;--note-teal: #ccfbf1;--font-sans: "Inter", sans-serif;--font-hand: "Caveat", cursive;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--dot-color: #d1d5db}body.dark-mode{--bg-color: #111827;--text-dark: #f9fafb;--text-light: #9ca3af;--border-color: #374151;--dot-color: #1f2937}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-dark);overflow:hidden}#app{width:100vw;height:100vh;position:relative}.auth-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;display:flex;align-items:center;justify-content:center}.auth-overlay.hidden{display:none}.auth-modal{background:#fff;padding:2rem;border-radius:12px;box-shadow:var(--shadow-xl);width:100%;max-width:400px;text-align:center}.auth-modal h2{font-size:2rem;margin-bottom:.5rem}.auth-modal p{color:var(--text-light);margin-bottom:1.5rem}.auth-form{display:flex;flex-direction:column;gap:1rem}input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-family:var(--font-sans);margin-bottom:15px}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.btn.primary{background:#1f2937;color:#fff}.btn.primary:hover{background:#374151}.btn.secondary{background:#e5e7eb;color:#1f2937}.auth-buttons{display:flex;gap:1rem}.auth-buttons button{flex:1}.crypto-warning{font-size:.75rem;color:#ef4444;margin-top:1.5rem}.toolbar{position:absolute;top:0;left:0;width:100%;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;z-index:100;pointer-events:none}.toolbar>*{pointer-events:auto}.logo{font-weight:700;font-size:1.5rem}.tools{display:flex;gap:1rem;background:#fff;padding:.5rem;border-radius:8px;box-shadow:var(--shadow-md)}.add-note-btn{padding:.5rem 1rem;border:none;background:#1f2937;color:#fff;border-radius:4px;cursor:pointer;font-weight:600}.viewport{width:100%;height:100%;transform-origin:top left;cursor:grab;background-image:radial-gradient(var(--dot-color) 1px,transparent 1px);background-size:24px 24px;background-position:0 0}.viewport:active{cursor:grabbing}.canvas{width:100%;height:100%;position:relative}.sticky-note{position:absolute;width:250px;height:250px;padding:1rem;box-shadow:var(--shadow-md);cursor:grab;background-image:url('data:image/svg+xml;utf8,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noiseFilter"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noiseFilter)" opacity="0.05"/%3E%3C/svg%3E');display:flex;flex-direction:column}.sticky-note:active{cursor:grabbing}.sticky-note textarea{flex:1;background:transparent;border:none;resize:none;font-family:var(--font-hand);font-size:1.5rem;color:#1f2937;outline:none;pointer-events:auto}.note-actions{display:flex;justify-content:flex-end;pointer-events:auto}.btn-delete{background:transparent;border:none;cursor:pointer;font-size:1.2rem;opacity:.3;transition:opacity .2s}.sticky-note:hover .btn-delete{opacity:1}.note-yellow{background-color:var(--note-yellow)}.note-pink{background-color:var(--note-pink)}.note-blue{background-color:var(--note-blue)}.note-green{background-color:var(--note-green)}.note-orange{background-color:var(--note-orange)}.note-purple{background-color:var(--note-purple)}.note-gray{background-color:var(--note-gray)}.note-teal{background-color:var(--note-teal)}@media(max-width:640px){.toolbar{flex-direction:column;padding:1rem;gap:.75rem}.logo{width:100%;text-align:left;font-size:1.25rem}.tools{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:.5rem}.user-tools{position:absolute;top:1rem;right:1rem}.user-tools .btn{padding:.5rem .75rem;font-size:.875rem}.auth-modal{width:92%;padding:1.5rem}input,select{font-size:16px}.sticky-note{width:200px;height:200px}.sticky-note textarea{font-size:1.25rem}}
