/* Planner and shared order card follow the existing app tokens. */
select {font:inherit;font-size:16px;width:100%;min-width:0;min-height:46px;padding:10px 12px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:10px;}
select:focus-visible {outline:3px solid var(--blue);outline-offset:3px;}
[hidden] {display:none!important;}
.planner {min-width:0;display:grid;gap:8px;}
.planner-toolbar,.planner-day-actions,.date-strip-heading,.date-arrows,.time-controls,.zoom-controls {display:flex;align-items:center;gap:8px;}
.planner-toolbar,.date-strip-heading,.time-controls {justify-content:space-between;}
.planner-day-actions input {width:170px;}
.planner-date-label {font-size:18px;}
.zoom-button {height:44px;min-width:44px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--blue);font:inherit;font-size:22px;font-weight:600;line-height:1;display:grid;place-items:center;}
.zoom-label {width:72px;text-align:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;}
.planner-dates {display:flex;gap:8px;align-items:center;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain;padding:1px 0 3px;position:relative;min-width:0;}
.date-tile {flex:0 0 calc((100% - 48px)/7.15);height:56px;min-width:66px;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:2px 6px;}
.date-tile strong {font-size:20px;font-weight:650;line-height:24px;}
.date-tile .day-name,.date-tile .day-caption {font-size:11px;line-height:12px;color:var(--muted);}
.date-tile.today {flex-basis:calc((100% - 48px)/7.15 * 1.15);height:64px;}
.date-tile.today strong {font-size:24px;line-height:28px;}
.date-tile:focus-visible {outline-offset:-3px;}
.date-tile.selected {background:var(--blue-soft);color:var(--blue);border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);}
.date-tile.selected .day-caption {color:var(--blue);}
.planner-message {min-height:24px;color:var(--muted);font-size:13px;}
.planner-message.error,.form-error {color:var(--danger);}
.time-viewport {height:clamp(196px,calc((var(--work-height) - 320px) * .7),406px);overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);position:relative;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.time-canvas {position:relative;min-width:100%;min-height:100%;display:flex;flex-direction:column;}
.time-axis {position:sticky;top:0;flex:none;height:34px;z-index:3;background:var(--card);border-bottom:1px solid var(--line);}
.time-tick {position:absolute;top:0;height:100%;padding:8px 0 0 5px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;border-left:1px solid var(--line);}
.time-lanes {position:relative;min-height:0;flex-grow:1;}
.time-gridline {position:absolute;top:0;bottom:0;width:1px;background:var(--line);pointer-events:none;}
.appointment {position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;border:1px solid var(--line);border-radius:10px;padding:6px 10px;overflow:hidden;text-align:left;font:inherit;z-index:1;color:var(--text);background:var(--blue-soft);}
.appointment-car {font-size:14px;line-height:1.25;font-weight:600;}
.appointment-meta,.appointment-description {font-size:12px;line-height:1.3;}
.appointment> * {max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.appointment.narrow .appointment-description {display:none;}
.appointment.tiny {padding-inline:4px;}
.appointment.tiny .appointment-meta {display:none;}
.appointment:hover {filter:brightness(.97);}
.scheduled {--status-bg:#edf3ff;--status-border:#bed4ff;--status-text:#1557b0;}
.working {--status-bg:#fff4da;--status-border:#e6c56a;--status-text:#7a4d00;}
.completed {--status-bg:#e8f5ed;--status-border:#b4d8c1;--status-text:#24653b;}
.cancelled {--status-bg:#f2f2f5;--status-border:#d7d9e0;--status-text:#686e7a;}
[data-theme=dark] .scheduled {--status-bg:#263651;--status-border:#44678f;--status-text:#a7c8ff;}
[data-theme=dark] .working {--status-bg:#3a3020;--status-border:#80632d;--status-text:#ffd589;}
[data-theme=dark] .completed {--status-bg:#21362a;--status-border:#477657;--status-text:#a4d7b4;}
[data-theme=dark] .cancelled {--status-bg:#292c33;--status-border:#4b505c;--status-text:#b7bec9;}
.appointment,.status-pill {background:var(--status-bg);border-color:var(--status-border);color:var(--status-text);}
.now-line {position:absolute;top:0;bottom:0;width:1px;background:var(--danger);z-index:2;pointer-events:none;}
.now-line::before {content:'';position:absolute;top:-4px;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--danger);}
.check-field {display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.4;min-height:44px;}
.check-field input {width:18px;height:18px;min-height:18px;flex:none;margin:0;accent-color:var(--blue);}
.order-section {padding-block:16px;border-bottom:1px solid var(--line);}
.order-section:first-child {padding-top:0;}
.order-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;}
.order-fields .field {margin-block:10px;}
.order-form input,.order-form select,.order-form textarea {max-width:100%;}
.order-form textarea {height:96px;min-height:96px;resize:vertical;}
.order-form .field-hint {margin:0 0 10px;}
.actual-times {font-size:12px;color:var(--muted);line-height:1.5;padding-top:8px;}
.order-items {display:grid;gap:8px;}
.order-item {display:grid;grid-template-columns:minmax(0,1fr) 80px 115px auto;gap:8px;align-items:end;}
.order-item .field {margin-block:8px;}
.order-item input {padding-inline:8px;}
.order-item .text-button {margin-bottom:8px;}
.order-service-picker {margin:12px 0;}
.order-service-picker summary {padding:10px 12px;background:var(--blue-soft);color:var(--blue);border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;min-height:46px;}
.order-service-picker input {margin-top:10px;}
.service-picker {max-height:240px;overflow:auto;display:grid;margin-top:8px;}
.service-option {text-align:left;padding:12px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);font:inherit;font-size:13px;min-height:46px;}
.order-total {display:block;text-align:right;font-size:20px;margin:12px 0 6px;font-variant-numeric:tabular-nums;}
.order-section> .muted {display:block;text-align:right;}
.order-actions {display:flex;justify-content:flex-end;gap:12px;padding-top:16px;}
.order-actions .button {min-width:150px;}
.form-error {font-size:14px;line-height:1.5;margin-top:12px;}
.phone-actions {display:grid;margin-top:4px;}
.contact-buttons {display:inline-flex;gap:8px;flex:none;}
.phone-actions .contact-buttons {display:grid;grid-template-columns:1fr 1fr;}
.phone-actions .button {min-width:0;padding:8px;font-size:13px;min-height:40px;font-weight:600;}
/* Wherever a client phone is shown: a direct call and a menu of messengers. */
.contact-button {display:inline-flex;text-decoration:none;align-items:center;justify-content:center;gap:8px;cursor:pointer;}
.contact-button.compact {flex:none;width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--blue);}
.contact-button.compact:hover {background:var(--blue-soft);}
.contact-menu {position:fixed;inset:auto;margin:0;padding:12px;width:300px;max-width:calc(100vw - 16px);border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);box-shadow:0 12px 32px #0003;}
.contact-menu::backdrop {background:transparent;}
.contact-menu-head {display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 8px;font-variant-numeric:tabular-nums;}
.contact-options {display:grid;grid-template-columns:repeat(3,1fr);gap:4px;}
.contact-option {display:flex;flex-direction:column;align-items:center;gap:6px;min-height:44px;padding:8px 2px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:12px;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;}
.contact-option:hover,.contact-option:focus-visible {background:var(--bg);}
.contact-dot {display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;color:#fff;background:#8a8f9c;}
.contact-option.whatsapp .contact-dot {background:#25d366;}
.contact-option.telegram .contact-dot {background:#2aabee;}
.contact-option.max .contact-dot {background:#6b4dff;}
.contact-option.viber .contact-dot {background:#7360f2;}
.contact-hint {margin:8px 4px 0;font-size:12px;line-height:1.4;color:var(--muted);}
.order-row>.order-row-main {display:flex;align-items:center;gap:10px;min-width:0;}
.order-row-main>.order-row-open {flex:1;}
.storage-row {cursor:pointer;}
.storage-row-phone {display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
@media(max-width:640px){
  .contact-menu {top:auto;bottom:0;left:0;right:0;width:100%;max-width:100%;border-radius:16px 16px 0 0;padding:14px 14px calc(14px + var(--safe-bottom,0px));}
  .contact-menu::backdrop {background:#0004;}
  .order-row>.order-row-main {grid-column:1/-1;}
}
.planner-settings-form {padding-top:10px;}
.orders-filters {display:grid;grid-template-columns:minmax(200px,1fr) 170px 150px 150px;gap:10px;margin-bottom:16px;}
.order-row {width:100%;display:grid;grid-template-columns:minmax(0,1fr) 105px 125px 90px;gap:12px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:16px 0;font:inherit;font-size:14px;}
.order-row>div {display:grid;gap:6px;min-width:0;overflow-wrap:anywhere;}
.order-row .muted {font-size:12px;}
.status-pill {display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--status-border);border-radius:8px;padding:6px 8px;font-size:12px;white-space:nowrap;}
.orders-view>.button {margin-top:16px;}
@media(max-width:1100px){.orders-filters{grid-template-columns:repeat(2,minmax(0,1fr));}.order-row{grid-template-columns:minmax(0,1fr) 100px 105px;}.order-row> .muted{grid-column:1/-1;}}
@media(max-width:640px){
  .planner {gap:6px;}
  .planner-toolbar {flex-wrap:wrap;}
  .planner-day-actions {flex:1;}
  .planner-day-actions input {width:auto;flex:1;}
  .planner-toolbar>.button {width:100%;}
  .planner-date-label {font-size:16px;}
  .planner-dates {gap:8px;}
  .date-tile {flex-basis:calc((100% - 16px)/3.15);min-width:0;height:52px;padding-block:1px;}
  .date-tile.today {flex-basis:calc((100% - 16px)/3.15 * 1.15);height:58px;}
  .time-viewport {height:clamp(126px,calc((var(--work-height) - 390px) * .7),196px);}
  .time-axis {height:30px;}
  .time-controls {gap:4px;}
  .time-controls .check-field {font-size:11px;}
  .zoom-controls {gap:4px;}
  .zoom-label {width:48px;font-size:11px;}
  .appointment-car {font-size:13px;}
  .appointment {padding:6px 8px;}
  .order-dialog {width:100%;max-width:100%;height:calc(100dvh - var(--safe-top));max-height:calc(100dvh - var(--safe-top));border-radius:0;border:0;margin:var(--safe-top) 0 0;}
  .order-dialog .dialog-content {padding:16px 16px calc(20px + var(--safe-bottom));}
  .order-fields {grid-template-columns:minmax(0,1fr);gap:0;}
  .order-item {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .order-item>.field:first-child {grid-column:1/-1;}
  .order-item>.text-button {grid-column:1/-1;}
  .order-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .order-actions .button {min-width:0;}
  .order-actions .button:only-child {grid-column:1/-1;}
  .orders-filters {grid-template-columns:repeat(2,minmax(0,1fr));}
  .orders-filters>input[type=search] {grid-column:1/-1;}
  .order-row {grid-template-columns:minmax(0,1fr) auto;gap:8px;}
  .order-row>div {grid-column:1/-1;}
  .order-row> .muted {grid-column:auto;}
}
/* Keep the date strip compact in a low landscape window, including wide phones. */
@media (orientation:landscape) and (max-height:550px) {
  .time-viewport {height:126px;}
  .planner {gap:4px;}
  .date-tile {height:48px;padding-block:1px;}
  .date-tile strong {font-size:18px;line-height:20px;}
  .date-tile.today {height:54px;}
  .date-tile.today strong {font-size:22px;line-height:24px;}
}
@media(prefers-reduced-motion:reduce){.planner-dates{scroll-behavior:auto;}}

/* Day view and status filters share the same records and form. */
.planner-viewbar {display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;min-height:46px;min-width:0;}
.planner-view-switch {display:flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--bg);}
.planner-view-switch .segment {flex:1;min-width:64px;min-height:44px;font-size:13px;padding:6px 10px;}
.planner-statuses {display:flex;gap:6px;overflow-x:auto;min-width:0;padding:2px 0 2px;overscroll-behavior-x:contain;scrollbar-width:thin;}
.planner-status {display:flex;align-items:center;gap:6px;flex:none;min-height:44px;border:0;border-radius:10px;padding:8px 12px;background:transparent;color:var(--muted);font:inherit;font-size:13px;white-space:nowrap;}
.planner-status[aria-pressed=true] {background:var(--blue-soft);color:var(--blue);}
.planner-status-count {min-width:20px;padding:2px 5px;border-radius:6px;background:var(--card);font-size:11px;line-height:1.2;font-variant-numeric:tabular-nums;}
.planner-list {display:grid;gap:8px;min-width:0;}
.appointment-list-card {display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:16px;width:100%;min-width:0;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--status-border);border-radius:12px;background:var(--card);color:var(--text);text-align:left;font:inherit;}
.appointment-list-card:hover {background:var(--bg);}
.appointment-list-time {display:grid;gap:4px;font-size:14px;font-variant-numeric:tabular-nums;}
.appointment-list-time>span {font-size:12px;color:var(--muted);}
.appointment-list-info {display:grid;gap:4px;min-width:0;}
.appointment-list-info>strong {font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.appointment-list-info>span {font-size:12px;color:var(--muted);overflow-wrap:anywhere;}
.appointment-list-info>p {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px;line-height:1.4;color:var(--muted);}
.appointment-list-status {display:grid;justify-items:end;gap:6px;min-width:0;max-width:160px;}
.appointment-list-status>.muted {font-size:12px;overflow-wrap:anywhere;}
.planner-list-empty {padding:24px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--muted);font-size:14px;}
:root:not(.desktop-ui) .date-arrows {display:none;}
@media(max-width:640px){
  .planner-view-switch .segment {min-width:60px;padding-inline:8px;}
  .planner-viewbar>.zoom-controls {margin-left:auto;}
  .planner-status {font-size:12px;padding-inline:10px;}
  .appointment-list-card {grid-template-columns:60px minmax(0,1fr);gap:10px;padding:12px;}
  .appointment-list-status {grid-column:2;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;justify-items:start;max-width:none;}
}

/* Fields keep their own height instead of stretching beside phone actions. */
.order-fields {align-items:start;}
.order-dialog .dialog-content {padding:20px 22px;}
.service-filterbar {display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:start;}
.service-filterbar .field {margin-block:10px;}
.service-filterbar input {margin-top:0;}
.service-option {display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;cursor:pointer;}
.service-option input {width:18px;height:18px;min-height:18px;padding:0;margin:0;accent-color:var(--blue);}
.service-option>span {min-width:0;overflow-wrap:anywhere;}
.service-option>strong {font-size:12px;font-weight:600;white-space:nowrap;}
.service-selection-actions {display:flex;justify-content:flex-end;margin-top:12px;}
.service-selection-actions>.button {min-width:220px;font-variant-numeric:tabular-nums;}
@media(max-width:640px){
  .order-dialog .dialog-content {padding:16px 16px calc(20px + var(--safe-bottom));}
  .service-filterbar {grid-template-columns:92px minmax(0,1fr);gap:8px;}
  .service-option {gap:8px;font-size:12px;}
  .service-selection-actions>.button {width:100%;min-width:0;}
}

.now-band {position:absolute;top:0;bottom:0;background:rgba(196,60,70,.08);z-index:0;pointer-events:none;}
[data-theme=dark] .now-band {background:rgba(255,146,155,.08);}

/* Catalog 40%, selected work 60%; phones stack both parts in any orientation. */
.order-services {display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-top:12px;}
.order-services>.order-service-picker {margin:0;min-width:0;}
.selected-services {display:grid;gap:8px;min-width:0;align-content:start;}
.selected-services>h4 {display:flex;align-items:center;min-height:46px;margin:0;font-size:14px;font-weight:600;}
.selected-services>.order-items {max-height:360px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px;}
.selected-services .order-item {grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;padding-bottom:8px;border-bottom:1px solid var(--line);}
.selected-services .order-item>.field:first-child {grid-column:1/-1;}
.selected-services .order-item>.text-button {grid-column:auto;}
.selected-services>.button {justify-self:start;max-width:100%;}
.work-total {padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg);}
.work-total>.field {margin:0 0 10px;}
.order-price-breakdown>span {display:block;height:18px;font-size:12px;line-height:18px;color:var(--muted);overflow:hidden;}
.work-total .order-total {font-size:19px;overflow-wrap:anywhere;}
.order-services .service-filterbar {grid-template-columns:92px minmax(0,1fr);gap:8px;}
.order-services .service-option {font-size:12px;gap:8px;}
.order-services .service-selection-actions>.button {width:100%;min-width:0;padding-inline:8px;font-size:12px;}
@media(min-width:740px){
  :root:not(.phone-ui) .order-services {grid-template-columns:minmax(0,2fr) minmax(0,3fr);}
  :root:not(.phone-ui) .order-services .service-picker {max-height:360px;}
}
.phone-ui .order-services .service-picker,.phone-ui .selected-services>.order-items {max-height:220px;}

.work-total>.muted {display:block;text-align:right;font-size:12px;}
.work-total>.order-fields>.field {margin:0 0 10px;}

/* Compact mobile work rows use the main form's vertical scroll. */
.selected-services .order-item {grid-template-columns:68px minmax(0,1fr) 40px;gap:6px 8px;padding:8px 0;}
.order-item-name {grid-column:1/-1;min-width:0;font-size:13px;line-height:18px;}
.order-item-name>strong {display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-weight:600;}
.selected-services .order-item>.field {margin:0;gap:4px;font-size:11px;}
.selected-services .order-item input {height:44px;min-height:44px;padding:8px;font-size:16px;}
.remove-work {align-self:end;width:40px;height:44px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--danger);font-size:22px;line-height:1;}
.phone-ui .selected-services>.order-items {max-height:none;overflow:visible;scrollbar-gutter:auto;padding-right:0;}
.phone-ui .selected-services>h4 {min-height:32px;}
.phone-ui .work-total>.order-fields {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.phone-ui .work-total .field {font-size:12px;}

.order-fields>.field:last-child:nth-child(odd) {grid-column:1/-1;}
.order-form input[type=datetime-local] {-webkit-appearance:none;appearance:none;display:block;height:46px;min-height:46px;line-height:20px;padding:10px 12px;}
.order-form input[type=datetime-local]::-webkit-date-and-time-value {text-align:left;}
.order-dialog {max-height:calc(var(--dialog-height,100dvh) - var(--safe-top) - 24px);}
.phone-ui .order-dialog {width:calc(100vw - var(--safe-left,0px) - var(--safe-right,0px));max-width:calc(100vw - var(--safe-left,0px) - var(--safe-right,0px));height:calc(var(--dialog-height,100dvh) - var(--safe-top) - var(--safe-bottom));max-height:calc(var(--dialog-height,100dvh) - var(--safe-top) - var(--safe-bottom));margin:var(--safe-top) var(--safe-right,0px) var(--safe-bottom) var(--safe-left,0px);border:0;border-radius:0;}
.phone-ui .order-dialog .dialog-heading {padding:10px 16px;}
.phone-ui .order-dialog .dialog-content {padding:16px 16px calc(20px + var(--safe-bottom));}
.selected-services .order-item {grid-template-columns:68px minmax(0,1fr) 44px;}
.remove-work {width:44px;}
@media(max-width:640px){.order-actions>.arrival-button {grid-column:1/-1;}}

/* Orders and daily reports share compact, touch-friendly controls. */
.orders-toolbar {display:flex;justify-content:flex-end;margin-bottom:16px;}
.reports-view {display:grid;gap:16px;min-width:0;}
.report-filters {display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) auto auto;gap:12px;align-items:end;}
.report-filters .field {margin:0;}
.report-filters .button {min-height:46px;}
.report-totals {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.report-total {min-width:0;display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:14px;}
.report-total .muted {font-size:12px;}
.report-total strong {font-size:18px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.report-days {display:grid;gap:8px;}
.report-day.card {padding:0;overflow:hidden;}
.report-day summary {display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px;cursor:pointer;list-style:none;}
.report-day summary::-webkit-details-marker {display:none;}
.report-day summary::after {content:'+';color:var(--blue);font-size:20px;}
.report-day[open] summary::after {content:'−';}
.report-day-title {display:flex;flex:1;gap:12px;align-items:center;min-width:0;}
.report-day-title .muted {font-size:12px;}
.report-orders {display:grid;gap:8px;padding:0 16px 16px;}
.report-order {font:inherit;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;text-align:left;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--bg);min-width:0;}
.report-order>div {display:flex;flex-direction:column;gap:6px;min-width:0;}
.report-order>div>strong {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.report-order .muted {font-size:12px;}
.report-order>strong {flex-shrink:0;font-variant-numeric:tabular-nums;}
@media(max-width:1000px){.report-totals {grid-template-columns:repeat(3,minmax(0,1fr));}.report-filters {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.report-totals {grid-template-columns:repeat(2,minmax(0,1fr));}.report-total:first-child {grid-column:1/-1;}.report-day-title {align-items:flex-start;flex-direction:column;gap:4px;}.report-order {font-size:13px;}.report-day summary {padding:12px;}.report-orders {padding:0 12px 12px;}}
@media(max-width:360px){
  .planner-view-switch {gap:2px;padding:2px;}
  .planner-view-switch .segment {min-width:52px;font-size:12px;padding-inline:6px;}
  .zoom-label {width:40px;}
}

/* Order history: concise status counters and labelled filters. */
.orders-toolbar {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;}
.order-status-filters {display:flex;gap:8px;overflow-x:auto;margin-block:12px;min-width:0;padding-block:2px 6px;}
.order-status-filter {display:flex;flex:none;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px;background:var(--card);color:var(--text);font:inherit;font-size:13px;}
.order-status-filter.working {background:var(--status-bg);color:var(--status-text);border-color:var(--status-border);}
.order-status-filter[aria-pressed=true] {outline:2px solid var(--blue);outline-offset:-2px;}
.order-status-filter>strong {min-width:22px;padding:2px 5px;border-radius:6px;background:var(--bg);text-align:center;}
.orders-filter-panel {border-block:1px solid var(--line);margin-bottom:12px;padding-block:10px;}
.orders-filter-panel>summary,.order-history>summary {cursor:pointer;min-height:44px;line-height:24px;font-weight:600;font-size:14px;}
.orders-filter-fields {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;}
.orders-filter-fields>.field {grid-column:span 3;margin:0;min-width:0;}
.order-history {border-bottom:1px solid var(--line);padding-block:16px;}
.order-history>div {display:grid;gap:10px;padding-block:8px;}
.order-history p {display:grid;grid-template-columns:115px minmax(0,1fr);gap:10px;font-size:12px;line-height:1.5;}
.order-history time {color:var(--muted);font-variant-numeric:tabular-nums;}
@media(max-width:640px){
  .orders-toolbar {grid-template-columns:minmax(0,1fr);}
  .orders-toolbar>.button {width:100%;}
  .orders-filter-fields {grid-template-columns:repeat(2,minmax(0,1fr));}
  .orders-filter-fields>.field {grid-column:1/-1;}
  .order-history p {grid-template-columns:minmax(0,1fr);gap:2px;}
}

@media(max-width:640px){
  .order-status-filters {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;}
  .order-status-filter {min-width:0;justify-content:space-between;}
}

.report-totals {grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:1000px){.report-totals {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.report-total:first-child {grid-column:auto;}}

/* Status filters are closed selects; opening them never moves the timeline. */
.planner-statuses {align-items:center;gap:10px;padding:0;overflow:visible;font-size:13px;color:var(--muted);}
.planner-statuses>select {width:240px;max-width:calc(100% - 60px);min-height:44px;height:44px;padding:8px 12px;font-size:14px;}
.orders-status-select {width:280px;max-width:100%;margin-block:12px;}
.planner-heading-controls {display:none;}
@media(max-width:640px) and (orientation:portrait){
  .phone-ui .page-heading:has(.planner-heading-controls:not(:empty)) {align-items:flex-end;gap:12px;}
  .phone-ui .page-heading:has(.planner-heading-controls:not(:empty)) h1 {font-size:28px;line-height:44px;}
  .phone-ui .page-heading:has(.planner-heading-controls:not(:empty)) .eyebrow {margin-bottom:4px;}
  .phone-ui .page-heading:has(.planner-heading-controls:not(:empty))>.badge {display:none;}
  .phone-ui .planner-heading-controls:not(:empty) {display:flex;flex:none;margin-left:auto;padding:0;gap:2px;min-height:44px;}
  .phone-ui .planner-heading-controls .segment {min-width:62px;min-height:44px;font-size:13px;padding:6px 8px;}
  .phone-ui .planner-viewbar>.planner-view-switch {display:none;}
  .phone-ui .planner-viewbar:has(.zoom-controls[hidden]) {display:none;}
}
@media(max-width:360px) and (orientation:portrait){
  .phone-ui .page-heading:has(.planner-heading-controls:not(:empty)) {gap:8px;}
  .phone-ui .page-heading:has(.planner-heading-controls:not(:empty)) h1 {font-size:26px;}
  .phone-ui .planner-heading-controls .segment {min-width:58px;font-size:12px;padding-inline:6px;}
}

/* Zoom belongs to the timeline frame, outside its horizontally scrolling canvas. */
.planner-timeline {min-width:0;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;}
.planner-timeline>.zoom-controls {justify-content:flex-end;padding:4px 8px;}
.planner-timeline>.time-viewport {border:0;border-top:1px solid var(--line);border-radius:0;}
@media(max-width:640px) and (orientation:portrait){.phone-ui .planner-viewbar {display:none;}}

@media(min-width:641px){
  .planner {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .planner>* {grid-column:1/-1;}
  .planner-viewbar {grid-column:1;grid-row:4;}
  .planner-statuses {grid-column:2;grid-row:4;justify-content:flex-end;}
}

/* The coloured status itself opens the native status menu. */
.status-select {min-height:44px;width:136px;max-width:100%;padding:8px 24px 8px 10px;font-size:13px;text-align:left;cursor:pointer;appearance:auto;}
.status-select option {background:var(--card);color:var(--text);}
.order-row {grid-template-columns:minmax(0,1fr) 136px 125px 90px;}
.order-row-open,.appointment-list-open {background:transparent;border:0;color:inherit;font:inherit;text-align:left;padding:0;min-width:0;min-height:44px;cursor:pointer;}
.order-row-open {display:grid;gap:6px;overflow-wrap:anywhere;}
.appointment-list-card {grid-template-columns:minmax(0,1fr) 136px;}
.appointment-list-open {display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;align-items:center;width:100%;}
.order-status-bar {display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr);align-items:center;gap:8px 16px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.order-status-bar .field {margin:0;}
.order-status-bar .status-select {width:100%;font-size:16px;}
.order-status-bar .field-hint {margin:0;}
.status-dialog {width:440px;max-width:calc(100vw - 24px);}
.status-dialog .dialog-actions {display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;}
@media(max-width:1100px){.order-row {grid-template-columns:minmax(0,1fr) 136px 105px;}}
@media(max-width:640px){
  .order-row {grid-template-columns:minmax(0,1fr) auto;}
  .order-row-open {grid-column:1/-1;}
  .order-row>.status-select {grid-column:1;grid-row:2;}
  .order-row>.muted {grid-column:1/-1;}
  .appointment-list-card {grid-template-columns:minmax(0,1fr);gap:8px;}
  .appointment-list-open {grid-template-columns:60px minmax(0,1fr);gap:10px;}
  .appointment-list-status {grid-column:1;padding-left:70px;}
  .order-status-bar {grid-template-columns:minmax(0,1fr);gap:8px;}
}

.phone-ui .status-select {font-size:16px;}

/* A single issue day, independent of the original appointment date. */
.orders-daybar {display:grid;grid-template-columns:minmax(0,220px) auto;justify-content:start;align-items:end;gap:8px;margin:12px 0;}
.orders-daybar .field {margin:0;min-width:0;}
.orders-daybar input {width:100%;min-width:0;box-sizing:border-box;}
.orders-daybar .button {min-height:44px;}
@media(max-width:640px){
  .orders-daybar {grid-template-columns:minmax(0,1fr) auto;}
}

@media (min-width:641px) and (orientation:landscape) and (max-height:740px) {
  .planner {gap:5px;}
  .date-tile {height:48px;min-height:48px;padding-block:1px;}
  .date-tile.today {height:54px;min-height:54px;}
  .date-tile strong {font-size:18px;line-height:20px;}
  .date-tile.today strong {font-size:22px;line-height:24px;}
  .time-viewport {height:clamp(126px,calc((var(--work-height) - 320px)*.7 - var(--safe-top)),280px);}
  .orders-daybar,.orders-status-select {margin-block:8px;}
  .orders-filter-panel {padding-block:6px;margin-bottom:8px;}
}
@media (min-width:960px) and (orientation:landscape) and (max-height:740px) {
  .orders-view {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;}
  .orders-view>* {grid-column:1/-1;}
  .orders-view .order-row {grid-template-columns:minmax(0,1fr) 136px 105px 90px;}
  .orders-view .order-row>.muted {grid-column:auto;}
}
.desktop-ui.fullscreen-ui .planner-statuses {display:none;}

/* Desktop planner actions share one aligned toolbar, without an empty view row. */
.desktop-ui .planner-viewbar:empty {display:none;}
.desktop-ui .planner-toolbar {flex-wrap:wrap;gap:8px 16px;}
.desktop-ui .planner-primary-actions {display:flex;align-items:center;gap:8px;margin-left:auto;flex:none;}
.desktop-ui .planner-day-actions {flex:none;}
.desktop-ui .planner-toolbar .button {height:46px;min-height:46px;white-space:nowrap;}
.desktop-ui .planner-day-actions input {height:46px;min-height:46px;padding-block:8px;}
.desktop-ui .planner-primary-actions .planner-view-switch {height:46px;padding:0;align-items:center;flex-wrap:nowrap;}
.desktop-ui .planner-primary-actions .segment {height:44px;min-height:44px;white-space:nowrap;}
@media(min-width:641px){
  .desktop-ui .planner-statuses {grid-column:1/-1;}
}

/* Desktop time runs down the page; concurrent vehicles occupy adjacent columns. */
.vertical-planner .time-canvas {flex-direction:row;align-items:stretch;}
.vertical-planner .time-axis {position:sticky;left:0;top:auto;width:56px;height:auto;align-self:stretch;flex:0 0 56px;border-bottom:0;border-right:1px solid var(--line);}
.vertical-planner .time-tick {left:0;width:100%;height:20px;padding:2px 5px 0;font-size:12px;border-left:0;border-top:1px solid var(--line);}
.vertical-planner .time-lanes {flex:none;}
.vertical-planner .time-gridline {left:0;right:0;bottom:auto;width:auto;height:1px;}
.vertical-planner .appointment {justify-content:flex-start;padding:6px 8px;}
.vertical-planner .appointment.tiny {padding:0 4px;}
.vertical-planner .now-line {left:0;right:0;bottom:auto;width:auto;height:1px;}
.vertical-planner .now-line::before {top:-3px;left:-3px;}
.vertical-planner .now-band {left:0;right:0;bottom:auto;width:auto;}

.planner-direction {margin-right:auto;min-height:44px;padding:8px 12px;font-size:13px;}

/* Portrait phone controls use explicit rows instead of intrinsic date-input sizing. */
@media(max-width:640px) and (orientation:portrait){
  .phone-ui .planner-toolbar {display:grid;grid-template-columns:minmax(0,1fr);gap:8px;}
  .phone-ui .planner-day-actions {display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px;align-items:center;}
  .phone-ui .planner-day-actions>.button,.phone-ui .planner-day-actions>input,.phone-ui .planner-toolbar>.button {height:46px;min-height:46px;box-sizing:border-box;margin:0;}
  .phone-ui .planner-day-actions>input {width:100%;max-width:100%;padding-block:8px;}
  .phone-ui .planner-day-actions>.button {padding-inline:8px;white-space:nowrap;}
  .phone-ui .planner-heading-controls {height:46px;min-height:46px;align-items:center;}
  .phone-ui .planner-heading-controls .segment {height:44px;min-height:44px;}
}

/* Let the browser allocate remaining desktop height, including during native resize. */
.desktop-ui .main:has(.planner-timeline:not([hidden])) {display:flex;flex-direction:column;height:calc(100dvh - var(--safe-top));}
.desktop-ui .main:has(.planner-timeline:not([hidden]))>.topbar,
.desktop-ui .main:has(.planner-timeline:not([hidden]))>.page-heading {flex:none;}
.desktop-ui .view-content:has(.planner-timeline:not([hidden])) {display:flex;flex:1;min-height:0;}
.desktop-ui .planner:has(.planner-timeline:not([hidden])) {display:flex;flex-direction:column;flex:1;min-height:0;}
.desktop-ui .planner:has(.planner-timeline:not([hidden]))>* {flex-shrink:0;}
.desktop-ui .planner-timeline:not([hidden]) {display:flex;flex-direction:column;flex:1;min-height:180px;}
.desktop-ui .planner-timeline>.zoom-controls {flex:none;}
.desktop-ui .planner-timeline>.time-viewport {flex:1;min-height:126px;height:auto;}
.invalid-order {outline:2px solid var(--danger);outline-offset:-2px;}

/* Phone: the strip of days replaces the calendar field; «Сегодня» appears only away from today. */
.phone-ui .planner-day-actions input {display:none;}
.phone-ui .planner.on-today .planner-day-actions {display:none;}
/* Orders on every screen: the strip replaces the calendar field, «Сегодня» appears only away from today. */
.orders-view>.orders-daybar {display:none;}
.orders-view .date-arrows>.button {min-height:44px;}
.orders-view.on-today .date-arrows>.button {visibility:hidden;}
:root:not(.desktop-ui) .orders-view .date-arrows {display:flex;}
:root:not(.desktop-ui) .orders-view .date-arrows>.zoom-button {display:none;}
/* Status buttons of equal width; on a phone a select replaces them. */
@media(min-width:641px){
  .order-status-filters {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;}
  .order-status-filter {min-width:0;justify-content:space-between;gap:4px;padding-inline:8px;white-space:nowrap;}
}
.orders-status-picker {display:none;align-items:center;gap:10px;margin-block:8px;font-size:13px;color:var(--muted);}
.orders-status-picker>select {flex:1;min-width:0;min-height:44px;height:44px;padding:8px 12px;font-size:14px;}
.phone-ui .order-status-filters {display:none;}
.phone-ui .orders-status-picker {display:flex;}
.orders-view>.planner-dates {margin-bottom:4px;}
.orders-view>.date-strip-heading {margin-top:12px;}
.carried-label {font-size:12px;color:var(--status-text,var(--muted));}
