:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #ff7f00;--primary-orange: #ff7f00;--primary-orange-dark: #e56f00;--secondary-blue: #2196f3;--secondary-blue-dark: #1976d2;--success-green: #4caf50;--success-green-dark: #388e3c;--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-sidebar: #f5f6fa;--text-primary: #212529;--text-secondary: #6c757d;--text-inverse: #ffffff;--border-light: #e9ecef;--shadow-md: 0 .5rem 1rem rgba(0, 0, 0, .15);--shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--navbar-height: 64px}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-sidebar: #242424;--text-primary: #ffffff;--text-secondary: #b3b3b3;--text-inverse: #000000;--border-light: #404040;--shadow-md: 0 .5rem 1rem rgba(0, 0, 0, .4);--shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .5)}html,body{margin:0;padding:0;width:100%;height:100%;overflow-x:hidden;background-color:var( --bg-primary );color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .2s ease,color .2s ease}#root{width:100%;height:100%}.app{min-height:100vh;width:100vw;max-width:100%;background-color:var(--bg-primary)}@media (max-width: 768px){.app{height:100vh;overflow:hidden;position:relative}body{overflow:hidden;position:fixed;width:100%;height:100%;-webkit-overflow-scrolling:touch;overscroll-behavior:none}}button{border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit;font-size:16px}button:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var( --primary-orange );color:var(--text-inverse);padding:12px 24px;font-size:16px}.btn-primary:hover:not(:disabled){background-color:var( --primary-orange-dark )}@media (max-width: 768px){.btn-primary{padding:14px 20px;font-size:16px;min-height:44px}}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);padding:10px 20px;font-size:14px}.btn-secondary:hover:not(:disabled){background-color:var(--border-light)}input,textarea{border:1px solid var(--border-light);border-radius:8px;padding:12px;font-size:16px;background-color:var(--bg-primary);color:var(--text-primary);font-family:inherit;transition:border-color .2s ease;-webkit-appearance:none;appearance:none}input:focus,textarea:focus{outline:none;border-color:var(--primary-orange);box-shadow:0 0 0 3px #ff7f001a}@media (max-width: 768px){input,textarea{padding:14px 12px;font-size:16px;min-height:44px}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;margin:0;background:linear-gradient(135deg,var(--primary-orange),var(--primary-orange-dark));border-bottom:1px solid var(--primary-orange-dark);box-shadow:var(--shadow-md);position:fixed;top:0;left:0;right:0;z-index:1000;width:100%;box-sizing:border-box;height:var( --navbar-height )}@media (max-width: 768px){.navbar{padding:.75rem 1rem;height:56px}:root{--navbar-height: 56px}}.navbar-left{display:flex;align-items:center;gap:20px}@media (max-width: 768px){.navbar-left{gap:12px}}.navbar-center{display:flex;align-items:center;gap:0;position:absolute;left:50%;transform:translate(-50%);height:100%}.nav-button{background:none;border:none;color:var(--text-inverse);font-size:18px;font-weight:600;padding:0 32px;height:100%;cursor:pointer;transition:all .3s ease;border-radius:0;display:flex;align-items:center;justify-content:center;min-width:120px;position:relative}@media (max-width: 768px){.nav-button{font-size:16px;padding:0 16px;min-width:80px}}@media (max-width: 480px){.nav-button{font-size:14px;padding:0 12px;min-width:60px}}.nav-button:before{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background-color:var(--text-inverse);transform:scaleX(0);transition:transform .3s ease}.nav-button:hover{background-color:#ffffff1a;color:var(--text-inverse)}.nav-button.active:before{transform:scaleX(1)}.nav-button.active{background-color:#fff3;color:var(--text-inverse)}.nav-button.active:hover{background-color:#ffffff4d}.navbar-right{display:flex;align-items:center;gap:16px}.logo{font-size:1.5rem;font-weight:700;color:var(--text-inverse);text-decoration:none;cursor:pointer;transition:all .3s ease}.logo:hover{color:#ffffffe6;transform:scale(1.05)}@media (max-width: 768px){.logo{font-size:1.3rem}.logo:hover{color:var(--text-inverse);transform:none}.logo:active{color:#ffffffe6;transform:scale(1.05);transition:all .1s ease}.logo.clicked{color:#ffffffe6;transform:scale(1.05);animation:logoClickFeedback .5s ease-out}}@keyframes logoClickFeedback{0%{transform:scale(1.05)}to{transform:scale(1)}}@media (max-width: 480px){.logo{font-size:1.1rem}}.profile-dropdown{position:relative}.profile-icon{width:42px;height:42px;background-color:#fff3;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:var(--text-inverse)}.profile-icon:hover{background-color:#ffffff4d;transform:scale(1.05)}.profile-icon span{font-size:1rem}.profile-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center}.profile-avatar-icon{font-size:1rem;display:flex;align-items:center;justify-content:center}@media (max-width: 768px){.profile-icon{width:38px;height:38px}.profile-icon span,.profile-avatar-icon{font-size:.9rem}}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;box-shadow:var(--shadow-lg);min-width:220px;z-index:1000;overflow:hidden}.dropdown-item{width:100%;padding:16px 20px;background:none;border:none;text-align:left;cursor:pointer;font-size:15px;color:var(--text-primary);transition:background-color .2s ease;display:flex;align-items:center;gap:10px}.dropdown-item:hover{background-color:var(--bg-secondary)}.dropdown-item:not(:last-child){border-bottom:1px solid var(--border-light)}.dropdown-toggle-container{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border-light);background-color:var( --bg-secondary )}.toggle-label{font-size:13px;color:var(--text-primary);font-weight:500}.theme-toggle{position:relative;width:40px;height:22px;background-color:#e5e7eb;border:none;border-radius:11px;cursor:pointer;transition:all .3s ease;padding:1px}.theme-toggle.active{background-color:var( --primary-orange )}.toggle-slider{position:absolute;top:1px;left:1px;width:20px;height:20px;background-color:#fff;border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0003}.theme-toggle.active .toggle-slider{transform:translate(18px)}.toggle-icon{font-size:10px;transition:all .3s ease}[data-theme=dark] .theme-toggle{background-color:#374151}[data-theme=dark] .theme-toggle.active{background-color:var( --primary-orange )}[data-theme=dark] .toggle-slider{background-color:#f9fafb}.main-content{padding:0;width:100%;height:100vh;padding-top:var(--navbar-height);background-color:var(--bg-primary);transition:background-color .3s ease;box-sizing:border-box;display:flex;flex-direction:column}@media (max-width: 768px){.main-content{height:calc(100vh - var(--navbar-height))}}.home-view{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:40px 20px}.home-content{text-align:center;max-width:600px}.home-content h1{font-size:3rem;margin-bottom:20px;color:var(--text-primary);background:linear-gradient(135deg,var(--primary-orange),var(--primary-orange-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-content p{font-size:1.2rem;color:var(--text-secondary);margin-bottom:30px;line-height:1.6}.get-started-btn{background:linear-gradient(135deg,var(--primary-orange),var(--primary-orange-dark));color:var(--text-inverse);border:none;padding:12px 30px;font-size:18px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md)}.get-started-btn:hover{box-shadow:var(--shadow-lg)}.get-started-btn:active{transform:translateY(0)}@media (max-width: 768px){.home-view{padding:20px 16px;min-height:50vh}.home-content h1{font-size:2.2rem;margin-bottom:16px}.home-content p{font-size:1.1rem;margin-bottom:24px}.get-started-btn{padding:16px 32px;font-size:18px;min-height:44px;width:100%;max-width:300px}}@media (max-width: 480px){.home-content h1{font-size:1.8rem}.home-content p{font-size:1rem}}.photo-view{width:100%;height:100%;flex:1;background-color:var( --bg-primary )}@media (max-width: 768px){.photo-view{overflow:hidden;height:100%;position:relative}}body.modal-open{overflow:hidden;touch-action:none;position:fixed;width:100%}@media (min-width: 769px){body.modal-open{position:static;touch-action:auto}}.loading-container,.error-container{display:flex;align-items:center;justify-content:center;height:calc(100vh - 80px)}.loading-spinner{font-size:1.2rem;color:var(--primary-orange)}.error-message{text-align:center;padding:2rem;background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow-md);border:1px solid var(--border-light)}.error-message h3{color:#d32f2f;margin-bottom:1rem}.error-message p{color:var(--text-secondary);margin-bottom:1.5rem}.error-message button{background-color:var( --primary-orange );color:var(--text-inverse);border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem}.error-message button:hover{background-color:var(--primary-orange-dark)}.content-layout{display:flex;height:100%;width:100%;position:relative}@media (max-width: 768px){.content-layout{height:100%;flex-direction:row;overflow:hidden}}.filter-sidebar{width:300px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-light);padding:1rem;display:flex;flex-direction:column;transition:background-color .3s ease,border-color .3s ease}@media (max-width: 768px){.filter-sidebar{position:absolute;top:0;left:0;width:300px;height:100%;z-index:50;box-shadow:var(--shadow-lg);transform:translate(-100%);transition:transform .3s ease,background-color .3s ease,border-color .3s ease;display:flex;flex-direction:column}.filter-sidebar:not(.collapsed-mobile){transform:translate(0)}.filter-sidebar.collapsed-mobile{transform:translate(-100%)}.filter-sections{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}.mobile-sidebar-toggle{display:none;background:var(--primary-orange);color:var(--text-inverse);border:none;border-radius:4px;padding:.75rem 1rem;cursor:pointer;font-size:.9rem;font-weight:600;line-height:1;transition:background-color .2s ease;width:100%;min-height:44px}.mobile-sidebar-toggle:hover{background:var(--primary-orange-dark)}@media (max-width: 768px){.filter-sidebar .mobile-sidebar-toggle{display:block;position:relative;width:auto;padding:8px 12px;border-radius:6px;z-index:auto;box-shadow:none}.image-grid-container .mobile-sidebar-toggle{display:block;position:static;width:auto;min-width:48px;padding:12px;border-radius:8px;z-index:auto;box-shadow:var(--shadow-sm)}}.sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-shrink:0}.sidebar-header h3{margin:0;color:var(--text-primary);font-size:1.1rem}.sidebar-content{display:flex;flex-direction:column;flex:1;min-height:0}.create-tag-section{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-light);flex-shrink:0}.create-tag-btn{background:linear-gradient(135deg,var(--success-green),var(--success-green-dark));color:var(--text-inverse);border:none;padding:8px 16px;font-size:14px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-sm);width:100%;min-height:44px}.create-tag-btn:hover{box-shadow:var(--shadow-md);background:linear-gradient(135deg,var(--success-green-dark),#2e7d32)}.create-tag-btn:active{transform:translateY(0)}@media (max-width: 768px){.create-tag-btn{padding:12px 16px;font-size:16px;min-height:48px}}.filter-sections{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}@media (min-width: 769px){.filter-sections{scrollbar-width:none;-ms-overflow-style:none}.filter-sections::-webkit-scrollbar{display:none}}.filter-section{border:1px solid var(--border-light);border-radius:8px;background:var(--bg-primary);transition:background-color .3s ease,border-color .3s ease}.filter-section .filter-section{border:none;border-radius:0;margin-left:0;background:var(--bg-secondary);border-top:1px solid var(--border-light)}.section-header{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:none;border:none;cursor:pointer;font-size:.95rem;font-weight:600;color:var(--text-primary);transition:background-color .2s ease}.filter-section>.section-header{font-size:.85rem;font-weight:700;color:var(--primary-orange);padding:.5rem .75rem;background-color:#ff98000d;border-bottom:1px solid rgba(255,152,0,.1)}.filter-section>.section-header:hover{background-color:#ff98001a}.section-header:hover{background-color:var(--bg-secondary)}.filter-section .filter-section .section-header{font-size:.85rem;padding:.4rem .75rem;background-color:transparent}.filter-section .filter-section .section-header:hover{background-color:var(--bg-tertiary)}.section-caret{font-size:.8rem;transition:transform .2s ease;color:var(--primary-orange)}.filter-section>.section-header .section-caret{color:var(--primary-orange);font-weight:700}.filter-list{display:flex;flex-direction:column;gap:.25rem;padding:.5rem}.filter-item{display:flex;align-items:center;cursor:pointer;padding:.75rem;border-radius:6px;transition:all .2s ease;border:1px solid transparent;position:relative;justify-content:space-between;min-height:44px}@media (hover: hover){.filter-item:hover{background-color:var(--bg-secondary);border-color:var(--border-light)}.filter-item.selected:hover{background-color:var( --primary-orange-dark );border-color:var(--primary-orange-dark)}}.filter-item.selected{background-color:var(--primary-orange);color:var(--text-inverse);border-color:var(--primary-orange-dark);box-shadow:var(--shadow-sm)}@media (max-width: 768px){.filter-item{padding:1rem .75rem;min-height:48px}.filter-label{font-size:1rem;font-weight:500}}.filter-label{font-weight:500;color:inherit;flex:1;text-align:left}.filter-item-actions{display:flex;align-items:center;gap:.5rem;opacity:1;transition:opacity .2s ease}@media (hover: hover){.filter-item-actions{opacity:0}.filter-item:hover .filter-item-actions{opacity:1}}.edit-tag-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;border-radius:4px;font-size:14px;transition:all .2s ease;display:flex;align-items:center;justify-content:center}@media (hover: hover){.edit-tag-btn:hover{background-color:var(--bg-secondary);color:var(--text-primary)}}.image-grid-container{flex:1;padding:1.5rem;overflow-y:auto;background-color:var(--bg-primary);transition:background-color .3s ease}@media (max-width: 768px){.image-grid-container{width:100%;padding:1rem 1rem 2rem;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;position:relative;scroll-behavior:smooth}}@media (max-width: 480px){.image-grid-container{padding:.75rem .75rem 2.5rem}}.upload-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--border-light)}.upload-controls{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.upload-btn-main{background:#2196f3;color:var(--text-inverse);border:none;padding:16px 32px;font-size:18px;font-weight:600;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md);min-width:200px;min-height:44px}.upload-btn-main:hover{box-shadow:var(--shadow-lg);background:#1976d2}.upload-btn-main:active{transform:translateY(0)}@media (max-width: 768px){.upload-section{margin-bottom:1.5rem;padding-bottom:1rem}.upload-controls{flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}.upload-btn-main{flex:1;min-width:150px;padding:18px 24px;font-size:18px;min-height:48px}.image-grid-container .mobile-sidebar-toggle{position:static;flex-shrink:0;min-width:48px;padding:18px 12px;margin:0;order:-1}}@media (max-width: 380px){.upload-controls{flex-direction:column;align-items:stretch;gap:.75rem}.upload-btn-main{width:100%;order:0}.image-grid-container .mobile-sidebar-toggle{width:100%;order:-1;text-align:center}.family-filter{width:100%;order:1}}@media (max-width: 480px) and (min-width: 381px){.upload-controls{flex-wrap:wrap;gap:.75rem}.image-grid-container .mobile-sidebar-toggle{order:-1;flex-shrink:0}.upload-btn-main{flex:1;min-width:140px}.family-filter{width:100%;order:1}}.family-filter{display:flex;align-items:center;gap:.5rem}.family-filter label{font-weight:500;color:var(--text-primary);font-size:1rem}.family-dropdown{padding:8px 12px;border:2px solid var(--border-medium);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:150px;min-height:44px}.family-dropdown:focus{outline:none;border-color:var(--primary-orange);box-shadow:0 0 0 3px #ff7f001a}.family-dropdown:hover{border-color:var(--border-dark)}@media (max-width: 768px){.family-filter{justify-content:space-between;width:100%}.family-filter label{font-size:1rem;flex-shrink:0}.family-dropdown{flex:1;min-width:auto;font-size:1rem;padding:12px;min-height:48px}}.sidebar-backdrop{display:none}@media (max-width: 768px){.sidebar-backdrop{display:block;position:absolute;inset:0;background-color:#00000080;z-index:40;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.sidebar-backdrop.visible{opacity:1;visibility:visible}}@media (max-width: 768px){.sidebar-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:visible}.sidebar-content.hidden-mobile{opacity:1;visibility:visible;max-height:none;padding:inherit;display:flex;flex-direction:column;flex:1;min-height:0}}.empty-state{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:1.1rem}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,280px);gap:1.5rem;justify-content:start;margin-bottom:2rem}@media (max-width: 768px){.image-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;justify-content:center}}@media (max-width: 480px){.image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-bottom:1.5rem}}@media (max-width: 360px){.image-grid{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:2rem}}.image-card{background:var(--bg-primary);border-radius:8px;box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid var(--border-light);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background-color .3s ease}.image-card:hover{box-shadow:var(--shadow-lg)}.image-container{height:200px;overflow:hidden;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center}.image-display{width:100%;height:100%;object-fit:cover;transition:transform .2s ease}.image-card:hover .image-display{transform:scale(1.05)}.image-placeholder{height:200px;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--text-muted);transition:background .3s ease}.image-info{padding:1rem .5rem}.image-info h4{margin:0 0 .5rem;color:var(--text-primary);font-size:1rem}.image-tags{display:flex;flex-wrap:wrap;gap:.25rem}.tag-chip{background-color:var(--primary-orange);color:var(--text-inverse);padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.no-tags{color:var(--text-muted);font-style:italic;font-size:.75rem}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overscroll-behavior:contain}.modal-content{background:var(--bg-primary);border-radius:12px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);transition:all .3s ease;position:relative;z-index:1001}@media (max-width: 768px){.modal-overlay{padding:0;align-items:flex-start;height:100vh;height:100dvh;touch-action:none;overflow:hidden}.modal-content{width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;border-radius:0;margin:0;padding-bottom:env(safe-area-inset-bottom,20px);display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}.tag-type-select{width:100%;padding:10px 12px;border:2px solid var(--border-light);border-radius:6px;font-size:16px;transition:border-color .2s ease,background-color .3s ease;box-sizing:border-box;background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;min-height:44px}.tag-type-select:focus{outline:none;border-color:var(--primary-orange)}@media (max-width: 768px){.tag-type-select{padding:14px 16px;font-size:16px;border-radius:8px;min-height:48px;border-width:2px}}.tag-selection{border:1px solid var(--border-light);border-radius:6px;padding:16px;background-color:var(--bg-primary);transition:background-color .3s ease,border-color .3s ease}@media (max-width: 768px){.tag-selection{padding:12px;border-radius:8px}}.tag-group{margin-bottom:20px}.tag-group:last-child{margin-bottom:0}.tag-group h4{margin:0 0 12px;color:var(--primary-orange);font-size:1rem;font-weight:600}@media (max-width: 768px){.tag-group{margin-bottom:16px}.tag-group h4{margin:0 0 8px;font-size:1rem;font-weight:600}}.tag-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}@media (max-width: 768px){.tag-checkboxes{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}}@media (max-width: 480px){.tag-checkboxes{grid-template-columns:1fr 1fr;gap:8px}}@media (max-width: 360px){.tag-checkboxes{grid-template-columns:1fr;gap:6px}}.tag-checkbox{display:flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;color:var(--text-primary);border:1px solid var(--border-light);background-color:var(--bg-primary);text-align:center;font-size:14px;min-height:44px}.tag-checkbox:hover{background-color:var(--bg-secondary);border-color:var(--border-medium)}.tag-checkbox.selected{background-color:var(--secondary-blue);color:var(--text-inverse);border-color:var( --secondary-blue-dark );box-shadow:var(--shadow-sm)}.tag-checkbox.selected:hover{background-color:var( --secondary-blue-dark );border-color:var(--secondary-blue-dark)}@media (max-width: 768px){.tag-checkbox{padding:12px 8px;font-size:15px;min-height:48px;border-radius:8px;font-weight:500}}@media (max-width: 480px){.tag-checkbox{padding:14px 8px;font-size:16px;min-height:50px}}.family-selection{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:8px}@media (max-width: 768px){.family-selection{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-top:8px}}@media (max-width: 480px){.family-selection{grid-template-columns:1fr 1fr;gap:8px}}@media (max-width: 360px){.family-selection{grid-template-columns:1fr;gap:6px}}.family-checkbox{display:flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;color:var(--text-primary);border:1px solid var(--border-light);background-color:var(--bg-primary);text-align:center;font-size:14px;min-height:44px}.family-checkbox:hover{background-color:var(--bg-secondary);border-color:var(--border-medium)}.family-checkbox.selected{background-color:#ff8c00;color:#fff;border-color:#e67e00;box-shadow:var(--shadow-sm)}.family-checkbox.selected:hover{background-color:#e67e00;border-color:#cc7000}@media (max-width: 768px){.family-checkbox{padding:12px 8px;font-size:15px;min-height:48px;border-radius:8px;font-weight:500}}@media (max-width: 480px){.family-checkbox{padding:14px 8px;font-size:16px;min-height:50px}}.empty-families-message{width:100%;padding:16px;background-color:var( --bg-secondary );border:1px solid var(--border-light);border-radius:6px;color:var(--text-secondary);font-style:italic;text-align:center;box-sizing:border-box}.upload-error-message{padding:12px;margin-top:8px;background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px}@media (max-width: 768px){button:focus,.filter-item:focus,input:focus,select:focus,textarea:focus{outline:3px solid var(--primary-orange);outline-offset:2px}}.pagination-controls{display:flex;justify-content:center;padding:20px 0;margin-top:20px}.load-more-btn{background-color:var(--primary-orange);color:#fff;border:none;border-radius:6px;padding:12px 24px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.load-more-btn:hover:not(:disabled){background-color:var( --primary-orange-dark, #e67e22 );transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.load-more-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 4px #0000001a}.load-more-btn:disabled{background-color:var(--bg-tertiary, #ccc);color:var(--text-secondary, #666);cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.pagination-controls{padding:16px 0;margin-top:16px}.load-more-btn{padding:10px 20px;font-size:15px}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;box-sizing:border-box}.modal-content{background:var(--bg-primary);border-radius:12px;box-shadow:0 20px 60px #0003;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-light);background:var(--bg-primary);flex-shrink:0}.modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary);line-height:1.2}.close-btn{background:#ef4444;color:#fff;border:none;width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:18px;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.close-btn:hover{background:#dc2626;transform:scale(1.05)}.close-btn:active{transform:scale(.95)}.modal-body{flex:1;padding:24px;overflow-y:auto;min-height:0}@media (max-width: 768px){.modal-overlay{padding:16px}.modal-content{max-height:95vh;border-radius:8px}.modal-header{padding:16px 20px}.modal-header h2{font-size:1.25rem}.close-btn{width:28px;height:28px;font-size:16px;border-radius:4px}.modal-body{padding:20px}}@media (max-width: 480px){.modal-overlay{padding:12px}.modal-header{padding:14px 16px}.modal-header h2{font-size:1.125rem}.close-btn{width:24px;height:24px;font-size:14px}.modal-body{padding:16px}}@media (min-width: 769px){.modal-content,.modal-body{scrollbar-width:none!important;-ms-overflow-style:none!important}.modal-content::-webkit-scrollbar,.modal-body::-webkit-scrollbar{display:none!important}}.modal-preview-content{display:flex;flex-direction:column;gap:.5rem;height:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.modal-preview-content::-webkit-scrollbar{display:none}.modal-preview.modal-content .modal-header{justify-content:space-between}.modal-preview.modal-content .modal-header h2{text-align:left;margin:0}.modal-preview.modal-content .modal-body{padding-top:1rem!important;overflow-y:auto!important;max-height:calc(100vh - 120px)!important;scrollbar-width:none!important;-ms-overflow-style:none!important}.modal-preview.modal-content .modal-body::-webkit-scrollbar{display:none!important}.modal-form{display:flex;flex-direction:column;height:100%;scrollbar-width:none;-ms-overflow-style:none}.modal-form::-webkit-scrollbar{display:none}.form-content{display:flex;flex-direction:column;flex:1;gap:1.5rem;scrollbar-width:none;-ms-overflow-style:none}.form-content::-webkit-scrollbar{display:none}.form-content .form-group:first-child:has(.file-drop-zone,.image-preview-container){flex:1;display:flex;flex-direction:column}.file-drop-zone{border:2px dashed var(--border-light);border-radius:8px;padding:2rem;text-align:center;background:var( --bg-secondary );transition:all .3s ease;cursor:pointer;min-height:120px;display:flex;align-items:center;justify-content:center}.file-drop-zone.has-preview{border:none;padding:0;background:transparent;border-radius:8px;overflow:hidden}.file-drop-zone.drag-over{border-color:var(--primary-orange);background:#ff98001a}.file-drop-zone.has-preview.drag-over{border:none;background:transparent}.file-drop-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.drop-icon{font-size:3rem;opacity:.6;color:var(--text-secondary)}.file-drop-content p{margin:0;color:var(--text-secondary);font-size:16px}.browse-btn{background:var(--primary-orange);color:var(--text-inverse);border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .3s ease;font-size:16px;min-height:44px}.browse-btn:hover{background:var( --primary-orange-dark )}.file-info{font-size:.85rem;opacity:.7}.file-selected{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-primary);border-radius:6px;border:1px solid var(--border-light)}.file-icon{font-size:1.5rem}.file-name{font-weight:500;color:var(--text-primary);flex:1;text-align:left}.file-size{color:var(--text-secondary);font-size:.9rem}.remove-file-btn{background:#d32f2f;color:#fff;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;transition:background-color .3s ease}.remove-file-btn:hover{background:#b71c1c}.file-preview-display{display:flex;justify-content:center;align-items:center;width:100%;height:100%;min-height:200px;background:var(--bg-primary);border-radius:4px;padding:0}.file-preview-display .upload-image-preview{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:4px}.change-file-btn,.additional-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light);padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:14px;margin-top:.5rem;transition:all .3s ease;display:block;margin-left:auto;margin-right:auto}.change-file-btn:hover,.additional-btn:hover{background:var(--bg-primary);border-color:var(--primary-orange)}.image-filename,.image-date,.image-updated,.image-preview-info .image-filename,.image-preview-info .image-date,.image-preview-info .image-updated,.image-preview-info p{color:var(--text-secondary);font-size:14px;margin:4px 0 8px;font-style:italic;text-align:left}.image-preview-container{display:flex;justify-content:center;align-items:center;width:100%;flex:1;min-height:400px;background:transparent!important;border-radius:0!important;padding:0!important;border:none!important;margin-top:0!important;max-height:none!important;overflow:visible!important}.upload-image-preview,.image-preview-display{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:0!important;box-shadow:none!important}.image-preview-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--text-secondary);padding:2rem}.image-preview-placeholder span{font-size:2rem;opacity:.6}.image-preview-placeholder p{margin:0;font-size:.9rem;opacity:.8}.image-preview-info{text-align:left}.image-preview-info h3{margin:0 0 16px;color:var(--text-primary);font-size:1.5rem;font-weight:600}.image-preview-info .image-tags{margin-bottom:16px;justify-content:left}.form-actions{display:flex;flex-direction:column;gap:1rem;padding-bottom:.5rem;padding-top:10px;margin-top:0}.form-actions-main{display:flex;justify-content:space-between;align-items:center;gap:1rem}.form-actions-delete{display:flex;justify-content:center;align-items:center}.form-actions button{flex:0 0 auto;min-width:140px;padding:.875rem 1.75rem;border-radius:6px;cursor:pointer;font-size:15px;font-weight:500;transition:all .2s ease;border:2px solid transparent;text-transform:none;letter-spacing:.025em}.cancel-btn{background:#6b7280;color:#fff;border:2px solid #6b7280}.cancel-btn:hover{background:#4b5563;border-color:#4b5563;color:#fff}.submit-btn{background:#3b82f6;color:#fff;border:2px solid #3b82f6}.submit-btn:hover{background:#2563eb;border-color:#2563eb}.submit-btn:disabled{background:#9ca3af;border-color:#9ca3af;cursor:not-allowed;opacity:.7}.download-btn{background:#10b981;color:#fff;border:2px solid #10b981}.download-btn:hover{background:#059669;border-color:#059669}.edit-btn{background:#3b82f6;color:#fff;border:2px solid #3b82f6}.edit-btn:hover{background:#2563eb;border-color:#2563eb}.delete-btn,.delete-family-btn{background:#ef4444;color:#fff;border:2px solid #ef4444}.delete-btn:hover,.delete-family-btn:hover{background:#dc2626;border-color:#dc2626}.delete-btn:disabled,.delete-family-btn:disabled{background:#f87171;border-color:#f87171;cursor:not-allowed;opacity:.7}.auth-error{background:#ef44441a;color:#dc2626;padding:.75rem;border-radius:6px;border:1px solid rgba(239,68,68,.3);margin:.75rem 0;font-size:14px;text-align:center}.auth-success{background:#10b9811a;color:#059669;padding:.75rem;border-radius:6px;border:1px solid rgba(16,185,129,.3);margin:.75rem 0;font-size:14px;text-align:center}.loading-state{text-align:center;color:var(--text-secondary);padding:1rem;font-style:italic}.form-divider{margin:1.5rem 0;text-align:center;position:relative}.form-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border-light);z-index:1}.form-divider span{background:var(--bg-primary);padding:0 1rem;color:var(--text-secondary);font-size:14px;position:relative;z-index:2}.password-toggle{position:absolute;right:.5rem;background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;color:var(--text-secondary);border-radius:4px;transition:color .2s ease}.family-manage-content{display:flex;flex-direction:column;gap:2rem}.add-member-section{border:1px solid var(--border-light);border-radius:8px;padding:1.5rem;background:var(--bg-secondary)}.add-member-section h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.2rem}.add-member-form{display:flex;gap:.5rem;align-items:flex-end}.add-member-form .form-group{flex:1;margin:0}.add-member-form input{width:100%;padding:.75rem;border:1px solid var(--border-light);border-radius:6px;font-size:16px;background:var(--bg-primary);color:var(--text-primary)}.add-member-form button{padding:.75rem 1.5rem;background:var(--primary-orange);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:background-color .2s ease;white-space:nowrap}.add-member-form button:hover{background:var(--primary-orange-dark)}.add-member-form button:disabled{background:#9ca3af;cursor:not-allowed}.members-section{border:1px solid var(--border-light);border-radius:8px;padding:1.5rem;background:var(--bg-primary)}.members-section h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.2rem}.member-row{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-secondary)}.member-avatar{flex-shrink:0}.avatar-placeholder{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--primary-orange);color:#fff;font-weight:600;font-size:14px}.member-info{flex:1;min-width:0}.member-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem;display:flex;align-items:center;gap:.5rem}.member-email{color:var(--text-secondary);font-size:14px;margin-bottom:.25rem}.member-birthday{color:var(--text-secondary);font-size:14px}.owner-badge,.current-user-badge{padding:.125rem .375rem;border-radius:4px;font-size:12px;font-weight:500}.owner-badge{background:#ffd70033;color:#d97706}.current-user-badge{background:#3b82f633;color:#2563eb}.member-actions{flex-shrink:0}.remove-btn{padding:.5rem 1rem;background:#ef4444;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background-color .2s ease}.family-preview{margin-top:1rem;padding:1rem;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-secondary)}.family-preview h3{margin:0 0 1rem;color:var(--text-primary)}.family-group-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;padding:1rem;margin-bottom:1rem}.family-group-header{margin-bottom:.5rem}.family-group-name{margin:0;color:var(--text-primary);font-size:1.1rem;font-weight:600}.family-group-details{color:var(--text-secondary);font-size:14px}.family-id-container{display:inline-block}.family-id-display{font-family:monospace;background:#3b82f61a;padding:.25rem .5rem;border-radius:4px;color:#2563eb}.auth-submit{width:100%;padding:.875rem;background:var(--primary-orange);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:600;transition:background-color .2s ease}.auth-submit:hover{background:var(--primary-orange-dark)}.auth-submit:disabled{background:#9ca3af;cursor:not-allowed}.file-preview-display{display:flex;justify-content:center;align-items:center;width:100%;flex:1;min-height:400px;background:transparent!important;border-radius:0!important;padding:0!important;border:none!important;margin-top:0!important;max-height:none!important;overflow:visible!important}.file-preview-display .upload-image-preview{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:0!important;box-shadow:none!important}@media (max-width: 768px){.modal-preview.modal-content .modal-body{max-height:calc(100vh - 100px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}.modal-preview-content{height:auto!important;min-height:100%}.modal-content .form-actions{gap:.75rem!important;padding-top:.5rem!important;margin-top:0}.modal-content .form-actions-main{gap:.75rem!important;flex-direction:row!important;justify-content:space-between!important}.modal-content .form-actions button{flex:1!important;min-width:unset!important;padding:1rem 1.5rem!important;font-size:16px!important;order:initial!important;margin:0!important}.file-drop-zone{padding:1.5rem 1rem;min-height:100px;border-radius:8px;border-width:2px}.file-drop-zone.has-preview{padding:0}.file-drop-content{gap:.75rem}.drop-icon{font-size:2.5rem}.file-drop-content p{font-size:15px;text-align:center;line-height:1.4}.browse-btn{padding:12px 24px;font-size:16px;border-radius:8px;min-height:48px;font-weight:600}.file-preview-display,.image-preview-container{min-height:200px;flex:none}.image-preview-container{max-height:60vh}.upload-image-preview,.image-preview-display{max-height:60vh!important}.change-file-btn,.additional-btn{padding:.75rem 1.25rem;font-size:15px;margin-top:.75rem}.image-preview-placeholder{padding:1.5rem}.image-preview-placeholder span{font-size:1.5rem}}@media (max-width: 480px){.modal-content .form-actions{padding-top:.75rem!important;margin-top:1rem!important}.modal-content .form-actions button{padding:.875rem 1.25rem!important;font-size:15px!important}.file-drop-zone{padding:1rem;min-height:80px}.file-drop-zone.has-preview{padding:0}.drop-icon{font-size:2rem}.file-drop-content p{font-size:14px}.file-preview-display,.image-preview-container{min-height:150px!important;max-height:50vh!important}.upload-image-preview,.image-preview-display{max-height:50vh!important}.change-file-btn,.additional-btn{padding:.625rem 1rem;font-size:14px}.image-preview-placeholder{padding:1rem}}.account-view{padding:2rem;background-color:var( --bg-primary );min-height:calc(100vh - var(--navbar-height));display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow-y:auto;box-sizing:border-box}.app:has(.account-view){overflow:visible!important}@media (max-width: 768px){.account-view{height:calc(100vh - var(--navbar-height));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:18rem}.app:has(.account-view){overflow:auto!important;height:auto!important}}.account-container{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:2rem;width:100%;box-sizing:border-box}.profile-section{display:flex;flex-direction:row;align-items:center;padding:.5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-light)}.profile-picture-container{position:relative}.profile-picture{width:120px;height:120px;border-radius:12px;object-fit:cover;border:.25px solid var(--primary-orange);display:block}.profile-picture-placeholder{width:120px;height:120px;border-radius:16px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;border:4px solid var(--primary-orange)}.profile-avatar-icon{font-size:3rem;color:var(--text-muted)}.user-info{flex:1;display:flex;flex-direction:column;text-align:center;justify-content:center;padding-left:1.5rem}.user-name{margin:0 0 .5rem;color:var(--text-primary);font-size:2rem;font-weight:700}.user-email{margin:0 0 .5rem;color:var(--text-secondary);font-size:1.1rem;font-weight:500}.user-birthday{margin:0;color:var(--text-secondary);font-size:1rem}.account-section{background:var( --bg-secondary );border-radius:12px;border:1px solid var(--border-light);box-shadow:var(--shadow-sm);overflow:hidden;transition:all .3s ease;width:100%;box-sizing:border-box}.section-header{width:100%;display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;background:none;border:none;cursor:pointer;font-size:1.1rem;font-weight:600;color:var(--text-primary);transition:background-color .2s ease;border-bottom:1px solid var(--border-light)}.section-header:hover{background-color:var( --bg-tertiary )}.section-caret{font-size:.9rem;transition:transform .2s ease;color:var(--primary-orange)}.section-caret.collapsed{transform:rotate(-90deg)}.section-title{flex:1;text-align:left}.section-count{font-size:.9rem;color:var(--text-secondary);font-weight:500}.section-title-static{margin:0;padding:1.25rem 1.5rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-light);background-color:var( --bg-primary )}.section-content{padding:.5rem;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:0}.empty-state{text-align:center;padding:2rem;color:var(--text-secondary);background-color:var( --bg-tertiary );border-radius:8px;border:1px dashed var(--border-light);width:100%;min-height:120px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box}.loading-state{text-align:center;padding:2rem;color:var(--text-secondary);background-color:var( --bg-tertiary );border-radius:8px}.empty-state p{margin-bottom:1rem;font-size:1.1rem}.create-family-btn{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-sm)}.create-family-btn:hover{background:#2563eb;box-shadow:var(--shadow-md)}.family-groups-list{display:flex;flex-direction:column;gap:1rem;width:100%;box-sizing:border-box}.family-group-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;padding:1.25rem;transition:all .2s ease}.family-group-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-sm)}.family-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.family-group-name{margin:0;font-size:1.2rem;font-weight:600;color:var(--text-primary)}.role-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.role-badge.admin{background-color:var( --primary-orange );color:var(--text-inverse)}.role-badge.member{background-color:var(--secondary-blue);color:var(--text-inverse)}.family-group-details{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem}.family-group-info{display:flex;flex-direction:row;gap:.5rem}.member-count,.created-date,.family-id-container{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem;position:relative}.copy-id-btn{background:var(--bg-secondary);border:1px solid var(--border-light);cursor:pointer;padding:.4rem .8rem;margin:0;border-radius:6px;font-size:.8rem;color:var(--text-secondary);text-decoration:none;transition:all .2s ease;font-family:Consolas,Monaco,Courier New,monospace;word-break:break-all;min-width:fit-content;box-shadow:0 1px 3px #0000001a}.copy-id-btn:hover{background-color:var(--bg-primary);border-color:var(--primary-orange);color:var(--text-primary);transform:scale(1.01);box-shadow:0 1px 6px #ff7f0026}.copy-id-btn:active{transform:scale(.98);box-shadow:0 1px 3px #0003}.copy-feedback{position:absolute;top:-3rem;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--primary-orange),var(--primary-orange-dark));color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;white-space:nowrap;z-index:100;box-shadow:0 4px 20px #ff7f004d;animation:fadeInOut 3s ease-in-out;border:1px solid rgba(255,255,255,.2)}.copy-feedback:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var( --primary-orange-dark )}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%) translateY(10px)}15%{opacity:1;transform:translate(-50%) translateY(0)}85%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-10px)}}[data-theme=dark] .copy-id-btn{background:#3a3a3a;border-color:#555;color:#ccc}[data-theme=dark] .copy-id-btn:hover{background:#4a4a4a;border-color:var(--primary-orange);color:#fff;box-shadow:0 1px 8px #ff7f0033}[data-theme=dark] .copy-feedback{box-shadow:0 4px 25px #ff7f0066;border-color:#ffffff4d}[data-theme=dark] .setting-arrow{color:#fff}.family-group-actions{display:flex;gap:.75rem}.action-btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.view-btn{background-color:var(--secondary-blue);color:var(--text-inverse)}.view-btn:hover{background-color:var(--secondary-blue-dark)}.manage-btn{background-color:var( --border-medium );color:var(--text-primary);padding:.5rem .75rem;font-size:.85rem}.manage-btn:hover{background-color:var(--border-dark)}.leave-btn{background-color:#dc3545;color:#fff}.leave-btn:hover{background-color:#c82333}.leave-btn:disabled{background-color:#6c757d;cursor:not-allowed}.section-footer{padding-top:1rem;display:flex;gap:1rem;justify-content:space-between;width:100%;box-sizing:border-box}.join-family-btn{background:none;border:2px solid #28a745;color:#28a745;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.join-family-btn:hover{border-color:#1e7e34;color:#1e7e34;background-color:#28a7450d}.create-family-btn-footer{background:#3b82f6;border:2px solid #3b82f6;color:#fff;padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease}.create-family-btn-footer:hover{background:#2563eb;border-color:#2563eb}.family-manage-modal{width:90%!important;max-width:800px!important;max-height:80vh;overflow-y:auto}.family-manage-content{padding:0}.add-member-section{padding:1.5rem;border-bottom:1px solid var(--border-light);background-color:var( --bg-tertiary )}.add-member-section h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.1rem}.add-member-form .form-group{display:flex;gap:.75rem;margin:0}.add-member-form input{flex:1;padding:12px;border:1px solid var(--border-light);border-radius:8px;font-size:16px;background-color:var(--bg-primary);color:var(--text-primary);font-family:inherit;transition:border-color .2s ease}.add-member-form input:focus{outline:none;border-color:var(--primary-orange);box-shadow:0 0 0 3px #ff7f001a}.add-member-form button{background:#3b82f6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s ease;white-space:nowrap}.add-member-form button:disabled{background:#94a3b8;cursor:not-allowed}.add-member-form button:hover:not(:disabled){background:#2563eb}.members-section{padding:1.5rem}.members-section h3{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.1rem}.members-list{display:flex;flex-direction:column;gap:.75rem}.member-row{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-light)}.member-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--primary-orange);color:#fff;font-weight:600;font-size:.9rem;overflow:hidden}.member-avatar-image{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-placeholder{text-transform:uppercase}.member-info{display:flex;flex-direction:column;gap:.25rem}.member-name{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.owner-badge{font-size:.8rem;color:#f59e0b;font-weight:500}.current-user-badge{font-size:.8rem;color:#3b82f6;font-weight:500}.member-email{color:var(--text-secondary);font-size:.9rem}.member-birthday{color:var(--text-secondary);font-size:.8rem}.member-actions{display:flex;gap:.5rem}.remove-btn{background:#ef4444;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:background-color .2s ease}.remove-btn:hover{background:#dc2626}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.setting-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:8px;cursor:pointer;transition:all .2s ease;text-align:left}.setting-item:hover{border-color:var(--border-medium);background-color:var(--bg-tertiary);box-shadow:var(--shadow-sm)}.setting-icon{font-size:1.2rem;min-width:1.5rem}.setting-label{flex:1;font-weight:500;color:var(--text-primary)}.setting-arrow{color:var(--text-muted);font-weight:700}.form-divider{padding:.75rem 0;text-align:center}.form-divider span{font-size:16px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.password-input-container{position:relative;display:flex;align-items:center}.password-input-container input{flex:1;padding-right:3rem}.password-toggle{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.2rem;padding:.25rem;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:color .2s ease}.password-toggle:hover{color:var(--text-primary)}.auth-success{background:#4caf501a;border:1px solid rgba(76,175,80,.3);color:#388e3c;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.9rem;text-align:center}[data-theme=dark] .auth-success{background:#4caf5026;border-color:#4caf5066;color:#66bb6a}.family-manage-modal .auth-header{justify-content:space-between}.family-manage-modal .auth-header h2{flex:1}.delete-family-btn{background:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.delete-family-btn:hover:not(:disabled){background:#c82333}.delete-family-btn:disabled{background:#6c757d;cursor:not-allowed;transform:none}.delete-family-btn:active{transform:translateY(0)}.join-family-modal{width:95%!important;max-width:800px!important;max-height:90vh;overflow-y:auto}.profile-edit-form{margin-top:.5rem}.profile-edit-form .form-group{margin-bottom:1.5rem}.profile-edit-form label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary);font-size:.9rem}.profile-edit-form input[type=text],.profile-edit-form input[type=date]{width:100%;padding:12px;border:1px solid var(--border-light);border-radius:8px;font-size:16px;background-color:var(--bg-primary);color:var(--text-primary);font-family:inherit;transition:border-color .2s ease}.profile-edit-form input[type=text]:focus,.profile-edit-form input[type=date]:focus{outline:none;border-color:var(--primary-orange);box-shadow:0 0 0 3px #ff7f001a}.profile-edit-form .auth-error{background:#dc35451a;border:1px solid rgba(220,53,69,.3);color:#dc3545;padding:12px 16px;border-radius:8px;margin-top:1rem;font-size:.9rem;text-align:center}[data-theme=dark] .profile-edit-form .auth-error{background:#dc354526;border-color:#dc354566;color:#f87171}.family-preview{margin-top:1.5rem;padding:1.5rem;background:var( --bg-tertiary );border-radius:8px;border:1px solid var(--border-light)}.family-preview h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.1rem}.family-preview .family-group-card{margin-bottom:1.5rem;background:var(--bg-primary)}.family-preview .member-count{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.family-id-display{font-family:Courier New,Monaco,monospace;font-size:.85rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:.25rem .5rem;border-radius:4px;border:1px solid var(--border-light)}.loading-message{text-align:center;padding:1rem;color:var(--text-secondary);font-style:italic}@media (hover: none){.copy-id-btn:hover{background:var( --bg-secondary )!important;border-color:var( --border-light )!important;color:var( --text-secondary )!important;transform:none!important;box-shadow:0 1px 3px #0000001a!important}[data-theme=dark] .copy-id-btn:hover{background:#3a3a3a!important;border-color:#555!important;color:#ccc!important;box-shadow:0 1px 3px #0000001a!important}.copy-id-btn{pointer-events:auto!important;-webkit-tap-highlight-color:rgba(255,127,0,.2)!important}}@media (min-width: 769px){.account-container{width:100%}.section-content{min-width:100%}.empty-state,.family-groups-list,.section-footer{width:100%}.family-group-card{width:100%;box-sizing:border-box}}@media (max-width: 768px){.account-container{gap:1.5rem}.account-view{padding:1.5rem 1rem 4rem;overscroll-behavior:contain}.profile-section{padding:.5rem}.user-info{padding-left:.5rem}.profile-picture,.profile-picture-placeholder{max-width:100px;max-height:100px}.profile-avatar-icon{font-size:2.5rem}.user-name{font-size:1.5rem;margin:0 0 .25rem}.user-email{font-size:.9rem;margin:0 0 .25rem}.user-birthday{font-size:.9rem}.family-group-details{flex-direction:column;align-items:flex-start;gap:.5rem}.family-group-actions{width:100%;justify-content:flex-end;flex-direction:row-reverse}.family-group-card:hover{border-color:var(--border-light);box-shadow:none}.family-group-header{margin-bottom:.5rem}.settings-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.section-header{padding:1rem;min-height:48px}.section-content,.family-group-card{padding:.5rem}.action-btn,.view-btn,.manage-btn,.leave-btn{height:30px;padding:.1rem .375rem;font-size:12px;box-sizing:border-box;width:30%}.join-family-btn,.create-family-btn,.create-family-btn-footer{min-height:44px;padding:12px 16px;font-size:16px}.view-btn{margin-left:auto}.setting-item{padding:12px 8px;min-height:50px;flex-direction:column;gap:.5rem;text-align:center}.setting-item .setting-icon{font-size:1.1rem}.setting-item .setting-label{font-size:.85rem;line-height:1.2}.setting-item .setting-arrow{display:none}.copy-id-btn{padding:2px 4px;font-size:12px;min-height:24px;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:auto;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(255,127,0,.3);position:relative}.copy-id-btn:before{content:"";position:absolute;inset:-8px;background:transparent;border-radius:8px}.copy-id-btn:hover{background:var(--bg-secondary)!important;border-color:var(--border-light)!important;color:var(--text-secondary)!important;transform:none!important;box-shadow:0 1px 3px #0000001a!important}.copy-id-btn:active{background-color:var( --primary-orange )!important;border-color:var(--primary-orange)!important;color:#fff!important;transform:scale(.95);transition:all .1s ease}.add-member-form input{padding:14px 12px;font-size:16px;min-height:48px}.add-member-form button{padding:14px 20px;font-size:16px;min-height:48px}.member-row{grid-template-columns:auto 1fr;gap:.75rem}.member-birthday{grid-column:2;text-align:left;margin-top:.25rem}.member-actions{grid-column:2;justify-content:flex-end}}@media (max-width: 480px){.setting-item{min-height:48px;padding:10px 6px;gap:.25rem}.setting-item .setting-icon{font-size:1rem}.setting-item .setting-label{font-size:.8rem}.section-header{min-height:52px;font-size:18px}.delete-family-btn{font-size:.8rem;padding:6px 12px}}.security-modal-user-email{text-align:center;padding:1rem}.security-modal-user-email span{font-weight:500;color:var(--text-primary);font-size:1rem}.auth-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1000;overflow-y:auto;overflow-x:hidden;padding:20px;box-sizing:border-box;background-color:#00000080;-webkit-overflow-scrolling:touch}.auth-modal{background:var(--bg-primary);border-radius:12px;width:100%;max-width:400px;margin:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);min-height:min-content;max-height:calc(100vh - 40px);display:flex;flex-direction:column;position:relative;overflow-x:hidden;box-sizing:border-box}.auth-modal *{box-sizing:border-box;max-width:100%}.auth-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border-light);flex-shrink:0}.auth-header h2{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:600}.auth-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.auth-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.auth-form{padding:24px;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;-webkit-overflow-scrolling:touch;box-sizing:border-box;scroll-behavior:smooth}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;color:var(--text-primary);font-weight:500;font-size:.95rem}.form-group input{width:100%;box-sizing:border-box;font-size:16px}@media (max-width: 480px){.form-group{margin-bottom:16px}.form-group label{font-size:.9rem;margin-bottom:4px}}.password-mismatch-error{color:#d32f2f;font-size:.85rem;margin-top:6px;display:flex;align-items:center;gap:4px}[data-theme=dark] .password-mismatch-error{color:#ff5252}.field-error{color:#d32f2f;font-size:.85rem;margin-top:6px;display:flex;align-items:center;gap:4px}[data-theme=dark] .field-error{color:#ff5252}.auth-error{background:#f443361a;border:1px solid rgba(244,67,54,.3);color:#d32f2f;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.9rem}[data-theme=dark] .auth-error{background:#f4433626;border-color:#f4433666;color:#ff5252}.auth-submit{width:100%;padding:12px;background:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-bottom:20px}.auth-submit:hover:not(:disabled){background:#388e3c}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;padding:16px;border-top:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.auth-switch p{margin:0;color:var(--text-secondary);font-size:.95rem}.auth-switch-btn{background:none;border:none;color:var(--primary-color);cursor:pointer;font-weight:600;text-decoration:underline;font-size:inherit}.auth-switch-btn:hover{color:#388e3c}@media (max-width: 480px){.auth-overlay{padding:20px 10px 10px;align-items:flex-start}.auth-modal{border-radius:8px;width:100%;max-width:none;max-height:calc(100vh - 40px);min-height:auto;max-width:calc(100vw - 20px)}.auth-header,.auth-form{padding:16px}.auth-header h2{font-size:1.3rem}.auth-switch{padding:12px 16px}}@media (max-width: 380px){.auth-overlay{padding:10px 5px 5px}.auth-modal{max-height:calc(100vh - 20px);max-width:calc(100vw - 10px)}.auth-header,.auth-form,.auth-switch{padding:12px}}@media (max-height: 600px){.auth-overlay{align-items:flex-start;padding-top:10px}.auth-modal{max-height:calc(100vh - 20px)}}.family-input-container{display:flex;gap:8px;margin-bottom:8px;width:100%;box-sizing:border-box;overflow:hidden}.family-input-container input{flex:1;font-size:16px;min-width:0;box-sizing:border-box}.add-family-btn{background:var(--primary-color);color:var(--text-inverse);border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0;min-height:44px}.add-family-btn:hover:not(:disabled){background:#388e3c}.add-family-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.family-input-container{gap:6px}.add-family-btn{padding:14px 12px;font-size:16px;min-height:48px}}.family-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.family-item{display:flex;align-items:center;gap:6px;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:16px;padding:4px 8px;font-size:14px}.family-item span{color:var(--text-primary)}.remove-family-btn{background:#d32f2f;color:#fff;border:none;width:18px;height:18px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;transition:background-color .2s ease}.remove-family-btn:hover{background:#b71c1c}@media (max-width: 768px){.auth-form input,.auth-form select{padding:14px 12px;font-size:16px;min-height:48px;-webkit-appearance:none;appearance:none}.auth-form button{min-height:48px;padding:14px 24px;font-size:16px}.family-item{padding:8px 12px;font-size:16px;min-height:36px}.remove-family-btn{width:24px;height:24px;font-size:14px}}.auth-button-group{display:flex;gap:12px;margin-top:20px}.auth-button-group .auth-submit{margin-bottom:0;flex:1}.auth-submit.secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-light)}.auth-submit.secondary:hover:not(:disabled){background:var(--border-light)}.auth-submit.primary{background:var(--primary-color);color:#fff}.auth-submit.primary:hover:not(:disabled){background:#388e3c}
