.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--color-bg)}.login-card{width:100%;max-width:360px;background:var(--color-surface);border-radius:16px;padding:2rem;box-shadow:0 4px 24px #00000014}.login-title{font-size:1.5rem;font-weight:700;color:var(--color-primary);margin-bottom:1.5rem}.login-input{display:block;width:100%;padding:.75rem 1rem;margin-bottom:.75rem;border:1.5px solid var(--color-border);border-radius:10px;font-size:1rem;color:var(--color-text);background:var(--color-bg);transition:border-color .15s;outline:none}.login-input:focus{border-color:var(--color-primary)}.login-btn{display:block;width:100%;padding:.8rem;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;margin-top:.5rem;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--color-primary-light)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--color-danger);font-size:.875rem;margin-bottom:.5rem}.tab-bar{display:flex;background:var(--color-surface);border-top:1px solid var(--color-border);height:calc(var(--tab-bar-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);flex-shrink:0}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;background:none;border:none;border-top:3px solid transparent;color:var(--color-text-muted);font-size:.875rem;font-weight:500;padding:.5rem;transition:color .15s,border-color .15s}.tab-btn.active{color:var(--color-primary);border-top-color:var(--color-primary)}.tf-field{margin-bottom:.875rem}.tf-row{display:flex;gap:.75rem;margin-bottom:.875rem}.tf-half{flex:1;min-width:0;margin-bottom:0}.tf-label{display:block;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem}.tf-input{display:block;width:100%;padding:.625rem .75rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:1rem;color:var(--color-text);background:var(--color-bg);outline:none;transition:border-color .15s}.tf-input:focus{border-color:var(--color-primary)}.tf-title{font-size:1.0625rem;font-weight:500}.tf-notes{resize:none;font-size:.9375rem;line-height:1.5}.tf-select{width:100%;padding:.5rem .625rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:.9375rem;color:var(--color-text);background:var(--color-bg);outline:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.tf-select-full{width:100%}.tf-select-row{display:flex;gap:.375rem}.tf-select-row .tf-select{flex:1}.tf-new-btn{width:34px;flex-shrink:0;border:1.5px solid var(--color-border);border-radius:8px;background:none;font-size:1.125rem;color:var(--color-primary);font-weight:600}.tf-inline-add{display:flex;gap:.375rem}.tf-inline-add .tf-input{flex:1;padding:.5rem .625rem;font-size:.9375rem}.tf-inline-confirm{padding:.375rem .625rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:600}.tf-inline-cancel{padding:.375rem .5rem;background:none;border:1.5px solid var(--color-border);border-radius:6px;font-size:.875rem;color:var(--color-text-muted)}.score-btns{display:flex;gap:.375rem}.score-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;border:1.5px solid var(--color-border);border-radius:8px;background:none;font-size:1rem;font-weight:700;color:var(--color-text-muted);transition:all .12s}.score-btn.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.score-btn-sub{font-size:.5625rem;font-weight:500;text-transform:uppercase;letter-spacing:.02em}.tf-error{color:var(--color-danger);font-size:.875rem;margin-bottom:.75rem}.tf-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding-top:.25rem}.tf-save-btn{flex:1;padding:.75rem;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;transition:background .15s}.tf-save-btn:disabled{opacity:.5;cursor:not-allowed}.tf-delete-btn{padding:.75rem 1rem;background:none;border:1.5px solid #f5c6cb;border-radius:10px;color:var(--color-danger);font-size:.9375rem;font-weight:500}.tf-delete-btn:hover{background:#fdf0f0}.brain-dump{display:flex;flex-direction:column;height:100%;overflow:hidden}.capture-section{flex-shrink:0;padding:.875rem 1rem .75rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.capture-input{display:block;width:100%;min-height:56px;max-height:180px;padding:.625rem .75rem;border:1.5px solid var(--color-border);border-radius:10px;font-size:1rem;line-height:1.5;color:var(--color-text);background:var(--color-bg);resize:none;overflow-y:auto;outline:none;transition:border-color .15s}.capture-input:focus{border-color:var(--color-primary)}.capture-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.capture-hint{font-size:.75rem;color:var(--color-text-muted)}.capture-btn{padding:.5rem 1.25rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;transition:background .15s}.capture-btn:hover:not(:disabled){background:var(--color-primary-light)}.capture-btn:disabled{opacity:.5;cursor:not-allowed}.entries-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;flex-shrink:0}.entries-count{font-size:.8125rem;color:var(--color-text-muted)}.archive-toggle-btn{font-size:.8125rem;color:var(--color-primary);background:none;border:none;padding:.25rem 0;font-weight:500}.entries-list{flex:1;overflow-y:auto;padding:0 .75rem 1rem;display:flex;flex-direction:column;gap:.5rem}.entries-status{text-align:center;color:var(--color-text-muted);padding:2rem 0;font-size:.9375rem}.entries-error{text-align:center;color:var(--color-danger);padding:2rem 1rem}.entries-error button{margin-top:.75rem;padding:.375rem 1rem;border:1.5px solid var(--color-danger);border-radius:6px;color:var(--color-danger);background:none;font-size:.875rem}.entry-card{background:var(--color-surface);border-radius:10px;padding:.75rem .875rem;border-left:3px solid var(--color-primary)}.entry-card.entry-archived{border-left-color:var(--color-border);opacity:.7}.entry-text{font-size:.9375rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin-bottom:.5rem}.entry-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.entry-time{font-size:.75rem;color:var(--color-text-muted)}.entry-tags{display:flex;gap:.25rem;flex-wrap:wrap}.entry-tag{font-size:.6875rem;background:#e8f5e9;color:var(--color-primary);border-radius:4px;padding:.125rem .375rem;font-weight:500}.entry-promoted-badge{font-size:.6875rem;background:#e3f0fb;color:var(--color-promoted);border-radius:4px;padding:.125rem .375rem;font-weight:500}.entry-actions{display:flex;gap:.5rem;flex-wrap:wrap}.action-btn{font-size:.8125rem;padding:.25rem .625rem;border-radius:6px;border:1.5px solid transparent;background:none;transition:background .12s,border-color .12s}.action-promote{color:var(--color-promoted);border-color:#b3d4f0}.action-promote:hover:not(:disabled){background:#e3f0fb}.action-archive{color:var(--color-text-muted);border-color:var(--color-border)}.action-archive:hover:not(:disabled){background:#f0f0f0}.action-delete{color:var(--color-danger);border-color:#f5c6cb}.action-delete:hover{background:#fdf0f0}.action-btn:disabled{opacity:.5;cursor:not-allowed}.triage-page{display:flex;flex-direction:column;height:100%;background:var(--color-bg);padding:0 1rem}.triage-topbar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 0;flex-shrink:0}.triage-exit-btn{background:none;border:none;font-size:.875rem;color:var(--color-text-muted);padding:0}.triage-progress{font-size:.9375rem;font-weight:600;color:var(--color-text)}.triage-progress-of{font-weight:400;color:var(--color-text-muted)}.triage-task-card{background:var(--color-surface);border-radius:12px;padding:1.25rem;margin-bottom:1.25rem;flex-shrink:0;border-left:4px solid var(--color-primary)}.triage-task-title{font-size:1.125rem;font-weight:500;line-height:1.45;margin-bottom:.25rem}.triage-task-notes{font-size:.875rem;color:var(--color-text-muted);margin-top:.5rem;line-height:1.5}.triage-scoring{flex:1;display:flex;flex-direction:column;gap:1rem}.triage-score-row{background:var(--color-surface);border-radius:12px;padding:1rem}.triage-score-label{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.75rem}.triage-score-name{font-size:.9375rem;font-weight:600}.triage-score-hint{font-size:.75rem;color:var(--color-text-muted)}.triage-score-btns{display:flex;gap:.5rem}.triage-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .5rem;border:1.5px solid var(--color-border);border-radius:10px;background:none;transition:all .12s}.triage-option.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.triage-option-num{font-size:1.375rem;font-weight:700;line-height:1}.triage-option-sub{font-size:.6875rem;font-weight:500}.triage-actions{display:flex;gap:.75rem;padding:1rem 0 1.25rem;flex-shrink:0}.triage-skip-btn{padding:.8rem 1.25rem;background:none;border:1.5px solid var(--color-border);border-radius:10px;font-size:1rem;color:var(--color-text-muted)}.triage-primary-btn{flex:1;padding:.8rem;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;transition:background .15s}.triage-primary-btn:disabled{opacity:.45;cursor:not-allowed}.triage-done{align-items:center;justify-content:center;gap:.75rem;text-align:center}.triage-done-heading{font-size:1.5rem;font-weight:700;color:var(--color-primary)}.triage-done-sub{font-size:.9375rem;color:var(--color-text-muted);margin-bottom:.5rem}.ml-section{margin-bottom:1.5rem}.ml-section-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.625rem}.ml-add-form{display:flex;gap:.5rem;margin-bottom:.625rem}.ml-input{flex:1;padding:.5rem .75rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:.9375rem;color:var(--color-text);background:var(--color-bg);outline:none}.ml-input:focus{border-color:var(--color-primary)}.ml-add-btn{padding:.5rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600}.ml-add-btn:disabled{opacity:.45;cursor:not-allowed}.ml-empty{font-size:.875rem;color:var(--color-text-muted);padding:.5rem 0;font-style:italic}.ml-list{list-style:none}.ml-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem 0;border-bottom:1px solid var(--color-border)}.ml-item:last-child{border-bottom:none}.ml-name{font-size:.9375rem}.ml-delete-btn{font-size:.8125rem;color:var(--color-danger);background:none;border:none;padding:.25rem 0}.tasks-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.tasks-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.tasks-header-right{display:flex;align-items:center;gap:.625rem}.tasks-title{font-size:1rem;font-weight:600}.header-link{background:none;border:none;font-size:.875rem;color:var(--color-text-muted);padding:0}.add-btn{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:.375rem .875rem;font-size:.875rem;font-weight:600}.view-switcher{display:flex;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.view-switcher::-webkit-scrollbar{display:none}.view-tab{flex:1;min-width:max-content;padding:.625rem 1rem;background:none;border:none;border-bottom:2px solid transparent;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);white-space:nowrap;transition:color .15s,border-color .15s}.view-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tasks-list{flex:1;overflow-y:auto;padding:.75rem .875rem 1rem;display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;align-content:start;align-items:start}.tasks-status,.tasks-error,.triage-prompt{grid-column:1 / -1}.tasks-list-log{display:block}.tasks-status{text-align:center;color:var(--color-text-muted);padding:2.5rem 0;font-size:.9375rem}.tasks-error{text-align:center;color:var(--color-danger);padding:2rem 1rem}.tasks-error button{margin-top:.75rem;padding:.375rem 1rem;border:1.5px solid var(--color-danger);border-radius:6px;color:var(--color-danger);background:none;font-size:.875rem}.triage-prompt{display:flex;align-items:center;justify-content:space-between;background:#fff8e6;border:1px solid #ffe08a;border-radius:8px;padding:.5rem .75rem;margin-bottom:.25rem;font-size:.8125rem;color:#7c5800}.triage-prompt button{background:#f0a500;color:#fff;border:none;border-radius:6px;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.task-group-card{margin-bottom:1rem}.tgc-header{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1.5px solid var(--color-text);padding-bottom:.1875rem;margin-bottom:.3125rem}.tgc-label{font-size:.875rem;font-weight:700;color:var(--color-text)}.tgc-count{font-size:.6875rem;color:var(--color-text-muted)}.duration-summary{flex-shrink:0;padding:.5rem 1rem .625rem;background:var(--color-surface);border-top:1px solid var(--color-border);font-size:.8125rem}.ds-row{display:flex;align-items:baseline;gap:.5rem;padding:.125rem 0;color:var(--color-text-muted)}.ds-total{display:flex;align-items:baseline;gap:.5rem;padding:.375rem 0 .125rem;border-top:1px solid var(--color-border);margin-top:.1875rem;font-weight:600;color:var(--color-text)}.ds-label{flex:1}.ds-count{width:1.75rem;text-align:right;color:var(--color-text-muted);font-weight:400}.ds-total .ds-count{font-weight:600;color:var(--color-text)}.ds-time{width:3.5rem;text-align:right}.ds-note{font-size:.75rem;color:var(--color-text-muted);margin-top:.25rem}.archive-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:#e8f5e9;border-top:1px solid #a5d6a7;padding:.5rem 1rem;font-size:.8125rem;color:var(--color-primary)}.archive-bar-btn{background:var(--color-primary);color:#fff;border:none;border-radius:6px;padding:.3125rem .75rem;font-size:.8125rem;font-weight:600}.task-row{display:flex;align-items:baseline;gap:.3125rem;padding:.125rem 0;cursor:pointer}.task-row:active{opacity:.5}.task-row.task-row-acting{opacity:.4;pointer-events:none}.task-row-complete{flex-shrink:0;width:14px;height:14px;border-radius:50%;border:1.5px solid #adb5bd;background:none;display:flex;align-items:center;justify-content:center;font-size:0;position:relative;top:1px;transition:border-color .12s}.task-row-complete:hover:not(:disabled){border-color:var(--color-primary)}.task-row-complete.is-done{border:none;background:none;color:var(--color-primary);font-size:.875rem;font-weight:700;width:auto;min-width:14px}.task-row-complete:disabled{opacity:.3}.task-row-title{flex:1;font-size:.875rem;line-height:1.4;text-align:left}.task-row.done .task-row-title{color:var(--color-text-muted)}.task-row.cancelled .task-row-title{text-decoration:line-through;color:var(--color-text-muted)}.task-row-cancel{flex-shrink:0;background:none;border:none;font-size:.875rem;color:var(--color-border);padding:0;line-height:1;transition:color .12s}.task-row-cancel:hover{color:var(--color-danger)}.task-row-cancel.is-cancelled{color:var(--color-danger);font-weight:700}.backlog-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;background:#f0f4fb;border-top:1px solid #c5d0e8;padding:.5rem 1rem;font-size:.8125rem;color:#3a5a9a}.backlog-bar-btn{background:#3a5a9a;color:#fff;border:none;border-radius:6px;padding:.3125rem .75rem;font-size:.8125rem;font-weight:600}.task-row-backlog{flex-shrink:0;background:none;border:none;font-size:.8125rem;font-weight:700;color:#adb5bd;padding:0;line-height:1;transition:color .12s}.task-row-backlog:hover{color:#3a5a9a}.task-row-activate{flex-shrink:0;background:none;border:none;font-size:.9375rem;color:var(--color-primary);padding:0;line-height:1;font-weight:600;transition:color .12s}.task-row-activate:hover{color:var(--color-primary-light)}.log-day{margin-bottom:.75rem}.log-day-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:.5rem .25rem .25rem}.log-row{display:flex;align-items:baseline;gap:.5rem;padding:.4375rem .875rem;border-bottom:1px solid var(--color-border)}.log-row:last-child{border-bottom:none}.log-row-icon{flex-shrink:0;font-size:.6875rem;font-weight:700;color:var(--color-primary);width:12px}.log-cancelled .log-row-icon{color:var(--color-text-muted)}.log-row-title{flex:1;font-size:.875rem;color:var(--color-text-muted)}.log-cancelled .log-row-title{text-decoration:line-through}.log-row-meta{font-size:.75rem;color:var(--color-text-muted);flex-shrink:0;opacity:.7}.card-detail{display:flex;flex-direction:column;height:100%;background:var(--color-bg)}.cd-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.cd-back{background:none;border:none;font-size:1rem;color:var(--color-primary);padding:0}.cd-title{font-size:1rem;font-weight:600;flex:1;text-align:center;padding:0 .5rem}.cd-edit-toggle{background:none;border:none;font-size:.9375rem;color:var(--color-primary);font-weight:500;padding:0}.cd-body{flex:1;overflow-y:auto;padding:.75rem}.cd-empty{text-align:center;color:var(--color-text-muted);padding:2rem 1rem;font-size:.9375rem}.cd-all-done{text-align:center;color:var(--color-primary);font-weight:600;font-size:1.125rem;padding:1rem 0 .5rem}.cd-item{display:flex;align-items:center;gap:.875rem;width:100%;background:var(--color-surface);border:none;border-radius:10px;padding:.875rem;margin-bottom:.375rem;text-align:left;cursor:pointer;transition:background .12s}.cd-item:active{background:#f0f4f0}.cd-item.checked .cd-item-text{text-decoration:line-through;color:var(--color-text-muted)}.cd-check{width:24px;height:24px;flex-shrink:0;border:2px solid var(--color-border);border-radius:50%;background:none;transition:all .12s}.cd-check.ticked{background:var(--color-primary);border-color:var(--color-primary)}.cd-item-text{font-size:1rem;line-height:1.4}.cd-edit-item{display:flex;align-items:center;gap:.375rem;margin-bottom:.375rem}.cd-move-btns{display:flex;flex-direction:column;gap:1px}.cd-move{background:none;border:1px solid var(--color-border);border-radius:4px;width:24px;height:22px;font-size:.625rem;color:var(--color-text-muted);line-height:1;display:flex;align-items:center;justify-content:center}.cd-move:disabled{opacity:.3}.cd-item-input{flex:1;padding:.5rem .625rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:.9375rem;background:var(--color-surface);outline:none}.cd-item-input:focus{border-color:var(--color-primary)}.cd-del-item{background:none;border:none;font-size:1.125rem;color:var(--color-text-muted);padding:.25rem}.cd-add-row{display:flex;gap:.5rem;margin-top:.75rem}.cd-new-input{flex:1;padding:.5rem .75rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:.9375rem;background:var(--color-bg);outline:none}.cd-new-input:focus{border-color:var(--color-primary)}.cd-add-btn{padding:.5rem .875rem;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600}.cd-add-btn:disabled{opacity:.45}.cd-edit-footer{display:flex;gap:.75rem;margin-top:1.5rem}.cd-settings-btn{flex:1;padding:.625rem;border:1.5px solid var(--color-border);border-radius:8px;background:none;font-size:.875rem;color:var(--color-text-muted)}.cd-danger-btn{padding:.625rem 1rem;border:1.5px solid #f5c6cb;border-radius:8px;background:none;font-size:.875rem;color:var(--color-danger)}.cd-footer{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem calc(.875rem + var(--safe-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);flex-shrink:0}.cd-progress{font-size:.875rem;color:var(--color-text-muted)}.cd-reset-btn{padding:.5rem 1rem;background:none;border:1.5px solid var(--color-border);border-radius:8px;font-size:.875rem;color:var(--color-text-muted)}.cd-reset-btn:disabled{opacity:.4}.cf-field{margin-bottom:1rem}.cf-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:.375rem}.cf-input{display:block;width:100%;padding:.625rem .75rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:1rem;background:var(--color-bg);outline:none;transition:border-color .15s}.cf-input:focus{border-color:var(--color-primary)}.cf-options{display:flex;gap:.375rem}.cf-option{flex:1;padding:.5rem .25rem;border:1.5px solid var(--color-border);border-radius:8px;background:none;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);transition:all .12s;white-space:nowrap}.cf-option.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.cf-days{display:flex;gap:.375rem}.cf-day{flex:1;padding:.5rem 0;border:1.5px solid var(--color-border);border-radius:8px;background:none;font-size:.75rem;font-weight:600;color:var(--color-text-muted);transition:all .12s}.cf-day.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.cf-actions{display:flex;gap:.75rem;padding-top:.25rem}.cf-save-btn{flex:1;padding:.75rem;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600}.cf-save-btn:disabled{opacity:.45;cursor:not-allowed}.cf-delete-btn{padding:.75rem 1rem;border:1.5px solid #f5c6cb;border-radius:10px;background:none;font-size:.9375rem;color:var(--color-danger)}.cards-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.cv-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.cv-count{font-size:.875rem;color:var(--color-text-muted)}.cv-add-btn{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:.375rem .875rem;font-size:.875rem;font-weight:600}.cv-list{flex:1;overflow-y:auto;padding:.75rem .875rem 1rem}.cv-status{text-align:center;color:var(--color-text-muted);padding:2rem 0;font-size:.9375rem}.cv-section{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;align-items:start;margin-bottom:.75rem}.cv-section-label{grid-column:1 / -1;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:.375rem 0}.cv-empty{grid-column:1 / -1;font-size:.875rem;color:var(--color-text-muted)}.cv-card-compact{cursor:pointer;margin-bottom:1rem}.cv-card-compact:active{opacity:.55}.cvc-header{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1.5px solid var(--color-text);padding-bottom:.1875rem;margin-bottom:.3125rem}.cv-card-compact.active .cvc-header{border-bottom-color:var(--color-primary)}.cvc-title{font-size:.875rem;font-weight:700;line-height:1.3}.cv-card-compact.active .cvc-title{color:var(--color-primary)}.cvc-prog{font-size:.6875rem;color:var(--color-text-muted);flex-shrink:0;margin-left:.25rem}.cvc-prog.done{color:var(--color-primary)}.cvc-item{font-size:.8125rem;line-height:1.45;color:var(--color-text);padding:.0625rem 0}.cvc-item.checked{color:var(--color-text-muted)}.cvc-no-items{font-size:.75rem;color:var(--color-text-muted);font-style:italic}.routine-editor{display:flex;flex-direction:column;height:100%;background:var(--color-bg)}.re-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.re-back{background:none;border:none;font-size:1rem;color:var(--color-primary);padding:0}.re-heading{font-size:1rem;font-weight:600;flex:1;text-align:center;padding:0 .5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.re-save-btn{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:.375rem .875rem;font-size:.875rem;font-weight:600}.re-save-btn:disabled{opacity:.45;cursor:not-allowed}.re-body{flex:1;overflow-y:auto;padding:.875rem .875rem 2rem}.re-field{margin-bottom:.75rem}.re-title-input{display:block;width:100%;padding:.625rem .75rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:1.0625rem;font-weight:500;background:var(--color-surface);outline:none}.re-title-input:focus{border-color:var(--color-primary)}.re-notes-input{display:block;width:100%;padding:.625rem .75rem;border:1.5px solid var(--color-border);border-radius:8px;font-size:.9375rem;background:var(--color-surface);resize:none;outline:none;line-height:1.5}.re-notes-input:focus{border-color:var(--color-primary)}.re-hint{color:var(--color-text-muted);font-size:.875rem;padding:.5rem .25rem}.re-steps-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0 .375rem;border-top:1px solid var(--color-border);margin-top:.25rem}.re-steps-label{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.re-add-step-btn{background:none;border:none;font-size:.875rem;color:var(--color-primary);font-weight:600;padding:0}.re-empty{color:var(--color-text-muted);font-size:.875rem;padding:1rem .25rem}.re-step{background:var(--color-surface);border-radius:10px;padding:.625rem .75rem;margin-bottom:.375rem;border-left:3px solid var(--color-border)}.re-step.is-anchor{border-left-color:#f0a500}.re-step-main{display:flex;align-items:center;gap:.375rem}.re-step-move{display:flex;flex-direction:column;gap:1px;flex-shrink:0}.re-move-btn{background:none;border:1px solid var(--color-border);border-radius:3px;width:22px;height:20px;font-size:.5625rem;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center}.re-move-btn:disabled{opacity:.25}.re-step-text{flex:1;padding:.375rem .5rem;border:1.5px solid transparent;border-radius:6px;font-size:.9375rem;background:none;outline:none;min-width:0}.re-step-text:focus{border-color:var(--color-primary);background:var(--color-bg)}.re-del-step{background:none;border:none;font-size:1.125rem;color:var(--color-text-muted);padding:.125rem;flex-shrink:0}.re-step-meta{display:flex;align-items:center;gap:.75rem;margin-top:.375rem;padding-left:2.375rem}.re-anchor-label{display:flex;align-items:center;gap:.3rem;font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap;cursor:pointer}.re-loc-input{flex:1;padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:6px;font-size:.8125rem;background:var(--color-bg);outline:none;color:var(--color-text-muted)}.re-loc-input:focus{border-color:var(--color-primary)}.re-publish-result{background:#e8f5e9;border-radius:10px;padding:.75rem 1rem;margin:1rem 0;font-size:.875rem;color:var(--color-primary);display:flex;flex-wrap:wrap;gap:.375rem;align-items:center}.re-card-name{background:#fff;border-radius:4px;padding:.125rem .5rem;font-weight:500}.re-bottom-actions{margin-top:1.5rem;display:flex;flex-direction:column;gap:.625rem}.re-publish-btn{width:100%;padding:.8rem;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600}.re-publish-btn:disabled{opacity:.45;cursor:not-allowed}.re-delete-btn{width:100%;padding:.75rem;border:1.5px solid #f5c6cb;border-radius:10px;background:none;font-size:.9375rem;color:var(--color-danger)}.design-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.dv-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.dv-count{font-size:.875rem;color:var(--color-text-muted)}.dv-add-btn{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:.375rem .875rem;font-size:.875rem;font-weight:600}.dv-list{flex:1;overflow-y:auto;padding:.5rem .75rem 1rem}.dv-status{color:var(--color-text-muted);font-size:.9375rem;padding:1.5rem .25rem;line-height:1.6}.dv-row{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--color-surface);border:none;border-radius:10px;padding:.75rem .875rem;margin-bottom:.375rem;text-align:left;cursor:pointer;transition:background .12s}.dv-row:active{background:#f0f4f0}.dv-row-info{display:flex;flex-direction:column;gap:.2rem}.dv-row-title{font-size:.9375rem;font-weight:500}.dv-row-meta{font-size:.75rem;color:var(--color-text-muted)}.dv-row-right{display:flex;align-items:center;gap:.5rem}.dv-badge{font-size:.6875rem;background:#e8f5e9;color:var(--color-primary);border-radius:4px;padding:.125rem .4375rem;font-weight:600}.dv-chevron{font-size:1.25rem;color:var(--color-border);line-height:1}.routines-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.routines-subnav{display:flex;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.subnav-btn{flex:1;padding:.625rem;background:none;border:none;border-bottom:2px solid transparent;font-size:.875rem;font-weight:500;color:var(--color-text-muted);transition:color .15s,border-color .15s}.subnav-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.routines-content{flex:1;overflow:hidden;display:flex;flex-direction:column}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2d6a4f;--color-primary-light: #40916c;--color-bg: #f4f6f4;--color-surface: #ffffff;--color-border: #dee2e6;--color-text: #1a1a1a;--color-text-muted: #6c757d;--color-danger: #c0392b;--color-promoted: #1a6496;--tab-bar-height: 60px;--safe-bottom: env(safe-area-inset-bottom, 0px)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100dvh;max-width:640px;margin:0 auto;background:var(--color-bg)}.app-content{flex:1;overflow:hidden;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;z-index:100}.modal-sheet{width:100%;max-height:92dvh;background:var(--color-surface);border-radius:16px 16px 0 0;overflow-y:auto;padding:0 1rem calc(1.5rem + var(--safe-bottom))}.modal-handle{width:40px;height:4px;background:var(--color-border);border-radius:2px;margin:.75rem auto 0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 0 .75rem;border-bottom:1px solid var(--color-border);margin-bottom:1rem}.modal-header h2{font-size:1.125rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-muted);line-height:1;padding:0 .125rem}
