.dormitory-room-list{
  max-height:min(68vh,720px);
}

.dormitory-room-side-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.dormitory-room-side-meta{
  color:var(--ink3);
  font-size:11px;
}

.dormitory-room-entry span + span{
  margin-top:3px;
}

.dormitory-room-entry__meta{
  color:var(--ink3);
}

.dormitory-reference-grid{
  margin-bottom:0;
}

.dormitory-reference-card{
  align-items:stretch;
}

.dormitory-reference-input{
  width:100%;
}

.dormitory-room-card__eyebrow{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(23,54,93,.08);
  color:var(--navy);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.dormitory-room-card__meta{
  display:grid;
  gap:4px;
  width:100%;
}

.dormitory-room-card__meta span{
  color:var(--ink2);
  font-size:12px;
  line-height:1.4;
}

.dormitory-room-card__foot{
  margin-top:auto;
  color:var(--ink3);
  font:700 11px "Roboto",sans-serif;
}

.dormitory-comparison-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}

.dormitory-comparison-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  width:100%;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,#fff 0%,#f7faff 100%);
  padding:16px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(12,24,44,.05);
}

.dormitory-comparison-card:hover{
  border-color:#a9c0e6;
  box-shadow:0 12px 24px rgba(12,24,44,.1);
}

.dormitory-comparison-card__head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}

.dormitory-comparison-card__head strong{
  font:700 22px/1.08 "Roboto",sans-serif;
  color:var(--ink);
}

.dormitory-comparison-card p{
  margin:0;
  color:var(--ink2);
  font-size:12px;
  line-height:1.5;
}

.dormitory-comparison-card__row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  width:100%;
  padding-top:10px;
  border-top:1px solid rgba(148,163,184,.18);
}

.dormitory-comparison-card__row span{
  color:var(--ink3);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.dormitory-comparison-card__row strong{
  color:var(--ink);
  font:700 14px/1.25 "Roboto",sans-serif;
  text-align:right;
}

.dormitory-value-missing,
.dormitory-metric-missing{
  color:var(--amber)!important;
}

.dormitory-rent-editor{
  align-items:stretch;
}

.dormitory-rent-editor__controls{
  display:grid;
  gap:10px;
}

.dormitory-rent-editor__input{
  width:100%;
}

.dormitory-rent-editor__actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.dormitory-detail-stack{
  display:grid;
  gap:14px;
}

.dormitory-month-shell{
  display:grid;
  gap:14px;
}

.dormitory-month-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px;
}

.dormitory-month-chip{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  width:100%;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  text-align:left;
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.dormitory-month-chip:hover{
  border-color:#a9c0e6;
  box-shadow:0 10px 22px rgba(12,24,44,.08);
  transform:translateY(-1px);
}

.dormitory-month-chip.active{
  border-color:#17365d;
  box-shadow:0 12px 24px rgba(23,54,93,.12);
}

.dormitory-month-chip strong{
  font:700 15px/1.2 "Roboto",sans-serif;
  color:var(--ink);
}

.dormitory-month-chip span{
  color:var(--ink2);
  font-size:12px;
  line-height:1.4;
}

.dormitory-month-chip__sub{
  color:var(--ink3)!important;
}

.dormitory-month-chip__badge,
.dormitory-month-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 10px;
  border-radius:999px;
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.dormitory-month-chip__badge{
  margin-top:auto;
}

.dormitory-month-chip.is-paid .dormitory-month-chip__badge,
.dormitory-month-badge.is-paid{
  background:rgba(27,94,32,.12);
  color:#1b5e20;
}

.dormitory-month-chip.is-partial .dormitory-month-chip__badge,
.dormitory-month-badge.is-partial{
  background:rgba(180,83,9,.12);
  color:#b45309;
}

.dormitory-month-chip.is-due .dormitory-month-chip__badge,
.dormitory-month-badge.is-due{
  background:rgba(30,64,175,.12);
  color:#1e40af;
}

.dormitory-month-chip.is-history .dormitory-month-chip__badge,
.dormitory-month-badge.is-history{
  background:rgba(13,148,136,.12);
  color:#0f766e;
}

.dormitory-month-chip.is-empty .dormitory-month-chip__badge,
.dormitory-month-badge.is-empty{
  background:rgba(100,116,139,.12);
  color:#475569;
}

.dormitory-month-detail{
  display:grid;
  gap:12px;
}

.dormitory-month-detail-card{
  padding-bottom:2px;
}

.dormitory-month-metrics{
  margin-bottom:14px;
}

.dormitory-month-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px;
}

.dormitory-month-card{
  display:grid;
  gap:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  padding:16px;
}

.dormitory-month-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.dormitory-month-card__summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.dormitory-month-card__summary div{
  padding:10px 12px;
  border-radius:14px;
  background:rgba(148,163,184,.08);
}

.dormitory-month-card__summary span{
  display:block;
  color:var(--ink3);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:6px;
}

.dormitory-month-card__summary strong{
  color:var(--ink);
  font:700 15px/1.3 "Roboto",sans-serif;
}

.dormitory-month-card__meta,
.dormitory-resident-payment-card__meta{
  display:grid;
  gap:8px;
}

.dormitory-month-card__meta div,
.dormitory-resident-payment-card__meta div{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding-top:8px;
  border-top:1px solid rgba(148,163,184,.18);
}

.dormitory-month-card__meta span,
.dormitory-resident-payment-card__meta span{
  color:var(--ink3);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.dormitory-month-card__meta strong,
.dormitory-resident-payment-card__meta strong{
  color:var(--ink);
  font:700 13px/1.35 "Roboto",sans-serif;
  text-align:right;
}

.dormitory-month-card__meta--placeholder{
  visibility:hidden;
  pointer-events:none;
}

.dormitory-month-editor__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.dormitory-month-editor__grid--single{
  grid-template-columns:1fr;
}

.dormitory-month-editor__grid label{
  display:grid;
  gap:6px;
  color:var(--ink2);
  font-size:12px;
}

.dormitory-month-editor__grid span{
  color:var(--ink3);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.dormitory-month-card__actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.dormitory-resident-shell{
  margin-top:4px;
}

.dormitory-resident-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px;
}

.dormitory-resident-card{
  display:grid;
  gap:14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fff;
  padding:16px;
}

.dormitory-resident-profile-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.dormitory-resident-profile-grid label{
  display:grid;
  gap:6px;
  color:var(--ink2);
  font-size:12px;
}

.dormitory-resident-profile-grid span{
  color:var(--ink3);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.dormitory-resident-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.dormitory-resident-payment-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
}

.dormitory-resident-payment-card{
  display:grid;
  gap:12px;
  align-content:start;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}

.dormitory-resident-payment-card__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.dormitory-resident-payment-card__head > div{
  flex:1 1 180px;
  min-width:0;
}

.dormitory-resident-payment-card .card-title,
.dormitory-resident-payment-card .card-sub{
  overflow-wrap:anywhere;
}

.dormitory-resident-payment-card__summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:10px;
}

.dormitory-resident-payment-card__summary div{
  display:grid;
  align-content:start;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(148,163,184,.08);
  min-height:78px;
}

.dormitory-resident-payment-card__summary span{
  display:block;
  color:var(--ink3);
  font:700 10px "Roboto",sans-serif;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:6px;
}

.dormitory-resident-payment-card__summary strong{
  color:var(--ink);
  font:700 15px/1.3 "Roboto",sans-serif;
}

@media (max-width:760px){
  .dormitory-room-side-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .dormitory-comparison-grid{
    grid-template-columns:1fr;
  }

  .dormitory-month-grid,
  .dormitory-month-card-grid,
  .dormitory-resident-card-grid,
  .dormitory-resident-profile-grid,
  .dormitory-resident-payment-grid,
  .dormitory-month-card__summary,
  .dormitory-resident-payment-card__summary,
  .dormitory-month-editor__grid{
    grid-template-columns:1fr;
  }
}
