:root{font-family:system-ui,sans-serif;color:#15323a;background:#f4f8f8}body{margin:0;min-height:100vh}main{max-width:960px;margin:0 auto;padding:1.5rem clamp(20px,5vw,40px)}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{margin-top:0;font-size:1.05rem;color:#42606a}nav{display:flex;gap:1rem;align-items:center;padding:.8rem clamp(20px,5vw,40px);border-bottom:1px solid #e0ecec;background:#fff}.brand{color:#157a78;font-size:1.15rem}.brand-lg{color:#157a78;text-align:center}.tagline{text-align:center;color:#42606a}.nav-toggle{display:flex;gap:0;border:1px solid #d6e8e6;border-radius:10px;overflow:hidden}.nav-toggle button{border:none;background:#fff;padding:.45rem .9rem;cursor:pointer}nav .nav-toggle button:disabled{background:#157a78;color:#fff;opacity:1}.nav-spacer{flex:1}button{cursor:pointer;font:inherit}button.primary{background:#157a78;color:#fff;border:none;border-radius:10px;padding:.6rem 1.2rem;font-weight:600;min-height:42px}button.primary:hover{background:#0f615f}button.primary:disabled{background:#9bb0b5;cursor:default}button.link{background:none;border:none;color:#157a78;padding:0;font-weight:600}button:not(.primary):not(.link){background:#fff;border:1px solid #d6e8e6;border-radius:10px;padding:.5rem 1rem}.card{background:#fff;border:1px solid #e0ecec;border-radius:16px;padding:1.25rem;margin:.8rem 0;box-shadow:0 12px 30px -24px #15323a4d}.centered-card{text-align:center;max-width:30rem;margin:3rem auto}.placeholder{border:1px dashed #9bb0b5;border-radius:12px;padding:1.5rem;color:#42606a;margin-top:1rem}.muted{color:#6b8189}.error{color:#b3261e}.auth{max-width:26rem}.auth label{display:block;margin:.7rem 0;font-weight:600;font-size:.9rem}.auth input,.auth select,nav select{display:block;width:100%;box-sizing:border-box;margin-top:.25rem;padding:.55rem .7rem;border:1px solid #d6e8e6;border-radius:10px;font:inherit}nav select{display:inline-block;width:auto}.auth .checkbox,.card .checkbox{display:flex;gap:.5rem;align-items:flex-start;font-weight:500}.auth .checkbox input,.card .checkbox input{width:auto;margin-top:.2rem}.tabs{display:flex;gap:0;margin-bottom:.8rem;border-bottom:1px solid #e0ecec}.tabs button{flex:1;border:none;background:none;padding:.6rem;color:#6b8189}.tabs button.active{color:#157a78;font-weight:700;border-bottom:2px solid #157a78}.row-between{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.topic-list{display:grid;gap:.6rem}.topic-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.topic-actions{display:flex;gap:.5rem;margin-top:.7rem}.mastery{display:inline-flex;align-items:center;gap:.5rem}.mastery-track{width:110px;height:8px;border-radius:999px;background:#e9f4f3;overflow:hidden;display:inline-block}.mastery-fill{display:block;height:100%;background:#157a78;border-radius:999px}.mastery-label{font-size:.8rem;color:#42606a}.stem{font-size:1.15rem;font-weight:600}.option-row{display:flex;gap:.6rem;align-items:center;padding:.55rem .7rem;border:1px solid #e0ecec;border-radius:10px;margin:.4rem 0}.numeric{padding:.55rem .7rem;border:1px solid #d6e8e6;border-radius:10px;font:inherit;margin-right:.6rem}.feedback{margin-top:.9rem;padding:.8rem;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:1rem}.feedback.good{background:#eaf5ee;color:#2e7d54}.feedback.try{background:#fdf1ef;color:#8a4a42}progress{width:100%;accent-color:#157a78}.tutorial-body h3{color:#15323a;margin:1.1rem 0 .3rem}.tutorial-body p,.tutorial-body li{line-height:1.55;color:#2f4a52}button.danger{background:#fff;border:1px solid #d78078;color:#b3261e;border-radius:10px;padding:.5rem 1rem;margin-left:.6rem}button.danger:hover{background:#fdf1ef}button.danger:disabled{color:#c9a5a2;border-color:#ecd6d4;cursor:default}.privacy-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:.8rem 0}.consent-history{padding-left:1.1rem;color:#42606a;font-size:.9rem}.privacy details{margin:.6rem 0}.privacy summary{cursor:pointer;color:#6b8189;font-size:.9rem}.privacy details input{padding:.5rem .7rem;border:1px solid #d6e8e6;border-radius:10px;font:inherit;margin:.4rem 0}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}.big-stat{font-size:2.2rem;font-weight:700;margin:.2rem 0}.big-stat .unit{font-size:1rem;font-weight:500;color:#6b8189}.big-stat.band{font-size:1.5rem;color:#157a78}.trend{font-size:1rem;line-height:1.5}.next-step{border-color:#157a78}.assessment-list{padding-left:1.1rem;color:#42606a;font-size:.9rem}
