:root{--bg-color:#0f0f11;--surface-color:#18181b;--surface-hover:#27272a;--text-primary:#e2e8f0;--text-secondary:#a1a1aa;--text-placeholder:#ffffff80;--text-muted:#8a8a93;--accent-primary:#38bdf8;--accent-glow:#38bdf833;--success-color:#34d399;--success-glow:#34d39933;--warning-color:#fbbf24;--warning-glow:#fbbf241f;--danger-color:#f87171;--danger-glow:#f871711f;--record-color:#f6c860;--record-glow:#f6c86021;--record-edge:#f6c86042;--error-color:var(--danger-color);--ambient-lamp:255 214 170;--ambient-air:154 176 206;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff2e;--font-primary:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-secondary:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-micro:.72rem;--text-sm:.85rem;--text-base:.95rem;--text-md:1.05rem;--text-lg:1.35rem;--text-xl:1.75rem;--tracking-tight:-.02em;--tracking-display:-.04em;--tracking-label:.18em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--shadow-panel:0 10px 40px #00000080;--shadow-raised:0 20px 48px #00000080;--shadow-glow:0 6px 20px -6px #38bdf88c;--shadow-success:0 4px 14px -4px #34d39980;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.18s;--dur-base:.25s;--dur-slow:.4s;--focus-ring:0 0 0 2px var(--bg-color), 0 0 0 4px var(--accent-primary)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-secondary);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;line-height:1.5;display:flex}#root{flex-direction:column;flex:1;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-primary);letter-spacing:var(--tracking-tight);font-weight:600}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}::placeholder{color:var(--text-placeholder);opacity:1}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}button:focus-visible,a:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{border-radius:inherit}input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:var(--focus-ring)}@media (prefers-reduced-motion:reduce){.app-loader-string:after,.coach-advance-count,.om-sparkle,.metro-pulse.is-beat,.icon-spin{animation:none!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.12s!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.glass-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#18181bb3}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass-panel{-webkit-backdrop-filter:blur(12px)}}*{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}::-webkit-scrollbar{background:0 0;width:6px;height:6px}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background-color:#ffffff24}::-webkit-scrollbar-thumb:hover{background-color:#ffffff3d}.icon-btn{min-width:36px;min-height:36px;padding:var(--space-2);border-radius:var(--radius-md);color:var(--text-secondary);transition:color var(--dur-base) ease, background var(--dur-base) ease, opacity var(--dur-base) ease;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--text-primary);background:#ffffff0f}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn.danger:not(:disabled):hover{background:var(--danger-glow);color:var(--danger-color)}.icon-btn.success:not(:disabled):hover{background:var(--success-glow);color:var(--success-color)}@media (pointer:coarse){.icon-btn{min-width:44px;min-height:44px}}.icon-glyph{flex-shrink:0;display:block}.icon-spin{animation:.9s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.error-fallback{padding:var(--space-6);background:var(--bg-color);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.error-fallback-card{text-align:center;width:100%;max-width:380px;padding:var(--space-8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#18181bb3}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.error-fallback-card{-webkit-backdrop-filter:blur(12px)}}.error-fallback-card h1{font-size:var(--text-xl);margin-bottom:var(--space-3)}.error-fallback-card p{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:var(--space-6)}.error-fallback-actions{gap:var(--space-3);justify-content:center;display:flex}.error-fallback-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-full);font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);color:var(--text-secondary);border:1px solid var(--border-default);transition:transform var(--dur-fast) var(--ease-out), background var(--dur-base) ease;display:inline-flex}.error-fallback-btn.primary{color:#06141d;background:var(--accent-primary);border-color:#0000}.error-fallback-btn:active{transform:scale(.95)}.context-menu-content{z-index:1000;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:180px;padding:var(--space-2);gap:var(--space-1);box-shadow:var(--shadow-panel);transform-origin:var(--radix-context-menu-content-transform-origin);background:#141417f2;flex-direction:column;animation:.15s ease-out contextMenuFadeIn;display:flex}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-base) ease, color var(--dur-base) ease;align-items:center;gap:var(--space-2);background:0 0;border:none;font-weight:500;display:flex}.context-menu-item:hover,.context-menu-item:focus,.context-menu-item[data-highlighted]{background:#ffffff1a;outline:none}.context-menu-item[data-disabled]{opacity:.35;pointer-events:none}.context-menu-item.danger{color:var(--error-color)}.context-menu-item.danger:hover,.context-menu-item.danger:focus,.context-menu-item.danger[data-highlighted]{background:var(--danger-glow);outline:none}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.context-menu-content{-webkit-backdrop-filter:blur(20px)}}.app-loader{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-8);flex-direction:column;display:flex}.app-loader.is-overlay{z-index:200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0cdb;position:fixed;inset:0}.app-loader-strings{flex-direction:column;gap:8px;width:120px;display:flex}.app-loader-string{background:#ffffff1a;border-radius:2px;height:2px;position:relative;overflow:hidden}.app-loader-string:first-child{height:3px}.app-loader-string:nth-child(2){height:2.5px}.app-loader-string:nth-child(3){height:2px}.app-loader-string:nth-child(4){height:1.5px}.app-loader-string:nth-child(5){height:1.2px}.app-loader-string:nth-child(6){height:1px}.app-loader-string:after{content:"";background:linear-gradient(90deg,#0000,#38bdf8cc,#0000);width:100%;height:100%;animation:1.5s ease-in-out infinite app-loader-strum;position:absolute;top:0;left:-100%}.app-loader-string:first-child:after{animation-delay:0s}.app-loader-string:nth-child(2):after{animation-delay:.1s}.app-loader-string:nth-child(3):after{animation-delay:.2s}.app-loader-string:nth-child(4):after{animation-delay:.3s}.app-loader-string:nth-child(5):after{animation-delay:.4s}.app-loader-string:nth-child(6):after{animation-delay:.5s}@keyframes app-loader-strum{0%{left:-100%}to{left:100%}}.app-loader-label{font-family:var(--font-secondary);font-size:var(--text-sm);letter-spacing:.08em;color:var(--text-secondary)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.app-loader.is-overlay{-webkit-backdrop-filter:blur(12px)}}.song-picker{gap:var(--space-2);flex-direction:column;display:flex}.song-picker-tools{gap:var(--space-2);flex-wrap:wrap;display:flex}.song-picker-btn{align-items:center;gap:var(--space-1);min-height:34px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-secondary);font-size:var(--text-sm);cursor:pointer;background:0 0;font-weight:500;transition:border-color .18s,color .18s,background .18s;display:inline-flex;position:relative}.song-picker-btn:after{content:"";position:absolute;inset:-5px}.song-picker-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-glow)}.song-picker-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.task-row{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4);text-align:left;background:var(--surface-color);border-radius:var(--radius-lg);transition:background var(--dur-base) ease, border-color var(--dur-base) ease, transform var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none;margin-bottom:var(--space-3);border:1px solid #ffffff08;display:flex;position:relative;overflow:hidden}.task-row:hover{background:var(--surface-hover);border-color:var(--border-subtle)}.task-row:active{transform:scale(.985)}.task-row:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-primary);border-color:#38bdf873}.task-state{width:24px;height:24px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.state-done{background-color:var(--success-color);color:var(--bg-color);border-radius:var(--radius-full);box-shadow:var(--shadow-success);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.state-done.is-word{color:var(--text-secondary);box-shadow:inset 0 0 0 1.5px var(--border-strong);background:0 0}.state-ring{transition:color var(--dur-base) ease}.task-row:hover .state-ring{color:var(--text-primary)}.state-dot{border-radius:var(--radius-full);background:var(--accent-primary);width:9px;height:9px;position:absolute}.task-row.is-underway .state-ring{color:var(--accent-primary)}.state-unheard{color:var(--warning-color);display:inline-flex}.task-content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.task-title{font-family:var(--font-primary);font-weight:500;font-size:var(--text-md);color:var(--text-primary);transition:color var(--dur-slow) ease;overflow-wrap:anywhere;display:block}.task-desc{font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--dur-slow) ease;overflow-wrap:anywhere;line-height:1.45;display:block}.task-line{font-size:var(--text-sm);color:var(--text-secondary);overflow-wrap:anywhere;line-height:1.45;display:block}.task-row.is-done .task-line{color:var(--success-color)}.task-row.is-stated .task-line{color:var(--text-secondary)}.task-row.is-unheard .task-line{color:var(--warning-color)}.task-row.is-underway .task-line{color:var(--accent-primary)}.task-duration{font-size:var(--text-micro);color:var(--accent-primary);background:var(--accent-glow);border-radius:var(--radius-full);white-space:nowrap;padding:2px 8px;font-weight:600}.task-row.is-done{background:#18181b8c;border-color:#0000}.task-row.is-done .task-duration{color:var(--text-muted);border:1px solid var(--border-default);background:0 0}.task-row.is-done .task-duration.is-spent{color:var(--success-color);background:var(--success-glow);border-color:#0000}.task-row.is-just-done{animation:task-noticed 1.1s var(--ease-out) 1}@keyframes task-noticed{0%{background:var(--success-glow);border-color:#34d39973}55%{background:var(--success-glow);border-color:#34d3994d}to{background:#18181b8c;border-color:#0000}}@media (prefers-reduced-motion:reduce){.task-row.is-just-done{animation:none}}.task-row.editing{background:var(--surface-hover);border-color:var(--accent-primary);padding:var(--space-4);display:block}.task-edit-form{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.task-edit-input,.task-edit-textarea{border:1px solid var(--border-default);color:var(--text-primary);padding:var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:var(--text-base);transition:border-color var(--dur-base) ease;background:#0003;width:100%}.task-edit-input:focus,.task-edit-textarea:focus{border-color:var(--accent-primary)}.task-edit-textarea{resize:none;font-size:var(--text-sm);color:var(--text-secondary)}.task-edit-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1);display:flex}.task-aside{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-direction:row;flex-shrink:0;display:flex}.task-drill-result{font-size:var(--text-micro);letter-spacing:.02em;color:var(--success-color);white-space:nowrap;font-weight:600}.task-row.is-done .task-drill-result{color:color-mix(in srgb, var(--success-color) 82%, var(--surface-color))}.task-go{width:26px;height:26px;margin-left:var(--space-1);border-radius:var(--radius-full);color:var(--accent-primary);background:var(--accent-glow);transition:background var(--dur-base) ease, color var(--dur-base) ease;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.task-row:hover .task-go{background:#38bdf83d}.task-row.is-done .task-go{color:var(--text-muted);background:#ffffff0d}@media (width<=600px){.task-row{row-gap:var(--space-2);flex-wrap:wrap}.task-state{order:1}.task-content{flex:1 1 0;order:2}.task-go{order:3}.task-aside{padding-left:calc(24px + var(--space-4));flex-basis:100%;order:4;justify-content:flex-start}.task-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (pointer:coarse){.task-row{min-height:60px}.task-go{width:32px;height:32px}}.task-desc.is-tab-note{border-radius:var(--radius-full);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);background:#ffffff0f;align-self:flex-start;align-items:center;padding:1px 8px;display:inline-flex}.task-duration-field{align-items:center;width:100%;display:flex;position:relative}.task-duration-field input{padding-right:3.4rem}.task-duration-suffix{right:var(--space-3);font-family:var(--font-primary);font-size:var(--text-base);color:var(--text-secondary);pointer-events:none;position:absolute}.drill-edit{gap:var(--space-2);padding-top:var(--space-1);flex-direction:column;display:flex}.drill-edit-label{font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-weight:600}.drill-segment{gap:var(--space-1);border-radius:var(--radius-md);background:#00000040;border:1px solid #ffffff0f;padding:3px;display:flex}.drill-segment-btn{padding:var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-primary);font-size:var(--text-sm);color:var(--text-secondary);flex:1;font-weight:600;transition:color .2s,background .2s}.drill-segment-btn:hover{color:var(--text-primary)}.drill-segment-btn.active{color:#06141d;background:var(--accent-primary)}.drill-segment-btn{font-size:var(--text-micro)}.drill-hint{font-size:var(--text-micro);color:var(--text-secondary)}.drill-chip-grid{gap:var(--space-2);flex-wrap:wrap;display:flex}.drill-chip{min-width:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);background:#00000040;border:1px solid #ffffff1a;transition:color .2s,background .2s,border-color .2s}.drill-chip.active{color:var(--accent-primary);background:var(--accent-glow);border-color:#38bdf866}.drill-song-select{cursor:pointer}.drill-song-select option{background:var(--surface-color);color:var(--text-primary)}.drill-blocks{gap:var(--space-2);flex-direction:column;display:flex}.drill-block-row{align-items:center;gap:var(--space-2);display:flex}.drill-block-row .task-input{min-width:0}.drill-block-mins{flex:0 0 92px;align-items:center;display:flex;position:relative}.drill-block-mins input{text-align:center;padding-right:2.6rem}.drill-block-mins .task-duration-suffix{right:var(--space-2);position:absolute}.drill-block-remove{padding:var(--space-2);border-radius:var(--radius-sm);color:var(--text-secondary);flex:none;justify-content:center;align-items:center;transition:color .2s,background .2s;display:inline-flex}.drill-block-remove:hover{color:var(--danger-color);background:#f871711a}.drill-block-add{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-primary);font-size:var(--text-sm);border:1px dashed #ffffff2e;align-self:flex-start;font-weight:600;transition:color .2s,border-color .2s;display:inline-flex}.drill-block-add:hover{color:var(--accent-primary);border-color:#38bdf866}.drill-block{gap:var(--space-1);padding:var(--space-2);border-radius:var(--radius-sm);background:#0000002e;flex-direction:column;display:flex}.drill-block-bpm{align-items:center;width:108px;display:flex;position:relative}.drill-block-bpm input{text-align:center;padding-right:3rem}.drill-block-bpm .task-duration-suffix{right:var(--space-2);position:absolute}@media (pointer:coarse){.drill-block-remove{min-width:44px;min-height:44px}.drill-chip,.drill-segment-btn{min-height:44px}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0006;position:fixed;inset:0}.modal-wrapper{z-index:101;pointer-events:none;display:flex;position:fixed;inset:0}.modal-wrapper>*{pointer-events:auto}.modal-backdrop.is-suspended,.modal-wrapper.is-suspended{visibility:hidden}.position-center{padding:var(--space-6);justify-content:center;align-items:center}.position-bottom{padding-bottom:var(--space-8);justify-content:center;align-items:flex-end}.position-top-right{padding-top:80px;padding-right:var(--space-4);justify-content:flex-end;align-items:flex-start}.position-top-right .modal-content{max-width:320px;padding:var(--space-4)}.position-full{padding:var(--space-6);justify-content:center;align-items:stretch}.position-full .modal-content{flex-direction:column;max-width:880px;height:100%;max-height:100%;padding:0;display:flex;overflow:hidden}.position-full .modal-header{padding:var(--space-5) var(--space-12) var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);flex:none;margin-bottom:0}.position-full .modal-body{flex-direction:column;flex:1;min-height:0;display:flex}@media (width<=720px){.position-full{padding:0}.position-full .modal-content{border:none;border-radius:0;max-width:none}.position-full .modal-header{padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-12) var(--space-4) var(--space-4)}.position-full .modal-close{top:calc(var(--space-3) + env(safe-area-inset-top))}}.modal-content{border-radius:var(--radius-2xl);width:100%;max-width:400px;max-height:90vh;padding:var(--space-6);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#18181bf2;border:1px solid #ffffff0d;position:relative;overflow-y:auto;box-shadow:0 25px 50px -12px #00000080}.position-bottom .modal-content{max-width:500px}.modal-content.is-wide{max-width:640px}.modal-header{margin-bottom:var(--space-4);padding-right:var(--space-6);justify-content:flex-start;align-items:center;display:flex}.modal-title{font-size:var(--text-lg);color:var(--text-primary);font-weight:500}.modal-close{top:var(--space-4);right:var(--space-4);color:var(--text-secondary);padding:var(--space-2);border-radius:var(--radius-full);z-index:10;background:0 0;border:none;justify-content:center;align-items:center;transition:color .2s,background .2s;display:flex;position:absolute}.modal-close:hover{color:var(--text-primary);background:#ffffff0d}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.modal-backdrop{-webkit-backdrop-filter:blur(4px)}.modal-content{-webkit-backdrop-filter:blur(16px)}}.task-creator-content{gap:var(--space-4);flex-direction:column;display:flex}.task-creator-header{justify-content:space-between;align-items:center;display:flex}.task-creator-title{font-family:var(--font-primary);font-size:var(--text-lg);color:var(--text-primary);margin-bottom:0;font-weight:600}.task-creator-form{gap:var(--space-4);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{font-size:var(--text-base);color:var(--text-secondary);font-weight:500}.task-input{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--text-md);background:#ffffff0d;border:1px solid #ffffff1a;outline:none;transition:all .2s}.task-input:focus{background:#ffffff14;border-color:#38bdf880}.task-textarea{resize:none;min-height:80px}.task-submit-btn{justify-content:center;align-items:center;gap:var(--space-2);background:var(--text-primary);color:var(--bg-color);padding:var(--space-3);border-radius:var(--radius-lg);margin-top:var(--space-2);border:none;font-weight:600;transition:transform .2s,opacity .2s;display:flex}.task-submit-btn:disabled{opacity:.5;cursor:not-allowed}.task-submit-btn:not(:disabled):hover{opacity:.9}.task-submit-btn:not(:disabled):active{transform:scale(.98)}.undo-strip{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin:var(--space-1) 0;border-radius:var(--radius-lg);border:1px dashed var(--border-default);background:#ffffff08;display:flex;overflow:hidden}.undo-strip-text{min-width:0;font-size:var(--text-sm);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.undo-strip-text strong{color:var(--text-primary);font-weight:600}.undo-strip-track{border-radius:var(--radius-full);background:var(--border-default);flex-shrink:0;width:48px;height:2px;overflow:hidden}.undo-strip-fill{transform-origin:0;background:var(--text-muted);width:100%;height:100%;animation:linear forwards undo-drain;display:block}@keyframes undo-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.undo-strip-action{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-full);color:var(--accent-primary);background:var(--accent-glow);font-family:var(--font-primary);font-weight:600;font-size:var(--text-sm);transition:background var(--dur-base) ease;flex-shrink:0;display:inline-flex}.undo-strip-action:hover{background:#38bdf842}@media (prefers-reduced-motion:reduce){.undo-strip-fill{animation:none}}.nudge{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-color);flex-wrap:wrap;display:flex}.nudge-icon{color:var(--accent-primary);flex:none}.nudge-text{min-width:140px;font-size:var(--text-base);color:var(--text-primary);flex:1;margin:0}.nudge-actions{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.nudge-dismiss,.nudge-start{align-items:center;gap:var(--space-1);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-full);font-family:var(--font-secondary);font-size:var(--text-sm);cursor:pointer;font-weight:600;transition:background .18s,border-color .18s,color .18s;display:inline-flex}.nudge-dismiss{color:var(--text-secondary);background:0 0;border:1px solid #0000}.nudge-dismiss:hover{color:var(--text-primary);background:var(--surface-hover)}.nudge-start{background:var(--accent-primary);color:#0b1220;border:1px solid #0000}.nudge-start:hover{background:#5cc9fa}.nudge-dismiss:focus-visible,.nudge-start:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@media (width<=480px){.nudge-actions{width:100%;margin-left:0}.nudge-actions button{flex:1;justify-content:center}}.routine-manager-content{gap:var(--space-4);flex-direction:column;display:flex}.routine-vocab{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.routine-vocab-label{font-family:var(--font-secondary);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.routine-vocab-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.routine-vocab-chip{min-width:40px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-sm);background:#ffffff0a;border:1px solid #ffffff14;transition:color .2s,background .2s,border-color .2s}.routine-vocab-chip.is-on{color:var(--accent-primary);background:var(--accent-glow);border-color:#38bdf866}.routine-manager-header{justify-content:space-between;align-items:center;display:flex}.header-title-row{align-items:center;gap:var(--space-2);display:flex}.routine-manager-title{font-family:var(--font-primary);font-size:var(--text-lg);color:var(--text-primary);margin-bottom:0;font-weight:600}.routines-list{gap:var(--space-2);padding-right:var(--space-2);flex-direction:column;display:flex}.routine-edit-item{border-radius:var(--radius-lg);padding:var(--space-3);background:#ffffff08;border:1px solid #ffffff0d;transition:background .2s}.routine-edit-item:hover{background:#ffffff0d}.routine-edit-display-row,.routine-edit-input-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.routine-edit-name{color:var(--text-primary);cursor:text;padding:var(--space-1);border-radius:var(--radius-sm);flex:1;font-weight:500}.routine-edit-name:hover{background:#ffffff0d}.routine-edit-input{border:1px solid var(--accent-primary);color:var(--text-primary);padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-md);background:#0003;outline:none;flex:1}.routine-actions{gap:var(--space-2);display:flex}.routine-manager-actions{gap:var(--space-3);padding-top:var(--space-2);display:flex}.create-routine-btn{color:var(--text-primary);padding:var(--space-2);border-radius:var(--radius-lg);background:#ffffff0d;border:1px dashed #fff3;flex:1;font-weight:500;transition:all .2s}.create-routine-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.import-json-btn{align-items:center;gap:var(--space-2);color:var(--text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base);background:0 0;border:none;transition:color .2s;display:flex}.import-json-btn:hover{color:var(--text-primary);background:#ffffff0d}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.json-hint{font-size:var(--text-sm);color:var(--text-secondary)}.json-error{font-size:var(--text-sm);color:var(--danger-color);background:var(--danger-glow);padding:var(--space-2);border-radius:var(--radius-sm)}.json-textarea{border-radius:var(--radius-md);width:100%;height:120px;padding:var(--space-3);color:var(--text-primary);font-family:monospace;font-size:var(--text-sm);resize:none;background:#18181b80;border:1px solid #ffffff1a}.json-textarea:focus{border-color:var(--accent-primary);outline:none}.slate-view{gap:var(--space-4);flex-direction:column;animation:.2s ease-out fade-in;display:flex}@keyframes fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.slate-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.back-btn{color:var(--text-primary);border-radius:var(--radius-full);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.back-btn:hover{background:#ffffff1a}.slate-title{font-size:var(--text-lg);color:var(--text-primary);margin:0;font-weight:600}.slate-form{gap:var(--space-4);flex-direction:column;display:flex}.input-group{gap:var(--space-2);flex-direction:column;display:flex}.input-group label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.input-group input{color:var(--text-primary);padding:var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-md);background:#0003;border:1px solid #ffffff1a;outline:none;transition:border-color .2s}.input-group input:focus{border-color:var(--accent-primary)}.slate-submit-btn{background:var(--accent-primary);color:var(--bg-color);padding:var(--space-3);border-radius:var(--radius-lg);font-weight:600;font-size:var(--text-md);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);border:none;transition:all .2s;display:flex}.slate-submit-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #38bdf833}.slate-submit-btn:disabled{opacity:.5;cursor:not-allowed;color:var(--text-secondary);box-shadow:none;background:#ffffff1a}@media (pointer:coarse){.back-btn{width:44px;height:44px}}.routine-history{gap:var(--space-4);flex-direction:column;display:flex}.routine-history-note{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;display:flex}.routine-history-list{gap:var(--space-2);flex-direction:column;max-height:46vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.routine-history-item{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:#ffffff08;display:flex}.routine-history-icon{color:var(--text-muted);flex-shrink:0;display:inline-flex}.routine-history-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.routine-history-name{font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.routine-history-meta{font-size:var(--text-micro);color:var(--text-muted)}.routine-history-restore{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-full);color:var(--accent-primary);background:var(--accent-glow);font-family:var(--font-primary);font-weight:600;font-size:var(--text-sm);transition:background var(--dur-base) ease;flex-shrink:0;display:inline-flex}.routine-history-restore:hover:not(:disabled){background:#38bdf842}.routine-history-restore:disabled{color:var(--success-color);background:var(--success-glow)}.empty-state{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5) var(--space-6);flex-direction:column;display:flex}.empty-state-mark{width:56px;height:56px;margin-bottom:var(--space-1);border-radius:var(--radius-full);color:var(--accent-primary);background:var(--accent-glow);border:1px solid #38bdf847;justify-content:center;align-items:center;display:inline-flex}.empty-state-title{font-family:var(--font-primary);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text-primary);font-weight:600}.empty-state-body{max-width:34ch;font-size:var(--text-base);color:var(--text-secondary);line-height:1.6}.empty-state-action{margin-top:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-family:var(--font-primary);font-size:var(--text-base);color:#06141d;background:var(--accent-primary);box-shadow:var(--shadow-glow);transition:transform var(--dur-fast) var(--ease-out), filter var(--dur-base) ease;font-weight:600}.empty-state-action:hover{filter:brightness(1.08)}.empty-state-action:active{transform:scale(.97)}@media (pointer:coarse){.empty-state-action{min-height:44px}}.progress-empty{color:var(--text-secondary);font-size:var(--text-base);text-align:center;padding:var(--space-6) var(--space-2);line-height:1.6}.progress-root{gap:var(--space-4);flex-direction:column;display:flex}.progress-reco{align-items:center;gap:var(--space-4);text-align:left;width:100%;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--accent-glow);color:var(--text-primary);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), background var(--dur-base) ease, border-color var(--dur-base) ease;border:1px solid #38bdf847;display:flex}.progress-reco:hover{background:#38bdf838;border-color:#38bdf873}.progress-reco:active{transform:scale(.99)}.progress-reco-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.progress-reco-label{font-family:var(--font-secondary);font-size:var(--text-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-primary);font-weight:600}.progress-reco-pair{font-family:var(--font-primary);font-weight:700;font-size:var(--text-xl);letter-spacing:var(--tracking-tight);line-height:1.1}.progress-reco-reason{font-family:var(--font-secondary);font-weight:500;font-size:var(--text-sm);color:var(--text-secondary)}.progress-reco-go{border-radius:var(--radius-full);background:var(--accent-primary);color:#06141d;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.progress-focus{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:#ffffff08;flex-direction:column;display:flex}.progress-focus-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.progress-focus-titles{flex-direction:column;gap:2px;min-width:0;display:flex}.progress-focus-title{font-family:var(--font-primary);font-weight:700;font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.progress-focus-sub{font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--text-secondary)}.progress-focus-figure{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.progress-focus-value{font-family:var(--font-primary);font-weight:700;font-size:var(--text-xl);color:var(--accent-primary);line-height:1}.progress-focus-value-label{font-family:var(--font-secondary);font-size:var(--text-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-secondary);font-weight:600}.progress-focus-trend{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.progress-focus-verdict{font-family:var(--font-primary);font-weight:700;font-size:var(--text-md);letter-spacing:var(--tracking-tight);color:var(--text-primary)}.progress-focus-basis{font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--text-secondary)}.progress-focus-single{padding:var(--space-6) var(--space-2);border-radius:var(--radius-md);font-family:var(--font-secondary);font-size:var(--text-base);text-align:center;color:var(--text-secondary);background:#ffffff05;line-height:1.55}.progress-focus-best{align-items:center;gap:var(--space-2);font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--record-color);display:flex}.progress-chart{width:100%;height:auto;display:block}.chart-axis{fill:var(--text-secondary);font-size:11px;font-family:var(--font-secondary)}.progress-section{gap:var(--space-2);flex-direction:column;display:flex}.progress-section-title{font-family:var(--font-secondary);font-size:var(--text-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.progress-pairs{gap:var(--space-2);flex-direction:column;display:flex}.progress-pair-row{align-items:center;gap:var(--space-3);text-align:left;width:100%;min-height:56px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-subtle);cursor:pointer;transition:background var(--dur-base) ease, border-color var(--dur-base) ease;background:#ffffff08;display:flex}.progress-pair-row:hover{background:#ffffff0f}.progress-pair-row.is-active{background:var(--accent-glow);border-color:#38bdf859}.progress-pair-label{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.progress-pair-name{min-width:0;font-family:var(--font-primary);font-weight:600;font-size:var(--text-md);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.progress-pair-figures{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;display:flex}.progress-pair-best{font-family:var(--font-primary);font-weight:700;font-size:var(--text-md);color:var(--text-primary);align-items:baseline;gap:3px;line-height:1.2;display:inline-flex}.progress-pair-unit{font-size:var(--text-micro);color:var(--text-secondary);text-transform:uppercase;font-weight:600}.progress-pair-context{font-family:var(--font-secondary);font-size:var(--text-micro);color:var(--text-secondary)}.progress-standing{font-family:var(--font-secondary);font-size:var(--text-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;flex-shrink:0;align-items:center;gap:3px;font-weight:700;display:inline-flex}.progress-standing.is-held{color:var(--success-color)}.progress-standing.is-lapsed{color:var(--text-muted)}.progress-standing-line{font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.55}.progress-standing-label{margin-right:var(--space-2);vertical-align:baseline;line-height:1;font-size:var(--text-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;font-weight:700;display:inline-flex}.progress-standing-line.is-held .progress-standing-label{color:var(--success-color)}.progress-standing-line.is-hit .progress-standing-label{color:var(--accent-primary)}.progress-standing-line.is-lapsed .progress-standing-label{color:var(--text-muted)}.progress-trend{padding:3px var(--space-2);border-radius:var(--radius-full);font-family:var(--font-secondary);font-size:var(--text-micro);flex-shrink:0;justify-content:center;align-items:center;gap:3px;min-width:58px;font-weight:700;display:inline-flex}.progress-trend.is-up{color:var(--success-color);background:var(--success-glow)}.progress-trend.is-down{color:var(--danger-color);background:var(--danger-glow)}.progress-trend.is-flat{color:var(--text-secondary);background:#ffffff0f}.progress-trend.is-none{color:var(--text-muted);background:0 0;font-weight:500}.progress-meta{padding-top:var(--space-3);border-top:1px solid var(--border-subtle);font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.7}.progress-meta>*{align-items:center;gap:var(--space-1);white-space:nowrap;display:inline-flex}.progress-meta>:not(:last-child):after{content:"·";margin:0 var(--space-1) 0 var(--space-2);color:var(--text-muted)}.progress-meta-streak{color:var(--record-color)}@media (width<=600px){.progress-reco{padding:var(--space-4);gap:var(--space-3)}.progress-focus{padding:var(--space-3)}.progress-focus-value,.progress-reco-pair{font-size:var(--text-lg)}}@media (width<=380px){.progress-pair-row{padding:var(--space-3) var(--space-3);flex-wrap:wrap}.progress-pair-label{flex:100%}.progress-pair-figures{align-items:baseline;gap:var(--space-2);flex-direction:row;flex:1}}.progress-tabs{gap:var(--space-1);width:100%;padding:var(--space-1);margin-bottom:var(--space-5);border-radius:var(--radius-full);background:#ffffff0a;display:flex}.progress-tab{min-width:0;min-height:40px;padding:0 var(--space-3);white-space:nowrap;border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);transition:background var(--dur-base) ease, color var(--dur-base) ease;flex:1 1 0}.progress-tab:hover{color:var(--text-primary)}.progress-tab.is-on{background:var(--accent-glow);color:var(--accent-primary)}@media (width<=400px){.progress-tab{padding:0 var(--space-1);font-size:var(--text-sm)}}.tuner-gate{z-index:200;justify-content:center;align-items:center;gap:var(--space-6);padding:var(--space-6);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0cdb;flex-direction:column;display:flex;position:fixed;inset:0}.tuner-gate-close{top:calc(var(--space-4) + env(safe-area-inset-top));right:var(--space-4);border-radius:var(--radius-full);width:44px;height:44px;color:var(--text-secondary);transition:color var(--dur-base) ease, background var(--dur-base) ease;justify-content:center;align-items:center;display:flex;position:absolute}.tuner-gate-close:hover{color:var(--text-primary);background:#ffffff14}.tuner-gate-panel{align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;max-width:40ch;display:flex}.tuner-gate-panel.is-quiet{gap:var(--space-3)}.tuner-gate-title{font-family:var(--font-primary);font-weight:600;font-size:var(--text-lg);color:var(--text-primary)}.tuner-gate-body{font-size:var(--text-base);color:var(--text-secondary);line-height:1.55}.tuner-gate-actions{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.tuner-gate-btn{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);border:1px solid var(--border-default);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);transition:color var(--dur-base) ease, background var(--dur-base) ease, border-color var(--dur-base) ease;display:inline-flex}.tuner-gate-btn:hover{color:var(--text-primary);border-color:var(--border-strong);background:#ffffff12}.tuner-gate-btn.is-primary{background:var(--accent-glow);color:var(--accent-primary);border-color:#38bdf852}.tuner-gate-btn.is-primary:hover{color:var(--accent-primary);background:#38bdf842}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.tuner-gate{-webkit-backdrop-filter:blur(12px)}}.daily-path{align-items:center;gap:var(--space-6);flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.path-header-center{justify-content:center;align-items:center;gap:var(--space-3);width:100%;padding:0 var(--space-3);z-index:30;flex-wrap:wrap;display:flex}.routine-selector-container{position:relative}.progress-launch{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);border:1px solid var(--border-subtle);transition:transform var(--dur-fast) var(--ease-out), color var(--dur-base) ease, background var(--dur-base) ease, border-color var(--dur-base) ease;background:#14141666;display:inline-flex;box-shadow:0 4px 20px #0000001a}.progress-launch:hover{color:var(--text-primary);border-color:var(--border-default);background:#ffffff14}.progress-launch:active{transform:scale(.95)}.progress-launch.is-primary{color:var(--accent-primary);background:var(--accent-glow);border-color:#38bdf852}.progress-launch.is-primary:hover{color:var(--accent-primary);background:#38bdf842;border-color:#38bdf880}.progress-launch-icon{color:inherit}.routine-selector{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);color:var(--text-primary);font-family:var(--font-primary);font-weight:500;font-size:var(--text-base);border:1px solid var(--border-subtle);transition:background var(--dur-base) ease, border-color var(--dur-base) ease;background:#14141666;max-width:100%;display:flex;box-shadow:0 4px 20px #0000001a}.routine-icon{color:var(--accent-primary)}.routine-name{white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.routine-caret{transition:transform var(--dur-base) var(--ease-out)}.routine-caret.is-open{transform:rotate(180deg)}.routine-selector:hover{border-color:var(--border-default);background:#ffffff14}.routine-dropdown{top:calc(100% + var(--space-2));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);width:250px;padding:var(--space-2);gap:var(--space-1);box-shadow:var(--shadow-panel);z-index:100;border:1px solid var(--border-default);background:#141417f2;flex-direction:column;display:flex;position:absolute;left:0}.dropdown-item{text-align:left;width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-base);transition:background var(--dur-base) ease, color var(--dur-base) ease;align-items:center;gap:var(--space-2);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;font-weight:500;display:flex;overflow:hidden}.dropdown-item:hover{color:var(--text-primary);background:#ffffff0d}.dropdown-item.active{background:var(--accent-glow);color:var(--accent-primary)}.dropdown-divider{background:var(--border-subtle);height:1px;margin:var(--space-1) 0}.dropdown-item.manage-action{color:var(--text-secondary);font-size:var(--text-sm)}.dropdown-item.manage-action:hover{color:var(--text-primary)}.task-container-wrapper{width:100%;max-width:800px;padding:0 var(--space-4);flex:1;min-height:0;display:flex}.task-container{border-radius:var(--radius-2xl);background:0 0;border:none;flex-direction:column;width:100%;max-height:100%;display:flex;overflow:hidden}.task-container.is-blank{justify-content:center;align-items:center;min-height:300px}.task-list-scrollable{min-height:0;padding:var(--space-4);gap:var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.task-list-scrollable.fade-up:not(.fade-down){-webkit-mask-image:linear-gradient(#0000 0,#000 28px);mask-image:linear-gradient(#0000 0,#000 28px)}.task-list-scrollable.fade-down:not(.fade-up){-webkit-mask-image:linear-gradient(#000 calc(100% - 28px),#0000 100%);mask-image:linear-gradient(#000 calc(100% - 28px),#0000 100%)}.task-list-scrollable.fade-up.fade-down{-webkit-mask-image:linear-gradient(#0000 0,#000 28px calc(100% - 28px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 28px calc(100% - 28px),#0000 100%)}.task-container-footer{padding:var(--space-4) 0;flex-shrink:0;justify-content:flex-start;display:flex}.add-task-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-base);transition:color var(--dur-base) ease, background var(--dur-base) ease;background:0 0;border:none;display:flex}.add-task-btn:hover{color:var(--text-primary);background:#ffffff0a}.empty-state-placeholder{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-4);border-radius:var(--radius-lg);text-align:left;border:1px dashed var(--border-default);transition:border-color var(--dur-base) ease, background var(--dur-base) ease;background:0 0;flex-direction:column;display:flex}.empty-state-placeholder:hover{border-color:var(--border-strong);background:#ffffff08}.task-container.is-blank .empty-state-placeholder{text-align:center;align-items:center;width:auto;max-width:34ch}.placeholder-text{font-family:var(--font-primary);font-size:var(--text-xl);letter-spacing:var(--tracking-tight);color:var(--text-primary);font-weight:600}.placeholder-sub{font-size:var(--text-base);color:var(--text-secondary);line-height:1.5}.inline-task-creator{background:0 0;border:none;flex-direction:column;align-items:flex-start;padding:0;display:flex}.inline-step-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.inline-tooltip{font-size:var(--text-sm);color:var(--accent-primary);opacity:.8;font-weight:500}.inline-steps{align-items:center;gap:5px;display:inline-flex}.inline-step-dot{border-radius:var(--radius-full);width:5px;height:5px;transition:background var(--dur-base) ease, transform var(--dur-base) ease;background:#ffffff2e}.inline-step-dot.is-on{background:var(--accent-primary);transform:scale(1.4)}.inline-notice{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--warning-glow);color:var(--warning-color);font-size:var(--text-sm);text-align:left;border:1px solid #fbbf244d;max-width:46ch;line-height:1.45}.inline-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-4);display:flex}.inline-action{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--text-secondary);transition:color var(--dur-base) ease, background var(--dur-base) ease, opacity var(--dur-base) ease;background:0 0;font-weight:500}.inline-action:hover{color:var(--text-primary);background:#ffffff0d}.inline-action.is-primary{color:#06141d;background:var(--accent-primary);font-weight:600}.inline-action.is-primary:hover{background:var(--accent-primary);filter:brightness(1.08)}.inline-action.is-primary:disabled{opacity:.35;cursor:not-allowed;filter:none}.inline-input-wrapper{align-items:center;width:100%;display:flex}.inline-input.fluid-input{color:var(--text-primary);font-family:var(--font-primary);font-size:var(--text-xl);background:0 0;border:none;width:100%;padding:2px 0}.jotter-content{gap:var(--space-4);flex-direction:column;display:flex}.jotter-title{font-family:var(--font-primary);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text-primary);font-weight:600}.jotter-subtitle{color:var(--text-secondary);font-size:var(--text-base)}.jotter-input{border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;min-height:120px;padding:var(--space-4);color:var(--text-primary);font-size:var(--text-base);resize:none;transition:border-color var(--dur-base) ease, background var(--dur-base) ease;background:#0003;line-height:1.6}.jotter-input:focus{border-color:var(--border-strong);background:#0000004d}.jotter-done-btn{background:var(--text-primary);color:var(--bg-color);padding:var(--space-2) var(--space-6);border-radius:var(--radius-full);font-family:var(--font-primary);transition:transform var(--dur-base) ease, opacity var(--dur-base) ease;border:none;align-self:flex-end;font-weight:600}.jotter-done-btn:hover{opacity:.9}.jotter-done-btn:active{transform:scale(.95)}@media (width<=600px){.path-header-center{gap:var(--space-2)}.routine-selector,.progress-launch{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.routine-name{max-width:120px}.placeholder-text,.inline-input.fluid-input{font-size:var(--text-lg)}.inline-actions{width:100%;margin-top:var(--space-5)}.inline-action{min-height:46px;font-size:var(--text-base);flex:1}}@media (pointer:coarse){.dropdown-item,.add-task-btn{min-height:44px}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.routine-dropdown{-webkit-backdrop-filter:blur(20px)}}.app-footer{padding:var(--space-4) var(--space-6);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));z-index:50;display:flex;position:absolute;bottom:0;left:0}.footer-content{align-items:center;gap:var(--space-3);display:flex}.footer-mark{font-family:var(--font-primary);font-size:var(--text-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);transition:color var(--dur-slow) ease;font-weight:600}.app-footer:hover .footer-mark,.app-footer:focus-within .footer-mark{color:var(--text-secondary)}.footer-mark-accent{color:var(--accent-primary);opacity:.75}.app-footer:hover .footer-mark-accent,.app-footer:focus-within .footer-mark-accent{opacity:1}.footer-link{padding:var(--space-1);border-radius:var(--radius-full);color:var(--text-muted);transition:color var(--dur-base) ease;justify-content:center;align-items:center;display:inline-flex}.footer-link:hover{color:var(--text-primary)}@media (width<=600px){.app-footer{display:none}}.setting-block{gap:var(--space-3);flex-direction:column;display:flex}.setting-block+.setting-block{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border-subtle)}.setting-head{align-items:center;gap:var(--space-2);font-family:var(--font-primary);font-size:var(--text-md);letter-spacing:var(--tracking-tight);color:var(--text-primary);margin:0;font-weight:600;display:flex}.setting-head-icon{color:var(--accent-primary);flex:none}.setting-note{max-width:56ch;margin:var(--space-1) 0 var(--space-2);font-size:var(--text-sm);color:var(--text-secondary)}.settings-action-btn{align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-primary);font-family:var(--font-secondary);font-size:var(--text-base);text-align:left;cursor:pointer;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;background:#ffffff08;display:flex}.settings-action-btn:hover{border-color:var(--border-default);background:#ffffff14}.settings-action-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.settings-action-btn.is-danger{color:var(--danger-color)}.settings-action-btn.is-danger:hover{background:var(--danger-glow);border-color:#f8717147}.settings-action-btn.is-quiet{color:var(--text-secondary);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);background:0 0;border-color:#0000}.settings-action-btn.is-quiet:hover{color:var(--text-primary);background:#ffffff0d}.settings-action-btn:disabled{opacity:.6;cursor:not-allowed}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-icon{animation:1s linear infinite spin}@media (prefers-reduced-motion:reduce){.spinner-icon{animation-duration:2.4s}}.mic-setting-select{width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-default);color:var(--text-primary);font-family:var(--font-secondary);font-size:var(--text-sm);cursor:pointer;background:#00000040}.mic-setting-select:focus-visible{box-shadow:var(--focus-ring);outline:none}.mic-setting-select option{background:var(--surface-color);color:var(--text-primary)}.mic-setting-unlock{min-height:44px;font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--accent-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0}.mic-setting-unlock:hover{text-decoration:underline}.mic-setting-unlock:disabled{color:var(--text-secondary);cursor:default}.mic-setting-unlock:focus-visible{box-shadow:var(--focus-ring);outline:none}.capo-frets{gap:var(--space-1);grid-template-columns:repeat(8,1fr);display:grid}@media (width<=480px){.capo-frets{grid-template-columns:repeat(4,1fr)}}.capo-fret{min-height:44px;padding:0 var(--space-1);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-base);cursor:pointer;transition:background var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease;background:#ffffff0a}.capo-fret.is-none{font-size:var(--text-sm)}.capo-fret:hover{color:var(--text-primary);background:#ffffff14}.capo-fret.is-on{background:var(--accent-glow);color:var(--accent-primary);border-color:#38bdf866}.capo-fret:focus-visible{box-shadow:var(--focus-ring);outline:none}.handedness-options{gap:var(--space-3);display:flex}.handedness-option{align-items:center;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-primary);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast) ease, color var(--dur-fast) ease, border-color var(--dur-fast) ease;background:#ffffff08;flex-direction:column;flex:1;display:flex}.handedness-option .cd-dot{fill:var(--text-muted);transition:fill var(--dur-fast) ease}.handedness-option.is-on{background:var(--accent-glow);color:var(--accent-primary);border-color:#38bdf866}.handedness-option.is-on .cd-dot{fill:var(--accent-primary)}.handedness-option:focus-visible{box-shadow:var(--focus-ring);outline:none}.guitar-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.guitar-row{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-color);transition:border-color var(--dur-fast) ease, background var(--dur-fast) ease;display:flex}.guitar-row.is-active{border-color:var(--accent-primary);background:var(--accent-glow)}.guitar-pick{align-items:center;gap:var(--space-3);min-width:0;min-height:44px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;display:flex}.guitar-mark{border-radius:var(--radius-full);border:1.5px solid var(--border-strong);width:20px;height:20px;color:var(--bg-color);transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease;flex:none;justify-content:center;align-items:center;display:inline-flex}.guitar-row.is-active .guitar-mark{background:var(--accent-primary);border-color:var(--accent-primary)}.guitar-text{flex-direction:column;gap:1px;min-width:0;display:flex}.guitar-name{font-family:var(--font-primary);font-size:var(--text-base);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.guitar-meta{font-size:var(--text-sm);color:var(--text-secondary)}.guitar-name-input{min-width:0;min-height:44px;padding:0 var(--space-3);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);background:var(--surface-color);font-family:var(--font-primary);font-size:var(--text-base);color:var(--text-primary);flex:1;font-weight:600}.guitar-name-input:focus{outline:none}.guitar-row-tools{gap:2px;display:flex}.guitar-tool{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:color var(--dur-fast) ease, background var(--dur-fast) ease;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.guitar-tool:after{content:"";position:absolute;inset:-6px}.guitar-tool:hover{color:var(--text-primary);background:var(--surface-hover)}.guitar-tool.is-danger:hover{color:var(--danger-color);background:var(--danger-glow)}.guitar-pick:focus-visible,.guitar-tool:focus-visible{box-shadow:var(--focus-ring);outline:none}.reminder-when{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.reminder-time{gap:var(--space-1);flex-direction:column;display:flex}.reminder-label{font-size:var(--text-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}.reminder-input{min-height:44px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-color);font-family:var(--font-mono);font-size:var(--text-base);color:var(--text-primary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.reminder-input:focus-visible{box-shadow:var(--focus-ring);outline:none}.reminder-summary{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)}.reminder-days{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.reminder-day{border-radius:var(--radius-full);border:1px solid var(--border-default);width:100%;min-height:44px;color:var(--text-secondary);font-family:var(--font-primary);font-size:var(--text-sm);cursor:pointer;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease;background:0 0;font-weight:600;position:relative}.reminder-day:after{content:"";position:absolute;inset:-2px}.reminder-day.is-on{border-color:var(--accent-primary);background:var(--accent-glow);color:var(--accent-primary)}.reminder-day:focus-visible{box-shadow:var(--focus-ring);outline:none}.reminder-error{font-size:var(--text-sm);color:var(--danger-color);margin:0}.pattern-list{gap:var(--space-1);flex-direction:column;display:flex}.pattern-item{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);display:flex}.pattern-item:hover{background:#ffffff08}.pattern-item-name{min-width:0;font-family:var(--font-secondary);font-size:var(--text-sm);color:var(--text-primary);flex:1}.pattern-item .strum-row{flex:none}.pattern-item-remove{color:var(--text-secondary);padding:var(--space-1);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--dur-fast) ease;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.pattern-item-remove:hover{color:var(--danger-color)}.pattern-item-remove:focus-visible{box-shadow:var(--focus-ring);outline:none}.pattern-add{gap:var(--space-2);align-items:center;display:flex}.pattern-add .task-input{min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);flex:1}.pattern-add-code{text-transform:uppercase;letter-spacing:.08em;flex:0 110px}.pattern-add-btn{border-radius:var(--radius-md);background:var(--accent-primary);color:#06141d;cursor:pointer;width:40px;height:40px;transition:opacity var(--dur-fast) ease;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.pattern-add-btn:disabled{opacity:.4;cursor:not-allowed}.pattern-add-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.pattern-hint{font-family:var(--font-secondary);font-size:var(--text-micro);color:var(--text-secondary);margin:0}@media (pointer:coarse){.pattern-add-btn{width:44px;height:44px}.pattern-item-remove{min-width:44px;min-height:44px}}.quick-setup{display:inline-flex;position:relative}.quick-setup-btn{align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-secondary);font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:color var(--dur-base) ease, background var(--dur-base) ease, border-color var(--dur-base) ease;background:0 0;border:1px solid #0000;font-weight:500;display:inline-flex}.quick-setup-btn:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff0d}.quick-setup-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.quick-setup-btn.has-capo{color:var(--accent-primary);background:var(--accent-glow);border-color:#38bdf866}.quick-setup-btn[aria-expanded=true]{color:var(--text-primary);border-color:var(--border-default);background:#ffffff0f}.quick-setup-btn.has-capo[aria-expanded=true]{color:var(--accent-primary)}.quick-setup-panel{z-index:60;border-radius:var(--radius-xl);border:1px solid var(--border-default);width:320px;box-shadow:var(--shadow-raised);flex-direction:column;display:flex;position:fixed;overflow:hidden}.quick-setup-panel.glass-panel{background:#141417f0}.quick-setup-body{padding:var(--space-4);max-height:min(60vh,420px);overflow-y:auto}.quick-setup-more{min-height:44px;padding:var(--space-3) var(--space-4);border:none;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-secondary);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:color var(--dur-fast) ease, background var(--dur-fast) ease;background:#ffffff08;flex:none}.quick-setup-more:hover{color:var(--text-primary);background:#ffffff12}.quick-setup-more:focus-visible{box-shadow:var(--focus-ring);outline:none}.quick-setup-panel .capo-frets{grid-template-columns:repeat(4,1fr)}@media (width<=600px){.quick-setup-btn{padding:var(--space-2)}.quick-setup-label{font-size:var(--text-micro)}}.streak-container{align-items:center;gap:var(--space-4);flex-direction:row;display:flex}.streak-header-info{align-items:center;display:flex}.streak-count{align-items:center;gap:var(--space-1);font-size:var(--text-micro);color:var(--record-color);background:var(--record-glow);border-radius:var(--radius-full);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid #fbbf243d;padding:4px 10px;font-weight:600;display:inline-flex}.streak-graph{justify-content:center;align-items:flex-end;gap:6px;display:flex}.streak-day-col{flex-direction:column;align-items:center;gap:6px;display:flex}.streak-block{border:1px solid var(--border-subtle);width:14px;height:14px;transition:background-color var(--dur-slow) ease, opacity var(--dur-slow) ease;background-color:#ffffff12;border-radius:4px}.streak-block.intensity-1{background-color:var(--accent-primary);opacity:.6}.streak-block.intensity-2{background-color:var(--accent-primary);opacity:.75}.streak-block.intensity-3{background-color:var(--accent-primary);opacity:.88;box-shadow:0 2px 8px -2px #38bdf880}.streak-block.intensity-4{background-color:var(--accent-primary);opacity:1;box-shadow:0 2px 12px -2px #38bdf8b3}.streak-day-col.is-today .streak-block{border-color:#38bdf880}.streak-day-col.is-today .streak-day-label{color:var(--text-primary)}.streak-day-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.58rem;font-weight:600}@media (width<=600px){.streak-container{gap:var(--space-2)}.streak-header-info{display:none}.streak-block{width:11px;height:11px}.streak-day-label{font-size:9px}}.app-layout{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.app-ambient{z-index:-1;pointer-events:none;background:var(--bg-color);background:color-mix(in srgb, var(--bg-color) 80%, #000);position:fixed;inset:0;overflow:hidden}.app-ambient-light{background:radial-gradient(94% 60% at 104% 103%, rgb(var(--ambient-lamp) / .115) 0%, rgb(var(--ambient-lamp) / .066) 24%, rgb(var(--ambient-lamp) / .022) 50%, rgb(var(--ambient-lamp) / 0) 78%), radial-gradient(76% 50% at -10% -14%, rgb(var(--ambient-air) / .045) 0%, rgb(var(--ambient-air) / .018) 34%, rgb(var(--ambient-air) / 0) 64%),  linear-gradient(118deg, #00000080 0%, #00000029 30%, #0000 58%);position:absolute;inset:0}.app-ambient-rake{position:absolute;inset:0;transform:rotate(-10.5deg)}.app-ambient-string{background:linear-gradient(90deg, rgb(var(--string-rgb) / 0) 2%, rgb(var(--string-rgb) / calc(var(--string-a) * .22)) 26%, rgb(var(--string-rgb) / calc(var(--string-a) * .58)) 52%, rgb(var(--string-rgb) / var(--string-a)) 76%, rgb(var(--string-rgb) / calc(var(--string-a) * .9)) 100%);border-radius:2px;position:absolute;left:-22%;right:-22%}.app-ambient-string.is-e6{--string-rgb:236 222 205;--string-a:.046;height:2px;top:73.5%}.app-ambient-string.is-a5{--string-rgb:236 222 205;--string-a:.054;height:1.7px;top:77.3%}.app-ambient-string.is-d4{--string-rgb:236 222 205;--string-a:.064;height:1.35px;top:81.1%}.app-ambient-string.is-g3{--string-rgb:226 234 246;--string-a:.085;height:1px;top:84.9%}.app-ambient-string.is-b2{--string-rgb:226 234 246;--string-a:.1;height:.8px;top:88.7%}.app-ambient-string.is-e1{--string-rgb:226 234 246;--string-a:.115;height:.6px;top:92.5%}.app-ambient-grain{opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23g)'/%3E%3C/svg%3E");background-size:240px 240px;position:absolute;inset:0}@media (width<=600px){.app-ambient-rake{opacity:.66;transform:translateY(7%)rotate(-10.5deg)}}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-8);z-index:50;display:flex;position:absolute;top:0;left:0;right:0}.header-date-short{display:none}.header-date{font-family:var(--font-primary);font-size:var(--text-md);color:var(--text-secondary);letter-spacing:.05em;text-transform:uppercase;flex:0 auto;min-width:0;font-weight:500}.header-actions{align-items:center;gap:var(--space-6);flex:none;display:flex}.account-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:var(--text-secondary);font-family:var(--font-secondary);font-size:var(--text-sm);white-space:nowrap;transition:color var(--dur-base) ease, background var(--dur-base) ease, border-color var(--dur-base) ease;background:0 0;border:1px solid #0000;font-weight:500;display:inline-flex}.account-btn:hover{color:var(--text-primary);border-color:var(--border-subtle);background:#ffffff0d}.account-btn.is-synced{color:var(--text-primary)}.account-btn.is-synced .icon-glyph{color:var(--accent-primary)}.center-content{min-height:0;padding-top:120px;padding-bottom:calc(80px + env(safe-area-inset-bottom));z-index:20;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;width:100%;max-width:800px;margin:0 auto;display:flex;overflow-y:auto}@media (width<=700px){.header-date-long{display:none}.header-date-short{display:inline}.app-header{padding:var(--space-4);gap:var(--space-3)}.header-date{font-size:var(--text-sm);letter-spacing:.03em}.header-actions{gap:var(--space-3)}.account-btn span{font-size:var(--text-micro)}}@media (width<=455px){.app-header,.header-actions{gap:var(--space-2)}.account-btn span{display:none}.account-btn{padding:var(--space-2);justify-content:center;min-width:40px;min-height:40px}}@media (width<=380px){.app-header{padding:var(--space-4) var(--space-3)}.header-date{font-size:var(--text-micro)}}@media (width<=600px){.center-content{padding-top:92px;padding-bottom:64px}}
