:root{color-scheme:light;--ink:#173a38;--green:#087e71}*{box-sizing:border-box}body{margin:0;background:#f3f6f4;color:var(--ink);font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;line-height:1.7}main{max-width:940px;margin:auto;padding:24px 18px}a{color:var(--green)}header{padding:22px 0}h1{font-size:clamp(28px,5vw,42px);margin:0;letter-spacing:.02em}h2{font-size:20px}h3{font-size:17px}.eyebrow{font-size:12px;letter-spacing:.18em;color:#537570}.panel{background:white;border:1px solid #dce7e1;border-radius:20px;padding:24px;margin-bottom:20px;box-shadow:0 4px 18px #163a3805}.controls{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:18px}label{display:block;font-weight:600;font-size:14px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{width:100%;border:1px solid #c4d7cf;border-radius:10px;padding:12px;background:white;margin-top:6px;min-width:0}button{border:1px solid #c4d7cf;border-radius:10px;background:#fff;min-height:44px;padding:8px 14px;cursor:pointer}button:hover{background:#e9f5ef}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e5b049;outline-offset:2px}.stepper{display:flex;gap:6px;margin-top:6px}.stepper input{margin:0;text-align:center;width:70px;flex:1}.presets{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:18px 0;font-size:13px}.presets .active{background:var(--green);color:white}#result{background:#e9f5ee;border-radius:14px;padding:20px}#result strong{display:block;font-size:clamp(24px,5vw,34px)}#result p{margin:4px 0}.error{color:#a33a23}details{margin-top:18px}summary{cursor:pointer}.check{display:flex;align-items:center;gap:8px;margin:12px 0}.check input{width:20px;height:20px;margin:0}.calnav{display:flex;align-items:center;gap:10px}.calnav h2{flex:1;margin:0}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:12px}.legend span:first-child{color:#355dc1}.legend span:nth-child(2){color:#087e71}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;font-size:12px;padding:6px}.day{min-height:92px;padding:6px;text-align:left;border:1px solid #e0e7e3;border-radius:9px;display:flex;flex-direction:column;position:relative;font-size:16px;overflow:hidden}.day small{font-size:10px;line-height:1.3;overflow-wrap:anywhere}.off{background:#f7f7f7;color:#9c4a43}.count{background:#e9f5ee}.base{border:2px solid #355dc1;background:#edf1fc;color:#214697}.target{background:#087e71!important;color:white!important;border-color:#087e71}.num{font-size:11px;color:#52776c;margin-top:auto}.target .num{color:white}.hint,footer{font-size:12px;color:#59716a}#quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}#quick button{padding:12px 6px}#quick strong{display:block}#holidaylist{font-size:12px;padding-left:20px}#warning{font-size:14px;color:#9a472b;margin-top:8px}@media(max-width:600px){main{padding:14px 10px}.panel{padding:16px;border-radius:15px}.controls{grid-template-columns:1fr 1fr;gap:12px}.controls>label:first-child{grid-column:1/-1}.day{min-height:77px;padding:4px;border-radius:6px}.calendar{gap:3px}.day small{font-size:9px}.calnav{gap:5px}.calnav h2{font-size:17px}.calnav button{padding:6px 9px}#quick{grid-template-columns:repeat(2,1fr)}}
