.entry-form-container{background:transparent;border-radius:0;padding:0;box-shadow:none;max-width:100%}.entry-form-container h2{display:none}.entry-form{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-group label{font-weight:600;color:var(--text-primary);font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.form-group input[type=date]{padding:var(--spacing-md);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:1rem;background:var(--surface);color:var(--text-primary);transition:all .2s;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input[type=date]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #e1306c1a}.form-group textarea{padding:var(--spacing-md);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:1rem;background:var(--surface);color:var(--text-primary);resize:vertical;min-height:200px;line-height:1.6;transition:all .2s;font-family:inherit;width:100%}.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #e1306c1a}.form-group textarea::placeholder{color:var(--text-tertiary)}.form-group input[type=file]{display:none}.file-input-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);border:2px dashed var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;background:var(--background);gap:var(--spacing-sm);min-height:120px;-webkit-tap-highlight-color:transparent}.file-input-label:active{transform:scale(.98);border-color:var(--primary-color);background:#e1306c0d}.file-input-label:hover{border-color:var(--primary-color);background:#e1306c0d}.file-input-label:before{content:"📷";font-size:2.5rem}.file-input-label span{color:var(--text-secondary);font-size:.875rem;font-weight:500}.photo-preview{margin-top:var(--spacing-md);position:relative;width:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--background)}.photo-preview img{width:100%;display:block;aspect-ratio:1;object-fit:cover}.remove-photo{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#000000b3;color:#fff;border:none;border-radius:var(--radius-full);font-weight:600;font-size:.875rem;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s}.remove-photo:active{transform:scale(.95);background:#000000e6}.location-extraction-toggle{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--background);border:1px solid var(--border-light);border-radius:var(--radius-md)}.toggle-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-weight:500;color:var(--text-primary);font-size:.875rem;text-transform:none;letter-spacing:normal;margin-bottom:var(--spacing-xs)}.toggle-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--primary-color);flex-shrink:0}.toggle-label span{flex:1;-webkit-user-select:none;user-select:none}.toggle-hint{margin:var(--spacing-xs) 0 0 0;font-size:.75rem;color:var(--text-tertiary);line-height:1.4}.tag-input-container{display:flex;flex-direction:column;gap:var(--spacing-sm)}.tag-input-wrapper{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-sm);border:2px solid var(--border-light);border-radius:var(--radius-lg);background:var(--surface);min-height:48px;align-items:center;transition:all .2s}.tag-input-wrapper:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px #e1306c1a}.tag-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background:var(--primary-gradient);color:#fff;border-radius:var(--radius-full);font-size:.875rem;font-weight:600}.tag-remove{background:transparent;border:none;color:#fff;cursor:pointer;font-size:.875rem;line-height:1;padding:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s;-webkit-tap-highlight-color:transparent}.tag-remove:active{background:#ffffff4d}.tag-input{flex:1;min-width:120px;border:none;outline:none;background:transparent;font-size:.875rem;color:var(--text-primary);padding:var(--spacing-xs)}.tag-input::placeholder{color:var(--text-tertiary)}.tag-hint{margin:0;font-size:.75rem;color:var(--text-tertiary);font-style:italic}.submit-button{padding:var(--spacing-md) var(--spacing-xl);background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-full);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-md);width:100%;min-height:48px;position:sticky;bottom:calc(60px + var(--spacing-md) + var(--safe-area-bottom));z-index:10}.submit-button:active:not(:disabled){transform:scale(.98);box-shadow:var(--shadow-sm)}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (min-width: 768px){.entry-form-container{background:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow);margin:var(--spacing-xl) auto;max-width:600px}.entry-form-container h2{display:block;margin-bottom:var(--spacing-xl);color:var(--text-primary);font-size:1.5rem;font-weight:700}.entry-form{padding:0}.submit-button{position:static;width:auto;min-width:200px;margin:0 auto}.photo-preview img{max-width:400px;max-height:400px;margin:0 auto;display:block}}.comment-section{border-top:1px solid var(--border-light);padding:var(--spacing-md)}.comment-input-container{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.comment-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border-light);border-radius:var(--radius-full);font-size:.875rem;background:var(--surface);color:var(--text-primary);transition:all .2s}.comment-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #e1306c1a}.comment-input::placeholder{color:var(--text-tertiary)}.comment-submit-button{padding:var(--spacing-sm) var(--spacing-md);background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;min-width:60px;-webkit-tap-highlight-color:transparent}.comment-submit-button:active:not(:disabled){transform:scale(.95)}.comment-submit-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.comment-toggle{background:transparent;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;padding:var(--spacing-xs) 0;margin-bottom:var(--spacing-sm);-webkit-tap-highlight-color:transparent}.comment-toggle:active{opacity:.7}.comments-list{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.comment-item{display:flex;gap:var(--spacing-sm);align-items:flex-start}.comment-content{flex:1;min-width:0}.comment-author{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.comment-email{font-weight:600;font-size:.875rem;color:var(--text-primary)}.comment-time{font-size:.75rem;color:var(--text-tertiary)}.comment-text{font-size:.875rem;color:var(--text-primary);line-height:1.5;word-wrap:break-word}.comment-delete{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent;flex-shrink:0}.comment-delete:active{color:var(--error);transform:scale(.9)}.comment-delete svg{width:14px;height:14px;stroke-width:2}@media (min-width: 768px){.comment-section{padding:var(--spacing-lg)}}.entry-list-container{background:transparent;padding:0}.entry-list-container h2{display:none}.entries-grid{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-md) 0}.entry-card{background:var(--surface);border:1px solid var(--border-light);border-radius:0;padding:0;margin:0;transition:none;box-shadow:none}.entry-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm);gap:var(--spacing-sm)}.entry-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.entry-date{font-weight:600;color:var(--text-primary);font-size:.875rem;display:flex;align-items:center;gap:var(--spacing-sm)}.entry-date:before{content:"📅";font-size:1rem}.sync-badge{font-size:.625rem;padding:.25rem .5rem;background:var(--warning);color:#fff;border-radius:var(--radius-full);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.entry-delete-button{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent;min-width:32px;min-height:32px}.entry-delete-button:hover{background:#ff44441a;color:var(--error)}.entry-delete-button:active{transform:scale(.9);background:#f443}.entry-delete-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.entry-delete-button svg{width:18px;height:18px;stroke-width:2}.entry-content{color:var(--text-primary);line-height:1.6;padding:0 var(--spacing-md) var(--spacing-md);white-space:pre-wrap;word-wrap:break-word;font-size:.9375rem}.entry-photo{margin:0;width:100%;background:var(--background)}.entry-photo img{width:100%;display:block;border-radius:0;max-height:none;object-fit:cover;aspect-ratio:1}.entry-reactions{display:flex;gap:var(--spacing-lg);padding:var(--spacing-md);border-top:1px solid var(--border-light);align-items:center;min-height:48px}.reaction{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.875rem;color:var(--text-primary);font-weight:600;cursor:pointer;transition:transform .2s;-webkit-tap-highlight-color:transparent}.reaction:active{transform:scale(1.1)}.reaction-emoji{font-size:1.5rem;line-height:1}.reaction-count{font-size:.875rem}.reaction-placeholder{font-size:.75rem;color:var(--text-tertiary);font-style:italic}.loading,.empty-state{text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--spacing-md)}.empty-state h2{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:600}.empty-state p{color:var(--text-secondary);font-size:.875rem;max-width:280px}.empty-state:before{content:"✨";font-size:4rem;margin-bottom:var(--spacing-sm)}@media (min-width: 768px){.entry-list-container{background:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow);margin:var(--spacing-xl) auto;max-width:600px}.entry-list-container h2{display:block;margin-bottom:var(--spacing-xl);color:var(--text-primary);font-size:1.5rem;font-weight:700}.entry-card{border-radius:var(--radius-lg);border:1px solid var(--border-light);overflow:hidden;box-shadow:var(--shadow-sm)}.entry-photo img{border-radius:0}}.summary-container{background:var(--surface);border-radius:1rem;padding:2rem;box-shadow:var(--shadow)}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.summary-header h2{margin:0;color:var(--text-primary)}.week-selector{display:flex;align-items:center;gap:1rem}.week-selector label{font-weight:500;color:var(--text-secondary)}.week-selector input[type=week]{padding:.5rem;border:1px solid var(--border);border-radius:.5rem}.generate-button{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:.5rem;font-weight:500;cursor:pointer;transition:background .2s}.generate-button:hover:not(:disabled){background:var(--primary-dark)}.generate-button:disabled{opacity:.6;cursor:not-allowed}.summary-content{display:flex;flex-direction:column;gap:2rem}.summary-period{font-size:1.125rem;font-weight:600;color:var(--text-primary);text-align:center;padding:1rem;background:var(--background);border-radius:.5rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background:var(--background);padding:2rem;border-radius:.75rem;text-align:center;border:1px solid var(--border)}.stat-value{font-size:3rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem}.stat-label{font-size:1rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.photo-highlights,.top-reactions,.insights{background:var(--background);padding:1.5rem;border-radius:.75rem;border:1px solid var(--border)}.photo-highlights h3,.top-reactions h3,.insights h3{margin-bottom:1rem;color:var(--text-primary)}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.photos-grid img{width:100%;height:150px;object-fit:cover;border-radius:.5rem;box-shadow:var(--shadow)}.reactions-list{display:flex;gap:1rem;flex-wrap:wrap}.reaction-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--surface);border-radius:.5rem;border:1px solid var(--border)}.reaction-emoji{font-size:1.5rem}.reaction-count{font-weight:600;color:var(--text-primary)}.insights ul{list-style:none;padding:0}.insights li{padding:.75rem;margin-bottom:.5rem;background:var(--surface);border-left:3px solid var(--primary-color);border-radius:.25rem}.empty-summary{text-align:center;padding:3rem;color:var(--text-secondary)}@media (max-width: 768px){.summary-header{flex-direction:column;align-items:stretch}.week-selector{flex-direction:column}}.statistics-container{background:var(--surface);border-radius:1rem;padding:2rem;box-shadow:var(--shadow)}.statistics-container h2{margin-bottom:2rem;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card{background:var(--background);padding:2rem;border-radius:.75rem;text-align:center;border:1px solid var(--border);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-card.primary{border-color:var(--primary-color);background:linear-gradient(135deg,rgba(225,48,108,.15),var(--background))}.stat-card.success{border-color:var(--success);background:linear-gradient(135deg,rgba(0,200,81,.15),var(--background))}.stat-card.warning{border-color:var(--warning);background:linear-gradient(135deg,rgba(255,187,51,.15),var(--background))}.stat-icon{font-size:2.5rem;margin-bottom:.5rem}.stat-value{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.stat-label{font-size:.875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.activity-chart{background:var(--background);padding:2rem;border-radius:.75rem;border:1px solid var(--border)}.activity-chart h3{margin-bottom:1.5rem;color:var(--text-primary)}.chart-container{display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem;height:200px;padding:1rem 0;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-light) transparent;min-width:0}.chart-container::-webkit-scrollbar{height:6px}.chart-container::-webkit-scrollbar-track{background:transparent}.chart-container::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}.chart-bar{flex:1 1 0;display:flex;flex-direction:column;align-items:center;height:100%;gap:.25rem;min-width:0;max-width:100%}.bar-fill{width:100%;background:var(--primary-color);border-radius:.25rem .25rem 0 0;min-height:5%;transition:background .2s;flex-shrink:0}.bar-fill:hover{background:var(--primary-dark)}.bar-label{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0;min-width:fit-content}@media (max-width: 768px){.statistics-container{padding:1rem}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.stat-card{padding:1.5rem}.activity-chart{padding:1rem}.chart-container{gap:.25rem;padding:.5rem 0}.bar-label{font-size:.625rem}}.gallery-container{padding:var(--spacing-md);max-width:100%}.gallery-header{margin-bottom:var(--spacing-lg)}.gallery-header h2{margin:0 0 var(--spacing-xs) 0;font-size:1.5rem;font-weight:700;color:var(--text-primary);background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gallery-count{margin:0;font-size:.875rem;color:var(--text-secondary)}.gallery-filters{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.filter-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.tag-filter{padding:var(--spacing-xs) var(--spacing-md);background:var(--background);border:2px solid var(--border-light);border-radius:var(--radius-full);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.tag-filter:active{transform:scale(.95)}.tag-filter.active{background:var(--primary-gradient);color:#fff;border-color:transparent}.clear-filters{padding:var(--spacing-xs) var(--spacing-md);background:transparent;border:none;color:var(--primary-color);font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:underline;-webkit-tap-highlight-color:transparent}.clear-filters:active{opacity:.7}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:0 calc(-1 * var(--spacing-md));width:calc(100% + 2 * var(--spacing-md))}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;background:var(--background);cursor:pointer;-webkit-tap-highlight-color:transparent}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.gallery-item:active img{transform:scale(.95)}.gallery-item-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,rgba(0,0,0,.4) 0%,transparent 30%,transparent 70%,rgba(0,0,0,.6) 100%);opacity:0;transition:opacity .2s;display:flex;flex-direction:column;justify-content:space-between;padding:var(--spacing-sm)}.gallery-item:active .gallery-item-overlay,.gallery-item:hover .gallery-item-overlay{opacity:1}.gallery-item-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.gallery-tag,.gallery-tag-more{background:#ffffffe6;color:var(--text-primary);padding:.125rem var(--spacing-xs);border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gallery-item-bottom{display:flex;justify-content:space-between;align-items:center;width:100%}.gallery-item-date{color:#fff;font-size:.75rem;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5)}.gallery-item-delete{background:#f44c;border:none;color:#fff;border-radius:var(--radius-full);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-tap-highlight-color:transparent}.gallery-item-delete:active{transform:scale(.9);background:#f44}.gallery-item-delete:disabled{opacity:.6;cursor:not-allowed;transform:none}.gallery-item-delete svg{width:14px;height:14px;stroke-width:2.5}.gallery-loading,.gallery-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:var(--spacing-xl);text-align:center}.gallery-empty .empty-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.gallery-empty h2{margin:0 0 var(--spacing-sm) 0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.gallery-empty p{margin:0;color:var(--text-secondary);font-size:.875rem;max-width:280px}.photo-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .2s ease-out;overflow-y:auto}.photo-modal-content{position:relative;max-width:100%;max-height:90vh;display:flex;flex-direction:column;animation:slideUpModal .3s ease-out}.photo-modal-close{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);background:#000000b3;color:#fff;border:none;border-radius:var(--radius-full);width:40px;height:40px;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s;-webkit-tap-highlight-color:transparent}.photo-modal-close:active{transform:scale(.9);background:#000000e6}.photo-modal-content img{width:100%;max-width:100%;max-height:70vh;object-fit:contain;border-radius:var(--radius-lg);background:var(--background)}.photo-modal-info{background:var(--surface);padding:var(--spacing-lg);border-radius:var(--radius-lg);margin-top:var(--spacing-md);max-width:100%}.photo-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.photo-modal-date{font-size:.875rem;font-weight:600;color:var(--text-secondary)}.photo-modal-delete{padding:var(--spacing-xs) var(--spacing-md);background:var(--error);color:#fff;border:none;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.photo-modal-delete:active:not(:disabled){transform:scale(.95);background:#c00}.photo-modal-delete:disabled{opacity:.6;cursor:not-allowed;transform:none}.photo-modal-content-text{font-size:1rem;line-height:1.6;color:var(--text-primary);margin-bottom:var(--spacing-md);white-space:pre-wrap;word-wrap:break-word}.photo-modal-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.photo-modal-tag{padding:var(--spacing-xs) var(--spacing-md);background:var(--primary-gradient);color:#fff;border-radius:var(--radius-full);font-size:.875rem;font-weight:600}@media (min-width: 768px){.gallery-container{max-width:800px;margin:0 auto;padding:var(--spacing-xl)}.gallery-grid{margin:0;width:100%;gap:var(--spacing-md)}.gallery-item:hover .gallery-item-overlay{opacity:1}.photo-modal-content{max-width:800px}}.map-container{display:flex;flex-direction:column;height:100%;min-height:500px}.map-header{padding:var(--spacing-md);background:var(--surface);border-bottom:1px solid var(--border-light)}.map-header h2{margin:0 0 var(--spacing-xs) 0;color:var(--text-primary);font-size:1.5rem}.map-subtitle{margin:0;color:var(--text-secondary);font-size:.875rem}.map-view{flex:1;width:100%;min-height:500px;background:var(--background);border-radius:var(--radius-md);overflow:hidden}.map-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;min-height:400px}.map-empty-state h2{color:var(--text-primary);margin-bottom:var(--spacing-md)}.map-empty-state p{color:var(--text-secondary);margin-bottom:var(--spacing-sm);max-width:500px}:global(.leaflet-container){background:var(--background);color:var(--text-primary)}:global(.leaflet-popup-content-wrapper){background:var(--surface);color:var(--text-primary);border-radius:var(--radius-md)}:global(.leaflet-popup-tip){background:var(--surface)}@media (prefers-color-scheme: dark){:root:not(.light-mode) :global(.leaflet-container){background:var(--background)}:root:not(.light-mode) :global(.leaflet-tile-container img){filter:brightness(.8) invert(1) hue-rotate(180deg)}:root:not(.light-mode) :global(.leaflet-control){background:var(--surface);color:var(--text-primary)}:root:not(.light-mode) :global(.leaflet-bar a){background-color:var(--surface);color:var(--text-primary);border-color:var(--border)}:root:not(.light-mode) :global(.leaflet-bar a:hover){background-color:var(--surface-elevated)}}:root.dark-mode :global(.leaflet-container){background:var(--background)}:root.dark-mode :global(.leaflet-tile-container img){filter:brightness(.8) invert(1) hue-rotate(180deg)}:root.dark-mode :global(.leaflet-control){background:var(--surface);color:var(--text-primary)}:root.dark-mode :global(.leaflet-bar a){background-color:var(--surface);color:var(--text-primary);border-color:var(--border)}:root.dark-mode :global(.leaflet-bar a:hover){background-color:var(--surface-elevated)}@media (max-width: 768px){.map-container,.map-view{min-height:400px}.map-header{padding:var(--spacing-sm) var(--spacing-md)}.map-header h2{font-size:1.25rem}}.settings-container{padding:var(--spacing-md);max-width:600px;margin:0 auto}.settings-container h2{margin-bottom:var(--spacing-lg);color:var(--text-primary);font-size:1.5rem}.settings-saved-message{padding:var(--spacing-sm) var(--spacing-md);background:var(--success);color:#fff;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:.875rem;font-weight:600;text-align:center;animation:fadeInOut 2s ease-in-out}@keyframes fadeInOut{0%,to{opacity:0;transform:translateY(-10px)}10%,90%{opacity:1;transform:translateY(0)}}.settings-section{background:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--border-light)}.settings-section h3{margin:0 0 var(--spacing-md) 0;color:var(--text-primary);font-size:1.125rem;font-weight:600}.setting-item{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--border-light)}.setting-item:last-child{border-bottom:none}.setting-info{flex:1;min-width:0}.setting-label{display:block;font-weight:600;color:var(--text-primary);font-size:.875rem;margin-bottom:var(--spacing-xs)}.setting-description{margin:0;font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.toggle-switch{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0;margin-top:2px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border);transition:.3s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:var(--surface-elevated);transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background:var(--primary-gradient)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #e1306c33}.reset-button{padding:var(--spacing-md) var(--spacing-lg);background:transparent;color:var(--text-secondary);border:2px solid var(--border);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%;-webkit-tap-highlight-color:transparent}.reset-button:active{transform:scale(.98);border-color:var(--error);color:var(--error)}.dark-mode-selector{display:flex;gap:var(--spacing-xs);background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);padding:2px;flex-shrink:0}.dark-mode-option{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;min-width:60px}.dark-mode-option:active{transform:scale(.95)}.dark-mode-option.active{background:var(--primary-gradient);color:#fff;font-weight:600}@media (max-width: 768px){.settings-container{padding:var(--spacing-sm)}.settings-section{padding:var(--spacing-md)}.setting-item{flex-direction:column;gap:var(--spacing-sm)}.toggle-switch{align-self:flex-start}}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:var(--spacing-lg);background:var(--background);padding-top:calc(var(--spacing-xl) + var(--safe-area-top));padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom))}.auth-card{background:var(--surface);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-lg);width:100%;max-width:400px;border:1px solid var(--border-light)}.auth-card h2{margin-bottom:var(--spacing-sm);color:var(--text-primary);text-align:center;font-size:1.75rem;font-weight:700;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--spacing-xl);font-size:.9375rem}.auth-error{background:#ff44441a;color:var(--error);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:.875rem;border:1px solid rgba(255,68,68,.2)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group input[type=email],.form-group input[type=password]{width:100%;padding:var(--spacing-md);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:1rem;background:var(--surface);color:var(--text-primary);transition:all .2s}.form-group input[type=email]:focus,.form-group input[type=password]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #e1306c1a}.auth-button{width:100%;padding:var(--spacing-md);background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-full);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-md);min-height:48px}.auth-button:active:not(:disabled){transform:scale(.98);box-shadow:var(--shadow-sm)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.google-button{background:var(--surface);color:var(--text-primary);border:2px solid var(--border);box-shadow:var(--shadow-sm)}.google-button:active:not(:disabled){background:var(--background);transform:scale(.98)}.auth-divider{display:flex;align-items:center;text-align:center;margin:var(--spacing-lg) 0;color:var(--text-secondary);font-size:.875rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-light)}.auth-divider span{padding:0 var(--spacing-md)}.auth-switch{text-align:center;margin-top:var(--spacing-lg);color:var(--text-secondary);font-size:.875rem}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;text-decoration:none;font-size:inherit;font-weight:600;padding:0;margin-left:.25rem}.link-button:active{opacity:.8}.install-prompt{position:fixed;bottom:calc(60px + var(--spacing-md) + var(--safe-area-bottom));left:var(--spacing-md);right:var(--spacing-md);z-index:1000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.install-prompt-content{background:var(--surface);border:2px solid var(--primary-color);border-radius:var(--radius-xl);padding:var(--spacing-md);box-shadow:var(--shadow-xl);display:flex;align-items:center;gap:var(--spacing-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.install-icon{font-size:2rem;flex-shrink:0}.install-text{flex:1;min-width:0}.install-text h3{margin:0 0 var(--spacing-xs) 0;font-size:1rem;font-weight:700;color:var(--text-primary)}.install-text p{margin:0;font-size:.875rem;color:var(--text-secondary)}.install-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.install-button{padding:var(--spacing-sm) var(--spacing-md);background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-full);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);white-space:nowrap}.install-button:active{transform:scale(.95);box-shadow:none}.install-help-button{padding:var(--spacing-sm) var(--spacing-md);background:transparent;color:var(--primary-color);border:2px solid var(--primary-color);border-radius:var(--radius-full);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s;white-space:nowrap}.install-help-button:active{transform:scale(.95);background:#e1306c1a}.install-dismiss{background:transparent;border:none;color:var(--text-tertiary);font-size:1.25rem;cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s;-webkit-tap-highlight-color:transparent}.install-dismiss:active{color:var(--text-primary)}.install-instructions-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);animation:fadeIn .2s ease-out;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.install-instructions{background:var(--surface);border-radius:var(--radius-xl);padding:var(--spacing-xl);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);position:relative;animation:slideUpModal .3s ease-out}@keyframes slideUpModal{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.instructions-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:transparent;border:none;color:var(--text-tertiary);font-size:1.5rem;cursor:pointer;padding:var(--spacing-xs);line-height:1;transition:color .2s;-webkit-tap-highlight-color:transparent;z-index:10}.instructions-close:active{color:var(--text-primary)}.install-instructions h2{margin:0 0 var(--spacing-xl) 0;font-size:1.5rem;font-weight:700;color:var(--text-primary);text-align:center;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.instructions-content{margin-bottom:var(--spacing-xl)}.instruction-step{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);align-items:flex-start}.step-number{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-full);background:var(--primary-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem}.step-content{flex:1;padding-top:.25rem}.step-content p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--text-primary)}.step-content strong{color:var(--primary-color);font-weight:600}.ios-icon,.android-icon,.desktop-icon{display:inline-block;font-size:1.25rem;margin:0 .25rem;vertical-align:middle}.instruction-visual{margin-top:var(--spacing-xl);padding:var(--spacing-lg);background:var(--background);border-radius:var(--radius-lg);border:2px dashed var(--border-light)}.visual-box{text-align:center}.visual-box p{margin:0;font-size:1rem;color:var(--text-primary);font-weight:500}.instructions-benefits{margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:2px solid var(--border-light)}.instructions-benefits h3{margin:0 0 var(--spacing-md) 0;font-size:1.125rem;font-weight:700;color:var(--text-primary)}.instructions-benefits ul{margin:0;padding-left:var(--spacing-lg);list-style:none}.instructions-benefits li{margin-bottom:var(--spacing-sm);font-size:.9375rem;color:var(--text-secondary);line-height:1.6;position:relative}.instructions-benefits li:before{content:"";position:absolute;left:calc(-1 * var(--spacing-lg));top:.5em;width:6px;height:6px;border-radius:50%;background:var(--primary-color)}@media (min-width: 768px){.install-prompt{bottom:var(--spacing-xl);left:auto;right:var(--spacing-xl);max-width:400px}.install-instructions{max-width:600px;padding:var(--spacing-2xl)}}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--background);padding-bottom:calc(60px + var(--safe-area-bottom))}.navbar{background:var(--surface);border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;padding-top:var(--safe-area-top)}.nav-container{max-width:100%;margin:0 auto;padding:var(--spacing-md) var(--spacing-lg);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.nav-title{font-size:1.25rem;font-weight:700;background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:-.02em}.nav-links{display:none}.nav-right,.sync-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.user-info{display:none}.user-email{font-size:.75rem;color:var(--text-secondary)}.logout-button{display:none}.sync-button{padding:var(--spacing-sm) var(--spacing-md);background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-full);font-weight:600;font-size:.875rem;transition:all .2s;box-shadow:var(--shadow-sm);min-width:60px}.sync-button:active:not(:disabled){transform:scale(.95);box-shadow:none}.sync-button:disabled{opacity:.6;cursor:not-allowed}.sync-time{display:none}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border-light);padding:var(--spacing-sm) var(--spacing-md);padding-bottom:calc(var(--spacing-sm) + var(--safe-area-bottom));z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;box-shadow:0 -2px 10px #0000000d}.bottom-nav-links{display:flex;justify-content:space-around;align-items:center;max-width:100%}.bottom-nav-link{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:var(--text-secondary);font-size:.625rem;font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);transition:all .2s;min-width:0;flex:1;gap:.25rem;-webkit-tap-highlight-color:transparent}.bottom-nav-link:active{transform:scale(.95);background:var(--background)}.bottom-nav-link.active{color:var(--primary-color)}.bottom-nav-link svg{width:24px;height:24px;stroke-width:2}.bottom-nav-link.active svg{stroke:var(--primary-color)}.main-content{flex:1;width:100%;max-width:100%;margin:0;padding:0;padding-bottom:var(--spacing-md)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 120px);gap:var(--spacing-lg);padding:var(--spacing-xl)}.spinner{width:48px;height:48px;border:3px solid var(--border-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container p{color:var(--text-secondary);font-size:.875rem}@media (min-width: 768px){.app{padding-bottom:0}.bottom-nav{display:none}.nav-links{display:flex;gap:var(--spacing-lg);flex:1;justify-content:center}.nav-links a{text-decoration:none;color:var(--text-secondary);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all .2s;font-size:.875rem}.nav-links a:hover,.nav-links a.active{color:var(--primary-color);background:var(--background)}.user-info{display:flex;align-items:center;gap:var(--spacing-md)}.user-email{display:block}.logout-button{display:block;padding:var(--spacing-sm) var(--spacing-md);background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-md);font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s}.logout-button:hover{background:var(--background);color:var(--text-primary)}.sync-time{display:block}.main-content{max-width:600px;margin:0 auto;padding:var(--spacing-xl)}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #E1306C;--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--accent-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--warm-gradient: linear-gradient(135deg, #fa709a 0%, #fee140 100%);--background: #fafafa;--surface: #ffffff;--surface-elevated: #ffffff;--text-primary: #262626;--text-secondary: #8e8e8e;--text-tertiary: #c7c7c7;--border: #dbdbdb;--border-light: #efefef;--success: #00c851;--warning: #ffbb33;--error: #ff4444;--info: #33b5e5;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--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);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--safe-area-top: env(safe-area-inset-top);--safe-area-bottom: env(safe-area-inset-bottom)}@media (prefers-color-scheme: dark){:root:not(.light-mode){--background: #0a0a0a;--surface: #1a1a1a;--surface-elevated: #252525;--text-primary: #f5f5f5;--text-secondary: #a8a8a8;--text-tertiary: #6e6e6e;--border: #2a2a2a;--border-light: #1f1f1f;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .4);--success: #00e676;--warning: #ffc107;--error: #ff5252;--info: #40c4ff}}:root.dark-mode{--background: #0a0a0a;--surface: #1a1a1a;--surface-elevated: #252525;--text-primary: #f5f5f5;--text-secondary: #a8a8a8;--text-tertiary: #6e6e6e;--border: #2a2a2a;--border-light: #1f1f1f;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .4), 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .4);--success: #00e676;--warning: #ffc107;--error: #ff5252;--info: #40c4ff}:root.light-mode{--background: #fafafa;--surface: #ffffff;--surface-elevated: #ffffff;--text-primary: #262626;--text-secondary: #8e8e8e;--text-tertiary: #c7c7c7;--border: #dbdbdb;--border-light: #efefef;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--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);--success: #00c851;--warning: #ffbb33;--error: #ff4444;--info: #33b5e5}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary);line-height:1.5;font-size:14px;-webkit-text-size-adjust:100%;overscroll-behavior-y:contain}html,body{overflow-x:hidden;width:100%;position:relative}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}input,textarea{font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}html{scroll-behavior:smooth}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}
