:root{--primary:#22626b;--primary-visited:#1b4f56;--bg:#f7f9fb;--text:#1f2933}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
a{color:var(--primary);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.14em}
a:visited{color:var(--primary-visited)}
a:hover,a:focus-visible{color:var(--primary)}
.container{max-width:1100px;margin:0 auto;padding:1rem}.row-between{display:flex;justify-content:space-between;align-items:center}
.site-header,.site-footer{background:#fff;border-bottom:1px solid #e8edf2}.site-footer{border-top:1px solid #e8edf2;border-bottom:none}
.brand{font-weight:700;color:var(--primary);text-decoration:none}
.header-shell{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.desktop-nav{display:flex;align-items:center;gap:.6rem}
.desktop-nav>a,.nav-group summary{color:#334e68;text-decoration:none;padding:.35rem .55rem;border-radius:8px;cursor:pointer;list-style:none}
.nav-group{position:relative}.nav-group summary::-webkit-details-marker{display:none}
.nav-group[open] summary,.desktop-nav>a:hover,.nav-group summary:hover{background:#eef5f6}
.nav-dropdown{position:absolute;top:calc(100% + .4rem);right:0;min-width:220px;background:#fff;border:1px solid #d9e2ec;border-radius:10px;box-shadow:0 12px 24px rgba(0,0,0,.08);padding:.35rem;display:grid;gap:.2rem;z-index:20}
.nav-dropdown a{display:block;padding:.4rem .5rem;color:#334e68;text-decoration:none;border-radius:8px}.nav-dropdown a:hover{background:#eef5f6}
.menu-toggle,.menu-close{display:none;background:transparent;border:0;cursor:pointer}
.menu-toggle span{display:block;width:24px;height:3px;background:#334e68;margin:4px 0;border-radius:10px}
.mobile-menu{display:none}
.hero{padding:2rem;background:#eaf4f5;border-radius:12px;margin:1rem 0}.panel{background:#fff;border-radius:12px;padding:1rem;margin:1rem 0}
.panel-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem}.panel img{max-width:100%;border-radius:8px}
.btn{display:inline-block;background:var(--primary);color:#fff;padding:.5rem .9rem;border-radius:8px;text-decoration:none;border:none;cursor:pointer}
.btn:visited{color:#fff}
label{display:block;margin:.6rem 0}input,textarea,select{width:100%;padding:.6rem;border:1px solid #cbd5e0;border-radius:8px}
fieldset{border:1px solid #d9e2ec;border-radius:8px;margin:.8rem 0;padding:.8rem}.alert{padding:.75rem;border-radius:8px;margin:.6rem 0}
.alert.success{background:#d9fbe5}.alert.error{background:#ffe3e3}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.card{background:#fff;padding:1rem;border-radius:10px;border:1px solid #e5eaef}.admin-nav .btn{margin-right:.5rem;margin-bottom:.5rem}
.admin-dashboard{display:grid;gap:1rem}
.admin-dashboard-header p{margin-top:.25rem;margin-bottom:0}
.admin-dashboard .card{display:flex;flex-direction:column;gap:.25rem}
.admin-dashboard .card strong{font-size:1.6rem;line-height:1}
.admin-dashboard-subtitle{margin-top:0;margin-bottom:.85rem}
.admin-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.65rem}
.admin-nav .btn{margin:0;text-align:center}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.media-card{display:flex;flex-direction:column;gap:.55rem}
.media-thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#f1f5f9}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:.55rem;border:1px solid #e5eaef;text-align:left}.hidden{display:none}.narrow{max-width:540px}
.footer-grid{display:grid;grid-template-columns:1.35fr .85fr 1fr;gap:1rem}
.footer-grid>section:first-child{padding-right:1rem}
.footer-grid h3{margin-top:0}
.footer-site-name{margin:.45rem 0 .15rem;font-weight:700;color:#334e68}
.footer-links{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:.45rem}
.footer-links a{color:#334e68;text-decoration:none}.footer-links a.btn{color:#fff}.footer-links form{margin:0}
.footer-refresh-item{margin-top:.2rem}
.footer-refresh-form .btn-refresh-app{width:100%;background:#334e68}
.footer-refresh-form .btn-refresh-app:hover,.footer-refresh-form .btn-refresh-app:focus-visible{background:#243b53}
.muted{color:#627d98;font-size:.93rem;margin:.45rem 0}
.footer-meta{border-top:1px solid #e8edf2;margin-top:.25rem;padding-top:.2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.footer-meta .muted{text-align:left;margin:.35rem 0}
.footer-meta a{color:var(--primary);text-decoration:none}
.footer-meta a:hover,.footer-meta a:focus-visible{text-decoration:underline}
.footer-contact{margin:.25rem 0;white-space:normal}
.footer-contact a{color:var(--primary);text-decoration:none}
.footer-contact a:hover,.footer-contact a:focus-visible{text-decoration:underline}
.footer-hours{margin:.35rem 0 0;font-size:.83rem;line-height:1.35}
.panel table input[type="time"]{min-width:120px}

@media (max-width:900px){
  .desktop-nav{display:none}
  .menu-toggle,.menu-close{display:block}
  .mobile-menu{position:fixed;inset:0;background:rgba(15,23,42,.86);z-index:40;padding:1rem;display:none}
  .mobile-menu.open{display:block}
  .mobile-menu-inner{background:#fff;border-radius:16px;height:100%;padding:1rem;overflow:auto}
  .mobile-menu-top{display:flex;justify-content:space-between;align-items:center}
  .mobile-nav{display:grid;gap:.45rem;margin-top:1.2rem}
  .mobile-nav a{text-decoration:none;color:#334e68;padding:.45rem .2rem;border-bottom:1px solid #e5eaef}
  .mobile-nav-label{margin:1rem 0 .3rem;color:#486581;font-weight:700;font-size:.95rem}
  body.menu-open{overflow:hidden}
  .panel-grid,.stats{grid-template-columns:1fr}
}

@media (max-width:640px){
  .footer-grid{grid-template-columns:1fr}
}

.setup-shell{min-height:100vh;display:flex;align-items:center;justify-content:center}
.section-photo-picker{margin:.65rem 0;display:grid;gap:.65rem}
.section-photo-label{margin:0;font-weight:700;color:#334e68}
.section-image-preview{display:block;width:120px;max-width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid #d9e2ec;background:#f1f5f9}
.section-photo-actions{display:flex;gap:.55rem;flex-wrap:wrap}
.section-photo-actions .btn{min-width:150px}
.section-media-dialog{border:0;border-radius:12px;padding:0;max-width:min(900px,92vw);width:92vw}
.section-media-dialog::backdrop{background:rgba(15,23,42,.58)}
.section-media-dialog-shell{padding:1rem;display:grid;gap:.9rem}
.section-media-dialog-shell h3{margin:.2rem 0}
.section-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;max-height:60vh;overflow:auto}
.section-media-option{appearance:none;background:#fff;border:1px solid #d9e2ec;border-radius:10px;padding:.45rem;display:grid;gap:.4rem;cursor:pointer;text-align:left}
.section-media-option img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#f1f5f9}
.section-media-option span{font-size:.82rem;color:#486581;word-break:break-word}
.section-media-option:hover,.section-media-option:focus-visible{border-color:#22626b;box-shadow:0 0 0 2px rgba(34,98,107,.18)}

.menu-editor{display:grid;gap:1rem}
.menu-sort-list{display:grid;gap:.65rem}
.menu-sort-item{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;background:#f8fbfc;border:1px solid #d9e2ec;padding:.6rem;border-radius:10px}
.menu-sort-item.dragging{opacity:.65}
.menu-sort-handle{display:flex;align-items:center;justify-content:center;background:#e6eef1;border:1px solid #cbd5e0;border-radius:8px;padding:.55rem .45rem;min-width:38px;touch-action:none;cursor:grab;user-select:none}
.menu-sort-grid{display:grid;gap:.5rem;grid-template-columns:1fr}
.menu-sort-grid label{margin:0}

@media (min-width:760px){
  .menu-sort-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
