/* Vic's Planner finishing touches */
.avatar { position: relative; overflow: hidden; }
.avatar .avatar-google-picture {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  z-index: 1;
}
.google-avatar-toggle-row { display:flex; justify-content:flex-start; margin: -5px 0 12px 47px; }
.google-avatar-toggle-row button { min-height:30px; padding:5px 8px; font-size:11px; color:#91a6c6; background:transparent; border:0; border-radius:6px; cursor:pointer; }
.google-avatar-toggle-row button:hover { color:#f0c28d; background:#29364a; }
.event-participant-strip { display:flex; align-items:center; gap:5px; margin:8px 0 0 2px; min-height:22px; }
.participant-avatar {
  display:inline-flex; align-items:center; justify-content:center;
  position:relative; width:22px; height:22px; flex:0 0 22px;
  border-radius:50%; overflow:hidden; background:#263247; color:#d8e3f2;
  border:2px solid #718099; font-size:9px; font-weight:700;
  box-shadow:0 0 0 1px #101722;
}
.participant-avatar[data-response="going"] { border-color:#65bd8d; }
.participant-avatar[data-response="maybe"] { border-color:#e4b653; }
.participant-avatar[data-response="declined"] { border-color:#d9788f; }
.participant-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; }
.participant-more { color:#93a7c4; font-size:10px; margin-left:2px; }
.admin-recovery-open { width:100%; margin:10px 0 4px; }
.admin-recovery-overlay { position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:20px; background:#080c14d9; backdrop-filter:blur(5px); }
.admin-recovery-panel { width:min(620px,100%); max-height:min(80vh,760px); overflow:auto; padding:24px; border:1px solid #53627a; border-radius:14px; background:#1b202b; color:#e6edf8; box-shadow:0 25px 90px #0009; }
.admin-recovery-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.admin-recovery-heading h2 { margin:0; font-size:20px; font-weight:650; }
.admin-recovery-heading button { border:0; background:transparent; color:#aebed5; font-size:24px; cursor:pointer; }
.admin-recovery-intro { color:#9fb1cc; font-size:12px; line-height:1.7; margin:0 0 16px; }
.admin-group-card { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 0; border-top:1px solid #36445b; }
.admin-group-info { min-width:0; }
.admin-group-info strong { display:block; font-size:14px; overflow-wrap:anywhere; }
.admin-group-info small { display:block; color:#91a5c4; font-size:11px; margin-top:5px; line-height:1.6; }
.admin-group-actions { display:flex; flex-wrap:wrap; gap:7px; flex-shrink:0; }
.admin-group-actions button { border:1px solid #53627a; border-radius:7px; padding:8px 10px; min-height:34px; background:#29364b; color:#dce6f5; font-size:11px; cursor:pointer; }
.admin-group-actions button:hover { background:#3a4a63; }
.admin-group-actions .admin-delete { color:#f1a9bc; border-color:#855166; }
.admin-empty { color:#a0b4d0; font-size:13px; padding:20px 0; }
.admin-recovery-foot { display:flex; justify-content:flex-end; margin-top:16px; border-top:1px solid #36445b; padding-top:14px; }
.admin-recovery-foot button { min-height:38px; padding:8px 14px; border:1px solid #53627a; border-radius:7px; background:#29364b; color:#dce6f5; cursor:pointer; }
@media(max-width:520px) {
 .admin-recovery-overlay { padding:10px; }
 .admin-recovery-panel { padding:18px; max-height:88vh; }
 .admin-group-card { align-items:flex-start; flex-direction:column; }
 .admin-group-actions { width:100%; }
 .admin-group-actions button { flex:1; }
 .google-avatar-toggle-row { margin-left:0; }
}
.google-profile-refresh { width:100%; margin-top:4px; font-size:11px; justify-content:flex-start; }

/* Cleaner Google button frame */
.google-button {
  width: 300px !important;
  max-width: 100% !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.google-button iframe {
  display: block !important;
  width: 300px !important;
  max-width: 100% !important;
  height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* Availability automatically carried over from shared plans */
.shared-commitments-section {
  margin: 18px 0 12px;
  padding: 14px 0 4px;
  border-top: 1px solid #354056;
}
.shared-commitments-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.shared-commitments-heading h3 { color:#e5ebf5; font-size:13px; font-weight:650; }
.shared-commitments-heading>span { color:#8fc9ac; background:#213b31; border:1px solid #3d7259; border-radius:999px; padding:3px 8px; font-size:10px; }
.shared-commitments-note,.shared-commitments-empty { color:#94a8c4; font-size:11px; margin:5px 0 10px; }
.shared-commitments-list { display:grid; gap:7px; }
.shared-commitment-item { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; background:#202a39; border:1px solid #35465d; border-radius:8px; }
.shared-commitment-info { min-width:0; display:grid; gap:3px; }
.shared-commitment-info strong { color:#e2eaf6; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.shared-commitment-info small { color:#9db1cc; font-size:10px; line-height:1.45; }
.shared-commitment-status { flex-shrink:0; color:#efd18b; background:#3b3323; border:1px solid #8a6b32; border-radius:999px; padding:4px 8px; font-size:10px; }
.shared-commitment-status:where(:not(:empty)) { white-space:nowrap; }

/* Friends' availability inside each shared schedule */
.friends-availability-widget { margin:12px 0 18px; border:1px solid #40536a; border-radius:12px; overflow:hidden; background:#192331; box-shadow:0 8px 24px #07111c22; }
.friends-availability-toggle { width:100%; min-height:54px; display:flex; align-items:center; gap:12px; padding:10px 15px; text-align:left; border:0; background:#1b2736; color:#e5edf8; }
.friends-availability-toggle>span:first-child { font-size:14px; font-weight:650; }
.friends-availability-toggle-hint { color:#96abc8; font-size:11px; margin-left:auto; }
.friends-availability-chevron { color:#b5c6dc; font-size:19px; line-height:1; transition:transform .15s; }
.friends-availability-toggle[aria-expanded="true"] .friends-availability-chevron { transform:rotate(180deg); }
.friends-availability-panel { padding:15px; border-top:1px solid #35475d; }
.friends-availability-panel[hidden] { display:none !important; }
.friends-availability-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:12px; }
.friends-availability-heading h3 { color:#e8eef8; font-size:14px; font-weight:650; }
.friends-availability-heading p { color:#95a9c5; font-size:11px; margin-top:3px; }
.friends-availability-nav { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.friends-availability-nav strong { color:#c8d6e8; font-size:11px; white-space:nowrap; }
.friends-availability-nav button,.friends-availability-retry { min-width:30px; min-height:30px; border:1px solid #465a73; border-radius:7px; background:#26354a; color:#d9e5f4; font-size:17px; }
.friends-availability-scroll { width:100%; overflow-x:auto; border:1px solid #354a62; border-radius:9px; }
.friends-availability-table { width:100%; min-width:760px; border-collapse:collapse; font-size:11px; }
.friends-availability-table th,.friends-availability-table td { padding:9px 8px; text-align:left; vertical-align:top; border-bottom:1px solid #2d3e54; }
.friends-availability-table thead th { color:#a9bdd7; background:#202d3e; font-weight:600; white-space:nowrap; }
.friends-availability-table tbody tr:last-child th,.friends-availability-table tbody tr:last-child td { border-bottom:0; }
.friends-availability-table tbody tr:nth-child(even) { background:#1c2938; }
.friends-person-heading,.friends-person-cell { position:sticky; left:0; z-index:1; min-width:145px; background:#1e2b3b; }
.friends-availability-table tbody tr:nth-child(even) .friends-person-cell { background:#202e3f; }
.friends-person-cell { display:flex; align-items:center; gap:8px; color:#e1eaf6; font-weight:600; }
.friends-person-name { max-width:100px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.friends-availability-avatar { position:relative; display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; flex:0 0 26px; overflow:hidden; border:1px solid #61738c; border-radius:50%; background:#2a3a50; color:#e1eaf6; font-size:10px; font-weight:700; }
.friends-availability-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; }
.friends-availability-cell { min-width:86px; }
.friends-availability-state { display:inline-flex; align-items:center; gap:5px; color:#a8b9cf; font-size:10px; white-space:nowrap; }
.friends-availability-state:before,.friends-availability-legend i { content:""; display:inline-block; width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#64758c; }
.friends-availability-state[data-status="available"]:before,.friends-availability-legend i[data-status="available"] { background:#69c995; }
.friends-availability-state[data-status="tentative"]:before,.friends-availability-legend i[data-status="tentative"] { background:#e4b653; }
.friends-availability-state[data-status="busy"]:before,.friends-availability-legend i[data-status="busy"] { background:#d9788f; }
.friends-availability-state[data-status="mixed"]:before,.friends-availability-legend i[data-status="mixed"] { background:#9c8bd6; }
.friends-availability-times,.friends-availability-more { display:block; color:#91a7c5; font-size:9px; line-height:1.45; margin-top:4px; white-space:nowrap; }
.friends-availability-more { color:#7188a7; }
.friends-availability-legend { display:flex; flex-wrap:wrap; gap:13px; margin-top:11px; }
.friends-availability-legend>span { display:inline-flex; align-items:center; gap:5px; color:#9dafc8; font-size:10px; }
.friends-availability-privacy { color:#8298b7; font-size:10px; margin-top:10px; }
.friends-availability-message { color:#a5b7d0; font-size:12px; padding:12px 0; }
.friends-availability-message.is-error { color:#e9aabd; }
.friends-availability-retry { padding:5px 10px; font-size:11px; }
@media(max-width:640px) {
  .friends-availability-toggle { flex-wrap:wrap; gap:5px 9px; }
  .friends-availability-toggle-hint { margin-left:0; flex:1 1 auto; }
  .friends-availability-heading { align-items:flex-start; flex-direction:column; }
  .friends-availability-nav { width:100%; justify-content:space-between; }
  .friends-availability-panel { padding:11px; }
  .shared-commitment-item { align-items:flex-start; }
  .shared-commitment-info small { max-width:230px; }
}
.google-avatar-toggle-row { margin-left:0 !important; }
.shared-commitment-status[data-status="busy"] { color:#f1b6c5; background:#3a2831; border-color:#855166; }
.shared-commitment-status[data-status="reply"] { color:#b7c7dd; background:#273448; border-color:#4b5e79; }

/* Keep Google's iframe exactly aligned with the pill button. */
.google-button > div { width:300px !important; max-width:100% !important; height:40px !important; margin:0 auto !important; padding:0 !important; border:0 !important; background:transparent !important; }

/* Personal schedule controls: leave a shared schedule or clear manual availability. */
.account-schedule-actions {
  margin: 18px 0 12px;
  padding: 15px 0 8px;
  border-top: 1px solid #354056;
  display: grid;
  gap: 9px;
}
.account-schedule-actions h3 {
  margin: 0;
  color: #e5ebf5;
  font-size: 13px;
  font-weight: 650;
}
.account-schedule-note {
  margin: 0;
  color: #c1cfe1;
  font-size: 12px;
}
.account-schedule-hint {
  margin: 0;
  color: #8fa4c1;
  font-size: 11px;
  line-height: 1.5;
}
.account-schedule-actions .account-leave-button {
  margin: 2px 0 4px;
}
.account-schedule-actions .account-clear-button {
  margin: 2px 0 0;
  min-height: 38px;
}
.account-schedule-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.account-transfer-label { display:grid; gap:6px; color:#aebfd6; font-size:11px; }
.account-transfer-select { width:100%; min-height:38px; padding:8px 10px; border:1px solid #465a73; border-radius:8px; background:#202b3a; color:#e2eaf6; font:inherit; }
.account-transfer-button { margin:2px 0 5px; }


/* Timezone is detected from the viewer's device and converted automatically. */
.local-timezone-note {
  margin: -5px 0 12px;
  color: #91a5c3;
  font-size: 12px;
  line-height: 1.5;
}
.zone-button {
  display: none !important;
}
.board-options::before {
  content: "Your local time";
  color: #91a5c3;
  font-size: 12px;
  white-space: nowrap;
}


/* Hide manual timezone controls: every screen uses the device's IANA timezone. */
.modal label:has(select[name="timezone"]),
.modal select[name="timezone"] {
  display: none !important;
}
.modal > select[name="timezone"] {
  display: none !important;
}
