:root {
  --navy: #155333;
  --deep: #0b3d27;
  --blue: #187a49;
  --cyan: #45a76e;
  --green: #198754;
  --ink: #173b2a;
  --muted: #607568;
  --line: #d6e4db;
  --mist: #f4f8f5;
  --danger: #b44843;
  --shadow: 0 18px 50px rgba(18, 56, 95, 0.11);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Arial, sans-serif;
}
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.container { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.notice { padding: 8px 0; background: var(--deep); color: #dfeaf4; font-size: 12px; letter-spacing: .06em; }
.notice .container { display: flex; justify-content: space-between; }
.header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid #e3e9ee; background: rgba(255,255,255,.97); backdrop-filter: blur(10px); }
.header-inner { display: flex; min-height: 76px; align-items: center; gap: 34px; }
.logo, .admin-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.logo b, .admin-logo b {
  display: grid; width: 44px; height: 44px; place-items: center;
  border-radius: 13px 13px 13px 4px;
  background: linear-gradient(145deg,var(--blue),var(--cyan)); color: #fff;
  font-size: 24px; box-shadow: 0 8px 20px rgba(23,103,168,.25);
}
.logo strong, .logo small { display: block; }
.logo strong { color: var(--navy); font-size: 22px; line-height: 1; }
.logo small { margin-top: 4px; color: var(--muted); font-size: 10px; letter-spacing: .13em; }
.header nav { display: flex; gap: 28px; margin-left: auto; }
.header nav a { color: #526b5d; font-size: 14px; font-weight: 700; text-decoration: none; }
.header nav a:hover { color: var(--blue); }
.button {
  display: inline-flex; min-height: 46px; align-items: center; justify-content: center;
  padding: 0 24px; border: 1px solid var(--blue); border-radius: 7px;
  background: var(--blue); color: #fff; cursor: pointer; font-weight: 700; text-decoration: none;
  box-shadow: 0 8px 20px rgba(23,103,168,.14);
}
.button:hover { background: #11643c; }
.button.outline { border-color: #b9cbd9; background: #fff; color: var(--navy); box-shadow: none; }
.button.small { min-height: 39px; padding: 0 16px; font-size: 12px; }
.eyebrow { margin: 0 0 13px; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .15em; }
.hero { position: relative; overflow: hidden; background: #f4f0e7; }
.hero:before { position: absolute; z-index: 3; inset: 0; background: rgba(255,255,255,.05); content: ""; pointer-events: none; }
.hero-parallax { position: absolute; z-index: 0; inset: 0; pointer-events: none; }
.parallax-track { position: absolute; inset: 0 auto 0 0; display: flex; width: max-content; min-width: 200%; animation: hero-parallax-scroll var(--parallax-duration) linear infinite; will-change: transform; }
.parallax-track img { width: auto; min-width: 50%; height: 100%; flex: none; object-fit: cover; }
.parallax-far { z-index: 0; --parallax-duration: 110s; }
.parallax-middle { z-index: 1; --parallax-duration: 72s; }
.parallax-foreground { z-index: 2; --parallax-duration: 46s; }
@keyframes hero-parallax-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .parallax-track { animation: none; } }
.hero-grid { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 48px; align-items: center; padding: 46px 0 52px; }
.hero-copy { padding: 26px 30px 25px; border: 1px solid rgba(23,99,59,.14); border-radius: 24px 4px; background: rgba(255,255,255,.91); box-shadow: 0 22px 54px rgba(29,67,45,.14); backdrop-filter: blur(4px); }
.mobile-experience-section { display: none; padding: 24px 0; background: #f4f8f5; }
.hero h1 { margin: 0; color: var(--deep); font-size: clamp(36px,4vw,52px); letter-spacing: -.04em; line-height: 1.34; word-break: keep-all; }
.hero h1:after { display: block; width: 70px; height: 4px; margin-top: 16px; background: linear-gradient(90deg,var(--blue),var(--cyan)); content: ""; }
.lead { max-width: 650px; margin: 24px 0 0; color: #526b5d; font-size: 16px; line-height: 2; }
.hero-actions { display: flex; align-items: center; gap: 20px; margin-top: 30px; }
.available { color: var(--green); font-size: 13px; font-weight: 700; }
.facts { display: flex; margin: 42px 0 0; }
.facts div { min-width: 148px; padding: 0 24px; border-left: 1px solid #c6d6e2; }
.facts div:first-child { padding-left: 0; border-left: 0; }
.facts dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.facts dd { margin: 6px 0 0; color: var(--navy); font-size: 15px; font-weight: 800; }
.experience { padding: 34px 30px 28px; border: 1px solid #cfe0eb; border-radius: 4px 24px; background: #fff; box-shadow: var(--shadow); }
.experience > span { color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .17em; }
.experience h2 { margin: 12px 0 18px; color: var(--navy); font-size: 20px; }
.experience ol { margin: 0; padding: 0; list-style: none; }
.experience li { display: flex; gap: 17px; align-items: center; padding: 15px 0; border-bottom: 1px solid #e3ebf1; }
.experience li > b { color: var(--cyan); font-size: 12px; }
.experience li strong, .experience li small { display: block; }
.experience li small { margin-top: 4px; color: var(--muted); }
.experience > p { margin: 19px 0 0; padding: 12px; border-radius: 6px; background: #e9f6ed; color: #526b5d; font-size: 12px; line-height: 1.7; }
.schedule { padding: 82px 0 92px; }
.schedule h2, .before h2 { margin: 0; color: var(--deep); font-size: clamp(27px,3vw,37px); }
.schedule > .container > p:not(.eyebrow) { color: var(--muted); }
.slot-selection-form { display: grid; gap: 22px; }
.slot-selection-form > .button { justify-self: center; }
.slot.open { cursor: pointer; }
.slot.open input { grid-row: 1; width: 20px; height: 20px; margin: 0; align-self: center; accent-color: var(--green, #147a4b); }
.slot.open:has(input:checked) { outline: 3px solid #1b8a55; background: #effaf4; }
.selection-rank { display: inline-flex; visibility: hidden; grid-row: 4; align-items: center; justify-content: center; width: 80px; height: 26px; box-sizing: border-box; margin: 0; padding: 4px 8px; border-radius: 999px; background: #176b43; color: #fff; font-size: 12px; line-height: 18px; white-space: nowrap; }
.selection-rank.is-visible { visibility: visible; }
.preference-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 5px 0; }
.preference-row form { margin: 0; }
.admin-change-box { margin-top: 9px; }
.admin-change-box summary { color: var(--blue); cursor: pointer; font-size: 11px; font-weight: 700; }
.admin-change-box form { display: grid; grid-template-columns: minmax(190px,1fr) auto; gap: 8px; margin-top: 8px; }
.admin-change-box select { min-width: 210px; }
.confirmed-time { display: block; margin-top: 8px; color: #b42318; }
.requested-preferences { margin: 18px 0; padding: 16px; border-radius: 10px; background: #f2f8f4; }
.requested-preferences h3 { margin: 0 0 10px; font-size: 15px; }
.requested-preferences ol { display: grid; gap: 7px; margin: 0; padding-left: 22px; }
.requested-preferences li { padding-left: 5px; }
.requested-preferences li span { display: inline-block; min-width: 70px; color: var(--muted); }
.policy-version { color: var(--muted); font-size: 13px; }
.draft-warning { display: grid; gap: 4px; margin: 20px 0; padding: 16px 18px; border: 1px solid #e7b35a; border-radius: 10px; background: #fff8e8; color: #704500; }
.consent a { color: #176b43; font-weight: 700; text-decoration: underline; }
.privacy-status { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.privacy-status h2, .privacy-status p { margin: 0; }
.date-filter { display: flex; gap: 8px; margin-top: 34px; padding-bottom: 4px; overflow-x: auto; }
.date-filter button { min-width: 84px; padding: 9px 15px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--muted); cursor: pointer; white-space: nowrap; font-size: 12px; font-weight: 700; }
.date-filter button.selected { border-color: var(--navy); background: var(--navy); color: #fff; }
.date-slot-groups { display: grid; gap: 28px; }
.date-slot-group { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #f8faf8; }
.date-slot-group[hidden] { display: none; }
.date-separator-card { display: flex; align-items: baseline; gap: 4px; padding: 16px 20px; border-bottom: 1px solid var(--line); background: var(--navy); color: #fff; }
.date-separator-card span { font-size: 21px; font-weight: 800; }
.date-separator-card strong { font-size: 14px; }
.date-separator-card small { margin-left: auto; color: rgba(255,255,255,.78); font-weight: 700; }
.date-slot-group .slots { margin-top: 0; padding: 14px; }
.slots { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 32px; }
.slot {
  display: grid; grid-template-rows: 20px 26px 26px 26px; row-gap: 10px; align-content: center; justify-items: start;
  height: 190px; box-sizing: border-box;
  padding: 21px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-decoration: none;
}
.slot.open { transition: .16s ease; }
.slot.open:hover { border-color: var(--blue); box-shadow: 0 12px 28px rgba(18,56,95,.1); }
.slot > span { color: var(--navy); font-weight: 800; }
.slot > strong { grid-row: 2; margin: 0; align-self: center; font-size: 17px; line-height: 26px; white-space: nowrap; }
.slot > em { grid-row: 3; height: 26px; box-sizing: border-box; margin: 0; padding: 5px 9px; border-radius: 4px; background: #e7f5f0; color: var(--green); font-size: 11px; font-style: normal; font-weight: 800; line-height: 16px; white-space: nowrap; }
.slot-check-placeholder { display: block; grid-row: 1; width: 20px; height: 20px; }
.slot.unavailable { background: #f4f6f8; color: #87949e; }
.slot.unavailable em { background: #e5e9ec; color: #7c8a95; }
.before { padding: 72px 0; background: var(--deep); color: #fff; }
.before-grid { display: grid; grid-template-columns: .75fr 2.25fr; gap: 65px; }
.before .eyebrow { color: #83cea0; }
.before h2 { color: #fff; }
.before-items { display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; }
.before-items span { color: #83cea0; font-size: 11px; font-weight: 800; }
.before-items h3 { margin: 13px 0 8px; font-size: 16px; }
.before-items p { margin: 0; color: #c4d7cb; font-size: 12px; line-height: 1.8; }
.page-bg { min-height: 72vh; padding: 70px 0 96px; background: linear-gradient(180deg,#edf6f0,#f8faf8); }
.form-container, .account-container { width: min(820px,calc(100% - 48px)); }
.back { display: inline-block; margin-bottom: 26px; color: var(--blue); font-weight: 700; text-decoration: none; }
.form-container h1, .title-row h1, .login-card h1, .complete-card h1, .policy h1, .admin-main h1 { margin: 0; color: var(--deep); font-size: clamp(29px,4vw,40px); letter-spacing: -.03em; }
.selected-slot { display: grid; gap: 10px; margin: 27px 0 24px; padding: 20px 23px; border-left: 4px solid var(--blue); background: #fff; box-shadow: 0 5px 18px rgba(18,56,95,.06); }
.selected-slot-heading, .selected-slot-note { color: var(--muted); font-size: 12px; }
.selected-slot-row { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 12px; align-items: baseline; padding: 10px 0; border-top: 1px solid var(--line); }
.selected-slot-row b { color: var(--green); white-space: nowrap; }
.selected-slot-row strong { min-width: 0; color: var(--navy); font-size: 17px; overflow-wrap: normal; word-break: keep-all; }
.booking-form { display: grid; gap: 22px; }
fieldset { margin: 0; padding: 28px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
legend { padding-right: 10px; color: var(--navy); font-weight: 800; }
legend b { display: inline-grid; width: 27px; height: 27px; margin-right: 7px; place-items: center; border-radius: 50%; background: var(--navy); color: #fff; font-size: 12px; }
.grid { display: grid; gap: 21px 18px; }
.grid.two { grid-template-columns: 1fr 1fr; }
.grid .full { grid-column: 1/-1; }
label { display: grid; gap: 8px; color: #455e72; font-size: 13px; font-weight: 700; }
label em { margin-left: 4px; color: var(--danger); font-size: 10px; font-style: normal; }
input, select, textarea { width: 100%; border: 1px solid #c7d4de; border-radius: 6px; background: #fff; color: var(--ink); outline: 0; }
input, select { min-height: 47px; padding: 0 13px; }
textarea { padding: 12px 13px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(23,103,168,.1); }
input[readonly] { background: #f0f3f5; color: var(--muted); }
.consent { display: flex; grid-template-columns: none; gap: 11px; align-items: flex-start; padding: 19px 21px; border-radius: 7px; background: #e8edf1; font-size: 12px; line-height: 1.7; }
.consent input { width: 17px; min-height: 17px; margin-top: 3px; }
.consent.is-unreviewed { background: #f2f3f2; color: #66746c; }
.consent.is-unreviewed input { cursor: not-allowed; opacity: .55; }
.consent-state { display: block; margin-top: 5px; color: #5f6f66; font-weight: 600; }
.consent.is-reviewed .consent-state { color: #176b43; }
.actions { display: flex; justify-content: flex-end; gap: 12px; }
.login-card, .complete-card {
  width: min(600px,calc(100% - 48px)); margin: 0 auto; padding: 48px;
  border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); text-align: center;
}
.login-card p, .complete-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.8; }
.login-card form { display: grid; gap: 17px; margin-top: 24px; text-align: left; }
.login-card form .button { width: 100%; }
.login-methods { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: -24px -24px 34px; padding: 5px; border-radius: 9px; background: #edf4ef; }
.login-methods a { padding: 11px 9px; border-radius: 6px; color: #526b5d; font-size: 12px; font-weight: 800; text-decoration: none; }
.login-methods a[aria-current="page"] { background: #fff; color: var(--green); box-shadow: 0 2px 9px rgba(19,74,43,.1); }
.login-methods a:focus-visible { outline: 3px solid rgba(24,122,73,.25); outline-offset: 2px; }
.round-icon, .check { display: grid; width: 60px; height: 60px; margin: 0 auto 20px; place-items: center; border-radius: 50%; background: #e9f6ed; color: var(--blue); font-size: 27px; }
.check { background: #e7f5f0; color: var(--green); }
.complete-card dl { display: grid; grid-template-columns: 110px 1fr; gap: 12px; margin: 27px 0; padding: 20px; background: var(--mist); text-align: left; }
.complete-card dt { color: var(--muted); font-size: 12px; }
.complete-card dd { margin: 0; font-weight: 700; }
.title-row, .booking-top, .panel-title { display: flex; justify-content: space-between; gap: 20px; align-items: center; }
.text-button, .danger { padding: 0; border: 0; background: transparent; color: var(--blue); cursor: pointer; font-size: 12px; font-weight: 700; text-decoration: none; }
.danger { color: var(--danger); }
.danger-button { border-color: var(--danger); background: var(--danger); }
.danger-button:hover { background: #963a36; }
.cancel-confirm .actions { align-items: center; }
.empty { margin-top: 25px; padding: 42px; border: 1px solid var(--line); border-radius: 11px; background: #fff; text-align: center; }
.empty p { color: var(--muted); }
.booking-card { margin-top: 20px; padding: 28px; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: 0 10px 28px rgba(18,56,95,.07); }
.booking-card.cancelled { opacity: .62; }
.booking-top { padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.booking-top small { display: block; margin-top: 8px; color: var(--muted); }
.booking-top > strong { color: var(--navy); text-align: right; }
.pill { display: inline-flex; padding: 5px 9px; border-radius: 99px; background: #e6f4ee; color: var(--green); font-size: 11px; font-weight: 800; }
.details { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 23px 0; }
.details dt { color: var(--muted); font-size: 11px; }
.details dd { margin: 5px 0 0; font-weight: 700; }
.cancel-form { text-align: right; }
.booking-actions { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.change-box { min-width: 320px; }
.change-box summary { color: var(--blue); cursor: pointer; font-size: 12px; font-weight: 700; }
.change-box form { display: grid; gap: 11px; margin-top: 13px; padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--mist); }
.deadline-note { margin: 0; padding: 10px; background: #f3eee7; color: #845d46; font-size: 12px; }
.policy { width: min(820px,calc(100% - 48px)); padding: 38px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.policy h2 { margin-top: 32px; color: var(--navy); font-size: 18px; }
.policy p { color: #4c6477; line-height: 1.9; }
.policy-actions { display: flex; gap: 12px; margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line); }
.flash { position: fixed; z-index: 50; top: 92px; left: 50%; width: min(620px,calc(100% - 30px)); padding: 13px 18px; border-radius: 7px; background: var(--navy); color: #fff; box-shadow: var(--shadow); transform: translateX(-50%); text-align: center; font-size: 13px; }
.flash.error { background: #a4443f; }
.flash.info { background: #466176; }
.flash{transition:opacity .18s ease,transform .18s ease}.flash.is-closing{opacity:0;transform:translate(-50%,-8px);pointer-events:none}.flash [data-flash-close]{position:absolute;top:50%;right:8px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:20px;line-height:1;transform:translateY(-50%);cursor:pointer}.flash [data-flash-close]:hover,.flash [data-flash-close]:focus-visible{background:rgba(255,255,255,.18)}
footer { padding: 32px 0; border-top: 1px solid #d9e3ea; background: #fff; }
.footer-inner, .footer-inner > div { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.footer-inner strong, .footer-inner small { display: block; }
.footer-inner small, .footer-inner span, .footer-inner a { color: var(--muted); font-size: 10px; text-decoration: none; }

.admin-body { background: #f3f7f4; }
.admin-layout { display: grid; min-height: 100vh; grid-template-columns: 220px 1fr; }
.admin-nav { display: flex; flex-direction: column; padding: 28px 18px; background: var(--deep); color: #fff; }
.admin-logo { padding: 0 7px 25px; border-bottom: 1px solid rgba(255,255,255,.12); }
.admin-logo b { width: 34px; height: 34px; border-radius: 10px 10px 10px 3px; font-size: 18px; }
.admin-nav nav { display: grid; gap: 5px; margin-top: 22px; }
.admin-nav nav a { padding: 12px 14px; border-radius: 6px; color: #c4d7cb; text-decoration: none; }
.admin-nav nav a.active, .admin-nav nav a:hover { background: rgba(255,255,255,.1); color: #fff; }
.admin-user { margin-top: auto; padding: 15px 7px 0; border-top: 1px solid rgba(255,255,255,.12); color: #c4d7cb; font-size: 12px; }
.admin-user form { margin-top: 8px; }
.admin-user button { padding: 0; border: 0; background: transparent; color: #a9c9b5; cursor: pointer; font-size: 11px; }
.admin-main { width: min(1180px,calc(100% - 64px)); margin: 0 auto; padding: 46px 0 70px; }
.metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-top: 28px; }
.metrics article { padding: 21px; border: 1px solid #dce4ea; border-radius: 9px; background: #fff; }
.metrics span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; }
.metrics strong { display: inline-block; margin-top: 8px; color: var(--navy); font-size: 34px; }
.metrics small { margin-left: 5px; color: var(--muted); }
.panel { margin-top: 20px; padding: 23px; border: 1px solid #dce4ea; border-radius: 9px; background: #fff; }
.panel h2 { margin: 0 0 18px; color: var(--navy); font-size: 18px; }
.panel-title h2 { margin: 0; }
.panel-title a { color: var(--blue); font-size: 12px; font-weight: 700; text-decoration: none; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th { padding: 11px; background: #edf4ef; color: var(--muted); text-align: left; white-space: nowrap; }
td { padding: 14px 11px; border-bottom: 1px solid #e5eaee; color: #435a6d; }
td small { display: block; margin-top: 4px; color: var(--muted); }
.slot-form { display: grid; grid-template-columns: 1.5fr 1fr 1fr auto; gap: 13px; align-items: end; }
.slot-list > div { display: grid; grid-template-columns: 1fr 90px 110px; gap: 15px; align-items: center; padding: 14px 3px; border-top: 1px solid #e5eaee; }
.slot-list b { color: var(--green); font-size: 11px; }
.slot-list b.closed { color: #87949e; }
.slot-list b.booked { color: var(--blue); }
.slot-list form { text-align: right; }
.slot-list button { padding: 6px 8px; border: 1px solid #c5d1da; border-radius: 5px; background: #fff; cursor: pointer; font-size: 10px; }
.slot-list button:disabled { cursor: not-allowed; opacity: .45; }
.review-status { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 20px; padding: 18px 22px; border: 1px solid #e2c67b; border-radius: 9px; background: #fff8e5; }
.review-status.public { border-color: #a8d8c4; background: #edf8f3; }
.review-status p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.account-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; align-items: end; }
.account-form .button { justify-self: start; }
.account-list details { padding: 15px 0; border-top: 1px solid #e5eaee; }
.account-list summary { display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.account-list summary span, .account-list summary small { display: block; }
.account-list summary small { margin-top: 4px; color: var(--muted); }
.account-list summary b { color: var(--green); font-size: 11px; }
.account-list .account-form { margin-top: 18px; padding: 18px; background: var(--mist); }
.account-form label small { color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.6; }
.account-row-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.account-row-actions form { margin: 0; }
.account-row-actions .account-form.compact { grid-template-columns: minmax(120px,1fr) minmax(120px,1fr) auto; margin: 0; padding: 10px; border-radius: 8px; }
.account-status.pending { background: #fff1ca; color: #795900; }
.account-status.expired { background: #fde9e7; color: #922e27; }
.account-status.disabled { background: #edf0f2; color: #63717a; }
.account-directory-intro { display: grid; gap: 18px; }
.account-directory-intro > p { margin: 0; color: var(--muted); line-height: 1.8; }
.account-conflict-guide { padding: 14px 16px; border-left: 4px solid #d48a18; border-radius: 6px; background: #fff6e5; color: #754c09 !important; font-weight: 700; }
.account-directory-filter { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; gap: 12px; align-items: end; }
.account-directory-table { min-width: 1040px; }
.account-directory-table th, .account-directory-table td { white-space: nowrap; }
.account-directory-table tr.highlight-account td { background: #fff3d9; box-shadow: inset 0 1px #e9b559, inset 0 -1px #e9b559; }
.account-directory-table tr.highlight-account td:first-child { box-shadow: inset 4px 0 #d48a18, inset 0 1px #e9b559, inset 0 -1px #e9b559; }
.account-type-badge, .account-status { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.account-type-badge.participant { background: #edf4f8; color: #315f78; }
.account-type-badge.admin { background: #e8f6ed; color: var(--green); }
.account-status.active { background: #e8f6ed; color: var(--green); }
.account-status.inactive { background: #edf0f2; color: #71808a; }
.not-set { color: var(--muted); }
.account-toggle { margin-top: 10px; text-align: right; }
.account-toggle button { border: 0; background: transparent; color: var(--danger); cursor: pointer; }
.preview-banner { display: flex; justify-content: center; align-items: center; gap: 18px; padding: 13px 20px; background: #fff1bd; color: #634d0b; font-size: 12px; }
.preview-banner a { color: inherit; font-weight: 800; }
.material-details { display: grid; gap: 15px; padding: 18px; border: 1px solid #cfe5d8; border-radius: 8px; background: #f5fbf7; }.material-details[hidden] { display: none; }.material-kinds { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 0; padding: 0; border: 0; }.material-kinds label { flex-direction: row; align-items: center; }.material-kinds input,.setting-check input { width: auto; }.material-settings form { display: grid; gap: 18px; }.setting-check { display: flex; flex-direction: row; gap: 12px; padding: 16px; background: #eef8f2; }
.allocation-filter form { display: grid; grid-template-columns: 1fr auto; gap: 12px; }.allocation-list,.allocation-choices { display: grid; gap: 15px; }.allocation-card { border-left: 4px solid var(--green); }.allocation-head h2 { margin: 5px 0; }.allocation-head p,.allocation-filter p { color: var(--muted); font-size: 11px; }.allocation-choice { display: grid; grid-template-columns: 250px 1fr auto; gap: 15px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 8px; }.allocation-choice.has-conflict { border-color: #e3b7b1; background: #fff8f7; }.choice-time { display: grid; gap: 4px; }.choice-time b { color: var(--green); }.allocation-choice ul,.allocation-choice p { margin: 0; font-size: 11px; }

@media (max-width: 980px) {
  .header nav { display: none; }
  .header .button { margin-left: auto; }
  .hero-grid { grid-template-columns: 1fr; gap: 42px; }
  .experience { max-width: 620px; }
  .slots { grid-template-columns: repeat(2,1fr); }
  .before-grid { grid-template-columns: 1fr; gap: 34px; }
  .admin-layout { grid-template-columns: 1fr; }
  .admin-nav { display: block; padding: 15px 22px; }
  .admin-nav nav { display: flex; overflow-x: auto; }
  .admin-user { display: none; }
  .metrics { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  .container, .form-container, .account-container, .policy { width: min(100% - 28px,1160px); }
  .notice .container { justify-content: center; }
  .notice span:last-child { display: none; }
  .header-inner { min-height: 66px; }
  .logo b { width: 38px; height: 38px; font-size: 20px; }
  .logo strong { font-size: 18px; }
  .header .button { min-height: 37px; padding: 0 11px; font-size: 10px; }
  .hero-grid { padding: 55px 0 65px; }
  .hero h1 { font-size: 33px; }
  .lead { font-size: 14px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .facts { display: grid; grid-template-columns: repeat(3,1fr); }
  .facts div { min-width: 0; padding: 0 9px; }
  .slots { grid-template-columns: 1fr; }
  .before-items { grid-template-columns: 1fr; }
  .page-bg { padding: 46px 0 70px; }
  .selected-slot { grid-template-columns: 1fr; }
  .selected-slot small { grid-column: 1; }
  .selected-slot-row { grid-template-columns: 1fr; gap: 4px; }
  .selected-slot-row strong { font-size: 15px; }
  .policy-actions { align-items: stretch; flex-direction: column; }
  fieldset, .login-card, .complete-card { padding: 25px 19px; }
  .grid.two, .details { grid-template-columns: 1fr; }
  .grid .full { grid-column: 1; }
  .actions, .title-row, .booking-top, .footer-inner { align-items: stretch; flex-direction: column; }
  .booking-actions { align-items: stretch; flex-direction: column; }
  .change-box { min-width: 0; }
  .actions .button { width: 100%; }
  .booking-top > strong { text-align: left; }
  .admin-main { width: calc(100% - 28px); padding-top: 30px; }
  .metrics { grid-template-columns: 1fr 1fr; }
  .panel { padding: 15px; }
  .slot-form { grid-template-columns: 1fr 1fr; }
  .slot-form label:first-child { grid-column: 1/-1; }
  .slot-list > div { grid-template-columns: 1fr 1fr; }
  .review-status { align-items: stretch; flex-direction: column; }
  .account-form { grid-template-columns: 1fr; }
  .account-row-actions .account-form.compact { grid-template-columns: 1fr; width: 100%; }
  .preview-banner { align-items: flex-start; flex-direction: column; gap: 5px; }
}
.event-switcher,.event-form,.phone-form{display:grid;gap:1rem}.event-switcher{grid-template-columns:minmax(16rem,32rem) auto;align-items:end;margin-bottom:1.25rem}.event-form,.phone-form{grid-template-columns:repeat(2,minmax(0,1fr))}.event-form textarea,.phone-form fieldset,.phone-form textarea{grid-column:1/-1}.contact-card{padding:1rem 0;border-bottom:1px solid #dce7df}.contact-card small{display:block;margin:.35rem 0}.contact-card form{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}.cancel-reason{color:#9c2f2f}@media(max-width:720px){.event-switcher,.event-form,.phone-form{grid-template-columns:1fr}}
.event-directory{padding:5rem 0;background:#f4f8f5}.event-directory>div>h2{font-size:clamp(2rem,4vw,3.2rem);margin:.3rem 0}.event-groups{display:grid;gap:2rem;margin-top:2rem}.event-group>h3{color:#155d38;font-size:1.2rem}.event-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem}.event-card{position:relative;background:#fff;border:1px solid #d8e5dc;border-radius:18px;padding:1.4rem;box-shadow:0 8px 24px rgba(20,75,46,.06)}.event-card.selected{border:2px solid #18834d}.event-card h4{font-size:1.25rem;margin:.7rem 0}.event-card dl{display:flex;gap:1rem;margin:1rem 0}.event-card dt{font-size:.75rem;color:#64746b}.event-card dd{margin:0;font-weight:700}.event-status{display:inline-flex;border-radius:999px;padding:.25rem .65rem;font-size:.78rem;font-weight:700;background:#e6eee9}.event-status.open{background:#dff4e7;color:#0f6a3d}.event-status.before{background:#fff1ca;color:#7b5700}.event-status.closed,.event-status.finished{color:#68746d}.status-message{padding:.8rem 1rem;border-left:4px solid #18834d;background:#eef6f1}
.content-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.content-form label:nth-of-type(2),.content-form label:nth-of-type(3),.content-form label:nth-of-type(6),.content-form label:nth-of-type(7){grid-column:1/-1}.mail-template-list{display:grid;gap:.75rem}.mail-template-list details{border:1px solid #d8e5dc;border-radius:12px;padding:1rem}.mail-template-list summary{cursor:pointer;font-weight:700;color:#155d38}.mail-template-list form{display:grid;gap:.8rem;margin-top:1rem}.mail-template-list code{background:#eef4f0;padding:.15rem .35rem;border-radius:4px}@media(max-width:720px){.content-form{grid-template-columns:1fr}.content-form label{grid-column:1!important}}
.content-form label > small { color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.6; }

.selection-summary { position: sticky; z-index: 8; top: 78px; display: grid; grid-template-columns: minmax(180px,.75fr) minmax(0,2.25fr); gap: 18px; align-items: center; padding: 16px 18px; border: 1px solid #9fcdb1; border-radius: 12px; background: rgba(245,251,247,.97); box-shadow: 0 10px 28px rgba(20,75,46,.12); backdrop-filter: blur(8px); }
.selection-summary > div { display: grid; gap: 4px; }
.selection-summary > div strong { color: var(--deep); }
.selection-summary > div small { color: var(--muted); font-size: 11px; }
.selection-summary ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.selection-summary li { display: grid; gap: 3px; min-width: 0; height: 82px; box-sizing: border-box; overflow: hidden; padding: 9px 11px; border: 1px solid transparent; border-radius: 8px; background: rgba(255,255,255,.72); }
.selection-summary li.is-selected { border-color: #b7d9c4; background: #fff; }
.selection-summary li b { color: var(--green); font-size: 11px; }
.selection-summary li span { color: var(--deep); font-size: 12px; font-weight: 700; line-height: 1.5; }
.selection-summary li:not(.is-selected) span { color: var(--muted); font-weight: 500; }
.logo img{display:block;max-width:210px;max-height:58px;width:auto;height:auto}.appearance-form{display:grid;gap:1.25rem}.appearance-form fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;border:1px solid #d8e5dc;border-radius:14px;padding:1.2rem}.appearance-form fieldset:last-of-type label{grid-column:1/-1}.logo-preview{display:block;max-width:260px;max-height:100px;object-fit:contain;background:#f5f8f6;padding:.8rem;border:1px solid #d8e5dc;border-radius:10px}.font-compact{font-size:14px}.font-standard{font-size:16px}.font-large{font-size:18px}.frame-soft .panel,.frame-soft .event-card,.frame-soft .complete-card,.frame-soft .login-card{border-radius:18px}.frame-round .panel,.frame-round .event-card,.frame-round .complete-card,.frame-round .login-card{border-radius:30px}.frame-square .panel,.frame-square .event-card,.frame-square .complete-card,.frame-square .login-card{border-radius:6px}@media(max-width:720px){.appearance-form fieldset{grid-template-columns:1fr}.font-large{font-size:17px}.logo img{max-width:150px;max-height:46px}}
.mail-delivery-status dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.mail-delivery-status dl div{padding:.8rem;background:#f4f8f5;border-radius:10px}.mail-delivery-status dt{font-size:.78rem;color:#64746b}.mail-delivery-status dd{margin:.2rem 0 0;overflow-wrap:anywhere;font-weight:700}.mail-delivery-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.mail-delivery-form button{grid-column:1/-1}.test-mail-form{display:flex;gap:1rem;align-items:end}.test-mail-form label{flex:1}@media(max-width:720px){.mail-delivery-status dl,.mail-delivery-form{grid-template-columns:1fr}.test-mail-form{align-items:stretch;flex-direction:column}}

/* PHP移植前の緑基調UI・導線・日付カードを復元 */
.header-actions { display: flex; align-items: center; gap: 10px; }
.admin-entry, .header-logout button { border: 0; background: transparent; color: #526b5d; cursor: pointer; font-size: 11px; font-weight: 700; text-decoration: none; }
.admin-entry { padding: 7px 4px; border-bottom: 1px solid #a9bdb1; }
.admin-entry:hover, .header-logout button:hover { color: var(--blue); }
.admin-entry.signed-in { padding: 10px 14px; border: 1px solid #a9cdb8; border-radius: 6px; background: #eef8f1; color: var(--deep); }
.header-logout { margin: 0; }
.header-logout input { display: none; }
.button { box-shadow: 0 8px 20px rgba(24,122,73,.14); }
.button:hover { background: #11643c; }
.logo b, .admin-logo b { box-shadow: 0 8px 20px rgba(24,122,73,.24); }
.header nav a:hover, .back, .text-button, .panel-title a, .change-box summary { color: var(--blue); }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(24,122,73,.11); }
.selected-slot { border-left-color: var(--blue); }
.round-icon { background: #e9f6ed; }
.before { background: var(--deep); }
.before .eyebrow, .before-items span { color: #83cea0; }
.admin-nav nav a { color: #c4d7cb; }
.admin-user, .admin-user button { color: #a9c9b5; }
th { background: #edf4ef; }

.phone-slot-picker { grid-column: 1/-1; padding: 0; border: 0; background: transparent; }
.phone-slot-picker > p { margin: 5px 0 14px; color: var(--muted); font-size: 12px; }
.phone-date-groups { display: grid; gap: 16px; }
.phone-date-card { overflow: hidden; border: 1px solid #bfd8c8; border-radius: 12px; background: #f8fbf9; }
.phone-date-card > header { display: flex; align-items: baseline; gap: 5px; padding: 13px 16px; background: var(--navy); color: #fff; }
.phone-date-card > header strong { font-size: 17px; }
.phone-date-card > header span { font-size: 12px; }
.phone-date-card > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 12px; }
.phone-slot-option { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 7px 10px; align-items: center; padding: 13px; border: 1px solid #c9d7ce; border-radius: 8px; background: #fff; cursor: pointer; }
.phone-slot-option input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--green); }
.phone-slot-option span { color: var(--deep); font-size: 14px; font-weight: 800; }
.phone-selection-rank { grid-column: 2; color: var(--muted); font-size: 10px; }
.phone-slot-option:has(input:checked) { border-color: var(--green); outline: 2px solid rgba(25,135,84,.18); background: #edf8f1; }
.phone-slot-option:has(input:checked) .phone-selection-rank { color: var(--green); }
.phone-slot-option:has(input:disabled) { cursor: not-allowed; opacity: .55; }
.empty-inline { padding: 18px; color: var(--muted); text-align: center; }
.phone-form em { display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#fff0ed;color:#a52e24;font-size:10px;font-style:normal;font-weight:800; }
.form-error-summary { grid-column:1/-1;padding:14px 16px;border:1px solid #d4685f;border-left-width:5px;border-radius:10px;background:#fff2f0;color:#84251e; }
.form-error-summary p { margin:5px 0 0; }
.field-error { display:block!important;margin-top:5px!important;color:#a52e24!important;font-size:12px!important;font-weight:700!important; }
.has-error input,.has-error select,.has-error textarea,.has-error.phone-slot-picker { border-color:#c74339!important;box-shadow:0 0 0 3px rgba(199,67,57,.1); }
.privacy-phone-check { display:grid;align-content:start;gap:6px; }
.privacy-phone-check > span { display:flex;gap:8px;align-items:center; }
.privacy-phone-check input { width:18px;min-height:18px;margin:0; }
.reapply-container .reapply-notice{border-left:5px solid #b17916;background:#fffaf0}.reapply-notice dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px}.reapply-notice dt{font-weight:800}.reapply-notice dd{margin:0}.reapply-entry{display:grid;gap:7px;padding:14px;border:1px solid #d7c28f;border-radius:10px;background:#fffaf0}.reapply-entry p{margin:0}.reapply-final-warning{margin-bottom:18px}.reapplication-badge{display:inline-flex;margin:5px 0;padding:4px 8px;border-radius:999px;background:#fff0c9;color:#77520a;font-size:10px;font-weight:800}.reapplication-badge+small{display:block}
@media(max-width:680px){.reapply-notice dl{grid-template-columns:1fr;gap:2px}.reapply-notice dd{margin-bottom:8px}}

@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-grid > .experience { display: none; }
  .mobile-experience-section { display: block; }
  .mobile-experience-section .experience { max-width: 620px; margin: 0 auto; }
  .parallax-middle, .parallax-foreground { opacity: .78; }
  .admin-user { display: block; margin-top: 12px; }
}
@media (max-width: 680px) {
  .header-actions { margin-left: auto; gap: 5px; }
  .header-actions .admin-entry { font-size: 9px; }
  .header-logout { display: none; }
  .hero { min-height: 0; }
  .hero-grid { display: block; padding: 24px 0 26px; }
  .hero-copy { padding: 22px 20px 21px; }
  .hero-parallax { background: url("roda-parallax-far.png") center / cover; }
  .parallax-middle, .parallax-foreground { display: none; }
  .parallax-far { opacity: .75; }
  .date-separator-card { flex-wrap: wrap; }
  .date-separator-card small { width: 100%; margin-left: 0; }
  .date-slot-group .slots { grid-template-columns: 1fr; }
  .phone-date-card > div { grid-template-columns: 1fr; }
  .selection-summary { top: auto; bottom: 8px; grid-template-columns: 1fr; gap: 10px; padding: 13px; }
  .selection-summary ol { grid-template-columns: 1fr; }
  .selection-summary li { grid-template-columns: 74px 1fr; align-items: center; }
  .common-login-card { padding: 34px 20px; }
  .login-methods { margin: -14px -6px 28px; grid-template-columns: 1fr; }
  .account-directory-filter { grid-template-columns: 1fr; }
}
.frame-soft .hero-copy { border-radius: 18px; }
.frame-round .hero-copy { border-radius: 30px; }
.frame-square .hero-copy { border-radius: 6px; }
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.allocation-choice.is-unavailable{background:#f5f5f3;border-color:#c9cec9;opacity:.9}
.allocation-alert{display:inline-block;padding:.55rem .8rem;border-radius:.6rem;background:#fff1ef;color:#a02d23}
.allocation-card.no-allocatable{border-color:#d8786f}
.allocation-recovery{margin-top:1rem;padding:1rem;border:1px solid #d7a44a;border-radius:.75rem;background:#fff9ed}
.allocation-recovery form,.allocation-contact form{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}
.allocation-recovery select{min-width:min(100%,28rem)}
.allocation-contact{margin-top:1rem;padding-top:1rem;border-top:1px solid #dfe5e1}
.allocation-contact small{display:block;margin:.25rem 0}
.unavailable-note{color:#8b322b;font-weight:700}
.review-details{display:grid;grid-template-columns:minmax(9rem,13rem) 1fr;gap:.65rem 1rem}
.review-details dt{font-weight:700;color:#395449}.review-details dd{margin:0}
.review-list{display:grid;gap:.5rem}
.status-ok{color:#167146;font-weight:700}.status-ng{color:#a02d23;font-weight:700}
.venue-panel{display:flex;gap:18px;align-items:flex-start;padding:17px 20px;border:1px solid #c8ddcf;border-radius:12px;background:#fff}.venue-panel>span,.venue-panel h2{min-width:72px;margin:0;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.06em}.venue-information{display:grid;gap:4px;min-width:0}.venue-information strong{color:var(--deep);font-size:16px}.venue-information span,.venue-information small{color:var(--muted);font-size:13px;line-height:1.7;overflow-wrap:anywhere}.venue-panel-compact{margin:20px 0 0}.schedule-venue{max-width:720px;margin:20px 0 4px;background:#f7fbf8}.details .venue-information strong,.details .venue-information small{display:block}.details .venue-information small{margin-top:4px;font-weight:500}
@media(max-width:700px){.review-details{grid-template-columns:1fr}.review-details dd{margin-bottom:.5rem}.allocation-recovery form,.allocation-contact form{align-items:stretch;flex-direction:column}}
@media(max-width:700px){.venue-panel{display:grid;gap:7px}.venue-panel>span,.venue-panel h2{min-width:0}.venue-information strong{font-size:15px}}

/* v0.9.22: RODA-009 general/admin responsive usability */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
body{max-width:100%;overflow-x:hidden}

/* RODA-013: timeout recovery and TOP reservation route */
html{scroll-behavior:smooth}.event-directory,.schedule{scroll-margin-top:84px}.reservation-expiry-notice,.timeout-validity{padding:11px 14px;border-left:4px solid #b17916;border-radius:7px;background:#fff8e8;color:#6d4a0e;font-size:12px;line-height:1.7}.timeout-card{display:grid;gap:12px}.timeout-card .button{width:100%}
@media(max-width:680px){.event-directory,.schedule{scroll-margin-top:72px}.reservation-expiry-notice{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
img,svg,video{max-width:100%;height:auto}
[hidden]{display:none!important}
.admin-nav-toggle,.selection-summary-submit{display:none}
.date-separator-card{padding:0;overflow:hidden}
.date-group-toggle{display:grid;grid-template-columns:auto auto 1fr auto;gap:5px;align-items:center;width:100%;min-height:58px;padding:13px 17px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.date-group-toggle span{font-size:20px;font-weight:800;color:var(--deep)}
.date-group-toggle strong{color:var(--green)}
.date-group-toggle small{justify-self:end;color:var(--muted)}
.date-group-toggle>b{font-size:18px;transition:transform .18s ease}
.date-group-toggle[aria-expanded="false"]>b{transform:rotate(-90deg)}
.date-group-toggle:focus-visible{outline:3px solid rgba(24,131,77,.32);outline-offset:-3px}

/* v0.9.28: date-first hierarchy and unavailable allocation feedback */
.date-slot-group{border:2px solid #b8d1c2;background:#fff;box-shadow:0 8px 24px rgba(15,70,43,.08)}
.date-separator-card{border-bottom:0;background:linear-gradient(110deg,#0b3d27,#176b43);color:#fff}
.date-group-toggle{color:#fff}
.date-group-toggle span{color:#fff;font-size:22px;letter-spacing:.01em;text-shadow:0 1px 1px rgba(0,0,0,.2)}
.date-group-toggle strong{color:#d9ffe8;font-size:15px}
.date-group-toggle small{color:#fff;padding:4px 9px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(0,0,0,.12)}
.date-group-toggle:focus-visible{outline-color:#ffe08a}
.date-slot-group .slots{background:#f7fbf8}
.preference-unavailable{display:inline-flex;padding:5px 9px;border-radius:6px;background:#f4e9e7;color:#913b35;font-size:11px;white-space:nowrap}
.application-status-note{margin:12px 0 0;color:var(--muted);font-size:12px}

@media(max-width:980px){
  .admin-layout{display:block;min-width:0}
  .admin-nav{position:relative;padding:14px max(14px,env(safe-area-inset-right)) 14px max(14px,env(safe-area-inset-left))}
  .admin-logo{margin:0}
  .admin-nav-toggle{display:flex;align-items:center;justify-content:center;width:100%;min-height:46px;margin-top:12px;border:1px solid #5c9875;border-radius:10px;background:#174d34;color:#fff;font:inherit;font-weight:800;cursor:pointer}
  .admin-nav nav{display:none;margin-top:10px;overflow:visible}
  .admin-nav nav.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .admin-nav-group{display:block;grid-column:1/-1;margin:10px 4px 2px}
  .admin-nav-public,.admin-nav-card{min-width:0}
  .admin-main{box-sizing:border-box}
}

@media(max-width:680px){
  body{padding-bottom:env(safe-area-inset-bottom)}
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{font-size:16px}
  button,.button,input[type="submit"],input[type="button"]{min-height:44px}
  input[type="checkbox"],input[type="radio"]{width:22px;height:22px;min-width:22px}
  .container,.form-container,.account-container,.policy{width:min(100% - 24px,1160px)}
  .page-bg{padding:32px 0 58px}
  .hero-grid{padding:38px 0 48px}
  .hero-copy{padding:20px 16px}
  .hero h1{font-size:clamp(28px,9vw,36px);overflow-wrap:anywhere}
  .facts{grid-template-columns:1fr;gap:10px}
  .facts div{padding:10px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.35)}
  .event-directory{padding:3.5rem 0}
  .event-cards{grid-template-columns:1fr}
  .event-card{padding:1.1rem}
  .schedule{padding-bottom:28px}
  .date-filter{position:sticky;z-index:7;top:66px;margin-inline:-12px;padding:8px 12px;background:rgba(244,248,245,.96);backdrop-filter:blur(8px);scroll-padding-inline:12px}
  .date-filter button{min-height:42px;white-space:nowrap}
  .date-slot-groups{gap:12px}
  .date-slot-group{scroll-margin-top:124px;border-radius:12px}
  .date-group-toggle{grid-template-columns:auto auto 1fr auto;min-height:52px;padding:10px 12px}
  .date-group-toggle span{font-size:19px}
  .date-group-toggle strong{font-size:13px}
  .date-group-toggle small{font-size:10px}
  .date-slot-group .slots{gap:9px;padding:12px;background:#fff}
  .slot{min-height:146px;padding:14px}
  .selection-summary{bottom:calc(8px + env(safe-area-inset-bottom));grid-template-columns:1fr auto;gap:7px 10px;padding:10px;border-radius:12px}
  .selection-summary>div{grid-column:1/-1;display:flex;justify-content:space-between;gap:8px;align-items:baseline}
  .selection-summary>div small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .selection-summary ol{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .selection-summary li{display:grid;grid-template-columns:1fr;align-content:start;height:58px;padding:6px 7px}
  .selection-summary li b{font-size:9px}
  .selection-summary li span{display:-webkit-box;overflow:hidden;font-size:10px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .selection-summary-submit{display:flex;grid-column:1/-1;min-height:42px;width:100%;padding:0 14px}
  .slot-selection-form>.button:last-child{width:100%;margin-top:14px}
  fieldset,.login-card,.complete-card,.panel{padding:20px 15px}
  .actions,.booking-actions,.policy-actions{gap:10px}
  .actions .button,.actions form,.actions form .button,.booking-actions .button{width:100%}
  .modal,.privacy-modal,.dialog{max-height:calc(100dvh - 24px);max-height:calc(100vh - 24px);margin:12px;padding-bottom:env(safe-area-inset-bottom);overflow:auto}
  .admin-nav nav.is-open{grid-template-columns:1fr}
  .admin-main{width:100%;padding:24px 12px 56px}
  .admin-page-guide,.admin-access-summary,.admin-version-summary{padding:15px}
  .admin-menu-card{padding:14px}
  .admin-nav-title,.admin-menu-card-head{align-items:flex-start;flex-direction:column}
  .event-switcher{align-items:stretch}
  .event-switcher .button{width:100%}
  .metrics{grid-template-columns:1fr 1fr;gap:8px}
  .metrics article{padding:14px 12px}
  .metrics strong{font-size:30px}
  .slot-form,.slot-list>div{grid-template-columns:1fr}
  .slot-form label:first-child{grid-column:auto}
  .allocation-filter form{grid-template-columns:1fr}
  .allocation-choice{grid-template-columns:1fr;align-items:stretch}
  .allocation-choice .button{width:100%}
  .phone-date-card,.phone-slot-option{min-width:0}
  .phone-slot-option{min-height:48px}
  .account-directory-panel,.booking-table-wrap{padding:0;background:transparent;border:0;box-shadow:none}
  .account-directory-table,.responsive-booking-table{display:block;min-width:0;width:100%}
  .account-directory-table thead,.responsive-booking-table thead{display:none}
  .account-directory-table tbody,.responsive-booking-table tbody{display:grid;gap:12px}
  .account-directory-table tr,.responsive-booking-table tr{display:block;padding:12px 14px;border:1px solid #d5e3da;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(20,75,46,.05)}
  .account-directory-table td,.responsive-booking-table td{display:grid;grid-template-columns:94px minmax(0,1fr);gap:8px;padding:8px 0;border:0;border-bottom:1px solid #e7ede9;white-space:normal;overflow-wrap:anywhere}
  .account-directory-table td:last-child,.responsive-booking-table td:last-child{border-bottom:0}
  .account-directory-table td::before,.responsive-booking-table td::before{content:attr(data-label);color:#66776d;font-size:10px;font-weight:800}
  .account-directory-table td>small,.responsive-booking-table td>small{grid-column:2}
  .preference-row{grid-column:2;grid-template-columns:1fr;gap:7px}
  .preference-row form,.preference-row .button{width:100%}
  .account-row-actions{grid-column:2;display:grid;gap:8px}
  .account-row-actions form,.account-row-actions button,.account-row-actions details{width:100%}
  .table-wrap{overflow:visible}
  .panel-title{align-items:flex-start;flex-direction:column;gap:8px}
  .change-history-table td{grid-template-columns:82px minmax(0,1fr)}
  .footer{padding-bottom:env(safe-area-inset-bottom)}
}

/* RODA-010: administrator password reset */
.login-help{margin:18px 0 0;text-align:center}.login-help a{color:var(--blue);font-weight:800}.admin-password-status{display:flex;flex-wrap:wrap;gap:7px 14px;margin:12px 0;padding:12px 14px;border:1px solid #d5e3da;border-radius:10px;background:#f6faf7;color:var(--muted);font-size:11px}.admin-password-status strong{width:100%;color:var(--deep)}
@media(max-width:680px){.admin-password-status{display:grid;gap:7px}.account-toggle,.account-toggle button{width:100%}}

/* RODA-011: bulk slot creation */
.bulk-slot-form{display:grid;gap:20px}.bulk-slot-form fieldset{margin:0;border:1px solid #d5e3da;border-radius:12px}.bulk-date-mode{display:flex;gap:10px;padding:12px}.bulk-date-mode label,.weekday-filter label{display:flex;gap:7px;align-items:center;min-height:44px;padding:8px 12px;border:1px solid #cbd9d0;border-radius:9px;background:#fff;cursor:pointer}.bulk-date-mode input,.weekday-filter input{width:20px;min-height:20px;margin:0;accent-color:var(--green)}.multi-date-calendar{max-width:560px;border:1px solid #cbd9d0;border-radius:14px;background:#fff;overflow:hidden}.multi-date-calendar>header{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;background:var(--navy);color:#fff;text-align:center}.multi-date-calendar>header button{min-height:48px;border:0;background:transparent;color:#fff;font-size:25px;cursor:pointer}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:7px}.calendar-weekdays{padding-bottom:0;color:var(--muted);font-size:10px;text-align:center}.calendar-days button{min-height:46px;border:1px solid transparent;border-radius:9px;background:#f6faf7;color:var(--deep);font:inherit;font-weight:700;cursor:pointer}.calendar-days button:hover{border-color:#7fb795}.calendar-days button.is-selected{border-color:var(--green);background:var(--green);color:#fff;box-shadow:0 0 0 2px rgba(24,131,77,.18)}.calendar-blank{min-height:46px}.selected-date-list{display:grid;gap:8px;margin-top:12px}.selected-date-list>div{display:flex;flex-wrap:wrap;gap:7px}.selected-date-chip{min-height:36px;padding:6px 10px;border:1px solid #8fc3a1;border-radius:999px;background:#edf8f1;color:#155d38;cursor:pointer}.range-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.weekday-filter{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px!important;padding:10px}.weekday-filter label{min-width:58px;justify-content:center}.bulk-time-ranges{display:grid;gap:12px;padding:15px}.bulk-time-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) auto;gap:10px;align-items:end}.bulk-time-row label{display:grid;gap:6px}.bulk-slot-confirm{padding:18px;border:2px solid #75af8a;border-radius:14px;background:#f3faf5;scroll-margin-top:20px;outline:none}.bulk-slot-confirm h3{margin-top:0}.bulk-slot-confirm dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.bulk-slot-confirm dl div{padding:10px;border-radius:9px;background:#fff}.bulk-slot-confirm dt{color:var(--muted);font-size:10px}.bulk-slot-confirm dd{margin:4px 0 0;color:var(--deep);font-size:18px;font-weight:800}.bulk-preview{display:grid;max-height:320px;margin:15px 0;overflow:auto;border:1px solid #d5e3da;border-radius:10px;background:#fff}.bulk-preview>div{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid #e5ece7;font-size:12px}.bulk-preview b{white-space:nowrap}.bulk-preview b.new{color:#17623d}.bulk-preview b.duplicate{color:#8b5b13}.bulk-preview>p{padding:10px 12px}.bulk-confirm-note{color:var(--muted);font-size:12px}
@media(max-width:680px){.bulk-date-mode,.range-date-fields,.bulk-time-row{display:grid;grid-template-columns:1fr}.bulk-date-mode label{width:100%}.calendar-days button,.calendar-blank{min-height:44px}.weekday-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.weekday-filter label{min-width:0;padding:7px 5px}.bulk-time-row{padding-bottom:12px;border-bottom:1px solid #d5e3da}.bulk-time-row .button{width:100%}.bulk-slot-confirm dl{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-preview>div{align-items:flex-start;flex-direction:column}.bulk-slot-confirm .actions,.bulk-slot-confirm .actions .button{width:100%}}

@media(orientation:landscape) and (max-height:500px){
  .selection-summary{position:relative;bottom:auto;margin-bottom:12px}
  .date-filter{position:static}
}

/* v0.9.13: 業務目的と権限が読める管理画面 */
.admin-nav nav{display:grid;gap:7px}.admin-nav-group{margin:18px 8px 5px;color:#82b998;font-size:10px;font-weight:800;letter-spacing:.08em}.admin-nav-public,.admin-nav-card{display:grid!important;gap:4px;padding:10px 11px!important;border-radius:10px;text-decoration:none}.admin-nav-public small,.admin-nav-card small{color:#9db8a8;font-size:9px;line-height:1.45}.admin-nav-card.active{background:#17623d}.admin-nav-title,.admin-menu-card-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.admin-badges{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.admin-badges b{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:24px;padding:3px 9px;border:1px solid #a8d2b7;border-radius:999px;background:#eaf7ef;color:#155d38;font-size:10px;line-height:1}.admin-nav .admin-badges b{min-width:0;min-height:20px;padding:3px 7px;border-color:#5c9875;background:#194f35;color:#d9f2e2}.admin-page-guide{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px;padding:20px 22px;border:1px solid #cfe0d5;border-radius:16px;background:#fff}.admin-page-guide h1{margin:3px 0 6px}.admin-page-guide p{margin:0;color:var(--muted)}.admin-access-summary{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px;padding:15px 18px;border:1px solid #a9d3b7;border-radius:14px;background:#eef8f2}.admin-access-summary div{display:grid;gap:2px}.admin-access-summary span{font-size:11px;color:var(--muted)}.admin-menu-home{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 22px}.admin-menu-home h2{grid-column:1/-1;margin:12px 0 0;font-size:16px}.admin-menu-card{display:grid;gap:10px;padding:17px;border:1px solid #d5e3da;border-radius:14px;background:#fff;color:var(--deep);text-decoration:none;box-shadow:0 6px 18px rgba(20,75,46,.05)}.admin-menu-card:hover{border-color:#80b997;transform:translateY(-1px)}.admin-menu-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.65}.capability-editor{grid-column:1/-1;display:grid;gap:14px;margin:0;padding:17px;border:1px solid #bdd8c7;border-radius:14px;background:#f5faf7}.capability-editor legend{padding:0 8px;color:var(--deep);font-weight:800}.capability-custom-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.capability-custom-fields.is-preset{padding:12px;border-radius:10px;background:#edf3ef}.capability-custom-fields.is-preset label{opacity:.76}.capability-system-note{margin:0;color:var(--muted);font-size:11px}.privacy-limited-notice{padding:12px 15px;border-left:4px solid #b17916;background:#fff8e8;color:#6d4a0e}.view-only-label{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf1ee;color:#66746c;font-size:10px;font-weight:800}
@media(max-width:980px){.admin-nav nav{display:flex}.admin-nav-group{display:none}.admin-nav-public,.admin-nav-card{min-width:210px}.admin-menu-home{grid-template-columns:1fr}}
@media(max-width:680px){.admin-page-guide,.admin-access-summary{align-items:stretch;flex-direction:column}.capability-custom-fields{grid-template-columns:1fr}.admin-nav-card small,.admin-nav-public small{display:block}.admin-badges b{font-size:9px}}

/* v0.9.18: 管理画面の更新履歴 */
.admin-version-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px;padding:18px 20px;border:1px solid #bdd8c7;border-radius:14px;background:#fff}.admin-version-summary>div{display:grid;gap:5px;align-items:baseline}.admin-version-summary span{color:var(--muted);font-size:12px}.admin-version-summary strong{color:var(--deep);font-size:20px}.admin-version-summary small{color:var(--muted)}.admin-version-summary p{margin:5px 0 0;color:var(--muted);font-size:12px}.admin-common-label{display:flex;gap:8px;align-items:center}.admin-common-label b{display:inline-flex;padding:4px 8px;border:1px solid #a8d2b7;border-radius:999px;background:#eaf7ef;color:#155d38;font-size:9px}.change-history-current{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;align-items:center;margin-bottom:18px;padding:18px 20px;border:1px solid #9bc8aa;border-radius:14px;background:#eef8f2}.change-history-current>div{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline}.change-history-current span,.change-history-current small{color:var(--muted)}.change-history-current strong{font-size:24px;color:var(--deep)}.change-history-current p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.change-history-tools{display:grid;grid-template-columns:minmax(240px,2fr) minmax(150px,1fr) minmax(170px,1fr);gap:12px;align-items:end;margin-bottom:16px;padding:16px;border:1px solid #d3e2d8;border-radius:14px;background:#fff}.change-history-tools label{display:grid;gap:6px;color:var(--deep);font-size:11px;font-weight:800}.change-history-tools input,.change-history-tools select{width:100%;min-height:42px}.change-history-result{grid-column:1/-1;margin:0;color:var(--muted);font-size:12px}.change-history-result strong{color:var(--deep)}.change-history-empty{padding:24px;border:1px solid #d3e2d8;border-radius:14px;background:#fff;text-align:center;color:var(--muted)}.change-history-table-wrap{overflow-x:auto;border:1px solid #d3e2d8;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(20,75,46,.05)}.change-history-table{width:100%;min-width:900px;border-collapse:collapse}.change-history-table thead th{padding:12px 14px;background:#edf4ef;color:#335745;font-size:11px;text-align:left;white-space:nowrap}.change-history-table td{padding:14px;vertical-align:top;border-top:1px solid #e6ece8;color:#33473c;font-size:12px;line-height:1.65}.change-history-version-row th{padding:14px 16px;border-top:1px solid #c8dbcf;background:#f6faf7;text-align:left}.change-history-version-row:first-child th{border-top:0}.change-history-version-row span{color:var(--deep);font-size:19px}.change-history-version-row time{margin-left:12px;color:var(--muted);font-size:11px}.current-version-badge{display:inline-flex;margin-left:12px;padding:6px 10px;border-radius:999px;background:#17623d;color:#fff;font-size:10px;vertical-align:middle}.history-category-badge,.history-management-id,.history-status{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border-radius:999px;line-height:1;white-space:nowrap}.history-category-badge{border:1px solid #a8d2b7;background:#eaf7ef;color:#155d38;font-size:10px;font-weight:800}.history-management-id{border:1px solid #e0c67b;background:#fff8df;color:#705510;font-size:10px}.history-status{border:1px solid #d2ddd6;background:#f3f6f4;color:#53635a;font-size:10px}.history-status.current{border-color:#62a77d;background:#e5f5eb;color:#155d38;font-weight:800}.history-empty-value{color:#89948e}.history-change-title{display:block;margin-bottom:4px;color:var(--deep);font-size:13px}.change-history-table td p{margin:0;color:var(--muted)}.history-detail{min-width:110px}.history-detail summary{cursor:pointer;color:#17623d;font-weight:800;white-space:nowrap}.history-detail[open]{min-width:300px}.history-detail dl{display:grid;gap:10px;margin:12px 0 0;padding:12px;border:1px solid #dce8e0;border-radius:10px;background:#f9fbfa}.history-detail dl div{display:grid;gap:3px}.history-detail dt{color:#617168;font-size:10px;font-weight:800}.history-detail dd{margin:0;color:#283c31;font-size:11px;line-height:1.65}
@media(max-width:760px){.admin-version-summary,.change-history-current{align-items:stretch;grid-template-columns:1fr;flex-direction:column}.admin-version-summary>div{grid-template-columns:1fr}.admin-version-summary small{grid-column:auto}.change-history-current>div{align-items:flex-start;flex-direction:column;gap:3px}.change-history-tools{grid-template-columns:1fr}.change-history-table-wrap{overflow:visible;border:0;background:transparent;box-shadow:none}.change-history-table{display:block;min-width:0}.change-history-table thead{display:none}.change-history-table tbody{display:block;margin-bottom:14px;overflow:hidden;border:1px solid #d3e2d8;border-radius:14px;background:#fff}.change-history-table tr{display:block}.change-history-version-row th{display:flex;flex-wrap:wrap;gap:7px 10px;align-items:center}.change-history-version-row time,.current-version-badge{margin-left:0}.change-history-table tr[data-history-item]{padding:13px 15px;border-top:1px solid #e6ece8}.change-history-table td{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px;padding:5px 0;border:0}.change-history-table td::before{content:attr(data-label);color:#6b7971;font-size:10px;font-weight:800}.history-detail[open]{min-width:0}.history-detail dl{grid-column:1/-1}.history-change-title{font-size:12px}}

/* RODA-009 final cascade: keep the compact admin navigation after legacy rules. */
@media(max-width:980px){
  .admin-nav nav{display:none;overflow:visible}
  .admin-nav nav.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .admin-nav-group{display:block;grid-column:1/-1}
  .admin-nav-public,.admin-nav-card{min-width:0}
}
@media(max-width:680px){
  .admin-nav nav.is-open{grid-template-columns:1fr}
  .admin-page-guide,.admin-access-summary{align-items:stretch;flex-direction:column}
  .admin-nav-title,.admin-menu-card-head{align-items:flex-start;flex-direction:column}
  .date-group-toggle small{width:auto;margin-left:0}
}

/* v0.9.33: soft raised surfaces around the unchanged corporate logo */
:root{
  --navy:#164b30;--deep:#113e29;--blue:#176b43;--green:#176b43;
  --ink:#20372b;--muted:#506658;--line:#cfdbd0;--mist:#eaf1e9;
  --surface:#eff4ee;--light:#fff;--raised:7px 7px 18px #d5e0d4,-7px -7px 18px #fff;
  --recessed:inset 3px 3px 7px #d7e1d7,inset -3px -3px 7px #fff;
  --shadow:var(--raised);
}
body,.admin-body{background:var(--surface);color:var(--ink)}
.notice{background:var(--deep);color:#fff}
.header{border-bottom:1px solid #d5e1d5;background:rgba(239,244,238,.97);box-shadow:0 7px 20px rgba(20,65,39,.07)}
.header-inner{min-height:86px}
.logo{display:grid;gap:5px;min-width:0;padding:8px 0}
.logo img{display:block;width:min(250px,100%);max-width:250px;max-height:none;height:auto;object-fit:contain}
.logo-service{color:var(--deep);font-size:12px;font-weight:800;letter-spacing:.08em}
.admin-logo{display:grid;gap:11px;align-content:start;margin:0 0 15px;padding:8px 5px 21px;border-bottom:1px solid #cbd9cc;color:var(--deep)}
.admin-logo img{display:block;width:100%;max-width:214px;height:auto;object-fit:contain}
.admin-logo strong{font-size:15px;letter-spacing:.02em}
.header nav a{color:var(--deep)}
.header nav a:hover,.header nav a:focus-visible{color:#0b6840;text-decoration:underline;text-underline-offset:4px}
.button{border-radius:12px;background:#176b43;border-color:#176b43;box-shadow:4px 4px 10px #d0dcd0,-4px -4px 10px #fff;color:#fff}
.button:hover{background:#105734}
.button.outline{border-color:#b8cdbb;background:var(--surface);color:var(--deep);box-shadow:var(--raised)}
.button.outline:hover{background:#e5eee5}
.hero{background:#eaf1e7}
.hero-copy,.experience,.event-card,.date-slot-group,.slot,.selected-slot,fieldset,.login-card,.complete-card,.booking-card,.policy,.empty,.panel,.metrics article,.venue-panel{
  border:1px solid #d1ded1;background:var(--surface);box-shadow:var(--raised)
}
.hero-copy{background:rgba(239,244,238,.96);backdrop-filter:blur(5px)}
.hero h1,.form-container h1,.title-row h1,.login-card h1,.complete-card h1,.policy h1,.admin-main h1{color:var(--deep)}
.lead,.hero-copy p,.experience li small{color:#3f5b48}
.schedule,.page-bg,.mobile-experience-section{background:var(--surface)}
.date-slot-group{overflow:hidden;border:1px solid #c4d7c7;border-radius:18px}
.date-separator-card{background:#164b30;color:#fff}
.date-slot-group .slots{background:#eaf1e9}
.slot{border-radius:14px}
.slot.open:hover{border-color:#176b43;box-shadow:4px 4px 13px #cddbcc,-4px -4px 13px #fff}
.slot.open:has(input:checked){border-color:#145d3c;outline:3px solid #176b43;outline-offset:1px;background:#e4f2e6;box-shadow:var(--recessed)}
.slot.unavailable{border-color:#ccd3cf;background:#e4e9e5;color:#536158;box-shadow:var(--recessed)}
.slot.unavailable em,.preference-unavailable{background:#fbe8e5;color:#842e27}
.selection-rank,.pill{background:#176b43;color:#fff}
.date-filter button{border-radius:11px;background:var(--surface);color:var(--deep);box-shadow:3px 3px 8px #d6e0d5,-3px -3px 8px #fff}
.date-filter button.selected{border-color:#164b30;background:#164b30;color:#fff;box-shadow:var(--recessed)}
.selected-slot{border-left:5px solid #176b43;border-radius:14px}
.requested-preferences,.login-methods,.complete-card dl,.change-box form,.material-details,.mail-delivery-status dl div{border-radius:12px;background:#e9f0e8;box-shadow:var(--recessed)}
fieldset,.login-card,.complete-card,.policy,.panel,.booking-card{border-radius:18px}
legend{padding:4px 10px;background:var(--surface);border-radius:8px}
label{color:#304e3a}
input,select,textarea{border:1px solid #aebfaf;border-radius:9px;background:#fbfdfa;color:#20372b}
input:focus,select:focus,textarea:focus{border-color:#176b43;box-shadow:0 0 0 3px #b6dcc2}
.consent{background:#e2eee4;color:#284b34}
.deadline-note,.reservation-expiry-notice,.timeout-validity,.draft-warning{border:1px solid #a46c1a;border-left:5px solid #a46c1a;background:#fff5dc;color:#583b0d;box-shadow:none}
.form-error-summary,.allocation-alert,.unavailable-note{border-color:#b83d35;background:#fff0ed;color:#802820;box-shadow:none}
.danger-button{background:#a9332c;border-color:#a9332c;color:#fff}
.danger-button:hover{background:#87271f}
.danger,.field-error{color:#982c25}
.flash.error{background:#922e27}
.admin-layout{grid-template-columns:250px minmax(0,1fr)}
.admin-nav{background:#e6efe6;color:var(--deep);border-right:1px solid #d0dfd1}
.admin-nav nav a,.admin-user,.admin-user button{color:#244c34}
.admin-nav nav a.active,.admin-nav nav a:hover{background:#d7e9da;color:#123f29;box-shadow:var(--recessed)}
.admin-nav-public small,.admin-nav-card small{color:#3a5c44}
.admin-nav .admin-badges b{border-color:#b5d1bd;background:#d7e9da;color:#174c30}
.admin-nav-group{color:#345c3f}
.admin-nav-public,.admin-nav-card,.admin-menu-card{border-radius:12px}
.admin-nav-card.active{border-color:#4d9d66}
.admin-main{min-width:0}
th{background:#dfece0;color:#294b33}
td{color:#314b3c}
.account-list .account-form,.phone-date-card,.allocation-choice{background:var(--surface)}
.logo-setting-note{grid-column:1/-1;margin:0;color:#344e3b;font-size:13px;line-height:1.7}
.standard-logo-preview{display:grid;grid-column:1/-1;gap:8px;justify-items:start;padding:14px;border:1px solid #cfddcf;border-radius:12px;background:#fff}
.standard-logo-preview img{display:block;width:min(100%,300px);height:auto}
.standard-logo-preview small{color:var(--muted)}
a:focus-visible,button:focus-visible,summary:focus-visible,input[type="checkbox"]:focus-visible,input[type="radio"]:focus-visible{
  outline:3px solid #995400;outline-offset:3px
}
.date-group-toggle:focus-visible{outline-color:#ffe08a;outline-offset:-4px}
.button:focus-visible,.admin-nav a:focus-visible{outline:3px solid #995400;outline-offset:3px}
@media(max-width:980px){
  .admin-layout{display:block}
  .admin-nav{border-right:0;border-bottom:1px solid #c8dacb}
  .admin-nav-toggle{background:#164b30;color:#fff}
}
@media(max-width:680px){
  .header-inner{min-height:70px;gap:7px}
  .logo{gap:3px;max-width:190px;flex:1}
  .logo img{width:min(185px,100%);max-height:none}
  .logo-service{font-size:10px;letter-spacing:0}
  .header .button{min-height:44px;padding:0 12px;font-size:12px}
  .hero-copy,.slot,.selected-slot,.panel,.booking-card{box-shadow:4px 4px 12px #d5e0d4,-4px -4px 12px #fff}
  .date-filter{background:rgba(239,244,238,.96)}
  .date-slot-group .slots{background:var(--surface)}
  .admin-logo img{width:min(214px,100%)}
}

/* v0.9.34: keep each date label inside its button; scroll only this row. */
.date-filter{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden}
.date-filter button{flex:0 0 auto;width:max-content;min-width:max-content;white-space:nowrap}
@media(max-width:680px){
  .date-filter{box-sizing:border-box;width:100%;margin-inline:0;padding:8px 2px 12px;scroll-padding-inline:2px;-webkit-overflow-scrolling:touch}
  .date-filter button{padding-inline:12px;scroll-snap-align:start}
}

/* v0.9.35: mobile form controls, readable slot actions and complete choices. */
.event-form,.slot-form,.bulk-slot-form,.bulk-time-row,.range-date-fields{min-width:0}
.event-form label,.slot-form label,.bulk-slot-form label,.bulk-time-row label,.range-date-fields label{min-width:0}
.slot.open input[type="checkbox"],.weekday-filter input[type="checkbox"]{box-sizing:border-box;width:20px;height:20px;min-width:20px;min-height:20px;padding:0;flex:0 0 20px}
.slot-list>div{grid-template-columns:minmax(0,1fr) 90px minmax(180px,230px)}
.slot-status-datetime{min-width:0;overflow-wrap:anywhere}
.slot-list b.closed{color:#4c6254}
.slot-status-confirm{min-width:0}
.slot-status-confirm summary,.slot-status-unavailable,.slot-status-confirm button{box-sizing:border-box;display:block;width:100%;min-height:44px;padding:10px 12px;border:1px solid #276a45;border-radius:10px;background:#e8f3e9;color:#163d29;font-size:13px;font-weight:800;line-height:1.5;text-align:center;cursor:pointer;overflow-wrap:anywhere}
.slot-status-confirm summary:hover,.slot-status-confirm button:hover{background:#d8ebdc}
.slot-status-confirm summary:focus-visible,.slot-status-confirm button:focus-visible{outline:3px solid #995400;outline-offset:3px}
.slot-status-confirm[open]{grid-column:1/-1}
.slot-status-confirm-body{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid #9bbda4;border-radius:10px;background:#f8fcf8}
.slot-status-confirm-body p{margin:0;overflow-wrap:anywhere;color:#263f30;font-size:13px;line-height:1.6}
.slot-status-confirm-body form{text-align:left}
.slot-status-confirm button{background:#155b39;color:#fff}
.slot-status-confirm button:hover{background:#10482d}
.slot-status-unavailable,.slot-status-unavailable:disabled{border-color:#a3ada6;background:#e7ebe8;color:#3d4b42;opacity:1;cursor:not-allowed}
@media(max-width:680px){
  .event-form,.slot-form,.range-date-fields,.bulk-time-row{grid-template-columns:minmax(0,1fr)}
  .slot-list>div{grid-template-columns:minmax(0,1fr);gap:8px}
  .slot-status-confirm,.slot-status-unavailable{grid-column:1}
  .selection-summary{position:relative;top:auto;bottom:auto;box-sizing:border-box;min-width:0;max-width:100%}
  .selection-summary>div{align-items:flex-start;flex-wrap:wrap}
  .selection-summary>div small{white-space:normal;overflow:visible;text-overflow:clip}
  .selection-summary ol{grid-template-columns:minmax(0,1fr)}
  .selection-summary li{grid-template-columns:72px minmax(0,1fr);align-items:start;height:auto;min-height:50px;overflow:visible}
  .selection-summary li b{font-size:12px}
  .selection-summary li span{display:block;overflow:visible;font-size:12px;line-height:1.5;-webkit-line-clamp:unset;overflow-wrap:anywhere}
}

/* v0.9.37: shared native datetime fields; padding belongs to the outer frame.
 * Avoid iOS date/time width + padding sizing (WebKit bug 301648), without
 * clipping text, hiding picker controls or changing the native input types.
 */
.datetime-field{box-sizing:border-box;grid-template-columns:minmax(0,1fr);width:100%;min-width:0;max-width:100%}
.datetime-control{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:47px;padding:0 13px;border:1px solid #aebfaf;border-radius:9px;background:#fbfdfa;color:#20372b}
.datetime-control>input[type="date"],.datetime-control>input[type="time"],.datetime-control>input[type="datetime-local"]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:45px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;box-shadow:none}
.datetime-control:focus-within{border-color:#176b43;box-shadow:0 0 0 3px #b6dcc2}
.datetime-control>input:focus{box-shadow:none}
.bulk-slot-form>section,.bulk-slot-form>fieldset,.bulk-slot-form [data-time-range-list]{min-width:0;max-width:100%}
@media(min-width:681px){.slot-form{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) auto}}
@media(max-width:720px){.event-form{grid-template-columns:minmax(0,1fr)}}

/* v0.9.41: wrap the full homepage copy within its card at every viewport. */
.hero-copy { min-width: 0; }
.hero-copy h1,
.hero-copy .lead {
  max-width: 100%;
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
}
