:root{--cream:#f6f2ea;--beige:#d6cfc3;--navy:#2b2521;--blue:#6b5e55;--rose:#2b2521;--rose-dark:#7a4e40;--blush:#e9d3ca;--sage:#7e8b63;--sage-soft:#e7ebdf;--sage-dark:#3f4a2e;--brass:#a8865a;--driftwood:#b49c7e;--radius:14px;--font:"Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;--serif:"Iowan Old Style","Palatino Linotype",Georgia,serif}*{box-sizing:border-box}html,body{background:var(--cream);color:var(--navy);font:16px/1.55 var(--font);-webkit-text-size-adjust:100%;margin:0}h1,h2,h3{font-family:var(--serif);margin:0 0 .4em;font-weight:500;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}p{margin:0 0 .8em}a{color:var(--navy)}.app{max-width:760px;margin:0 auto;padding:16px 16px 96px}.top{justify-content:space-between;align-items:center;gap:12px;padding:8px 0 16px;display:flex}.brand{font-family:var(--serif);font-size:20px}.brand small{font-family:var(--font);color:var(--blue);letter-spacing:.08em;font-size:12px;display:block}.capital{border:1px solid var(--brass);white-space:nowrap;background:#fff;border-radius:999px;padding:6px 14px;font-size:14px}.capital b{color:var(--sage-dark)}.panel{border:1px solid var(--beige);border-radius:var(--radius);background:#fff;margin:0 0 14px;padding:18px}.panel.soft{background:#efe9df;border-color:#0000}.eyebrow{letter-spacing:.1em;color:var(--blue);text-transform:uppercase;margin:0 0 4px;font-size:12px}.muted{color:#6b5e55;font-size:14px}.field-label{color:#6b5e55;font-size:13px}.grid2{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stack{gap:12px;display:grid}input,select,textarea{font:inherit;color:var(--navy);background:var(--cream);border:1px solid var(--beige);border-radius:10px;width:100%;padding:11px 12px}input[type=checkbox]{width:auto;accent-color:var(--navy)}textarea{min-height:90px}.btn,.btn2,.text-btn{font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:11px 16px;text-decoration:none;display:inline-flex}.btn{background:var(--navy);color:var(--cream)}.btn2{color:var(--navy);border:1px solid var(--driftwood);background:0 0}.text-btn{color:var(--navy);background:0 0;min-height:0;padding:6px 0;text-decoration:underline}.small{font-size:14px}button:disabled{opacity:.55;cursor:default}.chip{background:var(--cream);border:1px solid var(--beige);font:inherit;color:var(--navy);cursor:pointer;border-radius:999px;min-height:40px;padding:7px 14px;font-size:14px}.chip.on{background:var(--navy);color:var(--cream);border-color:var(--navy)}.place{border-radius:var(--radius);background:var(--cream);border:1px solid var(--beige);padding:16px}.hero-art{margin:-4px -4px 14px}.mentor{align-items:center;gap:8px;min-width:140px;font-size:14px;display:flex}.phase{color:var(--navy);background:#e9e2d7;border-radius:999px;margin:0 0 10px;padding:4px 12px;font-size:13px;display:inline-block}.prompt{margin:0 0 12px;font-size:18px}.choice{text-align:left;background:var(--cream);border:1px solid var(--beige);width:100%;font:inherit;color:var(--navy);cursor:pointer;border-radius:12px;margin:0 0 8px;padding:12px;display:block}.choice.on{border-color:var(--rose);background:var(--blush)}.good{background:var(--sage-soft);color:var(--sage-dark);border-radius:12px;margin:10px 0;padding:12px}.notyet{background:var(--blush);color:var(--navy);border-radius:12px;margin:10px 0;padding:12px}.note{background:var(--cream);border-left:3px solid var(--blue);border-radius:0;margin:10px 0;padding:10px 12px}.alert{background:var(--blush);color:var(--rose-dark);border-radius:12px;margin:0 0 12px;padding:10px 12px}.alert.sticky{z-index:5;position:sticky;top:8px;box-shadow:0 2px 8px #1f2a441f}.msg{border-radius:12px;max-width:92%;margin:0 0 8px;padding:10px 12px}.msg.guide{background:#efe9df}.msg.student{background:var(--blush);margin-left:auto}.list{margin:0;padding:0;list-style:none}.list li{border-top:1px solid var(--beige);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.tabs{border-top:1px solid var(--beige);padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#fff;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{font:inherit;color:#6b5e55;cursor:pointer;background:0 0;border:0;min-height:44px;padding:8px 10px;font-size:13px}.tabs button.on{color:var(--rose-dark);font-weight:600}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}}
