/* The team page (CMS shell): QARAVAN design system. White page, square corners, ink buttons, colour only as a small mark,
   no coloured stripe on the side or top of anything. Fira Sans / Fira Sans Condensed. */
@font-face{font-family:"Fira Sans Condensed";font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/FiraSansCondensed-Bold.woff2) format("woff2")}
@font-face{font-family:"Fira Sans Condensed";font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/FiraSansCondensed-SemiBold.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/FiraSans-Regular.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/FiraSans-Medium.woff2) format("woff2")}
@font-face{font-family:"Fira Sans";font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/FiraSans-SemiBold.woff2) format("woff2")}
:root{--ink:#333333;--white:#ffffff;--muted:#5e5a53;--line:#ece8de;--edge:#8a857b;--sky:#0099cc;--red:#ff3333;--green:#66cc66;--yellow:#f8f36e;--wash:#f7f5ef;--danger:#b3261e;
  --body:"Fira Sans","Helvetica Neue",Arial,sans-serif;--head:"Fira Sans Condensed","Fira Sans",Arial,sans-serif;--side:248px}
*{box-sizing:border-box} html{-webkit-text-size-adjust:100%; text-size-adjust:100%; touch-action:manipulation}
/* touch screens: no field under 16 px, or iOS zooms in on it and stays zoomed (owner, 2026-11-07) */
@media (pointer:coarse){ .qv-tb-kind select, .pw-caps textarea{font-size:16px} }
body{margin:0;background:var(--white);color:var(--ink);font:400 16px/1.5 var(--body)}
a{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--sky);text-decoration-thickness:2px;text-underline-offset:4px}
h1,h2,h3{font-family:var(--head);font-weight:700;line-height:1.12;margin:0}
h1{font-size:32px} h2{font-size:24px} h3{font-size:19px}
p{margin:0 0 12px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- header ---- */
.top{position:sticky;top:0;z-index:10;background:var(--white);border-bottom:1px solid var(--line)}
.top .bar{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 20px;flex-wrap:wrap}
.top .brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.top .brand img{display:block}
.top .brand strong{font:700 20px/1 var(--head)}
.btn.menu-btn{display:none}
.search{position:relative;flex:1 1 280px;max-width:480px;margin-left:12px}
.search input{width:100%;min-height:40px;padding:6px 10px;border:2px solid var(--edge);border-radius:0;background:var(--white);font:400 16px/1.4 var(--body);color:var(--ink)}
.search .found{position:absolute;left:0;right:0;top:100%;background:var(--white);border:2px solid var(--ink);border-top-width:1px;max-height:60vh;overflow:auto;z-index:12}
.search .found a{display:flex;gap:10px;justify-content:space-between;align-items:baseline;padding:8px 10px;text-decoration:none;border-bottom:1px solid var(--line);font-weight:500}
.search .found a:hover,.search .found a:focus-visible{background:var(--wash)}
.search .found small{color:var(--muted);font-weight:400;white-space:nowrap}
.search .found p{padding:8px 10px;color:var(--muted);margin:0}
.top .spacer{flex:1}
.lang button{border:2px solid var(--ink);background:var(--white);font:600 14px/1 var(--head);padding:8px 10px;cursor:pointer;min-height:36px} .lang button[aria-pressed="true"]{background:var(--ink);color:var(--white)}

/* ---- shell ---- */
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);align-items:start}
.side{position:sticky;top:61px;height:calc(100vh - 61px);overflow:auto;border-right:1px solid var(--line);padding:16px 12px 24px;display:flex;flex-direction:column;gap:2px}
.side .drawer-head{display:none}
.side a.item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:8px 12px;text-decoration:none;font:600 17px/1.2 var(--head);border:2px solid transparent}
.side a.item:hover{background:var(--wash)}
.side a.item[aria-current="page"]{background:var(--ink);color:var(--white)}
.n{display:inline-block;min-width:22px;padding:1px 6px;background:var(--ink);color:var(--white);font:600 13px/1.4 var(--head);text-align:center}
.side a[aria-current="page"] .n{background:var(--white);color:var(--ink)}
.side .me{margin-top:auto;padding:20px 12px 0;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.side .me b{display:block;color:var(--ink);font-weight:600;overflow-wrap:anywhere;font-size:15px}
.side .me .row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.main{padding:28px 32px 80px;max-width:1120px;min-width:0;outline:0}
.main>h1:first-child{margin-bottom:6px}
.lead{max-width:44em;color:var(--muted);margin:0 0 20px}

/* ---- parts ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 16px;border:2px solid var(--ink);background:var(--ink);color:var(--white);font:600 16px/1.15 var(--head);cursor:pointer;text-decoration:none;border-radius:0}
.btn.out{background:var(--white);color:var(--ink)} .btn.sm{min-height:36px;padding:3px 12px;font-size:15px} .btn:disabled{opacity:.5;cursor:default}
.btn.danger{background:var(--white);color:var(--danger);border-color:var(--danger)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
label{display:block;font-weight:600;font-size:15px;margin-bottom:4px}
input[type=text],input[type=email],input[type=number],input[type=search],input[type=date],select,textarea{width:100%;max-width:420px;min-height:44px;padding:8px 10px;border:2px solid var(--edge);border-radius:0;background:var(--white);font:400 16px/1.4 var(--body);color:var(--ink)}
textarea{max-width:640px;min-height:96px}
.field{margin:0 0 16px} .hint{font-size:14px;color:var(--muted);margin:4px 0 0} .err{color:var(--danger);font-weight:600;font-size:15px}
.check{display:flex;gap:8px;align-items:center;font-weight:400;min-height:32px} .check input{width:22px;height:22px;accent-color:var(--ink)}
table{border-collapse:collapse;width:100%;font-size:15px} th,td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
th{font:600 14px/1.2 var(--head);color:var(--muted);letter-spacing:.02em}
td .acts{display:flex;gap:6px;flex-wrap:wrap}
.scroll{overflow-x:auto}
.stats{display:flex;gap:28px;flex-wrap:wrap;margin:12px 0 24px} .stats div b{display:block;font:700 30px/1 var(--head)} .stats div span{font-size:14px;color:var(--muted)}
.cols{display:grid;gap:32px} .cols>div{min-width:0} @media (min-width:1100px){ .cols{grid-template-columns:2fr 1fr} }
.box{border:1px solid var(--line);padding:16px 18px;margin-bottom:24px} .box h3{margin-bottom:12px}
.when{font-size:14px;color:var(--muted)} .muted{color:var(--muted)}
.status{display:inline-block;padding:1px 8px;font:600 13px/1.5 var(--head);border:1px solid var(--edge)}
.status.going{background:var(--ink);color:var(--white);border-color:var(--ink)} .status.pending{background:var(--yellow);border-color:var(--yellow)}
.status.declined,.status.cancelled{color:var(--muted)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px} .filters button,.chip{border:1px solid var(--edge);background:var(--white);padding:6px 12px;min-height:36px;font:600 14px/1.3 var(--head);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--white);border-color:var(--ink)}
.empty{color:var(--muted);padding:12px 0}
.toast{position:fixed;right:20px;bottom:84px;background:var(--ink);color:var(--white);padding:10px 16px;font-weight:600;z-index:30;max-width:92vw}
dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 20px;margin:0} dl.kv dt{color:var(--muted)} dl.kv dd{margin:0;overflow-wrap:anywhere}
.ts{min-height:0}
.section{margin:36px 0 0} .section>h2{margin-bottom:6px} .section>.lead{margin-bottom:14px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.card{display:block;border:1px solid var(--line);padding:16px 18px;text-decoration:none;font-weight:400;background:var(--white)}
a.card:hover{background:var(--wash)} .card b{display:block;font:700 19px/1.2 var(--head);margin-bottom:4px} .card span{color:var(--muted);font-size:15px}
.wait{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap;border:1px solid var(--line);padding:14px 18px;margin-bottom:10px}
.wait .what{display:flex;gap:12px;align-items:center;font-weight:600}
.wait .n{font-size:16px;padding:2px 9px}
.wait .wacts{display:flex;gap:8px;flex-wrap:wrap}
.short{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}
.short a.btn{min-height:64px;font-size:18px;justify-content:flex-start;padding:10px 18px;text-align:left}
.sent{margin:0 0 12px;padding:12px 14px;background:var(--wash);overflow-wrap:anywhere;white-space:pre-wrap;font-size:18px}
.rows{list-style:none;margin:0;padding:0} .rows li{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)} .rows .when{white-space:nowrap}
.role-help{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))} .role-help div{border:1px solid var(--line);padding:12px 14px} .role-help b{display:block;font:700 18px/1.2 var(--head);margin-bottom:4px} .role-help ul{margin:6px 0 0;padding-left:18px;font-size:14px;color:var(--muted)}
.filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:0 0 16px} .filterbar .field{margin:0} .filterbar select,.filterbar input{max-width:220px} #a-tz{margin:-8px 0 16px}
dialog{border:2px solid var(--ink);padding:22px 24px;max-width:min(520px,94vw);color:var(--ink);font:400 16px/1.5 var(--body)}
dialog::backdrop{background:rgba(51,51,51,.45)} dialog h3{margin-bottom:8px} dialog .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.dim{opacity:.55}

/* ---- phones ---- */
@media (max-width:900px){
  .shell{display:block}
  .btn.menu-btn{display:inline-flex}
  .top .bar{padding:0 16px;gap:10px}
  .search{order:5;flex:1 1 100%;max-width:none;margin:0 0 10px}
  .top .spacer{display:none}
  .stack td[data-l]::before{content:attr(data-l) ": ";color:var(--muted)}
  .lang{margin-left:auto}
  .side{position:fixed;inset:0;top:0;z-index:20;height:auto;background:var(--white);border:0;padding:0 16px 24px;transform:translateX(-100%);visibility:hidden;transition:transform .18s ease,visibility 0s .18s}
  body.menu-open .side{transform:none;visibility:visible;transition:transform .18s ease}
  .side .drawer-head{display:flex;align-items:center;justify-content:space-between;min-height:60px;margin-bottom:8px;border-bottom:1px solid var(--line)}
  .side a.item{font-size:20px;min-height:52px}
  .main{padding:20px 16px 72px}
  h1{font-size:28px}
  .short{grid-template-columns:repeat(2,minmax(0,1fr))}
  .role-help{grid-template-columns:minmax(0,1fr)}
  .stats{gap:18px} .stats div b{font-size:24px}
  .rows .when{white-space:normal}
  dl.kv{grid-template-columns:minmax(0,1fr)} dl.kv dt{margin-top:6px}
  .stack thead{display:none} .stack tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .stack td{border:0;padding:0;overflow-wrap:anywhere} .stack td:last-child{grid-column:2;grid-row:1/span 4}
}
@media (max-width:480px){ .top .brand strong{display:none} }
@media (max-width:640px){ .guests thead{display:none} .guests tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .guests td{border:0;padding:0;overflow-wrap:anywhere} .guests td:last-child{grid-column:2;grid-row:1/span 5} }
body.signedout .side,body.signedout .search,body.signedout .btn.menu-btn{display:none}
body.signedout .shell{display:block}
body.signedout .main{max-width:640px;margin:0 auto}
@media (max-width:900px){ .stack.flow tr{display:block} .stack.flow td{display:block;padding:2px 0} .stack.flow td:last-child{grid-column:auto;grid-row:auto} }
@media (prefers-reduced-motion:reduce){ .side{transition:none !important} }

/* ---- content screens: forms, lists, pickers (forms.js, content.js) ---- */
.crumb{margin:0 0 10px;font-size:15px}
.edhead{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.edhead h1{min-width:0;overflow-wrap:anywhere}
.unsaved{display:inline-block;padding:2px 10px;border:2px solid var(--ink);font:600 14px/1.4 var(--head)}
.note{max-width:44em;margin:0 0 16px;padding:10px 14px;background:var(--wash)}
.edtools{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.edgrid{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:28px;align-items:start}
.edgrid:not(:has(.edlist)){grid-template-columns:minmax(0,1fr)}
.edlist{position:sticky;top:76px;max-height:calc(100vh - 160px);overflow:auto;padding-right:4px}
.lrows{list-style:none;margin:0;padding:0}
.lrow{display:flex;gap:6px;align-items:stretch;border-bottom:1px solid var(--line)}
.lrow.over{background:var(--wash)} .lrow.dragging{opacity:.5}
.rowbtn{flex:1;min-width:0;display:flex;gap:10px;align-items:center;text-align:left;border:2px solid transparent;background:var(--white);padding:8px 6px;font:400 15px/1.3 var(--body);color:var(--ink);cursor:pointer;min-height:56px}
.rowbtn:hover{background:var(--wash)} .rowbtn[aria-current="true"]{border-color:var(--ink)}
.rowbtn .rt{display:flex;flex-direction:column;min-width:0;gap:2px} .rowbtn b{font:600 16px/1.25 var(--head);overflow-wrap:anywhere} .rowbtn small{color:var(--muted);font-size:14px}
.flag{font-style:normal;font:600 13px/1.4 var(--head);color:var(--danger)}
.mv{display:flex;flex-direction:column;gap:2px;justify-content:center} .mv .btn{min-height:28px;padding:0 8px}
.th{width:48px;height:48px;object-fit:cover;flex:none;background:var(--line);display:block} .th.big{width:120px;height:90px} .th.news{width:96px;height:64px;object-fit:contain} .th.none{display:inline-block}
.edpane{min-width:0} .phead{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 12px} .phead h2{flex:1;min-width:0;overflow-wrap:anywhere}
.backbtn{display:none}
.ltabs{display:flex;gap:0;margin:0 0 16px;flex-wrap:wrap} .ltabs button{border:2px solid var(--ink);background:var(--white);color:var(--ink);padding:6px 14px;min-height:40px;font:600 15px/1.2 var(--head);cursor:pointer;margin-right:-2px}
.ltabs button[aria-selected="true"]{background:var(--ink);color:var(--white)}
.field .lbl{font-weight:600;font-size:15px;margin-bottom:4px} .req{font-weight:400;font-size:13px;color:var(--muted)}
.field.sub{border:1px solid var(--line);padding:12px 14px} .field.sub .field{margin-bottom:12px}
.ctl{margin:0 0 8px;max-width:640px} .ctl .lt{display:inline-block;font:600 13px/1.4 var(--head);color:var(--muted);margin-bottom:2px}
.edpane input[type=text],.edpane input[type=search]{max-width:640px} .edpane select{max-width:420px}
.fmsg:empty,.fwarn:empty{display:none} .fmsg{margin:4px 0 0} .fwarn{color:#7a5200}
.count{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.datewrap{display:flex;gap:8px;align-items:center} .datewrap input[type=text],.datewrap input[type=date]:not(.pick){max-width:200px} .datewrap .pick{width:52px;min-width:52px;padding:0}
.slugwrap{display:flex;align-items:center;gap:0;max-width:640px} .slugwrap .pre{padding:10px 8px 10px 10px;border:2px solid var(--edge);border-right:0;background:var(--wash);font-size:14px;color:var(--muted);white-space:nowrap} .slugwrap input{flex:1;min-width:0}
.swatches,.chips{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 12px}
.sw,.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:4px 12px 4px 6px;border:2px solid var(--edge);background:var(--white);font:600 15px/1.2 var(--head);cursor:pointer;color:var(--ink)}
.chip{padding:4px 12px} .sw i{display:block;width:30px;height:30px;border:1px solid rgba(0,0,0,.25)}
.fixedsw{display:flex;align-items:center;gap:10px;margin:4px 0 12px;font-size:15px;line-height:1.4}
.fixedsw i{flex:none;display:block;width:30px;height:30px;border:1px solid rgba(0,0,0,.25)}
.sw.on,.chip.on{border-color:var(--ink);background:var(--wash);box-shadow:inset 0 0 0 1px var(--ink)}
.imgc{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;margin:2px 0 6px} .logoprev{display:flex;align-items:center;justify-content:center;width:140px;height:70px;border:1px solid var(--line);background:var(--white)} .logoprev img{max-width:120px;max-height:56px;object-fit:contain}
.prow{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px} .prow textarea{flex:1;max-width:640px;min-height:76px} .prow .btn{min-height:44px;min-width:44px;padding:0}
.ilist,.llist{list-style:none;margin:0 0 10px;padding:0}
.irow{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)} .irow .icap{flex:1;min-width:0} .capc{margin-bottom:6px} .capc label{font-weight:400;font-size:14px}
.acts{display:inline-flex;gap:4px;flex:none} .acts .btn{min-width:36px;padding:0 8px}
.litem{border:1px solid var(--line);margin-bottom:12px} .lhead{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--wash)} .lhead strong{font:600 16px/1.3 var(--head);overflow-wrap:anywhere;min-width:0} .lbody{padding:12px 14px 2px}
.srow{display:flex;gap:6px;align-items:center;margin-bottom:6px} .srow input{flex:1;min-width:0}
details.adv{border-top:1px solid var(--line);margin:20px 0 8px;padding-top:8px} details.adv>summary{cursor:pointer;font:600 15px/1.4 var(--head);min-height:36px;display:flex;align-items:center}
.delrow{margin-top:28px}
.savebar{position:sticky;bottom:0;display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--white);border-top:1px solid var(--line);padding:12px 0;margin-top:24px;z-index:5}
.smsg{font-weight:600;min-width:0;overflow-wrap:anywhere} .smsg.bad{color:var(--danger)} .okmsg{font-weight:600}
.devnote{margin-top:6px;font-weight:400;font-size:14px;color:var(--muted)}
.cover .drawn{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;margin:4px 0 8px} .cvimg{width:260px;max-width:100%;height:auto;outline:1px solid var(--line);outline-offset:-1px}
.nprev{display:grid;place-items:center;width:240px;aspect-ratio:4/3;margin:6px 0 10px;font:700 18px/1.2 var(--head);text-align:center;padding:10px}
.nlist{list-style:none;margin:0;padding:0} .nrow{border-bottom:1px solid var(--line)} .nlink{display:flex;gap:14px;align-items:center;padding:12px 4px;text-decoration:none;font-weight:400;color:var(--ink)} .nlink:hover{background:var(--wash)}
.nlink .rt{display:flex;flex-direction:column;gap:3px;min-width:0} .nlink b{font:600 18px/1.25 var(--head);overflow-wrap:anywhere} .nlink small{color:var(--muted);font-size:14px}
.badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap} .lb{display:inline-block;padding:0 7px;font:600 12px/1.6 var(--head);background:var(--ink);color:var(--white)} .lb.off{background:var(--white);color:var(--muted);border:1px solid var(--edge)}
.card .clink{text-decoration:none;display:block} .card .cnt{display:block;margin-top:6px;color:var(--muted);font-size:14px} .card .cfoot{margin:12px 0 0;display:flex;gap:8px;flex-wrap:wrap}
.card span{display:block}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px} .pgrid.big{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
/* A tile of the photo library (forms.js tileHtml): thumbnail, title, date. The "i" (and hovering) shows the date and the event or album. Ink and line only. */
.pcell{position:relative;border:1px solid var(--line);background:var(--white);min-width:0}
.pcell:hover,.pcell:focus-within{border-color:var(--ink)}
.pbtn{display:flex;flex-direction:column;gap:6px;width:100%;margin:0;padding:4px 4px 8px;border:0;background:none;text-align:left;cursor:pointer;color:var(--ink);font:400 13px/1.3 var(--body);min-width:0}
.pbtn:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.pbtn img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;background:var(--line)}
.pbtn .pt{font:600 14px/1.25 var(--head);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;padding:0 2px;min-height:2.5em}
.pbtn .pd{color:var(--muted);font-size:12px;padding:0 2px;overflow-wrap:anywhere}
.pinfo{position:absolute;z-index:2;top:6px;right:6px;width:44px;height:44px;padding:0;border:1px solid var(--ink);background:var(--white);color:var(--ink);font:700 15px/1 var(--head);cursor:pointer}
.pinfo:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.pdet{display:none;position:absolute;z-index:1;left:4px;right:4px;top:4px;padding:10px 46px 10px 10px;background:var(--ink);color:var(--white);font:400 12px/1.4 var(--body);max-height:calc(100% - 8px);overflow:hidden;pointer-events:none;overflow-wrap:anywhere}
.pdet b{font-weight:600}
.pcell.info .pdet{display:block} @media (hover:hover){ .pcell:hover .pdet{display:block} }   /* a tap never leaves the panel stuck open on a phone */
.pcell em{position:absolute;top:8px;left:8px;background:var(--ink);color:var(--white);font:600 12px/1.5 var(--head);padding:0 6px;font-style:normal;pointer-events:none}
.pcell.info em,.pcell.on em{display:none} @media (hover:hover){ .pcell:hover em{display:none} }
.pcell.logo .uptile{min-height:0;height:84px;padding:6px} .pcell.logo .uptile img{max-height:72px}
.pchips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px} .pchip{border:1px solid var(--ink);background:var(--white);color:var(--ink);padding:4px 14px;min-height:44px;font:600 15px/1.2 var(--head);cursor:pointer} .pchip[aria-pressed="true"]{background:var(--ink);color:var(--white)}
/* The upload box (forms.js uploadBox): a drop zone, then a preview on a light checker tile (a switch makes it dark, so a clear background is never mistaken for black). */
.upzone{border:2px dashed var(--edge);padding:20px 16px;text-align:center;background:var(--white)} .upzone.over{border-color:var(--ink);background:var(--wash)} .upzone:focus-within{outline:2px solid var(--ink);outline-offset:2px}
.uplead{font:600 18px/1.3 var(--head);margin:0 0 10px} .upzone .hint{margin:8px 0 0}
.upwork{margin-top:14px} .upwork .hint{margin:6px 0 8px}
.chk{background:conic-gradient(#e6e3da 25%,#ffffff 0 50%,#e6e3da 0 75%,#ffffff 0) 0 0/16px 16px;border:1px solid var(--line)}
.chk.dark{background:conic-gradient(#4a4a4a 25%,#333333 0 50%,#4a4a4a 0 75%,#333333 0) 0 0/16px 16px;border-color:var(--ink)}
.uptile{display:flex;align-items:center;justify-content:center;min-height:120px;padding:10px} .uptile img{max-width:100%;max-height:240px;display:block}
.pdfmark{display:inline-block;border:2px solid var(--ink);padding:10px 16px;font:700 20px/1 var(--head);background:var(--white);color:var(--ink)}
dialog.picker{width:min(960px,96vw);max-height:92vh;padding:16px 18px;overflow:auto} .pk-head{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:12px}
.pk-tabs{display:flex;margin-bottom:14px} .pk-tabs button{border:2px solid var(--ink);background:var(--white);padding:6px 14px;min-height:40px;font:600 15px/1.2 var(--head);cursor:pointer;margin-right:-2px} .pk-tabs button[aria-selected="true"]{background:var(--ink);color:var(--white)}
.pk-body .pgrid{max-height:56vh;overflow:auto}
/* several photos at once (a year, an event) and the Event albums tab (Google Photos) */
.pcell.on{outline:3px solid var(--ink);outline-offset:-3px} .pcell.on::after{content:"✓";position:absolute;top:6px;left:6px;width:26px;height:26px;display:grid;place-items:center;background:var(--ink);color:var(--white);font:700 15px/1 var(--head);pointer-events:none}
.pk-foot{position:sticky;bottom:-16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px -18px -16px;padding:12px 18px;background:var(--white);border-top:1px solid var(--line)} .pk-foot[hidden]{display:none}
.pk-ferr:empty{display:none} .palbs{margin-bottom:14px} .palb{display:flex;flex-direction:column;text-align:left;border:1px solid var(--line);background:var(--white);padding:0;cursor:pointer;min-width:0;font:inherit;color:inherit}
.palb:hover,.palb:focus-visible{border-color:var(--ink)} .palb img,.palb-x{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--line)} .palb .pt{padding:6px 8px 0;font-weight:600} .palb .pd{padding:0 8px 8px}
.palbh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px} .pcell.pg{padding:0;cursor:pointer} .pcell.pg img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
#pk-g h4{margin:6px 0 8px}
@media (max-width:600px){ .pk-foot{bottom:calc(-12px - env(safe-area-inset-bottom));margin:12px -14px -12px;padding:12px 14px calc(12px + env(safe-area-inset-bottom))} .pk-foot .btn{min-height:44px;flex:1} .palbh .btn{min-height:44px} }
@media (max-width:600px){
  dialog.picker{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom))}
  .pk-body .pgrid{max-height:none;overflow:visible}
  .pgrid,.pgrid.big{grid-template-columns:repeat(2,minmax(0,1fr))}
  .upzone{padding:16px 12px}
}
dialog.panel .pp{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px} .ppimg{position:relative;cursor:crosshair;line-height:0} .ppimg img{width:100%;height:auto;display:block}
.cross{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border:3px solid var(--white);box-shadow:0 0 0 2px var(--ink);pointer-events:none}
dialog.panel h4{font:700 16px/1.2 var(--head);margin:14px 0 6px} dialog.panel ul{margin:0 0 8px;padding-left:18px}
.box.upl>summary{cursor:pointer;font:700 18px/1.3 var(--head);min-height:40px;display:flex;align-items:center} .box.upl[open]>summary{margin-bottom:12px}
.hist table{font-size:14px}
@media (max-width:900px){
  .edgrid{display:block}
  .edgrid[data-view="list"] .edpane{display:none} .edgrid[data-view="item"] .edlist{display:none}
  .edgrid:not(:has(.edlist)) .edpane{display:block !important}
  .backbtn{display:inline-flex}
  .edlist{position:static;max-height:none}
  .savebar{padding:10px 0 calc(10px + env(safe-area-inset-bottom))}
  .savebar .btn{min-width:120px}
  dialog.panel .pp{grid-template-columns:minmax(0,1fr)}
  .th.news{width:84px;height:56px}
  .irow{flex-wrap:wrap}
  .cvimg{width:100%}
}
@media (max-width:640px){ .slugwrap{flex-wrap:wrap} .slugwrap .pre{border-right:2px solid var(--edge);width:100%} .ctl{max-width:none} }

[hidden]{display:none !important}
input[type=date].pick{width:48px;min-width:48px;padding:0;color:transparent;cursor:pointer} input[type=date].pick::-webkit-datetime-edit{display:none} input[type=date].pick::-webkit-calendar-picker-indicator{margin:0 auto;cursor:pointer}
@media (max-width:900px){ .phead h2{flex:1 1 100%;order:3} }

/* ---- events and pages (events.js, pages.js) ---- */
.evmode{margin:-6px 0 14px;color:var(--muted)} .evmode a{margin-left:6px}
.evtabs{display:flex;gap:0;flex-wrap:wrap;margin:0 0 22px;border-bottom:2px solid var(--ink)}
.evtabs a{display:flex;align-items:center;min-height:44px;padding:6px 16px;text-decoration:none;font:600 16px/1.2 var(--head);border:2px solid transparent;border-bottom:0;margin-bottom:-2px}
.evtabs a:hover{background:var(--wash)} .evtabs a[aria-current="page"]{background:var(--ink);color:var(--white)}
.drow{display:flex;gap:8px;align-items:center;margin-bottom:8px} .drow input[type=date]{max-width:220px}
.parow{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px} .parow textarea{flex:1;max-width:640px;min-height:76px} .parow .btn{min-height:44px}
.qcard{margin-bottom:16px} .qhead{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:12px} .qhead h4{font:700 18px/1.25 var(--head);margin:0;min-width:0;overflow-wrap:anywhere} .qlab{font-weight:600}
.srow input[type=text]{max-width:none}
.lp[hidden]{display:none !important}
.status.published{background:var(--white)} .status.draft{background:var(--wash);border-style:dashed} .status.test{border-style:dashed;color:var(--muted)} .status.cancelled{text-decoration:line-through}
.edhead .status{align-self:center}
.devnote summary{cursor:pointer}
.crumb a{font-weight:600}
/* ---- Pages: one row for each page; on a phone each row is a card. Chips never break inside a word; sentences wrap in full. ---- */
.pgtop{display:flex;gap:12px 24px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap} .pgtop>div{flex:1 1 32em;min-width:0} .pgtop .btn{flex:none}
.pgroup{margin:34px 0 0} .pghead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:6px} .pghead h2{font-size:24px} .pghead .when{margin:0}
.pgnote{max-width:46em;margin:0 0 8px;font-size:15px;color:var(--muted)}
.plist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pgrow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head act" "body body";gap:8px 20px;align-items:start;padding:16px 0 18px;border-bottom:1px solid var(--line)}
.pgrow.here{background:var(--wash);margin:0 -12px;padding-left:12px;padding-right:12px} .pgrow .ptitle:focus{outline:none} .pgrow .pgmain{grid-area:head;min-width:0} .pgrow .pgact{grid-area:act} .pgrow .pgbody{grid-area:body;min-width:0;display:flex;flex-direction:column;gap:12px}
.ptitle{font:700 20px/1.25 var(--head);margin:0 0 4px;overflow-wrap:break-word}
.pmeta{display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center;margin-top:4px} .pmeta .when{margin:0}
.pgrow .lb,.pgrow .vchip{white-space:nowrap;flex:none} a.plb{text-decoration:none;color:var(--white);font-weight:600} a.plb:hover{text-decoration:underline}
.pgact{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end}
.pnote{max-width:46em;margin:6px 0 0;font-size:15px;color:var(--muted);overflow-wrap:break-word}
.pph{display:flex;gap:14px;align-items:center;flex-wrap:wrap} .pph img{width:112px;height:75px;object-fit:cover;display:block;background:var(--wash);flex:none}
.pcards{display:flex;gap:12px;flex-wrap:wrap}
.lcard{flex:1 1 240px;max-width:380px;min-width:0;border:1px solid var(--line);padding:12px 14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.lcard.fixed{max-width:46em;flex-basis:100%}
.lchead{display:flex;flex-direction:column;gap:0;min-width:0} .lchead b{font:700 17px/1.25 var(--head);overflow-wrap:break-word} .lchead .when{margin:0}
.lthumbs{display:flex;gap:4px;align-items:center;flex-wrap:wrap} .lthumbs img{width:40px;height:40px;object-fit:cover;flex:none;background:var(--wash)} .lthumbs img.logo{object-fit:contain;background:var(--white);border:1px solid var(--line);padding:3px} .lthumbs .more{font-size:13px;color:var(--muted);white-space:nowrap}
.pfilter{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:0 0 6px}
.pfilter .field{margin:0;flex:1 1 260px}
details.rmenu{position:relative} details.rmenu>summary{list-style:none} details.rmenu>summary::-webkit-details-marker{display:none}
.rpop{position:absolute;right:0;top:100%;margin-top:4px;z-index:6;background:var(--white);border:2px solid var(--ink);padding:12px 14px;width:min(320px,86vw);text-align:left}
dialog.pdlg{width:min(540px,94vw);max-height:92vh;overflow:auto} dialog.pdlg fieldset{border:0;padding:0;margin:0 0 16px;min-width:0} dialog.pdlg legend{padding:0}
dialog.pdlg input[type=text],dialog.pdlg select{max-width:none} dialog.pdlg ul{margin:0 0 8px;padding-left:18px} dialog.pdlg .field{margin-bottom:12px} dialog.pdlg .langs{display:flex;gap:6px 24px;flex-wrap:wrap}
dialog.pdlg .acts{position:sticky;bottom:-22px;margin:8px -24px -22px;padding:12px 24px 22px;background:var(--white);border-top:1px solid var(--line)}
.pmsg{min-height:1.5em;margin:8px 0 0;font-size:15px;scroll-margin-bottom:96px} .pmsg.bad{color:var(--danger);font-weight:600}
@media (max-width:900px){ .drow input[type=date]{max-width:none;flex:1} .parow{flex-wrap:wrap} .evtabs a{flex:1 1 auto;justify-content:center} }
@media (max-width:700px){ .pgrow{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "act" "body";gap:10px;padding:16px 0 20px} .pgact{justify-content:flex-start} .pgact>.btn,.pgact summary.btn,.lcard .btn,.pph .btn{min-height:44px;padding:6px 16px}
  .pgtop .btn,.pgtop>div{flex:1 1 100%} .pgtop #pg-new{width:100%;margin-bottom:8px} .lcard{flex-basis:100%;max-width:none} .rpop{left:0;right:auto} .pph img{width:96px;height:64px}
  dialog.pdlg{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0} a.plb{padding:4px 11px;min-height:28px;display:inline-flex;align-items:center} }
@media (max-width:640px){ .guests tr{display:block;padding:12px 0} .guests td{display:block;padding:2px 0} .guests td:last-child{grid-column:auto;grid-row:auto;margin-top:8px} .guests td .acts{display:flex;flex-wrap:wrap} .guests td[data-l]::before{content:attr(data-l) ": ";color:var(--muted)} }
input[type=time]{width:100%;max-width:220px;min-height:44px;padding:8px 10px;border:2px solid var(--edge);border-radius:0;background:var(--white);font:400 16px/1.4 var(--body);color:var(--ink)}

@media(max-width:700px){.toast{left:16px;right:16px;bottom:84px;text-align:center}}

/* ---- the article editor (article.js): a news post on a page that looks like the post on qaravan.org ----
   The rules inside .art are the site's own (site/index.html: .na-head, .na-body, .h-display, .lead, .prose, .na-fig, .na-sec, .na-gal, .vq, .about-box, .btn),
   scoped so the rest of the team page keeps its look. */
.art-top{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 12px} .art-top .hint{margin:0;max-width:44em}
.art{--gut:32px;--sec:120px;max-width:826px;margin:0 auto 28px;border:1px solid var(--line);background:#fff;color:var(--ink);font:400 17px/1.55 var(--body);-webkit-font-smoothing:antialiased}
.art h1,.art h2,.art p,.art figure,.art blockquote{margin:0}
.art img{display:block;max-width:100%}
.art .wrap{padding:0 var(--gut)}
.art section{padding-block:calc(var(--sec) / 2)}
.art .na-head{padding-bottom:0} .art .na-head .wrap{display:grid;gap:14px}
.art .when{display:block;font:500 14px/1.3 var(--body);color:var(--muted)}
.art .h-display{font:700 30px/1.08 var(--head);letter-spacing:-.006em;text-wrap:balance}
.art .h-title{font:700 24px/1.12 var(--head);letter-spacing:-.005em;text-wrap:balance}
.art .h-card{font:700 20px/1.15 var(--head);letter-spacing:-.003em;text-wrap:balance}
.art .lead{font:400 18px/1.55 var(--body);max-width:36em;color:var(--ink)}
@media (min-width:720px){ .art .h-display{font-size:40px} .art .h-title{font-size:28px} .art .lead{font-size:19px} }
@media (max-width:719px){ .art{--gut:16px;--sec:64px;margin-left:-16px;margin-right:-16px;border-left:0;border-right:0} }
.art .na-fig{margin:0 0 32px} .art .na-fig img{width:100%;height:auto;max-height:80vh;object-fit:contain;background:var(--line)}
.art .na-fig figcaption{margin-top:8px;font-size:14px;color:var(--muted)}
.art .na-fig.na-tpl{margin:8px 0 0} .art .na-fig img.na-share{max-height:none;aspect-ratio:1200/630;object-fit:cover;background:none;outline:1px solid var(--line);outline-offset:-1px}
.art .na-sec{margin:40px 0 8px}
.art .na-gal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 10px} .art .na-gal img{width:100%;aspect-ratio:1;object-fit:cover}
@media (min-width:720px){ .art .na-gal{grid-template-columns:repeat(4,minmax(0,1fr))} }
.art .na-gal.two{grid-template-columns:repeat(2,minmax(0,1fr))} .art .na-gal.two img{aspect-ratio:4/3}
.art .vq{display:grid;gap:14px;align-content:start;padding-top:20px;border-top:1px solid var(--line)} .art .vq.na-q{margin:48px 0 32px}
.art .vq blockquote p{font:600 22px/1.35 var(--head);text-wrap:pretty} .art .vq figcaption{font:500 15px/1.4 var(--body);color:var(--muted)}
.art .about-box{margin:40px 0 32px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:8px;color:var(--muted)} .art .about-box h2{color:var(--ink)}
.art .sbtn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:10px 22px;border:2px solid var(--ink);background:var(--ink);color:var(--white);font:600 19px/1.15 var(--head);letter-spacing:.01em;cursor:pointer;max-width:100%}
.art .sbtn svg{width:14px;height:14px;flex:none}
/* the text: body paragraphs as .prose (18px, 18px apart, 40em), section texts as plain paragraphs */
.art-flow{outline:0;caret-color:var(--ink);min-height:3em}
.art-flow .art-b{max-width:40em;font-size:18px;line-height:1.6;margin:0 0 18px} .art-flow .art-b.lastb{margin-bottom:32px}
.art-flow .art-s{font-size:17px;line-height:1.55}
.art-flow .art-x{margin-top:12px}
.art [contenteditable="true"]{cursor:text;outline:0;overflow-wrap:break-word}
.art [contenteditable="true"]:empty::before{content:attr(data-ph);color:var(--edge);pointer-events:none}
.art-flow>[data-k]:empty::before,.art-flow>[data-k]:has(>br:only-child)::before{content:attr(data-ph);color:var(--edge);pointer-events:none}
.art [data-f]:hover,.art [data-cap]:hover,.art [data-gcap]:hover,.art-flow>[data-k]:hover{background:var(--wash)}
.art [data-f]:focus,.art [data-cap]:focus,.art [data-gcap]:focus{outline:3px solid var(--sky);outline-offset:3px;background:none}
.art-flow:focus-within>[data-k]{caret-color:var(--ink)}
.art [data-f].bad{outline:3px solid var(--danger);outline-offset:3px}
.art-m{margin:6px 0 0} .art .fwarn{margin:4px 0 0}
.art-slot{min-width:0}
/* notes beside blocks (not part of the text) */
.art-note{margin:-8px 0 14px;max-width:40em;padding:6px 10px;font:500 14px/1.4 var(--body);color:var(--muted);background:var(--wash);cursor:default;user-select:none;-webkit-user-select:none}
.art-note.err{color:var(--danger);font-weight:600;background:#fff;outline:2px solid var(--danger);outline-offset:-2px} .art-note.warn{color:#7a5200}
.art-flow .art-x+.art-note{margin-top:-4px}
/* photos in the text: click one to change or remove it */
.art-photo{display:block;width:100%;padding:0;border:0;background:var(--line);cursor:pointer;position:relative;font:inherit;color:inherit}
.art-photo:hover::after,.art-photo:focus-visible::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 3px var(--ink)}
.art-photo.wide.empty{min-height:150px;display:grid;place-items:center;padding:20px;background:#fff;border:2px dashed var(--edge);font:500 15px/1.4 var(--body);color:var(--muted);text-align:center}
.art-ph{min-width:0} .art-isl{margin:8px 0 10px;min-width:0} .art-isl .na-gal{margin:0 0 8px}
.art-fnote{font:400 14px/1.4 var(--body);color:var(--muted)}
.art .na-fig.na-tpl .art-fnote{margin-top:8px}
.art .about-box{user-select:none} .art-about-note{margin:-20px 0 32px;max-width:40em} .art-about-note[hidden]{display:none}
.art .crumbs{font:600 15px/1.3 var(--body);margin-bottom:8px}
.art .go{display:inline-flex;align-items:center;gap:8px;color:inherit;font:600 18px/1.2 var(--head);letter-spacing:.01em;text-decoration:underline;text-decoration-color:var(--sky);text-decoration-thickness:2px;text-underline-offset:5px}
.art .go:hover{text-decoration-color:currentColor;text-decoration-thickness:3px} .art .go svg{width:14px;height:14px;flex:none}
.art .more-link{margin-top:24px;font-size:17px}
/* the sticky bar and the Save bar never cover the line being typed in */
html:has(.art){scroll-padding-top:calc(var(--hh,61px) + 76px);scroll-padding-bottom:96px} .art [data-f],.art [data-cap],.art-flow>[data-k]{scroll-margin-top:calc(var(--hh,61px) + 76px);scroll-margin-bottom:96px}
.art-lab{margin:0 0 4px;font:600 13px/1.3 var(--body);color:var(--muted);letter-spacing:.02em} .art-lab-hint{margin:0 0 6px;max-width:40em}
.art-labeled{margin-top:4px}
/* the headline of a post whose picture carries it: the site shows only the picture, so the headline is typed in a plain labelled field */
.art .art-ph-title{font:600 20px/1.3 var(--head);padding:10px 12px;border:1px solid var(--edge);background:#fff;min-height:44px}
.art .art-ph-title:focus{outline:3px solid var(--sky);outline-offset:0}
.art .art-ph-title.bad{outline:3px solid var(--danger);outline-offset:0}
.art-add{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 14px;border:2px dashed var(--edge);background:#fff;color:var(--ink);font:600 15px/1.2 var(--head);cursor:pointer}
.art-add:hover{background:var(--wash);border-color:var(--ink)} .art-add.tile{aspect-ratio:1;min-height:0}
.art-chips{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 8px}
.art-hit{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;border-bottom:1px dashed var(--edge)} .art-hit:hover{background:var(--wash)}
.art-hitb{cursor:pointer} .art-hitb:hover figure{background:var(--wash)} .art .sbtn:hover{box-shadow:inset 0 0 0 999px rgba(0,0,0,.18)}
.art-hitb:focus-visible,.art .sbtn:focus-visible,.art-hit:focus-visible,.art-add:focus-visible,.art-photo:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.art-host:empty{display:none}
.art-pan{margin:12px 0 20px;padding:14px 16px;background:#fff;border:2px solid var(--ink);font:400 16px/1.5 var(--body)}
.art-pan-h{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:10px} .art-pan-h strong{font:700 18px/1.2 var(--head)}
.art-pan label{font:600 15px/1.3 var(--body)} .art-pan .hint{font:400 14px/1.4 var(--body)} .art-pan .btn{font-size:15px}
.art-pan .th.big{width:120px;height:90px} .art-pan .cvimg{width:260px}
.art-acts{display:flex;gap:8px;flex-wrap:wrap}
/* the toolbar sticks under the header while the post is on screen */
.art-bar{position:sticky;top:calc(var(--hh,61px) - 1px);z-index:6;display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px var(--gut);background:#fff;border-bottom:1px solid var(--line)}
.art-bar .tb{min-height:40px;padding:4px 14px;border:2px solid var(--ink);background:#fff;color:var(--ink);font:600 15px/1.2 var(--head);cursor:pointer;border-radius:0}
.art-bar .tb[aria-pressed="true"]{background:var(--ink);color:#fff} .art-bar .tb:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
@media (max-width:900px){ .art-bar{padding:6px 16px} .art-bar .tb{min-height:44px;flex:1 1 auto} .art-chips .art-add{flex:1 1 auto} }

/* Show or hide (docs/CMS-ROUND1.md): the chip on every row, the row switch, the filter */
.vchip{display:inline-block;align-self:flex-start;padding:0 8px;font:600 12px/1.7 var(--head);border:1px solid var(--edge);background:var(--white);color:var(--muted)}
.vchip.hidden{background:var(--ink);color:var(--white);border-color:var(--ink)} .vchip.draft{border-color:var(--ink);color:var(--ink)} .vchip.changes{border-color:var(--ink);color:var(--ink);border-style:dashed}
.lrow.is-hidden .rt b,.lrow.is-hidden .rt small,.lrow.is-hidden .th,.nrow.is-hidden .nlink>:not(.rt),.nrow.is-hidden .rt b,.nrow.is-hidden .rt small{opacity:.55}
.vbtn{align-self:center;flex:none;min-width:64px} .nrow{display:flex;align-items:center;gap:10px} .nrow .nlink{flex:1;min-width:0}
.vfilter{margin:4px 0 10px} .visbox{border:2px solid var(--line);padding:12px 14px;margin:0 0 18px;max-width:640px} .visbox .vcheck{display:flex;gap:10px;align-items:center;font-weight:600;min-height:32px} .visbox .vcheck input{width:22px;height:22px;accent-color:var(--ink)}

/* "Is it live yet": one bar under the header; colour only as a small square mark */
.livebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 20px;background:var(--wash);border-bottom:1px solid var(--line);font:600 15px/1.35 var(--head);position:sticky;top:61px;z-index:9}
.livebar[hidden]{display:none} .livebar .mark{display:inline-block;width:12px;height:12px;flex:none;background:var(--yellow);border:1px solid var(--ink)}
.livebar[data-state="live"] .mark{background:var(--green)} .livebar[data-state="slow"] .mark{background:var(--red)}
.side .me .ver{margin:12px 0 0;font-size:13px;color:var(--muted);overflow-wrap:anywhere} .side .me .ver span{display:block} .side .me .ver .lastc{color:var(--ink);margin:0 0 4px}
body.has-live .side{top:104px;height:calc(100vh - 104px)}
@media (max-width:900px){ .livebar{position:static;padding:8px 16px} body.has-live .side{top:0;height:auto} }

/* Site settings */
.sgroup{margin:0 0 26px} .sgroup h3{margin:0 0 6px} .subh{margin:18px 0 4px;font-size:17px}
.srows{list-style:none;margin:0 0 6px;padding:0;max-width:960px}
.srow{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px minmax(0,190px);gap:10px 14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.srow .sn{min-width:0;display:flex;flex-direction:column;gap:2px} .srow .sn b{font:600 16px/1.3 var(--head);overflow-wrap:anywhere} .srow .sc{min-width:0} .srow .sv{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.srow.shopurl .sc{grid-column:2 / -1} .srow.shopurl input{width:100%;max-width:none} .srow.shopurl label{cursor:pointer}
.srow.shead{padding:2px 0;border-bottom:2px solid var(--ink);font:600 13px/1.3 var(--head);color:var(--muted)} .srow.fhead{grid-template-columns:minmax(0,1fr) 150px;border-bottom:0}
.frow{border-bottom:1px solid var(--line)} .frow .fmsgs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:0 0 10px} .frow textarea{max-width:none;min-height:64px}
.tgl{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 12px 0 0;border:0;background:transparent;font:600 15px/1 var(--head);color:var(--ink);cursor:pointer;text-align:left}
.tgl .tk{position:relative;display:inline-block;width:46px;height:26px;border:2px solid var(--ink);background:var(--white);flex:none} .tgl .tk::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--ink)}
.tgl[aria-checked="true"] .tk{background:var(--ink)} .tgl[aria-checked="true"] .tk::after{left:22px;background:var(--white)}
.tgl:disabled{opacity:.5;cursor:default} .tgl:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
@media (max-width:760px){
  .srow.shopurl .sc{grid-column:1 / -1}
  .srow{grid-template-columns:1fr 1fr;padding:12px 0} .srow .sn{grid-column:1 / -1} .srow .sv{grid-column:1 / -1;justify-content:flex-start} .srow.shead{display:none}
  .srow .sc::before{content:attr(data-l);display:block;font:600 12px/1.2 var(--head);color:var(--muted)} .srow.fhead{grid-template-columns:1fr auto} .frow .fmsgs{grid-template-columns:1fr}
}
.livebar{align-items:flex-start} .livebar .mark{margin-top:5px} .livebar>span:nth-child(2){flex:1 1 220px;min-width:0}

/* Draft and Published (drafts.js): the sentence about the item's state, and the buttons under it */
.statebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:2px solid var(--line);padding:10px 14px;margin:0 0 16px;max-width:640px;font:600 15px/1.4 var(--head)}
.statebar[hidden]{display:none} .statebar .vchip{align-self:center;flex:none}
.savebar .btns{display:flex;gap:10px;flex-wrap:wrap} .savebar .btns:empty{display:none}

/* Autosave (autosave.js): the box that offers to bring back what was typed and never saved */
.autobar{border:2px solid var(--ink);padding:12px 16px;margin:0 0 18px;max-width:640px;background:var(--white)} .autobar p{margin:0 0 8px} .autobar .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
@media (max-width:900px){ .autobar .btn{min-height:44px} }

/* Guides (guides.js, guide.js): the list of guides, one guide's pages, and a page edited in the look of the guide page on the site */
.grows,.gprows{list-style:none;margin:0 0 24px;padding:0;border-top:1px solid var(--line)}
.grow,.gprow{display:flex;gap:10px 16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--line)}
.gn{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 300px;overflow-wrap:anywhere} .gn b{font:700 20px/1.25 var(--head)}
.gprow .gn{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 10px} .gprow .gn b{font-size:19px}
.gv{display:flex;gap:8px;flex-wrap:wrap;align-items:center} .gpn{flex:none;min-width:1.5em;font:700 24px/1 var(--head);color:var(--muted)}
.langsw{display:inline-flex;margin:0 0 14px} .langsw button{border:2px solid var(--ink);background:var(--white);font:600 15px/1 var(--head);padding:8px 14px;min-height:40px;cursor:pointer;color:var(--ink)} .langsw button+button{border-left:0} .langsw button[aria-pressed="true"]{background:var(--ink);color:var(--white)}
.hint.struct{max-width:44em;margin:-8px 0 14px}
.gpara{display:flex;gap:8px;align-items:flex-start;margin:0 0 8px} .gpara textarea{flex:1;max-width:640px;min-height:76px} .gpara .btn{flex:none}
.srcs{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:14px} .srcrow{border:1px solid var(--line);padding:12px 14px;max-width:700px} .srcrow .field{margin-bottom:10px} .srcrow input[type=url]{width:100%;max-width:640px;min-height:44px;padding:8px 10px;border:2px solid var(--edge);border-radius:0;background:var(--white);font:400 16px/1.4 var(--body);color:var(--ink)}
.gedit{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.gside{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto} .gside .box{margin-bottom:14px;padding:12px 14px} .gside .box h3{margin-bottom:4px} .gside .checks{display:grid;gap:0} .gside .addr{font-weight:600;overflow-wrap:anywhere;margin:0 0 6px}
.gside input[type=text]{max-width:none}
.gside summary{cursor:pointer;font:700 17px/1.3 var(--head);min-height:36px;display:flex;align-items:center}
.gp{--gl:var(--line);min-width:0;max-width:826px;border:1px solid var(--line);background:#fff;padding:32px 32px 40px;font:400 17px/1.55 var(--body);color:var(--ink);-webkit-font-smoothing:antialiased}
.gp textarea.tx,.gp input.tx-in{display:block;width:100%;max-width:none;min-height:0;margin:0;padding:3px 6px;border:0;border-bottom:1px dashed transparent;border-radius:0;background:transparent;resize:none;overflow:hidden;font:inherit;color:inherit}
.gp textarea.tx:hover,.gp input.tx-in:hover{background:var(--wash);border-bottom-color:var(--edge)} .gp textarea.tx::placeholder,.gp input.tx-in::placeholder{color:#8a857b}
.gp textarea.tx:focus,.gp input.tx-in:focus{background:#fff;border-bottom-color:var(--ink)}
.gp [aria-invalid="true"]{border-bottom:2px solid var(--danger) !important;background:#fff6f5 !important}
.gp .gfmsg{margin:2px 6px 8px}
.gp .crumbs{margin:0 0 10px;font:600 15px/1.3 var(--body);color:var(--muted)}
.gp .tx.t-h1{font:700 38px/1.1 var(--head);margin:0 0 12px} .gp .tx.t-lead{font:400 18px/1.55 var(--body);margin:0 0 8px;max-width:36em}
.gp .g-note{margin:16px 0 0;padding:12px 0 4px;border-top:1px solid var(--line);font:400 15px/1.5 var(--body);color:var(--muted);max-width:44em} .gp .gnote-h{margin:0 0 18px;padding:0 0 12px;border-bottom:1px solid var(--line);font-style:italic}
.gp .g-how{margin:0 0 18px} .gpara3{display:flex;gap:8px;align-items:flex-start;margin:0 0 8px;flex-wrap:wrap} .gpara3 textarea.tx{flex:1 1 280px;font-size:18px}
.gp .g-first{border:1px solid var(--line);padding:16px 18px;margin:0 0 28px} .gp .h-title{font:700 24px/1.2 var(--head);margin:0 0 12px}
.gp .qv-list-ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px} .gp .qv-list-ticks>li{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap} .gp .qv-list-ticks>li::before{content:"";flex:none;width:12px;height:12px;margin-top:9px;background:var(--green)} .gp .qv-list-ticks>li>textarea.tx{flex:1 1 240px;font-size:17px}
.gp .g-sec{margin:0 0 36px;padding-top:6px} .gp .sec-top{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap} .gp .num{flex:none;font:700 40px/1.05 var(--head);min-width:1.1em} .gp .tx.t-h2{flex:1 1 240px;font:700 26px/1.2 var(--head);margin-top:4px}
.gp .tx.t-intro{margin:6px 0 12px;font-size:18px;max-width:44em} .gp .tx.t-p{margin:2px 0 0;max-width:44em} .gp .tx.t-h3{font:700 19px/1.3 var(--head)}
.gp .g-steps{list-style:none;counter-reset:s;margin:8px 0 6px;padding:0} .gp .g-steps>li{counter-increment:s;position:relative;padding:0 0 16px 54px} .gp .g-steps>li::before{content:counter(s);position:absolute;left:0;top:0;width:36px;height:36px;display:grid;place-items:center;border:2px solid var(--ink);background:#fff;font:700 18px/1 var(--head)}
.gp .g-steps>li .gctl{margin-top:4px}
.gp .g-items{list-style:none;margin:12px 0 6px;padding:0;display:grid;gap:12px} .gp .qv-card{border:1px solid var(--line);padding:14px 16px;background:#fff;min-width:0} .gp .g-item{display:grid;gap:8px}
.gp .itsel{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start} .gp .mf{display:grid;gap:2px;font:600 13.5px/1.3 var(--head);color:var(--muted)} .gp .mf select{max-width:260px;min-height:40px;padding:6px 8px;font:400 16px/1.3 var(--body)} .gp .mf input.tx-in{border-bottom:1px solid var(--edge);padding:6px 8px;font:400 16px/1.4 var(--body);color:var(--ink)}
.gp .itmeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px} .gp .itmeta .mf{min-width:0}
.gp .whobox{border:1px solid var(--line);padding:4px 10px;min-width:0;flex:1 1 220px} .gp .whobox summary{cursor:pointer;min-height:34px;display:flex;align-items:center;font:600 14.5px/1.3 var(--head);overflow-wrap:anywhere} .gp .whobox .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 12px;padding:4px 0 8px} .gp .whobox .hint{margin:0 0 4px}
.gp .sectags{margin-top:12px;background:var(--wash)}
.gp .g-cmp{margin:10px 0 6px} .gp .cmpwrap{overflow-x:auto} .gp .g-cmp table{border-collapse:collapse;min-width:560px;width:100%;font-size:15.5px;line-height:1.4} .gp .g-cmp th,.gp .g-cmp td{border:1px solid var(--line);padding:6px;vertical-align:top;text-align:left} .gp .g-cmp thead th{background:var(--wash)}
.gp .g-cmp .tx.t-cell{font-size:15.5px} .gp .g-cmp .tx.t-cellh{font:700 15.5px/1.3 var(--head)} .gp .g-cmp .tx.t-cap{font:600 15px/1.4 var(--body);color:var(--muted);margin-bottom:6px} .gp .g-cmp td .btn,.gp .g-cmp th .btn{margin-top:4px}
.gp .g-terms{margin-top:8px;border-top:1px solid var(--line);padding-top:16px} .gp .g-terms dl{margin:12px 0 0;display:grid;gap:10px} .gp .g-term{display:grid;gap:4px} .gp .tx.t-dt{font:700 17px/1.3 var(--head)}
.gp .gctl{display:inline-flex;gap:6px;flex-wrap:wrap;margin:4px 0 0} .gp .gctl .btn{min-height:34px;padding:2px 10px;font-size:14px}
.gp .addp{margin:10px 0 0;display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:1100px){ .gedit{grid-template-columns:minmax(0,1fr)} .gside{position:static;max-height:none;overflow:visible} }
@media (max-width:640px){
  .gp{padding:16px 14px 24px} .gp .tx.t-h1{font-size:30px} .gp .num{font-size:32px} .gp .tx.t-h2{font-size:23px} .gp .itmeta{grid-template-columns:minmax(0,1fr)}
  .gp .g-steps>li{padding-left:46px} .gp .gctl .btn,.gp .addp .btn,.gprow .btn,.grow .btn{min-height:44px}
  .gprow .gv{width:100%} .gprow .gv .btn{flex:1 1 auto} .gp .g-first{padding:12px 12px}
}
.gp .g-cmp tbody th{min-width:130px;width:16%} .gp .g-cmp td:last-child{width:1%;white-space:nowrap}
@media (max-width:640px){
  /* the table is stacked, as on the site: the column names first, then each row as a block whose cells say which column they belong to */
  .gp .cmpwrap{overflow:visible} .gp .g-cmp table{min-width:0;width:100%;display:block} .gp .g-cmp thead,.gp .g-cmp tbody,.gp .g-cmp tr{display:block}
  .gp .g-cmp thead tr{border:1px solid var(--line);margin-bottom:14px;background:var(--wash)} .gp .g-cmp thead th:first-child,.gp .g-cmp thead th:last-child:empty{display:none}
  .gp .g-cmp th,.gp .g-cmp td{display:block;width:auto;border:0;border-top:1px solid var(--line);padding:6px} .gp .g-cmp thead th:nth-child(2){border-top:0}
  .gp .g-cmp tbody tr{border:1px solid var(--line);margin-bottom:14px} .gp .g-cmp tbody th{min-width:0;width:auto;border-top:0;background:var(--wash)} .gp .g-cmp td:last-child{width:auto;white-space:normal}
  .gp .g-cmp td[data-l]::before{content:attr(data-l);display:block;margin:0 6px 2px;font:600 13px/1.3 var(--head);color:var(--muted)}
}
.gv .gvm,.gv .gvo{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}
@media (max-width:640px){ .gprow .gv{display:grid;gap:8px;width:100%} .gprow .gvm,.gprow .gvo{display:flex;gap:8px;width:100%} .gprow .gvm .btn,.gprow .gvo .btn{flex:1 1 0;min-width:0;padding-left:6px;padding-right:6px} }
.srcbox{padding:10px 14px;max-width:760px} .srcbox>summary{cursor:pointer;font:700 17px/1.3 var(--head);min-height:36px;display:flex;align-items:center}
.srcrow{padding:0;border:0;border-top:1px solid var(--line);max-width:none} .srcrow[hidden]{display:none} .srcrow>details>summary{cursor:pointer;min-height:44px;padding:8px 2px;display:flex;gap:10px;align-items:baseline;overflow-wrap:anywhere;font-size:15px} .srcrow>details>summary b{flex:none;font:700 15px/1.3 var(--head)}
.srcrow>details[open]{padding-bottom:8px} .srcrow>details>.field,.srcrow>details>p{margin-left:2px}
.srcrow textarea{max-width:none}
.srcbox .srcs{gap:0}

/* ---- Organisations (orgs.js): cards, the card form, the logo picker, the funders order. Ink and line only: no colour stripes. ---- */
.linkbtn{border:0;background:none;padding:6px 0;min-height:44px;font:600 16px/1.3 var(--body);color:var(--ink);text-decoration:underline;text-decoration-color:var(--sky);text-decoration-thickness:2px;text-underline-offset:4px;cursor:pointer}
.orgbar{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:0 0 14px} .orgbar .field{flex:1 1 260px;margin:0} .orgbar .chips{margin:0;flex:1 1 100%} .orgbar .hint{margin:0;flex:1 1 100%}
.orgcards{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))} .orgcards.one{grid-template-columns:minmax(0,520px)}
.orgcard{display:grid;grid-template-columns:96px minmax(0,1fr);gap:4px 14px;align-items:start;border:1px solid var(--line);padding:14px;background:var(--white)} .orgcard.is-hidden .olo,.orgcard.is-hidden .obody{opacity:.55}
.olo{display:flex;align-items:center;justify-content:center;width:96px;height:64px;background:var(--white);border:1px solid var(--line);overflow:hidden} .olo img{max-width:88px;max-height:56px;object-fit:contain;display:block}
.olo.txt,.ltile .txt{background:var(--wash);color:var(--ink);font:600 13px/1.25 var(--head);text-align:center;padding:4px;overflow-wrap:anywhere} .olo.txt{border-color:var(--line)} .olo.txt b{font:inherit;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.obody{min-width:0;display:flex;flex-direction:column;gap:3px} .oname{font:700 18px/1.2 var(--head);overflow-wrap:anywhere} .osite{font-size:14px;font-weight:500;overflow-wrap:anywhere;word-break:break-all} .osite.none{color:var(--muted);font-weight:400}
.ochips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px} .ochip{display:inline-block;padding:0 8px;font:600 12px/1.7 var(--head);border:1px solid var(--ink);background:var(--white);color:var(--ink)} .ochip.off{border-color:var(--edge);color:var(--muted)}
.ofix{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px}
.oacts{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;margin-top:8px} .oacts .btn{flex:1 1 120px}
.orgcard .hint{margin:0;font-size:13px}
.orgmatch{border:2px solid var(--ink);padding:14px 16px;margin:10px 0 18px;max-width:640px} .orgmatch h3{margin-bottom:8px} .orgmatch p{margin:14px 0 0}
.okline{margin:6px 0 0} .ofixnote{max-width:640px}
.ltile{display:flex;align-items:center;justify-content:center;width:140px;height:72px;background:var(--white);border:1px solid var(--line);overflow:hidden} .ltile img{max-width:124px;max-height:60px;object-fit:contain;display:block} .ltile.dark{background:var(--ink)} .ltile.big{width:180px;height:90px} .ltile.big img{max-width:164px;max-height:76px}
.lbtns{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}
.logocmp{display:flex;gap:18px;flex-wrap:wrap;margin:4px 0 6px} .ptile{display:flex;flex-direction:column;gap:4px} .ptile .cap,.pcol .cap{font:600 13px/1.2 var(--head);color:var(--muted)}
.pprev{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 14px} .pprev:empty{display:none}
.orgprev{display:flex;gap:18px 28px;flex-wrap:wrap;align-items:flex-start;padding:14px;border:1px solid var(--line)} .pcol{display:flex;flex-direction:column;gap:6px;min-width:0}
/* the site's own markup for a logo cell (.orgs in site/index.html), cut to one cell */
.orgprev .orgs,.ptile .orgs{list-style:none;margin:0;padding:0;display:flex} .orgprev .orgs li,.ptile .orgs li{display:flex}
.orgprev .orgs a,.orgprev .orgs li>span,.ptile .orgs li>span{display:flex;align-items:center;justify-content:center;width:150px;height:72px;text-decoration:none;color:var(--ink);font-weight:400}
.orgprev .orgs img,.ptile .orgs img{display:block;max-width:150px;max-height:56px;width:auto;height:auto;object-fit:contain;filter:grayscale(1) contrast(1.15)}
.orgprev .orgs li.dark a{background:var(--ink);padding:0 12px} .orgprev .orgs .txt{font:600 16px/1.3 var(--head);text-align:center;background:none;color:var(--ink);padding:0}
.orgprev .orgs.f4 a,.orgprev .orgs.f4 li>span{width:210px;height:100px}
.funderhint{color:var(--ink);font-weight:500;padding:8px 10px;background:var(--wash)} .funderhint[hidden]{display:none}
.forder{border:1px solid var(--line);padding:14px 16px;margin:0 0 18px} .forder h2{font-size:20px;margin-bottom:4px}
.fstrip{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px;grid-template-columns:minmax(0,720px)}
.fstrip li{display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);padding:6px 8px;background:var(--white);cursor:grab} .fstrip li.dragging{opacity:.5} .fstrip li.over{background:var(--wash)} .fstrip li.is-hidden{opacity:.55}
.fstrip .fname{font:600 15px/1.25 var(--head);overflow-wrap:anywhere} .fstrip .fmv{display:flex;gap:6px} .fstrip .fmv .btn{min-width:44px;min-height:44px;padding:3px 8px}
.logopick .lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:56vh;overflow:auto}
.lcell{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);background:var(--white);padding:6px;text-align:left;cursor:pointer;color:var(--ink);font:400 13px/1.3 var(--body);min-height:44px} .lcell:hover,.lcell:focus-visible{border-color:var(--ink)}
.lcell .ltile{width:100%;height:68px} .lcell .lname{overflow-wrap:anywhere;color:var(--muted)} .lcell em{font-style:normal;background:var(--ink);color:var(--white);font:600 12px/1.5 var(--head);padding:0 6px}
.logopick input[type=file]{max-width:100%;min-height:44px}
dialog .check{min-height:44px}
.edhead .unsaved[hidden]{display:none}
@media (max-width:640px){
  .orgcards{grid-template-columns:minmax(0,1fr)} .orgcard{grid-template-columns:84px minmax(0,1fr)} .olo{width:84px} .olo img{max-width:76px}
  .fstrip li{grid-template-columns:96px minmax(0,1fr) auto} .fstrip .ltile{width:96px} .fstrip .ltile img{max-width:84px}
  .orgprev .orgs.f4 a,.orgprev .orgs.f4 li>span{width:100%;min-width:150px}
  .logopick .lgrid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))} .ltile.big{width:100%;max-width:220px}
  .orgbar .field input[type=search]{max-width:none}
}
.orgcard .btn.sm,#org-edit .btn.sm,.logopick .btn.sm,.orgmatch .btn.sm,.forder .btn.sm,#org-hist .btn.sm,#org-ver .btn.sm{min-height:44px}
#org-edit .check{min-height:44px} #org-alias-box summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}
.logopick .pk-tabs button{min-height:44px}

/* ---- Search and sharing (seo.js; a section of Site settings). Ink and line only; the "!" mark of a warning is the one small spot of colour. Every class starts with seo-. ---- */
.side a.item.sub{min-height:40px;padding:6px 12px 6px 28px;font:600 15px/1.2 var(--head)}
.seo-jump{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 4px}
.seo h3{margin:0 0 4px} .seo .hint{margin:0 0 10px}
.seo-site{margin-top:22px} .seo-pages{margin-top:34px}
.seo-tabs{display:flex;margin:0 0 14px} .seo-tabs button{border:2px solid var(--ink);background:var(--white);color:var(--ink);padding:6px 16px;min-height:44px;font:600 15px/1.2 var(--head);cursor:pointer;margin-right:-2px}
.seo-tabs button[aria-selected="true"]{background:var(--ink);color:var(--white)}
.seo-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:28px;align-items:start}
.seo-fields{min-width:0}
.seo-f{margin:0 0 18px} .seo-f input[type=text],.seo-f textarea{width:100%;max-width:none}
.seo-lh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px} .seo-lh label{font-weight:600}
.seo-cnt{font-size:14px;color:var(--muted);white-space:nowrap} .seo-cnt.over{color:var(--danger);font-weight:600}
.seo-w{list-style:none;margin:6px 0 0;padding:0} .seo-w:empty{display:none} .seo-lw{margin-top:0}
.seo-w li{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.4;color:#5c4400;margin:0 0 4px;overflow-wrap:anywhere}
.seo-w li::before{content:"!";flex:none;width:18px;height:18px;margin-top:1px;background:var(--yellow);color:var(--ink);font:700 13px/18px var(--head);text-align:center}
.seo-f input[aria-invalid="true"]{border-color:var(--danger)}
.seo-frame{position:relative;max-width:360px;overflow:hidden;border:1px solid var(--line);background:var(--line);cursor:crosshair;margin:0 0 6px}
.seo-frame img{display:block;width:100%;height:auto}
.seo-frame.dflt{cursor:default} .seo-frame.dflt img{aspect-ratio:1200/630;object-fit:cover}
.seo-box{position:absolute;border:2px solid var(--white);outline:2px solid var(--ink);box-shadow:0 0 0 999px rgba(255,255,255,.72);pointer-events:none}
.seo-imt{margin:0 0 4px}
.seo-f .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.seo-prev{border:1px solid var(--line);padding:14px 16px;background:var(--white);position:sticky;top:76px;min-width:0}
.seo-prev h4{font:700 15px/1.2 var(--head);margin:0 0 8px} .seo-prev h4:not(:first-child){margin-top:18px} .seo-prev .hint{margin:12px 0 0}
.seo-sr{min-width:0} .seo-url{font-size:13px;line-height:1.4;color:var(--muted);margin:0 0 2px;overflow-wrap:anywhere}
.seo-st{font:500 19px/1.3 var(--body);color:var(--ink);margin:0 0 3px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.seo-sd{font-size:14px;line-height:1.45;color:var(--muted);margin:0;overflow-wrap:anywhere}
.seo-st.dflt,.seo-sd.dflt,.seo-f input::placeholder,.seo-f textarea::placeholder{color:#767676}
.seo-card{border:1px solid var(--edge);background:var(--white);max-width:420px}
.seo-pic{aspect-ratio:1200/630;background-color:var(--line);background-size:cover;background-repeat:no-repeat}
.seo-cb{padding:10px 12px 12px;border-top:1px solid var(--line);min-width:0}
.seo-ch{font-size:12px;letter-spacing:.05em;color:var(--muted);margin:0 0 2px}
.seo-ct{font:700 16px/1.25 var(--head);margin:0 0 3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.seo-cd{font-size:14px;line-height:1.4;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.seo-search{max-width:420px;margin:10px 0 0}
.seo-group{margin:22px 0 0} .seo-group h3{margin:0 0 6px}
.seo-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.seo-row{border-bottom:1px solid var(--line);padding:10px 0}
.seo-row.open{background:var(--wash);margin:0 -12px;padding:10px 12px}
.seo-rh{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.seo-rn{min-width:0} .seo-rn h4{font:700 17px/1.25 var(--head);margin:0;overflow-wrap:anywhere}
.seo-state{display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center;margin-top:3px} .seo-state .when{margin:0}
.seo-row .seo-ed{margin-top:14px}
.pseo a{font-weight:600}
@media (max-width:900px){
  .seo-cols{grid-template-columns:minmax(0,1fr)} .seo-prev{position:static}
}
@media (max-width:640px){
  .seo-row.open{margin:0 -14px;padding:10px 14px}
  .seo .btn.sm{min-height:44px} .seo-jump .btn{min-height:44px}
  .seo-frame,.seo-card{max-width:none}
  .pk-guide{margin:0 0 8px}
}
.pgrid.share{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))} .pgrid.share .pbtn img{aspect-ratio:1200/630}
@media (max-width:600px){ .pgrid.share{grid-template-columns:minmax(0,1fr)} }

/* Team B */
.evx .drow{align-items:flex-start} .evx .dwrap{flex:1;min-width:0}
.evx .understood{margin:4px 0 0} .evx .understood:empty{display:none} .evx .understood.err{color:var(--danger);font-weight:600}
.evx .ltabs button{min-height:44px;display:inline-flex;align-items:center;gap:8px}
.evx .lstate{font:400 12px/1.2 var(--head);opacity:.8} .evx .lstate:empty{display:none}
.evx .warn{color:#7a5200;font-weight:600;margin:0 0 10px;overflow-wrap:anywhere} .evx .warn:empty{display:none}
.evx .evprevs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 16px}
.evx .evprev{border:1px solid var(--line);padding:16px;background:var(--white);min-width:0;overflow-wrap:anywhere} .evx .evprev h3{margin:0 0 8px} .evx .evprev p{margin:0 0 6px}
.evx .evpic{margin:0 0 16px}
.evx .savebar p{margin:0}
@media (max-width:700px){
  .evx .evprevs{grid-template-columns:minmax(0,1fr)}
  .evx .ltabs{display:flex} .evx .ltabs button{flex:1 1 0;justify-content:center}
  .evx .btn,.evx .btn.sm,.evx input[type=text],.evx input[type=number],.evx select{min-height:44px}
}
.evx .addrlink{display:inline-flex;align-items:center;min-height:44px}
.evx .devnote{display:block;margin-top:6px} .evx .devnote summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.evx #nm-table td{overflow-wrap:anywhere}
@media (max-width:700px){ .evx #nm-table .btn{min-height:44px} .evx #nm-table a{display:inline-flex;align-items:center;min-height:44px} }
@media (max-width:700px){ .evx .filters button{min-height:44px} }
.evx [hidden]{display:none!important}
.evx .langboth{margin:0 0 8px;max-width:44em}
.evx .lstate{font-size:13px;opacity:1}
.evx .drow{justify-content:flex-start;gap:12px} .evx .dwrap{flex:0 1 440px;min-width:0} .evx .datewrap{width:100%} .evx .datewrap input[type=text]{max-width:none;flex:1 1 auto;min-width:0}
.evx .btn.quiet{border-color:transparent;background:transparent;color:var(--muted);text-decoration:underline;font-weight:400;padding:0 6px}
.evx .gcancel{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.evx .mblock{border:1px solid var(--line);padding:12px 14px;margin:0 0 12px;background:var(--white)} .evx .mblock .when{margin:0 0 4px}
.evx .mstat{font:600 14px/1.4 var(--head);margin:0 0 6px}
@media (max-width:700px){
  .evx .drow{flex-wrap:nowrap} .evx .dwrap{flex:1 1 0}
  .evx .drow [data-rmdate]{flex:none;min-height:44px}
  .evx .gcancel .btn.quiet{min-height:44px;padding:0 12px}
}
/* Team B: texts to guests */
.evx .pfxwrap{display:flex;align-items:stretch;gap:0} .evx .pfx{display:flex;align-items:flex-start;padding:10px 12px;background:var(--wash);border:1px solid var(--line);border-right:0;font:600 14px/1.4 var(--head);color:var(--muted);white-space:nowrap}
.evx .pfxwrap textarea{flex:1;min-width:0;min-height:120px}
.evx #m-leadnote{margin:8px 0 0}
@media (max-width:640px){
  .evx .pfxwrap{flex-direction:column} .evx .pfx{border-right:1px solid var(--line);border-bottom:0}
  .evx .guests .btn.sm,.evx #m-send{min-height:44px} .evx #m-send{width:100%}
}

/* Team B: team access */
.tbx [hidden]{display:none!important}
.tbx #acc-msg{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);padding:10px 14px;margin:0 0 16px;max-width:640px}
.tbx #mf .field{position:relative}
.tbx #mf-sug{border:1px solid var(--ink);background:var(--white);max-width:640px;max-height:280px;overflow:auto}
.tbx .tbx-opt{display:block;width:100%;min-height:44px;padding:8px 12px;text-align:left;background:var(--white);color:var(--ink);border:0;border-bottom:1px solid var(--line);font:inherit;cursor:pointer;overflow-wrap:anywhere}
.tbx .tbx-opt:last-child{border-bottom:0} .tbx .tbx-opt:hover,.tbx .tbx-opt.on{background:var(--ink);color:var(--white)}
.tbx #mf-fixed{margin:0;font-weight:600;overflow-wrap:anywhere} .tbx #mf-who:empty{display:none}
.tbx .tbx-tag{display:inline-block;margin-left:6px;padding:0 6px;border:1px solid var(--line);font-size:13px;line-height:20px}
.tbx td{overflow-wrap:anywhere} .tbx #mf .acts{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:700px){
  .tbx .btn,.tbx .btn.sm,.tbx select,.tbx input[type=email]{min-height:44px}
  .tbx td .acts .btn{min-height:44px}
  .tbx #mf .check{min-height:44px}
}

/* ---- statements (batch 7): the text box with Bold, Link and List, the PDF attached to the statement, the page address under the title ---- */
.rtbox{max-width:640px} .rt-bar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px} .rt-bar .btn[aria-pressed=true]{background:var(--ink);color:var(--white)}
.rt-edit{border:2px solid var(--edge);padding:10px 12px;min-height:220px;max-height:62vh;overflow:auto;background:var(--white);font:400 16px/1.55 var(--body);white-space:pre-wrap;overflow-wrap:anywhere;cursor:text}
.rt-edit:focus{outline:3px solid var(--sky);outline-offset:2px;border-color:var(--ink)}
.rt-edit p{margin:0 0 12px} .rt-edit ul{margin:0 0 12px;padding-left:24px;list-style:disc} .rt-edit li{margin:0 0 6px} .rt-edit b{font-weight:700}
.rt-edit a{pointer-events:auto}
.rt-pan{border:2px solid var(--ink);padding:12px 12px 4px;margin:0 0 8px;background:var(--white)} .rt-pan input{max-width:none} .rt-pan .rt-acts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px} .rt-pan .rt-err:empty{display:none}
.pdff .pdfcard{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);padding:12px;max-width:640px;margin:0 0 6px} .pdff .pdfmark{padding:8px 12px;font-size:18px;flex:none}
.pdfinfo{flex:1 1 160px;min-width:0} .pdfinfo b{display:block;overflow-wrap:anywhere} .pdfinfo small{color:var(--muted);font-size:14px}
.pdff .acts{display:flex;flex-wrap:wrap;gap:6px} .pdfnote{margin:0 0 12px} .pdfnote.off{color:var(--ink)}
.pdfsample{margin:6px 0 16px;max-width:640px} .pdfsample .hint{display:block;margin:0 0 4px} .samp{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0} .samp .btn{cursor:default;max-width:100%;text-align:left} .samp small{color:var(--muted);font-size:14px}
.pgaddr{margin:0 0 6px;font:400 16px/1.4 var(--body);overflow-wrap:anywhere} .pgaddr .pre{color:var(--muted)} .pgaddr b{font-weight:600}
@media (max-width:600px){
  .rt-bar .btn{min-height:44px} .rt-edit{min-height:200px;max-height:55vh} .pdff .acts .btn{min-height:44px} .pdff .acts{width:100%}
}

/* pages screen */
/* a tap on a button that opens a dialog (More, Delete page…, New page, Restore) left the browser's own light-blue tap highlight painted over the dialog, where the tapped button had been (on a phone) */
#pg-new,.pgact .btn,.pgact summary,.rpop .btn,.rdrow .btn{-webkit-tap-highlight-color:transparent}
.rdrow{display:flex;gap:8px 16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)} .rdname{flex:1 1 12em;min-width:0;overflow-wrap:anywhere} .rdname .when{margin-left:8px}
@media (max-width:700px){ .rdrow .btn{min-height:44px;padding:6px 16px} }

/* event photos (Team C) */
.evp-list{list-style:none; margin:16px 0 0; padding:0; display:grid; gap:8px}
.evp-item{display:flex; align-items:center; gap:14px; padding:10px; border:1px solid var(--line); color:inherit; text-decoration:none; background:var(--white)} .evp-item:hover{border-color:var(--ink)}
.evp-th{width:72px; height:54px; object-fit:cover; flex:none} .evp-t{display:grid; gap:2px; flex:1; min-width:0} .evp-item .btn{flex:none}
.evp-head{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.evp-grid{list-style:none; margin:12px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:12px}
.evp-c{position:relative; border:2px solid var(--line); background:var(--white)} .evp-c.is-cover{border-color:#e0a800}
.evp-c img{display:block; width:100%; aspect-ratio:4/3; object-fit:cover} .evp-pool .evp-c{cursor:pointer} .evp-pool .evp-c img{opacity:.85} .evp-pool .evp-c:hover img{opacity:1}
.evp-num{position:absolute; top:6px; left:6px; background:var(--ink); color:var(--white); font:600 13px/1 var(--font-head); padding:4px 7px}
.evp-badge{position:absolute; top:6px; right:6px; background:#f8f36e; color:var(--ink); font:600 12px/1 var(--font-head); padding:4px 7px}
.evp-acts{display:flex; gap:4px; padding:6px} .evp-acts button{flex:1; min-width:0; min-height:40px; border:1px solid var(--line); background:var(--white); font:600 16px/1 var(--font-head); cursor:pointer}
.evp-acts button:hover:not(:disabled){border-color:var(--ink)} .evp-acts button:disabled{opacity:.35; cursor:default} .evp-acts [data-a="cover"][aria-pressed="true"]{background:#f8f36e}
.evp-acts .evp-add{flex:1; font-size:14px} .evp-sec{margin-bottom:32px}
/* the shared photo strip (History years and Recently at QARAVAN): a drag handle on each photo, the spot it goes to, what is not saved yet */
.evp-grip{position:absolute; top:6px; left:42px; min-width:44px; min-height:36px; border:0; background:rgba(255,255,255,.92); color:var(--ink); font:600 18px/1 var(--font-head); cursor:grab; touch-action:none}
.evp-grip:active{cursor:grabbing} .evp-c.drag{opacity:.45} .evp-c.drop{outline:3px solid var(--ink); outline-offset:2px}
.evp-shown .evp-c img{-webkit-user-select:none; user-select:none} .evp-tools{display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0} .evp-auto,.evp-pend{margin-top:10px}
@media (max-width:600px){ .evp-tools .btn{min-height:44px} .evp-grip{min-height:44px} .evp-shown .evp-badge{position:static; display:block; text-align:center; padding:6px 4px} }
@media (max-width:600px){.evp-grid{grid-template-columns:repeat(2, minmax(0, 1fr))} .evp-item .btn{display:none}}
/* ===== Team A, 2026-11-03: the team page's look and its lists (owner: "I don't like the side panel"; "everything is in the same
   color and everything is rectangular, it's hard to use"). The team page is an internal tool, so the public site's square
   corners don't bind it (Team C's brief). Fonts and brand colours stay. Lists are full-width cards that open the editor;
   showing, hiding and "on the home page" are one tap on the card; controls are rounded; status is a colour pill; one strong
   button per screen; simple line icons in the menu. ===== */
:root{--r:8px;--r-sm:6px;--pill:999px;--ok-bg:#e3f4e3;--ok-ink:#1d5e1d;--wait-bg:#fbf6c2;--wait-ink:#5f5000;--off-bg:#ecebe7;--off-ink:#4a4741;--info-bg:#e1f3fa;--info-ink:#0a5a78;--bad-bg:#fbe3e1;--bad-ink:#8c1d17;--tint:#f7f5ef}
.btn,.search input,input[type=text],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=number],select,textarea{border-radius:var(--r-sm)}
.btn{border-radius:var(--r)}
.btn.out{border-width:1px;border-color:var(--edge)} .btn.out:hover{border-color:var(--ink);background:var(--tint)}
.btn.danger{border-width:1px}
.chip,.sw,.lang button,.langsw button,.ltabs button{border-radius:var(--pill)}
.ltabs{gap:6px} .ltabs button{margin-right:0} .langsw{gap:6px} .langsw button+button{border-left:2px solid var(--ink)}
.note,.field.sub,.litem,.lcard,.ltile,.logoprev,.lcell,.box,dialog,.pgrow,.search .found{border-radius:var(--r)}
.litem{overflow:hidden} .lhead{background:var(--tint)}
.vchip{border:0;border-radius:var(--pill);padding:1px 10px;font:600 12.5px/1.7 var(--head);background:var(--ok-bg);color:var(--ok-ink)}
.vchip.hidden{background:var(--off-bg);color:var(--off-ink)} .vchip.draft{background:var(--wait-bg);color:var(--wait-ink)} .vchip.changes{background:var(--info-bg);color:var(--info-ink);border:0}
.flag{display:inline-block;align-self:flex-start;border-radius:var(--pill);padding:1px 10px;background:var(--bad-bg);color:var(--bad-ink)}
.side a.item{border-radius:var(--r);justify-content:flex-start;gap:10px} .side a.item .n{margin-left:auto}
.side a.item::before{content:"";flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--ic) center/20px 20px no-repeat;mask:var(--ic) center/20px 20px no-repeat}
.side a.item.sub::before{width:16px;height:16px;-webkit-mask-size:16px 16px;mask-size:16px 16px}
.side a.item:not([style*="--ic"]):not([data-nav])::before{display:none}
.side a.item[data-nav="home"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8v9a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}
.side a.item[data-nav="pages"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2h8l5 5v15H6z M13 2v6h6'/%3E%3C/svg%3E")}
.side a.item[data-nav="events"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v16H4z M4 10h16 M8 3v4 M16 3v4'/%3E%3C/svg%3E")}
.side a.item[data-nav="news"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h12v16H6a2 2 0 0 1-2-2z M16 8h4v10a2 2 0 0 1-4 0 M8 8h4 M8 12h4 M8 16h4'/%3E%3C/svg%3E")}
.side a.item[data-nav="guides"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h7a2 2 0 0 1 2 2v13a2 2 0 0 0-2-2H3z M21 5h-7a2 2 0 0 0-2 2v13a2 2 0 0 1 2-2h7z'/%3E%3C/svg%3E")}
.side a.item[data-nav="content"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 5-9 5-9-5z M3 13l9 5 9-5'/%3E%3C/svg%3E")}
.side a.item[data-nav="photos"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h18v14H3z M3 16l5-5 4 4 3-3 6 6'/%3E%3C/svg%3E")}
.side a.item[data-nav="settings"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h9 M17 6h3 M4 12h3 M11 12h9 M4 18h11 M19 18h1 M15 4v4 M9 10v4 M17 16v4'/%3E%3C/svg%3E")}
.side a.item[data-nav="seo"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.5 4a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13z M20 20l-4.8-4.8'/%3E%3C/svg%3E")}
.side a.item[data-nav="approve"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v12H9l-5 4z M8 9h8 M8 12h5'/%3E%3C/svg%3E")}
.side a.item[data-nav="community"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z M2 21a7 7 0 0 1 14 0 M16 3.5a4 4 0 0 1 0 7 M22 21a7 7 0 0 0-4.5-6.5'/%3E%3C/svg%3E")}
.side a.item[data-nav="volunteers"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5s-7.5-4.4-7.5-10A4.3 4.3 0 0 1 12 7.8a4.3 4.3 0 0 1 7.5 2.7c0 5.6-7.5 10-7.5 10z'/%3E%3C/svg%3E")}
.side a.item[data-nav="steps"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 6h11 M10 12h11 M10 18h11 M3 6l1.5 1.5L7.5 4.5 M3 12l1.5 1.5L7.5 10.5 M3 18l1.5 1.5L7.5 16.5'/%3E%3C/svg%3E")}
.side a.item[data-nav="access"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16a4 4 0 1 1 3.3-6.3 M11 10h10 M17 10v4 M21 10v3'/%3E%3C/svg%3E")}
.side a.item[data-nav="activity"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3 7 4-14 3 7h4'/%3E%3C/svg%3E")}

/* lists: full width, one card per item; the item opens on its own with "Back to the list" */
.edgrid,.edgrid:not(:has(.edlist)){grid-template-columns:minmax(0,1fr)}
.edgrid[data-view="list"] .edpane{display:none} .edgrid[data-view="item"] .edlist{display:none}
.edlist{position:static;max-height:none;overflow:visible;padding:0}
.edgrid .backbtn{display:inline-flex}
.edlist .lrows{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:4px}
.edlist .lrow{flex-direction:column;align-items:stretch;gap:0;border:1px solid var(--line);border-radius:12px;background:var(--white);overflow:hidden;transition:box-shadow .12s}
.edlist .lrow:hover{box-shadow:0 2px 10px rgba(0,0,0,.08)}
.edlist .lrow.is-hidden{background:var(--tint)} .edlist .lrow.is-hidden .th{opacity:.55}
.edlist .rowbtn{flex-direction:column;align-items:stretch;gap:0;padding:0;border:0;border-radius:0;min-height:0}
.edlist .rowbtn:hover{background:transparent} .edlist .rowbtn[aria-current="true"]{border:0}
.edlist .rowbtn .th{width:100%;height:150px;border-radius:0;object-position:50% 22%} .edlist .rowbtn .th.news{height:140px;object-fit:cover}
.edlist .rowbtn .rt{padding:12px 14px 8px;gap:4px}
.edlist .rowbtn b{font-size:17px}
.edlist .lacts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:0 14px 14px}
.edlist .lacts .mv{flex-direction:row;margin-left:auto} .edlist .lacts .mv .btn{min-height:36px;min-width:40px}
.edlist .hbtn.on{background:var(--ok-bg);border-color:var(--ok-bg);color:var(--ok-ink)}
.edlist .hbtn.on::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/14px no-repeat;margin-right:2px}
.edlist .vfilter{margin-bottom:12px}
@media (max-width:600px){ .edlist .lrows{grid-template-columns:minmax(0,1fr)} .edlist .rowbtn .th{height:170px} }
.savebar.clean{display:none}   /* the list of cards with nothing to save: no Save button */

/* Team A, after the before/after NN/g pass: the home line, state pills, compact cards on phones, the rest of the screens in the same style */
.homeline{margin:0 0 12px;padding:10px 14px;border-radius:var(--r);background:var(--ok-bg);color:var(--ok-ink)} .homeline b{margin-right:4px}
.edlist .pills{display:flex;gap:6px;flex-wrap:wrap} .vchip.home{font-style:normal;background:var(--info-bg);color:var(--info-ink)}
.edlist .lnote{font-size:13px;color:var(--muted)}
.edlist .ebtn{border-color:var(--ink)}
@media (max-width:600px){
  .edlist .lrow{display:grid;grid-template-columns:84px minmax(0,1fr);border-radius:10px}
  .edlist .rowbtn{display:contents}
  .edlist .rowbtn .th{grid-row:1 / span 2;width:84px;height:84px;margin:10px 0 10px 10px;border-radius:6px}
  .edlist .rowbtn .rt{padding:10px 12px 4px;min-width:0}
  .edlist .lacts{grid-column:2;padding:0 12px 10px}
  .edlist .lrow:not(:has(.th)) .rt,.edlist .lrow:not(:has(.th)) .lacts{grid-column:1 / -1}
}
.status{border-radius:var(--pill);border:0;padding:1px 10px;background:var(--off-bg);color:var(--off-ink)}
.status.going,.status.published{background:var(--ok-bg);color:var(--ok-ink)} .status.pending,.status.draft{background:var(--wait-bg);color:var(--wait-ink);border:0} .status.waitlist{background:var(--info-bg);color:var(--info-ink)}
.evtabs{gap:6px;border-bottom:0} .evtabs a{border:1px solid var(--edge);border-radius:var(--pill);margin-bottom:0;min-height:40px} .evtabs a[aria-current="page"]{border-color:var(--ink)}
.unsaved{border-radius:var(--pill);border:0;background:var(--wait-bg);color:var(--wait-ink)}
.side a .n{border-radius:var(--pill)}
.chips .chip.on,.chips .chip[aria-pressed="true"]{background:var(--ink);color:var(--white);border-color:var(--ink);box-shadow:none}
.filters{gap:6px} .filters button{border-radius:var(--pill);margin-right:0}

/* Team A, TASKS 13: switch between years on an open History year; what the site shows now when the year has no photos of its own */
.yswitch{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px} .yswitch .chip{min-height:40px}
.autopick{margin-top:10px} .autostrip{display:flex;flex-wrap:wrap;gap:8px} .autostrip img{width:120px;height:90px;object-fit:cover;border-radius:6px;display:block}
@media (max-width:600px){ .yswitch{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px} .yswitch .chip{min-height:44px;flex:0 0 auto} .autostrip img{width:96px;height:72px} }
.yswitch .chip[aria-pressed="true"]{background:var(--ink);color:var(--white);border-color:var(--ink)}
/* Team B: shell */
@media (max-width:700px){ #set-role,#vol-link{min-height:44px;display:inline-flex;align-items:center} .wait .btn.sm{min-height:44px;display:inline-flex;align-items:center} }
.chip[aria-pressed=true],.chips .chip[aria-pressed=true]{background:var(--ink);color:var(--white);border-color:var(--ink);box-shadow:none}
#af .hint.err{color:var(--danger);font-weight:600;margin:4px 0 0} #af .hint.err[hidden]{display:none}
#af .datewrap input[type=text]{max-width:260px;min-width:0;flex:1 1 auto} #af .datewrap .pick{flex:none}
@media (max-width:700px){ #af .field{flex:1 1 100%} #af .datewrap{width:100%} #af .datewrap input[type=text]{max-width:none} #af .datewrap input,#af select{min-height:44px} .chips .chip{min-height:44px} }

/* own name, side card (22j) */
.me .linkbtn{padding:0;min-height:0;font:700 16px/1.3 var(--body);text-align:left}
dialog.pdlg .field input[type=text]{width:100%}
@media (max-width:760px){.me .linkbtn{min-height:44px;padding:6px 0}dialog.pdlg .acts .btn{min-height:44px}}
/* Team B: volunteers (People and teams) */
.vol{max-width:1100px} .vol h2{margin:32px 0 6px} .vol h3{margin:20px 0 8px} .vol .lead{max-width:40em}
.vol-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:12px 0}
.vol-card{border:1px solid var(--line);padding:14px;min-width:0;overflow-wrap:anywhere;background:var(--white)} .vol-card h3,.vol-card h4{margin:0 0 6px;font-size:18px}
.vol-card p{margin:0 0 8px} .vol-card .acts,.vol-panel .acts{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.vol-tag{display:inline-block;border:1px solid var(--ink);padding:0 8px;font-size:14px;line-height:22px}
.vol-panel{border:2px solid var(--ink);padding:12px;margin:12px 0;max-width:640px;background:var(--white)} .vol-panel h4,.vol-panel h3{margin:0 0 8px}
.vol fieldset{border:0;padding:0;margin:0 0 12px;min-width:0} .vol legend{font-weight:600;padding:0;margin:0 0 4px}
.vol .check{display:flex;gap:10px;align-items:center;min-height:44px} .vol .check input{flex:none}
.vol-rad .hint{margin:-6px 0 8px 32px} .vol-why{font-weight:600}
.vol a.vl{display:inline-flex;align-items:center;min-height:44px}
.vol-res{max-width:640px;margin:0 0 12px} .vol-opt{display:flex;flex-direction:column;gap:2px;width:100%;min-height:44px;box-sizing:border-box;text-align:left;border:1px solid var(--line);border-top-width:0;background:var(--white);padding:8px 12px;color:var(--ink);text-decoration:none;font:400 16px/1.3 var(--body);cursor:pointer;overflow-wrap:anywhere}
.vol-res>.vol-opt:first-child{border-top-width:1px} .vol-opt span{color:var(--muted);font-size:15px}
.vol-list{list-style:none;padding:0;margin:0 0 12px} .vol-list li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:8px 0;min-width:0} .vol-inv{min-width:0;overflow-wrap:anywhere;flex:1 1 200px}
.vol-ppl{list-style:none;padding:0;margin:0 0 8px} .vol-ppl li{display:flex;gap:8px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:4px 0;min-width:0} .vol-ppl li:last-child{border-bottom:1px solid var(--line)} .vol-ppl a{min-width:0;overflow-wrap:anywhere}
.vol-row{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:8px 0;min-width:0} .vol-row>span{min-width:0;overflow-wrap:anywhere;flex:1 1 180px} .vol-row>span>span{color:var(--muted);font-size:15px}
.vol-team-box{margin:0 0 24px} .vol-cards>.vol-card:has(.vol-panel){grid-column:1/-1} .vol-two{max-width:46em}
.vol-status{min-height:1.2em;margin:6px 0} .vol-status.err{color:var(--danger);font-weight:600}
.vol .field input,.vol .field select,.vol .field textarea{max-width:100%}
@media (max-width:700px){ .vol .btn,.vol .btn.sm{min-height:44px} .vol select,.vol input[type=text],.vol input[type=search],.vol input[type=number]{min-height:44px} }
/* Team B: round 5 (required marks, what is still missing, neutral note, the bar on phones) */
.vol-req{font-weight:400;color:var(--muted);font-size:14px} .vol-need{margin:0 0 8px;min-height:1.2em} .vol-need:empty{display:none}
.vol-valid{margin:2px 0 8px;color:var(--muted)} .vol-note{margin:0 0 12px;color:var(--muted)}
@media (max-width:700px){ .vol{padding-bottom:96px} .vol input,.vol select,.vol .check,.vol .btn{scroll-margin-bottom:96px} }

/* Team B: automatic messages (site/manage/messages.js) */
.am-lead{margin:0 0 12px;max-width:46em}
.am-row{border-top:1px solid var(--line);padding:10px 0}
.am-row:first-child{border-top:0}
.am-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.am-on{align-items:flex-start;flex:1;min-width:0} .am-on input{flex:none} .am-top>.btn{flex:none} .am-on>span{display:flex;flex-direction:column} .am-on .hint{margin:2px 0 0}
.am-ed{padding:12px 0 4px}
.am-time{border:1px solid var(--line);padding:12px 14px;margin:0 0 16px} .am-time legend{font-weight:600;padding:0 4px}
.am-inl{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:4px 0 10px 30px} .am-inl label{display:flex;gap:8px;align-items:center;font-weight:400}
.am-langs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 14px} .am-langs .hint{margin:0}
.am-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.am-form h4,.am-prev h4{font:600 16px/1.3 var(--body);margin:0 0 6px}
.am-form h4+.hint{margin:0 0 8px}
.am-sms{display:flex;border:1px solid var(--ink)} .am-sms textarea{border:0;flex:1;min-width:0;resize:vertical}
.am-pre{padding:8px 0 0 10px;font-weight:600;color:var(--muted);white-space:nowrap}
.am-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px} .am-tags .hint{margin:0}
.am-phone{background:var(--line);padding:14px;margin:0 0 16px} .am-phone p{background:var(--white);padding:10px 12px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;max-width:30em}
.am-mail{border:1px solid var(--line);padding:14px} .am-mail p{margin:0 0 8px;overflow-wrap:anywhere;white-space:pre-wrap}
.am-subj{color:var(--muted);font-size:14px} .am-h{font:700 22px/1.2 var(--head)}
.am-mail table{border-collapse:collapse;margin:8px 0;width:100%} .am-mail th{font-weight:400;color:var(--muted);text-align:left;padding:4px 12px 4px 0;vertical-align:top;white-space:nowrap} .am-mail td{padding:4px 0;overflow-wrap:anywhere}
.am-btn{display:inline-block;background:var(--ink);color:var(--white);padding:8px 14px;font-weight:600}
@media (max-width:760px){.am-cols{grid-template-columns:minmax(0,1fr)} .am-inl{margin-left:0} .am-tags .btn,.am-langs .btn{min-height:44px}}
.am-form input[type=text],.am-form textarea{max-width:none} .am-form h4{margin-top:18px} .am-form h4:first-child{margin-top:0}
.am-inl input[type=number],.am-inl select{max-width:220px} .am-inl input[type=number]{width:96px}
/* annual reports (reports.js): the years, the sections, a section's blocks */
.rp-years,.rp-secs,.rp-blocks{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.rp-secs .clink{display:flex;align-items:center;gap:12px} .rp-b{border:1px solid var(--line);padding:12px;background:var(--white)} .rp-b textarea,.rp-b input[type=text]{width:100%}
.rp-b .lhead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px} .rp-b label.hint{display:block;margin-top:6px} .rp-kept .note{margin:0}
.rp-ph{display:flex;align-items:center;gap:10px} .rp-ph .th{width:120px;height:80px;object-fit:cover} .rp-add{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px}
@media (max-width:600px){ .rp-b .btn,.rp-add .btn{min-height:44px} }

/* Events and steps (volunteer space phase 4, site/manage/steps.js): the month's events down, the steps across. Every rule starts with .st */
.st .st-nav{display:flex;align-items:center;gap:12px;margin:0 0 12px} .st .st-nav h2{margin:0;font-size:22px;min-width:160px}
.st .st-nav .btn{min-width:44px;min-height:44px;padding:0 12px}
.st table.st-t th[scope=row]{font-weight:600;min-width:160px} .st .st-date{display:block;font-weight:400;font-size:14px;color:var(--muted)}
.st .st-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:44px;padding:6px 8px;border:1px solid var(--edge);background:var(--white);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.st .st-cell:hover,.st .st-cell:focus-visible{border-color:var(--ink)} .st .st-cell.is-dim{opacity:.45} .st .st-cell.is-match{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.st .st-cell.is-closed{background:var(--wash)} .st .st-state{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px}
.st .st-who,.st .st-due{font-size:13px;color:var(--muted)}
.st .st-mark{display:inline-block;width:10px;height:10px;border:1px solid var(--ink);flex:none}
.st .st-done{background:var(--ink)} .st .st-skipped{background:var(--ink);opacity:.4} .st .st-now{background:linear-gradient(90deg,var(--ink) 50%,var(--white) 50%)}
.st .st-late,.st .st-help{background:var(--danger);border-color:var(--danger)} .st .st-offered{border-style:dashed} .st .st-waiting{background:var(--white)}
.st .st-start{color:var(--muted)} .st tr.st-panel-row td{padding:0 0 12px}
.st .st-pn{border:1px solid var(--edge);padding:12px 14px;margin:4px 0 0} .st .st-pn h3{margin:0 0 8px;font-size:18px} .st .st-pn h4{margin:0 0 8px;font-size:15px}
.st .st-acts3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px} .st .st-acts3 section{border-top:1px solid var(--edge);padding-top:10px}
.st .st-check{display:flex;align-items:center;gap:8px;min-height:44px} .st .st-pn input[type=number]{max-width:120px}
.st .st-people li span:first-child{flex:1 1 220px} .st .st-people{margin-top:4px}
@media (max-width:700px){ .st .st-acts3{grid-template-columns:1fr} .st .st-nav h2{min-width:0;flex:1;font-size:18px} .st table.st-t.stack td{padding:4px 0} .st table.st-t.stack th[scope=row]{min-width:0} }
@media (max-width:700px){ .st .btn,.st .chip,.st .filters button{min-height:44px} .st a.vl{display:inline-flex;align-items:center;min-height:44px} .st .st-people li{align-items:center} }
.st .st-key{display:none;font-size:12px;color:var(--muted);letter-spacing:.02em}
@media (max-width:700px){ .st .st-key{display:block} .st table.st-t.stack,.st table.st-t.stack tbody,.st table.st-t.stack tr{display:block;width:100%} .st table.st-t.stack td,.st table.st-t.stack th[scope=row]{display:block;width:100%;box-sizing:border-box;float:none;padding:4px 0}
  .st table.st-t.stack th[scope=row]{padding:12px 0 6px;border-top:1px solid var(--edge)} .st table.st-t.stack tr.st-panel-row td{padding:0 0 12px} .st table.st-t.stack td.st-start{display:flex;align-items:center;gap:8px;flex-wrap:wrap} }
/* Events and steps: the month's team */
.st .st-mt-link{margin:0 0 12px} .st .mt-status{font-weight:600} .st .mt-status.err{color:var(--danger)}
.st .mt-roles{margin:12px 0 16px} .st .mt-role{padding:8px 0;border-top:1px solid var(--edge)} .st .mt-role dt{font-weight:600;margin:0 0 4px} .st .mt-role dd{margin:0}
.st .mt-people li{justify-content:flex-start;gap:8px 16px} .st .mt-note{color:var(--muted)} .st .mt-role.is-empty .mt-note{margin:0}
.st .mt-pub{margin:8px 0 24px} .st #mt-ask{max-width:640px}
/* Events and steps: templates */
.st .tp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px} .st .tp-grid .tp-wide{grid-column:1/-1}
.st .tp-step{border-top:1px solid var(--edge);padding:12px 0 4px;margin-top:8px} .st .tp-step h3{margin:0 0 8px;font-size:17px}
.st .tp-step textarea,.st .tp-step input[type=text],.st #tp-form input[type=text]{width:100%;box-sizing:border-box} .st .tp-step input[type=number]{max-width:140px}
.st .tp-acts{margin:16px 0 24px} .st #tp-kinds .chip{text-decoration:none}
@media (max-width:700px){ .st .tp-grid{grid-template-columns:1fr} .st #tp-kinds{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px} }
/* Events and steps: tasks */
.st .st-mt-link a{margin-right:16px} .st .tk-who{border:0;padding:0;margin:8px 0 0} .st .tk-who legend{font-weight:600;padding:0;margin:0 0 4px}
.st .tk-list{list-style:none;padding:0;margin:4px 0 8px;max-height:264px;overflow:auto;border:1px solid var(--edge)} .st .tk-list li{padding:0 8px} .st #tk-people,.st #tk-role{margin:0 0 8px 28px}
.st #tk-form .tp-grid>label{display:block} .st #tk-form input[type=text],.st #tk-form input[type=search],.st #tk-form input[type=date],.st #tk-form select,.st #tk-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:4px} .st #tk-form input[type=date],.st #tk-form select{min-height:44px;max-width:360px}
.st .tk-card{border-top:1px solid var(--edge);padding:12px 0 8px} .st .tk-card h3{margin:0 0 6px;font-size:17px} .st .tk-meta{color:var(--muted);margin:0 0 6px} .st .tk-late{color:var(--danger);font-weight:600}
.st .tk-people{list-style:none;padding:0;margin:6px 0} .st .tk-people li{padding:4px 0} .st .tk-closed{list-style:none;padding:0;margin:0} .st .tk-closed li{padding:6px 0;border-top:1px solid var(--edge);display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.st #tk-err ul{margin:8px 0;padding-left:20px}
@media (max-width:700px){ .st #tk-people,.st #tk-role{margin-left:0} .st .st-mt-link a{display:block;margin:0 0 4px} }

/* news post text in BlockNote (TASKS 22k, article.js): the site's fonts and sizes (newsArticle: .na-body .prose 18px, .h-title na-sec,
   .h-card, the quote), BlockNote's own chrome (menus, toolbar) left as it is; the side menu (+ and the drag handle) sits in the gutter */
.art .art-bn{margin:0 0 32px;min-height:120px}
.art .art-bn .bn-container, .art .art-bn .bn-editor{font-family:var(--body);color:var(--ink);background:transparent}
.art .art-bn .bn-editor{padding-inline:0;font-size:18px;line-height:1.6} .art .art-bn [data-content-type="paragraph"] .bn-inline-content, .art .art-bn [data-content-type$="ListItem"] .bn-inline-content{line-height:1.6}
.art .art-bn .bn-block-outer:not(:first-child){margin-top:0} .art .art-bn .bn-block-content{padding:9px 0}
.art .art-bn [data-content-type="heading"]{--level:24px} .art .art-bn [data-content-type="heading"][data-level="3"]{--level:20px}   /* level 2 is the default: BlockNote writes no data-level for it */
.art .art-bn [data-content-type="heading"] .bn-inline-content{font-family:var(--head);font-weight:700;line-height:1.12;letter-spacing:-.005em}
.art .art-bn [data-content-type="heading"]:not([data-level="3"]){padding-top:32px}
.art .art-bn [data-content-type="quote"] blockquote, .art .art-bn [data-content-type="quote"] .bn-inline-content{font:600 22px/1.35 var(--head);border:0;padding:0;color:var(--ink)}
.art .art-bn [data-content-type="quote"]{border-top:1px solid var(--line);padding-top:20px;margin:16px 0}
.art .art-bn a{color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:var(--sky,#0099cc);text-decoration-thickness:2px;text-underline-offset:4px}
.art .art-bn [data-content-type="image"] img{max-width:100%}
.art .art-bn .bn-inline-content:has(> .ProseMirror-trailingBreak:only-child)::before{color:var(--muted)}
@media (min-width:720px){ .art .art-bn [data-content-type="heading"]:not([data-level="3"]){--level:28px} }
@media (max-width:719px){ .art .art-bn .bn-editor{padding-inline:0 0} .art .art-bn .bn-side-menu{display:none} }
.art-focus-on .art-focus .art{position:fixed;inset:0;z-index:60;max-width:none;margin:0;border:0;overflow:auto;padding:24px 0 80px}
.art-focus-on .art-focus .art .na-head, .art-focus-on .art-focus .art .na-body > .wrap > :not(.art-bn){display:none}
.art-focus-on .art-focus .art .na-body > .wrap{max-width:760px;margin:0 auto}
.art-focus-on .art-focus .art-top{position:fixed;top:12px;right:16px;z-index:61;display:flex;gap:8px} .art-focus-on .art-focus .art-top .hint{display:none}
.art-focus-on body{overflow:hidden}
/* the Publish question of a news post: its card as the news list shows it, in both languages (article.js api.preview) */
dialog .pubprev{display:grid;gap:10px;margin:4px 0 16px} dialog .pubprev .pp-h{font-weight:600;margin:0}
dialog .pp-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);padding:10px}
dialog .pp-card img, dialog .pp-card .pp-none{display:block;width:120px;aspect-ratio:1200/630;object-fit:cover;background:var(--line)}
dialog .pp-card p{margin:0} dialog .pp-l{font-size:13px;color:var(--muted)} dialog .pp-when{font-size:13px;color:var(--muted)}
dialog .pp-t{font:700 17px/1.2 var(--head);margin-top:2px !important} dialog .pp-s{font-size:14px;line-height:1.4;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:480px){ dialog .pp-card{grid-template-columns:88px minmax(0,1fr)} dialog .pp-card img, dialog .pp-card .pp-none{width:88px} }

/* TASKS 37: a news post as a form (article.js api.html): an outline on the left, labelled fields in bordered boxes, the text with a
   toolbar row that is always there, each photo once with Change and Remove on it. Phones: one column, the outline is a menu. */
.pe{display:grid;grid-template-columns:190px minmax(0,1fr);gap:40px;align-items:start;max-width:1000px;margin:8px 0 0}
.pe-out{position:sticky;top:calc(var(--hh,64px) + 16px);font-size:15px}
.pe-out-h{font:600 13px/1.3 var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.pe-out ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.pe-out li a{display:block;padding:7px 0 7px 14px;font-weight:500;text-decoration:none;color:var(--ink);margin-left:-1px;border-left:2px solid transparent}
.pe-out li a:hover,.pe-out li a:focus-visible{border-left-color:var(--ink)}
.pe-jump{display:none}
.pe-main{max-width:720px;min-width:0}
.pe-f{margin:0 0 36px;scroll-margin-top:calc(var(--hh,64px) + 16px)}
.pe-lab{font:600 19px/1.3 var(--head);margin:0 0 4px}
.pe-hint{color:var(--muted);font-size:14px;line-height:1.45;margin:0 0 10px;max-width:46em}
.pe-sub{display:block;font:600 14px/1.3 var(--body);margin:10px 0 6px}
.pe-box{display:block;border:1px solid var(--edge);border-radius:8px;background:var(--white);padding:12px 14px;font:400 17px/1.6 var(--body);color:var(--ink);min-height:5.4em;outline:none;white-space:pre-wrap;overflow-wrap:anywhere}
.pe-box.pe-one{min-height:0}
.pe-box.pe-big{font:600 22px/1.3 var(--body)}
.pe-box:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(0,153,204,.35)}
.pe-box[data-ph]:empty::before{content:attr(data-ph);color:var(--muted);pointer-events:none}
.pe-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 20px}
.pe-two .field{margin-bottom:0}
.pe-photo{margin:0 0 20px}
.pe-img{position:relative;border-radius:8px;overflow:hidden;background:var(--wash)}
.pe-img img{display:block;width:100%;max-height:440px;object-fit:cover}
.pe-photo.sm .pe-img img{aspect-ratio:1;max-height:none}
.pe-acts{position:absolute;top:10px;right:10px;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pe-acts .btn{background:var(--white);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.pe-photo.sm .pe-acts{top:6px;right:6px;left:6px;gap:6px}
.pe-photo.sm .pe-acts .btn{padding:4px 8px;font-size:13px;min-height:32px}
.pe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pe-grid .pe-photo{margin:0}
.pe-none{border:1px dashed var(--edge);border-radius:8px;padding:16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.pe-none p{margin:0;color:var(--muted);max-width:32em}
.pe-row{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 0}
.pe-share{display:block;width:100%;max-width:480px;height:auto;border-radius:8px;border:1px solid var(--line);margin:0 0 12px}
.pe-empty{color:var(--muted);margin:0 0 12px}
.pe-ill{margin:0 0 12px}
.pe-rte{border:1px solid var(--edge);border-radius:8px;background:var(--white)}
.pe-rte:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(0,153,204,.35)}
.pe-rte .art-bn{min-height:220px;padding:6px 0 10px}
.pe-rte .art-bn .bn-container,.pe-rte .art-bn .bn-editor{font-family:var(--body);color:var(--ink);background:transparent}
.pe-rte .art-bn .bn-editor{font-size:17px;line-height:1.6;padding-inline:44px 18px}
.pe-rte .art-bn .bn-block-outer:not(:first-child){margin-top:0} .pe-rte .art-bn .bn-block-content{padding:6px 0}
.pe-rte .art-bn [data-content-type="heading"]{--level:24px} .pe-rte .art-bn [data-content-type="heading"][data-level="3"]{--level:20px}
.pe-rte .art-bn [data-content-type="heading"] .bn-inline-content{font-family:var(--head);font-weight:700;line-height:1.15}
.pe-rte .art-bn [data-content-type="heading"]:not([data-level="3"]){padding-top:18px}
.pe-rte .art-bn [data-content-type="quote"] blockquote,.pe-rte .art-bn [data-content-type="quote"] .bn-inline-content{font:600 20px/1.4 var(--head);color:var(--ink)}
.pe-rte .art-bn a{color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:var(--sky);text-decoration-thickness:2px;text-underline-offset:4px}
.pe-rte .art-bn [data-content-type="image"] img{max-width:100%}
.pe-rte .art-bn .bn-inline-content:has(> .ProseMirror-trailingBreak:only-child)::before{color:var(--muted)}
.qv-tb{position:sticky;top:var(--hh,64px);z-index:4;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;background:var(--wash);border-bottom:1px solid var(--line);border-radius:8px 8px 0 0}
.qv-tb-g{display:flex;gap:2px;padding-left:6px;border-left:1px solid var(--line)}
.qv-tb-end{margin-left:auto;border-left:0}
.qv-tb-kind select{min-height:40px;border:1px solid var(--edge);border-radius:6px;background:var(--white);font:500 15px/1.2 var(--body);padding:0 30px 0 10px;color:var(--ink)}
.qv-tb-b{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink);font:400 18px/1 var(--body);cursor:pointer;padding:0}
.qv-tb-b svg{width:20px;height:20px;fill:currentColor;stroke:currentColor;stroke-width:0}
.qv-tb-b svg path,.qv-tb-b svg rect{stroke:currentColor}
.qv-tb-b svg text{stroke:none;font-family:var(--body)}
.qv-tb-b b{font-weight:700} .qv-tb-b i{font-style:italic;font-family:Georgia,serif}
.qv-tb-b:hover{background:var(--white);border-color:var(--line)}
.qv-tb-b:focus-visible{outline:2px solid var(--sky);outline-offset:1px}
.qv-tb-b.on{background:var(--ink);color:var(--white)}
.qv-tb-link{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:6px 0 2px}
.qv-tb-link label{display:flex;flex-direction:column;gap:3px;font:600 13px/1.2 var(--body);flex:1 1 180px}
.qv-tb-link input{min-height:40px;border:1px solid var(--edge);border-radius:6px;padding:0 10px;font:400 16px/1.2 var(--body)}
.qv-tb-ok,.qv-tb-x{min-height:40px;border-radius:6px;padding:0 14px;font:600 15px/1 var(--body);cursor:pointer;border:1px solid var(--ink)}
.qv-tb-ok{background:var(--ink);color:var(--white)} .qv-tb-x{background:var(--white);color:var(--ink)}
.qv-tb-note{flex-basis:100%;margin:0;color:var(--muted);font-size:13px}
.savebar.pe-bar{gap:12px 16px}
.savebar.pe-bar .pe-more-b{display:none}
.pe-tcaps{margin:16px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:8px}
.pe-tcaps .pe-lab{font-size:16px;margin:0 0 4px}
.pe-tcap{display:flex;gap:12px;align-items:flex-end;margin:12px 0 0}
.pe-tcap .field{flex:1;margin:0}
.pe-tcap input{width:100%;min-height:44px}
.pubprev .pp-warn{margin:12px 0 0;padding:10px 12px;border:1px solid var(--edge);border-radius:8px;font-size:14px;line-height:1.4}
.savebar.pe-bar .statebar{border:0;padding:0;margin:0;max-width:none;font:500 14px/1.35 var(--body);flex:1 1 260px}
.pe-extra{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pe-extra .ltabs{margin:0}
@media (max-width:900px){
  .pe{grid-template-columns:minmax(0,1fr);gap:12px}
  .pe-out{top:var(--hh,56px);z-index:5;background:var(--white);padding:8px 0;border-bottom:1px solid var(--line)}
  .pe-out-h,.pe-out ol{display:none}
  .pe-jump{display:flex;align-items:center;gap:10px;font:600 14px/1.2 var(--body)}
  .pe-jump select{flex:1;min-height:44px;border:1px solid var(--edge);border-radius:6px;background:var(--white);font:500 16px/1.2 var(--body);padding:0 10px}
  .pe-f{scroll-margin-top:calc(var(--hh,56px) + 70px)}
  .qv-tb{top:calc(var(--hh,56px) + 61px)}
  .pe-rte .art-bn .bn-editor{padding-inline:30px 12px}
  .pe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .savebar.pe-bar .statebar{flex-basis:100%}
}
.pe-rte .art-bn [data-content-type="image"] .bn-visual-media{max-height:340px;width:auto!important;max-width:100%;object-fit:contain}
.pe-rte .art-bn [data-content-type="image"] .bn-visual-media-wrapper{width:auto!important}
@media (min-width:901px){ .pe ~ details.adv, .pe ~ .adv{margin-left:230px;max-width:720px} }
@media (max-width:900px){
  .savebar.pe-bar{gap:8px 10px}
  .savebar.pe-bar .statebar{flex:none} .savebar.pe-bar .statebar > span:not(.vchip){display:none}   /* the state stays as its chip («Черновик»…); its sentence is for wider screens (Team G's review: the old rule hid the chip too) */
  .savebar.pe-bar #ed-btns .pe-sec{display:none} .savebar.pe-bar #ed-btns.pe-open .pe-sec{display:inline-flex} .savebar.pe-bar .pe-more-b{display:inline-flex}
  .savebar.pe-bar .ltabs button{min-height:44px;padding:6px 10px}
  .savebar.pe-bar .btn{min-width:0}
}
.pe-ill .field.cover > .lbl, .pe-ill .field.cover > .hint{display:none}   /* the Sharing picture section names it; a photo is added in Cover photo */
.pe-ill .drawn .cvimg{max-width:480px;width:100%;height:auto;border-radius:8px}
#pe-share .field:not(.cover) > label:first-child, #pe-share .field:not(.cover) > .lbl:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}   /* the section's own title names it; kept for screen readers */
#pe-share .imgc > .th:not(:has(img)){display:none}
/* TASKS 37: the text box of statements, stories and every richtext field looks like the news text: one bordered box, the toolbar row on top
   (always shown, it stays in view while the text scrolls), 17 px text, the box grows with the text */
.rtbox{max-width:720px;border:1px solid var(--edge);border-radius:8px;background:var(--white)}
.rtbox:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(0,153,204,.35)}
.rt-bar{position:sticky;top:var(--hh,64px);z-index:3;margin:0;padding:6px 8px;gap:4px;background:var(--wash);border-bottom:1px solid var(--line);border-radius:8px 8px 0 0}
.rt-bar .btn{border-color:transparent;background:transparent;border-radius:6px;min-height:40px}
.rt-bar .btn:hover{background:var(--white);border-color:var(--line)}
.rt-bar .btn[aria-pressed=true]{background:var(--ink);color:var(--white);border-color:var(--ink)}
.rt-edit{border:0;border-radius:0 0 8px 8px;padding:12px 14px;min-height:200px;max-height:none;overflow:visible;font:400 17px/1.6 var(--body)}
.rt-edit:focus{outline:none}
.rt-pan{border:0;border-bottom:1px solid var(--line);margin:0;padding:12px 14px 4px}
@media (max-width:900px){ .rt-bar{top:var(--hh,56px)} .rt-bar .btn{min-height:44px} .rt-edit{min-height:180px;max-height:none} }
/* TASKS 37: every plain text area on the team page (program texts, event descriptions, guide text, captions...) is the same box as the
   news text: 1 px border, rounded, 17 px Fira Sans on 1.6, and it grows with the text (field-sizing; app.js does it where that is missing) */
textarea{border:1px solid var(--edge);border-radius:8px;padding:12px 14px;font:400 17px/1.6 var(--body);field-sizing:content;resize:vertical;overflow-y:hidden}
textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(0,153,204,.35);outline:none}
.me .editshow{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;font-size:14px;line-height:1.35;cursor:pointer} .me .editshow input{margin-top:2px;flex:none;width:18px;height:18px}
/* ---- TASKS 37: a guide page's texts (guide.js): a labelled, bordered box with a Link button; one paragraph each, so the box is as tall as its text */
.gp .gbox{margin:8px 0 14px;max-width:44em}
.gp .gbox-l{display:block;margin:0 0 4px;font:600 14px/1.3 var(--head);color:var(--muted)}
.gp .rt-guide{max-width:none}
.gp .rt-guide .rt-edit{min-height:0;padding:10px 12px;font:400 17px/1.55 var(--body);position:relative}
.gp .rt-guide .rt-edit p{margin:0}
.gp .rt-guide .rt-edit a{color:inherit;font-weight:inherit;text-decoration:underline;text-decoration-color:var(--sky);text-decoration-thickness:2px;text-underline-offset:3px}
.gp .rt-guide .rt-edit[data-ph]:has(> p:only-child > br:only-child)::before{content:attr(data-ph);position:absolute;left:12px;top:10px;color:#8a857b;pointer-events:none}
.gp .gbox.t-lead .rt-edit{font-size:18px} .gp .gbox.t-intro .rt-edit{font-size:18px}
.gp .gpara3 .gbox,.gp .qv-list-ticks>li>.gbox{flex:1 1 280px;margin:0}
.gp .gbox + .gfmsg{margin-top:-8px}

/* event Comments tab (drawComments in events.js) */
.cmlist{list-style:none;margin:16px 0 0;padding:0}
.cmlist .cm{border-top:1px solid var(--line,#e5e2da);padding:12px 0}
.cmlist .cm.gone .cm-b{color:#6b665d}
.cmlist .cm-h{margin:0 0 4px;font-size:14px}
.cmlist .cm-b{margin:0 0 6px;white-space:pre-wrap;overflow-wrap:anywhere}
.cmlist .cm-q{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* photo window (Team E, TASKS 23; site/manage/photo-window.js): one window, three tabs; Crop; one place, one photo. Classes start with pw-. */
dialog.pw[open]{display:flex;flex-direction:column;width:min(1060px,96vw);max-width:none;height:min(880px,92vh);max-height:92vh;overflow:hidden}
.pw .pk-head,.pw .pw-tabs,.pw .pw-top,.pw .pw-chips,.pw .pw-uppanel,.pw .pw-uperr{flex:none} .pw .pk-tabs button{min-height:44px;padding:6px 18px}
.pw-top{display:flex;gap:10px;align-items:stretch;margin:0 0 10px} .pw-top input[type=search]{flex:1;min-width:0;max-width:none;min-height:44px} .pw-top .btn{min-height:44px;white-space:nowrap}
.pw .pw-chips{margin:0 0 8px} .pw-uppanel{margin:0 0 10px} .pw-uppanel[hidden]{display:none} .pw .pw-uperr{margin:0 0 6px}
.pw-grp{margin:0 0 22px} .pw-grp h4{font:700 17px/1.3 var(--head);margin:4px 0 10px} .pw-grp h4 small{font:400 14px/1.3 var(--body);margin-left:6px}
.pw-galb{margin:10px 0 0} .pw-galb .palbh b{font:600 14px/1.3 var(--head);color:var(--muted)} .pw-albp{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.pw-albbtn{display:flex;align-items:center;gap:12px;width:100%;max-width:560px;min-height:56px;padding:6px 14px 6px 6px;border:1px dashed var(--edge);background:var(--white);color:var(--ink);font:600 15px/1.3 var(--head);text-align:left;cursor:pointer}
.pw-albbtn:hover,.pw-albbtn:focus-visible{border-color:var(--ink);background:var(--wash)} .pw-albbtn img{width:64px;height:48px;object-fit:cover;flex:none;background:var(--line)}
.pw-drop{display:none;position:absolute;inset:0;z-index:5;background:rgba(255,255,255,.92);border:3px dashed var(--ink);align-items:center;justify-content:center;font:700 22px/1.3 var(--head);color:var(--ink);pointer-events:none;text-align:center;padding:20px}
dialog.pw{position:fixed} dialog.pw.dragging .pw-drop{display:flex} dialog.pw.busy .pw-body{opacity:.6;pointer-events:none} .pw-alberr{margin:8px 0}
.pw-body{flex:1 1 auto;min-height:0;overflow:auto;padding:2px 2px 8px;overscroll-behavior:contain}
.pw .pk-body .pgrid{max-height:none;overflow:visible}
.pw .pgrid.big.pw-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px} .pw .pw-grid .pbtn img{aspect-ratio:4/3}
.pw .pcell.is-now{border-color:var(--ink)} .pw-now{position:absolute;top:8px;left:8px;background:var(--yellow);color:var(--ink);font:600 12px/1.5 var(--head);padding:0 6px}
.pw .pk-foot{position:static;flex:none;margin:12px -18px -16px} .pw .pk-ferr{flex:none;margin:6px 0 0}
.pw-sentinel{display:block;height:1px} #pw-fhits h4,.pw-albs h4{margin:14px 0 8px}
.pw-albq[hidden]{display:none}
.pw-up .uppy-Dashboard-inner{border:2px dashed var(--edge);border-radius:0;background:var(--white)} .pw-up .uppy-Dashboard-AddFiles{border:0}
.pw-up .uppy-Dashboard-AddFiles-title{font:600 18px/1.35 var(--head);color:var(--ink);max-width:28em}
.pw-up .uppy-Dashboard-browse{color:var(--ink);text-decoration:underline;font-weight:600} .pw-up .uppy-Dashboard-browse:hover{color:var(--ink);text-decoration-thickness:2px}
.pw-up .uppy-StatusBar-progress{background-color:var(--ink)} .pw-up .uppy-StatusBar.is-uploading .uppy-StatusBar-progress{background-color:var(--ink)}
.pw-up .uppy-Dashboard-Item-progressIndicator .uppy-c-icon{color:var(--ink)}
/* Uppy in the team page's look (Team G's item 8): ink, not its blue and green; 44 px targets; no file sizes */
.pw-up .uppy-DashboardContent-back,.pw-up .uppy-DashboardContent-addMore,.pw-up .uppy-StatusBar-actionBtn,.pw-up .uppy-Dashboard-Item-action{color:var(--ink);min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}
.pw-up .uppy-StatusBar-actionBtn--done,.pw-up .uppy-StatusBar-actionBtn--retry{background:var(--ink);color:var(--white);border-radius:0;padding:0 16px}
.pw-up .uppy-Dashboard-Item-progressIndicator circle,.pw-up .uppy-Dashboard-Item-progressIcon--circle circle{fill:var(--ink)} .pw-up .uppy-Dashboard-Item-progressIcon--check{color:var(--white)}
.pw-up .uppy-StatusBar.is-complete .uppy-StatusBar-progress,.pw-up .uppy-StatusBar-statusIndicator{background-color:var(--ink);color:var(--ink)} .pw-up .uppy-StatusBar.is-complete .uppy-StatusBar-statusIndicator{color:var(--ink)}
.pw-up .uppy-Dashboard-Item-statusSize{display:none} .pw-up .uppy-Dashboard-Item-name{white-space:normal;overflow-wrap:anywhere} .pw-uphint{margin:10px 0 0} .pw-uperr:empty{display:none}
/* Crop */
.pw-cwrap{flex:1 1 auto;min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;align-items:start}
.pw-cropbox{height:min(46vh,460px);background:var(--wash);border:1px solid var(--line);overflow:hidden} .pw-cropbox img{display:block;max-width:100%}
.pw-cropbox[hidden],.pw-focbox[hidden],.pw-cctl[hidden],.pw-fctl[hidden]{display:none} .pw-modes{margin:0 0 10px}
.pw-focbox{position:relative;display:inline-block;max-width:100%;cursor:crosshair;line-height:0;border:1px solid var(--line)} .pw-focbox img{display:block;max-width:100%;max-height:min(52vh,520px)}
.pw-cross{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border:3px solid var(--white);border-radius:50%;box-shadow:0 0 0 2px var(--ink),inset 0 0 0 2px var(--ink);pointer-events:none}
.pw-shapes h4{font:600 15px/1.3 var(--head);margin:0 0 8px} .pw-shape{margin:0 0 12px} .pw-shbox{width:100%;overflow:hidden;background:var(--line);border:1px solid var(--line)}
.pw-shbox img{display:block;width:100%;height:100%;object-fit:cover} .pw-shape figcaption{font-size:13px;color:var(--muted);margin-top:4px}
.pw-ratios{margin:12px 0 0;align-items:center} .pw-ratios .btn{min-height:44px} .pw-csize{margin:8px 0 0;font-weight:600;color:var(--ink)}
.pw-crop .pk-foot{justify-content:flex-end}
.pw .pw-note:empty{display:none} .pw .pw-note{margin:8px 0 0}
/* Cropper.js in ink, not its own blue (Team G's item 18); the corner handles stay large enough for a finger */
.pw-crop .cropper-view-box{outline:2px solid var(--ink);outline-color:var(--ink)} .pw-crop .cropper-line,.pw-crop .cropper-point{background-color:var(--ink)} .pw-crop .cropper-point.point-se{width:12px;height:12px} .pw-crop .cropper-dashed{border-color:rgba(255,255,255,.7)}
/* one place, one photo (F.photoSlot) */
.pw-slot{max-width:520px} .pw-slot.over .pw-slote,.pw-slot.over .pw-slotf{outline:3px solid var(--ink);outline-offset:2px} .pw-slot.busy{opacity:.6;pointer-events:none}
.pw-slotf{margin:0;border:1px solid var(--line);background:var(--white)} .pw-slotf img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--line)}
.pw-slotf figcaption{padding:8px 10px;font-size:14px;color:var(--muted);overflow-wrap:anywhere}
.pw-slota{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0} .pw-slota .btn{min-height:44px}
.pw-slote{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;aspect-ratio:3/2;border:2px dashed var(--edge);background:var(--white);color:var(--ink);font:600 17px/1.3 var(--head);cursor:pointer;padding:16px}
.pw-slote:hover,.pw-slote:focus-visible{border-color:var(--ink);background:var(--wash)} .pw-slote small{font:400 13px/1.4 var(--body);color:var(--muted)} .pw-plus{font:300 44px/1 var(--head)}
.pw-sloterr:empty{display:none}
@media (max-width:600px){
  .pw-cwrap{grid-template-columns:minmax(0,1fr)} .pw-shapes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px} .pw-shapes h4{grid-column:1/-1} .pw-cropbox{height:min(46vh,380px)}
  dialog.pw[open]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:12px 14px calc(12px + env(safe-area-inset-bottom))}
  .pw .pk-tabs{overflow-x:auto} .pw .pk-tabs button{flex:1 0 auto;padding:6px 12px} .pw-top{flex-wrap:wrap} .pw-top .btn{flex:1 0 100%} .pw-albp{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pw .pgrid.big.pw-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .pw .pk-foot{margin:10px -14px -12px;padding:12px 14px calc(12px + env(safe-area-inset-bottom))}
  .pw-up .uppy-Dashboard-AddFiles-title{font-size:16px}
  .pw-slot{max-width:none}
}
.pw-rot{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0} .pw-rot .btn{min-height:44px}
/* the photo strip (event-photos.js mountStrip, TASKS 23): each photo once and large, its tools under it, drag the photo (SortableJS) */
/* the photo strip as a gallery (owner, 2026-11-05: "why are photos different size? why am I not able to sort them? why can't I enlarge photos?"):
   every photo the same square, drag it to sort, click it to open it large; the album's "more" photos are the same squares */
.pw-strip,.evp-pool{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.pw-c{display:flex;flex-direction:column;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none} .pw-c:hover{border-color:var(--ink)} .pw-c:active{cursor:grabbing}
.pw-c:focus-within{border-color:var(--ink)} .pw-ci:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}
.evp-pool .pw-padd{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0;border:0;background:none;cursor:copy} .evp-pool .pw-padd:focus-visible{outline:3px solid var(--ink);outline-offset:-3px} .evp-pool .pw-padd:disabled{cursor:not-allowed}
.pw-ci{position:relative;display:block} .pw-ci img,.evp-pool .evp-c img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;pointer-events:none}
.pw-c .evp-badge{font-size:15px;padding:4px 6px}
.pw-cap1{display:block;padding:4px 6px;font-size:13px;line-height:1.3;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .pw-cap1.none{color:var(--muted);font-style:italic}
.pw-c.drag{opacity:.4} .pw-c.drop{outline:3px solid var(--ink);outline-offset:2px} .sortable-fallback{opacity:.9}
.pw-ghint{margin:6px 0 0;font-size:14px;color:var(--muted);max-width:60em}
.pw-caps{display:grid;gap:6px} .pw-caps label{display:grid;gap:2px;font-size:13px;color:var(--muted)} .pw-caps textarea{width:100%;min-height:52px;font:400 15px/1.35 var(--body);resize:vertical;padding:6px 8px}
/* one photo large */
dialog.pw-view{width:min(1100px,96vw);max-width:none}
.pw-vstage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;background:#1c1c1b;padding:8px;min-height:200px}
.pw-vstage{grid-template-rows:min(62vh,720px)} .pw-vstage img{display:block;width:100%;height:100%;max-height:none;object-fit:contain}   /* a fixed row: a tall photo never spills over the captions (Team G) */
.pw-varr{width:48px;height:48px;border:0;background:var(--white);color:var(--ink);font:700 22px/1 var(--head);cursor:pointer} .pw-varr:disabled{opacity:.25;cursor:default}
.pw-vt{margin:8px 0 0} .pw-vcaps{margin:10px 0 0;grid-template-columns:1fr 1fr;gap:12px}
.evp-pend,.pw-vpend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px} .evp-pend p,.pw-vpend p{margin:0} .evp-ptools{display:flex;gap:8px} .evp-ptools .btn{min-height:44px}
dialog.pw-view[open]{overflow:auto} dialog.pw-view[open] > *{flex:none}   /* the photo never runs under the captions on a phone (it did: the window's fixed column shrank the photo's box) */
.pw-vacts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0} .pw-vacts .btn{min-height:44px} .pw-vacts .pw-vrem{color:var(--danger)} .pw-vpend{margin:10px 0 0}
@media (max-width:600px){ .pw-strip,.evp-pool{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px} .pw-cap1{font-size:12px;padding:3px 4px}
  dialog.pw-view{width:100vw;height:100dvh;max-height:none;margin:0} .pw-vstage{grid-template-columns:40px minmax(0,1fr) 40px;padding:4px;gap:4px} .pw-varr{width:40px;height:44px}
  .pw-vstage{grid-template-rows:48vh} .pw-vcaps{grid-template-columns:1fr} .pw-vacts .btn{flex:1 1 45%} .evp-shown .pw-c .evp-badge{position:absolute;display:inline-block;padding:3px 5px} }
/* a photo field (forms.js imageControl, TASKS 23): the photo large, its buttons beside it (under it on a phone) */
.pw-imgc .th.big{width:300px;height:200px} .pw-imgc > div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:24em} .pw-imgc > div .hint{flex:1 0 100%;margin:0}
.pw-imgc .btn{min-height:40px}
@media (max-width:600px){ .pw-imgc .th.big{width:100%;height:auto;aspect-ratio:3/2} .pw-imgc .btn{min-height:44px} }

/* the photo window (photo-window.js): "See it large" on every tile (TASKS 51), photos the place already shows, the preview over the window */
.pbig{position:absolute;z-index:2;top:6px;right:6px;width:44px;height:44px;padding:0;display:grid;place-items:center;border:1px solid var(--ink);background:var(--white);color:var(--ink);cursor:zoom-in}
.pbig:hover{background:var(--ink);color:var(--white)} .pbig:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.pcell.pg .pbtn{padding:0;display:block} .pcell.pg .pbtn img{aspect-ratio:1/1}
.pcell.is-here .pbtn{cursor:default} .pcell.is-here .pbtn img{opacity:.45}
.pw-here{position:absolute;top:8px;left:8px;background:var(--ink);color:var(--white);font:600 12px/1.5 var(--head);padding:0 6px}
.pcell.is-here em{display:none}
dialog.pw-pv .pk-head{align-items:flex-start} dialog.pw-pv .pk-head h3{margin:0} .pw-pvn{margin:2px 0 0} .pw-pvinfo{margin:10px 0 0} .pw-pv .pw-vacts{align-items:center}
/* 44 px targets on phones and touch screens, across Site management (Team G's review of the news editor, #9): the small buttons, the RU/EN switch,
   the language tabs, folds, and the text toolbar; the toolbar keeps two rows on a 390 px phone (kind of text with undo and redo, then the rest) */
@media (max-width:900px), (pointer:coarse){
  .btn.sm, .lang button, .ltabs button, details > summary, details.adv > summary{min-height:44px}
  .qv-tb-b{width:44px;height:44px} .qv-tb-kind select{min-height:44px}
  .crumb a{display:inline-flex;align-items:center;min-height:44px}
}
@media (max-width:600px){ .qv-tb-end{order:-1} .qv-tb-kind{order:-2} .qv-tb-kind select{max-width:196px} }
/* a fold says it folds: a chevron before its title, turned when open (Team G's review of the news editor, #12) */
details.adv>summary{list-style:none} details.adv>summary::-webkit-details-marker{display:none}
details.adv>summary::before{content:"";flex:none;width:7px;height:7px;margin:0 12px 0 4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
details.adv[open]>summary::before{transform:rotate(45deg)}
.pe-lab .pe-in{font-weight:400;color:var(--muted)}
