*{margin:0;padding:0;box-sizing:border-box}html{font-size:100%;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-base);line-height:1.6;background-color:var(--bg-tertiary, #f5f5f5);color:var(--text-primary, #333);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;display:flex;flex-direction:column}:root{--breakpoint-xs: 320px;--breakpoint-sm: 480px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1440px;--breakpoint-3xl: 1920px;--breakpoint-4k: 2560px;--font-xs: clamp(.75rem, .8rem + .05vw, .875rem);--font-sm: clamp(.875rem, .9rem + .1vw, 1rem);--font-base: clamp(1rem, 1rem + .125vw, 1.125rem);--font-lg: clamp(1.125rem, 1.125rem + .25vw, 1.375rem);--font-xl: clamp(1.25rem, 1.25rem + .5vw, 1.75rem);--font-2xl: clamp(1.5rem, 1.5rem + .75vw, 2.25rem);--font-3xl: clamp(1.875rem, 1.875rem + 1vw, 2.75rem);--font-4xl: clamp(2.25rem, 2.25rem + 1.25vw, 3.5rem);--font-5xl: clamp(2.75rem, 2.75rem + 1.5vw, 4rem);--space-1: clamp(.25rem, .3rem + .1vw, .375rem);--space-2: clamp(.5rem, .6rem + .2vw, .75rem);--space-3: clamp(.75rem, .9rem + .3vw, 1.125rem);--space-4: clamp(1rem, 1.2rem + .4vw, 1.5rem);--space-5: clamp(1.25rem, 1.5rem + .5vw, 1.875rem);--space-6: clamp(1.5rem, 1.8rem + .6vw, 2.25rem);--space-8: clamp(2rem, 2.4rem + .8vw, 3rem);--space-12: clamp(3rem, 3.6rem + 1.2vw, 4.5rem);--space-16: clamp(4rem, 4.8rem + 1.6vw, 6rem);--radius-sm: .25rem;--radius-base: .375rem;--radius-lg: .5rem;--radius-xl: .75rem}.container{width:100%;margin:0 auto;padding:0 var(--space-2)}@media(min-width:320px){.container{max-width:320px}}@media(min-width:480px){.container{max-width:450px;padding:0 var(--space-3)}}@media(min-width:768px){.container{max-width:720px;padding:0 var(--space-4)}}@media(min-width:1024px){.container{max-width:960px}}@media(min-width:1280px){.container{max-width:1100px}}@media(min-width:1440px){.container{max-width:1200px}}.btn{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-base);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:600;font-size:var(--font-base);white-space:nowrap;display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none;min-height:clamp(2.5rem,2.2rem + 1.5vw,3rem)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--accent-primary, #3498db);color:#fff}.btn-primary:hover{background-color:var(--accent-primary-hover, #2980b9)}.btn-success{background-color:var(--accent-success, #27ae60);color:#fff}.btn-success:hover{background-color:var(--accent-success-hover, #229954)}.btn-danger{background-color:var(--accent-danger, #e74c3c);color:#fff}.btn-danger:hover{background-color:var(--accent-danger-hover, #c0392b)}.btn-muted{background-color:var(--accent-muted, #95a5a6);color:#fff}.btn-muted:hover{background-color:var(--accent-muted-hover, #7f8c8d)}.form-group{margin-bottom:var(--space-3)}.form-group label{display:block;margin-bottom:var(--space-1);font-weight:600;color:var(--text-secondary, #555);font-size:var(--font-sm);transition:color .3s ease}.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--space-3) var(--space-4);border:clamp(1px,.8px + .1vw,2px) solid var(--border-color, #ddd);border-radius:var(--radius-base);font-size:var(--font-base);font-family:inherit;transition:all .3s ease;background-color:var(--bg-primary);color:var(--text-primary, #333)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary, #3498db);box-shadow:0 0 0 clamp(2px,1.5px + .25vw,4px) #3498db1a;transform:translateY(-1px)}.form-group textarea{resize:vertical;min-height:clamp(80px,6vh,120px);line-height:1.5}.card{background:var(--bg-primary);border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-lg);padding:var(--space-4);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px var(--shadow-light, rgba(0, 0, 0, .1))}.card:hover{box-shadow:0 4px 8px var(--shadow-medium, rgba(0, 0, 0, .15));transform:translateY(-1px)}@media(pointer:coarse){.btn,.form-group input,.form-group textarea,.form-group select{min-height:clamp(2.75rem,2.5rem + 1.25vw,3.5rem);min-width:clamp(2.75rem,2.5rem + 1.25vw,3.5rem)}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.border-1{border-width:.5px}.border-2{border-width:1px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.modal,.modal-backdrop,.habit-actions,.add-habit-btn,.logout-btn{display:none!important}.dashboard-container{background:#fff!important}.card{break-inside:avoid;box-shadow:none!important;border:1px solid #000!important}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.hidden{display:none}.block{display:block}.w-full{width:100%}.h-full{height:100%}*{scrollbar-width:thin;scrollbar-color:rgba(var(--text-muted-rgb),.2) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:rgba(var(--text-muted-rgb),.2);border-radius:100vh}::-webkit-scrollbar-thumb:hover{background-color:rgba(var(--text-muted-rgb),.5)}::-webkit-scrollbar-corner{background:transparent}:root{--bg-primary: #ffffff;--bg-primary-rgb: 255, 255, 255;--bg-secondary: #f8f9fa;--bg-secondary-rgb: 248, 249, 250;--bg-tertiary: #f5f5f5;--bg-tertiary-rgb: 245, 245, 245;--text-primary: #333333;--text-primary-rgb: 51, 51, 51;--text-secondary: #666666;--text-secondary-rgb: 102, 102, 102;--text-muted: #999999;--text-muted-rgb: 153, 153, 153;--border-color: #e1e8ed;--border-color-rgb: 225, 232, 237;--shadow-light: rgba(0, 0, 0, .1);--shadow-light-rgb: 0, 0, 0;--shadow-medium: rgba(0, 0, 0, .15);--shadow-medium-rgb: 0, 0, 0;--accent-primary: #3498db;--accent-primary-rgb: 52, 152, 219;--accent-primary-hover: #2980b9;--accent-success: #27ae60;--accent-success-rgb: 39, 174, 96;--accent-success-hover: #229954;--accent-danger: #e74c3c;--accent-danger-rgb: 231, 76, 60;--accent-danger-hover: #c0392b;--accent-muted: #95a5a6;--accent-muted-hover: #7f8c8d;--auth-gradient-start: #ff9a56;--auth-gradient-end: #ffffff;--auth-glass-bg: rgba(255, 255, 255, .25);--auth-glass-border: rgba(255, 255, 255, .18)}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-primary-rgb: 26, 26, 26;--bg-secondary: #2d2d2d;--bg-secondary-rgb: 45, 45, 45;--bg-tertiary: #242424;--bg-tertiary-rgb: 36, 36, 36;--text-primary: #ffffff;--text-primary-rgb: 255, 255, 255;--text-secondary: #cccccc;--text-secondary-rgb: 204, 204, 204;--text-muted: #888888;--text-muted-rgb: 136, 136, 136;--border-color: #404040;--border-color-rgb: 64, 64, 64;--shadow-light: rgba(0, 0, 0, .3);--shadow-light-rgb: 0, 0, 0;--shadow-medium: rgba(0, 0, 0, .5);--shadow-medium-rgb: 0, 0, 0;--accent-primary: #4a9eda;--accent-primary-rgb: 74, 158, 218;--accent-primary-hover: #357abd;--accent-success: #2ecc71;--accent-success-rgb: 46, 204, 113;--accent-success-hover: #27ae60;--accent-danger: #e74c3c;--accent-danger-rgb: 231, 76, 60;--accent-danger-hover: #c0392b;--accent-muted: #7f8c8d;--accent-muted-hover: #6c7a7b;--auth-gradient-start: #6b4423;--auth-gradient-end: #2d2d2d;--auth-glass-bg: rgba(45, 45, 45, .25);--auth-glass-border: rgba(255, 255, 255, .1)}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}body{background-color:var(--bg-tertiary);color:var(--text-primary)}.auth-form h1{color:var(--text-primary)}.form-group label{color:var(--text-secondary)}.form-group input{background-color:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}.form-group input:focus{border-color:var(--accent-primary)}.auth-form button{background-color:var(--accent-primary)}.auth-form button:hover{background-color:var(--accent-primary-hover)}.auth-switch{border-top-color:var(--border-color)}.auth-switch a{color:var(--accent-primary)}.dashboard-container{background-color:var(--bg-secondary)}.logout-btn{background-color:var(--accent-danger)}.logout-btn:hover{background-color:var(--accent-danger-hover)}.welcome-section{background:var(--bg-primary);box-shadow:0 2px 4px var(--shadow-light)}.welcome-section h2,.habits-header h3,.habit-title{color:var(--text-primary)}.welcome-section p,.habit-description{color:var(--text-secondary)}.habit-item{border-color:var(--border-color)}.habit-item:hover{box-shadow:0 4px 12px var(--shadow-medium)}.streak{color:var(--accent-danger)}.completion-rate{color:var(--accent-success)}.complete-btn{background-color:var(--accent-primary)}.complete-btn:hover{background-color:var(--accent-primary-hover)}.uncomplete-btn{background-color:var(--accent-success)}.uncomplete-btn:hover{background-color:var(--accent-success-hover)}.habits-placeholder{color:var(--text-secondary)}.add-habit-btn{background-color:var(--accent-success)}.add-habit-btn:hover{background-color:var(--accent-success-hover)}.modal-backdrop{background-color:#00000080}.modal-dialog{background:var(--bg-primary)}.modal-dialog h3{color:var(--text-primary)}.form-group textarea{background-color:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}.form-group textarea:focus{border-color:var(--accent-primary)}.form-actions button[type=submit]{background-color:var(--accent-success)}.form-actions button[type=submit]:hover{background-color:var(--accent-success-hover)}.form-actions button[type=button]{background-color:var(--accent-muted)}.form-actions button[type=button]:hover{background-color:var(--accent-muted-hover)}@keyframes successPulse{0%{background-color:var(--bg-primary);transform:scale(1)}50%{background-color:var(--accent-success);opacity:.1;transform:scale(1.02)}to{background-color:var(--bg-primary);transform:scale(1)}}.error-message{background-color:var(--accent-danger);box-shadow:0 4px 12px var(--shadow-medium)}.view-tab{background-color:var(--bg-secondary);color:var(--text-secondary);border-color:var(--border-color)}.view-tab.active{background-color:var(--accent-primary);color:#fff}.view-tab:hover:not(.active){background-color:var(--bg-tertiary);color:var(--text-primary)}.habit-number-input{background-color:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}.habit-number-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.habit-search-input{background-color:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}.habit-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.view-switcher{border-color:var(--border-color)}.admin-form input,.admin-form select,.admin-form textarea{background-color:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.form-container{background:var(--bg-primary);border-color:var(--border-color)}.form-container h3{color:var(--text-primary)}.admin-form label{color:var(--text-secondary)}.auth-page{min-height:100vh;background-color:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.theme-toggle{position:absolute;top:var(--space-4);right:var(--space-4);width:44px;height:44px;border:none;border-radius:var(--radius-base);background-color:var(--bg-primary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;z-index:10;color:var(--text-primary)}.theme-toggle:hover{background-color:var(--bg-secondary);transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow-light)}.theme-icon{display:flex;align-items:center;justify-content:center;transition:transform .3s ease;color:currentColor}.theme-toggle:hover .theme-icon{transform:rotate(15deg)}.auth-container{width:100%;max-width:420px}.auth-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 2px 4px var(--shadow-light);padding:var(--space-6);position:relative;transition:all .3s ease}.auth-card:hover{box-shadow:0 4px 8px var(--shadow-medium);transform:translateY(-1px)}.auth-header{text-align:center;margin-bottom:var(--space-5)}.auth-title{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2);line-height:1.2}.auth-subtitle{color:var(--text-secondary);font-size:var(--font-sm);margin:0}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary);line-height:1.25rem}.form-input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-color);border-radius:var(--radius-base);font-size:var(--font-base);line-height:1.25rem;transition:all .3s ease;background-color:var(--bg-primary);color:var(--text-primary)}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2);transform:translateY(-1px)}.form-input:invalid:not(:placeholder-shown){border-color:var(--accent-danger)}.form-input:invalid:not(:placeholder-shown):focus{box-shadow:0 0 0 2px rgba(var(--accent-danger-rgb),.2)}.form-error{font-size:var(--font-xs);color:var(--accent-danger);line-height:1rem;display:none;margin-top:var(--space-1)}.form-error:not(:empty){display:block}.auth-error{background-color:rgba(var(--accent-danger-rgb),.1);border:1px solid var(--accent-danger);color:var(--accent-danger);padding:var(--space-3) var(--space-4);border-radius:var(--radius-base);font-size:var(--font-sm);line-height:1.25rem;margin-top:var(--space-4);display:none;text-align:center}.auth-error:not(:empty){display:block}.auth-button{width:100%;background-color:var(--accent-primary);color:var(--text-primary, white);border:none;border-radius:var(--radius-base);padding:var(--space-3) var(--space-6);font-size:var(--font-base);font-weight:600;line-height:1.25rem;cursor:pointer;transition:all .3s ease;position:relative;min-height:48px;display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.auth-button:hover:not(:disabled){background-color:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow-light)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.button-text{transition:opacity .15s ease-in-out}.button-loader{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid var(--text-primary, white);border-radius:50%;animation:spin .6s linear infinite}.auth-footer{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-color);text-align:center}.auth-switch{font-size:var(--font-sm);color:var(--text-secondary);margin:0}.auth-link{color:var(--accent-primary);text-decoration:none;font-weight:500;transition:color .15s ease-in-out}.auth-link:hover{color:var(--accent-primary-hover);text-decoration:underline}.auth-button-secondary{background-color:var(--accent-muted);color:var(--text-primary, white)}.auth-button-secondary:hover:not(:disabled){background-color:var(--accent-muted-hover)}@media(max-width:640px){.auth-page{padding:var(--space-3)}.auth-card{padding:var(--space-4);border-radius:var(--radius-base)}.auth-title{font-size:var(--font-xl)}.form-row{grid-template-columns:1fr;gap:var(--space-3)}.auth-form{gap:var(--space-3)}}@media(max-width:380px){.auth-page{padding:var(--space-2)}.auth-card{padding:var(--space-3)}.auth-title{font-size:var(--font-lg)}.form-input,.auth-button{padding:var(--space-3)}}@media(min-width:768px){.auth-card{padding:var(--space-8)}.auth-title{font-size:var(--font-3xl)}}@media(prefers-contrast:high){.auth-card{border:2px solid var(--text-primary)}.form-input{border-width:2px}.auth-button{border:2px solid transparent}}@media(prefers-reduced-motion:reduce){.form-input,.auth-button,.auth-link,.button-loader,.theme-toggle{transition:none;animation:none}.auth-button:hover:not(:disabled){transform:none}.theme-toggle:hover,.auth-card:hover{transform:none}}.dashboard-container{min-height:100vh;background-color:var(--bg-secondary, #f8f9fa);display:flex;flex-direction:column}.logout-btn{padding:var(--space-2) var(--space-4);background-color:var(--accent-danger, #e74c3c);color:var(--text-primary, white);border:none;border-radius:var(--radius-base);cursor:pointer;transition:all .3s ease;font-weight:600;font-size:var(--font-sm);white-space:nowrap;min-height:clamp(2rem,1.8rem + 1vw,2.5rem)}.logout-btn:hover{background-color:var(--accent-danger-hover, #c0392b);transform:translateY(-1px);box-shadow:0 clamp(.25rem,.2rem + .25vw,.5rem) clamp(.5rem,.4rem + .5vw,1rem) var(--shadow-medium, rgba(0, 0, 0, .15))}@media(max-width:768px){.logout-btn{width:100%;padding:var(--space-3)}}.dashboard-main{flex:1;padding:var(--space-5);max-width:1100px;margin:0 auto;width:100%}@media(max-width:768px){.dashboard-main{padding:var(--space-3)}}@media(max-width:480px){.dashboard-main{padding:var(--space-2)}}.dashboard-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-4)}.date-display{font-size:var(--font-lg);font-weight:600;color:var(--text-primary, #2c3e50)}.view-switcher{display:flex;background:var(--bg-secondary, #eee);padding:4px;border-radius:var(--radius-lg);gap:4px}.view-tab{padding:8px 16px;border:none;background:transparent;border-radius:var(--radius-base);cursor:pointer;font-weight:500;color:var(--text-secondary, #666);transition:all .2s}.view-tab.active{background:var(--bg-primary);color:var(--accent-primary);box-shadow:0 1px 3px var(--shadow-light)}.analytics-view{display:flex;flex-direction:column;gap:var(--space-5)}.habit-search-container{position:relative;display:flex;align-items:center;gap:var(--space-2)}.analytics-back-button{background:var(--bg-primary);border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-lg);padding:var(--space-3);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:var(--space-1)}.analytics-back-button:hover{background-color:var(--bg-secondary, #f8f9fa);transform:translate(-2px);border-color:var(--border-color-hover, #d1d5db)}.analytics-back-button:active{transform:translate(0);background-color:var(--bg-tertiary, #e9ecef)}.analytics-back-button svg{width:20px;height:20px;color:var(--text-secondary, #6c757d)}.analytics-back-button:hover svg{color:var(--text-primary, #212529)}.habit-search-input{flex:1;padding:var(--space-3) var(--space-4);border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-lg);font-size:var(--font-base)}.habit-search-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary);border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-lg);margin-top:4px;max-height:300px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0000001a;display:none}.habit-search-results.show{display:block}.search-result-item{padding:var(--space-3);cursor:pointer;display:flex;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border-color, #f0f0f0)}.search-result-item:hover{background-color:var(--bg-secondary, #f8f9fa)}.analytics-content{background:var(--bg-primary);padding:var(--space-5);border-radius:var(--radius-lg);box-shadow:0 2px 4px var(--shadow-light, rgba(0, 0, 0, .1))}.heatmap-header{margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:space-between}.heatmap-stats-summary{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--bg-secondary, #f8f9fa);border-radius:var(--radius-base)}.stat-box{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:var(--font-xl);font-weight:700;color:var(--accent-primary, #3498db)}.stat-label{font-size:var(--font-xs);color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.calendar-heatmap-grid,.calendar-heatmap-week{display:flex;flex-direction:column}.calendar-heatmap-day{transition:transform .1s ease,box-shadow .3s ease}.calendar-heatmap-day:hover{transform:scale(1.2);z-index:2;box-shadow:0 0 4px var(--shadow-light)}.welcome-section{background:var(--bg-primary);padding:var(--space-5);border-radius:var(--radius-lg);box-shadow:0 2px 4px var(--shadow-light, rgba(0, 0, 0, .1));margin-bottom:var(--space-5);transition:all .3s ease}.welcome-section:hover{box-shadow:0 4px 8px var(--shadow-medium, rgba(0, 0, 0, .15));transform:translateY(-1px)}.habits-section{margin-bottom:var(--space-5)}.welcome-section h2{color:var(--text-primary, #2c3e50);margin-bottom:var(--space-2);font-size:var(--font-xl);font-weight:600}.welcome-section p{color:var(--text-secondary, #666);font-size:var(--font-base);line-height:1.7;margin:0}@media(max-width:768px){.welcome-section{padding:var(--space-4);border-radius:var(--radius-base);margin-bottom:var(--space-4)}.habits-section{margin-bottom:var(--space-4)}.welcome-section h2{font-size:var(--font-xl);margin-bottom:var(--space-2)}.welcome-section p{font-size:var(--font-sm)}}@media(max-width:480px){.welcome-section{padding:var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-3)}.habits-section{margin-bottom:var(--space-3)}.welcome-section h2{font-size:var(--font-lg)}}.habits-header{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.habits-header h3{color:var(--text-primary, #2c3e50);margin:0;font-size:var(--font-xl);font-weight:600}.header-title-group{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3)}.header-title-group .buttons-group{display:flex;gap:var(--space-2);margin-left:auto}.header-title-group #import-json-btn{margin-left:var(--space-2)}.habits-list{display:flex;flex-direction:column;gap:var(--space-3)}.habit-item{border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);transition:all .2s ease;background:var(--bg-primary);display:flex;flex-direction:row;align-items:center;min-height:auto;gap:var(--space-4);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.habit-item:hover{box-shadow:0 2px 8px var(--shadow-medium, rgba(0, 0, 0, .1));transform:translateY(-1px);border-color:var(--accent-primary, #3498db)}.habit-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:0;flex:1;min-width:0}.habit-icon{font-size:1.25rem;flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:0;color:currentColor}.habit-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.habit-title{color:var(--text-primary, #2c3e50);margin:0;font-size:var(--font-base);font-weight:600;line-height:1.3;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.habit-description{color:var(--text-secondary, #666);margin:0;font-size:var(--font-xs);line-height:1.3;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.add-habit-btn{padding:var(--space-4);background-color:transparent;color:inherit;border:none;border-radius:var(--radius-base);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px}.add-habit-btn svg{fill:currentColor;width:40px;height:40px}.add-habit-btn:hover{background-color:rgba(var(--accent-primary-rgb),.1);transform:translateY(-2px)}.settings-habits-btn{padding:var(--space-4);background-color:transparent;color:inherit;border:none;border-radius:var(--radius-base);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px}.settings-habits-btn svg{fill:currentColor;width:40px;height:40px}.settings-habits-btn:hover,.settings-habits-btn.settings-active{background-color:rgba(var(--accent-primary-rgb),.1);transform:translateY(-2px)}@media(max-width:768px){.add-habit-btn,.settings-habits-btn{width:56px;height:56px;padding:var(--space-3)}.add-habit-btn svg,.settings-habits-btn svg{width:28px;height:28px}}@media(max-width:480px){.add-habit-btn,.settings-habits-btn{width:48px;height:48px;padding:var(--space-2)}.add-habit-btn svg,.settings-habits-btn svg{width:24px;height:24px}}.habit-input-group{display:flex;align-items:center;gap:var(--space-2)}.habit-number-input{width:70px;padding:var(--space-1) var(--space-2);border:1px solid var(--border-color, #ccc);border-radius:var(--radius-base);font-size:var(--font-sm);text-align:center;transition:border-color .2s ease;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.habit-number-input::-webkit-outer-spin-button,.habit-number-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.habit-number-input[type=number]::-webkit-outer-spin-button,.habit-number-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.habit-number-input[type=number]{-moz-appearance:textfield}.habit-number-input:focus{outline:none;border-color:var(--accent-primary, #3498db);box-shadow:0 0 0 2px #3498db33}.habit-unit{color:var(--text-secondary, #666);font-size:var(--font-xs);font-weight:500;white-space:nowrap}.habit-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:0;flex-shrink:0}.action-btn{width:2.25rem;height:2.25rem;border-radius:var(--radius-base);border:1px solid transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:1.1rem}.btn-validate{background-color:var(--bg-secondary);color:var(--accent-success, #27ae60);border:1px solid var(--accent-success, #27ae60)}.btn-validate:hover{background-color:var(--accent-success, #27ae60);color:var(--text-primary, white)}.btn-fail{background-color:var(--bg-secondary);color:var(--accent-danger, #ef4444);border:1px solid var(--accent-danger, #ef4444)}.btn-fail:hover{background-color:var(--accent-danger, #ef4444);color:var(--text-primary, white)}.complete-btn,.uncomplete-btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-base);cursor:pointer;transition:all .2s;font-size:var(--font-sm);font-weight:600;white-space:nowrap;min-height:2.25rem}.undo-btn{background:transparent;border:none;color:var(--text-secondary, #666);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-base);font-size:.9rem;display:flex;align-items:center;gap:var(--space-2);transition:all .2s}.undo-btn:hover{background-color:#0000000d;color:var(--accent-danger, #ef4444)}.completion-message{font-size:var(--font-sm);font-weight:600;color:var(--accent-success, #166534);margin-right:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}.habit-item.status-success{background-color:rgba(var(--accent-success-rgb),.15);border-color:var(--accent-success, #86efac)}.habit-item.status-fail{background-color:rgba(var(--accent-danger-rgb),.15);border-color:var(--accent-danger)}.habit-item.status-fail .completion-message{color:var(--accent-danger, #991b1b)}.habit-item.status-success .habit-input-group,.habit-item.status-success .btn-validate,.habit-item.status-fail .habit-input-group,.habit-item.status-fail .btn-validate{display:none}.habits-summary-stats{display:flex;gap:var(--space-2);align-items:center}.stat-badge{background-color:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e1e8ed);color:var(--text-secondary, #555);font-size:var(--font-xs);padding:.2rem .6rem;border-radius:999px;font-weight:500;display:flex;align-items:center;gap:.3rem;cursor:help;position:relative;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.stat-badge strong{color:var(--text-primary, #2c3e50)}.habits-placeholder{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-secondary, #666);grid-column:1 / -1}.habits-placeholder h4{font-size:var(--font-xl);margin-bottom:var(--space-3);color:var(--text-primary, #2c3e50)}.habits-placeholder p{font-size:var(--font-base);margin-bottom:var(--space-6);line-height:1.6}.success-animation{animation:successPulse 1s ease-in-out}@keyframes successPulse{0%{background-color:var(--bg-primary);transform:scale(1)}25%{background-color:rgba(var(--accent-success-rgb, 39, 174, 96),.1);transform:scale(1.01)}50%{background-color:rgba(var(--accent-success-rgb, 39, 174, 96),.2);transform:scale(1.02)}75%{background-color:rgba(var(--accent-success-rgb, 39, 174, 96),.1);transform:scale(1.01)}to{background-color:var(--bg-primary);transform:scale(1)}}@media(min-width:768px){.habits-list{gap:var(--space-3)}}@media(max-width:768px){.habits-header{gap:var(--space-2);margin-bottom:var(--space-4)}.header-title-group{flex-wrap:wrap;gap:var(--space-2)}.habits-header h3{font-size:var(--font-lg);text-align:left;flex:1}.habit-item{flex-direction:row;align-items:center;padding:var(--space-2) var(--space-3);gap:var(--space-2);min-height:auto;margin-bottom:var(--space-3)}.habit-header{margin-bottom:0;flex:1;min-width:0}.habit-actions{flex-shrink:0}.habit-title,.habit-description{white-space:normal;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.habit-icon{font-size:1rem;width:1.5rem;height:1.5rem;color:currentColor}.habit-title{font-size:var(--font-sm)}.habit-description{font-size:10px}.habit-stats{gap:var(--space-2);padding:0 var(--space-1);font-size:10px;height:auto}.habit-actions{gap:var(--space-1)}.action-btn{width:1.75rem;height:1.75rem;font-size:.9rem}.habit-number-input{width:50px;font-size:12px;padding:2px 4px}}@media(max-width:480px){.habits-header h3{font-size:var(--font-lg)}}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0f172aa6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:var(--space-4);animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.modal-dialog{background:var(--bg-primary);padding:var(--space-6);border-radius:24px;width:100%;max-width:36rem;max-height:min(85vh,700px);overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;position:relative;color:var(--text-primary, #2c3e50)}@media(min-width:768px){.modal-dialog{max-width:40rem}}.modal-close-button{position:absolute;top:var(--space-3);right:var(--space-3);background:#94a3b81a;border:1px solid rgba(148,163,184,.2);font-size:1.25rem;line-height:1;color:#94a3b899;cursor:pointer;padding:var(--space-2);border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:2.5rem;height:2.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.7}.modal-close-button:hover{background:#94a3b833;border-color:#94a3b866;color:#475569e6;transform:scale(1.05);opacity:1;box-shadow:0 4px 12px #0000001a}.modal-close-button:active{transform:scale(.95);transition:transform .1s}.modal-dialog h3{color:var(--text-primary, #1e293b);margin-top:0;margin-bottom:var(--space-4);font-size:var(--font-xl);font-weight:600;line-height:1.4;padding-right:var(--space-8)}.modal-dialog .form-group{margin-bottom:var(--space-3)}.modal-dialog .form-group label{display:block;margin-bottom:.375rem;font-weight:500;color:var(--text-secondary, #64748b);font-size:.875rem}.modal-dialog .form-group input,.modal-dialog .form-group textarea{width:100%;padding:.75rem 1rem;border:2px solid var(--border-color, #e2e8f0);border-radius:16px;font-size:.925rem;font-family:inherit;transition:all .2s ease;background-color:var(--bg-primary);color:var(--text-primary, #334155)}.modal-dialog .form-group input:focus,.modal-dialog .form-group textarea:focus{outline:none;border-color:var(--accent-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.modal-dialog .form-group textarea{resize:vertical;min-height:80px;line-height:1.5}.color-swatches{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.color-swatch{width:2rem;height:2rem;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .2s;position:relative}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{transform:scale(1.1);box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent-primary)}.form-actions{display:flex;gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-5)}.form-actions button{padding:.75rem 1.5rem;border:none;border-radius:16px;cursor:pointer;transition:all .2s ease;font-weight:500;font-size:.875rem;white-space:nowrap;min-height:auto}.form-actions button[type=submit]{background-color:var(--accent-success, #10b981);color:#fff}.form-actions button[type=submit]:hover{background-color:var(--accent-success-hover, #059669);transform:translateY(-1px);box-shadow:0 2px 4px #10b98133}.form-actions button[type=button]{background-color:var(--bg-secondary);color:var(--text-secondary, #64748b)}.form-actions button[type=button]:hover{background-color:var(--bg-tertiary, #e2e8f0);color:var(--text-primary, #334155)}@media(max-width:640px){.modal-backdrop{padding:var(--space-4);align-items:center}.modal-dialog{padding:var(--space-5);max-width:100%;border-radius:var(--radius-lg)}.form-actions{flex-direction:column;gap:var(--space-2)}.form-actions button{width:100%;padding:.75rem}}[data-theme=dark] .modal-dialog{background:var(--bg-primary);border:1px solid var(--border-color);box-shadow:0 25px 50px -12px #00000080}[data-theme=dark] .modal-backdrop{background-color:#000000bf}[data-theme=dark] .modal-close-button{background:#ffffff14;border-color:#ffffff26;color:#ffffff80}[data-theme=dark] .modal-close-button:hover{background:#ffffff26;border-color:#ffffff4d;color:#ffffffe6;box-shadow:0 4px 12px #0000004d}[data-theme=dark] .color-swatch.selected{box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--text-primary)}.form-radio-group{display:flex;gap:var(--space-4, 1rem);margin-top:.5rem}.form-radio-label{display:flex;align-items:center;gap:var(--space-2, .5rem);cursor:pointer}.form-radio-label input[type=radio]{width:auto;margin:0}.form-checkbox-label{display:flex;align-items:center;gap:var(--space-2, .5rem);cursor:pointer;margin-top:.5rem}.form-checkbox-label input[type=checkbox]{width:auto;margin:0}.form-help{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem;font-style:italic}.frequency-denominator{min-width:10rem!important;padding:.75rem 1rem!important;font-size:1rem!important;font-weight:600;border:2px solid var(--border-color);border-radius:16px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all .2s ease}.frequency-denominator:hover{border-color:var(--accent-color);background:var(--bg-hover)}.frequency-denominator:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.1)}@media(max-width:768px){.frequency-inputs{flex-direction:column;gap:var(--space-3);align-items:stretch}.frequency-numerator{width:100%!important;font-size:1.25rem!important}.frequency-separator{text-align:center;padding:.5rem 0}.frequency-denominator{min-width:auto!important}}.habit-type-selector-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-4)}.habit-type-selector-modal{background:var(--bg-primary);border-radius:24px;padding:var(--space-6);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.habit-type-selector-header{text-align:center;margin-bottom:var(--space-6)}.habit-type-selector-header h2{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:700;margin-bottom:var(--space-2)}.habit-type-selector-header p{margin:0;color:var(--text-secondary);font-size:1rem;line-height:1.5}.habit-type-options{display:flex;flex-direction:column;gap:var(--space-4)}.habit-type-option{background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:20px;padding:var(--space-5);cursor:pointer;transition:all .2s ease;text-align:left}.habit-type-option:hover{border-color:var(--accent-color);background:var(--bg-hover);transform:translateY(-3px);box-shadow:0 15px 35px -5px #00000026}.habit-type-option-icon{font-size:2.5rem;margin-bottom:var(--space-3);display:block}.habit-type-option-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)}.habit-type-option-description{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.habit-type-close{position:absolute;top:var(--space-4);right:var(--space-4);background:var(--bg-secondary);border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer;padding:var(--space-3);border-radius:12px;transition:all .2s ease;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center}.habit-type-close:hover{background:var(--bg-secondary);color:var(--text-primary)}@media(max-width:767px){.habit-type-selector-overlay{padding:var(--space-2)}.habit-type-selector-modal{padding:var(--space-4);margin:var(--space-2)}.habit-type-selector-header h2{font-size:1.25rem}.habit-type-option{padding:var(--space-4)}.habit-type-option-icon{font-size:2rem}.habit-type-option-title{font-size:1.125rem}}@media(min-width:768px){.habit-type-selector-modal{margin:var(--space-4);max-width:500px}}.frequency-selector-modal .modal-dialog{max-width:400px;padding:var(--space-6)}.frequency-selector-header{text-align:center;margin-bottom:var(--space-4)}.frequency-selector-header h3{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:700}.frequency-selector-options{display:flex;flex-direction:column;gap:var(--space-2)}.frequency-selector-option{background:none;border:none;cursor:pointer;width:100%;transition:all .2s ease;border-radius:16px;padding:0}.frequency-option-content{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-3);border:2px solid var(--border-color);border-radius:16px;background:var(--bg-secondary);transition:all .2s ease}.frequency-option-text{text-align:left;flex:1}.frequency-option-label{font-weight:600;color:var(--text-primary);font-size:1rem;margin-bottom:.25rem}.frequency-option-description{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.frequency-option-check{color:var(--accent-color);font-size:1.25rem;font-weight:700}.goal-type-selector-modal .modal-dialog{max-width:450px;padding:var(--space-6)}.goal-type-selector-header{text-align:center;margin-bottom:var(--space-4)}.goal-type-selector-header h3{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:700}.goal-type-selector-options{display:flex;flex-direction:column;gap:var(--space-3)}.goal-type-selector-option{background:none;border:none;cursor:pointer;width:100%;transition:all .2s ease;border-radius:16px;padding:0}.goal-option-content{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-4);border:2px solid var(--border-color);border-radius:16px;background:var(--bg-secondary);transition:all .2s ease}.goal-option-left{display:flex;align-items:center;gap:var(--space-3);flex:1}.goal-option-icon{font-size:1.5rem;color:var(--success-color, #10b981)}.goal-option-text{text-align:left;flex:1}.goal-option-label{font-weight:600;color:var(--text-primary);font-size:1.1rem;margin-bottom:.25rem}.goal-option-description{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.goal-option-check{color:var(--accent-color);font-size:1.25rem;font-weight:700}.color-selector-modal .modal-dialog{max-width:500px;padding:var(--space-6)}.color-selector-header{text-align:center;margin-bottom:var(--space-4)}.color-selector-header h3{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:700}.color-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.color-selector-option{background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:16px;transition:all .2s ease;display:flex;flex-direction:column;align-items:center}.color-option-wrapper{position:relative;width:60px;height:60px;margin:0 auto}.color-circle{width:100%;height:100%;border-radius:50%;border:none;transition:all .2s ease;cursor:pointer;box-shadow:0 2px 8px #00000026}.color-check{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:1.5rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5)}.color-label{margin-top:var(--space-2);font-size:.75rem;color:var(--text-secondary);text-align:center;font-weight:500}.habit-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-4)}.habit-modal{background:var(--bg-primary);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:95vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040;position:relative}.habit-modal-header{padding:var(--space-6);border-bottom:1px solid var(--border-color);background:var(--bg-primary);z-index:1}.habit-modal-title{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:700}.habit-modal-body{padding:var(--space-6)}.habit-modal-footer{padding:var(--space-6);border-top:1px solid var(--border-color);background:var(--bg-secondary);display:flex;gap:var(--space-3);justify-content:flex-end}.habit-form-group{margin-bottom:var(--space-5)}.habit-form-label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--text-primary);font-size:.875rem}.habit-form-input{width:100%;padding:var(--space-4);border:2px solid var(--border-color);border-radius:16px;background:var(--bg-primary);color:var(--text-primary);font-size:1rem;transition:all .2s ease;box-sizing:border-box}.habit-form-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.1)}.habit-form-textarea{width:100%;padding:var(--space-4);border:2px solid var(--border-color);border-radius:16px;background:var(--bg-primary);color:var(--text-primary);font-size:1rem;transition:all .2s ease;box-sizing:border-box;resize:vertical;min-height:100px}.habit-form-textarea:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.1)}.habit-button{padding:var(--space-4) var(--space-5);border:none;border-radius:16px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.habit-button-primary{background:var(--accent-color);color:#fff}.habit-button-primary:hover{background:var(--accent-color-dark);transform:translateY(-1px)}.habit-button-secondary{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-color)}.habit-button-secondary:hover{background:var(--bg-hover);border-color:var(--accent-color)}.habit-close-button{position:absolute;top:var(--space-4);right:var(--space-4);background:#94a3b81a;border:1px solid rgba(148,163,184,.2);color:#94a3b899;font-size:1.5rem;cursor:pointer;padding:var(--space-3);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:20;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.7}.habit-close-button:hover{background:#94a3b833;border-color:#94a3b866;color:#475569e6;transform:scale(1.05);opacity:1;box-shadow:0 4px 12px #0000001a}[data-theme=dark] .habit-close-button{background:#ffffff14;border-color:#ffffff26;color:#ffffff80}[data-theme=dark] .habit-close-button:hover{background:#ffffff26;border-color:#ffffff4d;color:#ffffffe6;box-shadow:0 4px 12px #0000004d}.habit-close-button:active{transform:scale(.95);transition:transform .1s}@media(max-width:767px){.habit-modal-overlay{padding:0}.habit-modal{max-width:100%;max-height:100vh;border-radius:0;height:100vh;display:flex;flex-direction:column}.habit-modal-header{padding:var(--space-4)}.habit-modal-title{font-size:1.25rem}.habit-modal-body{padding:var(--space-4);flex:1;overflow-y:auto}.habit-modal-footer{padding:var(--space-4)}.habit-form-group{margin-bottom:var(--space-4)}.habit-form-input,.habit-form-textarea{padding:var(--space-4);font-size:1rem}.habit-button{padding:var(--space-4);font-size:1rem;flex:1}}@media(min-width:768px){.habit-modal{margin:var(--space-4);border-radius:var(--radius-lg);height:auto;max-height:90vh}.habit-modal-header,.habit-modal-body,.habit-modal-footer{padding:var(--space-6)}.habit-button{min-width:120px;flex:none}.skip-reason-remove{background:none;border:none;color:var(--text-secondary);font-size:1.25rem;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-base);transition:all .2s ease}.skip-reason-remove:hover{background-color:var(--bg-secondary);color:var(--text-danger, #dc2626)}.skip-reason-input{flex:1}.habit-target-inputs{display:flex;gap:var(--space-3);align-items:center;width:100%}.habit-target-input{flex:1;text-align:center;font-weight:600}.habit-unit-input{flex:1}.habit-target-input::-webkit-outer-spin-button,.habit-target-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.habit-target-input[type=number]{-moz-appearance:textfield}.habit-frequency-inputs{display:flex;align-items:center;gap:var(--space-3);width:100%}.habit-frequency-input{flex:1;text-align:center;font-weight:600;border-radius:16px;padding:var(--space-3)}.habit-frequency-button{flex:2;text-align:left;font-weight:600;border-radius:16px;padding:var(--space-3)}.habit-color-picker{width:3rem;height:3rem;border-radius:50%;border:3px solid var(--bg-primary);background:var(--accent-color);cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #00000026}.habit-color-picker:hover{transform:scale(1.05);box-shadow:0 0 0 2px var(--accent-color),0 4px 12px #00000026}flex: 1;width: 100% !important;max-width: 100% !important;padding: .75rem !important;font-size: 1rem !important;font-weight: 500;border: 2px solid var(--border-color);border-radius: var(--radius-md);background: var(--bg-primary);color: var(--text-primary);transition: all .2s ease;box-sizing: border-box !important}.unit-input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 3px rgba(var(--accent-color-rgb),.1)}.modal-dialog.roadmap-modal{max-width:48rem;padding:var(--space-6)}.roadmap-priority-section{margin-bottom:var(--space-6)}.roadmap-priority-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);font-weight:600;font-size:var(--font-lg)}.roadmap-priority-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.roadmap-items{display:flex;flex-direction:column;gap:var(--space-3)}.roadmap-item{border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--bg-secondary);transition:all .2s ease}.roadmap-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.roadmap-item-content{display:flex;align-items:flex-start;gap:var(--space-3)}.roadmap-item-icon{font-size:1.25rem;margin-top:.125rem;flex-shrink:0}.roadmap-item-text{flex:1}.roadmap-item-title{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--font-base);font-weight:600;line-height:1.4}.roadmap-item-description{margin:0;color:var(--text-secondary);line-height:1.5;font-size:var(--font-sm)}.roadmap-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);font-size:var(--font-sm)}.roadmap-priority-high .roadmap-priority-header{color:#ef4444}.roadmap-priority-high .roadmap-priority-indicator{background:#ef4444}.roadmap-priority-medium .roadmap-priority-header{color:#f59e0b}.roadmap-priority-medium .roadmap-priority-indicator{background:#f59e0b}.roadmap-priority-low .roadmap-priority-header{color:#10b981}.roadmap-priority-low .roadmap-priority-indicator{background:#10b981}.roadmap-btn{padding:1rem 2rem!important;font-size:1.1rem!important;font-weight:600!important;border-radius:12px!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;border:none!important;color:#fff!important;cursor:pointer!important;transition:all .3s ease!important;box-shadow:0 4px 15px #667eea4d!important;display:inline-flex!important;align-items:center!important;gap:.75rem!important;position:relative!important;overflow:hidden!important;text-decoration:none!important;min-height:auto!important}.roadmap-btn:hover{transform:translateY(-2px) scale(1.02)!important;box-shadow:0 8px 25px #667eea66!important;background:linear-gradient(135deg,#5a6fd8,#6a4190)!important}.roadmap-btn:active{transform:translateY(0) scale(.98)!important;box-shadow:0 2px 10px #667eea4d!important}.roadmap-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.roadmap-btn:hover:before{left:100%}.roadmap-btn span:first-child{font-size:1.3rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.roadmap-btn span:nth-child(2){text-shadow:0 1px 2px rgba(0,0,0,.1)}@media(max-width:640px){.modal-dialog.roadmap-modal{padding:var(--space-4);max-width:100%}.roadmap-priority-header{font-size:var(--font-base)}.roadmap-item{padding:var(--space-3)}.roadmap-item-content{gap:var(--space-2)}.roadmap-item-title{font-size:var(--font-sm)}.roadmap-item-description{font-size:var(--font-xs)}.roadmap-btn{padding:.875rem 1.5rem!important;font-size:1rem!important;gap:.5rem!important}.roadmap-btn span:first-child{font-size:1.1rem}}.modal-dialog.privacy-modal{max-width:50rem;padding:var(--space-6)}.privacy-content{color:var(--text-primary);line-height:1.6}.privacy-content h2{color:var(--text-primary);margin:0 0 var(--space-3) 0;font-size:var(--font-2xl);font-weight:700;text-align:center;line-height:1.3}.privacy-update-date{text-align:center;color:var(--text-secondary);font-size:var(--font-sm);margin-bottom:var(--space-6);font-style:italic}.privacy-section{margin-bottom:var(--space-5)}.privacy-section h3{color:var(--text-primary);margin:0 0 var(--space-3) 0;font-size:var(--font-lg);font-weight:600;line-height:1.4;border-bottom:2px solid var(--accent-primary, #3498db);padding-bottom:var(--space-2)}.privacy-section p{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:var(--font-base);line-height:1.6}.privacy-section ul{margin:0 0 var(--space-3) 0;padding-left:var(--space-5);color:var(--text-primary)}.privacy-section li{margin-bottom:var(--space-2);font-size:var(--font-base);line-height:1.6}.privacy-section li:last-child{margin-bottom:0}.privacy-section strong{color:var(--text-primary);font-weight:600}.privacy-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);font-size:var(--font-sm);font-style:italic}.privacy-btn{padding:1rem 2rem!important;font-size:1.1rem!important;font-weight:600!important;border-radius:12px!important;background:linear-gradient(135deg,#10b981,#059669)!important;border:none!important;color:#fff!important;cursor:pointer!important;transition:all .3s ease!important;box-shadow:0 4px 15px #10b9814d!important;display:inline-flex!important;align-items:center!important;gap:.75rem!important;position:relative!important;overflow:hidden!important;text-decoration:none!important;min-height:auto!important}.privacy-btn span:first-child{font-size:1.3rem;transition:transform .3s ease}.privacy-btn span:nth-child(2){font-weight:600;letter-spacing:.3px}.tutorial-btn{padding:1rem 2rem!important;font-size:1.1rem!important;font-weight:600!important;border-radius:12px!important;background:linear-gradient(135deg,#f59e0b,#d97706)!important;border:none!important;color:#fff!important;cursor:pointer!important;transition:all .3s ease!important;box-shadow:0 4px 15px #f59e0b4d!important;display:inline-flex!important;align-items:center!important;gap:.75rem!important;position:relative!important;overflow:hidden!important;text-decoration:none!important;min-height:auto!important}.tutorial-btn:hover{transform:translateY(-2px) scale(1.02)!important;box-shadow:0 8px 25px #f59e0b66!important;background:linear-gradient(135deg,#d97706,#b45309)!important}.tutorial-btn:active{transform:translateY(0) scale(.98)!important;box-shadow:0 2px 10px #f59e0b4d!important}.tutorial-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.tutorial-btn:hover:before{left:100%}.tutorial-btn span:first-child{font-size:1.3rem;transition:transform .3s ease}.tutorial-btn span:nth-child(2){font-weight:600;letter-spacing:.3px}.privacy-btn:hover{transform:translateY(-2px) scale(1.02)!important;box-shadow:0 8px 25px #10b98166!important;background:linear-gradient(135deg,#059669,#047857)!important}.privacy-btn:active{transform:translateY(0) scale(.98)!important;box-shadow:0 2px 10px #10b9814d!important}.privacy-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.privacy-btn:hover:before{left:100%}.privacy-btn span:first-child{font-size:1.3rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.privacy-btn span:nth-child(2){text-shadow:0 1px 2px rgba(0,0,0,.1)}.tutorial-btn span:nth-child(2){text-shadow:0 1px 2px rgba(0,0,0,.1)}@media(max-width:640px){.modal-dialog.privacy-modal{padding:var(--space-4);max-width:100%}.privacy-content h2{font-size:var(--font-xl)}.privacy-section h3{font-size:var(--font-base)}.privacy-section p,.privacy-section li{font-size:var(--font-sm)}.privacy-section ul{padding-left:var(--space-4)}.privacy-btn{padding:.875rem 1.5rem!important;font-size:1rem!important;gap:.5rem!important}.privacy-btn span:first-child{font-size:1.1rem}.tutorial-btn{padding:.875rem 1.5rem!important;font-size:1rem!important;gap:.5rem!important}.tutorial-btn span:first-child{font-size:1.1rem}}.modal-backdrop-mobile-fullscreen{padding:0!important;align-items:stretch!important;justify-content:stretch!important}.modal-dialog-mobile-fullscreen{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;border-radius:0!important;margin:0!important;padding:0!important;display:flex;flex-direction:column}.modal-dialog-mobile-fullscreen .color-circle,.modal-dialog-mobile-fullscreen .habit-color-picker,.modal-dialog-mobile-fullscreen .color-swatch{border-radius:50%!important}.modal-dialog-mobile-fullscreen>*{flex-shrink:0}.modal-dialog-mobile-fullscreen .form-group,.modal-dialog-mobile-fullscreen .habit-form-group,.modal-dialog-mobile-fullscreen .habit-modal-body{flex:1;overflow-y:auto;padding:var(--space-4)}.modal-dialog-mobile-fullscreen .modal-close-button,.modal-dialog-mobile-fullscreen .habit-close-button{position:fixed!important;top:var(--space-4)!important;right:var(--space-4)!important;z-index:1001!important;background:#0000000d!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;border:1px solid rgba(255,255,255,.1)!important;opacity:.6!important}.modal-dialog-mobile-fullscreen .modal-close-button:hover,.modal-dialog-mobile-fullscreen .habit-close-button:hover{background:#0000001a!important;border-color:#fff3!important;opacity:1!important;transform:scale(1.05)!important}.modal-dialog-mobile-fullscreen.habit-modal{height:100vh!important;max-height:none!important}.modal-dialog-mobile-fullscreen .habit-modal-header{padding:var(--space-4)!important;padding-right:var(--space-12)!important;border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-dialog-mobile-fullscreen .habit-modal-body{flex:1;overflow-y:auto;padding:var(--space-4)!important}.modal-dialog-mobile-fullscreen .habit-modal-footer{padding:var(--space-4)!important;border-top:1px solid var(--border-color);flex-shrink:0}.modal-dialog-mobile-fullscreen.frequency-selector-modal .modal-dialog,.modal-dialog-mobile-fullscreen.goal-type-selector-modal .modal-dialog,.modal-dialog-mobile-fullscreen.color-selector-modal .modal-dialog{padding:var(--space-4)!important;padding-top:var(--space-12)!important}.modal-dialog-mobile-fullscreen .form-actions,.modal-dialog-mobile-fullscreen .habit-modal-footer{position:sticky!important;bottom:0!important;background:var(--bg-primary)!important;border-top:1px solid var(--border-color)!important;padding:var(--space-4)!important;margin:0!important;gap:var(--space-2)!important;flex-direction:row!important;justify-content:stretch!important}.modal-dialog-mobile-fullscreen .form-actions button,.modal-dialog-mobile-fullscreen .habit-modal-footer .habit-button{flex:1!important;margin:0!important;min-height:3rem!important}[data-theme=dark] .modal-dialog-mobile-fullscreen .modal-close-button,[data-theme=dark] .modal-dialog-mobile-fullscreen .habit-close-button{background:#ffffff0d!important;border:1px solid rgba(255,255,255,.08)!important;opacity:.6!important}[data-theme=dark] .modal-dialog-mobile-fullscreen .modal-close-button:hover,[data-theme=dark] .modal-dialog-mobile-fullscreen .habit-close-button:hover{background:#ffffff1a!important;border-color:#ffffff26!important;opacity:1!important}.modal-dialog-mobile-fullscreen{overflow:hidden!important}.modal-dialog-mobile-fullscreen .habit-modal-body,.modal-dialog-mobile-fullscreen .form-group,.modal-dialog-mobile-fullscreen .habit-form-group{-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important}@supports (height: 100dvh){.modal-dialog-mobile-fullscreen{height:100dvh!important}}.congratulations-modal .modal-dialog-mobile-fullscreen{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;padding:var(--space-6)!important;background:linear-gradient(135deg,#667eea,#764ba2)!important}.auth-forgot-password{text-align:center;margin-top:var(--space-3)}.auth-forgot-password .auth-link{font-size:var(--font-sm);color:var(--text-secondary);transition:color .15s ease-in-out}.auth-forgot-password .auth-link:hover{color:var(--accent-primary);text-decoration:underline}.forgot-password-modal .modal-dialog{max-width:480px;padding:0}.forgot-password-modal-content{text-align:center;padding:var(--space-6);color:var(--text-primary)}.forgot-password-title{font-size:var(--font-xl);font-weight:700;color:var(--text-primary);margin:0 0 var(--space-3) 0;line-height:1.3}.forgot-password-message{font-size:var(--font-base);color:var(--text-secondary);margin:0 0 var(--space-4) 0;line-height:1.5}.forgot-password-instructions{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-base);padding:var(--space-4);margin:var(--space-4) 0;text-align:left}.forgot-password-instructions p{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-2) 0}.forgot-password-instructions ul{margin:0;padding-left:var(--space-4)}.forgot-password-instructions li{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--space-1);line-height:1.4}.forgot-password-close-button{background-color:var(--accent-primary);color:var(--text-primary, white);border:none;border-radius:var(--radius-base);padding:var(--space-3) var(--space-6);font-size:var(--font-base);font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:var(--space-4);min-height:44px}.forgot-password-close-button:hover{background-color:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 2px 4px var(--shadow-light)}.forgot-password-close-button:active{transform:translateY(0)}@media(max-width:640px){.forgot-password-modal .modal-dialog{max-width:95vw;margin:var(--space-2)}.forgot-password-modal-content{padding:var(--space-4)}.forgot-password-title{font-size:var(--font-lg)}.forgot-password-instructions{padding:var(--space-3)}}.admin-page,.manager-page{padding:var(--space-4)}.admin-header,.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color, #e5e7eb);flex-wrap:wrap;gap:var(--space-2)}.admin-header h1,.manager-header h1{color:var(--text-primary, #333);margin:0}.admin-user,.manager-user{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.role-badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-base);font-size:var(--font-sm);font-weight:600;text-transform:uppercase}.role-badge.admin{background:var(--bg-danger, #dc2626);color:#fff}.role-badge.manager{background:var(--accent-primary);color:var(--text-inverse, #333)}.role-badge.user{background:var(--bg-success, #10b981);color:#fff}.admin-tabs,.manager-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);border-bottom:1px solid var(--border-color, #e5e7eb);flex-wrap:wrap}.tab-btn{padding:var(--space-2) var(--space-3);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:var(--font-sm);font-weight:500;color:var(--text-secondary, #666);transition:all .2s ease}.tab-btn:hover{color:var(--text-primary, #333);background:var(--bg-tertiary)}.tab-btn.active{color:var(--accent-color, #3b82f6);border-bottom-color:var(--accent-color, #3b82f6);background:var(--bg-secondary)}.admin-content,.manager-content{margin-top:var(--space-6)}.tab-content{display:none}.tab-content.active{display:block}.admin-stats-compact{margin-bottom:var(--space-4)}.stats-compact{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-3)}.stats-compact h3{margin:0 0 var(--space-2) 0;color:var(--text-primary, #333);font-size:var(--font-lg)}.stats-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.stat-group{flex:1;min-width:250px}.stat-title{display:block;font-size:var(--font-sm);font-weight:600;color:var(--text-secondary, #666);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.stat-items{display:flex;gap:var(--space-2);flex-wrap:wrap}.stat-item-small{text-align:center;padding:var(--space-1) var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-base);border:1px solid var(--border-color, #e5e7eb);flex:1;min-width:80px}.stat-value-small{display:block;font-size:var(--font-lg);font-weight:700;color:var(--accent-color, #3b82f6);line-height:1.2}.stat-label-small{display:block;font-size:var(--font-xs);color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.manager-stats-compact{margin-bottom:var(--space-4)}.admin-stats-grid,.manager-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-4)}.stat-card h3{margin:0 0 var(--space-3) 0;color:var(--text-primary, #333);font-size:var(--font-lg)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.stat-item{text-align:center;padding:var(--space-3);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-base)}.stat-value{display:block;font-size:var(--font-2xl);font-weight:700;color:var(--accent-color, #3b82f6);margin-bottom:var(--space-1)}.stat-label{display:block;font-size:var(--font-sm);color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.05em}.progress-bar-container{grid-column:1 / -1;margin-top:var(--space-3)}.progress-bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-base);overflow:hidden}.progress-fill{height:100%;background:var(--bg-success, #10b981);transition:width .3s ease}.progress-label{display:block;text-align:center;font-size:var(--font-sm);font-weight:600;margin-top:var(--space-1);color:var(--text-secondary, #666)}.table-container{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);overflow:hidden;overflow-x:auto}.table-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--border-color, #e5e7eb);flex-wrap:wrap;gap:var(--space-2)}.table-header h3{margin:0;color:var(--text-primary, #333)}.table-actions{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.search-input{padding:var(--space-2);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-base);font-size:var(--font-sm);background:var(--bg-primary);color:var(--text-primary, #333)}.search-input:focus{outline:none;border-color:var(--accent-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.data-table{width:100%;min-width:600px;border-collapse:collapse}.data-table th{background:var(--bg-secondary);padding:var(--space-3);text-align:left;font-weight:600;color:var(--text-primary, #333);border-bottom:1px solid var(--border-color, #e5e7eb)}.data-table td{padding:var(--space-3);border-bottom:1px solid var(--border-color, #e5e7eb)}.data-table tr:last-child td{border-bottom:none}.data-table tr.active{background:var(--bg-secondary)}.data-table tr.inactive{background:var(--bg-tertiary);opacity:.7}.role-select,.creator-select,.filter-select,.manager-select{padding:var(--space-2);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-base);background:var(--bg-primary);color:var(--text-primary, #333);font-size:var(--font-sm)}.form-container{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-6);max-width:500px;margin:0 auto}.form-container h3{margin:0 0 var(--space-4) 0;color:var(--text-primary, #333)}.admin-form .form-group{margin-bottom:var(--space-4)}.admin-form label{display:block;margin-bottom:var(--space-1);font-weight:500;color:var(--text-primary, #333)}.admin-form input,.admin-form select,.admin-form textarea{width:100%;padding:var(--space-2);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-base);font-size:var(--font-base);background:var(--bg-primary);color:var(--text-primary, #333)}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{outline:none;border-color:var(--accent-color, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.members-management{margin-top:var(--space-4)}.available-users{margin-top:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-base)}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.user-card{padding:var(--space-3);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-base);cursor:pointer;transition:all .2s ease}.user-card:hover{background:var(--bg-tertiary)}.member-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);border-bottom:1px solid var(--border-color, #e5e7eb)}.member-item:last-child{border-bottom:none}.member-info{display:flex;align-items:center;gap:var(--space-3)}.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--accent-color, #3b82f6)}.member-controls{display:flex;align-items:center;gap:var(--space-2)}.member-role{text-align:right}.join-date{display:block;font-size:var(--font-sm);color:var(--text-tertiary, #999);margin-top:var(--space-1)}.chart-container{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-6)}.progress-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.system-locks-container{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-6)}.system-locks-container h3{margin:0 0 var(--space-4) 0;color:var(--text-primary, #333);font-size:var(--font-xl)}.locks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.lock-item{background:var(--bg-secondary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-4);transition:all .3s ease}.lock-item:hover{border-color:var(--accent-color, #3b82f6);box-shadow:0 4px 12px #0000001a}.lock-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4)}.lock-icon{font-size:var(--font-2xl);flex-shrink:0}.lock-info h4{margin:0 0 var(--space-1) 0;color:var(--text-primary, #333);font-size:var(--font-lg);font-weight:600}.lock-info p{margin:0;color:var(--text-secondary, #666);font-size:var(--font-sm);line-height:1.5}.lock-control{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.toggle-switch{position:relative;display:inline-block;width:60px;height:34px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-tertiary, #ccc);transition:.4s;border-radius:34px;border:1px solid var(--border-color, #e5e7eb)}.toggle-slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-switch input:checked+.toggle-slider{background-color:var(--bg-danger, #dc2626);border-color:var(--bg-danger, #dc2626)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #dc262633}.toggle-switch input:disabled+.toggle-slider{background-color:var(--bg-tertiary, #e5e7eb);border-color:var(--border-color, #d1d5db);cursor:not-allowed;opacity:.6}.toggle-switch input:checked+.toggle-slider:before{transform:translate(26px)}.toggle-switch input:disabled+.toggle-slider:before{background-color:#9ca3af;cursor:not-allowed}.lock-status{font-size:var(--font-sm);font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-base);text-align:center;min-width:100px}.lock-status.locked{background:var(--bg-danger, #dc2626);color:#fff}.lock-status.unlocked{background:var(--bg-success, #10b981);color:#fff}.lock-status-summary{background:var(--bg-secondary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);padding:var(--space-4)}.lock-status-summary h4{margin:0 0 var(--space-3) 0;color:var(--text-primary, #333);font-size:var(--font-lg)}.admin-status-indicators{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.admin-status-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2);background:var(--bg-primary);border-radius:var(--radius-base);border:1px solid var(--border-color, #e5e7eb)}.admin-status-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500}.admin-status-value{font-size:var(--font-sm);font-weight:600;padding:var(--space-1) var(--space-2);border-radius:var(--radius-base)}.admin-status-value.admin-status-locked{background:var(--accent-danger);color:#fff}.admin-status-value.admin-status-unlocked{background:var(--accent-success);color:#fff}@media(max-width:768px){.progress-stats{grid-template-columns:1fr;gap:var(--space-4)}.stats-grid,.admin-stats-grid,.manager-stats-grid{grid-template-columns:1fr}.locks-grid{grid-template-columns:1fr;gap:var(--space-3)}.lock-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.lock-control{flex-direction:column;align-items:stretch;gap:var(--space-2)}.admin-status-indicators{grid-template-columns:1fr}.admin-status-item{flex-direction:column;align-items:flex-start;gap:var(--space-1)}}.default-habits-container{background:var(--bg-primary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-lg);overflow:hidden}.color-preview{font-family:monospace;font-size:var(--font-xs)}.usage-count{font-weight:600;color:var(--accent-color, #3b82f6);cursor:help}.action-buttons{display:flex;gap:var(--space-1);flex-wrap:wrap}.empty-state{text-align:center;padding:var(--space-8);color:var(--text-secondary, #666)}.empty-state p{margin:var(--space-2) 0}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal-content{background:var(--bg-primary);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);border-bottom:1px solid var(--border-color, #e5e7eb)}.modal-header h3{margin:0;color:var(--text-primary, #333)}.modal-close{background:none;border:none;font-size:var(--font-2xl);cursor:pointer;color:var(--text-secondary, #666);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-base)}.modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary, #333)}.modal-body{padding:var(--space-4)}.habit-preview{background:var(--bg-secondary);border:1px solid var(--border-color, #e5e7eb);border-radius:var(--radius-base);padding:var(--space-3);margin:var(--space-3) 0}.habit-preview h4{margin:0 0 var(--space-1) 0;color:var(--text-primary, #333)}.habit-preview p{margin:0;color:var(--text-secondary, #666)}.warning-box{background-color:rgba(var(--accent-danger-rgb),.1);border:1px solid rgba(var(--accent-danger-rgb),.3);border-radius:var(--radius-base);padding:var(--space-3);margin:var(--space-3) 0;color:var(--text-primary)}.warning-box h4{margin:0 0 var(--space-2) 0;color:var(--accent-danger)}.warning-box p{margin:.25rem 0;color:var(--text-secondary)}.warning-box ul{margin:.5rem 0;padding-left:1.5rem}.warning-box li{margin:.25rem 0;color:var(--text-secondary)}.info-box{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-base);padding:var(--space-3);margin:var(--space-3) 0;color:var(--text-secondary)}.affected-users{max-height:150px;overflow-y:auto;margin:var(--space-2) 0;padding-left:var(--space-4)}.affected-users li{margin-bottom:var(--space-1)}.confirmation-options{margin:var(--space-3) 0}.confirmation-options label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;margin-bottom:var(--space-2)}.modal-actions{display:flex;gap:var(--space-2);justify-content:flex-end;padding:var(--space-4);border-top:1px solid var(--border-color, #e5e7eb)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.badge{padding:var(--space-1) var(--space-2);border-radius:var(--radius-base);font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge.info{background:var(--accent-color, #3b82f6);color:#fff}.badge.success{background:var(--bg-success, #10b981);color:#fff}.badge.warning{background:#f59e0b;color:#fff}@media(max-width:768px){.form-row{grid-template-columns:1fr;gap:var(--space-2)}.modal-content{margin:var(--space-2);max-height:95vh}.action-buttons{flex-direction:column;gap:var(--space-1)}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--bg-primary);box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:1000;transition:background-color .3s ease}.navbar-brand{font-size:1.5rem;font-weight:700;color:var(--accent-primary);cursor:pointer;display:flex;align-items:center;gap:.5rem;text-decoration:none}.nav-links{display:flex;gap:1.5rem;align-items:center;list-style:none;margin:0;padding:0}.nav-item{position:relative}.nav-link{color:var(--text-primary);text-decoration:none;font-weight:500;font-size:1rem;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;cursor:pointer;background:none;border:none;font-family:inherit;display:flex;align-items:center;gap:.5rem}.nav-link svg{fill:currentColor}.nav-link svg{width:20px;height:20px;flex-shrink:0}.nav-link:hover,.nav-link.active{background-color:rgba(var(--accent-primary-rgb),.1);color:var(--accent-primary);font-weight:700}.nav-btn-logout{background-color:transparent;color:var(--accent-danger);padding:.5rem;border-radius:50%;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.nav-btn-logout svg{fill:currentColor}.nav-btn-logout svg{width:20px;height:20px;flex-shrink:0}.nav-btn-logout:hover{background-color:rgba(var(--accent-danger-rgb),.1);color:var(--accent-danger);transform:translateY(-1px)}.burger{display:none;cursor:pointer;background:none;border:none;align-items:center;justify-content:center;padding:8px;z-index:1001;color:var(--text-primary)}.burger svg{fill:currentColor;width:24px;height:24px;flex-shrink:0}.burger:hover,.burger.is-active{background-color:rgba(var(--accent-primary-rgb),.1);color:var(--accent-primary);border-radius:8px}.burger span{display:block;width:25px;height:3px;background-color:var(--text-primary);border-radius:3px;transition:all .3s ease}@media(max-width:768px){.burger{display:flex}.nav-links{position:fixed;top:0;right:-100%;width:100%;height:100vh;max-width:none;background-color:var(--bg-primary);flex-direction:column;align-items:center;justify-content:center;padding:2rem;transition:right .3s ease-in-out;z-index:1000;gap:2rem}.nav-links.is-active{right:0}.nav-item{width:100%;text-align:center;margin-bottom:0}.nav-link{display:inline-block;width:auto;padding:1rem 2rem;font-size:1.5rem;font-weight:600}.logout-item{position:absolute;top:1rem;left:2rem;width:auto;margin:0}.nav-btn-logout{width:auto;min-width:auto;margin:0;padding:.5rem}.burger.is-active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.burger.is-active span:nth-child(2){opacity:0}.burger.is-active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.nav-overlay{display:none!important}}.default-habit-notice{background-color:var(--bg-secondary, #fef3c7);border:1px solid var(--accent-primary, #f59e0b);border-radius:6px;padding:12px;margin-bottom:20px;color:#92400e;font-size:14px}.readonly-form input[readonly],.readonly-form textarea[readonly],.readonly-form select:disabled,.readonly-form input[type=radio]:disabled,.readonly-form input[type=checkbox]:disabled{background-color:var(--bg-tertiary, #f3f4f6);color:#6b7280;cursor:not-allowed;opacity:.7}.readonly-form .color-swatches{pointer-events:none;opacity:.7}.readonly-form .frequency-inputs input,.readonly-form .frequency-inputs select{background-color:var(--bg-tertiary, #f3f4f6);color:#6b7280;cursor:not-allowed}.readonly-form .skip-reasons-list{pointer-events:none;opacity:.7}.readonly-form .skip-reason-remove{display:none!important}.habit-type-toggle{display:flex;background-color:var(--bg-tertiary, #f3f4f6);border-radius:8px;padding:4px;gap:4px}.toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border:none;background-color:transparent;border-radius:6px;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;color:#6b7280}.toggle-btn:hover{background-color:#e5e7eb}.toggle-btn.active{background-color:var(--bg-primary);color:#3b82f6;box-shadow:0 1px 3px #0000001a}.toggle-icon{font-size:16px;color:currentColor}.toggle-text{font-size:14px}.skippable-toggle{display:flex;justify-content:flex-start}.skippable-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid #e5e7eb;background-color:var(--bg-primary);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;color:#6b7280}.skippable-btn:hover{border-color:#d1d5db;background-color:var(--bg-secondary, #f9fafb)}.skippable-btn.active{border-color:#10b981;background-color:#ecfdf5;color:#059669}.skippable-icon{font-size:16px;color:currentColor}.skippable-text{font-size:14px}.form-separator{height:1px;background-color:#e5e7eb;margin:24px 0}.archive-btn{background-color:#374151;color:var(--text-primary, white);border:none;padding:12px 20px;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;transition:all .2s ease;width:100%;justify-content:center;box-shadow:0 2px 4px #0000001a}.archive-btn:hover{background-color:#1f2937;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.archive-btn:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.frequency-inputs{display:flex;align-items:center;gap:2px}.frequency-numerator{flex:0 0 45px;max-width:45px;padding:4px 6px!important;font-size:12px!important;height:28px!important;border-radius:4px!important}.frequency-denominator{flex:1;max-width:80px;padding:4px 6px!important;font-size:12px!important;height:28px!important;border-radius:4px!important}.frequency-separator{font-size:11px;white-space:nowrap;color:#6b7280;margin:0 1px}#habit-goal-type{max-width:120px;padding:4px 6px!important;font-size:12px!important;height:28px!important;border-radius:4px!important}.target-unit-inputs{display:flex;align-items:center;gap:6px}.target-value-input{flex:0 0 70px;max-width:70px;padding:4px 6px!important;font-size:12px!important;height:28px!important;border-radius:4px!important}.unit-input{flex:1;max-width:120px;padding:4px 6px!important;font-size:12px!important;height:28px!important;border-radius:4px!important}@media(max-width:768px){.habit-type-toggle{flex-direction:column;gap:8px}.toggle-btn{padding:14px 16px;justify-content:flex-start}.skippable-btn{width:100%;justify-content:center}.form-input,.form-textarea{font-size:16px}}.weave-toast-container{position:fixed;pointer-events:none;z-index:var(--z-toast, 10000);display:flex;flex-direction:column;gap:var(--spacing-sm, 8px);max-width:400px;width:100%}.weave-toast-container.top-right{top:calc(80px + var(--spacing-md, 16px));right:var(--spacing-md, 16px);align-items:flex-end}.weave-toast-container.top-left{top:calc(80px + var(--spacing-md, 16px));left:var(--spacing-md, 16px);align-items:flex-start}.weave-toast-container.top-center{top:calc(80px + var(--spacing-md, 16px));left:50%;transform:translate(-50%);align-items:center}.weave-toast-container.bottom-right{bottom:var(--spacing-md, 16px);right:var(--spacing-md, 16px);align-items:flex-end}.weave-toast-container.bottom-left{bottom:var(--spacing-md, 16px);left:var(--spacing-md, 16px);align-items:flex-start}.weave-toast-container.bottom-center{bottom:var(--spacing-md, 16px);left:50%;transform:translate(-50%);align-items:center}.weave-toast{pointer-events:auto;background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(225,229,233,.6);border-radius:var(--border-radius-md, 8px);box-shadow:var( --shadow-lg, 0 10px 25px -5px rgba(0, 0, 0, .15), 0 8px 10px -6px rgba(0, 0, 0, .15) );padding:var(--spacing-md, 16px);min-width:300px;max-width:400px;display:flex;align-items:flex-start;gap:var(--spacing-sm, 8px);opacity:0;transform:translateY(-20px) scale(.95);transition:all var(--transition-normal, .3s) cubic-bezier(.175,.885,.32,1.275);position:relative;overflow:hidden}.weave-toast.weave-toast--entering{opacity:1;transform:translateY(0) scale(1)}.weave-toast.weave-toast--leaving{opacity:0;transform:translateY(20px) scale(.95)}.weave-toast:focus{outline:2px solid var(--color-primary, #3b82f6);outline-offset:2px}.weave-toast__icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;margin-top:2px}.weave-toast__icon svg{width:16px;height:16px;fill:currentColor}.weave-toast__content{flex:1;min-width:0}.weave-toast__title{font-weight:600;font-size:var(--font-size-sm, 14px);line-height:1.4;margin:0 0 var(--spacing-xs, 4px) 0;color:var(--text-primary, #111827);word-break:break-word}.weave-toast__message{font-size:var(--font-size-sm, 14px);line-height:1.5;margin:0;color:var(--text-secondary, #6b7280);word-break:break-word}.weave-toast__actions{display:flex;gap:var(--spacing-xs, 4px);margin-top:var(--spacing-sm, 8px)}.weave-toast__action{font-size:var(--font-size-xs, 12px);font-weight:500;padding:var(--spacing-xs, 4px) var(--spacing-sm, 8px);border-radius:var(--border-radius-sm, 4px);border:none;cursor:pointer;transition:all var(--transition-fast, .15s);background:transparent;text-decoration:underline}.weave-toast__action--primary{color:var(--color-primary, #3b82f6)}.weave-toast__action--primary:hover{background:#dbeafecc}.weave-toast__action--secondary{color:var(--text-secondary, #6b7280)}.weave-toast__action--secondary:hover{background:#f9fafbcc}.weave-toast__close{position:absolute;top:var(--spacing-xs, 4px);right:var(--spacing-xs, 4px);width:24px;height:24px;border:none;background:transparent;cursor:pointer;border-radius:var(--border-radius-sm, 4px);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, #9ca3af);transition:all var(--transition-fast, .15s);padding:0}.weave-toast__close:hover{background:#f9fafbcc;color:var(--text-secondary, #6b7280)}.weave-toast__close:focus{outline:2px solid var(--color-primary, #3b82f6);outline-offset:1px}.weave-toast__close svg{width:14px;height:14px;fill:currentColor}.weave-toast__progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.2;transition:width linear}.weave-toast--success{border-left:4px solid var(--color-success, #10b981)}.weave-toast--success .weave-toast__icon,.weave-toast--success .weave-toast__progress{color:var(--color-success, #10b981)}.weave-toast--error{border-left:4px solid var(--color-error, #ef4444)}.weave-toast--error .weave-toast__icon,.weave-toast--error .weave-toast__progress{color:var(--color-error, #ef4444)}.weave-toast--warning{border-left:4px solid var(--color-warning, #f59e0b)}.weave-toast--warning .weave-toast__icon,.weave-toast--warning .weave-toast__progress{color:var(--color-warning, #f59e0b)}.weave-toast--info{border-left:4px solid var(--color-info, #3b82f6)}.weave-toast--info .weave-toast__icon,.weave-toast--info .weave-toast__progress{color:var(--color-info, #3b82f6)}@media(prefers-color-scheme:dark){.weave-toast{background:#1f2937d9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:#37415199}.weave-toast__title{color:var(--text-primary-dark, #f9fafb)}.weave-toast__message{color:var(--text-secondary-dark, #d1d5db)}.weave-toast__close{color:var(--text-tertiary-dark, #6b7280)}.weave-toast__close:hover{background:#374151cc;color:var(--text-secondary-dark, #d1d5db)}.weave-toast__action--primary:hover{background:#1e40afcc}.weave-toast__action--secondary:hover{background:#374151cc}}@media(max-width:640px){.weave-toast-container{left:var(--spacing-sm, 8px)!important;right:var(--spacing-sm, 8px)!important;max-width:none;transform:none!important}.weave-toast{min-width:auto;max-width:none}}@media(prefers-contrast:high){.weave-toast{border-width:2px}.weave-toast__close:focus{outline-width:3px}}.easter-egg-toast{background:linear-gradient(135deg,#ff0096e6,#00ffffe6,#ffff00e6,#00ff00e6,#ff00ffe6);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:2px solid rgba(255,255,255,.8);border-radius:12px;box-shadow:0 0 30px #ff00ff80,0 0 60px #00ffff4d,0 10px 25px -5px #0000004d;animation:rainbow-border 2s linear infinite}.easter-egg-toast .weave-toast__title{color:#fff;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.8);font-size:16px}.easter-egg-toast .weave-toast__message{color:#fff;font-weight:600;text-shadow:1px 1px 2px rgba(0,0,0,.8);font-size:15px}.easter-egg-toast .weave-toast__icon{color:#fff;filter:drop-shadow(0 0 8px rgba(255,255,255,.8))}@keyframes rainbow-border{0%{border-color:#ff0096cc}25%{border-color:#0ffc}50%{border-color:#ff0c}75%{border-color:#0f0c}to{border-color:#f0fc}}@media(prefers-reduced-motion:reduce){.weave-toast,.weave-toast__progress{transition:none}.easter-egg-toast{animation:none}}.profile-container{min-height:100vh;background-color:var(--bg-secondary, #f8f9fa);display:flex;flex-direction:column}.profile-main{flex:1;padding:var(--space-5);max-width:800px;margin:0 auto;width:100%}.profile-section{background:var(--bg-primary);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:0 2px 4px var(--shadow-light, rgba(0, 0, 0, .1));margin-bottom:var(--space-5)}.profile-header{margin-bottom:var(--space-6);text-align:center}.profile-header h1{color:var(--text-primary, #2c3e50);font-size:2rem;margin-bottom:var(--space-2)}.profile-join-date{color:var(--text-secondary, #666);font-size:.9rem}.profile-form{display:grid;gap:var(--space-4);max-width:500px;margin:0 auto}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{color:var(--text-primary, #2c3e50);font-weight:600;font-size:.9rem}.form-group input{padding:var(--space-3);border:1px solid var(--border-color, #ddd);border-radius:var(--radius-base);font-size:1rem;background-color:var(--bg-secondary, #fff);color:var(--text-primary)}.form-group input:focus{outline:none;border-color:var(--primary-color, #3498db);box-shadow:0 0 0 2px #3498db33}.form-group input:disabled{background-color:var(--bg-secondary);cursor:not-allowed;opacity:.7}.section-title{color:var(--text-primary);font-size:1.25rem;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--bg-secondary)}.danger-zone{border:1px solid var(--accent-danger, #e74c3c)}.danger-zone .section-title{color:var(--accent-danger, #e74c3c);border-bottom-color:#e74c3c33}.btn-primary{background-color:var(--primary-color, #3498db);color:#fff;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-base);font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--primary-hover, #2980b9)}.btn-danger{background-color:transparent;color:var(--accent-danger, #e74c3c);border:1px solid var(--accent-danger, #e74c3c);padding:var(--space-3) var(--space-4);border-radius:var(--radius-base);font-weight:600;cursor:pointer;transition:all .2s}.btn-danger:hover{background-color:var(--accent-danger, #e74c3c);color:#fff}.btn-secondary{background-color:var(--accent-muted, #95a5a6);color:#fff;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-base);font-weight:600;cursor:pointer;transition:background-color .2s;display:inline-flex;align-items:center;gap:var(--space-2)}.btn-secondary:hover{background-color:var(--accent-muted-hover, #7f8c8d)}.alert{padding:var(--space-3);border-radius:var(--radius-base);margin-bottom:var(--space-4);font-size:.9rem}.alert-success{background-color:#2ecc711a;color:#27ae60;border:1px solid rgba(46,204,113,.2)}.alert-error{background-color:#e74c3c1a;color:#c0392b;border:1px solid rgba(231,76,60,.2)}@media(max-width:768px){.profile-main{padding:var(--space-3)}.profile-section{padding:var(--space-4)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.theme-selector{display:flex;gap:1rem;flex-wrap:wrap}.theme-option{position:relative;cursor:pointer;flex:1;min-width:120px}.theme-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}.theme-option-content{display:flex;flex-direction:column;align-items:center;padding:1rem;border:2px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);transition:all .3s ease;gap:.5rem}.theme-option:hover .theme-option-content{border-color:var(--accent-primary);background:var(--bg-tertiary)}.theme-option input[type=radio]:checked+.theme-option-content{border-color:var(--accent-primary);background:rgba(var(--accent-primary-rgb),.1);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.theme-icon{font-size:1.5rem;line-height:1}.theme-label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.theme-option input[type=radio]:checked+.theme-option-content .theme-label{color:var(--accent-primary);font-weight:600}.two-fa-status{text-align:center;padding:var(--space-4);border-radius:var(--radius-base);border:1px solid var(--border-color)}.two-fa-status.enabled{background-color:#2ecc711a;border-color:#2ecc714d}.two-fa-status.disabled{background-color:#e74c3c1a;border-color:#e74c3c4d}.status-indicator{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-4);font-size:1.1rem;font-weight:600}.status-icon{font-size:1.2rem}.status-text{color:var(--text-primary)}.backup-codes-info{text-align:center;margin-top:var(--space-3)}.backup-codes-info p{margin-bottom:var(--space-2);color:var(--text-secondary);font-size:.9rem}.setup-2fa{text-align:center;padding:var(--space-4)}.setup-2fa p{margin-bottom:var(--space-4);color:var(--text-secondary);line-height:1.5}.disable-2fa{text-align:center;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.btn-outline{background-color:transparent;color:var(--primary-color, #3498db);border:1px solid var(--primary-color, #3498db);padding:var(--space-2) var(--space-3);border-radius:var(--radius-base);font-weight:600;cursor:pointer;transition:all .2s;font-size:.9rem}.two-fa-status.disabled .setup-2fa.disabled{opacity:.7;background-color:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:var(--radius-base)}.two-fa-status.disabled .status-text{color:var(--text-muted)}.two-fa-status.disabled button:disabled{background-color:var(--accent-muted, #95a5a6)!important;color:#fff!important;border:none!important;cursor:not-allowed!important;transform:none!important}.two-fa-status.disabled button:disabled:hover{background-color:var(--accent-muted, #95a5a6)!important;transform:none!important}#tree-chart-container{width:100%;height:100%;font-family:Inter,sans-serif}.svg-chart-container{background-color:transparent!important}.hierarchy-tree-container .empty-state{animation:fadeIn .5s ease-in-out}.hierarchy-tree-container .empty-state h3{font-weight:600;margin-bottom:.5rem}.hierarchy-tree-container .empty-state p{margin:.25rem 0;line-height:1.5}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.welcome-screen{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#333}.welcome-container{width:100%;max-width:500px;padding:2rem;text-align:center;background:#fffffff2;border-radius:20px;box-shadow:0 20px 40px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.welcome-progress{margin-bottom:2rem}.progress-dots{display:flex;justify-content:center;align-items:center;gap:1rem}.progress-dot{width:12px;height:12px;border-radius:50%;background:#e0e0e0;position:relative;transition:all .3s ease}.progress-dot.active{background:#667eea;transform:scale(1.2);box-shadow:0 0 0 4px #667eea33}.progress-dot.completed{background:#28a745}.progress-dot.completed .dot-inner:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:8px;font-weight:700}.welcome-content{margin-bottom:2rem}.step-content{animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 2s infinite}.welcome-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;color:#333;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-subtitle{font-size:1.1rem;color:#666;margin-bottom:2rem;font-weight:400}.welcome-features{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.feature-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#667eea0d;border-radius:12px;border-left:4px solid #667eea;transition:all .3s ease}.feature-item:hover{background:#667eea1a;transform:translate(5px)}.feature-icon{font-size:1.5rem;flex-shrink:0}.feature-text{font-size:.95rem;color:#555;text-align:left;font-weight:500}.welcome-navigation{margin-top:2rem}.navigation-buttons{display:flex;justify-content:space-between;align-items:center;gap:1rem}.nav-btn{padding:.75rem 1.5rem;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;min-width:120px;position:relative;overflow:hidden}.nav-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.nav-btn:hover:before{left:100%}.nav-btn:disabled{opacity:.6;cursor:not-allowed}.nav-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea4d}.nav-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.nav-btn-secondary{background:#f8f9fa;color:#6c757d;border:2px solid #e9ecef}.nav-btn-secondary:hover:not(:disabled){background:#e9ecef;color:#495057;transform:translateY(-1px)}@media(max-width:480px){.welcome-container{padding:1.5rem;margin:1rem;max-width:none}.welcome-title{font-size:1.75rem}.welcome-icon{font-size:3rem}.welcome-features{gap:.75rem}.feature-item{padding:.75rem}.navigation-buttons{flex-direction:column;gap:.75rem}.nav-btn{width:100%;min-width:auto}}@media(prefers-color-scheme:dark){.welcome-screen{background:linear-gradient(135deg,#1a1a2e,#16213e)}.welcome-container{background:#1e1e2ef2;color:#e0e0e0}.welcome-title{color:#e0e0e0;background:linear-gradient(135deg,#667eea,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-subtitle{color:#b0b0b0}.feature-item{background:#667eea1a;border-left-color:#667eea}.feature-item:hover{background:#667eea33}.feature-text{color:#d0d0d0}.nav-btn-secondary{background:#2a2a3e;color:#b0b0b0;border-color:#3a3a4e}.nav-btn-secondary:hover:not(:disabled){background:#3a3a4e;color:#e0e0e0}}.health-error-modal .modal-dialog{background:var(--bg-color, #ffffff);border-radius:12px;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;border:1px solid var(--border-color, #e5e7eb)}.health-error-content{padding:0}.health-error-header{padding:24px 24px 16px;text-align:center;border-bottom:1px solid var(--border-color, #e5e7eb)}.health-error-icon{color:#ef4444;margin-bottom:16px;display:flex;justify-content:center}.health-error-title{margin:0;font-size:24px;font-weight:600;color:var(--text-color, #111827)}.health-error-body{padding:24px}.health-error-message{margin:0 0 20px;text-align:center;color:var(--text-color-secondary, #6b7280);line-height:1.5}.health-status-container{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.health-status-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-color-secondary, #f9fafb);border-radius:8px;border:1px solid var(--border-color, #e5e7eb);min-height:44px}.status-indicator{display:flex;align-items:center;gap:8px;margin:0;padding:0}.status-dot{width:8px;height:8px;border-radius:50%;position:relative;flex-shrink:0}.status-dot.healthy{background:#10b981}.status-dot.unhealthy{background:#ef4444}.status-dot.checking{background:#f59e0b;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-label{font-weight:500;color:var(--text-color, #111827);margin:0;padding:0;display:block}.status-text{font-size:14px;color:var(--text-color-secondary, #6b7280);margin:0;padding:0}.health-retry-info{background:var(--bg-color-tertiary, #f3f4f6);border-radius:8px;padding:16px;margin-bottom:8px}.retry-counter{font-size:14px;color:var(--text-color-secondary, #6b7280);margin-bottom:4px}.next-retry{font-size:12px;color:var(--text-color-tertiary, #9ca3af)}.health-error-footer{padding:16px 24px 24px;border-top:1px solid var(--border-color, #e5e7eb)}.health-error-actions{display:flex;justify-content:center;margin-bottom:12px}.health-button{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.health-button.primary{background:#3b82f6;color:#fff}.health-button.primary:hover{background:#2563eb}.health-button:disabled{opacity:.5;cursor:not-allowed}.health-error-timestamp{text-align:center;font-size:12px;color:var(--text-color-tertiary, #9ca3af)}@media(max-width:640px){.health-error-backdrop{padding:16px}.health-error-content{max-width:100%}.health-error-header,.health-error-body,.health-error-footer{padding-left:16px;padding-right:16px}.health-error-title{font-size:20px}.health-status-item{flex-direction:column;align-items:flex-start;gap:8px}}@media(prefers-color-scheme:dark){.health-error-modal{--bg-color: #1f2937;--bg-color-secondary: #374151;--bg-color-tertiary: #4b5563;--text-color: #f9fafb;--text-color-secondary: #d1d5db;--text-color-tertiary: #9ca3af;--border-color: #4b5563}}.habit-preview{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;margin:1rem 0}.habit-preview h4{margin:0 0 .5rem;color:var(--text-primary)}.habit-preview p{margin:0;color:var(--text-secondary)}.affected-users{max-height:150px;overflow-y:auto;margin:.5rem 0}.delete-habit-modal .modal-header{border-bottom:1px solid var(--border-color);padding:1.5rem 1rem 1rem}.delete-habit-modal .modal-body{padding:1rem}.delete-habit-modal .modal-actions{border-top:1px solid var(--border-color);padding:1rem 1.5rem;display:flex;justify-content:center}.congratulations-modal .modal-dialog{max-width:28rem;text-align:center;padding:var(--space-8);background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-primary-hover) 100%);color:var(--text-primary);border:none;box-shadow:0 25px 50px -12px rgba(var(--accent-primary-rgb),.5)}.congratulations-modal-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.celebration-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.trophy-emoji{font-size:4rem;animation:bounce 2s infinite;filter:drop-shadow(0 4px 8px var(--shadow-medium))}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.congratulations-title{font-size:var(--font-2xl);font-weight:700;margin:0;color:var(--text-primary);text-shadow:0 2px 4px var(--shadow-medium);animation:fadeInUp .6s ease-out}.congratulations-message{font-size:var(--font-lg);font-weight:500;margin:0;color:var(--text-secondary);text-align:center;line-height:1.4;animation:fadeInUp .6s ease-out .2s both}.completion-stats{font-size:var(--font-base);font-weight:600;margin:0;color:var(--text-muted);background:var(--bg-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-color);animation:fadeInUp .6s ease-out .4s both}.completion-date{font-size:var(--font-sm);font-weight:400;margin:0;color:var(--text-muted);font-style:italic;animation:fadeInUp .6s ease-out .6s both}.streak-ranking-message{font-size:var(--font-base);font-weight:600;margin:0;color:var(--accent-success);background:rgba(var(--accent-success-rgb),.15);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid rgba(var(--accent-success-rgb),.3);animation:fadeInUp .6s ease-out .8s both;text-shadow:0 1px 2px var(--shadow-medium)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .congratulations-modal .modal-dialog{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-primary-hover) 100%);box-shadow:0 25px 50px -12px rgba(var(--accent-primary-rgb),.5)}@media(max-width:640px){.congratulations-modal .modal-dialog{max-width:100%;padding:var(--space-6);margin:var(--space-4)}.trophy-emoji{font-size:3rem}.congratulations-title{font-size:var(--font-xl)}.congratulations-message{font-size:var(--font-base)}.completion-stats{font-size:var(--font-sm);padding:var(--space-2) var(--space-3)}.completion-date{font-size:var(--font-xs)}.streak-ranking-message{font-size:var(--font-sm);padding:var(--space-2) var(--space-3)}}.streak-bar-chart{width:100%;margin:20px 0;display:flex;flex-direction:column;align-items:center}.streak-bar-chart-header{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:20px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.streak-bar-chart-bars{display:flex;flex-direction:column;gap:12px;align-items:center;width:100%}.streak-bar-container{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-color);transition:background-color .2s ease;width:100%;max-width:800px}.streak-bar-container:hover{background-color:var(--bg-tertiary)}.streak-bar-date{font-size:12px;color:var(--text-secondary);min-width:80px;text-align:center;flex-shrink:0}.streak-bar-start-date,.streak-bar-end-date{font-weight:500}.streak-bar{height:24px;border-radius:4px;position:relative;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.streak-bar:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.streak-bar-duration{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:600;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none;white-space:nowrap;z-index:1}.streak-bar-chart-no-data{text-align:center;padding:40px 20px;font-size:16px;color:var(--text-muted);background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}@media(max-width:768px){.streak-bar-chart-header{padding:12px;font-size:16px}.streak-bar-chart-bars{gap:8px}.streak-bar-container{gap:8px;padding:6px 0}.streak-bar-date{font-size:11px;min-width:70px}.streak-bar{height:20px}.streak-bar-duration{font-size:11px}}@media(max-width:480px){.streak-bar-chart-header{font-size:14px;padding:8px 12px}.streak-bar-chart-bars{gap:6px}.streak-bar-container{gap:6px;padding:4px 0}.streak-bar-date{font-size:10px;min-width:60px}.streak-bar{height:16px}.streak-bar-duration{font-size:10px}}.habit-stats-view{width:100%;max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.habit-stats-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;background:var(--bg-primary);border-radius:12px;border:1px solid var(--border-color);box-shadow:0 2px 8px var(--shadow-light)}.habit-stats-back-button{padding:8px 16px;background:var(--accent-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.habit-stats-back-button:hover{background:var(--accent-primary-hover);transform:translateY(-1px)}.habit-stats-title{font-size:24px;font-weight:600;color:var(--text-primary);margin:0;flex:1}.habit-stats-summary{margin-bottom:32px}.habit-stats-summary-content-vertical{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:32px}.habit-stats-section{background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-color);padding:20px;transition:box-shadow .2s ease}.habit-stats-section:hover{box-shadow:0 4px 12px var(--shadow-medium)}.habit-stats-section h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--accent-primary)}.habit-stats-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.habit-stats-item:last-child{border-bottom:none}.habit-stats-item strong{color:var(--text-primary);font-weight:600}.period-selector-container{margin:24px 0;padding:20px;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-color)}.period-selector-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.success-rate-display{padding:16px;background:var(--bg-secondary);border-radius:6px;border:1px solid var(--border-color);min-height:80px;display:flex;align-items:center;justify-content:center}.success-rate-result{text-align:center}.success-rate-main{display:flex;flex-direction:column;align-items:center;gap:8px}.success-rate-value{font-size:32px;font-weight:700;color:var(--accent-primary);line-height:1}.success-rate-label{font-size:14px;color:var(--text-secondary);font-weight:500}.success-rate-details{display:flex;gap:16px;margin-top:8px;font-size:13px;color:var(--text-secondary)}.success-rate-period{padding:4px 8px;background:var(--accent-primary);color:#fff;border-radius:4px;font-weight:500}.success-rate-breakdown{padding:4px 8px;background:var(--bg-tertiary);border-radius:4px}.compatibility-warning{margin-top:12px;padding:12px;background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;color:#856404;font-size:13px;line-height:1.4}.success-rate-no-goal,.success-rate-error{text-align:center;color:var(--text-secondary);font-style:italic}.loading{display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-style:italic}.habit-streak-display{margin:24px 0;padding:20px;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-color)}.streak-item{padding:12px 0;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.streak-item:last-child{border-bottom:none}.current-streak{color:var(--accent-primary);font-weight:600}.longest-streak{color:var(--accent-secondary);font-weight:600}.streak-motivation{margin-top:16px;padding:12px 16px;background:var(--bg-secondary);border-radius:6px;border:1px solid var(--accent-primary);color:var(--accent-primary);font-weight:500;font-size:13px;text-align:center}.streak-error{text-align:center;color:var(--text-secondary);font-style:italic;padding:20px}.period-selector{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.period-selector-checkbox{width:18px;height:18px;accent-color:var(--accent-primary)}.period-selector-label{font-size:14px;color:var(--text-primary);font-weight:500;cursor:pointer}.period-selector-custom{display:flex;flex-direction:row;gap:8px;align-items:center}.period-selector-amount{width:60px;padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:14px}.period-selector-unit{padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:14px}.period-selector-disabled{opacity:.5;pointer-events:none}.calendar-heatmap{margin:24px 0;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-color);padding:20px}.streak-bar-chart{margin:24px 0;background:var(--bg-primary);border-radius:8px;border:1px solid var(--border-color)}@media(max-width:768px){.habit-stats-view{padding:12px}.habit-stats-header{padding:12px 16px;margin-bottom:16px}.habit-stats-title{font-size:20px}.habit-stats-summary-content-vertical{grid-template-columns:1fr;gap:16px}.habit-stats-section{padding:16px}.period-selector-container{margin:16px 0;padding:16px}.period-selector{flex-direction:column;align-items:stretch;gap:12px}.period-selector-overall,.period-selector-custom{width:100%}.success-rate-display{min-height:60px}.success-rate-main{gap:4px}.success-rate-value{font-size:24px}.success-rate-details{flex-direction:column;gap:8px;align-items:center}.habit-streak-display{margin:16px 0;padding:16px}.streak-item{font-size:13px;padding:8px 0}.streak-motivation{font-size:12px;padding:8px 12px}.calendar-heatmap{margin:16px 0;padding:16px;overflow-x:auto}.calendar-heatmap-day{min-width:16px;min-height:16px}.streak-bar-chart-header{padding:12px;font-size:16px}.streak-bar-chart-bars{min-width:600px}.streak-bar-chart{margin:16px 0;overflow-x:auto}.streak-bar-chart-bars{min-width:500px}}@media(max-width:480px){.habit-stats-view{padding:8px}.habit-stats-header{flex-direction:column;align-items:stretch;gap:12px;padding:12px}.habit-stats-title{font-size:18px;text-align:center}.habit-stats-section{padding:12px}.habit-stats-section h3{font-size:14px}.habit-stats-item{font-size:13px;padding:6px 0}.period-selector-container{margin:12px 0;padding:12px}.period-selector-title{font-size:16px}.success-rate-value{font-size:20px}.success-rate-label{font-size:12px}.success-rate-details{font-size:11px}.habit-streak-display{margin:12px 0;padding:12px}.streak-item{font-size:12px;padding:6px 0}.streak-motivation{font-size:11px;padding:6px 10px}.calendar-heatmap{margin:12px 0;padding:12px}.calendar-heatmap-day{min-width:14px;min-height:14px}}.streak-bar-chart{margin:12px 0}.streak-bar-chart-bars{min-width:400px}.period-selector{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.period-selector-overall{display:flex;align-items:center;gap:8px}.period-selector-checkbox{width:18px;height:18px;cursor:pointer}.period-selector-label{font-size:14px;font-weight:500;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.period-selector-custom{display:flex;flex-direction:row;align-items:center;gap:12px}.period-selector-amount{width:80px;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background:var(--bg-primary);color:var(--text-primary)}.period-selector-amount:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.period-selector-unit{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);cursor:pointer}.period-selector-unit:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}.period-selector-disabled{opacity:.6;pointer-events:none}.period-selector-disabled .period-selector-amount,.period-selector-disabled .period-selector-unit{background-color:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}@media(max-width:768px){.period-selector{padding:12px;gap:8px}}.habits-settings-section{max-width:800px;margin:0 auto;padding:1.5rem}.habits-settings-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.back-button{background:none;border:none;color:var(--accent-primary);font-size:1rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s ease;text-decoration:none}.back-button:hover{background-color:var(--bg-tertiary)}.habits-settings-header h3{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600}.habits-settings-content{display:flex;flex-direction:column;gap:1.5rem}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 4px var(--shadow-light)}.setting-item:last-child{border-bottom:1px solid var(--border-color)}.setting-info{flex:1;margin-right:1rem}.setting-title{color:var(--text-primary);font-size:1rem;font-weight:500;margin:0 0 .5rem;display:block;cursor:pointer}.setting-description{color:var(--text-secondary);font-size:.875rem;margin:0;line-height:1.4}.setting-toggle{position:relative;margin-left:1rem}.setting-toggle input[type=checkbox]{opacity:0;position:absolute;width:0;height:0}.toggle-slider{position:relative;display:inline-block;width:48px;height:24px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:24px;cursor:pointer;transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;background-color:var(--text-muted);border-radius:50%;top:2px;left:2px;transition:all .3s ease}.setting-toggle input[type=checkbox]:checked+.toggle-slider{background-color:var(--accent-primary);border-color:var(--accent-primary)}.setting-toggle input[type=checkbox]:checked+.toggle-slider:before{background-color:#fff;transform:translate(24px)}.setting-toggle input[type=checkbox]:focus+.toggle-slider{box-shadow:0 0 0 2px rgba(var(--accent-primary-rgb),.2)}@media(max-width:768px){.habits-settings-section{margin:0 1rem;padding:1rem}.habits-settings-header{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.setting-item{flex-direction:column;align-items:flex-start;gap:1rem;padding:1rem}.setting-info{margin-right:0}.setting-toggle{align-self:flex-end}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}input,textarea,[contenteditable=true],.selectable{-webkit-user-select:text;-khtml-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}button,.btn,[role=button],[onclick]{touch-action:manipulation;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(var(--accent-primary-rgb),.1)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],textarea,select{font-size:16px!important}@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@supports (padding: max(0px)){.pwa-header{padding-top:max(1rem,env(safe-area-inset-top))}}body{overscroll-behavior:none;-webkit-overflow-scrolling:touch}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.loading{pointer-events:none;opacity:.6}.offline-indicator{position:fixed;top:0;left:0;right:0;background:var(--accent-danger);color:#fff;text-align:center;padding:.5rem;font-size:.875rem;z-index:10000;transform:translateY(-100%);transition:transform .3s ease}.offline-indicator.show{transform:translateY(0)}.install-prompt{position:fixed;bottom:1rem;left:1rem;right:1rem;background:var(--bg-primary);border-radius:.75rem;padding:1rem;box-shadow:0 25px 50px -12px var(--shadow-medium);z-index:10000;border:1px solid var(--border-color);transform:translateY(100%);transition:transform .3s ease}.install-prompt.show{transform:translateY(0)}.install-prompt-header{display:flex;align-items:center;margin-bottom:.75rem}.install-prompt-icon{font-size:1.5rem;margin-right:.5rem}.install-prompt-title{color:var(--text-primary);font-weight:600}.install-prompt-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1rem}.install-prompt-actions{display:flex;gap:.5rem}.install-prompt-btn-primary{background:var(--accent-primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;font-weight:600;font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color .2s ease}.install-prompt-btn-primary:hover{background:var(--accent-primary-hover)}.install-prompt-btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:all .2s ease}.install-prompt-btn-secondary:hover{background:var(--bg-secondary);color:var(--text-primary)}.update-notification{position:fixed;top:0;left:0;right:0;background:linear-gradient(135deg,var(--accent-primary),var(--accent-primary-hover));color:#fff;padding:1rem;text-align:center;z-index:10000;box-shadow:0 4px 6px -1px var(--shadow-medium);transform:translateY(-100%);transition:transform .3s ease}.update-notification.show{transform:translateY(0)}@media(max-width:768px){button,.btn{min-height:44px;min-width:44px}.container{padding-left:1rem;padding-right:1rem}body{overflow-x:hidden}.install-prompt{bottom:.5rem;left:.5rem;right:.5rem}}@media(prefers-color-scheme:dark){.offline-indicator{background:var(--accent-danger-hover)}}@media(prefers-contrast:high){button,.btn,.install-prompt,.update-notification{border:2px solid currentColor}.install-prompt-btn-secondary{border-width:2px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.alert-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:none;align-items:center;justify-content:center;z-index:2147483647;opacity:0;transition:opacity .2s ease-in-out}.alert-overlay.alert-show{opacity:1}.alert-modal{background-color:var(--color-bg-surface, #ffffff);border:1px solid var(--color-border-default, #e1e5e9);border-radius:8px;box-shadow:0 10px 25px #0000001a;max-width:400px;width:90%;max-height:80vh;overflow:hidden;transform:scale(.9) translateY(-20px);transition:transform .2s ease-in-out}.alert-modal.alert-show{transform:scale(1) translateY(0)}.alert-container{padding:24px}.alert-title{font-size:18px;font-weight:600;color:var(--color-text-primary, #333333);margin-bottom:12px;line-height:1.4}.alert-message{font-size:14px;color:var(--color-text-secondary, #666666);margin-bottom:24px;line-height:1.5;white-space:pre-wrap}.alert-buttons{display:flex;gap:12px;justify-content:flex-end}.alert-button{padding:8px 16px;border:1px solid var(--color-border-default, #e1e5e9);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease-in-out;background-color:var(--color-bg-surface, #ffffff);color:var(--color-text-primary, #333333);min-width:80px}.alert-button:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.alert-button:active{transform:translateY(0)}.alert-cancel{background-color:var(--color-button-secondary-bg, #f8f9fa);color:var(--color-button-secondary-text, #6c757d);border-color:var(--color-button-secondary-border, #dee2e6)}.alert-cancel:hover{background-color:var(--color-button-secondary-hover-bg, #e9ecef);border-color:var(--color-button-secondary-hover-border, #ced4da)}.alert-confirm.alert-info{background-color:var(--color-primary, #007bff);color:#fff;border-color:var(--color-primary, #007bff)}.alert-confirm.alert-info:hover{background-color:var(--color-primary-hover, #0056b3);border-color:var(--color-primary-hover, #0056b3)}.alert-confirm.alert-success{background-color:var(--color-success, #28a745);color:#fff;border-color:var(--color-success, #28a745)}.alert-confirm.alert-success:hover{opacity:.9}.alert-confirm.alert-warning{background-color:var(--color-warning, #ffc107);color:#fff;border-color:var(--color-warning, #ffc107)}.alert-confirm.alert-warning:hover{opacity:.9}.alert-confirm.alert-error{background-color:var(--color-danger, #dc3545);color:#fff;border-color:var(--color-danger, #dc3545)}.alert-confirm.alert-error:hover{background-color:var(--color-danger-hover, #c82333);border-color:var(--color-danger-hover, #c82333)}[data-theme=dark] .alert-modal{background-color:var(--color-bg-surface, #2d3748);border-color:var(--color-border-default, #4a5568)}[data-theme=dark] .alert-title{color:var(--color-text-primary, #f7fafc)}[data-theme=dark] .alert-message{color:var(--color-text-secondary, #cbd5e0)}[data-theme=dark] .alert-button{background-color:var(--color-bg-surface, #2d3748);border-color:var(--color-border-default, #4a5568);color:var(--color-text-primary, #f7fafc)}[data-theme=dark] .alert-cancel{background-color:var(--color-button-secondary-bg, #4a5568);color:var(--color-button-secondary-text, #cbd5e0);border-color:var(--color-button-secondary-border, #718096)}[data-theme=dark] .alert-cancel:hover{background-color:var(--color-button-secondary-hover-bg, #718096);border-color:var(--color-button-secondary-hover-border, #a0aec0)}[data-theme=high-contrast-light] .alert-modal,[data-theme=high-contrast-light] .alert-button{border-width:2px}@media(max-width:480px){.alert-modal{width:95%;margin:20px}.alert-container{padding:20px}.alert-buttons{flex-direction:column;gap:8px}.alert-button{width:100%}}.two-factor-setup{min-height:100vh;background-color:var(--bg-secondary, #f8f9fa);display:flex;flex-direction:column}.setup-container{max-width:600px;margin:0 auto;padding:var(--space-6);flex:1}.setup-header{text-align:center;margin-bottom:var(--space-8)}.setup-header h1{color:var(--text-primary, #2c3e50);font-size:2rem;margin-bottom:var(--space-3);font-weight:700}.setup-header p{color:var(--text-secondary, #666);font-size:1.1rem;line-height:1.6}.setup-content{display:flex;flex-direction:column;gap:var(--space-8)}.setup-step{background:var(--bg-primary, #ffffff);padding:var(--space-6);border-radius:var(--radius-lg, 12px);box-shadow:0 4px 6px #0000001a;border:1px solid var(--border-color, #e1e8ed)}.setup-step h2{color:var(--text-primary, #2c3e50);font-size:1.3rem;margin-bottom:var(--space-3);font-weight:600}.setup-step p{color:var(--text-secondary, #666);line-height:1.5;margin-bottom:var(--space-4)}.qr-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.qr-code-container{display:flex;justify-content:center;align-items:center;min-height:200px;background:var(--bg-secondary, #f8f9fa);border:2px dashed var(--border-color, #e1e8ed);border-radius:var(--radius-base, 8px);padding:var(--space-4)}.qr-code{max-width:200px;height:auto;border-radius:var(--radius-base, 8px)}.manual-entry{text-align:center;width:100%}.manual-entry h3{color:var(--text-primary, #2c3e50);font-size:1rem;margin-bottom:var(--space-3);font-weight:600}.secret-container{display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-base, 8px);padding:var(--space-3);max-width:400px;margin:0 auto}.secret-container code{font-family:Courier New,monospace;font-size:.9rem;color:var(--text-primary, #2c3e50);word-break:break-all;flex:1}.copy-btn{background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-base, 8px);transition:background-color .2s;display:flex;align-items:center;justify-content:center}.copy-btn:hover{background-color:var(--bg-tertiary, #e9ecef)}.copy-btn img{width:20px;height:20px;opacity:.7}.verify-form{display:flex;flex-direction:column;gap:var(--space-4);max-width:300px;margin:0 auto}.verify-form .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.verify-form label{color:var(--text-primary, #2c3e50);font-weight:600;font-size:.9rem}.verify-form input{padding:var(--space-3);border:2px solid var(--border-color, #e1e8ed);border-radius:var(--radius-base, 8px);font-size:1.2rem;text-align:center;letter-spacing:.2em;font-family:Courier New,monospace;background-color:var(--bg-primary, #ffffff);color:var(--text-primary, #2c3e50);transition:border-color .2s}.verify-form input:focus{outline:none;border-color:var(--primary-color, #3498db);box-shadow:0 0 0 3px #3498db1a}.backup-codes-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.backup-codes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);width:100%;max-width:600px}.backup-code{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #e1e8ed);border-radius:var(--radius-base, 8px);padding:var(--space-2);text-align:center;min-width:140px;word-break:break-all;overflow-wrap:break-word}.backup-code code{font-family:Courier New,monospace;font-size:.7rem;color:var(--text-primary, #2c3e50);font-weight:600;letter-spacing:.05em;line-height:1.2;word-break:break-all;display:block}.backup-warning{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:var(--radius-base, 8px);padding:var(--space-3);margin-top:var(--space-4);text-align:center}.backup-warning strong{color:var(--warning-color, #f39c12);display:block;margin-bottom:var(--space-2)}.setup-actions{display:flex;justify-content:center;gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border-color, #e1e8ed)}.btn{padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-base, 8px);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:120px}.btn-primary{background-color:var(--primary-color, #3498db);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover, #2980b9);transform:translateY(-1px)}.btn-primary:disabled{background-color:var(--accent-muted, #95a5a6);cursor:not-allowed;transform:none}.btn-secondary{background-color:transparent;color:var(--text-secondary, #666);border:1px solid var(--border-color, #e1e8ed)}.btn-secondary:hover{background-color:var(--bg-secondary, #f8f9fa);color:var(--text-primary, #2c3e50)}.btn-success{background-color:var(--success-color, #27ae60);color:#fff}.btn-success:hover{background-color:var(--success-hover, #229954);transform:translateY(-1px)}.btn-outline{background-color:transparent;color:var(--primary-color, #3498db);border:1px solid var(--primary-color, #3498db)}.btn-outline:hover{background-color:var(--primary-color, #3498db);color:#fff}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color, #e1e8ed);border-top:3px solid var(--primary-color, #3498db);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-container{background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-base, 8px);padding:var(--space-6);text-align:center;max-width:500px;margin:var(--space-8) auto}.error-container h2{color:var(--danger-color, #e74c3c);margin-bottom:var(--space-3)}.error-container p{color:var(--text-secondary, #666);margin-bottom:var(--space-4)}.error-message{color:var(--danger-color, #e74c3c);font-family:Courier New,monospace;font-size:.9rem;background:#e74c3c0d;padding:var(--space-2);border-radius:var(--radius-base, 8px);margin:var(--space-3) 0}.setup-step.completed{border-color:var(--success-color, #27ae60);background:#2ecc710d}.setup-step.completed h2{color:var(--success-color, #27ae60)}.setup-step.available{border-color:var(--primary-color, #3498db);background:#3498db0d}@media(max-width:768px){.setup-container{padding:var(--space-4)}.setup-header h1{font-size:1.5rem}.setup-step{padding:var(--space-4)}.backup-codes-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-2)}.setup-actions{flex-direction:column;align-items:center}.btn{width:100%;max-width:250px}.qr-code{max-width:150px}.secret-container{flex-direction:column;text-align:center}}@media(max-width:480px){.setup-container{padding:var(--space-3)}.setup-header h1{font-size:1.3rem}.backup-codes-grid{grid-template-columns:1fr 1fr;gap:var(--space-2)}.verify-form input{font-size:1rem}}
