:root{--bg:#f4f6fb;--surface:#fff;--surface-soft:#f9fafe;--surface-strong:#eef2ff;--text-primary:#111827;--text-secondary:#4b5563;--text-muted:#6b7280;--border:#e5e7eb;--accent:#4f46e5;--accent-soft:#e0e7ff;--success:#16a34a;--danger:#dc2626;--shadow:0 10px 25px #11182714}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:linear-gradient(180deg, #f8faff 0%, var(--bg) 45%);color:var(--text-primary);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;line-height:1.45}button,input,textarea{font:inherit}.app-shell{gap:1rem;width:min(1140px,94vw);margin:0 auto;padding:1.5rem 0 2.6rem;display:grid}.app-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px}.top-header{justify-content:space-between;align-items:center;padding:.95rem 1.05rem;display:flex}.top-header__brand h1{margin:.15rem 0 0;font-size:clamp(1.1rem,2.2vw,1.45rem);font-weight:700}.user-menu-wrap{position:relative}.user-icon-btn{border:1px solid var(--border);background:var(--surface-soft);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:999px;font-weight:700}.user-dropdown{border:1px solid var(--border);background:var(--surface);width:220px;box-shadow:var(--shadow);z-index:20;border-radius:14px;gap:.35rem;padding:.6rem;display:grid;position:absolute;top:48px;right:0}.user-dropdown__email{color:var(--text-secondary);word-break:break-word;margin:0 0 .35rem;font-size:.78rem}.user-dropdown button{background:var(--surface-soft);color:var(--text-primary);text-align:left;cursor:pointer;border:none;border-radius:8px;padding:.45rem .55rem}.user-dropdown button:hover{background:var(--surface-strong)}.hero-banner{background:linear-gradient(130deg,#fff 0%,#f7f9ff 100%);padding:1.2rem 1.25rem}.hero-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.hero-banner__eyebrow{text-transform:uppercase;letter-spacing:.08rem;color:var(--accent);margin:0 0 .4rem;font-size:.72rem;font-weight:600}.hero-banner h2{letter-spacing:-.005em;margin:0;font-size:clamp(1.05rem,2.1vw,1.35rem);font-weight:600}.hero-banner p{color:var(--text-secondary);max-width:60ch;margin:.45rem 0 0}.hero-meta{border:1px solid var(--border);background:var(--surface-soft);border-radius:12px;gap:.15rem;min-width:140px;padding:.65rem .8rem;display:grid}.hero-meta span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.hero-meta strong{font-size:1.2rem}.hero-meta small{color:var(--text-secondary)}.reset-btn,.week-complete-btn,.auth-submit-btn,.back-btn{cursor:pointer;border:1px solid #0000;border-radius:8px;transition:all .2s}.progress-section{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:.15rem;padding:.9rem .95rem}.progress-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.progress-row h2{margin:0;font-size:1.02rem;font-weight:600}.progress-row span{color:var(--text-secondary);font-size:.9rem;font-weight:500}.progress-track{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;height:10px;margin-top:.8rem;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#4f46e5,#7c3aed);height:100%;transition:width .28s}.progress-caption{color:var(--text-muted);margin:.5rem 0 0;font-size:.84rem}.phase-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.phase-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1.05rem}.phase-card>p:first-child{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.75rem;font-weight:600}.phase-card h3{margin:.35rem 0;font-size:1rem}.phase-card span{color:var(--text-muted);font-size:.82rem}.phase-card p{color:var(--text-secondary);margin:.7rem 0;font-size:.87rem}.phase-card__link{color:var(--accent);margin:0 0 .8rem;font-size:.84rem;font-weight:600;text-decoration:none;display:inline-flex}.phase-card__link:hover{text-decoration:underline}.phase-card button{background:var(--accent-soft);color:var(--text-primary);cursor:pointer;border:1px solid #c7d2fe;border-radius:10px;padding:.48rem .8rem}.phase-card button:hover{background:#c7d2fe}.phase-detail-layout{grid-template-columns:minmax(0,1fr) 300px;gap:.9rem;display:grid}.phase-detail__top{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.phase-detail__header{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:1rem;padding:.95rem}.phase-detail__header p{color:var(--text-secondary);margin:0}.phase-detail__header p:first-child{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.phase-detail__header h3{margin:.25rem 0;font-size:1.1rem}.phase-detail__header span{color:var(--text-muted);font-size:.82rem}.reset-btn{color:#991b1b;background:#fff5f5;border-color:#fecaca;padding:.48rem .82rem;font-size:.83rem}.reset-btn:hover{background:#fee2e2}.weeks-grid{gap:1rem;display:grid}.week-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:1.1rem;scroll-margin-top:5.8rem;transition:border-color .2s,transform .2s}.week-card:hover{border-color:#cbd5e1;transform:translateY(-2px)}.week-card__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.week-card__actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.week-card__header p{color:var(--accent);letter-spacing:.03em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:600}.week-card__intro-link{color:#fff;transform-origin:50%;background:#1f2937;border:1px solid #111827;border-radius:8px;align-items:center;padding:.43rem .74rem;font-size:.8rem;font-weight:600;text-decoration:none;animation:1.8s ease-in-out infinite introLinkZoom;display:inline-flex;box-shadow:0 6px 14px #1118272e}.week-card__intro-link:hover{background:#111827;animation-play-state:paused}@keyframes introLinkZoom{0%{transform:scale(1);box-shadow:0 6px 14px #1118272e}35%{transform:scale(1.08);box-shadow:0 10px 22px #1118273d}to{transform:scale(1);box-shadow:0 6px 14px #1118272e}}.week-card__header h3{margin:.24rem 0 0;font-size:1.02rem;font-weight:600}.week-complete-btn{color:#166534;background:#f0fdf4;border-color:#bbf7d0;padding:.43rem .74rem;font-size:.8rem}.week-complete-btn:hover{background:#dcfce7}.guide-btn{color:#312e81;cursor:pointer;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;padding:.28rem .55rem;font-size:.75rem;font-weight:600}.guide-btn:hover{background:#e0e7ff}.week-card__days{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem;margin-top:.95rem;display:grid}.day-item{background:var(--surface-soft);border:1px solid #e5e7eb;border-radius:10px;padding:.82rem;transition:border-color .2s,background-color .2s;box-shadow:inset 0 1px #ffffff05}.day-item:hover{border-color:#cbd5e1}.day-item.is-complete{background:#f0fdf4;border-color:#86efac}.checkbox-label{color:var(--text-secondary);align-items:center;gap:.42rem;font-size:.78rem;display:flex}.day-item__header h4{color:var(--text-primary);margin:.42rem 0 .62rem;font-size:.9rem;font-weight:500}.day-item textarea{resize:vertical;width:100%;min-height:84px;color:var(--text-primary);background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:.56rem}.day-item textarea::placeholder{color:#9ca3af}.day-item textarea:focus,.auth-form input:focus{border-color:#818cf8;outline:2px solid #4f46e533}.auth-shell{place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-stack{justify-items:center;gap:.7rem;width:min(440px,95vw);display:grid}.auth-intro{text-align:center;width:100%}.auth-intro h1{letter-spacing:-.01em;margin:0;font-size:1.4rem;font-weight:650}.auth-card{background:var(--surface);border:1px solid var(--border);width:100%;box-shadow:var(--shadow);border-radius:14px;padding:1.25rem}.auth-mode-title{color:var(--text-secondary);margin:.25rem 0 0;font-size:.95rem;font-weight:500}.auth-subtitle{color:var(--text-secondary);margin:0;font-size:.92rem}.auth-form{gap:.68rem;display:grid}.auth-form label{color:var(--text-secondary);text-align:left;gap:.3rem;font-size:.8rem;font-weight:500;display:grid}.auth-form input{color:var(--text-primary);background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:.62rem .68rem}.auth-submit-btn{background:var(--accent);color:#fff;border-color:#4338ca;margin-top:.25rem;padding:.58rem .9rem;font-weight:600}.auth-submit-btn:hover{background:#4338ca}.auth-submit-btn:disabled{opacity:.65;cursor:not-allowed}.auth-switch-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;align-self:center;margin-top:.7rem;padding:0;font-size:.82rem;display:inline-flex}.auth-switch-btn:hover{color:#4338ca}.auth-error,.auth-feedback{margin:0;font-size:.82rem}.auth-error{color:var(--danger)}.auth-feedback{color:var(--success)}.back-btn{color:#fff;background:#1f2937;border-color:#111827;padding:.48rem .82rem;font-size:.83rem}.back-btn:hover{background:#111827}.phase-sidebar{height:fit-content;padding:1rem;position:sticky;top:1rem}.phase-sidebar p{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.75rem}.phase-sidebar h4{margin:.35rem 0 .55rem}.phase-sidebar ul{color:var(--text-secondary);gap:.35rem;margin:0;padding-left:1rem;display:grid}.phase-sidebar__tip{color:var(--text-secondary);background:#f8faff;border:1px dashed #c7d2fe;border-radius:10px;margin-top:.85rem;padding:.7rem;font-size:.84rem}.guide-page{gap:.9rem;padding:1rem 1.1rem;display:grid}.guide-page__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.guide-page__top p{color:var(--text-secondary);margin:0;font-size:.84rem}.guide-page h2{margin:0;font-size:1.32rem}.guide-page__summary{color:var(--text-secondary);max-width:82ch;margin:0}.guide-page__image{object-fit:cover;border:1px solid var(--border);border-radius:12px;width:100%;max-height:330px}.guide-page__section{border-top:1px solid var(--border);padding-top:.75rem}.guide-page__section h3{margin:0 0 .42rem;font-size:.98rem}.guide-page__section ul{color:var(--text-secondary);gap:.3rem;margin:0;padding-left:1rem;display:grid}.guide-page__section a{color:#4338ca;text-decoration:none}.guide-page__section a:hover{text-decoration:underline}.guide-page__section pre{border:1px solid var(--border);color:#e2e8f0;background:#0f172a;border-radius:8px;margin:0;padding:.75rem;font-size:.8rem;overflow-x:auto}.guide-panel{gap:.7rem;display:grid}.guide-panel p{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.75rem}.guide-panel h4{margin:0}.guide-panel span{color:var(--text-secondary);font-size:.88rem}.guide-panel section{border-top:1px solid var(--border);padding-top:.6rem}.guide-panel h5{margin:0 0 .35rem;font-size:.85rem}.guide-panel ul{color:var(--text-secondary);gap:.3rem;margin:0;padding-left:1rem;display:grid}.guide-panel a{color:#4338ca;text-decoration:none}.guide-panel a:hover{text-decoration:underline}.guide-image{border:1px solid var(--border);object-fit:cover;border-radius:10px;width:100%;max-height:190px}.guide-panel pre{border:1px solid var(--border);color:#e2e8f0;background:#0f172a;border-radius:8px;margin:0;padding:.7rem;font-size:.76rem;overflow-x:auto}@media (width<=760px){.app-shell{width:95vw;padding-top:1rem}.progress-row{flex-direction:column;align-items:flex-start}.phase-detail-layout{grid-template-columns:1fr}.phase-sidebar{position:static}.phase-detail__top{flex-wrap:wrap;gap:.5rem}.hero-meta{grid-template-columns:1fr 1fr 1fr;align-items:center;width:100%}.guide-page{padding:.85rem}}
