*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--primary: #667eea;--primary-dark: #5568d3;--primary-light: #7c94f5;--secondary: #f093fb;--success: #4ade80;--success-dark: #22c55e;--danger: #f87171;--danger-dark: #ef4444;--warning: #fbbf24;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--border: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;overflow-x:hidden}code{font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}button{cursor:pointer;font-family:inherit;-webkit-user-select:none;user-select:none;touch-action:manipulation}input,select{font-family:inherit}html{scroll-behavior:smooth}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--text-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.app{min-height:100vh;display:flex;flex-direction:column;max-width:100%;margin:0 auto}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.25rem 1rem;box-shadow:0 4px 20px #00000026;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-header h1{margin-bottom:1rem;font-size:1.75rem;font-weight:700;letter-spacing:-.02em;text-align:center}.main-nav{display:flex;gap:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:.25rem}.main-nav::-webkit-scrollbar{display:none}.nav-btn{background:#ffffff26;color:#fffc;border:none;padding:.75rem 1.25rem;border-radius:var(--radius-xl);font-size:.9375rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-shrink:0}.nav-btn:hover{background:#ffffff40;color:#fff;transform:translateY(-1px)}.nav-btn.active{background:#fff;color:var(--primary);box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.app-main{flex:1;padding:1.25rem;max-width:100%;width:100%;margin:0 auto;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 640px){.app-main{padding:2rem;max-width:640px}.app-header h1{font-size:2rem}}@media (min-width: 768px){.app-main{max-width:768px}.main-nav{justify-content:center}}.habits-editor h2{margin-bottom:1.25rem;color:var(--text-primary);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.add-habit-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}@media (min-width: 640px){.add-habit-form{flex-direction:row;align-items:center}}.add-habit-form input[type=text]{flex:1;padding:.875rem 1rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;background:var(--bg-secondary);color:var(--text-primary);transition:all .2s}.add-habit-form input[type=text]:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #667eea1a}.add-habit-form input[type=color]{width:60px;height:48px;border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;background:none}.add-habit-form button{padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.9375rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md)}.add-habit-form button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-habit-form button:active{transform:translateY(0)}.habits-list{display:flex;flex-direction:column;gap:1rem}.habit-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid var(--border)}.habit-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.habit-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.habit-info{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.color-indicator{width:48px;height:48px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-shrink:0}.habit-name{font-size:1.125rem;font-weight:600;color:var(--text-primary);letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis}.habit-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-small{padding:.5rem .875rem;border:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:600;background:var(--bg-tertiary);color:var(--text-secondary);transition:all .2s;white-space:nowrap}.btn-small:hover{background:var(--bg-secondary);color:var(--text-primary);transform:scale(1.05)}.btn-small:active{transform:scale(.98)}.btn-danger{background:#f871711a;color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.criteria-section{margin-top:1.25rem;padding-top:1.25rem;border-top:2px solid var(--bg-tertiary);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.criteria-section h4{margin-bottom:1rem;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.add-criterion-form{display:flex;gap:.5rem;margin-bottom:1rem}.add-criterion-form input{flex:1;padding:.625rem .875rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:.9375rem;background:var(--bg-secondary);color:var(--text-primary);transition:all .2s}.add-criterion-form input:focus{outline:none;border-color:var(--success);box-shadow:0 0 0 3px #4ade801a}.add-criterion-form button{padding:.625rem 1rem;background:linear-gradient(135deg,var(--success),var(--success-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.875rem;transition:all .2s;box-shadow:var(--shadow-sm)}.add-criterion-form button:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.criteria-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.criteria-list li{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--bg-secondary);border-radius:var(--radius-md);transition:all .2s;animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.criteria-list li:hover{background:var(--bg-tertiary)}.criteria-list li span{color:var(--text-primary);font-weight:500}.criteria-list li button{width:28px;height:28px;border-radius:50%;border:none;background:#f871711a;color:var(--danger);font-size:1.125rem;line-height:1;padding:0;transition:all .2s;display:flex;align-items:center;justify-content:center}.criteria-list li button:hover{background:var(--danger);color:#fff;transform:scale(1.1)}.planner h2{margin-bottom:1.25rem;color:var(--text-primary);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.add-day-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}@media (min-width: 640px){.add-day-form{flex-direction:row}}.add-day-form input{flex:1;padding:.875rem 1rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;background:var(--bg-secondary);color:var(--text-primary);transition:all .2s}.add-day-form input:focus{outline:none;border-color:var(--success);box-shadow:0 0 0 3px #4ade801a}.add-day-form button{padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--success),var(--success-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.9375rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md);white-space:nowrap}.add-day-form button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-interval-form{display:grid;grid-template-columns:1fr;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem;background:linear-gradient(135deg,#667eea0d,#764ba20d);border-radius:var(--radius-lg);border:2px dashed var(--primary-light)}@media (min-width: 640px){.add-interval-form{grid-template-columns:1fr auto 1fr auto;align-items:center}}.add-interval-form input[type=text]{grid-column:1 / -1;padding:.875rem 1rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;background:#fff;color:var(--text-primary);transition:all .2s}@media (min-width: 640px){.add-interval-form input[type=text]{grid-column:1}}.add-interval-form input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a}.add-interval-form input[type=time]{padding:.875rem 1rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;background:#fff;color:var(--text-primary);transition:all .2s}.add-interval-form input[type=time]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a}.add-interval-form span{color:var(--text-secondary);font-weight:600;text-align:center}.add-interval-form button{grid-column:1 / -1;padding:.875rem 1.5rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.9375rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md)}.add-interval-form button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.days-list{display:flex;gap:.625rem;margin-bottom:1.5rem;flex-wrap:wrap}.day-tab{padding:.75rem 2.75rem .75rem 1.25rem;background:var(--bg-primary);border:2px solid var(--border);border-radius:var(--radius-xl);font-weight:600;font-size:.9375rem;color:var(--text-secondary);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:var(--shadow-sm)}.day-tab:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.day-tab.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.delete-day-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;border:none;background:#0000001a;color:var(--text-primary);font-size:1rem;line-height:1;padding:0;transition:all .2s;display:flex;align-items:center;justify-content:center}.day-tab.active .delete-day-btn{background:#fff3;color:#fff}.delete-day-btn:hover{background:var(--danger);color:#fff;transform:translateY(-50%) scale(1.1)}.day-schedule{background:var(--bg-primary);border-radius:var(--radius-lg);padding:1.5rem 1.25rem;box-shadow:var(--shadow-md);animation:fadeIn .4s ease-out}.day-schedule h3{margin-bottom:1.25rem;color:var(--text-primary);font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.no-intervals{padding:4rem 2rem;text-align:center;color:var(--text-tertiary);font-style:italic;font-size:.9375rem}.time-slots{display:flex;flex-direction:column;gap:1rem;max-height:600px;overflow-y:auto;padding:.25rem}.time-slot{padding:1.25rem;border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--border);display:flex;flex-direction:column;gap:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideIn .3s ease-out}.time-slot:hover{border-color:var(--primary-light);box-shadow:var(--shadow-md);transform:translate(4px)}.time-slot-header{display:flex;flex-direction:column;gap:.75rem}@media (min-width: 640px){.time-slot-header{flex-direction:row;align-items:center}}.interval-name-input{flex:1;padding:.625rem .875rem;border:2px solid transparent;border-radius:var(--radius-md);font-size:1rem;font-weight:600;color:var(--text-primary);background:#fff;transition:all .2s}.interval-name-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a}.time-inputs{display:flex;align-items:center;gap:.5rem}.time-input{padding:.625rem .875rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:.875rem;background:#fff;color:var(--text-primary);transition:all .2s}.time-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a}.delete-interval-btn{padding:.625rem;background:#f871711a;border:none;border-radius:var(--radius-md);font-size:1.25rem;transition:all .2s;width:44px;height:44px;display:flex;align-items:center;justify-content:center}.delete-interval-btn:hover{background:var(--danger);transform:scale(1.1)}.time-slot-content{display:flex;flex-direction:column;gap:.75rem}@media (min-width: 640px){.time-slot-content{flex-direction:row;align-items:center}}.slot-habits{flex:1;display:flex;flex-wrap:wrap;gap:.5rem;min-height:40px;align-items:center}.habit-badge{padding:.5rem 1rem;border-radius:var(--radius-xl);color:#fff;font-weight:600;font-size:.875rem;box-shadow:var(--shadow-md);animation:pop .3s ease-out}@keyframes pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.no-habits-text{color:var(--text-tertiary);font-size:.875rem;font-style:italic}.add-habit-btn{padding:.75rem 1.25rem;background:linear-gradient(135deg,var(--success),var(--success-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.875rem;white-space:nowrap;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md)}.add-habit-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.add-habit-btn:active{transform:translateY(0)}.habits-tracker h2{margin-bottom:1.25rem;color:var(--text-primary);font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.tracker-controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}@media (min-width: 640px){.tracker-controls{flex-direction:row}}.habit-selector,.date-selector{display:flex;flex-direction:column;gap:.5rem;flex:1}.habit-selector label,.date-selector label{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.habit-selector select,.date-selector input{padding:.875rem 1rem;border:2px solid var(--border);border-radius:var(--radius-md);font-size:1rem;background:var(--bg-secondary);color:var(--text-primary);transition:all .2s}.habit-selector select:focus,.date-selector input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #667eea1a}.tracking-section{display:flex;flex-direction:column;gap:1.5rem}.criteria-tracking{background:var(--bg-primary);border-radius:var(--radius-lg);padding:1.5rem 1.25rem;box-shadow:var(--shadow-md);animation:fadeIn .4s ease-out}.criteria-tracking h3{margin-bottom:1rem;color:var(--text-primary);font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.tracking-date{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9375rem;font-weight:500}.no-criteria{color:var(--text-tertiary);font-style:italic;padding:3rem 1.5rem;text-align:center;font-size:.9375rem}.criteria-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}@media (min-width: 640px){.criteria-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.criterion-card{padding:1.25rem;background:var(--bg-secondary);border-radius:var(--radius-lg);border:2px solid var(--border);transition:all .2s;animation:slideIn .3s ease-out}.criterion-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-sm)}.criterion-card h4{margin-bottom:1rem;color:var(--text-primary);font-size:1rem;font-weight:600}.value-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.value-btn{padding:.875rem;border:2px solid var(--border);background:#fff;border-radius:var(--radius-md);font-weight:700;font-size:1.125rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.value-btn:hover{border-color:var(--text-secondary);transform:scale(1.05)}.value-btn:active{transform:scale(.95)}.value-btn.active{color:#fff;border-color:transparent;box-shadow:var(--shadow-md);transform:scale(1.05)}.value-btn.active.negative{background:linear-gradient(135deg,var(--danger),var(--danger-dark))}.value-btn.active.neutral{background:linear-gradient(135deg,#64748b,#475569)}.value-btn.active.positive{background:linear-gradient(135deg,var(--success),var(--success-dark))}.day-total{padding:1.25rem;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-radius:var(--radius-lg);text-align:center;font-size:1.125rem;color:var(--primary);font-weight:700;border:2px solid rgba(102,126,234,.2)}.chart-section{background:var(--bg-primary);border-radius:var(--radius-lg);padding:1.5rem 1.25rem;box-shadow:var(--shadow-md);animation:fadeIn .4s ease-out}.chart-section h3{margin-bottom:1.5rem;color:var(--text-primary);font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.no-data{color:var(--text-tertiary);font-style:italic;padding:4rem 2rem;text-align:center;font-size:.9375rem}.custom-tooltip{background:#fff;padding:1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-xl);border:2px solid var(--border)}.custom-tooltip p{margin:.25rem 0;color:var(--text-primary);font-size:.875rem}.custom-tooltip p:first-child{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--bg-tertiary);font-weight:700;color:var(--primary)}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out;padding:0}@media (min-width: 640px){.dialog-overlay{align-items:center;padding:1rem}}.dialog{background:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-xl);max-width:100%;width:100%;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@media (min-width: 640px){.dialog{max-width:540px;border-radius:var(--radius-lg);max-height:80vh}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width: 640px){@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}}.dialog-header{padding:1.5rem 1.25rem;border-bottom:2px solid var(--bg-tertiary);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#667eea0d,#764ba20d)}.dialog-header h3{margin:0;color:var(--text-primary);font-size:1.25rem;font-weight:700;letter-spacing:-.01em;flex:1;padding-right:1rem}.close-dialog-btn{width:36px;height:36px;border-radius:50%;border:none;background:#64748b1a;color:var(--text-secondary);font-size:1.5rem;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.close-dialog-btn:hover{background:var(--text-secondary);color:#fff;transform:rotate(90deg)}.dialog-content{padding:1.25rem;overflow-y:auto;flex:1}.no-habits-message{text-align:center;color:var(--text-tertiary);font-style:italic;padding:3rem 1.5rem;font-size:.9375rem}.habits-selection-list{display:flex;flex-direction:column;gap:.75rem}.habit-checkbox-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff}.habit-checkbox-item:hover{border-color:var(--primary-light);background:var(--bg-secondary);transform:translate(4px)}.habit-checkbox-item:active{transform:translate(2px) scale(.98)}.habit-checkbox-item input[type=checkbox]{width:24px;height:24px;cursor:pointer;accent-color:var(--primary);flex-shrink:0}.habit-color-box{width:40px;height:40px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-shrink:0}.habit-checkbox-item span{flex:1;font-weight:600;color:var(--text-primary);font-size:.9375rem}.dialog-footer{padding:1.25rem;border-top:2px solid var(--bg-tertiary);display:flex;justify-content:flex-end;background:var(--bg-secondary)}.dialog-close-btn{padding:.875rem 2rem;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md);width:100%}@media (min-width: 640px){.dialog-close-btn{width:auto}}.dialog-close-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dialog-close-btn:active{transform:translateY(0)}
