/* Demo school only: role switcher bar and the guided tour panel. Shared by staff and parent pages. */
.dbar { position: sticky; top: 0; z-index: 50; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 14px;
  padding: 8px max(16px, env(safe-area-inset-right, 0px)) 8px max(16px, env(safe-area-inset-left, 0px));
  background: #3B1029; color: #fff; font: 600 13px 'Manrope', system-ui, sans-serif; }
.dbar-label { display: inline-flex; align-items: center; gap: 8px; color: #F6D3E4; }
.dbar-dot { width: 8px; height: 8px; border-radius: 50%; background: #FFB98A; box-shadow: 0 0 0 0 rgba(255,185,138,.6); animation: dbarPulse 2s ease-out infinite; }
@keyframes dbarPulse { 70% { box-shadow: 0 0 0 7px rgba(255,185,138,0); } 100% { box-shadow: 0 0 0 0 rgba(255,185,138,0); } }
.dbar-sep { width: 1px; height: 14px; background: rgba(255,255,255,.25); }
.dbar-roles { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255,255,255,.1); }
.dbar-roles a { min-height: 32px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 999px; color: #fff; text-decoration: none; font-weight: 700; }
.dbar-roles a:hover { background: rgba(255,255,255,.12); color: #fff; }
.dbar-roles a[aria-current="true"] { background: #fff; color: #8A0F50; }
.dbar-tour-form { margin: 0; }
.dbar-tour { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; font: 700 13px 'Manrope', system-ui, sans-serif; text-decoration: none; cursor: pointer; }
.dbar-tour:hover { background: #fff; color: #8A0F50; }
.dbar :focus-visible { outline: 2px solid #FFB98A; outline-offset: 2px; }
@media (max-width: 560px) { .dbar-label { display: none; } .dbar-roles a { padding: 0 11px; } }

.dtour { position: fixed; z-index: 60; right: max(20px, env(safe-area-inset-right, 0px)); bottom: max(20px, env(safe-area-inset-bottom, 0px)); width: min(380px, calc(100vw - 32px));
  background: #fff; color: #3B1029; border-radius: 22px; box-shadow: 0 24px 60px -20px rgba(59,16,41,.45), 0 0 0 1px rgba(138,15,80,.08);
  font: 15px/1.45 'Manrope', system-ui, sans-serif; animation: dtourIn .45s cubic-bezier(.22,.9,.24,1) both; }
@keyframes dtourIn { from { opacity: 0; transform: translateY(16px); } }
.dtour-top { display: flex; align-items: center; gap: 8px; padding: 14px 14px 0 18px; }
.dtour-role { font-size: 12px; font-weight: 800; padding: 4px 10px; border-radius: 999px; }
.dtour-role.r-parent { background: #DDEBFF; color: #2556C7; }
.dtour-role.r-counsellor { background: #FFE3CF; color: #A1470C; }
.dtour-role.r-owner { background: #FFE0EC; color: #B0275F; }
.dtour-count { font-size: 12px; font-weight: 700; color: #7A5566; }
.dtour-min { margin-left: auto; width: 32px; height: 32px; border: 0; border-radius: 10px; background: #FDF1E6; color: #8A0F50; display: grid; place-items: center; cursor: pointer; }
.dtour-min svg { transition: transform .25s; }
.dtour-body { padding: 10px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.dtour-progress { display: flex; gap: 3px; }
.dtour-progress span { flex: 1; height: 4px; border-radius: 2px; background: #F3E6DA; }
.dtour-progress span.on { background: #8A0F50; }
.dtour h2 { margin: 6px 0 0; font-size: 18px; font-weight: 800; letter-spacing: -0.01em; line-height: 1.25; }
.dtour p { margin: 0; color: #5C3A4B; font-size: 14px; }
.dtour-actions { display: flex; gap: 8px; margin-top: 6px; }
.dtour-actions form { margin: 0; flex: 1; display: flex; }
.dtour-btn { flex: 1; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; border: 0; background: #8A0F50; color: #fff; font: 700 14px 'Manrope', system-ui, sans-serif; text-decoration: none; cursor: pointer; }
.dtour-btn:hover { background: #6A0B3D; color: #fff; }
.dtour-btn.ghost { flex: 0 0 auto; padding: 0 18px; background: #FDF1E6; color: #6A0B3D; }
.dtour-btn.ghost:hover { background: #F9E2D0; color: #6A0B3D; }
.dtour-next-role { font-weight: 600; opacity: .8; margin-left: 4px; }
.dtour.min { width: auto; cursor: pointer; }
.dtour.min .dtour-top { padding: 10px 10px 10px 14px; }
.dtour.min .dtour-body { display: none; }
.dtour.min .dtour-min svg { transform: rotate(180deg); }
.dtour :focus-visible { outline: 3px solid #8A0F50; outline-offset: 2px; }
body.has-dtour { padding-bottom: 260px; }
@media (max-width: 560px) {
  .dtour { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom, 0px)); width: auto; }
  .dtour h2 { font-size: 16px; }
  .dtour p { font-size: 13px; }
  body.has-dtour { padding-bottom: 300px; }
}
@media (prefers-reduced-motion: reduce) { .dbar-dot, .dtour { animation: none; } }
@media (max-width: 560px) {
  .dtour-progress { display: none; }
  .dtour-top { padding: 10px 10px 0 14px; }
  .dtour-body { padding: 6px 14px 14px; gap: 6px; }
  .dtour h2 { margin-top: 2px; }
  .dtour-btn { min-height: 40px; }
  body.has-dtour { padding-bottom: 240px; }
}
.dbar-short { display: none; }
@media (max-width: 560px) {
  .dbar { flex-wrap: nowrap; gap: 8px; padding-top: 6px; padding-bottom: 6px; }
  .dbar-long { display: none; }
  .dbar-short { display: inline; }
  .dbar-roles a { padding: 0 10px; min-height: 30px; }
  .dbar-tour { padding: 0 11px; min-height: 30px; }
}
@media (max-width: 720px) {
  body:has(.m-tabs) .dtour { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  body:has(.m-tabs).has-dtour { padding-bottom: 320px; }
}
