/* v3.11.77: phone layout for the existing administrator screen.
 * All controls and records remain in their original DOM. Desktop and print
 * keep the original layout; navigation collapses only after JS is ready. */
.admin-page #adminMobileToolbar { display: none; }
.admin-page .admin-mobile-date-note { display: none; }

@media screen and (max-width: 900px) {
  .admin-page {
    font-size: 16px;
    line-height: 1.65;
    -webkit-text-size-adjust: 100%;
    background: #f2f5ef;
  }

  .admin-page .admin-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 30px;
    padding: 0 max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  }
  .admin-page :is(.admin-panel, .admin-card, .settings-group, .site-admin, .announcement-admin-card,
    .settlement-booking, .ledger-booking, .onsite-option-card, .onsite-item, .summary-box,
    .settlement-total-box, .proxy-frame-wrap, .mobile-order-admin-frame-wrap) {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  .admin-page .admin-panel,
  .admin-page :is(.ledger-detail, .settlement-editor, .proxy-frame-wrap) {
    scroll-margin-top: calc(var(--admin-mobile-toolbar-height, 128px) + 14px);
  }
  .admin-page .admin-card {
    padding: 18px 15px;
    margin: 14px 0;
    border: 1px solid #dde5d8;
    border-radius: 15px;
    box-shadow: 0 3px 14px rgba(31, 59, 39, .05);
  }
  .admin-page .admin-card h2 {
    margin: 0 0 14px;
    font-size: 22px;
    line-height: 1.45;
    color: #203d28;
  }
  .admin-page h3 { font-size: 19px; line-height: 1.5; }
  .admin-page h4 { font-size: 17px; }
  .admin-page .admin-card > p { margin: 12px 0 18px; }
  .admin-page :is(.small-muted, small, .settlement-booking .totals, .ledger-count, .ledger-source-repeat) {
    font-size: 14px;
    line-height: 1.65;
  }
  .admin-page :is(.small-muted, .summary-box small, .settlement-total-box small, .onsite-item small) { color: #52614f; }
  .admin-page :is(img, iframe) { max-width: 100%; }
  .admin-page :is(p, h2, h3, h4, label, a, .form-message) { overflow-wrap: anywhere; }
  .admin-page .form-message { font-size: 15px; line-height: 1.6; }

  /* Normal-size fields prevent the automatic focus zoom on iPhone. */
  .admin-page label { min-width: 0; font-size: 16px; line-height: 1.5; }
  .admin-page :is(input, select, textarea) {
    min-width: 0;
    max-width: 100%;
    min-height: 48px;
    padding: 12px;
    font-size: 16px;
    line-height: 1.5;
    border-radius: 10px;
  }
  .admin-page textarea { min-height: 110px; resize: vertical; }
  .admin-page input:is([type="checkbox"], [type="radio"]) {
    width: 26px;
    min-width: 26px;
    height: 26px;
    min-height: 26px;
    margin: 0;
    padding: 0;
    flex: 0 0 26px;
    accent-color: #285736;
  }
  .admin-page :is(button, .btn) {
    min-height: 48px;
    max-width: 100%;
    padding: 11px 14px;
    font-family: inherit;
    font-size: 16px;
    line-height: 1.5;
    white-space: normal;
    overflow-wrap: anywhere;
    touch-action: manipulation;
  }
  .admin-page a.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
  }
  .admin-page :is(button, a, input, select, textarea):focus-visible {
    outline: 3px solid #3a6a96;
    outline-offset: 3px;
  }
  .admin-page .inline-check {
    min-height: 48px;
    padding: 9px 0;
    gap: 11px;
    align-items: flex-start;
  }
  .admin-page .inline-check input { margin-top: 0; }

  /* A compact brand header leaves room for the active operation. */
  .admin-page .admin-header { padding: 14px max(15px, env(safe-area-inset-right)) 14px max(15px, env(safe-area-inset-left)); }
  .admin-page .admin-header .inner { gap: 12px; flex-wrap: wrap; align-items: center; }
  .admin-page .admin-header .inner > div:first-child { min-width: 0; flex: 1 1 160px; }
  .admin-page .admin-header .inner > div:first-child > div { font-size: 13px; }
  .admin-page .admin-header strong { font-size: 16px; }
  .admin-page .admin-header small { font-size: 12px; }
  .admin-page .admin-header-actions { min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 8px; }
  .admin-page .admin-header-actions .btn {
    min-height: 44px;
    padding: 9px 12px;
    font-size: 14px;
    color: #23432b;
  }
  .admin-page #adminConnectionNotice { margin: 12px 0; }
  .admin-page #adminConnectionNotice .btn { margin-top: 8px; }

  /* The full menu is still available if the enhancement cannot start. */
  .admin-page .admin-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
  }
  .admin-page .admin-nav button {
    min-width: 0;
    min-height: 54px;
    background: #edf2e9;
    color: #263f2a;
    border: 1px solid #c7d5bf;
    text-align: left;
  }
  .admin-page .admin-nav button.is-active { background: #254b30; color: #fff; border-color: #254b30; }
  .admin-page.admin-mobile-ready #adminMobileToolbar {
    display: block;
    position: sticky;
    top: 0;
    z-index: 50;
    margin: 0 -1px;
    padding: 10px 1px;
    background: #f2f5ef;
    border-bottom: 1px solid #d2ddcc;
  }
  .admin-page .admin-mobile-toolbar-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .admin-page .admin-mobile-current { flex: 1; min-width: 0; }
  .admin-page .admin-mobile-current small { display: block; color: #53634e; font-size: 12px; line-height: 1.4; }
  .admin-page #adminMobileCurrentLabel { display: block; font-size: 18px; line-height: 1.45; color: #203d28; overflow-wrap: anywhere; }
  .admin-page #adminMobileMenuToggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 0 0 auto;
    min-width: 92px;
    min-height: 48px;
    border: 1px solid #537552;
    border-radius: 11px;
    background: #fff;
    color: #24472b;
    font-size: 15px;
    font-weight: 800;
  }
  .admin-page #adminMobileMenuToggle[aria-expanded="true"] { background: #254b30; color: #fff; }
  .admin-page .admin-mobile-quick-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-top: 9px;
  }
  .admin-page .admin-mobile-quick-nav button {
    min-width: 0;
    min-height: 46px;
    padding: 9px 5px;
    border: 1px solid #c7d5bf;
    border-radius: 9px;
    background: #fff;
    color: #2c4931;
    font-size: 14px;
    font-weight: 800;
  }
  .admin-page .admin-mobile-quick-nav button:is(.is-active, [aria-current="page"]) { background: #e3efde; border-color: #527849; color: #24472b; }
  .admin-page.admin-mobile-ready #adminNavigation { display: none; }
  .admin-page.admin-mobile-ready #adminNavigation.is-mobile-open {
    display: grid;
    position: sticky;
    top: var(--admin-mobile-toolbar-height, 128px);
    z-index: 45;
    max-height: calc(100vh - var(--admin-mobile-toolbar-height, 128px) - 20px);
    max-height: calc(100dvh - var(--admin-mobile-toolbar-height, 128px) - 20px);
    overflow: auto;
    overscroll-behavior: contain;
    padding: 12px;
    margin: 0 0 16px;
    border: 1px solid #c7d5bf;
    border-radius: 0 0 14px 14px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(31, 59, 39, .16);
  }

  /* Filters and forms flow vertically; every field keeps its own label. */
  .admin-page .calendar-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
    border: 1px solid #d9e2d3;
    border-radius: 12px;
    background: #f6f8f3;
  }
  .admin-page .calendar-toolbar > :is(label, button) { width: 100%; min-width: 0; max-width: 100%; }
  .admin-page .calendar-toolbar .admin-search-box { min-width: 0; }
  .admin-page :is(.settings-grid, .site-admin-grid, .announcement-admin-grid, .settlement-list,
    .onsite-options-grid, .onsite-item-grid, .form-grid, .form-grid.compact, .settlement-discount-fields,
    .manual-block-form, .proxy-source-buttons) { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .admin-page :is(.settings-group, .site-admin, .announcement-admin-card, .manual-block-manager) { padding: 15px 12px; }
  .admin-page .settings-group > label + label { margin-top: 12px; }
  .admin-page .settings-group > label + .btn { margin-top: 12px; }
  .admin-page .settings-group > h3 { margin-bottom: 14px; }
  .admin-page .mini-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .admin-page :is(.month-actions, .ledger-actions, .lookup-actions) {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: stretch;
  }
  .admin-page :is(.month-actions, .ledger-actions, .lookup-actions) > :is(button, a.btn) { flex: 1 1 160px; min-width: 0; }
  .admin-page .ledger-booking .head { flex-wrap: wrap; gap: 10px; }
  .admin-page .ledger-booking .head > div { min-width: 0; }
  .admin-page .ledger-booking .head strong { font-size: 18px; }
  .admin-page :is(.checkedin, .returned, .loaned, .status) { display: inline-block; font-size: 13px; line-height: 1.55; white-space: normal; }
  .admin-page .reservation-name-link { min-height: 44px; padding: 8px 0; font-size: 18px; }

  /* The companion script labels cells from their existing table headings. */
  .admin-page table.admin-mobile-table {
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: visible;
    border-collapse: separate;
    font-size: 16px;
  }
  .admin-page table.admin-mobile-table > :is(tbody, thead, tfoot) { display: block; width: 100%; min-width: 0; }
  .admin-page .admin-mobile-table .admin-mobile-table-head {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
  .admin-page .admin-mobile-table .admin-mobile-table-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
    width: 100%;
    min-width: 0;
    padding: 13px;
    margin: 12px 0;
    border: 1px solid #cbd8c4;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(31, 59, 39, .04);
  }
  .admin-page .admin-mobile-table .admin-mobile-table-cell {
    display: block;
    min-width: 0;
    max-width: 100%;
    width: auto;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid #e5ebe0;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: 16px;
  }
  .admin-page .admin-mobile-table .admin-mobile-table-cell::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 5px;
    color: #52614f;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
  }
  .admin-page .admin-mobile-table .admin-mobile-table-cell:empty::after { content: "—"; color: #6a7564; }
  .admin-page .admin-mobile-table :is(.admin-mobile-table-wide-cell, .admin-mobile-row-title,
    [data-label="予約番号"], [data-label="予約"], [data-label="氏名"], [data-label="お客様"],
    [data-label="連絡先"], [data-label="送信先"], [data-label="エラー"], [data-label="操作"],
    [data-label="合計/入金"], [data-label="名称候補"], [data-label="レンタル品"], [data-label="内容"], [data-label="備考"]) {
    grid-column: 1 / -1;
  }
  .admin-page .admin-mobile-table .admin-mobile-row-title {
    display: block;
    padding: 8px 0 11px;
    border: 0;
    border-bottom: 2px solid #d7e4cf;
    font-size: 18px;
    color: #24472b;
    text-align: left;
  }
  .admin-page .admin-mobile-table :is([data-label="氏名"], [data-label="お客様"], [data-label="名称候補"]) { font-size: 18px; font-weight: 800; }
  .admin-page .admin-mobile-table :is([data-label="総額"], [data-label="請求総額"], [data-label="未払い"], [data-label="合計/入金"]) { font-size: 18px; font-weight: 800; }
  .admin-page .admin-mobile-table [data-label="操作"] { padding-top: 12px; border-bottom: 0; }
  .admin-page .admin-mobile-table [data-label="操作"] > .ledger-actions { margin-top: 0; }
  .admin-page .admin-mobile-table [data-label="操作"] > .btn { width: 100%; margin-top: 8px; }
  .admin-page .admin-mobile-table [data-label="操作"] .ledger-actions { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .admin-page .admin-mobile-table .admin-mobile-table-wide-cell { border-bottom: 0; }
  .admin-page .admin-mobile-table .admin-mobile-table-wide-cell::before { display: none; }
  .admin-page .admin-mobile-table .admin-mobile-table-detail-row:has(> td > .mascot-voter-detail.hidden) { display: none; }
  .admin-page .admin-mobile-table-scroll-wrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  .admin-page table.admin-mobile-table-scroll { max-width: 100%; overflow-x: auto; font-size: 16px; }
  .admin-page .billing-breakdown-scroll { max-width: 100%; }
  .admin-page .billing-breakdown-scroll table.admin-mobile-table { min-width: 0; }

  /* Amounts are easy to compare while each component remains visible. */
  .admin-page :is(.summary-grid, .settlement-totals) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .admin-page :is(.summary-box, .settlement-total-box) { padding: 12px 10px; border-color: #d3dfcd; }
  .admin-page :is(.summary-box strong, .settlement-total-box strong) { display: block; font-size: 20px; line-height: 1.45; margin-top: 4px; font-variant-numeric: tabular-nums; }
  .admin-page .settlement-total-box:nth-last-child(-n+2) { grid-column: 1 / -1; padding: 14px; background: #eaf3e5; border-color: #a7c299; }
  .admin-page .settlement-total-box:nth-last-child(-n+2) strong { font-size: 25px; }
  .admin-page #salesSummary .summary-box:nth-last-child(-n+3) { grid-column: 1 / -1; padding: 14px; border-color: #a7c299; }
  .admin-page #salesSummary .summary-box:nth-last-child(-n+3) strong { font-size: 24px; }
  .admin-page .settlement-booking { padding: 15px; }
  .admin-page .settlement-booking > strong { display: block; margin-bottom: 6px; font-size: 18px; }
  .admin-page .settlement-booking .totals { margin: 9px 0 12px; }
  .admin-page .settlement-booking > .btn { width: 100%; }
  .admin-page :is(.onsite-options-box, .settlement-billing-box, .settlement-discount-box) { padding: 15px 12px; margin: 20px 0; }
  .admin-page .onsite-option-card { padding: 15px 13px; border-width: 2px; }
  .admin-page .onsite-option-check { min-height: 72px; gap: 13px; }
  .admin-page .onsite-option-check input { width: 28px; min-width: 28px; height: 28px; min-height: 28px; flex-basis: 28px; margin-top: 1px; }
  .admin-page .onsite-option-check strong { font-size: 17px; }
  .admin-page .onsite-option-check b { font-size: 22px; line-height: 1.5; }
  .admin-page .onsite-option-check small { font-size: 14px; }
  .admin-page .onsite-option-card:has(input:checked) { border-color: #507e45; background: #edf6e8; }
  .admin-page .onsite-option-card.is-disabled { background: #f3f5f0; }
  .admin-page .onsite-option-card.is-disabled .onsite-option-check { cursor: default; }
  .admin-page .onsite-option-time { margin-top: 14px; }
  .admin-page .onsite-options-preview { display: block; padding: 14px; }
  .admin-page .onsite-options-preview > strong { display: block; font-size: 22px; }
  .admin-page .onsite-options-preview :is(span, small) { display: block; margin-top: 8px; }
  .admin-page .onsite-options-preview small { font-size: 14px; }
  .admin-page .onsite-item { padding: 14px; }
  .admin-page .onsite-item b { font-size: 17px; }
  .admin-page .onsite-item input { margin-top: 10px; }

  /* Calendar days retain their controls instead of shrinking to tiny cells. */
  .admin-page :is(.calendar-grid, .ledger-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .admin-page .day-cell { min-width: 0; padding: 12px; }
  .admin-page .day-num { margin-bottom: 9px; font-size: 19px; }
  .admin-page .admin-mobile-date-note { display: block; margin-top: 3px; color: #52614f; font-size: 14px; font-weight: 600; line-height: 1.5; }
  .admin-page .day-cell select,
  .admin-page .day-note { padding: 11px; font-size: 16px; }
  .admin-page .switch-row { flex-wrap: wrap; gap: 8px 14px; margin: 9px 0; }
  .admin-page .switch-row label { min-height: 44px; gap: 7px; font-size: 15px; }
  .admin-page .ledger-day { min-width: 0; min-height: 112px; padding: 12px; }
  .admin-page .ledger-day strong { font-size: 18px; }
  .admin-page .ledger-count { margin-top: 7px; }

  /* The existing item editor also stays readable on small tablets. */
  .admin-page #admin-items :is(.item-table-wrap, .item-table) { display: block; width: 100%; min-width: 0; overflow: visible; }
  .admin-page #admin-items .item-table thead { display: none; }
  .admin-page #admin-items .item-table tbody { display: grid; gap: 16px; }
  .admin-page #admin-items .item-table tr { display: block; width: 100%; min-width: 0; padding: 13px; border: 1px solid #cbd8c4; border-radius: 13px; }
  .admin-page #admin-items .item-table td { display: block; width: 100%; min-width: 0; padding: 12px 0; border-bottom: 1px solid #e5ebe0; }
  .admin-page #admin-items .item-table td::before { content: attr(data-label); display: block; margin-bottom: 7px; font-size: 14px; font-weight: 800; color: #52614f; }
  .admin-page #admin-items .item-table input:not([type="checkbox"]),
  .admin-page #admin-items .item-table textarea { width: 100%; min-width: 0; font-size: 16px; }
  .admin-page #admin-items .item-admin-category-head { flex-wrap: wrap; }
  .admin-page #admin-items .item-enabled-label { width: 100%; min-width: 0; justify-content: flex-start; }
  .admin-page #admin-items .item-photo-actions { gap: 9px; }
  .admin-page #admin-items .item-photo-actions .btn { flex: 1 1 130px; }
  .admin-page #admin-items .item-photo-admin { max-width: 100%; }
  .admin-page #admin-items .order-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .admin-page #admin-mobile-orders .mobile-menu-check-body small { font-size: 14px; }
  .admin-page #admin-mobile-orders .mobile-menu-state { font-size: 14px; }
  .admin-page .photo-thumb button { width: 44px; height: 44px; min-height: 44px; padding: 5px; }

  .admin-page .proxy-source-btn { font-size: 18px; min-height: 58px; }
  .admin-page .proxy-today-box { padding: 15px 12px; }
  .admin-page .proxy-frame-head { flex-wrap: wrap; padding: 12px; }
  .admin-page .proxy-frame-head .btn { width: 100%; }
  .admin-page .admin-proxy-frame { min-height: 560px; height: 78vh; height: 78dvh; }
  .admin-page .mobile-order-station-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .admin-page .mobile-order-admin-frame { min-height: 520px; height: 76vh; height: 76dvh; }
  .admin-page .login-wrap { width: calc(100% - 28px); max-width: 420px; margin: 28px auto; padding: 24px 18px; }
  .admin-page .login-wrap h1 { margin: 0 0 12px; font-size: 25px; line-height: 1.5; }
  .admin-page .login-wrap .admin-password-toggle { width: 44px; height: 44px; min-height: 44px; padding: 0; font-size: 22px; }
  .admin-page .login-wrap .admin-password-field input { padding-right: 60px; }
  .admin-page .login-wrap #loginBtn { margin-top: 18px; }
}

@media screen and (max-width: 600px) {
  .admin-page .calendar-grid { grid-template-columns: minmax(0, 1fr); }
}

@media screen and (max-width: 359px) {
  .admin-page .admin-container { padding-right: 9px; padding-left: 9px; }
  .admin-page .admin-card { padding: 16px 12px; }
  .admin-page #adminMobileCurrentLabel { font-size: 17px; }
  .admin-page #adminMobileMenuToggle { min-width: 82px; padding: 10px; }
  .admin-page .admin-mobile-table .admin-mobile-table-row { padding: 11px; gap: 0 10px; }
  .admin-page :is(.summary-grid, .settlement-totals) { grid-template-columns: minmax(0, 1fr); }
}

/* v3.11.77: identity fields are independent blocks, never concatenated text. */
.admin-page .booking-identity { display:grid; grid-template-columns:minmax(0,1fr); gap:0; margin:10px 0; min-width:0; }
.admin-page .booking-identity .booking-field { display:grid; grid-template-columns:9.5em minmax(0,1fr); gap:8px; border-bottom:1px solid #e3e9df; padding:7px 0; min-width:0; }
.admin-page .booking-identity dt { margin:0; font-weight:700; color:#52614f; }
.admin-page .booking-identity dd { display:block; margin:0; min-width:0; white-space:normal; overflow-wrap:anywhere; word-break:normal; line-height:1.65; }
.admin-page .booking-contact-only .booking-field { grid-template-columns:minmax(0,1fr); gap:2px; }
.admin-page .item-correction-table { width:100%; }
.admin-page .item-correction-table input { min-width:0; width:100%; }
.admin-page .item-correction-table label { display:block; margin-bottom:8px; }
.admin-page .adjustment-refund-notice { border:2px solid #b46a13; padding:14px; background:#fff4dc; font-weight:700; }
@media screen and (max-width:900px) {
  .admin-page .ledger-booking .head > div { width:100%; min-width:0; }
  .admin-page .booking-identity .booking-field { display:block; padding:10px 0; }
  .admin-page .booking-identity dt { display:block; margin:0 0 4px; font-size:13px; }
  .admin-page .booking-identity dd { display:block; font-size:17px; }
  .admin-page .booking-identity .booking-field:nth-child(2) dd { font-weight:700; }
  .admin-page .booking-meta { display:block; margin:7px 0; }
  .admin-page .ledger-source-repeat { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
  .admin-page .admin-mobile-table .admin-mobile-table-row { grid-template-columns:minmax(0,1fr); }
  .admin-page .admin-mobile-table .admin-mobile-table-cell { grid-column:1 / -1; }
  .admin-page .item-correction-table .btn { width:100%; margin-top:10px; }
  .admin-page .direct-product-discount > .btn { width:100%; }
}

/* v3.11.78: ledger source/status colors. Cancellation takes priority, including Nappu. */
.admin-page #admin-ledger .ledger-booking {
  background:#ffffff; border:1px solid #ccd5da; border-left:6px solid #b0babf;
  color:#1b2730; opacity:1;
}
.admin-page #admin-ledger .ledger-booking.is-nap {
  background:#edf6ff; border-color:#9cbfe1; border-left-color:#27669f;
}
.admin-page #admin-ledger .ledger-booking.is-cancelled {
  background:#fff0f0; border-color:#d6a0a0; border-left-color:#ad3535; opacity:1;
}
.admin-page #admin-ledger .ledger-booking .booking-field { border-bottom-color:#c7d4df; }
.admin-page #admin-ledger .ledger-booking.is-cancelled .booking-field { border-bottom-color:#ddc2c2; }
.admin-page #admin-ledger .source-nap {
  display:inline-block; background:#d9ebfc; border:1px solid #90b6d9; color:#154c7d;
  font-weight:800; opacity:1;
}
.ledger-cancel-badge {
  display:inline-block; padding:4px 10px; border:1px solid #c58484; border-radius:999px;
  color:#882525; background:#ffe0e0; font-weight:800; line-height:1.6;
}
.ledger-identity-tags { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:9px; }
.ledger-legend {
  display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:12px;
  margin:12px 0; border:1px solid #d4dce2; border-radius:10px; background:#f7f9fb;
  color:#263c49; line-height:1.7;
}
.ledger-legend .ledger-legend-dates { flex:1 1 270px; min-width:0; }
.ledger-movement {
  display:inline-block; white-space:nowrap; font-weight:800; font-size:.94em;
  padding:0 5px; margin:2px 0; border-radius:5px; border:1px solid transparent;
}
.ledger-movement.movement-in { color:#205638; background:#e4f2e7; border-color:#a6c6b1; }
.ledger-movement.movement-out { color:#663785; background:#f2e9fa; border-color:#c5a8db; }
@media screen and (max-width:900px) {
  .admin-page #admin-ledger .ledger-booking { padding:14px 12px; }
  .admin-page #admin-ledger .ledger-legend { font-size:14px; }
  .admin-page #admin-ledger .ledger-cancel-badge { font-size:14px; }
}
@media print {
  #admin-ledger .ledger-booking, #admin-ledger .source-nap, .ledger-cancel-badge, .ledger-movement {
    print-color-adjust:exact; -webkit-print-color-adjust:exact;
  }
}

/* v3.11.85: accessible per-product correction at desktop and phone widths. */
.admin-page .item-corrections-panel { scroll-margin-top:90px; }
.admin-page .item-cancel-preview { font-weight:600; line-height:1.7; margin:6px 0 12px; overflow-wrap:anywhere; }
.admin-page .item-fulfillment-review { background:#fff6df; border-left:4px solid #ad6e12; padding:12px; margin:12px 0; line-height:1.7; }
.admin-page .item-correction-table .inline-check { display:flex; align-items:flex-start; gap:10px; white-space:normal; }
.admin-page .item-correction-table input[type="checkbox"] { flex:0 0 22px; width:22px; min-height:22px; margin-top:4px; }
.admin-page .item-correction-table td { vertical-align:top; }
@media(max-width:760px) {
 .admin-page .item-correction-table label { font-size:16px; line-height:1.65; }
 .admin-page .item-correction-table input:not([type="checkbox"]) { min-height:46px; font-size:16px; }
 .admin-page .item-correction-table .btn { min-height:48px; white-space:normal; }
}

/* v3.11.85 Arrival time / visit confirmation */
.arrival-entry{padding:18px;margin:16px 0;border:2px solid #b5cbbd;border-radius:12px;background:#f6faf7;min-width:0}
.arrival-entry h3{margin:0 0 12px}.arrival-entry input[type=time],.arrival-dialog input[type=time]{display:block;font:inherit;font-size:18px;min-height:48px;width:100%;max-width:320px;padding:10px;border:1px solid #889e91;border-radius:8px;background:white;color:#152b20;box-sizing:border-box}
.arrival-entry p{overflow-wrap:anywhere;line-height:1.7}.arrival-delay-notice{font-weight:700;padding:10px;border-left:4px solid #9a620e;background:#fff9ed}
.arrival-dialog{width:min(520px,calc(100% - 28px));max-height:85vh;box-sizing:border-box;border:1px solid #9eafa2;border-radius:14px;padding:24px;overflow:auto;font:16px/1.6 system-ui}
.arrival-dialog::backdrop{background:rgba(0,0,0,.4)}.arrival-dialog h2{font-size:22px}.arrival-message{white-space:pre-wrap;color:#912e2e}
.visit-mail-card{padding:14px;margin:12px 0;border:1px solid #b8c5bc;border-radius:10px;overflow-wrap:anywhere}.arrival-edit-button{margin:8px 0;min-height:44px}
