:root{font-family:"BIZ UDGothic",Meiryo,sans-serif;color:#153f4e;background:#f6faf9;line-height:1.7}body{margin:0}main{max-width:960px;margin:auto;padding:22px 20px 45px}.brand{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:0 0 20px;font-size:17px;font-weight:bold}.brand-small{font-size:14px;color:#53737b}a{color:#09657f}.card{background:white;border:2px solid #d7e6e1;border-radius:25px;padding:28px;margin:20px 0;box-shadow:0 4px 0 #e5efea}.hero{background:#ffeb79;border:4px solid #126c85;text-align:center}.hero h1{font-size:clamp(29px,5vw,43px);line-height:1.5;margin:7px 0 12px}.hero p{font-size:19px;font-weight:bold}.hero-icon{font-size:65px;line-height:1.1}h2{font-size:23px;margin:0 0 16px}p{margin:10px 0}button,input,select{font:inherit;box-sizing:border-box;max-width:100%;min-height:56px}button{border:2px solid #b7d1d1;background:white;border-radius:16px;color:#234e5a;font-weight:bold;padding:12px 19px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid #d45532;outline-offset:3px}.primary{background:#087b97;border-color:#087b97;color:white}.big{width:100%;font-size:clamp(30px,6vw,47px);padding:22px 10px;box-shadow:0 6px 0 #07566b;line-height:1.4}.classes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.class-choice{min-height:125px;font-size:clamp(23px,4vw,34px);border-width:3px;box-shadow:0 4px 0 #b8d8d5}.c1{background:#e3f3ff;border-color:#3185b4}.c2{background:#e8f6da;border-color:#72a847}.c3{background:#ffedf1;border-color:#d97792}.step{color:#08758c;font-size:15px;font-weight:bold;letter-spacing:.05em}.numbers{display:grid;grid-template-columns:repeat(6,1fr);gap:11px}.number{font-size:26px;min-height:64px}.identity{background:#e9f4f2;border-radius:17px;font-weight:900;text-align:center;font-size:32px;padding:16px;margin:18px 0}.done{text-align:center;background:#e1f7e8;border-color:#409274}.done h1{font-size:35px;line-height:1.5;color:#246d46}.done .sent{font-size:22px;font-weight:bold}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.small{font-size:14px;color:#54767a}.message{white-space:pre-line;color:#9d432b;font-weight:bold}.warn{background:#fff1d1;border-color:#dfbd72;color:#805115}.total{font-size:clamp(37px,6vw,56px);font-weight:900;line-height:1.3}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.class-summary{padding:18px;border-radius:21px;border:2px solid #b9d8d7;text-align:center}.class-summary strong{font-size:28px;display:block}.class-summary span{font-size:21px}.class-summary.on{outline:4px solid #12728b;outline-offset:2px}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pending{background:#fff6d9;border-color:#e5d395}.roster{list-style:none;margin:0;padding:0}.roster li{border-bottom:1px dashed #cbdedb;padding:11px 0}.roster time{display:block;font-size:13px;color:#54777a}.roster .num{font-weight:bold;font-size:19px}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}input,select{border:2px solid #b6cecf;background:white;border-radius:12px;padding:11px}input[type=number]{width:110px}input[type=password]{width:100%;margin:12px 0}.settings-grid label{display:block}label input{display:block}details{margin:22px 0}summary{cursor:pointer;font-size:20px;font-weight:bold}.badge{display:inline-block;background:#126b4e;color:white;font-size:14px;padding:4px 12px;border-radius:30px}footer{font-size:14px;color:#5d777b;text-align:center;padding:20px 0}dialog{border:0;border-radius:24px;max-width:490px;width:calc(100% - 72px);padding:24px;box-shadow:0 15px 80px #0004}dialog::backdrop{background:#173f4f88}.hidden{display:none!important}@media(max-width:600px){main{padding:17px 13px 35px}.card{padding:21px 17px}.classes{gap:9px}.class-choice{padding:12px 4px;min-height:105px}.numbers{grid-template-columns:repeat(5,1fr);gap:9px}.number{padding:8px 4px}.columns{grid-template-columns:1fr}.summary{gap:8px}.class-summary{padding:14px 3px}.class-summary strong{font-size:22px}.class-summary span{font-size:18px}.settings-grid{gap:9px}.settings-grid input{width:85px}.actions button{flex:1}.identity{font-size:28px}}@media print{.brand a,.actions,details,.message{display:none!important}body{background:white}.card{box-shadow:none;break-inside:avoid}.columns{display:block}}
