*{box-sizing:border-box}body{color:#16181d;background:#f6f7f9;margin:0;font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}header{z-index:5;background:#fff;border-bottom:1px solid #e6e8ec;justify-content:space-between;align-items:center;height:76px;padding:0 28px;display:flex;position:sticky;top:0}h1{margin:0;font-size:21px}h2{margin-top:0}header p{color:#777;margin:4px 0 0;font-size:12px}header button,.nav button,.back{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:10px;padding:9px 13px}.headerActions{gap:8px;display:flex}.headerActions button,.back{align-items:center;gap:6px;display:flex}main{max-width:1400px;margin:22px auto;padding:0 18px}.nav{justify-content:center;align-items:center;gap:20px;margin-bottom:10px;display:flex}.nav button{display:flex}.hint{text-align:center;color:#777;margin-bottom:15px;font-size:13px}.calendar{background:#fff;border:1px solid #e1e4e8;border-radius:14px;grid-template-columns:72px repeat(7,minmax(110px,1fr));max-height:calc(100vh - 190px);display:grid;overflow:auto}.corner,.day{z-index:3;background:#fff;border-bottom:1px solid #e5e7eb;justify-content:center;align-items:center;height:60px;display:flex;position:sticky;top:0}.corner{z-index:4;color:#999;font-size:12px;left:0}.day{flex-direction:column;gap:3px}.day span{color:#777;font-size:12px}.day.today{background:#f2f5ff}.time{z-index:2;text-align:center;color:#888;background:#fff;border-bottom:1px solid #f0f0f0;border-right:1px solid #eee;height:36px;padding-top:8px;font-size:11px;position:sticky;left:0}.cell{cursor:pointer;text-align:left;background:#fff;border-top:0;border-bottom:1px solid #f0f0f0;border-left:0;border-right:1px solid #eee;height:36px;padding:3px 6px;overflow:hidden}.cell:hover{background:#f5f7ff}.cell.booked{color:#253b92;background:#e9edff}.cell.fixed{color:#5a2ca0;background:#eee8ff}.cell.booked b,.cell.fixed b{white-space:nowrap;font-size:11px;display:block}.cell.booked small,.cell.fixed small{font-size:9px}.cell.disabled{opacity:.55;cursor:not-allowed}.shade{z-index:10;background:#0006;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(430px,100%);padding:28px;position:relative;box-shadow:0 20px 70px #0003}.modal h2{margin:0 0 5px}.sub{color:#777;margin:5px 0 18px;font-size:13px}.close{cursor:pointer;background:0 0;border:0;position:absolute;top:18px;right:18px}label{margin:14px 0;font-size:13px;font-weight:600;display:block}input,select{background:#fff;border:1px solid #d9dce1;border-radius:9px;width:100%;margin-top:7px;padding:12px;display:block}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.triple{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.primary,.danger{color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:8px;padding:13px;font-weight:700}.primary{background:#2f54d0}.danger{background:#d13b3b}.error{color:#c62e2e;font-size:12px}.notice{background:#eef2ff;border-radius:10px;padding:12px 14px;font-size:13px}.adminShell{max-width:850px;margin:0 auto;padding:30px 18px 80px}.adminShell>h1{margin:25px 0;font-size:28px}.adminTop{justify-content:space-between;display:flex}.adminCard{background:#fff;border:1px solid #e2e5ea;border-radius:16px;margin:18px 0;padding:22px;box-shadow:0 3px 14px #00000008}.adminCard>h1{font-size:28px}.listItem{border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;display:flex}.listItem:first-of-type{border-top:0}.listItem b,.listItem span{display:block}.listItem span{color:#777;margin-top:4px;font-size:12px}.iconDanger{color:#c52d2d;cursor:pointer;background:#fff0f0;border:0;border-radius:9px;padding:9px;display:flex}@media (width<=700px){header{padding:0 14px}.calendar{grid-template-columns:55px repeat(7,95px);max-height:calc(100vh - 185px)}main{padding:0 8px}.nav{gap:8px}.nav strong{font-size:14px}.day{height:55px}.headerActions button:first-child{font-size:0}.headerActions button:first-child svg{font-size:initial}.triple{grid-template-columns:1fr}.adminShell{padding:18px 12px 60px}}
