:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19344c;background:#f2f6f9;font-synthesis:none;--navy:#153b5c;--lime:#b5df4c;--muted:#71869a;--line:#dce6ed;--white:#fff}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.loading{padding:3rem;text-align:center;color:var(--navy)}.shell{max-width:1120px;margin:auto;padding:18px 18px 96px}.top{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;border-radius:20px;padding:18px 22px}.brand{font-weight:850;letter-spacing:.08em}.brand small{display:block;color:#c8d8e6;font-weight:500;letter-spacing:.18em;margin-top:4px}.top button{background:#244c6d;color:white;border:1px solid #55728a;border-radius:12px;padding:10px 14px}.welcome{padding:26px 4px 18px}.eyebrow{color:#7690a6;text-transform:uppercase;letter-spacing:.16em;font-weight:750;font-size:12px}.welcome h1{margin:7px 0;font-size:clamp(26px,5vw,38px)}.welcome p,.subtle{color:var(--muted);margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:16px;box-shadow:0 4px 18px #17395508}.card h2,.card h3{margin:0 0 14px}.card h3{font-size:18px}.row{display:flex;gap:12px;align-items:center}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.field{display:flex;flex-direction:column;gap:6px;margin:11px 0}.field label{font-size:13px;font-weight:700;color:#415e76}.field input,.field select,.field textarea{width:100%;padding:12px;border:1px solid #cad8e2;border-radius:11px;background:white;color:#1d374f}.field textarea{min-height:82px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #b5df4c66;border-color:#83a933}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:750;background:var(--lime);color:#203513}.btn.secondary{background:#eaf0f4;color:#294a65}.btn.danger{background:#fff0eb;color:#913b21}.btn.block{width:100%}.notice{background:#f2f8e7;border:1px solid #d8e9b6;padding:12px;border-radius:12px;color:#4d682b}.error{background:#fff0ed;color:#8d3a2b;padding:12px;border-radius:10px}.tabs{display:flex;overflow:auto;gap:8px;margin:16px 0;position:sticky;top:0;background:#f2f6f9;padding:8px 0;z-index:2}.tabs button{white-space:nowrap;border:1px solid var(--line);background:white;color:#526d83;border-radius:999px;padding:10px 15px;font-weight:700}.tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.student{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line)}.student:last-child{border:0}.badge{display:inline-block;background:#ecf3df;color:#597c1f;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:750}.checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check{display:flex;align-items:flex-start;gap:8px;background:#f6f8fa;padding:10px;border-radius:10px;font-size:13px}.check input{width:auto;padding:0;flex:none;margin:2px 0 0;accent-color:#79a930}.stroke-line{display:grid;grid-template-columns:minmax(100px,1.5fr) repeat(3,minmax(58px,.65fr));gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid #edf1f4}.stroke-line input{min-width:0;width:100%;padding:9px 6px;border:1px solid #cad8e2;border-radius:9px;text-align:center}.count-control{display:flex;gap:3px;align-items:center;min-width:0}.count-control input{flex:1}.score-step{flex:none;width:28px;height:34px;padding:0;border:0;border-radius:8px;background:#eaf4d5;color:#45651b;font-weight:850}.stroke-head{font-size:11px;color:var(--muted);text-align:center}.rating{display:flex;gap:5px;flex-wrap:wrap}.rating input{display:none}.rating label{padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:#577087}.rating input:checked+label{background:#eaf4d5;border-color:#95bc4c;color:#405e17}.setbox{background:#f6f8fa;border-radius:13px;padding:12px;margin:10px 0}.session{border-left:4px solid var(--lime);padding:12px 14px;margin:11px 0;background:#f8fafb;border-radius:0 12px 12px 0}.bottomnav{display:none}.modal-back{position:fixed;inset:0;background:#0c223699;display:grid;place-items:center;padding:18px;z-index:5}.modal{background:white;border-radius:18px;padding:22px;width:min(460px,100%);max-height:90vh;overflow:auto}.auth{max-width:460px;margin:7vh auto;padding:0 18px}.auth .card{padding:26px}.empty{text-align:center;color:var(--muted);padding:26px}.small{font-size:12px;color:var(--muted)}.goalgroup{margin:12px 0;grid-column:1/-1}.goalgroup b{display:block;margin-bottom:8px}.result-score{font-weight:800;color:#476b1e}.hidden{display:none!important}@media(max-width:700px){.shell{padding:12px 12px 90px}.top{border-radius:15px;padding:14px 16px}.welcome{padding:20px 4px 14px}.grid{grid-template-columns:1fr;gap:0}.card{padding:16px;border-radius:15px}.tabs{margin:10px -2px}.bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;padding:9px max(10px,env(safe-area-inset-left)) calc(9px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);justify-content:space-around;z-index:3}.bottomnav button{background:none;border:0;color:#60798d;font-weight:700;padding:8px 7px;font-size:12px}.bottomnav button.active{color:#2f5114}.row.mobile-stack{align-items:stretch;flex-direction:column}.stroke-line{grid-template-columns:minmax(88px,1.2fr) repeat(3,minmax(48px,.65fr));gap:5px}.stroke-line input{font-size:14px;padding:10px 3px}.checkgrid{grid-template-columns:1fr}.btn{min-height:44px}.top .small{color:#d4e2ed}}
