/* EMS Club V7.0 – additive responsive modules */
.v7-page{min-height:65vh}.v7-page h3{margin:26px 0 12px;font-size:22px}.v7-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:17px;margin:20px 0 28px}.v7-card{height:100%;background:linear-gradient(135deg,#0d2c3b,#0a1e2b);min-width:0}.v7-card p{line-height:1.95}.v7-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:15px 0}.v7-actions .btn{font-size:12px;padding:9px 14px}.v7-tabs{display:flex;flex-wrap:wrap;gap:9px;border:1px solid #285765;border-radius:18px;padding:12px;margin:20px 0;background:#0b2633}.v7-tabs .btn{font-size:12px}.v7-form{padding:19px 20px;margin:18px 0 30px;background:linear-gradient(140deg,#0c2b39,#081d2b);border:1px solid #245264;border-radius:18px}.v7-message{padding:14px 18px;border-radius:14px;margin:12px 0 20px;font-weight:bold;line-height:1.7}.v7-success{background:#103f3b;color:#aff8e0;border:1px solid #2a827a}.v7-error{background:#51272c;color:#ffdcdf;border:1px solid #bc5967}.v7-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:13px;margin:23px 0}.v7-metrics>div{background:#0b2a36;border:1px solid #285365;border-radius:17px;padding:20px 16px;display:flex;flex-direction:column;gap:5px;align-items:center}.v7-metrics strong{color:#77f4d5;font-size:29px}.v7-metrics small{color:#afced3}.v7-details{border:1px solid #335768;padding:12px;border-radius:12px;margin:8px 0;background:#0e3140}.v7-details summary{cursor:pointer;font-weight:800}.v7-lesson{white-space:normal;line-height:2}.v7-quiz{border:1px dashed #397587;padding:16px;margin:15px 0;border-radius:13px}.v7-quiz label{display:block;margin:9px 0;font-size:14px}.v7-quiz input{accent-color:#56e7c9}.v7-muted{color:#a3bfca;font-size:12px}.v7-qr{padding:22px;border:1px solid #327b87;border-radius:19px;margin:15px 0;max-width:420px;background:#0e2d3b}.v7-qr code{display:block;word-break:break-all;margin-top:12px}.v7-qr small{display:block;color:#aecad1}.v7-qr #v7QrCode{width:230px;height:230px;padding:10px;background:white;border-radius:12px;margin:15px auto}.v7-cert-qr{margin:10px auto;display:grid;place-items:center;width:120px;height:120px}.v7-certificate{background:white;color:#063248;width:265mm;max-width:95%;min-height:175mm;box-sizing:border-box;margin:20px auto;padding:20mm;border:12px double #1b8c94;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Arial,sans-serif;gap:8px}.v7-certificate>img{width:88px;height:88px;object-fit:contain}.v7-certificate h1{font-size:37px;color:#0c6773;margin:15px 0}.v7-certificate h2{font-size:23px;margin:6px 0}.v7-certificate p{font-size:18px}.v7-certificate small{font-size:10px;word-break:break-all;max-width:100%}.v7-sign{border-top:1px solid #185d6b;padding:15px 50px}#v7PrintArea{display:none}@media print{body.v7-printing *{visibility:hidden!important}body.v7-printing #v7PrintArea,body.v7-printing #v7PrintArea *{visibility:visible!important}body.v7-printing #v7PrintArea{display:block!important;position:absolute;top:0;left:0;right:0;background:white}#v7PrintArea .v7-certificate{margin:0 auto;max-width:100%}body{background:white!important}@page{size:landscape;margin:5mm}}

/* V7.1: stable organization row even when one leadership slot is vacant. */
.org-pair .org-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;margin-inline:auto;gap:18px;align-items:stretch}.org-pair .org-person{width:100%;min-width:0;max-width:none}.v7-admin-inline h2{font-size:25px}.v7-admin-inline .v7-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr))}.v7-inline-note{padding:12px 16px;border:1px solid #327b87;border-radius:12px;background:#0e3643;margin:14px 0;color:#d4f7ee}@media(max-width:420px){.org-pair .org-members{gap:8px}.org-pair .org-person{padding:13px 6px}.org-pair .org-person h3{font-size:13px;overflow-wrap:anywhere}}


/* ===============================================================
   EMS CLUB V7.2 – WHITE HALO ORGANIZATION CHART
   Presentation-only enhancement. No Supabase writes or data changes.
   The rule applies to all cards rendered by existing orgChart(),
   including existing members and photo URLs loaded from public.team.
   =============================================================== */
.org-tree-v6 {
  position: relative;
  isolation: isolate;
  border-color: rgba(216, 246, 255, .24);
  background:
    radial-gradient(ellipse at 50% 11%, rgba(62, 138, 157, .25), transparent 51%),
    radial-gradient(ellipse at 50% 75%, rgba(8, 51, 78, .33), transparent 72%),
    #071c2b;
}
/* Bright white halos with clean dark-glass interiors. */
.org-tree-v6 .org-tier-v6 .org-person {
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(245, 253, 255, .65);
  border-radius: 22px;
  background: linear-gradient(155deg, rgba(24, 70, 85, .98), rgba(9, 29, 46, .97));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.19),
    inset 0 -1px 0 rgba(255,255,255,.035),
    0 0 0 1px rgba(255,255,255,.13),
    0 0 10px 1px rgba(247,253,255,.30),
    0 0 24px 2px rgba(235,249,255,.18),
    0 18px 32px rgba(0,0,0,.4);
  transition:
    transform .28s cubic-bezier(.2,.75,.25,1),
    border-color .28s ease,
    box-shadow .28s ease,
    background-color .28s ease;
  animation: org-card-arrive .55s ease-out both;
}
/* A soft rim along every edge, visible on touch screens as well. */
.org-tree-v6 .org-tier-v6 .org-person::before {
  content: "";
  position: absolute;
  inset: -2px;
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  border: 1px solid rgba(255,255,255,.40);
  box-shadow:
    0 0 7px 1px rgba(255,255,255,.40),
    0 0 24px 2px rgba(219,244,255,.17);
  opacity: .9;
  transition: opacity .28s ease,box-shadow .28s ease;
}
.org-tree-v6 .org-tier-v6 .org-person:hover,
.org-tree-v6 .org-tier-v6 .org-person:focus-within {
  transform: translateY(-5px);
  border-color: rgba(255,255,255,.94);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    0 0 0 1px rgba(255,255,255,.32),
    0 0 15px 4px rgba(255,255,255,.42),
    0 0 34px 7px rgba(232,250,255,.24),
    0 20px 40px rgba(0,0,0,.43);
}
.org-tree-v6 .org-tier-v6 .org-person:hover::before,
.org-tree-v6 .org-tier-v6 .org-person:focus-within::before {
  opacity: 1;
  box-shadow: 0 0 12px 3px rgba(255,255,255,.52),
              0 0 32px 6px rgba(236,252,255,.25);
}
.org-tree-v6 .org-tier-v6 .org-photo {
  position: relative;
  border-color: rgba(239,252,255,.90);
  box-shadow: 0 0 0 3px rgba(255,255,255,.08),
              0 0 15px 2px rgba(239,252,255,.23);
  transition: box-shadow .28s ease,transform .28s ease;
}
.org-tree-v6 .org-tier-v6 .org-photo img {
  transition: transform .3s cubic-bezier(.2,.7,.3,1);
}
.org-tree-v6 .org-tier-v6 .org-person:hover .org-photo,
.org-tree-v6 .org-tier-v6 .org-person:active .org-photo {
  box-shadow: 0 0 0 3px rgba(255,255,255,.16),
              0 0 20px 3px rgba(251,253,255,.45);
}
.org-tree-v6 .org-tier-v6 .org-person:hover .org-photo img,
.org-tree-v6 .org-tier-v6 .org-person:active .org-photo img {
  transform: scale(1.055);
}
.org-tree-v6 .org-tier-v6 .org-person h3 {
  color: #f7fdff;
  text-shadow: 0 1px 8px rgba(241,253,255,.14);
}
/* Leadership retains white halo, plus a restrained positional distinction. */
.org-tree-v6 .org-lead .org-person {
  background: linear-gradient(155deg,#20536a,#122b3d);
  box-shadow: inset 0 1px rgba(255,255,255,.25),
              0 0 0 1px rgba(255,255,255,.28),
              0 0 16px 2px rgba(255,255,255,.37),
              0 0 33px 3px rgba(208,246,255,.21),
              0 17px 34px rgba(0,0,0,.4);
}
.org-tree-v6 .org-pair .org-person {
  background: linear-gradient(155deg,#174957,#102c40);
  border-color: rgba(255,255,255,.77);
}
.org-tree-v6 .org-tier-v6:not(:first-of-type)::before {
  background: linear-gradient(180deg,rgba(239,251,255,.94),rgba(130,227,227,.44));
  box-shadow: 0 0 10px 2px rgba(238,253,255,.4);
}
.org-tree-v6 .org-rank {
  border-color: rgba(206,246,249,.55);
  box-shadow: inset 0 1px rgba(255,255,255,.09),
              0 0 12px rgba(221,252,255,.13);
}
.org-tree-v6 .org-tier-v6 .org-person:nth-child(2) {animation-delay:.08s;}
.org-tree-v6 .org-tier-v6 .org-person:nth-child(3) {animation-delay:.15s;}
.org-tree-v6 .org-tier-v6 .org-person:nth-child(n+4) {animation-delay:.20s;}
@keyframes org-card-arrive {
  from {opacity:0;transform:translateY(12px)}
  to {opacity:1;transform:translateY(0)}
}
@media(max-width:420px) {
  .org-tree-v6 .org-pair .org-person {padding:14px 7px;}
  .org-tree-v6 .org-pair .org-photo {width:58px;height:58px;}
  .org-tree-v6 .org-pair .org-person h3 {font-size:12px;line-height:1.5;}
}
@media(prefers-reduced-motion:reduce) {
  .org-tree-v6 .org-tier-v6 .org-person,
  .org-tree-v6 .org-tier-v6 .org-photo,
  .org-tree-v6 .org-tier-v6 .org-photo img {animation:none!important;transition:none!important;}
  .org-tree-v6 .org-tier-v6 .org-person:hover {transform:none;}
}
