.overall-progress{background:var(--ld-card-bg);border:2px solid var(--ld-primary);border-radius:20px;padding:28px 32px;margin-bottom:32px;box-shadow:var(--ld-shadow)}.overall-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overall-progress-title{font-size:16px;font-weight:600}.overall-progress-pct{font-size:28px;font-weight:700;color:var(--ld-primary)}.overall-track{width:100%;height:14px;background:var(--ld-border);border-radius:999px;overflow:hidden}.overall-fill{height:100%;border-radius:999px;background:linear-gradient(90deg, var(--ld-primary), var(--ld-accent));transition:width 0.6s ease;width:0%}.overall-subtext{font-size:13px;color:#9a8e8e;margin-top:8px}.week-section{background:var(--ld-card-bg);border:1px solid var(--ld-border);border-radius:20px;margin-bottom:20px;box-shadow:var(--ld-shadow);overflow:hidden}.week-header{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;cursor:pointer;user-select:none;transition:background 0.2s}.week-header:hover{background:var(--ld-surface, #fffaf7)}.week-header:focus-visible{outline:2px solid var(--ld-primary);outline-offset:-2px}.week-header-left{display:flex;align-items:center;gap:14px}.week-number{background:var(--ld-primary);color:var(--ld-on-primary);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.week-number.complete{background:#2ecc71}.week-title{font-size:17px;font-weight:600}.week-theme{font-size:13px;color:#9a8e8e}.week-header-right{display:flex;align-items:center;gap:12px}.week-count{font-size:13px;font-weight:600;color:#9a8e8e}.week-chevron{width:20px;height:20px;transition:transform 0.3s;color:#9a8e8e}.week-section.open .week-chevron{transform:rotate(180deg)}.week-body{max-height:0;overflow:hidden;transition:max-height 0.4s ease}.week-section.open .week-body{max-height:600px}.week-body-inner{padding:0 28px 24px}.week-progress{height:6px;background:var(--ld-border);border-radius:999px;margin-bottom:18px;overflow:hidden}.week-progress-fill{height:100%;border-radius:999px;background:var(--ld-accent);transition:width 0.4s ease;width:0%}.checklist{list-style:none}.checklist li{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--ld-border);transition:opacity 0.2s}.checklist li:last-child{border-bottom:none}.checklist li.checked{opacity:0.55}.checklist li.checked .check-label{text-decoration:line-through}.check-input{appearance:none;-webkit-appearance:none;width:22px;height:22px;border:2px solid var(--ld-border);border-radius:6px;flex-shrink:0;cursor:pointer;position:relative;margin-top:1px;transition:background 0.2s, border-color 0.2s}.check-input:checked{background:var(--ld-primary);border-color:var(--ld-primary)}.check-input:checked::after{content:'';position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid var(--ld-on-primary);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.check-input:focus-visible{outline:2px solid var(--ld-primary);outline-offset:2px}.check-label{font-size:15px;cursor:pointer;padding-top:1px}.celebration-overlay{display:none;position:fixed;inset:0;z-index:9999;pointer-events:none}.celebration-overlay.active{display:block}.confetti-piece{position:fixed;width:10px;height:10px;border-radius:2px;animation:confetti-fall linear forwards}@keyframes confetti-fall{0%{transform:translateY(-10vh) rotate(0deg);opacity:1}100%{transform:translateY(110vh) rotate(720deg);opacity:0}}.celebration-message{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);background:var(--ld-card-bg);border:2px solid var(--ld-primary);border-radius:20px;padding:40px 48px;text-align:center;box-shadow:0 20px 60px rgba(37,28,34,0.2);pointer-events:auto;z-index:10000;animation:pop-in 0.4s ease}@keyframes pop-in{0%{transform:translate(-50%, -50%) scale(0.7);opacity:0}100%{transform:translate(-50%, -50%) scale(1);opacity:1}}.celebration-message h2{font-size:28px;margin-bottom:8px;color:var(--ld-primary)}.celebration-message p{font-size:15px;color:#6b6060;margin-bottom:20px}.btn-dismiss{display:inline-block;padding:12px 28px;background:var(--ld-primary);color:var(--ld-on-primary);font-family:inherit;font-size:15px;font-weight:600;border:none;border-radius:999px;cursor:pointer;pointer-events:auto;transition:background 0.2s}.btn-dismiss:hover{background:var(--ld-primary-hover)}@media (max-width: 680px){.week-header{padding:18px 20px}.week-body-inner{padding:0 20px 20px}.week-title{font-size:15px}.overall-progress{padding:22px 20px}.celebration-message{padding:32px 24px;margin:0 16px}}@media (max-width: 520px){.week-header{padding:14px 14px}.week-body-inner{padding:0 14px 16px}.week-header-left{gap:10px}.week-number{width:30px;height:30px;font-size:12px}.week-title{font-size:14px}.week-theme{font-size:12px}.overall-progress{padding:18px 14px;border-radius:14px}.overall-progress-pct{font-size:22px}.overall-progress-title{font-size:14px}.check-label{font-size:14px}.checklist li{gap:10px;padding:8px 0}.celebration-message{padding:24px 16px}.celebration-message h2{font-size:22px}}@media (prefers-reduced-motion: reduce){.overall-fill,.week-header,.week-chevron,.week-body,.week-progress-fill,.checklist li,.check-input,.confetti-piece,.celebration-message,.btn-dismiss{animation:none !important;transition:none !important}}
