:root {
  --blue: #3CA0DC;
  --blue-dark: #1A8AB3;
  --cyan: #15C5F4;
  --mint: #67D5C9;
  --pale: #ECF7FD;
  --ink: #1F2A33;
  --muted: #687984;
  --line: #DDEAF1;
  --white: #fff;
  --danger: #C84E4E;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: linear-gradient(150deg, #ecf7fd 0%, #f8fcff 48%, #e5f5fc 100%); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.app-shell { max-width: 1080px; min-height: 100vh; margin: auto; background: rgba(255,255,255,.78); box-shadow: 0 0 70px rgba(42, 121, 157, .11); }
.topbar { min-height: 68px; padding: 14px clamp(18px, 4vw, 44px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.92); position: sticky; top: 0; z-index: 3; backdrop-filter: blur(12px); }
.brand { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 760; letter-spacing: -.015em; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: white; background: linear-gradient(145deg, var(--blue), var(--blue-dark)); font-size: 12px; box-shadow: 0 4px 12px rgba(26,138,179,.24); }
.icon-button { border: 1px solid var(--line); background: white; width: 38px; height: 38px; border-radius: 12px; color: var(--blue-dark); font-weight: 900; letter-spacing: 1px; }
main { padding: 28px clamp(18px, 4vw, 44px) 54px; }
.eyebrow { color: var(--blue-dark); font-size: 11px; font-weight: 800; letter-spacing: .095em; text-transform: uppercase; }
h1 { margin: 5px 0 5px; font-size: clamp(29px, 5vw, 43px); line-height: 1.06; letter-spacing: -.045em; }
h2 { font-size: 21px; letter-spacing: -.035em; margin: 0; }
h3 { margin: 0; font-size: 16px; letter-spacing: -.02em; }
p { margin: 0; }
.muted, .helper { color: var(--muted); }
.helper { font-size: 13px; line-height: 1.45; }
.voice-hint { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.title-row, .section-title, .job-top, .contact-line, .report-head, .chip-row, .action-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.section-title { margin: 30px 0 13px; align-items: flex-end; }
.avatar { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; color: #fff; background: var(--blue-dark); border-radius: 15px; font-size: 13px; font-weight: 800; }
.master-block { display: flex; align-items: center; gap: 12px; }
.master-block strong { display: block; font-size: 14px; }
.master-block span { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.status-pill, .type-pill, .mini-pill { display: inline-flex; align-items: center; gap: 5px; border-radius: 99px; padding: 6px 9px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.status-pill { color: #087491; background: #dff7fb; }
.duration-source { display: inline-flex; align-items: center; border-radius: 99px; padding: 2px 7px; background: #e8f8fc; color: #177da5; font-size: .78em; font-weight: 750; line-height: 1.35; vertical-align: middle; white-space: nowrap; }
.status-pill.done { color: #187763; background: #e1f6ef; }
.status-pill.progress { color: #146d91; background: #e0f4ff; }
.status-pill.failed { color: #a33d3d; background: #fff0f0; }
.type-pill { color: var(--blue-dark); background: var(--pale); }
.mini-pill { color: var(--muted); background: #f3f8fa; }
.long-tail-pill { margin-top: 9px; color: #a15d14; background: #fff3dc; }
.mall-pill { margin-top: 9px; color: #116d8d; background: #e4f7fd; }
.false-call-pending { margin-top: 9px; color: #8a5a13; background: #fff3dc; }
.false-call-approved { margin-top: 9px; color: #187763; background: #e1f6ef; }
.false-call-rejected { margin-top: 9px; color: #a33d3d; background: #fff0f0; }
.long-tail-action { display: grid; gap: 7px; margin-top: 12px; }
.long-tail-action small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.alert.long-tail-alert { border-color: #f0d39d; background: #fffaf0; }
.alert.no-answer-alert { border-color: #efd9ad; background: #fffaf0; }
.alert.job-not-completed-alert { border-color: #efc5c5; background: #fff7f7; }
.alert.job-not-completed-alert strong { color: #a33d3d; }
.alert.job-not-completed-alert p { color: #765454; }
.false-call-decision { margin-top: 10px; padding-top: 10px; border-top: 1px solid #efcccc; }
.false-call-decision label { display: block; margin-bottom: 6px; color: #765454; font-size: 11px; font-weight: 760; }
.false-call-decision textarea { min-height: 66px; border-color: #e8caca; background: #fff; }
.false-call-result { margin-top: 10px; padding: 10px; border-radius: 11px; }
.false-call-result strong, .false-call-result small { display: block; }
.false-call-result small { margin-top: 4px; font-size: 11px; line-height: 1.4; }
.false-call-result.approved { color: #187763; background: #e9f8f2; }
.false-call-result.rejected { color: #a33d3d; background: #fff0f0; }
.alert.job-not-completed-alert .false-call-result.approved strong { color: #187763; }
.alert.job-not-completed-alert .false-call-result.rejected strong { color: #a33d3d; }
.route-options { display: grid; gap: 9px; margin: 20px 0 15px; }
.route-date-list { display: grid; gap: 9px; margin-top: 20px; }
.route-date-list .button { justify-content: space-between; text-align: left; }
.route-date-list .button small { color: var(--muted); font-size: 11px; }
.home-address { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: center; padding: 13px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--pale); }
.home-address span { color: var(--muted); font-size: 11px; }
.home-address strong { grid-column: 1; font-size: 13px; }
.home-address .link-button { grid-column: 2; grid-row: 1 / span 2; }
.mall-location { display: flex; gap: 14px; margin-top: 13px; padding: 14px; align-items: center; justify-content: space-between; border: 1px solid #bde4f3; border-radius: 15px; background: #f4fbfe; }
.mall-location span, .mall-location small { display: block; color: var(--muted); font-size: 11px; line-height: 1.35; }
.mall-location strong { display: block; margin: 3px 0; color: var(--blue-dark); font-size: 14px; }
.mall-map-button { min-width: 126px; flex: 0 0 auto; text-decoration: none; }
.mall-map-button.disabled { color: #8ca0a9; border-color: var(--line); background: #f3f6f7; cursor: not-allowed; }
.earning-card { position: relative; overflow: hidden; margin-top: 22px; padding: 24px; border-radius: 25px; background: linear-gradient(130deg, var(--blue-dark), var(--blue), #58bce5); color: white; box-shadow: 0 13px 27px rgba(25,137,180,.2); }
.earning-card:after { content: ""; position: absolute; width: 210px; height: 210px; border: 32px solid rgba(255,255,255,.13); border-radius: 50%; right: -78px; top: -110px; }
.earning-card .label { font-size: 13px; opacity: .84; }
.earning-head { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.earn-number { margin: 6px 0 17px; font-size: clamp(34px, 6vw, 48px); line-height: 1; font-weight: 820; letter-spacing: -.05em; }
.earning-completed { padding-bottom: 17px; text-align: right; }
.earning-completed strong, .earning-completed span { display: block; }
.earning-completed strong { font-size: 19px; }
.earning-completed span { margin-top: 3px; font-size: 11px; opacity: .8; }
.earning-meta { display: flex; justify-content: space-between; position: relative; z-index: 1; font-size: 13px; }
.progress { height: 8px; margin: 13px 0; border-radius: 99px; background: rgba(255,255,255,.24); overflow: hidden; }
.progress > i { display: block; height: 100%; border-radius: inherit; background: var(--mint); }
.earning-period-tabs { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin: 17px 0 11px; padding: 5px; border-radius: 15px; background: rgba(4,91,126,.22); }
.earning-period-tabs button { min-height: 39px; padding: 7px; border: 0; border-radius: 11px; color: rgba(255,255,255,.82); background: transparent; font-size: 12px; font-weight: 750; }
.earning-period-tabs button.active { color: #0f769a; background: #fff; box-shadow: 0 5px 13px rgba(14,91,121,.18); }
.earning-range-caption { position: relative; z-index: 1; margin: -1px 0 11px; color: rgba(255,255,255,.82); font-size: 11px; text-align: center; }
.earning-custom-range { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 8px; margin: 0 0 11px; align-items: end; }
.earning-custom-range label { color: rgba(255,255,255,.82); font-size: 10px; font-weight: 720; }
.earning-custom-range input { display: block; width: 100%; min-height: 41px; margin-top: 5px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.42); border-radius: 11px; color: #164f65; background: rgba(255,255,255,.94); font: inherit; }
.earning-custom-range button { min-height: 41px; padding: 8px 15px; border: 1px solid rgba(255,255,255,.68); border-radius: 11px; color: #0f769a; background: #fff; font-weight: 780; }
.earning-details { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 13px; }
.earning-details > div { padding: 11px 13px; border-radius: 13px; background: rgba(255,255,255,.14); }
.earning-details span, .earning-details strong { display: block; }
.earning-details span { margin-bottom: 5px; font-size: 10px; opacity: .78; }
.earning-details strong { font-size: 16px; }
.schedule-section { margin-top: 25px; }
.schedule-title { margin: 0 0 11px; align-items: flex-end; gap: 12px; }
.schedule-heading { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.schedule-heading .mini-pill { color: var(--blue-dark); background: var(--pale); }
.schedule-controls { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; }
.schedule-arrow { min-height: 38px; padding: 8px 11px; border: 1px solid #b9dfed; border-radius: 12px; color: var(--blue-dark); background: #fff; font-size: 12px; font-weight: 760; white-space: nowrap; }
.schedule-arrow:hover:not(:disabled) { border-color: #6fc5e6; background: #edf9fe; }
.schedule-arrow:disabled { color: #9aabb3; border-color: var(--line); background: #f4f7f8; cursor: not-allowed; opacity: .68; }
.schedule-counter { min-width: 48px; color: var(--muted); font-size: 11px; font-weight: 740; text-align: center; white-space: nowrap; }
.schedule-carousel { display: flex; gap: 10px; padding: 2px 2px 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #b9dfed transparent; }
.schedule-card { width: min(230px, 72vw); min-height: 128px; padding: 15px; flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-start; text-align: left; scroll-snap-align: start; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: #fff; box-shadow: 0 4px 13px rgba(38,112,140,.05); }
.schedule-card.active { border-color: #72c6e5; background: linear-gradient(145deg, #dff5fd, #fff); box-shadow: 0 7px 18px rgba(26,138,179,.13); }
.schedule-card span { color: var(--blue-dark); font-size: 11px; font-weight: 790; text-transform: uppercase; letter-spacing: .03em; }
.schedule-card .schedule-kind { margin-bottom: 6px; color: #647b86; font-size: 9px; }
.schedule-card strong { margin-top: 14px; font-size: 15px; line-height: 1.25; }
.schedule-card em { margin-top: 7px; color: var(--blue-dark); font-size: 11px; font-style: normal; font-weight: 740; }
.schedule-card small { margin-top: auto; padding-top: 13px; color: var(--muted); font-size: 11px; }
.schedule-card.mall-schedule-card { border-color: #a9ddef; background: linear-gradient(145deg, #effaff, #fff); }
.schedule-card.mall-schedule-card.active { border-color: var(--blue); background: linear-gradient(145deg, #d9f3fd, #fff); }
@media (max-width: 620px) {
  .earning-head { align-items: flex-start; flex-direction: column; gap: 0; }
  .earning-completed { padding-bottom: 0; text-align: left; }
  .schedule-title { align-items: flex-start; flex-direction: column; }
  .schedule-controls { width: 100%; justify-content: space-between; }
  .schedule-arrow { flex: 1; }
}
.tabs { display: flex; gap: 7px; margin: 24px 0 4px; overflow: auto; padding-bottom: 2px; scrollbar-width: none; }
.tab { border: 1px solid var(--line); background: #fff; padding: 10px 14px; border-radius: 13px; color: var(--muted); font-size: 13px; white-space: nowrap; }
.tab.active { background: #dff5fc; border-color: #b4e2f4; color: var(--blue-dark); font-weight: 780; }
.work-period-panel { margin-bottom: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 17px; background: #f9fdff; }
.range-presets { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 10px; scrollbar-width: none; }
.range-presets .tab { padding: 8px 11px; }
.work-range-controls { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) auto auto; gap: 9px; align-items: end; }
.work-range-controls.day-mode { grid-template-columns: minmax(220px, 1fr) auto; }
.work-range-controls label { color: var(--muted); font-size: 11px; font-weight: 720; }
.work-range-controls .date-control { display: block; width: 100%; margin-top: 5px; }
.job-search { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; gap: 9px; margin-top: 12px; padding: 11px; align-items: end; border: 1px solid #b9e3f2; border-radius: 17px; background: linear-gradient(135deg, #eaf8fd, #f8fdff); box-shadow: 0 5px 15px rgba(26,138,179,.06); }
.job-search-field { display: block; min-width: 0; }
.job-search-caption { display: block; margin: 0 0 6px 4px; color: var(--blue-dark); font-size: 10px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.job-search-control { display: flex; height: 47px; min-width: 0; align-items: center; overflow: hidden; border: 1.5px solid #8fd2e9; border-radius: 14px; background: #fff; box-shadow: inset 0 1px 2px rgba(31,42,51,.035); transition: border-color .18s ease, box-shadow .18s ease; }
.job-search-control:focus-within { border-color: var(--cyan); box-shadow: 0 0 0 4px rgba(21,197,244,.16), 0 6px 16px rgba(26,138,179,.1); }
.job-search-icon { display: grid; width: 43px; height: 100%; flex: 0 0 auto; place-items: center; color: var(--blue-dark); background: #f0faff; font-size: 25px; font-weight: 750; }
.job-search input[type="search"] { width: 100%; height: 100%; min-width: 0; padding: 0 13px; border: 0; border-radius: 0; outline: 0; color: var(--ink); background: #fff; font-size: 13px; }
.job-search input[type="search"]::placeholder { color: #82949c; }
.job-search input[type="search"]::-webkit-search-cancel-button { cursor: pointer; }
.job-search .search-submit { min-height: 47px; padding-inline: 21px; border: 0; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--blue-dark), var(--blue)); box-shadow: 0 7px 15px rgba(26,138,179,.2); }
.job-search .search-submit:hover { filter: brightness(1.04); transform: translateY(-1px); }
.job-search .search-reset { min-height: 47px; justify-content: center; background: #fff; }
.show-more-jobs { margin-top: 12px; }
.job-list { display: grid; gap: 11px; }
.job-card { width: 100%; padding: 17px; text-align: left; border: 1px solid var(--line); border-radius: 19px; background: #fff; box-shadow: 0 4px 12px rgba(38,112,140,.035); transition: transform .16s, box-shadow .16s; }
.job-card:hover { transform: translateY(-2px); box-shadow: 0 11px 22px rgba(38,112,140,.10); }
.job-card:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(21,197,244,.35); outline-offset: 2px; }
.job-time { color: var(--blue-dark); font-size: 13px; font-weight: 810; }
.job-card h3 { margin: 9px 0 4px; font-size: 17px; }
.job-address { color: var(--muted); font-size: 13px; }
.tenant-client { margin: -1px 0 6px; color: #536b77; font-size: 12px; font-weight: 650; }
.job-bottom { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #edf3f6; }
.fee { color: var(--blue-dark); font-size: 17px; font-weight: 830; letter-spacing: -.03em; }
.fee small { display: block; margin-bottom: 3px; font-size: 11px; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.mall-group { overflow: hidden; border: 1px solid #b9e1f1; border-radius: 23px; background: linear-gradient(150deg, #f0faff, #fff 52%); box-shadow: 0 9px 24px rgba(26,138,179,.09); }
.mall-group.spotlight { animation: mall-spotlight 1.2s ease; }
@keyframes mall-spotlight { 0%,100% { box-shadow: 0 9px 24px rgba(26,138,179,.09); } 35% { box-shadow: 0 0 0 5px rgba(21,197,244,.24), 0 13px 30px rgba(26,138,179,.18); } }
.mall-group-head { padding: 18px; }
.mall-group-kicker, .mall-group-title, .mall-group-summary, .mall-group-actions { display: flex; align-items: center; }
.mall-group-kicker { justify-content: space-between; gap: 12px; color: var(--blue-dark); font-size: 12px; font-weight: 760; }
.mall-group-pill { color: #fff; background: linear-gradient(135deg, var(--blue-dark), var(--blue)); }
.mall-group-title { align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 13px; }
.mall-group-title h3 { font-size: clamp(20px, 4vw, 27px); color: var(--ink); }
.mall-group-title p { margin-top: 4px; color: var(--muted); font-size: 13px; }
.mall-group-summary { display: grid; grid-template-columns: .7fr .8fr 1.5fr; gap: 8px; margin-top: 16px; }
.mall-work-types { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 15px; }
.mall-work-types > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 11px 12px; border: 1px solid #cce7f2; border-radius: 14px; background: #fff; color: var(--blue-dark); }
.mall-work-types span { font-size: 12px; font-weight: 760; }
.mall-work-types strong { display: grid; place-items: center; min-width: 27px; height: 27px; padding: 0 7px; border-radius: 9px; background: var(--pale); font-size: 13px; }
.mall-group-summary > div, .mall-group-summary > button { min-width: 0; padding: 10px 11px; border: 1px solid #d7ecf5; border-radius: 13px; background: rgba(255,255,255,.82); text-align: left; }
.mall-group-summary small, .mall-group-summary strong { display: block; }
.mall-group-summary small { color: var(--muted); font-size: 10px; line-height: 1.25; }
.mall-group-summary strong { margin-top: 4px; color: var(--blue-dark); font-size: 15px; line-height: 1.2; }
.mall-summary-open { cursor: pointer; font: inherit; transition: border-color .16s, background .16s, transform .16s; }
.mall-summary-open:hover { border-color: #73cae8; background: #e8f8fe; transform: translateY(-1px); }
.mall-summary-open small { color: var(--blue-dark); font-weight: 780; }
.mall-group-progress { height: 7px; margin-top: 12px; overflow: hidden; border-radius: 99px; background: #dceef5; }
.mall-group-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--mint), var(--cyan)); }
.mall-group-actions { justify-content: flex-start; gap: 9px; margin-top: 14px; }
.mall-group-actions .disabled { color: #8ca0a9; border-color: var(--line); background: #f3f6f7; cursor: not-allowed; }
.button.mall-toggle { min-height: 39px; color: #fff; border: 0; background: linear-gradient(135deg, var(--blue-dark), var(--blue), var(--cyan)); box-shadow: 0 7px 16px rgba(26,138,179,.24); text-align: center; }
.mall-tenant-list { display: grid; gap: 10px; padding: 14px; border-top: 1px solid #cce7f2; background: rgba(236,247,253,.68); }
.mall-subsection { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 3px 0; color: var(--blue-dark); }
.mall-subsection strong { font-size: 13px; }
.mall-subsection span { color: var(--muted); font-size: 11px; }
.tenant-job-card { position: relative; border-color: #cfe5ee; border-radius: 17px; box-shadow: 0 3px 10px rgba(38,112,140,.04); }
.tenant-job-card:before { content: ''; position: absolute; left: -1px; top: 16px; bottom: 16px; width: 4px; border-radius: 0 6px 6px 0; background: var(--mint); }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 45px; padding: 11px 16px; border: 0; border-radius: 14px; background: var(--blue); color: white; font-weight: 760; font-size: 14px; transition: filter .15s, transform .15s; }
.button:hover { filter: brightness(.96); transform: translateY(-1px); }
.button:disabled, .link-button:disabled, input:disabled { opacity: .52; cursor: not-allowed; transform: none; }
.button.secondary { color: var(--blue-dark); border: 1px solid #bde4f3; background: #f4fbfe; }
.button.ghost { color: var(--blue-dark); border: 1px solid var(--line); background: #fff; }
.button.danger { color: #af4040; border: 1px solid #f0c5c5; background: #fffafa; }
.button.warning { color: #8a5a13; border: 1px solid #efd29a; background: #fff8e9; }
.button.wide { width: 100%; }
.button.small { min-height: 35px; padding: 7px 10px; font-size: 12px; border-radius: 11px; }
.empty { padding: 34px 20px; text-align: center; border: 1px dashed #bbdbe7; border-radius: 18px; background: rgba(236,247,253,.6); color: var(--muted); }
.bottom-note { margin-top: 26px; padding: 13px 15px; border-radius: 14px; background: var(--pale); color: #59717e; font-size: 12px; line-height: 1.45; }
.master-notifications { margin-top: 20px; padding: 15px; border: 1px solid #a9ddef; border-radius: 18px; background: #eefaff; }
.master-notifications .section-title { margin: 0 0 10px; }
.master-notification { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border: 1px solid #c6e8f4; border-radius: 13px; background: #fff; }
.master-notification + .master-notification { margin-top: 8px; }
.master-notification.removed { border-color: #efcece; background: #fffafa; }
.master-notification strong { display: block; margin-top: 3px; color: var(--blue-dark); font-size: 15px; }
.master-notification.removed strong { color: #a14343; }
.master-notification p { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.notification-copy { min-width: 0; }
.notification-kind { color: var(--blue-dark); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.master-notification.removed .notification-kind { color: #a14343; }
.notification-job-meta { color: #506a77 !important; font-weight: 700; }
.notification-actions { display: flex; flex: 0 0 auto; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.offline-banner { margin-bottom: 17px; padding: 11px 13px; border: 1px solid #b9e0ee; border-radius: 13px; color: #176c88; background: #e8f8fd; font-size: 13px; line-height: 1.4; }
.build-version { margin-left: 6px; color: var(--blue-dark); font-weight: 760; white-space: nowrap; }
.modal-layer { position: fixed; inset: 0; z-index: 9; padding: 16px; overflow: auto; background: rgba(22,42,51,.38); backdrop-filter: blur(5px); }
.modal-layer.hidden, .hidden { display: none; }
#scheduleForm { display: grid; gap: 16px; margin-top: 20px; }
#scheduleForm label { display: grid; gap: 6px; }
#scheduleForm input { box-sizing: border-box; width: 100%; padding: 12px; border: 1px solid #b9cbd7; border-radius: 8px; font: inherit; }
.modal { width: min(760px, 100%); margin: max(2vh, 12px) auto; padding: clamp(20px, 4vw, 31px); border-radius: 26px; background: #fff; box-shadow: 0 24px 70px rgba(9,39,54,.25); }
.close { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 12px; color: #66808d; background: #eff7fa; font-size: 23px; }
.income-modal { width: min(680px, 100%); padding: 12px; background: #fff; }
.income-dashboard { position: relative; overflow: hidden; padding: clamp(21px, 5vw, 34px); border-radius: 23px; color: #fff; background: linear-gradient(135deg, var(--blue-dark) 0%, var(--blue) 58%, #63c6e9 100%); box-shadow: 0 14px 34px rgba(26,138,179,.22); }
.income-dashboard:after { content: ''; position: absolute; width: 240px; height: 240px; right: -120px; top: -145px; border: 28px solid rgba(255,255,255,.10); border-radius: 50%; pointer-events: none; }
.income-close { position: absolute; z-index: 2; top: 15px; right: 15px; color: #fff; background: rgba(255,255,255,.16); }
.income-head { position: relative; z-index: 1; display: flex; gap: 25px; align-items: flex-end; justify-content: space-between; padding-right: 38px; }
.income-kicker { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 690; opacity: .84; }
.income-total { display: block; font-size: clamp(38px, 8vw, 56px); line-height: 1; letter-spacing: -.055em; }
.income-progress-copy { text-align: right; }
.income-progress-copy strong { display: block; font-size: 22px; }
.income-progress-copy span { display: block; margin-top: 3px; font-size: 12px; opacity: .8; }
.income-progress-bar { height: 9px; margin: 24px 0 18px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.22); }
.income-progress-bar i { display: block; height: 100%; border-radius: inherit; background: var(--mint); box-shadow: 0 0 12px rgba(103,213,201,.45); }
.income-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; padding: 5px; border-radius: 15px; background: rgba(4,91,126,.22); }
.income-tabs button { min-height: 42px; padding: 8px; border: 0; border-radius: 11px; color: rgba(255,255,255,.78); background: transparent; font-size: 12px; font-weight: 750; }
.income-tabs button.active { color: #0f769a; background: #fff; box-shadow: 0 5px 13px rgba(14,91,121,.18); }
.income-range-caption { margin: 11px 0 0; text-align: center; color: rgba(255,255,255,.78); font-size: 11px; }
.income-custom-range { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; margin-top: 12px; align-items: end; }
.income-custom-range label { color: rgba(255,255,255,.78); font-size: 10px; font-weight: 700; }
.income-custom-range input { display: block; width: 100%; height: 42px; margin-top: 5px; padding: 0 9px; border: 1px solid rgba(255,255,255,.32); border-radius: 11px; color: var(--ink); background: #fff; }
.income-custom-range button { min-height: 42px; padding: 8px 13px; border: 0; border-radius: 11px; color: var(--blue-dark); background: #fff; font-weight: 780; }
.income-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 15px; }
.income-metrics > div { min-height: 84px; padding: 14px; border-radius: 15px; background: rgba(255,255,255,.15); backdrop-filter: blur(5px); }
.income-metrics span { display: block; margin-bottom: 8px; font-size: 11px; opacity: .78; }
.income-metrics strong { display: block; font-size: 21px; }
.income-stats { display: flex; gap: 12px 22px; margin-top: 17px; justify-content: center; flex-wrap: wrap; color: rgba(255,255,255,.78); font-size: 11px; }
.income-stats b { margin-left: 3px; color: #fff; font-size: 13px; }
.income-note { padding: 13px 12px 5px; color: var(--muted); text-align: center; font-size: 11px; line-height: 1.45; }
.detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 20px 0; }
.detail-grid > div {
  display: flex;
  min-width: 0;
  min-height: 78px;
  padding: 12px;
  flex-direction: column;
  align-items: flex-start;
  border-radius: 14px;
  background: #f7fbfd;
  overflow: visible;
}
.detail-grid > div > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; line-height: 1.25; }
.detail-grid > div > strong { display: flex; min-width: 0; min-height: 28px; align-items: center; font-size: 14px; line-height: 1.25; }
.detail-grid .status-pill { display: inline-flex; margin: 0; line-height: 1.2; }
.detail-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.income-earned { color: var(--blue-dark); font-size: 18px !important; }
.income-lost { color: #a33d3d; }
.false-call-income, .false-call-approved-text { color: #187763; }
.false-call-rejected-text { color: #a33d3d; }
.false-call-pending-text { color: #8a5a13; }
.not-completed-summary .false-call-approved-text { color: #187763; }
.not-completed-summary .false-call-rejected-text { color: #a33d3d; }
.not-completed-summary .false-call-pending-text { color: #8a5a13; }
.income-period-controls { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; margin: 20px 0 4px; align-items: end; }
.income-period-controls label { color: var(--muted); font-size: 12px; font-weight: 720; }
.income-period-controls input { display: block; width: 100%; height: 46px; margin-top: 6px; padding: 0 11px; border: 1px solid #cfe1e9; border-radius: 13px; background: #fff; color: var(--ink); }
.callout { padding: 14px; border-left: 3px solid var(--cyan); border-radius: 0 12px 12px 0; background: #f2fbfe; font-size: 14px; line-height: 1.45; }
.callout > strong { display: block; margin-bottom: 5px; color: var(--blue-dark); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
.callout > p { margin: 0; }
.contact-list { display: grid; gap: 9px; margin-top: 12px; }
.contact { padding: 13px; border: 1px solid var(--line); border-radius: 14px; }
.contact-name { font-size: 14px; font-weight: 780; }
.contact-role, .contact-phone { display: inline-block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.contact-actions { display: flex; gap: 7px; margin-top: 10px; flex-wrap: wrap; }
.invalid-contact-form { margin-top: 12px; padding: 12px; border: 1px solid #f0cccc; border-radius: 12px; background: #fffafa; }
.invalid-contact-form label { display: block; margin-bottom: 7px; color: #963e3e; font-size: 12px; font-weight: 760; }
.invalid-contact-form .optional-label { margin-top: 11px; color: var(--muted); }
.invalid-contact-form textarea { min-height: 72px; border-color: #ecc5c5; background: #fff; }
.invalid-contact-actions { display: flex; gap: 8px; margin-top: 9px; flex-wrap: wrap; }
.invalid-contact-note { margin-top: 9px; padding-left: 9px; border-left: 2px solid #e8aaaa; color: #8a6262; font-size: 11px; line-height: 1.45; }
.not-completed-action { display: grid; gap: 8px; margin-top: 12px; }
.not-completed-form { padding: 13px; border: 1px solid #efc7c7; border-radius: 14px; background: #fff8f8; }
.not-completed-form > label, .not-completed-form .action-row label { display: block; margin-bottom: 7px; color: #943f3f; font-size: 12px; font-weight: 760; }
.not-completed-form .optional-label { margin-top: 11px; color: var(--muted); }
.not-completed-form textarea { min-height: 76px; border-color: #ebc9c9; background: #fff; }
.not-completed-form > small { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.advance-call-question { margin-top: 11px; padding-top: 11px; border-top: 1px solid #efd7d7; }
.advance-call-question > span { display: block; margin-bottom: 7px; color: #765454; font-size: 12px; font-weight: 760; }
.advance-call-question .checkline { margin: 0; background: #fff; }
.not-completed-summary { padding: 15px; border: 1px solid #efc5c5; border-radius: 15px; background: #fff7f7; }
.not-completed-summary strong { color: #a33d3d; }
.not-completed-summary p { margin: 6px 0; color: #765454; font-size: 13px; line-height: 1.45; }
.not-completed-summary small { color: var(--muted); font-size: 11px; line-height: 1.4; }
.no-answer-form { margin-top: 12px; padding: 12px; border: 1px solid #efd9ad; border-radius: 12px; background: #fffaf0; }
.no-answer-form > strong { display: block; color: #805414; font-size: 12px; }
.no-answer-form > p { margin: 5px 0 10px; color: #826d4d; font-size: 11px; line-height: 1.4; }
.no-answer-form textarea { min-height: 72px; border-color: #ead5ab; background: #fff; }
.link-button.warning { color: #8a5a13; border-color: #efd29a; background: #fffaf0; }
.no-answer-pill { color: #8a5a13; background: #fff3dc; }
.all-contacts-no-answer { margin-top: 12px; padding: 12px; border: 1px solid #efd9ad; border-radius: 14px; background: #fffaf0; }
.all-contacts-no-answer > p { margin-top: 7px; color: #826d4d; font-size: 11px; line-height: 1.45; }
.all-contacts-no-answer .no-answer-form { padding: 0; border: 0; background: transparent; }
.inline-add-form { margin-top: 9px; padding: 12px; border: 1px solid #bde4f3; border-radius: 13px; background: #f4fbfe; }
.inline-add-form > label { display: block; margin-bottom: 7px; color: var(--blue-dark); font-size: 12px; font-weight: 760; }
.chemical-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.chemical-item { min-width: 0; }
.chemical-choice { position: relative; min-width: 0; }
.chemical-choice input { position: absolute; opacity: 0; pointer-events: none; }
.chemical-choice span { display: flex; min-height: 42px; padding: 9px 11px; align-items: center; border: 1px solid var(--line); border-radius: 12px; color: #526a76; background: #fff; font-size: 12px; line-height: 1.3; cursor: pointer; }
.chemical-choice span:before { content: '✓'; display: grid; place-items: center; width: 18px; height: 18px; margin-right: 8px; flex: 0 0 auto; border: 1px solid #b9d6e1; border-radius: 6px; color: transparent; background: #fff; font-size: 12px; font-weight: 900; }
.chemical-choice input:checked + span { color: var(--blue-dark); border-color: #82cde7; background: #eaf8fd; font-weight: 740; }
.chemical-choice input:checked + span:before { color: #fff; border-color: var(--blue); background: var(--blue); }
.chemical-choice input:focus-visible + span { outline: 3px solid rgba(21,197,244,.35); outline-offset: 2px; }
.chemical-quantity { display: grid; grid-template-columns: 1fr 92px; gap: 8px; align-items: center; margin-top: 6px; padding: 7px 8px; border: 1px solid #cce6f1; border-radius: 11px; color: var(--muted); background: #f7fcfe; font-size: 11px; font-weight: 700; }
.chemical-quantity input { width: 100%; min-height: 34px; padding: 6px 8px; text-align: center; }
.link-button { display: inline-flex; align-items: center; min-height: 31px; padding: 6px 9px; color: var(--blue-dark); border: 1px solid #c9e7f2; border-radius: 9px; background: #f8fdff; text-decoration: none; font-size: 12px; font-weight: 720; }
.link-button.red { color: #af4545; border-color: #f0cccc; background: #fffafa; }
.form-section { margin-top: 24px; }
.form-section > label, .field-label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 780; }
.field-label small { color: var(--muted); font-size: 12px; font-weight: 540; }
.issue-section { padding: 16px; border: 1px solid #c9e7f2; border-radius: 17px; background: #f8fdff; }
.section-title.compact { margin: 0 0 12px; }
.section-title.compact h3 { font-size: 17px; }
.issue-table { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.issue-table-head { display: grid; grid-template-columns: .9fr 1.1fr; gap: 12px; padding: 9px 12px 9px 45px; color: var(--muted); background: #f1f8fb; font-size: 11px; font-weight: 780; }
.issue-row { display: grid; grid-template-columns: 22px .9fr 1.1fr; gap: 12px; min-height: 58px; padding: 10px 12px; align-items: center; border-top: 1px solid var(--line); cursor: pointer; }
.issue-table-head + .issue-row { border-top: 0; }
.issue-row:hover { background: #f7fcfe; }
.issue-row:has(input:checked) { background: #eaf8fd; }
.issue-row input { width: 19px; height: 19px; accent-color: var(--blue); }
.issue-problem { color: var(--ink); font-size: 12px; font-weight: 750; line-height: 1.35; }
.issue-recommendation { color: #55707c; font-size: 12px; line-height: 1.4; }
.auto-recommendations { margin-top: 10px; padding: 11px 13px; border: 1px solid #bce5d9; border-radius: 13px; color: #356d64; background: #f0fbf8; font-size: 12px; line-height: 1.45; }
.auto-recommendations strong { display: block; margin-bottom: 5px; color: #247365; }
.auto-recommendations ul { margin: 0; padding-left: 18px; }
.auto-recommendations li + li { margin-top: 3px; }
.additional-issue { margin-top: 11px; padding: 0 12px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.additional-issue summary { padding: 12px 0; color: var(--blue-dark); font-size: 13px; font-weight: 780; cursor: pointer; }
.additional-issue > p { margin: -3px 0 12px; color: var(--muted); font-size: 11px; }
.additional-issue .action-row label { font-size: 12px; font-weight: 760; }
.additional-issue textarea { min-height: 78px; }
.conditional-comment { margin-top: 12px; padding: 14px; border: 1px solid #bfe5f3; border-radius: 16px; background: #f3fbff; }
.conditional-comment .action-row { margin-bottom: 8px; }
.conditional-comment label { margin: 0; font-weight: 800; color: var(--ink); }
.conditional-comment textarea { min-height: 82px; }
.pest-location-report { border-left-color: var(--mint); }
.additional-recommendation-label { margin-top: 12px; }
.segmented { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.segmented.treatment-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.segmented.three { grid-template-columns: repeat(3, 1fr); }
.segmented.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.segmented button { min-height: 45px; padding: 9px; color: #69808c; border: 1px solid var(--line); border-radius: 13px; background: #fff; font-size: 13px; font-weight: 680; }
.segmented.treatment-types button { min-height: 54px; }
.segmented button.selected { color: var(--blue-dark); border-color: #88d2e9; background: #e9f9fd; box-shadow: inset 0 0 0 1px #b7e7f3; }
select, textarea, input[type="text"] { width: 100%; border: 1px solid #cfe1e9; border-radius: 13px; background: #fff; color: var(--ink); }
input[type="date"].date-control { width: auto; height: 43px; padding: 0 10px; border: 1px solid #cfe1e9; border-radius: 12px; background: #fff; color: var(--ink); }
select, input[type="text"] { height: 46px; padding: 0 12px; }
textarea { min-height: 105px; padding: 12px; resize: vertical; line-height: 1.45; }
.uploader { display: block; padding: 19px; border: 1.5px dashed #9bc8d9; border-radius: 16px; background: #f9fdff; text-align: center; color: var(--blue-dark); font-size: 14px; font-weight: 760; }
.uploader input { display: none; }
.uploader small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; font-weight: 500; }
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 9px; margin-top: 11px; }
.photo-preview { position: relative; aspect-ratio: 1.25; overflow: hidden; border-radius: 12px; background: #ecf7fd; }
.photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.photo-preview video { width: 100%; height: 100%; object-fit: cover; background: #1f2a33; }
.photo-preview span { position: absolute; right: 4px; bottom: 4px; padding: 3px 5px; border-radius: 5px; color: white; background: rgba(0,0,0,.62); font-size: 9px; }
.remove-media { position: absolute; top: 5px; right: 5px; z-index: 1; width: 23px; height: 23px; padding: 0; border: 0; border-radius: 50%; color: white; background: rgba(31,42,51,.72); font-size: 18px; line-height: 1; }
.checkline { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.checkline input { width: 19px; height: 19px; accent-color: var(--blue); }
.checkline strong { display: block; font-size: 14px; }
.checkline small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.report-actions { display: flex; gap: 10px; margin-top: 22px; }
.report-actions > * { flex: 1; }
.draft-status { margin-top: 16px; color: var(--muted); text-align: center; font-size: 11px; }
.upload-status { min-height: 18px; margin-top: -5px; }
.tenant-photo-rule { margin-top: 15px; padding: 12px 14px; border: 1px solid #a9ddef; border-radius: 13px; color: #176c88; background: #eaf8fd; font-size: 12px; font-weight: 750; }
.dispatcher-layout { display: grid; grid-template-columns: 1.3fr .7fr; gap: 22px; margin-top: 24px; }
.notion-source-note { margin-top: 16px; padding: 12px 14px; border: 1px solid #c4e7f3; border-radius: 14px; color: #4e6c79; background: #f1faff; font-size: 12px; line-height: 1.45; }
.dispatch-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.dispatch-summary > div { min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.dispatch-summary span, .dispatch-summary strong { display: block; }
.dispatch-summary span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dispatch-summary strong { margin-top: 4px; color: var(--blue-dark); font-size: 21px; }
.dispatch-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; }
.dispatcher-head-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dispatch-pending-note { margin-top: 10px; padding: 10px 13px; border: 1px solid #efd49e; border-radius: 12px; color: #805b18; background: #fff8e9; font-size: 12px; }
.dispatch-conflict-note { margin-top: 10px; padding: 11px 13px; border: 1px solid #efc7c7; border-radius: 12px; color: #8e4141; background: #fff7f7; font-size: 12px; line-height: 1.45; }
.dispatcher-map { margin-top: 16px; }
.map-title { margin-top: 0; }
.dispatcher-map-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr); gap: 13px; }
.dispatcher-map iframe { width: 100%; min-height: 360px; border: 1px solid #cde5ef; border-radius: 16px; background: var(--pale); }
.map-stop-list { max-height: 360px; margin: 0; padding: 4px 4px 4px 0; overflow: auto; list-style: none; }
.map-stop-list li { display: flex; gap: 9px; padding: 10px 6px; border-bottom: 1px solid #edf3f6; }
.map-stop-list li > span { display: grid; place-items: center; width: 25px; height: 25px; flex: 0 0 auto; border-radius: 8px; color: #fff; background: var(--blue-dark); font-size: 11px; font-weight: 800; }
.map-stop-list strong, .map-stop-list small { display: block; }
.map-stop-list strong { font-size: 12px; line-height: 1.35; }
.map-stop-list small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.map-route-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.map-limit-note { margin-top: 8px; }
.dispatch-mall-group { margin: 12px 0; overflow: hidden; border: 1px solid #b9e1f1; border-radius: 16px; background: #f8fdff; }
.dispatch-mall-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #eaf8fd; }
.dispatch-mall-head div { min-width: 0; }
.dispatch-mall-head span, .dispatch-mall-head strong { display: block; }
.dispatch-mall-head span { color: var(--blue-dark); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.dispatch-mall-head strong { margin-top: 3px; font-size: 14px; }
.dispatch-mall-head small { color: var(--muted); font-size: 11px; }
.dispatch-mall-actions { display: flex; min-width: 190px; align-items: flex-end; flex-direction: column; gap: 7px; }
.dispatch-mall-toggle { padding: 7px 10px; border: 1px solid #9fd9ee; border-radius: 10px; color: var(--blue-dark); background: #fff; font: inherit; font-size: 11px; font-weight: 780; cursor: pointer; }
.dispatch-mall-toggle:hover { border-color: var(--blue); background: #f3fbff; }
.dispatch-mall-toggle:focus-visible { outline: 3px solid rgba(21, 197, 244, .28); outline-offset: 2px; }
.dispatch-mall-label { padding: 9px 14px 1px; color: var(--blue-dark); font-size: 11px; font-weight: 800; }
.dispatch-mall-group .assignment { margin: 0 14px; }
.dispatch-status { display: inline-block; margin-top: 6px; color: #33806f; font-size: 10px; font-weight: 760; }
.dispatch-status.pending { padding: 3px 7px; border-radius: 7px; color: #8a5a13; background: #fff2d6; }
.long-tail-summary { display: flex; align-items: baseline; gap: 9px; padding: 16px; border-radius: 14px; background: var(--pale); }
.long-tail-summary strong { color: var(--blue-dark); font-size: 25px; }
.long-tail-summary span { color: var(--muted); font-size: 12px; }
.weekly-long-tail-list { display: grid; gap: 8px; margin-top: 10px; }
.weekly-long-tail-row { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid #c8e8f3; border-radius: 13px; color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
.weekly-long-tail-row:hover { border-color: var(--blue); background: #f4fbff; }
.weekly-long-tail-row span, .weekly-long-tail-row strong, .weekly-long-tail-row small { display: block; }
.weekly-long-tail-row span { min-width: 0; }
.weekly-long-tail-row strong { font-size: 13px; }
.weekly-long-tail-row small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.weekly-long-tail-row b { flex: 0 0 auto; color: var(--blue-dark); font-size: 11px; }
.panel { padding: 18px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.panel + .panel { margin-top: 14px; }
.assignment { display: grid; grid-template-columns: 1fr auto; gap: 9px; align-items: center; padding: 14px 0; border-bottom: 1px solid #edf3f6; }
.assignment:last-child { border-bottom: 0; }
.assignment > div:first-child { min-width: 0; }
.assignment-title { display: block; max-width: 100%; font-weight: 780; font-size: 14px; line-height: 1.35; }
.assignment-open { padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; }
.assignment-open:hover { color: var(--blue-dark); text-decoration: underline; }
.assignment small { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.assignment-address { margin-top: 7px !important; color: #506a77 !important; }
.master-recommendations { display: flex; gap: 7px; margin-top: 9px; flex-wrap: wrap; }
.master-recommendations > span { display: grid; gap: 2px; min-width: 145px; padding: 7px 9px; border: 1px solid #bfe5f3; border-radius: 11px; background: #f0faff; }
.master-recommendations > span.backup { border-color: #d7e7ec; background: #f7fafb; }
.master-recommendations.missing > span { border-color: #ead5ab; background: #fffaf0; }
.master-recommendations small { color: #66808c; font-size: 9px; font-weight: 700; }
.master-recommendations strong { color: var(--blue-dark); font-size: 11px; }
.modal > .master-recommendations { margin: 16px 0 0; }
.modal > .master-recommendations > span { flex: 1 1 210px; padding: 11px 13px; }
.modal > .master-recommendations small { font-size: 10px; }
.modal > .master-recommendations strong { font-size: 14px; }
.assignment.has-warning { margin: 5px 0; padding: 13px 10px; border: 1px solid #efc7c7; border-radius: 13px; background: #fffafa; }
.schedule-warning { display: block; width: fit-content; margin-top: 6px; padding: 4px 7px; border-radius: 7px; color: #a14343; background: #fff0f0; font-size: 10px; font-weight: 760; }
.night-pill { width: fit-content; margin-top: 8px; color: #425590; background: #edf0ff; }
.assignment select { width: 235px; height: 39px; font-size: 12px; }
.assignment-controls { display: grid; gap: 7px; width: 235px; }
.assignment-controls select { width: 100%; }
.assignment-locked { display: grid; gap: 3px; padding: 10px 12px; border: 1px solid #c8e8f3; border-radius: 13px; background: #f2faff; }
.assignment-locked small { margin: 0; color: var(--muted); font-size: 9px; font-weight: 720; text-transform: uppercase; }
.assignment-locked strong { color: var(--ink); font-size: 13px; }
.assignment-locked span { color: #33806f; font-size: 10px; font-weight: 760; }
.assignment-issue { display: block; margin-top: 6px; color: #a33d3d; font-size: 11px; font-weight: 720; }
.master-row { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid #edf3f6; }
.master-row:last-child { border-bottom: 0; }
.master-row .avatar { width: 35px; height: 35px; border-radius: 11px; font-size: 11px; }
.master-row strong { font-size: 13px; }
.master-row span { margin-left: auto; color: var(--blue-dark); font-size: 12px; font-weight: 800; }
.master-load + .master-load { border-top: 1px solid #edf3f6; }
.master-load .master-row { border-bottom: 0; }
.master-load-metrics { display: flex; gap: 6px; padding: 0 0 10px 45px; flex-wrap: wrap; }
.master-load-metrics span { padding: 4px 7px; border-radius: 8px; color: #4f6b78; background: var(--pale); font-size: 10px; font-weight: 720; }
.load-warning { margin: -4px 0 10px 45px; color: #a14343; font-size: 10px; font-weight: 760; }
.alert { padding: 13px; border: 1px solid #f2d3bf; border-radius: 14px; background: #fffaf4; }
.alert + .alert { margin-top: 9px; }
.report-summary { margin-top: 18px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: #f9fdff; }
.report-summary h3 { margin-bottom: 7px; }
.report-summary p + p { margin-top: 7px; }
.report-text { white-space: pre-wrap; font-size: 14px; line-height: 1.45; }
.report-issues { margin-top: 12px; overflow: hidden; border: 1px solid #c9e7f2; border-radius: 13px; background: #fff; }
.report-issues h4 { padding: 9px 11px; color: var(--blue-dark); background: #edf8fc; font-size: 12px; }
.report-issue-row { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10px; padding: 10px 11px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.4; }
.report-issue-row strong { color: var(--ink); }
.report-issue-row span { color: #55707c; }
.report-issue-row.additional { background: #fffdf6; }
.report-work-comment { margin-top: 12px; padding: 10px 11px; border-left: 3px solid var(--blue); border-radius: 0 10px 10px 0; background: #eef9fd; }
.report-work-comment > strong { color: var(--blue-dark); font-size: 11px; }
.report-work-comment .report-text { margin-top: 4px; }
.report-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; margin-top: 12px; }
.report-media, .report-video { overflow: hidden; min-height: 96px; border-radius: 10px; background: #eaf4f8; }
.report-media img, .report-video { width: 100%; height: 100%; object-fit: cover; }
.alert strong { display: block; color: #995124; font-size: 13px; }
.alert p { margin-top: 5px; color: #776250; font-size: 12px; line-height: 1.4; }
.alert.resolved { opacity: .82; border-color: #cfe4dc; background: #f5fbf8; }
.alert-resolution { display: grid; gap: 8px; margin-top: 11px; padding-top: 11px; border-top: 1px solid rgba(138,104,68,.16); }
.alert-resolution label, .report-review-actions > label { color: #5e727c; font-size: 11px; font-weight: 760; }
.alert-resolution select, .alert-resolution textarea { width: 100%; margin-top: 5px; }
.alert-resolution textarea { min-height: 66px; background: #fff; }
.alert-owner-note { display: grid; gap: 4px; margin-top: 10px; padding: 11px 13px; border-radius: 13px; background: #ecf7fd; color: #1f2a33; }
.alert-owner-note small { color: #657985; line-height: 1.4; }
.task-resolution { margin-top: 9px; padding: 9px; border-radius: 10px; color: #356e61; background: #eaf7f2; }
.task-resolution strong { color: #24705e; }
.task-resolution p { color: #4b6e66; }
.resolved-tasks { margin-top: 12px; }
.resolved-tasks summary { padding: 9px 2px; color: var(--blue-dark); cursor: pointer; font-size: 12px; font-weight: 760; }
.task-filters { display: flex; gap: 5px; margin-top: 10px; overflow-x: auto; scrollbar-width: none; }
.task-filters .tab { padding: 7px 9px; font-size: 10px; }
.task-limit { margin-top: 9px; }
.task-overflow-note { margin-top: 12px; padding: 11px 13px; border: 1px solid #b9e6f6; border-radius: 14px; background: #ecf7fd; color: #176a89; font-size: 14px; line-height: 1.45; }
.report-review-actions { display: grid; gap: 9px; margin-top: 13px; padding: 13px; border: 1px solid #c5e5f1; border-radius: 14px; background: #f3fbfe; }
.report-review-actions textarea { min-height: 72px; background: #fff; }
.review-comment { margin-top: 10px; padding: 10px; border-left: 3px solid #f0b756; border-radius: 0 10px 10px 0; background: #fff8e9; }
.review-comment strong { color: #805b18; font-size: 11px; }
.review-comment p { color: #705c37; font-size: 12px; }
.weekly-summary { margin-top: 22px; }
.table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; }
.summary-table { width: 100%; min-width: 760px; border-collapse: collapse; text-align: left; font-size: 12px; }
.summary-table th { padding: 10px 12px; color: #59717e; background: var(--pale); font-weight: 780; white-space: nowrap; }
.summary-table td { padding: 11px 12px; border-top: 1px solid var(--line); vertical-align: top; }
.summary-table td strong, .summary-table td small { display: block; }
.summary-table td small { margin-top: 3px; color: var(--muted); }
.role-menu { position: fixed; top: 66px; right: max(18px, calc((100vw - 1080px) / 2 + 18px)); z-index: 8; width: 250px; padding: 9px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 12px 35px rgba(30,67,85,.18); }
.role-menu button { width: 100%; padding: 10px; text-align: left; border: 0; border-radius: 10px; background: transparent; color: var(--ink); font-size: 13px; }
.role-menu button:hover { background: var(--pale); }
.toast { position: fixed; right: 18px; bottom: 18px; z-index: 20; max-width: 330px; padding: 13px 16px; color: white; border-radius: 13px; background: #1f596f; box-shadow: 0 12px 29px rgba(23,57,72,.25); font-size: 13px; }
@media (max-width: 680px) { main { padding-top: 21px; } .dispatcher-layout, .dispatcher-map-grid { grid-template-columns: 1fr; } .dispatch-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dispatch-summary > div:last-child { grid-column: 1 / -1; } .dispatcher-map iframe { min-height: 290px; } .map-stop-list { max-height: 270px; } .dispatch-toolbar, .dispatcher-head-actions { align-items: stretch; flex-direction: column; } .dispatch-toolbar .button, .dispatcher-head-actions .button { width: 100%; } .dispatch-mall-head { align-items: stretch; flex-direction: column; } .dispatch-mall-actions { min-width: 0; align-items: stretch; } .dispatch-mall-toggle { width: 100%; } .detail-grid, .detail-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); } .assignment { grid-template-columns: 1fr; } .assignment-controls { width: 100%; } .assignment select { width: 100%; } .income-period-controls { grid-template-columns: 1fr 1fr; } .income-period-controls .button { grid-column: 1 / -1; } .work-range-controls { grid-template-columns: 1fr 1fr; } .work-range-controls.day-mode { grid-template-columns: 1fr; } .work-range-controls .button { width: 100%; } .job-search { grid-template-columns: 1fr auto; } .job-search .link-button { grid-column: 1 / -1; justify-self: start; } .report-actions { flex-direction: column-reverse; } .master-notification { align-items: stretch; flex-direction: column; } .notification-actions { justify-content: stretch; } .notification-actions .button { flex: 1 1 auto; } .issue-table-head { display: none; } .issue-row { grid-template-columns: 22px 1fr; gap: 6px 10px; padding: 12px; align-items: start; } .issue-row input { grid-row: 1 / span 2; } .issue-recommendation { grid-column: 2; } .issue-recommendation:before { content: 'Рекомендация: '; color: var(--blue-dark); font-weight: 760; } .report-issue-row { grid-template-columns: 1fr; gap: 4px; } }
@media (max-width: 520px) { .segmented.four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 400px) { .segmented.three, .chemical-options, .income-period-controls { grid-template-columns: 1fr; } .detail-grid, .detail-grid.four { grid-template-columns: 1fr; } .income-period-controls .button { grid-column: auto; } .earning-period-tabs, .income-tabs { grid-template-columns: repeat(2, 1fr); } .earning-custom-range { grid-template-columns: 1fr 1fr; } .earning-custom-range button { grid-column: 1 / -1; } .earning-details { grid-template-columns: 1fr; } .income-head { align-items: flex-start; flex-direction: column; gap: 12px; } .income-progress-copy { text-align: left; } .income-custom-range { grid-template-columns: 1fr 1fr; } .income-custom-range button { grid-column: 1 / -1; } .income-metrics { grid-template-columns: 1fr; } .mall-location { align-items: stretch; flex-direction: column; } .mall-map-button { width: 100%; } .mall-group-head { padding: 15px; } .mall-group-summary { grid-template-columns: 1fr 1fr; } .mall-group-summary > :last-child { grid-column: 1 / -1; } .mall-group-actions { align-items: stretch; flex-direction: column; } .mall-toggle { text-align: center; } .mall-tenant-list { padding: 10px; } }
