/* St. John XXIII Bingo — site styles. Fonts are self-hosted (static/fonts). */
@font-face{font-family:'Lexend';font-weight:400;font-display:swap;src:url("../fonts/lexend-latin-400-normal.e1e2622800c9.woff2") format('woff2')}
@font-face{font-family:'Lexend';font-weight:600;font-display:swap;src:url("../fonts/lexend-latin-600-normal.eb6223f874de.woff2") format('woff2')}
@font-face{font-family:'Lexend';font-weight:700;font-display:swap;src:url("../fonts/lexend-latin-700-normal.4eeb83c85030.woff2") format('woff2')}
@font-face{font-family:'Bitter';font-weight:700;font-display:swap;src:url("../fonts/bitter-latin-700-normal.bf4a94f54426.woff2") format('woff2')}
@font-face{font-family:'Bitter';font-weight:800;font-display:swap;src:url("../fonts/bitter-latin-800-normal.7da8d4868358.woff2") format('woff2')}
@font-face{font-family:'Montserrat';font-weight:900;font-display:swap;src:url("../fonts/montserrat-latin-900-normal.cf103e811944.woff2") format('woff2')}
@font-face{font-family:'Poppins';font-weight:700;font-display:swap;src:url("../fonts/poppins-latin-700-normal.25b0e113ca7c.woff2") format('woff2')}

/* Layout: logo masthead, big tabbed nav, then stacked full-width sections. Each "page" of the site is a <main> panel. */
:root{
  color-scheme: light;
  --ink:#18202e;          /* body text */
  --ink-soft:#4a5468;     /* secondary text, still AA on white */
  --paper:#ffffff;
  --mist:#eef2f8;         /* section tint, blue-biased neutral */
  --line:#d5dce8;
  --night:#1e0f33;        /* nav + footer, the jackpot graphic's plum */
  --night-2:#2c1a48;
  /* the five bingo-ball colors from the logo */
  --ball-b:#c8161d; --ball-i:#1f58c4; --ball-n:#1c8a3a; --ball-g:#7a2c96; --ball-o:#f1b300;
  --action:#1f58c4; --action-hover:#16449b;
  --jp-yellow:#ffd21f;
  --font-body:'Lexend', 'Verdana', system-ui, sans-serif;
  --font-head:'Bitter', 'Georgia', serif;
  --radius:14px;
  --bs-body-font-family: var(--font-body);
  --bs-body-color: var(--ink);
  --bs-body-bg: var(--paper);
  --bs-link-color-rgb: 31,88,196;
  --bs-border-color: var(--line);
}
html{font-size:19px}
html.text-lg{font-size:22px}
html.text-xl{font-size:25px}
body{background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.55}
h1,h2,h3,h4,.h1,.h2,.h3,.h4{font-family:var(--font-head);font-weight:800;text-wrap:balance;color:var(--ink);letter-spacing:-.01em}
h1,.h1{font-size:clamp(1.9rem,4vw,2.6rem)}
h2,.h2{font-size:clamp(1.55rem,3vw,2rem)}
h3,.h3{font-size:1.3rem}
p{max-width:65ch}
a{text-underline-offset:.18em}
:focus-visible{outline:4px solid var(--ball-o)!important;outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:0;background:var(--ball-o);color:#000;padding:.6rem 1rem;z-index:2000;font-weight:700}
.skip:focus{left:1rem;top:1rem}

/* masthead */
.masthead{background:var(--paper);border-bottom:1px solid var(--line)}
.masthead .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:.6rem}
.masthead img{height:110px;width:auto;margin-block:-.4rem}
.mast-tools{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.mast-phone{font-weight:700;color:var(--ink);text-decoration:none;font-size:1.05rem;white-space:nowrap}
.mast-phone i{color:var(--ball-n)}
.textsize{display:flex;align-items:center;gap:.25rem;border:1px solid var(--line);border-radius:999px;padding:.2rem .3rem .2rem .8rem;font-size:.8rem;color:var(--ink-soft)}
.textsize button{border:0;background:var(--mist);color:var(--ink);border-radius:999px;min-width:2.2rem;height:2.2rem;font-weight:700;line-height:1}
.textsize button[aria-pressed="true"]{background:var(--night);color:#fff}

/* nav: large, labelled, no hidden hover menus */
.mainnav{background:var(--night);position:sticky;top:env(safe-area-inset-top,0px);z-index:1030}
.mainnav .navbar-toggler{color:#fff;border:2px solid rgba(255,255,255,.5);font-size:1.05rem;font-weight:700;padding:.5rem 1rem}
.mainnav .nav-link{color:#fff!important;font-weight:600;font-size:1rem;white-space:nowrap;padding:1rem .85rem!important;display:flex;align-items:center;gap:.5rem;border-bottom:4px solid transparent}
.mainnav .nav-link:hover{background:var(--night-2)}
.mainnav .nav-link.active{border-bottom-color:var(--ball-o);background:var(--night-2)}
.dot{width:.85rem;height:.85rem;border-radius:50%;display:inline-block;flex:none;box-shadow:inset -2px -2px 0 rgba(0,0,0,.25)}
.dot.b{background:var(--ball-b)}.dot.i{background:var(--ball-i)}.dot.n{background:var(--ball-n)}.dot.g{background:var(--ball-g)}.dot.o{background:var(--ball-o)}
.nav-cta{background:var(--ball-o);color:#1a1200!important;border-radius:999px;margin:.45rem 0 .45rem .5rem;padding:.55rem 1.1rem!important;border-bottom:0!important}
.nav-cta:hover{background:#ffc928!important}
@media (max-width:1199.98px){.mainnav .nav-link{border-bottom:1px solid rgba(255,255,255,.12)}.nav-cta{margin:.6rem 0}}

/* alert banner (admin controlled) */
.site-alert{background:#fff4d6;border-bottom:3px solid var(--ball-o);font-size:1.05rem}
.site-alert .container{display:flex;gap:.75rem;align-items:center;padding-block:.75rem}
.site-alert i{font-size:1.5rem;color:#a06d00}

/* buttons: big targets */
.btn{font-weight:700;border-radius:999px;padding:.7rem 1.4rem;font-size:1rem;min-height:3rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}
.btn-lg{padding:.9rem 1.7rem;font-size:1.1rem;min-height:3.4rem}
.btn-action{background:var(--action);color:#fff;border:2px solid var(--action)}
.btn-action:hover{background:var(--action-hover);border-color:var(--action-hover);color:#fff}
.btn-line{background:var(--paper);color:var(--ink);border:2px solid var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-gold{background:var(--ball-o);border:2px solid var(--ball-o);color:#1a1200}
.btn-gold:hover{background:#ffc928;color:#1a1200}
.btn-green{background:var(--ball-n);border:2px solid var(--ball-n);color:#fff}
.btn-green:hover{background:#156d2d;color:#fff}
.btn-fb{background:#1877f2;color:#fff;border:2px solid #1877f2}
.btn-fb:hover{background:#0f5fcc;color:#fff}

section{padding-block:3rem}
.tint{background:var(--mist)}
.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.09em;font-size:.8rem;font-weight:700;color:var(--ink-soft);display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}

/* hero: next bingo + jackpot */
.hero{padding-block:2.25rem 3rem;background:linear-gradient(180deg,var(--mist),var(--paper) 70%)}
.next-card{background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);padding:1.6rem;height:100%;display:flex;flex-direction:column;gap:1rem}
.next-date{display:flex;gap:1rem;align-items:center}
.cal-tile{flex:none;width:5.6rem;border-radius:12px;overflow:hidden;text-align:center;border:2px solid var(--ink);background:var(--paper)}
.cal-tile .m{background:var(--ball-b);color:#fff;font-weight:700;font-size:.85rem;letter-spacing:.1em;padding:.2rem 0}
.cal-tile .d{font-family:var(--font-head);font-weight:800;font-size:2.3rem;line-height:1.1;padding:.15rem 0 .2rem}
.next-date h1{margin:0;font-size:clamp(1.6rem,3.4vw,2.2rem)}
.next-date .countdown{color:var(--ball-n);font-weight:700;font-size:1.05rem}
.times{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.time-box{background:var(--mist);border-radius:12px;padding:.8rem 1rem}
.time-box .lbl{font-size:.78rem;white-space:nowrap;color:var(--ink-soft);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.time-box .val{font-family:var(--font-head);font-weight:800;font-size:1.7rem;line-height:1.15}
.where{display:flex;gap:.75rem;align-items:flex-start}
.where i{font-size:1.6rem;color:var(--ball-b);line-height:1}
.pay{display:flex;gap:.6rem;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:.4rem;border-radius:999px;padding:.35rem .85rem;font-weight:700;font-size:.9rem;background:var(--mist);color:var(--ink)}
.chip.ok{background:#e3f4e8;color:#145c28}
.chip.warn{background:#fff1cc;color:#6b4c00}
.chip.stop{background:#fde3e4;color:#8f1016}
.chip.next{background:var(--ball-o);color:#1a1200}
.chip.done{background:#e9ecf1;color:#495467}

/* jackpot graphic with live text */
.jackpot{position:relative;margin:0;width:100%;max-width:100%;aspect-ratio:940/788;border-radius:var(--radius);overflow:hidden;container-type:inline-size;background:#140a22 url("../img/jackpot-background.c8639f15b3cc.webp") center/cover no-repeat;box-shadow:0 18px 40px -18px rgba(30,15,51,.55)}
.jackpot>span{position:absolute;left:50%;transform:translate(-50%,-50%);white-space:nowrap;line-height:1}
.jp-date{top:62.9%;left:48.4%!important;font:700 2.55cqw/1 'Poppins',sans-serif;color:var(--jp-yellow);transform:translate(-50%,-50%) rotate(-1deg)!important}
.jp-amt{top:74.4%;font:900 11.2cqw/1 'Montserrat',sans-serif;color:#fff;letter-spacing:.005em}
.jp-amt.long{font-size:9.6cqw}
.jp-sub{top:82.7%;font:700 2.05cqw/1 'Poppins',sans-serif;color:var(--jp-yellow);letter-spacing:.01em}
.jp-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.jp-rule{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.8rem .9rem;text-align:center}
.jp-rule .big{font-family:var(--font-head);font-weight:800;font-size:1.45rem;line-height:1.1;display:block}
.jp-rule .small{font-size:.85rem;color:var(--ink-soft);display:block;margin-top:.2rem}
@media (max-width:575.98px){.jp-rules{grid-template-columns:1fr}}@media (max-width:359.98px){.times{grid-template-columns:1fr}}

/* how it works strip */
.how{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
@media (max-width:1399.98px){.how{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:575.98px){.how{grid-template-columns:1fr}}
.how-item{display:flex;gap:.9rem;align-items:flex-start}
.ball{flex:none;width:3.2rem;height:3.2rem;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--font-head);font-weight:800;font-size:1.35rem;position:relative;box-shadow:inset -5px -6px 0 rgba(0,0,0,.18)}
.ball::after{content:"";position:absolute;inset:18% 22% auto auto;width:22%;height:16%;border-radius:50%;background:rgba(255,255,255,.55)}
.ball.b{background:var(--ball-b)}.ball.i{background:var(--ball-i)}.ball.n{background:var(--ball-n)}.ball.g{background:var(--ball-g)}.ball.o{background:var(--ball-o);color:#2a1d00}
.how-item h3{font-size:1.15rem;margin:0 0 .2rem}
.how-item p{margin:0;color:var(--ink-soft)}

/* snack bar */
.snack{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.5rem;align-items:start}
@media (max-width:767.98px){.snack{grid-template-columns:1fr}}
.host{background:var(--paper);border-radius:var(--radius);border:1px solid var(--line);padding:1.5rem}
.host .group{font-family:var(--font-head);font-weight:800;font-size:1.5rem;line-height:1.2}
.host .cause{color:var(--ink-soft);margin:.25rem 0 1rem}
.special{display:flex;gap:1rem;align-items:center;background:#fff8e0;border:2px dashed var(--ball-o);border-radius:12px;padding:1rem}
.special i{font-size:2rem;color:#b57f00}
.special .name{font-weight:700;font-size:1.15rem}
.special .price{font-family:var(--font-head);font-weight:800;font-size:1.6rem;margin-left:auto;white-space:nowrap}
.menu{background:var(--paper);border-radius:var(--radius);border:1px solid var(--line);padding:1.25rem 1.5rem}
.menu h3{font-size:1.15rem;margin-bottom:.5rem}
.menu dl{margin:0;display:grid;grid-template-columns:1fr auto;column-gap:1rem}
.menu dt,.menu dd{margin:0;padding:.55rem 0;border-bottom:1px dotted var(--line);font-weight:400}
.menu dd{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
.menu dt:nth-last-of-type(1),.menu dd:last-of-type{border-bottom:0}

/* volunteer + reminders split */
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
@media (max-width:767.98px){.split{grid-template-columns:1fr}}
.panel{border-radius:var(--radius);padding:1.75rem;display:flex;flex-direction:column;gap:.9rem}
.panel.vol{background:#e8f4ec;border:1px solid #bfe0c9}
.panel.rem{background:#ece6f5;border:1px solid #d3c4e8}
.panel h2{margin:0}
.panel ul{margin:0;padding-left:1.2rem}
.panel li{margin:.2rem 0}
.panel .btn{align-self:flex-start}

/* photos */
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
@media (max-width:767.98px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ph{aspect-ratio:4/3;border-radius:12px;display:grid;place-items:center;color:rgba(255,255,255,.92);font-weight:700;font-size:.85rem;text-align:center;padding:.5rem;border:0;width:100%;position:relative;overflow:hidden}
.ph i{font-size:2rem;display:block;margin-bottom:.2rem}
.ph.c1{background:linear-gradient(135deg,#c8161d,#7a2c96)}.ph.c2{background:linear-gradient(135deg,#1f58c4,#1c8a3a)}.ph.c3{background:linear-gradient(135deg,#7a2c96,#1f58c4)}.ph.c4{background:linear-gradient(135deg,#1c8a3a,#c99400)}
.album{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);display:flex;flex-direction:column;text-decoration:none;color:var(--ink)}
.album .ph{border-radius:0;aspect-ratio:16/10}
.album .meta{padding:1rem 1.1rem}
.album .meta strong{font-family:var(--font-head);font-size:1.15rem;display:block}
.album .meta span{color:var(--ink-soft);font-size:.9rem}
.album:hover{border-color:var(--ink)}
.albums{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.25rem}

/* schedule list */
.season{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}
.season li{display:grid;grid-template-columns:5.6rem minmax(0,1fr) auto;gap:1.1rem;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.1rem}
.season li.is-next{border:3px solid var(--ball-o);background:#fffbea}
.season li.is-past{opacity:.72}
.season .cal-tile{width:5.6rem}
.season .cal-tile .d{font-size:2rem}
.season .info strong{font-family:var(--font-head);font-size:1.2rem;display:block;line-height:1.25}
.season .info span{color:var(--ink-soft);display:block}
.season .actions{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}
@media (max-width:640px){.season li{grid-template-columns:4.6rem minmax(0,1fr)}.season .cal-tile{width:4.6rem}.season .actions{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start}}
.cal-tile.past .m{background:#7d8697}
.cal-tile.cxl .m{background:#5a5f6b}

/* forms */
.form-label{font-weight:700;font-size:1.02rem;margin-bottom:.3rem}
.form-control,.form-select{font-size:1.05rem;padding:.75rem 1rem;border:2px solid #9aa6bb;border-radius:10px;min-height:3.2rem}
.form-control:focus{border-color:var(--action);box-shadow:0 0 0 .25rem rgba(31,88,196,.2)}
.form-text{color:var(--ink-soft);font-size:.9rem}
.check-card{display:flex;gap:.9rem;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:1rem 1.1rem;cursor:pointer;background:var(--paper)}
.check-card:has(input:checked){border-color:var(--action);background:#eef4ff}
.check-card input{width:1.6rem;height:1.6rem;flex:none;margin-top:.1rem;accent-color:var(--action)}
.check-card strong{display:block}
.consent{font-size:.88rem;color:var(--ink-soft);background:var(--mist);border-radius:10px;padding:.9rem 1rem}
.consent p{max-width:none;margin:0}
.success{border:2px solid var(--ball-n);background:#e8f6ec;border-radius:var(--radius);padding:1.5rem}

/* FAQ */
.accordion{--bs-accordion-btn-font-size:1.05rem;--bs-accordion-active-bg:var(--mist);--bs-accordion-active-color:var(--ink);--bs-accordion-btn-padding-y:1.1rem;--bs-accordion-border-color:var(--line);--bs-accordion-btn-focus-box-shadow:0 0 0 .25rem rgba(241,179,0,.45)}
.accordion-button{font-weight:700}

/* admin mock */
.admin-bar{background:#10141d;color:#cfd6e4;font-size:.85rem}
.admin-bar .container{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding-block:.5rem;flex-wrap:wrap}
.admin-bar a{color:#fff}
.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:1.5rem;align-items:start}
@media (max-width:991.98px){.admin-grid{grid-template-columns:1fr}}
.box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.box h2{font-size:1.35rem}
.after-bingo{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
@media (max-width:575.98px){.after-bingo{grid-template-columns:1fr}}
.after-bingo button{border-radius:12px;padding:1rem;text-align:left;font-weight:700;border:2px solid;min-height:5.5rem;display:flex;flex-direction:column;gap:.2rem;align-items:flex-start}
.after-bingo button span{font-weight:400;font-size:.88rem}
.ab-roll{background:#eef4ff;border-color:var(--action)!important;color:#12357a}
.ab-win{background:#e8f6ec;border-color:var(--ball-n)!important;color:#0f4d21}
.meter{height:.9rem;border-radius:999px;background:var(--mist);overflow:hidden;display:flex;gap:3px}
.meter span{flex:1;background:var(--mist);border-radius:999px}
.meter span.used{background:var(--ball-g)}
.hist{width:100%;font-variant-numeric:tabular-nums}
.hist th{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:700;border-bottom:2px solid var(--line);padding:.5rem .4rem}
.hist td{padding:.6rem .4rem;border-bottom:1px solid var(--line)}
.table-wrap{overflow-x:auto}

/* footer */
footer{background:var(--night);color:#e8e2f3;padding-block:2.5rem 2rem;font-size:.95rem}
footer h2{color:#fff;font-size:1.15rem;font-family:var(--font-head)}
footer a{color:#fff}
footer .fgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.75rem}
@media (max-width:991.98px){footer .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){footer .fgrid{grid-template-columns:1fr}}
footer .fine{border-top:1px solid rgba(255,255,255,.18);margin-top:2rem;padding-top:1rem;font-size:.82rem;color:#c7bedb}

.toast-container{z-index:2100}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* --- additions for the live site --- */
.site-alert.alert-danger{background:#fde3e4;border-bottom-color:var(--ball-b)}
.site-alert.alert-danger i{color:var(--ball-b)}
.site-alert.alert-success{background:#e3f4e8;border-bottom-color:var(--ball-n)}
.site-alert.alert-success i{color:var(--ball-n)}
.flash{border-radius:12px;font-size:1.02rem}
.cancel-card{border-color:var(--ball-b)}
.cancel-banner{background:#fde3e4;color:#8f1016;border-radius:12px;padding:.8rem 1rem;font-weight:700}
.ph-img{aspect-ratio:4/3;border-radius:12px;overflow:hidden;display:block;border:0;padding:0;background:var(--mist);width:100%}
.ph-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.ph-img:hover img{transform:scale(1.03)}
.album .cover{aspect-ratio:16/10;background:var(--mist);overflow:hidden}
.album .cover img{width:100%;height:100%;object-fit:cover;display:block}
.lightbox .modal-content{background:#0d0814;border:0}
.lightbox .carousel-item img{max-height:80vh;width:auto;max-width:100%;margin:0 auto;display:block}
.lightbox .caption{color:#fff;text-align:center;padding:.75rem 1rem 0;min-height:2.5rem}
.lightbox .carousel-control-prev,.lightbox .carousel-control-next{width:4.5rem;opacity:.9}
.lightbox .carousel-control-prev-icon,.lightbox .carousel-control-next-icon{width:3rem;height:3rem;background-color:rgba(0,0,0,.55);border-radius:50%;background-size:55%}
.lightbox .btn-close-lg{position:absolute;top:.75rem;right:.75rem;z-index:5}
.errorlist{list-style:none;padding:0;margin:.35rem 0 0;color:#a3141a;font-weight:700;font-size:.92rem}
.form-control.is-invalid,.form-select.is-invalid{border-color:#a3141a}
.hp{position:absolute!important;left:-5000px!important;height:1px;overflow:hidden}
.staff-nav .nav-link{color:var(--ink);font-weight:700;border-radius:999px;padding:.5rem 1rem}
.staff-nav .nav-link.active{background:var(--night);color:#fff}
.dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}
.dash-tile{display:flex;gap:1rem;align-items:center;text-decoration:none;color:var(--ink);background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem}
.dash-tile:hover{border-color:var(--ink);color:var(--ink)}
.dash-tile i{font-size:2rem}
.dash-tile strong{display:block;font-size:1.1rem}
.dash-tile span{color:var(--ink-soft);font-size:.9rem}
.msg-row{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:.8rem 0}
.msg-row:last-child{border-bottom:0}
.placeholder-list code{background:var(--mist);color:var(--ink);padding:.1rem .35rem;border-radius:5px}
.photo-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem}
.photo-admin figure{margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper)}
.photo-admin img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.photo-admin figcaption{padding:.6rem;display:grid;gap:.4rem}
.dropzone{border:3px dashed #9aa6bb;border-radius:var(--radius);padding:2rem 1rem;text-align:center;background:var(--mist)}
.dropzone.drag{border-color:var(--action);background:#eef4ff}
.dropzone i{font-size:3rem;color:var(--action)}
.preview-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;justify-content:center}
.preview-strip img{width:84px;height:84px;object-fit:cover;border-radius:8px}
@media print{.mainnav,.masthead .mast-tools,footer,.site-alert{display:none!important}}
