.visit-calendar{background:#eef5f5;border-radius:22px;scroll-margin-top:24px}.visit-calendar>p{max-width:800px}.calendar-nav{max-width:700px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.calendar-nav button{width:48px;height:48px;border:1px solid #abc1c5;background:white;border-radius:12px;font-size:28px;cursor:pointer}.calendar-nav h3{font-size:1.3rem;text-align:center;margin:0}.visit-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:700px}.weekday{text-align:center;font-size:.85rem;font-weight:700;padding:6px 0}.calendar-day{min-height:58px;border:1px solid #bdced1;border-radius:10px;background:#fff;color:#163c47;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1rem}.calendar-day.planned{background:#d4eee4;border-color:#72af94}.calendar-day.blocked,.calendar-day:disabled{opacity:.5;cursor:not-allowed;background:#e4e7e7}.calendar-day.selected{background:#063e4f;color:white;outline:3px solid #11a37a;outline-offset:0}.calendar-day:focus-visible{outline:3px solid #087ca4;outline-offset:2px}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0;font-size:.85rem}.calendar-legend span:before{content:'●';margin-right:6px}.calendar-legend .planned:before{color:#26845b}.calendar-legend .request:before{color:#789398}.calendar-legend .blocked:before{color:#949494}.visit-calendar .check{display:flex;gap:12px;align-items:flex-start;margin:18px 0}.visit-calendar .check input{width:22px;height:22px;flex-shrink:0;margin:0}.visit-calendar label{display:block}.visit-calendar .actions{flex-wrap:wrap}.visit-calendar .button{white-space:normal}.visit-calendar .notice:empty{display:none}@media(max-width:600px){.visit-calendar{padding:22px 14px!important;border-radius:14px}.visit-dates{gap:4px}.calendar-day{min-height:48px}.visit-calendar .actions>*{width:100%;text-align:center}.calendar-nav h3{font-size:1.1rem}}

.visit-calendar{max-width:850px;margin:24px auto}.visit-calendar .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.visit-calendar input,.visit-calendar select,.visit-calendar textarea{width:100%;box-sizing:border-box;font-size:16px;min-height:48px;margin-top:6px}.visit-calendar textarea{resize:vertical}.visit-calendar form{max-width:700px}.developer-credit{display:block;width:100%;margin-top:20px}.visit-calendar .form-grid label:has(textarea){grid-column:1/-1}@media(max-width:600px){.visit-calendar .form-grid{grid-template-columns:1fr}.visit-calendar{margin:12px}.visit-calendar button{touch-action:manipulation}}