.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:var(--color-inverse-surface);animation:toast-in .18s ease-out}.toast-success{background:color-mix(in srgb,var(--color-success) 70%,black)}.toast-error{background:color-mix(in srgb,var(--color-error) 80%,black)}.toast-info{background:var(--color-inverse-surface)}.toast-with-action{display:flex;align-items:center;gap:12px;cursor:default}.toast-message{flex:1;min-width:0}.toast-action{flex-shrink:0;min-height:36px;min-width:0;padding:0 12px;border-radius:8px;background:transparent;color:#a5a5f7;font-size:.9rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.toast-action:hover{background:#ffffff1a}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background:var(--color-scrim);display:flex;align-items:flex-end;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal-content{background:var(--color-surface);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 var(--color-border);background:var(--color-surface);flex-shrink:0}.modal-header h2{font-size:18px;font-weight:700;color:var(--color-text)}.modal-close-btn{padding:4px;color:var(--color-text-secondary)}.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 var(--color-border);background:var(--color-surface);flex-shrink:0}.btn{flex:1;padding:14px;border-radius:12px;font-size:16px;font-weight:600;transition:all .2s ease}.btn.primary{background:var(--color-primary);color:var(--color-on-primary)}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--color-surface-muted);color:var(--color-text-secondary)}.btn.destructive{background:var(--color-error);color:var(--color-on-primary)}.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:var(--color-text-secondary);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 var(--color-border);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:var(--color-primary)}.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:var(--color-surface-muted);color:var(--color-text-secondary);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:var(--color-border);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:var(--color-text)}.quantity-control{display:flex;align-items:center;gap:4px}.quantity-control button{width:44px;height:44px;border-radius:10px;background:var(--color-surface-muted);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;transition:all .2s ease}@media(hover:hover)and (pointer:fine){.quantity-control button:hover{background:var(--color-border);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:var(--color-text)}.option-pills{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;background:var(--color-surface-muted);color:var(--color-text-secondary);transition:all .2s}.pill:hover{background:var(--color-border)}.pill.active{background:var(--pill-color, var(--color-primary));color:var(--color-on-primary)}.color-picker{position:relative}.color-picker-trigger{width:100%;height:44px;border:2px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;position:relative}.color-picker-trigger:hover{border-color:var(--color-primary);transform:scale(1.02)}.color-value{font-size:13px;font-weight:600;color:var(--color-on-primary);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:var(--color-surface);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 var(--color-border);border-radius:8px;font-size:13px;font-family:monospace;text-transform:uppercase}.color-hex-input:focus{outline:none;border-color:var(--color-primary)}.color-picker-done{padding:8px 16px;background:var(--color-primary);color:var(--color-on-primary);border-radius:8px;font-weight:600;font-size:13px;transition:all .2s}.color-picker-done:hover{background:var(--color-primary-dark)}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-primary)}.checkbox-label span{font-size:14px;color:var(--color-text-secondary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--color-text-muted)}.empty-state p{margin:16px 0;font-size:15px}.empty-state-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--color-primary);color:var(--color-on-primary);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:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb,var(--color-primary) 30%,transparent)}}.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}}.page-header{--page-accent: var(--color-primary);position:relative;overflow:hidden;padding:max(40px,calc(env(safe-area-inset-top,0px) + 20px)) 20px 16px;background:color-mix(in srgb,var(--page-accent) 12%,var(--color-bg));border-radius:0 0 24px 24px;flex-shrink:0}.page-header-watermark{position:absolute;top:-28px;right:-24px;color:var(--page-accent);opacity:.07;pointer-events:none}.page-header-row{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.page-header-text{flex:1 1 180px;min-width:0}.page-header-title{font-size:28px;line-height:34px;font-weight:700;letter-spacing:-.4px;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-header-subtitle{margin-top:2px;font-size:13px;line-height:18px;color:var(--color-text-secondary)}.page-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.page-header-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:44px;height:44px;min-width:44px;border-radius:14px;background:color-mix(in srgb,var(--page-accent) 22%,var(--color-bg));color:var(--page-accent);font-weight:600;font-size:14px;transition:background .15s ease}.page-header-btn.text{width:auto;padding:0 14px}.page-header-btn.solid{background:var(--page-accent);color:var(--color-on-primary)}@media(hover:hover){.page-header-btn:hover:not(:disabled){background:color-mix(in srgb,var(--page-accent) 30%,var(--color-bg))}.page-header-btn.solid:hover:not(:disabled){background:color-mix(in srgb,var(--page-accent) 88%,black)}}.page-header-toolbar{position:relative;margin-top:12px}@media(max-width:360px){.page-header-title{font-size:24px;line-height:30px}}.fab{position:fixed;right:20px;bottom:calc(100px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-on-primary);box-shadow:0 4px 12px color-mix(in srgb,var(--color-primary) 40%,transparent);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 color-mix(in srgb,var(--color-primary) 50%,transparent)}}.fab:active{transform:scale(.95)}@media(min-width:768px){.fab{right:calc((100vw - 700px)/2 + 20px);bottom:calc(96px + env(safe-area-inset-bottom,0px));width:64px;height:64px}}@media(min-width:1024px){.fab{right:calc((100vw - 900px)/2 + 20px)}}@media(max-width:360px){.fab{right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));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, var(--color-text));color:var(--color-text, var(--color-surface-muted))}.error-boundary-card{max-width:420px;width:100%;padding:24px;border-radius:16px;background:var(--color-surface, var(--color-text));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, var(--color-text-muted))}.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, var(--color-primary));color:var(--color-on-primary);font-weight:600;cursor:pointer}.sync-banner{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;background:var(--color-info-container);color:var(--color-info-strong);position:sticky;top:0;z-index:20}.sync-banner-failed{background:var(--color-error-container);color:var(--color-error-strong)}.sync-banner-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-banner-btn{border:1px solid currentColor;background:transparent;color:inherit;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:700;min-height:28px;cursor:pointer}.sync-modal-hint{margin:0 0 12px;font-size:14px;line-height:20px;color:var(--color-text-muted)}.sync-list{list-style:none;margin:0;padding:0;max-height:50vh;overflow-y:auto}.sync-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 0;border-bottom:1px solid var(--color-surface-hover);color:var(--color-text-muted)}.sync-row:last-child{border-bottom:none}.sync-row-failed{color:var(--color-error)}.sync-row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.sync-row-title{font-size:15px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-row-error{font-size:12px;color:var(--color-error)}.sync-modal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;width:100%}.sync-discard{color:var(--color-error)}.todo-page{height:100%;display:flex;flex-direction:column;background:var(--color-bg)}.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:var(--color-text-muted);border:none;border-radius:50%;color:var(--color-on-primary);cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}@media(hover:hover)and (pointer:fine){.time-clear-btn:hover{background:var(--color-text-muted);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:var(--color-surface);border:2px dashed var(--color-primary)}.task-item.dragging .task-item-content{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.view-tabs{display:flex;gap:8px;padding:16px 20px;background:var(--color-bg)}.view-tab{flex:1;padding:10px 16px;background:transparent;border:1.5px solid var(--color-border);border-radius:12px;color:var(--color-text-secondary);font-weight:600;font-size:14px;transition:all .2s ease;cursor:pointer}.view-tab.active{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-on-primary)}.calendar-container{background:var(--color-surface);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:var(--color-text)}.calendar-header button{padding:8px;color:var(--color-text-secondary)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday{text-align:center;font-size:12px;font-weight:600;color:var(--color-text-muted);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:var(--color-text);position:relative}.calendar-day:hover:not(.empty){background:var(--color-surface-muted)}.calendar-day.selected{background:var(--color-primary);color:var(--color-on-primary)}.calendar-day.today:not(.selected){border:2px solid var(--color-primary)}.calendar-day.empty{visibility:hidden}.day-dot{width:4px;height:4px;border-radius:50%;background:var(--color-primary);position:absolute;bottom:4px}.calendar-day.selected .day-dot{background:var(--color-surface)}.week-strip{position:relative;display:flex;align-items:center}.week-strip-scroller{flex:1;min-width:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y}.week-strip-page{flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}.week-strip-nav{display:none;flex-shrink:0;align-items:center;justify-content:center;width:32px;min-width:32px;height:44px;color:var(--color-text-muted);border-radius:10px}@media(hover:hover)and (pointer:fine){.week-strip-nav{display:inline-flex}.week-strip-nav:hover{background:var(--color-surface-hover);color:var(--color-text)}}.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:var(--color-surface);box-shadow:0 2px 6px #0000000d;position:relative}.date-item.selected{background:var(--color-primary)}.date-item.today:not(.selected){border:2px solid var(--color-primary)}.date-day{font-size:11px;color:var(--color-text-muted);font-weight:500}.date-item.selected .date-day{color:#fffc}.date-num{font-size:18px;font-weight:700;color:var(--color-text);margin-top:2px}.date-item.selected .date-num{color:var(--color-on-primary)}.date-dot{width:5px;height:5px;border-radius:50%;background:var(--color-primary);margin-top:4px}.date-item.selected .date-dot{background:var(--color-surface)}.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:var(--color-text-muted);margin-bottom:4px}.overdue-label{color:var(--color-error)}.completed-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.completed-header{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:transparent;color:var(--color-text-muted);font-size:14px;font-weight:600;transition:all .2s ease;border-radius:8px}.completed-header:hover{background:var(--color-surface-hover)}.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:var(--color-surface);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:var(--color-surface);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 var(--color-error);background:linear-gradient(to right,var(--color-error-container) 0%,var(--color-surface) 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:var(--color-text);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:var(--color-text-muted)}.task-meta span{display:inline-flex;align-items:center;gap:2px}.task-category{color:var(--color-primary);background:var(--color-surface-muted);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:var(--color-error-container);color:var(--color-error-strong)}.badge.assigned{background:var(--color-primary-container);color:var(--color-primary)}.badge.assigned-from{background:var(--color-surface-hover);color:var(--color-text-muted);font-size:9px}.task-actions .icon-btn.delete:hover{background:var(--color-error-container);color:var(--color-error)}.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:var(--color-text-secondary);font-size:14px;line-height:1.5;margin-bottom:16px}.backup-btn{display:flex;align-items:center;gap:14px;padding:16px;background:var(--color-bg);border-radius:14px;text-align:left;cursor:pointer;color:var(--color-primary);margin-bottom:12px}.backup-btn-title{display:block;font-weight:600;color:var(--color-text);font-size:15px}.backup-btn-sub{display:block;color:var(--color-text-muted);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:var(--color-surface-muted);border-radius:10px;font-size:14px;color:var(--color-text);cursor:pointer;transition:background .2s ease;margin-bottom:1rem;flex-wrap:nowrap}.backlog-checkbox:hover{background:var(--color-surface-muted)}.backlog-checkbox input[type=checkbox]{width:16px;height:16px;min-width:16px;min-height:16px;margin:0;padding:0;cursor:pointer;accent-color:var(--color-primary-dark);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 var(--color-border);border-radius:6px;font-size:16px;color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:border-color .2s ease;flex:1;max-width:200px;box-sizing:border-box}.backlog-month-select:hover{border-color:var(--color-primary-dark)}.backlog-month-select:focus{outline:none;border-color:var(--color-primary-dark)}.category-chip{padding:8px 12px;background:var(--color-surface-muted);border:2px solid transparent;border-radius:20px;font-size:13px;cursor:pointer;transition:all .2s}.category-chip:hover{background:var(--color-border)}.category-chip.active{background:var(--color-primary-container);border-color:var(--color-primary);color:var(--color-on-primary)}@media(max-width:480px){.todo-list{padding:16px}}@media(max-width:360px){.todo-item{padding:14px}}@media(min-width:768px){.todo-list{padding:24px 32px}.todo-item{padding:18px}.filter-section{padding:20px 32px}}@media(min-width:1024px){.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:var(--color-border);transform:translateY(-1px)}}.store-edit-form input{width:100%;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:8px;font-size:16px}.add-store-form input{width:100%;padding:10px 12px;border:1px solid var(--color-border-strong);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 var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);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:var(--color-primary);color:var(--color-text)}.day-chip.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.recurrence-badge{display:inline-flex;align-items:center;gap:3px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);padding:1px 6px;border-radius:8px;font-size:10px;color:var(--color-primary);font-weight:600;letter-spacing:.3px}.recurrence-label{font-size:10px}.assignee-select{width:100%;padding:12px 40px 12px 12px;border:2px solid var(--color-border);border-radius:10px;font-size:16px;background:var(--color-surface);color:var(--color-text);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:var(--color-primary)}.assignee-hint{margin-top:8px;font-size:12px;color:var(--color-text-secondary);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 var(--color-border);cursor:pointer;transition:background .2s ease}.backlog-month-header-row:hover{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.backlog-collapse-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin:0;background:none;border:none;color:var(--color-primary-dark);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:var(--color-primary-dark);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:var(--color-info);color:var(--color-on-primary);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:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid var(--color-border);border-radius:8px;color:var(--color-primary-dark);cursor:pointer;transition:all .2s ease}.backlog-add-btn:hover{background:color-mix(in srgb,var(--color-primary) 20%,transparent);border-color:var(--color-primary-dark)}.backlog-month-tasks{display:flex;flex-direction:column;gap:0}.backlog-empty-month{padding:16px 20px;margin:0;font-size:13px;color:var(--color-text-muted);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:var(--color-text-secondary);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:var(--color-text-secondary);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:var(--color-text-secondary);margin-bottom:6px;padding-left:4px}.task-search{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px 20px 4px}.task-search-bar{display:flex;align-items:center;gap:10px;width:100%;padding:0 16px;min-height:48px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px}.task-search-bar:focus-within{border-color:var(--accent-todos)}.task-search-icon{color:var(--color-text-muted);flex-shrink:0}.task-search-bar input{flex:1;min-width:0;font-size:16px;background:transparent;color:var(--color-text)}.task-search-bar input::placeholder{color:var(--color-text-muted)}.task-search-chip{min-height:36px;padding:0 14px;border-radius:18px;border:1px solid color-mix(in srgb,var(--accent-todos) 35%,transparent);background:transparent;color:var(--accent-todos);font-size:14px;font-weight:600}.task-search-chip.active{background:var(--accent-todos);border-color:var(--accent-todos);color:var(--color-on-primary)}.search-results-count{margin:4px 4px 8px;font-size:13px;font-weight:600;color:var(--color-text-muted)}.task-date-label{font-weight:600;color:var(--accent-todos)}.task-notes-count{margin:4px 0 0;font-size:12px;text-align:right;color:var(--color-text-muted)}.task-notes-indicator{display:inline-flex;align-items:center;color:var(--color-text-muted)}.shopping-page{height:100%;display:flex;flex-direction:column;background:var(--color-bg)}.share-partners{display:flex;gap:4px;margin-right:4px}.partner-badge{width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--page-accent) 18%,var(--color-surface));color:var(--page-accent);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-surface)}.partner-badge.more{font-size:10px;background:var(--color-surface-muted);color:var(--color-text-secondary)}.progress-container{display:flex;align-items:center;gap:12px;padding:16px 20px}.progress-bar{flex:1;height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-dark));border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;font-weight:600;color:var(--color-text-secondary);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:var(--color-surface);border-radius:20px;font-size:13px;font-weight:500;color:var(--color-text-secondary);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:var(--color-text-muted)}.store-tab.settings:hover{color:var(--color-text-secondary)}.shopping-search-bar{display:flex;align-items:center;gap:8px;margin:0 20px 8px;padding:9px 14px;background:var(--color-surface);border-radius:12px;box-shadow:0 1px 4px #00000014;border:1.5px solid var(--color-border)}.shopping-search-icon{color:var(--color-text-muted);flex-shrink:0}.shopping-search-input{flex:1;font-size:14px;color:var(--color-text);background:transparent;width:auto!important;border:none!important;padding:0!important;box-shadow:none!important}.shopping-search-input::placeholder{color:var(--color-text-muted)}.shopping-search-input:focus{outline:none}.shopping-search-clear{color:var(--color-text-muted);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:var(--color-surface);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:var(--color-surface);border:2px dashed var(--color-primary)}.item-card.dragging .item-card-content{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.item-card-content{display:flex;align-items:flex-start;gap:10px;width:100%;background:var(--color-surface);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:var(--color-text);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:var(--color-text-secondary);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,.item-category.costco{background:var(--color-primary-container);color:var(--color-primary)}.item-category.amazon{background:color-mix(in srgb,var(--accent-shopping) 12%,var(--color-surface));color:var(--accent-shopping)}.item-category.other{background:var(--color-surface-muted);color:var(--color-text-secondary)}.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,var(--accent-shopping) 0%,var(--accent-shopping) 100%);box-shadow:0 4px 20px color-mix(in srgb,var(--accent-shopping) 40%,transparent)}.shopping-page .btn.primary{background:var(--accent-shopping)}.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:var(--color-bg);border-radius:12px;color:var(--color-text-secondary)}.category-btn.active{background:color-mix(in srgb,var(--accent-shopping) 12%,var(--color-surface));color:var(--accent-shopping)}.category-btn span{font-size:13px;font-weight:500}.item-card.shared{border-left:3px solid var(--accent-shopping)}.item-owner{font-size:11px;color:var(--color-text-muted);margin-left:6px;font-weight:400}.share-info{color:var(--color-text-secondary);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 var(--color-border);border-radius:10px;font-size:16px}.share-add input:focus{outline:none;border-color:var(--accent-shopping)}.share-add-btn{width:48px;height:48px;background:var(--accent-shopping);color:var(--color-on-primary);border-radius:10px;display:flex;align-items:center;justify-content:center}.share-add-btn:disabled{opacity:.5}.share-error{color:var(--color-error);font-size:13px;margin-bottom:12px}.share-section{margin-top:20px}.share-section h4{font-size:13px;font-weight:600;color:var(--color-text-secondary);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:var(--color-bg);border-radius:10px}.share-user{display:flex;flex-direction:column}.share-name{font-weight:600;color:var(--color-text)}.share-email{font-size:12px;color:var(--color-text-muted)}.share-remove{width:32px;height:32px;border-radius:8px;color:var(--color-error);display:flex;align-items:center;justify-content:center}.share-remove:hover{background:var(--color-error-container)}.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-list{padding:16px}.shopping-item{padding:14px}}@media(max-width:360px){.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:var(--color-surface-muted);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:var(--color-text)}.store-actions{display:flex;gap:8px}.edit-store-btn,.delete-store-btn{padding:6px;border-radius:6px;color:var(--color-text-secondary);transition:all .2s}.edit-store-btn:hover{background:var(--color-border);color:var(--accent-shopping)}.delete-store-btn:hover{background:var(--color-error-container);color:var(--color-error)}.store-edit-form{display:flex;flex-direction:column;gap:12px;width:100%}.store-edit-form input{width:100%;padding:10px 12px;border:1px solid var(--color-border-strong);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 var(--color-border)}.add-store-form input{width:100%;padding:10px 12px;border:1px solid var(--color-border-strong);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-list{padding:24px 32px}.shopping-item{padding:18px}.filter-section{padding:20px 32px}}@media(min-width:1024px){.shopping-list{padding:28px 40px}}@media(hover:hover)and (pointer:fine){.shopping-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}}.workout-page{height:100%;display:flex;flex-direction:column;background:var(--color-bg)}.view-toggle{display:flex;gap:4px;margin:16px 20px 0;background:var(--color-surface-muted);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:var(--color-text-secondary);transition:all .2s}.view-toggle-btn.active{background:var(--color-surface);color:var(--color-text);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:var(--color-surface);border-radius:20px;font-size:13px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap;box-shadow:0 2px 4px #0000000d}.body-part-btn.active{background:var(--part-color);color:var(--color-on-primary)}.workout-summary{display:flex;align-items:center;gap:8px;padding:0 20px 12px;font-size:13px;color:var(--color-text-secondary)}.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:var(--color-surface);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:var(--color-error);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:var(--color-surface);border:2px dashed var(--color-primary)}.exercise-card.dragging .exercise-card-content{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.exercise-card-content{display:flex;align-items:flex-start;width:100%;background:var(--color-surface);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:var(--color-text);line-height:1.3}.exercise-details{display:flex;align-items:center;gap:8px;margin-top:3px}.exercise-stats{font-size:11px;color:var(--color-text-secondary)}.exercise-pr{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--color-warning-strong);background:var(--color-warning-container);padding:2px 6px;border-radius:6px}.workout-page .fab{background:linear-gradient(135deg,var(--accent-workout) 0%,color-mix(in srgb,var(--accent-workout) 82%,black) 100%);box-shadow:0 4px 20px color-mix(in srgb,var(--accent-workout) 40%,transparent)}.workout-page .btn.primary{background:var(--color-primary)}.settings-modal .modal-body{max-height:60vh;overflow-y:auto}.weight-unit-toggle{padding:16px;background:var(--color-bg);border-radius:12px;margin-bottom:20px}.setting-label{display:block;font-size:13px;font-weight:500;color:var(--color-text-muted);margin-bottom:10px}.unit-buttons{display:flex;gap:8px}.unit-btn{flex:1;padding:10px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;font-size:14px;font-weight:500;color:var(--color-text-muted);transition:all .2s}.unit-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.unit-btn:hover:not(.active){background:var(--color-surface-muted);border-color:var(--color-border-strong)}.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:var(--color-bg);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:var(--color-text);min-width:100px}.body-part-exercise-count{font-size:12px;color:var(--color-text-muted)}.body-part-input{flex:1;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:16px;background:var(--color-surface);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:var(--color-text-muted)}.delete-bp-btn{color:var(--color-error)}.save-bp-btn{padding:6px 12px;background:var(--color-primary);color:var(--color-on-primary);border-radius:6px;font-size:13px;font-weight:500}.add-body-part{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--color-surface-hover);border-radius:12px}.add-bp-btn{display:flex;align-items:center;justify-content:center;gap:6px}@media(max-width:480px){.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-card{padding:14px}}@media(min-width:768px){.body-parts{padding:20px 32px}.workouts-list{padding:24px 32px}.workout-card{padding:20px}}@media(min-width:1024px){.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:var(--color-primary-container);transform:translateY(-1px)}}.active-session-page{background:var(--color-surface-muted)}.session-header{padding:44px 20px 16px;border-radius:0 0 20px 20px;color:var(--color-on-primary)}.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:var(--color-on-primary);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:var(--color-on-primary);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:var(--color-on-primary);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:var(--color-surface);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:var(--color-surface);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:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-exercise-meta{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-exercise-toggle{color:var(--color-text-muted);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:var(--color-text-muted);letter-spacing:.5px;border-bottom:1px solid var(--color-surface-muted);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:var(--color-success-container)}.set-number{font-size:13px;font-weight:600;color:var(--color-text-muted)}.set-input{width:54px;max-width:54px;padding:7px 2px;text-align:center;border:1px solid var(--color-border);border-radius:8px;font-size:14px;font-weight:500;color:var(--color-text);background:var(--color-surface-muted);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:var(--color-primary);background:var(--color-surface)}.set-done .set-input{background:var(--color-success-container);border-color:var(--color-success-container)}.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:var(--color-text-muted);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:var(--color-bg);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:var(--color-surface-muted)}.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:var(--color-text)}.split-picker-count{display:block;font-size:12px;color:var(--color-text-muted);margin-top:1px}.history-container{flex:1;overflow-y:auto;padding:16px 20px 100px}.week-calendar{background:var(--color-surface);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:var(--color-text)}.week-nav-btn{width:32px;height:32px;border-radius:50%;background:var(--color-surface-muted);border:none;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.week-nav-btn:hover:not(:disabled){background:var(--color-border);color:var(--color-text-secondary)}.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:var(--color-surface-muted);position:relative;transition:all .15s}.week-day.today{background:linear-gradient(135deg,var(--color-primary),var(--accent-notes));color:var(--color-on-primary)}.week-day.today .week-day-name,.week-day.today .week-day-num{color:var(--color-on-primary)}.week-day.has-workout{background:var(--color-success-container);border:1.5px solid var(--color-success)}.week-day.has-workout.today{background:linear-gradient(135deg,var(--color-success),var(--color-success-strong));border-color:var(--color-success)}.week-day-name{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;margin-bottom:4px}.week-day-num{font-size:16px;font-weight:700;color:var(--color-text);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:var(--color-error);pointer-events:none;opacity:.8}.history-card{background:var(--color-surface);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:var(--color-text-muted);margin-bottom:8px}.history-card-stats{display:flex;gap:14px;font-size:12px;color:var(--color-text-secondary)}.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:var(--color-text);margin:0}.summary-date{font-size:13px;color:var(--color-text-muted)}.summary-duration{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--color-text-muted);background:var(--color-surface-muted);padding:4px 12px;border-radius:8px}.summary-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.summary-stat-card{background:var(--color-bg);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:var(--color-text)}.summary-stat-label{font-size:10px;color:var(--color-text-muted);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:var(--color-success-container);border-radius:8px}.summary-ex-name{flex:1;font-size:13px;font-weight:500;color:var(--color-text)}.summary-ex-detail{font-size:12px;color:var(--color-text-muted)}.history-exercise-detail{padding:10px 12px;background:var(--color-bg);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:var(--color-text-secondary)}.history-set-num{font-weight:600;color:var(--color-text-muted);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 var(--color-border);font-size:14px;background:var(--color-surface-muted);color:var(--color-text);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 var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s}.duration-btn:active{background:var(--color-border)}.duration-slider{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:var(--color-border);outline:none}.duration-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary, var(--color-primary));cursor:pointer;border:2px solid var(--color-surface);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 var(--color-border);background:var(--color-surface-muted);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:var(--color-surface-muted)}.log-exercises-hint{font-size:13px;color:var(--color-text-muted);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}.rest-timer{position:sticky;top:0;z-index:5;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.rest-timer-track{height:4px;background:var(--color-border)}.rest-timer-bar{height:4px}.rest-timer-row{display:flex;align-items:center;gap:8px;padding:8px 16px}.rest-timer-label{flex:1;display:flex;flex-direction:column}.rest-timer-caption{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px}.rest-timer-time{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.rest-timer-btn{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:14px;font-weight:600;cursor:pointer}.rest-timer-skip{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.setting-hint{margin:0 0 8px;font-size:13px;line-height:18px;color:var(--color-text-muted)}.unit-buttons.rest-options{flex-wrap:wrap}.summary-pr-card{background:var(--color-primary-container);border:1px solid var(--color-primary-light);border-radius:14px;padding:14px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px}.summary-pr-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}.summary-pr-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.summary-pr-name{flex:1;font-size:15px;color:var(--color-text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-pr-value{font-size:15px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.summary-pr-badge{background:var(--color-primary);color:var(--color-on-primary);font-size:11px;font-weight:800;letter-spacing:.5px;border-radius:6px;padding:2px 6px;margin-right:8px}.progress-view{padding:0 16px 32px;display:flex;flex-direction:column;gap:8px}.progress-section-title{font-size:18px;font-weight:700;color:var(--color-text);margin:12px 0 0}.progress-section-hint{font-size:13px;color:var(--color-text-muted);margin:0 0 4px}.progress-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:16px;margin-bottom:8px}.progress-chart{display:flex;align-items:flex-end;gap:4px;height:180px}.progress-column{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}.progress-bar-label{font-size:9px;color:var(--color-text-muted);margin-bottom:2px;font-variant-numeric:tabular-nums;white-space:nowrap}.progress-bar-area{height:140px;width:100%;display:flex;align-items:flex-end}.progress-bar{width:100%;border-radius:4px}.progress-caption{font-size:9px;color:var(--color-text-muted);margin-top:4px;height:12px;white-space:nowrap}.progress-picker{display:flex;gap:8px;overflow-x:auto;padding:4px 0}.progress-chip{flex:0 0 auto;min-height:36px;padding:0 14px;border-radius:18px;border:1px solid;background:var(--color-surface);font-size:14px;font-weight:600;cursor:pointer}.progress-chip.active{color:var(--color-on-primary)}.progress-stats{display:flex;gap:8px;margin-top:8px}.progress-stat{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:12px;display:flex;flex-direction:column;align-items:center}.progress-stat-value{font-size:20px;font-weight:700;color:var(--color-text);font-variant-numeric:tabular-nums}.progress-stat-value.up{color:var(--color-success)}.progress-stat-value.down{color:var(--color-error)}.progress-stat-label{font-size:12px;color:var(--color-text-muted);margin-top:2px}.progress-footnote{font-size:12px;color:var(--color-text-muted);text-align:center;margin:0}.recipe-page *,.recipe-page *:before,.recipe-page *:after{box-sizing:border-box}.recipe-page{height:100%;display:flex;flex-direction:column;background:var(--color-surface-muted);overflow:hidden}.recipe-search-container{padding:16px 20px 0;flex-shrink:0}.recipe-search-bar{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--color-surface);border-radius:12px;box-shadow:0 2px 8px #0000000f}.recipe-search-bar .search-icon{color:var(--color-text-muted);flex-shrink:0}.recipe-search-bar .search-input{flex:1;min-width:0;border:none;outline:none;font-size:15px;color:var(--color-text);background:transparent}.recipe-search-bar .search-input::placeholder{color:var(--color-text-muted)}.search-clear{padding:2px;color:var(--color-text-muted);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:var(--color-text-muted);background:var(--color-surface);border:1.5px solid var(--color-border);transition:all .2s ease;white-space:nowrap}.recipe-filter-tab.active{background:var(--accent-recipes);border-color:var(--accent-recipes);color:var(--color-on-primary)}.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:var(--accent-recipes);color:var(--color-on-primary);line-height:1}.recipe-filter-tab.active .shared-badge{background:#ffffff4d;color:var(--color-on-primary)}.shared-by-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--color-primary);font-weight:500;margin:2px 0 4px}.recipe-view-shared-by{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-primary);font-weight:500;margin:4px 0 8px;padding:6px 10px;background:var(--color-primary-container);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-load-more{display:block;margin:20px auto 0;min-height:44px;padding:0 24px;border-radius:22px;border:1.5px solid color-mix(in srgb,var(--accent-recipes) 40%,transparent);background:transparent;color:var(--accent-recipes);font-size:15px;font-weight:600}.recipe-load-more:disabled{opacity:.6}.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:var(--color-error-container);color:var(--color-error);pointer-events:none;z-index:0}.recipe-card{position:relative;z-index:1;background:var(--color-surface);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:var(--color-surface-hover)}.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,color-mix(in srgb,var(--accent-recipes) 12%,var(--color-surface)),color-mix(in srgb,var(--accent-recipes) 35%,var(--color-surface)));display:flex;align-items:center;justify-content:center;color:var(--accent-recipes);position:relative}.recipe-platform-badge{position:absolute;bottom:6px;right:6px;background:var(--color-scrim);border-radius:4px;padding:2px 5px;display:flex;align-items:center;color:var(--color-on-primary)}.recipe-card-body{padding:10px 12px 4px;flex:1;min-width:0}.recipe-card-title{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-channel{font-size:11px;color:var(--color-text-muted);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:var(--color-text-muted)}.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:color-mix(in srgb,var(--accent-recipes) 12%,var(--color-surface));color:var(--accent-recipes)}.recipe-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px;padding:4px 8px 8px}.recipe-action-btn{padding:6px;color:var(--color-text-muted);border-radius:8px;display:flex;align-items:center;transition:color .15s}.recipe-action-btn:hover{color:var(--accent-recipes)}.recipe-skeleton{background:var(--color-surface);border-radius:14px;overflow:hidden;box-shadow:0 2px 8px #0000000a}.skeleton{background:linear-gradient(90deg,var(--color-surface-hover) 25%,var(--color-border) 50%,var(--color-surface-hover) 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:var(--color-surface-hover);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:var(--color-text-muted);background:transparent;transition:background .15s,color .15s}.import-tab.active{background:var(--color-surface);color:var(--color-text);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 var(--color-border);border-radius:10px;font-size:14px;color:var(--color-text);background:var(--color-surface);width:auto!important}.extract-row input:focus{border-color:var(--accent-recipes);outline:none}.extract-btn{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--accent-recipes);color:var(--color-on-primary);border-radius:10px;font-size:13px;font-weight:600;white-space:nowrap;flex-shrink:0;transition:background .2s}.extract-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent-recipes) 82%,black)}.extract-btn:disabled{opacity:.6}.extract-error{font-size:12px;color:var(--color-error);margin-top:6px}.extract-success{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-success);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:var(--color-scrim);color:var(--color-on-primary);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 var(--color-border)!important;border-radius:8px!important;font-size:13px!important;color:var(--color-text);background:var(--color-surface);text-align:center}.ingredient-row .ing-unit{width:66px!important;min-width:0;flex-shrink:0;padding:8px 6px!important;border:1.5px solid var(--color-border)!important;border-radius:8px!important;font-size:13px!important;color:var(--color-text);background:var(--color-surface)}.ingredient-row .ing-name{flex:1!important;min-width:0!important;padding:8px 10px!important;border:1.5px solid var(--color-border)!important;border-radius:8px!important;font-size:13px!important;color:var(--color-text);background:var(--color-surface);width:auto!important}.ingredient-row .ing-amount:focus,.ingredient-row .ing-unit:focus,.ingredient-row .ing-name:focus{border-color:var(--accent-recipes)!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:var(--accent-recipes);color:var(--color-on-primary);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 var(--color-border);border-radius:8px;font-size:13px;color:var(--color-text);background:var(--color-surface);resize:vertical;min-height:52px}.instruction-row textarea:focus{border-color:var(--accent-recipes);outline:none}.add-row-btn{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--accent-recipes);font-weight:500;padding:4px 0}.remove-row-btn{padding:6px;color:var(--color-text-muted);display:flex;align-items:center;flex-shrink:0;transition:color .15s}.remove-row-btn:hover{color:var(--color-error)}.tags-input-row{display:flex;gap:8px}.tags-input-row input{flex:1;min-width:0;padding:9px 12px;border:1.5px solid var(--color-border);border-radius:8px;font-size:13px;color:var(--color-text);background:var(--color-surface);width:auto!important}.tags-input-row input:focus{border-color:var(--accent-recipes);outline:none}.add-tag-btn{width:38px;height:38px;background:var(--accent-recipes);color:var(--color-on-primary);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:color-mix(in srgb,var(--accent-recipes) 12%,var(--color-surface));color:var(--accent-recipes);border-radius:20px;font-size:12px;font-weight:500}.tag-chip button{display:flex;align-items:center;color:var(--accent-recipes);opacity:.7}.favorite-toggle{display:flex;align-items:center;gap:8px;padding:10px 0 4px;cursor:pointer;font-size:14px;color:var(--color-text);font-weight:500}.favorite-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-recipes);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:var(--color-text);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:var(--color-text-muted);display:flex;align-items:center;transition:background .15s,color .15s}.recipe-view-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.recipe-view-btn.danger:hover{background:var(--color-error-container);color:var(--color-error)}.recipe-view-channel{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--color-text-muted);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:color-mix(in srgb,var(--accent-recipes) 12%,var(--color-surface));border-radius:20px;font-size:12px;color:var(--accent-recipes);font-weight:500}.recipe-view-description{font-size:14px;color:var(--color-text-secondary);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:var(--color-text);margin-bottom:10px;padding-bottom:6px;border-bottom:1.5px solid var(--color-surface-hover)}.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:var(--color-text);padding:6px 0;border-bottom:1px solid var(--color-surface-muted)}.ingredient-qty{font-weight:600;color:var(--accent-recipes);min-width:52px;flex-shrink:0;font-size:13px}.ingredient-name{color:var(--color-text-secondary);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:var(--accent-recipes);color:var(--color-on-primary);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:var(--color-text-secondary);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:var(--color-primary);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:var(--color-text-secondary);margin:0}.share-recipe-note{font-size:12px;color:var(--color-text-muted);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 var(--color-border);border-radius:10px;font-size:14px;background:var(--color-surface-muted);color:var(--color-text);outline:none;transition:border-color .2s}.share-email-row input:focus{border-color:var(--accent-recipes)}.share-send-btn{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:none;border-radius:10px;background:var(--accent-recipes);color:var(--color-on-primary);cursor:pointer;flex-shrink:0;transition:background .2s,transform .1s}.share-send-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent-recipes) 82%,black)}.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:var(--color-success-strong);background:var(--color-success-container)}.share-result.error{color:var(--color-error);background:var(--color-error-container)}.share-connections{border-top:1px solid var(--color-surface-hover);padding-top:14px}.share-connections-label{font-size:12px;font-weight:600;color:var(--color-text-muted);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:var(--color-surface-muted);cursor:pointer;transition:background .2s;text-align:left}.share-connection-item:hover:not(:disabled){background:var(--color-surface-hover)}.share-connection-item:disabled{opacity:.5;cursor:not-allowed}.share-conn-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);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:var(--color-text)}.share-conn-email{font-size:12px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-conn-send{color:var(--color-text-muted);flex-shrink:0;transition:color .2s}.share-connection-item:hover .share-conn-send{color:var(--accent-recipes)}.recipe-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.recipe-add-to-shopping{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:18px;border:none;background:var(--color-primary-container);color:var(--color-primary);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.recipe-add-to-shopping:hover{background:var(--color-primary-container)}.ats-label{margin:8px 0 6px;font-size:12px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px}.ats-empty{color:var(--color-text-muted);text-align:center;padding:24px 0}.ats-stores{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.ats-store-chip{flex:0 0 auto;min-height:36px;padding:0 14px;border-radius:18px;border:1px solid;background:var(--color-surface);font-size:14px;font-weight:600;cursor:pointer}.ats-store-chip.active{color:var(--color-on-primary)}.ats-list{list-style:none;margin:0;padding:0;max-height:45vh;overflow-y:auto}.ats-row{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:8px 0;border:none;background:transparent;text-align:left;cursor:pointer}.ats-row-text{display:flex;flex-direction:column;min-width:0}.ats-row-title{font-size:16px;color:var(--color-text)}.ats-row.off .ats-row-title{color:var(--color-text-muted)}.ats-row-hint{font-size:12px;color:var(--color-text-muted);margin-top:2px}.recipe-page .fab{background:linear-gradient(135deg,var(--accent-recipes) 0%,color-mix(in srgb,var(--accent-recipes) 82%,black) 100%);box-shadow:0 4px 20px color-mix(in srgb,var(--accent-recipes) 40%,transparent)}.whats-new-sheet{max-height:85vh}.whats-new-sheet:focus{outline:none}.whats-new-head{display:flex;align-items:center;gap:12px;padding:20px 20px 4px}.whats-new-badge{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--color-primary);background:var(--color-primary-container)}.whats-new-title{font-size:22px;line-height:28px;font-weight:700;color:var(--color-text)}.whats-new-body{flex:1;min-height:0;overflow-y:auto;padding:8px 20px 4px}.whats-new-release+.whats-new-release{margin-top:20px}.whats-new-release-title{font-size:16px;font-weight:700;color:var(--color-text)}.whats-new-release-date{font-size:13px;color:var(--color-text-muted);margin:2px 0 12px}.whats-new-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.whats-new-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:16px;border:1px solid var(--color-border);background:var(--color-surface)}.whats-new-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.whats-new-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.whats-new-item-title{font-size:15px;font-weight:700;color:var(--color-text)}.whats-new-item-body{font-size:14px;line-height:20px;color:var(--color-text-secondary)}.whats-new-action{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;margin-bottom:-10px;font-size:14px;font-weight:700;text-decoration:none}.whats-new-footer{padding:12px 20px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border)}.whats-new-done{width:100%;min-height:52px;border-radius:14px;background:var(--color-primary);color:var(--color-on-primary);font-size:16px;font-weight:700}.settings-page{height:100%;display:flex;flex-direction:column;background:var(--color-surface-muted)}.settings-content{flex:1;overflow-y:auto;padding:20px 20px 100px}.settings-section{background:var(--color-surface);border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #0000000f}.section-title{font-size:18px;font-weight:600;color:var(--color-text);margin:0 0 8px}.section-description{font-size:14px;color:var(--color-text-muted);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:var(--color-surface-muted);border:2px solid var(--color-border);border-radius:14px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.module-card:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-strong);transform:translateY(-1px)}.module-card.enabled{border-color:var(--color-primary);background:var(--color-primary-container)}.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:var(--color-text);margin:0 0 4px}.module-description{font-size:13px;color:var(--color-text-muted);margin:0;line-height:1.4}.module-toggle{flex-shrink:0}.account-info{display:flex;align-items:center;gap:16px;padding:16px;background:var(--color-surface-muted);border-radius:12px;margin-bottom:16px}.account-details{flex:1}.account-name{font-size:16px;font-weight:600;color:var(--color-text);margin:0 0 4px}.account-email{font-size:14px;color:var(--color-text-muted);margin:0}.settings-page .logout-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;background:var(--color-error-container);border:2px solid color-mix(in srgb,var(--color-error) 35%,var(--color-surface));border-radius:12px;color:var(--color-error-strong);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.settings-page .logout-button:hover{background:var(--color-error-container);border-color:color-mix(in srgb,var(--color-error) 45%,var(--color-surface))}.save-bar{position:fixed;bottom:80px;left:0;right:0;padding:16px 20px;background:linear-gradient(to top,var(--color-surface-muted) 80%,transparent);display:flex;justify-content:center;z-index:100}.save-button{padding:14px 48px;font-size:16px;font-weight:600;color:var(--color-on-primary);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px color-mix(in srgb,var(--color-primary) 30%,transparent)}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px color-mix(in srgb,var(--color-primary) 40%,transparent)}.save-button:disabled{opacity:.7;cursor:not-allowed}.settings-page .logout-confirm-modal{background:var(--color-surface);border-radius:20px;padding:24px;max-width:320px;width:90%;text-align:center}.settings-page .logout-confirm-modal h3{color:var(--color-text);margin:0 0 8px;font-size:20px}.settings-page .logout-confirm-modal p{color:var(--color-text-muted);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:var(--color-surface-hover);border:none;color:var(--color-text-muted)}.settings-page .logout-confirm-buttons .cancel-btn:hover{background:var(--color-border)}.settings-page .logout-confirm-buttons .confirm-btn{background:var(--color-error);border:none;color:var(--color-on-primary)}.settings-page .logout-confirm-buttons .confirm-btn:hover{background:var(--color-error-strong)}@media(max-width:480px){.settings-content{padding:16px}.module-item{padding:14px}}@media(max-width:360px){.module-item{padding:12px}}@media(min-width:768px){.settings-content{padding:24px 32px}.module-item{padding:18px}.settings-section{padding:20px}}@media(min-width:1024px){.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 color-mix(in srgb,var(--color-primary) 10%,transparent)}}@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 var(--color-border);border-radius:10px;font-size:16px;transition:border-color .2s}.connections-add input:focus{outline:none;border-color:var(--color-primary)}.add-connection-btn{padding:12px 16px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--color-on-primary);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 color-mix(in srgb,var(--color-primary) 30%,transparent)}.add-connection-btn:disabled{opacity:.5;cursor:not-allowed}.connection-error{color:var(--color-error);font-size:13px;margin:-8px 0 12px}.connections-list{display:flex;flex-direction:column;gap:8px}.connections-empty{color:var(--color-text-muted);font-size:14px;text-align:center;padding:24px;background:var(--color-surface-muted);border-radius:12px}.connection-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface-muted);border-radius:10px;transition:all .2s}.connection-item:hover{background:var(--color-surface-hover)}.connection-info{display:flex;flex-direction:column;gap:2px}.connection-name{font-weight:600;color:var(--color-text);font-size:14px}.connection-email{color:var(--color-text-muted);font-size:12px}.remove-connection-btn{padding:8px;color:var(--color-text-muted);border-radius:8px;transition:all .2s}.remove-connection-btn:hover{background:var(--color-error-container);color:var(--color-error)}.notification-toggle{display:flex;align-items:center;gap:16px;width:100%;padding:16px 20px;background:var(--color-surface-muted);border-radius:12px;transition:all .2s;color:var(--color-text-muted);cursor:pointer}.notification-toggle:hover{background:var(--color-surface-hover)}.notification-toggle.enabled{background:var(--color-success-container);color:var(--color-success)}.notification-toggle.enabled:hover{background:color-mix(in srgb,var(--color-success) 35%,var(--color-surface))}.notification-toggle-text{display:flex;flex-direction:column;gap:2px;text-align:left}.notification-status{font-weight:600;font-size:15px;color:var(--color-text)}.notification-toggle.enabled .notification-status{color:var(--color-success-strong)}.notification-hint{font-size:12px;color:var(--color-text-muted)}.notification-toggle.enabled .notification-hint{color:var(--color-success)}.notification-test-section{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.notification-test-btn{padding:8px 16px;background:var(--color-surface-hover);border-radius:8px;font-size:13px;font-weight:500;color:var(--color-text-secondary);transition:all .2s ease}.notification-test-btn:hover{background:var(--color-border)}.notification-test-btn:disabled{opacity:.6;cursor:not-allowed}.notification-test-result{font-size:13px;font-weight:500}.notification-test-result.success{color:var(--color-success)}.notification-test-result.warning{color:var(--color-warning)}.notification-test-result.error{color:var(--color-error)}.notification-unsupported,.notification-denied{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--color-error-container);border-radius:12px;color:var(--color-error-strong)}.notification-denied{background:var(--color-warning-container);color:var(--color-warning-strong)}.notification-unsupported p,.notification-denied p{margin:0;font-size:14px}.notification-denied .notification-hint{font-size:12px;color:var(--color-warning-strong);margin-top:4px}.segmented{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--color-surface-sunken)}.segmented-option{flex:1;min-height:40px;border-radius:9px;font-size:14px;font-weight:600;color:var(--color-text-secondary);background:transparent;transition:background .15s ease,color .15s ease}.segmented-option.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.settings-page .account-secondary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.settings-page .account-link,.settings-page .delete-account-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:600;text-decoration:none;background:none}.settings-page .account-link{color:var(--color-text-secondary)}.settings-page .delete-account-link{color:var(--color-error);padding:0}@media(hover:hover){.settings-page .account-link:hover,.settings-page .delete-account-link:hover{text-decoration:underline}}.settings-page .logout-confirm-buttons button:disabled{opacity:.6;cursor:not-allowed}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)}.auth-container{background:var(--color-surface);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:var(--color-primary);margin:0;font-weight:700}.auth-subtitle{color:var(--color-text-secondary);margin-top:8px;font-size:1rem}.auth-form h2{text-align:center;color:var(--color-text);margin-bottom:24px;font-weight:600}.auth-error{background:var(--color-error-container);color:var(--color-error);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:var(--color-text);font-weight:500}.form-group input{width:100%;padding:14px 16px;border:2px solid var(--color-border);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:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.auth-button{width:100%;padding:16px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-on-primary);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 color-mix(in srgb,var(--color-primary) 40%,transparent)}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.auth-toggle p{color:var(--color-text-secondary);margin:0}.toggle-button{background:none;border:none;color:var(--color-primary);font-weight:600;cursor:pointer;margin-left:4px;font-size:inherit}.toggle-button:hover{text-decoration:underline}.auth-legal{text-align:center;margin-top:16px}.auth-legal a{color:var(--color-text-secondary);font-size:12px;text-decoration:none}.auth-legal a: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:var(--color-primary-dark)}}.auth-hint{font-size:.75rem;color:var(--color-text-muted, var(--color-text-muted));margin:6px 0 0}.auth-forgot-link{display:block;margin:8px 0 0 auto;padding:4px 0;min-height:32px;background:none;border:none;color:var(--color-primary);font-size:.85rem;font-weight:600;cursor:pointer}.auth-forgot-link:hover{text-decoration:underline}.auth-step-text{margin:-8px 0 20px;font-size:.9rem;line-height:1.45;color:var(--color-text-muted);text-align:center}.auth-link-button{display:block;width:100%;min-height:44px;margin-top:8px;background:none;border:none;color:var(--color-primary);font-size:.9rem;font-weight:600;cursor:pointer}.auth-link-button:hover:not(:disabled){text-decoration:underline}.auth-link-button:disabled{opacity:.5;cursor:not-allowed}.auth-done{text-align:center}.privacy-page{height:100dvh;overflow-y:auto;background:var(--color-surface-muted);padding:0 16px 60px}.privacy-container{max-width:680px;margin:0 auto;padding-top:40px}.privacy-nav{margin-bottom:32px}.privacy-back{color:var(--color-primary);text-decoration:none;font-size:14px;font-weight:500}.privacy-back:hover{text-decoration:underline}.privacy-title{font-size:28px;font-weight:700;color:var(--color-text);margin:0 0 6px}.privacy-meta{font-size:13px;color:var(--color-text-muted);margin:0 0 32px}.privacy-container p{font-size:15px;line-height:1.7;color:var(--color-text-secondary);margin:0 0 16px}.privacy-container h2{font-size:18px;font-weight:700;color:var(--color-text);margin:36px 0 8px}.privacy-container h3{font-size:15px;font-weight:600;color:var(--color-text);margin:20px 0 6px}.privacy-container ul{margin:0 0 16px;padding-left:20px}.privacy-container li{font-size:15px;line-height:1.7;color:var(--color-text-secondary);margin-bottom:6px}.privacy-container a{color:var(--color-primary);text-decoration:none}.privacy-container a:hover{text-decoration:underline}.welcome-page{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;max-width:500px;margin:0 auto;padding:max(24px,env(safe-area-inset-top,0px)) 24px calc(24px + env(safe-area-inset-bottom,0px));background:var(--color-bg);color:var(--color-text)}.welcome-skip{align-self:flex-end;min-height:44px;padding:0 8px;font-size:16px;color:var(--color-text-muted)}.welcome-slide{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;animation:welcome-in .22s ease-out}.welcome-icon{width:120px;height:120px;border-radius:36px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.welcome-title{font-size:28px;line-height:34px;font-weight:700;letter-spacing:-.4px;color:var(--color-text);outline:none}.welcome-body{font-size:16px;line-height:24px;color:var(--color-text-secondary);max-width:340px}.welcome-select{flex:1;overflow-y:auto;padding-top:24px;display:flex;flex-direction:column;gap:8px}.welcome-select .welcome-body{margin-bottom:12px}.welcome-modules{display:flex;flex-direction:column;gap:10px}.welcome-module{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:16px;border:1.5px solid var(--color-border);background:var(--color-surface);text-align:left;transition:border-color .15s ease,background .15s ease}.welcome-module-icon{flex-shrink:0;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}.welcome-module-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.welcome-module-name{font-size:16px;font-weight:700;color:var(--color-text)}.welcome-module-desc{font-size:13px;line-height:18px;color:var(--color-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.welcome-footer{display:flex;flex-direction:column;align-items:center;gap:20px;padding-top:16px}.welcome-dots{display:flex;gap:6px}.welcome-dot{width:8px;height:8px;border-radius:4px;background:var(--color-border);transition:width .2s ease,background .2s ease}.welcome-dot.active{width:18px}.welcome-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border-radius:14px;background:var(--color-primary);color:var(--color-on-primary);font-size:16px;font-weight:700}.welcome-cta:disabled{opacity:.6}@keyframes welcome-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-container{display:flex;flex-direction:column;height:100%;height:100dvh;max-width:500px;margin:0 auto;background:var(--color-bg);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,var(--color-primary) 0%,var(--color-primary-dark) 100%);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:var(--color-on-primary);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:var(--color-surface);padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 20px #00000014;border-top:none;position:relative;z-index:10}@media(min-width:768px){.tab-bar{padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px))}}.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:color-mix(in srgb,var(--color-primary) 15%,transparent)}.tab-label{font-size:12px;font-weight:600;margin-top:4px;color:var(--color-text-muted)}.tab-item.active .tab-label{color:var(--color-primary)}.logout-button{background:none;border:none;cursor:pointer}.logout-button:hover .tab-icon-wrapper{background:color-mix(in srgb,var(--color-error) 10%,transparent)}.logout-button:hover .tab-label{color:var(--color-error)}.logout-confirm-modal{background:var(--color-surface);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:var(--color-text);margin-bottom:8px}.logout-confirm-modal p{color:var(--color-text-secondary);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:var(--color-surface-muted);color:var(--color-text-secondary)}.logout-confirm-buttons .cancel-btn:hover{background:var(--color-border)}.logout-confirm-buttons .confirm-btn{background:var(--color-error);color:var(--color-on-primary)}.logout-confirm-buttons .confirm-btn:hover{background:var(--color-error-strong)}@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:color-mix(in srgb,var(--color-primary) 10%,transparent);transform:scale(1.05)}.logout-button:hover .tab-icon-wrapper{background:color-mix(in srgb,var(--color-error) 10%,transparent);transform:scale(1.05)}}:root{color-scheme:light;--color-primary: #5B5BF0;--color-primary-dark: #3F3FBE;--color-primary-light: #A5A5F7;--color-primary-container: #EEF0FF;--color-on-primary: #FFFFFF;--color-bg: #F6F7FB;--color-surface: #FFFFFF;--color-surface-hover: #F1F3F8;--color-surface-muted: #F1F3F8;--color-surface-sunken: #ECEEF4;--color-scrim: rgba(15, 23, 42, .45);--color-text: #0B1020;--color-text-secondary: #475569;--color-text-muted: #64748B;--color-text-inverse: #FFFFFF;--color-border: #E5E8EF;--color-border-strong: #D1D5DB;--color-border-light: #F1F3F8;--color-divider: #EEF0F4;--color-success: #10B981;--color-success-strong: #047857;--color-success-container: #D1FAE5;--color-warning: #F59E0B;--color-warning-strong: #B45309;--color-warning-container: #FEF3C7;--color-error: #EF4444;--color-error-strong: #B91C1C;--color-error-container: #FEE2E2;--color-info: #3B82F6;--color-info-strong: #1D4ED8;--color-info-container: #DBEAFE;--accent-todos: #5B5BF0;--accent-shopping: #059669;--accent-workout: #F59E0B;--accent-notes: #8B5CF6;--accent-recipes: #E11D48;--accent-settings: #475569;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 2px 8px rgba(15, 23, 42, .08);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .12);--color-inverse-surface: #1E293B;--skeleton-base: #ECEEF4;--skeleton-highlight: #F6F7FB;--note-tint: 100%}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-primary: #7C7CF5;--color-primary-dark: #5B5BF0;--color-primary-light: color-mix(in srgb, #7C7CF5 40%, #1A1D27);--color-primary-container: color-mix(in srgb, #7C7CF5 22%, #1A1D27);--color-on-primary: #FFFFFF;--color-bg: #0F1117;--color-surface: #1A1D27;--color-surface-hover: #252840;--color-surface-muted: #181B28;--color-surface-sunken: #0C0E18;--color-scrim: rgba(0, 0, 0, .6);--color-text: #E8EAF6;--color-text-secondary: #94A3B8;--color-text-muted: #8A95A8;--color-text-inverse: #0B1020;--color-border: #2A2E3F;--color-border-strong: #353A52;--color-border-light: #1F2232;--color-divider: #232739;--color-success-strong: #6EE7B7;--color-success-container: color-mix(in srgb, #10B981 20%, #1A1D27);--color-warning-strong: #FCD34D;--color-warning-container: color-mix(in srgb, #F59E0B 20%, #1A1D27);--color-error-strong: #FCA5A5;--color-error-container: color-mix(in srgb, #EF4444 20%, #1A1D27);--color-info-strong: #93C5FD;--color-info-container: color-mix(in srgb, #3B82F6 20%, #1A1D27);--accent-todos: #7C7CF5;--accent-settings: #94A3B8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55);--color-inverse-surface: #353A52;--skeleton-base: #1F2232;--skeleton-highlight: #252840;--note-tint: 24%}}:root[data-theme=dark]{color-scheme:dark;--color-primary: #7C7CF5;--color-primary-dark: #5B5BF0;--color-primary-light: color-mix(in srgb, #7C7CF5 40%, #1A1D27);--color-primary-container: color-mix(in srgb, #7C7CF5 22%, #1A1D27);--color-on-primary: #FFFFFF;--color-bg: #0F1117;--color-surface: #1A1D27;--color-surface-hover: #252840;--color-surface-muted: #181B28;--color-surface-sunken: #0C0E18;--color-scrim: rgba(0, 0, 0, .6);--color-text: #E8EAF6;--color-text-secondary: #94A3B8;--color-text-muted: #8A95A8;--color-text-inverse: #0B1020;--color-border: #2A2E3F;--color-border-strong: #353A52;--color-border-light: #1F2232;--color-divider: #232739;--color-success-strong: #6EE7B7;--color-success-container: color-mix(in srgb, #10B981 20%, #1A1D27);--color-warning-strong: #FCD34D;--color-warning-container: color-mix(in srgb, #F59E0B 20%, #1A1D27);--color-error-strong: #FCA5A5;--color-error-container: color-mix(in srgb, #EF4444 20%, #1A1D27);--color-info-strong: #93C5FD;--color-info-container: color-mix(in srgb, #3B82F6 20%, #1A1D27);--accent-todos: #7C7CF5;--accent-settings: #94A3B8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55);--color-inverse-surface: #353A52;--skeleton-base: #1F2232;--skeleton-highlight: #252840;--note-tint: 24%}*{margin:0;padding:0;box-sizing:border-box}html{background-color:var(--color-bg)}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:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;border:none;background:none;font-family:inherit}input,textarea,select{font-family:inherit;border:none;outline:none;background-color:var(--color-surface);color:var(--color-text)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.modal-overlay{position:fixed;inset:0;background:var(--color-scrim);display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:0}.modal-content{background:var(--color-surface);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,var(--color-surface-muted) 0%,var(--color-border) 20%,var(--color-surface-muted) 40%,var(--color-surface-muted) 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:var(--color-surface);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}}
