.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal-content{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s ease}@media(min-width:768px){.modal-content{border-radius:20px;max-width:600px;max-height:85vh}}@media(min-width:1024px){.modal-content{max-width:700px}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #EBE8D5;background:#fff;flex-shrink:0}.modal-header h2{font-size:18px;font-weight:700;color:#3d4a3e}.modal-close-btn{padding:4px;color:#6b7c6d}.modal-body{padding:10px 20px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch;min-height:0}.modal-footer{display:flex;gap:12px;padding:16px 20px;border-top:1px solid #EBE8D5;background:#fff;flex-shrink:0}.btn{flex:1;padding:14px;border-radius:12px;font-size:16px;font-weight:600;transition:all .2s ease}.btn.primary{background:#8cb369;color:#fff}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#f5f3e8;color:#6b7c6d}.btn.destructive{background:#e63946;color:#fff}.btn.destructive:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;color:#6b7c6d;margin-bottom:8px}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date],.form-group input[type=time],.form-group textarea{width:100%;padding:12px;border:2px solid #EBE8D5;border-radius:10px;font-size:16px;transition:border-color .2s;-webkit-appearance:none;appearance:none}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#8cb369}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.number-control{display:flex;align-items:center;gap:4px}.number-control button{width:44px;height:44px;border-radius:10px;background:#f5f3e8;color:#6b7c6d;display:flex;align-items:center;justify-content:center;transition:all .2s ease}@media(hover:hover)and (pointer:fine){.number-control button:hover:not(:disabled){background:#ebe8d5;transform:scale(1.05)}}.number-control button:active:not(:disabled){transform:scale(.95)}.number-control button:disabled{opacity:.5;cursor:not-allowed}.number-control span{min-width:40px;text-align:center;font-size:18px;font-weight:600;color:#3d4a3e}.quantity-control{display:flex;align-items:center;gap:4px}.quantity-control button{width:44px;height:44px;border-radius:10px;background:#f5f3e8;color:#6b7c6d;display:flex;align-items:center;justify-content:center;transition:all .2s ease}@media(hover:hover)and (pointer:fine){.quantity-control button:hover{background:#ebe8d5;transform:scale(1.05)}}.quantity-control button:active{transform:scale(.95)}.quantity-control span{min-width:40px;text-align:center;font-size:18px;font-weight:600;color:#3d4a3e}.option-pills{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;background:#f5f3e8;color:#6b7c6d;transition:all .2s}.pill:hover{background:#ebe8d5}.pill.active{background:var(--pill-color, #8CB369);color:#fff}.color-picker{position:relative}.color-picker-trigger{width:100%;height:44px;border:2px solid #EBE8D5;border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;position:relative}.color-picker-trigger:hover{border-color:#8cb369;transform:scale(1.02)}.color-value{font-size:13px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);mix-blend-mode:difference;-webkit-user-select:none;user-select:none}.color-picker-backdrop{position:fixed;inset:0;z-index:999}.color-picker-popover{position:absolute;bottom:calc(100% + 8px);left:0;z-index:1000;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;padding:16px;min-width:220px}.color-picker-popover .react-colorful{width:100%;height:180px}.react-colorful__saturation{border-radius:8px 8px 0 0}.react-colorful__hue{border-radius:8px;height:16px;margin-top:12px}.react-colorful__pointer{width:20px;height:20px}.color-picker-footer{display:flex;gap:8px;margin-top:12px}.color-hex-input{flex:1;padding:8px 12px;border:2px solid #EBE8D5;border-radius:8px;font-size:13px;font-family:monospace;text-transform:uppercase}.color-hex-input:focus{outline:none;border-color:#8cb369}.color-picker-done{padding:8px 16px;background:#8cb369;color:#fff;border-radius:8px;font-weight:600;font-size:13px;transition:all .2s}.color-picker-done:hover{background:#7aa05a}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:#8CB369}.checkbox-label span{font-size:14px;color:#6b7c6d}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#94a3b8}.empty-state p{margin:16px 0;font-size:15px}.empty-state-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#6366f1;color:#fff;border-radius:12px;font-weight:600;font-size:14px;transition:all .2s ease;min-height:44px}@media(hover:hover)and (pointer:fine){.empty-state-btn:hover{background:#4f46e5;transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}}.empty-state-btn:active{transform:scale(.98)}@media(max-width:480px){.empty-state{padding:40px 20px}.empty-state p{font-size:14px}}@media(max-width:360px){.empty-state{padding:30px 16px}}@media(min-width:768px){.empty-state{padding:80px 40px}.empty-state p{font-size:16px}.empty-state-btn{font-size:15px;padding:14px 24px}}.fab{position:fixed;right:20px;bottom:100px;width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#8cb369,#7aa05a);color:#fff;box-shadow:0 4px 12px #8cb36966;display:flex;align-items:center;justify-content:center;z-index:50;transition:all .2s ease}@media(hover:hover)and (pointer:fine){.fab:hover{transform:scale(1.05);box-shadow:0 6px 16px #8cb36980}}.fab:active{transform:scale(.95)}@media(min-width:768px){.fab{right:calc((100vw - 700px)/2 + 20px);bottom:96px;width:64px;height:64px}}@media(min-width:1024px){.fab{right:calc((100vw - 900px)/2 + 20px)}}@media(max-width:360px){.fab{right:16px;bottom:84px;width:52px;height:52px}}.fab:disabled{opacity:.5;pointer-events:none}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:16px;background:var(--color-bg, #0f172a);color:var(--color-text, #f8fafc)}.error-boundary-card{max-width:420px;width:100%;padding:24px;border-radius:16px;background:var(--color-surface, #1e293b);text-align:center}.error-boundary-card h1{font-size:1.25rem;margin:0 0 8px}.error-boundary-card p{margin:0 0 16px;color:var(--color-text-muted, #94a3b8)}.error-boundary-details{font-size:.75rem;text-align:left;background:#00000040;padding:8px;border-radius:8px;overflow:auto;margin:0 0 16px}.error-boundary-button{min-height:44px;padding:0 20px;border-radius:999px;border:0;background:var(--color-accent, #6366f1);color:#fff;font-weight:600;cursor:pointer}.toast-stack{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0) + 96px);transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none;width:min(92vw,420px)}.toast{pointer-events:auto;width:100%;min-height:44px;padding:10px 14px;border-radius:12px;border:0;font-size:.9rem;font-weight:500;text-align:left;color:#fff;cursor:pointer;box-shadow:0 6px 24px #00000040;background:#334155;animation:toast-in .18s ease-out}.toast-success{background:#16a34a}.toast-error{background:#dc2626}.toast-info{background:#334155}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.todo-page{height:100%;display:flex;flex-direction:column;background:#fdfcf5}.time-input-wrapper{position:relative;display:flex;align-items:center}.time-input-wrapper input[type=time]{width:100%;padding-right:50px}.time-clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);min-width:25px;min-height:25px;display:flex;align-items:center;justify-content:center;background:#94a3b8;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}@media(hover:hover)and (pointer:fine){.time-clear-btn:hover{background:#64748b;transform:translateY(-50%) scale(1.05);box-shadow:0 2px 4px #00000026}}.time-clear-btn:active{transform:translateY(-50%) scale(.92);box-shadow:0 1px 2px #0000001a}.task-item.dragging{opacity:.5;transform:scale(1.02);box-shadow:0 8px 24px #00000026,0 4px 8px #0000001a;z-index:999;background:#fff;border:2px dashed #8CB369}.task-item.dragging .task-item-content{background:#8cb3690d}.todo-header{display:flex;justify-content:space-between;align-items:center;padding:48px 20px 20px;background:linear-gradient(135deg,#8cb369,#7aa05a);border-radius:0 0 20px 20px}.header-left{display:flex;align-items:center;gap:12px}.header-logo{width:40px;height:40px;border-radius:10px}.header-title{color:#fff;font-size:24px;font-weight:700}.header-subtitle{color:#ffffffd9;font-size:13px;margin-top:2px}.header-btn{padding:8px 14px;background:#fff3;border-radius:8px;color:#fff;font-weight:600;font-size:13px}.header-btn.icon{padding:8px}.view-tabs{display:flex;gap:8px;padding:16px 20px;background:#fdfcf5}.view-tab{flex:1;padding:10px 16px;background:transparent;border:1.5px solid #E5E1D0;border-radius:12px;color:#6b7c6d;font-weight:600;font-size:14px;transition:all .2s ease;cursor:pointer}.view-tab.active{background:#7aa05a;border-color:#7aa05a;color:#fff}.calendar-container{background:#fff;margin:12px 16px;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000f}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-weight:600;color:#3d4a3e}.calendar-header button{padding:8px;color:#6b7c6d}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday{text-align:center;font-size:12px;font-weight:600;color:#8a9b8c;padding:8px 0}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;font-size:14px;color:#3d4a3e;position:relative}.calendar-day:hover:not(.empty){background:#f5f3e8}.calendar-day.selected{background:#8cb369;color:#fff}.calendar-day.today:not(.selected){border:2px solid #8CB369}.calendar-day.empty{visibility:hidden}.day-dot{width:4px;height:4px;border-radius:50%;background:#5b8e7d;position:absolute;bottom:4px}.calendar-day.selected .day-dot{background:#fff}.date-strip{display:flex;justify-content:space-around;padding:12px 16px;gap:8px}.date-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:10px 8px;border-radius:14px;background:#fff;box-shadow:0 2px 6px #0000000d;position:relative}.date-item.selected{background:#8cb369}.date-item.today:not(.selected){border:2px solid #8CB369}.date-day{font-size:11px;color:#8a9b8c;font-weight:500}.date-item.selected .date-day{color:#fffc}.date-num{font-size:18px;font-weight:700;color:#3d4a3e;margin-top:2px}.date-item.selected .date-num{color:#fff}.date-dot{width:5px;height:5px;border-radius:50%;background:#5b8e7d;margin-top:4px}.date-item.selected .date-dot{background:#fff}.tasks-container{flex:1;overflow-y:auto;padding:0 16px 100px}.tasks-list{display:flex;flex-direction:column;gap:10px;padding-top:8px}.overdue-section{margin-bottom:20px}.section-label{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;color:#64748b;margin-bottom:4px}.overdue-label{color:#ef4444}.completed-section{margin-top:16px;padding-top:16px;border-top:1px solid #E2E8F0}.completed-header{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:transparent;color:#64748b;font-size:14px;font-weight:600;transition:all .2s ease;border-radius:8px}.completed-header:hover{background:#f1f5f9}.completed-header .chevron{margin-left:auto;transition:transform .2s ease}.completed-header .chevron.expanded{transform:rotate(90deg)}.completed-tasks{margin-top:8px}.completed-tasks .task-item{opacity:.7}.task-item{display:flex;align-items:center;gap:5px;background:#fff;padding:12px;border-radius:14px;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden}.task-item-content{display:flex;align-items:center;gap:5px;width:100%;background:#fff;position:relative;z-index:1;will-change:transform}.drag-handle{flex-shrink:0;padding:2px;cursor:grab;touch-action:none;opacity:.3;transition:opacity .2s;align-self:center;margin-top:2px}.drag-handle:active{cursor:grabbing}.drag-handle:hover,.task-item.completed{opacity:.6}.task-item.overdue{border-left:3px solid #BC4B51;background:linear-gradient(to right,#fff5f5,#fff 20%)}.task-checkbox{flex-shrink:0;padding:0}.task-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;cursor:pointer}.task-content:active{opacity:.7}.task-title{font-size:14px;font-weight:600;color:#3d4a3e;word-wrap:break-word;line-height:1.3;display:block}.task-item.completed .task-title{text-decoration:line-through}.task-info{display:flex;flex-direction:column;gap:4px}.task-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:#64748b}.task-meta span{display:inline-flex;align-items:center;gap:2px}.task-category{color:#8cb369;background:#f5f3e8;padding:2px 5px;border-radius:4px;font-size:10px}.task-badges{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 5px;border-radius:4px;font-size:9px;font-weight:500;gap:2px}.badge.overdue{background:#fef2f2;color:#dc2626}.badge.assigned{background:#eef2ff;color:#6366f1}.badge.assigned-from{background:#f3f4f6;color:#6b7280;font-size:9px}.task-actions .icon-btn.delete:hover{background:#f9e5e6;color:#bc4b51}.task-edit,.task-delete{flex-shrink:0;padding:4px;opacity:.7;transition:opacity .2s ease}.task-edit:hover,.task-delete:hover{opacity:1}.backup-info{color:#6b7c6d;font-size:14px;line-height:1.5;margin-bottom:16px}.backup-btn{display:flex;align-items:center;gap:14px;padding:16px;background:#fdfcf5;border-radius:14px;text-align:left;cursor:pointer;color:#8cb369;margin-bottom:12px}.backup-btn-title{display:block;font-weight:600;color:#3d4a3e;font-size:15px}.backup-btn-sub{display:block;color:#8a9b8c;font-size:13px;margin-top:2px}.category-chips{display:flex;flex-wrap:wrap;gap:8px}.date-input-wrapper{display:flex;flex-direction:column;gap:12px}.date-input-wrapper input[type=date]{width:100%}.date-input-wrapper input[type=date]:disabled{opacity:.5;cursor:not-allowed}.backlog-checkbox{display:flex;align-items:center;gap:10px;padding:12px;background:#f9f8f3;border-radius:10px;font-size:14px;color:#3d4a3e;cursor:pointer;transition:background .2s ease;margin-bottom:1rem;flex-wrap:nowrap}.backlog-checkbox:hover{background:#f5f3e8}.backlog-checkbox input[type=checkbox]{width:16px;height:16px;min-width:16px;min-height:16px;margin:0;padding:0;cursor:pointer;accent-color:#7AA05A;flex-shrink:0}.backlog-checkbox span{-webkit-user-select:none;user-select:none;font-weight:500;flex-shrink:0}.backlog-month-select{padding:8px 10px;border:1.5px solid #E5E1D0;border-radius:6px;font-size:16px;color:#3d4a3e;background:#fff;cursor:pointer;transition:border-color .2s ease;flex:1;max-width:200px;box-sizing:border-box}.backlog-month-select:hover{border-color:#7aa05a}.backlog-month-select:focus{outline:none;border-color:#7aa05a}.category-chip{padding:8px 12px;background:#f5f3e8;border:2px solid transparent;border-radius:20px;font-size:13px;cursor:pointer;transition:all .2s}.category-chip:hover{background:#ebe8d5}.category-chip.active{background:#e8f3e0;border-color:#8cb369;color:#fff}@media(max-width:480px){.todo-header{padding:40px 16px 16px}.header-title{font-size:22px}.todo-list{padding:16px}}@media(max-width:360px){.todo-header{padding:36px 12px 12px}.header-title{font-size:20px}.todo-item{padding:14px}}@media(min-width:768px){.todo-header{padding:56px 32px 24px;border-radius:0 0 24px 24px}.header-title{font-size:28px}.todo-list{padding:24px 32px}.todo-item{padding:18px}.filter-section{padding:20px 32px}}@media(min-width:1024px){.todo-header{padding:64px 40px 28px}.todo-list{padding:28px 40px}}@media(hover:hover)and (pointer:fine){.todo-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.category-chip:hover{background:#ebe8d5;transform:translateY(-1px)}.header-btn:hover{background:#ffffff4d}}.store-edit-form input{width:100%;padding:10px 12px;border:1px solid #E0DCC8;border-radius:8px;font-size:16px}.add-store-form input{width:100%;padding:10px 12px;border:1px solid #E0DCC8;border-radius:8px;font-size:16px}.custom-days-picker{display:flex;gap:6px;margin-top:10px;justify-content:center}.day-chip{width:38px;height:38px;border-radius:50%;border:2px solid #EBE8D5;background:#fff;color:#6b7c6d;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.day-chip:hover{border-color:#6b8f71;color:#3d4a3e}.day-chip.active{background:#6b8f71;border-color:#6b8f71;color:#fff}.recurrence-badge{display:inline-flex;align-items:center;gap:3px;background:#6b8f711f;padding:1px 6px;border-radius:8px;font-size:10px;color:#6b8f71;font-weight:600;letter-spacing:.3px}.recurrence-label{font-size:10px}.assignee-select{width:100%;padding:12px 40px 12px 12px;border:2px solid #EBE8D5;border-radius:10px;font-size:16px;background:#fff;color:#3d4a3e;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7C6D' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.assignee-select:focus{outline:none;border-color:#6b8f71}.assignee-hint{margin-top:8px;font-size:12px;color:#6b7c6d;font-style:italic}.backlog-month-group{margin-bottom:24px}.backlog-month-header-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px 12px;border-bottom:1px solid #E5E1D0;cursor:pointer;transition:background .2s ease}.backlog-month-header-row:hover{background:#7aa05a0d}.backlog-collapse-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin:0;background:none;border:none;color:#7aa05a;cursor:pointer;transition:transform .2s ease}.backlog-collapse-btn .chevron{transition:transform .2s ease}.backlog-collapse-btn .chevron.expanded{transform:rotate(90deg)}.backlog-month-header{padding:0;margin:0 8px;flex:1;font-size:13px;font-weight:600;color:#7aa05a;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:8px}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 6px;background:#5a84a0;color:#fff;border-radius:12px;font-size:12px;font-weight:600;text-transform:none;letter-spacing:normal}.backlog-add-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#7aa05a1a;border:1px solid #E5E1D0;border-radius:8px;color:#7aa05a;cursor:pointer;transition:all .2s ease}.backlog-add-btn:hover{background:#7aa05a33;border-color:#7aa05a}.backlog-month-tasks{display:flex;flex-direction:column;gap:0}.backlog-empty-month{padding:16px 20px;margin:0;font-size:13px;color:#a8b5aa;font-style:italic;text-align:center}.backlog-completed-section{margin-top:4px;padding:0 4px 4px}.backlog-completed-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:8px 16px;background:transparent;border:none;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:#6b7c6d;cursor:pointer}.backlog-completed-toggle .count-badge{margin-left:4px}.backlog-completed-toggle .chevron{transition:transform .18s ease}.backlog-completed-toggle .chevron.expanded{transform:rotate(90deg)}.search-result-email{font-size:12px;color:#6b7c6d;margin-top:2px}.category-view{display:flex;flex-direction:column;gap:16px}.category-filter{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px}.category-chip{padding:8px 16px;border:2px solid;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.category-chip:hover{opacity:.8;transform:translateY(-1px)}.category-chip.active{box-shadow:0 2px 8px #00000026}.category-tasks-list{padding:0 20px 100px}.category-task-item{margin-bottom:12px}.category-task-date{font-size:12px;font-weight:600;color:#6b7c6d;margin-bottom:6px;padding-left:4px}.shopping-page{height:100%;display:flex;flex-direction:column;background:#fdfcf5}.shopping-header{display:flex;justify-content:space-between;align-items:center;padding:48px 20px 20px;background:linear-gradient(135deg,#f4a259,#e89349);border-radius:0 0 20px 20px}.shopping-header .header-title{color:#fff;font-size:24px;font-weight:700}.shopping-header .header-subtitle{color:#ffffffd9;font-size:13px;margin-top:2px}.header-actions{display:flex;gap:8px;align-items:center}.share-btn,.history-btn{width:40px;height:40px;border-radius:10px;background:#fff3;color:#fff;display:flex;align-items:center;justify-content:center}.share-partners{display:flex;gap:4px;margin-right:4px}.partner-badge{width:32px;height:32px;border-radius:50%;background:#ffffff40;color:#fff;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.4)}.partner-badge.more{font-size:10px;background:#ffffff26}.clear-btn{padding:8px 14px;background:#fff3;border-radius:8px;color:#fff;font-weight:600;font-size:13px}.progress-container{display:flex;align-items:center;gap:12px;padding:16px 20px}.progress-bar{flex:1;height:8px;background:#ebe8d5;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#8cb369,#7aa05a);border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;font-weight:600;color:#6b7c6d;min-width:40px}.store-tabs{display:flex;gap:8px;padding:12px 20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.store-tabs::-webkit-scrollbar{display:none}.store-tab{flex-shrink:0;padding:8px 16px;background:#fff;border-radius:20px;font-size:13px;font-weight:500;color:#6b7c6d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;box-shadow:0 2px 4px #0000000d;border:2px solid transparent;transition:all .2s}.store-tab.active{font-weight:600;box-shadow:0 2px 8px #0000001a}.store-tab.settings{padding:8px 12px;color:#8a9b8c}.store-tab.settings:hover{color:#6b7c6d}.shopping-search-bar{display:flex;align-items:center;gap:8px;margin:0 20px 8px;padding:9px 14px;background:#fff;border-radius:12px;box-shadow:0 1px 4px #00000014;border:1.5px solid #E2E8F0}.shopping-search-icon{color:#94a3b8;flex-shrink:0}.shopping-search-input{flex:1;font-size:14px;color:#1e293b;background:transparent;width:auto!important;border:none!important;padding:0!important;box-shadow:none!important}.shopping-search-input::placeholder{color:#94a3b8}.shopping-search-input:focus{outline:none}.shopping-search-clear{color:#94a3b8;display:flex;align-items:center;flex-shrink:0;padding:2px}.items-container{flex:1;overflow-y:auto;padding:16px 20px 80px}.items-list{display:flex;flex-direction:column;gap:10px}.item-card{display:flex;align-items:flex-start;gap:10px;background:#fff;padding:12px;border-radius:14px;box-shadow:0 2px 8px #0000000d;position:relative;overflow:hidden}.item-card.dragging{opacity:.5;transform:scale(1.02);box-shadow:0 8px 24px #00000026,0 4px 8px #0000001a;z-index:999;background:#fff;border:2px dashed #8CB369}.item-card.dragging .item-card-content{background:#8cb3690d}.item-card-content{display:flex;align-items:flex-start;gap:10px;width:100%;background:#fff;position:relative;z-index:1;will-change:transform}.item-card .drag-handle{flex-shrink:0;padding:4px;cursor:grab;touch-action:none;opacity:.3;transition:opacity .2s}.item-card .drag-handle:active{cursor:grabbing}.item-card .drag-handle:hover,.item-card.completed{opacity:.6}.item-checkbox{flex-shrink:0}.item-content{flex:1;min-width:0;cursor:pointer}.item-content:active{opacity:.7}.item-name{font-size:14px;font-weight:600;color:#3d4a3e;line-height:1.3}.item-card.completed .item-name{text-decoration:line-through}.item-meta{display:flex;align-items:center;gap:8px;margin-top:3px}.item-qty{font-size:11px;color:#6b7c6d;font-weight:500}.item-category{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:6px;text-transform:capitalize}.item-category.freshco{background:#e8f3e0;color:#8cb369}.item-category.costco{background:#e5f0ed;color:#5b8e7d}.item-category.amazon{background:#fef2e8;color:#f4a259}.item-category.other{background:#f5f3e8;color:#6b7c6d}.item-edit,.item-delete{flex-shrink:0;padding:4px;opacity:.7;transition:opacity .2s ease}.item-edit:hover,.item-delete:hover{opacity:1}.shopping-page .fab{background:linear-gradient(135deg,#f4a259,#e89349);box-shadow:0 4px 20px #f4a25966}.shopping-page .btn.primary{background:#f4a259}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.category-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;background:#fdfcf5;border-radius:12px;color:#6b7c6d}.category-btn.active{background:#fef2e8;color:#f4a259}.category-btn span{font-size:13px;font-weight:500}.item-card.shared{border-left:3px solid #F4A259}.item-owner{font-size:11px;color:#8a9b8c;margin-left:6px;font-weight:400}.share-info{color:#6b7c6d;font-size:14px;line-height:1.5;margin-bottom:16px}.share-add{display:flex;gap:8px;margin-bottom:8px}.share-add input{flex:1;padding:12px;border:2px solid #EBE8D5;border-radius:10px;font-size:16px}.share-add input:focus{outline:none;border-color:#f4a259}.share-add-btn{width:48px;height:48px;background:#f4a259;color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center}.share-add-btn:disabled{opacity:.5}.share-error{color:#bc4b51;font-size:13px;margin-bottom:12px}.share-section{margin-top:20px}.share-section h4{font-size:13px;font-weight:600;color:#6b7c6d;text-transform:uppercase;margin-bottom:8px}.share-list{display:flex;flex-direction:column;gap:8px}.share-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#fdfcf5;border-radius:10px}.share-user{display:flex;flex-direction:column}.share-name{font-weight:600;color:#3d4a3e}.share-email{font-size:12px;color:#8a9b8c}.share-remove{width:32px;height:32px;border-radius:8px;color:#bc4b51;display:flex;align-items:center;justify-content:center}.share-remove:hover{background:#f9e5e6}.history-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.history-empty{text-align:center;color:var(--text-secondary);padding:32px 16px}.history-item{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;background:var(--card-bg);border-radius:10px;gap:12px}.history-content{display:flex;align-items:flex-start;gap:10px;flex:1}.history-action{font-size:16px;flex-shrink:0}.history-details{display:flex;flex-direction:column;gap:2px}.history-user{font-size:11px;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.5px}.history-text{font-size:14px;color:var(--text)}.history-text strong{font-weight:600}.history-meta{font-size:12px;color:var(--text-secondary)}.history-time{font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}@media(max-width:480px){.shopping-header{padding:40px 16px 16px}.shopping-list{padding:16px}.shopping-item{padding:14px}}@media(max-width:360px){.shopping-header{padding:36px 12px 12px}.shopping-header .header-title{font-size:22px}.shopping-item{padding:12px}}.store-settings-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.store-settings-item{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#f9f9f6;border-radius:10px}.store-info{display:flex;align-items:center;gap:10px}.store-color{width:16px;height:16px;border-radius:4px}.store-name{font-weight:500;color:#3d4a3e}.store-actions{display:flex;gap:8px}.edit-store-btn,.delete-store-btn{padding:6px;border-radius:6px;color:#6b7c6d;transition:all .2s}.edit-store-btn:hover{background:#ebe8d5;color:#f4a259}.delete-store-btn:hover{background:#f9e5e6;color:#bc4b51}.store-edit-form{display:flex;flex-direction:column;gap:12px;width:100%}.store-edit-form input{width:100%;padding:10px 12px;border:1px solid #E0DCC8;border-radius:8px;font-size:14px}.store-edit-actions{display:flex;gap:8px;justify-content:flex-end}.add-store-form{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid #EBE8D5}.add-store-form input{width:100%;padding:10px 12px;border:1px solid #E0DCC8;border-radius:8px;font-size:14px}.add-store-form .btn{display:flex;align-items:center;justify-content:center;gap:6px}@media(min-width:768px){.shopping-header{padding:56px 32px 24px;border-radius:0 0 24px 24px}.shopping-header .header-title{font-size:28px}.shopping-list{padding:24px 32px}.shopping-item{padding:18px}.filter-section{padding:20px 32px}}@media(min-width:1024px){.shopping-header{padding:64px 40px 28px}.shopping-list{padding:28px 40px}}@media(hover:hover)and (pointer:fine){.shopping-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.share-btn:hover,.history-btn:hover{background:#ffffff4d}}.workout-page{height:100%;display:flex;flex-direction:column;background:#fdfcf5}.workout-header{display:flex;justify-content:space-between;align-items:flex-start;padding:48px 20px 20px;background:linear-gradient(135deg,#5b8e7d,#4a7c6d);border-radius:0 0 20px 20px}.workout-header .header-title{color:#fff;font-size:24px;font-weight:700}.workout-header .header-subtitle{color:#ffffffd9;font-size:13px;margin-top:2px}.header-actions{display:flex;gap:8px}.header-icon-btn{width:40px;height:40px;border-radius:10px;background:#fff3;color:#fff;display:flex;align-items:center;justify-content:center}.header-icon-btn.start-btn,.header-icon-btn.log-btn{background:#ffffff59}.view-toggle{display:flex;gap:4px;margin:16px 20px 0;background:#f1f5f0;border-radius:12px;padding:4px}.view-toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:10px;font-size:13px;font-weight:600;color:#6b7c6d;transition:all .2s}.view-toggle-btn.active{background:#fff;color:#3d4a3e;box-shadow:0 1px 4px #00000014}.body-parts{display:flex;gap:8px;padding:16px 20px;overflow-x:auto}.body-part-btn{padding:8px 12px;background:#fff;border-radius:20px;font-size:13px;font-weight:500;color:#6b7c6d;white-space:nowrap;box-shadow:0 2px 4px #0000000d}.body-part-btn.active{background:var(--part-color);color:#fff}.workout-summary{display:flex;align-items:center;gap:8px;padding:0 20px 12px;font-size:13px;color:#6b7c6d}.exercises-container{flex:1;overflow-y:auto;padding:0 20px 100px}.exercises-list{display:flex;flex-direction:column;gap:10px}.exercise-card{display:flex;align-items:flex-start;background:#fff;border-radius:14px;box-shadow:0 2px 8px #0000000d;overflow:hidden;position:relative}.swipe-delete-bg{position:absolute;right:0;top:0;bottom:0;width:100px;display:flex;align-items:center;justify-content:flex-end;padding-right:24px;color:#ef4444;pointer-events:none;opacity:.8}.exercise-card.dragging{opacity:.5;transform:scale(1.02);box-shadow:0 8px 24px #00000026,0 4px 8px #0000001a;z-index:999;background:#fff;border:2px dashed #8CB369}.exercise-card.dragging .exercise-card-content{background:#8cb3690d}.exercise-card-content{display:flex;align-items:flex-start;width:100%;background:#fff;position:relative;z-index:1;will-change:transform}.exercise-card .drag-handle{flex-shrink:0;padding:14px 8px 14px 12px;cursor:grab;touch-action:none;opacity:.3;transition:opacity .2s}.exercise-card .drag-handle:active{cursor:grabbing}.exercise-card .drag-handle:hover{opacity:.6}.exercise-content{flex:1;display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer}.exercise-content:active{opacity:.7}.exercise-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.exercise-info{flex:1;min-width:0}.exercise-name{display:block;font-size:14px;font-weight:600;color:#3d4a3e;line-height:1.3}.exercise-details{display:flex;align-items:center;gap:8px;margin-top:3px}.exercise-stats{font-size:11px;color:#6b7c6d}.exercise-pr{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#c9a94e;background:#fef9e7;padding:2px 6px;border-radius:6px}.workout-page .fab{background:linear-gradient(135deg,#5b8e7d,#4a7c6d);box-shadow:0 4px 20px #5b8e7d66}.workout-page .btn.primary{background:#5b8e7d}.settings-modal .modal-body{max-height:60vh;overflow-y:auto}.weight-unit-toggle{padding:16px;background:#fdfcf5;border-radius:12px;margin-bottom:20px}.setting-label{display:block;font-size:13px;font-weight:500;color:#64748b;margin-bottom:10px}.unit-buttons{display:flex;gap:8px}.unit-btn{flex:1;padding:10px 16px;background:#fff;border:1px solid #E2E8F0;border-radius:8px;font-size:14px;font-weight:500;color:#64748b;transition:all .2s}.unit-btn.active{background:#5b8e7d;border-color:#5b8e7d;color:#fff}.unit-btn:hover:not(.active){background:#f8fafc;border-color:#cbd5e1}.body-parts-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.body-part-item{display:flex;align-items:center;gap:10px;padding:12px;background:#fdfcf5;border-radius:10px;flex-wrap:wrap}.body-part-color{width:16px;height:16px;border-radius:4px;flex-shrink:0}.body-part-name{flex:1;font-weight:500;color:#3d4a3e;min-width:100px}.body-part-exercise-count{font-size:12px;color:#94a3b8}.body-part-input{flex:1;padding:8px 12px;border:1px solid #E2E8F0;border-radius:8px;font-size:16px;background:#fff;min-width:120px}.edit-bp-btn,.delete-bp-btn,.cancel-bp-btn{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#64748b}.delete-bp-btn{color:#ef4444}.save-bp-btn{padding:6px 12px;background:#14b8a6;color:#fff;border-radius:6px;font-size:13px;font-weight:500}.add-body-part{display:flex;flex-direction:column;gap:12px;padding:16px;background:#f1f5f9;border-radius:12px}.add-bp-btn{display:flex;align-items:center;justify-content:center;gap:6px}@media(max-width:480px){.workout-header{padding:40px 16px 16px}.workout-header .header-title{font-size:22px}.body-parts{padding:12px 16px}.workouts-list{padding:16px}.week-calendar{padding:12px}.week-month-label{font-size:13px}.week-nav-btn{width:28px;height:28px}.week-day{padding:8px 4px}.week-day-name{font-size:10px}.week-day-num{font-size:14px}}@media(max-width:360px){.workout-header{padding:36px 12px 12px}.workout-header .header-title{font-size:20px}.workout-card{padding:14px}}@media(min-width:768px){.workout-header{padding:56px 32px 24px;border-radius:0 0 24px 24px}.workout-header .header-title{font-size:28px}.body-parts{padding:20px 32px}.workouts-list{padding:24px 32px}.workout-card{padding:20px}}@media(min-width:1024px){.workout-header{padding:64px 40px 28px}.workouts-list{padding:28px 40px}}@media(hover:hover)and (pointer:fine){.workout-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.body-part-btn:hover{background:#e8f3e0;transform:translateY(-1px)}.header-icon-btn:hover{background:#ffffff4d}}.active-session-page{background:#f5f5f0}.session-header{padding:44px 20px 16px;border-radius:0 0 20px 20px;color:#fff}.session-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.session-header-left{display:flex;align-items:center;gap:8px}.session-discard-btn,.session-view-plan-btn{width:36px;height:36px;border-radius:10px;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center}.session-view-plan-btn:active{background:#ffffff47}.active-session-banner{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;color:#fff;font-size:14px;font-weight:600;letter-spacing:.2px;border:none;cursor:pointer;position:sticky;top:0;z-index:100;transition:filter .15s}.active-session-banner:active{filter:brightness(.9)}.session-split-label{font-size:16px;font-weight:700;letter-spacing:.3px}.session-finish-btn{display:flex;align-items:center;gap:5px;padding:8px 14px;background:#ffffff40;color:#fff;border-radius:10px;font-size:13px;font-weight:600}.session-timer{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.timer-value{font-size:36px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:2px}.session-progress-bar{height:4px;background:#fff3;border-radius:2px;overflow:hidden;margin-bottom:14px}.session-progress-fill{height:100%;background:#fff;border-radius:2px;transition:width .3s ease}.session-stats-row{display:flex;justify-content:space-around}.session-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.session-stat .stat-number{font-size:16px;font-weight:700}.session-stat .stat-label{font-size:10px;opacity:.8;text-transform:uppercase;letter-spacing:.5px}.session-exercises-container{flex:1;overflow-y:auto;padding:16px 16px 100px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.session-exercise-card{background:#fff;border-radius:14px;box-shadow:0 1px 4px #0000000f;transition:box-shadow .2s;overflow:visible}.session-exercise-card.completed{opacity:.75}.session-exercise-header{display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;overflow:hidden}.session-exercise-status{width:24px;height:24px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.session-exercise-info{flex:1;min-width:0;overflow:hidden}.session-exercise-name{display:block;font-size:14px;font-weight:600;color:#3d4a3e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-exercise-meta{display:block;font-size:11px;color:#94a3b8;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-exercise-toggle{color:#94a3b8;flex-shrink:0;display:flex;align-items:center}.session-sets-container{padding:0 14px 14px;overflow:hidden}.session-sets-header{display:flex;align-items:center;gap:0;padding:6px 0;font-size:10px;font-weight:600;text-transform:uppercase;color:#94a3b8;letter-spacing:.5px;border-bottom:1px solid #F1F5F0;margin-bottom:4px}.set-col{width:40px;min-width:40px;text-align:center;flex-shrink:0}.reps-col,.weight-col{flex:1;min-width:0;text-align:center;display:flex;align-items:center;justify-content:center}.check-col{width:44px;min-width:44px;text-align:center;flex-shrink:0}.session-sets-header .set-col,.session-sets-header .reps-col,.session-sets-header .weight-col,.session-sets-header .check-col{display:inline-flex;align-items:center;justify-content:center}.session-set-row{display:flex;align-items:center;gap:0;padding:5px 0;border-radius:8px;transition:background .15s;min-height:44px}.session-set-row.set-done{background:#f0fdf4}.set-number{font-size:13px;font-weight:600;color:#94a3b8}.set-input{width:54px;max-width:54px;padding:7px 2px;text-align:center;border:1px solid #E5E7EB;border-radius:8px;font-size:14px;font-weight:500;color:#3d4a3e;background:#fafaf5;display:block;box-sizing:border-box;-moz-appearance:textfield;appearance:textfield}.set-input::-webkit-outer-spin-button,.set-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.set-input:focus{outline:none;border-color:#5b8e7d;background:#fff}.set-done .set-input{background:#e8f5e9;border-color:#c8e6c9}.set-check-btn{width:32px;height:32px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;margin:0 auto;transition:all .15s;cursor:pointer;flex-shrink:0;box-sizing:border-box}.set-check-btn.checked{transform:scale(1.05)}.start-workout-subtitle{font-size:13px;color:#64748b;margin-bottom:16px}.split-picker-list{display:flex;flex-direction:column;gap:8px}.split-picker-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fdfcf5;border-radius:12px;text-align:left;transition:all .15s}.split-picker-item:disabled{opacity:.4;cursor:not-allowed}.split-picker-item:not(:disabled):active{transform:scale(.98);background:#f1f5f0}.split-picker-color{width:12px;height:36px;border-radius:6px;flex-shrink:0}.split-picker-info{flex:1}.split-picker-name{display:block;font-size:15px;font-weight:600;color:#3d4a3e}.split-picker-count{display:block;font-size:12px;color:#94a3b8;margin-top:1px}.history-container{flex:1;overflow-y:auto;padding:16px 20px 100px}.week-calendar{background:#fff;border-radius:16px;padding:16px;margin-bottom:16px;box-shadow:0 1px 6px #00000014}.week-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.week-month-label{font-size:15px;font-weight:600;color:#1e293b}.week-nav-btn{width:32px;height:32px;border-radius:50%;background:#f8fafc;border:none;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.week-nav-btn:hover:not(:disabled){background:#e2e8f0;color:#334155}.week-nav-btn:disabled{opacity:.3;cursor:not-allowed}.week-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-day{display:flex;flex-direction:column;align-items:center;padding:10px 6px;border-radius:12px;background:#f8fafc;position:relative;transition:all .15s}.week-day.today{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.week-day.today .week-day-name,.week-day.today .week-day-num{color:#fff}.week-day.has-workout{background:#ecfdf5;border:1.5px solid #10B981}.week-day.has-workout.today{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981}.week-day-name{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;margin-bottom:4px}.week-day-num{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:4px}.workout-indicators{display:flex;gap:3px;margin-top:4px}.workout-dot{width:5px;height:5px;border-radius:50%}.history-list{display:flex;flex-direction:column;gap:10px}.history-card-wrapper{position:relative;overflow:hidden;border-radius:14px}.history-card-wrapper .swipe-delete-bg{position:absolute;right:0;top:0;bottom:0;width:100px;display:flex;align-items:center;justify-content:flex-end;padding-right:24px;color:#ef4444;pointer-events:none;opacity:.8}.history-card{background:#fff;border-radius:14px;padding:14px 16px;box-shadow:0 1px 4px #0000000f;cursor:pointer;transition:transform .15s;position:relative;z-index:1;will-change:transform}.history-card:active{transform:scale(.98)}.history-card-header{display:flex;align-items:center;margin-bottom:6px}.history-split-badge{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600}.history-split-badge.large{font-size:16px;padding:6px 16px;border-radius:10px}.history-card-date{font-size:12px;color:#94a3b8;margin-bottom:8px}.history-card-stats{display:flex;gap:14px;font-size:12px;color:#6b7c6d}.history-card-stats span{display:flex;align-items:center;gap:4px}.summary-content{display:flex;flex-direction:column;gap:20px}.summary-hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.summary-hero h3{font-size:20px;font-weight:700;color:#3d4a3e;margin:0}.summary-date{font-size:13px;color:#64748b}.summary-duration{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:#64748b;background:#f1f5f0;padding:4px 12px;border-radius:8px}.summary-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.summary-stat-card{background:#fdfcf5;border-radius:12px;padding:14px 10px;text-align:center;display:flex;flex-direction:column;gap:4px}.summary-stat-value{font-size:20px;font-weight:700;color:#3d4a3e}.summary-stat-label{font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.summary-exercises-list{display:flex;flex-direction:column;gap:6px}.summary-exercise-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f0fdf4;border-radius:8px}.summary-ex-name{flex:1;font-size:13px;font-weight:500;color:#3d4a3e}.summary-ex-detail{font-size:12px;color:#64748b}.history-exercise-detail{padding:10px 12px;background:#fdfcf5;border-radius:10px}.history-exercise-header-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.history-sets-list{display:flex;flex-direction:column;gap:4px;padding-left:24px}.history-set-row{display:flex;gap:16px;font-size:12px;color:#6b7c6d}.history-set-num{font-weight:600;color:#94a3b8;min-width:40px}.log-workout-modal .modal-body{padding-bottom:8px}.log-workout-details .form-group{margin-bottom:16px}.log-workout-details input[type=date],.log-workout-details input[type=time]{width:100%;padding:10px 12px;border-radius:10px;border:1.5px solid #E2E8F0;font-size:14px;background:#f8fafc;color:#1e293b;box-sizing:border-box}.duration-control{display:flex;align-items:center;gap:10px}.duration-btn{width:34px;height:34px;border-radius:50%;border:1.5px solid #E2E8F0;background:#f8fafc;color:#64748b;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s}.duration-btn:active{background:#e2e8f0}.duration-slider{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:#e2e8f0;outline:none}.duration-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary, #6366F1);cursor:pointer;border:2px solid white;box-shadow:0 1px 3px #0003}.log-split-list{display:flex;flex-direction:column;gap:8px}.log-split-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1.5px solid #E2E8F0;background:#fafbfc;cursor:pointer;transition:all .15s;text-align:left;width:100%}.log-split-item:disabled{opacity:.4;cursor:not-allowed}.log-split-item.selected{border-width:2px;background:#fafbfc}.log-exercises-hint{font-size:13px;color:#94a3b8;margin:0 0 12px}.log-workout-exercises .session-exercises-container.compact{max-height:50vh;overflow-y:auto;margin:0 -20px;padding:0 20px}.log-workout-exercises .session-exercise-card{margin-bottom:8px}.recipe-page *,.recipe-page *:before,.recipe-page *:after{box-sizing:border-box}.recipe-page{height:100%;display:flex;flex-direction:column;background:#f8fafc;overflow:hidden}.recipe-header{display:flex;justify-content:space-between;align-items:flex-start;padding:48px 20px 20px;background:linear-gradient(135deg,#ef4444,#b91c1c);border-radius:0 0 20px 20px;flex-shrink:0}.recipe-header .header-left{display:flex;align-items:center;gap:12px;min-width:0}.recipe-header .header-logo{width:36px;height:36px;border-radius:8px;flex-shrink:0}.recipe-header .header-title{color:#fff;font-size:24px;font-weight:700}.recipe-header .header-subtitle{color:#ffffffd9;font-size:13px;margin-top:2px}.recipe-search-container{padding:16px 20px 0;flex-shrink:0}.recipe-search-bar{display:flex;align-items:center;gap:10px;padding:11px 14px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.recipe-search-bar .search-icon{color:#94a3b8;flex-shrink:0}.recipe-search-bar .search-input{flex:1;min-width:0;border:none;outline:none;font-size:15px;color:#1e293b;background:transparent}.recipe-search-bar .search-input::placeholder{color:#94a3b8}.search-clear{padding:2px;color:#94a3b8;display:flex;align-items:center}.recipe-filter-tabs{display:flex;gap:8px;padding:12px 20px 0;flex-shrink:0}.recipe-filter-tab{display:flex;align-items:center;gap:5px;padding:7px 14px;border-radius:20px;font-size:13px;font-weight:500;color:#64748b;background:#fff;border:1.5px solid #E2E8F0;transition:all .2s ease;white-space:nowrap}.recipe-filter-tab.active{background:#ef4444;border-color:#ef4444;color:#fff}.recipe-filter-tab .shared-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:11px;font-weight:600;background:#ef4444;color:#fff;line-height:1}.recipe-filter-tab.active .shared-badge{background:#ffffff4d;color:#fff}.shared-by-label{display:flex;align-items:center;gap:4px;font-size:11px;color:#6366f1;font-weight:500;margin:2px 0 4px}.recipe-view-shared-by{display:flex;align-items:center;gap:6px;font-size:13px;color:#6366f1;font-weight:500;margin:4px 0 8px;padding:6px 10px;background:#eef2ff;border-radius:8px}.recipe-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 20px 100px;min-height:0}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:stretch;gap:14px}.recipe-card-wrapper{position:relative;border-radius:14px;overflow:hidden;height:100%}.recipe-card-wrapper .swipe-delete-bg{position:absolute;right:0;top:0;bottom:0;width:90px;display:flex;align-items:center;justify-content:flex-end;padding-right:22px;background:#fee2e2;color:#ef4444;pointer-events:none;z-index:0}.recipe-card{position:relative;z-index:1;background:#fff;border-radius:14px;box-shadow:0 2px 8px #00000014,0 0 0 1px #0000000a;display:flex;flex-direction:column;overflow:hidden;cursor:pointer;will-change:transform;height:100%;transition:box-shadow .2s,transform .2s}.recipe-card:hover{box-shadow:0 6px 20px #00000021,0 0 0 1px #0000000d;transform:translateY(-2px)}.recipe-thumbnail{width:100%;height:110px;flex-shrink:0;overflow:hidden;position:relative;background:#f1f5f9}.recipe-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.recipe-thumbnail-placeholder{width:100%;height:110px;flex-shrink:0;background:linear-gradient(135deg,#fee2e2,#fecaca);display:flex;align-items:center;justify-content:center;color:#ef4444;position:relative}.recipe-platform-badge{position:absolute;bottom:6px;right:6px;background:#000000b8;border-radius:4px;padding:2px 5px;display:flex;align-items:center;color:#fff}.recipe-card-body{padding:10px 12px 4px;flex:1;min-width:0}.recipe-card-title{font-size:13px;font-weight:600;color:#1e293b;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-channel{font-size:11px;color:#94a3b8;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.recipe-meta-item{display:flex;align-items:center;gap:3px;font-size:11px;color:#64748b}.recipe-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.recipe-tag{font-size:10px;font-weight:500;padding:2px 7px;border-radius:20px;background:#fee2e2;color:#ef4444}.recipe-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;padding:4px 8px 8px}.recipe-action-btn{padding:6px;color:#94a3b8;border-radius:8px;display:flex;align-items:center;transition:color .15s}.recipe-action-btn:hover{color:#ef4444}.recipe-skeleton{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.recipe-skeleton-thumb{width:100%;aspect-ratio:16/9;border-radius:0}.recipe-skeleton-text{height:12px;margin:10px 12px 6px}.recipe-skeleton-text.long{width:80%}.recipe-skeleton-text.short{width:50%;margin-bottom:12px}.import-section{margin-bottom:4px}.import-tabs{display:flex;gap:4px;margin-bottom:10px;background:#f1f5f9;border-radius:10px;padding:3px}.import-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 10px;border-radius:8px;font-size:13px;font-weight:500;color:#64748b;background:transparent;transition:background .15s,color .15s}.import-tab.active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #00000014}.extract-row{display:flex;gap:8px;align-items:stretch}.extract-row input{flex:1;min-width:0;padding:10px 12px;border:1.5px solid #E2E8F0;border-radius:10px;font-size:14px;color:#1e293b;background:#fff;width:auto!important}.extract-row input:focus{border-color:#ef4444;outline:none}.extract-btn{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#ef4444;color:#fff;border-radius:10px;font-size:13px;font-weight:600;white-space:nowrap;flex-shrink:0;transition:background .2s}.extract-btn:hover:not(:disabled){background:#dc2626}.extract-btn:disabled{opacity:.6}.extract-error{font-size:12px;color:#ef4444;margin-top:6px}.extract-success{display:flex;align-items:center;gap:5px;font-size:12px;color:#22c55e;margin-top:6px}.form-thumbnail-preview{position:relative;margin-bottom:12px;border-radius:10px;overflow:hidden;max-height:160px}.form-thumbnail-preview img{width:100%;object-fit:cover;display:block}.thumb-remove-btn{position:absolute;top:6px;right:6px;width:24px;height:24px;background:#0009;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center}.form-time-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.ingredient-list{display:flex;flex-direction:column;gap:6px}.ingredient-row{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.ingredient-row .ing-amount{width:58px!important;min-width:0;flex-shrink:0;padding:8px 6px!important;border:1.5px solid #E2E8F0!important;border-radius:8px!important;font-size:13px!important;color:#1e293b;background:#fff;text-align:center}.ingredient-row .ing-unit{width:66px!important;min-width:0;flex-shrink:0;padding:8px 6px!important;border:1.5px solid #E2E8F0!important;border-radius:8px!important;font-size:13px!important;color:#1e293b;background:#fff}.ingredient-row .ing-name{flex:1!important;min-width:0!important;padding:8px 10px!important;border:1.5px solid #E2E8F0!important;border-radius:8px!important;font-size:13px!important;color:#1e293b;background:#fff;width:auto!important}.ingredient-row .ing-amount:focus,.ingredient-row .ing-unit:focus,.ingredient-row .ing-name:focus{border-color:#ef4444!important;outline:none}.instruction-list{display:flex;flex-direction:column;gap:8px}.instruction-row{display:flex;align-items:flex-start;gap:8px}.step-number{width:24px;height:24px;min-width:24px;background:#ef4444;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-top:8px;flex-shrink:0}.instruction-row textarea{flex:1;min-width:0;padding:8px 10px;border:1.5px solid #E2E8F0;border-radius:8px;font-size:13px;color:#1e293b;background:#fff;resize:vertical;min-height:52px}.instruction-row textarea:focus{border-color:#ef4444;outline:none}.add-row-btn{display:flex;align-items:center;gap:4px;font-size:13px;color:#ef4444;font-weight:500;padding:4px 0}.remove-row-btn{padding:6px;color:#94a3b8;display:flex;align-items:center;flex-shrink:0;transition:color .15s}.remove-row-btn:hover{color:#ef4444}.tags-input-row{display:flex;gap:8px}.tags-input-row input{flex:1;min-width:0;padding:9px 12px;border:1.5px solid #E2E8F0;border-radius:8px;font-size:13px;color:#1e293b;background:#fff;width:auto!important}.tags-input-row input:focus{border-color:#ef4444;outline:none}.add-tag-btn{width:38px;height:38px;background:#ef4444;color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.add-tag-btn:disabled{opacity:.5}.tags-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-chip{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#fee2e2;color:#ef4444;border-radius:20px;font-size:12px;font-weight:500}.tag-chip button{display:flex;align-items:center;color:#ef4444;opacity:.7}.favorite-toggle{display:flex;align-items:center;gap:8px;padding:10px 0 4px;cursor:pointer;font-size:14px;color:#1e293b;font-weight:500}.favorite-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#EF4444;cursor:pointer}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.recipe-view{padding-bottom:8px}.recipe-view-thumbnail{width:100%;border-radius:12px;overflow:hidden;margin-bottom:14px}.recipe-view-thumbnail img{width:100%;max-height:220px;object-fit:cover;display:block}.recipe-view-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.recipe-view-title{font-size:20px;font-weight:700;color:#1e293b;line-height:1.3;flex:1;min-width:0;word-break:break-word}.recipe-view-actions{display:flex;gap:4px;flex-shrink:0}.recipe-view-btn{padding:8px;border-radius:10px;color:#64748b;display:flex;align-items:center;transition:background .15s,color .15s}.recipe-view-btn:hover{background:#f1f5f9;color:#1e293b}.recipe-view-btn.danger:hover{background:#fee2e2;color:#ef4444}.recipe-view-channel{display:flex;align-items:center;gap:5px;font-size:13px;color:#64748b;margin-bottom:10px}.recipe-view-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.recipe-meta-chip{display:flex;align-items:center;gap:5px;padding:5px 10px;background:#fff1f2;border-radius:20px;font-size:12px;color:#ef4444;font-weight:500}.recipe-view-description{font-size:14px;color:#475569;line-height:1.55;margin-bottom:12px}.recipe-view-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.recipe-view-section{margin-bottom:18px}.recipe-section-title{font-size:15px;font-weight:700;color:#1e293b;margin-bottom:10px;padding-bottom:6px;border-bottom:1.5px solid #F1F5F9}.recipe-ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.recipe-ingredient-item{display:flex;align-items:baseline;gap:8px;font-size:14px;color:#1e293b;padding:6px 0;border-bottom:1px solid #F8FAFC}.ingredient-qty{font-weight:600;color:#ef4444;min-width:52px;flex-shrink:0;font-size:13px}.ingredient-name{color:#334155;flex:1;min-width:0}.recipe-instructions-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.recipe-instruction-item{display:flex;gap:12px;align-items:flex-start}.instruction-number{width:26px;height:26px;min-width:26px;background:#ef4444;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:1px}.instruction-text{font-size:14px;color:#334155;line-height:1.55;flex:1;min-width:0;word-break:break-word}.recipe-source-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#6366f1;text-decoration:none;padding:8px 0;margin-top:4px}.recipe-source-link:hover{text-decoration:underline}.share-recipe-modal{display:flex;flex-direction:column;gap:14px}.share-recipe-name{font-size:14px;color:#334155;margin:0}.share-recipe-note{font-size:12px;color:#94a3b8;margin:0;line-height:1.4}.share-email-row{display:flex;gap:8px}.share-email-row input{flex:1;padding:10px 14px;border:1px solid #E2E8F0;border-radius:10px;font-size:14px;background:#f8fafc;color:#1e293b;outline:none;transition:border-color .2s}.share-email-row input:focus{border-color:#ef4444}.share-send-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:none;border-radius:10px;background:#ef4444;color:#fff;cursor:pointer;flex-shrink:0;transition:background .2s,transform .1s}.share-send-btn:hover:not(:disabled){background:#dc2626}.share-send-btn:active:not(:disabled){transform:scale(.95)}.share-send-btn:disabled{opacity:.5;cursor:not-allowed}.share-result{display:flex;align-items:center;gap:6px;font-size:13px;margin:0;padding:8px 12px;border-radius:8px}.share-result.success{color:#16a34a;background:#f0fdf4}.share-result.error{color:#ef4444;background:#fef2f2}.share-connections{border-top:1px solid #F1F5F9;padding-top:14px}.share-connections-label{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.share-connections-list{display:flex;flex-direction:column;gap:4px}.share-connection-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:10px;background:#f8fafc;cursor:pointer;transition:background .2s;text-align:left}.share-connection-item:hover:not(:disabled){background:#f1f5f9}.share-connection-item:disabled{opacity:.5;cursor:not-allowed}.share-conn-avatar{width:32px;height:32px;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;color:#64748b;flex-shrink:0}.share-conn-info{flex:1;min-width:0;display:flex;flex-direction:column}.share-conn-name{font-size:14px;font-weight:500;color:#1e293b}.share-conn-email{font-size:12px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-conn-send{color:#94a3b8;flex-shrink:0;transition:color .2s}.share-connection-item:hover .share-conn-send{color:#ef4444}.settings-page{height:100%;display:flex;flex-direction:column;background:#f8fafc}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:48px 20px 20px;background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:0 0 20px 20px}.settings-header .header-left{display:flex;align-items:center;gap:12px}.settings-header .header-logo{width:40px;height:40px;border-radius:10px}.settings-header .header-title{color:#fff;font-size:24px;font-weight:700;margin:0}.settings-header .header-subtitle{color:#ffffffd9;font-size:13px;margin-top:2px}.settings-content{flex:1;overflow-y:auto;padding:20px 20px 100px}.settings-section{background:#fff;border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.section-title{font-size:18px;font-weight:600;color:#1e293b;margin:0 0 8px}.section-description{font-size:14px;color:#64748b;margin:0 0 20px;line-height:1.5}.modules-list{display:flex;flex-direction:column;gap:12px}.module-card{display:flex;align-items:center;gap:16px;padding:16px;background:#f8fafc;border:2px solid #E2E8F0;border-radius:14px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.module-card:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px)}.module-card.enabled{border-color:#6366f1;background:#eef2ff}.module-card.last-enabled{opacity:.6;cursor:not-allowed}.module-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.module-info{flex:1;min-width:0}.module-name{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 4px}.module-description{font-size:13px;color:#64748b;margin:0;line-height:1.4}.module-toggle{flex-shrink:0}.account-info{display:flex;align-items:center;gap:16px;padding:16px;background:#f8fafc;border-radius:12px;margin-bottom:16px}.account-details{flex:1}.account-name{font-size:16px;font-weight:600;color:#1e293b;margin:0 0 4px}.account-email{font-size:14px;color:#64748b;margin:0}.settings-page .logout-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;background:#fef2f2;border:2px solid #FECACA;border-radius:12px;color:#dc2626;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-page .logout-button:hover{background:#fee2e2;border-color:#fca5a5}.save-bar{position:fixed;bottom:80px;left:0;right:0;padding:16px 20px;background:linear-gradient(to top,#F8FAFC 80%,transparent);display:flex;justify-content:center;z-index:100}.save-button{padding:14px 48px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px #6366f14d}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.save-button:disabled{opacity:.7;cursor:not-allowed}.settings-page .logout-confirm-modal{background:#fff;border-radius:20px;padding:24px;max-width:320px;width:90%;text-align:center}.settings-page .logout-confirm-modal h3{color:#1e293b;margin:0 0 8px;font-size:20px}.settings-page .logout-confirm-modal p{color:#64748b;margin:0 0 24px;font-size:14px}.settings-page .logout-confirm-buttons{display:flex;gap:12px}.settings-page .logout-confirm-buttons button{flex:1;padding:12px;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s ease}.settings-page .logout-confirm-buttons .cancel-btn{background:#f1f5f9;border:none;color:#64748b}.settings-page .logout-confirm-buttons .cancel-btn:hover{background:#e2e8f0}.settings-page .logout-confirm-buttons .confirm-btn{background:#ef4444;border:none;color:#fff}.settings-page .logout-confirm-buttons .confirm-btn:hover{background:#dc2626}@media(max-width:480px){.settings-header{padding:40px 16px 16px}.settings-header h1{font-size:22px}.settings-content{padding:16px}.module-item{padding:14px}}@media(max-width:360px){.settings-header{padding:36px 12px 12px}.settings-header h1{font-size:20px}.module-item{padding:12px}}@media(min-width:768px){.settings-header{padding:56px 32px 24px;border-radius:0 0 24px 24px}.settings-header h1{font-size:28px}.settings-content{padding:24px 32px}.module-item{padding:18px}.settings-section{padding:20px}}@media(min-width:1024px){.settings-header{padding:64px 40px 28px}.settings-content{padding:28px 40px}}@media(hover:hover)and (pointer:fine){.module-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.action-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.toggle-switch:hover{box-shadow:0 0 0 3px #5b8e7d1a}}@media(max-width:360px){.module-card{padding:14px;gap:12px}.module-icon{width:44px;height:44px;border-radius:12px}.module-icon svg{width:24px!important;height:24px!important}.module-name{font-size:15px}.module-description{font-size:12px}}.section-title{display:flex;align-items:center;gap:8px}.connections-add{display:flex;gap:8px;margin-bottom:12px}.connections-add input{flex:1;padding:12px 16px;border:2px solid #E2E8F0;border-radius:10px;font-size:16px;transition:border-color .2s}.connections-add input:focus{outline:none;border-color:#6366f1}.add-connection-btn{padding:12px 16px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:all .2s}.add-connection-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.add-connection-btn:disabled{opacity:.5;cursor:not-allowed}.connection-error{color:#ef4444;font-size:13px;margin:-8px 0 12px}.connections-list{display:flex;flex-direction:column;gap:8px}.connections-empty{color:#64748b;font-size:14px;text-align:center;padding:24px;background:#f8fafc;border-radius:12px}.connection-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f8fafc;border-radius:10px;transition:all .2s}.connection-item:hover{background:#f1f5f9}.connection-info{display:flex;flex-direction:column;gap:2px}.connection-name{font-weight:600;color:#1e293b;font-size:14px}.connection-email{color:#64748b;font-size:12px}.remove-connection-btn{padding:8px;color:#64748b;border-radius:8px;transition:all .2s}.remove-connection-btn:hover{background:#fee2e2;color:#ef4444}.notification-toggle{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;background:#f8fafc;border-radius:12px;transition:all .2s;color:#64748b;cursor:pointer}.notification-toggle:hover{background:#f1f5f9}.notification-toggle.enabled{background:#dcfce7;color:#22c55e}.notification-toggle.enabled:hover{background:#bbf7d0}.notification-toggle-text{display:flex;flex-direction:column;gap:2px;text-align:left}.notification-status{font-weight:600;font-size:15px;color:#1e293b}.notification-toggle.enabled .notification-status{color:#166534}.notification-hint{font-size:12px;color:#64748b}.notification-toggle.enabled .notification-hint{color:#22c55e}.notification-test-section{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #E2E8F0}.notification-test-btn{padding:8px 16px;background:#f1f5f9;border-radius:8px;font-size:13px;font-weight:500;color:#475569;transition:all .2s ease}.notification-test-btn:hover{background:#e2e8f0}.notification-test-btn:disabled{opacity:.6;cursor:not-allowed}.notification-test-result{font-size:13px;font-weight:500}.notification-test-result.success{color:#22c55e}.notification-test-result.warning{color:#f59e0b}.notification-test-result.error{color:#ef4444}.notification-unsupported,.notification-denied{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fef2f2;border-radius:12px;color:#dc2626}.notification-denied{background:#fff7ed;color:#ea580c}.notification-unsupported p,.notification-denied p{margin:0;font-size:14px}.notification-denied .notification-hint{font-size:12px;color:#9a3412;margin-top:4px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#8cb369,#7aa05a)}.auth-container{background:#fff;border-radius:20px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{font-size:2.5rem;color:#8cb369;margin:0;font-weight:700}.auth-subtitle{color:#6b7c6d;margin-top:8px;font-size:1rem}.auth-form h2{text-align:center;color:#3d4a3e;margin-bottom:24px;font-weight:600}.auth-error{background:#f9e5e6;color:#bc4b51;padding:12px;border-radius:8px;margin-bottom:20px;text-align:center;font-size:.9rem}.form-group{margin-bottom:20px}.form-group label{display:flex;margin-bottom:8px;color:#3d4a3e;font-weight:500}.form-group input{width:100%;padding:14px 16px;border:2px solid #EBE8D5;border-radius:10px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#8cb369;box-shadow:0 0 0 3px #8cb36933}.auth-button{width:100%;padding:16px;background:linear-gradient(135deg,#8cb369,#7aa05a);color:#fff;border:none;border-radius:10px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.auth-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #8cb36966}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:24px;padding-top:24px;border-top:1px solid #EBE8D5}.auth-toggle p{color:#6b7c6d;margin:0}.toggle-button{background:none;border:none;color:#8cb369;font-weight:600;cursor:pointer;margin-left:4px;font-size:inherit}.toggle-button:hover{text-decoration:underline}@media(max-width:480px){.auth-container{padding:30px 24px}.auth-header h1{font-size:2rem}.form-group input{font-size:16px}}@media(max-width:360px){.auth-container{padding:24px 20px}.auth-header h1{font-size:1.75rem}}@media(min-width:768px){.auth-container{max-width:450px;padding:48px}}@media(hover:hover)and (pointer:fine){.toggle-button:hover{text-decoration:underline;color:#7aa05a}}.auth-hint{font-size:.75rem;color:var(--color-text-muted, #94a3b8);margin:6px 0 0}.app-container{display:flex;flex-direction:column;height:100%;height:100dvh;max-width:500px;margin:0 auto;background:#fdfcf5;position:relative}.main-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}@media(min-width:768px){.app-container{max-width:700px}}@media(min-width:1024px){.app-container{max-width:900px}}.loading-screen{position:fixed;inset:0;background:linear-gradient(135deg,#8cb369,#7aa05a);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s ease}.loading-screen.fade-out{opacity:0}.loading-content{text-align:center;animation:scaleIn .5s ease}.loading-logo{width:100px;height:100px;border-radius:20px;margin-bottom:20px}.loading-title{color:#fff;font-size:36px;font-weight:700;margin-bottom:8px}.loading-subtitle{color:#fffc;font-size:16px}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.tab-bar{display:flex;justify-content:space-around;align-items:center;background:#fff;padding:8px;box-shadow:0 -4px 20px #00000014;border-top:none;position:relative;z-index:10}@media(min-width:768px){.tab-bar{padding:12px 16px 16px}}.tab-item{display:flex;flex-direction:column;align-items:center;padding:8px 16px;text-decoration:none;transition:all .2s ease}.tab-icon-wrapper{padding:6px 12px;border-radius:12px;transition:all .2s ease}.tab-icon-wrapper.active{background:#5b8e7d26}.tab-label{font-size:12px;font-weight:600;margin-top:4px;color:#8a9b8c}.tab-item.active .tab-label{color:#5b8e7d}.logout-button{background:none;border:none;cursor:pointer}.logout-button:hover .tab-icon-wrapper{background:#ef44441a}.logout-button:hover .tab-label{color:#ef4444}.logout-confirm-modal{background:#fff;border-radius:16px;padding:24px;margin:20px;max-width:320px;text-align:center;animation:scaleIn .2s ease}.logout-confirm-modal h3{font-size:20px;font-weight:600;color:#3d4a3e;margin-bottom:8px}.logout-confirm-modal p{color:#6b7c6d;font-size:15px;margin-bottom:24px}.logout-confirm-buttons{display:flex;gap:12px}.logout-confirm-buttons button{flex:1;padding:14px;border-radius:10px;font-size:16px;font-weight:600;transition:all .2s ease}.logout-confirm-buttons .cancel-btn{background:#f5f3e8;color:#6b7c6d}.logout-confirm-buttons .cancel-btn:hover{background:#ebe8d5}.logout-confirm-buttons .confirm-btn{background:#bc4b51;color:#fff}.logout-confirm-buttons .confirm-btn:hover{background:#a84248}@media(max-width:480px){.tab-item{padding:8px 10px}.tab-label{font-size:11px}.tab-icon-wrapper{padding:5px 10px}}@media(max-width:360px){.tab-item{padding:6px 8px}.tab-label{font-size:10px}.tab-icon-wrapper{padding:4px 8px}}@media(hover:hover)and (pointer:fine){.tab-item:hover .tab-icon-wrapper{background:#5b8e7d1a;transform:scale(1.05)}.logout-button:hover .tab-icon-wrapper{background:#ef44441a;transform:scale(1.05)}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;height:100vh;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:#fdfcf5;color:#3d4a3e;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;border:none;background:none;font-family:inherit}input,textarea{font-family:inherit;border:none;outline:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:0}.modal-content{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:500px;max-height:90vh;animation:slideUp .3s ease;display:flex;flex-direction:column}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@supports (padding: max(0px)){@media(display-mode:standalone){.safe-bottom{padding-bottom:max(16px,env(safe-area-inset-bottom))}.safe-top{padding-top:max(0px,env(safe-area-inset-top))}.safe-left{padding-left:max(0px,env(safe-area-inset-left))}.safe-right{padding-right:max(0px,env(safe-area-inset-right))}}}html{touch-action:manipulation;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{overscroll-behavior-y:contain;text-rendering:optimizeLegibility}button,a{min-height:44px;min-width:44px}input[type=checkbox]{min-height:unset;min-width:unset}.main-content{-webkit-overflow-scrolling:touch}.tab-bar,.tab-item,button{-webkit-user-select:none;user-select:none}@media(hover:none){.tab-item:active .tab-icon-wrapper{transform:scale(.95)}button:active{opacity:.8}}@media(max-width:480px){.modal-overlay{align-items:center;padding:20px}.modal-content{border-radius:20px;max-height:80vh}}.skeleton{background:linear-gradient(90deg,#f5f3e8,#ebe8d5 20%,#f5f3e8 40% 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:8px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-text{height:16px;margin-bottom:8px}.skeleton-text.large{height:24px;margin-bottom:12px}.skeleton-item{padding:16px;margin-bottom:12px;background:#fff;border-radius:12px}.skeleton-row{display:flex;gap:12px;align-items:center}.skeleton-circle{width:24px;height:24px;border-radius:50%;flex-shrink:0}@media(min-width:768px){.app-container{box-shadow:0 0 40px #0000001a}.modal-content{border-radius:20px;max-width:600px;max-height:85vh}.modal-overlay{align-items:center;padding:40px}button:hover:not(:disabled){opacity:.9;transform:translateY(-1px);transition:all .2s ease}}@media(min-width:1024px){.modal-content{max-width:700px}body{font-size:16px}}
