/*
Theme Name: JBZ PWA Theme
Author: JBZ
Version: 0.7.3
Description: PWA-first, mobile UI theme for Jeugdbrandweer Zierikzee.
*/
:root{
  --jbz-bg:#0b0b0e;
  --jbz-surface:rgba(255,255,255,.06);
  --jbz-border:rgba(255,255,255,.10);
  --jbz-text:rgba(255,255,255,.92);
  --jbz-muted:rgba(255,255,255,.68);
  --jbz-primary:#b00000;
  --jbz-primary-2:#d01717;
  --jbz-shadow:0 16px 40px rgba(0,0,0,.55);
  --radius-lg:22px;
  --space-3:14px;
  --space-4:18px;
  --space-5:24px;
  --bottom-nav-h:76px;
}
*{box-sizing:border-box}
body{
  margin:0;
  min-height:100%;
  background:radial-gradient(900px 500px at 40% 10%, rgba(176,0,0,.33), transparent 60%), var(--jbz-bg);
  color:var(--jbz-text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}

/* Ensure links don't render as browser-default purple */
.site a{color:var(--jbz-text)}
.site a:visited{color:var(--jbz-text)}
.site a:hover{color:#fff}
.site a:active{color:#fff}
.container{width:min(980px,100%);margin:0 auto;padding:var(--space-4)}
.content-card{
  background:linear-gradient(180deg, rgba(176,0,0,.12), rgba(255,255,255,.04));
  border:1px solid var(--jbz-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--jbz-shadow);
  padding:var(--space-4);
}
h1,h2{margin:0 0 12px 0;letter-spacing:-.02em}
h1{font-size:26px}
h2{font-size:22px}
p{margin:0 0 10px 0;color:var(--jbz-muted);line-height:1.5}
.section-title{margin-top:var(--space-5);margin-bottom:var(--space-3)}

.appbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:var(--space-4);padding-bottom:var(--space-3)}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand img{width:44px;height:44px;border-radius:14px;box-shadow:0 10px 25px rgba(0,0,0,.35)}
.brand .title{font-weight:800;font-size:18px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand .subtitle{font-size:13px;color:var(--jbz-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip{border:1px solid rgba(176,0,0,.35);background:rgba(176,0,0,.12);padding:10px 14px;border-radius:999px;font-weight:800;font-size:13px;white-space:nowrap}

.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 var(--space-4) var(--space-4)}
.tile{position:relative;display:flex;align-items:center;gap:14px;padding:16px 14px;border-radius:var(--radius-lg);border:1px solid var(--jbz-border);background:rgba(255,255,255,.04);box-shadow:0 18px 40px rgba(0,0,0,.45);text-decoration:none;min-height:92px;overflow:hidden}
.tile::before{content:"";position:absolute;inset:-60px -60px auto auto;width:160px;height:160px;background:radial-gradient(circle, rgba(176,0,0,.35), transparent 60%);filter:blur(6px)}
.tile .icon{width:44px;height:44px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(176,0,0,.16);border:1px solid rgba(176,0,0,.35);flex:0 0 auto}
.tile .icon span{font-size:18px;opacity:.92}
.tile .meta{min-width:0}
.tile .label{font-weight:900;font-size:clamp(15px,2.6vw,18px);line-height:1.12;margin-bottom:6px;word-break:keep-all;overflow-wrap:normal;hyphens:none;white-space:normal}
.tile .desc{font-size:13px;color:var(--jbz-muted);line-height:1.35;word-break:normal;overflow-wrap:normal;hyphens:auto}
.tile:active{transform:translateY(1px) scale(.99);background:rgba(255,255,255,.06)}

.button,button,input[type=submit],input[type=button]{appearance:none;border:0;background:linear-gradient(180deg,var(--jbz-primary-2),var(--jbz-primary));color:#fff;font-weight:900;padding:14px 16px;border-radius:999px;box-shadow:0 14px 28px rgba(176,0,0,.30);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.button:active,button:active,input[type=submit]:active{transform:translateY(1px) scale(.99)}

.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:var(--bottom-nav-h);padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(10,10,12,.72);backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.08);z-index:999}
.bottom-nav .wrap{width:min(980px,100%);margin:0 auto;display:flex;gap:10px}
.bottom-nav a{flex:1;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px}
.bottom-nav a .i{font-size:18px;opacity:.9}
.bottom-nav a .t{font-size:12px;color:rgba(255,255,255,.75);font-weight:800}
.bottom-nav a.is-active{background:rgba(176,0,0,.18);border-color:rgba(176,0,0,.35)}
.has-bottom-nav .site{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom))}

.news-card{background:rgba(255,255,255,.04);border:1px solid var(--jbz-border);border-radius:var(--radius-lg);padding:14px}
.news-card .headline{font-weight:900;font-size:16px;margin:0 0 6px 0}
.news-card .date{font-size:13px;color:var(--jbz-muted)}

.jbz-cal-list iframe{width:100%;height:330px;border:0;border-radius:var(--radius-lg);background:rgba(255,255,255,.03)}
.jbz-cal-month iframe{width:100%;height:min(78vh,860px);border:0;border-radius:var(--radius-lg);background:rgba(255,255,255,.03)}
.jbz-cal-actions{display:flex;gap:10px;margin-top:12px}
.jbz-cal-actions .button{flex:1}

@media (display-mode: standalone){.jbz-install-tip{display:none!important}}


/* --- App polish fixes (v0.5.0) --- */
html, body, .site, .container, .card, .tile, .tile *{
  -webkit-hyphens:none !important;
  hyphens:none !important;
  word-break:normal;
  overflow-wrap:break-word; /* only break on spaces */
}
a, a:visited{ color: inherit; }
a{ text-decoration:none; }
.bottom-nav .i svg{ width:22px; height:22px; display:block; }
.bottom-nav a{ gap:4px; }
.tile .label{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:clip; /* no ellipsis */
  line-height:1.15;
}
.tile .label{ font-size:clamp(14px, 3.2vw, 18px); }
.tile:active{ transform:translateY(1px); filter:brightness(1.1); }


.appbar .back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;height:40px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  color:var(--jbz-text);
  margin-right:10px;
}


/* Tile availability badge */
.tile{position:relative;}
.tile .badge{position:absolute;top:10px;right:10px;font-size:12px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.12);color:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.18);} 
.tile.is-soon{opacity:.92;}


/* Home appbar logo */
.appbar .brand .logo,
.appbar .brand .logo-fallback{
  width: 44px;
  height: 44px;
  border-radius: 12px;
  overflow: hidden;
  flex: 0 0 auto;
}
.appbar .brand .logo img,
.appbar .brand img.logo-fallback{
  width: 44px;
  height: 44px;
  object-fit: cover;
  display: block;
}
.appbar .brand .custom-logo-link{
  display: block;
}



/* Header logo subtle outline/glow */
.appbar .brand .logo,
.appbar .brand .logo-fallback{
  box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 8px 20px rgba(0,0,0,.35);
}
.appbar .brand .logo img,
.appbar .brand img.logo-fallback{
  filter: drop-shadow(0 0 10px rgba(255, 120, 0, .18));
}



/* Junioren vs Aspiranten accents */
.page-junioren { --accent: #d32f2f; }
.page-aspiranten { --accent: #8b0000; }

.page-junioren .appbar,
.page-aspiranten .appbar {
  background: var(--accent);
}
