.visit-calendar{min-width:0;border:1px solid #cbd6de;border-radius:8px;padding:16px}
.visit-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:16px}
.visit-calendar-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.visit-calendar-day{border:1px solid #cbd6de;border-radius:6px;padding:6px;min-width:0;min-height:44px;background:#fff;color:#203543;cursor:pointer}
.visit-calendar-day.is-selected{border-color:#087f8c;background:#eef9f8}
.visit-calendar-day-number{font-weight:700}
.visit-calendar-event-marker{width:100%;min-width:0;min-height:32px;padding:4px 2px;border:1px solid #d39745;border-radius:6px;background:#fff0d9;color:#7a4c10;font:inherit;font-size:12px;cursor:pointer}
.visit-calendar-event-marker:focus-visible{outline:2px solid #087f8c;outline-offset:1px}
.visit-calendar-modal{width:min(720px,94vw);max-width:94vw;max-height:85vh;box-sizing:border-box;padding:20px;border:1px solid #b5cbd3;border-radius:12px;color:#203543;overflow:auto}
.visit-calendar-modal::backdrop{background:#142b3ab3}
.visit-calendar-modal-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.visit-calendar-modal-heading h2{margin:0;min-width:0;overflow-wrap:anywhere}
.visit-calendar-modal-heading button{width:auto;min-width:0;flex-shrink:0}
.visit-calendar-modal-event{margin-top:16px;padding:14px;border:1px solid #cbd6de;border-radius:8px;overflow-wrap:anywhere}
.visit-calendar-modal-event h3{margin:0;padding:6px 10px;border-radius:4px;font-size:15px}
.visit-calendar-modal-event .is-appointment{background:#e5f4ee;color:#176b55}
.visit-calendar-modal-event .is-sent{background:#fff0d9;color:#7a4c10}
.visit-calendar-modal-event dl{margin:12px 0 0}
.visit-calendar-modal-event dt{margin-top:10px;font-size:12px;font-weight:700;color:#596d7a}
.visit-calendar-modal-event dd{margin:2px 0 0;white-space:pre-wrap;line-height:1.6}
.visit-calendar-day[aria-pressed=true]{outline:2px solid #087f8c;outline-offset:1px}
.visit-calendar-day:disabled{background:#e5e7eb;color:#6b7280;border-color:#d1d5db;cursor:not-allowed}
.visit-calendar-times{margin-top:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:4px}
.visit-calendar-times[hidden]{display:none}
.visit-calendar-times label{display:flex;gap:8px;align-items:center;padding:8px}
.visit-calendar-times input[type=checkbox]{width:20px;height:20px}
[data-visit-selected]{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.visit-invitation{border-top:1px solid #cbd6de;padding:24px 0;overflow-wrap:anywhere}
.visit-invitation form{margin:16px 0}
.visit-acceptance-form>.button{width:auto;min-width:0}
.visit-plan-content{margin:18px 0;padding:12px 14px;border:1px solid #cbd6de;border-radius:8px;background:#f8fafb}
.visit-plan-content>summary{font-weight:700;cursor:pointer}
.visit-plan-content>summary:focus-visible{outline:2px solid #087f8c;outline-offset:3px}
.visit-plan-content-body{padding-top:10px}
.visit-plan-content-body h3{margin:14px 0 6px;font-size:14px}
.visit-recipient-profile{margin:0 0 16px;padding:14px;border:1px solid #c5dbe5;border-left:4px solid #4b9ab2;border-radius:8px;background:#f3f9fc}
.visit-recipient-profile>h4{margin:0 0 8px;color:#24596b}
.visit-recipient-company{margin:0;color:var(--muted);font-size:13px;font-weight:650}
.visit-recipient-profile>h3{margin:2px 0}
.visit-recipient-location{display:flex;flex-wrap:wrap;gap:12px;margin:2px 0 0;font-size:1.17em;font-weight:600}
.visit-confirmed-summary{margin:16px 0}
.visit-confirmed-heading{margin:0 0 6px;font-weight:650}
.visit-confirmed-slot{margin:0;padding:10px 14px;border:1px solid #cbd6de;border-radius:8px;background:#f7fafb;font-size:1.1em;font-weight:700}
.visit-answer-details{display:grid;gap:10px;margin:18px 0}
.visit-answer-details h4{margin:0}
.visit-answer-details{padding:14px;border:1px solid #c5dbe5;border-left:4px solid #4b9ab2;border-radius:8px;background:#f3f9fc}
.visit-answer-box{padding:12px 14px;border:1px solid #cbd6de;border-radius:8px;background:#fff}
.visit-answer-box p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.visit-answer-box p+p{margin-top:5px}
.visit-answer-box .visit-answer-box-title{margin-bottom:5px;font-weight:700}
.visit-answer-notes{line-height:1.7}
.visit-staff-decision{margin:22px 0;padding:16px;border:2px solid #78b9a2;border-radius:10px;background:#f1faf6}
.visit-staff-decision>h4{margin:0 0 12px;color:#176b55}
.visit-staff-decision .visit-confirmed-summary{margin:0 0 12px}
.visit-staff-decision .visit-confirmed-slot{border-color:#78b9a2;background:#fff;font-size:1.25em}
.visit-confirm-editor{margin-top:16px}
.visit-confirm-editor>summary{width:fit-content;color:#176b55;font-weight:700;cursor:pointer}
.visit-confirm-editor>summary:focus-visible{outline:2px solid #087f8c;outline-offset:3px}
.visit-confirm-editor[open]>summary{margin-bottom:12px}
.visit-confirm-message{margin-top:14px}
.visit-confirm-message textarea{min-height:84px}
.visit-slot-choice{width:auto;min-width:0;min-height:0;padding:6px 10px;border:1px solid #b8cbd2;border-radius:6px;background:#f4fafb;color:var(--text);font:inherit;text-align:left;cursor:pointer}
.visit-slot-choice:hover{border-color:#087f8c;background:#e6f3f8}
.visit-slot-choice:focus-visible{outline:2px solid #087f8c;outline-offset:2px}
.visit-confirm-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.visit-confirm-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:14px}
.visit-confirm-actions>.checkbox{display:flex;align-items:center;gap:8px}
.visit-confirm-actions>.checkbox input,.visit-reopen-form>.checkbox input{width:18px;min-height:18px;margin:0}
.visit-confirm-actions>.button{width:auto;min-width:0}
.visit-management-actions{display:flex;justify-content:flex-end;align-items:flex-end;gap:16px;flex-wrap:wrap}
.visit-management-actions form{display:flex;align-items:flex-end;gap:12px;margin:16px 0}
.visit-management-actions form>label{margin:0}
.visit-reopen-form>label:first-of-type{width:min(320px,50vw)}
.visit-reopen-form>.checkbox{display:flex;align-items:center;gap:8px;white-space:nowrap}
.visit-reopen-form>.button,.visit-revoke-form>.button{width:auto;min-width:0}
.visit-plan-list{overflow-x:auto;border-top:2px solid #c9d4d8;padding-top:6px}
.visit-plan-row{display:grid;grid-template-columns:190px 92px 130px 120px 150px 90px 130px 190px 115px 130px;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line);font-size:12px;white-space:nowrap;min-width:max-content;color:inherit;text-decoration:none}
.visit-plan-row:first-child{border-top:0}
.visit-plan-row:hover{background:#f3f8fa}
.visit-plan-row:hover .visit-plan-title{text-decoration:underline}
.visit-plan-row:focus-visible{outline:2px solid #087f8c;outline-offset:2px}
.visit-plan-title,.visit-recipient-name,.visit-recipient-building,.visit-recipient-room{min-width:0;overflow:hidden;text-overflow:ellipsis}
.visit-plan-title{display:block}
.visit-recipient-phone{font-weight:650;font-variant-numeric:tabular-nums}
.visit-plan-confirmed-date{justify-self:start;padding:5px 10px;border:1px solid #78b9a2;border-radius:6px;background:#e5f4ee;color:#176b55;font-size:13px;font-weight:750;font-variant-numeric:tabular-nums}
.visit-plan-confirmed-date.is-tomorrow{border-color:#e4b83f;background:#fff3c4;color:#755500}
.visit-plan-confirmed-date.is-today{border-color:#e58aa0;background:#ffe1e8;color:#8e2944}
.visit-deadline,.visit-plan-id{font-variant-numeric:tabular-nums;color:var(--muted)}
.visit-plan-row>.visit-status-badge{justify-self:start}
.visit-status-badge{display:inline-flex;align-items:center;justify-content:center;text-align:center;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:650;line-height:1.6;white-space:nowrap}
.visit-plan-status-draft,.visit-plan-status-closed,.visit-status-expired,.visit-status-revoked{background:#eef2f6;color:#596d7a}
.visit-plan-status-published,.visit-status-pending{background:#e6f3f8;color:#176b85}
.visit-status-paused{background:#fff0e2;color:#8a4c10}
.visit-status-answered{background:#fff4d8;color:#825900}
.visit-status-confirmed{background:#e5f4ee;color:#207b65}
.visit-status-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 22px;padding:10px 12px;border:1px solid #c9d4d8;border-radius:8px;background:#f7fafb}
.visit-status-filters-title{font-size:12px;font-weight:700;color:#41545c;margin-right:4px;white-space:nowrap}
.visit-filter-separator{color:#87969c;padding:0 3px}
.visit-status-filters>.visit-status-badge{border:1px solid transparent;text-decoration:none}
.visit-status-filters>.visit-status-badge:hover{filter:brightness(.96)}
.visit-status-filters>.visit-status-badge:focus-visible{outline:2px solid #087f8c;outline-offset:2px}
.visit-status-filters>.visit-status-badge.is-active{border-color:#087f8c;box-shadow:inset 0 0 0 1px #087f8c}
[data-visit-new][hidden],[data-visit-existing][hidden]{display:none!important}
.visit-confirm{border:1px solid #cbd6de;padding:16px;margin:16px 0}
.visit-text-group{min-width:0;margin:20px 0;padding:16px;border:1px solid #cbd6de;border-radius:8px}
.visit-text-group>legend{padding:0 8px;font-size:15px;font-weight:700;color:#203543}
.visit-template-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.visit-template-badge{display:inline-block;width:auto;min-height:0;padding:3px 10px;border:1px solid #0003;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-align:left}
button.visit-template-badge:hover{filter:brightness(.95)}
button.visit-template-badge:focus-visible{outline:2px solid #087f8c;outline-offset:2px}
.visit-mode-badge{background:#eef2f6;color:#203543}
.visit-mode-badge[aria-pressed=true]{background:#087f8c;color:#fff;border-color:#087f8c}
.visit-deadline-picker{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr);align-items:center;gap:16px;margin:18px 0}
.visit-deadline-picker>label{min-width:0;margin:0}
.visit-deadline-hour-picker{min-width:0;margin:0;padding:0;border:0}
.visit-deadline-hour-picker legend{margin:0 0 6px;padding:0;font-size:13px;font-weight:600}
.visit-deadline-hour-options{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding:3px 2px 6px}
.visit-deadline-hour-option{position:relative;width:auto;margin:0;cursor:pointer}
.visit-deadline-hour-option input{position:absolute;width:1px;height:1px;min-height:0;padding:0;opacity:0}
.visit-deadline-hour-option span{display:inline-flex;min-width:46px;min-height:42px;align-items:center;justify-content:center;padding:7px 8px;border:1px solid #cbd6de;border-radius:7px;background:#fff;color:var(--text);font-size:14px}
.visit-deadline-hour-option input:checked+span{border-color:#087f8c;background:#087f8c;color:#fff}
.visit-deadline-hour-option input:focus-visible+span{outline:3px solid #77cdd5;outline-offset:2px}
@media(max-width:700px){
    .visit-confirm-fields{grid-template-columns:1fr}
    .visit-confirm-actions{justify-content:space-between;flex-wrap:wrap}
    .visit-management-actions{justify-content:flex-end}
    .visit-management-actions form{flex-wrap:wrap}
    .visit-reopen-form>label:first-of-type{width:100%}
}
