/* =====================================================================================================
   Dragon Mountain website admin: the look (plan 5.0).
   The site's own palette and type, quieter than the public site (no animation). Cards are paper "tickets"
   with a 3 px navy border and a 4 px orange offset shadow. Phone first: one column, a top bar and a bottom
   tab bar; from 1024 px a left sidebar. Touch targets >= 48 x 48 px, inputs >= 16 px (no iOS zoom),
   visible focus rings. No inline styles anywhere (CSP).
   ===================================================================================================== */
/* metric-matched fallbacks, the same as the public site's: until (or unless) the web fonts arrive, local Arial,
   Georgia and Segoe Script are scaled to the shapes of Barlow Condensed, Alfa Slab One, Source Serif 4 and Caveat */
@font-face{font-family:'Barlow Condensed Fallback';font-weight:100 500;src:local('Arial'),local('ArialMT');size-adjust:69%;ascent-override:144.9%;descent-override:29%;line-gap-override:0%}
@font-face{font-family:'Barlow Condensed Fallback';font-weight:600;src:local('Arial Bold'),local('Arial-BoldMT');size-adjust:66.9%;ascent-override:149.5%;descent-override:29.9%;line-gap-override:0%}
@font-face{font-family:'Barlow Condensed Fallback';font-weight:600;src:local('Arial Bold'),local('Arial-BoldMT');unicode-range:U+0030-0039;size-adjust:76.5%;ascent-override:130.7%;descent-override:26.1%;line-gap-override:0%}
@font-face{font-family:'Barlow Condensed Fallback';font-weight:700 900;src:local('Arial Bold'),local('Arial-BoldMT');size-adjust:68.4%;ascent-override:146.2%;descent-override:29.2%;line-gap-override:0%}
@font-face{font-family:'Barlow Condensed Fallback';font-weight:700 900;src:local('Arial Bold'),local('Arial-BoldMT');unicode-range:U+0030-0039;size-adjust:78.8%;ascent-override:126.9%;descent-override:25.4%;line-gap-override:0%}
@font-face{font-family:'Alfa Slab One Fallback';font-weight:100 900;src:local('Georgia Bold'),local('Georgia-Bold');size-adjust:102.8%;ascent-override:100.8%;descent-override:32.4%;line-gap-override:0%}
@font-face{font-family:'Source Serif 4 Fallback';font-weight:100 500;src:local('Georgia');size-adjust:91.4%;ascent-override:113.3%;descent-override:36.7%;line-gap-override:0%}
@font-face{font-family:'Source Serif 4 Fallback';font-weight:600 900;src:local('Georgia Bold'),local('Georgia-Bold');size-adjust:91.4%;ascent-override:113.3%;descent-override:36.7%;line-gap-override:0%}
@font-face{font-family:'Caveat Fallback';font-weight:100 900;src:local('Segoe Script'),local('SegoeScript');size-adjust:63.3%;ascent-override:151.7%;descent-override:47.4%;line-gap-override:0%}
:root{
  --cream:#F6ECD6; --paper:#FFF6DF; --navy:#101C2E; --orange:#F26B2B; --gold:#F7B733; --red-d:#C22B24;
  --pine:#3F6B4A; --rust:#A83A10; --ink-2:#3A475C; --white:#FFFFFF;
  --ok-bg:#E2EEDB; --err-bg:#F8E0DC; --warn-bg:#FCEBC2; --info-bg:#E4ECF3;
  --f-display:'Alfa Slab One','Alfa Slab One Fallback','Rockwell','Roboto Slab',Georgia,serif;
  --f-label:'Barlow Condensed','Barlow Condensed Fallback','Arial Narrow','Roboto Condensed',Arial,sans-serif;
  --f-body:'Source Serif 4','Source Serif 4 Fallback',Georgia,'Times New Roman',serif;
  --gut:16px; --radius:10px; --topbar-h:64px; --tabbar-h:68px; --sidebar-w:248px;
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--cream);color:var(--navy);font:400 17px/1.5 var(--f-body);
  -webkit-font-smoothing:antialiased;overflow-wrap:break-word;-webkit-tap-highlight-color:transparent}
img,svg{display:block;max-width:100%}
p{margin:0 0 .8em}
h1,h2,h3{margin:0;font-weight:400}
a{color:inherit}
b,strong{font-weight:600}
.break{word-break:break-all}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}
.ic{width:24px;height:24px;flex:none}

/* focus: always visible, never removed */
:focus{outline:none}
:focus-visible{outline:3px solid var(--red-d);outline-offset:3px;border-radius:6px}
.tabbar :focus-visible,.sidebar :focus-visible,.toast :focus-visible{outline-color:var(--gold)}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px}

.skip{position:absolute;left:12px;top:-80px;z-index:100;display:inline-flex;align-items:center;min-height:48px;padding:0 18px;
  background:var(--gold);color:var(--navy);border:3px solid var(--navy);border-radius:8px;font:700 18px/1 var(--f-label);
  letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.skip:focus{top:12px}

/* ---------------------------------------------------------------- buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;min-width:48px;padding:6px 20px;
  font:700 18px/1.1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;text-align:center;text-decoration:none;
  color:var(--navy);background:var(--cream);border:3px solid var(--navy);border-radius:8px;box-shadow:3px 3px 0 var(--navy);
  cursor:pointer;transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--navy)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--navy)}
.btn-primary{background:var(--navy);color:var(--cream);box-shadow:3px 3px 0 var(--orange)}
.btn-primary:hover{box-shadow:4px 4px 0 var(--orange)}
.btn-danger{background:var(--red-d);color:var(--white)}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-block{display:flex;width:100%}
.btn-wrap{white-space:normal;text-transform:none;letter-spacing:.02em;font-size:19px}
.btn-sm{font-size:16px;padding:4px 14px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:2px 2px 0 var(--navy)}
.link{display:inline-flex;align-items:center;min-height:48px;padding:0 2px;color:var(--navy);font-weight:600;
  text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.link:hover{color:var(--rust)}

/* ---------------------------------------------------------------- tickets, sections, notes */
.ticket{position:relative;background:var(--paper);border:3px solid var(--navy);border-radius:12px;box-shadow:4px 4px 0 var(--orange);
  padding:18px 16px 16px;margin:0 0 22px}
.ticket>h2,.ticket>h3,.ticket h3:first-child{display:flex;align-items:center;gap:10px;font:400 22px/1.2 var(--f-display);margin:0 0 12px}
.ticket>:last-child{margin-bottom:0}
.section{margin:0 0 8px;scroll-margin-top:calc(var(--topbar-h) + 16px)}
.section-h{display:flex;align-items:center;gap:10px;font:700 22px/1.2 var(--f-label);letter-spacing:.12em;text-transform:uppercase;margin:8px 0 12px}
.cards{display:grid;gap:0 20px;grid-template-columns:minmax(0,1fr)}
.note{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin:0 0 16px;border:2px solid var(--navy);border-radius:10px;background:var(--info-bg)}
.note>.ic{margin-top:2px}
.note>div{min-width:0;flex:1}
.note p{margin:0 0 .4em}
.note p:last-child{margin-bottom:0}
.note-ok{background:var(--ok-bg);border-color:var(--pine)}
.note-ok>.ic{color:var(--pine)}
.note-err{background:var(--err-bg);border-color:var(--red-d)}
.note-err>.ic{color:var(--red-d)}
.note-warn{background:var(--warn-bg);border-color:#7A5200}
.note-warn>.ic{color:#7A5200}
.hint{display:block;font-size:15px;line-height:1.4;color:var(--ink-2);margin:6px 0 0}
.chip{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;border:2px solid var(--navy);
  background:var(--gold);color:var(--navy);font:700 14px/1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;vertical-align:middle}
.chip-quiet{background:var(--cream)}

/* ---------------------------------------------------------------- forms */
.form{margin:0}
.field{margin:0 0 16px}
.field>label{display:block;font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],input[type=tel],input[type=date],
input[type=time],input[type=number],select,textarea{display:block;width:100%;min-height:48px;padding:10px 12px;margin:0;
  font:400 17px/1.3 var(--f-body);color:var(--navy);background:var(--white);border:2px solid var(--navy);border-radius:8px;
  -webkit-appearance:none;appearance:none}
textarea{min-height:96px;resize:vertical}
input::placeholder{color:#6B7486}
.has-err input,input[aria-invalid="true"]{border-color:var(--red-d);border-width:3px;padding:9px 11px}
.field-err{display:flex;gap:8px;align-items:flex-start;color:var(--red-d);font-weight:600;font-size:16px;margin:6px 0 0}
.field-err .ic{width:20px;height:20px;margin-top:2px}
.pw{position:relative}
.pw input{padding-right:56px}
.has-err .pw input{padding-right:55px}
.pw-eye{position:absolute;top:0;right:0;width:48px;height:48px;display:grid;place-items:center;padding:0;margin:0;border:0;
  background:none;color:var(--navy);border-radius:0 8px 8px 0;cursor:pointer}
.pw-eye[aria-pressed="true"]{color:var(--rust)}
.check{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:12px 0;margin:0 0 12px;cursor:pointer}
.check input{width:24px;height:24px;margin:0;flex:none;accent-color:var(--navy);cursor:pointer}
.check-text{display:block;font-weight:600;line-height:24px}
.check-text .hint{font-weight:400;margin-top:2px;line-height:1.35}
.strength{display:flex;align-items:center;gap:10px;min-height:22px;margin:8px 0 0;font-size:15px;color:var(--ink-2)}
.strength-bar{flex:0 0 112px;height:10px;border:2px solid var(--navy);border-radius:5px;background:var(--white);overflow:hidden}
.strength-bar i{display:block;height:100%;width:0;background:var(--red-d)}
.strength[data-level="0"] .strength-bar{visibility:hidden}
.strength[data-level="1"] i{width:25%;background:var(--red-d)}
.strength[data-level="2"] i{width:50%;background:#B86E00}
.strength[data-level="3"] i{width:75%;background:var(--pine)}
.strength[data-level="4"] i{width:100%;background:var(--pine)}
.counter{margin:4px 0 0;font:600 15px/1.2 var(--f-label);letter-spacing:.06em;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums}
.counter[data-over="1"]{color:var(--red-d)}
.countdown{font:700 20px/1.2 var(--f-label);letter-spacing:.06em;margin:.4em 0 0}
.countdown b{font-variant-numeric:tabular-nums}
.steps{margin:0 0 16px;padding-left:1.4em}
.steps li{margin:0 0 .5em}

/* ---------------------------------------------------------------- lists (devices, activity) */
.rows{list-style:none;margin:0 0 12px;padding:0}
.row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:2px dashed rgba(16,28,46,.28)}
.row:first-child{border-top:0}
.row-ic{color:var(--ink-2)}
.row-warn .row-ic{color:var(--red-d)}
.row-main{flex:1;min-width:0}
.row-title{font-weight:600;margin:0}
.row-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 2px}
.chip{white-space:nowrap}
.row-sub{font-size:15px;color:var(--ink-2);margin:2px 0 0}
.row form{flex:none}
.row-end{margin-top:12px}
.subnav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.subnav a{display:inline-flex;align-items:center;min-height:48px;padding:0 16px;border:2px solid var(--navy);border-radius:999px;
  background:var(--paper);color:var(--navy);font:700 16px/1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.subnav a:hover{background:var(--gold)}
.help details{border-top:2px dashed rgba(16,28,46,.28)}
.help details:first-child{border-top:0}
.help summary{display:flex;align-items:center;min-height:48px;padding:8px 0;font-weight:600;cursor:pointer;list-style:none}
.help summary::-webkit-details-marker{display:none}
.help summary::before{content:"+";display:inline-grid;place-items:center;width:28px;height:28px;margin-right:10px;flex:none;
  border:2px solid var(--navy);border-radius:50%;font:700 18px/1 var(--f-label)}
.help details[open] summary::before{content:"\2212"}
.help details p{margin:0 0 12px 38px}
.tiles{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin-top:8px}
.tile{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 16px;border:3px solid var(--navy);border-radius:10px;
  background:var(--cream);color:var(--navy);font:700 18px/1.1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.tile:hover{background:var(--gold)}

/* ---------------------------------------------------------------- part M0c: installer report, History, Backups, System check */
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 10px}
.btn-row .btn{flex:1 1 220px}
.chip-ok{background:var(--ok-bg);border-color:var(--pine)}
.chip-warn{background:var(--warn-bg);border-color:#7A5200}
.empty{color:var(--ink-2);font-style:italic}
.ir-file{display:inline-block;font:600 15px/1.3 var(--f-label);letter-spacing:.04em;color:var(--ink-2);word-break:break-all}
.hist{list-style:none;margin:0;padding:0}
.hist-subject{font-weight:400;color:var(--ink-2)}
.hist-files{word-break:break-word}
.row>.btn{flex:none}
.sys-sum{font:700 20px/1.3 var(--f-label);letter-spacing:.04em;margin:0 0 6px}
.sys-sum[data-sum="ok"]{color:var(--pine)}
.sys-sum[data-sum="warn"]{color:#7A5200}
.sys-sum[data-sum="bad"]{color:var(--red-d)}
.sys-list{list-style:none;padding:6px 16px}
.sys-row{align-items:flex-start}
.sys-dot{width:18px;height:18px;flex:none;margin-top:4px;border-radius:50%;border:2px solid var(--navy)}
.sys-ok{background:#3F8F55}
.sys-warn{background:var(--gold)}
.sys-bad{background:var(--red-d)}
.sys-chip{margin-left:6px;font-size:13px;min-height:22px}
.sys-chip-ok{background:var(--ok-bg);border-color:var(--pine)}
.sys-chip-warn{background:var(--warn-bg);border-color:#7A5200}
.sys-chip-bad{background:var(--err-bg);border-color:var(--red-d);color:var(--red-d)}

/* ---------------------------------------------------------------- the shell: top bar, account menu, tab bar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;min-height:var(--topbar-h);
  padding:calc(8px + var(--safe-t)) var(--gut) 8px;background:var(--cream);border-bottom:3px solid var(--navy);box-shadow:0 4px 0 var(--orange)}
.tb-logo{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:50%}
.tb-logo img{width:44px;height:44px}
.tb-text{flex:1;min-width:0}
.tb-title{font:400 21px/1.15 var(--f-display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status-line{margin:2px 0 0;font:600 14px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);min-height:0}
.status-line:empty{min-height:0;height:0;margin:0;overflow:hidden}   /* core review (a11y-stable-4): stays a live region while empty */
.status-line[data-kind="err"]{color:var(--red-d)}
.acct{position:relative;flex:none}
.acct>summary{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--navy);color:var(--cream);
  border:3px solid var(--navy);box-shadow:2px 2px 0 var(--orange);font:400 20px/1 var(--f-display);cursor:pointer;list-style:none}
.acct>summary::-webkit-details-marker{display:none}
.acct[open]>summary{background:var(--gold);color:var(--navy)}
.acct-menu{position:absolute;right:0;top:calc(100% + 12px);z-index:40;width:min(290px,calc(100vw - 32px));padding:8px;
  background:var(--paper);border:3px solid var(--navy);border-radius:12px;box-shadow:4px 4px 0 var(--orange)}
.acct-who{margin:4px 8px 8px;font-size:15px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}
.acct-who b{color:var(--navy)}
.acct-form{margin:0}
.acct-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 12px;margin:0;border:0;border-radius:8px;
  background:none;color:var(--navy);font:600 17px/1.2 var(--f-body);text-align:left;text-decoration:none;cursor:pointer}
.acct-item:hover{background:var(--cream)}
.main{display:block;max-width:980px;margin:0 auto;padding:20px var(--gut) calc(var(--tabbar-h) + 40px + var(--safe-b))}
.main:focus{outline:none}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:4px;padding:6px 6px calc(6px + var(--safe-b));
  background:var(--navy);border-top:3px solid var(--orange)}
.tab{flex:1 1 0;min-width:0;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:4px 2px;border-radius:10px;color:var(--cream);text-decoration:none;font:700 15px/1 var(--f-label);letter-spacing:.04em;text-transform:uppercase}
.tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab[aria-current="page"]{background:var(--gold);color:var(--navy)}
.sidebar{display:none}

/* ---------------------------------------------------------------- toasts and sheets */
.toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabbar-h) + 16px + var(--safe-b));z-index:60;
  display:flex;flex-direction:column;gap:8px;width:min(520px,calc(100vw - 32px));pointer-events:none}
.auth .toasts{bottom:calc(16px + var(--safe-b))}
.toast{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 16px;background:var(--navy);color:var(--cream);
  border:3px solid var(--navy);border-radius:10px;box-shadow:4px 4px 0 var(--orange);pointer-events:auto}
.toast p{flex:1;margin:0;font-weight:600;line-height:1.3}
.toast .btn{min-height:48px;box-shadow:none;border-color:var(--cream)}
.toast-x{display:grid;place-items:center;width:48px;height:48px;flex:none;border:0;border-radius:8px;background:none;color:var(--cream);cursor:pointer}
.toast-err{background:var(--red-d);border-color:var(--red-d)}
dialog.sheet{position:fixed;inset:auto 0 0 0;width:100%;max-width:100%;max-height:88vh;margin:0;padding:0;overflow:auto;
  background:var(--paper);color:var(--navy);border:3px solid var(--navy);border-bottom:0;border-radius:16px 16px 0 0;box-shadow:0 -4px 0 var(--orange)}
dialog.sheet::backdrop{background:rgba(16,28,46,.6)}
.sheet-body{padding:20px var(--gut) calc(20px + var(--safe-b))}
.sheet-body h2{font:400 22px/1.2 var(--f-display);margin:0 0 10px}
.sheet-actions{display:flex;flex-wrap:wrap-reverse;gap:12px;justify-content:flex-end;margin-top:18px}
.sheet-actions .btn{flex:1 1 160px}

/* ---------------------------------------------------------------- sign-in screens */
.auth-main{display:block;max-width:460px;margin:0 auto;padding:calc(20px + var(--safe-t)) var(--gut) calc(32px + var(--safe-b))}
.auth-wide{max-width:520px}
.auth-head{display:flex;flex-direction:column;align-items:center;margin:4px 0 14px}
.auth-head img{width:112px;height:112px}
.auth-kicker{margin:6px 0 0;font:700 17px/1 var(--f-label);letter-spacing:.22em;text-transform:uppercase;color:var(--rust)}
.auth-card h1{font:400 27px/1.15 var(--f-display);margin:0 0 14px}
.auth-links{margin:10px 0 0;text-align:center}
.auth-foot{margin:8px 0 0;text-align:center}

/* ---------------------------------------------------------------- computer (>= 720 px, then >= 1024 px) */
@media (min-width:720px){
  :root{--gut:24px}
  dialog.sheet{inset:0;margin:auto;width:min(520px,calc(100vw - 48px));height:fit-content;border-bottom:3px solid var(--navy);
    border-radius:14px;box-shadow:6px 6px 0 var(--orange)}
  .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1024px){
  .sidebar{position:fixed;top:0;bottom:0;left:0;z-index:25;display:flex;flex-direction:column;width:var(--sidebar-w);
    padding:16px 12px;background:var(--navy);color:var(--cream);border-right:3px solid var(--orange);overflow-y:auto}
  .sb-brand{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 6px 12px;margin-bottom:8px;border-bottom:2px solid rgba(246,236,214,.25);
    color:var(--cream);text-decoration:none}
  .sb-brand img{width:56px;height:56px;flex:none}
  .sb-brand span{display:flex;flex-direction:column;line-height:1.05}
  .sb-brand b{font:400 18px/1.05 var(--f-display);font-weight:400}
  .sb-brand i{font:700 14px/1.2 var(--f-label);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:4px}
  .sb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
  .sb-link{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-radius:8px;color:var(--cream);
    text-decoration:none;font:700 19px/1 var(--f-label);letter-spacing:.1em;text-transform:uppercase}
  .sb-link:hover{background:rgba(246,236,214,.12)}
  .sb-link[aria-current="page"]{background:var(--gold);color:var(--navy)}
  .sb-foot{margin-top:auto;padding-top:12px;border-top:2px solid rgba(246,236,214,.25)}
  .sb-small{font-size:16px}
  .tabbar{display:none}
  .topbar,.main{margin-left:var(--sidebar-w)}
  .tb-logo{display:none}
  .main{max-width:none;padding:28px 32px 48px}
  .main>*{max-width:1100px}
  .toasts{left:calc(50% + var(--sidebar-w) / 2);bottom:24px}
  .cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cards-3>.ticket{margin-bottom:22px}
}

/* ---------------------------------------------------------------- part M0d: Dashboard, previews, photos */
.greet{font:400 24px/1.2 var(--f-display);margin:0 0 16px}
.dash-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.dash-head h2{display:flex;align-items:center;gap:10px;font:400 22px/1.2 var(--f-display);margin:0}
.switch{display:inline-flex;align-items:center;gap:10px;min-height:48px;min-width:112px;padding:6px 14px 6px 8px;margin:0;
  border:3px solid var(--navy);border-radius:999px;background:var(--cream);color:var(--navy);font:700 18px/1 var(--f-label);
  letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.switch-track{position:relative;display:block;width:52px;height:30px;flex:none;border:2px solid var(--navy);border-radius:999px;background:var(--white)}
.switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--navy)}
.switch[aria-checked="true"] .switch-track{background:var(--pine)}
.switch[aria-checked="true"] .switch-knob{left:25px;background:var(--cream)}
.switch[disabled]{cursor:not-allowed;opacity:.7}
.minibar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:48px;padding:8px 14px;margin:0 0 10px;
  border:2px solid var(--navy);border-radius:8px;background:var(--gold);color:var(--navy)}
.minibar-red{background:var(--red-d);color:var(--white)}
.minibar-pine{background:var(--pine);color:var(--white)}
.minibar-tag{font:700 15px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;padding:4px 8px;border:2px solid currentColor;border-radius:6px}
.minibar-msg{flex:1 1 180px;min-width:0;font-weight:600}
.dash-sub{margin:16px 0 8px;font-weight:600}
.dash-links{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.live-row .row-sub+.row-sub{margin-top:0}

/* ---------------------------------------------------------------- part M4: the banner (Dashboard card, Banner screen, previews) */
:root{--nbbar-h:104px}
/* the big On/Off switch (plan 5.2 "a large On/Off switch") */
.switch-lg{min-height:56px;min-width:132px;gap:12px;padding:6px 18px 6px 8px;font-size:20px}
.switch-lg .switch-track{width:64px;height:36px}
.switch-lg .switch-knob{top:4px;left:4px;width:24px;height:24px}
.switch-lg[aria-checked="true"] .switch-knob{left:32px}
.switch[aria-busy="true"]{cursor:progress;opacity:.75}
/* the mini bar in the site's own colours (the site's pine is darker than the admin's) */
.minibar{background:repeating-linear-gradient(135deg,rgba(16,28,46,.07) 0 8px,transparent 8px 16px),#F7B733}
.minibar-red{background:repeating-linear-gradient(135deg,rgba(16,28,46,.10) 0 8px,transparent 8px 16px),#C22B24;color:#F6ECD6}
.minibar-pine{background:#14261C;color:#F6ECD6}
.minibar-tag{border:0;border-radius:999px;padding:5px 10px 4px;background:var(--navy);color:var(--gold)}
.minibar-red .minibar-tag{background:#F6ECD6;color:#C22B24}
.minibar-pine .minibar-tag{background:var(--gold);color:var(--navy)}
.dash-banner-live,.nb-live{margin:0 0 4px;padding-left:12px;border-left:5px solid var(--ink-2);font-weight:600}
.dash-banner-live[data-status="on"],.nb-live[data-status="on"]{border-left-color:var(--pine)}
.dash-banner-live[data-status="waiting"],.nb-live[data-status="waiting"]{border-left-color:var(--gold)}
.dash-banner .row-end .link{gap:8px}
/* the Banner screen */
.banner-ed .main{padding-bottom:calc(var(--tabbar-h) + var(--nbbar-h) + 44px + var(--safe-b))}
.banner-ed .toasts{bottom:calc(var(--tabbar-h) + var(--nbbar-h) + 14px + var(--safe-b))}
.nb-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.nb-grid>.ticket{min-width:0}
.nb-styles .look{flex:1 1 96px;padding:10px 8px}
.nb-styles-f{margin:0}
.nb-sw{display:flex;align-items:center;gap:6px;width:100%;max-width:150px;min-height:30px;padding:4px 8px;border:2px solid var(--navy);border-radius:6px}
.nb-sw b{padding:3px 7px 2px;border-radius:999px;font:700 12px/1 var(--f-label);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.nb-sw i{flex:1;height:6px;border-radius:3px;background:currentColor;opacity:.6}
.nb-sw-gold{background:#F7B733;color:#101C2E}
.nb-sw-gold b{background:#101C2E;color:#F7B733}
.nb-sw-red{background:#C22B24;color:#F6ECD6}
.nb-sw-red b{background:#F6ECD6;color:#C22B24}
.nb-sw-pine{background:#14261C;color:#F6ECD6}
.nb-sw-pine b{background:#F7B733;color:#101C2E}
.nb-fit{font-weight:600}
.nb-fit[data-fit="no"]{color:var(--rust)}
.nb-dt{margin-bottom:12px}
.nb-dt>legend{display:block;padding:0;font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px}
.nb-dt-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.nb-dt-part{flex:1 1 140px;min-width:0}
.nb-dt-part label{display:block;font:600 15px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;color:var(--ink-2)}
.nb-dt-clear{flex:0 0 auto;box-shadow:none;min-height:48px}
.nb-dt.has-err input{border-color:var(--red-d);border-width:3px}
.nb-close .check{margin:0}
.nb-pvbox{margin:0 0 14px}
.nb-pvbox figcaption{margin:0 0 6px;font:700 15px/1.2 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.nb-pvbox:first-of-type .sitepv-frame{max-width:396px}
.nb-pv .btn-row .btn{flex:1 1 200px}
.nbbar{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + 3px + var(--safe-b));z-index:28;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  padding:8px var(--gut) 10px;background:var(--paper);color:var(--navy);border-top:3px solid var(--navy);box-shadow:0 -4px 0 var(--orange)}
.nbbar-status{flex:1 1 100%;min-width:0;margin:0;font:700 15px/1.25 var(--f-label);letter-spacing:.07em;text-transform:uppercase;color:var(--pine)}
.nbbar-status[data-kind="warn"]{color:var(--rust)}
.nbbar-status[data-kind="err"]{color:var(--red-d)}
.nbbar-acts{display:flex;gap:8px;flex:1 1 100%}
.nbbar-acts .btn{flex:1 1 auto;min-width:0;padding:6px 14px}
.nbbar-acts .btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb-sheet .sitepv-frame{max-width:396px;margin:6px auto 12px}
.nb-sheet-meta{margin:0 0 6px}
/* the site preview (the top of a page of the website, drawn here with the website's own banner CSS of plan 4.7.2, copied:
   the admin page can't load site.css): a fixed-width page (390 or 1280 px) scaled to fit the box; nothing in it takes a tap */
.sitepv-frame{position:relative;overflow:hidden;border:3px solid var(--navy);border-radius:10px;background:#F6ECD6}
.sitepv{--orange:#F26B2B;--gold:#F7B733;--pine:#14261C;--cream:#F6ECD6;--paper2:#FFF6DF;--navy:#101C2E;--red:#D8342C;--red-d:#C22B24;--gut:16px;
  position:absolute;left:0;top:0;transform-origin:0 0;background:var(--cream);color:var(--navy);font:400 17px/1.5 var(--f-body);text-align:left;
  pointer-events:none;user-select:none}
.sitepv-computer{--gut:51.2px}
.sitepv .nbar{position:relative;z-index:2;color:var(--navy);border-bottom:3px solid var(--navy);
  background:repeating-linear-gradient(135deg,rgba(16,28,46,.07) 0 8px,transparent 8px 16px),var(--gold)}
.sitepv .nbar~.announce{display:none}
.sitepv .nbar-in{position:relative;max-width:1440px;margin:0 auto;min-height:38px;padding:4px calc(var(--gut) + 44px);display:flex;align-items:center;justify-content:center}
.sitepv .nbar-msg{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;text-align:center;font:600 17px/1.3 var(--f-label);letter-spacing:.04em}
.sitepv .nbar-tag{flex:none;padding:4px 10px 3px;border-radius:999px;background:var(--navy);color:var(--gold);font:700 13px/1 var(--f-label);letter-spacing:.2em;text-transform:uppercase}
.sitepv .nbar-txt{min-width:0;text-wrap:balance}
.sitepv .nbar-go{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border:2px solid var(--navy);border-radius:7px;background:var(--navy);
  color:var(--cream);box-shadow:3px 3px 0 var(--red-d);font:700 14px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.sitepv .nbar-x{position:absolute;right:var(--gut);top:50%;width:32px;height:32px;margin-top:-16px;display:flex;align-items:center;justify-content:center;
  border:2px solid currentColor;border-radius:50%}
.sitepv .nbar-x svg{width:16px;height:16px}
.sitepv .nbar.nbar-red{color:var(--cream);background:repeating-linear-gradient(135deg,rgba(16,28,46,.10) 0 8px,transparent 8px 16px),var(--red-d)}
.sitepv .nbar-red .nbar-tag{background:var(--cream);color:var(--red-d)}
.sitepv .nbar-red .nbar-go{background:var(--cream);color:var(--navy);border-color:var(--cream);box-shadow:3px 3px 0 var(--navy)}
.sitepv .nbar.nbar-pine{color:var(--cream);background:var(--pine)}
.sitepv .nbar-pine .nbar-tag{background:var(--gold);color:var(--navy)}
.sitepv .nbar-pine .nbar-go{background:var(--gold);color:var(--navy);border-color:var(--gold);box-shadow:3px 3px 0 var(--orange)}
/* the website's phone rules: (pointer:coarse) and (max-width:640px) */
.sitepv-phone .nbar-go{min-height:40px}
.sitepv-phone .nbar-x{width:44px;height:44px;margin-top:-22px;right:10px}
.sitepv-phone .nbar-in{justify-content:flex-start;padding:6px 60px 6px 14px}
.sitepv-phone .nbar-msg{justify-content:flex-start;text-align:left;gap:5px 10px;font-size:15.5px}
.sitepv-phone .nbar-tag{font-size:12px;letter-spacing:.14em;padding:3px 8px 2px}
/* the usual strip ("Tenting... RV's... Music"), hidden while the banner shows */
.sitepv .announce{position:relative;z-index:2;background:var(--navy);color:var(--cream);text-align:center;padding:9px 14px}
.sitepv .announce p{margin:0;font:600 16px/1.25 var(--f-label);letter-spacing:.16em;text-transform:uppercase;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 14px}
.sitepv .announce span{white-space:nowrap}
.sitepv .announce i{font-style:normal;color:var(--gold);letter-spacing:.04em}
.sitepv-phone .announce{padding:7px 10px}
.sitepv-phone .announce p{font-size:12px;letter-spacing:.1em;gap:0 9px;flex-wrap:nowrap}
/* the header and the top of the hero, simplified */
.sitepv-hd{position:relative;z-index:1;display:flex;align-items:center;gap:12px;padding:8px var(--gut);background:var(--cream);border-bottom:3px solid var(--navy);
  box-shadow:0 5px 0 var(--orange)}
.sitepv-hd img{width:64px;height:64px;flex:none}
.sitepv-brand{display:flex;flex-direction:column;gap:3px;min-width:0}
.sitepv-brand b{font:400 22px/1 var(--f-display)}
.sitepv-brand i{font:700 13px/1.1 var(--f-label);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--rust,#A83A10)}
.sitepv-nav{display:flex;gap:24px;margin-left:auto;font:700 16px/1 var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.sitepv-book{flex:none;margin-left:auto;padding:11px 16px;border:3px solid var(--navy);border-radius:8px;background:var(--red);color:var(--cream);box-shadow:3px 3px 0 var(--navy);
  font:700 15px/1 var(--f-label);letter-spacing:.1em;text-transform:uppercase}
.sitepv-computer .sitepv-book{margin-left:24px}
.sitepv-phone .sitepv-hd img{width:52px;height:52px}
.sitepv-phone .sitepv-brand b{font-size:18px}
.sitepv-phone .sitepv-brand i{font-size:11px;letter-spacing:.1em}
.sitepv-menu{display:grid;gap:5px;flex:none;width:46px;height:44px;place-content:center;border:3px solid var(--navy);border-radius:8px}
.sitepv-menu i{display:block;width:24px;height:3px;background:var(--navy)}
.sitepv-hero{display:grid;place-items:center;height:120px;background:linear-gradient(#E8541F,#F7943A 40%,#FBD27A 80%,#FCEBC2)}
.sitepv-hero b{font:400 32px/1.1 var(--f-display);color:var(--cream);text-shadow:3px 3px 0 var(--navy)}
.sitepv-computer .sitepv-hero{height:150px}
.sitepv-computer .sitepv-hero b{font-size:56px}
@media (min-width:720px){
  .nbbar{flex-wrap:nowrap}
  .nbbar-status{flex:1 1 auto}
  .nbbar-acts{flex:0 0 auto}
  .nbbar-acts .btn{padding:6px 22px}
  :root{--nbbar-h:76px}
  dialog.sheet.nb-sheet{width:min(560px,calc(100vw - 48px));max-height:calc(100vh - 48px)}
}
@media (min-width:1024px){
  .banner-ed .main{padding-bottom:calc(var(--nbbar-h) + 44px)}
  .banner-ed .toasts{bottom:calc(var(--nbbar-h) + 18px)}
  .nbbar{left:var(--sidebar-w);bottom:0;padding:10px 32px}
  .banner-ed .main>*{max-width:none}
  .nb-grid{grid-template-columns:minmax(0,1fr) minmax(380px,46%);gap:0 24px;align-items:start}
  .nb-grid>.ticket{grid-column:1}
  .nb-grid>.nb-pv{grid-column:2;grid-row:1 / span 6;position:sticky;top:calc(var(--topbar-h) + 16px)}
}

/* the preview sheet: the real page in a sandboxed frame, phone or computer width */
dialog.sheet.sheet-full{inset:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border-radius:0;border:0;overflow:hidden}
.sheet-full>.sheet-body{display:flex;flex-direction:column;height:100%;padding:10px var(--gut) calc(10px + var(--safe-b))}
.pv-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 6px}
.pv-title{flex:1 1 160px;min-width:0;font:400 20px/1.2 var(--f-display);margin:0!important}
.pv-toggle{display:flex;gap:8px;order:3;flex:1 1 100%}
.pv-toggle .btn{flex:1 1 0}
.pv-toggle .btn[aria-pressed="true"]{background:var(--navy);color:var(--cream)}
.pv-toggle .btn span,.pv-close span{white-space:nowrap}
.pv-note{margin:0 0 8px;font-size:14px;color:var(--ink-2)}
.pv-stage{position:relative;flex:1;min-height:200px;display:flex;justify-content:center;overflow:hidden;background:var(--navy);
  border:3px solid var(--navy);border-radius:10px}
.pv-wrap{position:relative;overflow:hidden;background:var(--white);max-width:100%}
.pv-frame{display:block;border:0;background:var(--white);transform-origin:0 0}

/* the photo library */
.ml-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 14px}
.ml-add{flex:1 1 200px}
.ml-filter{display:flex;flex-wrap:wrap;gap:8px}
.ml-filter .btn[aria-pressed="true"]{background:var(--navy);color:var(--cream)}
.ml-queue{list-style:none;margin:0 0 12px;padding:0}
.ml-queue:empty{display:none}
.mq{padding:10px 12px;margin:0 0 8px;border:2px solid var(--navy);border-radius:10px;background:var(--white)}
.mq[data-state="error"]{background:var(--err-bg);border-color:var(--red-d)}
.mq[data-state="done"]{background:var(--ok-bg);border-color:var(--pine)}
.mq-name{margin:0 0 6px;font-weight:600;word-break:break-all}
.mq-bar{display:block;width:100%;height:12px;margin:0 0 6px;accent-color:var(--pine)}
.mq-msg{margin:0;font-size:16px}
.mq-acts{display:flex;flex-wrap:wrap;gap:8px}
.mq-acts:not(:empty){margin-top:8px}
.ml-count{margin:0 0 10px;font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.ml-grid{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ml-cell{min-width:0}
.ml-thumb{position:relative;display:block;width:100%;aspect-ratio:1/1;padding:0;margin:0;overflow:hidden;cursor:pointer;
  border:3px solid var(--navy);border-radius:10px;background:var(--cream)}
.ml-thumb img{width:100%;height:100%;object-fit:cover}
.ml-thumb:hover{box-shadow:3px 3px 0 var(--orange)}
.ml-badge{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);overflow:hidden;text-overflow:ellipsis;font-size:12px}
.ml-more{width:100%}
.ml-sheet .sheet-body{padding-top:16px}
.ml-focus{position:relative;display:block;width:100%;max-width:560px;padding:0;margin:0 auto 6px;border:3px solid var(--navy);
  border-radius:10px;background:var(--navy);cursor:crosshair;overflow:hidden;line-height:0}
.ml-focus img{width:100%;height:auto}
.ml-dot{position:absolute;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;border:3px solid var(--white);
  box-shadow:0 0 0 3px var(--red-d),0 0 0 6px rgba(255,255,255,.6);pointer-events:none}
.ml-crops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:460px;margin:0 auto 16px}
.ml-crop{margin:0;min-width:0}
.ml-crop-box{display:block;overflow:hidden;border:2px solid var(--navy);border-radius:6px;background:var(--cream)}
.ml-crop-box img{width:100%;height:100%;object-fit:cover}
.ml-crop-43 .ml-crop-box{aspect-ratio:4/3}
.ml-crop-45 .ml-crop-box{aspect-ratio:4/5}
.ml-crop-card .ml-crop-box{aspect-ratio:400/250}
.ml-crop figcaption{margin-top:4px;font:700 13px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-align:center}
.ml-form textarea{min-height:72px}
.ml-meta{word-break:break-word}
.ml-err{margin-top:10px}
.ml-pick .ml{flex:1;overflow:auto}
@media (min-width:720px){
  .ml-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dash-links{grid-template-columns:repeat(3,minmax(0,1fr))}
  dialog.sheet.sheet-full{inset:0;width:calc(100vw - 48px);height:calc(100vh - 48px);margin:auto;border:3px solid var(--navy);border-radius:14px}
  dialog.sheet.ml-sheet{width:min(680px,calc(100vw - 48px));max-height:calc(100vh - 48px)}
  .pv-toggle{order:0;flex:0 0 auto}
  .pv-toggle .btn{flex:0 0 auto}
}
@media (min-width:1024px){
  .ml-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* ---------------------------------------------------------------- part M1b: the blog screens (plan 5.3, 5.4) */
.ic-sm{width:18px;height:18px}
.field-label{display:block;font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px}
fieldset.field{border:0;padding:0;min-width:0}
fieldset.field>legend{display:block;padding:0;font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px}
/* the ⋯ menus */
.pmenu{position:relative;flex:none}
.pmenu>summary{list-style:none}
.pmenu>summary::-webkit-details-marker{display:none}
.pmenu[open]>summary{background:var(--gold)}
.pmenu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:45;width:max-content;min-width:230px;max-width:min(320px,calc(100vw - 32px));
  padding:6px;background:var(--paper);border:3px solid var(--navy);border-radius:12px;box-shadow:4px 4px 0 var(--orange)}
.pmenu-up .pmenu-list{top:auto;bottom:calc(100% + 10px)}
.pmenu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:0 12px;margin:0;border:0;border-radius:8px;background:none;
  color:var(--navy);font:600 17px/1.2 var(--f-body);text-align:left;text-decoration:none;cursor:pointer}
.pmenu-item:hover{background:var(--cream)}
.pmenu-danger{color:var(--red-d)}
.pmenu-note{margin:6px 12px 8px;font-size:15px;color:var(--ink-2)}
/* the Blog list */
.bl-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
.bl-head .greet{margin:0}
.bl-tabs a{gap:8px}
.bl-tabs a[aria-current="page"]{background:var(--navy);color:var(--cream)}
.bl-count{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:var(--cream);color:var(--navy);
  border:2px solid currentColor;font-size:14px}
.bl-tabs a[aria-current="page"] .bl-count{border-color:var(--cream)}
.bl-intro{margin:-4px 0 14px}
.bl-rows{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.bl-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:start;gap:4px 12px;padding:12px;background:var(--white);
  border:2px solid var(--navy);border-radius:10px;box-shadow:3px 3px 0 var(--navy)}
.bl-row>.bl-thumb{grid-column:1;grid-row:1}
.bl-row>.bl-tt{grid-column:2;grid-row:1;margin:0;align-self:center}
.bl-row>.pmenu{grid-column:3;grid-row:1}
.bl-row>.bl-info{grid-column:1 / -1;grid-row:2;min-width:0}
.bl-row[data-status="published"]{box-shadow:3px 3px 0 var(--pine)}
.bl-row[data-status="draft"]{border-style:dashed}
.bl-thumb{width:64px;height:64px;object-fit:cover;border:2px solid var(--navy);border-radius:8px;background:var(--cream)}
.bl-thumb-none{display:grid;place-items:center;color:var(--ink-2)}
.bl-title{display:inline-block;padding:2px 0;font:400 19px/1.25 var(--f-display);color:var(--navy);text-decoration:none}
a.bl-title{display:inline-flex;align-items:center;min-height:48px;padding:0}
a.bl-title:hover{text-decoration:underline}
.bl-url{display:flex;align-items:center;gap:6px;word-break:break-all;font-family:var(--f-label);letter-spacing:.03em}
.bl-legacy{display:flex;align-items:center;gap:6px;margin-top:4px}
.bl-row .row-chips{margin-top:6px}
.bl-new{flex:none}
@media (max-width:719px){
  .blk[data-type]:not([data-type="lead"]) .blk-ic{display:none}
  .blog-list .bl-new{position:fixed;right:16px;bottom:calc(var(--tabbar-h) + 18px + var(--safe-b));z-index:35;min-height:var(--fab-h);border-radius:999px;
    padding:6px 22px;box-shadow:4px 4px 0 var(--orange)}
  /* (part M2b) a list with a floating button: room below the last item for the tab bar, the button and a gap, so the last
     item can always scroll clear of the button */
  .has-fab .main{padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 18px + var(--fab-h) + 48px)}
  .blog-list .toasts{bottom:calc(var(--tabbar-h) + 90px + var(--safe-b))}
}
/* the post editor: the tab bar gives way to the editor's own bar (plan 5.0) */
:root{--edbar-h:104px}
.editor .tabbar{display:none}
.editor .tb-text .status-line{display:none}
.editor .main{padding-bottom:calc(var(--edbar-h) + 40px + var(--safe-b))}
.editor .toasts{bottom:calc(var(--edbar-h) + 14px + var(--safe-b))}
.ed-top{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:-6px 0 10px}
.ed-back,.ed-view{gap:8px}
.ed-chips{margin:0}
.ed-local .btn-row{margin:8px 0 0}
.acc{margin:0 0 16px;background:var(--paper);border:3px solid var(--navy);border-radius:12px;box-shadow:4px 4px 0 var(--orange)}
.acc-h{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 14px;cursor:pointer;list-style:none;font:400 21px/1.2 var(--f-display)}
.acc-h::-webkit-details-marker{display:none}
.acc-n{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:50%;background:var(--navy);color:var(--cream);font:700 17px/1 var(--f-label)}
.acc-t{flex:1;min-width:0}
.acc-ic{transition:transform .15s}
.acc[open]>.acc-h .acc-ic{transform:rotate(180deg)}
.acc-body{padding:4px 14px 16px;border-top:2px dashed rgba(16,28,46,.28)}
.acc-body>.hint:first-child{margin:10px 0 14px}
.acc-body>.field:first-child{margin-top:12px}
.slug{display:flex;align-items:stretch;border:2px solid var(--navy);border-radius:8px;background:var(--white);overflow:hidden}
.slug input{border:0;border-radius:0;min-width:0;flex:1;padding-left:2px;padding-right:2px}
.slug-pre,.slug-suf{display:flex;align-items:center;padding:0 4px 0 10px;font:600 16px/1 var(--f-label);letter-spacing:.03em;color:var(--ink-2);background:var(--cream)}
.slug-suf{padding:0 10px 0 4px}
.is-locked .slug{background:var(--cream)}
.is-locked .slug input{background:var(--cream);color:var(--ink-2)}
.has-err .slug{border-color:var(--red-d);border-width:3px}
/* the blocks */
.blocks{list-style:none;margin:0;padding:0}
.blk{position:relative;margin:0 0 6px;padding:10px 12px 8px;background:var(--white);border:2px solid var(--navy);border-radius:10px}
.blk[data-type="lead"]{border-width:3px}
.blk-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
.blk-label{display:flex;align-items:center;gap:10px;flex:1 1 96px;min-width:0;margin:0;font:700 16px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase}
.blk-label span{min-width:0}
.blk-ic{width:34px;height:22px;flex:none;color:var(--ink-2)}
.blk-tools{display:flex;gap:6px;flex:none;margin-left:auto}
.blk-tools .btn{box-shadow:none}
.blk-drag{display:none;place-items:center;width:28px;height:48px;flex:none;color:var(--ink-2);cursor:grab}
.blk.is-dragging{opacity:.55}
.drop-mark{height:6px;margin:0 0 6px;border-radius:3px;background:var(--orange)}
.blk-body>.field{margin-bottom:12px}
.blk-add{display:flex;width:100%;margin:6px 0 4px;border-style:dashed;box-shadow:none;background:var(--paper)}
.blk-add:hover{background:var(--gold)}
.tb{display:flex;gap:6px;margin:0 0 6px}
.tb-btn{box-shadow:none;border-width:2px}
.tb-b{font-weight:800;font-family:var(--f-body);text-transform:none;letter-spacing:0;font-size:18px}
.tb-i{font-style:italic;font-family:var(--f-body);text-transform:none;letter-spacing:0;font-size:18px}
textarea.inline-ta{min-height:52px;resize:none;overflow:hidden;line-height:1.45}
.items{list-style:none;margin:0 0 8px;padding:0}
.item{display:flex;align-items:flex-end;gap:8px}
.item>.field{flex:1;min-width:0;margin-bottom:10px}
.item-rm{margin-bottom:10px;box-shadow:none}
.anchor-lock{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:6px 10px;border-radius:8px;background:var(--cream);font:600 17px/1.2 var(--f-label);letter-spacing:.03em}
.anchor-field input{font-family:var(--f-label);letter-spacing:.03em}
/* photo fields */
.ph{margin:0 0 12px}
.ph-choose{margin:4px 0 6px}
.ph-focus{display:inline-block;width:auto;max-width:100%;margin:0 0 4px}
.ph-focus img{width:auto;max-width:100%;max-height:260px;height:auto}
.ph-crops{max-width:420px;margin:6px 0 10px}
.ph-acts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.ph-acts .btn{box-shadow:none}
.ph-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
.ph-pair-one{min-width:0}
/* card & look */
.look-row{display:flex;flex-wrap:wrap;gap:10px}
.look{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:96px;min-height:48px;padding:8px 10px;
  border:2px solid var(--navy);border-radius:10px;background:var(--white);cursor:pointer;flex:1 1 96px}
.look input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.look:has(input:checked){background:var(--gold);box-shadow:3px 3px 0 var(--navy)}
.look:has(input:focus-visible){outline:3px solid var(--red-d);outline-offset:3px}
.look-t{font:700 15px/1.15 var(--f-label);letter-spacing:.06em;text-transform:uppercase;text-align:center}
.look-side{flex-direction:row}
.look-row-2 .look{flex:1 1 140px}
.sw{display:block;width:44px;height:30px;border:2px solid var(--navy);border-radius:6px;background:var(--white)}
.sw-tent{box-shadow:5px 5px 0 #14261C}
.sw-rv{box-shadow:5px 5px 0 #F26B2B}
.sw-cabin{box-shadow:5px 5px 0 #2E4A6B}
.stk-thumb{display:grid;place-items:center;width:64px;height:64px}
.stk-thumb .stk-svg{width:64px;height:64px}
.stk-none{width:32px;height:32px;color:var(--ink-2)}
.stk-pines{color:#14261C}
.stk-svg .stk-t{font:700 11.5px var(--f-label);letter-spacing:1.5px;text-transform:uppercase}
.stk-edit{margin-top:12px}
.stk-prev{display:flex;justify-content:center;margin:4px 0 0}
.stk-big{display:block;width:140px;height:140px;transform:rotate(-9deg);filter:drop-shadow(2px 3px 0 rgba(16,28,46,.55))}
.stk-big[data-stk="camp-night"]{transform:rotate(7deg)}
.stk-big .stk-svg{width:100%;height:100%}
.bn-thumb{display:block;width:100%;height:84px;overflow:hidden;border:2px solid var(--navy);border-radius:8px}
.bn-gold-map{background:#F7B733;padding:6px 10px}
.bn-night-lights{background:#101C2E}
.bn-thumb .bn-art{display:block;width:100%;height:100%}
.finger{display:block;width:220px;max-width:100%;height:auto;margin:6px 0 0}
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0}
.tags:empty{display:none}
.tag{display:inline-flex;align-items:center;gap:2px;padding:0 0 0 12px;border:2px solid var(--navy);border-radius:999px;background:var(--cream);
  font:700 15px/1 var(--f-label);letter-spacing:.06em;text-transform:uppercase}
.tag-x{display:grid;place-items:center;width:48px;height:48px;padding:0;margin:0;border:0;border-radius:999px;background:none;color:var(--navy);cursor:pointer}
.tag-x .ic{width:20px;height:20px}
.tag-add{display:flex;gap:8px}
.tag-add input{flex:1;min-width:0}
.tag-add .btn{flex:none;box-shadow:none}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 8px}
.stats div{padding:10px 12px;border:2px solid var(--navy);border-radius:10px;background:var(--white)}
.stats dt{font:700 14px/1.2 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.stats dd{margin:2px 0 0;font:400 24px/1.2 var(--f-display)}
.is-fix{outline:4px solid var(--orange);outline-offset:4px;border-radius:8px}
/* the bar at the bottom of the editor */
.edbar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:6px var(--gut) calc(8px + var(--safe-b));background:var(--navy);color:var(--cream);
  border-top:3px solid var(--orange)}
.ed-status{min-height:20px;margin:0 0 6px;font:600 15px/1.25 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--cream)}
.ed-status[data-kind="err"]{color:#FFD2B8}
.edbar-acts{display:flex;gap:8px;align-items:center}
.edbar-acts>.btn{flex:1 1 0;min-width:0;padding:6px 10px;border-color:var(--cream)}
.edbar-acts>.btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.edbar .btn-primary{background:var(--gold);color:var(--navy);box-shadow:3px 3px 0 var(--orange)}
.edbar .pmenu-btn{border-color:var(--cream)}
.ed-pv{display:none}
/* sheets of the blog screens */
.bp-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.bp-item{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:8px 12px;margin:0;border:2px solid var(--navy);border-radius:10px;
  background:var(--white);color:var(--navy);text-align:left;font:inherit;cursor:pointer}
.bp-item:hover{background:var(--gold)}
.bp-item[disabled]{opacity:.55;cursor:not-allowed;background:var(--cream)}
.bp-pic{width:64px;height:40px;flex:none;color:var(--navy)}
.bp-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.bp-txt b{font:700 17px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase}
.bp-txt span{font-size:15px;line-height:1.3;color:var(--ink-2)}
.check-list{list-style:none;margin:0 0 12px;padding:0}
.check-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:2px dashed rgba(16,28,46,.28)}
.check-item:first-child{border-top:0}
.check-err .check-ic{color:var(--red-d)}
.check-warn .check-ic{color:#7A5200}
.check-msg{flex:1;min-width:0}
.check-fix{flex:none;box-shadow:none}
.link-picks{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.link-picks .btn{box-shadow:none}
.legacy-words{font-family:var(--f-label);letter-spacing:.06em;color:var(--red-d)}
.signin-sheet .check{margin:0 0 4px}
@media (min-width:720px){
  .bl-row{grid-template-columns:88px minmax(0,1fr) auto}
  .bl-row>.bl-thumb{width:88px;height:88px;grid-row:1 / span 2}
  .bl-row>.bl-info{grid-column:2 / -1}
  .ph-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .bp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  dialog.sheet.bp-sheet{width:min(720px,calc(100vw - 48px))}
  dialog.sheet.check-sheet,dialog.sheet.conflict-sheet,dialog.sheet.legacy-sheet{width:min(600px,calc(100vw - 48px))}
}
@media (min-width:1024px){
  :root{--edbar-h:76px}
  .editor .main>*{max-width:none}
  .ed-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,44%);gap:24px;align-items:start}
  .ed-pv{position:sticky;top:calc(var(--topbar-h) + 16px);display:flex;flex-direction:column;height:calc(100vh - var(--topbar-h) - var(--edbar-h) - 48px);
    min-height:420px;padding:12px;background:var(--paper);border:3px solid var(--navy);border-radius:12px;box-shadow:4px 4px 0 var(--orange)}
  .ed-pv .pv-toggle{order:0;flex:0 0 auto}
  .ed-pv .pv-toggle .btn{flex:0 0 auto}
  .edbar{left:var(--sidebar-w);display:flex;align-items:center;gap:16px;padding:10px 32px}
  .ed-status{flex:1;margin:0}
  .edbar-acts>.btn{flex:0 0 auto;padding:6px 20px}
}
@media (min-width:1024px) and (pointer:fine){
  .blk-drag{display:grid}
}

/* ---------------------------------------------------------------- part M2b: the Gallery manager (plan 5.5) */
:root{--fab-h:56px;--f-hand:'Caveat','Caveat Fallback','Segoe Script',cursive;--gbar-h:104px;--print-paper:#FFF9EA}
.gm-hand{font-family:var(--f-hand);font-weight:600}
/* the website's photo look: a light warm grade; "Natural colours" keeps them as they are */
.gm-pic img,.gm-print-pg img,.gm-spot-pic img,.gm-crop-box img{filter:sepia(.06) saturate(1.06) contrast(1.03)}
.gm-pic.nat img,.gm-print-pg.nat img,.gm-spot-pic.nat img,.gm-crop-box.nat img{filter:saturate(1.03) contrast(1.02)}
.gm-tabs a{gap:8px}
.gm-tabs a .ic{width:20px;height:20px}
.gm-tabs a[aria-current="page"]{background:var(--navy);color:var(--cream)}
.gm-ricon{display:inline-grid;place-items:center;flex:none}
.gm-ricon svg{width:22px;height:22px}
/* the roll chips */
.gm-pick-hint{margin:-4px 0 12px}
.gm-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.gm-chip{display:inline-flex;align-items:center;gap:8px;min-height:50px;max-width:100%;padding:4px 6px 4px 10px;margin:0;border:3px solid var(--navy);border-radius:9px;
  background:var(--cream);color:var(--navy);font:700 15px/1.1 var(--f-label);letter-spacing:.07em;text-transform:uppercase;text-align:left;cursor:pointer;
  box-shadow:3px 3px 0 var(--navy)}
.gm-chip-t{min-width:0}
.gm-chip-ct{flex:none;min-width:28px;height:28px;padding:0 6px;border-radius:999px;border:2px solid var(--navy);background:var(--gold);font:700 14px/24px var(--f-label);text-align:center}
.gm-chip[aria-pressed="true"]{background:var(--navy);color:var(--cream);box-shadow:3px 3px 0 var(--red-d)}
.gm-chip[aria-pressed="true"] .gm-chip-ct{border-color:var(--cream);background:var(--orange);color:var(--navy)}
.gm-chip.is-hidden{border-style:dashed;box-shadow:none;opacity:.8}
.gm-pick-tools{display:flex;flex-wrap:wrap;gap:10px}
.gm-pick-tools .btn{flex:1 1 220px}
/* the chosen roll */
.gm-roll-head{display:flex;align-items:center;gap:14px;margin:0 0 6px}
.gm-rno{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:62px;background:var(--gold);border:3px solid var(--navy);
  border-radius:50%;box-shadow:3px 3px 0 var(--navy);transform:rotate(-7deg)}
.gm-rno small{font:700 10px/1 var(--f-label);letter-spacing:.24em;text-transform:uppercase;padding-left:.24em}
.gm-rno b{font:400 24px/1 var(--f-display);color:var(--red-d)}
.gm-roll-ht{flex:1;min-width:0}
.ticket .gm-roll-t{font:400 24px/1.1 var(--f-display);text-shadow:2px 2px 0 var(--orange);margin:0 0 6px}
.gm-roll-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0}
.gm-roll-ct{font:700 14px/1 var(--f-label);letter-spacing:.16em;text-transform:uppercase;padding:6px 10px 5px;border:2px solid var(--navy);border-radius:999px;background:var(--white);white-space:nowrap}
.gm-roll-note{font-size:23px;line-height:1;color:var(--rust);transform:rotate(-2deg)}
.gm-roll-chips{margin-top:8px}
.gm-shield{gap:6px}
.gm-acts{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.gm-acts .btn{flex:1 1 150px}
@media (max-width:719px){.gm-acts .gm-add{flex-basis:100%}}
.gm-select[aria-pressed="true"]{background:var(--gold)}
.gm-queue{margin-top:4px}
.gm-empty{margin:8px 0 4px}
/* the prints: a contact sheet in site order */
.gm-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
.gm-cell{min-width:0}
.gm-thumb{position:relative;display:flex;flex-direction:column;width:100%;height:100%;padding:6px 6px 0;margin:0;background:var(--print-paper);color:var(--navy);
  border:2px solid var(--navy);border-radius:2px;box-shadow:3px 4px 0 rgba(16,28,46,.82);font:inherit;text-align:left;cursor:pointer}
.gm-thumb:hover{box-shadow:4px 5px 0 var(--orange)}
.gm-pic{display:block;aspect-ratio:1/1;overflow:hidden;outline:1.5px solid rgba(16,28,46,.55);background:var(--cream)}
.gm-pic img{width:100%;height:100%;object-fit:cover}
.gm-cap{display:flex;flex-direction:column;gap:3px;min-height:46px;padding:6px 2px 8px}
.gm-no{font:700 12px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--rust)}
.gm-t{font-size:19px;line-height:1.02;color:#1d2a40;overflow-wrap:anywhere}
.gm-marks{position:absolute;left:10px;right:10px;top:10px;display:flex;flex-wrap:wrap;gap:4px;pointer-events:none}
.gm-badge{min-height:22px;padding:0 7px;font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.gm-tick{position:absolute;right:10px;bottom:52px;display:grid;place-items:center;width:34px;height:34px;border:3px solid var(--navy);border-radius:50%;background:var(--white)}
.gm-tick .ic{width:20px;height:20px}
.gm-thumb[aria-pressed="false"] .gm-tick .ic{visibility:hidden}
.gm-thumb[aria-pressed="true"]{outline:4px solid var(--orange);outline-offset:2px}
.gm-thumb[aria-pressed="true"] .gm-tick{background:var(--pine);color:var(--white)}
/* Select mode */
.gm-selbar{position:sticky;top:calc(var(--topbar-h) + 10px);z-index:15;margin:0 0 14px;padding:10px 12px 12px;background:var(--navy);color:var(--cream);
  border:3px solid var(--navy);border-radius:10px;box-shadow:3px 3px 0 var(--orange)}
.gm-sel-count{margin:0 0 8px;font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase}
.gm-sel-acts{display:flex;flex-wrap:wrap;gap:8px}
.gm-sel-acts>.btn{flex:1 1 130px;border-color:var(--cream);box-shadow:none}
.gm-sel-roll{flex:1 1 200px;margin:0}
/* the photo sheet */
dialog.sheet.gm-sheet .sheet-body>h2{margin-bottom:2px}
.gm-ps-where{margin:0 0 12px}
.gm-print{width:fit-content;max-width:100%;margin:0 auto 16px;padding:8px 8px 0;background:var(--print-paper);border:2px solid var(--navy);border-radius:2px;
  box-shadow:4px 5px 0 rgba(16,28,46,.82);transform:rotate(-.6deg)}
.gm-print-pg{display:block;outline:1.5px solid rgba(16,28,46,.55);line-height:0}
.gm-print-pg img{width:auto;max-width:100%;height:auto;max-height:min(46vh,440px)}
.gm-print-cap{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:38px;padding:8px 2px 10px}
.gm-print-t{min-width:0;font-size:22px;line-height:1.02;color:#1d2a40}
.gm-print-no{flex:none;padding-top:3px;font:700 12px/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--rust);white-space:nowrap}
.gm-form textarea{min-height:72px}
.gm-ps-shared{margin:0 0 14px}
.gm-nat-row .switch{min-width:0}
.gm-place{margin:4px 0 16px;padding:12px;border:2px dashed rgba(16,28,46,.35);border-radius:10px}
.gm-sub{font:700 16px/1.2 var(--f-label);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px}
.gm-place .field{margin-bottom:12px}
.gm-move{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px}
.gm-move .btn,.gm-more .btn{box-shadow:none}
.gm-more{display:flex;flex-wrap:wrap;gap:8px}
.gm-more .btn{flex:1 1 200px}
.gm-err{margin-top:10px}
/* Manage rolls */
.gm-man-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 6px}
.gm-man-head h2{display:flex;align-items:center;gap:10px;font:400 22px/1.2 var(--f-display);margin:0}
.gm-mrolls{list-style:none;margin:12px 0 16px;padding:0;display:grid;gap:12px}
.gm-mroll{padding:12px;background:var(--white);border:2px solid var(--navy);border-radius:10px;box-shadow:3px 3px 0 var(--navy)}
.gm-mroll.is-hidden{border-style:dashed;box-shadow:none;background:var(--cream)}
.gm-mroll-top{display:flex;align-items:center;gap:10px}
.ticket .gm-mroll-t{flex:1;min-width:0;font:400 20px/1.2 var(--f-display);margin:0}
.gm-shield-ic{color:var(--pine)}
.gm-mroll-info{margin:6px 0 0}
.gm-mroll-note{margin:4px 0 2px;font-size:22px;line-height:1.05;color:var(--rust)}
.gm-addr{display:flex;align-items:center;gap:6px;font-family:var(--f-label);letter-spacing:.03em;word-break:break-all}
.gm-mroll-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.gm-mroll-acts .btn{box-shadow:none}
.gm-mroll-acts .switch{min-width:0}
.gm-r-edit{margin-left:auto}
.gm-add-roll{width:100%}
/* the roll sheet */
.gm-protected{align-items:center}
.gm-protected>.ic{color:var(--pine)}
.gm-npv-lab{margin:8px 0 4px}
.gm-npv{position:relative;width:100%;overflow:hidden;border:2px solid var(--navy);border-radius:8px;background:#F4E7C9}
.gm-npv[data-cut="1"]{border-color:var(--red-d)}
.gm-npv-phone{position:relative;width:390px;padding:14px 16px 16px;transform-origin:0 0}
.gm-npv-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding-left:74px}
.gm-npv-ct{font:700 13px/1 var(--f-label);letter-spacing:.18em;text-transform:uppercase;padding:6px 10px 5px;border:2px solid var(--navy);border-radius:999px;background:#FBF3E1;white-space:nowrap}
.gm-npv-note{font-size:22px;line-height:1;color:var(--rust);transform:rotate(-2deg);white-space:nowrap}
.gm-npv-edge{position:absolute;top:0;bottom:0;right:16px;border-left:2px dashed rgba(194,43,36,.6)}
.gm-npv-msg{margin:6px 0 0}
.gm-npv-msg:empty{display:none}
.gm-icon-row{display:flex;flex-wrap:wrap;gap:8px}
.gm-icon{position:relative;display:grid;place-items:center;width:54px;height:54px;border:2px solid var(--navy);border-radius:10px;background:var(--white);cursor:pointer}
.gm-icon input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.gm-icon .gm-ricon svg{width:26px;height:26px}
.gm-icon:has(input:checked){background:var(--gold);box-shadow:3px 3px 0 var(--navy)}
.gm-icon:has(input:focus-visible){outline:3px solid var(--red-d);outline-offset:3px}
.gm-slug-lock{margin:0}
.gm-del{margin:6px 0 4px;padding-top:12px;border-top:2px dashed rgba(16,28,46,.28)}
/* fix round 1 for M2: why a protected roll's Show switch is off; the photo sheet's conflict sheet */
.gm-show-why{margin:4px 0 0}
.gm-conflict-alt{margin:0 0 12px;padding:8px 12px;border-left:4px solid var(--gold);background:var(--white)}
/* the home page album, drawn in its real shapes */
.gm-album-mode{margin:4px 0 6px}
.gm-album{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin:12px 0 14px;align-items:stretch}
.gm-album-computer{grid-template-columns:repeat(4,minmax(0,1fr))}
.gm-spot{display:flex;flex-direction:column;min-width:0;margin:0;padding:6px 6px 0;background:#FBF3E1;color:var(--navy);border:3px solid var(--navy);
  box-shadow:3px 3px 0 var(--navy);font:inherit;text-align:left;cursor:pointer}
button.gm-spot:hover{box-shadow:4px 4px 0 var(--orange)}
.gm-spot-fig{position:relative;display:flex;flex-direction:column;flex:1;min-width:0}
.gm-spot-pic{display:block;aspect-ratio:4/5;overflow:hidden;border:2px solid var(--navy);background:var(--cream)}
.gm-spot-pic img{width:100%;height:100%;object-fit:cover}
.gm-album .gm-spot-w,.gm-album .gm-spot-p{grid-column:span 2}
.gm-album-phone .gm-spot-w .gm-spot-pic{aspect-ratio:16/9}
.gm-album-phone .gm-spot-p .gm-spot-pic{aspect-ratio:2.2/1}
.gm-album-computer .gm-spot-w .gm-spot-pic,.gm-album-computer .gm-spot-p .gm-spot-pic{aspect-ratio:auto;flex:1 1 0;min-height:0}
.gm-spot-cap{display:flex;flex-direction:column;gap:2px;padding:6px 2px 8px;font:700 12px/1.15 var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.gm-spot-cap i{font-style:normal;color:var(--rust)}
.gm-spot .gm-badge{position:absolute;left:6px;top:6px}
.gm-more-tile{align-items:center;justify-content:center;gap:4px;padding:14px 8px;text-align:center;cursor:default;box-shadow:none;border-style:dashed}
.gm-more-tile b{font:400 44px/.9 var(--f-display);color:var(--red-d)}
.gm-more-tile span{font:700 13px/1.2 var(--f-label);letter-spacing:.12em;text-transform:uppercase}
.gm-album-small{gap:10px 8px;margin:8px 0 4px}
.gm-album-small .gm-spot-cap{font-size:11px;letter-spacing:.08em;padding:4px 1px 6px}
.gm-album-small .gm-more-tile b{font-size:30px}
.gm-home-more{margin-top:4px}
/* the spot sheet */
.gm-ss-info{margin:0 0 10px}
.ml-focus.gm-focus{display:block;width:fit-content;max-width:100%;margin:0 auto 6px}
.gm-focus img{width:auto;max-width:100%;height:auto;max-height:min(44vh,420px)}
.gm-crops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:520px;margin:8px auto 14px;align-items:end}
.gm-crops-w,.gm-crops-p{grid-template-columns:repeat(2,minmax(0,1fr))}
.gm-crop{margin:0;min-width:0}
.gm-crop-box{display:block;overflow:hidden;border:2px solid var(--navy);border-radius:4px;background:var(--cream)}
.gm-crop-box img{width:100%;height:100%;object-fit:cover}
.gm-crop figcaption{margin-top:4px;font:700 13px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);text-align:center}
.gm-ss-tools .btn{box-shadow:none}
/* the gallery words */
.gm-word .gm-word-h{display:block;font:400 21px/1.2 var(--f-display);margin:0 0 4px}
.gm-word-where{margin:0 0 12px}
.gm-outdated .btn{margin-top:8px}
.gm-tokens{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 12px}
.gm-token{display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 12px;margin:0;border:2px solid var(--navy);border-radius:999px;background:var(--cream);
  color:var(--navy);font:600 15px/1 var(--f-label);letter-spacing:.03em;cursor:pointer}
.gm-token:hover{background:var(--gold)}
.gm-token code{font:700 15px/1 Consolas,'Courier New',monospace}
.gm-token-v{color:var(--ink-2)}
.gm-live{margin:0 0 10px;padding:10px 12px;background:var(--white);border:2px solid var(--navy);border-left:6px solid var(--orange);border-radius:8px}
.gm-live-lab{margin:0 0 4px;font:700 13px/1.2 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.gm-live-t{margin:0}
.gm-live-h{font:400 21px/1.2 var(--f-display)}
.gm-word-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.gm-word-acts .btn{box-shadow:none}
.gm-word-st{margin:0;font:600 15px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
/* the bar: "N changes not live yet · Preview · Publish gallery" (above the tab bar on a phone) */
.gallery-mgr .main{padding-bottom:calc(var(--tabbar-h) + var(--gbar-h) + 44px + var(--safe-b))}
.gallery-mgr .toasts{bottom:calc(var(--tabbar-h) + var(--gbar-h) + 14px + var(--safe-b))}
.gbar{position:fixed;left:0;right:0;bottom:calc(var(--tabbar-h) + 3px + var(--safe-b));z-index:28;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  padding:8px var(--gut) 10px;background:var(--paper);color:var(--navy);border-top:3px solid var(--navy);box-shadow:0 -4px 0 var(--orange)}
.gbar-status{flex:1 1 100%;min-width:0;margin:0;font:700 15px/1.25 var(--f-label);letter-spacing:.07em;text-transform:uppercase;color:var(--pine)}
.gbar:not([data-changes="0"]) .gbar-status{color:var(--rust)}
.gbar-acts{display:flex;gap:8px;flex:1 1 100%}
.gbar-acts .btn{flex:0 0 auto;min-width:0;padding:6px 14px}
#gbar-publish{flex:1 1 auto}
.gbar-acts .btn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:720px){
  .gm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .gm-chips{display:flex;flex-wrap:wrap}
  .gm-move{grid-template-columns:repeat(4,minmax(0,1fr))}
  dialog.sheet.gm-print-sheet,dialog.sheet.gm-spot-sheet,dialog.sheet.gm-roll-sheet,dialog.sheet.gm-spot-pick{width:min(680px,calc(100vw - 48px));max-height:calc(100vh - 48px)}
  .gbar{flex-wrap:nowrap}
  .gbar-status{flex:1 1 auto}
  .gbar-acts{flex:0 0 auto}
  .gbar-acts .btn,#gbar-publish{flex:0 0 auto;padding:6px 20px}
  :root{--gbar-h:76px}
}
@media (min-width:1024px){
  .gm-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .gallery-mgr .main{padding-bottom:calc(var(--gbar-h) + 44px)}
  .gallery-mgr .toasts{bottom:calc(var(--gbar-h) + 18px)}
  .gbar{left:var(--sidebar-w);bottom:0;padding:10px 32px}
}
@media (min-width:1280px){
  .gm-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media (forced-colors:active){
  .ticket,.btn,.note{border-color:CanvasText}
}

/* ---------------------------------------------------------------- part M3: the Events screen (plan 5.6) */
.evm-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px}
.evm-head .greet{margin:0}
.evm-add{flex:0 1 auto}
.evm-intro{margin:0 0 16px}
.evm-behind .btn{margin-top:4px}
.evm-sec>h2 .ic{color:var(--rust)}
.evm-arch>summary{display:flex;align-items:center;gap:10px;min-height:48px;margin:-6px 0;cursor:pointer;font:400 22px/1.2 var(--f-display);list-style:none}
.evm-arch>summary::-webkit-details-marker{display:none}
.evm-arch>summary::after{content:"";width:12px;height:12px;margin-left:auto;border-right:3px solid var(--navy);border-bottom:3px solid var(--navy);transform:rotate(45deg) translateY(-4px)}
.evm-arch[open]>summary::after{transform:rotate(225deg) translateY(-2px)}
.evm-arch[open]>summary{margin-bottom:12px}
.evm-arch>summary .ic{color:var(--rust)}
.evm-n{font:600 18px/1 var(--f-label);letter-spacing:.06em;color:var(--ink-2)}
.evm-row{padding:8px 0;gap:10px}
.evm-open,.evm-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:64px;padding:6px 6px 6px 0;margin:0;
  background:none;border:0;border-radius:8px;color:inherit;font:inherit;text-align:left;cursor:pointer}
.evm-main{cursor:default}
.evm-open:hover .evm-title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.evm-stub{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:none;width:72px;min-height:64px;padding:6px 4px;
  border:2px solid var(--navy);border-radius:8px;text-align:center;color:var(--navy);
  background:repeating-linear-gradient(135deg,rgba(16,28,46,.08) 0 8px,transparent 8px 16px),var(--gold)}
.evm-stub-mon{font:700 13px/1 var(--f-label);letter-spacing:.18em;text-transform:uppercase}
.evm-stub-day{font:400 22px/1 var(--f-display);color:var(--red-d);white-space:nowrap}
/* fix round 1 for M3: a same-month range ("24–25") a size smaller, inside the 72 px stub, in the website's deeper range red */
.evm-stub-day.evm-stub-range{font-size:18px;color:#931F1A}
.evm-stub-dow{font:700 11.5px/1.05 var(--f-label);letter-spacing:.08em;text-transform:uppercase}
.evm-row[data-section="past"] .evm-stub,.evm-row[data-section="trash"] .evm-stub{background:var(--cream);opacity:.85}
.evm-row[data-section="trash"]>.evm-stubw{margin-top:6px;margin-bottom:6px}   /* (release review: the stub sits in .evm-stubw since M3b) */
.evm-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.evm-title{font:400 19px/1.2 var(--f-display);overflow-wrap:anywhere}
.evm-star{color:var(--red-d)}
.evm-when{font:700 15px/1.25 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--rust)}
.evm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.evm-chips .chip{min-height:24px;font-size:13px;white-space:normal;text-align:left;line-height:1.15;padding:3px 9px}
.evm-thumb{flex:none;width:64px;height:48px;object-fit:cover;border:2px solid var(--navy);border-radius:4px}
.evm-go{flex:none;color:var(--ink-2)}
.evm-go .ic{transform:rotate(-90deg)}
.evm-restore{flex:none}
.evm-empty .empty{margin:6px 0}
.evm-previews{margin-top:4px}
@media (max-width:420px){.evm-thumb{display:none}}

/* the event sheet: full screen on a phone (an editor: its own sticky action bar), a wide sheet with the preview beside the
   form on a computer */
dialog.sheet.ev-sheet{inset:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;border:0;border-radius:0;box-shadow:none;overflow:auto}
.ev-sheet>.sheet-body{padding:0 var(--gut);min-height:100%;display:flex;flex-direction:column}
.ev-sh-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:0 calc(var(--gut) * -1);padding:10px var(--gut);background:var(--paper);border-bottom:2px solid rgba(16,28,46,.2)}
.ev-sh-head h2{margin:0!important}
.ev-sh-x{box-shadow:none}
.ev-sh-live{margin:10px 0 0}
.ev-sh-grid{flex:1;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:14px 0 18px}
.ev-form .field{margin-bottom:14px}
.ev-dates,.ev-times{display:grid;grid-template-columns:minmax(0,1fr);gap:0 14px}
.ev-multi .switch,.ev-sw .switch{min-width:0}
.ev-times .field{position:relative}
.ev-clear{margin-top:8px;box-shadow:none}
.ev-link{margin:4px 0 16px;padding:12px;border:2px dashed rgba(16,28,46,.35);border-radius:10px;min-width:0}
.ev-link legend{padding:0 6px;margin-left:-6px}
.ev-picks{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.ev-picks .btn{flex:1 1 130px;box-shadow:none}
.ev-book select{max-width:420px}
.ev-book-off{margin-top:8px;box-shadow:none}
.ev-photo{margin:0 0 16px;padding:12px;border:2px dashed rgba(16,28,46,.35);border-radius:10px}
.ev-photo-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px}
.ev-photo-img{width:160px;height:120px;object-fit:cover;border:2px solid var(--navy);border-radius:4px;background:var(--cream)}
.ev-photo-btns{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 200px}
.ev-photo-btns .btn{flex:1 1 180px;box-shadow:none}
.ev-switches{display:grid;gap:4px}
.ev-err{margin-top:8px}
.ev-pv{min-width:0}
.ev-pv-h{font:700 18px/1.2 var(--f-label);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px}
.ev-pv-hint{margin:0 0 8px}
.ev-pv-toggle{order:0;margin:0 0 10px}
.ev-pv-wrap{position:relative;max-width:100%;overflow:hidden;border:3px solid var(--navy);border-radius:10px;background:var(--navy)}
.ev-pv-frame{display:block;border:0;transform-origin:0 0;background:var(--navy)}
.ev-pv-msg{min-height:1.4em}
.ev-sbar{position:sticky;bottom:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;
  margin:auto calc(var(--gut) * -1) 0;padding:10px var(--gut) calc(10px + var(--safe-b));background:var(--navy);color:var(--cream);border-top:3px solid var(--orange)}
.ev-sbar-status{flex:1 1 140px;margin:0;font:600 15px/1.2 var(--f-label);letter-spacing:.06em;text-transform:uppercase}
.ev-sbar-acts{display:flex;gap:10px;flex:1 1 260px;justify-content:flex-end}
.ev-sbar-acts .btn{flex:1 1 0;max-width:260px;border-color:var(--cream);box-shadow:none}
.ev-sbar-acts .btn-primary{background:var(--gold);color:var(--navy)}
@media (min-width:560px){.ev-dates,.ev-times{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-multi{grid-row:span 1}}
@media (min-width:720px){
  dialog.sheet.ev-sheet{inset:0;margin:auto;width:min(1180px,calc(100vw - 48px));height:calc(100vh - 48px);border:3px solid var(--navy);border-radius:14px;
    box-shadow:6px 6px 0 var(--orange)}
}
@media (min-width:1024px){
  .ev-sh-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
  .ev-pv{position:sticky;top:72px;align-self:start}
}
dialog.sheet.ev-conflict .sheet-actions .btn{box-shadow:none}

/* ---------------------------------------------------------------- core review fixes (2026-10-06) */
/* a11y-stable-1: a control that gets the keyboard focus is scrolled clear of the sticky top bar and the fixed bars at the
   bottom (tab bar, Gallery bar, Banner bar, editor bar, the phone's New post button) */
html{scroll-padding-top:calc(var(--topbar-h) + 12px);scroll-padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 12px)}
html:has(body.gallery-mgr){scroll-padding-bottom:calc(var(--tabbar-h) + var(--gbar-h) + var(--safe-b) + 12px)}
html:has(body.banner-ed){scroll-padding-bottom:calc(var(--tabbar-h) + var(--nbbar-h) + var(--safe-b) + 12px)}
html:has(body.editor){scroll-padding-bottom:calc(var(--edbar-h) + var(--safe-b) + 12px)}
@media (max-width:719px){html:has(body.has-fab){scroll-padding-bottom:calc(var(--tabbar-h) + var(--fab-h) + var(--safe-b) + 30px)}}
@media (min-width:1024px){
  html{scroll-padding-bottom:12px}
  html:has(body.gallery-mgr){scroll-padding-bottom:calc(var(--gbar-h) + 12px)}
  html:has(body.banner-ed){scroll-padding-bottom:calc(var(--nbbar-h) + 12px)}
}
/* a11y-stable-7: the focus ring on the navy bars is gold (red on navy is only 2.99:1) */
.edbar :focus-visible,.gm-selbar :focus-visible,.ev-sbar :focus-visible,.ns-bar :focus-visible{outline-color:var(--gold)}   /* (+ .ns-bar: release review, ux-news-events-6) */
/* a11y-stable-8: a date or time field keeps its ring while its calendar / clock button has the focus */
input[type=date]:focus,input[type=time]:focus,input[type=date]:focus-within,input[type=time]:focus-within{outline:3px solid var(--red-d);outline-offset:2px}
/* a11y-stable-10: on narrow phones (320-375 px) the Gallery bar's buttons shrink instead of running off the screen, and the
   roll buttons never break a word in the middle */
.gbar-acts{min-width:0}
.gm-chip-t{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media (max-width:399px){.gm-chip{letter-spacing:.03em;gap:6px;padding-left:8px}}
@media (max-width:379px){.gm-chips{grid-template-columns:minmax(0,1fr)}}
/* a11y-stable-11: at least 8 px between neighbouring touch targets (plan 5.0) */
.tabbar{gap:8px}
.tb,.blk-tools{gap:8px}
.help details+details{margin-top:8px}
.ed-top{gap:8px 14px}

/* ---------------------------------------------------------------- release review fixes (2026-10-07) */
/* ux-news-events-1: the event sheet and the New story sheet scroll themselves (overflow:auto) with a sticky top (the header and,
   on phones, the peek) and a sticky save bar, so their own scroll-padding keeps a control that gets the keyboard focus clear of
   both; fun.js padSheet() writes the bars' measured heights into --sh-top / --sh-bar (the bar wraps to two rows at 320 px, the
   peek exists below 1024 px only) */
dialog.sheet.ev-sheet,dialog.sheet.ns-sheet{scroll-padding:calc(var(--sh-top,84px) + 12px) 0 calc(var(--sh-bar,110px) + 12px)}
/* ux-news-events-5: on phones a trash row wraps: the text gets the width, "Put back" goes under it on its own line */
.evm-trashed{font:600 14px/1.25 var(--f-label);letter-spacing:.04em;color:var(--ink-2)}
@media (max-width:719px){
  .evm-row[data-section="trash"]{flex-wrap:wrap}
  .evm-row[data-section="trash"] .evm-main{flex:1 1 calc(100% - 96px)}
  .evm-row[data-section="trash"] .evm-restore{margin-left:auto}
}
