/* S.E.A Room Management V17.3.0 — Phòng & Giờ trống */

.availability-v173-shell{
  display:grid;
  gap:14px;
  min-width:0;
}

.availability-v173-hero,
.availability-board-toolbar-card,
.availability-board-summary{
  background:#fff;
  border:1px solid var(--sea-line,#e2e9e5);
  box-shadow:var(--sea-shadow,0 6px 20px rgba(23,48,37,.045));
}

.availability-v173-hero{
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:17px 19px;
  border-radius:13px;
}
.availability-v173-heading{display:flex;align-items:center;gap:13px;min-width:0}
.availability-v173-icon{
  width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;
  border-radius:13px;background:#eef8f3;color:#116b4b;border:1px solid #d9ede3;
}
.availability-v173-icon svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.availability-v173-heading h2{margin:3px 0 3px;font-size:22px;letter-spacing:-.03em;color:#17251e}
.availability-v173-heading p{margin:0;color:#728078;font-size:10.5px}

.availability-mode-switch{
  display:flex;gap:5px;padding:4px;border-radius:11px;background:#f4f7f5;border:1px solid #e3eae6;
}
.availability-mode-btn{
  min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:0 13px;border:1px solid transparent;border-radius:8px;background:transparent;
  color:#637269;font:700 10px/1 Manrope,Arial,sans-serif;cursor:pointer;white-space:nowrap;
}
.availability-mode-btn svg{width:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.availability-mode-btn:hover{color:#214d3b;background:#fff}
.availability-mode-btn.active{color:#0d6445;background:#fff;border-color:#cfdfd6;box-shadow:0 2px 7px rgba(30,61,47,.07)}

.availability-board-toolbar-card{
  display:flex;align-items:flex-end;justify-content:space-between;gap:14px;
  padding:14px 16px;border-radius:12px;
}
.availability-board-date-control{display:flex;align-items:flex-end;gap:7px;min-width:0}
.availability-board-date-input,.availability-duration-control{display:grid;gap:5px}
.availability-board-date-input span,.availability-duration-control span{
  color:#6d7a73;font-size:9px;font-weight:800;letter-spacing:.035em;text-transform:uppercase;
}
.availability-board-date-input input,.availability-duration-control select{
  height:38px;border:1px solid #d9e2dd;border-radius:9px;background:#fff;color:#24382f;
  padding:0 10px;font:700 11px/1 Manrope,Arial,sans-serif;outline:none;
}
.availability-board-date-input input:focus,.availability-duration-control select:focus{border-color:#9ccbb4;box-shadow:0 0 0 3px rgba(23,123,82,.08)}
.availability-square-btn,.availability-today-btn{
  height:38px;border:1px solid #d9e2dd;border-radius:9px;background:#fff;color:#42564c;
  font:800 11px/1 Manrope,Arial,sans-serif;cursor:pointer;
}
.availability-square-btn{width:38px;font-size:20px}
.availability-today-btn{padding:0 12px}
.availability-square-btn:hover,.availability-today-btn:hover{border-color:#b9d7c8;background:#f4faf7;color:#0d6847}

.availability-day-strip{
  display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;
}
.availability-day-chip{
  min-height:58px;display:grid;place-items:center;align-content:center;gap:2px;
  border:1px solid #e1e8e4;border-radius:10px;background:#fff;color:#738078;cursor:pointer;
}
.availability-day-chip span{font-size:8px;font-weight:800;text-transform:uppercase}
.availability-day-chip strong{font-size:11px;color:#31463b}
.availability-day-chip small{font-size:7.5px;color:#0c7650;font-weight:800}
.availability-day-chip:hover{background:#f7fbf9;border-color:#cfe1d8}
.availability-day-chip.active{background:#edf8f2;border-color:#bcdcca;box-shadow:inset 0 0 0 1px #d4eadf}
.availability-day-chip.active strong,.availability-day-chip.active span{color:#0b6948}
.availability-day-chip.today:not(.active){border-color:#cfe4d9}

.availability-board-summary{
  display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;border-radius:12px;
}
.availability-board-summary-copy{min-width:0}
.availability-board-summary-copy>span{display:block;color:#0e7651;font-size:8px;font-weight:850;letter-spacing:.11em}
.availability-board-summary-copy>strong{display:block;margin-top:3px;color:#1a3025;font-size:17px;letter-spacing:-.02em}
.availability-board-summary-copy>small{display:block;margin-top:4px;color:#738078;font-size:9px;line-height:1.45}
.availability-board-metrics{display:flex;align-items:stretch;gap:7px;flex:0 0 auto}
.availability-board-metrics>div{
  min-width:92px;padding:8px 10px;border-radius:9px;background:#f7faf8;border:1px solid #e3ebe6;text-align:center;
}
.availability-board-metrics strong,.availability-board-metrics span{display:block}
.availability-board-metrics strong{font-size:16px;color:#176e4e}
.availability-board-metrics span{margin-top:2px;color:#748078;font-size:7.5px;font-weight:700}

.availability-board-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}
.availability-board-room-card{
  min-width:0;background:#fff;border:1px solid #dfe8e3;border-radius:12px;overflow:hidden;
  box-shadow:0 5px 16px rgba(30,58,45,.035);
}
.availability-board-room-head{
  min-height:63px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 12px;border-bottom:1px solid #edf1ef;background:#fbfcfb;
}
.availability-board-room-identity{display:flex;align-items:center;gap:9px;min-width:0}
.availability-board-room-icon{
  width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:10px;
  color:#3e6653;background:#f1f7f4;border:1px solid #dfece5;
}
.availability-board-room-icon svg{width:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.availability-board-room-identity strong,.availability-board-room-identity span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.availability-board-room-identity strong{font-size:13px;color:#22382d}
.availability-board-room-identity span{margin-top:3px;color:#748078;font-size:8.5px}
.availability-board-room-badge{
  flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#edf8f2;color:#16714f;font-size:8px;font-weight:800;
}
.availability-slot-list{display:grid}
.availability-slot-row{
  min-height:57px;display:grid;grid-template-columns:92px minmax(0,1fr) 83px;align-items:center;gap:9px;
  padding:8px 11px;border-top:1px solid #f0f3f1;
}
.availability-slot-row:first-child{border-top:0}
.availability-slot-row:hover{background:#fbfdfc}
.availability-slot-select{
  min-height:31px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 7px;
  border:1px solid #dbe5df;border-radius:8px;background:#fff;color:#66776e;font:750 8.5px/1 Manrope,Arial,sans-serif;cursor:pointer;
}
.availability-slot-select i{
  width:16px;height:16px;display:grid;place-items:center;border-radius:5px;background:#f2f5f3;color:#627269;font-style:normal;font-size:10px;
}
.availability-slot-select:hover{border-color:#b8d8c8;background:#f5faf7;color:#146b4c}
.availability-slot-select.selected{border-color:#acd4bf;background:#eaf7f0;color:#0e704d}
.availability-slot-select.selected i{background:#147653;color:#fff}
.availability-slot-time{min-width:0}
.availability-slot-time strong,.availability-slot-time span{display:block}
.availability-slot-time strong{font-size:12px;color:#20362b;letter-spacing:.01em}
.availability-slot-time span{margin-top:2px;color:#76827c;font-size:8px}
.availability-slot-book{
  min-height:31px;border:0;border-radius:8px;background:#f1f7f4;color:#176b4d;font:800 8.5px/1 Manrope,Arial,sans-serif;cursor:pointer;
}
.availability-slot-book span{margin-left:2px}
.availability-slot-book:hover{background:#e3f2ea;color:#0c5f42}
.availability-board-empty{
  grid-column:1/-1;min-height:170px;display:grid;place-items:center;align-content:center;gap:6px;padding:25px;text-align:center;
  border:1px dashed #d5e2dc;border-radius:12px;background:#fafcfa;color:#75827b;
}
.availability-board-empty strong{color:#30473b;font-size:14px}
.availability-board-empty span{font-size:9.5px;max-width:480px;line-height:1.5}

.availability-selection-bar{
  position:sticky;bottom:12px;z-index:35;display:flex;align-items:center;justify-content:space-between;gap:15px;
  padding:11px 13px;margin-top:2px;border:1px solid #bdd9cb;border-radius:13px;background:rgba(247,252,249,.97);
  box-shadow:0 12px 32px rgba(26,64,45,.16);backdrop-filter:blur(12px);
}
.availability-selection-copy span,.availability-selection-copy strong{display:block}
.availability-selection-copy span{color:#247455;font-size:7.5px;font-weight:850;letter-spacing:.09em}
.availability-selection-copy strong{margin-top:2px;font-size:12px;color:#1d3529}
.availability-selection-copy b{color:#0c7650}
.availability-selection-actions{display:flex;gap:7px;align-items:center}
.availability-selection-actions .btn{min-height:35px;padding:0 11px;font-size:8.5px}
.availability-selection-actions svg{width:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.availability-filter-card-v173{padding:17px!important}
.availability-filter-grid-v173{grid-template-columns:1.1fr .85fr .85fr .8fr!important}
.availability-quick-row-v173{display:flex;align-items:center;gap:11px;margin-top:12px;padding-top:12px;border-top:1px solid #edf1ef}
.availability-quick-row-v173>span{flex:0 0 auto;color:#68786f;font-size:9px;font-weight:800}
.availability-quick-row-v173 .availability-quick-slots{margin:0}
.availability-advanced-filter{margin-top:11px;border:1px solid #e4eae7;border-radius:9px;background:#fbfcfb}
.availability-advanced-filter summary{display:flex;align-items:center;gap:6px;padding:10px 12px;cursor:pointer;color:#455a4f;font-size:9px;font-weight:800;list-style:none}
.availability-advanced-filter summary::-webkit-details-marker{display:none}
.availability-advanced-filter summary span{color:#87918c;font-weight:600}
.availability-advanced-filter summary::after{content:"⌄";margin-left:auto;color:#7b8981;font-size:13px;transition:transform .15s ease}
.availability-advanced-filter[open] summary::after{transform:rotate(180deg)}
.availability-advanced-inner{display:grid;grid-template-columns:.65fr 1.35fr;gap:14px;padding:0 12px 12px}
.availability-search-bar-v173{margin-top:11px!important}
.availability-summary-grid-v173{margin-top:0}
.availability-room-actions-v173{justify-content:space-between!important;gap:7px}
.availability-room-actions-v173 .btn{flex:1}
.availability-search-share.selected{border-color:#acd4bf!important;background:#eaf7f0!important;color:#0e704d!important}

.dashboard-availability-pulse{
  display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,2fr);align-items:center;gap:12px;
  padding:11px 13px;border:1px solid #dce8e2;border-radius:11px;background:#f8fbf9;
}
.dashboard-availability-pulse-head{display:flex;align-items:center;justify-content:space-between;gap:9px;min-width:0}
.dashboard-availability-pulse-head>div{min-width:0}
.dashboard-availability-pulse-head span,.dashboard-availability-pulse-head strong{display:block}
.dashboard-availability-pulse-head>div>span{color:#287255;font-size:7.5px;font-weight:850;letter-spacing:.08em}
.dashboard-availability-pulse-head strong{margin-top:2px;color:#294035;font-size:11px}
.dashboard-availability-pulse-head button{border:0;background:transparent;color:#247153;font-size:8px;font-weight:800;cursor:pointer;white-space:nowrap}
.dashboard-availability-slot-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.dashboard-availability-slot{
  display:grid;grid-template-columns:auto auto;align-items:center;gap:1px 7px;padding:7px 9px;
  border:1px solid #dce9e2;border-radius:8px;background:#fff;text-align:left;cursor:pointer;
}
.dashboard-availability-slot>span{grid-column:1/-1;color:#64756c;font-size:8px;font-weight:700}
.dashboard-availability-slot strong{color:#14704f;font-size:11px}
.dashboard-availability-slot small{color:#89928d;font-size:7.5px}
.dashboard-availability-slot:hover{border-color:#bcdacb;background:#f7fbf9}
.dashboard-availability-empty{grid-column:1/-1;padding:7px 9px;color:#78857e}
.dashboard-availability-empty strong,.dashboard-availability-empty span{display:block}
.dashboard-availability-empty strong{font-size:9px;color:#42584d}
.dashboard-availability-empty span{margin-top:2px;font-size:7.5px}

@media (max-width:1100px){
  .availability-board-results{grid-template-columns:1fr}
  .availability-filter-grid-v173{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-availability-pulse{grid-template-columns:1fr}
}

@media (max-width:980px){
  .availability-v173-hero{align-items:stretch;flex-direction:column;gap:12px}
  .availability-mode-switch{align-self:flex-start}
  .availability-board-summary{align-items:flex-start;flex-direction:column}
  .availability-board-metrics{width:100%}
  .availability-board-metrics>div{flex:1;min-width:0}
  .availability-day-strip{display:flex;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .availability-day-strip::-webkit-scrollbar{display:none}
  .availability-day-chip{min-width:75px;flex:0 0 75px}
  .availability-advanced-inner{grid-template-columns:1fr}
}

@media (max-width:780px), (max-width:980px) and (max-height:520px){
  .availability-v173-shell{gap:9px;width:100%;min-width:0}
  .availability-v173-hero{min-height:0;padding:12px;border-radius:11px}
  .availability-v173-heading{align-items:flex-start;gap:9px}
  .availability-v173-icon{width:38px;height:38px;flex-basis:38px;border-radius:10px}
  .availability-v173-icon svg{width:18px}
  .availability-v173-heading h2{font-size:18px}
  .availability-v173-heading p{font-size:9px;line-height:1.45}
  .availability-mode-switch{display:grid;grid-template-columns:1fr 1fr;width:100%;padding:3px}
  .availability-mode-btn{width:100%;min-height:36px;padding:0 7px;font-size:9px}

  .availability-board-toolbar-card{align-items:stretch;flex-direction:column;padding:11px;border-radius:10px}
  .availability-board-date-control{display:grid;grid-template-columns:36px minmax(0,1fr) 36px auto;align-items:end;gap:5px}
  .availability-board-date-input{min-width:0}
  .availability-board-date-input input{width:100%;min-width:0}
  .availability-square-btn{width:36px}
  .availability-today-btn{padding:0 9px;font-size:9px}
  .availability-duration-control{grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:8px}
  .availability-duration-control span{text-transform:none;font-size:9px;letter-spacing:0}

  .availability-day-chip{min-width:68px;flex-basis:68px;min-height:52px}
  .availability-board-summary{padding:11px;border-radius:10px;gap:10px}
  .availability-board-summary-copy>strong{font-size:15px}
  .availability-board-summary-copy>small{font-size:8px}
  .availability-board-metrics{gap:5px}
  .availability-board-metrics>div{padding:7px 5px}
  .availability-board-metrics strong{font-size:14px}
  .availability-board-metrics span{font-size:7px}

  .availability-board-results{grid-template-columns:1fr;gap:8px}
  .availability-board-room-card{border-radius:10px}
  .availability-board-room-head{min-height:55px;padding:9px 10px}
  .availability-board-room-icon{width:32px;height:32px;flex-basis:32px}
  .availability-board-room-identity strong{font-size:12px}
  .availability-board-room-identity span{font-size:8px}
  .availability-board-room-badge{font-size:7.5px;padding:4px 7px}
  .availability-slot-row{grid-template-columns:77px minmax(0,1fr) 68px;gap:6px;padding:7px 8px;min-height:53px}
  .availability-slot-select{padding:0 5px;font-size:7.8px;min-height:29px}
  .availability-slot-select i{width:14px;height:14px;font-size:8px}
  .availability-slot-time strong{font-size:11px}
  .availability-slot-time span{font-size:7.5px}
  .availability-slot-book{min-height:29px;font-size:7.7px}

  .availability-selection-bar{
    position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:95;
    align-items:stretch;flex-direction:column;gap:8px;padding:9px 10px;border-radius:11px;
  }
  .availability-selection-copy{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .availability-selection-copy strong{margin:0}
  .availability-selection-actions{display:grid;grid-template-columns:.8fr 1fr 1.35fr;width:100%}
  .availability-selection-actions .btn{width:100%;padding:0 7px;font-size:7.8px}
  body.availability-selection-open #availablePage{padding-bottom:112px}

  .availability-filter-card-v173{padding:11px!important}
  .availability-filter-card-v173 .availability-filter-title p{display:block!important;font-size:8.5px!important}
  .availability-filter-grid-v173{grid-template-columns:1fr 1fr!important;gap:7px!important}
  .availability-quick-row-v173{align-items:flex-start;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px}
  .availability-quick-row-v173 .availability-quick-slots{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%;gap:5px!important}
  .availability-quick-row-v173 .availability-quick-btn{width:100%;min-height:33px}
  .availability-advanced-inner{padding:0 9px 9px;gap:9px}
  .availability-search-bar-v173{padding:9px!important}
  .availability-summary-grid-v173{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}
  .availability-summary-grid-v173 .availability-summary-card{padding:8px!important;min-width:0!important;gap:6px!important}
  .availability-summary-grid-v173 .availability-summary-icon{display:none!important}
  .availability-summary-grid-v173 .availability-summary-card strong{font-size:15px!important}
  .availability-summary-grid-v173 .availability-summary-card small{font-size:7px!important;line-height:1.35}
  .availability-summary-grid-v173 .availability-summary-card>div:last-child>span{font-size:7px!important;letter-spacing:0!important;text-transform:none!important}
  .availability-room-actions-v173{display:grid!important;grid-template-columns:1fr 1fr!important}

  .dashboard-availability-pulse{display:grid!important;grid-template-columns:1fr!important;gap:7px;padding:9px;border-radius:10px}
  .dashboard-availability-pulse-head>div>span{font-size:7px}
  .dashboard-availability-pulse-head strong{font-size:10px}
  .dashboard-availability-slot-list{display:flex;overflow-x:auto;gap:5px;scrollbar-width:none}
  .dashboard-availability-slot-list::-webkit-scrollbar{display:none}
  .dashboard-availability-slot{min-width:108px;flex:0 0 108px;padding:6px 8px}
}

@media (max-width:520px){
  .availability-board-date-control{grid-template-columns:34px minmax(0,1fr) 34px}
  .availability-today-btn{grid-column:1/-1;width:100%;height:32px}
  .availability-filter-grid-v173{grid-template-columns:1fr!important}
  .availability-summary-grid-v173{grid-template-columns:1fr!important}
  .availability-summary-grid-v173 .availability-summary-card{display:flex!important;align-items:center!important}
  .availability-summary-grid-v173 .availability-summary-card small{font-size:7.5px!important}
}
