*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep: #fff5f8;--bg-base: #fffaf0;--bg-elevated: #ffffff;--bg-overlay: #f8f4ff;--surface: rgba(255, 255, 255, .85);--surface-hover: #ffffff;--border-subtle: rgba(45, 48, 71, .08);--border-strong: rgba(45, 48, 71, .14);--text-primary: #2d3047;--text-secondary: #5c6180;--text-muted: #9499b0;--text-disabled: #c2c6d4;--accent: #ff5c8a;--accent-hover: #ff4080;--accent-soft: rgba(255, 92, 138, .12);--accent-glow: rgba(255, 92, 138, .28);--gold: #ffb830;--gold-soft: rgba(255, 184, 48, .18);--gold-glow: rgba(255, 184, 48, .35);--sage: #3ecf8e;--sage-soft: rgba(62, 207, 142, .15);--amber: #ff9f43;--amber-soft: rgba(255, 159, 67, .15);--sky: #5ebaff;--sky-soft: rgba(94, 186, 255, .15);--danger: #ff5757;--danger-soft: rgba(255, 87, 87, .12);--font-display: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;--font-body: "M PLUS Rounded 1c", "Hiragino Maru Gothic ProN", sans-serif;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.875rem;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(255, 92, 138, .08);--shadow-md: 0 6px 24px rgba(45, 48, 71, .08);--shadow-lg: 0 12px 40px rgba(255, 92, 138, .12);--shadow-glow: 0 4px 20px var(--accent-glow);--ease-out: cubic-bezier(.34, 1.4, .64, 1);--duration: .2s}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--text-primary);line-height:1.65;font-size:var(--text-base);-webkit-font-smoothing:antialiased;min-height:100dvh}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(160deg,#fff5f8,#fffaf0 40%,#f0f8ff)}.app-bg-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.65}.app-bg-glow--1{width:280px;height:280px;top:-40px;right:-40px;background:#ffc4d6}.app-bg-glow--2{width:220px;height:220px;bottom:15%;left:-50px;background:#b8f0d8}.app-bg-glow--3{width:180px;height:180px;top:40%;right:10%;background:#ffe8a3;opacity:.5}.app{position:relative;z-index:1;max-width:640px;margin:0 auto;padding:0 20px 64px;animation:app-enter .5s var(--ease-out) both}@keyframes app-enter{0%{opacity:0;transform:translateY(16px) scale(.98)}}.app-header{display:flex;align-items:flex-start;gap:16px;padding:36px 0 20px}.app-logo{width:56px;height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ff6b9d,#ffb347);border-radius:18px;box-shadow:var(--shadow-glow),var(--shadow-md);transform:rotate(-4deg);transition:transform var(--duration) var(--ease-out)}.app-logo:hover{transform:rotate(0) scale(1.05)}.logo-icon{font-family:var(--font-display);font-size:1.75rem;font-weight:800;color:#fff;line-height:1}.app-eyebrow{font-size:var(--text-xs);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}.app-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:800;color:var(--text-primary);line-height:1.2}.app-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-top:6px;line-height:1.55;font-weight:500}.app-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;padding:10px 14px;background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.app-user-indicator{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-secondary);font-weight:700}.user-dot{width:8px;height:8px;border-radius:50%;background:var(--sage);box-shadow:0 0 0 3px var(--sage-soft)}.user-switcher{display:flex;gap:4px;padding:4px;background:var(--bg-overlay);border-radius:var(--radius-full);border:2px solid var(--border-subtle)}.user-switch-button{padding:6px 14px;border:none;background:transparent;border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;color:var(--text-muted);cursor:pointer;transition:all var(--duration) var(--ease-out)}.user-switch-button:hover{color:var(--text-secondary)}.user-switch-button.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.tab-nav{display:flex;gap:6px;padding:6px;margin-bottom:20px;background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.tab-button{flex:1;padding:11px 8px;border:none;background:transparent;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-lg);transition:all var(--duration) var(--ease-out);white-space:nowrap}.tab-button:hover{color:var(--accent);background:var(--accent-soft)}.tab-button.active{color:#fff;background:linear-gradient(135deg,var(--accent) 0%,#ff8fab 100%);box-shadow:var(--shadow-glow)}.loading-bar{height:4px;background:var(--accent-soft);border-radius:var(--radius-full);margin-bottom:16px;overflow:hidden;position:relative}.loading-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,var(--accent),var(--sky),var(--accent));border-radius:var(--radius-full);animation:loading-slide 1s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.error-banner{background:var(--danger-soft);color:var(--danger);padding:12px 16px;border-radius:var(--radius-lg);margin-bottom:16px;font-size:var(--text-sm);font-weight:700;border:2px solid rgba(255,87,87,.25)}.storage-warning-banner{background:var(--amber-soft);color:#b86a18;padding:12px 16px;border-radius:var(--radius-lg);margin-bottom:16px;font-size:var(--text-sm);font-weight:700;line-height:1.55;border:2px solid rgba(255,159,67,.45)}.btn-add-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 20px;background:var(--bg-elevated);border:2px dashed var(--accent);border-radius:var(--radius-xl);color:var(--accent);font-family:var(--font-body);font-size:var(--text-sm);font-weight:800;cursor:pointer;margin-bottom:16px;transition:all var(--duration) var(--ease-out)}.btn-add-toggle:hover{background:var(--accent-soft);transform:scale(1.01);box-shadow:var(--shadow-glow)}.add-item-form,.review-panel,.settings-panel{background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-xl);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-md)}.form-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--text-primary);margin-bottom:20px}.form-field{margin-bottom:16px}.form-field label{display:block;font-size:var(--text-sm);font-weight:800;color:var(--text-secondary);margin-bottom:6px}.form-field input[type=text],.form-field input[type=date],.form-field textarea,.form-field select{width:100%;padding:12px 14px;border:2px solid var(--border-subtle);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-base);font-weight:500;color:var(--text-primary);background:var(--bg-overlay);transition:border-color var(--duration),box-shadow var(--duration);outline:none}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--text-disabled)}.form-field input:hover,.form-field textarea:hover,.form-field select:hover{border-color:var(--sky)}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);background:#fff}.form-field textarea{resize:vertical;min-height:72px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}@media (max-width: 520px){.form-row{grid-template-columns:1fr}}.target-days-options{display:flex;flex-direction:column;gap:8px}.target-option{display:flex;align-items:center;gap:10px;padding:12px 14px;border:2px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration) var(--ease-out);font-size:var(--text-sm);background:var(--bg-overlay)}.target-option:hover{border-color:var(--sky);background:var(--sky-soft)}.target-option.selected{border-color:var(--accent);background:var(--accent-soft)}.target-option input[type=radio]{display:none}.option-label{font-weight:800;color:var(--text-primary);white-space:nowrap}.option-desc{color:var(--text-muted);font-size:var(--text-xs);flex:1;font-weight:500}.custom-days-input{width:64px;padding:4px 8px;border:2px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:center;background:#fff;color:var(--text-primary);font-weight:700}.science-note{font-size:var(--text-xs);color:var(--text-muted);margin-top:8px;line-height:1.55;font-weight:500}.plan-limit-notice{text-align:center}.plan-limit-message{color:var(--text-secondary);margin-bottom:12px;font-size:var(--text-sm);font-weight:700}.btn-primary,button[type=submit]{width:100%;padding:14px 20px;border:none;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--accent) 0%,#ff8fab 100%);color:#fff;font-family:var(--font-body);font-size:var(--text-sm);font-weight:800;cursor:pointer;transition:all var(--duration) var(--ease-out);box-shadow:var(--shadow-glow)}.btn-primary:hover:not(:disabled),button[type=submit]:hover:not(:disabled){transform:translateY(-2px) scale(1.01);box-shadow:0 8px 28px var(--accent-glow)}.btn-primary:active:not(:disabled),button[type=submit]:active:not(:disabled){transform:translateY(0) scale(.99)}.btn-primary:disabled,button[type=submit]:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-icon{border:none;background:var(--danger-soft);color:var(--danger);cursor:pointer;padding:8px;border-radius:var(--radius-sm);line-height:0;transition:all var(--duration) var(--ease-out);flex-shrink:0}.btn-icon:hover{background:var(--danger);color:#fff;transform:scale(1.08)}.btn-retry{padding:8px 16px;border:none;border-radius:var(--radius-full);background:var(--amber);color:#fff;font-family:var(--font-body);font-size:var(--text-xs);font-weight:800;cursor:pointer;transition:all var(--duration) var(--ease-out);white-space:nowrap;box-shadow:0 2px 10px #ff9f4359}.btn-retry:hover{transform:scale(1.04)}.btn-upgrade{padding:12px 22px;border:none;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--gold) 0%,#ffd060 100%);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:800;cursor:pointer;transition:all var(--duration) var(--ease-out);box-shadow:0 4px 16px var(--gold-glow)}.btn-upgrade:hover{transform:translateY(-2px) scale(1.02)}.btn-restore{padding:12px 22px;border:2px solid var(--border-strong);border-radius:var(--radius-lg);background:#fff;color:var(--text-secondary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:all var(--duration) var(--ease-out)}.btn-restore:hover{border-color:var(--sky);color:var(--sky);background:var(--sky-soft)}.btn-danger{padding:8px 16px;border:none;border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);font-family:var(--font-body);font-size:var(--text-sm);font-weight:800;cursor:pointer;transition:all var(--duration) var(--ease-out)}.btn-danger:hover{background:var(--danger);color:#fff}.settings-panel button[type=button]:not(.btn-upgrade):not(.btn-restore):not(.user-switch-button){padding:10px 18px;border:2px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-overlay);color:var(--text-secondary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:all var(--duration) var(--ease-out)}.settings-panel button[type=button]:not(.btn-upgrade):not(.btn-restore):not(.user-switch-button):hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.item-list{display:flex;flex-direction:column;gap:14px}.app-main>section{animation:section-enter .35s var(--ease-out) both}@keyframes section-enter{0%{opacity:0;transform:translateY(10px)}}.item-card{background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);transition:all var(--duration) var(--ease-out);position:relative;overflow:hidden}.item-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--sky);border-radius:5px 0 0 5px;transition:background var(--duration)}.item-card:hover{border-color:var(--sky);box-shadow:var(--shadow-md);transform:translateY(-3px)}.item-card.status-achieved{border-color:var(--gold);background:linear-gradient(135deg,#fff,#fffbf0)}.item-card.status-achieved:before{background:linear-gradient(180deg,var(--gold) 0%,#ffd060 100%)}.item-card.status-failed{border-color:var(--amber);background:linear-gradient(135deg,#fff,#fff8f0)}.item-card.status-failed:before{background:var(--amber)}.item-card.progress-stage-2{background:linear-gradient(135deg,#fff,#fff8f0)}.item-card.progress-stage-2:before{background:var(--amber)}.item-card.progress-stage-3{background:linear-gradient(135deg,#fff,#f0fff8)}.item-card.progress-stage-3:before{background:var(--sage)}.item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.item-title-area{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.attempt-badge{display:inline-block;padding:3px 12px;background:var(--sky-soft);color:#2a9fd4;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:800;width:fit-content}.item-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--text-primary);line-height:1.35}.completed-badge{display:inline-block;padding:3px 10px;background:var(--sage-soft);color:#2aab6e;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:800;width:fit-content}.item-reason{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:16px;line-height:1.6;font-weight:500;padding:10px 14px;background:var(--bg-overlay);border-radius:var(--radius-md)}.achievement-badge{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--gold-soft);border:2px solid var(--gold);border-radius:var(--radius-lg);margin-bottom:16px}.badge-icon{font-size:1.5rem;flex-shrink:0}.badge-text{font-size:var(--text-sm);font-weight:800;color:#c8870a}.failed-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--amber-soft);border-radius:var(--radius-lg);margin-bottom:16px;font-size:var(--text-sm);font-weight:700;color:#d47820;border:2px solid rgba(255,159,67,.35)}.progress-section{margin-bottom:16px}.progress-labels{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.progress-days{font-size:var(--text-sm);color:var(--text-secondary);font-weight:800;font-variant-numeric:tabular-nums}.progress-percent{font-size:var(--text-xs);color:var(--accent);font-weight:800;font-variant-numeric:tabular-nums}.progress-meta{margin:0 0 10px;font-size:var(--text-xs);color:var(--text-muted);font-weight:700}.progress-bar-track{height:10px;background:var(--bg-overlay);border-radius:var(--radius-full);overflow:hidden;border:2px solid var(--border-subtle)}.progress-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .6s var(--ease-out)}.progress-bar-fill.ongoing{background:linear-gradient(90deg,var(--sage) 0%,#7ae8b0 100%)}.progress-bar-fill.failed{background:linear-gradient(90deg,var(--amber) 0%,#ffc078 100%)}.item-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;font-size:var(--text-xs);padding-top:12px;border-top:2px dashed var(--border-subtle);font-weight:600}.review-info{display:flex;flex-direction:column;gap:2px}.review-count{color:var(--text-secondary);font-weight:800}.review-count.muted{color:var(--text-muted)}.review-last-date{font-size:.7rem;color:var(--text-muted)}.item-date{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.empty-state{text-align:center;padding:56px 24px;color:var(--text-muted)}.empty-icon{font-family:var(--font-display);font-size:3rem;color:var(--accent);margin-bottom:16px;line-height:1;opacity:.5}.empty-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;color:var(--text-secondary);margin-bottom:6px}.empty-desc{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.empty-edit{text-align:center;padding:32px;color:var(--text-muted);font-size:var(--text-sm);font-weight:700}.review-panel h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:800;margin-bottom:20px}.review-form{background:none;border:none;padding:0;box-shadow:none;margin-bottom:0}.radio-group{display:flex;gap:10px}.radio-label{flex:1;padding:14px;border:2px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;cursor:pointer;font-size:var(--text-sm);font-family:var(--font-body);font-weight:800;color:var(--text-muted);background:var(--bg-overlay);transition:all var(--duration) var(--ease-out)}.radio-label input[type=radio]{display:none}.radio-label.selected{border-color:var(--sage);background:var(--sage-soft);color:#2aab6e}.radio-label:last-child.selected{border-color:var(--amber);background:var(--amber-soft);color:#d47820}.review-history{margin-top:28px;padding-top:24px;border-top:2px dashed var(--border-subtle)}.review-history h3{font-size:var(--text-xs);font-weight:800;color:var(--text-muted);margin-bottom:14px;letter-spacing:.08em}.review-record{padding:14px 16px;border-radius:var(--radius-lg);margin-bottom:10px;border-left:4px solid transparent;background:var(--bg-overlay)}.review-record.kept{background:var(--sage-soft);border-left-color:var(--sage)}.review-record.broke{background:var(--amber-soft);border-left-color:var(--amber)}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:8px}.review-item-name{font-weight:800;font-size:var(--text-sm);color:var(--text-primary)}.review-badge{font-size:var(--text-xs);padding:4px 12px;border-radius:var(--radius-full);font-weight:800;flex-shrink:0}.review-badge.kept{background:var(--sage);color:#fff}.review-badge.broke{background:var(--amber);color:#fff}.review-reflection{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:6px;line-height:1.55;font-weight:500}.review-date{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.item-edit-list{display:flex;flex-direction:column;gap:10px}.item-edit-row,.item-edit-form{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--duration) var(--ease-out);box-shadow:var(--shadow-sm)}.item-edit-row:hover{border-color:var(--sky);transform:translate(4px)}.item-edit-form{flex-direction:column;align-items:stretch}.item-edit-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:800;color:var(--text-primary)}.edit-actions{display:flex;gap:8px;justify-content:flex-end}.item-edit-form .form-field{width:100%}.settings-panel h2,.settings-panel h3,.account-info h3,.plan-info h3{font-family:var(--font-display);font-weight:800;color:var(--text-primary)}.settings-panel h2{font-size:var(--text-lg);margin-bottom:20px}.settings-panel h3,.account-info h3,.plan-info h3{font-size:var(--text-sm);margin-bottom:10px;color:var(--text-secondary)}.account-info,.plan-info{margin-bottom:24px;padding-bottom:24px;border-bottom:2px dashed var(--border-subtle)}.account-info p,.plan-info p{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:8px;font-weight:600}.upgrade-prompt{margin-top:0}.plan-comparison{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}@media (max-width: 480px){.plan-comparison{grid-template-columns:1fr}}.plan-tier{padding:16px;border:2px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-overlay)}.plan-tier h4{font-family:var(--font-display);font-size:var(--text-sm);font-weight:800;margin-bottom:10px;color:var(--text-primary)}.plan-tier ul{list-style:none;font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.plan-tier li{padding:4px 0 4px 16px;position:relative}.plan-tier li:before{content:"♪";position:absolute;left:0;color:var(--accent);font-size:.65rem}.plan-pro{border-color:var(--gold);background:var(--gold-soft)}.plan-pro h4{color:#c8870a}.upgrade-actions{display:flex;gap:10px;flex-wrap:wrap}.data-manager{margin-top:28px;padding-top:24px;border-top:2px dashed var(--border-subtle)}.data-manager-buttons{display:flex;gap:8px;flex-wrap:wrap}.btn-data{flex:1;min-width:100px;padding:10px 14px;border:2px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-muted);font-family:var(--font-body);font-size:var(--text-xs);font-weight:800;cursor:pointer;text-align:center;transition:all var(--duration) var(--ease-out)}.btn-data:hover:not(:disabled):not(.disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.btn-data:disabled,.btn-data.disabled{opacity:.35;cursor:not-allowed}.btn-data-import{display:block}.data-manager-message{margin-top:10px;font-size:var(--text-xs);padding:10px 14px;border-radius:var(--radius-md);font-weight:700}.data-manager-message.success{color:#2aab6e;background:var(--sage-soft);border:2px solid rgba(62,207,142,.3)}.data-manager-message.error{color:var(--danger);background:var(--danger-soft);border:2px solid rgba(255,87,87,.25)}.json-import-preview{margin-top:12px;padding:12px;background:var(--bg-overlay);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.app-version{margin-top:32px;text-align:center;font-size:var(--text-xs);font-weight:700;color:var(--text-muted);letter-spacing:.06em}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--accent-soft);border-radius:var(--radius-full);border:2px solid var(--bg-deep)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
