.input-icon { position: relative; }
.input-icon > i { position: absolute; left: 1rem; top: 50%; z-index: 2; color: #7b8a92; transform: translateY(-50%); }
.input-icon > .form-control { padding-left: 2.8rem; }
.input-icon > .password-toggle { position: absolute; right: .55rem; top: 50%; border: 0; background: transparent; color: #687781; transform: translateY(-50%); }
.input-icon > .password-toggle + * { padding-right: 2.8rem; }

.public-product-card { overflow: hidden; border: 1px solid #e4e9ec; border-radius: 1.25rem; background: #fff; box-shadow: 0 .75rem 2rem rgba(7,59,76,.06); transition: transform .25s ease, box-shadow .25s ease; }
.public-product-card:hover { transform: translateY(-4px); box-shadow: 0 1.25rem 3rem rgba(7,59,76,.11); }
.product-image { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.public-product-card:hover .product-image img { transform: scale(1.04); }
.product-type { position: absolute; left: 1rem; top: 1rem; padding: .4rem .7rem; border-radius: 999px; color: #073b4c; background: rgba(255,255,255,.92); font-size: .72rem; font-weight: 800; }
.public-product-card h2 a { color: #073b4c; }
.public-product-meta { color: #687781; font-size: .82rem; }
.public-product-link { color: #0b7a75; font-size: .84rem; font-weight: 750; white-space: nowrap; }
.card-price small, .card-price strong { display: block; }
.card-price small { color: #687781; font-size: .75rem; }
.card-price strong { color: #0b7a75; font-size: 1.1rem; }
.circle-link { width: 2.65rem; height: 2.65rem; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: #0b7a75; }
.circle-link:hover { color: #fff; background: #08635f; }
.pagination ul { display: flex; gap: .4rem; padding: 0; list-style: none; }
.pagination .page-numbers { min-width: 2.65rem; height: 2.65rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .7rem; color: #34444d; background: #fff; }
.pagination .current { color: #fff; background: #0b7a75; }

.crm-page + .site-footer { margin-top: 0 !important; }
.crm-shell { min-height: calc(100vh - 79px); display: grid; grid-template-columns: 270px minmax(0,1fr); background: #f4f7f8; }
.crm-sidebar { position: sticky; top: 79px; height: calc(100vh - 79px); display: flex; flex-direction: column; padding: 1.3rem 1rem; color: #fff; background: #073b4c; overflow-y: auto; }
.crm-sidebar-brand { display: flex; gap: .8rem; align-items: center; padding: .5rem .6rem 1.5rem; }
.crm-sidebar-brand .brand-mark { background: #f4a261; color: #073b4c; }
.crm-sidebar-brand strong, .crm-sidebar-brand small { display: block; }
.crm-sidebar-brand strong { font-size: 1.08rem; }
.crm-sidebar-brand small { color: rgba(255,255,255,.55); font-size: .72rem; }
.crm-nav { display: grid; gap: .35rem; }
.crm-nav a, .crm-sidebar-footer a { display: flex; gap: .8rem; align-items: center; padding: .8rem .9rem; border-radius: .75rem; color: rgba(255,255,255,.68); font-weight: 650; }
.crm-nav a:hover, .crm-nav a.active { color: #fff; background: rgba(255,255,255,.1); }
.crm-nav a.active { box-shadow: inset 3px 0 #f4a261; }
.crm-nav i, .crm-sidebar-footer i { width: 1.25rem; font-size: 1.1rem; }
.crm-nav-label { margin: .8rem .9rem .1rem; color: rgba(255,255,255,.42); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.crm-subnav { display: grid; gap: .15rem; margin: -.15rem 0 .5rem 1rem; padding: .35rem 0 .35rem .65rem; border-left: 1px solid rgba(255,255,255,.14); }
.crm-subnav a { padding: .55rem .7rem; font-size: .82rem; font-weight: 600; }
.crm-subnav a i { width: 1rem; font-size: .9rem; }
.crm-sidebar-footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.1); padding-top: .8rem; }
.crm-workspace { min-width: 0; }
.crm-topbar { min-height: 92px; display: flex; align-items: center; gap: 1rem; padding: 1rem clamp(1.2rem,3vw,2.5rem); border-bottom: 1px solid #e3e9ec; background: #fff; }
.crm-topbar > div:first-of-type { flex: 1; }
.crm-topbar h1, .crm-topbar small { display: block; margin: 0; }
.crm-topbar h1 { color: #073b4c; font-size: 1.5rem; font-weight: 800; }
.crm-topbar small { color: #7b8a92; font-size: .78rem; }
.crm-user { display: flex; gap: .7rem; align-items: center; }
.crm-user img { border-radius: 50%; }
.crm-user strong, .crm-user small { display: block; line-height: 1.3; }
.crm-user small { color: #7b8a92; }
.crm-menu-toggle { display: none; }
.crm-content { padding: clamp(1.2rem,3vw,2.5rem); }
.crm-stat-card { height: 100%; display: flex; gap: 1rem; align-items: center; padding: 1.3rem; border: 1px solid #e3e9ec; border-radius: 1rem; background: #fff; }
.stat-icon { width: 3.2rem; height: 3.2rem; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: .9rem; font-size: 1.35rem; }
.stat-icon.ocean { color: #0b7a75; background: #e3f5f3; }
.stat-icon.sun { color: #bf6b24; background: #fff0df; }
.stat-icon.purple { color: #7652a9; background: #f0e9fa; }
.stat-icon.blue { color: #2f6fa2; background: #e5f1fa; }
.crm-stat-card small, .crm-stat-card strong { display: block; }
.crm-stat-card small { color: #687781; }
.crm-stat-card strong { color: #073b4c; font-size: 1.65rem; line-height: 1.15; }
.crm-panel { overflow: hidden; border: 1px solid #e3e9ec; border-radius: 1rem; background: #fff; }
.panel-heading { min-height: 80px; display: flex; align-items: center; justify-content: space-between; padding: 1.2rem 1.4rem; border-bottom: 1px solid #e9edef; }
.panel-heading h2, .panel-heading p { margin: 0; }
.panel-heading h2 { color: #073b4c; font-size: 1.08rem; font-weight: 800; }
.panel-heading p { color: #7b8a92; font-size: .82rem; }
.crm-table { font-size: .88rem; }
.crm-table th { padding: .85rem 1rem; border-bottom-color: #e9edef; color: #687781; background: #fbfcfc; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.crm-table td { padding: .9rem 1rem; border-bottom-color: #edf1f2; }
.crm-grid-toolbar { display: flex; gap: .65rem; padding: .9rem 1.2rem; border-bottom: 1px solid #e9edef; background: #fbfcfc; }
.crm-grid-toolbar .input-icon { width: min(520px,100%); }
.crm-spreadsheet-wrap { max-height: 68vh; }
.crm-spreadsheet { min-width: 1280px; border-collapse: separate; border-spacing: 0; }
.crm-spreadsheet thead { position: sticky; top: 0; z-index: 3; }
.crm-spreadsheet th, .crm-spreadsheet td { border-right: 1px solid #edf1f2; white-space: nowrap; }
.crm-spreadsheet tbody tr:hover td { background: #f7fbfb; }
.crm-spreadsheet td strong { color: #24343c; }
.hotel-summary-table { min-width: 1180px; }
.hotel-name-link { display: grid; gap: .15rem; min-width: 210px; }
.hotel-name-link strong { color: #073b4c; }
.hotel-name-link small { color: #0b7a75; font-size: .72rem; font-weight: 700; }
.partner-table { min-width: 1600px; }
.partner-products { display: block; max-width: 360px; overflow: hidden; text-overflow: ellipsis; }
.partner-linked-products { padding: 1rem; border: 1px solid #dfe7e9; border-radius: .75rem; background: #f7fafb; color: #52636c; }
.hotel-price-detail > .p-4 { background: #f7f9fa; }
.hotel-price-card, .hotel-subpanel { height: 100%; padding: 1.2rem; border: 1px solid #dfe7e9; border-radius: .9rem; background: #fff; }
.hotel-price-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: .85rem; border-bottom: 1px solid #edf1f2; }
.hotel-price-card-head span { color: #073b4c; font-weight: 800; }
.hotel-price-card-head span i { margin-right: .45rem; color: #0b7a75; }
.hotel-price-card-head strong { color: #0b7a75; font-size: 1.15rem; white-space: nowrap; }
.hotel-price-card > p { min-height: 2.7rem; margin: .9rem 0; color: #687781; }
.hotel-price-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: .75rem; border-top: 1px dashed #dfe7e9; color: #687781; font-size: .82rem; }
.hotel-price-list { display: grid; gap: .55rem; margin: .85rem 0 0; padding: 0; list-style: none; color: #687781; }
.hotel-price-list strong { color: #34444d; }
.hotel-subpanel h3 { margin: 0 0 1rem; color: #073b4c; font-size: 1rem; font-weight: 800; }
.hotel-update-current { display: flex; gap: .8rem; align-items: center; padding: 1rem; border-radius: .75rem; background: #e8f5f3; }
.hotel-update-current > i { color: #0b7a75; font-size: 1.35rem; }
.hotel-update-current small, .hotel-update-current strong { display: block; }
.hotel-update-current small { color: #687781; }
.hotel-price-log { display: grid; margin-top: .8rem; }
.hotel-price-log > div { padding: .75rem 0; border-bottom: 1px solid #edf1f2; }
.hotel-price-log strong, .hotel-price-log small { display: block; }
.hotel-price-log strong { color: #34444d; font-size: .86rem; }
.hotel-price-log small { color: #829097; font-size: .75rem; }
.product-cell { min-width: 220px; display: flex; gap: .75rem; align-items: center; }
.product-cell img, .table-placeholder { width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: .65rem; object-fit: cover; background: #eef3f4; color: #8c9aa1; }
.product-cell strong, .product-cell small { display: block; }
.product-cell strong { max-width: 260px; color: #24343c; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-cell small { color: #8c9aa1; font-size: .74rem; }
.status-badge { display: inline-flex; padding: .32rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.status-badge.publish { color: #0c684f; background: #e2f5ee; }
.status-badge.draft { color: #875417; background: #fff0d9; }
.status-badge.pending { color: #5b4a96; background: #eeeafa; }
.status-badge.changes { color: #9b3a28; background: #fde9e4; }
.status-badge.approved { color: #155c89; background: #e3f1fa; }
.status-badge.paused { color: #725115; background: #f7edda; }
.status-badge.expired { color: #66727a; background: #e9edef; }
.status-badge.active { color: #0c684f; background: #e2f5ee; }
.table-actions { display: inline-flex; gap: .25rem; }
.table-actions a { width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; border-radius: .5rem; color: #5d6c74; background: #f2f5f6; }
.table-actions a:hover { color: #0b7a75; background: #e3f5f3; }
.table-actions a.danger:hover { color: #a63131; background: #fde8e8; }
.quick-actions { display: grid; gap: .7rem; padding: 1.2rem; }
.quick-actions a { display: flex; gap: .9rem; align-items: center; padding: 1rem; border: 1px solid #e6ebed; border-radius: .8rem; color: #34444d; }
.quick-actions a > i { color: #0b7a75; font-size: 1.3rem; }
.quick-actions strong, .quick-actions small { display: block; }
.quick-actions small { color: #829097; }
.editor-side { position: sticky; top: 110px; padding: 1.2rem; border-radius: .9rem; background: #f5f8f9; }
.product-editor-main > .product-type-section { margin-top: 2rem; }
.product-type-section { padding: 1.25rem; border: 1px solid #dfe7e9; border-radius: .9rem; background: #fbfcfc; }
.product-type-section[hidden] { display: none !important; }
.product-section-heading, .repeater-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.product-section-heading { padding-bottom: .8rem; border-bottom: 1px solid #e5ebed; }
.product-section-heading span { color: #0b7a75; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.product-section-heading h3, .repeater-heading h4 { margin: 0; color: #073b4c; font-size: 1.02rem; font-weight: 800; }
.product-section-heading small, .repeater-heading small { color: #7b8a92; }
.product-repeater { overflow: hidden; border: 1px solid #e2e8ea; border-radius: .8rem; background: #fff; }
.repeater-heading { margin: 0; padding: .9rem 1rem; background: #f3f7f7; }
.repeater-row { position: relative; padding: 1rem 1rem 3.4rem; border-top: 1px solid #e7ecee; }
.repeater-row:first-child { border-top: 0; }
.repeater-remove { position: absolute; right: 1rem; bottom: .8rem; }
.travelcrm-admin-schema .product-type-section { margin-top: 1rem; }
.workflow-current { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-bottom: 1rem; border-bottom: 1px solid #dfe7e9; }
.approval-list { display: grid; }
.approval-item { padding: 1.4rem; border-bottom: 1px solid #e9edef; }
.approval-item:last-child { border-bottom: 0; }
.approval-main { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.5rem; }
.approval-main h3 { margin: .65rem 0 .3rem; color: #073b4c; font-size: 1.12rem; }
.approval-main p, .approval-main small { margin: 0; color: #718087; }
.approval-price { min-width: 190px; text-align: right; }
.approval-price small, .approval-price strong, .approval-price a { display: block; }
.approval-price strong { color: #0b7a75; font-size: 1.2rem; }
.approval-price a { margin-top: .4rem; font-size: .82rem; }
.approval-actions { display: grid; grid-template-columns: minmax(220px,1fr) auto; gap: .75rem; align-items: center; margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed #dce4e7; }
.workflow-note { display: flex; gap: .7rem; margin-top: .9rem; padding: .75rem 1rem; border-radius: .7rem; color: #596970; background: #f5f7f8; font-size: .86rem; }
.workflow-note strong { display: block; color: #34444d; }
.audit-timeline { padding: .7rem 1.4rem; }
.audit-item { display: flex; gap: .9rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid #edf1f2; }
.audit-item:last-child { border-bottom: 0; }
.audit-icon { width: 2.7rem; height: 2.7rem; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 50%; color: #0b7a75; background: #e3f5f3; }
.audit-item strong, .audit-item small { display: block; }
.audit-item small { color: #829097; }
.profile-list dt, .profile-list dd { padding-top: .65rem; padding-bottom: .65rem; border-bottom: 1px solid #edf1f2; }
.profile-list dt { color: #687781; }
.security-note { display: flex; gap: .8rem; padding: 1rem; border-radius: .85rem; color: #0c684f; background: #e2f5ee; }
.security-note i { font-size: 1.5rem; }
.security-note strong, .security-note small { display: block; }
.empty-state.compact { padding: 2rem; border: 0; }

@media (max-width: 991.98px) {
  .crm-shell { grid-template-columns: 1fr; }
  .crm-sidebar { position: fixed; left: 0; top: 0; z-index: 1060; width: 280px; height: 100vh; transform: translateX(-102%); transition: transform .25s ease; }
  .crm-sidebar.show { transform: translateX(0); box-shadow: 1rem 0 3rem rgba(0,0,0,.2); }
  .crm-menu-toggle { display: inline-flex; }
  .crm-user > div { display: none; }
}
@media (max-width: 575.98px) {
  .crm-content, .crm-topbar { padding-left: 1rem; padding-right: 1rem; }
  .crm-topbar h1 { font-size: 1.2rem; }
  .panel-heading { align-items: flex-start; }
  .approval-main, .approval-actions { grid-template-columns: 1fr; }
  .approval-price { text-align: left; }
  .crm-grid-toolbar { align-items: stretch; flex-direction: column; }
}

/* TravelCRM v1.5-B: relational Hotel → Room type → Package catalogue. */
.hotel-catalog-section { padding: 1.25rem; border: 1px solid #dfe7e9; border-radius: .9rem; background: #fbfcfc; }
.hotel-catalog-note { display: flex; gap: .8rem; align-items: flex-start; padding: 1rem 1.1rem; border-radius: .8rem; background: #eef7f6; color: #466267; }
.hotel-catalog-note i { font-size: 1.35rem; color: #0b7a75; }
.hotel-catalog-note strong, .hotel-catalog-note span { display: block; }
.hotel-catalog-note strong { color: #24444a; }
.hotel-catalog-note span { margin-top: .15rem; font-size: .86rem; }
.hotel-count-pill { min-width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: #e3f5f3; color: #0b7a75; font-weight: 800; }
.hotel-package-description { min-width: 230px; max-width: 420px; white-space: normal; }
.hotel-catalog code { color: #075f65; }

/* TravelCRM v1.5-G: hotel rate-data coverage dashboard. */
.coverage-type-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.coverage-type-chip { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border: 1px solid #dfe7e9; border-radius: .8rem; color: #42545c; background: #fbfcfc; }
.coverage-type-chip:hover { border-color: #b9dcda; background: #eef8f7; }
.coverage-type-chip strong { min-width: 2.2rem; height: 2.2rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; color: #0b7a75; background: #e3f5f3; }
.coverage-filter { padding: 1rem; border: 1px solid #e3e9eb; border-radius: .9rem; background: #f8fafb; }
.coverage-table .hotel-count-pill.is-empty { color: #8a969c; background: #f0f2f3; }
.coverage-table td { white-space: nowrap; }
.coverage-table td:first-child { min-width: 220px; white-space: normal; }
@media (max-width: 991.98px) { .coverage-type-strip { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 575.98px) { .coverage-type-strip { grid-template-columns: 1fr; } }
