.filter-bar{display:grid;gap:12px;align-items:end}.filter-bar .field{margin:0}.calendar-desktop{display:none}.calendar-mobile{display:grid}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays b{text-align:center;padding:8px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.calendar-day{min-height:126px;padding:8px;border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface)}.calendar-day:nth-child(7n){border-right:1px solid var(--line)}.calendar-day.outside{opacity:.38;background:var(--surface2)}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--brand)}.calendar-date{display:grid;place-items:center;width:25px;height:25px;border-radius:9px;font-size:12px;font-weight:850;margin-bottom:5px}.today .calendar-date{background:var(--brand);color:#fff}.calendar-event{display:block;padding:6px 7px;border-radius:8px;margin-top:4px;font-size:10px;line-height:1.25;background:var(--surface2);border-left:3px solid var(--muted)}.calendar-event b,.calendar-event span{display:block;overflow:hidden;text-overflow:ellipsis}.calendar-event span{font-size:8px;margin-top:2px;color:var(--muted)}.calendar-event.due,.calendar-legend.due{border-color:var(--warn)}.calendar-event.payment,.calendar-legend.payment{border-color:var(--good)}.calendar-event.report,.calendar-legend.report{border-color:var(--brand)}.calendar-legend{display:inline-flex;padding:8px 10px;margin:5px;border-radius:10px;background:var(--surface2);border-left:4px solid;font-size:11px;font-weight:800}
.calendar-event.schedule{border-color:var(--brand2)}
.chat-fab{position:fixed;right:18px;bottom:86px;z-index:35;display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:999px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;box-shadow:0 14px 34px color-mix(in srgb,var(--brand) 40%,transparent);font-size:13px}.chat-fab span{font-size:20px}.chat-panel{padding:0;overflow:hidden}.chat-thread{height:min(58vh,620px);overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px;background:color-mix(in srgb,var(--surface2) 50%,var(--surface))}.chat-row{display:flex}.chat-row.mine{justify-content:flex-end}.chat-bubble{max-width:min(82%,620px);padding:12px 14px;border-radius:18px 18px 18px 5px;background:var(--surface);border:1px solid var(--line);line-height:1.5}.chat-row.mine .chat-bubble{border-radius:18px 18px 5px 18px;background:var(--brand);border-color:var(--brand);color:#fff}.chat-bubble b,.chat-bubble small{display:block}.chat-bubble b{font-size:11px;margin-bottom:3px}.chat-bubble small{font-size:10px;margin-top:5px;opacity:.72}.chat-empty{text-align:center;margin:auto}.chat-compose{display:grid;gap:10px;padding:14px;border-top:1px solid var(--line);background:var(--surface)}.chat-compose textarea{min-height:68px;margin:0}.chat-compose .btn{width:100%}.inbox-button{width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:var(--surface2);display:grid;place-items:center;position:relative;color:var(--brand)}.inbox-icon{font-size:21px}.inbox-count,.bottom-count{position:absolute;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--bad);color:#fff;display:grid;place-items:center;font-size:9px;font-weight:900;border:2px solid var(--surface)}.inbox-count{right:-6px;top:-6px}.bottom a{position:relative}.bottom-count{right:5px;top:7px}.inbox-unread{border-color:color-mix(in srgb,var(--brand) 55%,var(--line));background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}
.gis-map-card{padding:8px;overflow:hidden}.gis-map{height:clamp(420px,65vh,720px);border-radius:17px;background:var(--surface2);position:relative;z-index:1}.gis-map-loading,.gis-map-error{height:100%;display:grid;place-items:center;text-align:center;padding:30px;color:var(--muted)}.gis-legend{display:flex;gap:12px;flex-wrap:wrap;padding:12px 10px 5px;font-size:11px;color:var(--muted)}.gis-legend span{display:flex;align-items:center;gap:6px}.gis-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.gis-tools{display:grid;gap:16px}.inline-port-form{display:grid;grid-template-columns:110px 140px auto;gap:7px;align-items:center}.inline-port-form select,.inline-port-form input{min-height:40px;padding:7px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--surface);color:var(--ink)}.leaflet-container a{color:var(--brand)}
@media(min-width:768px){.filter-bar{grid-template-columns:2fr 1fr 1fr auto}.calendar-desktop{display:block;overflow:hidden}.calendar-mobile{display:none}.chat-fab{right:28px;bottom:28px}.chat-compose{grid-template-columns:1fr auto;align-items:end}.chat-compose .btn{width:auto}.chat-thread{padding:28px}.gis-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.gis-tools form:first-child{grid-row:span 2}}

/* Compact application pagination. This replaces Laravel's utility-CSS-dependent SVG paginator. */
.app-pagination{display:grid;gap:12px;margin-top:18px;padding:14px 0}.app-pagination-summary{margin:0;text-align:center;color:var(--muted);font-size:12px}.app-pagination-controls{display:flex;align-items:center;justify-content:center;min-width:0}.app-pagination-pages{display:flex;align-items:center}.app-page{display:grid;place-items:center;min-width:40px;height:40px;padding:0 11px;border:1px solid var(--line);border-right:0;background:var(--surface);color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.app-page:first-child{border-radius:10px 0 0 10px}.app-page-nav:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}.app-page:hover{background:var(--brand-soft);color:var(--brand)}.app-page.active{background:var(--brand);border-color:var(--brand);color:#fff}.app-page.disabled{opacity:.45;cursor:not-allowed}.app-page-dots{color:var(--muted)}.app-pagination-mobile-count{display:none;padding:0 12px;color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.app-pagination svg{width:16px!important;height:16px!important}
@media(max-width:599px){.app-pagination{padding:10px 0}.app-pagination-summary{font-size:11px}.app-pagination-pages{display:none}.app-pagination-mobile-count{display:block}.app-pagination-controls{justify-content:space-between;gap:6px}.app-page{border-right:1px solid var(--line);border-radius:10px!important;min-width:auto;height:42px;padding:0 13px}.app-page-nav{flex:0 0 auto}.app-pagination-simple .app-pagination-controls{justify-content:space-between}}

/* Employee profile disclosure cards. */
.employee-profile-card>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.employee-profile-card>summary::-webkit-details-marker{display:none}
.employee-profile-card>summary:after{content:"+";flex:0 0 32px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface2);color:var(--brand);font-size:20px;font-weight:850}
.employee-profile-card[open]>summary:after{content:"−"}
.employee-profile-card>.employee-profile-card-body{padding-top:16px}
.employee-profile-card.metric>summary span{display:block}
.employee-profile-card.metric strong{margin-top:0}
.employee-profile-card.metric:after{display:none}

.collapsible-card>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.collapsible-card>summary::-webkit-details-marker{display:none}
.collapsible-card>summary:after{content:"+";flex:0 0 32px;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface2);color:var(--brand);font-size:20px;font-weight:850}
.collapsible-card[open]>summary:after{content:"−"}
.collapsible-card>.collapsible-card-body{padding-top:16px}

.dispatch-priority-scroll{max-height:450px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:5px}
.dispatch-priority-scroll>.customer{min-height:82px}

/* Centered client-document image preview. */
.client-image-preview{display:block;color:inherit;text-decoration:none;cursor:zoom-in}
.client-image-preview img{display:block;width:100%;height:180px;object-fit:cover;object-position:center;border-radius:14px;border:1px solid var(--line);transition:transform .18s ease,box-shadow .18s ease}
.client-image-preview:hover img{transform:translateY(-2px);box-shadow:0 12px 28px color-mix(in srgb,var(--ink) 16%,transparent)}
.client-image-preview b{display:block;margin-top:8px}
.client-image-preview .muted{display:block;font-size:12px}
.client-image-lightbox[hidden]{display:none}
.client-image-lightbox{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:clamp(12px,3vw,32px);background:rgba(5,10,20,.82);backdrop-filter:blur(8px)}
.client-image-lightbox-panel{position:relative;display:grid;place-items:center;gap:12px;width:min(94vw,1100px);max-height:92vh;padding:clamp(12px,2vw,22px);border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.5)}
.client-image-lightbox-panel img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(92vh - 92px);margin:auto;object-fit:contain;object-position:center;border-radius:14px}
.client-image-lightbox-panel strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.client-image-lightbox-close{position:absolute;top:-14px;right:-14px;z-index:1;display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #fff;border-radius:50%;background:#111827;color:#fff;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.4)}
body.client-image-preview-open{overflow:hidden}
.receipt-float[hidden]{display:none}.receipt-float{position:fixed;inset:0;z-index:1550;display:grid;place-items:center;padding:clamp(10px,2vw,24px);background:rgba(5,10,20,.82);backdrop-filter:blur(8px)}.receipt-float-panel{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;width:min(96vw,760px);height:min(94vh,920px);padding:12px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 30px 90px rgba(0,0,0,.5)}.receipt-float iframe{width:100%;height:100%;border:0;border-radius:14px;background:#fff}.receipt-float-close{position:absolute;top:-12px;right:-12px;z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #fff;border-radius:50%;background:#111827;color:#fff;font-size:28px;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.4)}.receipt-float .btn{justify-self:center}body.receipt-float-open{overflow:hidden}
@media(max-width:600px){.client-image-lightbox{padding:10px}.client-image-lightbox-panel{width:100%;max-height:88vh;padding:10px}.client-image-lightbox-panel img{max-height:calc(88vh - 76px)}.client-image-lightbox-close{top:8px;right:8px;width:40px;height:40px;border-width:1px}.client-image-lightbox-panel strong{font-size:12px}}
@media(max-width:600px){.receipt-float{padding:8px}.receipt-float-panel{width:100%;height:92vh;padding:8px;border-radius:16px}.receipt-float-close{top:6px;right:6px;width:40px;height:40px;border-width:1px}}
