:root {
  --ezas-ink: #0b1f33;
  --ezas-blue: #1d6fd8;
  --ezas-gold: #f4c20d;
  --ezas-border: #dce3ea;
  --ezas-muted: #667587;
  --ezas-bg: #f4f7fa;
  --ezas-danger: #b42318;
  --ezas-success: #197146;
  --ezas-ez: #d5a900;
  --ezas-sd: #e67e22;
  --ezas-sd2: #d94b4b;
  --ezas-phx: #2584d8;
  --ezas-phx2: #00a7a7;
  --ezas-abq: #7b5cc7;
}

.ezas-hidden { display: none !important; }
body.ezas-modal-open { overflow: hidden; }
.ezas-shell { color: var(--ezas-ink); min-width: 0; }
.ezas-hero { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; padding:1.35rem; border-radius:16px; background:linear-gradient(135deg,#0b1f33,#163b60); color:#fff; box-shadow:0 12px 28px rgba(11,31,51,.18); margin-bottom:1rem; }
.ezas-hero h2 { color:#fff; margin:.1rem 0 .35rem; font-size:1.65rem; }
.ezas-hero p { margin:0; color:#d7e2ed; max-width:680px; }
.ezas-kicker { color:var(--ezas-gold); font-weight:800; font-size:.72rem; letter-spacing:.12em; }
.ezas-hero-actions,.ezas-toolbar-actions { display:flex; gap:.6rem; flex-wrap:wrap; }
.ezas-btn { appearance:none; border:0; border-radius:9px; padding:.72rem 1rem; font:inherit; font-weight:750; cursor:pointer; transition:.15s ease; white-space:nowrap; }
.ezas-btn:hover { transform:translateY(-1px); }
.ezas-btn:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.ezas-btn-light { background:#fff; color:var(--ezas-ink); }
.ezas-btn-gold { background:var(--ezas-gold); color:#111; }
.ezas-btn-blue { background:var(--ezas-blue); color:#fff; }
.ezas-btn-outline { border:1px solid var(--ezas-border); background:#fff; color:var(--ezas-ink); }
.ezas-full { width:100%; }

.ezas-toolbar { display:grid; grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) auto; gap:.8rem; align-items:end; background:#fff; border:1px solid var(--ezas-border); border-radius:13px; padding:1rem; margin-bottom:1rem; }
.ezas-toolbar label,.ezas-modal label,.ezas-rule-grid label,.ezas-holiday-form label { display:flex; flex-direction:column; gap:.35rem; font-size:.78rem; font-weight:750; color:#435468; }
.ezas-toolbar select,.ezas-modal select,.ezas-modal input,.ezas-modal textarea,.ezas-rule-grid select,.ezas-rule-grid input,.ezas-holiday-form input { width:100%; box-sizing:border-box; border:1px solid #cbd5df; border-radius:8px; padding:.68rem .72rem; background:#fff; color:#172b3f; font:inherit; }
.ezas-check { flex-direction:row !important; align-items:center; gap:.5rem !important; }
.ezas-check input { width:auto !important; }
.ezas-two { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }

.ezas-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; }
.ezas-summary>div { background:#fff; border:1px solid var(--ezas-border); border-radius:11px; padding:.85rem 1rem; display:flex; flex-direction:column; }
.ezas-summary strong { font-size:1.3rem; color:var(--ezas-ink); }
.ezas-summary span { color:var(--ezas-muted); font-size:.75rem; }

.ezas-day-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:1rem; }
.ezas-day-card { background:#fff; border:1px solid var(--ezas-border); border-radius:14px; overflow:hidden; box-shadow:0 4px 14px rgba(11,31,51,.06); }
.ezas-day-card>header { display:flex; justify-content:space-between; gap:.75rem; align-items:center; padding:.9rem 1rem; background:#f8fafc; border-bottom:1px solid var(--ezas-border); }
.ezas-day-name { font-weight:850; color:var(--ezas-ink); }
.ezas-count { color:var(--ezas-muted); font-size:.75rem; }
.ezas-payday { display:inline-block; margin-left:.5rem; padding:.18rem .42rem; border-radius:999px; background:#dff5e8; color:#14633c; font-size:.62rem; font-weight:900; }
.ezas-holiday-banner { padding:1rem; background:linear-gradient(135deg,#b42318,#1d6fd8); color:#fff; font-weight:850; text-align:center; }
.ezas-shifts { padding:.25rem 0; }
.ezas-shift { display:flex; justify-content:space-between; gap:.7rem; align-items:center; padding:.72rem .85rem; border-bottom:1px solid #edf1f5; border-left:5px solid #aeb8c2; }
.ezas-shift:last-child { border-bottom:0; }
.ezas-shift.loc-EZ { border-left-color:var(--ezas-ez); }
.ezas-shift.loc-SD { border-left-color:var(--ezas-sd); }
.ezas-shift.loc-SD2 { border-left-color:var(--ezas-sd2); }
.ezas-shift.loc-PHX { border-left-color:var(--ezas-phx); }
.ezas-shift.loc-PHX2 { border-left-color:var(--ezas-phx2); }
.ezas-shift.loc-ABQ { border-left-color:var(--ezas-abq); }
.ezas-shift.is-pto { background:#fff8e5; }
.ezas-shift.is-off { background:#fafafa; opacity:.82; }
.ezas-shift.is-holiday { background:#f5f0ff; }
.ezas-shift.is-current-user { background:#eef6ff; box-shadow:inset 0 1px 0 #0a2540,inset 0 -1px 0 #0a2540; opacity:1; }
.ezas-shift-main strong .ezas-me { display:inline; color:#0a2540; font-size:.72rem; font-weight:900; }
.ezas-shift-main { min-width:0; display:flex; flex-direction:column; }
.ezas-shift-main strong { font-size:.9rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ezas-shift-main span { color:var(--ezas-muted); font-size:.74rem; }
.ezas-shift-side { display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }
.ezas-location,.ezas-source { border-radius:5px; padding:.2rem .4rem; background:#eaf0f6; font-size:.65rem; font-weight:850; }
.ezas-source { background:#fff0b8; }
.ezas-edit { border:1px solid #cbd5df; background:#fff; border-radius:6px; padding:.28rem .48rem; cursor:pointer; font-size:.7rem; }
.ezas-off-list summary { cursor:pointer; padding:.65rem .85rem; color:var(--ezas-muted); font-size:.75rem; font-weight:800; background:#fafbfc; }

.ezas-empty,.ezas-loading,.ezas-error { padding:2.5rem 1rem; text-align:center; border:1px dashed #cbd5df; border-radius:12px; background:#fff; color:var(--ezas-muted); }
.ezas-error { color:var(--ezas-danger); border-color:#efb7b1; background:#fff6f5; }
.ezas-warning { border:1px solid #f1d18a; background:#fff8e5; color:#694d12; border-radius:8px; padding:.7rem; font-size:.77rem; margin:.2rem 0 1rem; }

.ezas-modal { position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:1rem; background:rgba(7,20,33,.72); }
.ezas-modal-card { position:relative; width:min(100%,720px); max-height:90vh; overflow:auto; border-radius:15px; background:#fff; padding:1.25rem; box-shadow:0 22px 65px rgba(0,0,0,.28); }
.ezas-modal-small { width:min(100%,470px); }
.ezas-modal-wide { width:min(100%,900px); }
.ezas-modal-xwide { width:min(100%,1100px); }
.ezas-modal-card h3 { margin:0 2.2rem 1rem 0; color:var(--ezas-ink); }
.ezas-modal-card>label { margin-bottom:.8rem; }
.ezas-modal-close { position:absolute; right:.8rem; top:.65rem; border:0; background:transparent; font-size:1.8rem; color:#5e6d7b; cursor:pointer; }

.ezas-report-week { border:1px solid var(--ezas-border); border-radius:11px; padding:1rem; margin-bottom:1rem; }
.ezas-report-week>header { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--ezas-border); padding-bottom:.65rem; margin-bottom:.75rem; }
.ezas-report-week h4 { margin:0; }
.ezas-report-week>header span { padding:.25rem .55rem; border-radius:999px; font-size:.68rem; font-weight:900; }
.ezas-report-week.is-ok>header span { background:#dff5e8; color:#14633c; }
.ezas-report-week.has-problems>header span { background:#fee4e2; color:#912018; }
.ezas-report-block { margin:.8rem 0; }
.ezas-report-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.5rem; margin-top:.45rem; }
.ezas-report-grid>div { display:flex; justify-content:space-between; gap:.5rem; background:#fff4f2; border-radius:7px; padding:.55rem; font-size:.75rem; }
.ezas-conflict { margin:.45rem 0; padding:.55rem; border-left:4px solid var(--ezas-danger); background:#fff4f2; font-size:.78rem; }
.ezas-pass { color:var(--ezas-success); font-weight:700; }

.ezas-setting-tabs { display:flex; gap:.35rem; border-bottom:1px solid var(--ezas-border); margin-bottom:1rem; overflow:auto; }
.ezas-setting-tabs button { border:0; background:transparent; padding:.65rem .8rem; font-weight:800; cursor:pointer; color:var(--ezas-muted); border-bottom:3px solid transparent; }
.ezas-setting-tabs button.is-active { color:var(--ezas-blue); border-bottom-color:var(--ezas-blue); }
.ezas-help { color:var(--ezas-muted); font-size:.8rem; }
.ezas-table-wrap { overflow:auto; margin-bottom:1rem; }
.ezas-table { width:100%; border-collapse:collapse; min-width:640px; }
.ezas-table th,.ezas-table td { padding:.55rem; border:1px solid var(--ezas-border); text-align:center; }
.ezas-table th:first-child { text-align:left; }
.ezas-target-input { width:62px; border:1px solid #cbd5df; border-radius:6px; padding:.45rem; text-align:center; }

.ezas-rule-list { display:grid; gap:.65rem; }
.ezas-rule { border:1px solid var(--ezas-border); border-radius:10px; overflow:hidden; }
.ezas-rule summary { display:flex; justify-content:space-between; align-items:center; padding:.8rem 1rem; cursor:pointer; background:#f8fafc; }
.ezas-rule summary span { color:var(--ezas-muted); font-size:.75rem; }
.ezas-rule-grid { display:grid; grid-template-columns:repeat(5,minmax(130px,1fr)); gap:.75rem; padding:1rem; }
.ezas-rule-notes { grid-column:span 2; }
.ezas-rule>.ezas-btn { margin:0 1rem 1rem; }
.ezas-holiday-form { display:grid; grid-template-columns:180px 1fr auto; gap:.75rem; align-items:end; margin-bottom:1rem; }
.ezas-holiday-list>div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem 0; border-bottom:1px solid var(--ezas-border); }
.ezas-holiday-list span { display:flex; flex-direction:column; }
.ezas-holiday-list small { color:var(--ezas-muted); }
.ezas-holiday-list button { border:0; background:#fff0ef; color:var(--ezas-danger); border-radius:6px; padding:.4rem .6rem; cursor:pointer; }

.ezas-toast { position:fixed; z-index:100001; right:1rem; bottom:1rem; max-width:390px; padding:.8rem 1rem; border-radius:9px; color:#fff; font-weight:750; box-shadow:0 12px 35px rgba(0,0,0,.2); transform:translateY(150%); opacity:0; transition:.2s ease; }
.ezas-toast.is-showing { transform:translateY(0); opacity:1; }
.ezas-toast.is-success { background:#197146; }
.ezas-toast.is-danger { background:#b42318; }

@media (max-width: 850px) {
  .ezas-hero { align-items:flex-start; flex-direction:column; }
  .ezas-toolbar { grid-template-columns:1fr 1fr; }
  .ezas-toolbar-actions { grid-column:1/-1; }
  .ezas-summary { grid-template-columns:1fr 1fr; }
  .ezas-rule-grid { grid-template-columns:1fr 1fr; }
  .ezas-holiday-form { grid-template-columns:1fr 1fr; }
  .ezas-holiday-form .ezas-btn { grid-column:1/-1; }
}

@media (max-width: 560px) {
  .ezas-toolbar,.ezas-summary,.ezas-rule-grid,.ezas-two,.ezas-holiday-form { grid-template-columns:1fr; }
  .ezas-day-grid { grid-template-columns:1fr; }
  .ezas-rule-notes { grid-column:auto; }
  .ezas-shift { align-items:flex-start; }
  .ezas-shift-side { flex-direction:column; align-items:flex-end; }
}

/* Compatibility with attendance layouts where the base hidden utility is scoped. */
#tab-schedule.hidden,
.ezas-schedule-panel.hidden {
  display: none !important;
}

/* 2026.07.01.3 schedule migration controls */
.ezas-history-toggle {
  align-self:center;
  padding:.55rem .7rem;
  border:1px solid var(--ezas-border);
  border-radius:8px;
  background:#f8fafc;
  color:var(--ezas-ink) !important;
  white-space:nowrap;
}
.ezas-build-modes { display:grid; gap:.65rem; margin:.15rem 0 .85rem; }
.ezas-build-mode {
  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start;
  gap:.7rem !important;
  padding:.8rem;
  border:1px solid var(--ezas-border);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.ezas-build-mode.is-selected { border-color:var(--ezas-blue); background:#eef6ff; box-shadow:0 0 0 1px rgba(29,111,216,.12); }
.ezas-build-mode input { width:auto !important; margin-top:.2rem; }
.ezas-build-mode span { display:flex; flex-direction:column; gap:.18rem; }
.ezas-build-mode strong { color:var(--ezas-ink); font-size:.86rem; }
.ezas-build-mode small { color:var(--ezas-muted); font-size:.75rem; line-height:1.35; font-weight:500; }

.ezas-field-help {
  display:block;
  margin-top:3px;
  color:#667085;
  font-size:11px;
  font-weight:500;
}
.ezas-time-off-note {
  display:block;
  margin-top:3px;
  color:#526177;
  font-size:11px;
  line-height:1.35;
}
