#calendar-view .request-details > summary { grid-template-columns:40px minmax(0,1fr) 18px; }
#calendar-view .request-address { font-size:14px; line-height:1.4; }
#calendar-view .request-client { white-space:normal; }
#calendar-view .request-details:not([open]) .request-address { display:block!important; overflow:visible; }
#calendar-view .request-actions { display:grid; grid-template-columns:minmax(0,1fr) 44px 40px; gap:6px; padding:8px 0 0; }
#calendar-view .request-actions > a { background:var(--schedule-ink); color:var(--schedule-paper); }
#calendar-view .request-attach { width:44px; height:44px; border:1px solid var(--schedule-line); border-radius:6px; background:var(--schedule-paper); display:grid; place-items:center; }
#calendar-view .request-action-menu { width:auto; text-align:left; }
#calendar-view .request-action-menu > summary { top:8px; }
#calendar-view .request-action-menu[open] { grid-column:1 / -1; }
#calendar-view .request-action-menu > div { padding:0; }
#calendar-view .request-actions:not(:has(> a)) { padding-top:8px; grid-template-columns:1fr 40px; }
#calendar-view .request-actions:not(:has(> .request-attach)) { grid-template-columns:1fr 40px; }
#calendar-view .request-actions:not(:has(> a)) > .request-action-menu:not([open]) { min-height:44px; }
#calendar-view .request-estimates { margin-top:10px; }
.request-estimates-heading { display:flex; gap:8px; align-items:center; padding:8px 0; font-size:12px; color:var(--schedule-muted); }
.request-estimate-row { display:flex; align-items:center; background:var(--schedule-paper); border-bottom:1px solid var(--schedule-line); }
.request-estimate-link { flex:1; display:grid; grid-template-columns:46px minmax(0,1fr) auto 16px; align-items:center; gap:8px; padding:10px 6px 10px 10px; min-width:0; color:inherit; }
.request-estimate-thumb { width:46px; height:48px; display:grid; place-items:center; }
.request-estimate-thumb img { display:block; width:100%; height:100%; object-fit:contain; }
.request-estimate-thumb > svg { color:var(--schedule-muted); }
.request-estimate-copy { min-width:0; }
.request-estimate-copy strong { display:block; font-size:13px; font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.request-estimate-copy small { display:block; margin-top:3px; font-size:11px; line-height:1.4; color:var(--schedule-muted); overflow-wrap:anywhere; }
.request-estimate-price { text-align:right; font-size:14px; font-weight:650; font-variant-numeric:tabular-nums; white-space:nowrap; }
.request-estimate-price small { display:block; font-size:10px; font-weight:400; color:var(--schedule-muted); }
.request-estimate-detach { width:40px; min-height:44px; flex:0 0 40px; display:grid; place-items:center; color:var(--schedule-muted); }
.request-estimates-dialog { padding:0; width:calc(100% - 32px); max-width:600px; max-height:85dvh; height:fit-content; border:1px solid var(--schedule-line); border-radius:8px; background:var(--schedule-paper); color:var(--schedule-ink); }
.request-estimates-dialog[open] { display:flex; flex-direction:column; }
.request-estimates-dialog::backdrop { background:#0006; }
.request-estimates-dialog header { display:flex; align-items:flex-start; gap:12px; padding:16px; border-bottom:1px solid var(--schedule-line); flex:0 0 auto; }
.request-estimates-dialog header > div { flex:1; min-width:0; }
.request-estimates-dialog h2 { font-size:18px; font-weight:700; line-height:1.4; }
.request-estimates-dialog header p { margin-top:4px; font-size:13px; color:var(--schedule-muted); overflow-wrap:anywhere; }
.request-estimates-dialog .estimate-dialog-icon { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; }
.request-estimates-body { flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; padding:12px 16px; }
.request-estimates-search { display:flex; align-items:center; gap:8px; padding:0 10px; min-height:44px; border:1px solid var(--schedule-line); border-radius:6px; margin-bottom:10px; }
.request-estimates-search input { min-width:0; width:100%; background:transparent; border:0; outline:none; font-size:16px; min-height:44px; }
.request-estimates-search:focus-within { outline:2px solid var(--schedule-ink); outline-offset:2px; }
.request-estimate-choice { display:grid; grid-template-columns:20px 46px minmax(0,1fr) auto; gap:10px; align-items:center; padding:12px 0; border-bottom:1px solid var(--schedule-line); cursor:pointer; }
.request-estimate-choice input { appearance:auto; width:18px; height:18px; margin:0; accent-color:var(--schedule-ink); }
.request-estimate-choice.is-preview { grid-template-columns:46px minmax(0,1fr) auto; cursor:default; }
.request-estimates-note { font-size:14px; line-height:1.5; padding:12px 0; color:var(--schedule-muted); }
.request-estimates-error { font-size:13px; line-height:1.5; padding-top:8px; }
.request-estimates-error:empty { display:none; }
.request-estimates-dialog footer { display:flex; gap:8px; flex:0 0 auto; padding:12px 16px max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--schedule-line); }
.request-estimates-dialog footer button,[data-reload-estimates] { min-height:44px; padding:10px 14px; border:1px solid var(--schedule-line); border-radius:6px; font-size:13px; font-weight:600; }
.request-estimates-dialog [data-save-estimates] { flex:1; background:var(--schedule-ink); color:var(--schedule-paper); }
.request-estimates-dialog button:disabled { opacity:.45; }
body.request-estimates-open { overflow:hidden; }
@media(max-width:600px) {
    .request-estimates-dialog { width:100%; max-width:none; max-height:90dvh; border-radius:8px 8px 0 0; margin:0; top:auto; bottom:0; }
}
@media(max-width:360px) {
    .request-estimate-link { grid-template-columns:36px minmax(0,1fr) auto 14px; gap:6px; padding-left:6px; }
    .request-estimate-link .request-estimate-thumb { width:36px; }
    .request-estimate-copy strong { font-size:12px; }
    .request-estimate-detach { width:32px; flex-basis:32px; }
    .request-estimate-choice { gap:6px; }
}
@media(min-width:768px) { #calendar-view .request-details > summary { grid-template-columns:56px minmax(0,1fr) 20px; } }
