/* PiCats Home 4.0.29 — dedicated operational pages.
 * Screen-only decoration: document frames, signature canvases, player geometry,
 * booking/event/shift state colors and all print rules remain owned by the
 * original screens. Every selector is limited to an explicitly tagged UI page.
 */
@media screen {
  body[data-pc-page] {
    --pc-page-brand: #6495ed;
    --pc-page-action: #315fbf;
    --pc-page-action-hover: #244c9f;
    --pc-page-tint: #eef4ff;
    --pc-page-bg: #f4f7fd;
    --pc-page-line: #dce6f5;
    --pc-page-ink: #172a4d;
    --pc-page-muted: #61748f;
  }

  /* Read-only team roster: colors of assigned shifts stay supplied by Home. */
  body[data-pc-page="employee_schedule_page"] {
    background: var(--pc-page-bg);
    color: var(--pc-page-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }
  body[data-pc-page="employee_schedule_page"] .roster-header {
    border-bottom-color: var(--pc-page-line);
    box-shadow: 0 3px 18px #315fbf06;
  }
  body[data-pc-page="employee_schedule_page"] :is(.brand, .back) { color: var(--pc-page-action); }
  body[data-pc-page="employee_schedule_page"] .brand { letter-spacing: -.45px; }
  body[data-pc-page="employee_schedule_page"] :is(.heading p, label, #rosterStatus, .empty-notice) {
    color: var(--pc-page-muted);
  }
  body[data-pc-page="employee_schedule_page"] #rosterStatus.error { color: #a32b27; }
  body[data-pc-page="employee_schedule_page"] .read-only {
    color: var(--pc-page-action);
    background: var(--pc-page-tint);
    border: 1px solid var(--pc-page-line);
    font-weight: 600;
  }
  body[data-pc-page="employee_schedule_page"] :is(button, input) {
    border-color: var(--pc-page-line);
    color: var(--pc-page-ink);
    border-radius: 13px;
  }
  body[data-pc-page="employee_schedule_page"] button {
    color: var(--pc-page-action);
    font-weight: 600;
  }
  body[data-pc-page="employee_schedule_page"] button:hover:not(:disabled) { background: var(--pc-page-tint); }
  body[data-pc-page="employee_schedule_page"] #currentMonth {
    color: white;
    background: var(--pc-page-action);
    border-color: var(--pc-page-action);
  }
  body[data-pc-page="employee_schedule_page"] #currentMonth:hover:not(:disabled) { background: var(--pc-page-action-hover); }
  body[data-pc-page="employee_schedule_page"] :is(button, input, a, .table-scroll):focus-visible {
    outline: 3px solid #6495ed70;
    outline-offset: 3px;
  }
  body[data-pc-page="employee_schedule_page"] .roster-card {
    border-color: var(--pc-page-line);
    border-radius: 22px;
    box-shadow: 0 4px 20px #315fbf05;
  }
  body[data-pc-page="employee_schedule_page"] .legend { color: var(--pc-page-muted); }
  body[data-pc-page="employee_schedule_page"] :is(.legend-color, .shift) { color: #172a4d; }
  body[data-pc-page="employee_schedule_page"] .table-scroll { border-top-color: var(--pc-page-line); }
  body[data-pc-page="employee_schedule_page"] :is(th, td) { border-color: #e5ecf7; }
  body[data-pc-page="employee_schedule_page"] thead th {
    color: #425b83;
    background: #f1f5fd;
  }
  body[data-pc-page="employee_schedule_page"] th:first-child { border-right-color: var(--pc-page-line); }
  body[data-pc-page="employee_schedule_page"] thead th:first-child { background: #f1f5fd; }
  body[data-pc-page="employee_schedule_page"] .weekend { background: #f8faff; }
  body[data-pc-page="employee_schedule_page"] thead .weekend { background: #eaf1fd; }
  body[data-pc-page="employee_schedule_page"] .today { box-shadow: inset 0 3px var(--pc-page-brand); }
  body[data-pc-page="employee_schedule_page"] td.today { box-shadow: inset 2px 0 #d9e6ff, inset -2px 0 #d9e6ff; }
  body[data-pc-page="employee_schedule_page"] .empty { color: #c1cede; }

  /* Hotel administrator workplace. Keep the compact planning and form layout. */
  body[data-pc-page="staff"] {
    --blue: #315fbf;
    --blue2: #244c9f;
    --border: #dce6f5;
    --muted: #61748f;
    color: var(--pc-page-ink);
    background: var(--pc-page-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }
  body[data-pc-page="staff"] .topbar {
    border-bottom-color: var(--pc-page-line);
    box-shadow: 0 3px 18px #315fbf06;
  }
  body[data-pc-page="staff"] .brand-mark { color: var(--pc-page-action); letter-spacing: -.35px; }
  body[data-pc-page="staff"] .user-pill {
    color: var(--pc-page-action);
    background: var(--pc-page-tint);
    border: 1px solid var(--pc-page-line);
  }
  body[data-pc-page="staff"] :is(.booking-pane, .planner-pane) {
    background: #f2f6fd;
    border-color: var(--pc-page-line);
  }
  body[data-pc-page="staff"] :is(.booking-card, .booking-head, .editor-card, .empty-day) {
    border-color: var(--pc-page-line);
    border-radius: 18px;
    box-shadow: 0 3px 14px #315fbf04;
  }
  body[data-pc-page="staff"] .booking-card.selected {
    background: #f4f8ff;
    border-color: #8caceb;
    box-shadow: 0 0 0 2px #6495ed20;
  }
  body[data-pc-page="staff"] .room-badge { color: var(--pc-page-action); }
  body[data-pc-page="staff"] :is(.staff-sheet, .staff-month-sheet, .staff-quartz-sheet, .login-card, .workplace-display-card) {
    border: 1px solid var(--pc-page-line);
    border-radius: 22px;
    box-shadow: 0 20px 60px #172a4d26;
  }
  body[data-pc-page="staff"] :is(.savebar, .form-section, .inventory-row input) { border-color: var(--pc-page-line); }
  body[data-pc-page="staff"] .savebar { border-radius: 14px; background: #f9fbff; }
  body[data-pc-page="staff"] :is(button, a.button-link) {
    border-color: var(--pc-page-line);
    border-radius: 13px;
    color: var(--pc-page-ink);
  }
  body[data-pc-page="staff"] button.primary { color: white; }
  body[data-pc-page="staff"] :is(.package-btn, .ready-btn) {
    background: var(--pc-page-action) !important;
    border-color: var(--pc-page-action) !important;
    color: white !important;
  }
  body[data-pc-page="staff"] :is(.package-btn, .ready-btn):hover:not(:disabled) {
    background: var(--pc-page-action-hover) !important;
  }
  body[data-pc-page="staff"] .remove-row { color: #b73b3b; }
  body[data-pc-page="staff"] :is(.tab.active, .week-day.selected, .task-phase) {
    color: var(--pc-page-action);
    background: var(--pc-page-tint);
    border-color: #a7c0f1;
  }
  body[data-pc-page="staff"] .staff-quartz-room {
    border-color: #abc3ef;
    background: #f3f7ff;
    color: var(--pc-page-action);
  }
  body[data-pc-page="staff"] :is(.field input, .field select, .field textarea, .staff-sheet-grid input, .staff-sheet-grid select, .staff-sheet-grid textarea, .search, .date-field input, .staff-planning-search input, .staff-month-search input) {
    border-color: var(--pc-page-line);
    background: white;
  }
  body[data-pc-page="staff"] :is(input, select, textarea, button, a.button-link):focus-visible {
    outline: 3px solid #6495ed70;
    outline-offset: 2px;
  }

  /* Access management, infrastructure, security and migration screens. */
  body:is([data-pc-page="customer-control"], [data-pc-page="system-infrastructure"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="room-maintenance"], [data-pc-page="checkin"], [data-pc-page="video-test-access"]) {
    color: var(--pc-page-ink);
    background: var(--pc-page-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) :is(h1, h2) {
    letter-spacing: -.4px;
    color: var(--pc-page-ink);
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) :is(section, .migration-panel) {
    border: 1px solid var(--pc-page-line);
    border-radius: 22px;
    box-shadow: 0 4px 20px #315fbf04;
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) :is(button, input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border-color: var(--pc-page-line);
    border-radius: 13px;
    color: var(--pc-page-ink);
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) button:not(.danger) {
    color: var(--pc-page-action);
    background: white;
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) button:not(.danger):hover:not(:disabled) {
    background: var(--pc-page-tint);
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) :is(button, input, select, textarea, a):focus-visible {
    outline: 3px solid #6495ed70;
    outline-offset: 2px;
  }
  body:is([data-pc-page="customer-control"], [data-pc-page="home-security"], [data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"], [data-pc-page="video-test-access"]) :is(a, .brand) { color: var(--pc-page-action); }
  body[data-pc-page="customer-control"] #apply,
  body[data-pc-page="video-test-access"] button.primary {
    color: white;
    background: var(--pc-page-action);
    border-color: var(--pc-page-action);
  }
  body[data-pc-page="customer-control"] #apply:hover:not(:disabled),
  body[data-pc-page="video-test-access"] button.primary:hover:not(:disabled) { background: var(--pc-page-action-hover); }
  body[data-pc-page="customer-control"] .states p { background: #f3f7ff; border-radius: 13px; }
  body[data-pc-page="home-security"] :is(.card, section) { border-color: var(--pc-page-line); }
  body[data-pc-page="home-security"] .notice { border-left: 5px solid #ddaa40; }
  body[data-pc-page="home-security"] .remote-login-wait { background: var(--pc-page-tint); border-color: #b8cdf3; border-radius: 18px; }
  body[data-pc-page="home-security"] .remote-login-number { color: var(--pc-page-action); }
  body:is([data-pc-page="migration-preflight"], [data-pc-page="deployment-readiness"]) .notice { background: var(--pc-page-tint); }
  body[data-pc-page="migration-preflight"] .selected { border-color: var(--pc-page-action); background: #f7faff; }
  body[data-pc-page="migration-preflight"] .migration-job { background: #f3f7ff; border-radius: 14px; }
  body[data-pc-page="video-test-access"] .room { background: var(--pc-page-tint); border-radius: 13px; }
  body[data-pc-page="video-test-access"] .danger { color: white; }

  /* These panels can also be embedded in Home's main settings page. */
  body[data-pc-page] :is(.psi-page, .psi, .pm-maintenance) {
    color: var(--pc-page-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }
  body[data-pc-page] .psi-page { background: var(--pc-page-bg); }
  body[data-pc-page] :is(.psi-card, .psi .service) {
    border-color: var(--pc-page-line);
    border-radius: 18px;
  }
  body[data-pc-page] .psi-card { box-shadow: 0 4px 20px #315fbf04; }
  body[data-pc-page] .psi :is(button, a.button, input:not([type="checkbox"])) {
    border-color: var(--pc-page-line);
    border-radius: 13px;
  }
  body[data-pc-page] .psi :is(button.primary, a.primary) {
    color: white;
    background: var(--pc-page-action);
    border-color: var(--pc-page-action);
  }
  body[data-pc-page] .psi :is(button.primary, a.primary):hover:not(:disabled) { background: var(--pc-page-action-hover); }
  body[data-pc-page] .psi .notice { background: var(--pc-page-tint); border-radius: 13px; }
  body[data-pc-page] .psi :is(input, button, a.button):focus-visible { outline: 3px solid #6495ed70; outline-offset: 2px; }
  body[data-pc-page] .psi progress { accent-color: var(--pc-page-action); }
  body[data-pc-page] .psi dialog { border-color: var(--pc-page-line); border-radius: 22px; }
  body[data-pc-page] .psi dialog::backdrop { background: #172a4d66; }
  body[data-pc-page] .psi :is(td, th) { border-color: var(--pc-page-line); }
  body[data-pc-page] .pm-maintenance :is(input, select, textarea, button) {
    border-color: var(--pc-page-line);
    border-radius: 12px;
    color: var(--pc-page-ink);
  }
  body[data-pc-page] .pm-maintenance button[data-pm-save] {
    background: var(--pc-page-action);
    color: white;
    border-color: var(--pc-page-action);
  }
  body[data-pc-page] .pm-maintenance :is(input, select, textarea, button):focus-visible { outline: 3px solid #6495ed70; outline-offset: 2px; }
  body[data-pc-page] :is([data-pm-editor], [data-pm-retry]) { background: #f5f8ff; border-color: var(--pc-page-line); border-radius: 18px; }

  /* Check-in UI is decorative only; legal documents render in their own frame. */
  body[data-pc-page="checkin"] :is(.panel, #editor) { border-color: var(--pc-page-line); border-radius: 22px; }
  body[data-pc-page="checkin"] :is(button, input, select, textarea) { border-color: var(--pc-page-line); border-radius: 13px; }
  body[data-pc-page="checkin"] button.primary { background: var(--pc-page-action); border-color: var(--pc-page-action); color: white; }
  body[data-pc-page="checkin"] .notice { background: var(--pc-page-tint); color: var(--pc-page-ink); }
  body[data-pc-page="checkin"] :is(button, input, select, textarea):focus-visible { outline: 3px solid #6495ed70; outline-offset: 2px; }

  /* Client tablet: retain all compact document/signature/canvas/slideshow sizes. */
  body[data-pc-page="tablet"] {
    color: var(--pc-page-ink);
    background: var(--pc-page-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }
  body[data-pc-page="tablet"] :is(.card, .section, .staff-wait-box, .chat-activation-inner) { border-color: var(--pc-page-line); }
  body[data-pc-page="tablet"] :is(.staff-wait-box, .pet-summary) { background: #f5f8ff; }
  body[data-pc-page="tablet"] :is(.signmodal, .consentmodal, .chat-activation-inner) { border-radius: 22px; }
  body[data-pc-page="tablet"] :is(.primary, #doneSig, #doneConsent) {
    background: var(--pc-page-action) !important;
    border-color: var(--pc-page-action) !important;
    color: white !important;
  }
  body[data-pc-page="tablet"] :is(.primary, #doneSig, #doneConsent):hover:not(:disabled) { background: var(--pc-page-action-hover) !important; }
  body[data-pc-page="tablet"] .email-check-card .identity-confirm input { accent-color: var(--pc-page-action); }
  body[data-pc-page="tablet"] :is(input, select, textarea, button):focus-visible { outline: 3px solid #6495ed70; outline-offset: 2px; }
  body[data-pc-page="tablet"] .staff-wait-spinner { border-top-color: var(--pc-page-brand); }
  body[data-pc-page="tablet"] .chat-activation-logo { color: var(--pc-page-action); }
  body[data-pc-page="tablet"] #videoOnboarding { background: var(--pc-page-bg); }

  /* Client web chat: keep own/incoming bubbles, receipts and recording semantic colors. */
  body[data-pc-page="video-client"] {
    --blue: #315fbf;
    --ink: #172a4d;
    --line: #dce6f5;
    background: var(--pc-page-bg);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  }
  body[data-pc-page="video-client"] header { border-color: var(--pc-page-line); box-shadow: 0 3px 18px #315fbf05; }
  body[data-pc-page="video-client"] :is(.avatar, .tools, #add) { background: var(--pc-page-tint); color: var(--pc-page-action); }
  body[data-pc-page="video-client"] :is(.day span, .stickyday span) { background: #e8effc; color: #576e92; }
  body[data-pc-page="video-client"] #input { border-color: var(--pc-page-line); background: #f6f9ff; }
  body[data-pc-page="video-client"] :is(.attachsheet, .recordpanel) { border-color: var(--pc-page-line); }
  body[data-pc-page="video-client"] :is(button, textarea):focus-visible { outline: 3px solid #6495ed70; outline-offset: 2px; }

  /* Home's camera shell: no width, grid, playback, fullscreen or interval changes. */
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) {
    --blue: #315fbf;
    --bg: #f4f7fd;
    --ink: #172a4d;
    --muted: #61748f;
  }
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) :is(.icon-button, .archive-open, .choice) { background: var(--pc-page-tint); }
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) :is(.camera-card, #archive-panel) { box-shadow: 0 3px 18px #315fbf09; }
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) .camera-card { border: 1px solid var(--pc-page-line); border-radius: 18px; }
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) .calendar-day { background: #f1f5fd; }
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) .calendar-day.selected { background: #e7efff; }
  body:is([data-pc-page="home-cameras"], [data-pc-page="cameras"], [data-pc-page="home-cameras-index"]) :is(button, select):focus-visible { outline: 3px solid #6495ed70; outline-offset: 2px; }
}
