:root{--ink:#1a1a1a;--ink-soft:#4a4a4a;--paper:#faf8f3;--paper-raised:#fff;--indigo:#1f3a68;--indigo-strong:#16294a;--error:#a3252b;--border:#d6d0c4;--radius:6px;--gap:1rem}*,:before,:after{box-sizing:border-box}html{font-size:17px}body{background:var(--paper);color:var(--ink);overflow-wrap:break-word;margin:0;font-family:Hiragino Sans,Noto Sans JP,Yu Gothic,sans-serif;line-height:1.8}main{max-width:34rem;margin:0 auto;padding:1.5rem 1.25rem 4rem}h1{letter-spacing:.04em;border-bottom:2px solid var(--indigo);margin:0 0 1.5rem;padding-bottom:.75rem;font-size:1.5rem;font-weight:600}h2{margin:2rem 0 .75rem;font-size:1.2rem;font-weight:600}h3{margin:1.5rem 0 .5rem;font-size:1.05rem;font-weight:600}a{color:var(--indigo)}:focus-visible{outline:3px solid var(--indigo);outline-offset:2px}.app-header{justify-content:space-between;align-items:center;max-width:34rem;margin:0 auto;padding:1rem 1.25rem 0;display:flex}.app-logo{color:var(--ink);align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:flex}.app-footer{max-width:34rem;color:var(--ink-soft);margin:0 auto;padding:1rem 1.25rem 2rem;font-size:.9rem}.contest-list{margin:0;padding:0;list-style:none}.contest-list li{border-bottom:1px solid var(--border);padding:1rem 0}.modal-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-panel{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);width:min(30rem,100%);max-height:85vh;padding:1.5rem 1.25rem;overflow-y:auto}.modal-panel h2{margin-top:0}.dialog-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.field{margin-bottom:1.5rem}.field label{margin-bottom:.4rem;font-weight:600;display:block}.field .required{color:var(--paper-raised);background:var(--error);border-radius:var(--radius);margin-left:.5rem;padding:.1rem .4rem;font-size:.8rem;font-weight:400}.field input,.field select,.field textarea{width:100%;min-height:2.75rem;font:inherit;color:var(--ink);background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--error)}.field-row{flex-wrap:wrap;gap:0 1rem;display:flex}.field-row>.field{flex:10rem;min-width:0}.error-text{color:var(--error);margin:.4rem 0 0;font-size:.95rem}.hint{color:var(--ink-soft);margin:.3rem 0 0;font-size:.95rem}.note{color:var(--ink-soft);font-size:.95rem}.warning{color:var(--indigo-strong);border-left:4px solid var(--indigo);border-radius:var(--radius);background:#f0ece2;padding:.9rem 1rem;font-weight:600}.sheet-page [role=status]{color:var(--indigo-strong);margin:.5rem 0 0;font-weight:600}.sheet-page button,.sheet-page a.primary,.teacher-page button,.teacher-page a.primary{min-height:2.75rem;font:inherit;color:var(--ink);background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-right:.75rem;padding:.7rem 1.5rem;font-weight:600;text-decoration:none;display:inline-block}.sheet-page button[type=submit],.sheet-page button.primary,.sheet-page a.primary,.teacher-page button[type=submit],.teacher-page button.primary,.teacher-page a.primary{color:var(--paper-raised);background:var(--indigo);border-color:var(--indigo)}.sheet-page button:disabled,.teacher-page button:disabled{opacity:.5;cursor:not-allowed}
