:root{--navy:#0F1F3D;--amber:#E8A020;--bg:#FAFAF8;--txt:#2E2E2E;--mut:#6b7280;--line:#e5e2da;--card:#fff;--ok:#2f7d4f;--bad:#b3261e}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}#app{max-width:720px;margin:0 auto;min-height:100vh;padding:0 16px calc(84px + env(safe-area-inset-bottom))}header.top{display:flex;align-items:center;justify-content:space-between;padding:14px 0 6px}header.top h1{font-size:1.25rem;margin:0;color:var(--navy)}header.top h1 span{color:var(--amber)}h2{font-size:1.15rem;color:var(--navy);margin:18px 0 8px}h3{font-size:1rem;margin:0 0 4px;color:var(--navy)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:10px 0}.card.click{cursor:pointer}.card.click:active{background:#f4f1e8}.muted{color:var(--mut);font-size:.9rem}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}label{display:block;font-weight:600;font-size:.9rem;margin:12px 0 4px;color:var(--navy)}input,select,textarea{width:100%;font:inherit;padding:12px;border:1px solid #d3cfc3;border-radius:10px;background:#fff;color:var(--txt);min-height:46px}textarea{min-height:88px;resize:vertical}button{font:inherit;min-height:46px;padding:0 18px;border-radius:10px;border:1px solid var(--navy);background:#fff;color:var(--navy);font-weight:600;cursor:pointer}button.primary{background:var(--navy);color:#fff}button.amber{background:var(--amber);border-color:var(--amber);color:var(--navy)}button.danger{border-color:var(--bad);color:var(--bad)}button.small{min-height:38px;padding:0 12px;font-size:.9rem}button.link{border:none;background:none;text-decoration:underline;padding:0;min-height:36px}button:disabled{opacity:.5}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--navy);color:var(--navy);border-radius:999px;padding:4px 12px;font-size:.92rem;background:#fff}.weeks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.weeks button{padding:0}.weeks button.on{background:var(--navy);color:#fff}.step{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer}.step:last-child{border-bottom:none}.step input{width:26px;height:26px;min-height:0;flex:none;margin:0;accent-color:var(--navy)}.step.done span{text-decoration:line-through;color:var(--mut)}.bar{height:8px;background:#ece8dc;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--amber)}nav.tabs{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom);z-index:5}nav.tabs div{display:flex;width:100%;max-width:720px}nav.tabs button{flex:1;border:none;border-radius:0;min-height:60px;font-size:.78rem;color:var(--mut);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none}nav.tabs button b{font-size:1.25rem;line-height:1}nav.tabs button.on{color:var(--navy);box-shadow:inset 0 3px 0 var(--amber)}.tag{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:99px;background:#f3ead2;color:#7a5200;font-weight:600}.tag.sci{background:#dfeaf6;color:#1d4f86}.banner{background:#fff6e0;border:1px solid #f1d58d;border-radius:12px;padding:10px 12px;font-size:.9rem;margin:10px 0}.err{color:var(--bad);font-size:.92rem;margin-top:8px}.sugg{border:1px dashed var(--amber);border-radius:12px;padding:10px;margin-top:10px;background:#fffdf5}.sugg button{display:block;width:100%;text-align:left;min-height:0;padding:10px;margin:6px 0;font-weight:500}#toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);background:var(--navy);color:#fff;padding:10px 16px;border-radius:99px;font-size:.9rem;opacity:0;pointer-events:none;transition:opacity .2s;z-index:9;max-width:90vw;text-align:center}#toast.show{opacity:1}.hero{text-align:center;padding:40px 0 10px}.hero h1{font-size:2rem;margin:0;color:var(--navy)}.hero h1 span{color:var(--amber)}@media (min-width:720px){.card{padding:18px}}.shell{display:block}.sidebar{display:none}@media (min-width:900px){.shell{display:flex;min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;width:264px;flex:none;background:#fff;border-right:1px solid var(--line);padding:20px 14px}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:8px}.brand img{height:48px;border-radius:6px}.brand-name{font-weight:700;color:var(--navy);line-height:1.2}.brand-app{font-size:.85rem;color:var(--mut)}.brand-app span{color:var(--amber);font-weight:700}.side-title{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);padding:16px 10px 6px}.side-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:none;background:none;min-height:42px;padding:0 10px;border-radius:10px;font-weight:600;color:var(--txt)}.side-item b{width:22px;text-align:center;color:var(--mut)}.side-item:hover{background:#f4f1e8}.side-item.on{background:var(--navy);color:#fff}.side-item.on b{color:var(--amber)}.side-foot{margin-top:auto;font-size:.78rem;color:var(--mut);padding:10px;line-height:1.5}nav.tabs{display:none}#app{flex:1;max-width:860px;margin:0 auto;padding:8px 36px 40px}header.top h1{visibility:hidden}}@media (max-width:899px){.side-item,.brand{display:none}}.year-side{display:none}.year-mobile select{min-height:38px;padding:4px 10px;width:auto;font-weight:600;color:var(--navy)}.top .who{display:none}@media (min-width:900px){.year-side{display:block;padding:6px 8px 4px}.year-side label{margin:8px 0 4px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:400}.year-side select{min-height:40px;font-weight:600;color:var(--navy)}.year-mobile{display:none}.top .who{display:inline}}header.top{gap:8px}
