.ap57-page{display:grid;gap:18px;min-width:0}
.ap57-page .page-head{margin-bottom:0}
.ap57-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ap57-toolbar .field{min-width:min(280px,100%)}
.ap57-layout{display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr);align-items:start;gap:16px;min-width:0}
.ap57-calendar-panel{min-width:0}
.ap57-date-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;text-align:left;cursor:pointer}.ap57-date-toggle+ .ap57-month-head{margin-top:16px}
.ap57-month-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;text-transform:capitalize}
.ap57-month-head .btn{min-width:38px;min-height:38px;padding:4px 9px;font-size:1.35rem}
.ap57-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ap57-weekday{text-align:center;font-size:.75rem;color:var(--muted);font-weight:700}
.ap57-day{min-height:39px;display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap;padding:4px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);font:inherit;cursor:pointer}
.ap57-day:hover{background:var(--brand-soft)}.ap57-day.selected{background:var(--brand);color:var(--surface)}
.ap57-dot{font-size:.68rem;font-weight:700;line-height:1;min-width:15px}
.ap57-calendar-panel>.btn{margin-top:12px;width:100%}
.ap57-list{display:grid;gap:9px;margin-top:10px}
#ap57-day-heading{scroll-margin-top:90px}
.ap57-timeline{position:relative;height:1080px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.ap57-time-row{position:absolute;left:0;right:0;height:1px;border-top:1px solid var(--line)}.ap57-time-row time{display:block;width:52px;padding:0 4px;color:var(--muted);font-size:.75rem;font-weight:700;transform:translateY(-50%);background:var(--surface)}.ap57-time-row:first-child time{transform:translateY(1px)}.ap57-time-row:nth-child(16) time{transform:translateY(-100%)}.ap57-events{position:absolute;left:58px;right:6px;top:0;bottom:0}.ap57-timeline .ap57-card{position:absolute;overflow:hidden;gap:1px;padding:4px 7px;border-radius:7px;z-index:1}.ap57-timeline .ap57-card strong,.ap57-timeline .ap57-card small,.ap57-timeline .ap57-card .tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ap57-timeline .ap57-card .tag{display:none}.ap57-outside{display:grid;gap:8px}
.ap57-card{position:relative;display:grid;gap:5px;width:100%;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}
.ap57-card.selected{border-color:var(--brand);box-shadow:inset 3px 0 var(--brand)}
.ap57-card.awaiting{border-color:var(--brand)}.ap57-card.awaiting small{color:var(--brand);font-weight:700}
.ap57-card-time{color:var(--brand);font-weight:700;font-size:.85rem}
.ap57-card small{color:var(--muted);line-height:1.3}.ap57-card .tag{justify-self:start}
.ap57-dialog{width:min(560px,100%)}.ap57-dialog .dialog-content{min-width:0}.ap57-detail{min-width:0}.ap57-detail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.ap57-detail-actions .btn{margin-left:auto}
.ap57-detail-line{padding:13px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.ap57-detail-line>small{display:block;color:var(--muted);font-size:.78rem;margin-bottom:5px}
.ap57-detail-line p{margin:4px 0}.ap57-detail-line:last-of-type{border-bottom:0}
.ap57-detail>.row:last-child{margin-top:15px}
.ap57-files{display:flex;flex-wrap:wrap;gap:9px}.ap57-file{display:grid;grid-template-rows:72px auto;gap:5px;width:100px;color:var(--brand);font-size:.75rem;text-decoration:none;overflow-wrap:anywhere}.ap57-file img,.ap57-pdf-icon{display:flex;width:100%;height:72px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:9px;object-fit:cover}.ap57-pdf-icon{background:var(--brand-soft);font-weight:800;font-size:1.1rem;letter-spacing:.04em}.ap57-file span:last-child{line-height:1.25}
.ap57-upload{cursor:pointer}.ap57-form{display:grid;gap:11px}.ap57-form .field{display:grid;gap:5px}.ap57-form input,.ap57-form select,.ap57-form textarea{min-height:42px;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit}
.ap57-form textarea{min-height:80px}.ap57-form-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ap57-form-pair .field,.ap57-form-pair input{min-width:0}.ap57-form-pair input{max-width:100%;box-sizing:border-box}.ap57-lead-results{display:grid;gap:5px}.ap57-lead-results .btn{text-align:left;white-space:normal}.ap57-linked{margin:4px 0;padding:10px;border-radius:9px;background:var(--brand-soft);line-height:1.4}.ap57-invitees{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:150px;overflow:auto}.ap57-invitees label{display:flex;align-items:center;gap:10px;min-width:0;min-height:44px;cursor:pointer}.ap57-invitees label span{min-width:0;overflow-wrap:anywhere}.ap57-form .ap57-invitees input[type="checkbox"]{flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:0;padding:0;accent-color:var(--brand)}
@media(max-width:720px){.ap57-form-pair,.ap57-invitees{grid-template-columns:minmax(0,1fr)}.ap57-invitees{overflow-x:hidden}.ap57-layout{grid-template-columns:minmax(0,1fr)}.ap57-toolbar .field{width:100%}.ap57-page .page-head{align-items:center}.ap57-page .page-head>.btn{width:100%}}

/* Keep the time and title legible in a thirty-minute appointment on iPhone. */
@media(max-width:600px){
 .ap57-timeline .ap57-card{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:2px 6px;min-height:0}
 .ap57-timeline .ap57-card-time{font-size:.73rem;line-height:1.1}
 .ap57-timeline .ap57-card strong{display:block;min-width:0;max-width:100%;font-size:.8rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .ap57-timeline .ap57-card small,.ap57-timeline .ap57-card .tag{display:none}
}
