:root{--fm-brand-deep:#075767;--fm-brand-accent:#0087a2;--fm-brand-soft:#eef8fa;--fm-border:#d9e8eb;--fm-page:#f6fafb;--fm-text:#17343a;--fm-muted:#687f84}
.fm-public-calendar-shell{max-width:1400px;margin:28px auto;padding:0 18px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--fm-text);box-sizing:border-box}.fm-public-calendar-shell *{box-sizing:border-box}.fm-public-calendar-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}.fm-public-calendar-heading h2{margin:0;color:var(--fm-brand-deep);font-size:28px;line-height:1.15}.fm-public-calendar-heading p{margin:5px 0 0;color:var(--fm-muted);font-size:14px}
.fm-dashboard-calendar{background:#fff;border:1px solid var(--fm-border);border-radius:16px;padding:18px;box-shadow:0 10px 32px rgba(7,87,103,.08)}.fm-dashboard-calendar-weekdays,.fm-dashboard-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.fm-dashboard-calendar-weekdays{margin-bottom:7px}.fm-dashboard-calendar-weekdays span{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#7c9297;font-weight:800;padding:7px}.fm-dashboard-calendar-day{min-height:100px;border:1px solid #e3edef;border-radius:10px;padding:8px;overflow:hidden;background:#fff}.fm-dashboard-calendar-day.empty{border-color:transparent;background:transparent}.fm-dashboard-day-button{appearance:none;-webkit-appearance:none;font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}.fm-dashboard-day-button:hover{background:#f7fcfd;border-color:#b9dce3}.fm-dashboard-day-button:focus-visible{outline:3px solid rgba(0,135,162,.25);outline-offset:1px}.fm-dashboard-calendar-day.today{box-shadow:inset 0 0 0 2px var(--fm-brand-accent)}.fm-dashboard-calendar-number{font-size:12px;font-weight:800;color:var(--fm-brand-deep);margin-bottom:5px}.fm-dashboard-event{font-size:10px;line-height:1.3;margin:3px 0;padding:5px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#ecf8fa;color:#21464d}.fm-dashboard-event.survey{background:#edf5f6}.fm-dashboard-event span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--fm-brand-accent);margin-right:5px}.fm-dashboard-event.survey span{background:var(--fm-brand-deep)}.fm-dashboard-event.has-fitter-color{background:color-mix(in srgb,var(--fm-fitter-color) 12%,white);border-left:3px solid var(--fm-fitter-color)}.fm-dashboard-event.has-fitter-color span{background:var(--fm-fitter-color)}.fm-dashboard-more{font-size:10px;color:#617b81;margin-top:4px;font-weight:700}.fm-dashboard-no-events{font-size:10px;color:#b1c0c3;margin-top:8px}.fm-dashboard-calendar-legend,.fm-fitter-calendar-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--fm-muted)}.fm-dashboard-calendar-legend i,.fm-fitter-calendar-legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.fm-dashboard-calendar-legend i.job{background:var(--fm-brand-accent)}.fm-dashboard-calendar-legend i.survey{background:var(--fm-brand-deep)}.fm-fitter-calendar-legend{padding:11px 12px;background:#fbfdfd;border:1px solid var(--fm-border);border-radius:11px}.fm-fitter-calendar-legend strong{color:var(--fm-brand-deep)}.fm-fitter-legend-pair{display:inline-flex;align-items:center;gap:9px;padding:5px 9px;border:1px solid var(--fm-border);border-radius:999px;background:#fff}.fm-fitter-legend-pair>span{display:inline-flex;align-items:center;gap:4px}.fm-fitter-legend-pair>span+span{padding-left:8px;border-left:1px solid var(--fm-border)}
.fm-day-modal{position:fixed;inset:0;z-index:999999;display:none}.fm-day-modal.open{display:block}.fm-day-modal-backdrop{position:absolute;inset:0;background:rgba(7,87,103,.46);backdrop-filter:blur(2px)}.fm-day-modal-panel{position:absolute;right:0;top:0;height:100%;width:min(680px,94vw);background:var(--fm-page);box-shadow:-18px 0 50px rgba(7,87,103,.22);display:flex;flex-direction:column}.fm-day-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:28px 30px 22px;background:#fff;border-bottom:1px solid var(--fm-border)}.fm-day-modal-header h2{margin:5px 0 0;font-size:24px;line-height:1.2;color:var(--fm-brand-deep)}.fm-day-modal-kicker{font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:var(--fm-brand-accent)}.fm-day-modal-close{border:0;background:var(--fm-brand-soft);color:var(--fm-brand-deep);width:40px;height:40px;border-radius:10px;font-size:25px;line-height:1;cursor:pointer}.fm-day-modal-content{overflow:auto;padding:22px 30px 35px}.fm-day-empty{background:#fff;border:1px solid var(--fm-border);border-radius:12px;padding:30px;text-align:center;color:#71868b}.fm-day-count{font-size:12px;color:#71868b;margin:0 0 14px}.fm-day-event-card{display:block;width:100%;font:inherit;text-align:left;background:#fff;border:1px solid var(--fm-border);border-left:5px solid var(--fm-brand-accent);border-radius:12px;padding:18px 20px;margin-bottom:12px;cursor:pointer;color:inherit}.fm-day-event-card.survey{border-left-color:var(--fm-brand-deep)}.fm-day-event-card.has-fitter-color{border-left-color:var(--fm-fitter-color)}.fm-day-event-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.fm-day-event-kind{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#536b71}.fm-day-event-kind i{width:9px;height:9px;border-radius:50%;background:var(--fm-brand-accent)}.fm-day-event-card.survey .fm-day-event-kind i{background:var(--fm-brand-deep)}.fm-day-event-card.has-fitter-color .fm-day-event-kind i{background:var(--fm-fitter-color)}.fm-day-event-time{font-size:13px;font-weight:800;color:#24464d;white-space:nowrap}.fm-day-event-card h3{font-size:17px;margin:11px 0 3px;color:#123c45}.fm-day-event-ref{font-size:11px;color:#809398}.fm-day-event-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin-top:15px;padding-top:14px;border-top:1px solid #e6eff1}.fm-day-event-field span,.fm-record-detail-field span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#8ea1a6;margin-bottom:4px}.fm-day-event-field strong,.fm-record-detail-field strong{display:block;font-size:12px;color:#425e64;font-weight:650;line-height:1.45}.fm-day-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf6f7;font-size:10px;font-style:normal;font-weight:800;color:var(--fm-brand-deep)}.fm-calendar-view-record{margin-top:14px;color:var(--fm-brand-accent);font-size:11px;font-weight:800}.fm-public-back{appearance:none;border:1px solid var(--fm-border);background:#fff;color:var(--fm-brand-deep);border-radius:8px;padding:8px 11px;font-weight:800;cursor:pointer;margin-bottom:14px}.fm-record-detail-summary{display:grid;grid-template-columns:1fr 1fr;gap:13px;background:#fff;border:1px solid var(--fm-border);border-radius:12px;padding:17px}.fm-record-notes,.fm-record-section{margin-top:14px;background:#fff;border:1px solid var(--fm-border);border-radius:12px;padding:17px}.fm-record-notes h3,.fm-record-section h3{margin:0 0 10px;font-size:15px;color:var(--fm-brand-deep)}.fm-record-notes p{margin:0;font-size:12px;line-height:1.6;color:#50696f}.fm-record-table-wrap{overflow-x:auto}.fm-record-table{width:100%;border-collapse:collapse;font-size:11px}.fm-record-table th,.fm-record-table td{padding:9px;border-bottom:1px solid #e8f0f1;text-align:left;white-space:nowrap}.fm-record-table th{color:#70858a;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.fm-record-cost-row{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid #edf2f3;font-size:12px}.fm-record-none{margin:0;color:#87999d;font-size:12px}.fm-record-grand-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:16px 18px;background:var(--fm-brand-deep);color:#fff;border-radius:12px}.fm-record-grand-total strong{font-size:19px}.fm-public-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fm-public-photo-grid a{display:block;aspect-ratio:4/3;border-radius:9px;overflow:hidden;background:#eef5f6}.fm-public-photo-grid img{width:100%;height:100%;object-fit:cover;display:block}.fm-calendar-modal-open{overflow:hidden}.fm-public-calendar-access{max-width:560px;margin:40px auto;padding:28px;border:1px solid var(--fm-border);border-radius:15px;background:#fff;text-align:center;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}.fm-public-calendar-access h2{color:var(--fm-brand-deep);margin:0 0 8px}.fm-public-calendar-access p{color:var(--fm-muted)}.fm-public-login-button{display:inline-block;margin-top:10px;padding:10px 18px;border-radius:9px;background:var(--fm-brand-accent);color:#fff!important;text-decoration:none;font-weight:800}
@media(max-width:900px){.fm-dashboard-calendar-day{min-height:78px}.fm-dashboard-event{font-size:9px}.fm-public-calendar-heading h2{font-size:24px}}@media(max-width:700px){.fm-dashboard-calendar{padding:10px;overflow-x:auto}.fm-dashboard-calendar-weekdays,.fm-dashboard-calendar-days{min-width:720px}.fm-day-modal-panel{width:100%}.fm-day-modal-header,.fm-day-modal-content{padding-left:18px;padding-right:18px}.fm-day-event-grid,.fm-record-detail-summary{grid-template-columns:1fr}.fm-public-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v5.34 Suppliers & flooring deliveries */
.fm-dashboard-event.delivery:not(.has-fitter-color){background:#fff5df;color:#7a4d00}
.fm-dashboard-event.delivery:not(.has-fitter-color) span{background:#e39a2d}
.fm-dashboard-calendar-legend i.delivery{background:#e39a2d!important}
.fm-day-event-card.delivery:not(.has-fitter-color){border-left-color:#e39a2d}
.fm-day-event-card.delivery:not(.has-fitter-color) .fm-day-event-kind i{background:#e39a2d}

/* v5.36 linked quote details within job calendar view */
.fm-job-quote-details{margin-top:20px;border-top:3px solid var(--fm-brand-accent)}
.fm-job-quote-details>.fm-record-detail-summary{margin-top:12px}
.fm-nested-record-section{margin-top:12px;background:#f8fbfc}
.fm-job-quote-notes{margin-top:12px}

/* v5.37 use the available page width cleanly */
.fm-public-calendar-shell{
    width:100%;
    max-width:none;
    box-sizing:border-box;
}
.fm-dashboard-calendar,
.fm-record-detail-summary,
.fm-record-notes,
.fm-record-section{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}
@media(max-width:700px){
    .fm-public-calendar-shell{padding-left:10px;padding-right:10px;margin-top:18px;margin-bottom:18px;}
}
