.ab-header{padding:1.6rem 0 1.4rem}.ab-header p{font-size:.98rem}.ab-header h1{font-size:clamp(1.9rem,6vw,2.8rem)}.ab{background:var(--cream);padding:1rem .75rem 3rem}.ab-noscript{background:#fff;border-radius:12px;max-width:560px;margin:1rem auto;padding:1rem}.ab-card{background:var(--white);border:1px solid var(--border);border-top:4px solid var(--gold);border-radius:12px;max-width:560px;margin:0 auto;padding:1.1rem 1rem 1.25rem}.ab fieldset{border:0;min-width:0;margin:0;padding:0}.ab fieldset.ab-block{border-bottom:1px solid var(--border);padding:1rem 0}.ab fieldset.ab-block:first-child{padding-top:.2rem}.ab fieldset.ab-block:last-of-type{border-bottom:0}.ab-legend{font-family:var(--font-heading);color:var(--navy);margin-bottom:.6rem;padding:0;font-size:1.15rem;font-weight:600}.ab-label{color:var(--text);margin:.6rem 0 .3rem;font-size:.85rem;font-weight:700;display:block}.ab-opt{color:var(--text-muted);font-weight:400}.ab-input{width:100%;min-height:48px;font-family:var(--font-body);color:var(--text);background:var(--white);appearance:none;border:1.5px solid #d9d2c7;border-radius:10px;padding:.65rem .85rem;font-size:16px}.ab-input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c5a05940}.ab-input[aria-invalid=true]{border-color:#b42318}.ab-input[type=date],.ab-input[type=time]{min-height:48px}.ab-types{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.ab-type input,.ab-grade input,.ab-chip-radio input{opacity:0;pointer-events:none;position:absolute}.ab-type-box{background:var(--white);text-align:center;min-height:88px;color:var(--navy);cursor:pointer;border:1.5px solid #d9d2c7;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:.6rem .25rem;font-size:.92rem;font-weight:800;line-height:1.2;transition:background .12s,border-color .12s,color .12s;display:flex}.ab-type-box svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.ab-type input:checked+.ab-type-box{background:var(--navy);border-color:var(--navy);color:#fff}.ab-type input:checked+.ab-type-box svg{stroke:var(--gold-light)}.ab-type input:focus-visible+.ab-type-box,.ab-grade input:focus-visible+span,.ab-chip-radio input:focus-visible+span{outline-offset:2px;outline:3px solid #c5a05999}.ab-tip{color:var(--text-light);margin:.6rem 0 0;font-size:.9rem}.ab-tip:before{content:"◆ ";color:var(--gold);vertical-align:1px;font-size:.7rem}.ab-student+.ab-student{border-top:1px dashed var(--border);margin-top:.8rem;padding-top:.8rem}.ab-student-head{justify-content:space-between;align-items:baseline;display:flex}.ab-student-head .ab-label{margin-top:0}.ab-remove{color:var(--text-light);font:inherit;cursor:pointer;background:0 0;border:0;padding:.4rem 0 .4rem .75rem;font-size:.85rem;text-decoration:underline}.ab-student:only-child .ab-remove{display:none}.ab-grades{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.ab-grade span,.ab-chip,.ab-chip-radio span{background:var(--white);min-height:44px;color:var(--navy);cursor:pointer;user-select:none;border:1.5px solid #d9d2c7;border-radius:10px;justify-content:center;align-items:center;font-size:.95rem;font-weight:800;transition:background .12s,border-color .12s,color .12s;display:flex}.ab-grade input:checked+span,.ab-chip-radio input:checked+span,.ab-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}.ab-add,.ab-link{font:inherit;color:var(--navy-light);cursor:pointer;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;background:0 0;border:0;margin-top:.75rem;padding:.5rem 0;font-size:.95rem;font-weight:800}.ab-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.ab-chip,.ab-chip-radio span{font-family:var(--font-body);padding:0 .85rem}.ab-chip-radio{position:relative}.ab-chip-radio small{opacity:.8;margin-left:.3rem;font-weight:600}.ab-time{max-width:200px}#ab-range{margin-top:.25rem}.ab-row{grid-template-columns:1fr;gap:0 .75rem;display:grid}.ab-remember{color:var(--text);cursor:pointer;align-items:center;gap:.6rem;margin-top:.85rem;font-size:.92rem;display:flex}.ab-remember input{width:22px;height:22px;accent-color:var(--navy);flex:none}.ab-forget{margin-top:.25rem;font-size:.85rem;font-weight:600}.ab-err{color:#b42318;margin:.3rem 0 0;font-size:.86rem;font-weight:700}.ab-err:empty{display:none}.ab-hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.ab-fail{color:#7a271a;background:#fef3f2;border:1px solid #fecdca;border-radius:10px;margin-top:1rem;padding:.85rem 1rem;font-size:.95rem}.ab-fail a{color:#7a271a;font-weight:800;text-decoration:underline}.ab-submit{background:var(--navy);color:#fff;width:100%;min-height:54px;font-family:var(--font-body);cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;margin-top:1.1rem;font-size:1.05rem;font-weight:800;display:flex}.ab-submit:hover{background:var(--navy-light)}.ab-submit[disabled]{opacity:.7;cursor:progress}.ab-fine{text-align:center;color:var(--text-light);margin:.7rem 0 0;font-size:.85rem}.ab-fine a{color:var(--navy-light);font-weight:700}.ab-done{text-align:center;outline:none;padding:2rem 1.25rem 1.5rem}.ab-check{background:var(--navy);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto .75rem;display:flex}.ab-check svg{fill:none;width:34px;height:34px;stroke:var(--gold-light);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.ab-done h2{margin:0 0 .4rem;font-size:1.7rem}.ab-done-lede{margin:0 0 .5rem}.ab-done-subject{background:var(--cream);border-left:4px solid var(--gold);text-align:left;color:var(--navy);border-radius:8px;padding:.8rem 1rem;font-size:1rem;font-weight:700}.ab-done-note{font-size:.92rem}@media (width>=560px){.ab{padding:2rem 1rem 4rem}.ab-card{padding:1.5rem 1.75rem 1.75rem}.ab-grades{grid-template-columns:repeat(13,1fr)}.ab-row{grid-template-columns:1fr 1fr}.ab-type-box{min-height:96px;font-size:1rem}}
