*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--primary: #2D5A3D;--primary-light: #4A7C59;--primary-dark: #1e3d29;--secondary: #F5E6D3;--accent: #D4A574;--accent-warm: #E8B98A;--background: #FAFAF8;--card: #FFFFFF;--text: #1A1A1A;--text-secondary: #6B6B6B;--text-light: #9A9A9A;--border: #E5E5E5;--success: #22C55E;--warning: #F59E0B;--error: #EF4444;--shadow: 0 2px 8px rgba(0,0,0,.08);--shadow-lg: 0 4px 20px rgba(0,0,0,.12);--shadow-xl: 0 8px 30px rgba(0,0,0,.16);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--background);color:var(--text);min-height:100vh;padding-bottom:100px;overflow-x:hidden;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}.icon{display:inline-block;width:22px;height:22px;flex-shrink:0;vertical-align:middle;background-color:currentColor;-webkit-mask:var(--icon) no-repeat center / contain;mask:var(--icon) no-repeat center / contain}.icon-sm{width:17px;height:17px}.icon-home{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E")}.icon-log{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M12 11h4'/%3E%3Cpath d='M12 16h4'/%3E%3Cpath d='M8 11h.01'/%3E%3Cpath d='M8 16h.01'/%3E%3C/svg%3E")}.icon-book{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E")}.icon-check{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 11 3 3L22 4'/%3E%3Cpath d='M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11'/%3E%3C/svg%3E")}.icon-chart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v16a2 2 0 0 0 2 2h16'/%3E%3Cpath d='M18 17V9'/%3E%3Cpath d='M13 17V5'/%3E%3Cpath d='M8 17v-3'/%3E%3C/svg%3E")}.icon-user{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")}.icon-logout{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='m16 17 5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E")}.icon-pencil{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z'/%3E%3Cpath d='m15 5 4 4'/%3E%3C/svg%3E")}.icon-trash{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6'/%3E%3Cpath d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3C/svg%3E")}.icon-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E")}.icon-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13'/%3E%3Cpath d='M8 12h13'/%3E%3Cpath d='M8 18h13'/%3E%3Cpath d='M3 6h.01'/%3E%3Cpath d='M3 12h.01'/%3E%3Cpath d='M3 18h.01'/%3E%3C/svg%3E")}.icon-link{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E")}.icon-users{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E")}.icon-calendar{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E")}.icon-trend{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.5 8.5-5-5L2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E")}.week-day-value,.week-total,.week-total-value,.hay-input-value,.stats-period,.fp-item-amount,.fp-meal-time{font-variant-numeric:tabular-nums}.header{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;padding:20px 20px 30px;position:relative;overflow:hidden}.header.header-large{padding-bottom:60px}.header:before{content:attr(data-emoji);position:absolute;right:-30px;top:-30px;font-size:120px;opacity:.08;transform:rotate(15deg);pointer-events:none}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.header-top.header-top-large{margin-bottom:24px}.logo{font-size:22px;font-weight:700;display:flex;align-items:center;gap:8px}.header-title{font-size:20px;font-weight:700}.header-subtitle{text-align:center;font-size:14px;opacity:.9}.header-actions{display:flex;gap:12px}.header-btn{width:40px;height:40px;display:inline-flex;background:#ffffff26;border:none;border-radius:var(--radius-md);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;text-decoration:none}.header-btn:active{transform:scale(.95);background:#ffffff40}.header-spacer{width:40px}.greeting-section{margin-bottom:8px}.greeting-small{font-size:14px;opacity:.85;margin-bottom:4px}.greeting-large{font-size:26px;font-weight:700}.date-pill{display:inline-flex;align-items:center;gap:6px;background:#ffffff26;padding:6px 12px;border-radius:var(--radius-full);font-size:13px;margin-top:12px}.card{background:var(--card);border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow);margin:0 16px 16px}.card-elevated{box-shadow:var(--shadow-xl);margin-top:-40px;position:relative;z-index:10}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-title{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.card-subtitle{font-size:13px;color:var(--text-secondary)}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.stats-title{font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stats-period{font-size:12px;color:var(--text-light);background:var(--secondary);padding:4px 10px;border-radius:var(--radius-md)}.big-stat{text-align:center;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:20px}.big-stat-value{font-size:56px;font-weight:700;color:var(--primary);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.big-stat-unit{font-size:20px;font-weight:500;color:var(--text-secondary);margin-left:4px}.big-stat-label{font-size:12px;color:var(--text-light);margin-top:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-box{text-align:center;padding:16px 8px;background:var(--secondary);border-radius:var(--radius-lg)}.stat-box-icon{font-size:20px;margin-bottom:8px;display:flex;justify-content:center;color:var(--primary)}.stat-box-icon .icon{width:20px;height:20px}.stat-box-value{font-size:22px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stat-box-label{font-size:11px;color:var(--text-secondary);margin-top:4px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 16px;margin-bottom:16px}.mini-stat{background:var(--card);border-radius:var(--radius-lg);padding:16px 12px;text-align:center;box-shadow:var(--shadow)}.mini-stat-value{font-size:22px;font-weight:700;color:var(--primary)}.mini-stat-label{font-size:11px;color:var(--text-secondary);margin-top:4px;text-transform:uppercase;letter-spacing:.3px}.today-card{background:var(--card);margin:20px 16px;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow)}.today-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.today-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.today-badge{background:var(--success);color:#fff;font-size:10px;padding:3px 8px;border-radius:10px;font-weight:600}.today-badge.pending{background:var(--warning)}.today-content{display:flex;align-items:center;gap:16px}.today-value{flex:1}.today-amount{font-size:36px;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.today-amount span{font-size:16px;color:var(--text-secondary);font-weight:500}.today-comparison{font-size:13px;color:var(--text-secondary);margin-top:4px}.today-comparison .up{color:var(--success)}.today-comparison .down{color:var(--error)}.today-action{width:56px;height:56px;background:var(--primary);border:none;border-radius:var(--radius-lg);color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #2d5a3d4d;transition:all .2s}.today-action:active{transform:scale(.95)}.week-progress{background:var(--card);margin:0 16px 20px;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow)}.week-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.week-title{font-size:16px;font-weight:600}.week-total{font-size:14px;color:var(--primary);font-weight:600}.week-days{display:flex;justify-content:space-between;gap:8px}.week-day{flex:1;text-align:center}.week-day-name{font-size:11px;color:var(--text-light);margin-bottom:8px;text-transform:uppercase}.week-day-bar{height:60px;background:var(--border);border-radius:var(--radius-sm);position:relative;overflow:hidden}.week-day-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--primary) 0%,var(--primary-light) 100%);border-radius:var(--radius-sm);transition:height .5s ease}.week-day.today .week-day-bar{border:2px solid var(--primary)}.week-day.today .week-day-name{color:var(--primary);font-weight:600}.week-day-value{font-size:11px;font-weight:600;color:var(--text-secondary);margin-top:8px}.journal-preview{background:var(--card);margin:0 16px 20px;border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow)}.journal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.journal-title{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.view-all{font-size:13px;color:var(--primary);font-weight:600;text-decoration:none}.journal-entry-preview{background:var(--secondary);border-radius:var(--radius-lg);padding:16px;position:relative}.journal-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.journal-date{font-size:13px;font-weight:600;color:var(--text)}.journal-mood{font-size:20px}.journal-text{font-size:14px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.journal-tags{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.journal-tag{font-size:11px;background:#fff;padding:4px 10px;border-radius:10px;color:var(--text-secondary)}.no-journal{text-align:center;padding:20px;color:var(--text-light);font-size:14px}.weeks-container{padding:0 16px}.week-card{background:var(--card);border-radius:var(--radius-lg);margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow)}.week-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;transition:background .2s;gap:12px}.week-card-header:active{background:var(--secondary)}.week-info{display:flex;align-items:center;gap:12px;flex:1}.week-number{background:var(--primary);color:#fff;width:44px;height:44px;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.week-number span:first-child{font-size:10px;opacity:.8}.week-number span:last-child{font-size:16px}.week-number.current{background:linear-gradient(135deg,var(--warning) 0%,#D97706 100%)}.week-details h3{font-size:15px;font-weight:600;margin-bottom:2px}.week-details p{font-size:12px;color:var(--text-secondary)}.week-total-box{text-align:right;flex-shrink:0}.week-total-value{font-size:18px;font-weight:700;color:var(--primary)}.week-total-label{font-size:10px;color:var(--text-secondary)}.week-expand-icon{font-size:16px;color:var(--text-light);transition:transform .3s;flex-shrink:0}.week-card.expanded .week-expand-icon{transform:rotate(180deg)}.week-days-list{display:none;border-top:1px solid var(--border);padding:8px}.week-card.expanded .week-days-list{display:block}.day-row{display:flex;align-items:center;padding:12px;border-radius:var(--radius-md);margin-bottom:4px;transition:background .2s}.day-row:last-child{margin-bottom:0}.day-row.today{background:linear-gradient(135deg,#2d5a3d1a,#4a7c591a);border:2px solid var(--primary)}.day-row.has-data{background:var(--secondary)}.day-row.future{opacity:.5}.day-info{flex:1}.day-name{font-size:14px;font-weight:600}.day-date{font-size:12px;color:var(--text-secondary)}.day-weight{display:flex;align-items:center;gap:8px}.day-weight-value{font-size:16px;font-weight:600;color:var(--primary);min-width:55px;text-align:right}.day-edit-btn{width:36px;height:36px;border:none;background:var(--primary);color:#fff;border-radius:10px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.day-edit-btn:active{transform:scale(.95)}.day-edit-btn.add{background:var(--border);color:var(--text-secondary)}.month-selector{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;background:var(--card);margin:16px;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.month-selector-inline{display:flex;align-items:center;justify-content:space-between;gap:16px}.month-nav-btn{width:40px;height:40px;border:none;background:var(--secondary);border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.month-nav-btn:active{transform:scale(.95);background:var(--accent)}.current-month{font-size:18px;font-weight:600;min-width:150px;text-align:center}.fab-container{position:fixed;bottom:90px;right:20px;z-index:100}.fab{width:60px;height:60px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);border:none;border-radius:50%;color:#fff;font-size:28px;cursor:pointer;box-shadow:0 4px 20px #2d5a3d66;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);animation:pulse 2s infinite}.fab:active{transform:scale(.95)}.fab.open{transform:rotate(45deg);background:var(--error);animation:none}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.fab-menu{position:absolute;bottom:70px;right:0;display:flex;flex-direction:column;gap:12px;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1)}.fab-menu.open{opacity:1;visibility:visible;transform:translateY(0)}.fab-option{display:flex;align-items:center;gap:12px;justify-content:flex-end}.fab-label{background:var(--text);color:#fff;padding:8px 14px;border-radius:10px;font-size:13px;font-weight:500;white-space:nowrap;box-shadow:var(--shadow)}.fab-btn{width:50px;height:50px;border:none;border-radius:50%;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0003;transition:all .2s;text-decoration:none}.fab-btn:active{transform:scale(.95)}.fab-btn.hay{background:linear-gradient(135deg,#f59e0b,#d97706)}.fab-btn.journal{background:linear-gradient(135deg,#3b82f6,#2563eb)}.fab-btn.log{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.fab-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:99;opacity:0;visibility:hidden;pointer-events:none;transition:all .3s}.fab-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:6px 0;padding-bottom:max(6px,env(safe-area-inset-bottom));box-shadow:0 -2px 10px #0000000d;z-index:101}.nav-item{display:flex;flex-direction:column;align-items:center;padding:6px 8px;text-decoration:none;color:var(--text-secondary);font-size:9px;font-weight:500;transition:color .15s,transform .1s;border-radius:var(--radius-md);min-width:0;flex:1;-webkit-tap-highlight-color:transparent}.nav-item:active{transform:scale(.92);color:var(--primary)}.nav-item.active{color:var(--primary)}.nav-item.active .nav-icon{background:var(--secondary)}.nav-icon{font-size:20px;margin-bottom:2px;width:40px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg)}.nav-icon .icon{width:20px;height:20px;transition:background .15s}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:200;opacity:0;visibility:hidden;pointer-events:none;transition:all .3s}.modal-overlay.open{opacity:1;visibility:visible;pointer-events:auto}.modal{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-radius:24px 24px 0 0;padding:24px;padding-bottom:max(24px,env(safe-area-inset-bottom));z-index:201;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);max-height:85vh;overflow-y:auto}.modal-overlay.open .modal{transform:translateY(0)}.modal-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 20px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title{font-size:20px;font-weight:700}.modal-close{width:36px;height:36px;background:var(--secondary);border:none;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.hay-input-display{background:var(--secondary);border-radius:var(--radius-xl);padding:24px;text-align:center;margin-bottom:20px}.hay-input-value{font-size:64px;font-weight:700;color:var(--primary);line-height:1}.hay-input-unit{font-size:16px;color:var(--text-secondary);margin-top:8px}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.numpad-btn{background:var(--secondary);border:none;border-radius:var(--radius-lg);padding:18px;font-size:24px;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s}.numpad-btn:active{background:var(--accent);transform:scale(.95)}.numpad-btn.action{background:var(--border)}.numpad-btn.save{background:var(--primary);color:#fff;grid-column:span 2}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(100px);background:var(--text);color:#fff;padding:14px 24px;border-radius:var(--radius-lg);font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:all .3s ease;z-index:300;display:flex;align-items:center;gap:8px}.toast.show{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.toast.success{background:var(--success)}.toast.error{background:var(--error)}.loading{display:flex;justify-content:center;align-items:center;padding:60px}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-text{font-size:14px;line-height:1.5}.dropdown{position:relative}.dropdown-menu{position:absolute;top:50px;right:0;background:var(--card);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px;min-width:180px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s;z-index:200}.dropdown-menu.open{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:flex;align-items:center;gap:10px;padding:12px 16px;border:none;background:none;width:100%;font-size:14px;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);transition:background .2s}.dropdown-item:hover{background:var(--secondary)}.dropdown-item.logout{color:var(--error)}.dropdown-header{padding:12px 16px;font-size:12px;color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:8px;word-break:break-all}.form-section{margin-bottom:24px}.form-label{display:block;font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}.form-input{width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:16px;font-family:inherit;background:var(--card);color:var(--text);transition:all .2s}.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2d5a3d1a}.form-textarea{min-height:120px;resize:vertical}.button-grid{display:flex;flex-wrap:wrap;gap:10px}.button-grid.cols-3{display:grid;grid-template-columns:repeat(3,1fr)}.selection-btn{padding:12px 16px;background:var(--secondary);border:2px solid transparent;border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--text);cursor:pointer;transition:all .2s}.selection-btn:active{transform:scale(.98)}.selection-btn.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.activity-btn,.location-btn{padding:12px 16px;background:var(--secondary);border:2px solid transparent;border-radius:var(--radius-md);font-size:14px;font-weight:500;color:var(--text);cursor:pointer;transition:all .2s;text-align:center}.activity-btn:active,.location-btn:active{transform:scale(.98)}.activity-btn.selected,.location-btn.selected{background:var(--primary);color:#fff;border-color:var(--primary)}.mood-selector{display:flex;justify-content:center;gap:12px}.mood-btn{width:50px;height:50px;background:var(--card);border:2px solid var(--border);border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.mood-btn:hover{transform:scale(1.1);border-color:var(--primary)}.mood-btn.selected{border-color:var(--primary);background:var(--secondary);transform:scale(1.15);box-shadow:var(--shadow-lg)}.back-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;background:var(--card);border:2px solid var(--border);border-radius:var(--radius-md);font-size:15px;font-weight:500;color:var(--text);text-decoration:none;cursor:pointer;transition:all .2s;margin:16px 0}.back-btn:hover{background:var(--secondary);border-color:var(--primary);transform:translate(-2px)}.back-btn:active{transform:translate(-2px) scale(.98)}.btn-primary{display:block;width:100%;padding:16px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:active{transform:scale(.98);background:var(--primary-dark)}.btn-primary:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed;transform:none}.selector-container{margin:16px}.selector-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.selector{width:100%;padding:14px 16px;background:var(--card);border:2px solid var(--border);border-radius:var(--radius-md);font-size:16px;font-family:inherit;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B6B' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}.selector:focus{outline:none;border-color:var(--primary)}.text-center{text-align:center}.text-secondary{color:var(--text-secondary)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-error{color:var(--error)}.font-bold{font-weight:700}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.p-16{padding:16px}.cost-card{background:var(--card);border-radius:var(--radius-xl);padding:20px;margin:0 16px 16px}.cost-input-group{margin-bottom:16px}.cost-label{display:block;font-size:14px;color:var(--text-secondary);margin-bottom:8px}.cost-input{width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:18px;font-weight:600;text-align:center;transition:border-color .2s;background:var(--card);color:var(--text)}.cost-input:focus{outline:none;border-color:var(--primary)}.cost-result{background:linear-gradient(135deg,var(--primary),var(--primary-light, #3d7a4d));border-radius:var(--radius-xl);padding:24px;margin:16px;text-align:center;color:#fff}.cost-result-label{font-size:14px;opacity:.9;margin-bottom:8px}.cost-result-value{font-size:42px;font-weight:700}.cost-result-unit{font-size:24px;font-weight:500;opacity:.9}.cost-calculator{padding:8px 0}.cost-input-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.cost-input-row .cost-label{font-size:14px;color:var(--text-secondary)}.cost-input-small{width:100px;padding:10px 12px;font-size:16px;font-weight:600;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text);text-align:right}.cost-input-small:focus{outline:none;border-color:var(--primary)}.cost-result-row{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-light, #3d7a4d));border-radius:var(--radius-md);padding:16px;color:#fff}.cost-result-row .cost-result-label{font-size:14px;opacity:.9;margin:0}.cost-result-row .cost-result-value{font-size:24px;font-weight:700}.cost-hint{text-align:right;font-size:12px;color:var(--text-muted);margin-top:8px}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.summary-item:last-child{border-bottom:none}.summary-label{font-size:14px;color:var(--text-secondary)}.summary-value{font-size:16px;font-weight:600;color:var(--text)}.ai-summary-content{margin-top:16px;padding:20px;background:var(--secondary);border-radius:var(--radius-md)}.ai-summary-text{font-size:14px;line-height:1.7;color:var(--text)}.error-message{color:var(--error);font-size:14px;text-align:center;padding:20px}.modal-large{max-height:90vh}.modal-scroll-content{max-height:calc(70vh - 120px);overflow-y:auto;padding-right:8px;margin-right:-8px}.modal-footer{padding-top:16px;border-top:1px solid var(--border);margin-top:16px}.form-textarea{width:100%;padding:14px 16px;border:2px solid var(--border);border-radius:var(--radius-md);font-size:16px;font-family:inherit;background:var(--card);color:var(--text);transition:all .2s;min-height:100px;resize:vertical}.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2d5a3d1a}.btn{padding:14px 24px;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-full{width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slide-up{animation:slideUp .4s ease-out;animation-fill-mode:both}.animate-fade-in{animation:fadeIn .3s ease}.animate-delay-1{animation-delay:.05s}.animate-delay-2{animation-delay:.1s}.animate-delay-3{animation-delay:.15s}.animate-delay-4{animation-delay:.2s}.animate-delay-5{animation-delay:.25s}.checklist-progress-card{margin-top:-20px}.checklist-progress{padding:8px 0}.progress-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-label{font-size:14px;color:var(--text-secondary)}.progress-count{font-size:18px;font-weight:700;color:var(--primary)}.progress-bar{width:100%;height:8px;background:var(--border);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:var(--radius-full);transition:width .4s ease;width:0%}.add-task-btn{background:var(--primary);color:#fff;border:none;padding:8px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.add-task-btn:active{transform:scale(.95);background:var(--primary-dark)}.checklist-container{min-height:100px}.empty-checklist{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-checklist p{font-size:16px;margin-bottom:4px}.empty-hint{font-size:13px;color:var(--text-light)}.all-done{text-align:center;padding:30px 20px}.all-done-icon{font-size:40px;margin-bottom:8px}.all-done p{color:var(--success);font-weight:600;font-size:16px}.completed-section{margin-top:16px;border-top:1px dashed var(--border);padding-top:8px}.completed-header{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;font-weight:600;color:var(--success);cursor:pointer}.completed-expand{font-size:10px;color:var(--text-light);transition:transform .2s ease}.completed-section.expanded .completed-expand{transform:rotate(180deg)}.completed-tasks{max-height:0;overflow:hidden;transition:max-height .3s ease}.completed-section.expanded .completed-tasks{max-height:500px}.checklist-item{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.checklist-item:last-child{border-bottom:none}.checklist-item.completed{opacity:.6}.checklist-item.completed .checklist-text{text-decoration:line-through;color:var(--text-secondary)}.checklist-item.dragging{opacity:.5;background:var(--secondary);border-radius:var(--radius-md);margin:0 -10px;padding-left:10px;padding-right:10px}.drag-handle{width:20px;font-size:14px;color:var(--text-light);cursor:grab;flex-shrink:0;text-align:center;touch-action:none;letter-spacing:-3px}.drag-handle:active{cursor:grabbing;color:var(--primary)}.checklist-checkbox{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease;font-size:13px;font-weight:700;color:#fff}.checklist-checkbox.checked{background:var(--success);border-color:var(--success)}.checklist-text{flex:1;font-size:15px;color:var(--text);line-height:1.4}.checklist-edit{background:none;border:none;padding:6px;font-size:14px;opacity:.4;cursor:pointer;transition:opacity .2s ease}.checklist-edit:active{opacity:1}.checklist-delete{background:none;border:none;padding:6px;font-size:14px;opacity:.4;cursor:pointer;transition:opacity .2s ease}.checklist-delete:active{opacity:1}.checklist-item.compact{padding:10px 0 10px 4px}.checklist-item.compact .checklist-text{font-size:14px}.history-container{min-height:50px}.empty-history{text-align:center;padding:30px 20px;color:var(--text-secondary);font-size:14px}.history-day{border-bottom:1px solid var(--border);cursor:pointer}.history-day:last-child{border-bottom:none}.history-day-header{display:flex;justify-content:space-between;align-items:center;padding:14px 0}.history-day-info{display:flex;align-items:center;gap:10px}.history-day-name{font-size:15px;font-weight:600;color:var(--text)}.history-day-date{font-size:13px;color:var(--text-secondary)}.history-day-stats{display:flex;align-items:center;gap:8px}.history-completed{font-size:13px;color:var(--success);font-weight:600}.history-expand{font-size:12px;color:var(--text-light);transition:transform .2s ease}.history-day.expanded .history-expand{transform:rotate(180deg)}.history-day-details{max-height:0;overflow:hidden;transition:max-height .3s ease;background:var(--background);margin:0 -20px;padding:0 20px}.history-day.expanded .history-day-details{max-height:300px;padding:12px 20px;margin-bottom:12px;border-radius:var(--radius-md)}.history-task{font-size:14px;color:var(--text-secondary);padding:6px 0}.history-task.empty{color:var(--text-light);font-style:italic}.horse-chip{position:relative;display:flex;align-items:center;gap:4px;padding:6px 12px;background:#ffffff2e;border:1px solid rgba(255,255,255,.3);border-radius:20px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.horse-chip:active{background:#ffffff47;transform:scale(.97)}.hm-modal{max-height:80vh}.hm-horse-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;max-height:40vh;overflow-y:auto}.hm-horse-item{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--background);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all .2s;font-size:15px;font-weight:500;color:var(--text);width:100%}.hm-horse-item.active{border-color:var(--primary);background:#2d5a3d0f}.hm-horse-item:active{transform:scale(.98)}.hm-horse-name{flex:1}.hm-active-badge{font-size:11px;padding:2px 8px;background:var(--primary);color:#fff;border-radius:10px;font-weight:600}.hm-role-badge{font-size:11px;padding:2px 8px;background:var(--secondary);color:var(--text-secondary);border-radius:10px}.hm-role-badge.member{background:#e8f4ff;color:#26a}.hm-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.hm-action-btn{width:100%;justify-content:center}.hm-back-link{background:none;border:none;color:var(--primary);font-size:14px;font-weight:600;cursor:pointer;padding:0 0 12px;display:block}.hm-section-title{font-size:17px;font-weight:700;color:var(--text);margin-bottom:12px}.hm-form{display:flex;flex-direction:column;gap:10px}.hm-input{width:100%;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius-md);font-size:16px;background:var(--background);color:var(--text);outline:none;transition:border-color .2s}.hm-input:focus{border-color:var(--primary)}.hm-code-input{font-size:20px;font-weight:700;text-align:center;letter-spacing:.25em}.hm-hint{font-size:14px;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.hm-invite-code-row{display:flex;justify-content:center;margin-bottom:12px}.hm-code-display{font-size:36px;font-weight:800;letter-spacing:.3em;color:var(--primary);padding:16px 24px;background:#2d5a3d14;border-radius:var(--radius-md)}.hm-loading{text-align:center;color:var(--text-light);padding:20px 0}.hm-empty{text-align:center;color:var(--text-light);padding:20px 0;font-size:15px}.btn-secondary{background:var(--secondary);color:var(--text)}.btn-secondary:active{transform:scale(.98)}.auth-page{padding-bottom:40px}.auth-wrap{max-width:420px;margin:0 auto;padding:48px 16px 0}.auth-hero{text-align:center;margin-bottom:24px}.auth-logo{font-size:56px;line-height:1}.auth-hero h1{font-size:28px;color:var(--primary);margin-top:8px}.auth-hero p{color:var(--text-secondary);font-size:15px;margin-top:8px}.auth-card{margin:0;padding:24px 20px}.auth-tabs{display:flex;background:var(--background);border-radius:var(--radius-md);padding:4px;margin-bottom:20px}.auth-tab{flex:1;padding:10px;border:none;background:transparent;border-radius:var(--radius-sm);font-family:inherit;font-size:15px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s}.auth-tab.active{background:var(--card);color:var(--primary);box-shadow:var(--shadow)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form .form-label{margin-bottom:0}.auth-error{color:var(--error);font-size:14px;text-align:center;min-height:20px;margin:0}.auth-success{color:var(--success);font-size:14px;text-align:center;margin:0}.auth-link{background:none;border:none;color:var(--primary);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;padding:4px;text-decoration:underline;text-underline-offset:3px}.btn-danger{background:var(--error);color:#fff}.btn-danger:active{transform:scale(.98)}.btn-danger:disabled{background:var(--border);color:var(--text-light);cursor:not-allowed}.delete-account-text{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0 0 16px}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--text-light);font-size:13px;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-code-input{text-transform:uppercase;letter-spacing:.2em;text-align:center}.onboarding-list{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:12px;font-size:15px}.quick-link-card{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit}.quick-link-icon{font-size:28px}.quick-link-title{display:block;font-weight:600}.quick-link-sub{font-size:13px;color:var(--text-secondary)}.quick-link-arrow{margin-left:auto;color:var(--text-light);font-size:18px}.fp-meal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.fp-meal-title{font-size:17px;font-weight:600}.fp-meal-time{font-size:14px;font-weight:600;color:var(--primary);background:var(--secondary);padding:4px 10px;border-radius:var(--radius-full)}.fp-items{display:flex;flex-direction:column;gap:8px}.fp-item{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;padding:10px 12px;background:var(--background);border-radius:var(--radius-md)}.fp-item-feed{font-weight:500}.fp-item-amount{font-weight:600;color:var(--primary)}.fp-item-note{width:100%;font-size:13px;color:var(--text-secondary);margin-top:4px}.fp-edit-btn{margin-top:12px;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:transparent;border:2px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer}.fp-add-wrap{margin:0 16px 16px}.fp-updated{text-align:center;font-size:13px;color:var(--text-light);margin:0 16px 16px}.fp-empty{text-align:center;padding:32px 20px}.fp-empty-icon{font-size:40px;margin-bottom:8px}.fp-empty-sub{font-size:14px;color:var(--text-secondary);margin-top:8px}.fp-item-row{padding:12px;background:var(--background);border-radius:var(--radius-md);margin-bottom:10px;display:flex;flex-direction:column;gap:8px}.fp-item-row-main{display:grid;grid-template-columns:1fr 72px 76px 32px;gap:8px;align-items:center}.fp-item-row .form-input{padding:10px 12px;font-size:15px}.fp-row-remove{width:32px;height:32px;border:none;background:transparent;color:var(--text-light);font-size:16px;cursor:pointer}.fp-modal-footer{display:flex;flex-direction:column;gap:10px}.fp-danger-btn{background:transparent;color:var(--error);border:2px solid var(--error);width:100%}
