:root { color-scheme: light; }
body { font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.scrollbar-thin::-webkit-scrollbar { width: 8px; height: 8px; }
.scrollbar-thin::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
.day-off {
  background-image: linear-gradient(135deg, rgba(148,163,184,.18) 25%, transparent 25%, transparent 50%, rgba(148,163,184,.18) 50%, rgba(148,163,184,.18) 75%, transparent 75%, transparent);
  background-size: 10px 10px;
}
.order-card.dragging { opacity: .42; transform: scale(.985); }
.drop-active { outline: 2px dashed #2563eb; outline-offset: -3px; background-color: #eff6ff; }
body.warm-gray {
  background: #d8d8d5;
  color: #23262b;
}
.warm-gray .bg-white {
  background-color: #f0f0ed !important;
}
.warm-gray .bg-slate-50 {
  background-color: #e6e6e2 !important;
}
.warm-gray .bg-slate-100 {
  background-color: #dadad5 !important;
}
.warm-gray .bg-blue-50,
.warm-gray .bg-blue-100 {
  background-color: #dce5ee !important;
}
.warm-gray .bg-red-50,
.warm-gray .bg-red-100 {
  background-color: #eadfdd !important;
}
.warm-gray .bg-emerald-50,
.warm-gray .bg-emerald-100 {
  background-color: #dce8df !important;
}
.warm-gray .bg-amber-50,
.warm-gray .bg-amber-100 {
  background-color: #ebe4d5 !important;
}
.warm-gray .bg-zinc-100 {
  background-color: #dddcd8 !important;
}
.warm-gray .border-slate-100,
.warm-gray .border-slate-200,
.warm-gray .border-slate-300 {
  border-color: #b8bbb8 !important;
}
.warm-gray .ring-slate-200,
.warm-gray .ring-slate-300 {
  --tw-ring-color: #c1c4c1 !important;
}
.warm-gray .text-slate-400,
.warm-gray .text-slate-500,
.warm-gray .text-slate-600 {
  color: #66706d !important;
}
.warm-gray .text-slate-700,
.warm-gray .text-slate-800,
.warm-gray .text-slate-900 {
  color: #23262b !important;
}
.client-strong {
  color: #0f172a;
  font-weight: 900;
  line-height: 1.12;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.client-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.client-full {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.warm-gray input,
.warm-gray select,
.warm-gray textarea {
  background-color: #f4f4f1 !important;
  color: #23262b !important;
  border-color: #b8bbb8 !important;
}
.warm-gray input::placeholder,
.warm-gray textarea::placeholder {
  color: #7a817e !important;
}
.warm-gray .order-card {
  background-color: #f7f7f3 !important;
  border-color: #bfc2be !important;
}
.warm-gray .drop-zone {
  background-color: #ecece8 !important;
}
.warm-gray .day-off {
  background-color: #e1e1dc !important;
}
.warm-gray .shadow-sm,
.warm-gray .shadow-xl {
  box-shadow: 0 8px 24px rgba(38, 38, 38, .12) !important;
}
body.installer-mobile {
  background: #e3e3df;
}
body.installer-mobile .h-screen {
  min-height: 100dvh;
  height: auto;
}
body.installer-mobile header {
  display: none;
  position: sticky;
  top: 0;
  z-index: 60;
}
body.installer-mobile.mobile-controls-open header {
  display: none;
}
body.installer-mobile.mobile-controls-open #homeLogo,
body.installer-mobile.mobile-controls-open header > div:first-child > div:first-child,
body.installer-mobile.mobile-controls-open header nav,
body.installer-mobile.mobile-controls-open #viewSelect,
body.installer-mobile.mobile-controls-open #statusFilter,
body.installer-mobile.mobile-controls-open header label:not(#searchWrap) {
  display: none !important;
}
body.installer-mobile.mobile-controls-open header > div:first-child {
  padding: 6px 10px;
}
body.installer-mobile.mobile-controls-open header > div:nth-child(2) {
  padding: 6px 10px;
}
body.installer-mobile.mobile-controls-open header > div:first-child > div:nth-child(2) {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
}
body.installer-mobile.mobile-controls-open #searchWrap {
  grid-column: 1;
  grid-row: 1;
  width: 100% !important;
  min-width: 0;
}
body.installer-mobile.mobile-controls-open #searchWrap #searchInput {
  opacity: 1 !important;
  pointer-events: auto !important;
  width: 100% !important;
  padding-right: 8px !important;
}
body.installer-mobile.mobile-controls-open #periodHint {
  display: none;
}
body.installer-mobile.mobile-controls-open #periodQuickControls {
  grid-column: 1 / -1;
  grid-row: 2 / span 2;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  gap: 6px;
}
body.installer-mobile.mobile-controls-open .period-quick[data-period="prev-day"],
body.installer-mobile.mobile-controls-open .period-quick[data-period="today"],
body.installer-mobile.mobile-controls-open .period-quick[data-period="next-day"],
body.installer-mobile.mobile-controls-open .period-quick[data-period="prev-week"],
body.installer-mobile.mobile-controls-open .period-quick[data-period="week"],
body.installer-mobile.mobile-controls-open .period-quick[data-period="next-week"] {
  padding-left: 6px;
  padding-right: 6px;
  min-width: 0;
}
body.installer-mobile.mobile-controls-open .period-quick[data-period="prev-week"] {
  grid-column: 1;
}
body.installer-mobile.mobile-controls-open .period-quick[data-period="week"] {
  grid-column: 2;
}
body.installer-mobile.mobile-controls-open .period-quick[data-period="next-week"] {
  grid-column: 3;
}
body.installer-mobile main {
  display: block;
  min-height: auto;
}
body.installer-mobile #planView,
body.installer-mobile #ordersView,
body.installer-mobile #installersView,
body.installer-mobile #historyView,
body.installer-mobile #usersView,
body.installer-mobile #adminView,
body.installer-mobile aside {
  display: none !important;
}
body.installer-mobile #installerMobileView {
  display: block !important;
}
body.installer-mobile #mobileServiceTitle {
  display: none;
}
body.installer-mobile.mobile-controls-open #userBadge {
  display: flex !important;
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  align-self: center;
  width: auto;
  min-width: 0;
  padding: 0;
  background: transparent !important;
}
body.installer-mobile.mobile-controls-open #userName {
  display: none;
}
body.installer-desktop #installerMobileView {
  display: none !important;
}
body.mobile-dispatcher-mode {
  background: #e3e3df;
}
body.mobile-dispatcher-mode .h-screen {
  min-height: 100dvh;
  height: auto;
}
body.mobile-dispatcher-mode header {
  display: none;
}
body.mobile-dispatcher-mode main {
  display: block;
  min-height: auto;
}
body.mobile-dispatcher-mode #planView,
body.mobile-dispatcher-mode #ordersView,
body.mobile-dispatcher-mode #installersView,
body.mobile-dispatcher-mode #historyView,
body.mobile-dispatcher-mode #usersView,
body.mobile-dispatcher-mode #adminView,
body.mobile-dispatcher-mode #installerMobileView,
body.mobile-dispatcher-mode aside {
  display: none !important;
}
body.mobile-dispatcher-mode #mobileDispatcherView {
  display: block !important;
}
body:not(.mobile-dispatcher-mode) #mobileDispatcherView {
  display: none !important;
}
body:not(.mobile-dispatcher-mode) #mobileDispatcherSheet {
  display: none !important;
}
body.mobile-dispatcher-mode #mobileDispatcherView input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 0;
}
body.mobile-dispatcher-mode #mobileDispatcherView input[type="date"]::-webkit-calendar-picker-indicator {
  display: none;
  -webkit-appearance: none;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  opacity: 0;
}
body.installer-mobile #excelStatus,
body.installer-mobile #installerDropdownButton,
body.installer-mobile #visibleCounter + span,
body.installer-mobile #visibleCounter + span + span {
  display: none !important;
}
#filterPanel.orders-filter-compact {
  width: min(540px, calc(100vw - 16px));
  padding: 8px;
  border-radius: 10px;
}
#filterPanel.plan-filter-compact {
  width: min(420px, calc(100vw - 16px));
  padding: 8px;
  border-radius: 10px;
}
#filterPanel.plan-filter-compact .filter-fields-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
#filterPanel.plan-filter-compact .filter-period-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-top: 6px;
}
#filterPanel.plan-filter-compact #resetFiltersButton {
  grid-column: 1 / -1;
}
#filterPanel.orders-filter-compact .filter-fields-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
#filterPanel.orders-filter-compact .filter-period-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-top: 6px;
}
#filterPanel.orders-filter-compact select,
#filterPanel.orders-filter-compact #installerDropdownButton,
#filterPanel.orders-filter-compact #toolDropdownButton,
#filterPanel.orders-filter-compact #resetFiltersButton,
#filterPanel.plan-filter-compact #installerDropdownButton,
#filterPanel.plan-filter-compact #toolDropdownButton,
#filterPanel.plan-filter-compact #resetFiltersButton {
  height: 30px;
  border-radius: 8px;
  padding-left: 8px;
  padding-right: 8px;
  font-size: 11px;
}
#filterPanel.orders-filter-compact .filter-period-row label {
  min-width: 0;
  height: 30px;
  border-radius: 8px;
  padding-left: 8px;
  padding-right: 8px;
}
#filterPanel.orders-filter-compact .filter-period-row input {
  height: 24px;
  font-size: 11px;
}
#filterPanel.plan-filter-compact .filter-period-row label {
  min-width: 0;
  height: 30px;
  border-radius: 8px;
  padding-left: 8px;
  padding-right: 8px;
}
#filterPanel.plan-filter-compact .filter-period-row input {
  height: 24px;
  font-size: 11px;
}
#filterPanel.orders-filter-compact #periodHint {
  grid-column: 1 / -1;
  padding: 4px 8px;
  font-size: 10px;
  line-height: 1.2;
}
#filterPanel.plan-filter-compact #periodHint {
  grid-column: 1 / -1;
  padding: 4px 8px;
  font-size: 10px;
  line-height: 1.2;
}
@media (max-width: 560px) {
  #filterPanel.orders-filter-compact .filter-fields-grid,
  #filterPanel.orders-filter-compact .filter-period-row,
  #filterPanel.plan-filter-compact .filter-fields-grid,
  #filterPanel.plan-filter-compact .filter-period-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  body.installer-mobile header > div:first-child {
    align-items: stretch;
    padding: 10px 12px;
  }
  body.installer-mobile.mobile-controls-open header > div:first-child > div:nth-child(2) {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  body.installer-mobile header nav {
    margin-left: 0;
    margin-top: 10px;
    width: 100%;
    overflow-x: auto;
  }
  body.installer-mobile #searchInput {
    height: 34px;
    font-size: 12px;
  }
}
#searchWrap {
  width: 36px;
  transition: width .18s ease;
}
#searchWrap.search-open,
#searchWrap:focus-within {
  width: min(320px, 30vw);
}
#searchWrap:not(.search-open):not(:focus-within) #searchInput {
  opacity: 0;
  pointer-events: none;
  padding-right: 0;
  width: 0;
}
#searchWrap:not(.search-open):not(:focus-within) {
  cursor: pointer;
}
