﻿/* Rate Calendar (UI-RATE-01, .md-cal-) and Restrictions (UI-RATE-03, .md-rs-). Shared look: accounting.css gl-* classes. */

/* toolbar */
.md-cal-bar { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: flex-end; padding: 10px 16px; border-bottom: 1px solid #EEF1F5; background: #FBFCFD; }
.md-cal-bar .f { display: flex; flex-direction: column; min-width: 0; }
.md-cal-bar .f > label { font-size: .74rem; font-weight: 600; color: #475467; margin-bottom: 3px; }
.md-cal-bar input[type=date], .md-cal-bar select {
    border: 1px solid #D0D5DD; border-radius: 8px; padding: 0 8px; height: 36px; font: inherit; font-size: .86rem; background: #fff; color: #1D2939; max-width: 100%; }
.md-cal-bar .ms { min-width: 170px; max-width: 280px; flex: 1 1 170px; }
.md-cal-bar .ms .mud-input-control { margin: 0; }
.md-cal-bar .chk { display: inline-flex; align-items: center; gap: 6px; height: 36px; font-size: .86rem; color: #344054; cursor: pointer; user-select: none; }
.md-cal-bar .chk input { width: 16px; height: 16px; accent-color: #1F5468; }
.md-cal-bar .acts { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.md-cal-range { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.md-cal-nav { border: 1px solid #D0D5DD; background: #fff; border-radius: 8px; width: 36px; height: 36px; padding: 0; display: inline-flex; align-items: center;
    justify-content: center; cursor: pointer; color: #344054; }
.md-cal-nav:hover { background: #F2F5F8; }
.md-cal-nav .mud-icon-root { font-size: 1.2rem; }
.md-cal-cur { display: inline-flex; align-items: center; border-radius: 8px; padding: 4px 10px; background: #EEF5FB; color: #1F5468; font-weight: 700; font-size: .8rem; }
.md-cal-span { color: #667085; font-size: .82rem; }

/* scrolling grid (only the grid scrolls horizontally; the page does not) */
.md-cal-scroll { overflow: auto; max-height: calc(100vh - 290px); min-height: 220px; position: relative; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.md-cal-scroll.free { max-height: none; }
table.md-cal-grid { border-collapse: separate; border-spacing: 0; font-size: .8rem; table-layout: fixed; }
.md-cal-grid th, .md-cal-grid td { border-right: 1px solid #EEF1F5; border-bottom: 1px solid #EEF1F5; padding: 0 2px; height: 30px; width: 76px; min-width: 76px;
    max-width: 76px; text-align: center; white-space: nowrap; overflow: hidden; color: #1D2939; background: #fff; }
.md-cal-grid .md-cal-first { position: sticky; left: 0; z-index: 2; width: 200px; min-width: 200px; max-width: 200px; text-align: left; padding: 3px 10px;
    border-right: 2px solid #D5DDE5; text-overflow: ellipsis; font-weight: 400; }
.md-cal-grid thead th { position: sticky; top: 0; z-index: 3; background: #34495E; color: #fff; font-weight: 600; height: 42px; line-height: 1.15; }
.md-cal-grid thead th.md-cal-first { z-index: 4; background: #34495E; color: #fff; font-size: .74rem; text-transform: uppercase; letter-spacing: .05em; }
.md-cal-grid thead th .wd { display: block; font-size: .68rem; font-weight: 500; opacity: .85; text-transform: uppercase; letter-spacing: .04em; }
.md-cal-grid thead th .dn { display: block; font-size: .84rem; }
.md-cal-grid thead th.we { background: #43577A; }
.md-cal-grid thead th.past { background: #6B7A8C; }
.md-cal-grid thead th.bd { box-shadow: inset 0 -3px 0 #E5872E; }
@media (max-width: 600px) {
    .md-cal-grid .md-cal-first { width: 116px; min-width: 116px; max-width: 116px; padding: 3px 6px; }
    .md-cal-grid th, .md-cal-grid td { width: 68px; min-width: 68px; max-width: 68px; }
    .md-cal-scroll { max-height: calc(100vh - 200px); }
}

/* context rows: season band, occupancy, availability */
.md-cal-grid tr.ctx th.md-cal-first { font-size: .72rem; font-weight: 600; color: #475467; text-transform: uppercase; letter-spacing: .04em; background: #F7F9FB; }
.md-cal-grid tr.ctx td { font-size: .74rem; height: 22px; background: #FBFCFD; }
.md-cal-grid tr.season td { font-weight: 700; font-size: .68rem; color: #1D2939; height: 18px; }
.md-cal-grid tr.season td.none { background: #fff; }
.md-cal-grid td.occ { font-family: "Roboto Mono", ui-monospace, monospace; }
.md-cal-grid td.occ.lo { color: #475467; }
.md-cal-grid td.occ.mid { background: #FFF6E0; color: #9A5B00; }
.md-cal-grid td.occ.hi { background: #FDE7D6; color: #B54708; font-weight: 700; }
.md-cal-grid td.occ.full { background: #FDE2E1; color: #B42318; font-weight: 700; }
.md-cal-grid td.we, .md-cal-grid tr.ctx td.we { background-image: linear-gradient(rgba(91, 61, 181, .05), rgba(91, 61, 181, .05)); }
.md-cal-grid td.past { background: #F2F4F7 !important; color: #98A2B3 !important; }
.md-cal-grid td.bd { box-shadow: inset 2px 0 0 #E5872E; }

/* room type group row */
.md-cal-grid tr.rt th.md-cal-first { background: #EEF5FB; color: #1F5468; font-weight: 700; border-top: 2px solid #CFE0EF; }
.md-cal-grid tr.rt th.md-cal-first span { font-weight: 400; color: #475467; margin-left: 4px; }
.md-cal-grid tr.rt td { background: #F5F9FD; border-top: 2px solid #CFE0EF; font-size: .74rem; color: #1F5468; font-family: "Roboto Mono", ui-monospace, monospace; }
.md-cal-grid tr.rt td.none { color: #B42318; font-weight: 700; }

/* plan rows */
.md-cal-grid tbody th.md-cal-first .code { font-family: "Roboto Mono", ui-monospace, monospace; font-weight: 700; font-size: .78rem; color: #1D2939; }
.md-cal-grid tbody th.md-cal-first .nm { display: block; font-size: .7rem; color: #7A8796; overflow: hidden; text-overflow: ellipsis; }
.md-cal-grid tr.der th.md-cal-first .code, .md-cal-grid tr.der td { font-style: italic; color: #667085; }
.md-cal-grid tr.der th.md-cal-first .fx { margin-left: 4px; font-size: .68rem; color: #5B3DB5; font-style: italic; }
.md-cal-c { height: 40px !important; position: relative; }
.md-cal-c.edit { cursor: pointer; }
.md-cal-c.edit:hover { background: #F0F6FC; }
.md-cal-c .p { display: block; font-family: "Roboto Mono", ui-monospace, monospace; font-size: .78rem; font-variant-numeric: tabular-nums; line-height: 1.3; }
.md-cal-c .p.nil { color: #C4CBD4; }
.md-cal-c .ic { display: flex; align-items: center; justify-content: center; gap: 2px; height: 13px; line-height: 13px; }
.md-cal-c .ic b { font-size: .6rem; font-weight: 800; border-radius: 3px; padding: 0 2px; line-height: 12px; font-style: normal; }
.md-cal-c .ic b.a { background: #FFF1D6; color: #9A5B00; }
.md-cal-c .ic b.d { background: #E1EFFE; color: #1E56A0; }
.md-cal-c .ic b.los { background: #EEF2F6; color: #344054; }
.md-cal-i { width: 12px; height: 12px; fill: currentColor; flex: 0 0 auto; }
.md-cal-i.lock { color: #B42318; }
.md-cal-i.ovr { color: #1F5468; }
.md-cal-i.bot { color: #5B3DB5; }
.md-cal-c.closed { background: #FEF3F2; }
.md-cal-c.closed .p { text-decoration: line-through; text-decoration-color: rgba(180, 35, 24, .5); }
.md-cal-c.changed { background: #FFF4D6 !important; box-shadow: inset 0 0 0 2px #F0B429; }
.md-cal-c.changed .p { font-weight: 700; color: #7A4A00; }
.md-cal-c.editing { padding: 2px; background: #FFF4D6; }
.md-cal-in { width: 100%; height: 30px; border: 2px solid #1F5468; border-radius: 6px; padding: 0 4px; text-align: right; font-family: "Roboto Mono", ui-monospace, monospace;
    font-size: .8rem; background: #fff; color: #1D2939; outline: none; box-sizing: border-box; }
.md-cal-grid tr.empty td { color: #98A2B3; font-style: italic; font-size: .74rem; }

/* legend and notes */
.md-cal-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 10px 16px; border-top: 1px solid #EEF1F5; font-size: .76rem; color: #475467; }
.md-cal-legend .it { display: inline-flex; align-items: center; gap: 5px; }
.md-cal-legend .sw { display: inline-block; width: 14px; height: 14px; border-radius: 3px; border: 1px solid #D0D5DD; }
.md-cal-legend b.a, .md-cal-legend b.d, .md-cal-legend b.los { font-size: .62rem; font-weight: 800; border-radius: 3px; padding: 0 3px; }
.md-cal-legend b.a { background: #FFF1D6; color: #9A5B00; }
.md-cal-legend b.d { background: #E1EFFE; color: #1E56A0; }
.md-cal-legend b.los { background: #EEF2F6; color: #344054; }
/* date override marker ("O"): a date-specific price set on the Date Overrides screen */
.md-cal-c .ic b.ov { background: #F4EBFF; color: #6941C6; cursor: help; }
.md-cal-legend b.ov { font-size: .62rem; font-weight: 800; border-radius: 3px; padding: 0 3px; background: #F4EBFF; color: #6941C6; }
.md-cal-legend a.it { color: #1E56A0; text-decoration: none; }
.md-cal-legend a.it:hover { text-decoration: underline; }

/* floating save bar (unsaved edits) */
.md-cal-save { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 1250; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    background: #1F5468; color: #fff; padding: 8px 10px 8px 16px; border-radius: 12px; box-shadow: 0 8px 24px rgba(16, 24, 40, .25); max-width: calc(100vw - 24px); }
.md-cal-save .n { font-weight: 700; }
.md-cal-save button { border: 0; border-radius: 8px; height: 36px; padding: 0 14px; font: inherit; font-weight: 600; font-size: .86rem; cursor: pointer; }
.md-cal-save button.ok { background: #2E9E62; color: #fff; }
.md-cal-save button.no { background: rgba(255, 255, 255, .14); color: #fff; }
.md-cal-save button:disabled { opacity: .55; cursor: default; }

/* weekday chips (bulk dialogs) */
.md-cal-wd { display: flex; flex-wrap: wrap; gap: 6px; }
.md-cal-wd button { border: 1px solid #D0D5DD; background: #fff; color: #475467; border-radius: 999px; height: 32px; min-width: 48px; padding: 0 10px; font: inherit;
    font-size: .82rem; font-weight: 600; cursor: pointer; }
.md-cal-wd button.on { background: #1F5468; border-color: #1F5468; color: #fff; }
.md-cal-wd .q { border-style: dashed; color: #667085; font-weight: 500; }
.md-cal-lbl { display: block; font-size: .78rem; font-weight: 600; color: #475467; margin: 2px 0 6px; }
.md-cal-prev { border: 1px solid #CFE0EF; background: #F5F9FD; border-radius: 10px; padding: 10px 12px; }
.md-cal-prev .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.md-cal-prev .k { font-size: .72rem; color: #667085; text-transform: uppercase; letter-spacing: .04em; }
.md-cal-prev .v { font-weight: 700; color: #1D2939; font-family: "Roboto Mono", ui-monospace, monospace; }
.md-cal-prev ul { margin: 8px 0 0; padding-left: 18px; color: #9A5B00; font-size: .82rem; }
.md-cal-prev.stale { opacity: .55; }

/* restrictions grid cells */
.md-rs-c { height: 40px !important; cursor: default; }
.md-rs-c.edit { cursor: pointer; }
.md-rs-c.edit:hover { background: #F0F6FC; }
.md-rs-c .fl { display: flex; justify-content: center; gap: 2px; }
.md-rs-c .fl i { font-style: normal; font-size: .62rem; font-weight: 800; width: 15px; height: 15px; line-height: 15px; border-radius: 3px; color: #D0D5DD;
    border: 1px solid #EEF1F5; }
.md-rs-c .fl i.x.on { background: #D92D20; border-color: #D92D20; color: #fff; }
.md-rs-c .fl i.a.on { background: #F79009; border-color: #F79009; color: #fff; }
.md-rs-c .fl i.d.on { background: #2563EB; border-color: #2563EB; color: #fff; }
.md-rs-c .los { display: block; font-family: "Roboto Mono", ui-monospace, monospace; font-size: .7rem; color: #344054; line-height: 14px; height: 14px; }
.md-rs-c .los .adv { color: #7A8796; }
.md-rs-c.inh .fl, .md-rs-c.inh .los { opacity: .45; }
.md-rs-c.closed { background: #FEF3F2; }
.md-rs-c.changed { background: #FFF4D6 !important; box-shadow: inset 0 0 0 2px #F0B429; }
.md-rs-grid tbody th.md-cal-first { white-space: normal; line-height: 1.2; font-size: .78rem; font-weight: 600; color: #1D2939; }
.md-rs-grid tbody tr.all th.md-cal-first { background: #EEF5FB; color: #1F5468; }
.md-rs-legend { display: flex; flex-direction: column; gap: 6px; font-size: .8rem; color: #475467; }
.md-rs-legend .it { display: flex; align-items: center; gap: 8px; }
.md-rs-legend .it i { font-style: normal; font-size: .62rem; font-weight: 800; width: 16px; height: 16px; line-height: 16px; text-align: center; border-radius: 3px; color: #fff; flex: 0 0 auto; }
.md-rs-legend .sw { display: inline-block; width: 16px; height: 16px; border-radius: 3px; border: 1px solid #D0D5DD; flex: 0 0 auto; }
.md-rs-seg { display: inline-flex; border: 1px solid #D0D5DD; border-radius: 8px; overflow: hidden; }
.md-rs-seg button { border: 0; background: #fff; color: #475467; height: 32px; padding: 0 12px; font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; }
.md-rs-seg button + button { border-left: 1px solid #D0D5DD; }
.md-rs-seg button.on { background: #1F5468; color: #fff; }
.md-rs-seg button.on.set { background: #2E9E62; }
.md-rs-seg button.on.clr { background: #B42318; }
.md-rs-flag { display: grid; grid-template-columns: minmax(90px, 140px) auto; gap: 8px 12px; align-items: center; }
.md-rs-flag > span { font-size: .86rem; color: #344054; font-weight: 600; }
.md-rs-scopes { max-height: 200px; overflow: auto; border: 1px solid #E3E8EE; border-radius: 8px; padding: 4px 8px; }
.md-rs-tog { display: flex; flex-wrap: wrap; gap: 8px; }
.md-rs-tog button { border: 1px solid #D0D5DD; background: #fff; color: #475467; border-radius: 8px; height: 38px; padding: 0 14px; font: inherit; font-size: .86rem;
    font-weight: 700; cursor: pointer; }
.md-rs-tog button.on.x { background: #D92D20; border-color: #D92D20; color: #fff; }
.md-rs-tog button.on.a { background: #F79009; border-color: #F79009; color: #fff; }
.md-rs-tog button.on.d { background: #2563EB; border-color: #2563EB; color: #fff; }
