/* Calfurn ShowPrep — aligned with Product Development / Registration */
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("/fonts/source-sans-3-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --bg:#fbf9f5;--paper:#fff;--ink:#26231e;--ink2:#5d574d;--muted:#958d80;
  --line:#e9e3d8;--line2:#f1ece3;
  --acc:#576c30;--acc-d:#435423;--acc-l:#eef1e6;--brand:#576c30;
  --bronze:#9a7448;--r:6px;
  --danger:#8e3a1f;--danger-bg:#fbf1ec;
  --ok-bg:#eef1e6;--ok-ink:#435423;
  --sh:0 10px 40px rgba(60,50,30,.06);
  --sans:"Source Sans 3","Source Sans Pro",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"Source Sans 3","Source Sans Pro",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --pad:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;min-height:100vh;display:flex;flex-direction:column;
  background:var(--bg);color:var(--ink);
  font:400 13.5px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;letter-spacing:-.005em
}
a{color:var(--ink);text-decoration-color:var(--line);text-underline-offset:3px}
a:hover{color:var(--acc-d)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
main:focus{outline:none}
h1,h2{font-family:var(--serif);letter-spacing:-.01em;overflow-wrap:anywhere}
h1{font:500 2.136rem/1.1 var(--serif);margin:.1em 0 .35em}
h2{font:500 1.38rem/1.2 var(--serif);margin:0 0 .9em}
p,dl,dd,figure{margin:0}
.muted,.help,footer{color:var(--muted)}

/* Full-width shell, dash-like gutters, no 1200px side margins */
.wrap,.bar{
  width:100%;max-width:none;margin:0;
  padding-left:var(--pad);padding-right:var(--pad)
}
@media (min-width:820px){:root{--pad:16px}}
@media (min-width:1280px){:root{--pad:20px}}
@media (min-width:1920px){:root{--pad:24px}}

/* Header */
.top{
  background:rgba(251,249,245,.92);
  backdrop-filter:saturate(1.2) blur(8px);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:10
}
.bar{
  display:flex;align-items:center;gap:18px;min-height:72px
}
.brand{
  display:flex;align-items:center;gap:14px;
  text-decoration:none;color:var(--ink);padding:12px 0;margin-right:auto
}
.brand img{display:block;height:26px;min-height:24px;width:auto}
.app-tag{
  display:inline-flex;align-items:center;
  font:600 .62rem var(--sans);letter-spacing:.06em;text-transform:uppercase;
  border-radius:999px;padding:3px 9px;line-height:1.3;white-space:nowrap
}
.app-tag-showprep{background:var(--acc-l);color:var(--acc-d);border:1px solid #d8e0cc}
.brand .app-tag{margin-left:2px;flex:none}
nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
nav a{text-decoration:none;font:500 .819rem var(--sans);color:var(--ink2)}
nav a:hover{color:var(--acc-d)}
nav a[aria-current="page"]{color:var(--acc-d)}
.av{
  width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font:600 .756rem var(--sans);flex:none
}
.quiet{
  background:transparent;border:0;color:var(--ink2);padding:0;cursor:pointer;
  font:500 .819rem var(--sans);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)
}
.quiet:hover{color:var(--acc-d)}

main.wrap{flex:1;padding:44px var(--pad) 64px}
footer{border-top:1px solid var(--line);padding:18px var(--pad);font-size:.783rem}

.page-heading{
  display:flex;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;gap:16px;margin-bottom:28px
}
.page-heading p{margin-top:4px;color:var(--muted)}
.eyebrow,.pill{
  display:inline-block;font:500 .62rem var(--sans);letter-spacing:.1em;
  text-transform:uppercase;padding:3px 9px;border-radius:20px;
  background:var(--acc-l);color:var(--acc-d);font-style:normal
}
.eyebrow{margin:0 0 10px}
.back{display:inline-block;margin-bottom:18px;font-size:.819rem;text-decoration:none;color:var(--ink2)}
.back:hover{color:var(--acc-d)}
section{margin-bottom:34px}

/* Buttons */
.btn, .btn-google{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:var(--r);cursor:pointer;text-decoration:none;
  transition:background .15s,border-color .15s,box-shadow .15s
}
.btn{
  background:var(--ink);color:#fff;border:1px solid var(--ink);
  padding:10px 20px;font:500 .765rem var(--sans);letter-spacing:.02em
}
.btn:hover{background:var(--acc-d);border-color:var(--acc-d);color:#fff}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--ink);background:transparent;color:var(--ink)}
.btn.big{padding:13px 28px}
.btn:disabled,button:disabled{opacity:.55;cursor:wait}
.btn-google{
  gap:10px;width:100%;box-sizing:border-box;
  background:#fff;color:#1f1f1f;border:1px solid #dadce0;
  padding:11px 16px;font:500 .819rem var(--sans);letter-spacing:.01em
}
.btn-google:hover{background:#f8f9fa;border-color:#c6c9cc;color:#1f1f1f;box-shadow:0 1px 3px rgba(60,64,67,.12)}
.btn-google .g-logo{flex:none;display:block}

/* Forms */
input,select,textarea{
  font:inherit;font-size:.819rem;padding:11px 12px;
  border:1px solid var(--line);border-radius:var(--r);
  background:var(--paper);width:100%;color:var(--ink);transition:border-color .15s
}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-l)}
label{display:grid;gap:5px;font-size:.819rem;color:var(--ink2);min-width:0}
.checkbox{display:flex;align-items:center;gap:8px;white-space:nowrap;color:var(--ink)}
.checkbox input{width:auto}
.inline-form,.edit-row,.account,.actions{display:flex;flex-wrap:wrap;gap:14px;align-items:end}
.inline-form{margin-top:16px}
.inline-form label,.edit-row label:not(.checkbox){flex:1 1 150px}
.edit-row,.account{padding:12px 14px;margin-bottom:12px;background:rgba(255,255,255,.75);border-radius:6px;border:0}
.account strong{overflow-wrap:anywhere}
.account > div,.account > strong{flex:1 1 180px;min-width:0}
.account small{display:block;margin-top:4px;color:var(--bronze);font:600 .68rem var(--sans);letter-spacing:.04em;text-transform:uppercase}
.actions{align-items:center}
.actions a{font-size:.819rem}

/* Login — matches dev/reg card + dash/reg Google button */
.login{
  max-width:420px;margin:9vh auto;text-align:center;padding:48px 36px;
  border:1px solid var(--line);border-radius:10px;background:var(--paper);
  box-shadow:var(--sh)
}
.login .lgw{padding:8px 0 22px}
.login .lg{display:block;margin:0 auto;height:40px;width:auto}
.login .app-tag{margin:0 0 12px}
.login h1{font:500 1.869rem/1.15 var(--serif);letter-spacing:-.01em;margin:0 0 4px;text-align:center}
.login .app-host{margin:-.15em 0 1.1em;color:var(--muted);font-size:.8rem;letter-spacing:.01em}
.login .sub{text-align:center;color:var(--muted);margin:0 0 24px;font-size:.783rem;line-height:1.55}
.login .notice{margin:0 0 16px;text-align:left}

/* Event cards and panels */
.event-grid,.photo-grid,.form-grid,.two-col{display:grid;gap:18px}
.event-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.event-card{
  color:inherit;background:var(--paper);border:1px solid var(--line);
  border-radius:10px;padding:22px 22px 18px;text-decoration:none;
  box-shadow:var(--sh);overflow-wrap:anywhere;display:block
}
.event-card:hover{border-color:#d8d0c2}
.event-card h2{font:500 1.264rem/1.2 var(--serif);margin:8px 0 8px}
.event-card p{color:var(--ink2)}
.event-card small{
  display:block;border-top:1px solid var(--line);padding-top:12px;margin-top:16px;
  color:var(--muted);font-size:.783rem
}
.facts{
  display:grid;grid-template-columns:1fr 1.5fr 1fr;
  background:var(--paper);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--sh);margin-bottom:32px;overflow:hidden
}
.facts div{min-width:0;padding:18px 20px;overflow-wrap:anywhere}
.facts div + div{border-left:1px solid var(--line)}
dt{color:var(--muted);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
dd{font-weight:600}

/* Photos and upload */
.photo-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
figure{
  border:1px solid var(--line);background:var(--paper);border-radius:10px;
  overflow:hidden;min-width:0;box-shadow:var(--sh)
}
figure img,figure canvas{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f2ede4}
figcaption,figure .quiet{margin:10px 12px;overflow-wrap:anywhere;font-size:.783rem;color:var(--ink2)}
.upl{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;margin-top:16px}
.bigbtn{
  position:relative;display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:58px;min-width:min(100%,220px);flex:1 1 200px;
  border-radius:var(--r);font:500 .819rem var(--sans);cursor:pointer;padding:12px 16px;
  transition:background .15s,border-color .15s
}
.bigbtn input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0;padding:0;border:0;font-size:0}
.bigbtn.gal{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.bigbtn.gal:hover{border-color:var(--ink)}
.bigbtn.cam{background:var(--ink);color:#fff;border:1px solid var(--ink)}
.bigbtn.cam:hover{background:var(--acc-d);border-color:var(--acc-d)}
body.no-camera .bigbtn.cam{display:none}
.caption-field{flex:1 1 220px;min-width:180px;margin-top:14px}
.queue{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;margin-top:16px}
.qi{
  background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden;
  box-shadow:var(--sh)
}
.qi .preview{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#f2ede4}
.qi .meta{padding:10px 12px 12px;font-size:.783rem;color:var(--ink2)}
.qi .meta strong{display:block;font:600 .68rem var(--sans);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}
.qi.is-busy .meta strong{color:var(--bronze)}
.qi.is-ok .meta strong{color:var(--ok-ink)}
.qi.is-err .meta strong{color:var(--danger)}
.qi .sizes{color:var(--muted)}

/* Tables and packing (thread-like rows) */
.table-wrap{overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh)}
table{width:100%;border-collapse:collapse;font-size:.783rem}
th,td{text-align:left;padding:12px 15px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
th{background:var(--line2);font:600 .72rem var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
tr:last-child td{border-bottom:0}
.packing{list-style:none;padding:0;margin:0}
.packing li{
  padding:12px 14px;margin:0 0 10px;display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.75);border-radius:6px;overflow-wrap:anywhere
}
.check{
  width:20px;height:20px;flex:0 0 20px;border:1px solid var(--acc);
  border-radius:4px;display:grid;place-items:center;line-height:1;font-size:.75rem
}
.packed{background:var(--acc);color:#fff;border-color:var(--acc)}
.two-col,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.empty{color:var(--muted)}

/* Notices — comment/thread tone */
.notice{
  background:rgba(255,255,255,.75);border-radius:6px;padding:12px 14px;margin:0 0 16px;
  border-left:2px solid var(--acc)
}
.notice[role="alert"],.err{
  color:var(--danger);background:var(--danger-bg);border-left-color:var(--danger)
}

@media (max-width:760px){
  body{font-size:14px}
  main.wrap{padding-top:26px;padding-bottom:48px}
  h1{font-size:1.736rem}
  .bar{min-height:60px;gap:12px}
  .brand{padding:10px 0;gap:10px}
  .brand img{height:24px}
  nav{gap:12px}
  .login{margin:6vh auto;padding:40px 24px}
  .login .lg{height:34px}
  .two-col,.form-grid,.facts{grid-template-columns:1fr}
  .facts div + div{border-left:0;border-top:1px solid var(--line)}
  .facts div{padding:12px 16px}
  .edit-row label:not(.checkbox){flex-basis:100%}
  th,td{padding:9px}
  .bigbtn{min-height:64px;flex-direction:column;gap:6px;font-size:.765rem;flex-basis:100%}
}
