:root{--bg:#0f1115;--card:#171a21;--line:#2a2f3a;--ink:#f3f4f6;--sub:#9aa3b2;--gold:#c9a24a;--gold2:#e3c074;--ok:#3fa66a;--warn:#d8a33a}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;line-height:1.6}.wrap{max-width:560px;margin:0 auto;padding:0 16px 64px}header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;border-bottom:1px solid var(--line);background:#0f1115eb;padding:14px 16px;position:sticky;top:0}.hrow{justify-content:space-between;align-items:center;gap:8px;max-width:560px;margin:0 auto;display:flex}.logo{letter-spacing:.12em;font-size:15px;font-weight:700}.logo b{color:var(--gold2)}.langs{gap:4px;display:flex}.langs button{border:1px solid var(--line);color:var(--sub);cursor:pointer;background:0 0;border-radius:20px;padding:5px 10px;font-size:12px}.langs button.on{background:var(--gold);border-color:var(--gold);color:#1a1206;font-weight:700}h1{letter-spacing:.04em;margin:22px 0 4px;font-size:20px}.lead{color:var(--sub);margin:0 0 18px;font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:14px;padding:16px}label{color:var(--sub);letter-spacing:.03em;margin:0 0 6px;font-size:12px;font-weight:600;display:block}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#0c0e12;border-radius:10px;padding:11px 12px;font-family:inherit;font-size:15px}input:focus,select:focus,textarea:focus{border-color:var(--gold);outline:none}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{margin-bottom:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{text-align:center;border:1px solid var(--line);cursor:pointer;min-width:90px;color:var(--ink);background:#0c0e12;border-radius:10px;flex:1;padding:11px 8px;font-size:14px}.chip.on{border-color:var(--gold);color:var(--gold2);background:#c9a24a1f;font-weight:700}.course-opt{border:1px solid var(--line);cursor:pointer;background:#0c0e12;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;padding:12px;display:flex}.course-opt.on{border-color:var(--gold);background:#c9a24a1f}.course-opt .nm{font-size:14px;font-weight:600}.course-opt .pr{color:var(--gold2);white-space:nowrap;font-size:13px}.course-opt .dep{color:var(--warn);border:1px solid var(--warn);border-radius:6px;margin-top:3px;padding:1px 6px;font-size:11px;display:inline-block}.course-opt .cnote{color:var(--sub);margin-top:4px;font-size:11px}.course-opt{cursor:default}.course-opt .cl{flex:1;min-width:0}.course-opt .cr{flex-direction:column;flex:none;align-items:flex-end;gap:8px;display:flex}.hint{color:var(--sub);margin:0 0 12px;font-size:12px}.qty{align-items:center;gap:10px;display:flex}.qtybtn{border:1px solid var(--line);width:32px;height:32px;color:var(--ink);cursor:pointer;background:#0c0e12;border-radius:8px;padding:0;font-size:18px;line-height:1}.qtybtn:disabled{opacity:.35;cursor:default}.qtyn{text-align:center;min-width:18px;color:var(--gold2);font-weight:700}.depnotice{border:1px solid var(--warn);background:#d8a33a14;border-radius:12px;margin-bottom:14px;padding:14px}.depnotice h3{color:var(--gold2);margin:0 0 6px;font-size:14px}.depnotice p{color:var(--sub);margin:0;font-size:13px}.submit{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#160f02;letter-spacing:.05em;cursor:pointer;border:none;border-radius:12px;width:100%;margin-top:4px;padding:15px;font-size:16px;font-weight:800}.submit:disabled{opacity:.6;cursor:default}.note{color:var(--sub);text-align:center;margin-top:10px;font-size:11px}.result{background:var(--card);border:1px solid var(--ok);border-radius:14px;margin-top:6px;padding:18px}.result h2{color:var(--ok);margin:0 0 10px;font-size:18px}.sumrow{border-bottom:1px dashed var(--line);justify-content:space-between;gap:12px;padding:7px 0;font-size:14px;display:flex}.sumrow .k{color:var(--sub)}.req:after{content:" *";color:var(--gold2)}.ttnote{color:var(--gold2);margin-top:6px;font-size:11px}.cakerow{cursor:pointer;color:var(--ink);align-items:flex-start;gap:10px;font-size:14px;display:flex}.cakerow input{width:18px;height:18px;accent-color:var(--gold);flex:none;margin-top:3px}.policy .ptitle{color:var(--gold2);margin:0 0 8px;font-size:13px}.plist{color:var(--sub);margin:0;padding-left:18px;font-size:12px}.plist li{margin:4px 0}.err{color:#ff8f8f;text-align:center;margin-top:8px;font-size:12px}
