@import url("./design-system.css");

/* ============================= */
/* 🌐 CSS Base - Custom Framework */
/* ============================= */

/* 🎨 Color Variables */
:root {
  --color-primary: #4f6d7a;      /* Neutral blue-gray */
  --color-secondary: #08c4bb;    /* Darker blue-gray */
  --color-background: #f8fafb;   /* Neutral background */
  --color-surface: #ffffff;      /* White surface */
  --color-text: #2f3a40;         /* Neutral dark text */
  --color-muted: #7b8790;        /* Neutral muted text */
  --color-border: #dde4e8;       /* Soft neutral border */

  --color-blue: #4A90E2;
  --color-green: #4CAF50; 
  --color-dark-green: #207723;      
  --color-yellow: #F2C94C;       
  --color-dark-yellow: #9a7b14;  
  --color-orange: #E67E22;    
  --color-red: #C0392B;      
  --color-dark-red: #92190c;       
  --color-pink: #d980c9;   
  --color-purple: #8E44AD; 
  --color-beige: #DCC7AA;
  --color-brown: #7B4B2A;    
  --color-gray: #B0A99F;  
  --color-white: #FFFFFF;
  --border-radius: var(--eo-radius-card);
  --shadow-default: var(--eo-shadow-xs);
  --transition-default: all var(--eo-transition-base);
}

/* 🌙 Dark Mode */
/*
@media (prefers-color-scheme: dark) {
  :root {
  }
}
*/

/* ============================= */
/* ✨ Base Elements               */
/* ============================= */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Segoe UI', sans-serif;
  background-color: var(--color-background);
  color: var(--color-text);
  line-height: 1.6;
  transition: var(--transition-default);
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ============================= */
/* 📐 Layout & Utilities         */
/* ============================= */

/* Flexbox */
.d-flex {
  display: flex;
}

.flex-column {
  flex-direction: column;
}

.flex-row {
  flex-direction: row;
}

.justify-center {
  justify-content: center;
}

.align-center {
  align-items: center;
}

/* Text */
.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

.text-muted {
  color: var(--color-muted);
}

/* Spacing */
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 1rem; }

.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 1rem; }

.ml-1 { margin-left: 0.25rem; }
.ml-2 { margin-left: 0.5rem; }
.ml-3 { margin-left: 1rem; }

.mr-1 { margin-right: 0.25rem; }
.mr-2 { margin-right: 0.5rem; }
.mr-3 { margin-right: 1rem; }

.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-3 { padding: 1rem; }

.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }

/* Width / Height */
.w-100 { width: 100%; }
.h-100 { height: 100%; }
.max-w-400 { max-width: 400px; }

/* Border / Radius / Shadow */
.rounded { border-radius: var(--border-radius); }
.shadow { box-shadow: var(--shadow-default); }
.border { border: 1px solid var(--color-border); }


/* Images */
.img-fluid { max-width: 100%; height: auto; object-fit: cover; border-radius: var(--eo-radius-card); }

/* Image color filters
.img-tint-primary {
  filter: brightness(0) saturate(100%) invert(69%) sepia(22%) saturate(703%) hue-rotate(287deg) brightness(91%) contrast(88%);
}

.img-tint-secondary {
  filter: brightness(0) saturate(100%) invert(59%) sepia(20%) saturate(1019%) hue-rotate(289deg) brightness(85%) contrast(86%);
}

.img-tint-muted {
  filter: brightness(0) saturate(100%) invert(74%) sepia(10%) saturate(395%) hue-rotate(282deg) brightness(84%) contrast(87%);
} */

/* Highlighted links */
.link-highlight {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--color-blue);
  font-weight: 500;
  transition: var(--transition-default);
}

.link-highlight i {
  font-size: 0.95em;
}

.link-highlight:hover {
  color: color-mix(in srgb, var(--color-blue) 82%, black);
}

.link-muted {
  opacity: 0.6;
}

.link-muted:hover {
  opacity: 0.8;
}

/* ============================= */
/* 🎯 Buttons                    */
/* ============================= */
.btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  background-color: var(--color-primary);
  color: white;
  border: none;
  border-radius: var(--eo-radius-button);
  cursor: pointer;
  transition: var(--transition-default);
  text-align: center;
}

.btn:hover {
  background-color: var(--color-secondary);
}

/* Variants */
.btn-secondary {
  background-color: var(--color-secondary);
}

.btn-outline {
  background-color: transparent;
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
}

.btn-outline:hover {
  background-color: var(--color-primary);
  color: white;
}

.ui-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.42rem 0.72rem;
  border: 1px solid transparent;
  border-radius: var(--eo-radius-pill);
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  transition: var(--transition-default);
  white-space: nowrap;
}

.ui-button i {
  font-size: 0.82rem;
}

.ui-button--sm {
  padding: 0.42rem 0.72rem;
  font-size: 0.88rem;
}

.ui-button--tint-primary {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
}

.ui-button--tint-primary:hover {
  background: color-mix(in srgb, var(--color-primary) 20%, transparent);
  color: var(--color-primary);
  text-decoration: none;
}

.ui-button--tint-blue {
  background: color-mix(in srgb, var(--color-blue) 12%, transparent);
  color: var(--color-blue);
}

.ui-button--tint-blue:hover {
  background: color-mix(in srgb, var(--color-blue) 20%, transparent);
  color: var(--color-blue);
  text-decoration: none;
}

.ui-button--tint-green {
  background: color-mix(in srgb, var(--color-green) 12%, transparent);
  color: var(--color-green);
}

.ui-button--tint-green:hover {
  background: color-mix(in srgb, var(--color-green) 20%, transparent);
  color: var(--color-green);
  text-decoration: none;
}

.ui-button--tint-red {
  background: color-mix(in srgb, var(--color-red) 10%, transparent);
  color: var(--color-red);
}

.ui-button--tint-red:hover {
  background: color-mix(in srgb, var(--color-red) 18%, transparent);
  color: var(--color-red);
  text-decoration: none;
}

/* ============================= */
/* 🧩 Cards, Containers, etc.    */
/* ============================= */

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem;
}

.card {
  background-color: var(--color-surface);
  border-radius: var(--eo-radius-card);
  padding: 1.5rem;
  box-shadow: var(--shadow-default);
  transition: var(--transition-default);
}

.card:hover {
  transform: translateY(-4px);
}

/* ============================= */
/* 🔠 Typography                 */
/* ============================= */

.title {
  font-size: 2rem;
  color: var(--color-primary);
}

.subtitle {
  font-size: 1.25rem;
  color: var(--color-muted);
}

.paragraph {
  font-size: 1rem;
  color: var(--color-text);
}

/* ============================= */
/* 📱 Responsive Breakpoints     */
/* ============================= */
@media (max-width: 768px) {
  .flex-row {
    flex-direction: column;
  }

  .container {
    padding: 1rem;
  }
}

/* ============================= */
/* 🌐 Template Base Layout       */
/* ============================= */

.header {
  background-color: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
  padding: 1rem 0;
  box-shadow: var(--shadow-default);
  position: sticky;
  top: 0;
  z-index: 10;
}

.header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 2rem;
}

.logo a {
  font-size: 1.5rem;
  font-weight: bold;
  color: var(--color-primary);
  text-decoration: none;
}

.logo img {
  max-height: 50px;
}

.menu a {
  margin-left: 1.5rem;
  color: var(--color-text);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease-in-out;
}

.menu a:hover {
  color: var(--color-primary);
}

.header-notifications-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 1.5rem;
}

.header-notifications {
  position: relative;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-pill);
  background: var(--color-surface);
  color: var(--color-text);
  cursor: pointer;
  transition: var(--transition-default);
}

.header-notifications:hover,
.header-notifications[aria-expanded="true"] {
  border-color: var(--color-primary);
  color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));
}

.notification-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--eo-radius-pill);
  background: var(--color-red);
  color: var(--color-white);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  border: 2px solid var(--color-surface);
}

.notifications-dropdown {
  position: absolute;
  top: calc(100% + 0.75rem);
  right: 0;
  width: min(360px, calc(100vw - 2rem));
  max-height: 420px;
  overflow-y: auto;
  display: none;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
  z-index: 100;
}

.notifications-dropdown.is-open {
  display: block;
}

.notifications-dropdown::before {
  content: "";
  position: absolute;
  top: -7px;
  right: 14px;
  width: 14px;
  height: 14px;
  background: var(--color-surface);
  border-left: 1px solid var(--color-border);
  border-top: 1px solid var(--color-border);
  transform: rotate(45deg);
}

.notifications-dropdown-header {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.95rem 1rem;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-primary);
}

.notification-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0;
  padding: 0.95rem 1rem;
  border-bottom: 1px solid var(--color-border);
  color: var(--color-text);
  text-decoration: none;
  transition: var(--transition-default);
}

.notification-item:last-child {
  border-bottom: none;
}


.notification-item:hover {
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  color: var(--color-text);
}

/* Read notification styles */
.notification-item-read {
  opacity: 0.58;
  background: rgba(0, 0, 0, 0.025);
}

.notification-item-read:hover {
  opacity: 0.78;
  background: rgba(0, 0, 0, 0.04);
}

.notification-item-read .notification-item-icon {
  background: rgba(0, 0, 0, 0.04);
  border-color: var(--color-border);
  color: var(--color-muted);
}

.notification-item-read .notification-item-content strong,
.notification-item-read .notification-item-content span {
  color: var(--color-muted);
}

.notification-item-icon {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--eo-radius-pill);
  background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));
  color: var(--color-primary);
  font-size: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
}

.notification-item-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.notification-item-content strong {
  color: var(--color-secondary);
  font-size: 0.92rem;
  line-height: 1.3;
}

.notification-item-content span {
  color: var(--color-muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

.notification-empty {
  margin: 0;
  padding: 1.25rem 1rem;
  color: var(--color-muted);
  font-size: 0.9rem;
  text-align: center;
}

.notification-text-highlight {
  color: var(--color-primary) !important;
}

@media (max-width: 768px) {
  .header-notifications-wrapper {
    margin-left: 0;
    margin-top: 0.75rem;
  }

  .notifications-dropdown {
    right: auto;
    left: 0;
    width: min(320px, calc(100vw - 2rem));
  }

  .notifications-dropdown::before {
    right: auto;
    left: 14px;
  }
}

/* Content */
.main-content {
  padding: 2rem 1rem;
  min-height: 80vh;
  background-color: var(--color-background);
}

/* Footer */
.footer {
  background-color: var(--color-surface);
  border-top: 1px solid var(--color-border);
  padding: 1.5rem 1rem;
  text-align: center;
  font-size: 0.9rem;
  color: var(--color-muted);
}

.footer .container {
  max-width: 1200px;
  margin: 0 auto;
}

/* ============================= 
Login:
login.html
register.html
create_organization.html
============================= */

.auth-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 85vh;
  padding: 20px;
  background: var(--color-background);
}

.auth-form {
  background: var(--color-surface);
  padding: 40px 32px;
  border-radius: var(--eo-radius-card);
  box-shadow: var(--shadow-default);
  max-width: 400px;
  width: 100%;
}

.auth-form h2 {
  text-align: center;
  margin-bottom: 32px;
  font-size: 1.8rem;
  color: var(--color-primary);
}

.input-group {
  display: flex;
  align-items: center;
  border-bottom: 2px solid var(--color-border);
  margin-bottom: 24px;
  transition: border 0.2s ease;
}

.input-group:focus-within {
  border-bottom-color: var(--color-primary);
}

.input-group i {
  margin-right: 10px;
  color: var(--color-muted);
  font-size: 1rem;
}

.input-group input {
  border: none;
  outline: none;
  background: none;
  flex: 1;
  font-size: 1rem;
  padding: 12px 0;
  color: var(--color-text);
}

.input-group input::placeholder {
  color: var(--color-muted);
  font-style: italic;
}

.input-group.highlighted-select-group {
  position: relative;
}

.input-group.highlighted-select-group select,
.input-group .form-select {
  width: 100%;
  height: 48px;
  padding: 0 14px 0 42px;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-white);
  color: var(--color-text);
  font-size: 0.95rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
}

.input-group.highlighted-select-group select:focus,
.input-group .form-select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.04);
}

.input-group.highlighted-select-group::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--color-text-muted);
  border-bottom: 2px solid var(--color-text-muted);
  transform: translateY(-65%) rotate(45deg);
  pointer-events: none;
}

.input-group.subtle-select-group select {
  width: 100%;
  height: 48px;
  padding: 0;

  border: none;
  background: transparent;

  font-size: 0.95rem;
  color: var(--color-text);

  appearance: none;
  cursor: pointer;
}

.input-group.subtle-select-group select:focus {
  outline: none;
  box-shadow: none;
}

.btn.full {
  width: 100%;
  background: var(--color-primary);
  color: var(--color-white);
  padding: 12px;
  font-size: 1rem;
  border: none;
  border-radius: var(--eo-radius-button);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s ease;
}

.btn.full:hover {
  background: var(--color-secondary);
}

.text-muted {
  margin-top: 20px;
  font-size: 0.9rem;
  text-align: center;
  color: var(--color-muted);
}

.error-text {
  color: var(--color-red); 
  font-size: 12px;
  margin-top: -16px;
  display: block;
}

/* =============================
Organization Address Form
create_organization.html
============================= */

.organization-address-section {
  margin: 1.25rem 0 1.5rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-panel);
  background: color-mix(in srgb, var(--color-surface) 88%, var(--color-primary) 12%);
}

.form-section-title {
  margin: 0 0 0.35rem;
  color: var(--color-primary);
  font-size: 1.05rem;
  font-weight: 700;
}

.form-section-subtitle {
  margin: 0 0 1rem;
  color: var(--color-muted);
  font-size: 0.9rem;
  line-height: 1.4;
  text-align: left;
}

.organization-address-section .btn-outline.full {
  margin-top: 0.25rem;
  margin-bottom: 0;
  background: transparent;
  color: var(--color-primary);
}

.organization-address-section .btn-outline.full:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.new-address-fields {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--color-border);
}

.new-address-fields .input-group:last-of-type {
  margin-bottom: 0;
}

/* ============================= 
Account:
account_details.html 
============================= */

.account-container {
  max-width: 800px;
  margin: 40px auto;
  display: flex;
  flex-direction: column;
  gap: 32px;
  padding: 0 20px;
}

.account-card {
  background: linear-gradient(145deg, var(--color-background), var(--color-surface));
  border-radius: var(--eo-radius-card);
  padding: 36px;
  box-shadow: var(--shadow-default);
  position: relative;
  overflow: hidden;
}

.account-card::before {
  content: "";
  position: absolute;
  top: -20px;
  right: -20px;
  width: 120px;
  height: 120px;
  opacity: 0.06;
}

.account-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.profile-img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid var(--color-primary);
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.username {
  color: var(--color-muted);
  font-size: 0.9rem;
  margin-top: 4px;
}

.account-details p {
  margin: 10px 0;
  font-size: 0.95rem;
  color: var(--color-text);
}

.account-footer {
  text-align: right;
  margin-top: 20px;
}

/* Upload Overlay */
.profile-picture-wrapper {
  position: relative;
  width: 80px;
  height: 80px;
}

.upload-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 80px;
  height: 80px;
  background: rgba(0, 0, 0, 0.4);
  color: var(--color-background);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  opacity: 0;
  transition: 0.3s ease;
  cursor: pointer;
}

.profile-picture-wrapper:hover .upload-overlay {
  opacity: 1;
}

.upload-overlay i {
  font-size: 18px;
}

/* Inputs de edição */
.edit-account-input {
  border: none;
  border-bottom: 1px solid var(--color-border);
  background: transparent;
  padding: 4px 2px;
  font-size: 0.95rem;
  outline: none;
  width: 100%;
  max-width: 300px;
  color: var(--color-text);
}

/* Botão de logout */
.logout-button {
  background: none;
  border: none;
  color: var(--color-red); 
  font-size: 0.95rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 0;
  margin-top: 24px;
  transition: color 0.2s ease;
}

.logout-button i {
  font-size: 1rem;
}

.logout-button:hover {
  filter: brightness(0.8);
  text-decoration: underline;
}

/* Google Calendar connection */
.calendar-connect-card {
  margin-top: 1.5rem;
  padding: 1.25rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  box-shadow: none;
}

.calendar-connect-header {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  margin-bottom: 1rem;
}

.calendar-connect-icon {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  border-radius: var(--eo-radius-input);
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-surface));
  color: var(--color-primary);
  font-size: 1rem;
}

.calendar-connect-header h3 {
  margin: 0 0 0.2rem;
  color: var(--color-text);
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.calendar-connect-header p {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.calendar-connect-status {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.7rem;
  padding: 0.42rem 0.65rem;
  border-radius: var(--eo-radius-input);
  border: 1px solid var(--color-border);
  background: transparent;
  font-size: 0.84rem;
  font-weight: 650;
  line-height: 1;
}

.calendar-connect-status.connected {
  border-color: color-mix(in srgb, var(--color-green) 28%, var(--color-border));
  color: var(--color-green);
  background: color-mix(in srgb, var(--color-green) 6%, var(--color-surface));
}

.calendar-connect-status.disconnected {
  border-color: color-mix(in srgb, var(--color-red) 26%, var(--color-border));
  color: var(--color-red);
  background: color-mix(in srgb, var(--color-red) 5%, var(--color-surface));
}

.calendar-account-badge {
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.46rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--color-border) 84%, var(--color-primary) 16%);
  border-radius: var(--eo-radius-input);
  background: color-mix(in srgb, var(--color-background) 46%, var(--color-surface));
  color: var(--color-text);
  font-size: 0.84rem;
  font-weight: 650;
  line-height: 1.2;
}

.calendar-account-badge i {
  color: var(--color-muted);
  font-size: 0.8rem;
}

.calendar-account-badge span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-connect-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
}

.calendar-connect-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: fit-content;
  margin-top: 0.9rem;
  padding: 0.56rem 0.85rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 34%, var(--color-border));
  border-radius: var(--eo-radius-button);
  background: transparent;
  color: var(--color-primary);
  box-shadow: none;
  font-size: 0.88rem;
  font-weight: 650;
  line-height: 1.2;
  transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}

.calendar-connect-btn:hover {
  background: color-mix(in srgb, var(--color-primary) 5%, transparent);
  border-color: color-mix(in srgb, var(--color-primary) 52%, var(--color-border));
  color: var(--color-secondary);
  transform: translateY(-1px);
}

.calendar-reconnect-btn {
  margin-top: 0;
  padding: 0.68rem 1rem;
  border-color: color-mix(in srgb, var(--color-blue) 34%, var(--color-border));
  background: color-mix(in srgb, var(--color-blue) 6%, var(--color-surface));
  color: var(--color-blue);
  font-weight: 700;
}

.calendar-reconnect-btn:hover {
  background: color-mix(in srgb, var(--color-blue) 10%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-blue) 48%, var(--color-border));
  color: var(--color-blue);
}

@media (max-width: 640px) {
  .calendar-connect-card {
    padding: 1rem;
  }

  .calendar-connect-header {
    gap: 0.75rem;
  }

  .calendar-account-badge,
  .calendar-connect-btn {
    width: 100%;
  }

  .calendar-connect-actions {
    justify-content: stretch;
  }
}

/* =============================
📅 Calendar:
calendar.html
============================= */

.calendar-space-section {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--color-primary) 8%, transparent), transparent 22rem),
    linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-primary) 3%, var(--color-surface)));
  border: 1px solid color-mix(in srgb, var(--color-border) 86%, var(--color-primary) 14%);
  border-radius: var(--eo-radius-panel);
  padding: clamp(1.2rem, 3vw, 2rem);
  margin-bottom: 2rem;
  box-shadow: var(--eo-shadow-sm);
  color: var(--color-text);
}

.calendar-space-section::before {
  content: "";
  position: absolute;
  top: -140px;
  right: -120px;
  width: 260px;
  height: 260px;
  border-radius: var(--eo-radius-pill);
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  pointer-events: none;
}

.calendar-space-header {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 1.35rem;
}

.calendar-space-header-content {
  max-width: 760px;
}

.calendar-space-eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-bottom: 0.7rem;
  padding: 0.46rem 0.72rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: var(--eo-radius-input);
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  line-height: 1;
  text-transform: uppercase;
}

.calendar-space-title {
  max-width: 780px;
  margin: 0 0 0.55rem;
  color: var(--color-primary);
  font-size: clamp(1.9rem, 4vw, 3rem);
  font-weight: 850;
  line-height: 1.03;
  letter-spacing: -0.045em;
}

.calendar-space-description {
  max-width: 760px;
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.7;
  opacity: 0.86;
}

.calendar-space-price-card {
  min-width: 190px;
  padding: 1rem 1.05rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: var(--eo-radius-card);
  background: color-mix(in srgb, var(--color-surface) 76%, transparent);
  box-shadow: var(--eo-shadow-xs);
  backdrop-filter: blur(8px);
  text-align: right;
}

.calendar-space-price-label,
.calendar-space-price-period {
  display: block;
  color: var(--color-muted);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.2;
}

.calendar-space-price {
  display: block;
  margin: 0.14rem 0;
  color: var(--color-primary);
  font-size: 1.45rem;
  font-weight: 850;
  line-height: 1.05;
  letter-spacing: -0.035em;
}

.calendar-info-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.8rem;
  margin-top: 0;
}

.calendar-info-card {
  width: 100%;
  min-height: 82px;
  background: color-mix(in srgb, var(--color-surface) 88%, var(--color-background) 12%);
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
  border-radius: var(--eo-radius-card);
  padding: 0.9rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 0.12rem 0.7rem;
  transition: border-color var(--eo-transition-fast), box-shadow var(--eo-transition-fast), background var(--eo-transition-fast), transform var(--eo-transition-fast);
}

.calendar-info-card:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  background: var(--color-surface);
  box-shadow: var(--eo-shadow-xs);
}

.calendar-info-card-wide {
  width: 100%;
  max-width: none;
  grid-column: 1 / -1;
}

.calendar-info-card i {
  grid-row: 1 / span 2;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 16%, var(--color-border));
  border-radius: var(--eo-radius-button);
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  color: var(--color-primary);
  font-size: 0.88rem;
}

.calendar-info-card strong {
  color: var(--color-muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  line-height: 1.2;
  text-transform: uppercase;
}

.calendar-info-card span {
  color: var(--color-text);
  font-size: 0.96rem;
  font-weight: 650;
  line-height: 1.4;
}

.calendar-text-highlight {
  color: var(--color-primary) !important;
  font-weight: 700 !important;
}

.calendar-gallery-section,
.calendar-availability-section,
.calendar-features-section {
  position: relative;
  z-index: 1;
  margin-top: 0;
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
}

.calendar-gallery-section {
  padding-top: 0;
  border-top: 0;
}

.calendar-availability-section {
  width: 100%;
  padding: 1.1rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: var(--eo-radius-card);
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface));
}

.calendar-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}

.calendar-section-description {
  max-width: 540px;
  margin: 0;
  color: var(--color-muted);
  font-size: 0.9rem;
  line-height: 1.5;
  text-align: right;
}

.calendar-gallery-slider {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.calendar-gallery-stage {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
  border-radius: var(--eo-radius-card);
  background: var(--color-surface);
  box-shadow: var(--eo-shadow-xs);
}

.calendar-gallery-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--eo-transition-base);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  background: var(--color-surface);
}

.calendar-gallery-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.calendar-gallery-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  background: var(--color-surface);
}

.calendar-gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--color-border) 70%, var(--color-primary) 30%);
  border-radius: var(--eo-radius-pill);
  background: color-mix(in srgb, var(--color-surface) 82%, transparent);
  color: var(--color-primary);
  cursor: pointer;
  z-index: 5;
  transition: var(--eo-transition-fast);
}

.calendar-gallery-nav-prev {
  left: 1rem;
}

.calendar-gallery-nav-next {
  right: 1rem;
}

.calendar-gallery-thumbnails {
  display: flex;
  gap: .75rem;
  overflow-x: auto;
}

.calendar-gallery-thumbnail {
  flex: 0 0 96px;
  aspect-ratio: 4 / 3;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: var(--eo-radius-input);
  cursor: pointer;
  background: var(--color-surface);
  opacity: .65;
  transition: var(--eo-transition-fast);
}

.calendar-gallery-thumbnail:hover {
  opacity: 1;
}

.calendar-gallery-thumbnail.is-active {
  opacity: 1;
  border-color: var(--color-primary);
}

.calendar-gallery-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  background: var(--color-surface);
}

.calendar-availability-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 1rem;
  color: var(--color-primary);
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.015em;
}

.calendar-availability-title i {
  font-size: 1rem;
}

.calendar-availability-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.75rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.calendar-availability-item {
  width: 100%;
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
  border-radius: var(--eo-radius-card);
  padding: 0.85rem 0.95rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.38rem;
  transition: border-color var(--eo-transition-fast), box-shadow var(--eo-transition-fast), background var(--eo-transition-fast), transform var(--eo-transition-fast);
}

.calendar-availability-item:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  background: var(--color-surface);
  box-shadow: var(--eo-shadow-xs);
}

.calendar-availability-item > div {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--color-text);
  font-size: 0.92rem;
  line-height: 1.4;
}

.calendar-availability-item > div:first-child {
  color: var(--color-text);
  font-weight: 750;
}

.calendar-availability-item > div:last-child {
  color: var(--color-muted);
  font-weight: 650;
}

.calendar-availability-item i {
  width: 1rem;
  color: var(--color-primary);
  margin-right: 0;
  font-size: 0.86rem;
  text-align: center;
}

.calendar-features-section {
  width: 100%;
}

.calendar-features-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.calendar-feature-item {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.68rem 0.86rem;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  color: var(--color-text);
  font-size: 0.88rem;
  font-weight: 650;
  line-height: 1;
  box-shadow: none;
  transition: transform var(--eo-transition-fast), border-color var(--eo-transition-fast), background var(--eo-transition-fast);
}

.calendar-feature-item:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
}

.calendar-feature-item i {
  width: 1.15rem;
  height: 1.15rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--eo-radius-button);
  font-size: 0.68rem;
  flex-shrink: 0;
}

.calendar-feature-item span {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}

.calendar-feature-item small {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  opacity: 0.78;
}

.calendar-feature-item-positive {
  border-color: color-mix(in srgb, var(--color-green) 30%, var(--color-border));
  background: color-mix(in srgb, var(--color-green) 8%, var(--color-surface));
}

.calendar-feature-item-positive i {
  background: color-mix(in srgb, var(--color-green) 16%, transparent);
  color: var(--color-green);
}

.calendar-feature-item-positive small {
  color: var(--color-green);
}

.calendar-feature-item-negative {
  border-color: color-mix(in srgb, var(--color-red) 28%, var(--color-border));
  background: color-mix(in srgb, var(--color-red) 6%, var(--color-surface));
}

.calendar-feature-item-negative i {
  background: color-mix(in srgb, var(--color-red) 14%, transparent);
  color: var(--color-red);
}

.calendar-feature-item-negative small {
  color: var(--color-red);
}

.calendar-feature-item-default {
  border-color: color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface));
}


.calendar-feature-item-default i {
  background: color-mix(in srgb, var(--color-primary) 12%, transparent);
  color: var(--color-primary);
}

.calendar-location-card {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  width: fit-content;
  max-width: 100%;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--color-muted);
}

.calendar-location-card > i {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--color-primary);
  font-size: 0.9rem;
  flex-shrink: 0;
}

.calendar-location-card strong {
  display: inline;
  margin: 0;
  color: var(--color-primary);
  font-size: 0.86rem;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
}

.calendar-location-card span {
  display: inline;
  color: var(--color-muted);
  font-size: 0.86rem;
  font-weight: 550;
  line-height: 1.45;
}

.calendar-booking-rules-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin: -0.35rem 0 0.9rem;
}

.calendar-booking-rule-card {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  width: fit-content;
  padding: 0.38rem 0.58rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 16%, var(--color-border));
  border-radius: var(--eo-radius-input);
  background: color-mix(in srgb, var(--color-primary) 4%, var(--color-surface));
  color: var(--color-muted);
  box-shadow: none;
  transition: border-color var(--eo-transition-fast), background var(--eo-transition-fast);
}

.calendar-booking-rule-card:hover {
  border-color: color-mix(in srgb, var(--color-primary) 24%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));
}

.calendar-booking-rule-card > i {
  width: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--color-primary);
  font-size: 0.75rem;
  flex-shrink: 0;
}

.calendar-booking-rule-card strong {
  display: inline;
  margin: 0;
  color: var(--color-muted);
  font-size: 0.74rem;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
}

.calendar-booking-rule-card span {
  display: inline;
  color: var(--color-primary);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.2;
}

.calendar-no-availability {
  margin: 0;
  padding: 0.85rem 0.95rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: var(--eo-radius-card);
  background: var(--color-surface);
  color: var(--color-muted);
  font-style: italic;
}

.calendar-wrapper {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 1.25rem;
  align-items: flex-start;
}

.calendar-sidebar {
  position: sticky;
  top: 96px;
  width: 100%;
  flex-shrink: 0;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
  border-radius: var(--eo-radius-card);
  background: var(--color-surface);
  box-shadow: var(--eo-shadow-xs);
}

.calendar-main {
  min-width: 0;
}

.calendar-container {
  height: 80vh;
  background: var(--color-surface);
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
  border-radius: var(--eo-radius-card);
  box-shadow: var(--eo-shadow-xs);
  padding: 1rem;
  transition: var(--transition-default);
}

 .datepicker-custom {
  width: 100%;
  background-color: var(--color-surface);
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  padding: 0.72rem 0.85rem;
  font-size: 0.95rem;
  font-weight: 550;
  transition: border-color var(--eo-transition-fast), box-shadow var(--eo-transition-fast), background var(--eo-transition-fast);
  box-shadow: none;
}

.datepicker-custom:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--color-primary) 42%, var(--color-border));
  background: var(--color-surface);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 12%, transparent);
}

.flatpickr-calendar {
  overflow: hidden;
  font-family: inherit;
  border: 1px solid color-mix(in srgb, var(--color-border) 88%, var(--color-primary) 12%);
  border-radius: var(--eo-radius-card);
  box-shadow: var(--eo-shadow-sm);
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-white);
}

.calendar-main-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: 0.1rem 0;
}

.calendar-main-title {
  margin: 0;
}

.calendar-booking-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.68rem 0.95rem;
  background: var(--color-primary);
  color: var(--color-white);
  border: 1px solid color-mix(in srgb, var(--color-primary) 82%, black);
  border-radius: var(--eo-radius-button);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--eo-transition-fast), border-color var(--eo-transition-fast), color var(--eo-transition-fast), transform var(--eo-transition-fast);
}

.calendar-booking-button:hover {
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--color-primary) 86%, black);
  border-color: color-mix(in srgb, var(--color-primary) 74%, black);
  color: var(--color-white);
}

/* =============================
Calendar Messages (Toast style)
============================= */

.calendar-messages {
  position: sticky;
  top: 88px;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.calendar-message {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
  border-radius: var(--eo-radius-card);
  border: 1px solid transparent;
  box-shadow: var(--eo-shadow-sm);
  backdrop-filter: blur(6px);
}

.calendar-message.success {
  background: color-mix(in srgb, var(--color-green) 9%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-green) 28%, var(--color-border));
  color: var(--color-dark-green);
}

.calendar-message.error {
  background: color-mix(in srgb, var(--color-red) 8%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-red) 26%, var(--color-border));
  color: var(--color-dark-red);
}

.calendar-message-text {
  flex: 1;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.45;
  padding-top: 0.12rem;
}

.calendar-message-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  margin: -0.2rem -0.2rem 0 0;
  border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
  background: color-mix(in srgb, var(--color-surface) 58%, transparent);
  color: inherit;
  cursor: pointer;
  border-radius: var(--eo-radius-button);
  transition: background var(--eo-transition-fast), border-color var(--eo-transition-fast), transform var(--eo-transition-fast);
  flex-shrink: 0;
}

.calendar-message-close:hover {
  background: color-mix(in srgb, var(--color-surface) 82%, transparent);
  border-color: color-mix(in srgb, currentColor 26%, transparent);
  transform: translateY(-1px);
}


/* Calendar selected slot card styles */
.calendar-selected-slot-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  width: min(360px, calc(100% - 24px));
  padding: 0.85rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: var(--eo-radius-card);
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  color: var(--color-text);
  box-shadow: var(--eo-shadow-md);
  backdrop-filter: blur(10px);
}

.calendar-selected-slot-card-floating {
  position: absolute;
  z-index: 30;
}

.calendar-selected-slot-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.18rem;
}

.calendar-selected-slot-label {
  color: var(--color-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  line-height: 1.2;
  text-transform: uppercase;
}

.calendar-selected-slot-content strong {
  color: var(--color-text);
  font-size: 0.88rem;
  font-weight: 750;
  line-height: 1.35;
}

.calendar-selected-slot-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  flex-shrink: 0;
  padding: 0.58rem 0.74rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 82%, black);
  border-radius: var(--eo-radius-button);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--eo-transition-fast), border-color var(--eo-transition-fast), transform var(--eo-transition-fast);
}

.calendar-selected-slot-button:hover {
  transform: translateY(-1px);
  background: color-mix(in srgb, var(--color-primary) 86%, black);
  border-color: color-mix(in srgb, var(--color-primary) 74%, black);
  color: var(--color-white);
  text-decoration: none;
}

.calendar-selected-slot-card-warning {
  border-color: color-mix(in srgb, var(--color-yellow) 34%, var(--color-border));
  background: color-mix(in srgb, var(--color-yellow) 10%, var(--color-surface));
}

.calendar-selected-slot-card-warning .calendar-selected-slot-label {
  color: var(--color-dark-yellow);
}

.calendar-selected-slot-card-warning .calendar-selected-slot-content strong {
  color: var(--color-dark-yellow);
}

.calendar-container .toastui-calendar-grid-selection {
  border-color: color-mix(in srgb, var(--color-primary) 56%, var(--color-border)) !important;
  background-color: color-mix(in srgb, var(--color-primary) 10%, transparent) !important;
}

.calendar-container .toastui-calendar-grid-selection-label {
  color: var(--color-primary) !important;
}

.calendar-container-selection-valid .toastui-calendar-grid-selection {
  border-color: color-mix(in srgb, var(--color-green) 72%, var(--color-border)) !important;
  background-color: color-mix(in srgb, var(--color-green) 16%, transparent) !important;
}

.calendar-container-selection-valid .toastui-calendar-grid-selection-label {
  color: color-mix(in srgb, var(--color-green) 80%, black) !important;
}

.calendar-container-selection-invalid .toastui-calendar-grid-selection {
  border-color: color-mix(in srgb, var(--color-red) 72%, var(--color-border)) !important;
  background-color: color-mix(in srgb, var(--color-red) 14%, transparent) !important;
}

.calendar-container-selection-invalid .toastui-calendar-grid-selection-label {
  color: var(--color-red) !important;
}

.calendar-container .toastui-calendar-timegrid-current-time {
  color: var(--color-primary) !important;
  background-color: transparent !important;
}

.calendar-container .toastui-calendar-timegrid-now-indicator-left,
.calendar-container .toastui-calendar-timegrid-now-indicator-today,
.calendar-container .toastui-calendar-timegrid-now-indicator-right {
  border-top-color: var(--color-primary) !important;
}

.calendar-container .toastui-calendar-timegrid-now-indicator-marker {
  background-color: var(--color-primary) !important;
}

@media (max-width: 768px) {
  .calendar-space-section {
    padding: 1.1rem;
  }

  .calendar-space-header,
  .calendar-wrapper {
    grid-template-columns: 1fr;
  }

  .calendar-section-header {
    flex-direction: column;
    align-items: stretch;
  }

  .calendar-sidebar {
    position: static;
    top: auto;
    width: 100%;
  }

  .calendar-space-price-card {
    width: 100%;
    text-align: left;
  }

  .calendar-info-grid,
  .calendar-availability-list,
  .calendar-space-gallery {
    grid-template-columns: 1fr;
  }

  .calendar-info-card,
  .calendar-availability-item,
  .calendar-availability-section,
  .calendar-feature-item {
    width: 100%;
    max-width: none;
  }

  .calendar-location-card,
  .calendar-booking-rule-card {
    max-width: 100%;
  }

  .calendar-features-list {
    flex-direction: column;
  }

  .calendar-main-header {
    align-items: stretch;
  }

  .calendar-section-description {
    max-width: none;
    text-align: left;
  }

  .calendar-booking-button {
    width: 100%;
  }

  .calendar-messages {
    top: 76px;
  }
  
  .calendar-selected-slot-card {
    width: calc(100% - 24px);
    flex-direction: column;
    align-items: stretch;
  }

  .calendar-selected-slot-button {
    width: 100%;
  }
}


/* =============================
Spaces Info
organization_spaces.html
============================= */

.organization-portfolio-page {
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--color-primary) 7%, transparent), transparent 34rem),
    var(--color-background);
}

.organization-portfolio-page .container {
  display: flex;
  flex-direction: column;
  gap: 2.25rem;
}

.organization-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.35rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid color-mix(in srgb, var(--color-border) 86%, var(--color-primary) 14%);
  border-radius: var(--eo-radius-panel);
  background: linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-primary) 4%, var(--color-surface)));
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.045);
}

.organization-hero::before {
  content: "";
  position: absolute;
  top: -120px;
  right: -110px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  pointer-events: none;
}

.organization-hero__identity,
.organization-hero__details {
  position: relative;
  z-index: 1;
}

.organization-hero__identity {
  display: flex;
  align-items: flex-start;
  gap: 1.45rem;
  min-width: 0;
}

.organization-hero__logo {
  width: 124px;
  height: 124px;
  flex: 0 0 124px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  border-radius: var(--eo-radius-button);
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));
  color: var(--color-primary);
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.organization-hero__logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.organization-hero__content {
  min-width: 0;
  padding-top: 0.2rem;
  display: flex;
  flex-direction: column;
}

.organization-hero__category {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 44px;
  width: fit-content;

  padding: 0.72rem 1.05rem;

  border: 1px solid color-mix(in srgb, var(--color-primary) 28%, var(--color-border));
  border-radius: var(--eo-radius-card);

  background:
      linear-gradient(
          135deg,
          color-mix(in srgb, var(--color-primary) 16%, var(--color-surface)),
          color-mix(in srgb, var(--color-primary) 7%, var(--color-surface))
      );

  color: var(--color-primary);

  font-size: 0.96rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;

  flex-shrink: 0;

  box-shadow:
      0 8px 18px rgba(0,0,0,.05),
      inset 0 1px 0 rgba(255,255,255,.55);

}

.organization-spaces-section__eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: .35rem .55rem;

  border: 1px solid color-mix(in srgb, var(--color-primary) 20%, var(--color-border));
  border-radius: var(--eo-radius-input);

  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));

  color: var(--color-primary);

  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: .5rem;
}

.organization-hero__heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.55rem;
}

.organization-portfolio-page .organization-hero__title-row {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.organization-hero__heading .organization-hero__title {
  margin: 0;
}

.organization-hero__title {
  margin: 0 0 0.55rem;
  color: var(--color-primary);
  font-size: clamp(2rem, 4vw, 3.1rem);
  font-weight: 850;
  line-height: 1.03;
  letter-spacing: -0.045em;
}

.organization-portfolio-page .organization-hero__verified {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  margin-left: 0.25rem;
  color: var(--color-green);
  font-size: clamp(1rem, 1.2vw, 1.25rem);
  line-height: 1;
  vertical-align: middle;
  transform: translateY(-0.08em);
}

.organization-hero__verified i {
  display: block;
  line-height: 1;
}

.organization-hero__description {
  max-width: 820px;
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.7;
  opacity: 0.88;
}

.organization-hero__description--muted {
  color: var(--color-muted);
}

.organization-portfolio-page .organization-hero__details {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.15fr) minmax(0, 1.25fr);
  gap: 0;
  align-content: start;
  padding-top: 2.25rem;
  border-top: 1px solid var(--color-border);
}

.organization-portfolio-page .organization-info-card {
  min-height: 8rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.35rem 2rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.organization-portfolio-page .organization-info-card + .organization-info-card {
  border-left: 1px solid var(--color-border);
}

.organization-portfolio-page .organization-info-card--wide {
  grid-column: auto;
}

.organization-portfolio-page .organization-info-card--contact {
  justify-content: center;
  text-align: center;
}

.organization-portfolio-page .organization-info-card:hover {
  transform: translateY(-1px);
  border-color: color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  background: var(--color-surface);
}

.organization-portfolio-page .organization-info-card__icon {
  width: 3.1rem;
  height: 3.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex: 0 0 3.1rem;
  border: 1px solid var(--color-border);
  border-radius: 0.8rem;
  background: color-mix(in srgb, var(--color-primary) 4%, transparent);
  color: var(--color-primary);
  font-size: 1.15rem;
}

.organization-portfolio-page .organization-info-card__icon i {
  line-height: 1;
}

.organization-portfolio-page .organization-info-card > div {
  min-width: 0;
}

.organization-portfolio-page .organization-info-card__label {
  display: block;
  margin-bottom: 0.65rem;
  color: var(--color-muted);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.organization-portfolio-page .organization-info-card__value {
  display: block;
  color: var(--color-primary);
  font-size: clamp(1.55rem, 2.2vw, 2rem);
  font-weight: 850;
  line-height: 1;
}

.organization-portfolio-page .organization-contact-links {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem 1.15rem;
}

.organization-portfolio-page .organization-contact-link {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  min-width: 4rem;
  color: var(--color-primary);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

.organization-portfolio-page .organization-contact-link i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.1rem;
  height: 3.1rem;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  color: var(--color-primary);
  font-size: 1.28rem;
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.organization-portfolio-page .organization-contact-link:hover {
  color: var(--color-blue);
}

.organization-portfolio-page .organization-contact-link:hover i {
  border-color: var(--color-blue);
  color: var(--color-blue);
  transform: translateY(-2px);
}

.organization-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.organization-tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 30px;
  padding: 0.38rem 0.62rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  border-radius: var(--eo-radius-button);
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-surface));
  color: var(--color-text);
  font-size: 0.82rem;
  font-weight: 650;
  line-height: 1.2;
}

.organization-address {
  margin: 0;
  color: var(--color-text);
  font-style: normal;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.5;
}

.organization-spaces-section {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

.organization-spaces-section__header {
  max-width: 760px;
}

.organization-spaces-section__title {
  margin: 0 0 0.35rem;
  color: var(--color-primary);
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.03em;
}

.organization-spaces-section__description {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.98rem;
  line-height: 1.6;
}

.organization-empty-state {
  padding: 2rem;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 28%, var(--color-border));
  border-radius: var(--eo-radius-panel);
  background: color-mix(in srgb, var(--color-surface) 88%, var(--color-background) 12%);
  text-align: center;
}

.organization-empty-state h3 {
  margin: 0 0 0.35rem;
  color: var(--color-primary);
  font-size: 1.1rem;
}

.organization-empty-state p {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.94rem;
}

@media (max-width: 900px) {
  .organization-portfolio-page .organization-hero__details {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .organization-portfolio-page .organization-info-card {
    min-height: auto;
    padding: 1.25rem 0;
  }

  .organization-portfolio-page .organization-info-card + .organization-info-card {
    border-left: 0;
    border-top: 1px solid var(--color-border);
  }
}

@media (max-width: 640px) {
  .organization-portfolio-page .container {
    gap: 1.5rem;
  }

  .organization-hero {
    padding: 1rem;
  }

  .organization-hero__identity {
    flex-direction: column;
    gap: 1rem;
  }

  .organization-hero__logo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
  }

  .organization-portfolio-page .organization-info-card {
    min-height: auto;
    align-items: flex-start;
  }

  .organization-portfolio-page .organization-info-card__icon {
    width: 38px;
    height: 38px;
  }

  .organization-hero__heading {
    flex-direction: column;
    gap: 0.75rem;
  }

  .organization-hero__category {
    align-self: flex-start;
  }
}

/* =============================
Spaces Grid Component
spaces_grid.html
============================= */
.spaces-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}

.space-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  transition: border-color var(--eo-transition-fast), background var(--eo-transition-fast);
}

.space-card:hover {
  transform: none;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

.space-image {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-background) 92%, var(--color-primary) 8%);
  border: 1px solid color-mix(in srgb, var(--color-border) 86%, var(--color-primary) 14%);
  border-radius: 0;
  box-shadow: none;
}

.space-image::after,
.space-card:hover .space-image::after {
  content: none;
  opacity: 0;
}

.space-image img,
.space-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  display: block;
  border: none;
  border-radius: 0;
  box-shadow: none;
  transition: none;
}

.space-card:hover .space-img {
  transform: none;
  opacity: 1;
}

.space-info {
  padding: 0.95rem 0.15rem 0.45rem;
}

.space-card-heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  margin-bottom: 0.52rem;
}

.space-title {
  min-width: 0;
  margin: 0;
  color: var(--color-text);
  font-size: 1.14rem;
  font-weight: 820;
  line-height: 1.15;
  letter-spacing: -0.03em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.space-price {
  flex-shrink: 1;
  display: inline-flex;
  align-items: baseline;
  gap: 0.22rem;
  padding-top: 0;
  white-space: nowrap;
  color: var(--color-text);
}

.space-price strong {
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: -0.03em;
}

.space-price span {
  color: var(--color-muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.space-desc {
  margin: 0 0 0.58rem;
  color: var(--color-muted);
  font-size: 0.86rem;
  line-height: 1.42;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.space-location {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  color: var(--color-muted);
  font-size: 0.88rem;
  font-weight: 650;
  line-height: 1.35;
}

.space-location i {
  width: 0.9rem;
  color: color-mix(in srgb, var(--color-primary) 58%, var(--color-muted));
  font-size: 0.78rem;
  text-align: center;
  flex-shrink: 0;
}

.space-meta {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.42rem;
}

.space-meta li {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  color: var(--color-muted);
  font-size: 0.88rem;
  line-height: 1.35;
}

.space-meta li:first-child {
  color: var(--color-text);
  font-size: 0.94rem;
  font-weight: 700;
}

.space-meta li:first-child strong {
  color: var(--color-primary);
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: -0.03em;
}

.space-meta i {
  width: 0.95rem;
  color: color-mix(in srgb, var(--color-primary) 62%, var(--color-muted));
  font-size: 0.8rem;
  text-align: center;
  flex-shrink: 0;
}

.space-footer {
  margin-top: 0;
  padding: 0.58rem 0.15rem 0;
  border-top: none;
  background: transparent;
}

.space-footer-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.space-footer .btn,
.space-footer a.btn {
  width: auto;
  min-height: 36px;
  padding: 0.5rem 0.78rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 30%, var(--color-border));
  border-radius: var(--eo-radius-button);
  background: var(--color-surface);
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  color: var(--color-primary);
  font-size: 0.84rem;
  font-weight: 760;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--eo-transition-fast), background var(--eo-transition-fast), border-color var(--eo-transition-fast);
}

.space-footer .btn i,
.space-footer a.btn i {
  font-size: 0.72rem;
}

.space-details-button {
  flex: 1 1 auto;
  border-color: color-mix(in srgb, var(--color-primary) 44%, var(--color-border));
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
  color: var(--color-primary);
}

.space-details-button:hover {
  transform: none;
  background: color-mix(in srgb, var(--color-primary) 11%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-primary) 58%, var(--color-border));
  color: var(--color-primary);
  text-decoration: none;
}

.space-booking-button {
  flex: 1 1 auto;
  border-color: color-mix(in srgb, var(--color-secondary) 42%, var(--color-border));
  background: color-mix(in srgb, var(--color-secondary) 7%, var(--color-surface));
  color: var(--color-secondary) !important;
  font-weight: 760 !important;
  padding-inline: 0.78rem !important;
}

.space-booking-button:hover {
  transform: none;
  background: color-mix(in srgb, var(--color-secondary) 11%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-secondary) 56%, var(--color-border));
  color: var(--color-secondary) !important;
  text-decoration: none;
}

/* Responsivity */
@media (min-width: 1200px) {
  .spaces-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .spaces-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .spaces-grid {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }

  .space-footer-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .space-footer .btn,
  .space-footer a.btn {
    width: 100%;
  }
}

/* =============================
🏠 Home
home.html
============================= */

.search-form {
  width: min(760px, 100%);
  margin: 0 auto 2.25rem;
  padding: 0.45rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  background: color-mix(in srgb, var(--color-surface) 92%, var(--color-primary) 8%);
  border: 1px solid color-mix(in srgb, var(--color-primary) 14%, var(--color-border));
  border-radius: var(--eo-radius-pill);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.055);
}

.search-input {
  flex: 1;
  min-width: 0;
  height: 52px;
  padding: 0 1.25rem;
  border: none;
  border-radius: var(--eo-radius-pill);
  background: transparent;
  color: var(--color-text);
  font-size: 1rem;
  font-weight: 500;
  outline: none;
}

.search-input::placeholder {
  color: var(--color-muted);
  font-weight: 400;
}

.search-input:focus {
  box-shadow: none;
}

.search-form:focus-within {
  border-color: color-mix(in srgb, var(--color-primary) 34%, var(--color-border));
  background: var(--color-surface);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.075),
              0 0 0 4px color-mix(in srgb, var(--color-primary) 10%, transparent);
}

.search-btn {
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0 1.35rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
  border-radius: var(--eo-radius-pill);
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  color: var(--color-white);
  font-weight: 700;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--color-primary) 22%, transparent);
}

.search-btn:hover {
  background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
  transform: translateY(-1px);
}

.space-img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  border-radius: var(--eo-radius-card);
  border: 1px solid color-mix(in srgb, var(--color-primary) 12%, var(--color-border));
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.075);
}

@media (max-width: 640px) {
  .search-form {
    padding: 0.65rem;
    flex-direction: column;
    align-items: stretch;
  }

  .search-input,
  .search-btn {
    width: 100%;
  }

  .search-input {
    height: 48px;
    padding: 0 1rem;
    background: color-mix(in srgb, var(--color-background) 52%, var(--color-surface));
  }

  .search-btn {
    height: 48px;
  }

  .space-img {
    height: 190px;
  }
}

/* =============================
Organizations
organization_list.html
============================= */

.organizations-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.organizations-subtitle {
  max-width: 700px;
}

.organizations-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.organization-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--color-surface);
  border-radius: var(--eo-radius-card);
  box-shadow: var(--shadow-default);
  border: 1px solid var(--color-border);
  padding: 1.5rem;
  min-height: 240px;
}

.organization-card-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.organization-avatar-wrapper {
  flex-shrink: 0;
}

.organization-avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--color-primary);
  background: var(--color-background);
}

.organization-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  font-size: 1.5rem;
}

.organization-card-title-group {
  min-width: 0;
}

.organization-card-title {
  font-size: 1.2rem;
  color: var(--color-primary);
  margin-bottom: 0.25rem;
  line-height: 1.3;
}

.organization-card-username {
  color: var(--color-muted);
  font-size: 0.92rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.organization-card-body {
  margin-bottom: 1.5rem;
}

.organization-card-meta {
  font-size: 0.95rem;
  color: var(--color-text);
}

.organization-card-footer {
  margin-top: auto;
}

.organizations-empty-state {
  max-width: 680px;
  margin: 0 auto;
  padding: 3rem 2rem;
}

.organizations-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-background);
  color: var(--color-primary);
  font-size: 1.75rem;
}

@media (max-width: 768px) {
  .organizations-header {
    align-items: stretch;
  }

  .organizations-header .btn {
    width: 100%;
  }
}

/* =============================
Organizations
organization_manage.html
============================= */

.manage-layout {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.manage-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.manage-header-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.manage-card {
  background: linear-gradient(145deg, var(--color-background), var(--color-surface));
  border-radius: var(--eo-radius-card);
  padding: 2rem;
  box-shadow: var(--shadow-default);
  border: 1px solid var(--color-border);
}

.manage-organization-top {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.manage-avatar-wrapper {
  position: relative;
  width: 96px;
  height: 96px;
  flex-shrink: 0;
}

.manage-avatar {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid var(--color-primary);
  background: var(--color-background);
}

.manage-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-primary);
  font-size: 2rem;
}

.manage-org-meta h2 {
  font-size: 1.8rem;
  color: var(--color-primary);
  margin-bottom: 0.35rem;
}

.manage-username {
  color: var(--color-muted);
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.manage-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}

.manage-info-item {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  padding: 1rem;
}

.manage-info-label {
  display: block;
  font-size: 0.82rem;
  color: var(--color-muted);
  margin-bottom: 0.35rem;
}

.manage-info-value {
  color: var(--color-text);
  font-weight: 600;
  word-break: break-word;
}

.manage-edit-fields {
  display: none;
  margin-top: 1.5rem;
}

.manage-edit-fields.is-visible {
  display: block;
}

.manage-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}

.manage-field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.manage-field label {
  font-size: 0.9rem;
  color: var(--color-text);
  font-weight: 600;
}

.manage-field input,
.manage-field select,
.manage-field textarea {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  padding: 0.8rem 0.9rem;
  color: var(--color-text);
  outline: none;
  font: inherit;
}

.manage-field input[type="file"] {
  padding: 0.65rem 0.75rem;
  cursor: pointer;
}

.manage-field textarea {
  min-height: 130px;
  resize: vertical;
}

.manage-field select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  cursor: pointer;
}

.manage-field input:focus,
.manage-field select:focus,
.manage-field textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.15);
}

.manage-field .help-text,
.manage-field .form-help-text {
  font-size: 0.82rem;
  color: var(--color-muted);
  margin-top: 0.1rem;
}

.manage-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

.manage-table-wrapper {
  overflow-x: auto;
}

.manage-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
}

.manage-table th,
.manage-table td {
  text-align: left;
  padding: 0.95rem 0.85rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
}

.manage-table th {
  color: var(--color-primary);
  font-size: 0.92rem;
}

.manage-table td {
  color: var(--color-text);
  font-size: 0.94rem;
}

.manage-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.3rem 0.65rem;
  border-radius: var(--eo-radius-pill);
  font-size: 0.8rem;
  font-weight: 600;
}

.manage-badge-active {
  background: rgba(76, 175, 80, 0.12);
  color: var(--color-green);
}

.manage-badge-inactive {
  background: rgba(192, 57, 43, 0.12);
  color: var(--color-red);
}

.manage-empty {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--color-muted);
}

.manage-message {
  display: none;
  margin-top: 1rem;
  font-size: 0.9rem;
}

.manage-message.is-visible {
  display: block;
}

.manage-message.is-success {
  color: var(--color-green);
}

.manage-message.is-error {
  color: var(--color-red);
}

@media (max-width: 768px) {
  .manage-header {
    align-items: stretch;
  }

  .manage-header-actions,
  .manage-actions {
    width: 100%;
  }

  .manage-header-actions .btn,
  .manage-actions .btn {
    width: 100%;
  }
}
/* =============================
Bookings
create_space.html
============================= */

.space-form-section {
  margin: 1.5rem 0;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border);
}

.space-form-section:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.space-form-section-header,
.space-form-subsection-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.space-form-section-title,
.space-form-subsection-title {
  margin: 0;
  color: var(--color-primary);
  font-size: 1.1rem;
}

.space-form-section-subtitle,
.space-form-subsection-subtitle {
  margin: 0.35rem 0 0;
  color: var(--color-muted);
  font-size: 0.92rem;
}

.space-form-inline-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.space-form-search-input {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  padding: 0.8rem 0.9rem;
  color: var(--color-text);
  outline: none;
  font: inherit;
}

.space-form-search-input:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.15);
}

.space-form-hidden-fields {
  display: none;
}

.space-form-subsection {
  margin-top: 1rem;
  padding: 1.25rem;
  background: rgba(0, 0, 0, 0.02);
  border: 1px dashed var(--color-border);
  border-radius: var(--eo-radius-card);
}

.space-form-preview {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border-radius: var(--eo-radius-card);
  background: rgba(0, 0, 0, 0.03);
  border: 1px solid var(--color-border);
}

.space-form-preview-label {
  display: block;
  font-size: 0.8rem;
  color: var(--color-muted);
  margin-bottom: 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.space-form-preview-text {
  color: var(--color-text);
  font-weight: 600;
}

/* =============================
   Space Attributes Fields
============================= */

.space-attribute-field {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  padding: 0.8rem 0.9rem;
  color: var(--color-text);
  font: inherit;
  transition: var(--transition-default);
}

.space-attribute-field:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.15);
}

.space-attribute-field::placeholder {
  color: var(--color-muted);
}

/* Improve spacing inside attributes grid */
.space-form-section .manage-field {
  margin-bottom: 0.25rem;
}

/* =============================
   Space Images Form
============================= */

.space-image-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 170px));
  gap: 1rem;
}

.space-image-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
  height: fit-content;
  align-self: start;
  padding: 0.6rem;
  border: 1px dashed var(--color-border);
  border-radius: var(--eo-radius-card);
  background: color-mix(in srgb, var(--color-surface) 90%, var(--color-background) 10%);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.025);
  transition: var(--transition-default);
}

.space-image-card:has(.space-image-main-checkbox:checked) {
  border-style: solid;
  border-color: var(--color-primary);
}

.space-image-upload-area {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border: 1px dashed color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
  border-radius: var(--eo-radius-card);
  overflow: hidden;
  cursor: pointer;
  background: color-mix(in srgb, var(--color-primary) 5%, var(--color-surface));
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-default);
}

.space-image-upload-area::before {
  content: "\f021";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.32);
  color: var(--color-white);
  font-size: 1.15rem;
  opacity: 0;
  transition: var(--transition-default);
  pointer-events: none;
}

.space-image-card:hover .space-image-upload-area::before {
  opacity: 1;
}

.space-image-card[data-empty-slot="true"] .space-image-upload-area::before {
  content: "\f067";
  opacity: 0.85;
  background: transparent;
  color: var(--color-primary);
}

.space-image-upload-area img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.space-image-upload-area span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  color: var(--color-muted);
  font-size: 0.78rem;
  font-weight: 600;
  text-align: center;
}

.space-image-index {
  position: absolute;
  right: 0.55rem;
  bottom: 0.55rem;
  z-index: 3;

  padding: 0.22rem 0.48rem;
  border-radius: var(--eo-radius-pill);

  background: rgba(0, 0, 0, 0.68);
  backdrop-filter: blur(4px);

  color: var(--color-white);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.space-image-card:has(.space-image-main-checkbox:checked) .space-image-upload-area::after {
  content: "Principal";
  position: absolute;
  top: 0.45rem;
  left: 0.45rem;
  z-index: 3;
  padding: 0.28rem 0.52rem;
  border-radius: var(--eo-radius-pill);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.68rem;
  font-weight: 700;
}

.space-image-input,
.space-image-card .manage-form-grid,
.space-image-card .manage-field,
.space-image-order-input,
.space-image-card .form-help-text {
  display: none;
}

.space-image-options {
  position: absolute;
  top: 1.2rem;
  left: 1.2rem;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition-default);
}

.space-image-card:hover .space-image-options {
  opacity: 1;
  pointer-events: auto;
}

.space-image-card:has(.space-image-main-checkbox:checked) .space-image-options,
.space-image-card[data-empty-slot="true"] .space-image-options {
  display: none;
}

.space-image-main-option {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  min-height: unset;
  width: auto;
  padding: 0.26rem 0.5rem;
  border: 1px dashed var(--color-white);
  border-radius: var(--eo-radius-pill);
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(5px);
  color: var(--color-white);
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  opacity: 0.82;
  transition: var(--transition-default);
}

.space-image-main-option:hover {
  border-style: solid;
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-white);
  opacity: 1;
}

.space-image-main-option input[type="checkbox"] {
  display: none;
}


.space-image-delete {
  position: absolute;
  left: 1.05rem;
  bottom: 1.05rem;
  z-index: 5;
  opacity: 0;
  pointer-events: none;
  transition: var(--transition-default);
}

.space-image-card:hover .space-image-delete {
  opacity: 1;
  pointer-events: auto;
}

.space-image-card[data-empty-slot="true"] .space-image-delete {
  display: none;
}

.space-image-delete-button {
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: var(--eo-radius-pill);

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background: rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(5px);

  color: var(--color-white);
  font-size: 0.62rem;

  cursor: pointer;
  transition: var(--transition-default);
}

.space-image-delete-button:hover,
.space-image-delete input[type="checkbox"]:checked + .space-image-delete-button {
  border-color: rgba(192, 57, 43, 0.95);
  background: rgba(192, 57, 43, 0.95);
  color: var(--color-white);
}

  
.space-image-delete input[type="checkbox"] {
  display: none !important;
}

.space-image-delete-warning {
  display: none !important;
}
/* =============================
   Space Availability Form
============================= */

.space-availability-list {
  display: grid;
  gap: 1rem;
}

.space-availability-card {
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  background: color-mix(in srgb, var(--color-surface) 88%, var(--color-background) 12%);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.025);
}

.space-availability-card .manage-form-grid {
  margin-top: 1rem;
}

.space-availability-weekdays {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 0.55rem 0.85rem;
  margin: 0.35rem 0 0;
  padding: 0;
  list-style: none;
}

.space-availability-weekdays li {
  list-style: none;
}

.space-availability-weekdays label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 38px;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  color: var(--color-text);
  font-size: 0.92rem;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition-default);
}

.space-availability-weekdays label:hover {
  border-color: var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));
}

.space-availability-weekdays input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--color-primary);
  flex-shrink: 0;
}

.space-availability-card input[type="time"] {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  padding: 0.8rem 0.9rem;
  color: var(--color-text);
  font: inherit;
  transition: var(--transition-default);
}

.space-availability-card input[type="time"]:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.15);
}

.space-availability-delete {
  margin-top: 0.9rem;
  padding-top: 0.85rem;
  border-top: 1px dashed var(--color-border);
}

.space-availability-delete input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.space-availability-delete-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.65rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--color-red) 45%, var(--color-border));
  border-radius: var(--eo-radius-button);
  background: color-mix(in srgb, var(--color-red) 8%, var(--color-surface));
  color: var(--color-red);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-default);
}

.space-availability-delete-button:hover,
.space-availability-delete input[type="checkbox"]:checked + .space-availability-delete-button {
  background: var(--color-red);
  border-color: var(--color-red);
  color: var(--color-white);
}

.space-availability-delete-warning {
  margin-top: 0.5rem;
  color: var(--color-red);
  font-size: 0.85rem;
  font-weight: 500;
}

.space-availability-add {
  margin-top: 1rem;
  display: flex;
  justify-content: flex-start;
}

.space-availability-add .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.65rem 1rem;
  font-size: 0.92rem;
  font-weight: 600;
  border-radius: var(--eo-radius-button);
  border: 1px dashed var(--color-primary);
  background: color-mix(in srgb, var(--color-primary) 8%, transparent);
  color: var(--color-primary);
  transition: var(--transition-default);
}

.space-availability-add .btn i {
  font-size: 0.9rem;
}

.space-availability-add .btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
  border-style: solid;
}

@media (max-width: 768px) {
  .space-form-inline-actions {
    width: 100%;
  }

  .space-form-inline-actions .btn {
    width: 100%;
  }
}

.space-form-status-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.9rem;
  cursor: pointer;
  user-select: none;
  width: fit-content;
}

.space-form-status-switch input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.space-form-status-switch-track {
  position: relative;
  width: 56px;
  height: 30px;
  border-radius: var(--eo-radius-pill);
  background: rgba(192, 57, 43, 0.18);
  border: 1px solid rgba(192, 57, 43, 0.25);
  transition: var(--transition-default);
  flex-shrink: 0;
}

.space-form-status-switch-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--color-white);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  transition: var(--transition-default);
}

.space-form-status-switch-labels {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.92rem;
  font-weight: 600;
}

.space-form-status-switch-label {
  transition: var(--transition-default);
}

.space-form-status-switch-label-active {
  color: var(--color-muted);
}

.space-form-status-switch-label-inactive {
  color: var(--color-red);
}

.space-form-status-switch input[type="checkbox"]:checked + .space-form-status-switch-track {
  background: rgba(76, 175, 80, 0.18);
  border-color: rgba(76, 175, 80, 0.3);
}

.space-form-status-switch input[type="checkbox"]:checked + .space-form-status-switch-track .space-form-status-switch-thumb {
  transform: translateX(26px);
}

.space-form-status-switch input[type="checkbox"]:checked ~ .space-form-status-switch-labels .space-form-status-switch-label-active {
  color: var(--color-green);
}

.space-form-status-switch input[type="checkbox"]:checked ~ .space-form-status-switch-labels .space-form-status-switch-label-inactive {
  color: var(--color-muted);
}

.space-form-status-switch input[type="checkbox"]:focus-visible + .space-form-status-switch-track {
  box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.18);
}

/* Esconde ambos por padrão (controle fino) */
.space-form-status-switch-label-active,
.space-form-status-switch-label-inactive {
  display: none;
}

/* Quando estiver ATIVO (checked) → mostra "Ativo" */
.space-form-status-switch input[type="checkbox"]:checked ~ .space-form-status-switch-labels .space-form-status-switch-label-active {
  display: inline;
  color: var(--color-green);
}

/* Quando estiver INATIVO → mostra "Inativo" */
.space-form-status-switch input[type="checkbox"]:not(:checked) ~ .space-form-status-switch-labels .space-form-status-switch-label-inactive {
  display: inline;
  color: var(--color-red);
}

/* =============================
Bookings
booking_form.html
============================= */

.booking-form-page {
  padding: 2rem 1rem;
}

.booking-form-container {
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
}

.booking-form-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.booking-form-title {
  margin: 0 0 0.35rem;
  color: var(--color-primary);
  font-size: 1.9rem;
}

.booking-form-subtitle {
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
}

.booking-form-organization {
  margin: 0.35rem 0 0;
  color: var(--color-muted);
  font-size: 0.95rem;
}

.booking-form-status-wrapper {
  display: flex;
  align-items: center;
}

.booking-form-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.45rem 0.8rem;
  border-radius: var(--eo-radius-pill);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.booking-form-status-pending {
  background: rgba(242, 201, 76, 0.16);
  color: var(--color-dark-yellow);
}

.booking-form-status-confirmed {
  background: rgba(76, 175, 80, 0.12);
  color: var(--color-green);
}

.booking-form-status-cancelled,
.booking-form-status-rejected {
  background: rgba(192, 57, 43, 0.12);
  color: var(--color-red);
}

.booking-form-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  box-shadow: var(--shadow-default);
  padding: 1.5rem;
}

.booking-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.booking-form-messages {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.booking-form-message,
.booking-form-errors {
  padding: 0.95rem 1rem;
  border-radius: var(--eo-radius-card);
  font-size: 0.95rem;
}

.booking-form-message.success {
  background: rgba(76, 175, 80, 0.12);
  border: 1px solid rgba(76, 175, 80, 0.2);
  color: var(--color-green);
}

.booking-form-message.error,
.booking-form-errors {
  background: rgba(192, 57, 43, 0.08);
  border: 1px solid rgba(192, 57, 43, 0.18);
  color: var(--color-red);
}

.booking-form-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.booking-form-summary-item {
  background: rgba(0, 0, 0, 0.02);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  padding: 0.95rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.booking-form-summary-label {
  font-size: 0.82rem;
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}


.booking-form-summary-value {
  color: var(--color-text);
  font-weight: 600;
}

/* =============================
   Recurring Booking Info
   (booking_form.html)
============================= */
.booking-recurring-info {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
  padding: 1rem;
  margin-top: 1rem;
  margin-bottom: 1.25rem;
  border: 1px solid color-mix(in srgb, var(--color-primary) 22%, var(--color-border));
  border-radius: var(--eo-radius-card);
  background: color-mix(in srgb, var(--color-primary) 7%, var(--color-surface));
}

.booking-recurring-info-icon {
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--eo-radius-pill);
  background: color-mix(in srgb, var(--color-primary) 13%, var(--color-surface));
  color: var(--color-primary);
  flex-shrink: 0;
}

.booking-recurring-info-content {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.booking-recurring-info-content strong {
  color: var(--color-text);
  font-size: 0.98rem;
}

.booking-recurring-info-content p,
.booking-recurring-info-content span {
  margin: 0;
  color: var(--color-muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.booking-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.booking-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.booking-form-field label {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--color-text);
}

.booking-form-field input,
.booking-form-field select,
.booking-form-field textarea {
  width: 100%;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-input);
  background: var(--color-surface);
  padding: 0.8rem 0.9rem;
  color: var(--color-text);
  outline: none;
  font: inherit;
}

.booking-form-field input:focus,
.booking-form-field select:focus,
.booking-form-field textarea:focus {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(139, 94, 60, 0.15);
}


.booking-form-field-error {
  font-size: 0.85rem;
  color: var(--color-red);
}

.booking-form-conflicts {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(242, 201, 76, 0.35);
  background: rgba(242, 201, 76, 0.1);
  border-radius: var(--eo-radius-card);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.booking-form-conflicts > strong {
  color: var(--color-dark-yellow);
  font-size: 0.98rem;
}

.booking-form-conflicts p {
  margin: 0;
  color: var(--color-text);
  font-size: 0.93rem;
  line-height: 1.45;
}

.booking-recurring-preview-table-wrapper {
  overflow-x: auto;
  margin-top: 1rem;
}

.booking-recurring-preview-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.92rem;
}

.booking-recurring-preview-table th,
.booking-recurring-preview-table td {
  padding: 0.75rem;
  border-bottom: 1px solid var(--color-border);
  text-align: left;
  vertical-align: top;
}

.booking-recurring-preview-table th {
  color: var(--color-muted);
  font-weight: 700;
}

.booking-recurring-preview-conflict td {
  background: rgba(192, 57, 43, 0.08);
  color: var(--color-red);
}

.booking-form-conflicts-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
}

.booking-form-conflict-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 0.95rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
}

.booking-form-conflict-info {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  min-width: 0;
}

.booking-form-conflict-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-primary);
}

.booking-form-conflict-link:hover {
  color: var(--color-secondary);
}

.booking-form-conflict-status {
  flex-shrink: 0;
}

.booking-form-extra-actions {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}

.booking-form-extra-actions-header {
  margin-bottom: 0.85rem;
}

.booking-form-extra-actions-label {
  display: inline-block;
  color: var(--color-muted);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.booking-form-extra-actions-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.booking-form-inline-action {
  margin: 0;
}

.booking-form-action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: auto;
  min-width: 0;
  padding: 0.72rem 1rem;
  border-radius: var(--eo-radius-pill);
  border: 1px solid transparent;
  background: var(--color-surface);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: var(--transition-default);
  box-shadow: none;
}

.booking-form-action-button i {
  font-size: 0.95em;
}

.booking-form-action-button:hover {
  transform: translateY(-1px);
}

.booking-form-action-button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}

.booking-form-action-button:disabled:hover {
  transform: none;
}

.booking-form-action-button-confirm {
  color: var(--color-green);
  border-color: color-mix(in srgb, var(--color-green) 24%, var(--color-border));
  background: color-mix(in srgb, var(--color-green) 8%, white);
}

.booking-form-action-button-confirm:hover {
  background: color-mix(in srgb, var(--color-green) 14%, white);
}

.booking-form-action-button-reject,
.booking-form-action-button-cancel {
  color: var(--color-red);
  border-color: color-mix(in srgb, var(--color-red) 22%, var(--color-border));
  background: color-mix(in srgb, var(--color-red) 6%, white);
}

.booking-form-action-button-reject:hover,
.booking-form-action-button-cancel:hover {
  background: color-mix(in srgb, var(--color-red) 10%, white);
}

.booking-form-action-button-cancel-series {
  color: var(--color-red);
  border-color: color-mix(in srgb, var(--color-dark-red) 22%, var(--color-border));
  background: color-mix(in srgb, var(--color-dark-red) 6%, white);
}

.booking-form-action-button-cancel-series:hover {
  background: color-mix(in srgb, var(--color-dark-red) 10%, white);
}

.booking-form-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding-top: 0.5rem;
}

.booking-form-cancel {
  color: var(--color-muted);
  font-weight: 500;
  transition: var(--transition-default);
}

.booking-form-cancel:hover {
  color: var(--color-text);
}

.booking-form-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.2rem;
  background: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--eo-radius-button);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-default);
}

.booking-form-submit:hover {
  background: var(--color-secondary);
}

@media (max-width: 768px) {
  .booking-form-summary-grid,
  .booking-form-row {
    grid-template-columns: 1fr;
  }

  .booking-form-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .booking-form-cancel,
  .booking-form-submit {
    width: 100%;
    text-align: center;
  }

  .booking-form-conflict-item {
    flex-direction: column;
    align-items: flex-start;
  }

  .booking-form-conflict-status {
    align-self: flex-start;
  }
}

.booking-section-card {
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: var(--eo-radius-card);
  padding: 1.35rem;
  background: linear-gradient(180deg, #ffffff 0%, #fbfbfc 100%);
  margin-bottom: 1.15rem;
}

.booking-section-card-primary {
  border-color: rgba(17, 24, 39, 0.1);
}

.booking-section-heading,
.booking-recurrence-toggle-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: 1.1rem;
}

.booking-section-heading h2,
.booking-recurrence-toggle-copy h2 {
  margin: 0.2rem 0 0;
  font-size: 1.05rem;
  line-height: 1.25;
  color: #111827;
}

.booking-section-heading p,
.booking-recurrence-toggle-copy p {
  margin: 0.25rem 0 0;
  color: #6b7280;
  font-size: 0.92rem;
}

.booking-section-kicker {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7280;
}

.booking-form-row-datetime {
  align-items: stretch;
}

.booking-native-datetime-fields {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.booking-date-picker-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.9rem;
  align-items: end;
  margin-bottom: 1rem;
}

.booking-date-field small {
  display: block;
  margin-top: 0.45rem;
  color: #6b7280;
  font-size: 0.84rem;
}

.booking-time-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.booking-date-control,
.booking-time-control {
  position: relative;
}

.booking-date-control i,
.booking-time-control i {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%);
  color: #6b7280;
  pointer-events: none;
  z-index: 1;
}

.booking-date-control input,
.booking-time-control input,
.booking-time-control select {
  padding-left: 2.65rem;
}

.booking-datetime-error {
  margin-top: 0.9rem;
}

.booking-summary-card {
  position: relative;
  overflow: hidden;
  border-color: rgba(17, 24, 39, 0.1);
  background: #ffffff;
}

.booking-summary-card[hidden] {
  display: none;
}

.booking-summary-heading {
  margin-bottom: 0.95rem;
}

.booking-summary-heading h2 {
  margin-bottom: 0;
}

.booking-summary-empty {
  display: none;
}

.booking-summary-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
}

.booking-summary-row {
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: var(--eo-radius-panel);
  padding: 0.95rem;
  background: #fafafa;
}

.booking-summary-row[hidden] {
  display: none;
}

.booking-summary-row-featured,
.booking-summary-row:hover {
  background: #ffffff;
}

.booking-summary-recurrence-row {
  grid-column: 1 / -1;
}

.booking-summary-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  border-radius: var(--eo-radius-input);
  background: #f3f4f6;
  color: #111827;
}

.booking-summary-label {
  display: block;
  margin-bottom: 0.24rem;
  color: #6b7280;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.booking-summary-row strong {
  display: block;
  color: #111827;
  font-size: 0.96rem;
  line-height: 1.35;
}

.booking-form-field-enhanced input,
.booking-form-field-enhanced select,
.booking-datetime-control input,
.booking-date-control input,
.booking-time-control input,
.booking-time-control select {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(17, 24, 39, 0.14);
  border-radius: var(--eo-radius-input);
  background: #ffffff;
  color: #111827;
  font-size: 0.95rem;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.booking-form-field-enhanced input:focus,
.booking-form-field-enhanced select:focus,
.booking-datetime-control input:focus,
.booking-date-control input:focus,
.booking-time-control input:focus,
.booking-time-control select:focus {
  outline: none;
  border-color: rgba(17, 24, 39, 0.34);
  box-shadow: 0 0 0 4px rgba(17, 24, 39, 0.06);
}

.booking-datetime-control {
  position: relative;
}

.booking-datetime-control i {
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%);
  color: #6b7280;
  pointer-events: none;
  z-index: 1;
}

.booking-datetime-control input {
  padding-left: 2.65rem;
}

.booking-form-field-narrow {
  max-width: 360px;
}

.booking-recurrence-card {
  background: #ffffff;
}

.booking-recurrence-toggle-row {
  margin-bottom: 0;
}

.booking-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  cursor: pointer;
  user-select: none;
  padding-top: 0.15rem;
}

.booking-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.booking-switch-track {
  position: relative;
  width: 48px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: var(--eo-radius-pill);
  background: #e5e7eb;
  transition: background 0.18s ease;
}

.booking-switch-thumb {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(17, 24, 39, 0.16);
  transition: transform 0.18s ease;
}

.booking-switch input:checked + .booking-switch-track {
  background: #111827;
}

.booking-switch input:checked + .booking-switch-track .booking-switch-thumb {
  transform: translateX(20px);
}

.booking-switch-label {
  color: #374151;
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
}

.booking-recurrence-options {
  border-top: 1px solid rgba(17, 24, 39, 0.08);
  margin-top: 1.15rem;
  padding-top: 1.15rem;
}

@media (max-width: 720px) {
  .booking-section-heading,
  .booking-recurrence-toggle-row {
    flex-direction: column;
  }

  .booking-switch {
    width: 100%;
    justify-content: space-between;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(17, 24, 39, 0.1);
    background: #f9fafb;
  }

  .booking-form-field-narrow {
    max-width: none;
  }

  .booking-date-picker-shell,
  .booking-time-grid {
    grid-template-columns: 1fr;
  }

  .booking-summary-content {
    grid-template-columns: 1fr;
  }
}

/* =============================
Bookings
components/bookings_table.html
============================= */

.bookings-table-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  box-shadow: var(--shadow-default);
  padding: 1.5rem;
}

.bookings-table-wrapper {
  overflow-x: auto;
}

.bookings-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
}

.bookings-table th,
.bookings-table td {
  text-align: left;
  padding: 0.95rem 0.85rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
}

.bookings-table th {
  color: var(--color-primary);
  font-size: 0.92rem;
}

.bookings-table td {
  color: var(--color-text);
  font-size: 0.94rem;
}

.bookings-table-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem 0.7rem;
  border-radius: var(--eo-radius-pill);
  font-size: 0.8rem;
  font-weight: 700;
}

.bookings-table-status-pending {
  background: rgba(242, 201, 76, 0.16);
  color: var(--color-dark-yellow);
}

.bookings-table-status-confirmed {
  background: rgba(76, 175, 80, 0.12);
  color: var(--color-green);
}

.bookings-table-status-cancelled,
.bookings-table-status-rejected {
  background: rgba(192, 57, 43, 0.12);
  color: var(--color-red);
}

.bookings-table-actions {
  text-align: right;
}

.bookings-table-action-link {
  font-weight: 600;
  color: var(--color-primary);
}

.bookings-table-action-link:hover {
  color: var(--color-secondary);
}

.bookings-table-empty {
  text-align: center;
  color: var(--color-muted);
  padding: 2rem 1rem;
}

/* =============================
Bookings
space_booking_list.html
============================= */

.space-booking-list-page {
  padding: 2rem 1rem;
}

.space-booking-list-container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.space-booking-list-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.space-booking-list-title {
  margin: 0 0 0.35rem;
  color: var(--color-primary);
  font-size: 1.9rem;
}

.space-booking-list-subtitle {
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
}

.space-booking-list-organization {
  margin: 0.35rem 0 0;
  color: var(--color-muted);
  font-size: 0.95rem;
}

.space-booking-list-header-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.space-booking-list-back-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-button);
  color: var(--color-text);
  background: var(--color-surface);
  transition: var(--transition-default);
}

.space-booking-list-back-link:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.space-booking-list-messages {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.space-booking-list-message {
  padding: 0.95rem 1rem;
  border-radius: var(--eo-radius-card);
  font-size: 0.95rem;
}

.space-booking-list-message.success {
  background: rgba(76, 175, 80, 0.12);
  border: 1px solid rgba(76, 175, 80, 0.2);
  color: var(--color-green);
}

.space-booking-list-message.error {
  background: rgba(192, 57, 43, 0.08);
  border: 1px solid rgba(192, 57, 43, 0.18);
  color: var(--color-red);
}

@media (max-width: 768px) {
  .space-booking-list-header {
    align-items: stretch;
  }

  .space-booking-list-header-actions {
    width: 100%;
  }

  .space-booking-list-back-link {
    width: 100%;
  }
}

/* =============================
Bookings
user_booking_list.html
============================= */

.user-booking-list-page {
  padding: 2rem 1rem;
}

.user-booking-list-container {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.user-booking-list-header {
  margin-bottom: 1.75rem;
}

.user-booking-list-title {
  margin: 0 0 0.4rem;
  color: var(--color-primary);
  font-size: 2rem;
}

.user-booking-list-subtitle {
  margin: 0;
  color: var(--color-text);
  font-size: 1rem;
  max-width: 720px;
}

.user-booking-list-sections {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.user-booking-list-section {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.user-booking-list-section-secondary {
  margin-top: 0.5rem;
}

.user-booking-list-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  flex-wrap: wrap;
}

.user-booking-list-section-eyebrow {
  display: inline-block;
  margin-bottom: 0.25rem;
  color: var(--color-muted);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.user-booking-list-section-title {
  margin: 0;
  color: var(--color-primary);
  font-size: 1.35rem;
}

.user-booking-list-section-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.75rem;
  border-radius: var(--eo-radius-pill);
  background: rgba(0, 0, 0, 0.05);
  color: var(--color-primary);
  font-weight: 700;
}

.user-booking-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
}

.user-booking-card {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.25rem;
  border-radius: var(--eo-radius-card);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-default);
}

.user-booking-card-upcoming {
  border-color: color-mix(in srgb, var(--color-primary) 18%, var(--color-border));
  background: linear-gradient(145deg, var(--color-surface), color-mix(in srgb, var(--color-primary) 4%, white));
}

.user-booking-card-upcoming-highlight {
  border-color: color-mix(in srgb, var(--color-green) 40%, var(--color-border));
}

.user-booking-card-pending-note {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  color: var(--color-muted);
  font-weight: 500;
}

.user-booking-card-pending-note i {
  color: var(--color-yellow);
}

.user-booking-card-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.user-booking-card-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.4rem;
  color: var(--color-muted);
  font-size: 0.9rem;
}

.user-booking-card-title {
  margin: 0;
  color: var(--color-primary);
  font-size: 1.35rem;
  line-height: 1.3;
}

.user-booking-card-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.9rem;
  border-radius: var(--eo-radius-pill);
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.user-booking-card-status-pending {
  background: rgba(242, 201, 76, 0.16);
  color: var(--color-dark-yellow);
}

.user-booking-card-status-confirmed {
  background: rgba(76, 175, 80, 0.12);
  color: var(--color-green);
}

.user-booking-card-status-cancelled,
.user-booking-card-status-rejected {
  background: rgba(192, 57, 43, 0.12);
  color: var(--color-red);
}

.user-booking-card-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.user-booking-card-detail-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 0.95rem;
  background: rgba(0, 0, 0, 0.025);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
}

.user-booking-card-detail-item i {
  color: var(--color-primary);
  font-size: 1rem;
  margin-top: 0.15rem;
}

.user-booking-card-detail-label {
  display: block;
  margin-bottom: 0.15rem;
  color: var(--color-muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.user-booking-card-detail-item strong {
  color: var(--color-text);
  font-size: 0.98rem;
}

.user-booking-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding-top: 0.2rem;
}

.user-booking-list-empty {
  padding: 2rem 1.5rem;
  border-radius: var(--eo-radius-panel);
  background: var(--color-surface);
  border: 1px dashed var(--color-border);
  text-align: center;
  color: var(--color-muted);
}

.user-booking-list-empty h3 {
  margin: 0 0 0.4rem;
  color: var(--color-primary);
}

.user-booking-list-empty p {
  margin: 0;
}

.user-booking-list-empty-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(139, 94, 60, 0.08);
  color: var(--color-primary);
  font-size: 1.5rem;
}

.user-booking-list-history {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.user-booking-history-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.1rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--eo-radius-card);
  box-shadow: var(--shadow-default);
}

.user-booking-history-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex: 1;
  min-width: 0;
}

.user-booking-history-title {
  margin: 0 0 0.25rem;
  color: var(--color-primary);
  font-size: 1.08rem;
}

.user-booking-history-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  color: var(--color-muted);
  font-size: 0.9rem;
}

.user-booking-history-time {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  color: var(--color-text);
  white-space: nowrap;
}

.user-booking-history-time span {
  color: var(--color-muted);
  font-size: 0.9rem;
}

.user-booking-history-actions {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.user-booking-list-empty-secondary {
  background: rgba(0, 0, 0, 0.015);
}

@media (max-width: 768px) {
  .user-booking-card-top,
  .user-booking-history-card,
  .user-booking-history-main {
    flex-direction: column;
    align-items: flex-start;
  }

  .user-booking-card-details {
    grid-template-columns: 1fr;
  }

  .user-booking-card-footer,
  .user-booking-history-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .user-booking-history-time {
    align-items: flex-start;
    white-space: normal;
  }
}