:root{--cream:#fbf7f0;--cream-2:#f3ece0;--terracotta:#b4693e;--terracotta-dark:#96522f;--sage:#7a8b6f;--sage-dark:#5f6e55;--ink:#2b2620;--ink-soft:#6b6255;--line:#e4d9c6;--gold:#8a6e4b;--green:#4c7a4c;--amber:#b4693e;--red:#a8442e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--ink);font-family:Georgia,Iowan Old Style,serif}a{color:inherit}.app{min-height:100vh;display:flex}.sidebar{background:var(--cream-2);border-right:1px solid var(--line);width:300px;min-width:300px;max-height:100vh;padding:24px 18px;position:sticky;top:0;overflow-y:auto}.brand{color:var(--terracotta-dark);letter-spacing:.3px;font-size:20px;font-weight:700}.brand small{color:var(--ink-soft);letter-spacing:1px;text-transform:uppercase;margin-top:2px;font-family:-apple-system,sans-serif;font-size:11px;font-weight:400;display:block}.progress-wrap{margin:18px 0 22px;font-family:-apple-system,sans-serif}.progress-label{color:var(--ink-soft);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.progress-bar-bg{background:var(--line);border-radius:8px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--sage);border-radius:8px;height:100%;transition:width .3s}.phase-block{margin-bottom:14px}.phase-header{letter-spacing:1.2px;text-transform:uppercase;align-items:center;gap:6px;padding:8px 6px 4px;font-family:-apple-system,sans-serif;font-size:11px;font-weight:700;display:flex}.phase-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.week-header{color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;padding:8px 6px 4px 14px;font-family:-apple-system,sans-serif;font-size:12.5px;font-weight:600;display:flex}.week-header:hover{color:var(--terracotta-dark)}.day-list{padding-left:14px}.day-item{cursor:pointer;color:var(--ink-soft);text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:7px;width:100%;margin:1px 0;padding:6px 8px;font-family:-apple-system,sans-serif;font-size:12.5px;line-height:1.3;display:flex}.day-item:hover{background:#efe4d2}.day-item.active{background:var(--terracotta);color:#fff}.day-item.active .check{border-color:#fff}.check{border:1.5px solid var(--line);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:14px;min-width:14px;height:14px;font-size:10px;display:flex}.check.done{background:var(--sage);border-color:var(--sage);color:#fff}.day-item.active .check.done{color:var(--terracotta);background:#fff;border-color:#fff}.main{flex:1;max-width:820px;padding:36px 48px}.top-meta{color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-family:-apple-system,sans-serif;font-size:12px}h1{color:var(--ink);margin:0 0 18px;font-size:30px;line-height:1.25}.section-label{letter-spacing:.8px;text-transform:uppercase;align-items:center;gap:8px;margin:26px 0 8px;font-family:-apple-system,sans-serif;font-size:12px;font-weight:700;display:flex}.section-label.learn{color:var(--sage-dark)}.section-label.example{color:var(--gold)}.section-label.task{color:var(--terracotta-dark)}.section-label.resources{color:var(--gold)}p.body-text{color:var(--ink);margin:0 0 4px;font-size:16px;line-height:1.65}.resource-list{margin:0;padding:0;list-style:none}.resource-list li{margin-bottom:8px;font-family:-apple-system,sans-serif;font-size:14px}.resource-list a{color:var(--terracotta-dark);font-weight:600;text-decoration:none}.resource-list a:hover{text-decoration:underline}.tag{border-radius:10px;margin-left:6px;padding:1px 7px;font-family:-apple-system,sans-serif;font-size:10.5px;font-weight:700}.tag.F{color:var(--green);background:#e4efe0}.tag.FR{color:var(--amber);background:#f7e9d8}.tag.P{color:var(--red);background:#f4deda}.video-link{color:var(--ink-soft);align-items:center;gap:6px;margin-top:4px;font-family:-apple-system,sans-serif;font-size:13.5px;text-decoration:none;display:inline-flex}.video-link:hover{color:var(--terracotta-dark)}.assignment-box{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:8px;padding:16px}textarea{border:1px solid var(--line);width:100%;min-height:100px;color:var(--ink);resize:vertical;background:var(--cream);border-radius:8px;padding:10px 12px;font-family:-apple-system,sans-serif;font-size:14px}.save-hint{color:var(--ink-soft);margin-top:6px;font-family:-apple-system,sans-serif;font-size:11.5px}.mark-done-row{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:28px;padding-top:20px;font-family:-apple-system,sans-serif;display:flex}.mark-btn{border:1.5px solid var(--sage);background:var(--sage);color:#fff;cursor:pointer;border-radius:8px;padding:10px 18px;font-family:-apple-system,sans-serif;font-size:14px;font-weight:600}.mark-btn.undo{color:var(--sage-dark);background:#fff}.track-tabs{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.track-tab{border:1.5px solid var(--line);cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:20px;padding:8px 14px;font-family:-apple-system,sans-serif;font-size:13px;font-weight:600}.track-tab.active{background:var(--terracotta);border-color:var(--terracotta);color:#fff}.top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.pdf-btn{border:1.5px solid var(--gold);color:var(--gold);cursor:pointer;background:#fff;border-radius:8px;padding:9px 16px;font-family:-apple-system,sans-serif;font-size:13px;font-weight:600}.pdf-btn:hover{background:var(--gold);color:#fff}@media print{.sidebar,.top-bar,.mark-done-row,.assignment-box .save-hint{display:none!important}.app{display:block}.main{max-width:100%;padding:0}.print-day{page-break-after:always;padding:24px}}#printArea{display:none}#printArea.visible{display:block}.app.hidden-for-print{display:none}@media (max-width:800px){.app{flex-direction:column}.sidebar{width:100%;min-width:0;max-height:none;position:relative}.main{padding:24px}}.centered-page{background:var(--cream);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.card{border:1px solid var(--line);background:#fff;border-radius:14px;width:100%;max-width:460px;padding:36px;box-shadow:0 2px 24px #2b26200f}.card h1{margin-bottom:6px;font-size:24px}.card .subtitle{color:var(--ink-soft);margin-bottom:24px;font-family:-apple-system,sans-serif;font-size:13px}.field-label{color:var(--ink-soft);margin-bottom:6px;font-family:-apple-system,sans-serif;font-size:12.5px;font-weight:600;display:block}.text-input{border:1px solid var(--line);background:var(--cream);width:100%;color:var(--ink);border-radius:8px;margin-bottom:16px;padding:10px 12px;font-family:-apple-system,sans-serif;font-size:14px}.primary-btn{border:1.5px solid var(--terracotta);background:var(--terracotta);color:#fff;cursor:pointer;border-radius:8px;padding:11px 20px;font-family:-apple-system,sans-serif;font-size:14px;font-weight:600}.primary-btn:hover{background:var(--terracotta-dark);border-color:var(--terracotta-dark)}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.error-text{color:var(--red);margin-bottom:14px;font-family:-apple-system,sans-serif;font-size:13px}.admin-shell{max-width:900px;margin:0 auto;padding:48px 24px}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.admin-table{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;font-family:-apple-system,sans-serif;font-size:13.5px;overflow:hidden}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);text-align:left;padding:12px 14px}.admin-table th{background:var(--cream-2);text-transform:uppercase;letter-spacing:.6px;color:var(--ink-soft);font-size:11px}.admin-table tr:last-child td{border-bottom:none}.status-pill{border-radius:10px;padding:2px 9px;font-family:-apple-system,sans-serif;font-size:11px;font-weight:700}.status-pill.not_started{color:var(--ink-soft);background:#f3ece0}.status-pill.in_progress{color:var(--green);background:#e4efe0}.copy-btn{border:1.5px solid var(--line);color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:6px;padding:5px 10px;font-family:-apple-system,sans-serif;font-size:12px;font-weight:600}.copy-btn:hover{border-color:var(--terracotta);color:var(--terracotta-dark)}.logout-link{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;font-family:-apple-system,sans-serif;font-size:13px;text-decoration:underline}.not-found-page{background:var(--cream);min-height:100vh;color:var(--ink);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;font-family:-apple-system,sans-serif;display:flex}
