:root{color-scheme:dark;--color-bg: #0a0a0a;--color-bg-secondary: #171717;--color-text: #f5f5f5;--color-text-secondary: #a3a3a3;--color-border: #262626;--color-success: #22c55e;--color-success-bg: #14532d;--color-danger: #dc2626;--color-danger-bg: #7f1d1d;--color-primary: #22c55e;--color-primary-bg: #14532d;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--tap-target-min: 44px;--transition-fast: .15s ease;--transition-normal: .3s ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}body{background-color:var(--color-bg);color:var(--color-text);min-height:100vh;min-height:100dvh;padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom);padding-left:var(--safe-area-left);padding-right:var(--safe-area-right)}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button{font:inherit;cursor:pointer;border:none;background:none;min-width:var(--tap-target-min);min-height:var(--tap-target-min);display:inline-flex;align-items:center;justify-content:center}button:disabled{opacity:.5;cursor:not-allowed}input{font:inherit;border:1px solid var(--color-border);border-radius:.375rem;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg);color:var(--color-text);min-height:var(--tap-target-min)}input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.visually-hidden,.sr-announcer{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast-container{position:fixed;left:50%;bottom:calc(var(--safe-area-bottom) + var(--spacing-md));transform:translate(-50%);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:1000;max-width:min(90vw,28rem);pointer-events:none}.toast{background:var(--color-text);color:var(--color-bg);padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:var(--spacing-md);pointer-events:auto;font-size:.9375rem}.toast__text{flex:1}.toast__action{background:transparent;color:inherit;border:1px solid currentColor;border-radius:.375rem;padding:var(--spacing-xs) var(--spacing-sm);min-height:2rem;font-weight:600}.toast__close{background:transparent;color:inherit;border:none;font-size:1.25rem;line-height:1;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.toast--success{background:var(--color-success);color:#fff}.toast--error{background:var(--color-danger);color:#fff}.muted{color:var(--color-text-secondary);font-size:.9375rem}.screen{padding:var(--spacing-md)}.screen-runner{flex:1;display:flex;flex-direction:column;padding:var(--spacing-md);overscroll-behavior:contain}.runner-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.runner-back,.runner-home{background:transparent;color:var(--color-text);border:1px solid var(--color-border);border-radius:.5rem;padding:var(--spacing-xs) var(--spacing-md);min-height:var(--tap-target-min);font-size:.9375rem}.runner-back:disabled{visibility:hidden}.runner-progress{margin-top:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-xs)}.runner-progress-label{color:var(--color-text-secondary);font-size:.875rem;text-align:center}.runner-progress-bar{height:6px;background:var(--color-bg-secondary);border-radius:999px;overflow:hidden}.runner-progress-bar__fill{height:100%;background:var(--color-primary);transition:width var(--transition-normal)}@media(prefers-reduced-motion:reduce){.runner-progress-bar__fill{transition:none}}.runner-item-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl) var(--spacing-md)}.runner-item{font-size:clamp(1.5rem,6vw,2.25rem);font-weight:600;text-align:center;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}.runner-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);padding-bottom:calc(var(--safe-area-bottom) + var(--spacing-md))}.runner-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);min-height:96px;border-radius:1rem;font-size:1.25rem;font-weight:700;color:#fff;border:none}.runner-btn--yes{background:var(--color-success)}.runner-btn--no{background:var(--color-danger)}.runner-btn__icon,.runner-btn span[aria-hidden=true]{font-size:2.5rem;line-height:1}.screen-home{padding:var(--spacing-md);position:relative;min-height:100dvh}.home-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.home-title{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.home-title__icon{width:2.25rem;height:2.25rem;border-radius:.5rem;flex-shrink:0}.home-overflow{font-size:1.5rem;padding:var(--spacing-xs) var(--spacing-md);border-radius:.5rem;background:transparent;color:var(--color-text)}.home-overflow-menu{position:absolute;top:calc(var(--safe-area-top) + 3rem);right:var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:.5rem;box-shadow:0 4px 12px #0000001f;z-index:50;display:flex;flex-direction:column}.home-overflow-menu button{padding:var(--spacing-sm) var(--spacing-md);justify-content:flex-start;background:transparent;color:var(--color-text)}.home-resume-banner{display:flex;align-items:stretch;gap:var(--spacing-xs);background:var(--color-primary-bg);color:var(--color-text);border-radius:.5rem;margin-bottom:var(--spacing-md);overflow:hidden}.home-resume-banner__tap{flex:1;text-align:left;padding:var(--spacing-sm) var(--spacing-md);background:transparent;color:inherit;font-weight:600;justify-content:flex-start}.home-resume-banner__dismiss{padding:0 var(--spacing-md);background:transparent;color:inherit;font-size:1.25rem}.home-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-sm)}.home-list-row{background:var(--color-bg-secondary);border-radius:.5rem}.home-list-row__tap{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:var(--spacing-md);background:transparent;color:var(--color-text);min-height:64px;justify-content:center}.home-list-row__name{font-size:1.0625rem;font-weight:600}.home-list-row__count{font-size:.875rem}.home-empty{padding:var(--spacing-xl) var(--spacing-md);text-align:center}.home-new{position:fixed;right:calc(var(--safe-area-right) + var(--spacing-md));bottom:calc(var(--safe-area-bottom) + var(--spacing-md));width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:2rem;line-height:1;box-shadow:0 4px 12px #0000002e;z-index:40}.home-action-menu{position:fixed;left:50%;bottom:calc(var(--safe-area-bottom) + var(--spacing-md));transform:translate(-50%);background:var(--color-bg);border:1px solid var(--color-border);border-radius:.75rem;box-shadow:0 8px 24px #0003;z-index:100;display:flex;flex-direction:column;min-width:200px;overflow:hidden}.home-action-menu button{padding:var(--spacing-md);background:transparent;color:var(--color-text);border-bottom:1px solid var(--color-border);justify-content:center}.home-action-menu button:last-child{border-bottom:none}.home-export-fallback{position:fixed;inset:0;padding:var(--spacing-lg);background:var(--color-bg);z-index:200;display:flex;flex-direction:column;gap:var(--spacing-md)}.home-export-fallback textarea{flex:1;width:100%;font-family:monospace;font-size:.875rem;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-bg-secondary);color:var(--color-text);resize:none}.screen-editor{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);padding-bottom:calc(var(--safe-area-bottom) + var(--spacing-xl))}.editor-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-sm)}.editor-header h1{text-align:center;font-size:1.125rem;margin:0}.editor-cancel,.editor-save{background:transparent;color:var(--color-primary);border:none;padding:var(--spacing-xs) var(--spacing-sm);min-height:var(--tap-target-min);font-size:1rem}.editor-save{font-weight:600}.editor-save:disabled{color:var(--color-text-secondary);opacity:.5}.editor-name-label{display:flex;flex-direction:column;gap:var(--spacing-xs)}.editor-name-label input{width:100%}.editor-items{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-xs);margin:0;padding:0;min-height:1rem}.editor-item-row{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-bg-secondary);border-radius:.5rem;padding:var(--spacing-sm) var(--spacing-md);min-height:var(--tap-target-min)}.editor-item-row__handle{cursor:grab;color:var(--color-text-secondary);font-size:1.125rem;line-height:1;-webkit-user-select:none;user-select:none;touch-action:none;padding:0 var(--spacing-xs)}.editor-item-row__text{flex:1;word-break:break-word}.editor-item-row button[data-action=delete-item]{background:transparent;color:var(--color-danger);font-size:1.25rem;line-height:1;padding:0 var(--spacing-sm)}.editor-add-item{display:flex;gap:var(--spacing-xs)}.editor-add-item input{flex:1}.editor-add-item button{background:var(--color-primary);color:#fff;border-radius:.375rem;min-width:var(--tap-target-min);font-size:1.25rem}.editor-delete-list{margin-top:var(--spacing-xl);background:transparent;color:var(--color-danger);border:1px solid var(--color-danger);border-radius:.5rem;padding:var(--spacing-sm) var(--spacing-md);align-self:center}.sortable-ghost{opacity:.4}.sortable-drag{cursor:grabbing}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1100;padding:var(--spacing-md)}.modal-dialog{background:var(--color-bg);color:var(--color-text);border-radius:.75rem;box-shadow:0 10px 30px #00000040;padding:var(--spacing-lg);width:100%;max-width:24rem;display:flex;flex-direction:column;gap:var(--spacing-md)}.modal-dialog__heading{margin:0;font-size:1.125rem;font-weight:600}.modal-dialog__message{margin:0;line-height:1.4}.modal-dialog__actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.modal-dialog__actions--stacked{flex-direction:column}.modal-dialog__field{display:block}.modal-dialog--import{max-width:32rem}.import-dialog__textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;line-height:1.4;background:var(--color-bg-secondary);color:var(--color-text);border:1px solid var(--color-border);border-radius:.375rem;padding:var(--spacing-sm);resize:vertical;min-height:8rem}.import-dialog__textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.modal-btn{min-height:44px;min-width:5rem;padding:0 var(--spacing-md);border-radius:.5rem;font-weight:600;font-size:1rem;border:1px solid transparent;cursor:pointer}.modal-btn--cancel{background:transparent;color:var(--color-text);border-color:var(--color-text-secondary)}.modal-btn--confirm{background:var(--color-text);color:var(--color-bg)}.modal-btn:focus-visible{outline:2px solid var(--color-accent, #2563eb);outline-offset:2px}.update-banner{position:fixed;top:var(--safe-area-top);left:0;right:0;background:var(--color-accent, #2563eb);color:#fff;padding:var(--spacing-sm) var(--spacing-md);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);z-index:1050}.update-banner__action{background:transparent;color:inherit;border:1px solid currentColor;border-radius:.375rem;padding:var(--spacing-xs) var(--spacing-sm);min-height:44px;font-weight:600;cursor:pointer}.install-banner{position:fixed;left:var(--spacing-md);right:var(--spacing-md);bottom:calc(var(--safe-area-bottom) + var(--spacing-md));background:var(--color-text);color:var(--color-bg);padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:var(--spacing-sm);z-index:950}.install-banner__text{flex:1;font-size:.9375rem}.install-banner__action{background:transparent;color:inherit;border:1px solid currentColor;border-radius:.375rem;padding:var(--spacing-xs) var(--spacing-sm);min-height:44px;font-weight:600}.install-banner__close{background:transparent;color:inherit;border:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;cursor:pointer}.storage-warning{position:fixed;top:var(--safe-area-top);left:var(--spacing-md);right:var(--spacing-md);background:var(--color-danger);color:#fff;padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;display:flex;align-items:center;gap:var(--spacing-sm);z-index:1060}.storage-warning__text{flex:1;font-size:.9375rem}.storage-warning__close{background:transparent;color:inherit;border:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;cursor:pointer}.storage-warning--private{top:var(--safe-area-top)}.storage-warning--migration{top:calc(var(--safe-area-top) + 3.5rem)}.offline-indicator{position:fixed;top:calc(var(--safe-area-top) + var(--spacing-xs));right:calc(var(--safe-area-right) + var(--spacing-xs));background:var(--color-text-secondary);color:var(--color-bg);padding:2px var(--spacing-sm);border-radius:999px;font-size:.75rem;z-index:900}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal-dialog,.update-banner,.install-banner,.storage-warning,.offline-indicator{animation:none!important;transition:none!important}}button:focus-visible,[role=button]:focus-visible,[data-action]:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--color-accent, #2563eb);outline-offset:2px;border-radius:.25rem}button:focus:not(:focus-visible){outline:none}@media(prefers-color-scheme:dark){:root{--color-bg: #0b1220;--color-text: #e5e7eb;--color-text-secondary: #9ca3af}.toast{background:#e5e7eb;color:#0b1220}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen-summary{display:flex;flex-direction:column;min-height:100dvh;padding:var(--spacing-md);padding-top:calc(var(--safe-area-top) + var(--spacing-md));padding-bottom:calc(var(--safe-area-bottom) + var(--spacing-md))}.summary-header{margin-bottom:var(--spacing-md)}.summary-header h1{margin:0 0 var(--spacing-xs) 0;font-size:1.25rem;font-weight:700}.summary-stats{margin:0;color:var(--color-text-secondary);font-size:1rem}.summary-list{list-style:none;padding:0;margin:0 0 var(--spacing-md) 0;display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;overflow-y:auto}.summary-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border-radius:.5rem;border:1px solid transparent;font-size:1rem;text-align:left;cursor:pointer;background:transparent;color:var(--color-text)}.summary-item--yes{background:color-mix(in srgb,var(--color-success) 14%,transparent);border-color:var(--color-success)}.summary-item--yes .summary-item__icon{color:var(--color-success);font-weight:700}.summary-item--no{background:color-mix(in srgb,var(--color-danger) 14%,transparent);border-color:var(--color-danger)}.summary-item--no .summary-item__icon{color:var(--color-danger);font-weight:700}.summary-item__icon{font-size:1.25rem;flex-shrink:0;width:1.5rem;text-align:center}.summary-item__text{flex:1;word-break:break-word}.summary-actions{display:flex;gap:var(--spacing-sm);margin-top:auto}.summary-btn{flex:1;min-height:48px;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;border:1px solid transparent}.summary-btn--restart{background:transparent;color:var(--color-text);border-color:var(--color-text-secondary)}.summary-btn--done{background:var(--color-text);color:var(--color-bg)}
