*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;background:#f4f6f8;color:#24313d}header{height:64px;background:#17324d;color:#fff;display:flex;align-items:center;padding:0 24px;gap:24px}header b{font-size:20px;margin-right:auto}header a{color:#fff}nav{background:#fff;border-bottom:1px solid #dce3e8;padding:0 24px;display:flex;gap:4px;overflow:auto}nav a{padding:14px 16px;color:#334e68;text-decoration:none;white-space:nowrap}nav a:hover{background:#eef3f7}main{max-width:1280px;margin:24px auto;padding:0 20px}.card{background:#fff;border:1px solid #dce3e8;border-radius:10px;padding:20px;margin-bottom:18px;box-shadow:0 2px 8px #102a4310}.card h2{margin-top:0}.narrow{max-width:520px}.filters,.twocol{display:flex;gap:12px;align-items:end;flex-wrap:wrap}label{display:block;font-size:13px;font-weight:600;margin:10px 0}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #bcccdc;border-radius:6px;padding:10px;background:#fff;font:inherit}button{border:0;border-radius:6px;padding:10px 15px;background:#1769aa;color:#fff;font-weight:700;cursor:pointer}.secondary{background:#6b7c8c}.alert{background:#fff3cd;border:1px solid #ffe69c;padding:12px 15px;border-radius:8px;margin-bottom:16px}.legend{display:flex;gap:20px;margin-top:15px}.slotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.slot{background:#fff;border:1px solid #cfd9e2;border-left:5px solid #7fba00;border-radius:8px;padding:12px}.slot.hold{border-left-color:#f0ad00}.slot.booked{border-left-color:#cc3340}.slot strong{font-size:18px}.slot form{margin-top:10px}.slot button{width:100%}.empty{text-align:center;padding:40px;color:#66788a}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.admin-grid .card{margin:0}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px;border-bottom:1px solid #e5eaee;text-align:left}th{background:#f7f9fb}footer{text-align:center;padding:30px;color:#8292a2}.login{display:grid;place-items:center;min-height:100vh;background:#eaf0f5}.login-card{width:min(430px,92vw);background:#fff;padding:32px;border-radius:12px;box-shadow:0 12px 40px #102a4322}.login-card h1{margin:0}.login-card button{width:100%;margin:10px 0}.login-card small{color:#66788a}@media(max-width:700px){header{padding:0 12px}header span{display:none}main{padding:0 10px}.slotgrid{grid-template-columns:1fr 1fr}table{display:block;overflow:auto}.admin-grid{grid-template-columns:1fr}}
.monthbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:10px}.monthbar h2{margin:0;text-align:center}.monthnav,.todaylink{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border:1px solid #bcccdc;border-radius:7px;background:#fff;color:#1769aa;text-decoration:none;font-weight:700}.monthbar .monthnav:last-child{justify-self:end}.monthcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#cfd9e2;border:1px solid #cfd9e2;border-radius:10px;overflow:hidden;margin-bottom:18px}.dow{background:#eaf0f5;padding:10px;text-align:center;font-weight:700}.daycell{min-height:118px;background:#fff;padding:10px;color:#24313d;text-decoration:none;position:relative}.daycell.blank{background:#f7f9fb}.daycell.has-slots:hover{background:#f4f8fb}.daycell.today{box-shadow:inset 0 0 0 3px #1769aa}.daynum{display:block;font-size:17px;font-weight:800;margin-bottom:8px}.counts{display:grid;grid-template-columns:1fr 1fr;gap:5px;font-size:13px}.counts span{padding:3px 5px;border-radius:4px;background:#f4f6f8}.counts .wait{grid-column:1/-1;background:#fff3cd}.noslot{color:#9aa8b4}.daydetail{scroll-margin-top:10px}@media(max-width:700px){.monthbar{grid-template-columns:auto 1fr auto;gap:6px}.monthbar h2{font-size:18px}.monthnav{padding:7px 8px;font-size:12px}.monthcal{overflow-x:auto;grid-template-columns:repeat(7,minmax(105px,1fr))}.daycell{min-height:105px;padding:7px}.calendar-head .legend{flex-wrap:wrap;gap:8px 14px}}

/* v0.3 calendar navigation */
.monthnav{width:120px;min-width:120px}.monthbar .monthnav:first-child{justify-self:start}.monthbar .monthnav:last-child{justify-self:end}.calendar-tools{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap}.calendar-tools .filters{flex:1}.monthjump{display:flex;align-items:end;gap:10px}.monthjump label{margin:0;min-width:170px}.monthjump input[type=month]{margin-top:5px}.calendar-hint{display:block;margin-top:12px;color:#66788a}.daydetail{border-top:4px solid #1769aa}.daydetail h2{margin-bottom:16px}
@media(max-width:700px){.monthnav{width:84px;min-width:84px}.calendar-tools{display:block}.monthjump{margin-top:12px}.monthjump label{flex:1;min-width:0}.monthjump button{white-space:nowrap}}
