*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f0f2f5;min-height:100vh;color:#1a1a2e}.auth-screen{min-height:100vh;padding:24px;display:flex;align-items:center;justify-content:center}.auth-card{width:100%;max-width:400px;padding:40px 32px;border-radius:20px;background:#fff;box-shadow:0 8px 30px #00000017;text-align:center}.auth-logo{width:52px;height:52px;margin:0 auto 18px;border-radius:16px;background:#4f46e5;color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800}.auth-card h1{font-size:26px;margin-bottom:10px}.auth-card>p{color:#777;font-size:14px;line-height:1.6}.auth-form{margin-top:22px}.auth-form input{width:100%;padding:13px 14px;border:1.5px solid #d9dce1;border-radius:10px;background:#fff;color:#333;font-size:15px;font-family:inherit;outline:none}.auth-form input+input{margin-top:10px}.auth-form input:focus{border-color:#4f46e5}.auth-actions{display:flex;gap:10px;margin-top:12px}.auth-card:not(.signup-mode) .auth-signup-only{display:none}.auth-card.signup-mode #emailLoginBtn,.auth-card.signup-mode #emailSignupModeBtn{display:none}.auth-primary-btn,.auth-secondary-btn{flex:1;padding:13px 14px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:filter .15s,opacity .15s}.auth-primary-btn{border:none;background:#4f46e5;color:#fff}.auth-secondary-btn{border:1px solid #d9dce1;background:#fff;color:#333}.google-login-btn{width:100%;margin-top:28px;padding:13px 18px;border:1px solid #d9dce1;border-radius:10px;background:#fff;color:#333;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}.auth-primary-btn:hover,.auth-secondary-btn:hover,.google-login-btn:hover{background:#f8f9fa}.auth-primary-btn:hover{filter:brightness(.95);background:#4338ca}.auth-primary-btn:disabled,.auth-secondary-btn:disabled,.google-login-btn:disabled{opacity:.55;cursor:wait}.google-icon{color:#4285f4;font-size:18px;font-weight:800}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 2px;color:#bbb;font-size:12px;font-weight:600}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#eceef3}.auth-message{min-height:20px;margin-top:14px}.auth-message.error{color:#dc2626!important}.auth-loading>header,.auth-loading>main,.auth-loading>.modal-overlay{display:none}.auth-signed-out>header,.auth-signed-out>main,.auth-signed-out>.modal-overlay{display:none}.auth-signed-in .auth-screen{display:none}.user-menu{justify-self:end}.logout-btn{padding:4px 8px;border:0;border-radius:6px;background:#f0f2f5;color:#777;font-size:11px;cursor:pointer}.logout-btn:hover{background:#e2e5e9}header{background:#fff;border-bottom:1px solid #e8eaed;padding:20px 24px 0;position:sticky;top:0;z-index:100;box-shadow:0 1px 4px #0000000f}.header-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:16px}.date-display{font-size:22px;font-weight:700;color:#1a1a2e}.date-display span{display:block;font-size:13px;font-weight:400;color:#888;margin-top:2px}.motto-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;width:360px;max-width:100%}.motto-label{font-size:11px;font-weight:600;color:#bbb;letter-spacing:.3px}.motto-text{font-size:13px;font-weight:500;color:#555;text-align:center;line-height:1.4;cursor:pointer;padding:4px 8px;border-radius:8px;border:1.5px dashed transparent;transition:border-color .2s,background .2s;word-break:keep-all}.motto-text:hover{border-color:#c7c9f0;background:#f5f5ff}.motto-text.placeholder{color:#ccc;font-style:italic}.motto-input{font-size:13px;font-weight:500;color:#555;text-align:left;width:100%;border:1.5px solid #4f46e5;border-radius:8px;padding:4px 8px;outline:none;background:#f5f5ff;font-family:inherit;line-height:1.4}.tabs{display:flex;gap:0;overflow-x:auto}.tab-btn{padding:10px 18px;border:none;background:none;font-size:14px;font-weight:600;color:#999;cursor:pointer;border-bottom:3px solid transparent;transition:color .2s,border-color .2s,transform .1s,background .1s;white-space:nowrap;flex-shrink:0;touch-action:pan-x}.tab-btn.active{color:#4f46e5;border-bottom-color:#4f46e5}.tab-btn:hover:not(.active){color:#555}.tabs-reordering{-webkit-user-select:none;user-select:none;cursor:grabbing}.tabs-reordering .tab-btn{cursor:grabbing}.tab-btn.dragging{background:#f5f5ff;border-radius:10px 10px 0 0;transform:translateY(-2px);color:#4f46e5}.tab-manage-btn{width:34px;height:34px;margin:0 0 3px 8px;border:none;border-radius:50%;align-self:center;background:#fff;color:#4f46e5;font-size:20px;font-weight:700;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.tab-manage-btn:hover{background:#f5f5ff}main{max-width:640px;margin:0 auto;padding:24px 16px}.tab-panel{display:none}.tab-panel.active{display:block}.card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 6px #00000012;margin-bottom:16px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:15px;font-weight:700;color:#333}.section-divider{font-size:12px;font-weight:700;color:#aaa;letter-spacing:.4px;text-transform:uppercase;margin:18px 0 10px;display:flex;align-items:center;gap:8px}.section-divider:after{content:"";flex:1;height:1px;background:#f0f0f0}.add-btn{width:32px;height:32px;border-radius:50%;border:none;background:#4f46e5;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .1s;flex-shrink:0}.add-btn:hover{background:#4338ca}.add-btn:active{transform:scale(.93)}.task-list{list-style:none}.task-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f3f4f6;animation:fadeIn .2s ease}.task-item:last-child{border-bottom:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.task-item input[type=checkbox]{width:20px;height:20px;accent-color:#4f46e5;cursor:pointer;flex-shrink:0}.task-text{flex:1;font-size:15px;line-height:1.4;transition:color .2s}.task-text:hover{cursor:text}.task-item.done .task-text{text-decoration:line-through;color:#aaa}.task-edit-input{flex:1;min-width:0;padding:6px 8px;border:1.5px solid #4f46e5;border-radius:8px;font-size:15px;font-family:inherit;line-height:1.4;outline:none;color:#1a1a2e}.block-edit-input{display:block;width:100%}.priority-item{padding:12px 0;border-bottom:1px solid #f3f4f6;animation:fadeIn .2s ease}.priority-item:last-child{border-bottom:none}.priority-main-row{display:flex;align-items:center;gap:10px}.priority-item.done .task-text{text-decoration:line-through;color:#aaa}.priority-rank{width:28px;height:28px;border:none;border-radius:50%;background:#4f46e5;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;cursor:pointer;position:relative;transition:opacity .15s,transform .1s,background .15s}.priority-rank:hover{background:#4338ca}.priority-rank:active{transform:scale(.94)}.priority-item.done .priority-rank{opacity:.55}.priority-item.done .priority-rank:after{content:"";position:absolute;left:7px;right:7px;top:50%;height:3px;border-radius:99px;background:#fff;transform:translateY(-50%);pointer-events:none}.priority-controls{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.priority-move-btn{width:24px;height:22px;border:none;border-radius:6px;background:#eef2ff;color:#4f46e5;font-size:13px;font-weight:800;line-height:1;cursor:pointer;transition:background .15s,color .15s,transform .1s}.priority-move-btn:hover:not(:disabled){background:#4f46e5;color:#fff}.priority-move-btn:active:not(:disabled){transform:scale(.94)}.priority-move-btn:disabled{color:#c7c7d8;background:#f5f5f8;cursor:default}.priority-detail-wrap{margin:0 34px 0 68px;padding-left:18px;border-left:2px solid rgba(26,26,46,.45)}.priority-detail-list{list-style:none}.priority-detail-item,.priority-detail-edit-row{display:flex;align-items:center;gap:8px;padding:3px 0}.priority-detail-number{width:20px;height:20px;border:none;border-radius:50%;background:rgba(79,70,229,.7);color:#fff;font-size:11px;font-weight:800;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:background .15s,opacity .15s,transform .1s}.priority-detail-number:hover{background:#4f46e5}.priority-detail-number:active{transform:scale(.94)}.priority-detail-text{flex:1;min-width:0;color:#555;font-size:14px;line-height:1.4;word-break:break-word}.priority-detail-text:hover{cursor:text}.priority-detail-item.done .priority-detail-number{background:#4f46e5;opacity:.35}.priority-detail-item.done .priority-detail-number:after{content:"";position:absolute;left:5px;right:5px;top:50%;height:2px;border-radius:99px;background:#fff;transform:translateY(-50%);pointer-events:none}.priority-detail-item.done .priority-detail-text{color:#aaa;text-decoration:line-through}.priority-detail-delete{font-size:16px}.priority-detail-input{font-size:14px;padding:5px 8px}.priority-detail-add-btn{margin-left:auto;border:none;background:#eef2ff;color:#4f46e5;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;opacity:.65;flex-shrink:0;transition:opacity .15s,background .15s}.priority-detail-add-btn:hover{background:#e0e7ff;opacity:1}.tag-repeat{font-size:11px;font-weight:600;background:#eef2ff;color:#6366f1;border-radius:6px;padding:2px 7px;flex-shrink:0}.exercise-type-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.exercise-name-input.hidden{display:none}.exercise-type-option{border:1px solid #d9def0;background:#fff;color:#4b5563;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:700;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.exercise-type-option.active{border-color:#4f46e5;background:#eef2ff;color:#4f46e5}.exercise-item{padding:12px 0;border-bottom:1px solid #f3f4f6;animation:fadeIn .2s ease}.exercise-item:last-child{border-bottom:none}.exercise-main-row{display:flex;align-items:center;gap:12px}.exercise-rank{width:28px;height:28px;border:none;border-radius:50%;background:#4f46e5;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;cursor:pointer;position:relative;transition:opacity .15s,transform .1s,background .15s}.exercise-rank:hover{background:#4338ca}.exercise-rank:active{transform:scale(.94)}.exercise-item.done .exercise-rank{opacity:.55}.exercise-item.done .exercise-rank:after{content:"";position:absolute;left:7px;right:7px;top:50%;height:3px;border-radius:99px;background:#fff;transform:translateY(-50%);pointer-events:none}.exercise-name{min-width:0;font-size:15px;line-height:1.4;word-break:break-word}.exercise-name:hover{cursor:text}.exercise-item.done .exercise-name{text-decoration:line-through;color:#aaa}.exercise-set-add-btn{margin-left:auto;border:none;background:#eef2ff;color:#4f46e5;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;opacity:.75;flex-shrink:0;transition:opacity .15s,background .15s}.exercise-set-add-btn:hover{background:#e0e7ff;opacity:1}.exercise-detail-wrap{margin:8px 34px 0 68px;padding-left:18px;border-left:2px solid rgba(26,26,46,.35)}.exercise-set-list{list-style:none}.exercise-set-item,.exercise-set-edit-row{display:flex;align-items:center;gap:8px;padding:4px 0}.exercise-distance-row,.exercise-custom-three-row{align-items:flex-start}.exercise-set-number{width:20px;height:20px;border:none;border-radius:50%;background:rgba(79,70,229,.7);color:#fff;font-size:11px;font-weight:800;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:background .15s,opacity .15s,transform .1s}.exercise-set-number:hover{background:#4f46e5}.exercise-set-number:active{transform:scale(.94)}.exercise-set-text{flex:1;min-width:0;color:#555;font-size:14px;line-height:1.4;word-break:break-word}.exercise-set-text:hover{cursor:text}.exercise-set-item.done .exercise-set-number{background:#4f46e5;opacity:.35}.exercise-set-item.done .exercise-set-number:after{content:"";position:absolute;left:5px;right:5px;top:50%;height:2px;border-radius:99px;background:#fff;transform:translateY(-50%);pointer-events:none}.exercise-set-item.done .exercise-set-text{color:#aaa;text-decoration:line-through}.exercise-set-delete{font-size:16px}.exercise-set-input{min-width:0;font-size:14px;padding:5px 8px}.exercise-set-field{display:flex;flex-direction:column;min-width:0;gap:4px;flex:1}.exercise-time-field{flex:0 0 126px;width:126px}.exercise-set-helper{font-size:11px;line-height:1.3;color:#9ca3af;white-space:nowrap}.exercise-time-picker{display:flex;align-items:center;gap:8px;min-height:42px;padding:6px 8px;border:1.5px solid #cfd6ff;border-radius:14px;background:#f8faff;box-shadow:inset 0 1px #fffc}.exercise-time-segment{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:0 10px;height:30px;border-radius:10px;background:#fff}.exercise-time-select{border:none;background:transparent;color:#1a1a2e;font-size:15px;font-weight:700;font-family:inherit;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:34px}.exercise-time-unit{font-size:12px;font-weight:700;color:#6b7280}.exercise-time-trigger{width:100%;display:flex;align-items:center;justify-content:center;min-height:0;padding:6px 8px;border:1.5px solid #4f46e5;border-radius:8px;background:#fff;color:#1a1a2e;font-family:inherit;cursor:pointer;text-align:center}.exercise-time-trigger-value{font-size:15px;font-weight:400;letter-spacing:.01em;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums;color:#1a1a2e}.exercise-time-modal{max-width:420px}.exercise-time-wheel-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.exercise-time-wheel-column{min-width:0}.exercise-time-wheel-label{display:block;margin-bottom:8px;font-size:12px;font-weight:700;color:#6b7280}.exercise-time-wheel{height:176px;overflow-y:auto;padding:64px 0;border:1px solid #e5e7eb;border-radius:16px;background:linear-gradient(to bottom,rgba(255,255,255,.94),rgba(255,255,255,.7) 18%,rgba(255,255,255,0) 34%,rgba(255,255,255,0) 66%,rgba(255,255,255,.7) 82%,rgba(255,255,255,.94)),#f8faff;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch}.exercise-time-wheel-option{width:100%;height:32px;border:none;background:transparent;color:#6b7280;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;scroll-snap-align:center}.exercise-time-wheel-option.active{color:#4f46e5;background:rgba(79,70,229,.08)}.exercise-set-save-btn{border:none;border-radius:8px;background:#4f46e5;color:#fff;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0}.exercise-custom-mode-picker{display:flex;gap:8px;margin-top:8px}.exercise-custom-mode-btn{border:none;background:#eef2ff;color:#4f46e5;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,opacity .15s}.exercise-custom-mode-btn:hover{background:#e0e7ff}.delete-btn{background:none;border:none;color:#ccc;font-size:18px;cursor:pointer;padding:2px 4px;border-radius:4px;line-height:1;transition:color .15s}.delete-btn:hover{color:#ef4444}.empty-state{text-align:center;color:#bbb;font-size:14px;padding:20px 0}.progress-wrap{margin-bottom:16px}.progress-label{display:flex;justify-content:space-between;font-size:13px;color:#888;margin-bottom:6px}.progress-bar{height:6px;background:#e8eaed;border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4f46e5,#818cf8);border-radius:99px;transition:width .4s ease}.goal-item:not(.priority-item){display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid #f3f4f6;animation:fadeIn .2s ease}.goal-item:last-child{border-bottom:none}.goal-item input[type=checkbox]{width:20px;height:20px;accent-color:#4f46e5;cursor:pointer;flex-shrink:0;margin-top:2px}.goal-body{flex:1;min-width:0}.goal-text{font-size:15px;line-height:1.5;word-break:break-word;transition:color .2s}.goal-text:hover{cursor:text}.goal-item.achieved .goal-text{text-decoration:line-through;color:#aaa}.goal-meta{font-size:12px;color:#bbb;margin-top:3px}.goal-item.achieved .goal-meta{color:#4f46e5}.idea-item:not(.priority-item){display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid #f3f4f6;animation:fadeIn .2s ease}.idea-item:last-child{border-bottom:none}.idea-item input[type=checkbox]{width:20px;height:20px;accent-color:#4f46e5;cursor:pointer;flex-shrink:0;margin-top:2px}.idea-body{flex:1;min-width:0}.idea-text{font-size:15px;line-height:1.5;word-break:break-word;transition:color .2s}.idea-text:hover{cursor:text}.idea-item.achieved .idea-text{text-decoration:line-through;color:#aaa}.idea-meta{font-size:12px;color:#bbb;margin-top:3px}.idea-item.achieved .idea-meta{color:#4f46e5}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-nav-btn{width:34px;height:34px;border:none;background:#f0f2f5;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;color:#555}.cal-nav-btn:hover{background:#e0e2e8}.cal-month-label{font-size:16px;font-weight:700;color:#1a1a2e}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-weekday{text-align:center;font-size:11px;font-weight:700;color:#aaa;padding:4px 0 8px}.cal-weekday:first-child{color:#ef4444}.cal-weekday:last-child{color:#6366f1}.cal-day{aspect-ratio:1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:default;position:relative;transition:transform .1s;gap:3px}.cal-day.has-record{cursor:pointer}.cal-day.has-record:hover{transform:scale(1.07)}.cal-day.empty{background:transparent}.cal-day.no-record{color:#ccc;background:#fafafa}.cal-day.rate-0{background:var(--cal-bg-0, #fee2e2);color:var(--cal-text-0, #dc2626)}.cal-day.rate-low{background:var(--cal-bg-low, #eef2ff);color:var(--cal-text-low, #4f46e5)}.cal-day.rate-mid{background:var(--cal-bg-mid, #d1fae5);color:var(--cal-text-mid, #065f46)}.cal-day.rate-100{background:var(--cal-bg-100, #10b981);color:var(--cal-text-100, #fff)}.cal-day.today-cell{outline:2px solid #4f46e5;outline-offset:1px}.cal-day.selected-cell{outline:2px solid #1a1a2e;outline-offset:1px}.cal-day-pct{font-size:9px;font-weight:700;opacity:.75;line-height:1}.cal-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #f0f0f0}.legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:#888}.legend-dot{width:12px;height:12px;border-radius:4px}.cal-settings-gear{background:none;border:none;cursor:pointer;font-size:15px;color:#bbb;padding:2px 4px;border-radius:6px;line-height:1;margin-left:auto;transition:color .15s,background .15s}.cal-settings-gear:hover{color:#4f46e5;background:#eef2ff}.cal-settings-panel{display:none;position:relative;margin-top:12px;padding:16px;background:#f8f9fc;border-radius:12px;border:1px solid #eee}.cal-settings-panel.open{display:block;animation:fadeIn .15s ease}.cal-settings-title{font-size:13px;font-weight:700;color:#444;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}.cal-settings-reset{font-size:11px;font-weight:600;color:#4f46e5;background:#eef2ff;border:none;cursor:pointer;padding:4px 10px;border-radius:20px}.cal-settings-reset:hover{background:#e0e7ff}.cal-settings-section-label{font-size:11px;font-weight:700;color:#aaa;letter-spacing:.3px;margin:4px 0 8px}.cal-color-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.cal-color-tier{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;cursor:pointer;font-size:12px;font-weight:600;color:#555;transition:border-color .15s,box-shadow .15s}.cal-color-tier:hover{border-color:#c7c9f0}.cal-color-chip{width:24px;height:24px;border-radius:7px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;box-shadow:inset 0 0 0 1px #0000000f}.cal-range-control{padding:2px}.cal-range-labels{display:flex;justify-content:space-between;margin-bottom:8px}.cal-range-tag{font-size:12px;font-weight:700;color:#555;padding:3px 10px;border-radius:20px;background:#eef2ff}.cal-range-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:#e0e3ee;outline:none;cursor:pointer}.cal-range-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#4f46e5;cursor:pointer;border:3px solid #fff;box-shadow:0 1px 4px #00000040}.cal-range-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#4f46e5;cursor:pointer;border:3px solid #fff;box-shadow:0 1px 4px #00000040}.cal-palette-popover{display:none;position:absolute;z-index:30;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:10px;box-shadow:0 6px 24px #00000024;grid-template-columns:repeat(5,1fr);gap:6px;width:200px}.cal-palette-popover.open{display:grid}.cal-palette-swatch{width:30px;height:30px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;box-shadow:inset 0 0 0 1px #00000012;transition:transform .1s}.cal-palette-swatch:hover{transform:scale(1.12)}.cal-palette-swatch.selected{outline:2.5px solid #4f46e5;outline-offset:1px}.day-detail{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 6px #00000012;margin-top:0;animation:fadeIn .2s ease}.detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.detail-date{font-size:15px;font-weight:700;color:#1a1a2e}.detail-rate-badge{font-size:13px;font-weight:700;padding:4px 10px;border-radius:20px;background:#eef2ff;color:#4f46e5}.detail-rate-badge.perfect{background:#d1fae5;color:#065f46}.detail-rate-badge.zero{background:#fee2e2;color:#dc2626}.record-section-title{font-size:12px;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.5px;margin:14px 0 8px}.record-item{display:flex;align-items:center;gap:10px;font-size:14px;padding:5px 0;color:#444}.record-item .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.record-toggle-btn,.record-index-btn,.record-text-btn,.record-action-btn,.study-record-dur-btn{border:none;background:none;font:inherit}.record-toggle-btn{width:14px;height:14px;border-radius:50%;flex-shrink:0;cursor:pointer;padding:0}.record-toggle-btn.done{background:#4f46e5}.record-toggle-btn.undone{background:#e0e0e0}.record-text-btn,.record-text-inline{min-width:0;text-align:left;color:inherit;flex:1}.record-text-btn{cursor:text;padding:0}.record-action-btn,.study-record-dur-btn{color:#4f46e5;font-size:12px;font-weight:700;cursor:pointer;padding:0}.record-action-btn:hover,.study-record-dur-btn:hover{color:#4338ca}.dot.done{background:#4f46e5}.dot.undone{background:#e0e0e0}.record-item.done-item{color:#aaa}.record-item.done-item .record-text-btn,.record-item.done-item .record-text-inline{text-decoration:line-through}.record-exercise-set-list{margin:2px 0 8px 26px;padding-left:16px;border-left:2px solid rgba(26,26,46,.25)}.record-exercise-set{display:flex;align-items:center;gap:8px;font-size:13px;color:#555;padding:4px 0}.record-exercise-set-number{width:18px;height:18px;border-radius:50%;background:rgba(79,70,229,.7);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:10px;font-weight:800;cursor:pointer;padding:0}.record-exercise-set.done-item{color:#aaa}.record-exercise-set.done-item .record-text-btn{text-decoration:line-through}.record-study-total{font-size:12px;color:#4f46e5;font-weight:700;margin-bottom:6px}.no-records{text-align:center;color:#bbb;font-size:14px;padding:40px 0}.study-subject-row{display:flex;gap:8px;margin-bottom:20px}.study-subject-input{flex:1;padding:10px 14px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:14px;font-family:inherit;outline:none;background:#fafafa;transition:border-color .2s}.study-subject-input:focus{border-color:#4f46e5;background:#fff}.stopwatch-display{text-align:center;padding:28px 0 20px}.sw-time{font-size:58px;font-weight:700;letter-spacing:2px;color:#1a1a2e;font-variant-numeric:tabular-nums;line-height:1}.sw-time.running,.sw-time.paused{color:#4f46e5}.sw-subject-label{font-size:13px;color:#aaa;margin-top:8px;min-height:18px}.sw-controls{display:flex;gap:12px;justify-content:center;margin-top:20px}.sw-btn{padding:12px 28px;border:none;border-radius:50px;font-size:15px;font-weight:700;cursor:pointer;transition:filter .15s,transform .1s}.sw-btn:active{transform:scale(.95)}.sw-btn:hover{filter:brightness(.92)}.sw-btn-start{background:#4f46e5;color:#fff}.sw-btn-pause{background:#e0e0e0;color:#555}.sw-btn-stop{background:#ef4444;color:#fff}.sw-btn-reset{background:#f0f2f5;color:#888;font-size:13px;padding:10px 18px}.study-log-list{list-style:none;margin-top:4px}.study-log-item{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f3f4f6;animation:fadeIn .2s ease}.study-log-item:last-child{border-bottom:none}.study-log-icon{width:34px;height:34px;border-radius:10px;background:#eef2ff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.study-log-body{flex:1;min-width:0}.study-log-subject{font-size:14px;font-weight:600;color:#1a1a2e}.study-log-meta{font-size:12px;color:#aaa;margin-top:2px}.study-log-duration{font-size:14px;font-weight:700;color:#4f46e5;flex-shrink:0}.study-total-bar{background:#eef2ff;border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.study-total-label{font-size:13px;color:#4338ca;font-weight:600}.study-total-time{font-size:18px;font-weight:800;color:#4f46e5}.study-record-item{display:flex;align-items:center;gap:8px;font-size:14px;padding:5px 0;color:#444}.study-record-dot{width:8px;height:8px;border-radius:50%;background:#4f46e5;flex-shrink:0}.study-record-dur{margin-left:auto;font-size:13px;font-weight:700;color:#4f46e5}.study-record-duration-input,.record-inline-input{font-size:13px}.custom-tab-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}.custom-add-component-btn{flex:0 0 auto;padding:9px 12px;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer}.custom-empty-card{color:#bbb;font-size:14px;text-align:center}.custom-component-header,.custom-timer-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.custom-component-title{font-size:15px;font-weight:700;color:#333}.custom-component-actions{display:flex;gap:6px;flex-shrink:0}.custom-component-actions button,.tab-settings-actions button{min-width:30px;height:30px;border:none;border-radius:8px;background:#f0f2f5;color:#555;font-size:13px;font-weight:700;cursor:pointer}.custom-component-remove-btn{min-width:32px;height:32px;border:none;border-radius:8px;background:#f0f2f5;color:#555;font-size:20px;line-height:1;cursor:pointer;transition:background .2s,color .2s}.custom-component-actions button:disabled,.tab-settings-actions button:disabled{color:#c9c9d3;cursor:default}.custom-component-actions button:hover:not(:disabled),.tab-settings-actions button:hover:not(:disabled){background:#e0e7ff;color:#4f46e5}.custom-component-remove-btn:hover{background:#fee2e2;color:#ef4444}.custom-recordable-description{font-size:13px;color:#aaa;margin-bottom:12px}.custom-recordable-divider{margin-top:18px}.custom-memo-input{width:100%;min-height:120px;padding:12px 14px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:14px;font-family:inherit;line-height:1.5;resize:vertical;outline:none;background:#fafafa}.custom-memo-input:focus{border-color:#4f46e5;background:#fff}.custom-checklist{list-style:none;margin-bottom:12px}.custom-checklist li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f3f4f6}.custom-checklist input[type=checkbox]{width:18px;height:18px;accent-color:#4f46e5;flex-shrink:0}.custom-checklist li span{flex:1;min-width:0;font-size:14px;word-break:break-word}.custom-checklist li.done span{color:#aaa;text-decoration:line-through}.custom-checklist-add{display:flex;gap:8px}.custom-checklist-add input{flex:1;min-width:0;padding:10px 12px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:14px;outline:none}.custom-checklist-add input:focus{border-color:#4f46e5}.custom-checklist-add button{width:40px;border:none;border-radius:10px;background:#4f46e5;color:#fff;font-size:20px;cursor:pointer}.tab-settings-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:14px}.tab-settings-header h3{margin-bottom:0}.tab-settings-hint{font-size:12px;color:#aaa;line-height:1.4;text-align:right;flex-shrink:0}.tab-settings-list{margin-bottom:14px;max-height:340px;overflow-y:auto}.tab-settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #f3f4f6;touch-action:pan-y}.tab-settings-list.reordering{-webkit-user-select:none;user-select:none;cursor:grabbing}.tab-settings-row.dragging{background:#f5f5ff;border-radius:10px;padding-left:10px;padding-right:10px;color:#4f46e5;cursor:grabbing}.tab-settings-row.hidden .tab-settings-name{color:#bbb;text-decoration:line-through}.tab-settings-name{flex:1;min-width:0;display:flex;align-items:center;position:relative;min-height:34px;padding:4px 8px;border-radius:8px;font-size:14px;font-weight:700;line-height:1.4;color:#333;cursor:text}.tab-settings-name-label{flex:1;min-width:0;display:block}.tab-settings-name.is-editing .tab-settings-name-label{visibility:hidden}.tab-settings-name-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:4px 8px;border:none;border-radius:8px;background:rgba(79,70,229,.06);font:inherit;line-height:inherit;color:inherit;caret-color:#4f46e5;box-shadow:inset 0 0 0 1px #4f46e5;opacity:0;pointer-events:none}.tab-settings-name.is-editing .tab-settings-name-input{opacity:1;pointer-events:auto}.tab-settings-name-input:focus{outline:none}.tab-settings-actions{display:flex;gap:6px;flex-shrink:0}.new-tab-row{display:flex;align-items:stretch;gap:8px;margin-bottom:14px}.new-tab-row input{flex:1;min-width:0;height:48px;margin-bottom:0;padding:0 14px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:15px;outline:none}.new-tab-row button{flex:0 0 auto;height:48px;padding:0 16px;border:none;border-radius:10px;font-weight:700;cursor:pointer}.component-template-list{display:grid;gap:10px;margin-bottom:14px}.component-template-btn{width:100%;padding:14px;border:1px solid #e8eaed;border-radius:10px;background:#fff;color:#333;font-size:15px;font-weight:700;text-align:left;cursor:pointer}.component-template-btn:hover{border-color:#4f46e5;background:#f5f5ff;color:#4f46e5}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:200;align-items:flex-end;justify-content:center}.modal-overlay.open{display:flex;animation:fadeOverlay .2s ease}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:20px 20px 0 0;padding:24px;width:100%;max-width:640px;animation:slideUp .25s ease}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.modal h3{font-size:16px;font-weight:700;margin-bottom:14px}.modal input,.modal textarea{width:100%;padding:12px 14px;border:1.5px solid #e0e0e0;border-radius:10px;font-size:15px;font-family:inherit;outline:none;margin-bottom:14px;resize:vertical}.modal input:focus,.modal textarea:focus{border-color:#4f46e5}.modal-actions{display:flex;gap:10px}.modal-actions button{flex:1;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer}.btn-cancel{background:#f0f2f5;color:#555}.btn-confirm{background:#4f46e5;color:#fff}.btn-confirm.green{background:#4f46e5}.btn-confirm:hover{filter:brightness(.93)}@media (max-width: 640px){input,textarea,select,.task-edit-input,.motto-input,.custom-memo-input{font-size:16px}.header-top{grid-template-columns:1fr auto;gap:10px}.motto-wrap{grid-column:1 / -1;grid-row:2;width:100%;max-width:100%}.tab-settings-header{align-items:flex-start;flex-direction:column;gap:6px}.tab-settings-hint{font-size:11px;text-align:left}.priority-main-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;grid-template-areas:"rank text controls" ". add controls";align-items:start;column-gap:10px;row-gap:8px}.priority-rank{grid-area:rank;width:32px;height:32px;font-size:14px}.priority-main-row>.task-text{grid-area:text;min-width:0;padding-top:3px;line-height:1.45;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.priority-detail-add-btn{grid-area:add;width:100%;justify-self:stretch;margin-left:0;padding:6px 9px;font-size:12px;text-align:center;opacity:.75}.priority-controls{grid-area:controls;gap:6px}.priority-move-btn{width:22px;height:22px;border-radius:7px;font-size:12px}.priority-detail-wrap{margin:8px 26px 0 46px;padding-left:14px}.priority-detail-item,.priority-detail-edit-row{gap:7px}.priority-detail-number{width:18px;height:18px;font-size:10px}.priority-detail-text{font-size:13px;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}.priority-detail-delete{font-size:15px;padding:2px}.exercise-detail-wrap{margin:8px 0 0 15px;padding-left:24px}.exercise-main-row{display:grid;grid-template-columns:38px minmax(0,1fr) 24px;grid-template-areas:"rank name remove" ". add remove";align-items:center;column-gap:10px;row-gap:8px}.exercise-rank{grid-area:rank;width:32px;height:32px;font-size:14px}.exercise-name{grid-area:name;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.exercise-main-row>.exercise-set-add-btn{grid-area:add;width:100%;margin-left:0;justify-self:stretch;text-align:center}.exercise-main-row>.delete-btn{grid-area:remove;justify-self:end;align-self:center}.exercise-set-item{display:grid;grid-template-columns:20px minmax(0,1fr) 20px;align-items:center;gap:8px}.exercise-set-edit-row{display:grid;grid-template-columns:minmax(60px,1fr) minmax(60px,1fr) minmax(60px,1fr) 56px 20px;align-items:center;gap:6px}.exercise-distance-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 126px 56px 20px;align-items:start}.exercise-custom-three-row{grid-template-columns:minmax(62px,1fr) minmax(62px,1fr) minmax(62px,1fr) 56px 20px;align-items:center}.exercise-set-input{width:100%;padding:7px 9px}.exercise-set-save-btn{min-width:54px;padding:8px 9px}.exercise-time-field{width:118px;flex-basis:118px}.exercise-set-item>.exercise-set-delete,.exercise-set-edit-row>.exercise-set-delete{justify-self:end;font-size:18px;padding:4px 0}.exercise-custom-mode-picker{flex-wrap:wrap}.exercise-custom-mode-btn{flex:1;text-align:center}}
