:root {
  --pulse-bg: #08110f;
  --pulse-bg-soft: #0b1714;
  --pulse-panel: rgba(17, 31, 27, .82);
  --pulse-panel-2: #101d1a;
  --pulse-border: rgba(255, 255, 255, .075);
  --pulse-border-strong: rgba(97, 255, 192, .18);
  --pulse-text: #f2f7f5;
  --pulse-muted: #8fa59e;
  --pulse-dim: #657b74;
  --pulse-accent: #57f2b0;
  --pulse-accent-strong: #2edb91;
  --pulse-accent-ink: #062417;
  --pulse-warning: #ffc96b;
  --pulse-danger: #ff8585;
  --pulse-radius: 18px;
  --pulse-shadow: 0 24px 70px rgba(0, 0, 0, .26);
}

* { box-sizing: border-box; }
html { font-size: 15px; min-height: 100%; background: var(--pulse-bg); }
body { margin: 0; min-height: 100vh; color: var(--pulse-text); background: var(--pulse-bg); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }

.pulse-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); background: radial-gradient(circle at 80% -10%, rgba(46, 219, 145, .09), transparent 28%), var(--pulse-bg); }
.pulse-sidebar { position: sticky; top: 0; height: 100vh; padding: 22px 16px 18px; border-right: 1px solid var(--pulse-border); background: rgba(5, 13, 11, .94); display: flex; flex-direction: column; z-index: 50; backdrop-filter: blur(20px); }
.pulse-brand { display: flex; align-items: center; gap: 11px; padding: 5px 8px; text-decoration: none; }
.pulse-brand > div:last-child { display: flex; align-items: baseline; gap: 6px; }
.pulse-brand strong { letter-spacing: -.035em; font-size: 1.22rem; }
.pulse-brand small { color: var(--pulse-accent); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pulse-brand-mark { width: 32px; height: 32px; border: 1px solid rgba(87, 242, 176, .3); border-radius: 10px; position: relative; display: grid; place-items: center; box-shadow: inset 0 0 20px rgba(87, 242, 176, .06); }
.pulse-brand-mark span { position: absolute; border: 1px solid var(--pulse-accent); border-radius: 999px; opacity: .8; }
.pulse-brand-mark span:nth-child(1) { width: 18px; height: 18px; }
.pulse-brand-mark span:nth-child(2) { width: 10px; height: 10px; opacity: .58; }
.pulse-brand-mark span:nth-child(3) { width: 3px; height: 3px; background: var(--pulse-accent); box-shadow: 0 0 12px var(--pulse-accent); }
.pulse-venue-card { margin: 24px 4px 20px; padding: 12px; display: flex; gap: 10px; align-items: center; background: rgba(255,255,255,.025); border: 1px solid var(--pulse-border); border-radius: 13px; }
.pulse-venue-card div { min-width: 0; display: grid; }
.pulse-venue-card strong { font-size: .82rem; }
.pulse-venue-card small { color: var(--pulse-muted); font-size: .7rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pulse-live-dot { width: 7px; height: 7px; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: var(--pulse-accent); box-shadow: 0 0 0 5px rgba(87,242,176,.08), 0 0 15px rgba(87,242,176,.4); }
.pulse-nav { display: grid; gap: 3px; }
.pulse-nav-label { margin: 15px 10px 5px; color: #4f655e; text-transform: uppercase; letter-spacing: .13em; font-size: .62rem; font-weight: 800; }
.pulse-nav a { display: flex; gap: 11px; align-items: center; padding: 9px 11px; border-radius: 10px; color: #9bb0a9; font-size: .84rem; font-weight: 650; text-decoration: none; transition: .16s ease; }
.pulse-nav a span { width: 18px; color: #6d847d; text-align: center; font-size: .9rem; }
.pulse-nav a:hover { color: var(--pulse-text); background: rgba(255,255,255,.035); }
.pulse-nav a.active { color: #eafff7; background: linear-gradient(90deg, rgba(87,242,176,.115), rgba(87,242,176,.035)); box-shadow: inset 2px 0 var(--pulse-accent); }
.pulse-nav a.active span { color: var(--pulse-accent); }
.pulse-sidebar-foot { margin-top: auto; padding: 14px 10px 0; border-top: 1px solid var(--pulse-border); display: grid; color: #61756f; font-size: .68rem; }
.pulse-sidebar-foot span { color: #8da19b; font-weight: 700; }

.pulse-main { min-width: 0; }
.pulse-topbar { height: 76px; padding: 0 32px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--pulse-border); background: rgba(8,17,15,.72); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 30; }
.pulse-top-title { display: grid; line-height: 1.15; }
.pulse-top-title small { color: var(--pulse-accent); font-size: .63rem; text-transform: uppercase; font-weight: 800; letter-spacing: .13em; }
.pulse-top-title strong { margin-top: 4px; font-size: .92rem; }
.pulse-user { display: flex; align-items: center; gap: 9px; }
.pulse-user-avatar, .pulse-avatar { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex: 0 0 auto; color: var(--pulse-accent); background: rgba(87,242,176,.08); border: 1px solid rgba(87,242,176,.13); font-size: .72rem; font-weight: 800; }
.pulse-user-copy { display: grid; min-width: 0; line-height: 1.15; }
.pulse-user-copy strong { font-size: .74rem; }
.pulse-user-copy span { color: var(--pulse-muted); max-width: 180px; overflow: hidden; text-overflow: ellipsis; font-size: .65rem; }
.pulse-logout, .pulse-link-button { border: 0; padding: 0; background: none; color: var(--pulse-muted); text-decoration: none; font-size: .72rem; cursor: pointer; }
.pulse-logout { padding-left: 10px; border-left: 1px solid var(--pulse-border); }
.pulse-logout:hover, .pulse-link-button:hover { color: var(--pulse-accent); }
.pulse-menu-button { display: none; background: transparent; border: 1px solid var(--pulse-border); color: var(--pulse-text); border-radius: 9px; width: 38px; height: 38px; }

.pulse-content { width: min(1540px, 100%); margin: 0 auto; padding: 30px 32px 56px; }
.pulse-toast { margin-bottom: 18px; padding: 11px 14px; display: flex; align-items: center; gap: 10px; color: #c9f9e4; background: rgba(87,242,176,.065); border: 1px solid rgba(87,242,176,.14); border-radius: 11px; font-size: .8rem; }
.pulse-hero, .pulse-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin: 7px 0 27px; }
.pulse-hero { padding: 24px 25px; min-height: 170px; align-items: center; border: 1px solid var(--pulse-border-strong); border-radius: 22px; background: radial-gradient(circle at 88% 5%, rgba(87,242,176,.17), transparent 30%), linear-gradient(135deg, rgba(21,44,36,.95), rgba(11,22,19,.95)); box-shadow: var(--pulse-shadow); overflow: hidden; position: relative; }
.pulse-hero:after { content:""; position:absolute; width:310px; height:310px; right:-110px; bottom:-240px; border:1px solid rgba(87,242,176,.18); border-radius:50%; box-shadow: 0 0 0 32px rgba(87,242,176,.025), 0 0 0 68px rgba(87,242,176,.018); }
.pulse-kicker, .pulse-page-eyebrow, .pulse-panel-eyebrow { color: var(--pulse-accent); text-transform: uppercase; letter-spacing: .13em; font-size: .64rem; font-weight: 850; }
.pulse-kicker { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.pulse-hero h1, .pulse-page-head h1 { margin: 0; letter-spacing: -.045em; font-weight: 720; }
.pulse-hero h1 { max-width: 750px; font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.02; }
.pulse-page-head h1 { margin-top: 5px; font-size: clamp(1.8rem, 3vw, 2.65rem); }
.pulse-hero p, .pulse-page-head p { margin: 12px 0 0; max-width: 720px; color: var(--pulse-muted); font-size: .88rem; }
.pulse-hero-actions { position: relative; z-index: 2; display: flex; gap: 9px; flex-wrap: wrap; }
.pulse-head-note { max-width: 270px; color: var(--pulse-dim); font-size: .76rem; text-align: right; }

.pulse-btn { min-height: 39px; padding: 9px 14px; border-radius: 10px; font-size: .77rem; font-weight: 750; border: 1px solid transparent; }
.pulse-btn-primary { color: var(--pulse-accent-ink); background: var(--pulse-accent); border-color: var(--pulse-accent); }
.pulse-btn-primary:hover { color: var(--pulse-accent-ink); background: #78f7c3; border-color: #78f7c3; }
.pulse-btn-secondary { color: var(--pulse-text); background: rgba(255,255,255,.055); border-color: var(--pulse-border); }
.pulse-btn-secondary:hover, .pulse-btn-ghost:hover { color: var(--pulse-text); background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.12); }
.pulse-btn-ghost { color: #cbd9d4; background: rgba(0,0,0,.15); border-color: rgba(255,255,255,.11); }

.pulse-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-bottom: 12px; }
.pulse-stat-grid.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.pulse-stat-card { padding: 18px; min-height: 122px; border: 1px solid var(--pulse-border); border-radius: var(--pulse-radius); background: var(--pulse-panel); box-shadow: 0 12px 40px rgba(0,0,0,.1); }
.pulse-stat-card.accent { border-color: rgba(87,242,176,.18); background: linear-gradient(145deg, rgba(28,64,51,.7), rgba(13,28,24,.82)); }
.pulse-stat-label { color: var(--pulse-muted); font-size: .7rem; font-weight: 700; }
.pulse-stat-value { margin-top: 8px; font-size: 2.35rem; line-height: 1; letter-spacing: -.05em; font-weight: 700; }
.pulse-stat-card.accent .pulse-stat-value { color: #d9fff0; }
.pulse-stat-note { margin-top: 9px; color: var(--pulse-dim); font-size: .68rem; }

.pulse-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr); gap: 12px; margin-bottom: 12px; }
.pulse-panel { padding: 20px; border: 1px solid var(--pulse-border); border-radius: var(--pulse-radius); background: var(--pulse-panel); box-shadow: 0 14px 45px rgba(0,0,0,.12); }
.pulse-panel.flush { padding: 0; overflow: hidden; }
.pulse-panel-head { margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pulse-panel-head h2, .pulse-setting-card h2, .pulse-side-note h2 { margin: 4px 0 0; font-size: 1.04rem; letter-spacing: -.02em; }
.pulse-text-link { color: var(--pulse-muted); text-decoration: none; font-size: .72rem; }
.pulse-text-link:hover { color: var(--pulse-accent); }

.pulse-person-list { display: grid; }
.pulse-person-row { min-height: 59px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto 48px; align-items: center; gap: 11px; border-top: 1px solid var(--pulse-border); }
.pulse-person-row:first-child { border-top: 0; }
.pulse-person-main, .pulse-person-cell > div:last-child { min-width: 0; display: grid; }
.pulse-person-main strong, .pulse-person-cell strong { font-size: .79rem; }
.pulse-person-main span, .pulse-person-cell span, .pulse-subtext { color: var(--pulse-muted); font-size: .68rem; }
.pulse-person-row time { color: var(--pulse-dim); font-size: .7rem; text-align: right; }
.pulse-status { display: inline-flex; align-items: center; width: fit-content; padding: 4px 8px; border-radius: 999px; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.pulse-status.success, .pulse-status.event-clockin, .pulse-status.event-breakend { color: #8affca; background: rgba(87,242,176,.09); border: 1px solid rgba(87,242,176,.13); }
.pulse-status.warning, .pulse-status.event-breakstart { color: #ffd98e; background: rgba(255,201,107,.08); border: 1px solid rgba(255,201,107,.13); }
.pulse-status.neutral, .pulse-status.event-clockout { color: #a9bbb5; background: rgba(255,255,255,.04); border: 1px solid var(--pulse-border); }
.pulse-timeline { display: grid; }
.pulse-timeline-item { position: relative; padding: 8px 0 8px 18px; display: flex; min-height: 44px; }
.pulse-timeline-item:before { content:""; position:absolute; left:4px; top:21px; bottom:-10px; width:1px; background:var(--pulse-border); }
.pulse-timeline-item:last-child:before { display:none; }
.pulse-timeline-dot { position:absolute; left:1px; top:16px; width:7px; height:7px; border-radius:50%; background:#6f847d; }
.pulse-timeline-item div { display:grid; }
.pulse-timeline-item strong { font-size:.75rem; }
.pulse-timeline-item span { color:var(--pulse-muted); font-size:.66rem; }
.pulse-shortcut-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.pulse-shortcut { min-height:104px; padding:15px; display:grid; align-content:end; border:1px solid var(--pulse-border); border-radius:14px; background:rgba(255,255,255,.018); text-decoration:none; transition:.16s ease; }
.pulse-shortcut:hover { transform:translateY(-2px); border-color:rgba(87,242,176,.16); background:rgba(87,242,176,.035); }
.pulse-shortcut > span { margin-bottom:auto; color:#4f685f; font-size:.62rem; letter-spacing:.1em; }
.pulse-shortcut strong { font-size:.83rem; }
.pulse-shortcut small { color:var(--pulse-muted); font-size:.66rem; }

.pulse-filterbar { margin-bottom:12px; padding:10px; display:flex; gap:8px; flex-wrap:wrap; border:1px solid var(--pulse-border); border-radius:13px; background:rgba(255,255,255,.02); }
.pulse-filterbar input, .pulse-filterbar select, .pulse-field input, .pulse-field select, .pulse-field textarea { min-height:39px; padding:8px 11px; color:var(--pulse-text); background:#0b1714; border:1px solid rgba(255,255,255,.085); border-radius:9px; outline:none; font-size:.76rem; }
.pulse-filterbar input:focus, .pulse-filterbar select:focus, .pulse-field input:focus, .pulse-field select:focus, .pulse-field textarea:focus { border-color:rgba(87,242,176,.45); box-shadow:0 0 0 3px rgba(87,242,176,.07); }
.pulse-filterbar select, .pulse-field select { color-scheme:dark; }
.pulse-search { flex:1 1 260px; }
.pulse-search input { width:100%; }
.pulse-table { width:100%; border-collapse:collapse; color:var(--pulse-text); }
.pulse-table th { padding:13px 16px; color:#60756e; background:rgba(255,255,255,.012); border-bottom:1px solid var(--pulse-border); text-transform:uppercase; letter-spacing:.09em; font-size:.58rem; font-weight:850; }
.pulse-table td { padding:13px 16px; border-bottom:1px solid var(--pulse-border); vertical-align:middle; font-size:.74rem; }
.pulse-table tr:last-child td { border-bottom:0; }
.pulse-table tbody tr:hover { background:rgba(255,255,255,.014); }
.pulse-person-cell { display:flex; align-items:center; gap:10px; min-width:190px; }
.pulse-table-actions { text-align:right; white-space:nowrap; }
.pulse-table-actions > a, .pulse-table-actions form { display:inline-block; margin-left:10px; }
.pulse-table-actions > a { color:#a9bbb5; text-decoration:none; font-size:.72rem; }
.pulse-table-actions > a:hover { color:var(--pulse-accent); }
.pulse-code { padding:4px 7px; border:1px solid var(--pulse-border); border-radius:6px; color:#aabbb5; background:rgba(0,0,0,.12); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.67rem; }

.pulse-empty { min-height:300px; padding:38px 24px; display:grid; place-items:center; align-content:center; text-align:center; }
.pulse-empty.compact { min-height:190px; padding:22px 10px; }
.pulse-empty-icon { width:42px; height:42px; margin-bottom:12px; display:grid; place-items:center; border:1px solid rgba(87,242,176,.18); border-radius:13px; color:var(--pulse-accent); background:rgba(87,242,176,.06); font-size:.85rem; font-weight:850; }
.pulse-empty h2, .pulse-empty h3 { margin:0; font-size:1rem; }
.pulse-empty p { margin:7px 0 14px; max-width:390px; color:var(--pulse-muted); font-size:.73rem; }

.pulse-form-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:12px; }
.pulse-fields { display:grid; gap:15px; }
.pulse-fields.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pulse-field { display:grid; gap:6px; margin-bottom:13px; }
.pulse-field label { color:#9eb0aa; font-size:.69rem; font-weight:750; }
.pulse-field span.field-validation-error { color:#ff9e9e; font-size:.65rem; }
.pulse-field textarea { resize:vertical; }
.pulse-check { display:flex; align-items:center; gap:9px; padding-top:18px; }
.pulse-check input { min-height:auto; width:17px; height:17px; accent-color:var(--pulse-accent); }
.pulse-side-note { align-self:start; }
.pulse-side-note p { color:var(--pulse-muted); font-size:.74rem; line-height:1.65; }
.pulse-callout { padding:12px 13px; color:#9db0aa; background:rgba(87,242,176,.035); border:1px solid rgba(87,242,176,.1); border-radius:10px; font-size:.69rem; line-height:1.55; }
.pulse-form-actions { grid-column:1 / -1; display:flex; justify-content:flex-end; gap:8px; }
.departments-grid, .attendance-grid { grid-template-columns:minmax(0,1.6fr) minmax(290px,.6fr); }
.report-note { margin-top:12px; }

.pulse-settings-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pulse-setting-card { min-height:190px; padding:19px; display:flex; flex-direction:column; border:1px solid var(--pulse-border); border-radius:var(--pulse-radius); background:var(--pulse-panel); }
.pulse-setting-card > span { color:var(--pulse-accent); text-transform:uppercase; letter-spacing:.12em; font-size:.61rem; font-weight:850; }
.pulse-setting-card p { color:var(--pulse-muted); font-size:.72rem; line-height:1.55; }
.pulse-coming { margin-top:auto; width:fit-content; padding-top:10px; color:#61776f; border-top:1px solid var(--pulse-border); font-size:.65rem; }

.pulse-access-denied {
  width:min(700px,100%);
  margin:64px auto 0;
  padding:44px 42px;
  display:grid;
  justify-items:center;
  text-align:center;
}
.pulse-access-denied-mark {
  width:66px;
  height:66px;
  margin-bottom:20px;
  display:grid;
  place-items:center;
  border:1px solid rgba(183,133,75,.24);
  border-radius:20px;
  color:#8c5d30;
  background:linear-gradient(145deg,#f8ead8,#fffaf2);
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.38),0 12px 28px rgba(104,70,37,.08);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.08em;
}
.pulse-access-denied h1 { margin:7px 0 10px; max-width:560px; font-size:clamp(1.8rem,3vw,2.6rem); letter-spacing:-.045em; }
.pulse-access-denied p { margin:0; max-width:540px; color:var(--pulse-muted); font-size:.82rem; line-height:1.7; }
.pulse-access-denied-actions { margin-top:25px; display:flex; justify-content:center; gap:9px; flex-wrap:wrap; }

.pulse-auth-body {
  min-height:100vh;
  color:#342617;
  background:
    radial-gradient(circle at top left, rgba(229, 210, 182, .40), transparent 32%),
    radial-gradient(circle at 85% 18%, rgba(214, 192, 166, .30), transparent 28%),
    linear-gradient(180deg, #fcf8f3 0%, #f7f0e7 52%, #f3eadf 100%);
}
.pulse-auth-shell {
  width:min(1140px, calc(100% - 32px));
  margin:0 auto;
  padding:34px 0 52px;
}
.pulse-auth-brand {
  position:relative;
  width:fit-content;
  margin:0 auto 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 26px;
  border-radius:24px;
  text-decoration:none;
  background:linear-gradient(135deg, #7f6b56 0%, #5f4b39 54%, #493628 100%);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 20px 55px rgba(84, 60, 34, .22);
  overflow:hidden;
}
.pulse-auth-brand::after {
  content:"";
  position:absolute;
  inset:1px;
  border-radius:23px;
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0));
  pointer-events:none;
}
.pulse-auth-brand img {
  position:relative;
  z-index:1;
  width:220px;
  max-width:48vw;
  height:auto;
  display:block;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.16));
}
.pulse-auth-content > .row, .pulse-auth-content > div { --bs-gutter-x:0; }
.pulse-auth-content .col-md-4, .pulse-auth-content .col-md-6 { width:100%; max-width:none; }
.pulse-auth-content h1, .pulse-auth-content h2 { letter-spacing:-.055em; }
.pulse-auth-content .text-danger { color:#b05b4a !important; font-size:.84rem; }
.pulse-auth-content a { color:#9a6c3e; }

.lep-auth-card {
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(300px, 1.02fr) minmax(360px, .98fr);
  min-height:680px;
  border-radius:34px;
  background:rgba(255, 252, 247, .92);
  box-shadow:0 30px 90px rgba(98, 72, 42, .13);
}
.lep-auth-card::before,
.lep-auth-card::after {
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.lep-auth-card::before {
  width:360px;
  height:360px;
  left:-140px;
  top:-140px;
  background:radial-gradient(circle, rgba(229, 212, 188, .55) 0%, rgba(229, 212, 188, 0) 72%);
}
.lep-auth-card::after {
  width:420px;
  height:420px;
  right:-200px;
  bottom:-220px;
  background:radial-gradient(circle, rgba(212, 186, 151, .22) 0%, rgba(212, 186, 151, 0) 74%);
}
.lep-auth-hero,
.lep-auth-panel {
  position:relative;
  z-index:1;
}
.lep-auth-hero {
  padding:52px 48px;
  background:linear-gradient(165deg, #f4e7d7 0%, #efdfcc 54%, #ead9c4 100%);
  overflow:hidden;
}
.lep-auth-hero::before {
  content:"";
  position:absolute;
  inset:0;
  background-image:url("../images/branding/lepommier-logo.webp");
  background-repeat:no-repeat;
  background-position:center 57%;
  background-size:min(440px, 72%);
  opacity:.14;
  filter:grayscale(1) sepia(.16) saturate(.72) brightness(.56);
  pointer-events:none;
}
.lep-auth-hero::after {
  content:"";
  position:absolute;
  inset:22px;
  border-radius:28px;
  border:1px solid rgba(143, 110, 70, .10);
  pointer-events:none;
}
.lep-auth-hero-inner {
  position:relative;
  z-index:1;
  min-height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.lep-auth-eyebrow,
.lep-auth-panel-eyebrow,
.lep-auth-footer-note {
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.lep-auth-eyebrow {
  color:#9b6f42;
}
.lep-auth-hero h1 {
  margin:28px 0 14px;
  font-size:4.35rem;
  line-height:.92;
  color:#2d2115;
}
.lep-auth-hero p {
  max-width:460px;
  margin:0 auto;
  color:#6f5d4a;
  font-size:1.08rem;
  line-height:1.7;
}
.lep-auth-points {
  width:min(100%, 430px);
  margin:42px auto 0;
  display:grid;
  gap:16px;
}
.lep-auth-points article {
  display:grid;
  grid-template-columns:56px minmax(0, 1fr);
  gap:16px;
  align-items:start;
  padding:16px 0;
  border-top:1px solid rgba(126, 95, 60, .10);
}
.lep-auth-points article:first-child {
  border-top:0;
  padding-top:0;
}
.lep-auth-points span {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#9a6c3e;
  background:rgba(255, 249, 241, .82);
  box-shadow:inset 0 0 0 1px rgba(154, 108, 62, .12);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}
.lep-auth-points strong {
  display:block;
  margin-bottom:4px;
  color:#342617;
  font-size:1.06rem;
}
.lep-auth-points small {
  color:#7b6855;
  font-size:.94rem;
  line-height:1.55;
}
.lep-auth-footer-note {
  margin-top:auto;
  padding-top:34px;
  color:#a07c52;
  text-align:center;
}

.lep-auth-panel {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:52px 56px;
  background:linear-gradient(180deg, rgba(255, 251, 246, .96) 0%, rgba(250, 245, 238, .98) 100%);
}
.lep-auth-panel-copy {
  width:min(100%, 430px);
  margin:0 auto 28px;
  text-align:center;
}
.lep-auth-panel-eyebrow {
  color:#b2804d;
}
.lep-auth-panel h2 {
  margin:14px 0 8px;
  color:#2f2216;
  font-size:3.2rem;
}
.lep-auth-panel p {
  margin:0;
  color:#7f6c59;
  font-size:1rem;
}
.lep-auth-form {
  width:min(100%, 430px);
  display:grid;
  gap:18px;
}
.lep-validation-summary {
  margin:0;
  padding:0;
  color:#b05b4a;
  font-size:.9rem;
}
.lep-validation-summary ul {
  margin:0;
  padding-left:18px;
}
.lep-field {
  display:grid;
  gap:8px;
}
.lep-field .form-label {
  margin:0;
  color:#5c4834;
  font-size:.84rem;
  font-weight:700;
}
.lep-field .form-control {
  min-height:60px;
  padding:0 18px;
  border:1px solid rgba(120, 89, 55, .10);
  border-radius:18px;
  color:#2e2216;
  background:#fffdf9;
  box-shadow:0 10px 24px rgba(110, 81, 48, .05);
}
.lep-field .form-control::placeholder {
  color:#baa998;
}
.lep-field .form-control:focus {
  color:#2e2216;
  background:#ffffff;
  border-color:rgba(175, 126, 74, .35);
  box-shadow:0 0 0 .25rem rgba(190, 145, 97, .16), 0 14px 28px rgba(110, 81, 48, .08);
}
.lep-auth-meta-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:2px;
}
.lep-checkbox {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#7c6854;
  font-size:.95rem;
  cursor:pointer;
}
.lep-checkbox .form-check-input {
  width:1.1rem;
  height:1.1rem;
  margin:0;
  border-color:rgba(145, 112, 78, .28);
  box-shadow:none;
}
.lep-checkbox .form-check-input:checked {
  background-color:#b88652;
  border-color:#b88652;
}
.lep-forgot-link {
  color:#996b3f;
  font-size:.94rem;
  font-weight:700;
  text-decoration:none;
}
.lep-forgot-link:hover {
  color:#7c5330;
  text-decoration:underline;
}
.lep-signin-button {
  min-height:58px;
  border:0;
  border-radius:18px;
  color:#fffaf3;
  background:linear-gradient(135deg, #bf8750 0%, #b27942 100%);
  box-shadow:0 18px 34px rgba(177, 121, 66, .24);
  font-size:1rem;
  font-weight:800;
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.lep-signin-button:hover,
.lep-signin-button:focus {
  filter:brightness(1.02);
  transform:translateY(-1px);
  box-shadow:0 22px 38px rgba(177, 121, 66, .26);
}
.lep-auth-assurance {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:#a38f7b;
  font-size:.84rem;
}
.lep-auth-assurance span {
  width:10px;
  height:10px;
  border-radius:50%;
  background:#c89b68;
  box-shadow:0 0 0 5px rgba(200, 155, 104, .14);
}

.pulse-sidebar-backdrop { display:none; }
@media (max-width: 1080px) {
  .pulse-auth-shell { width:min(1040px, calc(100% - 28px)); }
  .lep-auth-card { grid-template-columns:.92fr 1fr; }
  .lep-auth-hero, .lep-auth-panel { padding:44px 38px; }
  .lep-auth-hero h1 { font-size:3.6rem; }
  .lep-auth-panel h2 { font-size:2.8rem; }
  .pulse-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pulse-shortcut-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pulse-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pulse-dashboard-grid, .departments-grid, .attendance-grid { grid-template-columns:1fr; }
  .pulse-form-grid { grid-template-columns:1fr; }
}
@media (max-width: 860px) {
  .pulse-auth-shell { width:min(680px, calc(100% - 24px)); padding:26px 0 36px; }
  .pulse-auth-brand { margin-bottom:20px; padding:14px 20px; }
  .pulse-auth-brand img { width:188px; }
  .lep-auth-card { grid-template-columns:1fr; min-height:0; }
  .lep-auth-hero { padding:34px 28px 26px; }
  .lep-auth-hero h1 { margin-top:18px; font-size:2.9rem; }
  .lep-auth-hero p { font-size:1rem; }
  .lep-auth-points { margin-top:24px; }
  .lep-auth-footer-note { margin-top:18px; padding-top:16px; }
  .lep-auth-panel { padding:34px 28px; }
  .lep-auth-panel h2 { font-size:2.45rem; }
}
@media (max-width: 780px) {
  .pulse-shell { grid-template-columns:1fr; }
  .pulse-sidebar { position:fixed; left:0; transform:translateX(-102%); width:248px; transition:transform .2s ease; box-shadow:20px 0 60px rgba(0,0,0,.4); }
  .pulse-nav-open .pulse-sidebar { transform:translateX(0); }
  .pulse-sidebar-backdrop { position:fixed; inset:0; z-index:45; background:rgba(0,0,0,.55); backdrop-filter:blur(3px); }
  .pulse-nav-open .pulse-sidebar-backdrop { display:block; }
  .pulse-menu-button { display:grid; place-items:center; }
  .pulse-topbar { height:66px; padding:0 16px; gap:10px; }
  .pulse-top-title { margin-right:auto; }
  .pulse-user-copy, .pulse-logout { display:none; }
  .pulse-content { padding:22px 16px 45px; }
  .pulse-hero, .pulse-page-head { align-items:flex-start; flex-direction:column; }
  .pulse-hero { min-height:0; padding:21px; }
  .pulse-hero h1 { font-size:2rem; }
  .pulse-head-note { text-align:left; }
  .pulse-fields.two { grid-template-columns:1fr; }
  .pulse-settings-grid { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
    .pulse-auth-shell { width:calc(100% - 18px); }
  .pulse-auth-brand { max-width:100%; padding:12px 16px; border-radius:20px; }
  .pulse-auth-brand::after { border-radius:19px; }
  .pulse-auth-brand img { width:168px; max-width:64vw; }
  .lep-auth-card { border-radius:26px; }
  .lep-auth-hero, .lep-auth-panel { padding:28px 20px; }
  .lep-auth-hero::after { inset:14px; border-radius:20px; }
  .lep-auth-hero h1 { font-size:2.4rem; }
  .lep-auth-points article { grid-template-columns:44px minmax(0,1fr); gap:12px; }
  .lep-auth-points span { width:36px; height:36px; border-radius:12px; }
  .lep-auth-panel h2 { font-size:2.1rem; }
  .lep-auth-meta-row { align-items:flex-start; flex-direction:column; }
  .lep-field .form-control, .lep-signin-button { min-height:54px; border-radius:16px; }
}
@media (max-width: 520px) {
  .pulse-stat-grid, .pulse-stat-grid.three, .pulse-shortcut-grid { grid-template-columns:1fr; }
  .pulse-stat-card { min-height:105px; }
  .pulse-person-row { grid-template-columns:34px minmax(0,1fr) auto; }
  .pulse-person-row time { display:none; }
  .pulse-filterbar > * { flex:1 1 100%; width:100%; }
  .pulse-filterbar .btn { width:100%; }
}

/* Rota planning */
.rota-page-head { margin-bottom:18px; }
.rota-head-actions, .rota-publish-zone, .rota-week-nav { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.rota-alert { margin-bottom:12px; padding:13px 15px; display:flex; gap:5px; flex-direction:column; border-radius:12px; font-size:.76rem; }
.rota-alert strong { font-size:.8rem; }
.rota-alert-danger { color:#ffd3d3; background:rgba(255,133,133,.08); border:1px solid rgba(255,133,133,.19); }
.rota-toolbar { margin:18px 0 10px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 16px; }
.rota-department-filter { margin:0 0 12px; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:18px; }
.rota-department-filter-copy { min-width:190px; display:grid; gap:2px; }
.rota-department-filter-copy > strong { color:var(--pulse-text); font-size:.82rem; letter-spacing:-.015em; }
.rota-department-filter-copy > small { color:var(--pulse-muted); font-size:.58rem; line-height:1.4; }
.rota-department-options { min-width:0; display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
.rota-department-pill { min-height:32px; display:inline-flex; align-items:center; justify-content:center; padding:6px 11px; border:1px solid var(--pulse-border); border-radius:999px; color:var(--pulse-muted); background:rgba(255,255,255,.025); font-size:.6rem; font-weight:800; text-decoration:none; white-space:nowrap; transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease; }
.rota-department-pill:hover { color:var(--pulse-text); border-color:var(--pulse-border-strong); background:rgba(255,255,255,.05); transform:translateY(-1px); }
.rota-department-pill.active { color:var(--pulse-text); border-color:rgba(201,164,109,.38); background:rgba(201,164,109,.13); box-shadow:inset 0 0 0 1px rgba(255,255,255,.025); }
.rota-week-nav > div { min-width:205px; display:grid; line-height:1.2; text-align:center; }
.rota-week-nav > div span { color:var(--pulse-muted); font-size:.62rem; text-transform:uppercase; letter-spacing:.1em; }
.rota-week-nav > div strong { margin-top:4px; font-size:.85rem; }
.rota-nav-button { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--pulse-border); border-radius:9px; color:var(--pulse-text); background:rgba(255,255,255,.025); text-decoration:none; font-size:1.35rem; line-height:1; }
.rota-nav-button:hover { color:var(--pulse-accent); border-color:var(--pulse-border-strong); }
.rota-publication-state { margin-right:5px; display:grid; justify-items:end; gap:4px; }
.rota-publication-state small { color:var(--pulse-dim); font-size:.61rem; }
.rota-stat-grid { margin-bottom:12px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.rota-stat-grid article { min-height:94px; padding:15px 16px; display:grid; align-content:center; border:1px solid var(--pulse-border); border-radius:14px; background:var(--pulse-panel); }
.rota-stat-grid article.attention { border-color:rgba(255,201,107,.18); background:linear-gradient(145deg,rgba(65,49,22,.34),var(--pulse-panel)); }
.rota-stat-grid article.danger { border-color:rgba(255,133,133,.2); background:linear-gradient(145deg,rgba(67,30,30,.34),var(--pulse-panel)); }
.rota-stat-grid span { color:var(--pulse-muted); font-size:.64rem; font-weight:750; }
.rota-stat-grid strong { margin-top:4px; font-size:1.45rem; letter-spacing:-.04em; }
.rota-stat-grid small { margin-top:2px; color:var(--pulse-dim); font-size:.59rem; }

.rota-live-attendance { margin-bottom:12px; padding:16px 17px; overflow:hidden; position:relative; }
.rota-live-attendance:before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#58a477; opacity:.95; }
.rota-live-attendance.is-paused:before { background:#c49656; }
.rota-live-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:13px; }
.rota-live-heading h2 { margin:2px 0 0; font-size:1rem; letter-spacing:-.025em; }
.rota-live-heading p { max-width:760px; margin:5px 0 0; color:var(--pulse-muted); font-size:.62rem; line-height:1.5; }
.rota-live-state { display:inline-flex; align-items:center; gap:7px; flex:0 0 auto; min-height:28px; padding:5px 10px; border:1px solid rgba(76,143,102,.20); border-radius:999px; color:#3e7654; background:rgba(87,164,118,.09); font-size:.56rem; font-weight:850; letter-spacing:.035em; text-transform:uppercase; white-space:nowrap; }
.rota-live-state i { width:7px; height:7px; border-radius:50%; background:#58a477; box-shadow:0 0 0 4px rgba(88,164,119,.10); }
.rota-live-attendance.is-paused .rota-live-state { color:#8f642d; border-color:rgba(196,150,86,.23); background:rgba(196,150,86,.09); }
.rota-live-attendance.is-paused .rota-live-state i { background:#c49656; box-shadow:0 0 0 4px rgba(196,150,86,.10); }
.rota-live-metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; }
.rota-live-metrics > div { min-width:0; padding:10px 11px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; column-gap:10px; align-items:center; border:1px solid rgba(93,65,39,.09); border-radius:11px; background:rgba(255,255,255,.38); }
.rota-live-metrics span { color:var(--pulse-muted); font-size:.57rem; font-weight:800; }
.rota-live-metrics strong { grid-column:2; grid-row:1 / span 2; font-size:1.15rem; letter-spacing:-.04em; }
.rota-live-metrics small { color:var(--pulse-dim); font-size:.52rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rota-live-metrics .working strong { color:#3f8059; }
.rota-live-metrics .break strong { color:#7754a7; }
.rota-live-metrics .missing strong, .rota-live-metrics .missed strong { color:#ad4f48; }
.rota-live-metrics .later strong { color:#8b6d44; }
.rota-live-metrics .unscheduled { border-color:rgba(188,111,53,.18); background:#fff7ee; }
.rota-live-metrics .unscheduled strong { color:#b6662f; }
.rota-unscheduled-live { margin-top:10px; overflow:hidden; border:1px solid rgba(188,111,53,.22); border-radius:12px; background:linear-gradient(145deg,#fffaf3,#fff4e7); }
.rota-unscheduled-live.is-hidden { display:none; }
.rota-unscheduled-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 13px; border-bottom:1px solid rgba(188,111,53,.14); }
.rota-unscheduled-heading > div { min-width:0; display:grid; gap:2px; }
.rota-unscheduled-kicker { color:#a15d2f; font-size:.52rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.rota-unscheduled-heading strong { color:#714125; font-size:.74rem; }
.rota-unscheduled-heading small { color:#9b755e; font-size:.57rem; line-height:1.4; }
.rota-unscheduled-badge { display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; min-height:25px; padding:4px 8px; border:1px solid rgba(188,111,53,.18); border-radius:999px; color:#945329; background:rgba(255,255,255,.64); font-size:.54rem; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.rota-unscheduled-badge b { font-size:.68rem; }
.rota-unscheduled-list { display:grid; }
.rota-unscheduled-row { min-width:0; display:grid; grid-template-columns:9px minmax(0,1fr) auto; gap:9px; align-items:center; padding:10px 13px; border-top:1px solid rgba(188,111,53,.10); }
.rota-unscheduled-row:first-child { border-top:0; }
.rota-unscheduled-dot { width:8px; height:8px; border-radius:50%; background:#d17739; box-shadow:0 0 0 4px rgba(209,119,57,.11); }
.rota-unscheduled-copy { min-width:0; display:grid; gap:2px; }
.rota-unscheduled-copy strong { overflow:hidden; color:#5c3b28; font-size:.68rem; text-overflow:ellipsis; white-space:nowrap; }
.rota-unscheduled-copy small { overflow:hidden; color:#92715e; font-size:.56rem; text-overflow:ellipsis; white-space:nowrap; }
.rota-unscheduled-state { min-height:24px; display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; font-size:.53rem; font-weight:850; white-space:nowrap; }
.rota-unscheduled-state.working { color:#447455; background:#e9f3ea; }
.rota-unscheduled-state.break { color:#6c4d91; background:#f0e9f7; }
.rota-template-panel { margin-bottom:12px; padding:0; overflow:hidden; }
.rota-template-heading { padding:15px 16px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--pulse-border); }
.rota-template-heading > div { min-width:0; }
.rota-template-heading h2 { margin:3px 0 0; font-size:1rem; letter-spacing:-.02em; }
.rota-template-heading p { margin:4px 0 0; color:var(--pulse-muted); font-size:.64rem; }
.rota-template-list { padding:10px; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:8px; }
.rota-template-card { min-width:0; padding:10px; display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:9px; align-items:center; border:1px solid var(--pulse-border); border-radius:11px; background:rgba(255,255,255,.022); transition:border-color .15s ease,background .15s ease,transform .15s ease,opacity .15s ease; }
.rota-template-card:hover { border-color:var(--pulse-border-strong); background:rgba(255,255,255,.04); }
.rota-template-card.dragging { opacity:.45; transform:scale(.985); }
.rota-template-pointer-ghost { position:fixed !important; z-index:2147483000; margin:0 !important; pointer-events:none !important; opacity:.96; transform:rotate(.35deg) scale(1.01); box-shadow:0 22px 52px rgba(44,31,20,.22) !important; }
body.rota-template-pointer-dragging, body.rota-template-pointer-dragging * { cursor:grabbing !important; }
.rota-template-drag-handle, .rota-shift-drag-handle { display:grid; place-items:center; color:var(--pulse-dim); border:1px solid var(--pulse-border); background:rgba(255,255,255,.025); cursor:grab; user-select:none; touch-action:none; }
.rota-template-drag-handle { width:28px; height:42px; border-radius:8px; font-size:.72rem; letter-spacing:-.08em; }
.rota-template-drag-handle:active, .rota-shift-drag-handle:active { cursor:grabbing; }
.rota-template-copy { min-width:0; display:grid; gap:2px; }
.rota-template-copy strong { overflow:hidden; color:var(--pulse-text); font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.rota-template-copy span { color:var(--pulse-accent); font-size:.6rem; font-weight:800; }
.rota-template-copy small { overflow:hidden; color:var(--pulse-muted); font-size:.56rem; text-overflow:ellipsis; white-space:nowrap; }
.rota-template-actions { display:grid; justify-items:end; gap:4px; }
.rota-template-actions form { margin:0; }
.rota-template-actions .pulse-link-button { font-size:.58rem; }
.rota-template-remove { color:var(--pulse-danger) !important; }
.rota-template-empty { min-height:72px; padding:13px 16px; display:flex; align-items:center; gap:11px; color:var(--pulse-muted); }
.rota-template-empty > span { width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto; border:1px dashed var(--pulse-border-strong); border-radius:10px; color:var(--pulse-accent); }
.rota-template-empty > div { display:grid; gap:2px; }
.rota-template-empty strong { color:var(--pulse-text); font-size:.7rem; }
.rota-template-empty small { font-size:.6rem; }
.rota-drag-status { position:fixed; right:22px; bottom:22px; z-index:1200; max-width:min(360px,calc(100vw - 30px)); padding:10px 13px; border:1px solid var(--pulse-border-strong); border-radius:10px; color:var(--pulse-text); background:var(--pulse-panel-2); box-shadow:var(--pulse-shadow); font-size:.68rem; font-weight:750; }
.rota-drag-status.success { color:#3d7658; border-color:rgba(77,154,114,.24); background:#edf6f0; }
.rota-drag-status.error { color:#9b4646; border-color:rgba(185,81,81,.24); background:#fff0ee; }
#rotaAjaxSurface { transition:opacity .16s ease, filter .16s ease; }
#rotaAjaxSurface.is-refreshing { opacity:.58; filter:saturate(.82); pointer-events:none; }
#rotaAjaxSurface.is-refreshing .rota-toolbar,
#rotaAjaxSurface.is-refreshing .rota-board,
#rotaAjaxSurface.is-refreshing .rota-template-panel { cursor:progress; }
.rota-template-drop-pending { min-height:68px; padding:10px 12px; display:grid; align-content:center; gap:3px; border:1px dashed var(--pulse-border-strong); border-radius:11px; color:var(--pulse-muted); background:rgba(255,255,255,.03); }
.rota-template-drop-pending strong { color:var(--pulse-text); font-size:.67rem; }
.rota-template-drop-pending span { font-size:.58rem; }
.rota-board { display:grid; grid-template-columns:repeat(7,minmax(140px,1fr)); gap:8px; align-items:start; }
.rota-day { min-height:410px; overflow:hidden; border:1px solid var(--pulse-border); border-radius:15px; background:rgba(13,26,22,.72); }
.rota-day.today { border-color:rgba(87,242,176,.40); box-shadow:inset 0 0 0 2px rgba(87,242,176,.10),0 16px 34px rgba(0,0,0,.12); }
.rota-day > header { min-height:61px; padding:11px 12px; display:flex; justify-content:space-between; align-items:center; gap:10px; border-bottom:1px solid var(--pulse-border); background:rgba(255,255,255,.018); }
.rota-day-date { display:flex; align-items:baseline; gap:7px; min-width:0; }
.rota-day-status { display:flex; align-items:flex-end; flex-direction:column; gap:4px; flex:0 0 auto; }
.rota-day > header .rota-day-date > span { color:var(--pulse-muted); text-transform:uppercase; font-size:.61rem; font-weight:850; letter-spacing:.1em; }
.rota-day > header strong { font-size:1.3rem; letter-spacing:-.04em; }
.rota-day > header small { color:var(--pulse-dim); font-size:.61rem; }
.rota-today-marker { display:inline-flex; align-items:center; min-height:20px; padding:3px 7px; border-radius:999px; color:#062417; background:var(--pulse-accent); font-size:.52rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 4px 12px rgba(87,242,176,.18); }
.rota-day.today > header { background:linear-gradient(135deg,rgba(87,242,176,.16),rgba(87,242,176,.055)); border-bottom-color:rgba(87,242,176,.24); }
.rota-day.today > header .rota-day-date > span, .rota-day.today > header strong { color:#eafff7; }
.rota-day.today > header small { color:#a8cdbf; }
.rota-day-leave { margin:8px 8px 0; padding:8px 10px; color:#ffd792; border:1px solid rgba(255,201,107,.12); border-radius:10px; background:rgba(255,201,107,.055); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.59rem; }
.rota-day-leave span { margin-right:5px; font-weight:850; text-transform:uppercase; letter-spacing:.06em; }
.rota-shift-list { padding:8px; display:grid; gap:8px; }
.rota-shift { position:relative; overflow:hidden; border:1px solid var(--shift-border, rgba(87,242,176,.13)); border-radius:12px; background:linear-gradient(180deg,#fffdfb,var(--shift-surface, rgba(87,242,176,.075))); box-shadow:0 12px 24px rgba(0,0,0,.08); }
.rota-shift:before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--shift-accent, var(--pulse-accent)); }
.rota-shift.open { border-color:var(--shift-border, rgba(255,201,107,.22)); background:linear-gradient(180deg,#fffaf5,var(--shift-surface, rgba(255,201,107,.085))); }
.rota-shift-edit { width:100%; padding:12px 12px 12px 14px; display:grid; gap:8px; color:var(--pulse-text); border:0; background:transparent; text-align:left; cursor:pointer; }
.rota-shift-edit:hover { background:rgba(255,255,255,.18); }
.rota-shift-head { display:flex; align-items:center; gap:7px; padding-right:18px; min-height:21px; }
.rota-shift-head.time-only { justify-content:flex-start; }
.rota-shift-drag-handle { width:20px; height:20px; flex:0 0 auto; border-radius:6px; font-size:.55rem; letter-spacing:-.1em; opacity:.72; }
.rota-shift:hover .rota-shift-drag-handle { color:var(--shift-accent,var(--pulse-accent)); border-color:var(--shift-border,var(--pulse-border-strong)); opacity:1; }
.rota-shift.dragging { opacity:.42; transform:scale(.985); }
.rota-day { transition:border-color .15s ease,box-shadow .15s ease,background .15s ease; }
.rota-day.drag-over { border-color:var(--pulse-accent) !important; background:rgba(183,133,75,.07); box-shadow:inset 0 0 0 2px rgba(183,133,75,.18),0 14px 34px rgba(82,57,34,.08); }
.rota-day.drag-over .rota-add-day { color:var(--pulse-accent); border-color:var(--pulse-border-strong); background:rgba(183,133,75,.06); }
.rota-shift-badge { display:inline-flex; align-items:center; min-height:21px; padding:3px 8px; border:1px solid var(--shift-border, var(--pulse-border)); border-radius:999px; font-size:.53rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; color:var(--shift-avatar-ink, var(--pulse-text)); background:var(--shift-avatar-bg, rgba(255,255,255,.75)); }
.rota-shift-time { margin-left:auto; color:var(--shift-accent, var(--pulse-accent)); font-size:.67rem; font-weight:900; letter-spacing:.01em; text-align:right; white-space:nowrap; }
.rota-shift-name-row { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:center; }
.rota-shift-avatar { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--shift-border, rgba(87,242,176,.18)); border-radius:11px; color:var(--shift-avatar-ink, #2f3b36); background:var(--shift-avatar-bg, rgba(87,242,176,.10)); font-size:.64rem; font-weight:850; }
.rota-shift-person-copy { min-width:0; display:grid; gap:3px; }
.rota-shift-edit strong { padding-right:17px; font-size:.78rem; line-height:1.22; }
.rota-shift-meta { color:var(--pulse-muted); font-size:.60rem; line-height:1.4; }
.rota-shift-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:7px; border-top:1px solid rgba(93,65,39,.08); color:var(--pulse-dim); font-size:.58rem; }
.rota-shift-foot b { color:var(--shift-accent, #9eafa9); font-size:.60rem; }
.rota-shift-foot span:last-child { text-align:right; }
.rota-shift-note { display:block; margin-top:-1px; padding-top:7px; border-top:1px dashed rgba(93,65,39,.10); color:var(--pulse-dim); font-size:.56rem; line-height:1.45; }

.rota-attendance-status { min-width:0; padding:7px 8px; display:grid; grid-template-columns:8px minmax(0,1fr); gap:7px; align-items:center; border:1px solid rgba(93,65,39,.10); border-radius:9px; background:rgba(255,255,255,.55); }
.rota-attendance-status.is-hidden { display:none; }
.rota-attendance-dot { width:7px; height:7px; border-radius:50%; background:#8f887f; box-shadow:0 0 0 3px rgba(143,136,127,.10); }
.rota-attendance-copy { min-width:0; display:grid; gap:1px; }
.rota-attendance-copy strong { padding:0 !important; font-size:.59rem !important; line-height:1.25; letter-spacing:.005em; }
.rota-attendance-copy small { color:#87776a; font-size:.52rem; line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rota-shift[data-attendance-code="working"] .rota-attendance-status,
.rota-shift[data-attendance-code="completed"] .rota-attendance-status { border-color:rgba(67,137,91,.17); background:#f0f8f2; }
.rota-shift[data-attendance-code="working"] .rota-attendance-dot,
.rota-shift[data-attendance-code="completed"] .rota-attendance-dot { background:#4f9969; box-shadow:0 0 0 3px rgba(79,153,105,.12); }
.rota-shift[data-attendance-code="working"] .rota-attendance-copy strong,
.rota-shift[data-attendance-code="completed"] .rota-attendance-copy strong { color:#39724f; }
.rota-shift[data-attendance-code="break"] .rota-attendance-status { border-color:rgba(116,80,164,.16); background:#f6f1fb; }
.rota-shift[data-attendance-code="break"] .rota-attendance-dot { background:#8058ae; box-shadow:0 0 0 3px rgba(128,88,174,.11); }
.rota-shift[data-attendance-code="break"] .rota-attendance-copy strong { color:#6c4698; }
.rota-shift[data-attendance-code="due"] .rota-attendance-status,
.rota-shift[data-attendance-code="overrun"] .rota-attendance-status,
.rota-shift[data-attendance-code="early"] .rota-attendance-status { border-color:rgba(190,132,58,.20); background:#fff7e8; }
.rota-shift[data-attendance-code="due"] .rota-attendance-dot,
.rota-shift[data-attendance-code="overrun"] .rota-attendance-dot,
.rota-shift[data-attendance-code="early"] .rota-attendance-dot { background:#bf8137; box-shadow:0 0 0 3px rgba(191,129,55,.11); }
.rota-shift[data-attendance-code="due"] .rota-attendance-copy strong,
.rota-shift[data-attendance-code="overrun"] .rota-attendance-copy strong,
.rota-shift[data-attendance-code="early"] .rota-attendance-copy strong { color:#9b6425; }
.rota-shift[data-attendance-code="missing"] .rota-attendance-status,
.rota-shift[data-attendance-code="missed"] .rota-attendance-status { border-color:rgba(185,72,68,.25); background:#fff0ef; }
.rota-shift[data-attendance-code="missing"] .rota-attendance-dot,
.rota-shift[data-attendance-code="missed"] .rota-attendance-dot { background:#c14f4b; box-shadow:0 0 0 3px rgba(193,79,75,.12); }
.rota-shift[data-attendance-code="missing"] .rota-attendance-copy strong,
.rota-shift[data-attendance-code="missed"] .rota-attendance-copy strong { color:#a33f3b; }
.rota-shift[data-attendance-code="missing"], .rota-shift[data-attendance-code="missed"] { box-shadow:0 12px 28px rgba(82,57,34,.055), inset 0 0 0 1px rgba(193,79,75,.17); }
.rota-shift[data-attendance-late="true"] .rota-attendance-copy small { color:#a44b43; font-weight:750; }
.rota-shift-delete { position:absolute; right:5px; top:5px; }
.rota-shift-delete button { width:22px; height:22px; padding:0; border:0; border-radius:6px; color:#769087; background:rgba(0,0,0,.2); line-height:1; }
.rota-shift-delete button:hover { color:#ffd2d2; background:rgba(255,133,133,.12); }
.rota-add-day { width:100%; min-height:34px; display:flex; justify-content:center; align-items:center; gap:6px; color:#6e837c; border:1px dashed rgba(255,255,255,.09); border-radius:9px; background:transparent; font-size:.61rem; }
.rota-add-day:hover { color:var(--pulse-accent); border-color:rgba(87,242,176,.2); background:rgba(87,242,176,.025); }
.rota-add-day span { font-size:.9rem; }
.rota-lower-grid { margin-top:12px; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(310px,.6fr); gap:12px; }
.rota-clear-state { min-height:92px; display:flex; align-items:center; gap:12px; color:#b9cdc6; }
.rota-clear-state.compact { min-height:70px; }
.rota-clear-state > span { width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto; color:var(--pulse-accent); border:1px solid rgba(87,242,176,.16); border-radius:10px; background:rgba(87,242,176,.06); }
.rota-clear-state > div { display:grid; }
.rota-clear-state strong { font-size:.76rem; }
.rota-clear-state small { margin-top:3px; color:var(--pulse-muted); font-size:.65rem; }
.rota-issue-list, .rota-leave-list { display:grid; }
.rota-issue { padding:10px 0; display:flex; gap:10px; border-top:1px solid var(--pulse-border); }
.rota-issue:first-child { border-top:0; }
.rota-issue > span { width:25px; height:25px; display:grid; place-items:center; flex:0 0 auto; border-radius:8px; font-size:.66rem; font-weight:850; }
.rota-issue > div { min-width:0; }
.rota-issue strong { color:var(--pulse-muted); text-transform:uppercase; letter-spacing:.08em; font-size:.56rem; }
.rota-issue p { margin:2px 0 0; color:#b4c3be; font-size:.68rem; }
.rota-issue.notice > span { color:#afc1bb; background:rgba(255,255,255,.05); }
.rota-issue.warning > span { color:var(--pulse-warning); background:rgba(255,201,107,.08); }
.rota-issue.critical > span { color:var(--pulse-danger); background:rgba(255,133,133,.09); }
.rota-leave-row { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--pulse-border); }
.rota-leave-row:first-child { border-top:0; }
.rota-leave-row > div { display:grid; }
.rota-leave-row strong { font-size:.72rem; }
.rota-leave-row span { color:var(--pulse-muted); font-size:.61rem; }
.rota-hours-panel { margin-top:12px; }
.rota-table-heading { padding:17px 19px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; border-bottom:1px solid var(--pulse-border); }
.rota-table-heading h2 { margin:4px 0 0; font-size:1.04rem; }
.rota-table-heading > small { color:var(--pulse-dim); font-size:.62rem; }
.pulse-modal .modal-content { color:var(--pulse-text); border:1px solid rgba(255,255,255,.1); border-radius:18px; background:#0d1916; box-shadow:0 35px 90px rgba(0,0,0,.55); }
.pulse-modal .modal-header, .pulse-modal .modal-footer { padding:16px 19px; border-color:var(--pulse-border); }
.pulse-modal .modal-header > div { display:grid; }
.pulse-modal .modal-title { margin-top:4px; font-size:1.08rem; }
.pulse-modal .modal-body { padding:19px; }
.pulse-modal .pulse-field small { color:var(--pulse-dim); font-size:.6rem; }
.rota-calculated { min-height:39px; padding:9px 11px; color:var(--pulse-accent); border:1px solid var(--pulse-border); border-radius:9px; background:rgba(87,242,176,.035); font-size:.76rem; font-weight:800; }

@media (max-width: 1280px) {
  .rota-live-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .rota-board { grid-template-columns:repeat(4,minmax(160px,1fr)); }
}
@media (max-width: 900px) {
  .rota-template-heading { align-items:flex-start; flex-direction:column; }
  .rota-template-heading .btn { width:100%; }
  .rota-template-list { display:flex; overflow-x:auto; scroll-snap-type:x proximity; }
  .rota-template-card { min-width:min(310px,86vw); scroll-snap-align:start; }
  .rota-toolbar { align-items:flex-start; flex-direction:column; }
  .rota-department-filter { align-items:flex-start; flex-direction:column; gap:10px; }
  .rota-department-filter-copy { min-width:0; }
  .rota-department-options { width:100%; justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding-bottom:2px; scrollbar-width:thin; }
  .rota-department-pill { flex:0 0 auto; }
  .rota-publish-zone { width:100%; }
  .rota-publication-state { margin-right:auto; align-items:start; justify-items:start; }
  .rota-board { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rota-lower-grid { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .rota-head-actions { width:100%; }
  .rota-head-actions .btn { flex:1; }
  .rota-week-nav { width:100%; display:grid; grid-template-columns:34px minmax(0,1fr) 34px; }
  .rota-week-nav > div { min-width:0; }
  .rota-today { grid-column:1 / -1; }
  .rota-publish-zone { display:grid; grid-template-columns:1fr; }
  .rota-publication-state { margin-bottom:3px; }
  .rota-publish-zone form, .rota-publish-zone .btn { width:100%; }
  .rota-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rota-live-heading { flex-direction:column; gap:9px; }
  .rota-live-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rota-unscheduled-heading { align-items:flex-start; flex-direction:column; gap:7px; }
  .rota-unscheduled-row { grid-template-columns:9px minmax(0,1fr); }
  .rota-unscheduled-state { grid-column:2; justify-self:start; }
  .rota-board { grid-template-columns:1fr; }
  .rota-day { min-height:0; }
}

@media print {
  .pulse-sidebar, .pulse-topbar, .rota-head-actions, .rota-publish-zone form, .rota-add-day, .rota-shift-delete, .rota-lower-grid, .rota-template-panel, .rota-live-attendance, .rota-attendance-status, .rota-drag-status, .rota-shift-drag-handle, .pulse-toast, .rota-alert { display:none !important; }
  body, .pulse-shell, .pulse-main { color:#111 !important; background:#fff !important; }
  .pulse-shell { display:block; }
  .pulse-content { width:100%; padding:10px; }
  .rota-page-head { margin:0 0 10px; }
  .rota-page-head h1 { color:#111; }
  .rota-page-head p, .rota-page-head .pulse-page-eyebrow { color:#555; }
  .rota-toolbar, .rota-stat-grid article, .rota-day, .rota-shift, .rota-hours-panel { color:#111; border-color:#bbb; background:#fff; box-shadow:none; }
  .rota-week-nav a, .rota-today { display:none; }
  .rota-week-nav > div { text-align:left; }
  .rota-today-marker { color:#111; background:#fff; border:1px solid #777; box-shadow:none; }
  .rota-board { grid-template-columns:repeat(7,1fr); gap:4px; }
  .rota-day { min-height:300px; break-inside:avoid; }
  .rota-shift-edit, .rota-day > header strong { color:#111; }
  .rota-shift-time, .rota-shift-meta, .rota-shift-foot, .rota-day > header span, .rota-day > header small { color:#444 !important; }
  .pulse-table, .pulse-table td, .pulse-table th { color:#111; }
}

/* Fingerprint enrolment workflow */
.pulse-profile-form { min-width:0; margin:0; }
.pulse-profile-form > .pulse-panel { height:100%; }
.pulse-enrolment-start-form { display:grid; gap:12px; }
.pulse-enrolment-panel { display:grid; gap:14px; }
.pulse-enrolment-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.pulse-enrolment-heading h2 { margin:4px 0 0; }
.pulse-enrolment-heading .pulse-status { margin-top:1px; }
.pulse-enrolment-credential { display:grid; gap:6px; padding:11px 12px; border:1px solid var(--pulse-border); border-radius:10px; background:rgba(0,0,0,.14); }
.pulse-enrolment-credential > span { color:var(--pulse-dim); font-size:.61rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.pulse-enrolment-credential code { overflow:hidden; color:#c7d9d3; font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }
.pulse-enrolment-request { display:grid; gap:9px; padding:13px; border:1px solid var(--pulse-border); border-radius:12px; background:rgba(255,255,255,.018); }
.pulse-enrolment-request.is-active { border-color:rgba(255,201,107,.16); background:linear-gradient(145deg,rgba(255,201,107,.035),rgba(87,242,176,.025)); }
.pulse-enrolment-request-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.pulse-enrolment-request-head > div { display:grid; gap:2px; }
.pulse-enrolment-request-head > div > span { color:var(--pulse-dim); font-size:.6rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.pulse-enrolment-request-head strong { font-size:.78rem; }
.pulse-enrolment-request > small { color:var(--pulse-muted); font-size:.66rem; }
.pulse-enrolment-times { display:flex; justify-content:space-between; gap:8px; color:var(--pulse-dim); font-size:.63rem; }
.pulse-enrolment-result { margin:0 !important; padding-top:8px; border-top:1px solid var(--pulse-border); }
.pulse-enrolment-live { display:flex; align-items:center; gap:8px; color:#d4bf8f; font-size:.68rem; }
.pulse-enrolment-live i { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:var(--pulse-warning); box-shadow:0 0 0 0 rgba(255,201,107,.28); animation:pulse-enrolment-ping 1.8s infinite; }
.pulse-enrolment-terminal { margin:0; }
.pulse-callout a { color:var(--pulse-accent); text-decoration:none; }
@keyframes pulse-enrolment-ping { 0%{box-shadow:0 0 0 0 rgba(255,201,107,.25)} 70%{box-shadow:0 0 0 8px rgba(255,201,107,0)} 100%{box-shadow:0 0 0 0 rgba(255,201,107,0)} }

/* Staff messages & automatic moments */
.pulse-message-page-head { align-items:center; margin-bottom:18px; }
.pulse-message-page-head h1 { max-width:820px; }
.pulse-message-page-head p { max-width:760px; }
.pulse-message-head-note { display:flex; align-items:center; gap:9px; padding:10px 12px; border:1px solid rgba(87,242,176,.12); border-radius:11px; color:#9cb2ab; background:rgba(87,242,176,.025); font-size:.68rem; font-weight:650; white-space:nowrap; }

.pulse-message-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:12px; }
.pulse-message-stat { position:relative; min-height:92px; padding:15px 16px; overflow:hidden; border:1px solid var(--pulse-border); border-radius:14px; background:linear-gradient(145deg,rgba(255,255,255,.028),rgba(255,255,255,.012)); }
.pulse-message-stat > span { display:block; color:#70857e; font-size:.61rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.pulse-message-stat > strong { display:block; margin-top:5px; color:#edf6f2; font-size:1.55rem; line-height:1; letter-spacing:-.04em; }
.pulse-message-stat > small { display:block; margin-top:5px; color:#61756f; font-size:.61rem; }
.pulse-message-stat-accent { border-color:rgba(87,242,176,.14); background:radial-gradient(circle at 100% 0%,rgba(87,242,176,.09),transparent 46%),rgba(87,242,176,.018); }
.pulse-message-stat-accent > strong { color:var(--pulse-accent); }

.pulse-message-workspace { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr); gap:12px; align-items:start; margin-bottom:12px; }
.pulse-message-compose-v2 { padding:0; overflow:hidden; }
.pulse-message-compose-head { margin:0; padding:18px 19px 16px; border-bottom:1px solid var(--pulse-border); }
.pulse-message-draft-chip { padding:5px 8px; border:1px solid rgba(87,242,176,.11); border-radius:999px; color:#8faaa1; background:rgba(87,242,176,.025); font-size:.59rem; font-weight:750; }
.pulse-message-form { display:grid; gap:0; padding:18px 19px 19px; }
.pulse-message-validation:empty { display:none; }
.pulse-message-validation { margin-bottom:12px; padding:10px 12px; border:1px solid rgba(255,133,133,.16); border-radius:10px; color:#ffb8b8; background:rgba(255,133,133,.045); font-size:.67rem; }
.pulse-message-validation ul { margin:0; padding-left:17px; }
.pulse-message-primary-fields { display:grid; gap:12px; }
.pulse-message-primary-fields .pulse-field { margin:0; }
.pulse-message-primary-fields input { min-height:44px; }
.pulse-message-primary-fields textarea { min-height:126px; resize:vertical; }
.pulse-message-label-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pulse-message-label-row > span { color:#526760; font-size:.58rem; font-weight:700; }
.pulse-message-section-title { display:flex; align-items:baseline; gap:9px; margin:20px 0 9px; padding-top:16px; border-top:1px solid var(--pulse-border); }
.pulse-message-section-title > span { color:#d8e4df; font-size:.72rem; font-weight:800; }
.pulse-message-section-title > small { color:#61766f; font-size:.61rem; }
.pulse-message-delivery-grid, .pulse-message-timing-grid { margin:0; gap:10px; }
.pulse-message-delivery-grid .pulse-field, .pulse-message-timing-grid .pulse-field { margin:0; }
.pulse-field-help { display:block; margin-top:6px; color:#526760; font-size:.58rem; line-height:1.45; }
.pulse-message-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:16px; }
.pulse-message-option { position:relative; display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:start; min-height:68px; padding:11px 12px; border:1px solid var(--pulse-border); border-radius:11px; background:rgba(255,255,255,.015); cursor:pointer; }
.pulse-message-option:hover { border-color:rgba(87,242,176,.13); background:rgba(87,242,176,.018); }
.pulse-message-option > input { position:absolute; opacity:0; pointer-events:none; }
.pulse-message-option-control { position:relative; width:32px; height:18px; margin-top:2px; border:1px solid rgba(255,255,255,.10); border-radius:999px; background:#0a1512; transition:.18s ease; }
.pulse-message-option-control:after { content:""; position:absolute; top:3px; left:3px; width:10px; height:10px; border-radius:50%; background:#60746e; transition:.18s ease; }
.pulse-message-option > input:checked + .pulse-message-option-control { border-color:rgba(87,242,176,.25); background:rgba(87,242,176,.13); }
.pulse-message-option > input:checked + .pulse-message-option-control:after { left:17px; background:var(--pulse-accent); box-shadow:0 0 10px rgba(87,242,176,.3); }
.pulse-message-option > span:last-child { display:grid; gap:3px; }
.pulse-message-option strong { color:#d7e3df; font-size:.68rem; }
.pulse-message-option small { color:#60746e; font-size:.58rem; line-height:1.4; }
.pulse-message-submit-row { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; padding-top:15px; border-top:1px solid var(--pulse-border); }
.pulse-message-submit-row > div { display:grid; gap:2px; }
.pulse-message-submit-row > div strong { color:#b9cac4; font-size:.65rem; }
.pulse-message-submit-row > div span { color:#566a63; font-size:.58rem; }
.pulse-message-publish { min-width:150px; justify-content:center; }
.pulse-message-publish > span { margin-right:4px; }

.pulse-message-side { display:grid; gap:12px; }
.pulse-message-preview-panel, .pulse-occasion-panel-v2 { padding:17px; }
.pulse-terminal-preview { position:relative; min-height:238px; padding:18px; overflow:hidden; border:1px solid rgba(255,255,255,.08); border-radius:18px; background:linear-gradient(145deg,#111815,#0b1210); box-shadow:inset 3px 0 0 rgba(196,206,218,.24),0 18px 42px rgba(0,0,0,.14); }
.pulse-terminal-preview:before { content:""; position:absolute; inset:auto -40px -60px auto; width:150px; height:150px; border-radius:50%; border:1px solid rgba(231,189,124,.04); box-shadow:0 0 0 26px rgba(231,189,124,.012),0 0 0 52px rgba(231,189,124,.007); }
.pulse-terminal-preview-sideglow { display:none; }
.pulse-terminal-preview[data-style="celebration"] { border-color:rgba(231,189,124,.16); box-shadow:inset 3px 0 0 rgba(231,189,124,.72),0 18px 42px rgba(0,0,0,.14); background:linear-gradient(100deg,rgba(231,189,124,.06),#101510 52%); }
.pulse-terminal-preview[data-style="appreciation"] { border-color:rgba(87,242,176,.14); box-shadow:inset 3px 0 0 rgba(87,242,176,.58),0 18px 42px rgba(0,0,0,.14); background:linear-gradient(100deg,rgba(87,242,176,.05),#0d1512 52%); }
.pulse-terminal-preview[data-style="important"] { border-color:rgba(255,133,133,.18); box-shadow:inset 4px 0 0 rgba(255,133,133,.72),0 18px 42px rgba(0,0,0,.14); background:linear-gradient(100deg,rgba(255,133,133,.055),#151010 52%); }
.pulse-terminal-preview-top { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:20px; }
.pulse-terminal-preview-top > span { display:flex; align-items:center; gap:7px; color:#d5b985; font-size:.55rem; font-weight:850; letter-spacing:.13em; }
.pulse-terminal-preview-top i { width:6px; height:6px; border-radius:50%; background:#d8bc87; box-shadow:0 0 10px rgba(216,188,135,.25); }
.pulse-terminal-preview-top small { max-width:130px; overflow:hidden; color:#72827b; font-size:.56rem; text-overflow:ellipsis; white-space:nowrap; }
.pulse-terminal-preview-main { position:relative; z-index:1; display:flex; align-items:flex-start; gap:11px; }
.pulse-terminal-preview-icon { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(255,255,255,.08); border-radius:10px; color:#b9c6c0; background:rgba(255,255,255,.035); font-size:14px; font-weight:900; }
.pulse-terminal-preview-copy { min-width:0; }
.pulse-terminal-preview-style { display:inline-flex; align-items:center; padding:3px 7px; margin-bottom:9px; border-radius:999px; color:#879890; background:rgba(255,255,255,.04); font-size:.5rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.pulse-terminal-preview[data-style="celebration"] .pulse-terminal-preview-icon { color:#efd4a2; border-color:rgba(231,189,124,.16); background:rgba(231,189,124,.07); }
.pulse-terminal-preview[data-style="celebration"] .pulse-terminal-preview-style { color:#efd4a2; background:rgba(231,189,124,.08); }
.pulse-terminal-preview[data-style="appreciation"] .pulse-terminal-preview-icon { color:#a6e5c8; border-color:rgba(87,242,176,.15); background:rgba(87,242,176,.06); }
.pulse-terminal-preview[data-style="appreciation"] .pulse-terminal-preview-style { color:#b7ead3; background:rgba(87,242,176,.07); }
.pulse-terminal-preview[data-style="important"] .pulse-terminal-preview-icon { color:#ffb4b4; border-color:rgba(255,133,133,.17); background:rgba(255,133,133,.065); }
.pulse-terminal-preview[data-style="important"] .pulse-terminal-preview-style { color:#ffc9c9; background:rgba(255,133,133,.075); }
.pulse-terminal-preview-copy strong { display:block; color:#f1f3ed; font-size:1.08rem; line-height:1.12; letter-spacing:-.025em; }
.pulse-terminal-preview-copy p { min-height:52px; margin:7px 0 24px; color:#aab8b1; font-size:.68rem; line-height:1.55; }
.pulse-terminal-preview-foot { position:absolute; z-index:1; left:18px; right:18px; bottom:14px; display:flex; justify-content:space-between; gap:10px; padding-top:9px; border-top:1px solid rgba(255,255,255,.055); color:#52635d; font-size:.53rem; }
.pulse-occasion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.pulse-occasion-grid > div { display:grid; grid-template-columns:26px minmax(0,1fr); column-gap:7px; padding:8px 9px; border:1px solid var(--pulse-border); border-radius:9px; background:rgba(255,255,255,.012); }
.pulse-occasion-grid > div > span { grid-row:1 / 3; display:grid; place-items:center; font-size:13px; }
.pulse-occasion-grid strong { color:#becdc8; font-size:.63rem; }
.pulse-occasion-grid small { color:#596d66; font-size:.54rem; }
.pulse-message-privacy-note { margin:10px 0 0; padding-top:9px; border-top:1px solid var(--pulse-border); color:#556a63; font-size:.56rem; line-height:1.5; }

.pulse-message-history-v2 { padding:0; overflow:hidden; }
.pulse-message-history-head { margin:0; padding:17px 18px 14px; border-bottom:1px solid var(--pulse-border); }
.pulse-count-pill { min-width:30px; padding:5px 8px; border:1px solid var(--pulse-border); border-radius:999px; color:var(--pulse-muted); text-align:center; font-size:.63rem; }
.pulse-message-list-v2 { display:grid; }
.pulse-message-row-v2 { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:13px; align-items:start; padding:15px 18px; border-bottom:1px solid var(--pulse-border); transition:.15s ease; }
.pulse-message-row-v2:last-child { border-bottom:0; }
.pulse-message-row-v2:hover { background:rgba(255,255,255,.012); }
.pulse-message-style { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.08); border-radius:12px; color:#aebfba; background:rgba(255,255,255,.025); font-size:14px; font-weight:900; }
.pulse-message-style.celebration { color:#f0ce95; border-color:rgba(240,206,149,.17); background:rgba(240,206,149,.05); }
.pulse-message-style.appreciation { color:#89dab6; border-color:rgba(137,218,182,.17); background:rgba(137,218,182,.05); }
.pulse-message-style.important { color:#ff9e9e; border-color:rgba(255,158,158,.18); background:rgba(255,158,158,.05); }
.pulse-message-main-v2 { min-width:0; }
.pulse-message-titleline { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.pulse-message-titleline strong { color:#e1eae7; font-size:.78rem; }
.pulse-message-mini-tag { padding:2px 5px; border:1px solid var(--pulse-border); border-radius:6px; color:#667a73; font-size:.52rem; font-weight:750; text-transform:uppercase; letter-spacing:.07em; }
.pulse-message-main-v2 > p { max-width:920px; margin:5px 0 8px; color:#95a9a2; font-size:.67rem; line-height:1.55; }
.pulse-message-meta-v2 { display:flex; gap:6px; flex-wrap:wrap; color:#5e726b; font-size:.56rem; }
.pulse-message-meta-v2 span { padding:4px 6px; border:1px solid rgba(255,255,255,.045); border-radius:6px; background:rgba(255,255,255,.012); }
.pulse-message-meta-v2 b { margin-right:3px; color:#7f928c; font-weight:750; }
.pulse-message-row-actions-v2 { display:flex; gap:6px; align-items:center; }
.pulse-message-row-actions-v2 form { margin:0; }
.pulse-btn-danger { color:#ffadad !important; }

@media (max-width:1180px) {
  .pulse-message-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pulse-message-workspace { grid-template-columns:minmax(0,1fr) minmax(300px,.7fr); }
  .pulse-message-options { grid-template-columns:1fr; }
}
@media (max-width:960px) {
  .pulse-message-workspace { grid-template-columns:1fr; }
  .pulse-message-side { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:780px) {
  .pulse-message-page-head { align-items:flex-start; }
  .pulse-message-head-note { white-space:normal; }
  .pulse-message-side { grid-template-columns:1fr; }
  .pulse-message-submit-row { align-items:stretch; flex-direction:column; }
  .pulse-message-publish { width:100%; }
  .pulse-message-row-v2 { grid-template-columns:38px minmax(0,1fr); }
  .pulse-message-row-actions-v2 { grid-column:2; }
}
@media (max-width:560px) {
  .pulse-message-stats { grid-template-columns:1fr 1fr; }
  .pulse-message-stat { min-height:82px; padding:13px; }
  .pulse-message-stat > strong { font-size:1.3rem; }
  .pulse-message-delivery-grid, .pulse-message-timing-grid { grid-template-columns:1fr; }
  .pulse-message-section-title { align-items:flex-start; flex-direction:column; gap:3px; }
  .pulse-message-row-v2 { padding:13px; }
  .pulse-message-meta-v2 { display:grid; grid-template-columns:1fr; }
}

/* ========================================================================== */
/* Le Pommier Admin — Champagne Hospitality theme                           */
/* Keeps operational state colours semantic while moving the admin workspace  */
/* from dark/technical to warm, premium hospitality.                          */
/* ========================================================================== */
.pulse-admin-body {
  --pulse-bg: #f7f2ea;
  --pulse-bg-soft: #efe5d8;
  --pulse-panel: rgba(255, 253, 249, .94);
  --pulse-panel-2: #fbf7f0;
  --pulse-border: rgba(86, 62, 39, .115);
  --pulse-border-strong: rgba(174, 129, 72, .30);
  --pulse-text: #34281f;
  --pulse-muted: #796a5e;
  --pulse-dim: #9b8c7e;
  --pulse-accent: #b7854b;
  --pulse-accent-strong: #966738;
  --pulse-accent-ink: #fffaf2;
  --pulse-warning: #b77725;
  --pulse-danger: #b95151;
  --pulse-shadow: 0 24px 70px rgba(78, 54, 31, .11);
  color-scheme: light;
  background: var(--pulse-bg);
}

.pulse-admin-body .pulse-shell {
  background:
    radial-gradient(circle at 80% -8%, rgba(196, 151, 91, .16), transparent 30%),
    radial-gradient(circle at 18% 108%, rgba(222, 199, 165, .20), transparent 34%),
    linear-gradient(180deg, #faf7f1 0%, var(--pulse-bg) 48%, #f4ede3 100%);
}

.pulse-admin-body .pulse-sidebar {
  border-right-color: rgba(93, 65, 39, .13);
  background:
    linear-gradient(180deg, rgba(249, 243, 233, .98), rgba(239, 227, 211, .98));
  box-shadow: 16px 0 46px rgba(83, 58, 35, .045);
}

.pulse-admin-body .pulse-brand strong { color: #38291f; }
.pulse-admin-body .pulse-brand small { color: #a37440; }
.pulse-admin-body .pulse-brand-mark {
  border-color: rgba(183, 133, 75, .38);
  background: rgba(255, 252, 247, .72);
  box-shadow: inset 0 0 22px rgba(183, 133, 75, .08), 0 7px 18px rgba(100, 70, 40, .06);
}
.pulse-admin-body .pulse-brand-mark span { border-color: #b7854b; }
.pulse-admin-body .pulse-brand-mark span:nth-child(3) {
  background: #b7854b;
  box-shadow: 0 0 10px rgba(183, 133, 75, .44);
}

.pulse-admin-body .pulse-venue-card {
  background: rgba(255, 252, 247, .62);
  border-color: rgba(103, 73, 45, .12);
  box-shadow: 0 9px 22px rgba(88, 61, 37, .035);
}
.pulse-admin-body .pulse-venue-card-first {
  margin-top:4px;
}
.pulse-admin-body .pulse-live-dot {
  background: #4d9a72;
  box-shadow: 0 0 0 5px rgba(77, 154, 114, .10), 0 0 14px rgba(77, 154, 114, .28);
}
.pulse-admin-body .pulse-nav-label { color: #ad9882; }
.pulse-admin-body .pulse-nav a { color: #756457; }
.pulse-admin-body .pulse-nav a span { color: #a28d79; }
.pulse-admin-body .pulse-nav a:hover {
  color: #38291f;
  background: rgba(255, 252, 247, .72);
}
.pulse-admin-body .pulse-nav a.active {
  color: #563c25;
  background: linear-gradient(90deg, rgba(183, 133, 75, .16), rgba(255, 252, 247, .56));
  box-shadow: inset 3px 0 #b7854b, 0 6px 18px rgba(106, 74, 43, .035);
}
.pulse-admin-body .pulse-nav a.active span { color: #a46f39; }
.pulse-admin-body .pulse-sidebar-foot { color: #a59382; }
.pulse-admin-body .pulse-sidebar-foot span { color: #7e6b5b; }

.pulse-admin-body .pulse-topbar {
  border-bottom-color: rgba(92, 64, 39, .105);
  background: rgba(250, 247, 241, .78);
  box-shadow: 0 10px 34px rgba(79, 55, 33, .035);
}
.pulse-admin-body .pulse-top-title small { color: #a46f39; }
.pulse-admin-body .pulse-user-avatar,
.pulse-admin-body .pulse-avatar {
  color: #8f6033;
  background: linear-gradient(145deg, #f5e7d4, #fffaf2);
  border-color: rgba(183, 133, 75, .22);
}
.pulse-admin-body .pulse-menu-button {
  color:#6f4d2f;
  background: linear-gradient(180deg, rgba(255, 253, 249, .96), rgba(247, 237, 225, .96));
  border-color: rgba(142, 102, 63, .22);
  box-shadow:0 8px 18px rgba(89, 62, 36, .08);
}
.pulse-admin-body .pulse-menu-button:hover {
  color:#523823;
  background: linear-gradient(180deg, #fffdf9, #f5ebdf);
  border-color: rgba(142, 102, 63, .30);
}
.pulse-admin-body .pulse-toast {
  color: #426b55;
  background: #edf6f0;
  border-color: rgba(77, 154, 114, .20);
}

.pulse-admin-body .pulse-hero {
  border-color: rgba(174, 129, 72, .23);
  background:
    radial-gradient(circle at 88% 2%, rgba(196, 151, 91, .25), transparent 32%),
    linear-gradient(135deg, rgba(255, 253, 248, .98), rgba(238, 224, 204, .96));
  box-shadow: 0 24px 70px rgba(92, 63, 35, .10);
}
.pulse-admin-body .pulse-hero:after {
  border-color: rgba(183, 133, 75, .22);
  box-shadow: 0 0 0 32px rgba(183, 133, 75, .035), 0 0 0 68px rgba(183, 133, 75, .02);
}
.pulse-admin-body .pulse-kicker,
.pulse-admin-body .pulse-page-eyebrow,
.pulse-admin-body .pulse-panel-eyebrow { color: #a46f39; }

.pulse-admin-body .pulse-btn-primary {
  color: #fffaf2;
  background: linear-gradient(135deg, #b9874f, #a46f39);
  border-color: #a8753f;
  box-shadow: 0 7px 18px rgba(153, 99, 49, .14);
}
.pulse-admin-body .pulse-btn-primary:hover {
  color: #fffaf2;
  background: linear-gradient(135deg, #aa7741, #8e5d31);
  border-color: #8e5d31;
}
.pulse-admin-body .pulse-btn-secondary,
.pulse-admin-body .pulse-btn-ghost {
  color: #665446;
  background: rgba(255, 253, 249, .70);
  border-color: rgba(94, 66, 41, .14);
}
.pulse-admin-body .pulse-btn-secondary:hover,
.pulse-admin-body .pulse-btn-ghost:hover {
  color: #402f23;
  background: #fffdfa;
  border-color: rgba(174, 129, 72, .30);
}

.pulse-admin-body .pulse-stat-card,
.pulse-admin-body .pulse-panel,
.pulse-admin-body .pulse-setting-card,
.pulse-admin-body .rota-stat-grid article {
  background: rgba(255, 253, 249, .91);
  border-color: rgba(93, 65, 39, .105);
  box-shadow: 0 14px 40px rgba(82, 57, 34, .055);
}
.pulse-admin-body .pulse-stat-card.accent {
  border-color: rgba(183, 133, 75, .25);
  background: linear-gradient(145deg, #f1dfc7, #fffaf2 72%);
}
.pulse-admin-body .pulse-stat-card.accent .pulse-stat-value { color: #7e532c; }
.pulse-admin-body .pulse-shortcut {
  background: rgba(255, 253, 249, .68);
  border-color: rgba(93, 65, 39, .105);
  box-shadow: 0 9px 26px rgba(82, 57, 34, .03);
}
.pulse-admin-body .pulse-shortcut:hover {
  border-color: rgba(183, 133, 75, .25);
  background: #fffaf3;
  box-shadow: 0 14px 32px rgba(112, 76, 39, .065);
}
.pulse-admin-body .pulse-shortcut > span { color: #b39a82; }

.pulse-admin-body .pulse-status.success,
.pulse-admin-body .pulse-status.event-clockin,
.pulse-admin-body .pulse-status.event-breakend {
  color: #3d7658;
  background: #edf6f0;
  border-color: rgba(77, 154, 114, .20);
}
.pulse-admin-body .pulse-status.warning,
.pulse-admin-body .pulse-status.event-breakstart {
  color: #94601f;
  background: #fff5df;
  border-color: rgba(183, 119, 37, .20);
}
.pulse-admin-body .pulse-status.neutral,
.pulse-admin-body .pulse-status.event-clockout {
  color: #78695d;
  background: #f3eee7;
  border-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-timeline-dot { background: #baa48e; }

.pulse-admin-body .pulse-filterbar {
  background: rgba(255, 253, 249, .68);
  border-color: rgba(93, 65, 39, .105);
}
.pulse-admin-body .pulse-filterbar input,
.pulse-admin-body .pulse-filterbar select,
.pulse-admin-body .pulse-field input,
.pulse-admin-body .pulse-field select,
.pulse-admin-body .pulse-field textarea {
  color: #3d3026;
  background: #fffdfa;
  border-color: rgba(93, 65, 39, .16);
  box-shadow: inset 0 1px 2px rgba(77, 52, 30, .02);
}
.pulse-admin-body .pulse-filterbar input::placeholder,
.pulse-admin-body .pulse-field input::placeholder,
.pulse-admin-body .pulse-field textarea::placeholder { color: #b2a497; }
.pulse-admin-body .pulse-filterbar input:focus,
.pulse-admin-body .pulse-filterbar select:focus,
.pulse-admin-body .pulse-field input:focus,
.pulse-admin-body .pulse-field select:focus,
.pulse-admin-body .pulse-field textarea:focus {
  border-color: rgba(183, 133, 75, .56);
  box-shadow: 0 0 0 3px rgba(183, 133, 75, .10);
}
.pulse-admin-body .pulse-filterbar select,
.pulse-admin-body .pulse-field select { color-scheme: light; }
.pulse-admin-body .pulse-field label { color: #715f50; }
.pulse-admin-body .pulse-table th {
  color: #9b8773;
  background: #f8f1e7;
  border-bottom-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-table tbody tr:hover { background: rgba(197, 157, 105, .055); }
.pulse-admin-body .pulse-table-actions > a { color: #79685a; }
.pulse-admin-body .pulse-code {
  color: #6d5a4a;
  background: #f6efe6;
  border-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-empty-icon {
  color: #a46f39;
  background: #f8ead8;
  border-color: rgba(183, 133, 75, .24);
}
.pulse-admin-body .pulse-callout {
  color: #6f5d4e;
  background: #fbf2e5;
  border-color: rgba(183, 133, 75, .16);
}
.pulse-admin-body .pulse-coming { color: #a08f80; }

/* Rota remains dense and operational, but now reads like part of the same venue UI. */
.pulse-admin-body .rota-alert-danger {
  color: #944b4b;
  background: #fff0ee;
  border-color: rgba(185, 81, 81, .20);
}
.pulse-admin-body .rota-nav-button {
  color: #5f4c3d;
  background: #fffaf4;
  border-color: rgba(93, 65, 39, .13);
}
.pulse-admin-body .rota-stat-grid article.attention {
  border-color: rgba(183, 119, 37, .19);
  background: linear-gradient(145deg, #fff2d8, #fffdfa);
}
.pulse-admin-body .rota-stat-grid article.danger {
  border-color: rgba(185, 81, 81, .18);
  background: linear-gradient(145deg, #fff0ee, #fffdfa);
}
.pulse-admin-body .rota-day {
  background: rgba(255, 253, 249, .86);
  border-color: rgba(93, 65, 39, .115);
  box-shadow: 0 9px 28px rgba(82, 57, 34, .035);
}
.pulse-admin-body .rota-day.today {
  border-color: #b7854b;
  background: linear-gradient(180deg, #fffaf2, #fffdf9 42%);
  box-shadow: inset 0 0 0 2px rgba(183,133,75,.14), 0 18px 40px rgba(92,63,35,.11);
}
.pulse-admin-body .rota-day > header { background: #f8f0e5; }
.pulse-admin-body .rota-day.today > header {
  background: linear-gradient(135deg, #a96f35, #c08d54);
  border-bottom-color: rgba(91, 55, 24, .18);
}
.pulse-admin-body .rota-day.today > header .rota-day-date > span,
.pulse-admin-body .rota-day.today > header strong { color: #fffaf2; }
.pulse-admin-body .rota-day.today > header small { color: rgba(255,250,242,.80); }
.pulse-admin-body .rota-today-marker {
  color: #6f461f;
  background: #fff6e8;
  border: 1px solid rgba(255,255,255,.42);
  box-shadow: 0 4px 12px rgba(88,51,20,.16);
}
.pulse-admin-body .rota-day-leave {
  color: #94601f;
  border-color: rgba(183, 119, 37, .17);
  background: #fff4dc;
}
.pulse-admin-body .rota-shift {
  background: linear-gradient(180deg, #fffdf9, var(--shift-surface, #fbf3e8));
  border-color: var(--shift-border, rgba(183, 133, 75, .18));
  box-shadow: 0 12px 28px rgba(82, 57, 34, .055);
}
.pulse-admin-body .rota-shift:before {
  background: var(--shift-accent, #b7854b);
}
.pulse-admin-body .rota-shift.open {
  border-style: dashed;
}
.pulse-admin-body .rota-shift-edit:hover { background: rgba(183, 133, 75, .06); }
.pulse-admin-body .rota-shift-badge {
  color: var(--shift-avatar-ink, #725842);
  background: var(--shift-avatar-bg, #f8ede0);
  border-color: var(--shift-border, rgba(183, 133, 75, .18));
}
.pulse-admin-body .rota-shift-time { color: var(--shift-accent, #9a6737); }
.pulse-admin-body .rota-shift-avatar {
  color: var(--shift-avatar-ink, #956435);
  background: var(--shift-avatar-bg, #f5e5d0);
  border-color: var(--shift-border, rgba(183, 133, 75, .20));
}
.pulse-admin-body .rota-shift-meta { color: #7f6e60; }
.pulse-admin-body .rota-shift-foot {
  color: #938173;
  border-top-color: rgba(93, 65, 39, .08);
}
.pulse-admin-body .rota-shift-foot b { color: var(--shift-accent, #766457); }
.pulse-admin-body .rota-shift-note {
  color: #7f6d5f;
  border-top-color: rgba(93, 65, 39, .10);
}
.pulse-admin-body .rota-shift-delete button {
  color: #9a8674;
  background: rgba(100, 68, 39, .055);
}
.pulse-admin-body .rota-shift-delete button:hover { color: #a74747; background: #fae9e7; }
.pulse-admin-body .rota-add-day {
  color: #9a8878;
  border-color: rgba(93, 65, 39, .16);
}
.pulse-admin-body .rota-add-day:hover {
  color: #9a6737;
  border-color: rgba(183, 133, 75, .30);
  background: #fbf1e5;
}
.pulse-admin-body .rota-clear-state { color: #6f5e50; }
.pulse-admin-body .rota-clear-state > span {
  color: #9a6737;
  background: #f8ead8;
  border-color: rgba(183, 133, 75, .22);
}
.pulse-admin-body .rota-issue p { color: #705f52; }
.pulse-admin-body .rota-issue.notice > span { color: #806f61; background: #f3eee7; }
.pulse-admin-body .rota-calculated { color: #8f6033; background: #faf0e3; }

.pulse-admin-body .pulse-modal .modal-content {
  color: #34281f;
  border-color: rgba(93, 65, 39, .14);
  background: #fffdfa;
  box-shadow: 0 35px 90px rgba(73, 49, 28, .19);
}
.pulse-admin-body .pulse-modal .btn-close { filter: none; }

/* Fingerprint and message administration */
.pulse-admin-body .pulse-enrolment-credential {
  background: #f7f0e7;
  border-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-enrolment-credential code { color: #685648; }
.pulse-admin-body .pulse-enrolment-request { background: #fffaf4; }
.pulse-admin-body .pulse-enrolment-request.is-active {
  border-color: rgba(183, 119, 37, .21);
  background: linear-gradient(145deg, #fff1d9, #fbf3e8);
}
.pulse-admin-body .pulse-enrolment-live { color: #94601f; }
.pulse-admin-body .pulse-message-head-note {
  color: #725f50;
  background: #faf1e4;
  border-color: rgba(183, 133, 75, .17);
}
.pulse-admin-body .pulse-message-workspace { align-items: stretch; }
.pulse-admin-body .pulse-message-compose-v2,
.pulse-admin-body .pulse-message-preview-panel,
.pulse-admin-body .pulse-occasion-panel-v2,
.pulse-admin-body .pulse-message-history-v2 {
  border-color: rgba(93, 65, 39, .13);
  box-shadow: 0 18px 46px rgba(82, 57, 34, .075);
}
.pulse-admin-body .pulse-message-compose-v2 {
  background: linear-gradient(180deg, #fffdf9 0%, #fbf3e8 100%);
}
.pulse-admin-body .pulse-message-compose-head,
.pulse-admin-body .pulse-message-history-head {
  background: linear-gradient(180deg, #fcf4e9 0%, #f7ecde 100%);
  border-bottom-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-message-form {
  background: linear-gradient(180deg, rgba(255,253,249,.72), rgba(255,250,243,.96));
}
.pulse-admin-body .pulse-message-preview-panel {
  background: linear-gradient(180deg, #fffdfa 0%, #f7efe5 100%);
}
.pulse-admin-body .pulse-occasion-panel-v2 {
  background: linear-gradient(180deg, #fffdfa 0%, #f8f0e6 100%);
}
.pulse-admin-body .pulse-message-stat {
  box-shadow: 0 10px 26px rgba(82, 57, 34, .045);
}
.pulse-admin-body .pulse-message-stat:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgba(183,133,75,.78), rgba(232,205,170,.18));
}
.pulse-admin-body .pulse-message-preview-panel .pulse-panel-head,
.pulse-admin-body .pulse-occasion-panel-v2 .pulse-panel-head {
  margin-bottom: 16px;
}
.pulse-admin-body .pulse-message-row-v2:nth-child(even) {
  background: rgba(252, 247, 239, .62);
}
.pulse-admin-body .pulse-message-stat {
  background: linear-gradient(145deg, #fffdfa, #f7f0e7);
  border-color: rgba(93, 65, 39, .105);
}
.pulse-admin-body .pulse-message-stat > span { color: #9c8976; }
.pulse-admin-body .pulse-message-stat > strong { color: #46352a; }
.pulse-admin-body .pulse-message-stat > small { color: #938274; }
.pulse-admin-body .pulse-message-stat-accent {
  border-color: rgba(183, 133, 75, .22);
  background: radial-gradient(circle at 100% 0%, rgba(196, 151, 91, .18), transparent 48%), #fffaf3;
}
.pulse-admin-body .pulse-message-stat-accent > strong { color: #956231; }
.pulse-admin-body .pulse-message-draft-chip {
  color: #8d755f;
  background: #faf0e3;
  border-color: rgba(183, 133, 75, .18);
}
.pulse-admin-body .pulse-message-section-title > span,
.pulse-admin-body .pulse-message-option strong,
.pulse-admin-body .pulse-message-submit-row > div strong,
.pulse-admin-body .pulse-occasion-grid strong,
.pulse-admin-body .pulse-message-titleline strong { color: #574537; }
.pulse-admin-body .pulse-message-section-title > small,
.pulse-admin-body .pulse-field-help,
.pulse-admin-body .pulse-message-option small,
.pulse-admin-body .pulse-message-submit-row > div span,
.pulse-admin-body .pulse-occasion-grid small,
.pulse-admin-body .pulse-message-privacy-note,
.pulse-admin-body .pulse-message-main-v2 > p,
.pulse-admin-body .pulse-message-meta-v2 { color: #8c7a6a; }
.pulse-admin-body .pulse-message-option {
  background: #fffaf4;
  border-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-message-option:hover {
  border-color: rgba(183, 133, 75, .23);
  background: #fbf1e5;
}
.pulse-admin-body .pulse-message-option-control {
  background: #e8ded2;
  border-color: rgba(93, 65, 39, .12);
}
.pulse-admin-body .pulse-message-option-control:after { background: #a69484; }
.pulse-admin-body .pulse-message-option > input:checked + .pulse-message-option-control {
  border-color: rgba(183, 133, 75, .32);
  background: #ead6bc;
}
.pulse-admin-body .pulse-message-option > input:checked + .pulse-message-option-control:after {
  background: #a46f39;
  box-shadow: 0 0 10px rgba(164, 111, 57, .22);
}
.pulse-admin-body .pulse-occasion-grid > div {
  background: #fffaf4;
  border-color: rgba(93, 65, 39, .10);
}
.pulse-admin-body .pulse-message-row-v2:hover { background: rgba(196, 151, 91, .055); }
.pulse-admin-body .pulse-message-style {
  color: #806d5e;
  background: #f7f0e7;
  border-color: rgba(93, 65, 39, .11);
}
.pulse-admin-body .pulse-message-mini-tag {
  color: #8f7c6c;
  background: #faf6f0;
}
.pulse-admin-body .pulse-message-meta-v2 span {
  background: #faf6f0;
  border-color: rgba(93, 65, 39, .07);
}
.pulse-admin-body .pulse-message-meta-v2 b { color: #6f5c4c; }
.pulse-admin-body .pulse-btn-danger { color: #ab4c4c !important; }

/* The preview intentionally stays dark: it represents the physical Le Pommier terminal. */
.pulse-admin-body .pulse-terminal-preview { color-scheme: dark; }

@media (max-width: 780px) {
  .pulse-admin-body .pulse-sidebar {
    box-shadow: 22px 0 64px rgba(68, 45, 25, .18);
  }
  .pulse-admin-body .pulse-sidebar-backdrop {
    background: rgba(54, 39, 28, .34);
  }
}

/* Shift template colour coding ------------------------------------------------ */
.pulse-admin-body .rota-template-card {
  --template-accent: #2e5bbd;
  --template-border: #bdd0f6;
  --template-surface: #eef4ff;
  --template-handle: #dce8ff;
  border-color: var(--template-border);
  background: linear-gradient(180deg, #fffdfa 0%, var(--template-surface) 100%);
  box-shadow: inset 4px 0 0 var(--template-accent), 0 8px 20px rgba(82, 57, 34, .035);
}
.pulse-admin-body .rota-template-card:nth-child(8n + 1) { --template-accent:#2e5bbd; --template-border:#bdd0f6; --template-surface:#eef4ff; --template-handle:#dce8ff; }
.pulse-admin-body .rota-template-card:nth-child(8n + 2) { --template-accent:#9c4d97; --template-border:#e1c5e3; --template-surface:#fbf0fb; --template-handle:#f3dbf5; }
.pulse-admin-body .rota-template-card:nth-child(8n + 3) { --template-accent:#2f8e76; --template-border:#bfe4d8; --template-surface:#eef9f5; --template-handle:#d8f0e8; }
.pulse-admin-body .rota-template-card:nth-child(8n + 4) { --template-accent:#c06a2e; --template-border:#f1cfb2; --template-surface:#fff5ec; --template-handle:#f9e4d2; }
.pulse-admin-body .rota-template-card:nth-child(8n + 5) { --template-accent:#af3f63; --template-border:#f0c3d0; --template-surface:#fff1f5; --template-handle:#f9dae3; }
.pulse-admin-body .rota-template-card:nth-child(8n + 6) { --template-accent:#4f7d2c; --template-border:#d5e6be; --template-surface:#f5faee; --template-handle:#e5f1d4; }
.pulse-admin-body .rota-template-card:nth-child(8n + 7) { --template-accent:#7a56c5; --template-border:#d8c9f4; --template-surface:#f6f1ff; --template-handle:#ebe2ff; }
.pulse-admin-body .rota-template-card:nth-child(8n + 8) { --template-accent:#007a8c; --template-border:#bde5ea; --template-surface:#effbfd; --template-handle:#d8f2f6; }
.pulse-admin-body .rota-template-card:hover {
  border-color: var(--template-accent);
  background: linear-gradient(180deg, #fffdfa 0%, var(--template-surface) 100%);
  transform: translateY(-1px);
}
.pulse-admin-body .rota-template-card .rota-template-drag-handle {
  color: var(--template-accent);
  border-color: var(--template-border);
  background: var(--template-handle);
}
.pulse-admin-body .rota-template-card .rota-template-copy span { color: var(--template-accent); }

/* Attendance ledger pagination ------------------------------------------------ */
.attendance-pagination {
  min-height:58px;
  padding:10px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-top:1px solid var(--pulse-border);
}
.attendance-pagination-summary { display:flex; align-items:baseline; gap:6px; color:var(--pulse-muted); font-size:.64rem; }
.attendance-pagination-summary strong { color:var(--pulse-text); font-size:.72rem; }
.attendance-pagination-nav { display:flex; align-items:center; gap:5px; }
.attendance-page-button {
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:1px solid var(--pulse-border);
  border-radius:9px;
  color:var(--pulse-muted);
  background:var(--pulse-panel-2);
  text-decoration:none;
  font-size:.68rem;
  font-weight:800;
  transition:.14s ease;
}
.attendance-page-button:hover { color:var(--pulse-text); border-color:var(--pulse-border-strong); }
.attendance-page-button.active { color:var(--pulse-accent-ink); background:var(--pulse-accent); border-color:var(--pulse-accent); }
.attendance-page-button.disabled { opacity:.38; pointer-events:none; }
.pulse-admin-body .attendance-pagination { background:#fffaf4; border-top-color:rgba(93,65,39,.10); }
.pulse-admin-body .attendance-page-button { color:#725f50; background:#fffdfa; border-color:rgba(93,65,39,.13); }
.pulse-admin-body .attendance-page-button:hover { color:#442f20; border-color:rgba(183,133,75,.34); background:#fbf1e5; }
.pulse-admin-body .attendance-page-button.active { color:#fffaf2; background:#a9703b; border-color:#a9703b; }

@media (max-width: 560px) {
  .attendance-pagination { align-items:flex-start; flex-direction:column; }
  .attendance-pagination-nav { width:100%; justify-content:space-between; }
}

/* Global action modal ------------------------------------------------------- */
.pulse-action-modal .modal-dialog { max-width:460px; padding:0 10px; }
.pulse-action-modal-content {
  overflow:hidden;
  border:1px solid rgba(93,65,39,.12);
  border-radius:22px;
  background:linear-gradient(155deg,#fffdf9 0%,#fff9f1 100%);
  box-shadow:0 34px 95px rgba(73,49,28,.22);
}
.pulse-action-modal-body {
  padding:27px 27px 23px;
  display:grid;
  grid-template-columns:50px minmax(0,1fr);
  gap:17px;
  align-items:start;
}
.pulse-action-modal-icon {
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border:1px solid rgba(183,133,75,.18);
  border-radius:16px;
  color:#865927;
  background:linear-gradient(145deg,#f9eddd,#f3dfc4);
  font-size:1.15rem;
  font-weight:900;
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.38), 0 8px 20px rgba(117,78,40,.08);
}
.pulse-action-modal-copy { min-width:0; }
.pulse-action-modal-copy h2 { margin:5px 0 7px; color:#34281f; font-size:1.25rem; letter-spacing:-.025em; }
.pulse-action-modal-copy p { margin:0; color:#7c6a5c; font-size:.78rem; line-height:1.62; }
.pulse-action-modal-footer {
  padding:15px 18px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  border-top:1px solid rgba(93,65,39,.09);
  background:rgba(250,245,238,.82);
}
.pulse-action-modal-content.tone-danger .pulse-action-modal-icon {
  color:#a94848;
  border-color:rgba(185,81,81,.18);
  background:linear-gradient(145deg,#fff4f1,#fee8e4);
}
.pulse-action-modal-content.tone-success .pulse-action-modal-icon,
.pulse-action-modal-content.tone-publish .pulse-action-modal-icon {
  color:#52755e;
  border-color:rgba(77,154,114,.18);
  background:linear-gradient(145deg,#f2f8f3,#e4f1e8);
}
.pulse-action-modal-confirm.is-danger {
  color:#fff;
  background:#b65353;
  border-color:#a84747;
  box-shadow:0 7px 18px rgba(166,71,71,.16);
}
.pulse-action-modal-confirm.is-danger:hover { color:#fff; background:#a84747; border-color:#9b3f3f; }
.pulse-action-modal-confirm.is-publish,
.pulse-action-modal-confirm.is-success {
  color:#fffaf2;
  background:linear-gradient(135deg,#b9874f,#9d6835);
  border-color:#966332;
}
@media (max-width:520px) {
  .pulse-access-denied { margin-top:26px; padding:32px 20px; }
  .pulse-access-denied-actions { width:100%; display:grid; }
  .pulse-access-denied-actions .pulse-btn { width:100%; }
  .pulse-action-modal-body { padding:23px 21px 20px; grid-template-columns:44px minmax(0,1fr); gap:14px; }
  .pulse-action-modal-icon { width:44px; height:44px; border-radius:14px; }
  .pulse-action-modal-footer { padding:13px 15px; }
  .pulse-action-modal-footer .pulse-btn { flex:1; }
}

/* Rota confirmation modal ---------------------------------------------------- */
.rota-confirm-modal .modal-dialog { max-width:460px; }
.rota-confirm-modal-content {
  overflow:hidden;
  border:1px solid rgba(93,65,39,.14);
  border-radius:20px;
  background:#fffdfa;
  box-shadow:0 32px 90px rgba(73,49,28,.22);
}
.rota-confirm-body {
  padding:26px 26px 22px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.rota-confirm-icon {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(183,133,75,.22);
  border-radius:15px;
  color:#865927;
  background:#f7ead8;
  font-size:1.15rem;
  font-weight:900;
  box-shadow:inset 0 0 0 5px rgba(255,255,255,.35);
}
.rota-confirm-copy { min-width:0; }
.rota-confirm-copy h2 { margin:5px 0 7px; color:#34281f; font-size:1.25rem; letter-spacing:-.025em; }
.rota-confirm-copy p { margin:0; color:#7c6a5c; font-size:.76rem; line-height:1.6; }
.rota-confirm-footer {
  padding:15px 18px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  border-top:1px solid rgba(93,65,39,.10);
  background:#faf5ee;
}
.rota-confirm-modal-content.tone-publish .rota-confirm-icon {
  color:#3f7658;
  border-color:rgba(77,154,114,.22);
  background:#edf6f0;
}
.rota-confirm-modal-content.tone-danger .rota-confirm-icon {
  color:#a94848;
  border-color:rgba(185,81,81,.22);
  background:#fff0ee;
}
.rota-confirm-action.is-danger {
  color:#fff;
  background:#b65353;
  border-color:#a84747;
  box-shadow:0 7px 18px rgba(166,71,71,.16);
}
.rota-confirm-action.is-danger:hover {
  color:#fff;
  background:#a84747;
  border-color:#9b3f3f;
}
.rota-confirm-action.is-publish {
  color:#fffaf2;
  background:linear-gradient(135deg,#b9874f,#9d6835);
  border-color:#966332;
}

/* Messages: the terminal preview must not sit inside a stretched white card. */
.pulse-admin-body .pulse-message-workspace { align-items:start; }
.pulse-admin-body .pulse-message-side { align-content:start; align-self:start; }
.pulse-admin-body .pulse-message-preview-panel {
  min-height:0;
  padding:0 !important;
  border:0 !important;
  background:none !important;
  box-shadow:none !important;
}
.pulse-admin-body .pulse-message-preview-panel .pulse-panel-head {
  margin-bottom:12px;
  padding:0 2px;
  background:transparent;
}

/* Le Pommier supporting brand treatments */
.pulse-sidebar-brand-foot {
  align-items:center;
  gap:8px;
  text-align:center;
}
.pulse-kicker-brand {
  width:fit-content;
  min-height:36px;
  display:flex;
  align-items:center;
  padding:6px 12px;
  border-radius:12px;
  background:linear-gradient(135deg, #7f6b56, #4c392a);
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 10px 24px rgba(72,48,28,.15);
}
.pulse-kicker-brand img {
  width:116px;
  height:auto;
  display:block;
}
.pulse-terminal-preview-brand-text {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:5px 10px;
  border-radius:999px;
  color:#876545;
  background:rgba(203, 177, 146, .18);
  border:1px solid rgba(163, 118, 70, .12);
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* Login is intentionally viewport-locked: no page-level scrolling on any device. */
.pulse-login-body {
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
}
.pulse-login-body .pulse-auth-shell {
  height:100vh;
  height:100dvh;
  min-height:0;
  padding:clamp(10px, 2.2vh, 24px) 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.pulse-login-body .pulse-auth-brand {
  display:flex;
  flex:0 0 auto;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:clamp(8px, 2vh, 20px);
  padding:clamp(9px, 1.5vh, 14px) clamp(16px, 2vw, 24px);
}
.pulse-login-body .pulse-auth-brand img {
  width:clamp(148px, 16vw, 205px);
  max-height:clamp(46px, 7vh, 70px);
  object-fit:contain;
}
.pulse-login-body .pulse-auth-content {
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pulse-login-body .lep-auth-card {
  width:min(980px, 100%);
  max-width:980px;
  height:auto;
  min-height:560px;
  max-height:min(640px, calc(100dvh - 28px));
  margin:0 auto;
}
.pulse-login-body .lep-auth-hero,
.pulse-login-body .lep-auth-panel,
.pulse-login-body .lep-auth-hero-inner {
  min-height:0;
}
.pulse-login-body .lep-auth-hero {
  padding:clamp(24px, 4vh, 40px) clamp(28px, 3.6vw, 42px);
}
.pulse-login-body .lep-auth-hero h1 {
  margin-top:clamp(8px, 1.5vh, 14px);
  font-size:clamp(2.45rem, 4vw, 3.8rem);
}
.pulse-login-body .lep-auth-hero p {
  max-width:430px;
  font-size:clamp(.94rem, 1.28vw, 1.02rem);
  line-height:1.6;
}
.pulse-login-body .lep-auth-points {
  width:min(100%, 390px);
  margin-top:clamp(14px, 2.4vh, 24px);
  gap:clamp(8px, 1.2vh, 12px);
}
.pulse-login-body .lep-auth-points article {
  padding:clamp(7px, 1.25vh, 14px) 0;
}
.pulse-login-body .lep-auth-footer-note {
  padding-top:clamp(12px, 2vh, 28px);
}
.pulse-login-body .lep-auth-panel {
  padding:clamp(24px, 4vh, 38px) clamp(28px, 3.6vw, 44px);
}
.pulse-login-body .lep-auth-panel-copy {
  margin-bottom:clamp(10px, 2vh, 18px);
}
.pulse-login-body .lep-auth-panel h2 {
  margin-top:clamp(6px, 1.2vh, 12px);
  font-size:clamp(2.15rem, 3.3vw, 2.8rem);
}
.pulse-login-body .lep-auth-form {
  gap:clamp(10px, 1.8vh, 17px);
}
.pulse-login-body .lep-field {
  gap:clamp(4px, .8vh, 8px);
}
.pulse-login-body .lep-field .form-control {
  min-height:clamp(46px, 7vh, 58px);
}
.pulse-login-body .lep-signin-button {
  min-height:clamp(46px, 7vh, 56px);
}

@media (max-width: 860px) {
  .pulse-login-body .pulse-auth-shell {
    width:min(620px, calc(100% - 18px));
  }
  .pulse-login-body .lep-auth-card {
    grid-template-columns:1fr;
    width:min(620px, 100%);
    max-width:620px;
    min-height:0;
    max-height:min(620px, calc(100dvh - 24px));
    margin:0 auto;
  }
  .pulse-login-body .lep-auth-hero {
    display:none;
  }
  .pulse-login-body .lep-auth-panel {
    height:100%;
    padding:clamp(18px, 4vh, 32px) clamp(20px, 6vw, 36px);
  }
  .pulse-login-body .lep-auth-panel-copy,
  .pulse-login-body .lep-auth-form {
    width:min(100%, 420px);
  }
  .pulse-login-body .lep-auth-panel-copy {
    margin-bottom:clamp(12px, 2.5vh, 22px);
  }
}

@media (max-height: 700px) and (min-width: 861px) {
  .pulse-login-body .lep-auth-hero,
  .pulse-login-body .lep-auth-panel {
    padding-top:24px;
    padding-bottom:24px;
  }
  .pulse-login-body .lep-auth-points article {
    padding:5px 0;
  }
  .pulse-login-body .lep-auth-footer-note {
    padding-top:8px;
  }
}

@media (max-height: 590px) {
  .pulse-login-body .pulse-auth-shell {
    padding-top:6px;
    padding-bottom:6px;
  }
  .pulse-login-body .lep-auth-hero {
    display:none;
  }
  .pulse-login-body .lep-auth-card {
    grid-template-columns:1fr;
    max-width:620px;
    min-height:0;
    margin:0 auto;
  }
  .pulse-login-body .lep-auth-panel {
    padding:12px 22px;
  }
  .pulse-login-body .lep-auth-panel-copy {
    margin-bottom:8px;
  }
  .pulse-login-body .lep-auth-panel-eyebrow,
  .pulse-login-body .lep-auth-panel p,
  .pulse-login-body .lep-auth-assurance {
    display:none;
  }
  .pulse-login-body .lep-auth-panel h2 {
    margin:0;
    font-size:1.8rem;
  }
  .pulse-login-body .lep-auth-form {
    gap:7px;
  }
  .pulse-login-body .lep-field {
    gap:3px;
  }
  .pulse-login-body .lep-field .form-control,
  .pulse-login-body .lep-signin-button {
    min-height:42px;
    border-radius:13px;
  }
  .pulse-login-body .lep-auth-meta-row {
    padding-top:0;
  }
}
.pulse-topbar-brand {
  width:88px;
  min-height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:3px 6px;
  border-radius:7px;
  background:linear-gradient(135deg, #75604c, #49372a);
}
.pulse-topbar-brand img {
  width:72px;
  height:auto;
  display:block;
}

/* Operational settings */
.settings-page-head { align-items:center; }
.settings-page-head form { flex:0 0 auto; }
.settings-live-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:-7px 0 14px; }
.settings-live-strip article { min-width:0; padding:14px 16px; display:grid; gap:4px; border:1px solid var(--pulse-border); border-radius:14px; background:rgba(255,255,255,.018); }
.settings-live-strip span { color:var(--pulse-dim); font-size:.59rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.settings-live-strip strong { font-size:.96rem; letter-spacing:-.02em; }
.settings-live-strip small { color:var(--pulse-muted); font-size:.64rem; }
.settings-form { display:grid; gap:11px; }
.settings-validation:empty { display:none; }
.settings-validation { padding:12px 14px; border:1px solid rgba(185,81,81,.20); border-radius:12px; color:#944343; background:rgba(185,81,81,.055); font-size:.74rem; }
.settings-validation ul { margin:0; padding-left:18px; }
.settings-section { display:grid; grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr); gap:26px; padding:22px; border:1px solid var(--pulse-border); border-radius:var(--pulse-radius); background:var(--pulse-panel); box-shadow:0 14px 45px rgba(0,0,0,.1); }
.settings-section-copy { align-self:start; }
.settings-section-copy h2 { margin:5px 0 8px; font-size:1.08rem; letter-spacing:-.025em; }
.settings-section-copy p { margin:0; max-width:430px; color:var(--pulse-muted); font-size:.72rem; line-height:1.62; }
.settings-section-fields { min-width:0; }
.settings-field-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px 12px; }
.settings-field-grid.two-settings { grid-template-columns:repeat(2,minmax(0,1fr)); }
.settings-section .pulse-field { margin-bottom:0; align-content:start; }
.settings-section .pulse-field > small { min-height:30px; color:var(--pulse-dim); font-size:.61rem; line-height:1.45; }
.settings-section .pulse-field > small strong { color:var(--pulse-muted); }
.settings-field-wide { max-width:620px; }
.settings-input-unit { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; min-height:39px; overflow:hidden; border:1px solid rgba(255,255,255,.085); border-radius:9px; background:rgba(255,252,247,.78); }
.settings-input-unit:focus-within { border-color:rgba(183,133,75,.46); box-shadow:0 0 0 3px rgba(183,133,75,.08); }
.settings-input-unit input { width:100%; min-width:0; border:0 !important; border-radius:0 !important; box-shadow:none !important; background:transparent !important; }
.settings-input-unit span { padding:0 11px; color:var(--pulse-dim); border-left:1px solid var(--pulse-border); white-space:nowrap; font-size:.61rem; font-weight:750; }
.settings-note { margin-top:12px; padding:11px 12px; border:1px solid var(--pulse-border); border-radius:10px; color:var(--pulse-muted); background:rgba(255,255,255,.018); font-size:.66rem; line-height:1.5; }
.settings-toggle-stack { display:grid; gap:9px; }
.settings-toggle-row { margin:0; padding:12px 13px; display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-areas:"switch copy"; column-gap:12px; align-items:center; border:1px solid var(--pulse-border); border-radius:12px; background:rgba(255,255,255,.016); cursor:pointer; }
.settings-toggle-row > input { position:absolute; opacity:0; pointer-events:none; }
.settings-toggle-ui { grid-area:switch; width:38px; height:22px; padding:2px; display:flex; align-items:center; border:1px solid rgba(255,255,255,.13); border-radius:999px; background:rgba(255,255,255,.055); transition:.16s ease; }
.settings-toggle-ui::after { content:""; width:16px; height:16px; border-radius:50%; background:var(--pulse-muted); transition:.16s ease; }
.settings-toggle-row > input:checked + .settings-toggle-ui { border-color:var(--pulse-border-strong); background:rgba(183,133,75,.11); }
.settings-toggle-row > input:checked + .settings-toggle-ui::after { transform:translateX(16px); background:var(--pulse-accent); }
.settings-toggle-row > input:focus-visible + .settings-toggle-ui { outline:2px solid var(--pulse-accent); outline-offset:2px; }
.settings-toggle-row > span:last-child { grid-area:copy; display:grid; gap:3px; }
.settings-toggle-row strong { font-size:.73rem; }
.settings-toggle-row small { color:var(--pulse-muted); font-size:.63rem; line-height:1.42; }
.settings-savebar { position:sticky; bottom:14px; z-index:12; margin-top:2px; padding:13px 14px; display:flex; align-items:center; justify-content:space-between; gap:18px; border:1px solid var(--pulse-border-strong); border-radius:14px; background:rgba(255,253,249,.96); box-shadow:0 18px 55px rgba(84,58,34,.16); backdrop-filter:blur(18px); }
.settings-savebar > div { display:grid; gap:2px; }
.settings-savebar span { color:var(--pulse-dim); font-size:.56rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.settings-savebar strong { font-size:.73rem; }
.settings-savebar small { color:var(--pulse-muted); font-size:.61rem; }

@media (max-width: 1100px) {
  .settings-live-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .settings-section { grid-template-columns:1fr; gap:17px; }
  .settings-section-copy p { max-width:700px; }
}
@media (max-width: 760px) {
  .settings-page-head form, .settings-page-head .btn { width:100%; }
  .settings-live-strip { grid-template-columns:1fr 1fr; }
  .settings-section { padding:17px; }
  .settings-field-grid, .settings-field-grid.two-settings { grid-template-columns:1fr; }
  .settings-section .pulse-field > small { min-height:0; }
  .settings-savebar { bottom:8px; }
}
@media (max-width: 520px) {
  .settings-live-strip { grid-template-columns:1fr; }
  .settings-savebar { align-items:stretch; flex-direction:column; }
  .settings-savebar .btn { width:100%; }
}

/* Terminal Wi-Fi onboarding */
.pulse-wifi-modal .modal-dialog { max-width:620px; padding:0 10px; }
.pulse-wifi-modal-content {
  overflow:hidden;
  border:1px solid rgba(114, 79, 45, .14);
  border-radius:24px;
  background:#fffaf4;
  box-shadow:0 28px 90px rgba(65, 43, 23, .24);
}
.pulse-wifi-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:24px 26px 18px;
  border-bottom:1px solid rgba(93, 65, 39, .10);
  background:linear-gradient(180deg, #fffdf9, #fbf1e5);
}
.pulse-wifi-head h2 { margin:4px 0 5px; color:#34281f; font-size:1.28rem; letter-spacing:-.025em; }
.pulse-wifi-head p { margin:0; color:#847262; font-size:.75rem; }
.pulse-wifi-close {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border:1px solid rgba(93, 65, 39, .13);
  border-radius:12px;
  color:#745e4b;
  background:#fffdf9;
  font-size:1.45rem;
  line-height:1;
}
.pulse-wifi-status {
  margin:20px 24px 0;
  padding:14px 15px;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid rgba(183, 133, 75, .16);
  border-radius:14px;
  color:#72583e;
  background:#fbf2e5;
}
.pulse-wifi-status.is-success { color:#3f6f56; border-color:rgba(77,154,114,.20); background:#eef6f0; }
.pulse-wifi-status.is-error { color:#914d4d; border-color:rgba(184,87,87,.20); background:#fff0ee; }
.pulse-wifi-status > div { min-width:0; display:grid; gap:2px; }
.pulse-wifi-status strong { color:inherit; font-size:.77rem; }
.pulse-wifi-status small { color:inherit; opacity:.78; font-size:.65rem; line-height:1.45; }
.pulse-wifi-status-icon,
.pulse-wifi-spinner {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:50%;
  background:rgba(255,255,255,.75);
  font-weight:900;
}
.pulse-wifi-spinner {
  border:3px solid rgba(164,111,57,.16);
  border-top-color:#a46f39;
  background:transparent;
  animation:pulseWifiSpin .8s linear infinite;
}
@keyframes pulseWifiSpin { to { transform:rotate(360deg); } }
.pulse-wifi-toolbar {
  padding:20px 24px 11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.pulse-wifi-toolbar > div { display:grid; gap:2px; }
.pulse-wifi-toolbar strong { color:#46372b; font-size:.76rem; }
.pulse-wifi-toolbar small { color:#988675; font-size:.63rem; }
.pulse-wifi-networks {
  max-height:330px;
  padding:0 24px 24px;
  display:grid;
  gap:8px;
  overflow:auto;
}
.pulse-wifi-network {
  width:100%;
  min-height:66px;
  padding:10px 13px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  text-align:left;
  border:1px solid rgba(93,65,39,.11);
  border-radius:14px;
  color:#49392d;
  background:#fffdf9;
  transition:border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.pulse-wifi-network:hover:not(:disabled) {
  transform:translateY(-1px);
  border-color:rgba(183,133,75,.34);
  box-shadow:0 10px 24px rgba(91,61,33,.07);
}
.pulse-wifi-network.is-current { border-color:rgba(77,154,114,.28); background:#f6fbf7; }
.pulse-wifi-network.is-unsupported { opacity:.55; cursor:not-allowed; }
.pulse-wifi-network-copy { min-width:0; display:grid; gap:3px; }
.pulse-wifi-network-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.76rem; }
.pulse-wifi-network-copy small { color:#9a8877; font-size:.61rem; line-height:1.35; }
.pulse-wifi-strength { color:#8b7766; font-size:.63rem; font-weight:800; }
.pulse-wifi-signal { height:22px; display:flex; align-items:flex-end; gap:2px; }
.pulse-wifi-signal i { width:4px; border-radius:2px 2px 0 0; background:#d8c8b8; }
.pulse-wifi-signal i:nth-child(1) { height:6px; }
.pulse-wifi-signal i:nth-child(2) { height:10px; }
.pulse-wifi-signal i:nth-child(3) { height:15px; }
.pulse-wifi-signal i:nth-child(4) { height:20px; }
.pulse-wifi-signal.bars-1 i:nth-child(-n+1),
.pulse-wifi-signal.bars-2 i:nth-child(-n+2),
.pulse-wifi-signal.bars-3 i:nth-child(-n+3),
.pulse-wifi-signal.bars-4 i:nth-child(-n+4) { background:#a46f39; }
.pulse-wifi-connect { padding:20px 24px 24px; }
.pulse-wifi-selected {
  margin-bottom:16px;
  padding:13px 14px;
  display:grid;
  gap:3px;
  border:1px solid rgba(183,133,75,.18);
  border-radius:13px;
  background:#fbf2e5;
}
.pulse-wifi-selected span { color:#a46f39; font-size:.57rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.pulse-wifi-selected strong { color:#47362a; font-size:.86rem; }
.pulse-wifi-selected small { color:#8d7967; font-size:.62rem; }
.pulse-wifi-inline-error { margin:-2px 0 13px; color:#a24f4f; font-size:.66rem; font-weight:700; }
.pulse-wifi-actions { display:flex; justify-content:flex-end; gap:9px; }
@media (max-width:560px) {
  .pulse-wifi-head { padding:20px 18px 15px; }
  .pulse-wifi-status { margin:16px 16px 0; }
  .pulse-wifi-toolbar { padding:18px 16px 10px; align-items:flex-start; }
  .pulse-wifi-toolbar .pulse-btn { min-height:34px; padding:7px 10px; }
  .pulse-wifi-networks { padding:0 16px 18px; }
  .pulse-wifi-connect { padding:18px 16px; }
  .pulse-wifi-network { grid-template-columns:28px minmax(0,1fr) auto; }
  .pulse-wifi-actions { display:grid; grid-template-columns:1fr 1fr; }
}

/* Local first-time / recovery Wi-Fi setup */
.pulse-local-setup-body { padding:22px 24px 24px; display:grid; gap:16px; }
.pulse-local-setup-body .pulse-wifi-status { margin:0; }
.pulse-local-credential-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pulse-local-credential {
  min-width:0;
  padding:14px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"label copy" "value copy";
  gap:3px 12px;
  align-items:center;
  border:1px solid rgba(93,65,39,.11);
  border-radius:14px;
  background:#fffdf9;
}
.pulse-local-credential span { grid-area:label; color:#9a8877; font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.pulse-local-credential strong { grid-area:value; min-width:0; overflow:hidden; text-overflow:ellipsis; color:#46372b; font-size:.79rem; }
.pulse-local-credential button { grid-area:copy; align-self:center; }
.pulse-local-steps { margin:0; padding:0 0 0 22px; display:grid; gap:9px; color:#6f5e50; font-size:.7rem; line-height:1.55; }
.pulse-local-steps li { padding-left:4px; }
.pulse-local-steps code { color:#7f5a35; background:#f7ede0; }
@media (max-width:620px) {
  .pulse-local-credential-grid { grid-template-columns:1fr; }
  .pulse-local-setup-body { padding:18px; }
}

/* Terminal management polish */
.terminal-table-actions { min-width:248px; }
.terminal-action-grid {
  width:238px;
  margin-left:auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  white-space:normal;
}
.terminal-action-grid form { display:block; margin:0 !important; min-width:0; }
.terminal-action-button {
  width:100%;
  min-height:48px;
  padding:8px 10px;
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:center;
  gap:8px;
  text-align:left;
  border:1px solid rgba(92,66,43,.11);
  border-radius:11px;
  color:#5d4b3c;
  background:rgba(255,253,249,.78);
  transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.terminal-action-button:hover { transform:translateY(-1px); border-color:rgba(183,133,75,.28); background:#fffdf9; box-shadow:0 7px 18px rgba(74,49,28,.06); }
.terminal-action-button > span:last-child { min-width:0; display:grid; gap:1px; }
.terminal-action-button strong { color:inherit; font-size:.65rem; font-weight:850; line-height:1.15; }
.terminal-action-button small { overflow:hidden; text-overflow:ellipsis; color:#9b8979; font-size:.53rem; line-height:1.2; white-space:nowrap; }
.terminal-action-network { color:#654522; border-color:rgba(164,111,57,.22); background:linear-gradient(180deg,#fbf2e6,#f7ead9); }
.terminal-action-setup { color:#496451; border-color:rgba(74,126,91,.17); background:#f3f8f4; }
.terminal-action-danger { color:#8f5050; background:#fff8f7; }
.terminal-action-success { color:#3f6f56; background:#f3f9f5; }
.terminal-action-glyph {
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:8px;
  color:#8a6238;
  background:rgba(164,111,57,.09);
  font-size:.54rem;
  font-weight:900;
  letter-spacing:-.03em;
}
.terminal-action-setup .terminal-action-glyph { color:#4c765c; background:rgba(77,154,114,.09); }
.terminal-action-danger .terminal-action-glyph { color:#9c5555; background:rgba(184,87,87,.08); }
.terminal-action-success .terminal-action-glyph { color:#3f6f56; background:rgba(77,154,114,.09); }
.terminal-action-glyph-wifi { display:flex; align-items:flex-end; justify-content:center; gap:1.5px; }
.terminal-action-glyph-wifi i { width:2.5px; border-radius:2px; background:currentColor; }
.terminal-action-glyph-wifi i:nth-child(1){height:5px}.terminal-action-glyph-wifi i:nth-child(2){height:9px}.terminal-action-glyph-wifi i:nth-child(3){height:13px}.terminal-action-glyph-wifi i:nth-child(4){height:17px}

/* Premium Wi-Fi modal */
.pulse-wifi-modal .modal-dialog { max-width:690px; }
.pulse-wifi-modal-content { border-radius:26px; box-shadow:0 34px 110px rgba(61,40,21,.27); }
.pulse-wifi-head { padding:24px 26px 20px; align-items:center; background:linear-gradient(150deg,#fffdf9 0%,#fbf3e9 100%); }
.pulse-wifi-head-main { min-width:0; display:flex; align-items:center; gap:14px; }
.pulse-wifi-head-main > div:last-child { min-width:0; }
.pulse-wifi-head-icon {
  width:44px;
  height:44px;
  position:relative;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid rgba(164,111,57,.17);
  border-radius:14px;
  color:#a46f39;
  background:rgba(164,111,57,.07);
}
.pulse-wifi-head-icon span { position:absolute; left:50%; transform:translateX(-50%); border:2px solid currentColor; border-color:currentColor transparent transparent transparent; border-radius:50%; }
.pulse-wifi-head-icon span:nth-child(1){width:31px;height:31px;top:12px}.pulse-wifi-head-icon span:nth-child(2){width:21px;height:21px;top:17px}.pulse-wifi-head-icon span:nth-child(3){width:11px;height:11px;top:22px}.pulse-wifi-head-icon i{position:absolute;width:4px;height:4px;border-radius:50%;background:currentColor;bottom:10px}
.pulse-wifi-head h2 { margin:3px 0 4px; font-size:1.38rem; }
.pulse-wifi-head p { overflow:hidden; text-overflow:ellipsis; font-size:.72rem; white-space:nowrap; }
.pulse-wifi-close { width:38px; height:38px; border-radius:13px; font-size:1.25rem; transition:.15s ease; }
.pulse-wifi-close:hover { color:#543c27; border-color:rgba(164,111,57,.26); background:#fff; transform:rotate(3deg); }
.pulse-wifi-journey {
  padding:14px 26px 4px;
  display:grid;
  grid-template-columns:auto 1fr auto 1fr auto;
  align-items:center;
  gap:10px;
  color:#ac9a89;
}
.pulse-wifi-journey > span { display:flex; align-items:center; gap:7px; min-width:0; font-size:.57rem; font-weight:800; }
.pulse-wifi-journey b { width:22px; height:22px; display:grid; place-items:center; flex:0 0 auto; border:1px solid #e7d9ca; border-radius:50%; background:#fffdf9; font-size:.55rem; }
.pulse-wifi-journey em { font-style:normal; white-space:nowrap; }
.pulse-wifi-journey > i { height:1px; background:#eaded2; }
.pulse-wifi-journey > span.is-active { color:#7a532e; }
.pulse-wifi-journey > span.is-active b { color:#fff; border-color:#a46f39; background:#a46f39; box-shadow:0 0 0 4px rgba(164,111,57,.08); }
.pulse-wifi-journey > span.is-complete { color:#4d775d; }
.pulse-wifi-journey > span.is-complete b { color:#fff; border-color:#5e8b6c; background:#5e8b6c; }
.pulse-wifi-journey > i.is-complete { background:#8fb29a; }
.pulse-wifi-status { margin:16px 26px 0; padding:15px 16px; border-radius:15px; }
.pulse-wifi-toolbar { padding:21px 26px 11px; }
.pulse-wifi-toolbar .pulse-btn { min-height:36px; padding:8px 13px; border-radius:10px; }
.pulse-wifi-networks { max-height:360px; padding:0 26px 26px; gap:9px; scrollbar-width:thin; scrollbar-color:#b9a590 transparent; }
.pulse-wifi-network { min-height:69px; padding:11px 14px; border-radius:15px; }
.pulse-wifi-network.is-current { position:relative; border-color:rgba(77,154,114,.32); box-shadow:inset 3px 0 0 #5f9270; }
.pulse-wifi-network-copy strong { font-size:.79rem; }
.pulse-wifi-network-copy small { font-size:.62rem; }
.pulse-wifi-connect { padding:20px 26px 26px; }
.pulse-wifi-selected { padding:15px 16px; border-radius:15px; background:linear-gradient(180deg,#fbf3e8,#f8ecdd); }
.pulse-wifi-selected strong { font-size:.92rem; }
.pulse-wifi-actions .pulse-btn { min-height:38px; padding:8px 16px; border-radius:10px; }

/* Premium local onboarding modal */
.pulse-local-head-icon { color:#6a4a2b; font-size:.65rem; letter-spacing:.04em; }
.pulse-local-head-icon span,.pulse-local-head-icon i { display:none; }
.pulse-local-setup-body { padding:24px 26px 26px; gap:19px; }
.pulse-local-intro {
  padding:16px;
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:12px;
  align-items:start;
  border:1px solid rgba(77,154,114,.17);
  border-radius:16px;
  background:linear-gradient(145deg,#f4faf6,#eef6f0);
}
.pulse-local-intro-mark { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:#3f6f56; background:#fff; font-weight:900; box-shadow:0 6px 16px rgba(63,111,86,.08); }
.pulse-local-intro strong { display:block; color:#365f49; font-size:.76rem; }
.pulse-local-intro p { margin:4px 0 0; color:#698072; font-size:.65rem; line-height:1.5; }
.pulse-local-section-head { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:-9px; }
.pulse-local-section-head span { color:#4e3d30; font-size:.7rem; font-weight:850; }
.pulse-local-section-head small { color:#9a8878; font-size:.58rem; }
.pulse-local-credential-grid { gap:11px; }
.pulse-local-credential { min-height:78px; padding:14px 14px 13px; border-radius:15px; background:linear-gradient(180deg,#fffdf9,#fdf9f3); }
.pulse-local-credential strong { padding-top:2px; font-size:.83rem; font-variant-numeric:tabular-nums; }
.pulse-local-copy { grid-area:copy; min-width:56px; padding:7px 10px; align-self:center; border:1px solid rgba(164,111,57,.16); border-radius:9px; color:#76502d; background:#fbf1e5; font-size:.58rem; font-weight:850; transition:.15s ease; }
.pulse-local-copy:hover { border-color:rgba(164,111,57,.3); background:#f7e9d8; }
.pulse-local-steps { margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.pulse-local-steps > div { min-width:0; padding:12px 13px; display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; align-items:start; border:1px solid rgba(93,65,39,.10); border-radius:13px; background:#fffdf9; }
.pulse-local-steps b { width:28px; height:28px; display:grid; place-items:center; border-radius:9px; color:#8a6036; background:#f8ecdd; font-size:.62rem; }
.pulse-local-steps p { margin:0; display:grid; gap:2px; }
.pulse-local-steps strong { color:#4c3b2f; font-size:.65rem; }
.pulse-local-steps span { color:#8b7969; font-size:.58rem; line-height:1.42; }
.pulse-local-steps code { width:max-content; max-width:100%; padding:1px 4px; border-radius:4px; color:#7f5a35; background:#f7ede0; }
.pulse-local-recovery { padding:13px 14px; display:grid; grid-template-columns:30px minmax(0,1fr); gap:10px; align-items:center; border:1px dashed rgba(164,111,57,.24); border-radius:13px; color:#76573b; background:rgba(251,242,229,.58); }
.pulse-local-recovery > span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#fffaf4; font-size:1rem; }
.pulse-local-recovery > div { display:grid; gap:2px; }
.pulse-local-recovery strong { font-size:.65rem; }
.pulse-local-recovery small { color:#8c765f; font-size:.58rem; line-height:1.45; }

@media (max-width: 980px) {
  .terminal-table-actions { min-width:220px; }
  .terminal-action-grid { width:210px; }
  .terminal-action-button { min-height:44px; padding:7px 8px; grid-template-columns:24px minmax(0,1fr); gap:6px; }
  .terminal-action-glyph { width:24px; height:24px; }
}
@media (max-width: 620px) {
  .pulse-wifi-modal .modal-dialog { margin:10px; padding:0; }
  .pulse-wifi-head { padding:19px 18px 16px; }
  .pulse-wifi-head-icon { width:40px; height:40px; border-radius:12px; }
  .pulse-wifi-head h2 { font-size:1.18rem; }
  .pulse-wifi-head p { max-width:220px; }
  .pulse-wifi-journey { padding:12px 18px 2px; gap:6px; }
  .pulse-wifi-journey em { display:none; }
  .pulse-wifi-journey > span { justify-content:center; }
  .pulse-wifi-status { margin:14px 18px 0; }
  .pulse-wifi-toolbar { padding:18px 18px 10px; }
  .pulse-wifi-networks { padding:0 18px 20px; }
  .pulse-wifi-connect { padding:18px; }
  .pulse-local-setup-body { padding:18px; }
  .pulse-local-section-head { align-items:start; flex-direction:column; gap:2px; }
  .pulse-local-steps { grid-template-columns:1fr; }
}

/* Permanent staff deletion */
.pulse-link-danger { color:#b87070; }
.pulse-link-danger:hover { color:#d77d7d; }
.pulse-action-muted { color:var(--pulse-dim); font-size:.66rem; font-weight:650; }
.pulse-admin-body .pulse-link-danger { color:#a85f5f; }
.pulse-admin-body .pulse-link-danger:hover { color:#8f3f3f; }

/* Crew access controls on staff profile */
.pulse-crew-divider { height:1px; margin:22px 0; background:var(--pulse-border); }
.pulse-crew-heading { margin-bottom:10px; }
.pulse-crew-code-card { margin:12px 0; padding:14px; display:grid; gap:4px; border:1px solid rgba(255,201,107,.18); border-radius:11px; background:rgba(255,201,107,.055); }
.pulse-crew-code-card span { color:var(--pulse-muted); font-size:.66rem; }
.pulse-crew-code-card strong { color:#ffd98e; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:1.25rem; letter-spacing:.12em; }
.pulse-crew-code-card small { color:#7d918a; font-size:.62rem; }
.pulse-crew-action { margin-top:9px; }

/* Crew leave request review */
.pulse-leave-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.pulse-leave-review-card { padding:18px; }
.pulse-leave-review-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.pulse-leave-review-head h2 { margin:4px 0 2px; font-size:.98rem; }
.pulse-leave-review-head p { margin:0; color:var(--pulse-muted); font-size:.67rem; }
.pulse-leave-review-dates { display:grid; gap:3px; margin:15px 0; padding:12px; border:1px solid var(--pulse-border); border-radius:10px; background:rgba(255,255,255,.018); }
.pulse-leave-review-dates strong { font-size:.76rem; }
.pulse-leave-review-dates span { color:var(--pulse-muted); font-size:.66rem; }
.pulse-leave-review-note { margin:10px 0; }
.pulse-leave-review-note span { color:#657a73; text-transform:uppercase; letter-spacing:.08em; font-size:.56rem; font-weight:850; }
.pulse-leave-review-note p { margin:3px 0 0; color:#a9bbb5; font-size:.7rem; line-height:1.5; }
.pulse-leave-review-actions { display:flex; justify-content:flex-end; gap:8px; }
@media (max-width:900px) { .pulse-leave-review-grid { grid-template-columns:1fr; } }

/* Break management */
.attendance-section-tabs { display:flex; gap:7px; margin:-4px 0 14px; padding:5px; width:max-content; max-width:100%; border:1px solid var(--pulse-border); border-radius:12px; background:rgba(255,255,255,.018); }
.attendance-section-tabs a { padding:8px 13px; border-radius:8px; color:var(--pulse-muted); font-size:.68rem; font-weight:800; text-decoration:none; letter-spacing:.02em; }
.attendance-section-tabs a:hover { color:var(--pulse-text); background:rgba(255,255,255,.035); }
.attendance-section-tabs a.active { color:var(--pulse-accent-ink); background:var(--pulse-accent); box-shadow:0 7px 22px rgba(0,0,0,.12); }
.break-page-head { align-items:flex-end; }
.break-head-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.break-filterbar { grid-template-columns:minmax(180px,1.3fr) minmax(135px,.7fr) minmax(135px,.7fr) auto auto; }
.break-review-toggle { min-height:38px; padding:0 12px; display:flex; align-items:center; gap:8px; border:1px solid var(--pulse-border); border-radius:10px; color:var(--pulse-muted); background:rgba(255,255,255,.018); font-size:.68rem; font-weight:800; white-space:nowrap; cursor:pointer; }
.break-review-toggle input { width:15px; height:15px; accent-color:var(--pulse-accent); }
.break-kpi-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; margin-bottom:12px; }
.break-kpi { min-height:105px; padding:15px 16px; display:flex; flex-direction:column; justify-content:center; border:1px solid var(--pulse-border); border-radius:14px; background:linear-gradient(145deg,rgba(255,255,255,.03),rgba(255,255,255,.012)); }
.break-kpi > span { color:var(--pulse-muted); font-size:.61rem; font-weight:850; letter-spacing:.09em; text-transform:uppercase; }
.break-kpi > strong { margin-top:5px; color:var(--pulse-text); font-size:1.48rem; line-height:1.05; letter-spacing:-.04em; }
.break-kpi > small { margin-top:6px; color:var(--pulse-dim); font-size:.6rem; line-height:1.35; }
.break-kpi.live { border-color:rgba(87,242,176,.18); background:radial-gradient(circle at 100% 0%,rgba(87,242,176,.09),transparent 48%),rgba(87,242,176,.02); }
.break-kpi.live > strong { color:var(--pulse-accent); }
.break-kpi.attention { border-color:rgba(226,174,83,.22); background:radial-gradient(circle at 100% 0%,rgba(226,174,83,.09),transparent 48%),rgba(226,174,83,.018); }
.break-kpi.danger { border-color:rgba(224,102,102,.22); background:radial-gradient(circle at 100% 0%,rgba(224,102,102,.10),transparent 48%),rgba(224,102,102,.018); }
.break-kpi.danger > strong { color:#e78e8e; }
.break-live-panel,.break-pattern-panel { margin-bottom:12px; }
.break-panel-heading { padding:16px 18px 13px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; border-bottom:1px solid var(--pulse-border); }
.break-panel-heading.padded { padding-left:20px; padding-right:20px; }
.break-panel-heading h2 { margin:3px 0 0; font-size:1.02rem; }
.break-panel-heading > small { color:var(--pulse-dim); font-size:.62rem; text-align:right; }
.break-clear-state { min-height:88px; padding:17px 18px; display:flex; align-items:center; gap:12px; color:var(--pulse-muted); }
.break-clear-state > span { width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto; border:1px solid rgba(87,242,176,.16); border-radius:50%; color:var(--pulse-accent); background:rgba(87,242,176,.06); }
.break-clear-state > div { display:grid; gap:3px; }
.break-clear-state strong { color:var(--pulse-text); font-size:.76rem; }
.break-clear-state small { color:var(--pulse-dim); font-size:.62rem; }
.break-live-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; padding:14px; }
.break-live-card { min-width:0; padding:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; border:1px solid rgba(87,242,176,.14); border-radius:12px; background:rgba(87,242,176,.035); }
.break-live-card.over { border-color:rgba(224,102,102,.24); background:rgba(224,102,102,.04); }
.break-live-person { min-width:0; display:flex; align-items:center; gap:9px; }
.break-live-pulse { width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:var(--pulse-accent); box-shadow:0 0 0 5px rgba(87,242,176,.08); animation:breakLivePulse 1.8s ease-in-out infinite; }
.break-live-person > div { min-width:0; display:grid; gap:2px; }
.break-live-person strong { overflow:hidden; color:var(--pulse-text); font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.break-live-person small { color:var(--pulse-muted); font-size:.6rem; }
.break-live-time { text-align:right; }
.break-live-time strong { display:block; color:var(--pulse-text); font-size:1.08rem; letter-spacing:-.03em; }
.break-live-time small { color:var(--pulse-dim); font-size:.57rem; }
.break-live-card .break-status { grid-column:1/-1; justify-self:start; }
@keyframes breakLivePulse { 0%,100%{transform:scale(.9);opacity:.65} 50%{transform:scale(1.12);opacity:1} }
.break-status { display:inline-flex; align-items:center; width:max-content; max-width:100%; padding:5px 8px; border:1px solid var(--pulse-border); border-radius:999px; color:var(--pulse-muted); background:rgba(255,255,255,.02); font-size:.57rem; font-weight:850; letter-spacing:.025em; white-space:nowrap; }
.break-status-live { color:#79d8b1; border-color:rgba(87,242,176,.18); background:rgba(87,242,176,.055); }
.break-status-over { color:#e89595; border-color:rgba(224,102,102,.23); background:rgba(224,102,102,.055); }
.break-status-due,.break-status-missed { color:#e4bd7a; border-color:rgba(226,174,83,.22); background:rgba(226,174,83,.055); }
.break-status-ok { color:#a8c9bd; }
.break-status-short,.break-status-none,.break-status-planned { color:var(--pulse-dim); }
.break-row-review { background:rgba(224,102,102,.022); }
.break-row-review:hover { background:rgba(224,102,102,.045) !important; }
.break-variance { display:inline-flex; min-width:46px; justify-content:center; padding:4px 7px; border-radius:8px; color:var(--pulse-muted); background:rgba(255,255,255,.025); font-size:.64rem; font-weight:850; }
.break-variance.over { color:#e89595; background:rgba(224,102,102,.07); }
.break-variance.under { color:#c4a46e; background:rgba(226,174,83,.055); }
.break-pattern-badge { display:inline-flex; padding:5px 8px; border-radius:8px; color:var(--pulse-muted); background:rgba(255,255,255,.025); font-size:.58rem; font-weight:850; white-space:nowrap; }
.break-pattern-badge.review { color:#e89595; background:rgba(224,102,102,.07); }
.break-pattern-badge.attention { color:#cba25c; background:rgba(226,174,83,.065); }
.break-interval-list { display:grid; gap:2px; margin-top:4px; }
.break-interval-list span { color:var(--pulse-dim); font-size:.56rem; white-space:nowrap; }
.break-interval-list span.open { color:#78cbaa; font-weight:800; }
.break-anomaly { margin-top:4px; color:#e89595; font-size:.55rem; font-weight:800; }
.break-policy-note { margin-top:12px; padding:13px 15px; display:grid; gap:4px; border:1px dashed var(--pulse-border-strong); border-radius:12px; color:var(--pulse-muted); background:rgba(255,255,255,.012); }
.break-policy-note strong { color:var(--pulse-text); font-size:.68rem; }
.break-policy-note span { font-size:.61rem; line-height:1.55; }
.pulse-admin-body .attendance-section-tabs { border-color:rgba(93,65,39,.12); background:#fffaf4; }
.pulse-admin-body .attendance-section-tabs a { color:#7e6c5d; }
.pulse-admin-body .attendance-section-tabs a:hover { color:#4a3628; background:#f7ecdf; }
.pulse-admin-body .attendance-section-tabs a.active { color:#fffaf2; background:#a9703b; box-shadow:none; }
.pulse-admin-body .break-review-toggle,.pulse-admin-body .break-kpi,.pulse-admin-body .break-live-card { border-color:rgba(93,65,39,.11); background:#fffdf9; }
.pulse-admin-body .break-kpi > span,.pulse-admin-body .break-kpi > small,.pulse-admin-body .break-panel-heading > small,.pulse-admin-body .break-live-person small,.pulse-admin-body .break-live-time small,.pulse-admin-body .break-policy-note { color:#917f70; }
.pulse-admin-body .break-kpi > strong,.pulse-admin-body .break-clear-state strong,.pulse-admin-body .break-live-person strong,.pulse-admin-body .break-live-time strong,.pulse-admin-body .break-panel-heading h2,.pulse-admin-body .break-policy-note strong { color:#49362a; }
.pulse-admin-body .break-kpi.live { border-color:rgba(63,111,86,.16); background:#f7fbf8; }
.pulse-admin-body .break-kpi.live > strong { color:#3f6f56; }
.pulse-admin-body .break-kpi.attention { border-color:rgba(166,112,47,.17); background:#fff9ee; }
.pulse-admin-body .break-kpi.danger { border-color:rgba(154,77,77,.17); background:#fff6f4; }
.pulse-admin-body .break-kpi.danger > strong { color:#9a4d4d; }
.pulse-admin-body .break-live-card { border-color:rgba(63,111,86,.15); background:#f7fbf8; }
.pulse-admin-body .break-live-card.over { border-color:rgba(154,77,77,.18); background:#fff6f4; }
.pulse-admin-body .break-live-pulse { background:#4f876b; box-shadow:0 0 0 5px rgba(79,135,107,.08); }
.pulse-admin-body .break-status { border-color:rgba(93,65,39,.12); color:#806e60; background:#fffaf4; }
.pulse-admin-body .break-status-live { color:#3f6f56; border-color:rgba(63,111,86,.17); background:#edf6f0; }
.pulse-admin-body .break-status-over { color:#914d4d; border-color:rgba(154,77,77,.17); background:#fff0ee; }
.pulse-admin-body .break-status-due,.pulse-admin-body .break-status-missed { color:#8a642f; border-color:rgba(166,112,47,.18); background:#fff6e9; }
.pulse-admin-body .break-row-review { background:#fff9f7; }
.pulse-admin-body .break-row-review:hover { background:#fff4f0 !important; }
.pulse-admin-body .break-variance { color:#725f50; background:#f8f0e7; }
.pulse-admin-body .break-variance.over { color:#914d4d; background:#fff0ee; }
.pulse-admin-body .break-variance.under { color:#8a642f; background:#fff6e9; }
.pulse-admin-body .break-pattern-badge { color:#766457; background:#f8f0e7; }
.pulse-admin-body .break-pattern-badge.review { color:#914d4d; background:#fff0ee; }
.pulse-admin-body .break-pattern-badge.attention { color:#8a642f; background:#fff6e9; }
.pulse-admin-body .break-interval-list span { color:#9a8879; }
.pulse-admin-body .break-interval-list span.open { color:#3f6f56; }
.pulse-admin-body .break-policy-note { border-color:rgba(93,65,39,.17); background:#fffaf4; }
@media(max-width:1200px){ .break-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.break-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:820px){ .break-filterbar{grid-template-columns:1fr 1fr}.break-filterbar select{grid-column:1/-1}.break-review-toggle{min-height:42px}.break-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.break-live-grid{grid-template-columns:1fr}.break-panel-heading{align-items:flex-start;flex-direction:column;gap:5px}.break-panel-heading>small{text-align:left}.break-head-actions{justify-content:flex-start}.attendance-section-tabs{width:100%}.attendance-section-tabs a{flex:1;text-align:center} }
@media(max-width:520px){ .break-filterbar{grid-template-columns:1fr}.break-filterbar select{grid-column:auto}.break-kpi-grid{grid-template-columns:1fr 1fr}.break-kpi{min-height:94px;padding:13px}.break-kpi>strong{font-size:1.28rem} }

/* Pulse gamification: positive recognition, never an hours leaderboard. */
.pulse-gamification-hero{display:flex;justify-content:space-between;gap:24px;align-items:end}.pulse-gamification-hero>div{max-width:760px}.pulse-filter-inline{display:flex;align-items:end;gap:10px;min-width:300px}.pulse-filter-inline label,.pulse-recognition-form label,.pulse-revoke-card label{display:grid;gap:6px;font-size:.72rem;font-weight:800;color:var(--pulse-muted,#756657);text-transform:uppercase;letter-spacing:.06em}.pulse-filter-inline select,.pulse-recognition-form select,.pulse-recognition-form textarea,.pulse-revoke-card textarea{width:100%;border:1px solid var(--pulse-line,#e4d8ca);border-radius:12px;background:#fffdf9;color:var(--pulse-ink,#34271d);padding:10px 12px;font:inherit;text-transform:none;letter-spacing:normal;outline:none}.pulse-team-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.pulse-team-kpis article{min-width:0}.pulse-recognition-composer{margin-top:18px}.pulse-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.pulse-panel-heading h2{margin:2px 0 0}.pulse-recognition-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,.65fr) minmax(260px,1.8fr) auto;align-items:end;gap:12px}.pulse-recognition-form .wide{min-width:0}.pulse-score-chip{display:inline-grid;place-items:center;min-width:52px;height:34px;padding:0 10px;border-radius:999px;background:#30261f;color:#fff8ee;font-size:1rem;font-weight:900}.pulse-score-chip.provisional{background:#8f765f}.pulse-evidence-mini{display:grid;gap:3px;font-size:.7rem;color:#756657}.pulse-evidence-mini span{display:flex;justify-content:space-between;gap:10px}.pulse-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.pulse-team-card{padding:16px;border:1px solid #eadfd3;border-radius:16px;background:#fffdf9}.pulse-team-card header{display:flex;justify-content:space-between;gap:12px}.pulse-team-card p{margin:8px 0 3px}.pulse-team-card small{color:#78695c}.pulse-goal-meter,.crew-team-meter,.crew-achievement-progress{height:7px;border-radius:999px;background:#eee4da;overflow:hidden}.pulse-goal-meter{margin-top:13px}.pulse-goal-meter i,.crew-team-meter i,.crew-achievement-progress i{display:block;height:100%;background:linear-gradient(90deg,#8d6847,#c7a57e);border-radius:inherit}.pulse-recognition-list{display:grid}.pulse-recognition-ledger-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;padding:15px 18px;border-top:1px solid #eee4da}.pulse-recognition-ledger-item:first-child{border-top:0}.pulse-recognition-ledger-item.revoked{opacity:.58}.pulse-recognition-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#f5ece2;font-size:1.05rem}.pulse-recognition-copy{display:grid;gap:2px}.pulse-recognition-copy span,.pulse-recognition-copy em{font-size:.72rem;color:#7c6c5e}.pulse-recognition-copy p{margin:3px 0 0}.pulse-recognition-status{display:grid;justify-items:end;align-content:center;gap:7px;font-size:.68rem;color:#7c6c5e}.pulse-revoke-form[hidden]{display:none}.pulse-revoke-form{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:20px}.pulse-revoke-backdrop{position:absolute;inset:0;background:rgba(38,29,22,.62);backdrop-filter:blur(4px)}.pulse-revoke-card{position:relative;width:min(520px,100%);padding:24px;border-radius:20px;background:#fffdf9;box-shadow:0 30px 90px rgba(0,0,0,.28)}.pulse-revoke-card h2{margin:3px 0 5px}.pulse-revoke-card label{margin:18px 0}.pulse-revoke-card>div:last-child{display:flex;justify-content:flex-end;gap:10px}.pulse-policy-note{display:flex;gap:10px;margin:16px 0 0;padding:14px 16px;border:1px solid #eadfd3;border-radius:14px;background:#fbf6ef;font-size:.76rem;color:#6f6155}.pulse-policy-note strong{white-space:nowrap;color:#392b20}@media(max-width:1100px){.pulse-team-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.pulse-recognition-form{grid-template-columns:1fr 1fr}.pulse-recognition-form .wide{grid-column:1/-1}}@media(max-width:720px){.pulse-gamification-hero{align-items:stretch;flex-direction:column}.pulse-filter-inline{min-width:0}.pulse-team-kpis{grid-template-columns:1fr 1fr}.pulse-recognition-form{grid-template-columns:1fr}.pulse-recognition-form .wide{grid-column:auto}.pulse-recognition-ledger-item{grid-template-columns:38px 1fr}.pulse-recognition-status{grid-column:2;justify-items:start}.pulse-policy-note{display:grid}}

/* ========================================================================== */
/* Pulse gamification v2 — production layout, evidence-first scoring           */
/* ========================================================================== */
.pulse-admin-body .pulse-gamification-page {
  display:grid;
  gap:20px;
  width:100%;
  min-width:0;
}
.pulse-admin-body .pulse-gamification-page > * { min-width:0; }
.pulse-admin-body .pulse-gamification-page .pulse-gamification-hero {
  margin:0;
  min-height:164px;
  padding:28px 30px;
  align-items:center;
}
.pulse-admin-body .pulse-gamification-hero-copy { position:relative; z-index:2; min-width:0; }
.pulse-admin-body .pulse-gamification-hero-copy h1 { margin-top:5px; }
.pulse-admin-body .pulse-gamification-hero-copy p { max-width:790px; line-height:1.58; }
.pulse-admin-body .pulse-filter-inline {
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(190px,1fr) auto;
  align-items:end;
  gap:10px;
  min-width:310px;
  padding:12px;
  border:1px solid rgba(120,82,49,.12);
  border-radius:16px;
  background:rgba(255,253,249,.62);
  backdrop-filter:blur(10px);
}
.pulse-admin-body .pulse-filter-inline label { margin:0; }
.pulse-admin-body .pulse-filter-inline select,
.pulse-admin-body .pulse-recognition-form select,
.pulse-admin-body .pulse-recognition-form textarea,
.pulse-admin-body .pulse-revoke-card textarea {
  min-height:43px;
  border-color:rgba(102,70,43,.18);
  background:#fffdf9;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.pulse-admin-body .pulse-filter-inline select:focus,
.pulse-admin-body .pulse-recognition-form select:focus,
.pulse-admin-body .pulse-recognition-form textarea:focus,
.pulse-admin-body .pulse-revoke-card textarea:focus {
  border-color:rgba(164,111,57,.55);
  box-shadow:0 0 0 3px rgba(164,111,57,.09);
  background:#fff;
}

.pulse-admin-body .pulse-kpi-grid {
  display:grid;
  gap:12px;
  margin:0;
}
.pulse-admin-body .pulse-team-kpis { grid-template-columns:repeat(5,minmax(0,1fr)); }
.pulse-admin-body .pulse-kpi-card {
  position:relative;
  display:grid;
  align-content:start;
  gap:8px;
  min-width:0;
  min-height:150px;
  padding:18px 18px 17px;
  overflow:hidden;
  border:1px solid rgba(93,65,39,.105);
  border-radius:18px;
  background:rgba(255,253,249,.93);
  box-shadow:0 14px 38px rgba(82,57,34,.052);
}
.pulse-admin-body .pulse-kpi-card:after {
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  right:-62px;
  bottom:-70px;
  border:1px solid rgba(173,125,74,.10);
  border-radius:50%;
}
.pulse-admin-body .pulse-kpi-card.pulse-kpi-primary {
  border-color:rgba(169,112,56,.22);
  background:linear-gradient(145deg,#f3e4d0 0%,#fffaf3 76%);
}
.pulse-admin-body .pulse-kpi-card.is-empty { background:#fbf8f3; }
.pulse-admin-body .pulse-kpi-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.pulse-admin-body .pulse-kpi-top span {
  color:#8b735f;
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-kpi-top i {
  display:grid;
  place-items:center;
  min-width:27px;
  height:27px;
  padding:0 7px;
  border-radius:9px;
  color:#9b7049;
  background:#f4e9dc;
  font-size:.68rem;
  font-style:normal;
  font-weight:850;
}
.pulse-admin-body .pulse-kpi-card > strong {
  margin-top:3px;
  color:#3d2e22;
  font-size:2.15rem;
  line-height:1;
  letter-spacing:-.045em;
}
.pulse-admin-body .pulse-kpi-card.is-empty > strong { color:#a79789; }
.pulse-admin-body .pulse-kpi-card > small {
  margin-top:auto;
  color:#8d7c6d;
  font-size:.68rem;
  line-height:1.45;
}

.pulse-admin-body .pulse-evidence-note {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  overflow:hidden;
  border:1px solid rgba(93,65,39,.10);
  border-radius:15px;
  background:rgba(93,65,39,.08);
  box-shadow:0 8px 24px rgba(82,57,34,.028);
}
.pulse-admin-body .pulse-evidence-note > div {
  display:grid;
  gap:2px;
  min-width:0;
  padding:12px 15px;
  background:#fffaf4;
}
.pulse-admin-body .pulse-evidence-note span {
  color:#a38d79;
  font-size:.57rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-evidence-note strong {
  color:#5b4737;
  font-size:.72rem;
  font-weight:750;
}

.pulse-admin-body .pulse-gamification-page .pulse-panel {
  margin:0;
  border-radius:20px;
}
.pulse-admin-body .pulse-recognition-composer { padding:24px; }
.pulse-admin-body .pulse-panel-heading {
  align-items:flex-start;
  margin:0 0 20px;
}
.pulse-admin-body .pulse-panel-heading > div { min-width:0; }
.pulse-admin-body .pulse-panel-heading h2 {
  margin:4px 0 0;
  color:#3d2e22;
  font-size:1.34rem;
  letter-spacing:-.03em;
}
.pulse-admin-body .pulse-panel-heading p {
  margin:6px 0 0;
  max-width:760px;
  color:#8b796a;
  font-size:.72rem;
  line-height:1.5;
}
.pulse-admin-body .pulse-panel-heading.padded { padding:22px 24px 19px; margin:0; }
.pulse-admin-body .pulse-recognition-audit-badge,
.pulse-admin-body .pulse-overview-note {
  flex:0 0 auto;
  align-self:center;
  padding:7px 10px;
  border:1px solid rgba(106,76,51,.11);
  border-radius:999px;
  color:#8c7867;
  background:#fbf5ed;
  font-size:.61rem;
  font-weight:750;
  white-space:nowrap;
}
.pulse-admin-body .pulse-recognition-form {
  display:grid;
  grid-template-columns:minmax(200px,1.05fr) minmax(170px,.72fr) minmax(300px,1.75fr) auto;
  align-items:end;
  gap:14px;
}
.pulse-admin-body .pulse-recognition-form label,
.pulse-admin-body .pulse-revoke-card label {
  align-content:start;
  gap:7px;
  min-width:0;
  margin:0;
}
.pulse-admin-body .pulse-recognition-form label > span:first-child,
.pulse-admin-body .pulse-revoke-card label > span:first-child {
  color:#7e6855;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-recognition-form textarea { min-height:74px; resize:vertical; }
.pulse-admin-body .pulse-recognition-submit { min-height:43px; padding-inline:18px; white-space:nowrap; }
.pulse-admin-body .pulse-recognition-submit:disabled { opacity:.68; cursor:wait; }
.pulse-admin-body .pulse-field-help {
  color:#9b8878 !important;
  font-size:.58rem !important;
  font-weight:550 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}
.pulse-admin-body .pulse-field-error {
  min-height:0;
  color:#a34848 !important;
  font-size:.61rem !important;
  font-weight:750 !important;
  letter-spacing:0 !important;
  line-height:1.35;
  text-transform:none !important;
}
.pulse-admin-body .pulse-field-error:empty { display:none; }
.pulse-admin-body .input-validation-error {
  border-color:rgba(171,72,72,.55) !important;
  background:#fffafa !important;
  box-shadow:0 0 0 3px rgba(171,72,72,.06) !important;
}
.pulse-admin-body .pulse-form-alert {
  display:grid;
  gap:3px;
  margin:-2px 0 17px;
  padding:12px 14px;
  border:1px solid rgba(171,72,72,.18);
  border-radius:13px;
  color:#7f3f3f;
  background:#fff4f2;
  font-size:.7rem;
}
.pulse-admin-body .pulse-form-alert strong { color:#7a3535; font-size:.72rem; }
.pulse-admin-body .pulse-form-alert.compact { margin:12px 0 0; }

.pulse-admin-body .pulse-staff-overview,
.pulse-admin-body .pulse-recognition-ledger { overflow:hidden; }
.pulse-admin-body .pulse-table-wrap { border-top:1px solid rgba(93,65,39,.08); }
.pulse-admin-body .pulse-gamification-table { min-width:900px; }
.pulse-admin-body .pulse-gamification-table th { padding:13px 18px; }
.pulse-admin-body .pulse-gamification-table td { padding:15px 18px; }
.pulse-admin-body .pulse-gamification-table tbody tr:hover { background:#fffaf4; }
.pulse-admin-body .pulse-score-chip {
  min-width:56px;
  height:36px;
  background:linear-gradient(135deg,#5b4635,#33271f);
  box-shadow:0 7px 16px rgba(57,40,28,.10);
}
.pulse-admin-body .pulse-score-chip.provisional { background:linear-gradient(135deg,#9a806a,#74604f); }
.pulse-admin-body .pulse-evidence-mini { min-width:145px; gap:4px; }
.pulse-admin-body .pulse-evidence-mini span { padding-bottom:3px; border-bottom:1px dashed rgba(93,65,39,.09); }
.pulse-admin-body .pulse-evidence-mini span:last-child { padding-bottom:0; border-bottom:0; }
.pulse-admin-body .pulse-evidence-mini b { color:#4c392c; }

.pulse-admin-body .pulse-team-goals-panel { padding:24px; }
.pulse-admin-body .pulse-team-grid { gap:14px; }
.pulse-admin-body .pulse-team-card {
  padding:18px;
  border-color:rgba(93,65,39,.11);
  background:#fffdf9;
  box-shadow:0 8px 24px rgba(82,57,34,.035);
}
.pulse-admin-body .pulse-team-card.is-empty { background:#fbf8f3; }
.pulse-admin-body .pulse-team-card header strong { color:#49362a; }
.pulse-admin-body .pulse-team-card header span { color:#8f7763; font-size:.72rem; font-weight:800; }
.pulse-admin-body .pulse-team-card p { color:#5e4939; }
.pulse-admin-body .pulse-team-card p span { color:#9a8878; }

.pulse-admin-body .pulse-recognition-list { border-top:1px solid rgba(93,65,39,.08); }
.pulse-admin-body .pulse-recognition-ledger-item {
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:14px;
  padding:17px 24px;
  border-top:1px solid rgba(93,65,39,.08);
}
.pulse-admin-body .pulse-recognition-ledger-item:first-child { border-top:0; }
.pulse-admin-body .pulse-recognition-ledger-item:hover { background:#fffaf4; }
.pulse-admin-body .pulse-recognition-ledger-item.revoked { opacity:.62; background:#fbf8f4; }
.pulse-admin-body .pulse-recognition-copy p { margin-top:5px; color:#584536; line-height:1.45; }
.pulse-admin-body .pulse-recognition-status { min-width:124px; }

.pulse-admin-body .pulse-policy-note {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:start;
  gap:12px;
  margin:0;
  padding:16px 18px;
  border-color:rgba(93,65,39,.12);
  background:#fbf6ef;
  box-shadow:0 8px 24px rgba(82,57,34,.025);
  line-height:1.52;
}
.pulse-admin-body .pulse-policy-note strong { color:#4a3628; }
.pulse-admin-body .pulse-policy-note span { color:#806e5f; }

.pulse-admin-body .pulse-revoke-card {
  border:1px solid rgba(93,65,39,.12);
  background:#fffdf9;
}
.pulse-admin-body .pulse-revoke-card > p { color:#806e5f; }

@media (max-width: 1320px) {
  .pulse-admin-body .pulse-team-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .pulse-admin-body .pulse-recognition-form { grid-template-columns:1fr 1fr; }
  .pulse-admin-body .pulse-recognition-form .wide { grid-column:1 / -1; }
  .pulse-admin-body .pulse-recognition-submit { justify-self:start; }
}
@media (max-width: 980px) {
  .pulse-admin-body .pulse-gamification-page { gap:16px; }
  .pulse-admin-body .pulse-gamification-page .pulse-gamification-hero { padding:23px; align-items:stretch; }
  .pulse-admin-body .pulse-gamification-hero { flex-direction:column; }
  .pulse-admin-body .pulse-filter-inline { width:100%; min-width:0; max-width:440px; }
  .pulse-admin-body .pulse-evidence-note { grid-template-columns:1fr 1fr; }
  .pulse-admin-body .pulse-panel-heading { gap:12px; }
}
@media (max-width: 700px) {
  .pulse-admin-body .pulse-gamification-page { gap:13px; }
  .pulse-admin-body .pulse-gamification-page .pulse-gamification-hero { padding:19px; border-radius:18px; }
  .pulse-admin-body .pulse-filter-inline { grid-template-columns:1fr; padding:10px; }
  .pulse-admin-body .pulse-filter-inline .pulse-btn { width:100%; }
  .pulse-admin-body .pulse-team-kpis { grid-template-columns:1fr 1fr; gap:9px; }
  .pulse-admin-body .pulse-kpi-card { min-height:132px; padding:15px; }
  .pulse-admin-body .pulse-kpi-card > strong { font-size:1.8rem; }
  .pulse-admin-body .pulse-evidence-note { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-recognition-composer,
  .pulse-admin-body .pulse-team-goals-panel { padding:18px; }
  .pulse-admin-body .pulse-panel-heading,
  .pulse-admin-body .pulse-panel-heading.padded { align-items:flex-start; flex-direction:column; }
  .pulse-admin-body .pulse-panel-heading.padded { padding:18px; }
  .pulse-admin-body .pulse-recognition-audit-badge,
  .pulse-admin-body .pulse-overview-note { align-self:flex-start; white-space:normal; }
  .pulse-admin-body .pulse-recognition-form { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-recognition-form .wide { grid-column:auto; }
  .pulse-admin-body .pulse-recognition-submit { width:100%; }
  .pulse-admin-body .pulse-recognition-ledger-item { grid-template-columns:40px minmax(0,1fr); padding:15px 18px; }
  .pulse-admin-body .pulse-recognition-status { grid-column:2; min-width:0; justify-items:start; }
  .pulse-admin-body .pulse-policy-note { grid-template-columns:1fr; }
}
@media (max-width: 460px) {
  .pulse-admin-body .pulse-team-kpis { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-kpi-card { min-height:118px; }
}

/* QRelia Pulse manager access */
.pulse-admin-body .pulse-access-page { display:grid; gap:18px; }
.pulse-admin-body .pulse-access-hero {
  display:flex; align-items:stretch; justify-content:space-between; gap:22px;
  padding:28px; border:1px solid rgba(93,65,39,.11); border-radius:22px;
  background:linear-gradient(135deg,#fffdf9,#f8efe4); box-shadow:0 12px 34px rgba(82,57,34,.05);
}
.pulse-admin-body .pulse-access-hero > div:first-child { max-width:820px; }
.pulse-admin-body .pulse-access-hero h1 { margin:5px 0 8px; color:#3d2e22; font-size:2rem; letter-spacing:-.045em; }
.pulse-admin-body .pulse-access-hero p { margin:0; color:#7f6c5d; line-height:1.58; }
.pulse-admin-body .pulse-access-role-card {
  min-width:230px; display:grid; align-content:center; gap:4px; padding:18px 20px;
  border:1px solid rgba(93,65,39,.12); border-radius:17px; background:#fffaf4;
}
.pulse-admin-body .pulse-access-role-card span { color:#9b8878; font-size:.6rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.pulse-admin-body .pulse-access-role-card strong { color:#4c392c; font-size:1.25rem; }
.pulse-admin-body .pulse-access-role-card small { color:#887565; line-height:1.4; }
.pulse-admin-body .pulse-security-warning {
  display:grid; grid-template-columns:auto 1fr; gap:8px 14px; padding:15px 17px;
  border:1px solid rgba(166,91,44,.2); border-radius:15px; background:#fff5e9; color:#7c4c2c;
}
.pulse-admin-body .pulse-security-warning strong { grid-column:1 / -1; }
.pulse-admin-body .pulse-security-warning span { grid-column:1 / -1; font-size:.76rem; line-height:1.5; }
.pulse-admin-body .pulse-access-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.7fr); gap:18px; }
.pulse-admin-body .pulse-access-create,
.pulse-admin-body .pulse-access-security { padding:24px; }
.pulse-admin-body .pulse-access-form { display:grid; gap:14px; }
.pulse-admin-body .pulse-access-form label,
.pulse-admin-body .pulse-access-password-modal label { display:grid; gap:7px; margin:0; }
.pulse-admin-body .pulse-access-form label > span:first-child,
.pulse-admin-body .pulse-access-password-modal label > span:first-child {
  color:#7e6855; font-size:.64rem; font-weight:850; letter-spacing:.075em; text-transform:uppercase;
}
.pulse-admin-body .pulse-access-name-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pulse-admin-body .pulse-access-create-button { justify-self:start; margin-top:3px; }
.pulse-admin-body .pulse-access-security h2 { margin:5px 0 18px; color:#3d2e22; font-size:1.35rem; }
.pulse-admin-body .pulse-access-security-list { display:grid; gap:8px; }
.pulse-admin-body .pulse-access-security-list > div {
  display:grid; grid-template-columns:34px 1fr; gap:10px; align-items:start; padding:11px 0; border-top:1px solid rgba(93,65,39,.08);
}
.pulse-admin-body .pulse-access-security-list > div:first-child { border-top:0; }
.pulse-admin-body .pulse-access-security-list b {
  display:grid; place-items:center; width:30px; height:30px; border-radius:9px; background:#f2e6d9; color:#8b6749; font-size:.62rem;
}
.pulse-admin-body .pulse-access-security-list span { display:grid; gap:2px; }
.pulse-admin-body .pulse-access-security-list strong { color:#4b392d; font-size:.78rem; }
.pulse-admin-body .pulse-access-security-list small { color:#8c7969; line-height:1.42; }
.pulse-admin-body .pulse-access-directory { overflow:hidden; }
.pulse-admin-body .pulse-access-list { border-top:1px solid rgba(93,65,39,.08); }
.pulse-admin-body .pulse-access-account {
  display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:14px; align-items:center;
  padding:17px 24px; border-top:1px solid rgba(93,65,39,.075); background:#fffdf9;
}
.pulse-admin-body .pulse-access-account:first-child { border-top:0; }
.pulse-admin-body .pulse-access-account.is-suspended { background:#faf7f3; opacity:.72; }
.pulse-admin-body .pulse-access-avatar {
  display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#efe2d5; color:#72563f; font-weight:900;
}
.pulse-admin-body .pulse-access-identity { min-width:0; display:grid; gap:3px; }
.pulse-admin-body .pulse-access-name-line { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.pulse-admin-body .pulse-access-name-line > strong { color:#443328; font-size:.9rem; }
.pulse-admin-body .pulse-access-identity > span { color:#7f6b5b; font-size:.75rem; overflow:hidden; text-overflow:ellipsis; }
.pulse-admin-body .pulse-access-identity > small { color:#a08d7c; font-size:.62rem; }
.pulse-admin-body .pulse-access-role,
.pulse-admin-body .pulse-access-state,
.pulse-admin-body .pulse-access-protected {
  display:inline-flex; align-items:center; min-height:23px; padding:3px 8px; border-radius:999px; font-size:.57rem; font-weight:850; letter-spacing:.035em;
}
.pulse-admin-body .pulse-access-role { color:#6d523e; background:#f1e4d7; }
.pulse-admin-body .pulse-access-role.role-developer { color:#fff; background:#4b392d; }
.pulse-admin-body .pulse-access-role.role-unassigned { color:#8b4f3b; background:#f7e3dc; }
.pulse-admin-body .pulse-access-state.active { color:#477052; background:#e9f3e9; }
.pulse-admin-body .pulse-access-state.suspended { color:#8b4f3b; background:#f5e5df; }
.pulse-admin-body .pulse-access-state.password { color:#7c6537; background:#f5edd5; }
.pulse-admin-body .pulse-access-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.pulse-admin-body .pulse-inline-form { margin:0; }
.pulse-admin-body .pulse-access-protected { color:#6b5b4d; background:#f2ece5; }
.pulse-admin-body .pulse-access-password-modal { padding:24px; border:0; border-radius:20px; }
.pulse-admin-body .pulse-access-password-modal form { display:grid; gap:14px; }
.pulse-admin-body .pulse-access-password-head h2 { margin:4px 0 5px; color:#3d2e22; font-size:1.35rem; }
.pulse-admin-body .pulse-access-password-head p { margin:0; color:#887565; font-size:.75rem; }
.pulse-admin-body .pulse-access-password-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:4px; }

@media (max-width: 980px) {
  .pulse-admin-body .pulse-access-hero { flex-direction:column; }
  .pulse-admin-body .pulse-access-role-card { min-width:0; }
  .pulse-admin-body .pulse-access-grid { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-access-account { grid-template-columns:42px minmax(0,1fr); }
  .pulse-admin-body .pulse-access-actions,
  .pulse-admin-body .pulse-access-protected { grid-column:2; justify-content:flex-start; }
}
@media (max-width: 620px) {
  .pulse-admin-body .pulse-access-hero,
  .pulse-admin-body .pulse-access-create,
  .pulse-admin-body .pulse-access-security { padding:18px; }
  .pulse-admin-body .pulse-access-name-grid { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-access-account { padding:15px 17px; }
  .pulse-admin-body .pulse-access-actions { align-items:stretch; flex-direction:column; }
  .pulse-admin-body .pulse-access-actions .pulse-btn { width:100%; }
  .pulse-admin-body .pulse-access-password-actions { flex-direction:column-reverse; }
  .pulse-admin-body .pulse-access-password-actions .pulse-btn { width:100%; }
}

/* Manager access creation hotfix: explicit outcome + one-time credentials */
.pulse-admin-body .pulse-access-form .validation-summary-valid { display:none; }
.pulse-admin-body .pulse-access-auto-password {
  display:grid; gap:3px; padding:12px 14px; border:1px solid rgba(82,111,78,.14);
  border-radius:13px; background:#f3f8f1; color:#526a50;
}
.pulse-admin-body .pulse-access-auto-password strong { font-size:.7rem; }
.pulse-admin-body .pulse-access-auto-password span { color:#71806d; font-size:.63rem; line-height:1.45; }
.pulse-admin-body .pulse-access-credentials {
  display:grid; grid-template-columns:46px minmax(0,1fr); gap:16px; align-items:start;
  padding:22px 24px; border:1px solid rgba(67,119,76,.2); border-radius:18px;
  background:linear-gradient(135deg,#f2f9ef,#fbfdf8); box-shadow:0 12px 30px rgba(64,105,69,.07);
}
.pulse-admin-body .pulse-access-credentials-icon {
  display:grid; place-items:center; width:44px; height:44px; border-radius:14px;
  background:#dcefdc; color:#3e7347; font-size:1.1rem; font-weight:900;
}
.pulse-admin-body .pulse-access-credentials-copy { min-width:0; display:grid; gap:7px; }
.pulse-admin-body .pulse-access-credentials-copy h2 { margin:0; color:#354a37; font-size:1.2rem; }
.pulse-admin-body .pulse-access-credentials-copy p { margin:0; color:#637363; font-size:.75rem; line-height:1.5; }
.pulse-admin-body .pulse-access-credentials-copy > small { color:#7d8b7d; font-size:.62rem; line-height:1.45; }
.pulse-admin-body .pulse-access-credential-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:5px; }
.pulse-admin-body .pulse-access-credential-grid label { display:grid; gap:6px; margin:0; }
.pulse-admin-body .pulse-access-credential-grid label > span {
  color:#637363; font-size:.6rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase;
}
.pulse-admin-body .pulse-access-credential-grid label > div { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.pulse-admin-body .pulse-access-credential-grid input {
  min-width:0; height:40px; padding:0 11px; border:1px solid rgba(65,102,68,.18); border-right:0;
  border-radius:10px 0 0 10px; background:#fff; color:#364c39; font-size:.72rem; font-weight:750;
}
.pulse-admin-body .pulse-copy-button {
  min-width:62px; border:1px solid rgba(65,102,68,.18); border-radius:0 10px 10px 0;
  background:#e4f0e2; color:#46684a; font-size:.62rem; font-weight:850; cursor:pointer;
}
.pulse-admin-body .pulse-copy-button:hover { background:#dcebd9; }
@media (max-width: 700px) {
  .pulse-admin-body .pulse-access-credentials { grid-template-columns:1fr; padding:18px; }
  .pulse-admin-body .pulse-access-credential-grid { grid-template-columns:1fr; }
}

/* Manager access action feedback */
.pulse-admin-body .pulse-access-operation-success {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 18px;
  padding:13px 15px;
  border:1px solid rgba(61,126,91,.18);
  border-radius:13px;
  background:#f2fbf5;
  color:#365f48;
  font-size:.76rem;
}
.pulse-admin-body .pulse-access-operation-success strong { color:#294c38; }
.pulse-admin-body .pulse-access-operation-error { margin-bottom:18px; }

/* Manager access polish */
.pulse-admin-body .pulse-access-hero {
  align-items:center;
  padding:28px 30px;
  border-color:rgba(93,65,39,.10);
  background:
    radial-gradient(circle at 100% 0, rgba(226,204,178,.28), transparent 34%),
    linear-gradient(135deg,#fffdf9 0%,#f8efe4 100%);
}
.pulse-admin-body .pulse-access-hero h1 { font-size:2.18rem; }
.pulse-admin-body .pulse-access-role-card {
  min-width:250px;
  padding:19px 21px;
  border-color:rgba(93,65,39,.10);
  background:rgba(255,253,249,.72);
  box-shadow:0 8px 24px rgba(82,57,34,.035);
}
.pulse-admin-body .pulse-access-role-card strong { font-size:1.34rem; }
.pulse-admin-body .pulse-access-role-card small { font-size:.68rem; }

.pulse-admin-body .pulse-access-operation-success {
  padding:14px 16px;
  border-radius:16px;
}
.pulse-admin-body .pulse-access-operation-success-icon {
  flex:0 0 30px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#dcefdc;
  color:#3f7248;
  font-weight:900;
}
.pulse-admin-body .pulse-access-operation-success > div { display:grid; gap:1px; }
.pulse-admin-body .pulse-access-operation-success > div > span { color:#5d7665; }

.pulse-admin-body .pulse-access-credentials {
  position:relative;
  grid-template-columns:52px minmax(0,1fr);
  gap:18px;
  padding:25px 26px;
  overflow:hidden;
  border:1px solid rgba(57,112,73,.17);
  border-radius:22px;
  background:
    radial-gradient(circle at 100% 0, rgba(197,226,197,.42), transparent 33%),
    linear-gradient(135deg,#f4faf1 0%,#fffdf9 72%);
  box-shadow:0 18px 42px rgba(64,105,69,.08);
}
.pulse-admin-body .pulse-access-credentials::after {
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  right:-72px;
  bottom:-105px;
  border:1px solid rgba(73,123,80,.08);
  border-radius:50%;
  pointer-events:none;
}
.pulse-admin-body .pulse-access-credentials-mark {
  position:relative;
  z-index:1;
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:linear-gradient(145deg,#dbeedb,#cce4ce);
  color:#356941;
  box-shadow:inset 0 0 0 1px rgba(58,111,70,.08),0 10px 22px rgba(61,106,69,.09);
  font-size:1.18rem;
  font-weight:950;
}
.pulse-admin-body .pulse-access-credentials-copy { position:relative; z-index:1; gap:10px; }
.pulse-admin-body .pulse-access-credentials-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.pulse-admin-body .pulse-access-credentials-heading > div { min-width:0; }
.pulse-admin-body .pulse-access-credentials-heading h2 {
  margin:3px 0 0;
  color:#344638;
  font-size:1.36rem;
  letter-spacing:-.025em;
}
.pulse-admin-body .pulse-access-once-badge {
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 10px;
  border:1px solid rgba(70,111,74,.12);
  border-radius:999px;
  background:#e7f2e5;
  color:#4c6d51;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-access-credentials-copy > p {
  max-width:760px;
  color:#667568;
  font-size:.76rem;
}
.pulse-admin-body .pulse-access-credential-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:2px;
}
.pulse-admin-body .pulse-access-credential-card {
  min-width:0;
  padding:14px;
  border:1px solid rgba(69,101,72,.11);
  border-radius:16px;
  background:rgba(255,255,255,.78);
  box-shadow:0 8px 20px rgba(66,95,67,.035);
}
.pulse-admin-body .pulse-access-credential-card-secret {
  border-color:rgba(132,97,54,.12);
  background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(251,245,235,.86));
}
.pulse-admin-body .pulse-access-credential-label {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:11px;
}
.pulse-admin-body .pulse-access-credential-icon {
  flex:0 0 31px;
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eef5ec;
  color:#4f7254;
  font-size:.67rem;
  font-weight:900;
}
.pulse-admin-body .pulse-access-credential-card-secret .pulse-access-credential-icon {
  background:#f5eadc;
  color:#8a6847;
}
.pulse-admin-body .pulse-access-credential-label > div { display:grid; gap:1px; min-width:0; }
.pulse-admin-body .pulse-access-credential-label strong { color:#485849; font-size:.69rem; }
.pulse-admin-body .pulse-access-credential-label small { color:#91a092; font-size:.56rem; }
.pulse-admin-body .pulse-access-credential-value-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
}
.pulse-admin-body .pulse-access-credential-value {
  min-width:0;
  display:flex;
  align-items:center;
  min-height:42px;
  padding:9px 12px;
  overflow-wrap:anywhere;
  border:1px solid rgba(70,101,74,.09);
  border-radius:11px;
  background:#f8faf6;
  color:#3b4e3e;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-size:.75rem;
  font-weight:800;
  line-height:1.35;
}
.pulse-admin-body .pulse-access-secret {
  background:#fbf7f0;
  color:#644a32;
  letter-spacing:.02em;
}
.pulse-admin-body .pulse-copy-button {
  min-width:74px;
  height:42px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(69,103,73,.12);
  border-radius:11px;
  background:#e5f0e3;
  color:#45694a;
  box-shadow:none;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.02em;
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
}
.pulse-admin-body .pulse-copy-button:hover {
  transform:translateY(-1px);
  background:#dcebd9;
  box-shadow:0 7px 16px rgba(65,100,69,.08);
}
.pulse-admin-body .pulse-access-credentials-foot {
  display:flex;
  align-items:center;
  gap:8px;
  color:#7c8a7e;
}
.pulse-admin-body .pulse-access-credentials-foot > span {
  flex:0 0 22px;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e8f1e6;
  color:#5a755e;
  font-size:.6rem;
  font-weight:900;
}
.pulse-admin-body .pulse-access-credentials-foot small { font-size:.61rem; line-height:1.45; }

.pulse-admin-body .pulse-access-create,
.pulse-admin-body .pulse-access-permissions { padding:26px; }
.pulse-admin-body .pulse-access-create .pulse-panel-heading { margin-bottom:20px; }
.pulse-admin-body .pulse-access-create .pulse-panel-heading h2,
.pulse-admin-body .pulse-access-permissions h2 { color:#3d2e22; letter-spacing:-.025em; }
.pulse-admin-body .pulse-access-form { gap:16px; }
.pulse-admin-body .pulse-access-field {
  display:grid;
  gap:7px;
  margin:0;
}
.pulse-admin-body .pulse-access-field > span {
  color:#755f4c;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-access-input-wrap {
  min-height:48px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  align-items:center;
  overflow:hidden;
  border:1px solid rgba(92,66,43,.13);
  border-radius:14px;
  background:#fffdfa;
  box-shadow:0 5px 14px rgba(82,57,34,.025);
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.pulse-admin-body .pulse-access-input-wrap:focus-within {
  border-color:rgba(139,99,59,.42);
  background:#fff;
  box-shadow:0 0 0 4px rgba(183,143,98,.09),0 8px 20px rgba(82,57,34,.035);
}
.pulse-admin-body .pulse-access-input-icon {
  width:42px;
  height:100%;
  display:grid;
  place-items:center;
  color:#9a7b5f;
  background:#fbf5ed;
  border-right:1px solid rgba(92,66,43,.08);
  font-size:.67rem;
  font-weight:900;
}
.pulse-admin-body .pulse-access-input-wrap input {
  width:100%;
  height:46px;
  min-width:0;
  padding:0 13px;
  border:0;
  outline:0;
  background:transparent;
  color:#3e3025;
  font-size:.78rem;
  font-weight:700;
}
.pulse-admin-body .pulse-access-input-wrap input::placeholder { color:#b2a394; font-weight:600; }
.pulse-admin-body .pulse-access-auto-password {
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:11px;
  padding:13px 14px;
  border-color:rgba(82,111,78,.13);
  border-radius:14px;
  background:#f5f8f1;
}
.pulse-admin-body .pulse-access-auto-password-icon {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#e5eee1;
  color:#547052;
  font-weight:900;
}
.pulse-admin-body .pulse-access-auto-password > div { display:grid; gap:2px; }
.pulse-admin-body .pulse-access-auto-password strong { color:#526650; }
.pulse-admin-body .pulse-access-create-button {
  width:100%;
  min-height:48px;
  margin-top:2px;
  justify-content:space-between;
  padding:0 18px;
  border-radius:14px;
  box-shadow:0 10px 22px rgba(76,55,38,.10);
}
.pulse-admin-body .pulse-access-create-button > span:last-child { font-size:1rem; }

.pulse-admin-body .pulse-access-permissions {
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(circle at 100% 0,rgba(229,212,192,.28),transparent 35%),
    #fffdf9;
}
.pulse-admin-body .pulse-access-permissions h2 { margin:5px 0 7px; font-size:1.35rem; }
.pulse-admin-body .pulse-access-permissions > p { margin:0 0 15px; color:#8b7766; font-size:.72rem; line-height:1.5; }
.pulse-admin-body .pulse-access-permission-list { display:grid; gap:0; }
.pulse-admin-body .pulse-access-permission-list > div {
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:13px 0;
  border-top:1px solid rgba(93,65,39,.075);
}
.pulse-admin-body .pulse-access-permission-list > div:first-child { border-top:0; }
.pulse-admin-body .pulse-access-permission-check {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#edf3e8;
  color:#587456;
  font-size:.66rem;
  font-weight:900;
}
.pulse-admin-body .pulse-access-permission-list > div > div { display:grid; gap:3px; }
.pulse-admin-body .pulse-access-permission-list strong { color:#4b392d; font-size:.76rem; }
.pulse-admin-body .pulse-access-permission-list small { color:#8c7969; font-size:.63rem; line-height:1.45; }
.pulse-admin-body .pulse-access-permissions-foot {
  margin-top:auto;
  padding:13px 14px;
  border:1px solid rgba(93,65,39,.08);
  border-radius:13px;
  background:#faf5ee;
  color:#806c5b;
  font-size:.63rem;
  line-height:1.5;
}

/* Standalone password-change experience */
.pulse-password-body {
  min-height:100vh;
  margin:0;
  color:#3c2d21;
  background:
    radial-gradient(circle at 15% 0,rgba(229,210,182,.42),transparent 32%),
    radial-gradient(circle at 92% 15%,rgba(210,228,205,.30),transparent 25%),
    linear-gradient(180deg,#fcf8f3 0%,#f7efe5 55%,#f2e8dc 100%);
}
.pulse-password-shell { min-height:100vh; display:flex; flex-direction:column; }
.pulse-password-topbar {
  min-height:74px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:0 28px;
  border-bottom:1px solid rgba(91,65,42,.08);
  background:rgba(255,252,247,.74);
  backdrop-filter:blur(14px);
}
.pulse-password-brand { display:flex; align-items:center; gap:11px; }
.pulse-password-brand .pulse-live-dot { width:8px; height:8px; }
.pulse-password-brand > div { display:grid; gap:1px; }
.pulse-password-brand strong { color:#3e3025; font-size:.78rem; }
.pulse-password-brand small { color:#988574; font-size:.59rem; }
.pulse-password-topbar form { margin:0; }
.pulse-password-signout {
  min-height:36px;
  padding:0 13px;
  border:1px solid rgba(91,65,42,.10);
  border-radius:11px;
  background:#fffaf4;
  color:#6d5948;
  font-size:.65rem;
  font-weight:800;
  cursor:pointer;
  transition:background .15s ease,transform .15s ease;
}
.pulse-password-signout:hover { transform:translateY(-1px); background:#f7eee4; }
.pulse-password-main {
  flex:1;
  width:100%;
  display:grid;
  place-items:center;
  padding:42px 20px 56px;
}
.pulse-password-card {
  width:min(100%,540px);
  padding:34px;
  border:1px solid rgba(91,65,42,.10);
  border-radius:26px;
  background:rgba(255,253,249,.92);
  box-shadow:0 26px 70px rgba(86,61,37,.13);
}
.pulse-password-card-head { margin-bottom:25px; }
.pulse-password-kicker {
  display:inline-block;
  margin-bottom:8px;
  color:#a06d3d;
  font-size:.61rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.pulse-password-card h1 {
  margin:0;
  color:#37291f;
  font-size:2rem;
  line-height:1.06;
  letter-spacing:-.045em;
}
.pulse-password-card-head p {
  margin:11px 0 0;
  color:#887566;
  font-size:.76rem;
  line-height:1.6;
}
.pulse-password-form { display:grid; gap:16px; }
.pulse-password-validation:empty,
.pulse-password-validation.validation-summary-valid { display:none; }
.pulse-password-validation {
  padding:12px 14px;
  border:1px solid rgba(168,83,63,.16);
  border-radius:13px;
  background:#fff2ee;
  color:#944f40;
  font-size:.68rem;
}
.pulse-password-validation ul { margin:0; padding-left:18px; }
.pulse-password-field { display:grid; gap:7px; margin:0; }
.pulse-password-field > span:first-child {
  color:#6e5947;
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.pulse-password-input-wrap {
  min-height:52px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  overflow:hidden;
  border:1px solid rgba(91,65,42,.13);
  border-radius:15px;
  background:#fffefa;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
.pulse-password-input-wrap:focus-within {
  border-color:rgba(154,108,62,.48);
  background:#fff;
  box-shadow:0 0 0 4px rgba(185,143,95,.10);
}
.pulse-password-input-icon {
  width:44px;
  height:100%;
  display:grid;
  place-items:center;
  border-right:1px solid rgba(91,65,42,.08);
  background:#fbf4eb;
  color:#9a7757;
  font-size:.72rem;
  font-weight:900;
}
.pulse-password-input-wrap input {
  width:100%;
  min-width:0;
  height:50px;
  padding:0 14px;
  border:0;
  outline:0;
  background:transparent;
  color:#3b2e24;
  font-size:.8rem;
  font-weight:700;
}
.pulse-password-input-wrap input::placeholder { color:#b5a595; font-weight:600; }
.pulse-password-field-error {
  min-height:0;
  color:#a05242;
  font-size:.62rem;
  line-height:1.35;
}
.pulse-password-field-error:empty { display:none; }
.pulse-password-note {
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:9px;
  align-items:center;
  padding:11px 12px;
  border:1px solid rgba(93,65,39,.08);
  border-radius:13px;
  background:#faf6f0;
}
.pulse-password-note > span {
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#efe3d6;
  color:#8a684a;
  font-size:.58rem;
  font-weight:900;
}
.pulse-password-note p { margin:0; color:#857363; font-size:.63rem; line-height:1.4; }
.pulse-password-submit {
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:0 18px;
  border:0;
  border-radius:15px;
  background:linear-gradient(135deg,#5a4432,#3f3025);
  color:#fff;
  box-shadow:0 12px 26px rgba(72,51,35,.18);
  font-size:.72rem;
  font-weight:850;
  cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease;
}
.pulse-password-submit:hover { transform:translateY(-1px); box-shadow:0 15px 30px rgba(72,51,35,.22); }
.pulse-password-submit > span:last-child { font-size:1rem; }

@media (max-width: 700px) {
  .pulse-admin-body .pulse-access-hero { padding:21px; }
  .pulse-admin-body .pulse-access-hero h1 { font-size:1.82rem; }
  .pulse-admin-body .pulse-access-credentials { grid-template-columns:1fr; padding:20px; }
  .pulse-admin-body .pulse-access-credentials-mark { width:44px; height:44px; border-radius:14px; }
  .pulse-admin-body .pulse-access-credentials-heading { align-items:flex-start; }
  .pulse-admin-body .pulse-access-credential-grid { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-access-create,
  .pulse-admin-body .pulse-access-permissions { padding:20px; }
  .pulse-password-topbar { min-height:66px; padding:0 18px; }
  .pulse-password-main { padding:25px 14px 36px; place-items:start center; }
  .pulse-password-card { padding:24px 19px; border-radius:21px; }
  .pulse-password-card h1 { font-size:1.7rem; }
}

@media (max-width: 420px) {
  .pulse-admin-body .pulse-access-credentials-heading { display:grid; }
  .pulse-admin-body .pulse-access-once-badge { width:fit-content; }
  .pulse-admin-body .pulse-access-credential-value-row { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-copy-button { width:100%; }
  .pulse-password-brand small { display:none; }
}

/* Manager access RBAC */
.pulse-admin-body .pulse-access-role.role-generalmanager {
  color:#fff;
  background:linear-gradient(135deg,#8b6543,#6c4b31);
  box-shadow:0 4px 10px rgba(93,65,39,.12);
}
.pulse-admin-body .pulse-access-created-role {
  display:inline-flex;
  width:fit-content;
  margin-top:5px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(86,112,85,.10);
  color:#4c6750;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-access-role-choice {
  margin:1px 0 0;
  padding:0;
  border:0;
}
.pulse-admin-body .pulse-access-role-choice > legend {
  width:auto;
  margin:0 0 8px;
  color:#6e5947;
  font-size:.63rem;
  font-weight:900;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-access-role-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.pulse-admin-body .pulse-access-role-option {
  position:relative;
  display:block !important;
  margin:0;
  cursor:pointer;
}
.pulse-admin-body .pulse-access-role-option > input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.pulse-admin-body .pulse-access-role-option-card {
  min-height:112px;
  display:grid;
  align-content:start;
  gap:9px;
  padding:15px 16px;
  border:1px solid rgba(91,65,42,.12);
  border-radius:16px;
  background:#fffdfa;
  box-shadow:0 5px 15px rgba(78,55,37,.035);
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease;
}
.pulse-admin-body .pulse-access-role-option:hover .pulse-access-role-option-card {
  transform:translateY(-1px);
  border-color:rgba(144,100,61,.26);
  box-shadow:0 8px 20px rgba(78,55,37,.07);
}
.pulse-admin-body .pulse-access-role-option > input:checked + .pulse-access-role-option-card {
  border-color:rgba(139,101,67,.56);
  background:linear-gradient(145deg,#fffdf9,#fbf3e9);
  box-shadow:0 0 0 3px rgba(159,116,76,.09),0 9px 22px rgba(78,55,37,.07);
}
.pulse-admin-body .pulse-access-role-option > input:focus-visible + .pulse-access-role-option-card {
  outline:3px solid rgba(82,125,195,.25);
  outline-offset:2px;
}
.pulse-admin-body .pulse-access-role-option-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.pulse-admin-body .pulse-access-role-option-head strong {
  color:#4a382b;
  font-size:.76rem;
}
.pulse-admin-body .pulse-access-role-option-card > small {
  color:#8a7767;
  font-size:.62rem;
  line-height:1.5;
}
.pulse-admin-body .pulse-access-role-option-dot {
  width:17px;
  height:17px;
  flex:0 0 17px;
  border:2px solid #c9b8a8;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 3px #fff;
  transition:background .15s ease,border-color .15s ease;
}
.pulse-admin-body .pulse-access-role-option > input:checked + .pulse-access-role-option-card .pulse-access-role-option-dot {
  border-color:#7b583b;
  background:#7b583b;
}
.pulse-admin-body .pulse-access-permission-check.gm {
  color:#fff;
  background:linear-gradient(135deg,#866042,#65462f);
}
.pulse-admin-body .pulse-btn-danger-soft {
  color:#9a473d !important;
  border:1px solid rgba(165,74,61,.16) !important;
  background:#fff7f5 !important;
}
.pulse-admin-body .pulse-btn-danger-soft:hover {
  color:#83382f !important;
  border-color:rgba(165,74,61,.28) !important;
  background:#fcebe7 !important;
}

@media (max-width: 760px) {
  .pulse-admin-body .pulse-access-role-options { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-access-role-option-card { min-height:0; }
}

/* Manager invitation acceptance */
.pulse-invite-body .pulse-auth-content {
  display:grid;
  place-items:center;
}
.pulse-invite-body .pulse-password-card {
  margin:0 auto;
}
.pulse-invite-card {
  position:relative;
  overflow:hidden;
}
.pulse-invite-identity {
  margin-top:16px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 14px;
  padding:11px 13px;
  border:1px solid rgba(93,65,39,.09);
  border-radius:13px;
  background:#faf6f0;
}
.pulse-invite-identity span {
  color:#5e4938;
  font-size:.7rem;
  font-weight:850;
}
.pulse-invite-identity small {
  color:#998575;
  font-size:.61rem;
}
.pulse-invite-complete-mark,
.pulse-invite-error-mark {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  margin-bottom:18px;
  border-radius:15px;
  font-size:1.05rem;
  font-weight:900;
}
.pulse-invite-complete-mark {
  color:#406b54;
  background:#e9f5ed;
  border:1px solid rgba(68,119,87,.15);
}
.pulse-invite-error-mark {
  color:#9a4c3e;
  background:#fff0ec;
  border:1px solid rgba(166,75,59,.15);
}
.pulse-invite-complete-copy {
  margin-bottom:22px;
}
.pulse-invite-signin-link {
  text-decoration:none;
}
.pulse-invite-signin-link:hover {
  color:#fff;
}

@media (max-width: 600px) {
  .pulse-invite-body .pulse-auth-shell {
    width:min(100% - 22px, 560px);
    padding-top:20px;
  }
}

/* Admin sign-in telemetry + audit trail */
.pulse-admin-body .pulse-access-directory-tools {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex-wrap:wrap;
}
.pulse-admin-body .pulse-access-tracking-warning {
  margin:0 20px 16px;
  padding:12px 14px;
  display:grid;
  gap:2px;
  border:1px solid rgba(166,91,44,.16);
  border-radius:13px;
  background:#fff7ee;
  color:#765239;
}
.pulse-admin-body .pulse-access-tracking-warning strong { font-size:.72rem; }
.pulse-admin-body .pulse-access-tracking-warning span { color:#8b715e; font-size:.63rem; line-height:1.45; }
.pulse-admin-body .pulse-access-activity-grid {
  width:min(600px,100%);
  margin-top:8px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.pulse-admin-body .pulse-access-activity-grid > div {
  min-width:0;
  padding:8px 10px;
  display:grid;
  gap:2px;
  border:1px solid rgba(93,65,39,.075);
  border-radius:10px;
  background:#fbf7f2;
}
.pulse-admin-body .pulse-access-activity-grid span {
  color:#a08a78;
  font-size:.52rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.pulse-admin-body .pulse-access-activity-grid strong {
  color:#594436;
  font-size:.66rem;
  font-weight:800;
  line-height:1.35;
}
.pulse-admin-body .pulse-access-activity-grid strong.is-muted { color:#9a8777; font-weight:700; }
.pulse-admin-body .pulse-access-activity-grid small { color:#9b897a; font-size:.56rem; line-height:1.35; }

.pulse-admin-body .pulse-audit-head { align-items:flex-end; }
.pulse-admin-body .pulse-audit-scope-note {
  margin-bottom:12px;
  padding:14px 16px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  gap:11px;
  align-items:start;
  border:1px solid rgba(93,65,39,.10);
  border-radius:14px;
  background:linear-gradient(135deg,#fffaf4,#f9f0e5);
}
.pulse-admin-body .pulse-audit-scope-note > span {
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#efe2d5;
  color:#76583e;
  font-size:.7rem;
  font-weight:900;
}
.pulse-admin-body .pulse-audit-scope-note > div { display:grid; gap:3px; }
.pulse-admin-body .pulse-audit-scope-note strong { color:#4d3b2f; font-size:.72rem; }
.pulse-admin-body .pulse-audit-scope-note p { margin:0; color:#887565; font-size:.64rem; line-height:1.5; }
.pulse-admin-body .pulse-audit-filterbar { grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) 145px 145px auto auto; }
.pulse-admin-body .pulse-audit-panel { overflow:hidden; }
.pulse-admin-body .pulse-audit-panel-head p { max-width:720px; }
.pulse-admin-body .pulse-audit-table th { white-space:nowrap; }
.pulse-admin-body .pulse-audit-table td { vertical-align:middle; }
.pulse-admin-body .pulse-audit-time { min-width:86px; }
.pulse-admin-body .pulse-audit-activity-cell { min-width:290px; }
.pulse-admin-body .pulse-audit-activity-cell > strong { display:block; margin-top:5px; color:#4a382c; font-size:.73rem; line-height:1.4; }
.pulse-admin-body .pulse-audit-event {
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:3px 8px;
  border-radius:999px;
  background:#f1ece6;
  color:#786657;
  font-size:.55rem;
  font-weight:900;
  letter-spacing:.035em;
}
.pulse-admin-body .pulse-audit-event.success { color:#477052; background:#e9f3e9; }
.pulse-admin-body .pulse-audit-event.security { color:#7c6537; background:#f5edd5; }
.pulse-admin-body .pulse-audit-event.action { color:#72563f; background:#efe2d5; }
.pulse-admin-body .pulse-audit-event.danger { color:#8b4f3b; background:#f5e5df; }
.pulse-admin-body .pulse-audit-area {
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:4px 9px;
  border:1px solid rgba(93,65,39,.09);
  border-radius:8px;
  background:#fbf7f2;
  color:#6f5947;
  font-size:.61rem;
  font-weight:800;
  white-space:nowrap;
}

@media (max-width: 1080px) {
  .pulse-admin-body .pulse-audit-filterbar { grid-template-columns:1fr 1fr 1fr 1fr; }
  .pulse-admin-body .pulse-audit-filterbar .pulse-btn { width:100%; }
}
@media (max-width: 700px) {
  .pulse-admin-body .pulse-access-directory-tools { justify-content:flex-start; }
  .pulse-admin-body .pulse-access-activity-grid { grid-template-columns:1fr; }
  .pulse-admin-body .pulse-audit-head { align-items:flex-start; }
  .pulse-admin-body .pulse-audit-filterbar { grid-template-columns:1fr; }
}
.pulse-admin-body .pulse-access-tracking-since {
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 9px;
  border-radius:999px;
  background:#f4eee7;
  color:#8a7665;
  font-size:.56rem;
  font-weight:800;
  white-space:nowrap;
}

.pulse-access-activity-link {
    display: inline-flex;
    margin-top: 0.35rem;
    font-size: 0.76rem;
    font-weight: 800;
    text-decoration: none;
}

.pulse-access-activity-link:hover {
    text-decoration: underline;
}

/* Operational dashboard */
.dashboard-hero { margin-bottom:12px; }
.dashboard-health-strip { margin-bottom:12px; padding:13px 15px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:11px; align-items:center; border:1px solid var(--pulse-border); border-radius:13px; background:var(--pulse-panel); }
.dashboard-health-strip.clear { border-color:rgba(77,154,114,.18); background:linear-gradient(100deg,rgba(237,246,240,.82),rgba(255,253,249,.94)); }
.dashboard-health-strip.attention { border-color:rgba(183,119,37,.20); background:linear-gradient(100deg,rgba(255,245,223,.78),rgba(255,253,249,.94)); }
.dashboard-health-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:10px; font-size:.82rem; font-weight:900; }
.dashboard-health-strip.clear .dashboard-health-icon { color:#3d7658; background:#e4f2e9; }
.dashboard-health-strip.attention .dashboard-health-icon { color:#94601f; background:#ffedc8; }
.dashboard-health-strip > div:last-child { min-width:0; display:grid; gap:2px; }
.dashboard-health-strip strong { font-size:.78rem; }
.dashboard-health-strip span { color:var(--pulse-muted); font-size:.66rem; line-height:1.45; }

.dashboard-stat-danger { border-color:rgba(185,81,81,.23); background:linear-gradient(145deg,#fffafa,#fffdf9); }
.dashboard-stat-danger .pulse-stat-value { color:#a94747; }
.dashboard-stat-warning { border-color:rgba(183,119,37,.22); background:linear-gradient(145deg,#fffaf0,#fffdf9); }
.dashboard-stat-warning .pulse-stat-value { color:#94601f; }

.dashboard-alert-list { display:grid; }
.dashboard-alert-row { min-height:64px; padding:10px 0; display:grid; grid-template-columns:30px minmax(0,1fr) 52px; gap:11px; align-items:center; border-top:1px solid var(--pulse-border); }
.dashboard-alert-row:first-child { border-top:0; }
.dashboard-alert-marker { width:28px; height:28px; display:grid; place-items:center; border-radius:9px; font-size:.72rem; font-weight:900; }
.dashboard-alert-row.warning .dashboard-alert-marker { color:#94601f; background:#fff1d2; }
.dashboard-alert-row.danger .dashboard-alert-marker { color:#a94747; background:#fbe9e9; }
.dashboard-alert-main { min-width:0; display:grid; gap:1px; }
.dashboard-alert-main > span { color:var(--pulse-muted); font-size:.58rem; font-weight:800; text-transform:uppercase; letter-spacing:.055em; }
.dashboard-alert-main > strong { font-size:.78rem; }
.dashboard-alert-main > small { color:var(--pulse-muted); font-size:.65rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-alert-row time { color:var(--pulse-dim); font-size:.68rem; text-align:right; }
.dashboard-all-clear { min-height:150px; display:flex; align-items:center; justify-content:center; gap:14px; text-align:left; }
.dashboard-all-clear > span { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; color:#3d7658; background:#edf6f0; font-size:1rem; font-weight:900; }
.dashboard-alert-more { padding:10px 0 0; color:var(--pulse-dim); border-top:1px solid var(--pulse-border); font-size:.61rem; text-align:right; }
.dashboard-all-clear strong { display:block; font-size:.82rem; }
.dashboard-all-clear p { margin:3px 0 0; color:var(--pulse-muted); font-size:.68rem; }

.dashboard-terminal-list { display:grid; }
.dashboard-terminal-row { min-height:64px; padding:10px 0; display:grid; grid-template-columns:10px minmax(0,1fr) auto; gap:10px; align-items:center; border-top:1px solid var(--pulse-border); }
.dashboard-terminal-row:first-child { border-top:0; }
.dashboard-terminal-dot { width:8px; height:8px; border-radius:50%; background:#b8aa9d; box-shadow:0 0 0 4px rgba(184,170,157,.12); }
.dashboard-terminal-dot.success { background:#62a57c; box-shadow:0 0 0 4px rgba(98,165,124,.12); }
.dashboard-terminal-dot.warning { background:#ce9142; box-shadow:0 0 0 4px rgba(206,145,66,.12); }
.dashboard-terminal-dot.danger { background:#c65e5e; box-shadow:0 0 0 4px rgba(198,94,94,.12); }
.dashboard-terminal-row > div:nth-child(2) { min-width:0; display:grid; }
.dashboard-terminal-row strong { font-size:.74rem; }
.dashboard-terminal-row small { color:var(--pulse-muted); font-size:.61rem; }
.dashboard-terminal-state { display:grid; justify-items:end; gap:4px; }
.dashboard-terminal-state small { color:var(--pulse-dim); white-space:nowrap; }
.pulse-admin-body .pulse-status.danger { color:#a94747; background:#fbe9e9; border:1px solid rgba(185,81,81,.18); }

.dashboard-today-list { display:grid; }
.dashboard-today-list > div { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:15px; border-top:1px solid var(--pulse-border); }
.dashboard-today-list > div:first-child { border-top:0; }
.dashboard-today-list span { color:var(--pulse-muted); font-size:.67rem; }
.dashboard-today-list strong { font-size:.75rem; text-align:right; }
.dashboard-panel-action { margin-top:13px; min-height:42px; padding:10px 12px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--pulse-text); border:1px solid var(--pulse-border); border-radius:11px; background:#fffaf3; text-decoration:none; font-size:.69rem; font-weight:750; }
.dashboard-panel-action:hover { color:var(--pulse-accent-strong); border-color:var(--pulse-border-strong); background:#fff7eb; }
.dashboard-panel-action span { color:var(--pulse-accent); font-size:.9rem; }

@media (max-width:780px) {
  .dashboard-health-strip { grid-template-columns:30px minmax(0,1fr); }
  .dashboard-health-icon { width:28px; height:28px; }
}
@media (max-width:520px) {
  .dashboard-alert-row { grid-template-columns:28px minmax(0,1fr); }
  .dashboard-alert-row time { display:none; }
  .dashboard-alert-main > small { white-space:normal; }
  .dashboard-terminal-row { grid-template-columns:10px minmax(0,1fr); }
  .dashboard-terminal-state { grid-column:2; justify-items:start; }
}

/* ========================================================================== */
/* Reports — manager-facing attendance intelligence                            */
/* ========================================================================== */
.pulse-reports-page { display:grid; gap:14px; min-width:0; }
.pulse-reports-page .reports-hero { margin:0; min-height:178px; }
.reports-export-actions { align-self:center; }
.reports-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:12px; border:1px solid var(--pulse-border); border-radius:16px; background:var(--pulse-panel); box-shadow:0 10px 30px rgba(0,0,0,.05); }
.reports-filterbar { display:grid; grid-template-columns:150px 150px minmax(190px,260px) auto; gap:9px; align-items:end; }
.reports-filterbar label { display:grid; gap:5px; min-width:0; }
.reports-filterbar label > span { color:var(--pulse-muted); font-size:.61rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.reports-filterbar input,.reports-filterbar select { width:100%; min-height:40px; padding:8px 10px; color:var(--pulse-text); background:var(--pulse-bg-soft); border:1px solid var(--pulse-border); border-radius:9px; outline:none; font-size:.75rem; }
.reports-filterbar input:focus,.reports-filterbar select:focus { border-color:var(--pulse-border-strong); box-shadow:0 0 0 3px rgba(183,133,75,.08); }
.reports-presets { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
.reports-presets > span { margin-right:3px; color:var(--pulse-dim); font-size:.6rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.reports-presets a { padding:7px 9px; border:1px solid var(--pulse-border); border-radius:999px; color:var(--pulse-muted); text-decoration:none; font-size:.65rem; font-weight:750; background:rgba(255,255,255,.03); }
.reports-presets a:hover { color:var(--pulse-text); border-color:var(--pulse-border-strong); }

.reports-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.reports-kpi { position:relative; min-height:134px; padding:17px; overflow:hidden; border:1px solid var(--pulse-border); border-radius:17px; background:var(--pulse-panel); box-shadow:0 12px 34px rgba(0,0,0,.05); }
.reports-kpi:after { content:""; position:absolute; width:100px; height:100px; right:-58px; bottom:-63px; border:1px solid var(--pulse-border); border-radius:50%; }
.reports-kpi > span { display:block; color:var(--pulse-muted); font-size:.65rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
.reports-kpi > strong { display:block; margin-top:9px; color:var(--pulse-text); font-size:2.05rem; line-height:1; letter-spacing:-.05em; }
.reports-kpi > strong small { margin-left:2px; font-size:.78rem; letter-spacing:0; }
.reports-kpi > p { margin:9px 0 0; color:var(--pulse-dim); font-size:.65rem; line-height:1.4; }
.reports-kpi.primary { border-color:var(--pulse-border-strong); }
.reports-kpi.clear > strong { color:#3f7658; }
.reports-kpi.attention { border-color:rgba(183,119,37,.24); }
.reports-kpi.attention > strong { color:#9a6220; }

.reports-insight-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; overflow:hidden; border:1px solid var(--pulse-border); border-radius:15px; background:var(--pulse-border); }
.reports-insight-strip > div { min-width:0; padding:12px 15px; display:grid; gap:2px; background:var(--pulse-panel); }
.reports-insight-strip span { color:var(--pulse-dim); font-size:.56rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.reports-insight-strip strong { overflow:hidden; color:var(--pulse-text); font-size:.76rem; text-overflow:ellipsis; white-space:nowrap; }
.reports-insight-strip small { overflow:hidden; color:var(--pulse-muted); font-size:.62rem; text-overflow:ellipsis; white-space:nowrap; }

.reports-review-panel,.reports-breakdown-panel { padding:20px; }
.reports-panel-count { flex:0 0 auto; padding:6px 9px; border:1px solid var(--pulse-border); border-radius:999px; color:var(--pulse-muted); background:var(--pulse-bg-soft); font-size:.61rem; font-weight:750; }
.reports-review-list { display:grid; }
.reports-review-row { min-height:62px; display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:11px; border-top:1px solid var(--pulse-border); }
.reports-review-row:first-child { border-top:0; }
.reports-review-marker { width:27px; height:27px; display:grid; place-items:center; border-radius:9px; color:#9a4f48; background:#fff0ed; border:1px solid rgba(154,79,72,.14); font-size:.72rem; font-weight:900; }
.reports-review-row > div:nth-child(2) { min-width:0; display:grid; gap:2px; }
.reports-review-row strong { font-size:.76rem; }
.reports-review-row span { color:var(--pulse-muted); font-size:.66rem; }
.reports-review-row a { color:var(--pulse-muted); text-decoration:none; font-size:.66rem; font-weight:750; white-space:nowrap; }
.reports-review-row a:hover { color:var(--pulse-accent-strong); }
.reports-clear-strip { min-height:66px; padding:12px 15px; display:flex; align-items:center; gap:12px; border:1px solid rgba(77,154,114,.17); border-radius:15px; background:#f2f8f4; }
.reports-clear-strip > span { width:31px; height:31px; display:grid; place-items:center; flex:0 0 auto; border-radius:10px; color:#3f7658; background:#e2f1e7; font-weight:900; }
.reports-clear-strip > div { display:grid; gap:2px; }
.reports-clear-strip strong { color:#3e654f; font-size:.75rem; }
.reports-clear-strip small { color:#71887a; font-size:.64rem; }

.reports-department-list { display:grid; }
.reports-department-row { min-height:66px; display:grid; grid-template-columns:minmax(160px,1.3fr) minmax(170px,2fr) 95px 78px; align-items:center; gap:16px; border-top:1px solid var(--pulse-border); }
.reports-department-row:first-child { border-top:0; }
.reports-department-name { min-width:0; display:grid; gap:2px; }
.reports-department-name strong { font-size:.76rem; }
.reports-department-name span,.reports-department-hours span,.reports-department-exceptions span { color:var(--pulse-muted); font-size:.62rem; }
.reports-share-track { height:7px; overflow:hidden; border-radius:999px; background:var(--pulse-bg-soft); }
.reports-share-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--pulse-accent-strong),var(--pulse-accent)); }
.reports-department-hours,.reports-department-exceptions { display:grid; justify-items:end; gap:2px; }
.reports-department-hours strong,.reports-department-exceptions strong { font-size:.77rem; }
.reports-department-exceptions.attention strong { color:#9a6220; }

.reports-staff-panel { overflow:hidden; }
.reports-table-heading { padding:19px 20px 16px; display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.reports-table-heading h2 { margin:4px 0 0; font-size:1.05rem; letter-spacing:-.02em; }
.reports-table-heading p { margin:5px 0 0; color:var(--pulse-muted); font-size:.67rem; }
.reports-table-wrap { border-top:1px solid var(--pulse-border); }
.reports-table { min-width:900px; }
.reports-table tbody tr.reports-row-attention { background:rgba(183,119,37,.035); }
.reports-table tbody tr.reports-row-attention:hover { background:rgba(183,119,37,.065); }
.reports-mini-share { min-width:105px; display:grid; grid-template-columns:minmax(55px,1fr) 34px; align-items:center; gap:7px; }
.reports-mini-share:before { content:""; grid-column:1; grid-row:1; height:5px; border-radius:999px; background:var(--pulse-bg-soft); }
.reports-mini-share i { grid-column:1; grid-row:1; height:5px; border-radius:999px; background:var(--pulse-accent); z-index:1; }
.reports-mini-share span { grid-column:2; grid-row:1; color:var(--pulse-dim); font-size:.6rem; text-align:right; }
.reports-exception-link { color:#986126; text-decoration:none; font-size:.65rem; font-weight:800; white-space:nowrap; }
.reports-exception-link:hover { color:#74481b; }
.reports-zero { color:var(--pulse-dim); }
.reports-policy-note { margin:0; }

.pulse-admin-body .reports-controls,.pulse-admin-body .reports-kpi,.pulse-admin-body .reports-insight-strip > div { background:#fffdf9; border-color:rgba(93,65,39,.105); }
.pulse-admin-body .reports-controls { box-shadow:0 10px 30px rgba(82,57,34,.04); }
.pulse-admin-body .reports-filterbar input,.pulse-admin-body .reports-filterbar select { color:#4b392c; background:#fbf6ef; border-color:rgba(93,65,39,.13); color-scheme:light; }
.pulse-admin-body .reports-filterbar input:focus,.pulse-admin-body .reports-filterbar select:focus { background:#fff; border-color:rgba(164,111,57,.45); }
.pulse-admin-body .reports-presets a { color:#7d6958; background:#fbf6ef; border-color:rgba(93,65,39,.10); }
.pulse-admin-body .reports-presets a:hover { color:#543c28; background:#fff; border-color:rgba(164,111,57,.26); }
.pulse-admin-body .reports-kpi { background:#fffdf9; border-color:rgba(93,65,39,.105); box-shadow:0 12px 34px rgba(82,57,34,.045); }
.pulse-admin-body .reports-kpi.primary { border-color:rgba(169,112,56,.22); background:linear-gradient(145deg,#f3e4d0 0%,#fffaf3 76%); }
.pulse-admin-body .reports-kpi:after { border-color:rgba(173,125,74,.09); }
.pulse-admin-body .reports-kpi > span { color:#8b735f; }
.pulse-admin-body .reports-kpi > strong { color:#3d2e22; }
.pulse-admin-body .reports-kpi > p { color:#8d7c6d; }
.pulse-admin-body .reports-kpi.clear > strong { color:#3f6f56; }
.pulse-admin-body .reports-kpi.attention { border-color:rgba(166,112,47,.18); background:#fffaf2; }
.pulse-admin-body .reports-kpi.attention > strong { color:#9a6220; }
.pulse-admin-body .reports-insight-strip { border-color:rgba(93,65,39,.10); background:rgba(93,65,39,.08); }
.pulse-admin-body .reports-insight-strip > div { background:#fffaf4; }
.pulse-admin-body .reports-insight-strip span { color:#a38d79; }
.pulse-admin-body .reports-insight-strip strong { color:#5b4737; }
.pulse-admin-body .reports-insight-strip small { color:#8d7c6d; }
.pulse-admin-body .reports-panel-count { color:#8c7867; background:#fbf5ed; border-color:rgba(106,76,51,.11); }
.pulse-admin-body .reports-review-row,.pulse-admin-body .reports-department-row,.pulse-admin-body .reports-table-wrap { border-color:rgba(93,65,39,.09); }
.pulse-admin-body .reports-review-row a { color:#8d6b4d; }
.pulse-admin-body .reports-review-row a:hover { color:#a46f39; }
.pulse-admin-body .reports-share-track,.pulse-admin-body .reports-mini-share:before { background:#eee4da; }
.pulse-admin-body .reports-share-track i,.pulse-admin-body .reports-mini-share i { background:linear-gradient(90deg,#9a6a3e,#c39a6b); }
.pulse-admin-body .reports-table tbody tr.reports-row-attention { background:#fffaf1; }
.pulse-admin-body .reports-table tbody tr.reports-row-attention:hover { background:#fff6e7; }

@media(max-width:1250px){
  .reports-controls{grid-template-columns:1fr}.reports-presets{justify-content:flex-start}.reports-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reports-insight-strip{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
  .pulse-reports-page .reports-hero{align-items:flex-start;flex-direction:column}.reports-export-actions{align-self:flex-start}.reports-filterbar{grid-template-columns:1fr 1fr}.reports-department-filter{grid-column:1/-1}.reports-filterbar .pulse-btn{grid-column:1/-1}.reports-kpi-grid{grid-template-columns:1fr 1fr}.reports-department-row{grid-template-columns:minmax(0,1fr) 90px 70px}.reports-share-track{grid-column:1/-1;grid-row:2}.reports-review-row{grid-template-columns:30px minmax(0,1fr)}.reports-review-row>a{grid-column:2}.reports-table-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){
  .reports-filterbar{grid-template-columns:1fr}.reports-department-filter,.reports-filterbar .pulse-btn{grid-column:auto}.reports-kpi-grid,.reports-insight-strip{grid-template-columns:1fr}.reports-kpi{min-height:116px}.reports-department-row{grid-template-columns:minmax(0,1fr) 78px}.reports-department-exceptions{display:none}.reports-export-actions{width:100%}.reports-export-actions .pulse-btn{flex:1}.reports-presets>span{width:100%}
}

/* Developer-only presentation controls */
.settings-developer-section { border-style:dashed; }
.settings-demo-toggle { margin-bottom:14px; }
.demo-safety-note { display:flex; flex-direction:column; gap:5px; padding:12px 14px; border:1px solid var(--pulse-border); border-radius:12px; background:rgba(255,255,255,.025); color:var(--pulse-muted); font-size:.68rem; line-height:1.55; }
.demo-safety-note strong { color:var(--pulse-text); font-size:.72rem; }
.demo-safety-note code { color:var(--pulse-accent); }
.demo-regenerate-form { display:flex; align-items:center; gap:12px; margin-top:14px; }
.demo-regenerate-form small { color:var(--pulse-dim); font-size:.62rem; line-height:1.45; }
.demo-email-recipient { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; padding:10px 12px; border:1px solid var(--pulse-border); border-radius:12px; }
.demo-email-recipient span { color:var(--pulse-dim); font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.demo-email-recipient strong { font-size:.72rem; }
.demo-email-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.demo-email-card { display:grid; grid-template-columns:1fr auto; gap:3px 12px; align-items:center; padding:13px; border:1px solid var(--pulse-border); border-radius:12px; background:rgba(255,255,255,.018); }
.demo-email-card > span { grid-column:1; color:var(--pulse-accent); font-size:.56rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.demo-email-card > strong { grid-column:1; font-size:.76rem; }
.demo-email-card > small { grid-column:1; color:var(--pulse-dim); font-size:.61rem; line-height:1.45; }
.demo-email-card > button { grid-column:2; grid-row:1 / span 3; white-space:nowrap; }
.demo-email-warning { padding:13px; border:1px solid var(--pulse-warning); border-radius:12px; color:var(--pulse-muted); font-size:.7rem; }
@media (max-width: 720px) {
  .demo-email-grid { grid-template-columns:1fr; }
  .demo-regenerate-form { align-items:flex-start; flex-direction:column; }
}
.pulse-demo-active-badge { display:inline-flex; align-items:center; min-height:28px; padding:5px 10px; border:1px solid var(--pulse-warning); border-radius:999px; color:var(--pulse-warning); background:rgba(183,119,37,.08); font-size:.58rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; text-decoration:none; white-space:nowrap; }
a.pulse-demo-active-badge:hover { color:var(--pulse-text); border-color:var(--pulse-text); }
@media (max-width: 720px) { .pulse-demo-active-badge { display:none; } }

/* Manager access department controls + account management layout */
.pulse-admin-body .pulse-access-select-wrap {
  position: relative;
}
.pulse-admin-body .pulse-access-select-wrap::after {
  content: "⌄";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-56%);
  color: #8f735a;
  font-size: .95rem;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}
.pulse-admin-body .pulse-access-input-wrap select.pulse-access-select {
  width: 100%;
  height: 46px;
  min-width: 0;
  padding: 0 42px 0 13px;
  border: 0;
  outline: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  color: #3e3025;
  font-size: .78rem;
  font-weight: 750;
  cursor: pointer;
  color-scheme: light;
}
.pulse-admin-body .pulse-access-input-wrap select.pulse-access-select:focus {
  box-shadow: none;
}

.pulse-admin-body .pulse-access-account {
  grid-template-columns: 44px minmax(0,1fr) minmax(340px,430px);
  align-items: start;
  gap: 16px;
  padding-top: 20px;
  padding-bottom: 20px;
}
.pulse-admin-body .pulse-access-avatar {
  margin-top: 2px;
}
.pulse-admin-body .pulse-access-actions {
  width: 100%;
  display: grid;
  align-items: stretch;
  justify-content: stretch;
  gap: 9px;
}
.pulse-admin-body .pulse-access-department-form,
.pulse-admin-body .pulse-access-account-controls {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(93,65,39,.09);
  border-radius: 13px;
  background: #fbf7f2;
}
.pulse-admin-body .pulse-access-department-form {
  display: grid;
  gap: 8px;
}
.pulse-admin-body .pulse-access-control-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.pulse-admin-body .pulse-access-control-heading > div {
  min-width: 0;
  display: grid;
  gap: 1px;
}
.pulse-admin-body .pulse-access-control-heading > div > span,
.pulse-admin-body .pulse-access-account-controls-label {
  color: #725c49;
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.pulse-admin-body .pulse-access-control-heading small {
  color: #9a8776;
  font-size: .56rem;
  line-height: 1.35;
}
.pulse-admin-body .pulse-access-control-note {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  background: #f1e6da;
  color: #806852;
  font-size: .5rem;
  font-weight: 850;
  white-space: nowrap;
}
.pulse-admin-body .pulse-access-department-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 7px;
  align-items: stretch;
}
.pulse-admin-body .pulse-access-compact-select {
  position: relative;
  min-width: 0;
}
.pulse-admin-body .pulse-access-compact-select::after {
  content: "⌄";
  position: absolute;
  right: 11px;
  top: 50%;
  transform: translateY(-56%);
  color: #8f735a;
  font-size: .84rem;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}
.pulse-admin-body .pulse-access-compact-select select {
  width: 100%;
  min-width: 0;
  height: 36px;
  padding: 0 34px 0 11px;
  border: 1px solid rgba(93,65,39,.13);
  border-radius: 9px;
  outline: 0;
  appearance: none;
  -webkit-appearance: none;
  background: #fffdfa;
  color: #4b392d;
  font-size: .68rem;
  font-weight: 750;
  cursor: pointer;
  color-scheme: light;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.pulse-admin-body .pulse-access-compact-select select:focus {
  border-color: rgba(183,133,75,.52);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(183,133,75,.09);
}
.pulse-admin-body .pulse-access-department-row .pulse-btn {
  min-height: 36px;
  padding-inline: 13px;
}
.pulse-admin-body .pulse-access-account-controls {
  display: grid;
  gap: 7px;
}
.pulse-admin-body .pulse-access-account-controls-label {
  display: block;
  padding: 0 1px;
}
.pulse-admin-body .pulse-access-action-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 7px;
}
.pulse-admin-body .pulse-access-action-grid .pulse-inline-form {
  min-width: 0;
}
.pulse-admin-body .pulse-access-action-grid .pulse-btn {
  width: 100%;
  min-height: 35px;
  justify-content: center;
  padding-inline: 10px;
  font-size: .61rem;
  white-space: normal;
  line-height: 1.2;
}
.pulse-admin-body .pulse-access-action-grid .pulse-access-remove-form {
  grid-column: 1 / -1;
}

@media (max-width: 1180px) {
  .pulse-admin-body .pulse-access-account {
    grid-template-columns: 44px minmax(0,1fr);
  }
  .pulse-admin-body .pulse-access-actions,
  .pulse-admin-body .pulse-access-protected {
    grid-column: 2;
    width: 100%;
    max-width: 620px;
    justify-self: start;
  }
}

@media (max-width: 620px) {
  .pulse-admin-body .pulse-access-account {
    gap: 12px;
  }
  .pulse-admin-body .pulse-access-actions {
    align-items: stretch;
    flex-direction: initial;
  }
  .pulse-admin-body .pulse-access-control-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .pulse-admin-body .pulse-access-department-row {
    grid-template-columns: 1fr;
  }
  .pulse-admin-body .pulse-access-department-row .pulse-btn {
    width: 100%;
  }
  .pulse-admin-body .pulse-access-action-grid {
    grid-template-columns: 1fr;
  }
  .pulse-admin-body .pulse-access-action-grid .pulse-access-remove-form {
    grid-column: auto;
  }
}

/* Department is only relevant to department-scoped Manager access. */
.pulse-admin-body #pulse-create-manager-department[hidden] {
  display: none !important;
}
.pulse-admin-body .pulse-access-role-change {
  min-width: 0;
  grid-column: 1 / -1;
}
.pulse-admin-body .pulse-access-role-change > summary {
  width: 100%;
  min-height: 35px;
  justify-content: center;
  list-style: none;
  cursor: pointer;
}
.pulse-admin-body .pulse-access-role-change > summary::-webkit-details-marker {
  display: none;
}
.pulse-admin-body .pulse-access-role-change-form {
  display: grid;
  gap: 7px;
  margin-top: 7px;
  padding: 9px;
  border: 1px solid rgba(93,65,39,.09);
  border-radius: 10px;
  background: #f7f0e8;
}
.pulse-admin-body .pulse-access-role-change-form > span {
  color: #806852;
  font-size: .55rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.pulse-admin-body .pulse-access-role-change-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 7px;
  align-items: stretch;
}
.pulse-admin-body .pulse-access-role-change-row .pulse-btn {
  min-height: 36px;
  padding-inline: 13px;
}
@media (max-width: 620px) {
  .pulse-admin-body .pulse-access-role-change-row {
    grid-template-columns: 1fr;
  }
  .pulse-admin-body .pulse-access-role-change-row .pulse-btn {
    width: 100%;
  }
}

/* Timesheet approval & exception engine */
.timesheet-page-head{margin-bottom:14px}.timesheet-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;margin-bottom:12px}.timesheet-week-nav{display:flex;align-items:center;gap:12px}.timesheet-week-nav>div{display:grid;min-width:150px;text-align:center}.timesheet-week-nav small,.timesheet-department-filter label{color:var(--pulse-muted);font-size:.57rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.timesheet-week-nav strong{font-size:.78rem}.timesheet-department-filter{display:flex;align-items:center;gap:8px}.timesheet-department-filter select{min-width:170px;padding:8px 10px;border:1px solid var(--pulse-border);border-radius:9px;background:#fff;color:var(--pulse-text);font-size:.7rem}.timesheet-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.timesheet-kpi{padding:14px 15px;display:grid;gap:3px}.timesheet-kpi>span{font-size:.56rem;color:var(--pulse-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:850}.timesheet-kpi strong{font-size:1.25rem;letter-spacing:-.04em}.timesheet-kpi small{font-size:.58rem;color:var(--pulse-dim)}.timesheet-list{display:grid;gap:10px}.timesheet-card{padding:0;overflow:hidden}.timesheet-card>summary{list-style:none;cursor:pointer;padding:13px 15px;display:grid;grid-template-columns:minmax(190px,1fr) minmax(360px,1.5fr) auto;gap:16px;align-items:center}.timesheet-card>summary::-webkit-details-marker{display:none}.timesheet-card[open]>summary{border-bottom:1px solid var(--pulse-border)}.timesheet-person{display:flex;align-items:center;gap:10px;min-width:0}.timesheet-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(183,133,75,.10);border:1px solid rgba(183,133,75,.18);font-size:.62rem;font-weight:900}.timesheet-person>div{display:grid;min-width:0}.timesheet-person strong{font-size:.76rem}.timesheet-person small{color:var(--pulse-muted);font-size:.58rem}.timesheet-summary-metrics{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:8px}.timesheet-summary-metrics span{display:grid}.timesheet-summary-metrics small{color:var(--pulse-muted);font-size:.52rem;text-transform:uppercase;letter-spacing:.06em}.timesheet-summary-metrics b{font-size:.67rem}.timesheet-state{padding:5px 9px;border-radius:999px;font-size:.53rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.timesheet-state.approved{color:#39724f;background:#edf7f0;border:1px solid rgba(57,114,79,.15)}.timesheet-state.ready{color:#4b6f66;background:#eff6f4;border:1px solid rgba(75,111,102,.15)}.timesheet-state.review{color:#986322;background:#fff5df;border:1px solid rgba(152,99,34,.16)}.timesheet-state.blocked,.timesheet-state.changed{color:#9d403d;background:#fff0ef;border:1px solid rgba(157,64,61,.18)}.timesheet-card.changed,.timesheet-card.blocked{border-color:rgba(185,72,68,.18)}.timesheet-warning{margin:12px 14px 0;padding:10px 12px;border-radius:9px;background:#fff0ef;border:1px solid rgba(185,72,68,.15);color:#7f3a37;font-size:.64rem}.timesheet-shifts{padding:12px 14px;display:grid;gap:8px}.timesheet-shift{border:1px solid var(--pulse-border);border-radius:11px;background:rgba(255,255,255,.55);overflow:hidden}.timesheet-shift.has-exception{border-color:rgba(190,132,58,.2)}.timesheet-shift-main{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:11px 12px}.timesheet-shift-date{display:grid;align-content:center;border-right:1px solid var(--pulse-border)}.timesheet-shift-date strong{font-size:.7rem}.timesheet-shift-date small{font-size:.56rem;color:var(--pulse-muted)}.timesheet-shift-times{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:10px}.timesheet-shift-times span{display:grid}.timesheet-shift-times small{font-size:.51rem;color:var(--pulse-muted);text-transform:uppercase;letter-spacing:.06em}.timesheet-shift-times b{font-size:.65rem}.timesheet-exceptions{padding:0 12px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.timesheet-exceptions>div{display:flex;gap:8px;padding:8px 9px;border-radius:8px;background:#fff7e8}.timesheet-exceptions>div>span{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#bf8137;color:#fff;font-size:.55rem;font-weight:900}.timesheet-exceptions p{margin:0;display:grid}.timesheet-exceptions strong{font-size:.59rem;color:#8a5b26}.timesheet-exceptions small{font-size:.54rem;color:#8b7560;line-height:1.35}.timesheet-approval-zone{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;background:rgba(247,242,234,.62);border-top:1px solid var(--pulse-border)}.timesheet-approve-form{width:100%;display:flex;align-items:end;gap:10px}.timesheet-approve-form label{display:grid;gap:4px;flex:1}.timesheet-approve-form label span{font-size:.53rem;color:var(--pulse-muted);font-weight:800}.timesheet-approve-form input{width:100%;padding:8px 10px;border:1px solid var(--pulse-border);border-radius:8px;background:#fff;font-size:.66rem}.timesheet-approved-copy{display:flex;align-items:center;gap:9px}.timesheet-approved-copy>span{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#edf7f0;color:#39724f;font-weight:900}.timesheet-approved-copy>div{display:grid}.timesheet-approved-copy strong{font-size:.65rem}.timesheet-approved-copy small{font-size:.56rem;color:var(--pulse-muted)}.timesheet-block-note{display:block;color:#9d403d;font-size:.55rem}.timesheet-no-shifts,.timesheet-empty{padding:18px;color:var(--pulse-muted);font-size:.65rem}.timesheet-empty p{margin:3px 0 0}@media(max-width:980px){.timesheet-kpis{grid-template-columns:repeat(2,1fr)}.timesheet-card>summary{grid-template-columns:1fr auto}.timesheet-summary-metrics{grid-column:1/-1;grid-row:2}.timesheet-shift-times{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.timesheet-toolbar{align-items:stretch;flex-direction:column}.timesheet-week-nav{justify-content:space-between}.timesheet-week-nav .timesheet-nav-btn{padding-left:8px;padding-right:8px}.timesheet-department-filter{justify-content:space-between}.timesheet-kpis{grid-template-columns:1fr 1fr}.timesheet-card>summary{grid-template-columns:1fr}.timesheet-state{justify-self:start}.timesheet-summary-metrics{grid-template-columns:1fr 1fr}.timesheet-shift-main{grid-template-columns:1fr}.timesheet-shift-date{border-right:0;border-bottom:1px solid var(--pulse-border);padding-bottom:6px}.timesheet-exceptions{grid-template-columns:1fr}.timesheet-approval-zone,.timesheet-approve-form{align-items:stretch;flex-direction:column}}
.attendance-adjusted-note{margin-top:5px;padding:4px 6px;border-radius:6px;background:#fff5df;color:#8a5b26;font-size:.54rem}

/* Attendance correction modal: keep action buttons inside the ledger, editing outside the scroll container. */
.attendance-adjust-button{border:0;padding:5px 0;background:transparent;color:#a46f39;font-size:.68rem;font-weight:800;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.attendance-adjust-button:hover,.attendance-adjust-button:focus-visible{color:#815023;text-decoration-color:currentColor}
.attendance-adjust-modal .modal-dialog{max-width:620px}
.attendance-adjust-modal .modal-content>form{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;max-height:100%}
.attendance-adjust-modal .modal-header{align-items:flex-start}
.attendance-adjust-modal .modal-header .modal-title{font-size:1.24rem}
.attendance-adjust-modal .modal-body{padding:20px 22px 18px}
.attendance-adjust-modal .modal-footer{padding:14px 22px}
.attendance-adjust-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}
.attendance-adjust-person,.attendance-adjust-original{min-width:0;display:grid;align-content:start;gap:4px;padding:13px 14px;border-radius:12px;background:#f9f3eb;border:1px solid #ecdfd0}
.attendance-adjust-context-label{text-transform:uppercase;letter-spacing:.08em;font-size:.6rem;font-weight:800;color:#94745a}
.attendance-adjust-person strong,.attendance-adjust-original strong{font-size:.9rem;color:#33261c;overflow-wrap:anywhere}
.attendance-adjust-person>span:last-child,.attendance-adjust-original>span:last-child{font-size:.72rem;color:#7c6858}
.attendance-adjust-previous{margin:-3px 0 14px;border:1px solid #e8d6bb;background:#fff9ed;padding:9px 11px;border-radius:9px;color:#835c32;font-size:.71rem;line-height:1.5}
.attendance-adjust-fields{gap:12px}
.attendance-adjust-fields .pulse-field{min-width:0;margin:0 0 13px}
.attendance-adjust-modal .pulse-field label{font-size:.73rem;color:#645244}
.attendance-adjust-modal .pulse-field select,.attendance-adjust-modal .pulse-field input,.attendance-adjust-modal .pulse-field textarea{background:#fff;color:#382b21;color-scheme:light;border:1px solid #e2d4c5;border-radius:9px;font-size:.81rem;width:100%}
.attendance-adjust-modal .pulse-field input:focus,.attendance-adjust-modal .pulse-field select:focus,.attendance-adjust-modal .pulse-field textarea:focus{border-color:#ba8c58;box-shadow:0 0 0 3px rgba(183,133,75,.13)}
.attendance-adjust-fields.is-disabled{opacity:.52}
.attendance-adjust-reason{margin-bottom:14px}
.attendance-adjust-reason small{display:block;font-size:.66rem;color:#827163;line-height:1.45}
.attendance-required{color:#aa623e}
.attendance-adjust-void{display:flex;gap:12px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:11px;border:1px solid #ead5b9;background:#fdf6ed;cursor:pointer}
.attendance-adjust-void input{margin:3px 0 0;width:17px;height:17px;flex:0 0 auto;accent-color:#a8723e}
.attendance-adjust-void>span{display:grid;gap:4px}
.attendance-adjust-void strong{font-size:.78rem;color:#503923}
.attendance-adjust-void small{font-size:.69rem;color:#816b56;line-height:1.4}
.attendance-adjust-tz{font-size:.67rem;color:#806f5e;line-height:1.5;margin:12px 0 0}
@media(max-width:570px){
  .attendance-adjust-modal .modal-dialog{margin:9px}
  .attendance-adjust-modal .modal-header{padding:14px 16px}
  .attendance-adjust-modal .modal-body{padding:16px}
  .attendance-adjust-modal .modal-footer{padding:12px 16px}
  .attendance-adjust-context{grid-template-columns:1fr;gap:8px}
  .attendance-adjust-fields{grid-template-columns:1fr!important;gap:0}
  .attendance-adjust-fields .pulse-field{margin-bottom:12px}
  .attendance-adjust-modal .modal-footer .pulse-btn{flex:1}
}



/* Timesheets — use the native QRelia Pulse action system, never browser-default controls. */
.timesheet-nav-btn,.timesheet-reopen-btn,.timesheet-approval-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;white-space:nowrap}
.timesheet-nav-btn{min-width:92px}
.timesheet-reopen-btn{min-width:86px}
.timesheet-approval-btn{min-width:142px;box-shadow:0 7px 18px rgba(183,133,75,.16)}
.timesheet-approval-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 9px 22px rgba(183,133,75,.21)}
.timesheet-approval-btn:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}
@media(max-width:680px){.timesheet-nav-btn{min-width:0}.timesheet-reopen-btn,.timesheet-approval-btn{width:100%}}

/* Independent management rota and published duty presence */
.management-day-panel{margin:18px 0}.management-day-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.management-day-person{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid var(--pulse-border);background:rgba(255,255,255,.035);border-radius:12px}.management-day-person strong{font-size:1rem}.management-day-person>span:not(.management-day-status){opacity:.8;font-size:.78rem}.management-day-person small{opacity:.7}.management-day-status{font-size:.7rem;font-weight:800;color:var(--pulse-accent)}.management-day-person.outside-hours .management-day-status{color:var(--pulse-muted)}.management-day-empty{margin:10px 0 0;color:var(--pulse-muted)}
.management-rota-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.management-rota-nav input{min-height:39px;padding:6px 12px;background:var(--pulse-panel);color:var(--pulse-text);border:1px solid var(--pulse-border);border-radius:10px}.management-rota-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 0}.management-rota-status{font-weight:800;font-size:.76rem;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.08)}.management-rota-status.published{background:rgba(83,231,167,.13);color:var(--pulse-accent)}.management-rota-week{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:12px;overflow-x:auto;max-width:100%;padding:8px 0 18px}.management-rota-day{background:var(--pulse-panel);border:1px solid var(--pulse-border);border-radius:14px;min-height:150px;padding:14px}.management-rota-day.today{border-color:var(--pulse-accent)}.management-rota-day>header{display:flex;justify-content:space-between;margin-bottom:13px;align-items:center}.management-rota-day>header strong{font-size:.83rem}.management-rota-day>header span{font-size:.72rem;color:var(--pulse-muted)}.management-rota-duty{padding:11px;border-radius:10px;border:1px solid var(--pulse-border);margin:8px 0;background:rgba(255,255,255,.035)}.management-rota-duty.lead{border-left:3px solid var(--pulse-accent)}.management-rota-duty strong{display:block;font-size:.85rem}.management-rota-duty span,.management-rota-duty small{display:block;color:var(--pulse-muted);font-size:.73rem;margin-top:4px}.management-rota-duty form{margin-top:9px}.management-rota-empty{font-size:.76rem;color:var(--pulse-muted)}.management-rota-editor{margin-top:18px}.management-rota-fields{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:13px}.management-rota-fields label{display:flex;flex-direction:column;gap:6px;font-size:.78rem;font-weight:750}.management-rota-fields input,.management-rota-fields select{width:100%;color:var(--pulse-text);background:var(--pulse-panel-2);border:1px solid var(--pulse-border);border-radius:9px;padding:10px;min-height:42px}.management-rota-checkbox{align-self:end;min-height:42px;justify-content:center}.management-rota-checkbox input{width:auto;min-height:auto}.management-rota-alert{padding:13px;border-radius:9px;background:rgba(240,165,64,.10);border:1px solid rgba(240,165,64,.35);margin:13px 0}.management-rota-action-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.management-rota-small-btn{font-size:.72rem;color:var(--pulse-accent);background:transparent;border:0;padding:3px 0;font-weight:750}.management-rota-notes{font-style:italic}@media(max-width:1200px){.management-rota-week{grid-template-columns:repeat(7,190px)}.management-rota-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.management-rota-fields{grid-template-columns:1fr}.management-rota-nav{width:100%}.management-rota-nav input{width:100%}}
/* HOD rota refresh: readable seven-day board, accessible editor and published status */
.pulse-admin-body .management-rota-page { display:grid; gap:16px; min-width:0; padding-bottom:20px; }
.pulse-admin-body .management-rota-hero { margin-bottom:0; min-height:154px; }
.pulse-admin-body .management-rota-hero > div:first-child { position:relative; z-index:1; }
.pulse-admin-body .management-rota-hero h1 { font-size:clamp(1.85rem,3vw,2.65rem); }
.pulse-admin-body .management-rota-hero p { line-height:1.55; }
.pulse-admin-body .management-rota-toolbar { margin:0; padding:13px 18px; gap:12px 18px; }
.pulse-admin-body .management-rota-nav { display:flex; gap:9px; align-items:center; min-width:0; }
.pulse-admin-body .management-rota-nav-arrow { display:grid; place-items:center; flex:0 0 35px; width:35px; height:35px; border:1px solid #e6dacc; background:#fffdfa; border-radius:10px; color:#795635; font-size:1.8rem; text-decoration:none; line-height:1; }
.pulse-admin-body .management-rota-nav-arrow:hover { border-color:#bb976d; background:#f9efe3; }
.pulse-admin-body .management-rota-week-label { display:grid; gap:2px; min-width:0; }
.pulse-admin-body .management-rota-week-label span, .pulse-admin-body .management-rota-date-jump label { color:#9a8879; font-size:.60rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.pulse-admin-body .management-rota-week-label strong { color:#443123; font-size:.94rem; font-weight:850; white-space:nowrap; }
.pulse-admin-body .management-rota-date-jump { display:flex; gap:8px; align-items:center; }
.pulse-admin-body .management-rota-date-jump input { min-height:36px; border:1px solid #e6dacb; border-radius:10px; padding:5px 9px; background:#fffdfa; color:#493729; font-size:.76rem; }
.pulse-admin-body .management-rota-date-jump .pulse-btn { min-height:36px; }
.pulse-admin-body .management-rota-status { display:inline-flex; align-items:center; gap:7px; min-height:32px; border:1px solid #e7d9c8; color:#8e6a42; background:#fcf5eb; white-space:nowrap; }
.pulse-admin-body .management-rota-status.published { color:#46724f; background:#eef6ed; border-color:#d6e5d3; }
.pulse-admin-body .management-rota-status-dot { display:block; width:7px; height:7px; border-radius:50%; background:#c89457; }
.pulse-admin-body .management-rota-status.published .management-rota-status-dot { background:#588760; }
.pulse-admin-body .management-rota-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.pulse-admin-body .management-rota-metric { display:flex; flex-direction:column; gap:6px; min-width:0; min-height:118px; padding:17px 19px; border:1px solid #e8ddd0; background:#fffdfa; border-radius:16px; box-shadow:0 7px 22px rgba(81,56,32,.035); }
.pulse-admin-body .management-rota-metric > span { color:#877463; font-size:.69rem; font-weight:750; }
.pulse-admin-body .management-rota-metric > strong { color:#433123; font-size:1.7rem; line-height:1.1; letter-spacing:-.035em; font-weight:850; }
.pulse-admin-body .management-rota-metric > strong small { color:#b5a493; font-size:.85rem; }
.pulse-admin-body .management-rota-metric > small { color:#9a8876; font-size:.64rem; margin-top:auto; }
.pulse-admin-body .management-rota-coverage-bar { display:flex; gap:5px; margin-top:auto; }
.pulse-admin-body .management-rota-coverage-bar i { height:6px; flex:1; border-radius:9px; background:#ede4da; }
.pulse-admin-body .management-rota-coverage-bar i.filled { background:#6c9875; }
.pulse-admin-body .management-rota-metric.needs-cover .management-rota-coverage-bar i.filled { background:#bf915d; }
.pulse-admin-body .management-rota-publication { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:15px 19px; border:1px solid #e7d6c0; border-radius:15px; background:linear-gradient(115deg,#faf1e5,#fffbf5); }
.pulse-admin-body .management-rota-publication strong { color:#5a402b; font-weight:850; font-size:.91rem; }
.pulse-admin-body .management-rota-publication p { color:#897363; font-size:.72rem; margin:3px 0 0; line-height:1.5; }
.pulse-admin-body .management-rota-publication-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.pulse-admin-body .management-rota-publication-actions form { margin:0; }
.pulse-admin-body .management-rota-publication-actions .pulse-btn { min-height:38px; }
.pulse-admin-body .management-rota-publication-actions .pulse-btn:disabled { opacity:.46; cursor:not-allowed; box-shadow:none; }
.pulse-admin-body .management-rota-readonly { color:#916d4c; font-weight:750; font-size:.70rem; }
.pulse-admin-body .management-rota-board { padding:0; overflow:hidden; }
.pulse-admin-body .management-rota-board-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:20px 22px 19px; border-bottom:1px solid #ece2d5; }
.pulse-admin-body .management-rota-board-heading h2 { margin:3px 0 5px; font-size:1.22rem; color:#443327; letter-spacing:-.025em; }
.pulse-admin-body .management-rota-board-heading p { color:#877360; font-size:.73rem; margin:0; }
.pulse-admin-body .management-rota-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.pulse-admin-body .management-rota-legend > span { display:inline-flex; align-items:center; gap:7px; color:#897665; font-size:.65rem; font-weight:750; white-space:nowrap; }
.pulse-admin-body .management-rota-legend-dot { display:inline-block; width:9px; height:9px; background:#c6b5a3; border-radius:50%; }
.pulse-admin-body .management-rota-legend-dot.lead { background:#6d9876; }
.pulse-admin-body .management-rota-week { display:block; padding:0; overflow:visible; max-width:none; }
.pulse-admin-body .management-rota-day { display:grid; grid-template-columns:150px minmax(0,1fr) 92px; align-items:start; gap:16px; min-height:106px; padding:17px 21px; border:0; border-bottom:1px solid #eee4d9; border-radius:0; background:#fffdfa; }
.pulse-admin-body .management-rota-day:last-child { border-bottom:0; }
.pulse-admin-body .management-rota-day:nth-child(even) { background:#fdf9f3; }
.pulse-admin-body .management-rota-day.today { background:linear-gradient(90deg,#f7efe1,#fffdf9 35%); box-shadow:inset 3px 0 #af7e43; }
.pulse-admin-body .management-rota-day-label { display:grid; gap:4px; padding-top:3px; }
.pulse-admin-body .management-rota-day-name { color:#857160; font-size:.71rem; font-weight:750; }
.pulse-admin-body .management-rota-day-label > strong { font-size:1.06rem; font-weight:850; color:#413021; line-height:1.1; }
.pulse-admin-body .management-rota-today, .pulse-admin-body .management-rota-needs-lead, .pulse-admin-body .management-rota-covered { display:inline-flex; width:fit-content; align-items:center; border-radius:999px; padding:3px 8px; font-size:.57rem; font-weight:850; }
.pulse-admin-body .management-rota-today { color:#8f663c; background:#f4e2cb; }
.pulse-admin-body .management-rota-needs-lead { color:#a66a2e; background:#faedd9; }
.pulse-admin-body .management-rota-covered { color:#477453; background:#e9f2e9; }
.pulse-admin-body .management-rota-day-content { min-width:0; align-self:stretch; }
.pulse-admin-body .management-rota-day-assignments { display:grid; grid-template-columns:repeat(auto-fit,minmax(218px,1fr)); gap:10px; }
.pulse-admin-body .management-rota-empty { display:flex; align-items:center; min-height:58px; margin:0; padding:4px 0; color:#a08d7b; font-size:.73rem; }
.pulse-admin-body .management-rota-duty { display:grid; gap:4px; min-width:0; margin:0; padding:12px 13px; border:1px solid #e9e0d5; background:#fff; border-radius:12px; box-shadow:0 3px 9px rgba(75,51,28,.025); }
.pulse-admin-body .management-rota-duty.lead { border:1px solid #c9dccb; border-left:3px solid #699773; background:linear-gradient(125deg,#f4faf4,#fff 77%); }
.pulse-admin-body .management-rota-duty-top { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 9px; align-items:center; }
.pulse-admin-body .management-rota-duty-type { color:#98816e; font-size:.57rem; font-weight:850; letter-spacing:.035em; text-transform:uppercase; }
.pulse-admin-body .management-rota-duty.lead .management-rota-duty-type { color:#4e7a55; }
.pulse-admin-body .management-rota-duty-time { color:#775f4b; font-size:.65rem; font-weight:850; white-space:nowrap; }
.pulse-admin-body .management-rota-duty > strong { display:block; color:#463224; font-weight:850; font-size:.84rem; overflow-wrap:anywhere; }
.pulse-admin-body .management-rota-duty .management-rota-duty-department { color:#8d7b6c; font-size:.66rem; margin:0; }
.pulse-admin-body .management-rota-duty .management-rota-duty-notes { color:#84705f; font-size:.65rem; margin-top:5px; padding-top:7px; border-top:1px solid #efe7dd; overflow-wrap:anywhere; }
.pulse-admin-body .management-rota-duty .management-rota-duty-unavailable { color:#b95151; font-weight:750; font-size:.62rem; }
.pulse-admin-body .management-rota-duty-actions { display:flex; gap:12px; align-items:center; border-top:1px solid #eee8e0; padding-top:8px; margin-top:6px; }
.pulse-admin-body .management-rota-duty-actions form { margin:0; }
.pulse-admin-body .management-rota-small-btn { font-size:.65rem; font-weight:850; color:#987044; cursor:pointer; }
.pulse-admin-body .management-rota-small-btn.remove { color:#b46b5b; }
.pulse-admin-body .management-rota-add-day { justify-self:end; min-width:80px; min-height:33px; padding:5px 10px; border:1px dashed #d6b998; border-radius:10px; background:rgba(255,255,255,.65); color:#976b3d; font-size:.66rem; font-weight:850; cursor:pointer; }
.pulse-admin-body .management-rota-add-day:hover { color:#764c28; border-style:solid; background:#f6e9d8; }
.pulse-admin-body .management-rota-editor { margin:0; scroll-margin-top:105px; padding:22px; }
.pulse-admin-body .management-rota-editor-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:19px; }
.pulse-admin-body .management-rota-editor-heading h2 { margin:3px 0 5px; color:#443224; font-size:1.25rem; }
.pulse-admin-body .management-rota-editor-heading p { margin:0; color:#907b68; font-size:.75rem; }
.pulse-admin-body .management-rota-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.pulse-admin-body .management-rota-fields label { display:flex; flex-direction:column; gap:7px; min-width:0; color:#79624f; font-size:.69rem; font-weight:800; }
.pulse-admin-body .management-rota-fields input, .pulse-admin-body .management-rota-fields select { width:100%; min-width:0; min-height:42px; background:#fffdfa; border:1px solid #e4d7c8; color:#483628; border-radius:10px; padding:9px 11px; font-size:.79rem; }
.pulse-admin-body .management-rota-fields input:focus-visible, .pulse-admin-body .management-rota-fields select:focus-visible { outline:2px solid #b38a56; outline-offset:2px; }
.pulse-admin-body .management-rota-fields .management-rota-field-manager { grid-column:span 2; }
.pulse-admin-body .management-rota-fields .management-rota-checkbox { grid-column:span 2; flex-direction:row; align-items:center; justify-content:flex-start; gap:12px; padding:11px 13px; border:1px solid #d5e1d5; border-radius:12px; background:#f4faf3; }
.pulse-admin-body .management-rota-fields .management-rota-checkbox input { width:18px; height:18px; min-height:18px; flex:0 0 18px; accent-color:#6b9672; }
.pulse-admin-body .management-rota-checkbox > span { display:grid; gap:4px; }
.pulse-admin-body .management-rota-checkbox strong { color:#51745a; font-size:.75rem; }
.pulse-admin-body .management-rota-checkbox small { color:#7d947d; line-height:1.4; font-weight:500; font-size:.65rem; }
.pulse-admin-body .management-rota-fields .management-rota-notes-field { grid-column:span 2; }
.pulse-admin-body .management-rota-notes-field > span small { font-weight:500; color:#ab9784; }
.pulse-admin-body .management-rota-editor-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; border-top:1px solid #eae0d3; margin-top:20px; padding-top:17px; }
.pulse-admin-body .management-rota-editor-footer > span { color:#947f6b; font-size:.70rem; }
.pulse-admin-body .management-rota-explainer { padding:11px 16px; border:1px solid #e6d9c8; border-radius:13px; background:rgba(255,253,249,.75); }
.pulse-admin-body .management-rota-explainer strong { color:#6e533b; font-size:.70rem; }
.pulse-admin-body .management-rota-explainer p { margin:5px 0 0; color:#907e6b; font-size:.68rem; line-height:1.56; }
.pulse-admin-body .management-rota-alert { margin:0; color:#85562c; background:#fff3e4; border-color:#e9c79c; }
.pulse-admin-body .management-rota-alert.is-success { color:#476d50; background:#edf5ed; border-color:#c4dfc9; }

/* Manager access: make the venue-wide HOD delegation discoverable above account cards */
.pulse-admin-body .pulse-access-hod-panel { padding:24px; border:1px solid #dbc5ab; border-radius:19px; background:linear-gradient(130deg,#fffdf9,#f8f0e5); box-shadow:0 12px 32px rgba(82,57,34,.065); }
.pulse-admin-body .pulse-access-hod-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px; }
.pulse-admin-body .pulse-access-hod-head h2 { margin:4px 0 5px; color:#433124; font-size:1.37rem; letter-spacing:-.02em; }
.pulse-admin-body .pulse-access-hod-head p { color:#836f5d; margin:0; line-height:1.5; font-size:.75rem; max-width:760px; }
.pulse-admin-body .pulse-access-hod-count { border-radius:999px; background:#f0dfc9; color:#8e6339; padding:7px 11px; font-weight:850; font-size:.64rem; white-space:nowrap; }
.pulse-admin-body .pulse-access-hod-content { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr); gap:17px; }
.pulse-admin-body .pulse-access-hod-grant, .pulse-admin-body .pulse-access-hod-current { padding:17px; border:1px solid #ecded0; border-radius:14px; background:#fffdfa; min-width:0; }
.pulse-admin-body .pulse-access-hod-label { display:block; margin-bottom:11px; color:#80664e; font-size:.65rem; letter-spacing:.065em; text-transform:uppercase; font-weight:900; }
.pulse-admin-body .pulse-access-hod-grant-form { display:flex; flex-wrap:wrap; align-items:stretch; gap:9px; }
.pulse-admin-body .pulse-access-hod-manager-picker { flex:1 1 205px; min-width:0; }
.pulse-admin-body .pulse-access-hod-manager-picker select { width:100%; min-height:41px; padding:9px 13px; border-radius:10px; border:1px solid #d8c7b4; background:#fff; color:#4f3826; font-size:.75rem; font-weight:750; }
.pulse-admin-body .pulse-access-hod-grant-form .pulse-btn { min-height:41px; }
.pulse-admin-body .pulse-access-hod-grant > small { display:block; margin-top:10px; line-height:1.45; font-size:.65rem; color:#9b866f; }
.pulse-admin-body .pulse-access-hod-empty { margin:0; padding:10px 12px; border:1px dashed #e3d4c1; border-radius:10px; background:#fffbf6; color:#99816b; font-size:.72rem; line-height:1.5; }
.pulse-admin-body .pulse-access-hod-delegate { display:flex; align-items:center; gap:9px; padding:8px 0; border-top:1px solid #eee2d5; }
.pulse-admin-body .pulse-access-hod-delegate:first-of-type { border-top:0; }
.pulse-admin-body .pulse-access-hod-initial { display:grid; place-items:center; width:32px; height:32px; flex:0 0 32px; border-radius:10px; color:#765638; background:#f1e2d0; font-weight:900; }
.pulse-admin-body .pulse-access-hod-delegate > div { display:grid; gap:3px; flex:1; min-width:0; }
.pulse-admin-body .pulse-access-hod-delegate strong { color:#4d3828; font-size:.76rem; }
.pulse-admin-body .pulse-access-hod-delegate small { color:#987f6a; font-size:.62rem; }
.pulse-admin-body .pulse-access-hod-delegate .pulse-btn { min-height:31px; padding:5px 10px; font-size:.62rem; }
@media(max-width:1220px) {
  .pulse-admin-body .management-rota-toolbar { justify-content:flex-start; }
  .pulse-admin-body .management-rota-status { margin-left:auto; }
  .pulse-admin-body .management-rota-day { grid-template-columns:120px minmax(0,1fr) 83px; gap:11px; padding:15px; }
  .pulse-admin-body .management-rota-day-assignments { grid-template-columns:repeat(auto-fit,minmax(185px,1fr)); }
}
@media(max-width:900px) {
  .pulse-admin-body .management-rota-hero { align-items:flex-start; flex-direction:column; }
  .pulse-admin-body .management-rota-date-jump { order:3; }
  .pulse-admin-body .management-rota-overview { gap:9px; }
  .pulse-admin-body .management-rota-metric { padding:13px 14px; }
  .pulse-admin-body .management-rota-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pulse-admin-body .pulse-access-hod-content { grid-template-columns:1fr; }
}
@media(max-width:630px) {
  .pulse-admin-body .management-rota-page { gap:12px; }
  .pulse-admin-body .management-rota-toolbar { padding:13px; align-items:flex-start; }
  .pulse-admin-body .management-rota-week-label strong { font-size:.80rem; }
  .pulse-admin-body .management-rota-nav { flex-wrap:wrap; }
  .pulse-admin-body .management-rota-nav .pulse-btn { order:4; }
  .pulse-admin-body .management-rota-date-jump { width:100%; }
  .pulse-admin-body .management-rota-date-jump label { display:none; }
  .pulse-admin-body .management-rota-status { margin-left:0; }
  .pulse-admin-body .management-rota-overview { grid-template-columns:1fr 1fr; }
  .pulse-admin-body .management-rota-metric:first-child { grid-column:1 / -1; }
  .pulse-admin-body .management-rota-metric { min-height:98px; }
  .pulse-admin-body .management-rota-board-heading { padding:17px 15px; }
  .pulse-admin-body .management-rota-day { grid-template-columns:1fr auto; gap:10px; }
  .pulse-admin-body .management-rota-day-label { grid-column:1; display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
  .pulse-admin-body .management-rota-day-content { grid-column:1 / -1; grid-row:2; }
  .pulse-admin-body .management-rota-day-assignments { grid-template-columns:1fr; }
  .pulse-admin-body .management-rota-add-day { grid-column:2; grid-row:1; }
  .pulse-admin-body .management-rota-editor { padding:16px; }
  .pulse-admin-body .management-rota-editor-heading { flex-wrap:wrap; }
  .pulse-admin-body .management-rota-fields .management-rota-field-manager, .pulse-admin-body .management-rota-fields .management-rota-checkbox, .pulse-admin-body .management-rota-fields .management-rota-notes-field { grid-column:1 / -1; }
  .pulse-admin-body .pulse-access-hod-panel { padding:16px; }
  .pulse-admin-body .pulse-access-hod-head { flex-wrap:wrap; }
  .pulse-admin-body .pulse-access-hod-grant-form { flex-direction:column; }
  .pulse-admin-body .pulse-access-hod-manager-picker { flex-basis:auto; }
}
