:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-glass: rgba(30, 30, 60, .6);--text-primary: #ffffff;--text-secondary: #a0a0c0;--accent-primary: #6c5ce7;--accent-secondary: #00cec9;--accent-gradient: linear-gradient(135deg, #6c5ce7, #00cec9);--shadow: 0 8px 32px rgba(0, 0, 0, .4);--radius: 16px;--radius-sm: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}.glass-card{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{padding:12px 24px;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:var(--accent-gradient);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 20px #6c5ce766}.btn-secondary{background:transparent;border:2px solid var(--accent-primary);color:var(--accent-primary)}.btn-secondary:hover{background:var(--accent-primary);color:#fff}input,textarea{width:100%;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;transition:border-color .3s ease}input:focus,textarea:focus{outline:none;border-color:var(--accent-primary)}input::placeholder,textarea::placeholder{color:var(--text-secondary)}.tag-chip{display:inline-block;padding:6px 14px;background:#6c5ce733;border:1px solid var(--accent-primary);border-radius:20px;font-size:.85rem;color:var(--accent-primary);cursor:pointer;transition:all .2s ease}.tag-chip:hover,.tag-chip.active{background:var(--accent-primary);color:#fff}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.map-wrapper{position:relative;flex:1;min-height:300px}.map-wrapper>div:first-child{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:0!important;height:100%!important;width:100%!important}.map-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;pointer-events:none;opacity:.8}.map-crosshair svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.map-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:400px;background:var(--bg-secondary);color:var(--text-secondary);text-align:center;padding:40px}.map-error h3{color:#ffd93d;margin-bottom:16px}.map-error code{background:#ffffff1a;padding:2px 8px;border-radius:4px}.map-error pre{background:#0000004d;padding:12px 20px;border-radius:8px;margin-top:12px;font-size:.9rem}.info-window{padding:8px;min-width:180px}.info-window h4{margin:0 0 8px;color:#333;font-size:1rem}.info-address{font-size:.8rem;color:#666;margin-bottom:8px}.info-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.info-tag{padding:2px 8px;background:#6c5ce7;color:#fff;border-radius:12px;font-size:.7rem}.info-actions{display:flex;flex-direction:column;gap:6px}.nav-btn{padding:8px 12px;border:none;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.nav-btn.google{background:#4285f4;color:#fff}.nav-btn.google:hover{background:#3367d6}.nav-btn.apple{background:#333;color:#fff}.nav-btn.apple:hover{background:#555}.nav-btn.delete{background:#ff6b6b;color:#fff}.nav-btn.delete:hover{background:#ee5a5a}.tag-filter{display:flex;gap:8px;padding:12px 16px;overflow-x:auto;background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);scrollbar-width:none}.tag-filter::-webkit-scrollbar{display:none}.tag-filter .tag-chip{flex-shrink:0;white-space:nowrap}.bookmark-list{padding:16px;overflow-y:auto;max-height:40vh}.list-title{font-size:1rem;color:var(--text-secondary);margin-bottom:12px}.list-items{display:flex;flex-direction:column;gap:12px}.bookmark-item{display:flex;align-items:flex-start;justify-content:space-between;padding:14px}.bookmark-info{flex:1;min-width:0}.bookmark-info h4{font-size:1rem;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmark-address{font-size:.75rem;color:var(--accent-secondary);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bookmark-coords{font-size:.7rem;color:var(--text-secondary);margin-bottom:8px;opacity:.7}.bookmark-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.mini-tag{padding:2px 8px;background:#6c5ce733;border-radius:10px;font-size:.7rem;color:var(--accent-primary)}.bookmark-actions{display:flex;gap:8px}.action-btn{padding:6px 10px;border:none;border-radius:6px;font-size:.7rem;cursor:pointer;transition:all .2s}.action-btn.google{background:#4285f433;color:#4285f4}.action-btn.google:hover{background:#4285f4;color:#fff}.action-btn.apple{background:#ffffff1a;color:var(--text-primary)}.action-btn.apple:hover{background:#fff3}.action-btn.share{background:#6c5ce733;color:var(--accent-primary)}.action-btn.share:hover{background:var(--accent-primary);color:#fff}.action-btn.share.copied{background:#00c85333;color:#00c853}.delete-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:4px;opacity:.6;transition:opacity .2s,transform .2s}.delete-btn:hover{opacity:1;transform:scale(1.1)}.empty-state,.loading-state,.error-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-icon{font-size:3rem;display:block;margin-bottom:12px}.empty-hint,.error-hint{font-size:.85rem;margin-top:8px;opacity:.7}.loading-state{display:flex;align-items:center;justify-content:center;gap:8px}.loading-state:before{content:"";width:16px;height:16px;border:2px solid var(--accent-primary);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fab{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:var(--accent-gradient);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px #6c5ce780;z-index:1500;transition:transform .2s,box-shadow .2s}.fab:hover{transform:scale(1.1);box-shadow:0 6px 30px #6c5ce799}.fab:active{transform:scale(.95)}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal{width:100%;max-width:400px;padding:24px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{font-size:1.25rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:4px;line-height:1}.modal-close:hover{color:var(--text-primary)}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:.9rem;color:var(--text-secondary)}.location-preview{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#6c5ce71a;border:1px solid var(--accent-primary);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-secondary);margin-bottom:8px;cursor:pointer;transition:background .2s}.location-preview:hover{background:#6c5ce733}.preview-link{margin-left:auto;color:var(--accent-secondary);font-size:.75rem}.address-note{font-size:.8rem;color:var(--text-secondary);margin-bottom:16px;opacity:.8}.error-message{color:#ff6b6b;font-size:.85rem;margin-bottom:16px}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-actions .btn{flex:1}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg-primary)}.login-card{max-width:400px;width:100%;padding:40px;text-align:center}.login-logo{width:100px;height:100px;margin-bottom:16px}.login-header h1{font-size:2rem;margin-bottom:12px;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-header p{color:var(--text-secondary);font-size:.95rem;margin-bottom:32px}.login-features{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.feature{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--text-secondary)}.feature span:first-child{font-size:1.2rem}.google-login-btn{width:100%;padding:14px 24px;background:#fff;color:#333;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:all .2s}.google-login-btn:hover{transform:translateY(-2px);box-shadow:0 4px 20px #fff3}.divider{display:flex;align-items:center;margin:20px 0;color:var(--text-secondary);font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.divider span{padding:0 16px}.email-login-btn{width:100%;padding:14px 24px;background:transparent;color:var(--text-primary);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.email-login-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.guest-login-btn{width:100%;margin-top:12px;padding:14px 24px;background:transparent;color:var(--text-secondary);border:1px dashed rgba(255,255,255,.2);border-radius:var(--radius-sm);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.guest-login-btn:hover:not(:disabled){background:#ffffff0d;border-color:#ffffff4d;color:var(--text-primary)}.guest-login-btn:disabled{opacity:.7;cursor:not-allowed}.guest-note{margin-top:12px;font-size:.75rem;color:var(--text-secondary);opacity:.6}.email-form{display:flex;flex-direction:column;gap:16px}.email-info{color:var(--text-secondary);font-size:.9rem}.email-form input{width:100%;padding:14px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem}.email-form input:focus{outline:none;border-color:var(--accent-primary)}.email-submit-btn{width:100%;padding:14px 24px;background:var(--accent-gradient);color:#fff;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.email-submit-btn:hover:not(:disabled){transform:translateY(-2px)}.email-submit-btn:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{margin-top:16px;padding:10px 20px;background:transparent;color:var(--text-secondary);border:none;font-size:.9rem;cursor:pointer;transition:color .2s}.btn-secondary:hover{color:var(--text-primary)}.email-sent-info{background:#6c5ce71a;border:1px solid var(--accent-primary);border-radius:var(--radius-sm);padding:20px;margin-bottom:24px}.email-sent-info p{color:var(--text-secondary);margin:8px 0;font-size:.9rem}.email-sent-info p:first-child{font-size:1rem;color:var(--text-primary)}.login-loading{color:var(--text-secondary)}.auth-error{background:#ff6b6b33;color:#ff6b6b;padding:10px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:.85rem}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);position:relative;z-index:1000;flex-shrink:0}.header h1{font-size:1.5rem;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{font-size:.85rem;color:var(--text-secondary)}.logout-btn{background:#ffffff1a;border:none;padding:6px 10px;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:1rem;transition:all .2s}.logout-btn:hover{background:#fff3;color:var(--text-primary)}.loading-app{align-items:center;justify-content:center}.loading-spinner{color:var(--text-secondary)}
