/* Practical controls and contained scrolling at every viewport width. */
.fx-calendar-page {height:auto!important;min-height:0;gap:18px!important;}
.fx-calendar-page>.calendar-container {height:auto!important;min-height:200px;overflow:hidden;}
.fx-calendar-page .fx-calendar-month {overflow:auto;}
.fp-calendar-toolbar {display:grid;gap:18px;min-width:0;}
.fp-calendar-toolbar *,.fp-agenda *,.fp-timeline * {box-sizing:border-box;}
.fp-calendar-toolbar button,.fp-calendar-toolbar input,.fp-calendar-toolbar select,.fp-agenda button,.fp-timeline button {font-family:inherit;touch-action:manipulation;}
.fp-calendar-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;}
.fp-eyebrow {margin:0 0 4px;font-size:10px;font-weight:700;letter-spacing:1.3px;color:#8a779e;}
.fp-calendar-heading h1 {margin:0;}
.fp-calendar-add {min-height:44px;gap:7px;font-size:13px;}
.fp-calendar-add>span {font-size:22px;font-weight:400;line-height:1;}
.fp-calendar-navigation {display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.fp-date-navigation {display:flex;align-items:center;gap:5px;flex-shrink:0;}
.fp-date-navigation button {display:grid;place-items:center;min-width:40px;min-height:40px;padding:8px;border:1px solid #e6dfed;border-radius:10px;background:#fff;color:#655375;cursor:pointer;}
.fp-date-navigation button:last-child {padding:8px 14px;font-size:13px;font-weight:600;}
.fp-calendar-range {font-size:17px;font-weight:650;color:#42314f;line-height:1.4;}
.fp-date-jump {display:flex;align-items:center;gap:8px;margin-left:auto;color:#7d6c8a;font-size:12px;}
.fp-date-jump input {min-width:0;max-width:175px;padding:9px 10px;min-height:40px;border:1px solid #e6dfed;border-radius:10px;background:#fff;color:#4f405d;font-size:13px;}
.fp-calendar-controls {display:grid;grid-template-columns:minmax(200px,1fr) minmax(150px,200px) auto;gap:14px;padding:16px;border:1px solid #ebe5f1;border-radius:14px;background:#fff;}
.fp-calendar-controls label,.fp-view-field {display:flex;flex-direction:column;gap:7px;min-width:0;}
.fp-calendar-controls label>span,.fp-view-field>span {font-size:11px;font-weight:650;color:#87728f;}
.fp-search-field>div {display:flex;align-items:center;min-width:0;min-height:43px;border:1px solid #e4dce9;border-radius:9px;background:#fdfcfe;overflow:hidden;}
.fp-search-field input {min-width:0;width:100%;padding:10px 12px;border:0;background:none;font-size:14px;color:#493951;}
.fp-search-field button {flex-shrink:0;width:40px;min-height:42px;border:0;background:none;color:#7c6a87;font-size:23px;cursor:pointer;}
.fp-rep-field select {min-height:43px;width:100%;min-width:0;padding:10px 12px;border:1px solid #e4dce9;border-radius:9px;background:#fdfcfe;color:#493951;font-size:13px;}
.fp-calendar-views {display:flex;gap:4px;min-height:43px;padding:4px;border-radius:10px;background:#f5f1fa;}
.fp-calendar-views button {flex:1;min-width:54px;min-height:35px;padding:7px 11px;border:0;border-radius:7px;background:none;color:#7c688d;font-size:12px;font-weight:600;cursor:pointer;}
.fp-calendar-views button[aria-pressed=true] {background:#fff;color:#6c34ba;box-shadow:0 2px 5px #42246212;}
.fp-calendar-toolbar :is(button,input,select):focus-visible,.fp-agenda button:focus-visible,.fp-timeline :is(button,[tabindex]):focus-visible {outline:3px solid #ad8ce2;outline-offset:2px;}
.fx-calendar-page>[aria-label="Calendar search results"] {flex-shrink:0;max-height:320px!important;}
.fx-calendar-page>[aria-label="Calendar search results"] button {white-space:normal;line-height:1.6;min-height:48px;}
.fx-calendar-page>[aria-label="Calendar colors"] {gap:8px 16px!important;padding-bottom:0!important;}
.fp-agenda {padding:6px 18px;background:#fff;}
.fp-agenda-day {padding:16px 0;border-bottom:1px solid #eee7f3;}
.fp-agenda-day:last-child {border-bottom:0;}
.fp-agenda-day>header {display:flex;gap:12px;align-items:center;}
.fp-day-number {display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:47px;height:53px;border-radius:12px;background:#f6f2fa;color:#77628c;}
.fp-day-number strong {font-size:20px;line-height:1.2;}
.fp-day-number span {font-size:10px;line-height:1.6;}
.fp-agenda-day.is-today .fp-day-number {background:#7137ef;color:#fff;}
.fp-agenda-day h2 {display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;font-size:14px!important;font-weight:650;line-height:1.5;}
.fp-agenda-day h2>span {font-size:10px;padding:2px 7px;border-radius:5px;background:#f0e8fc;color:#743db5;}
.fp-agenda-day header p {margin:3px 0 0;font-size:12px;color:#9a8da4;}
.fp-agenda-day header>button {display:flex;align-items:center;justify-content:center;gap:3px;min-width:44px;min-height:44px;margin-left:auto;padding:8px 10px;border:1px solid #e5dbea;border-radius:10px;background:#fff;color:#805b9c;cursor:pointer;}
.fp-agenda-bookings {display:grid;gap:9px;margin:12px 0 0 59px;}
.fp-booking {display:flex;align-items:flex-start;gap:14px;min-width:0;width:100%;padding:14px;border:1px solid #ebe5ef;border-left:4px solid var(--booking-color,#8355c7);border-radius:10px;background:#fff;color:#3b3046;text-align:left;cursor:pointer;}
.fp-booking:hover {background:var(--booking-bg,#faf7fc);}
.fp-booking-time {flex:0 0 90px;font-size:12px;font-weight:650;color:#75647f;line-height:1.55;overflow-wrap:anywhere;}
.fp-booking-copy {display:flex;flex:1;flex-direction:column;gap:4px;min-width:0;}
.fp-booking-copy>strong {font-size:14px;font-weight:650;line-height:1.4;overflow-wrap:anywhere;}
.fp-booking-copy>span {font-size:12px;line-height:1.5;}
.fp-booking-copy>small {font-size:12px;line-height:1.5;color:#8d7c96;overflow-wrap:anywhere;}
.fp-booking-meta {display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;color:#917a9d;}
.fp-booking-meta>span:first-child {color:var(--booking-color);font-size:10px;font-weight:650;}
.fp-booking-arrow {margin-left:auto;color:#9d8eaa;font-size:23px;line-height:1;}
.fp-timeline-hint {padding:12px 16px;margin:0;font-size:12px;color:#8b7997;border-bottom:1px solid #ebe5f1;line-height:1.6;}
.fp-timeline-scroll {width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;}
.fp-timeline-content {min-width:100%;width:max-content;}
.fp-timeline-head,.fp-timeline-flexible,.fp-timeline-grid {display:grid;grid-template-columns:var(--timeline-columns);}
.fp-timeline-head {border-bottom:1px solid #e8e0ee;background:#fbf9fd;}
.fp-timeline-head>div:not(:first-child) {display:flex;align-items:center;justify-content:space-between;gap:5px;padding:12px 9px;border-left:1px solid #e8e0ee;}
.fp-timeline-head strong {font-size:11px;font-weight:650;color:#755b87;}
.fp-timeline-head button {min-width:40px;min-height:34px;padding:6px;border:0;border-radius:7px;background:#efe6f9;color:#8155a2;cursor:pointer;white-space:nowrap;font-size:11px;}
.fp-timeline-flexible {background:#fdfcfe;border-bottom:1px solid #e8e0ee;}
.fp-timeline-flexible>span {padding:10px 4px;font-size:10px;color:#9784a1;line-height:1.5;}
.fp-timeline-flexible>div {padding:8px 4px;border-left:1px solid #e8e0ee;display:grid;gap:5px;align-content:start;}
.fp-time-labels>span {display:block;height:80px;padding:7px 4px;font-size:10px;color:#9a8ba4;white-space:nowrap;}
.fp-time-column {position:relative;border-left:1px solid #e8e0ee;min-width:0;}
.fp-hour-line {height:80px;border-bottom:1px solid #eee9f2;}
.fp-positioned-booking {position:absolute;min-width:0;}
.fp-positioned-booking .fp-booking {height:100%;}
.fp-booking-compact {display:flex;flex-direction:column;gap:3px;padding:7px 8px;border-radius:7px;background:var(--booking-bg,#faf7fc);overflow:hidden;}
.fp-booking-compact .fp-booking-time {flex:none;font-size:10px;line-height:1.4;}
.fp-booking-compact .fp-booking-copy {width:100%;gap:2px;}
.fp-booking-compact .fp-booking-copy>strong {overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;}
.fp-booking-compact .fp-booking-arrow {display:none;}
.fp-booking-compact .fp-booking-meta {font-size:10px;line-height:1.3;}
.fp-no-timed {position:absolute;top:18px;left:10px;right:10px;font-size:11px;color:#b0a3b9;text-align:center;pointer-events:none;}
.jw-board-toolbar {display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,280px);gap:12px;align-items:start;}
.jw-board-toolbar nav {min-width:0;gap:8px;}
.jw-board-toolbar .jw-search {min-width:0;min-height:42px;width:100%;}
.jw-board-toolbar .jw-search input {min-width:0;width:100%;}
.jw-header-actions {align-items:center;}
.jw-card-top {align-items:flex-start;gap:10px;}
.jw-open strong {white-space:normal;overflow-wrap:anywhere;line-height:1.4;}
.jw-address,.jw-customer {overflow-wrap:anywhere;}
.jw-card-bottom {flex-wrap:wrap;gap:6px;}
.jw-card .board-menu-trigger {width:36px;height:36px;}
.fp-global-results {width:min(540px,calc(100vw - 32px));min-width:0!important;max-width:calc(100vw - 32px);max-height:min(480px,65dvh)!important;}
.topbar-search input {min-width:0;}
.topbar-search>button {min-width:32px;min-height:32px;justify-content:center;}
.iq-fields label {min-width:0;}
.iq-fields input {min-width:0;width:100%;}
.iq-choice-note {flex-wrap:wrap;gap:12px;}
.iq-choice-note>span {flex:1 1 240px;}
.page-content .iq-wizard-footer {flex-wrap:wrap;}
.iq-wizard-footer>div {display:flex;flex-wrap:wrap;gap:10px;}
@media(max-width:1050px) {
  .fp-calendar-controls {grid-template-columns:minmax(0,1fr) minmax(150px,.65fr);}
  .fp-view-field {grid-column:1 / -1;}
  .fp-calendar-views {max-width:440px;}
  .jw-board-toolbar {grid-template-columns:1fr;}
}
@media(max-width:767px) {
  .fp-calendar-toolbar {gap:15px;}
  .fp-calendar-heading {align-items:center;gap:8px;}
  .fp-calendar-add {padding:10px 12px!important;font-size:12px;}
  .fp-calendar-navigation {display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 10px;}
  .fp-calendar-range {grid-row:1;grid-column:1 / -1;font-size:18px;}
  .fp-date-navigation {grid-row:2;gap:4px;}
  .fp-date-navigation button {min-width:38px;min-height:44px;}
  .fp-date-navigation button:last-child {padding:8px 10px;}
  .fp-date-jump {grid-row:2;flex-direction:column;align-items:stretch;gap:3px;width:100%;margin-left:0;min-width:0;}
  .fp-date-jump>span {font-size:10px;}
  .fp-date-jump input {min-height:44px;font-size:16px;width:100%;max-width:none;box-sizing:border-box;}
  .fp-calendar-controls {padding:13px;grid-template-columns:1fr;gap:12px;}
  .fp-view-field {grid-column:auto;}
  .fp-search-field input,.fp-rep-field select {font-size:16px;min-height:46px;}
  .fp-calendar-views {max-width:none;}
  .fp-calendar-views button {min-width:0;min-height:40px;padding:8px 10px;font-size:12px;}
  .fp-agenda {padding:0 12px;}
  .fp-agenda-day {padding:14px 0;}
  .fp-agenda-day h2 {font-size:13px!important;}
  .fp-agenda-day header>button>span {display:none;}
  .fp-agenda-bookings {margin-left:0;}
  .fp-booking {gap:10px;padding:12px;}
  .fp-booking-time {flex-basis:70px;font-size:11px;}
  .fp-booking-copy>strong {font-size:13px;}
  .fp-booking-compact {padding:7px 8px;gap:3px;}
  .fp-booking-compact .fp-booking-time {flex-basis:auto;}
  .fx-calendar-page>.calendar-container {overflow-x:auto;}
  .fx-calendar-page>[aria-label="Calendar colors"] {font-size:10px!important;gap:6px 10px!important;}
  .jw-page-header {gap:12px;margin-bottom:14px;}
  .jw-header-actions>.btn {min-height:44px;}
  .jw-header-actions>.btn[aria-label="Refresh boards"] {flex:0 0 44px!important;padding:9px!important;}
  .jw-board-toolbar nav {flex-wrap:nowrap!important;overflow-x:auto;max-width:100%;padding-bottom:8px;}
  .jw-board-toolbar nav>button {white-space:nowrap;}
  .jw-card .board-menu-trigger {width:44px;height:44px;}
  .board-job-menu button,.flux-option {min-height:44px;}
  .fm-board .jw-card-top {align-items:center;}
  .fm-board .jw-card-top .jw-open {display:flex;align-items:center;}
  .jw-flow-note {padding:11px 12px;}
  .jw-flow-note>span {font-size:11px;}
  .app-layout:has(.fm-nav) .topbar-search>.fp-global-results {width:auto;max-width:none;}
  .topbar-search>button {min-width:36px;min-height:36px;}
  .iq-progress {padding:16px!important;}
  .iq-progress ol {gap:6px;}
  .iq-progress li {font-size:10px;gap:5px;}
  .iq-progress li>span {width:21px;height:21px;flex-shrink:0;}
  .page-content .iq-wizard-body {padding:18px!important;}
  .iq-fields {grid-template-columns:1fr!important;gap:15px;}
  .iq-fields input {font-size:16px!important;min-height:46px;}
  .iq-choice-note {padding:13px;gap:12px;}
  .iq-choice-note .iq-tool {width:100%;justify-content:center;min-height:44px;}
  .page-content .iq-wizard-footer {padding:14px 16px!important;position:static!important;gap:10px;}
  .page-content .iq-wizard-footer button {min-height:46px!important;white-space:normal;}
  .iq-wizard-footer>div {width:100%;}
  .iq-wizard-footer>div>button {flex:1;}
  .iq-view-tools,.iq-view-tabs,.iq-imagery-note {flex-wrap:wrap;}
  .iq-view-tabs button,.iq-tool {min-height:44px;}
  .fx-schedule-dialog {max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;}
  .fx-schedule-types {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .fx-schedule-type,.fx-schedule-save,.fx-schedule-cancel,.fx-schedule-close {min-height:44px;}
  .fx-schedule-input {font-size:16px!important;min-width:0;}
  .fx-schedule-results {max-height:min(240px,35dvh)!important;}
  .fx-schedule-footer {flex-wrap:wrap;gap:10px!important;}
  .fx-schedule-summary {flex-basis:100%;}
  .app-layout:has(.fm-nav) .flow-launcher-copy>span {display:none;}
  .app-layout:has(.fm-nav) .flow-launcher {height:44px;gap:6px;}
  .app-layout:has(.fm-nav) .flow-orb-shell,.app-layout:has(.fm-nav) .flow-launcher .flow-orb {width:44px;height:44px;}
  .app-layout:has(.fm-nav) .flow-panel {bottom:56px;max-height:calc(100dvh - var(--fm-bottom) - 100px);max-width:calc(100vw - 24px);}
}
