@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#dce8f3,transparent 42%),#f7f9fb}.auth-card{width:min(430px,100%);padding:36px;border:1px solid #d9e2ec;border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(16,42,67,.08)}.auth-card .brand{padding:4px 0 30px;color:#102a43}.auth-card .brand small{color:#627d98}.auth-card h1{font-size:27px;margin:16px 0 8px}.auth-form{display:grid;gap:15px;margin-top:24px}.auth-form label{display:grid;gap:7px;font:700 11px 'DM Mono';color:#627d98;text-transform:uppercase}.auth-form input{width:100%;padding:11px 12px;border:1px solid #d9e2ec;border-radius:6px;font:13px Manrope;text-transform:none}.auth-form .primary{padding:12px}.auth-message{min-height:1.4em;margin:18px 0 0}.auth-message.error{color:#c3423f}.auth-message.success{color:#16815d}
.auth-recovery-link{justify-self:start;padding:0;border:0;background:transparent;color:var(--blue);font:700 12px Manrope;cursor:pointer;text-decoration:underline}.auth-recovery-link:disabled{opacity:.6;cursor:wait}
.password-field{position:relative;display:block}.auth-form .password-field input{padding-right:62px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:4px 6px;border:0;border-radius:4px;background:transparent;color:var(--blue);font:700 11px Manrope;text-transform:none;cursor:pointer}.password-toggle:hover,.password-toggle:focus-visible{background:#e8f1f8;outline:0}
:root{--ink:#17212d;--navy:#102a43;--blue:#1261a0;--sky:#e9f3fa;--line:#d9e2ec;--muted:#627d98;--paper:#f7f9fb;--gold:#e7a52b;--green:#16815d;--red:#c3423f;--shadow:0 12px 35px rgba(16,42,67,.08)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px Manrope,Arial,sans-serif}.sidebar{width:250px;background:var(--navy);color:#eff6fc;position:fixed;inset:0 auto 0 0;padding:28px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:4px 10px 32px}.brand strong{font-size:18px;letter-spacing:.12em}.brand small,.user-card small{display:block;color:#a8c1d8;font-size:10px;margin-top:2px}.roundel{background:var(--gold);color:var(--navy);display:grid;place-items:center;border-radius:50%;width:31px;height:31px;font-size:18px}nav{display:grid;gap:6px}.nav{background:transparent;border:0;border-radius:7px;color:#c2d6e6;text-align:left;padding:12px 13px;font:600 13px Manrope;cursor:pointer}.nav:hover,.nav.active{background:rgba(255,255,255,.12);color:white}.nav b{float:right;background:#e8ae39;color:#233848;padding:1px 7px;border-radius:12px;font-size:10px}.side-bottom{margin-top:auto}.user-card{border-top:1px solid rgba(255,255,255,.13);padding:18px 9px;display:flex;gap:10px;align-items:center;font-size:12px}.avatar{background:#77a9cb;color:white;border-radius:50%;height:31px;width:31px;display:grid;place-items:center;font-weight:800;font-size:10px}.reset{background:none;border:0;color:#a8c1d8;text-decoration:underline;cursor:pointer;font:11px Manrope;margin-left:10px}main{margin-left:250px;padding:38px 44px;min-height:100vh;max-width:1550px}header{display:flex;justify-content:space-between;align-items:start;margin-bottom:30px}h1,h2,p{margin:0}h1{font:700 30px 'Playfair Display',serif;letter-spacing:-.5px}h2{font-size:18px;letter-spacing:-.4px}.eyebrow{font:500 10px 'DM Mono',monospace;color:var(--blue);letter-spacing:.12em;margin-bottom:7px}.muted{color:var(--muted);font-size:12px;margin-top:5px}.header-actions,.toolbar,.section-heading,.panel-title{display:flex;align-items:center;gap:10px}.header-actions{justify-content:flex-end}.primary,.secondary,.notice button,.text-button{border-radius:6px;padding:10px 14px;border:1px solid transparent;font:700 12px Manrope;cursor:pointer}.primary{background:var(--blue);color:white;box-shadow:0 4px 10px #1261a033}.primary:hover{background:#084c83}.secondary{border-color:var(--line);background:#fff;color:var(--navy)}.icon-button{position:relative;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:21px;border-radius:6px;width:39px;height:38px}.icon-button i{position:absolute;width:7px;height:7px;background:var(--red);border-radius:50%;right:8px;top:8px}.notice{background:#e5f1f9;border-left:4px solid var(--blue);padding:17px 20px;display:flex;gap:14px;align-items:center;margin-bottom:24px}.notice>span{font-size:19px;color:var(--blue)}.notice strong{font-size:13px}.notice p{font-size:12px;color:#42627d;margin-top:3px}.notice button{margin-left:auto;background:transparent;color:var(--blue);padding:8px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.metrics article,.panel,.detail-card,.request-card,.case-card{background:white;border:1px solid #e6edf3;box-shadow:0 2px 6px rgba(16,42,67,.025)}.metrics article{min-height:148px;padding:19px;border-radius:8px;display:flex;flex-direction:column}.metrics span{font-size:11px;color:var(--muted);font-weight:700}.metrics strong{font:700 31px 'Playfair Display',serif;margin:8px 0 3px}.metrics small{font-size:10px;color:var(--muted)}.metrics a,.text-button{color:var(--blue);font-size:11px;font-weight:800;cursor:pointer;margin-top:auto}.meter{height:5px;border-radius:4px;background:#e6edf3;margin-top:auto;overflow:hidden}.meter i{display:block;height:100%;background:var(--green);width:50%}.alert-metric strong{color:var(--red)}.grid.two{display:grid;grid-template-columns:1.35fr 1fr;gap:20px}.panel{border-radius:8px;padding:22px}.panel-title{justify-content:space-between;margin-bottom:18px}.text-button{border:0;background:transparent;padding:0}.today-details{display:grid;gap:11px}.detail-row{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:7px;padding:12px}.detail-type{width:66px;color:var(--blue);font:700 10px 'DM Mono';text-transform:uppercase}.detail-time{font-size:12px;min-width:95px}.detail-people{display:flex;gap:3px;margin-left:auto}.tiny-avatar{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#dcebf5;color:#24577e;font-size:8px;font-weight:800;border:2px solid white}.tiny-avatar.poc{background:#f9e5b4;color:#785212}.tiny-avatar.empty{background:#f1f4f7;color:#8798a5;border:1px dashed #aab8c5}.detail-row button{padding:7px 10px;font-size:10px}.timeline{display:grid;gap:14px}.timeline-item{display:grid;grid-template-columns:46px 1fr;gap:10px}.date-box{text-align:center;border-right:1px solid var(--line);font:700 11px 'DM Mono';color:var(--blue);padding-top:2px}.date-box small{display:block;color:var(--muted);font:10px Manrope}.timeline-item strong{font-size:12px}.timeline-item p{font-size:11px;color:var(--muted);margin-top:3px}.view{display:none}.view.active-view{display:block}.toolbar{justify-content:space-between;margin-bottom:17px}.month-control{display:flex;align-items:center;gap:13px}.month-control strong{font-size:17px}.month-control button{background:white;border:1px solid var(--line);font-size:21px;width:30px;height:30px;border-radius:5px;cursor:pointer}.legend{display:flex;gap:20px;font-size:11px;color:var(--muted);margin:14px 0}.legend-dot{display:inline-block;border-radius:50%;height:7px;width:7px;margin-right:4px}.ready{background:var(--green)}.open{background:var(--gold)}.blocked{background:#a3afb9}.calendar{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white}.day-head{background:#f1f5f8;color:var(--muted);padding:11px;font:500 10px 'DM Mono';text-transform:uppercase}.cal-day{min-height:135px;padding:10px;border-right:1px solid var(--line);border-top:1px solid var(--line)}.cal-day:nth-child(5n){border-right:0}.cal-date{font:700 11px 'DM Mono';color:var(--muted);margin-bottom:8px}.cal-day.today .cal-date{background:var(--blue);color:white;border-radius:50%;height:21px;width:21px;display:grid;place-items:center}.cal-day.blocked-day{background:#f5f6f7}.blocked-note{font-size:10px;color:#81909e;padding-top:15px}.mini-detail{font-size:9px;border-left:3px solid var(--gold);padding:4px 5px;background:#fffaf0;margin:4px 0;line-height:1.4;cursor:pointer}.mini-detail.ready-card{border-color:var(--green);background:#f1faf6}.mini-detail strong{display:block;font-size:9px}.section-heading{justify-content:space-between;margin-bottom:20px}.card-list{display:grid;gap:11px}.detail-card,.request-card,.case-card{padding:17px 19px;border-radius:8px;display:flex;align-items:center;gap:17px}.date-pill{border-right:1px solid var(--line);padding-right:16px;min-width:75px;text-align:center;color:var(--blue);font:700 13px 'DM Mono'}.date-pill small{display:block;color:var(--muted);font:10px Manrope;margin-top:3px}.card-main{flex:1}.card-main h3{font-size:13px;margin:0 0 5px}.card-main p{font-size:11px;color:var(--muted)}.tags{display:flex;gap:6px;margin-top:8px}.tag{padding:3px 7px;border-radius:4px;font:500 9px 'DM Mono';background:#edf4f8;color:#3b6e92}.tag.warn{background:#fff3d7;color:#946400}.tag.danger{background:#fde9e8;color:#a83734}.card-actions{display:flex;gap:7px}.filters{display:flex;gap:7px;margin-bottom:14px}.filter{background:white;border:1px solid var(--line);padding:7px 12px;border-radius:16px;font:700 10px Manrope;color:var(--muted)}.filter.active{border-color:#9cc5e4;color:var(--blue);background:#eff7fc}.attendance-list{background:white;border:1px solid var(--line);border-radius:8px;overflow:hidden}.attendance-item{display:grid;grid-template-columns:120px 1fr 110px 100px 120px;gap:15px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line);font-size:11px}.attendance-item:last-child{border:0}.status{font:700 9px 'DM Mono';padding:5px 7px;border-radius:4px;text-align:center}.status.pending{background:#fff2d6;color:#986a04}.status.attended{background:#e2f5ed;color:#0e7653}.status.no-show{background:#fde8e7;color:#b03937}.modal-backdrop{display:none;position:fixed;inset:0;background:#102a4355;z-index:10;place-items:center}.modal-backdrop.show{display:grid}.modal{position:relative;background:#fff;border-radius:10px;width:min(520px,calc(100vw - 28px));padding:28px;box-shadow:var(--shadow)}.close{position:absolute;right:13px;top:10px;border:0;background:none;font-size:25px;cursor:pointer;color:var(--muted)}.modal h2{margin-bottom:6px}.modal p{font-size:12px;color:var(--muted);line-height:1.5}.form-row{display:grid;gap:6px;margin:15px 0}.form-row label{font:700 10px 'DM Mono';color:var(--muted);text-transform:uppercase}.form-row input,.form-row select,.form-row textarea{border:1px solid var(--line);padding:10px;border-radius:5px;font:13px Manrope;width:100%}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;right:25px;bottom:25px;background:#183c5b;color:white;padding:12px 16px;border-radius:6px;box-shadow:var(--shadow);font-size:12px;transform:translateY(100px);opacity:0;transition:.25s;z-index:20}.toast.show{transform:none;opacity:1}@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.calendar{grid-template-columns:repeat(3,1fr)}.cal-day:nth-child(5n){border-right:1px solid var(--line)}}@media(max-width:720px){.sidebar{position:static;width:100%;height:auto;padding:15px}.sidebar nav{display:flex;overflow:auto}.nav{white-space:nowrap}.side-bottom{display:none}main{margin:0;padding:24px 16px}header{display:block}.header-actions{margin-top:15px;justify-content:start}.metrics{grid-template-columns:1fr 1fr}.calendar{grid-template-columns:repeat(2,1fr)}.attendance-item{grid-template-columns:1fr 1fr}.attendance-item>:last-child{display:none}}
/* The app switches between the sign-in screen and roster with the native
   hidden attribute. Keep component display rules from overriding it. */
[hidden] {
  display: none !important;
}

.month-control input[type="month"] {
  min-height: 30px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #fff;
  color: var(--navy);
  font: 700 11px Manrope;
  padding: 4px 7px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.monthly-roster-panel {
  margin-top: 24px;
  padding: 22px;
  background: #fff;
  border: 1px solid #e6edf3;
  border-radius: 8px;
}

.monthly-roster-summary {
  display: grid;
  gap: 10px;
}

.monthly-roster-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 7px;
}

.monthly-roster-card h3 {
  margin: 0 0 8px;
  font-size: 13px;
}

.monthly-roster-card p:not(.eyebrow) {
  margin: 4px 0;
  color: var(--muted);
  font-size: 11px;
}

.roster-slot-status {
  display: flex;
  min-width: 150px;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 9px;
}

.blocked-roster-card {
  background: #f5f6f7;
}

/* Reveille is the cool morning color; Retreat is the warm evening color. */
.mini-detail.reveille-detail,
.monthly-roster-card.reveille-roster,
.detail-card.reveille-open {
  border-left: 4px solid #2678b9;
}

.mini-detail.reveille-detail {
  background: #edf7ff;
}

.mini-detail.retreat-detail,
.monthly-roster-card.retreat-roster,
.detail-card.retreat-open {
  border-left: 4px solid #bc6b2e;
}

.mini-detail.retreat-detail {
  background: #fff4e9;
}

/* Past dates remain visible for accountability, but are clearly closed to sign-up. */
.cal-day.past-day {
  background: #edf0f2;
}

.cal-day.past-day .cal-date,
.cal-day.past-day .blocked-note {
  color: #697783;
}

/* Past details remain editable only for the Super Admin. Make that management
   action obvious and keyboard-accessible instead of looking like a closed card. */
.mini-detail.super-admin-past-detail {
  display: block;
  width: 100%;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  text-align: left;
  font: inherit;
}
.mini-detail.super-admin-past-detail:hover,
.mini-detail.super-admin-past-detail:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 1px;
  filter: brightness(.98);
}
.super-admin-manage-detail {
  display: inline-block;
  margin-top: 4px;
  color: var(--blue);
  font: 700 9px 'DM Mono';
  text-transform: uppercase;
}

.monthly-roster-card.reveille-roster .eyebrow,
.detail-card.reveille-open .date-pill {
  color: #17649c;
}

.monthly-roster-card.retreat-roster .eyebrow,
.detail-card.retreat-open .date-pill {
  color: #a6531e;
}

/* A shift already owned by the signed-in cadet remains visible while other
   slots are open, but cannot be mistaken for another open claim. */
.detail-card.selected-open-detail {
  background: #eff9f4;
  border-color: #9fd5ba;
  box-shadow: 0 3px 10px rgba(22, 129, 93, .12);
}

.selected-shift-button {
  background: var(--green);
  box-shadow: 0 4px 10px rgba(22, 129, 93, .23);
}

.selected-shift-button:hover { background: #0d6847; }

.tag.selected-shift-tag { background: #ddf3e8; color: #0e7653; }

.roster-slot { width:100%; background:#fff; text-align:left; cursor:default; }
.roster-slot.open-slot { color:var(--blue); border-style:dashed; cursor:pointer; background:#f2f8fc; }
.roster-slot:disabled { opacity:1; }

@media (max-width: 720px) {
  .monthly-roster-card {
    flex-direction: column;
  }

  .roster-slot-status {
    align-items: flex-start;
  }
}

.side-bottom{position:relative}.user-card{width:100%;border:0;border-top:1px solid rgba(255,255,255,.13);padding:18px 9px;background:transparent;color:#eff6fc;display:flex;gap:10px;align-items:center;text-align:left;font:12px Manrope;cursor:pointer}.user-card:hover{background:rgba(255,255,255,.08)}.user-card>span:nth-child(2){min-width:0}.user-card strong{display:block}.profile-chevron{margin-left:auto;color:#a8c1d8;font-size:16px}.profile-popover{position:absolute;z-index:5;bottom:60px;left:7px;right:7px;padding:13px;border:1px solid #315470;border-radius:7px;background:#fff;color:var(--navy);box-shadow:var(--shadow)}.profile-popover strong,.profile-popover small,.profile-popover span{display:block}.profile-popover small{margin:4px 0;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.profile-popover span{font:700 9px 'DM Mono';color:var(--blue);letter-spacing:.06em}.profile-popover button{width:100%;margin-top:12px;padding:8px;border:1px solid #c9423f;border-radius:5px;background:#fff;color:#b13834;font:700 11px Manrope;cursor:pointer}

.important-information{margin:0 0 24px}.important-banner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;border:0;border-radius:8px;background:#b63835;color:#fff;font:700 12px Manrope;letter-spacing:.08em;cursor:pointer;text-align:left}.important-banner:hover{background:#982d2b}.important-banner b{font-size:11px;letter-spacing:0;white-space:nowrap}.important-information-content,.important-information [id="important-information-content"]{margin-top:8px;padding:20px 22px;border:1px solid #ebc3c1;border-left:5px solid #b63835;border-radius:9px;background:#fffafa}.important-information-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}.important-information h2{margin:2px 0 0;font-size:20px}.important-information-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:16px 0}.important-information-grid p{margin:0;padding:10px 12px;border-radius:6px;background:#fff;border:1px solid #eed8d7;font-size:12px;line-height:1.45}.important-information-grid strong,.important-information-grid span{display:block}.important-information-grid span{margin-top:3px;color:var(--muted)}.important-contact{margin:0;font-size:13px}.important-contact a{color:var(--blue);font-weight:700}.important-note{margin:8px 0 0;color:var(--muted);font-size:11px}@media(max-width:720px){.important-information [id="important-information-content"]{padding:16px}.important-information-heading{align-items:flex-start}.important-information-grid{grid-template-columns:1fr}.important-information-heading .secondary{white-space:nowrap}}

/* Blocked dates intentionally show only the operational reason, never a roster. */
.cal-day.blocked-day{background:#e6e9ed}.blocked-note{color:#53616d;line-height:1.45}.blocked-note strong,.blocked-note span{display:block}.blocked-note strong{font:700 10px 'DM Mono';text-transform:uppercase;color:#3e4a54;margin-bottom:4px}.block-calendar-date{margin-top:12px;color:#41505d}

.roster-filters{display:flex;gap:10px;margin-bottom:18px}.roster-filters input,.roster-filters select{border:1px solid var(--line);border-radius:6px;padding:10px;background:#fff;font:12px Manrope}.roster-filters input{min-width:260px}.roster-table{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.roster-row{display:grid;grid-template-columns:1.2fr .7fr .7fr 1.5fr .65fr 34px;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line);font-size:12px}.roster-row:last-child{border-bottom:0}.roster-head{background:#f1f5f8;color:var(--muted);font:700 10px 'DM Mono';letter-spacing:.04em;text-transform:uppercase}.roster-row a{color:var(--blue);overflow-wrap:anywhere}.roster-actions{width:30px;height:30px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--navy);font:700 18px/1 Manrope;cursor:pointer}.roster-actions:hover{background:#edf4f8;border-color:#9cc5e4}@media(max-width:720px){.roster-filters{display:grid;grid-template-columns:1fr}.roster-filters input{min-width:0}.roster-row{grid-template-columns:1fr 1fr}.roster-head{display:none}.roster-row>span:nth-child(4),.roster-row>a{grid-column:1/-1}}

/* Every logged-in account keeps its own profile and sign-out controls on mobile. */
@media(max-width:720px){.side-bottom{display:block;position:relative;margin-top:10px}.profile-popover{position:absolute;top:58px;bottom:auto;left:0;right:0}.user-card{padding:12px 4px}.reset{display:none}}

/* A calendar grid becomes misleading on a narrow phone screen. Show each
   operational date in a simple chronological list and label it explicitly. */
.mobile-weekday{display:none}
@media(max-width:720px){.calendar{grid-template-columns:1fr}.calendar .day-head,.calendar .calendar-padding{display:none}.cal-day{min-height:0;border-right:0}.cal-date{display:flex;align-items:center;justify-content:space-between;font-size:13px}.mobile-weekday{display:block;color:var(--navy);font:700 11px 'DM Mono';text-transform:uppercase}.cal-day.today .cal-date{border-radius:5px;width:auto;height:auto;padding:5px 7px}.cal-day.today .cal-date .mobile-weekday{color:white}}

/* Keep attendance actions usable on mobile instead of hiding the final grid cell. */
.status.not-checked-in{background:#edf2f6;color:#627d98}
@media(max-width:720px){.attendance-item>strong{grid-column:1/-1}.attendance-item>.status{display:block}.attendance-item>button:last-child{display:block!important;grid-column:1/-1;width:100%}}

/* Official Detachment 607 branding. */
.brand{padding-bottom:28px}
.brand-logo{width:46px;height:46px;object-fit:contain;flex:0 0 auto}
.auth-card .brand-logo{width:58px;height:58px}

/* Coverage requests are grouped by what the current account can safely act on. */
.coverage-section{margin:0 0 22px}.coverage-section>h3{margin:0 0 10px;font-size:15px}.coverage-request-card{align-items:center}.coverage-request-card .card-main p{margin:4px 0}.coverage-request-card .card-actions{min-width:140px}.coverage-request-card .card-actions button{width:100%}@media(max-width:720px){.coverage-request-card .card-actions{width:100%}}

/* Mobile navigation is a left-side drawer, keeping page content at the top
   instead of converting the desktop sidebar into a horizontal strip. */
.mobile-menu-toggle,.mobile-nav-backdrop{display:none}
@media(max-width:720px){.mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:min(280px,84vw);height:100dvh;padding:24px 16px;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;box-shadow:8px 0 24px #102a4340}.sidebar nav{display:grid;overflow:visible}.sidebar .nav{white-space:normal}.side-bottom{display:block;position:relative;margin-top:auto}.mobile-nav-open .sidebar{transform:translateX(0)}.mobile-nav-backdrop{position:fixed;z-index:35;inset:0;width:100%;height:100%;padding:0;border:0;background:#102a4366}.mobile-nav-open .mobile-nav-backdrop{display:block}.mobile-nav-open{overflow:hidden}main{margin-left:0}.header-actions{gap:8px}.mobile-nav-open .profile-popover{position:static;margin-top:8px}.mobile-nav-open .user-card{padding:12px 4px}}

/* On phones, preserve the DET 607 identity and navigation at the top of the
   screen while the schedule scrolls. */
.mobile-app-header{display:none}
@media(max-width:720px){
  main{padding:0 16px 24px}
  /* The month picker and admin actions must reflow rather than widen the
     schedule page beyond the phone viewport. */
  .toolbar{align-items:stretch;flex-direction:column;gap:12px}
  .month-control{flex-wrap:wrap;gap:8px}
  .toolbar>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .toolbar>div:last-child button{width:100%}
  .mobile-app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 -16px 22px;padding:11px 16px;background:var(--navy);box-shadow:0 3px 12px rgba(16,42,67,.22)}
  .mobile-app-brand{display:flex;align-items:center;gap:9px;min-width:0;color:#fff}
  .mobile-app-brand img{width:38px;height:38px;object-fit:contain;flex:0 0 auto}
  .mobile-app-brand strong,.mobile-app-brand small{display:block}
  .mobile-app-brand strong{font-size:15px;letter-spacing:.1em}
  .mobile-app-brand small{margin-top:2px;color:#b9d0e2;font-size:9px}
  .mobile-app-header .mobile-menu-toggle{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:8px 10px;border:1px solid rgba(255,255,255,.38);border-radius:6px;background:rgba(255,255,255,.1);color:#fff;font:700 11px Manrope;cursor:pointer}
  .mobile-app-header .mobile-menu-toggle:hover{background:rgba(255,255,255,.2)}
  header{margin-bottom:22px}
}

/* Coverage and swap requests use a compact, readable phone layout. */
.notification-log-list{display:grid;gap:8px;margin-top:16px;max-height:360px;overflow:auto}.notification-log-entry{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:7px;padding:10px 12px}.notification-log-entry div{display:grid;gap:3px;min-width:0}.notification-log-entry strong{font-size:12px;text-transform:capitalize}.notification-log-entry span:not(.tag){font-size:10px;color:var(--muted)}.tag.success{background:#e2f5ed;color:#0e7653}
@media(max-width:720px){.coverage-request-card{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:12px;padding:16px}.coverage-request-card .date-pill{min-width:0;padding:0 12px 0 0;align-self:stretch}.coverage-request-card .card-main{min-width:0}.coverage-request-card .card-main h3{overflow-wrap:anywhere;font-size:14px;line-height:1.35}.coverage-request-card .card-main p{font-size:12px;line-height:1.5}.coverage-request-card .card-actions{grid-column:1/-1;min-width:0;width:100%}.coverage-request-card .card-actions button{width:100%}.coverage-section>h3{font-size:17px}.section-heading{align-items:flex-start}.section-heading .primary{flex:0 0 auto}}
