*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f5f5f5;--color-surface: #ffffff;--color-border: #e0e0e0;--color-primary: #4f7cff;--color-primary-dark: #3a63e0;--color-text: #1a1a1a;--color-muted: #888;--color-done-bg: #f0f0f0;--color-done-text: #aaa;--color-achieve-partial: #bbf7d0;--color-achieve-full: #16a34a;--color-today: #4f7cff;--radius: 6px;--gap: 12px}[data-theme=dark]{--color-bg: #0f172a;--color-surface: #1e293b;--color-border: #334155;--color-text: #e2e8f0;--color-muted: #94a3b8;--color-primary: #60a5fa;--color-primary-dark: #3b82f6;--color-done-bg: #1e293b;--color-done-text: #64748b}[data-theme=dark] .action-error{background:#450a0a;border-color:#991b1b;color:#fca5a5}[data-theme=dark] .task-card{background:var(--color-surface)}[data-theme=dark] .task-detail{background:#0f172a;color:#cbd5e1}[data-theme=dark] .today-task-card{background:var(--color-surface)}[data-theme=dark] .today-task-card--done{background:#1e293b}[data-theme=dark] .today-task-menu{background:var(--color-surface)}[data-theme=dark] .today-task-menu-item:hover{background:#334155}[data-theme=dark] .today-task-expand:hover{background:#334155;color:var(--color-text)}[data-theme=dark] .today-task-note{border-top-color:#334155}[data-theme=dark] .today-task-note__content{background:#1a2744}[data-theme=dark] .today-task-note__bullets li,[data-theme=dark] .today-task-note__bullets li:before{color:#cbd5e1}[data-theme=dark] .today-task-note__text{color:#cbd5e1}[data-theme=dark] .section-toggle-btn:hover{background:#334155}[data-theme=dark] .btn{background:#334155;border-color:#475569;color:var(--color-text)}[data-theme=dark] .btn:hover{background:#475569}[data-theme=dark] .btn-icon:hover{background:#334155;color:var(--color-text)}[data-theme=dark] .btn--add{border-color:#3b82f6}[data-theme=dark] .btn--add:hover{background:#1a2744}[data-theme=dark] .btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}[data-theme=dark] .btn--primary:hover{background:var(--color-primary-dark)}[data-theme=dark] .edit-modal{background:var(--color-surface)}[data-theme=dark] .edit-modal__close{background:#334155;color:var(--color-text)}[data-theme=dark] .edit-modal__field input,[data-theme=dark] .edit-modal__field textarea{background:#0f172a;color:var(--color-text);border-color:#334155}[data-theme=dark] .btn-edit-cancel,[data-theme=dark] .btn-end-compact{background:#334155;border-color:#475569;color:var(--color-text)}[data-theme=dark] .btn-end-compact:hover{background:#450a0a;border-color:#991b1b;color:#fca5a5}[data-theme=dark] .btn-note-atode{background:#334155;border-color:#475569;color:var(--color-muted)}[data-theme=dark] .btn-note-atode:hover{background:#475569;color:var(--color-text)}[data-theme=dark] .btn-task-action{background:#334155;border-color:#475569;color:var(--color-text)}[data-theme=dark] .btn-task-action:hover{background:#475569}[data-theme=dark] .btn-task-action--primary{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}[data-theme=dark] .btn-task-action--primary:hover{background:var(--color-primary-dark)}[data-theme=dark] .menu-confirm{border-top-color:#334155}[data-theme=dark] .menu-confirm__text{color:var(--color-text)}[data-theme=dark] .menu-confirm__yes{background:#450a0a;border-color:#991b1b;color:#fca5a5}[data-theme=dark] .menu-confirm__no{background:#334155;border-color:#475569;color:var(--color-text)}[data-theme=dark] .menu-confirm__no:hover{background:#475569}[data-theme=dark] .task-input{background:#0f172a;color:var(--color-text)}[data-theme=dark] .task-note-input{background:#0f172a;color:var(--color-text);border-color:#334155}[data-theme=dark] .status-select{color:var(--color-text)}[data-theme=dark] .share-card__inner{background:#0f172a;border-color:#334155}[data-theme=dark] .share-card__divider,[data-theme=dark] .share-card__sep{background:#334155}[data-theme=dark] .mini-cal-cell,[data-theme=dark] .mini-cal-cell--unrecorded{color:var(--color-text)}[data-theme=dark] .mini-cal-cell--filler{color:#334155}[data-theme=dark] .mini-cal-nav:hover{background:#334155;color:var(--color-text)}[data-theme=dark] .mini-cal-dot--none{background:#334155;border-color:#475569}[data-theme=dark] .cal-cell--other-month,[data-theme=dark] .cal-cell--other-month:disabled{color:#334155}[data-theme=dark] .cal-legend-dot--none{background:#334155;border-color:#475569}[data-theme=dark] .progress-count__label{color:var(--color-text)}[data-theme=dark] .progress-hero__message{color:var(--color-muted)}[data-theme=dark] .task-detail-cue{background:#1a2744;border-color:#3b4f8a}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--color-bg);color:var(--color-text);font-size:14px;line-height:1.5}.app{max-width:1120px;margin:0 auto;padding:0 0 40px;min-height:100vh;background:var(--color-bg)}.app-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;position:sticky;top:0;z-index:10;padding:0 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);min-height:56px}.app-header__left{display:flex;align-items:center;flex-shrink:0}.app-title{font-size:16px;font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:8px;white-space:nowrap}.app-title-icon{display:flex;align-items:center;flex-shrink:0}.app-beta-label{padding:2px 5px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-muted);font-size:10px;font-weight:600;line-height:1}.tab-nav{display:flex;align-items:stretch;overflow-x:auto}.tab-btn{display:flex;align-items:center;gap:5px;padding:0 18px;font-size:13px;font-weight:600;background:none;border:none;cursor:pointer;color:var(--color-muted);white-space:nowrap;transition:color .15s}.tab-btn:hover{color:var(--color-text)}.tab-btn--active{color:var(--color-primary);position:relative}.tab-btn--active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-primary)}.tab-icon{display:flex;align-items:center}.tab-content{padding:0 24px}.action-error{margin:14px 24px 0;padding:10px 12px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:13px;font-weight:600}.page{display:flex;flex-direction:column;gap:20px;padding-top:24px}.section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.section-title{font-size:15px;font-weight:700;color:var(--color-text)}.count{font-weight:400;color:var(--color-muted);font-size:13px}.empty-message{color:var(--color-muted);font-size:13px;line-height:1.6}.section--collapsible{gap:0;padding:0;overflow:visible}.section-toggle-btn{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;padding:14px 20px;text-align:left;gap:8px}.section-toggle-btn:hover{background:#f9fafb}.section-toggle-chevron{font-size:12px;color:var(--color-muted);flex-shrink:0}.section--collapsible .today-task-list,.section--collapsible .empty-message{padding:0 20px 14px}.task-list{display:flex;flex-direction:column;gap:8px}.task-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px 14px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 8px #1f29370a}.task-card-main{display:flex;align-items:center;gap:12px;width:100%}.task-title{flex:1;font-size:14px;color:var(--color-text);line-height:1.4}.task-title-block{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.task-title-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0;border:none;background:transparent;cursor:pointer;text-align:left;font-family:inherit;font-size:14px;color:var(--color-text)}.task-title-button:hover{color:var(--color-primary)}.task-detail-cue{flex-shrink:0;font-size:11px;font-weight:600;color:var(--color-primary);background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:2px 8px}.task-detail{background:#f8fafc;border-left:3px solid var(--color-primary);border-radius:6px;padding:8px 12px;color:#4b5563;font-size:13px;line-height:1.7;white-space:pre-wrap}.task-title--done{text-decoration:line-through;color:#9ca3af}.task-actions{display:flex;gap:6px;flex-shrink:0}.btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;padding:5px 12px;cursor:pointer;font-size:13px;color:var(--color-text);white-space:nowrap;transition:background .1s}.btn:hover{background:#e5e7eb}.btn--primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn--primary:hover{background:var(--color-primary-dark)}.btn--primary:disabled{opacity:.5;cursor:default}.btn--danger{background:#dc2626;color:#fff;border-color:#dc2626}.btn--danger:hover{background:#b91c1c}.btn--small{padding:3px 9px;font-size:12px}.btn-icon{background:none;border:none;cursor:pointer;color:var(--color-muted);padding:4px 6px;line-height:1;border-radius:4px}.btn-icon:hover{background:#f3f4f6;color:var(--color-text)}.btn--add{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:transparent;border:2px dashed #93c5fd;border-radius:10px;color:var(--color-primary);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.btn--add:hover{background:#eff6ff;border-color:var(--color-primary)}.add-task-form{display:flex;flex-direction:column;gap:6px;align-items:stretch;margin-top:4px;width:min(100%,620px)}.add-task-form__row{display:flex;gap:6px;align-items:center}.task-input{flex:1;min-width:140px;border:1px solid var(--color-primary);border-radius:6px;padding:7px 10px;font-size:14px;outline:none}.task-note-input{width:100%;min-height:72px;max-height:130px;border:1px solid var(--color-border);border-radius:6px;padding:7px 10px;font-size:13px;line-height:1.5;resize:vertical;outline:none}.task-note-input:focus{border-color:var(--color-primary);outline:2px solid rgba(37,99,235,.14)}.add-task-form__check-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-muted);cursor:pointer;padding:2px 0}.add-task-form__recurring-until{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.add-task-form__actions{display:flex;gap:6px;justify-content:flex-end}.status-select{border:1px solid var(--color-border);border-radius:6px;padding:6px 8px;font-size:13px;background:var(--color-surface);cursor:pointer}.cal-header{display:flex;align-items:center;justify-content:center;gap:16px}.cal-month-label{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;min-width:120px;justify-content:center}.cal-nav{font-size:20px;padding:4px 8px}.month-stats{font-size:13px;color:var(--color-muted);text-align:center}.month-stats strong{color:var(--color-text)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-dow{text-align:center;font-size:11px;color:var(--color-muted);padding-bottom:3px;font-weight:600}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:12px;cursor:pointer;border:2px solid transparent;background:none;color:var(--color-text);transition:background .1s}.cal-cell:not(.cal-cell--other-month):not(.cal-cell--high):not(.cal-cell--mid):not(.cal-cell--low):hover{background:#f3f4f6}.cal-cell--high:hover{background:#16a34a}.cal-cell--mid:hover{background:#86efac}.cal-cell--low:hover{background:#dcfce7}.cal-cell--high{background:#16a34a;color:#fff;font-weight:700}.cal-cell--mid{background:#86efac;color:#14532d}.cal-cell--low{background:#dcfce7;color:#166534}.cal-cell--other-month,.cal-cell--other-month:disabled{color:#d1d5db;background:none;cursor:default}.cal-cell--today{border-color:#16a34a;color:#16a34a;font-weight:700}.cal-cell--high.cal-cell--today{color:#fff}.cal-cell--selected{outline:2px solid var(--color-primary);outline-offset:1px}.cal-legend{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;margin-top:10px}.cal-legend-item{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--color-muted)}.cal-legend-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.cal-legend-dot--high{background:#16a34a}.cal-legend-dot--mid{background:#86efac}.cal-legend-dot--low{background:#dcfce7;border:1px solid #bbf7d0}.cal-legend-dot--none{background:#fff;border:1px solid #d1d5db}.year-chart__header{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}.year-chart__year{font-size:14px;font-weight:600;color:var(--color-text)}.year-chart__empty{font-size:12px;color:var(--color-text-muted);text-align:center;padding:16px 0}.year-chart__bars{display:flex;align-items:flex-end;gap:4px;height:120px}.year-chart__col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.year-chart__pct{height:16px;font-size:9px;line-height:16px;color:#6b7280;text-align:center;white-space:nowrap}.year-chart__bar-wrap{flex:1;display:flex;align-items:flex-end;width:100%}.year-chart__bar{width:100%;border-radius:3px 3px 0 0;transition:height .3s ease}.year-chart__bar--high{background:#16a34a}.year-chart__bar--mid{background:#4ade80}.year-chart__bar--low{background:#bbf7d0}.year-chart__bar--empty{height:3px;background:#e5e7eb;width:100%;align-self:flex-end}.year-chart__label{font-size:9px;color:#9ca3af;line-height:1}.cal-detail{gap:10px}.cal-detail-date{font-size:15px;font-weight:700}.cal-detail-row{font-size:13px;display:flex;gap:8px;align-items:baseline}.cal-detail-label{font-size:12px;font-weight:600;color:var(--color-muted);min-width:90px;flex-shrink:0}.cal-detail-group{display:flex;flex-direction:column;gap:4px}.cal-detail-list{font-size:13px;display:flex;flex-direction:column;gap:2px}.loading,.error{text-align:center;padding:60px 20px;color:var(--color-muted);font-size:14px;line-height:1.8}.error{color:#dc2626}.today-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start;padding-top:24px}.today-main{display:flex;flex-direction:column;gap:14px}.today-sidebar{display:flex;flex-direction:column;gap:16px}.progress-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 2px 12px #1f29370f}.progress-hero__info{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:140px}.progress-hero__label{font-size:12px;font-weight:700;color:var(--color-primary)}.progress-hero__count{display:flex;align-items:baseline;gap:14px;line-height:1}.progress-count__label{font-size:24px;font-weight:700;color:#374151}.progress-count__num{font-size:56px;font-weight:800;color:#16a34a;line-height:.9}.progress-count__sep{font-size:22px;font-weight:600;color:#6b7280}.progress-hero__message{font-size:13px;color:#6b7280;margin-top:6px}.progress-hero__actions{display:flex;align-items:center}.progress-ring-wrap{position:relative;width:140px;height:140px;flex-shrink:0}.progress-ring-wrap svg{width:100%;height:100%;display:block}.progress-ring-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none}.progress-ring-pct{font-size:28px;font-weight:800;color:#16a34a;line-height:1}.progress-ring-text{font-size:11px;font-weight:700;color:var(--color-muted)}.today-task-list{display:flex;flex-direction:column;gap:7px}.today-task-card{background:#fff;border:1.5px solid var(--color-border);border-radius:12px;box-shadow:0 1px 4px #1f29370a;transition:box-shadow .15s;position:relative}.today-task-card:hover{box-shadow:0 3px 12px #1f293714}.today-task-card--done{background:#f9fafb;opacity:.85}.today-task-card--skipped{background:#f5f3ff;opacity:.8}@keyframes taskComplete{0%{background:var(--color-surface);transform:scale(1)}20%{background:#16a34a1a;transform:scale(1.015)}to{background:#f9fafb;transform:scale(1)}}.today-task-card--completing{animation:taskComplete .6s ease-out forwards}.today-task-card--expanded{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f7cff1a}.today-task-card__main{display:flex;align-items:center;gap:9px;padding:12px 14px}.today-task-check{width:18px;height:18px;flex-shrink:0;cursor:pointer;accent-color:#16a34a}.today-task-num{font-size:12px;font-weight:700;color:#6b7280;min-width:18px;text-align:center;flex-shrink:0}.today-task-title{flex:1;font-size:14px;color:var(--color-text);line-height:1.4;min-width:0}.today-task-title--done{text-decoration:line-through;color:#9ca3af}.today-task-title-input{flex:1;font-size:14px;font-weight:500;color:var(--color-text);background:transparent;border:none;border-bottom:1.5px solid #16a34a;outline:none;padding:0;min-width:0;line-height:1.4}.today-task-menu-wrap{position:relative;flex-shrink:0}.today-task-expand{background:none;border:none;cursor:pointer;color:var(--color-muted);padding:4px 6px;font-size:16px;border-radius:6px;line-height:1;display:flex;align-items:center}.today-task-expand:hover{background:#f3f4f6;color:var(--color-text)}.today-task-menu{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:0 8px 24px #1f293724;padding:4px;min-width:160px;z-index:100}.today-task-menu-item{display:block;width:100%;text-align:left;padding:8px 12px;font-size:13px;font-weight:500;color:var(--color-text);background:none;border:none;border-radius:7px;cursor:pointer;transition:background .1s}.today-task-menu-item:hover{background:#f3f4f6}.today-task-menu-item--danger{color:#dc2626}.today-task-menu-item--danger:hover{background:#fef2f2}.today-task-menu-item--skip{color:#6366f1}.today-task-menu-item--skip:hover{background:#eef2ff}.menu-confirm{padding:8px 12px 10px;border-top:1px solid #f3f4f6}.menu-confirm__text{font-size:12px;color:#374151;margin:0 0 8px;font-weight:500}.menu-confirm__actions{display:flex;gap:6px}.menu-confirm__yes,.menu-confirm__no{flex:1;padding:5px 0;font-size:12px;font-weight:600;border-radius:5px;cursor:pointer;border:1px solid #d1d5db;background:#fff}.menu-confirm__yes{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.menu-confirm__yes:hover{background:#fecaca}.menu-confirm__no:hover{background:#f3f4f6}.today-task-note{padding:10px 14px 14px;border-top:1px solid #f1f5f9}.today-task-note__content{display:flex;flex-direction:column;gap:8px;background:#f0f7ff;border-radius:8px;padding:10px 12px}.today-task-note__memo-label{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--color-primary)}.today-task-note__bullets{margin:0;padding-left:14px;list-style:none;display:flex;flex-direction:column;gap:4px}.today-task-note__bullets li{display:flex;gap:2px;font-size:13px;color:#374151;line-height:1.6}.today-task-note__bullets li:before{content:"・";flex-shrink:0;color:#374151}.today-task-note__footer{padding:8px 12px 4px;display:flex;justify-content:flex-end}.btn-note-atode{padding:4px 12px;font-size:12px;font-weight:600;color:#6b7280;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}.btn-note-atode:hover{background:#f3f4f6;color:#374151}.btn-task-action{padding:5px 13px;font-size:12px;font-weight:600;border:1px solid var(--color-border);border-radius:6px;cursor:pointer;background:#f3f4f6;color:var(--color-text);transition:background .1s}.btn-task-action:hover{background:#e5e7eb}.btn-task-action--primary{background:#16a34a;color:#fff;border-color:#16a34a}.btn-task-action--primary:hover{background:#15803d}.edit-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a47}.edit-modal{width:min(520px,100%);display:flex;flex-direction:column;gap:14px;padding:18px;background:#fff;border:1px solid var(--color-border);border-radius:8px;box-shadow:0 18px 46px #0f172a33}.edit-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.edit-modal__header h2{margin:0;font-size:18px;font-weight:700}.edit-modal__close{width:32px;height:32px;border:none;border-radius:6px;background:#f3f4f6;color:var(--color-text);cursor:pointer;font-size:20px;line-height:1}.edit-modal__field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--color-text)}.edit-modal__field input,.edit-modal__field textarea{width:100%;border:1px solid var(--color-border);border-radius:6px;padding:9px 10px;font:inherit;font-weight:500;color:var(--color-text);resize:vertical}.edit-modal__field input:focus,.edit-modal__field textarea:focus{outline:2px solid rgba(37,99,235,.18);border-color:var(--color-primary)}.edit-modal__error{margin:0;color:#dc2626;font-size:13px}.edit-modal__recurring-opts{margin-top:10px;display:flex;flex-direction:column;gap:8px}.edit-modal__check-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text);cursor:pointer;width:fit-content}.edit-modal__mode-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.edit-modal__mode-label{font-size:12px;color:var(--color-text-muted);margin-right:4px}.edit-modal__actions{display:flex;justify-content:flex-end;gap:8px}.btn-edit-cancel,.btn-edit-save{border:1px solid var(--color-border);border-radius:6px;padding:8px 14px;cursor:pointer;font-size:13px;font-weight:700}.btn-edit-cancel{background:#fff;color:var(--color-text)}.btn-edit-save{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-edit-save:disabled{opacity:.65;cursor:default}.task-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;flex-shrink:0;white-space:nowrap}.task-badge--done{background:#dcfce7;color:#15803d}.task-badge--in-progress{background:#dbeafe;color:#1d4ed8}.task-badge--upcoming{background:#f3f4f6;color:#6b7280}.task-badge--skipped{background:#ede9fe;color:#7c3aed}.btn-start-compact{background:var(--color-primary);color:#fff;border:none;border-radius:8px;padding:8px 18px;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s}.btn-start-compact:hover{background:var(--color-primary-dark)}.btn-start-compact:disabled{opacity:.6;cursor:default}.btn-end-compact{background:#fff;color:#374151;border:1.5px solid #d1d5db;border-radius:8px;padding:8px 18px;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.btn-end-compact:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.day-status-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 4px}.day-status-bar__state{font-size:12px;font-weight:700;padding:3px 11px;border-radius:999px;flex-shrink:0}.day-status-bar__state--before{background:#f3f4f6;color:#6b7280}.day-status-bar__state--active{background:#dbeafe;color:#1d4ed8}.day-status-bar__state--ended{background:#dcfce7;color:#15803d}.day-status-bar__done-note{font-size:12px;color:var(--color-muted)}.mini-cal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:12px 14px;box-shadow:0 2px 8px #1f29370a}.mini-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.mini-cal-title{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--color-text)}.mini-cal-nav{background:none;border:none;cursor:pointer;color:var(--color-muted);font-size:15px;padding:2px 5px;border-radius:4px;line-height:1;transition:background .1s}.mini-cal-nav:hover{background:#f3f4f6;color:var(--color-text)}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-cal-dow{text-align:center;font-size:8px;color:var(--color-muted);font-weight:700;padding-bottom:2px}.mini-cal-cell{aspect-ratio:1;border-radius:4px;display:grid;place-items:center;font-size:9px;color:#374151;background:transparent}.mini-cal-cell--high{background:#16a34a;color:#fff}.mini-cal-cell--mid{background:#86efac;color:#14532d}.mini-cal-cell--low{background:#dcfce7;color:#166534}.mini-cal-cell--unrecorded{background:transparent;color:#374151}.mini-cal-cell--filler{background:transparent;color:#d1d5db}.mini-cal-cell--today{outline:2px solid #16a34a;outline-offset:-2px;font-weight:700;color:#16a34a}.mini-cal-cell--high.mini-cal-cell--today{color:#fff}.mini-cal-legend{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:3px 6px}.mini-cal-legend-item{display:flex;align-items:center;gap:4px;font-size:9px;color:var(--color-muted)}.mini-cal-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0}.mini-cal-dot--high{background:#16a34a}.mini-cal-dot--mid{background:#86efac}.mini-cal-dot--low{background:#dcfce7;border:1px solid #bbf7d0}.mini-cal-dot--none{background:#fff;border:1px solid #d1d5db}.share-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:14px;box-shadow:0 2px 8px #1f29370a;display:flex;flex-direction:column;gap:10px}.share-card__header{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--color-muted)}.share-card__inner{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:0}.share-card__title-wrap{text-align:center;margin-bottom:12px}.share-card__title{font-size:14px;font-weight:700;color:#16a34a;margin-bottom:6px}.share-card__title-line{height:2px;background:#16a34a;border-radius:1px;width:80%;margin:0 auto}.share-card__stats{display:flex;align-items:center;justify-content:space-between;gap:0;width:100%}.share-stat{display:flex;flex-direction:column;align-items:center;flex:1}.share-stat__num{font-size:38px;font-weight:800;line-height:1}.share-stat__num--tasks{color:var(--color-primary)}.share-stat__num--done{color:#16a34a}.share-stat__label{font-size:10px;color:var(--color-muted);font-weight:600;margin-top:2px}.share-card__divider{width:1px;height:32px;background:#e5e7eb;flex-shrink:0}.share-ring-small{position:relative;width:76px;height:76px;flex-shrink:0;margin-left:6px}.share-ring-small__pct{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;font-weight:800;color:#16a34a}.share-card__sep{height:1px;background:#e5e7eb;margin:10px 0 0}.share-card__next{display:flex;flex-direction:column;gap:2px;padding-top:8px}.share-card__next-label{font-size:11px;font-weight:700;color:var(--color-primary)}.share-card__next-task{font-size:13px;font-weight:600;color:var(--color-text);line-height:1.4}.btn-twitter{display:flex;align-items:center;justify-content:center;gap:6px;background:#1d9bf0;color:#fff;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s;width:100%}.btn-twitter:hover{background:#1a8cd8}.share-trigger{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.share-trigger:hover{border-color:var(--color-primary);color:var(--color-primary)}.share-trigger--active{border-color:#93c5fd;color:#4f7cff;background:#f0f5ff}.share-trigger__pct{font-weight:800;color:#16a34a}.share-modal{width:min(360px,100%)}.share-modal .share-card{box-shadow:none;border:none;padding:0}.drag-handle{color:#bbb;cursor:grab;font-size:20px;padding:4px;-webkit-user-select:none;user-select:none;flex-shrink:0;touch-action:none;line-height:1}.drag-handle:active{cursor:grabbing;color:#888}.settings-group{display:flex;flex-direction:column;gap:10px}.settings-radio-label{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer;color:var(--color-text)}.settings-radio-label input[type=radio]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:38px}.settings-row__label{font-size:14px;color:var(--color-text);flex-shrink:0}.settings-note{font-size:12px;color:var(--color-muted);line-height:1.6}.settings-note--small{font-size:11px;margin-top:4px}.settings-note-list{margin:4px 0 0;padding-left:18px;font-size:11px;color:var(--color-muted);line-height:1.7}.settings-note-list li+li{margin-top:4px}.settings-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}.settings-badge--ok{background:#dcfce7;color:#15803d}[data-theme=dark] .settings-badge--ok{background:#14532d;color:#86efac}.settings-toggle{position:relative;display:inline-flex;align-items:center;cursor:pointer}.settings-toggle input{position:absolute;opacity:0;width:0;height:0}.settings-toggle__track{width:38px;height:22px;background:#d1d5db;border-radius:11px;position:relative;transition:background .2s}.settings-toggle__track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.settings-toggle input:checked+.settings-toggle__track{background:var(--color-primary)}.settings-toggle input:checked+.settings-toggle__track:after{transform:translate(16px)}.settings-toggle input:disabled+.settings-toggle__track{opacity:.4;cursor:not-allowed}.settings-chip-group{display:flex;gap:8px;flex-wrap:wrap}.settings-chip{padding:5px 14px;font-size:13px;font-weight:600;border:1.5px solid var(--color-border);border-radius:999px;background:none;color:var(--color-muted);cursor:pointer;transition:all .15s}.settings-chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.settings-chip--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}[data-theme=dark] .settings-chip--active{color:#0f172a}.settings-time-input{border:1px solid var(--color-border);border-radius:6px;padding:6px 10px;font-size:14px;font-family:inherit;background:var(--color-surface);color:var(--color-text);cursor:pointer}.settings-time-input:focus{outline:2px solid rgba(79,124,255,.18);border-color:var(--color-primary)}.settings-section-sep{height:1px;background:var(--color-border);margin:4px 0}@media(max-width:900px){.app{max-width:760px}.today-layout{grid-template-columns:1fr}.today-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px}}@media(max-width:540px){.app-header{grid-template-columns:auto 1fr;padding:0 10px;min-height:48px}.app-title{font-size:13px;gap:6px}.app-title-icon svg{width:18px;height:18px}.tab-nav{justify-content:flex-end}.tab-btn{padding:0 8px;font-size:11px;gap:3px}.tab-icon svg{width:12px;height:12px}.tab-content{padding:0 12px}.action-error{margin:12px 12px 0}.today-layout{gap:12px;padding-top:16px}.today-sidebar{display:block}.today-sidebar__calendar{display:none}.progress-hero{flex-direction:row;align-items:center;gap:12px;padding:12px 14px}.progress-hero__info{min-height:0;gap:0}.progress-hero__label{font-size:11px}.progress-count__label{font-size:15px}.progress-count__num{font-size:32px}.progress-count__sep{font-size:14px}.progress-count__goal{font-size:11px}.progress-hero__message{font-size:11px;margin-top:3px}.progress-ring-wrap{width:64px;height:64px}.progress-ring-pct{font-size:15px}.progress-ring-text{font-size:8px}.gamifi-bar{padding:2px 4px 4px;font-size:11px}.drag-handle{font-size:15px;padding:4px 2px;color:#d1d5db}.today-task-card__main{padding:10px 12px;gap:7px}.goal-cards{gap:6px;margin-bottom:2px}.weekly-goal-card{padding:8px 12px;margin-bottom:0}.weekly-goal-card__label{font-size:10px}.weekly-goal-card__text{font-size:12px;margin-top:3px;line-height:1.4}.section-toggle-btn{padding:10px 14px}.section-title{font-size:13px}.page{gap:14px}.section{padding:14px}.cal-header{gap:10px}.cal-grid{gap:2px}.year-chart__bars{height:90px}.settings-chip-group--nowrap{flex-wrap:nowrap;gap:4px;width:100%}.settings-chip-group--nowrap .settings-chip{flex:1;padding:5px 0;font-size:12px;text-align:center;white-space:nowrap}.settings-row--wrap{flex-direction:column;align-items:stretch;gap:6px}.settings-note-list{font-size:11px;line-height:1.6}}.gamifi-bar{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-muted, #6b7280);padding:5px 4px;flex-wrap:wrap}.gamifi-item{font-weight:500}.gamifi-streak{color:#f97316;display:flex;align-items:center;gap:4px}.streak-icon{flex-shrink:0}.gamifi-badge-label{background:var(--color-surface, #f1f5f9);border:1px solid var(--color-border, #e5e7eb);border-radius:99px;padding:1px 8px;font-size:11px}.gamifi-sep{color:var(--color-border, #d1d5db)}.weekly-goal-card{background:var(--color-surface, #f8fafc);border:1px solid var(--color-border, #e5e7eb);border-radius:10px;padding:11px 14px;margin-bottom:10px}.weekly-goal-card__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.weekly-goal-card__label{font-size:11px;font-weight:700;color:#4f46e5;text-transform:uppercase;letter-spacing:.05em}.weekly-goal-card__text{font-size:13px;color:var(--color-text, #111827);margin-top:6px;line-height:1.5}.weekly-goal-btn{font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px;border:1.5px solid var(--color-border, #e5e7eb);background:none;color:var(--color-muted, #9ca3af);cursor:pointer;transition:all .15s;flex-shrink:0}.weekly-goal-btn:hover{border-color:var(--color-primary, #16a34a);color:var(--color-primary, #16a34a)}.weekly-goal-btn--done{border-color:var(--color-primary, #16a34a);background:var(--color-primary, #16a34a);color:#fff}.ach-record__cat{margin-top:14px}.ach-record__cat-label{font-size:11px;font-weight:700;color:var(--color-muted, #6b7280);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.ach-record__toggle{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--color-primary, #16a34a);background:none;border:none;cursor:pointer;padding:8px 0 4px;width:100%;text-align:left}.ach-record__toggle-icon{font-size:11px;display:inline-block;transition:transform .2s}.ach-record__toggle-icon--open{transform:rotate(90deg)}.progress-count__goal{font-size:12px;color:var(--color-muted, #9ca3af);margin-left:6px;font-weight:400;align-self:flex-end;padding-bottom:2px}.task-recurring-badge{font-size:10px;border-radius:99px;padding:1px 7px;flex-shrink:0;font-weight:600}.task-recurring-badge--daily{color:#d97706;background:#d9770614;border:1px solid rgba(217,119,6,.25)}.task-recurring-badge--weekly{color:#4f46e5;background:#4f46e512;border:1px solid rgba(79,70,229,.22)}.add-task-form__dow{display:flex;gap:4px;flex-wrap:wrap}.dow-btn{font-size:12px;font-weight:600;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--color-border, #e5e7eb);background:none;color:var(--color-muted, #6b7280);cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center}.dow-btn:hover{border-color:#4f46e5;color:#4f46e5}.dow-btn--active{background:#4f46e5;border-color:#4f46e5;color:#fff}.add-task-form__recurring-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-muted, #6b7280)}.edit-modal__recurring-until{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--color-muted, #6b7280)}.edit-modal__recurring-until input{border:1px solid var(--color-border);border-radius:6px;padding:6px 8px;font-size:13px;background:var(--color-surface)}.settings-text-input{flex:1;min-width:0;max-width:280px;padding:6px 10px;border:1.5px solid var(--color-border, #e5e7eb);border-radius:8px;font-size:13px;background:var(--color-bg, #fff);color:var(--color-text, #111827);outline:none;transition:border-color .15s}.settings-text-input:focus{border-color:var(--color-primary, #16a34a)}.ach-panel{background:var(--color-bg, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:12px;padding:18px 20px 16px;margin-bottom:0}.ach-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.ach-cell{display:flex;flex-direction:column;align-items:center;padding:4px 0;border-right:1px solid var(--color-border, #e5e7eb)}.ach-cell:last-child{border-right:none}.ach-cell__val{font-size:22px;font-weight:800;color:var(--color-text, #111827);line-height:1.15;letter-spacing:-.5px}.ach-cell__sub{font-size:13px;font-weight:400;color:var(--color-muted, #9ca3af)}.ach-cell__key{font-size:10px;color:var(--color-muted, #9ca3af);margin-top:4px;letter-spacing:.02em}.lv-bar{margin-top:16px;padding-top:14px;border-top:1px solid var(--color-border, #e5e7eb)}.lv-bar__labels{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.lv-bar__cur{font-size:14px;font-weight:700;color:var(--color-text, #111827)}.lv-bar__xp{font-size:11px;color:var(--color-muted, #9ca3af)}.lv-bar__nxt{font-size:12px;color:var(--color-muted, #9ca3af);font-weight:500}.lv-bar__track{height:6px;background:var(--color-border, #e5e7eb);border-radius:99px;overflow:hidden}.lv-bar__fill{height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:99px;transition:width .5s cubic-bezier(.22,1,.36,1);min-width:3px}.bdg-grid{display:grid;gap:8px}.bdg-grid--streak{grid-template-columns:repeat(5,1fr)}.bdg-grid--level{grid-template-columns:repeat(4,1fr)}.bdg-grid--ach{grid-template-columns:repeat(3,1fr)}@media(max-width:540px){.bdg-grid--streak{grid-template-columns:repeat(3,1fr)}.bdg-grid--level{grid-template-columns:repeat(2,1fr)}.bdg-grid--ach{grid-template-columns:repeat(3,1fr)}}.bdg-card{border-left:3px solid transparent;border-top:1px solid var(--color-border, #e5e7eb);border-right:1px solid var(--color-border, #e5e7eb);border-bottom:1px solid var(--color-border, #e5e7eb);border-radius:0 10px 10px 0;padding:12px 10px 12px 12px;display:flex;flex-direction:column;gap:5px;min-height:76px;transition:border-left-color .15s,background .15s}.bdg-card--on{cursor:pointer;background:var(--color-bg, #fff)}.bdg-card--on:hover{border-left-color:var(--color-primary, #16a34a);background:#16a34a08}.bdg-card--off{border-color:transparent;background:var(--color-surface, #f9fafb);opacity:.38}.bdg-card--sel{border-left-color:var(--color-primary, #16a34a);background:#16a34a0d}.bdg-card__name{font-size:15px;font-weight:700;color:var(--color-text, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bdg-card--off .bdg-card__name{color:var(--color-muted, #9ca3af);font-weight:400}.bdg-card__cond{font-size:10px;color:var(--color-muted, #9ca3af);line-height:1.4}.bdg-card__sel{font-size:9px;font-weight:600;color:var(--color-primary, #16a34a);margin-top:2px}.ach-hint{font-size:11px;color:var(--color-muted, #9ca3af);text-align:center;padding:4px 0 8px}.goals-list{display:flex;flex-direction:column;gap:16px}.goal-entry{border:1px solid var(--color-border, #e5e7eb);border-radius:12px;padding:16px;background:var(--color-bg, #fff);transition:border-color .15s}.goal-entry--done{border-color:var(--color-primary, #16a34a);background:#16a34a06}.goal-entry__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.goal-entry__label{font-size:12px;font-weight:700;color:var(--color-muted, #6b7280);text-transform:uppercase;letter-spacing:.06em}.goal-toggle{font-size:12px;font-weight:600;padding:4px 12px;border-radius:99px;border:1.5px solid var(--color-border, #e5e7eb);background:none;color:var(--color-muted, #9ca3af);cursor:pointer;transition:all .15s;white-space:nowrap}.goal-toggle:hover:not(:disabled){border-color:var(--color-primary, #16a34a);color:var(--color-primary, #16a34a)}.goal-toggle--done{border-color:var(--color-primary, #16a34a);background:var(--color-primary, #16a34a);color:#fff}.goal-toggle--done:hover:not(:disabled){background:#15803d;border-color:#15803d;color:#fff}.goal-toggle:disabled{opacity:.3;cursor:not-allowed}.goal-entry__textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;font-size:14px;color:var(--color-text, #111827);background:var(--color-surface, #f9fafb);resize:none;outline:none;font-family:inherit;line-height:1.6;transition:border-color .15s}.goal-entry__textarea:focus{border-color:var(--color-primary, #16a34a);background:var(--color-bg, #fff)}.goal-entry__textarea::placeholder{color:var(--color-muted, #d1d5db)}.goal-entry__done-mark{margin-top:8px;font-size:11px;font-weight:600;color:var(--color-primary, #16a34a);letter-spacing:.04em}.goal-cards{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}@keyframes goalComplete{0%{background:var(--color-surface)}25%{background:#16a34a26}to{background:var(--color-surface)}}.weekly-goal-card--flashing{animation:goalComplete .7s ease-out forwards}.weekly-goal-card__right{margin-left:auto;display:flex;align-items:center;gap:4px}.weekly-goal-card--monthly{border-color:#0d948840}.weekly-goal-card--monthly .weekly-goal-card__label{color:#0d9488}.weekly-goal-card--monthly .weekly-goal-btn--done{background:#0d9488;border-color:#0d9488}.goal-achieve-btn{font-size:12px;font-weight:600;padding:4px 12px;border-radius:99px;border:1.5px solid var(--color-primary, #16a34a);background:none;color:var(--color-primary, #16a34a);cursor:pointer;transition:all .15s;white-space:nowrap}.goal-achieve-btn:hover:not(:disabled){background:var(--color-primary, #16a34a);color:#fff}.goal-achieve-btn--done{background:var(--color-primary, #16a34a);color:#fff}.goal-achieve-btn--done:hover:not(:disabled){background:#15803d;border-color:#15803d}.goal-achieve-btn:disabled{opacity:.3;cursor:not-allowed}.goal-entry2{border:1px solid var(--color-border, #e5e7eb);border-radius:10px;padding:12px 14px;background:var(--color-bg, #fff);transition:border-color .15s}.goal-entry2--done{border-color:var(--color-primary, #16a34a);background:#16a34a06}.goal-entry2__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.goal-entry2--monthly .goal-entry2__label{color:#0d9488}.goal-entry2__label{font-size:12px;font-weight:700;color:#4f46e5;text-transform:uppercase;letter-spacing:.06em;flex:1;display:flex;flex-direction:column;gap:2px}.goal-entry2__period{font-size:11px;font-weight:500;color:var(--color-muted, #6b7280);text-transform:none;letter-spacing:0;opacity:.8}.goal-entry2__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.goal-entry2__btn{font-size:12px;font-weight:600;padding:4px 12px;border-radius:99px;border:1.5px solid var(--color-border, #e5e7eb);background:none;color:var(--color-primary, #16a34a);cursor:pointer;transition:all .15s;white-space:nowrap}.goal-entry2__btn:hover{background:var(--color-primary, #16a34a);border-color:var(--color-primary, #16a34a);color:#fff}.goal-entry2__btn--archive{border-color:#9ca3af;color:#6b7280}.goal-entry2__btn--archive:hover{background:#6b7280;border-color:#6b7280;color:#fff}.goal-entry2__preview{font-size:13px;color:var(--color-text, #111827);margin-top:6px;line-height:1.5}.goal-entry2__empty{font-size:12px;color:var(--color-muted, #d1d5db);margin-top:4px;font-style:italic}.goal-done-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--color-surface, #f1f5f9);color:var(--color-muted, #9ca3af);border:1px solid var(--color-border, #e5e7eb);white-space:nowrap}.goal-done-badge--done{background:#16a34a14;color:var(--color-primary, #16a34a);border-color:#16a34a40}.goal-entry2__edit{margin-top:10px}.goal-entry2__done-row{display:flex;justify-content:flex-end;margin-top:8px}.month-goal-done{font-size:11px;font-weight:600;color:var(--color-primary, #16a34a);margin-left:6px}.goal-hist{margin-top:12px;display:flex;flex-direction:column;gap:10px}.goal-hist__item{border:1px solid var(--color-border, #e5e7eb);border-radius:8px;padding:10px 12px;background:var(--color-surface, #fff)}.goal-hist__header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.goal-hist__period{font-size:12px;font-weight:600;color:var(--color-muted, #6b7280);flex:1}.goal-hist__badge{font-size:11px;font-weight:600;border-radius:20px;padding:1px 8px;color:var(--color-primary, #16a34a);background:#dcfce7}.goal-hist__badge--done{color:#16a34a;background:#dcfce7}.goal-hist__badge--miss{color:#6b7280;background:#f3f4f6}.goal-inline-edit{display:flex;flex-direction:column;gap:6px;margin-top:6px}.goal-inline-edit__btns{display:flex;gap:6px}.goal-inline-save{padding:4px 14px;border-radius:6px;border:none;background:var(--color-primary, #16a34a);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.goal-inline-cancel{padding:4px 14px;border-radius:6px;border:1px solid var(--color-border, #e5e7eb);background:transparent;color:var(--color-text, #111827);font-size:13px;cursor:pointer}.later-lead{display:flex;align-items:center;gap:4px;flex-shrink:0}.later-index{font-size:12px;font-weight:700;color:var(--color-muted, #6b7280);min-width:18px;text-align:center;flex-shrink:0}.cal-detail-list--uncompleted{list-style:none;padding:0;margin:0}.cal-detail-uncompleted-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;font-size:13px;color:var(--color-text, #111827)}.cal-retroactive-btn{padding:3px 10px;border-radius:6px;border:1px solid var(--color-primary, #16a34a);background:transparent;color:var(--color-primary, #16a34a);font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap}.settings-suggestion{margin-top:10px;padding:10px 12px;border-radius:8px;background:var(--color-warn-bg, #fef9c3);border:1px solid var(--color-warn-border, #fde68a)}[data-theme=dark] .settings-suggestion{background:#fde68a1f;border-color:#fde68a4d}.settings-suggestion__text{font-size:13px;color:var(--color-text, #111827);margin:0 0 8px}.settings-chip--suggest{background:var(--color-primary, #16a34a);color:#fff;border-color:var(--color-primary, #16a34a)}.settings-chip--suggest:hover{opacity:.85}.cal-retroactive-btn:hover{background:#dcfce7}.goal-hist__text{font-size:13px;color:var(--color-text, #111827);margin:0;white-space:pre-wrap}.goal-hist__empty{font-size:12px;color:var(--color-muted, #6b7280);margin:0;font-style:italic}.badge-toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:1000;pointer-events:none}.badge-toast{display:flex;align-items:center;gap:8px;background:var(--color-bg, #fff);border:1.5px solid var(--color-border, #e5e7eb);border-left:3px solid var(--color-primary, #16a34a);border-radius:8px;padding:10px 14px;box-shadow:0 4px 16px #00000017;cursor:pointer;pointer-events:auto;max-width:260px;animation:badge-toast-in .2s ease}@keyframes badge-toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.badge-toast__label{font-size:10px;font-weight:600;color:var(--color-primary, #16a34a);flex-shrink:0}.badge-toast__name{font-size:14px;font-weight:700;color:var(--color-text, #111827)}.badge-toast__reading{font-size:11px;color:var(--color-muted, #9ca3af)}.pwa-update-banner{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:400;display:flex;align-items:center;gap:12px;padding:10px 14px;background:#111827;color:#fff;border-radius:10px;font-size:13px;box-shadow:0 4px 16px #0003;max-width:calc(100vw - 24px)}.pwa-update-banner__actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.pwa-update-banner__btn{background:#16a34a;color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer}.pwa-update-banner__dismiss{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:16px;line-height:1;padding:2px 4px}
