:root{--primary: #8B5CF6;--primary-end: #6366F1;--primary-gradient: linear-gradient(135deg, #8B5CF6 0%, #6366F1 100%);--danger: #EF4444;--color-success: #10B981;--color-warning: #F59E0B;--color-danger: #EF4444;--color-info: #06B6D4;--font-display: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--background: #fafafa;--background-elevated: #ffffff;--surface: #ffffff;--surface-secondary: #f5f5f5;--surface-hover: rgba(0, 0, 0, .04);--surface-active: rgba(0, 0, 0, .08);--label-primary: #1a1a1a;--label-secondary: #666666;--label-tertiary: rgba(60, 60, 67, .3);--label-quaternary: rgba(60, 60, 67, .18);--text-primary: var(--label-primary);--text-secondary: var(--label-secondary);--separator: #e5e5e5;--separator-opaque: #d4d4d4;--border-color: var(--separator);--fill-primary: rgba(120, 120, 128, .2);--fill-secondary: rgba(120, 120, 128, .16);--fill-tertiary: rgba(120, 120, 128, .12);--fill-quaternary: rgba(120, 120, 128, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-card: 0 2px 8px rgba(0, 0, 0, .06), 0 0 1px rgba(0, 0, 0, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-size-caption2: .6875rem;--font-size-caption1: .75rem;--font-size-footnote: .8125rem;--font-size-subhead: .9375rem;--font-size-callout: 1rem;--font-size-body: 1.0625rem;--font-size-headline: 1.0625rem;--font-size-title3: 1.25rem;--font-size-title2: 1.375rem;--font-size-title1: 1.75rem;--font-size-largeTitle: 2.125rem;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--timing-fast: .15s;--timing-normal: .25s;--timing-slow: .35s;--easing-ios: cubic-bezier(.25, .1, .25, 1);--easing-spring: cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:dark){:root{--primary: #8B5CF6;--primary-end: #6366F1;--danger: #EF4444;--background: #1a1a1a;--background-elevated: #2a2a2a;--surface: #2a2a2a;--surface-secondary: #3a3a3a;--surface-hover: rgba(255, 255, 255, .06);--surface-active: rgba(255, 255, 255, .1);--label-primary: #ffffff;--label-secondary: #999999;--label-tertiary: rgba(235, 235, 245, .3);--label-quaternary: rgba(235, 235, 245, .18);--separator: #3a3a3a;--separator-opaque: #4a4a4a;--fill-primary: rgba(120, 120, 128, .36);--fill-secondary: rgba(120, 120, 128, .32);--fill-tertiary: rgba(120, 120, 128, .24);--fill-quaternary: rgba(120, 120, 128, .18);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-card: 0 2px 8px rgba(0, 0, 0, .3), 0 0 1px rgba(0, 0, 0, .4)}}*{box-sizing:border-box}html{height:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{margin:0;height:100%;font-family:var(--font-body);font-size:var(--font-size-body);background:var(--background);color:var(--text-primary);line-height:1.47;letter-spacing:-.022em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain;font-feature-settings:"kern" 1}#root{height:100%}button{user-select:none;-webkit-user-select:none;font-family:inherit;letter-spacing:inherit}@supports (padding: env(safe-area-inset-bottom)){.app-container{padding-bottom:env(safe-area-inset-bottom)}}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--fill-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--fill-secondary)}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}button:focus:not(:focus-visible){outline:none}@keyframes ios-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes ios-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes ios-slide-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes ios-pulse{0%,to{opacity:1}50%{opacity:.6}}.ios-grouped-section{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-card)}.ios-grouped-section>*+*{border-top:1px solid var(--separator)}.ios-nav-bar{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);background:#ffffffb8}@media(prefers-color-scheme:dark){.ios-nav-bar{background:#1c1c1eb8}}.timer-container{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl);gap:var(--space-lg)}.timer-empty{text-align:center;color:var(--text-secondary);padding:var(--space-3xl)}.timer-empty p{margin:0;font-size:var(--font-size-title3);font-weight:500;letter-spacing:-.02em}.timer-empty-hint{font-size:var(--font-size-subhead)!important;margin-top:var(--space-sm)!important;color:var(--label-tertiary)}.timer-circle-wrapper{display:flex;align-items:center;gap:var(--space-xl)}.timer-adjust-btn{width:56px;height:56px;border-radius:var(--radius-full);border:none;background:var(--fill-tertiary);color:var(--text-primary);font-size:var(--font-size-caption1);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;letter-spacing:-.01em}.timer-adjust-btn:hover:not(:disabled){background:var(--fill-secondary)}.timer-adjust-btn:active:not(:disabled){transform:scale(.94);background:var(--fill-primary)}.timer-adjust-btn:disabled{opacity:.25;cursor:not-allowed}.timer-adjust-btn svg{color:var(--primary)}.adjust-label{white-space:nowrap;color:var(--text-secondary);font-size:var(--font-size-caption2)}.timer-circle{position:relative;width:240px;height:240px;cursor:pointer;transition:transform var(--timing-fast) var(--easing-spring)}.timer-circle:hover{transform:scale(1.02)}.timer-circle:active{transform:scale(.98)}.timer-svg{width:100%;height:100%;transform:rotate(-90deg);filter:drop-shadow(0 4px 12px rgba(0,0,0,.08))}.timer-bg{stroke:var(--fill-tertiary)}.timer-progress{transition:stroke-dashoffset .3s var(--easing-ios);stroke-linecap:round;filter:drop-shadow(0 2px 8px rgba(139,92,246,.3))}.timer-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);width:85%;text-align:center}.timer-icon{font-size:2.25rem;line-height:1}.timer-name{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.timer-time{font-size:2.75rem;font-weight:300;font-variant-numeric:tabular-nums;color:var(--text-primary);letter-spacing:-.02em;line-height:1}.timer-status{font-family:var(--font-display);font-size:var(--font-size-caption1);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;font-weight:600;min-height:1rem;white-space:nowrap}.timer-stop-btn{padding:var(--space-sm) var(--space-xl);border:none;border-radius:var(--radius-full);background:var(--fill-tertiary);color:var(--text-secondary);font-size:var(--font-size-subhead);font-weight:500;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios);display:inline-flex;align-items:center;gap:var(--space-sm)}.timer-stop-btn:hover{background:var(--danger);color:#fff}.timer-stop-btn:active{transform:scale(.96)}@media(max-width:400px){.timer-circle{width:180px;height:180px}.timer-adjust-btn{width:48px;height:48px}.timer-time{font-size:2.25rem}.timer-icon{font-size:1.75rem}.timer-name{font-size:.875rem}}@media(orientation:landscape)and (max-height:500px){.timer-container{padding:var(--space-sm);gap:var(--space-sm)}.timer-circle-wrapper{gap:var(--space-md)}.timer-circle{width:140px;height:140px}.timer-adjust-btn{width:44px;height:44px}.timer-time{font-size:1.5rem}.timer-icon{font-size:1.25rem}.timer-status{font-size:var(--font-size-caption2)}.timer-name{font-size:.75rem}.timer-stop-btn{padding:var(--space-xs) var(--space-lg);font-size:var(--font-size-footnote)}}@media(orientation:landscape)and (min-height:500px){.timer-container{justify-content:center;min-width:360px}}.sortable-task-item{position:relative;display:flex;align-items:stretch;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform var(--timing-fast) var(--easing-ios),box-shadow var(--timing-fast) var(--easing-ios),opacity var(--timing-fast) var(--easing-ios);touch-action:manipulation;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-shrink:0;margin-bottom:var(--space-sm);border-left:4px solid var(--task-color);width:100%;min-width:0;box-sizing:border-box}.sortable-task-item:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.sortable-task-item:last-child{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);margin-bottom:0}.sortable-task-item.swiping,.sortable-task-item.dragging{touch-action:none}.sortable-task-item.dragging{opacity:.95;box-shadow:var(--shadow-lg);z-index:100;transform:scale(1.02)}.sortable-task-item.active{background:linear-gradient(135deg,color-mix(in srgb,var(--task-color) 8%,var(--surface)),color-mix(in srgb,var(--task-color) 4%,var(--surface)));box-shadow:var(--shadow-md),0 0 0 1px color-mix(in srgb,var(--task-color) 20%,transparent)}.sortable-task-item.completed{opacity:.5}.sortable-task-item.skipped{opacity:.45}.sortable-task-item.skipped .task-content-wrapper{text-decoration:line-through;text-decoration-color:var(--text-secondary)}@media(hover:hover){.sortable-task-item.keyboard-focus{box-shadow:var(--shadow-card),0 0 0 2px var(--primary)}}.task-content-wrapper{display:flex;align-items:stretch;flex:1;min-width:0;background:inherit;transition:transform var(--timing-fast) var(--easing-ios);z-index:1}.sortable-task-item.active .task-content-wrapper{background:transparent}.drag-handle{display:flex;align-items:center;justify-content:center;padding:0 var(--space-sm);background:transparent;border:none;color:var(--label-tertiary);cursor:grab;transition:color var(--timing-fast) var(--easing-ios);touch-action:none}.drag-handle:hover{color:var(--text-secondary)}.drag-handle:active{cursor:grabbing;color:var(--text-primary)}.sortable-task-content{flex:1;display:flex;align-items:center;min-width:0}.sortable-task-item.dragging .sortable-task-content{opacity:.9}.swipe-indicator{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:var(--space-sm);padding:0 var(--space-lg);font-size:var(--font-size-subhead);font-weight:600;color:#fff;z-index:0;letter-spacing:-.01em}.swipe-indicator.swipe-skip{left:0;background:var(--color-warning);border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.swipe-indicator.swipe-move{right:0;flex-direction:row-reverse;background:var(--primary);border-radius:0 var(--radius-lg) var(--radius-lg) 0}.swipe-indicator svg{flex-shrink:0}.swipe-indicator svg{animation:ios-pulse .6s var(--easing-ios) infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.15)}}.marquee-container{position:relative;overflow:hidden;white-space:nowrap;width:100%;min-width:0}.marquee-text{display:inline-block;padding-right:20px}.marquee-container.has-overflow{mask-image:linear-gradient(to right,black 0%,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to right,black 0%,black 85%,transparent 100%)}@keyframes marquee-scroll{0%{transform:translate(0)}15%{transform:translate(0)}85%{transform:translate(calc(-1 * var(--scroll-distance)))}to{transform:translate(calc(-1 * var(--scroll-distance)))}}.marquee-container.has-overflow .marquee-text{animation:marquee-scroll var(--scroll-duration, 6s) ease-in-out infinite}@media(prefers-reduced-motion:reduce){.marquee-container.has-overflow .marquee-text{animation:none}}.drawer-backdrop{position:fixed;inset:0;z-index:150;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;transition:opacity var(--timing-normal) var(--easing-ios)}.drawer-backdrop-entering{opacity:0}.drawer-backdrop-open{opacity:1}.drawer-backdrop-closing{opacity:0}.drawer{position:relative;width:100%;z-index:151;background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -4px 24px #00000026;max-height:90vh;overflow-y:auto;transition:transform var(--timing-normal) var(--easing-ios),opacity var(--timing-normal) var(--easing-ios),max-height var(--timing-normal) var(--easing-ios),height var(--timing-normal) var(--easing-ios),border-radius var(--timing-normal) var(--easing-ios)}.drawer-entering{opacity:0;transform:translateY(100%)}.drawer-open{opacity:1;transform:translateY(0)}.drawer-closing{opacity:0;transform:translateY(100%)}.drawer-fullscreen{max-height:100vh;height:100vh;border-radius:0}.drawer-dragging{transition:none}.drawer-handle{width:36px;height:5px;background:var(--fill-secondary);border-radius:var(--radius-full);margin:var(--space-sm) auto var(--space-xs);cursor:grab;touch-action:none}.drawer-handle:active{cursor:grabbing}.drawer-header{padding:var(--space-sm) var(--space-lg) var(--space-md);border-bottom:1px solid var(--separator)}.drawer-header h3{margin:0;font-family:var(--font-display);font-size:var(--font-size-headline);font-weight:600;color:var(--text-primary);text-align:center;letter-spacing:-.02em}.drawer-content{padding:var(--space-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0))}@media(orientation:landscape)and (max-height:500px){.drawer{max-height:85vh}.drawer-header{padding:var(--space-xs) var(--space-lg) var(--space-sm)}.drawer-content{padding:var(--space-md) var(--space-lg);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0))}.drawer-content .icon-picker{grid-template-columns:repeat(10,1fr)}.drawer-content .form-row{margin-bottom:var(--space-sm)}.drawer-content .form-hint{margin-bottom:var(--space-sm);padding-left:0}.drawer-content .color-picker{margin-bottom:var(--space-sm)}.drawer-content .color-option{width:26px;height:26px}}@media(min-width:600px){.drawer{max-width:500px;margin-bottom:var(--space-lg);border-radius:var(--radius-xl)}.drawer-fullscreen{max-width:100%;margin-bottom:0;border-radius:0}}.task-list{display:flex;flex-direction:column;gap:1px;padding:0 var(--space-lg) var(--space-lg);overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain;touch-action:pan-y}.task-list:before{content:"";display:block;height:var(--space-sm)}.task-inner{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);padding-left:var(--space-sm);flex:1;min-height:60px;min-width:0}.task-icon{font-size:1.75rem;flex-shrink:0;width:36px;text-align:center}.task-info{flex:1;min-width:0;overflow:hidden}.task-name{font-size:var(--font-size-body);font-weight:500;color:var(--text-primary);letter-spacing:-.02em}.task-time-info{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-xs);font-size:var(--font-size-footnote);color:var(--text-secondary)}.task-duration{font-weight:600;font-variant-numeric:tabular-nums;color:var(--primary)}.task-schedule{opacity:.7;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.task-skip-btn{width:32px;height:32px;background:var(--color-success);border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;transition:all var(--timing-fast) var(--easing-spring);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #10b9814d}.task-skip-btn:hover{transform:scale(1.08);box-shadow:0 4px 12px #34c75966}.task-skip-btn:active{transform:scale(.95)}.task-index{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--fill-tertiary);border-radius:var(--radius-full);font-size:var(--font-size-caption1);font-weight:600;color:var(--text-secondary);flex-shrink:0}.sortable-task-item.completed .task-name{text-decoration:line-through;color:var(--text-secondary)}.sortable-task-item.completed .task-duration{color:var(--text-secondary)}@media(orientation:landscape)and (max-height:500px){.task-list{padding:0 var(--space-sm) var(--space-sm);gap:0}.task-inner{padding:var(--space-sm) var(--space-md);padding-left:var(--space-xs);min-height:48px}.task-icon{font-size:1.25rem;width:28px}.task-name{font-size:var(--font-size-subhead)}.task-time-info{font-size:var(--font-size-caption1);gap:var(--space-sm);margin-top:2px}.task-index{width:20px;height:20px;font-size:var(--font-size-caption2)}}@media(orientation:landscape)and (min-width:568px){.task-list{border-left:.5px solid var(--separator);padding-left:var(--space-lg);margin-left:var(--space-sm)}}.editor-container{display:flex;flex-direction:column;padding:var(--space-lg);padding-bottom:var(--space-2xl);animation:ios-fade-in var(--timing-normal) var(--easing-ios)}.editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);flex-shrink:0}.editor-header-actions{display:flex;gap:var(--space-sm)}.editor-add-header-btn{padding:var(--space-sm) var(--space-md);background:var(--fill-tertiary);color:var(--primary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-subhead);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios);display:flex;align-items:center;gap:var(--space-xs)}.editor-add-header-btn:hover{background:var(--fill-secondary)}.editor-add-header-btn:active{transform:scale(.96)}.editor-header h2{margin:0;font-family:var(--font-display);font-size:var(--font-size-title3);font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.editor-done-btn{padding:var(--space-sm) var(--space-lg);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-subhead);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.editor-done-btn:hover{filter:brightness(1.1)}.editor-done-btn:active{transform:scale(.96)}.editor-task-list{display:flex;flex-direction:column;gap:1px}.editor-task-inner{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);padding-left:var(--space-sm);flex:1;min-height:56px;min-width:0}.editor-task-inner.editing{background:color-mix(in srgb,var(--primary) 8%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.editor-task-icon{font-size:1.5rem;width:32px;text-align:center}.editor-task-info{flex:1;min-width:0;overflow:hidden}.editor-task-name{display:block;font-size:var(--font-size-body);font-weight:500;color:var(--text-primary);letter-spacing:-.02em}.editor-task-time-row{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs)}.editor-task-duration{font-size:var(--font-size-footnote);font-weight:600;color:var(--primary)}.editor-task-schedule{font-size:var(--font-size-caption1);color:var(--text-secondary);opacity:.7}.editor-task-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.editor-task-actions button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;color:var(--primary);transition:all var(--timing-fast) var(--easing-ios)}.editor-task-actions button:hover{background:var(--fill-quaternary)}.editor-task-actions button:last-child{color:var(--danger)}.editor-task-actions button:last-child:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.editor-add-btn{padding:var(--space-lg);background:transparent;border:2px dashed var(--separator-opaque);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-body);font-weight:500;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios);margin-top:var(--space-sm);margin-bottom:var(--space-lg);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.editor-add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--fill-quaternary)}.form-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.form-row label{font-size:var(--font-size-subhead);color:var(--text-secondary);min-width:70px}.form-input{flex:1;padding:var(--space-md) var(--space-md);background:var(--fill-quaternary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-body);color:var(--text-primary);outline:none;transition:all var(--timing-fast) var(--easing-ios)}.form-input:focus{background:var(--fill-tertiary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.form-input::placeholder{color:var(--label-tertiary)}.form-hint{font-size:var(--font-size-caption1);color:var(--label-tertiary);margin-bottom:var(--space-md);padding-left:82px}.icon-picker-trigger{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);font-size:1.75rem;cursor:pointer;flex-shrink:0;transition:all var(--timing-fast) var(--easing-spring);box-shadow:var(--shadow-sm)}.icon-picker-trigger:hover{transform:scale(1.05)}.icon-picker-trigger:active{transform:scale(.95)}.icon-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:var(--space-xs);padding:var(--space-sm);background:var(--fill-quaternary);border-radius:var(--radius-sm);margin-bottom:var(--space-md)}.icon-option{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:2px solid transparent;border-radius:var(--radius-sm);font-size:1.5rem;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.icon-option:hover{background:var(--surface)}.icon-option.selected{border-color:var(--primary);background:var(--surface)}.custom-icon-btn{color:var(--text-secondary)}.custom-icon-btn.selected{color:var(--primary)}.custom-emoji-input{width:40px;height:40px;border:2px solid var(--primary);border-radius:var(--radius-sm);background:var(--surface);font-size:1.5rem;text-align:center;outline:none;color:var(--text-primary)}.color-picker{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;position:relative}.color-option{width:32px;height:32px;border:3px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all var(--timing-fast) var(--easing-spring);box-shadow:var(--shadow-sm)}.color-option:hover{transform:scale(1.15)}.color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--surface),var(--shadow-sm)}.custom-color-btn{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;cursor:pointer}.custom-color-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.form-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.form-btn{padding:var(--space-md) var(--space-xl);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-subhead);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.form-btn.cancel{background:var(--fill-tertiary);color:var(--text-secondary)}.form-btn.cancel:hover{background:var(--fill-secondary)}.form-btn.save{background:var(--primary);color:#fff}.form-btn.save:hover{filter:brightness(1.1)}.form-btn.save:disabled{opacity:.4;cursor:not-allowed}.form-btn:active:not(:disabled){transform:scale(.96)}@media(orientation:landscape)and (min-width:568px){.editor-container{max-width:1000px;margin:0 auto;flex-direction:row;flex-wrap:wrap;gap:var(--space-lg)}.editor-header{flex:0 0 100%;margin-bottom:0}.editor-task-list{flex:1;min-width:280px;max-height:calc(100vh - 120px)}}@media(orientation:landscape)and (max-height:500px){.editor-container{padding:var(--space-sm) var(--space-lg);gap:var(--space-sm);overflow-y:auto}.editor-header{margin-bottom:var(--space-xs);flex-shrink:0}.editor-task-inner{padding:var(--space-sm);min-height:44px}}@media(min-width:600px)and (orientation:portrait){.editor-container{max-width:600px;margin:0 auto;padding:var(--space-xl)}.editor-task-list{gap:2px}.editor-task-inner{padding:var(--space-lg)}}@media(min-width:900px){.editor-container{max-width:1100px;padding:var(--space-xl) var(--space-3xl);flex-direction:row;flex-wrap:wrap;gap:var(--space-xl)}.editor-header{flex:0 0 100%;margin-bottom:var(--space-sm)}.editor-header h2{font-size:var(--font-size-title2)}.editor-task-list{flex:1;min-width:400px;max-height:calc(100vh - 140px)}.editor-task-inner{padding:var(--space-lg)}}@media(min-width:1200px){.editor-container{max-width:1300px;gap:var(--space-3xl)}.editor-task-list{min-width:500px}}.lists-container{display:flex;flex-direction:column;height:100%;padding:var(--space-lg);animation:ios-fade-in var(--timing-normal) var(--easing-ios)}.lists-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.lists-header h2{margin:0;font-family:var(--font-display);font-size:var(--font-size-title3);font-weight:600;color:var(--text-primary);letter-spacing:-.02em}.lists-done-btn{padding:var(--space-sm) var(--space-lg);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-subhead);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.lists-done-btn:hover{filter:brightness(1.1)}.lists-done-btn:active{transform:scale(.96)}.lists-grid{display:flex;flex-direction:column;gap:var(--space-sm);flex:1;overflow-y:auto;padding:2px;margin:-2px}.list-card{display:flex;align-items:center;padding:var(--space-lg);background:var(--surface);border-radius:var(--radius-lg);border-left:4px solid var(--list-color);cursor:pointer;transition:all var(--timing-fast) var(--easing-ios);min-height:72px;box-shadow:var(--shadow-card)}.list-card:hover{background:var(--surface-hover);transform:translate(2px)}.list-card:active{transform:scale(.99)}.list-card.active{background:linear-gradient(135deg,color-mix(in srgb,var(--list-color) 10%,var(--surface)),color-mix(in srgb,var(--list-color) 5%,var(--surface)));box-shadow:var(--shadow-md),0 0 0 1px color-mix(in srgb,var(--list-color) 25%,transparent)}@media(hover:hover){.list-card.keyboard-focus{box-shadow:var(--shadow-card),0 0 0 2px var(--primary)}}.list-info{flex:1;min-width:0}.list-name{display:block;font-size:var(--font-size-body);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}.list-task-count{font-size:var(--font-size-footnote);color:var(--text-secondary);margin-top:var(--space-xs);display:block}.list-actions{display:flex;gap:var(--space-xs)}.list-edit-btn,.list-delete-btn{padding:var(--space-sm);background:transparent;border:none;cursor:pointer;color:var(--primary);opacity:.6;transition:all var(--timing-fast) var(--easing-ios);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full)}.list-edit-btn:hover{opacity:1;background:var(--fill-quaternary)}.list-delete-btn{color:var(--danger)}.list-delete-btn:hover{opacity:1;background:color-mix(in srgb,var(--danger) 10%,transparent)}.list-edit-form{flex:1;display:flex;flex-direction:column;gap:var(--space-sm)}.list-edit-input{padding:var(--space-sm) var(--space-md);background:var(--fill-quaternary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-body);font-weight:600;color:var(--text-primary);outline:none;transition:all var(--timing-fast) var(--easing-ios)}.list-edit-input:focus{background:var(--fill-tertiary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.list-edit-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.list-save-btn,.list-cancel-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.list-save-btn{background:var(--color-success);color:#fff}.list-save-btn:hover{filter:brightness(1.1)}.list-save-btn:active{transform:scale(.92)}.list-cancel-btn{background:var(--fill-tertiary);color:var(--text-secondary)}.list-cancel-btn:hover{background:var(--fill-secondary)}.list-cancel-btn:active{transform:scale(.92)}.list-color-picker{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.list-color-option{width:26px;height:26px;border:2px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all var(--timing-fast) var(--easing-spring);box-shadow:var(--shadow-sm)}.list-color-option:hover{transform:scale(1.2)}.list-color-option.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--surface),var(--shadow-sm)}.list-add-form-expanded{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);animation:ios-scale-in var(--timing-normal) var(--easing-spring)}.list-add-input{padding:var(--space-md);background:var(--fill-quaternary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-body);color:var(--text-primary);outline:none;transition:all var(--timing-fast) var(--easing-ios)}.list-add-input:focus{background:var(--fill-tertiary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.list-add-input::placeholder{color:var(--label-tertiary)}.list-add-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.list-confirm-btn{padding:var(--space-md) var(--space-xl);background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-subhead);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.list-confirm-btn:hover{filter:brightness(1.1)}.list-confirm-btn:active{transform:scale(.96)}.list-confirm-btn:disabled{opacity:.4;cursor:not-allowed}.list-cancel-text-btn{padding:var(--space-md) var(--space-xl);background:var(--fill-tertiary);color:var(--text-secondary);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-subhead);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.list-cancel-text-btn:hover{background:var(--fill-secondary)}.list-cancel-text-btn:active{transform:scale(.96)}.list-add-btn{padding:var(--space-lg);background:transparent;border:2px dashed var(--separator-opaque);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--font-size-body);font-weight:500;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.list-add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--fill-quaternary)}@media(orientation:landscape)and (min-width:568px){.lists-container{max-width:900px;margin:0 auto;padding:var(--space-lg) var(--space-xl)}.lists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md);align-content:start}.list-add-form-expanded{grid-column:1 / -1;max-width:400px}.list-add-btn{min-height:72px}}@media(orientation:landscape)and (max-height:500px){.lists-container{padding:var(--space-sm) var(--space-lg);overflow-y:auto}.lists-header{margin-bottom:var(--space-sm);flex-shrink:0}.list-card{padding:var(--space-md);min-height:56px}.list-add-form-expanded{padding:var(--space-md);gap:var(--space-sm)}.list-color-picker{gap:var(--space-xs)}.list-color-option{width:22px;height:22px}}@media(min-width:600px)and (orientation:portrait){.lists-container{max-width:600px;margin:0 auto;padding:var(--space-xl)}.lists-grid{gap:var(--space-md)}.list-card{padding:var(--space-xl);min-height:80px}.list-name{font-size:var(--font-size-headline)}.list-add-form-expanded{padding:var(--space-xl)}}@media(min-width:900px){.lists-container{max-width:1000px;padding:var(--space-xl) var(--space-3xl)}.lists-header h2{font-size:var(--font-size-title2)}.lists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.list-card{padding:var(--space-xl);min-height:88px;border-left-width:5px}.list-name{font-size:var(--font-size-headline)}.list-task-count{font-size:var(--font-size-subhead)}.list-edit-btn,.list-delete-btn{padding:var(--space-md)}.list-add-form-expanded{padding:var(--space-xl);max-width:450px}.list-color-option{width:30px;height:30px}.list-add-btn{min-height:88px;font-size:var(--font-size-headline)}}@media(min-width:1200px){.lists-container{max-width:1200px}.lists-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-xl)}.list-card{padding:var(--space-2xl)}}.header{padding:var(--space-md) var(--space-lg);padding-top:calc(env(safe-area-inset-top,0px) + var(--space-md));padding-bottom:var(--space-lg);background:var(--surface);border-bottom:.5px solid var(--separator);position:relative;z-index:10}.header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:44px}.header-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-full);color:var(--label-secondary);cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.header-btn:hover{background:var(--fill-quaternary)}.header-btn:active{transform:scale(.92);background:var(--fill-tertiary)}.header-title{flex:1;margin:0;font-family:var(--font-display);font-size:var(--font-size-headline);font-weight:600;color:var(--text-primary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em}.header-subtitle{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:var(--space-xs);padding-top:var(--space-xs);font-size:var(--font-size-footnote);color:var(--text-secondary);letter-spacing:-.01em}.header-btn.sound-off{color:var(--label-tertiary)}.header-btn.sound-off:hover{color:var(--text-secondary)}.header-actions{display:flex;align-items:center;gap:var(--space-xs)}.header-btn-help{position:absolute;bottom:var(--space-sm);right:var(--space-lg);width:32px;height:32px}.header-btn-help svg{width:18px;height:18px}.header-btn-cloud.logged-in,.cloud-icon-connected{color:var(--color-success)}.cloud-icon-offline{color:var(--color-danger)}.cloud-icon-pending{color:var(--color-warning)}.cloud-icon-syncing{color:var(--primary);animation:cloud-spin 1s linear infinite}.cloud-icon-disabled{color:var(--text-secondary);opacity:.5}.cloud-icon-signed-out{color:var(--primary)}@keyframes cloud-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cloud-menu-wrapper{position:relative}.user-menu{position:absolute;top:calc(100% + var(--space-sm));right:0;min-width:240px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;animation:ios-scale-in var(--timing-normal) var(--easing-spring);transform-origin:top right;overflow:hidden;border:.5px solid var(--separator)}.user-menu-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);color:var(--text-secondary);background:var(--fill-quaternary)}.user-email{font-size:var(--font-size-footnote);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.user-menu-divider{height:.5px;background:var(--separator)}.user-menu-item{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) var(--space-lg);background:none;border:none;color:var(--text-primary);font-size:var(--font-size-subhead);cursor:pointer;transition:background var(--timing-fast) var(--easing-ios);text-align:left}.user-menu-item:hover{background:var(--fill-quaternary)}.user-menu-item:active{background:var(--fill-tertiary)}.user-menu-signout{color:var(--danger)}.user-menu-toggle{justify-content:flex-start}.user-menu-toggle-label{flex:1}.toggle-switch{position:relative;width:51px;height:31px;background:var(--fill-secondary);border-radius:15.5px;transition:background var(--timing-normal) var(--easing-ios);flex-shrink:0}.toggle-switch.active{background:var(--color-success)}.toggle-knob{position:absolute;top:2px;left:2px;width:27px;height:27px;background:#fff;border-radius:50%;transition:transform var(--timing-normal) var(--easing-spring);box-shadow:0 2px 4px #00000026,0 0 1px #0000001a}.toggle-switch.active .toggle-knob{transform:translate(20px)}.header-left{display:flex;align-items:center;gap:var(--space-xs)}@media(orientation:landscape)and (max-height:500px){.header{padding:var(--space-sm) var(--space-lg);padding-top:calc(env(safe-area-inset-top,0px) + var(--space-sm))}.header-top{min-height:36px}.header-btn{width:32px;height:32px}.header-title{font-size:var(--font-size-subhead)}.header-subtitle{margin-top:2px;font-size:var(--font-size-caption1)}}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.session-indicator{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);left:1rem;right:1rem;margin:0 auto;max-width:400px;background:var(--surface);border:1px solid var(--border-color);border-radius:12px;padding:0;cursor:pointer;overflow:hidden;box-shadow:0 4px 12px #00000026;z-index:50;transition:transform .2s ease,box-shadow .2s ease}.session-indicator:hover{transform:scale(1.02);box-shadow:0 6px 16px #0003}.session-indicator:active{transform:scale(.98)}.session-indicator-progress{position:absolute;top:0;left:0;height:100%;opacity:.15;transition:width .3s ease}.session-indicator-content{position:relative;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem}.session-indicator-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0}.session-indicator-task{flex:1;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.session-indicator-time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-primary);flex-shrink:0}.session-indicator{animation:slideUp .3s ease}.auth-modal-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#00000080;z-index:200;animation:fadeIn .2s ease;padding:1rem}.auth-modal{position:relative;background:var(--surface);border-radius:16px;padding:2rem;width:100%;max-width:400px;animation:scaleIn .2s ease}.auth-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .2s ease}.auth-close:hover{color:var(--text-primary)}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-header h2{margin:0 0 .25rem;font-family:var(--font-display);color:var(--text-primary);font-size:1.5rem}.auth-header p{margin:0;color:var(--text-secondary);font-size:.875rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-field{display:flex;flex-direction:column;gap:.375rem}.auth-field label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:.875rem;color:var(--text-secondary);pointer-events:none}.auth-field input{width:100%;padding:.75rem .875rem .75rem 2.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--background);color:var(--text-primary);transition:border-color .2s ease}.auth-field input:focus{outline:none;border-color:var(--primary)}.auth-field input::placeholder{color:var(--text-secondary);opacity:.7}.auth-error{padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:.875rem}.auth-success{padding:.75rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:8px;color:#22c55e;font-size:.875rem}.auth-submit{margin-top:.5rem;padding:.875rem;background:var(--primary-gradient);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.auth-submit:hover:not(:disabled){opacity:.9}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-switch{margin-top:1.5rem;text-align:center;font-size:.875rem;color:var(--text-secondary)}.auth-switch button{background:none;border:none;color:var(--primary);cursor:pointer;font-size:inherit;padding:0;text-decoration:underline}.auth-switch button:hover{opacity:.8}.auth-info{color:var(--text-secondary);font-size:.875rem;margin:1rem 0;line-height:1.6}.auth-info code{background:var(--background);padding:.125rem .375rem;border-radius:4px;font-size:.8125rem}.auth-code{background:var(--background);padding:1rem;border-radius:8px;font-size:.75rem;overflow-x:auto;margin:1rem 0;color:var(--text-primary)}.auth-success-state{text-align:center;padding:1rem 0}.auth-success-icon{color:#22c55e;margin-bottom:1rem}.auth-success-state h2{margin:0 0 .75rem;color:var(--text-primary);font-size:1.5rem}.auth-success-message{color:var(--text-primary);font-size:1rem;margin:0 0 .5rem}.auth-success-hint{color:var(--text-secondary);font-size:.875rem;margin:0 0 1.5rem}.auth-secondary-button{background:transparent;border:1px solid var(--border-color);color:var(--text-primary);padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;cursor:pointer;transition:background .2s ease}.auth-secondary-button:hover{background:var(--background)}.auth-hint{margin-top:1.5rem;text-align:center;font-size:.8125rem;color:var(--text-secondary)}.auth-otp-digits{display:flex;gap:.5rem;justify-content:center;padding:0 1rem}.auth-field .auth-otp-digit{width:44px;height:52px;padding:0;border:1px solid var(--border-color);border-radius:8px;font-size:1.25rem;font-weight:600;text-align:center;background:var(--background);color:var(--text-primary);transition:border-color .2s ease}.auth-field .auth-otp-digit:focus{outline:none;border-color:var(--primary);border-width:2px}.auth-field .auth-otp-digit::placeholder{color:var(--text-secondary);opacity:.3}.auth-otp-actions{margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.auth-link-button{background:none;border:none;color:var(--primary);font-size:.875rem;cursor:pointer;padding:.25rem;display:inline-flex;align-items:center;gap:.25rem;transition:opacity .2s ease}.auth-link-button:hover:not(:disabled){opacity:.8}.auth-link-button:disabled{opacity:.5;cursor:not-allowed}.auth-separator{color:var(--text-secondary);font-size:.875rem}.gesture-help-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease}.gesture-help-content{background:var(--surface);border-radius:16px;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gesture-help-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--surface);z-index:1}.gesture-help-header h2{margin:0;font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--text-primary)}.gesture-help-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:var(--surface-hover);border-radius:50%;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.gesture-help-close:hover{background:var(--border-color);color:var(--text-primary)}.gesture-list,.gesture-list-desktop{padding:.5rem;display:flex;flex-direction:column;gap:.5rem}@media(min-width:768px){.gesture-help-content.desktop-mode{max-width:720px}.gesture-list-desktop{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:1rem}}.gesture-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;background:var(--gesture-color);border-radius:12px;color:#fff;transition:transform .2s ease}.gesture-item:active{transform:scale(.98)}.gesture-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#fff3;border-radius:10px;flex-shrink:0}.gesture-text{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.gesture-label{font-size:.95rem;font-weight:600;line-height:1.3}.gesture-description{font-size:.75rem;opacity:.85;line-height:1.3}.gesture-shortcut{display:flex;align-items:center;padding:.25rem .5rem;background:#00000040;border-radius:6px;font-size:.7rem;font-weight:600;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;white-space:nowrap;flex-shrink:0}@media(min-height:500px)and (min-width:768px){.gesture-help-content{max-width:500px}.gesture-list{padding:1rem;gap:.75rem}.gesture-item{padding:1rem 1.25rem}.gesture-label{font-size:1rem}.gesture-description{font-size:.85rem}}@media(max-height:600px){.gesture-help-content{max-height:85vh}.gesture-item{padding:.75rem}.gesture-icon{width:36px;height:36px}.gesture-icon svg{width:20px;height:20px}.gesture-label{font-size:.875rem}.gesture-description{font-size:.7rem}}.quick-add-button{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 24px);right:24px;width:56px;height:56px;border-radius:50%;border:none;background:var(--primary-gradient);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #8b5cf659;z-index:40;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.quick-add-button:hover{transform:scale(1.08);box-shadow:0 6px 16px #0000004d}.quick-add-button:active{transform:scale(.95);box-shadow:0 2px 8px #0003}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.quick-add-button{animation:popIn .2s ease}.update-banner{position:fixed;bottom:0;left:0;right:0;background:var(--primary);color:#fff;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;z-index:1000;animation:slideUp .3s ease;box-shadow:0 -2px 10px #0003}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.update-banner-content{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:500}.update-banner-icon{flex-shrink:0}.update-banner-actions{display:flex;align-items:center;gap:.5rem}.update-banner-update{background:#fff;color:var(--primary);border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .2s ease;white-space:nowrap}.update-banner-update:hover{opacity:.9}.update-banner-dismiss{background:transparent;border:none;color:#fff;padding:.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s ease}.update-banner-dismiss:hover{opacity:1}@supports (padding-bottom: env(safe-area-inset-bottom)){.update-banner{padding-bottom:calc(.75rem + env(safe-area-inset-bottom))}}.toast{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 1rem);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 20px #00000026;z-index:1000;animation:toastSlideIn .3s ease;max-width:calc(100vw - 2rem)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--primary)}.toast-message{font-size:.875rem;color:var(--text-primary);line-height:1.4}.toast-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:all .15s ease}.toast-close:hover{background:var(--surface-hover);color:var(--text-primary)}.conflict-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeIn .2s ease}.conflict-modal{background:var(--surface);border-radius:16px;padding:1.5rem;max-width:400px;width:100%;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.conflict-modal-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:700;color:var(--text-primary);text-align:center}.conflict-modal-desc{margin:0 0 1.25rem;font-size:.9375rem;color:var(--text-secondary);text-align:center;line-height:1.5}.conflict-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.conflict-option{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem;background:var(--background);border:2px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left}.conflict-option:hover{border-color:var(--primary);background:var(--surface-hover)}.conflict-option:active{transform:scale(.98)}.conflict-option-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--surface);border-radius:12px;color:var(--primary);flex-shrink:0}.conflict-option-content{display:flex;flex-direction:column;gap:.25rem;min-width:0}.conflict-option-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.conflict-option-desc{font-size:.8125rem;color:var(--text-secondary)}.conflict-modal-warning{margin:0;font-size:.8125rem;color:var(--text-secondary);text-align:center;font-style:italic}.conflict-option-merge{border-color:#22c55e;background:#22c55e14}.conflict-option-merge:hover{border-color:#16a34a;background:#22c55e26}.conflict-option-icon-merge{background:#22c55e26;color:#22c55e}.conflict-diff-toggle{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.625rem 1rem;margin-bottom:1rem;background:transparent;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s ease}.conflict-diff-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.conflict-diff-container{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem;animation:fadeIn .2s ease}.conflict-diff-section{background:var(--background);border-radius:10px;border:1px solid var(--border-color);overflow:hidden}.conflict-diff-local{border-left:3px solid var(--primary)}.conflict-diff-cloud{border-left:3px solid #22c55e}.conflict-diff-modified{border-left:3px solid #f97316}.conflict-diff-header{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;background:var(--surface);font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.025em}.conflict-diff-list{padding:.5rem .75rem}.conflict-diff-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 0}.conflict-diff-item:not(:last-child){border-bottom:1px solid var(--border-color)}.conflict-diff-color{width:10px;height:10px;border-radius:3px;flex-shrink:0}.conflict-diff-name{font-size:.875rem;color:var(--text-primary);font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-diff-detail{font-size:.75rem;color:var(--text-secondary);flex-shrink:0}.conflict-modified-category{padding:.25rem 0}.conflict-modified-category:not(:last-child){border-bottom:1px solid var(--border-color);padding-bottom:.5rem;margin-bottom:.25rem}.conflict-modified-category>.conflict-diff-item{border-bottom:none;padding-bottom:.25rem}.conflict-task-list{margin-left:1rem;padding-left:.5rem;border-left:2px solid var(--border-color)}.conflict-task-item{display:flex;align-items:center;gap:.375rem;padding:.25rem 0;font-size:.8125rem}.conflict-task-icon{font-size:.75rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1rem}.conflict-task-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.conflict-task-prefix{font-weight:600;margin-right:.25rem}.conflict-task-local .conflict-task-prefix{color:var(--primary)}.conflict-task-cloud .conflict-task-prefix{color:#22c55e}.conflict-task-duration{font-size:.75rem;color:var(--text-secondary);flex-shrink:0}.conflict-task-changed{flex-wrap:wrap}.conflict-task-changed .conflict-task-icon{color:#f97316}.conflict-task-changes{width:100%;margin-left:1.375rem;font-size:.6875rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-merge-tag{font-size:.625rem;font-weight:600;padding:.125rem .375rem;border-radius:4px;flex-shrink:0;text-transform:uppercase;letter-spacing:.025em}.conflict-merge-tag-local{background:#3b82f61f;color:var(--primary)}.conflict-merge-tag-cloud{background:#22c55e1f;color:#22c55e}.conflict-option-breakdown{font-size:.75rem;color:var(--text-secondary);opacity:.8}.app-container{display:flex;flex-direction:column;height:100%;max-width:520px;margin:0 auto;overflow:hidden;background:var(--background)}.app-main{display:flex;flex-direction:column;flex:1;overflow-y:auto;background:linear-gradient(var(--background) 30%,transparent),linear-gradient(transparent,var(--background) 70%) 0 100%,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.06),transparent),radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.06),transparent) 0 100%;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 12px,100% 12px;background-attachment:local,local,scroll,scroll}.timer-view{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0;animation:ios-fade-in var(--timing-normal) var(--easing-ios)}@media(orientation:landscape)and (min-width:568px){.app-container{max-width:none;padding:0 var(--space-lg)}.timer-view{flex-direction:row;gap:var(--space-lg);padding:var(--space-sm) 0}.timer-view .timer-container{flex:0 0 auto;justify-content:center}.timer-view .task-list{flex:1;min-width:0}}@media(orientation:landscape)and (max-height:500px){.app-container{max-width:none}.timer-view .timer-container{padding:var(--space-sm)}}@media(orientation:landscape)and (min-width:768px)and (min-height:500px){.app-container{max-width:1200px}.timer-view{gap:var(--space-3xl);padding:var(--space-lg) 0}}.session-complete{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;animation:ios-fade-in var(--timing-normal) var(--easing-ios)}.session-complete-content{background:var(--surface);padding:var(--space-2xl);border-radius:var(--radius-xl);text-align:center;max-width:300px;margin:var(--space-lg);box-shadow:var(--shadow-lg);animation:ios-scale-in var(--timing-slow) var(--easing-spring)}.session-complete-icon{font-size:3.5rem;margin-bottom:var(--space-lg);animation:ios-pulse 2s var(--easing-ios) infinite}.session-complete h2{margin:0 0 var(--space-sm);font-family:var(--font-display);color:var(--text-primary);font-size:var(--font-size-title2);font-weight:600;letter-spacing:-.02em}.session-complete p{margin:0 0 var(--space-2xl);color:var(--text-secondary);font-size:var(--font-size-subhead)}.session-complete button{width:100%;padding:var(--space-md) var(--space-2xl);background:var(--primary-gradient);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-body);font-weight:600;cursor:pointer;transition:all var(--timing-fast) var(--easing-ios)}.session-complete button:hover{filter:brightness(1.1)}.session-complete button:active{transform:scale(.98)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
