:root{--color-primary:#2f5d3a;--color-primary-dark:#1f4028;--color-accent:#43a047;--color-status-ok:#43a047;--color-status-ok-bg:#c9ead1;--color-status-partial:#ef8c4f;--color-status-partial-bg:#f8d3b8;--color-status-ng:#9e9e9e;--color-status-ng-bg:#e2e2e2;--color-slot-unavailable:#fff;--color-slot-unavailable-bg:#757575;--color-slot-available:#0288d1;--color-slot-available-bg:#e3f4fa;--color-slot-reserved-own:#3b6fd9;--color-slot-reserved-own-bg:#e4ecfd;--color-slot-postprocess:#e15b5b;--color-slot-postprocess-bg:#f0a8a8;--color-timeline-own-bg:#d7f0d1;--color-timeline-own-accent:#5cb85c;--color-mypage-tab-active-bg:#eef7ec;--color-mypage-undecided-bg:#f3d7c4;--color-mypage-io-badge-bg:#d2e2ea;--color-bg:#f7f7f5;--color-surface:#fff;--color-text:#222;--color-text-muted:#6b6b6b;--color-border:#e0e0e0;--color-danger:#d32f2f;--font-family-base:"Hiragino Sans", "Yu Gothic", "Noto Sans JP", "Meiryo", sans-serif;--radius-base:6px;--radius-pill:999px;--spacing-1:4px;--spacing-2:8px;--spacing-3:16px;--spacing-4:24px;--spacing-5:32px;--header-height:56px;--footer-height:64px;--front-max-width:480px;--admin-max-width:1024px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-family-base);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}button{font-family:inherit}.btn{width:100%;padding:var(--spacing-3);border-radius:var(--radius-base);cursor:pointer;border:none;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.btn-primary{background-color:var(--color-accent);color:#fff}.btn-secondary{background-color:var(--color-status-ng-bg);color:var(--color-text)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-warning{background-color:var(--color-status-partial);color:#fff}.form-group{margin-bottom:var(--spacing-3)}.form-label{margin-bottom:var(--spacing-1);font-size:.875rem;font-weight:700;display:block}.form-control{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--color-border);border-radius:var(--radius-base);background-color:var(--color-surface);color:var(--color-text);font-size:1rem}.tag-label{margin-bottom:var(--spacing-1);padding:2px var(--spacing-2);border:1px solid var(--color-slot-reserved-own);border-radius:var(--radius-base);background-color:var(--color-slot-reserved-own-bg);color:var(--color-slot-reserved-own);white-space:nowrap;font-size:.8125rem;font-weight:700;display:inline-block}.tag-label--block{width:fit-content;display:block}.schedule-setting{margin-bottom:var(--spacing-3)}.schedule-setting__title{margin-bottom:var(--spacing-2)}.schedule-setting__row{align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-2);flex-wrap:wrap;display:flex}.schedule-setting__radio{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.schedule-setting__label{width:3.5rem;color:var(--color-text);flex-shrink:0;font-weight:700}.schedule-setting__date{flex-shrink:0}.schedule-setting__row .form-control{flex:1;width:auto}.form-error{margin-top:var(--spacing-1);color:var(--color-danger);font-size:.8125rem}.form-status{margin-bottom:var(--spacing-3);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-base);background-color:var(--color-status-ok-bg);color:var(--color-status-ok)}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);padding:var(--spacing-3)}.data-table{border-collapse:collapse;background-color:var(--color-surface);width:100%}.data-table th,.data-table td{padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.data-table th{background-color:var(--color-bg);color:var(--color-text-muted);font-size:.875rem}.facility-block{border:2px solid var(--color-primary);border-radius:var(--radius-base);margin-bottom:var(--spacing-3);align-items:stretch;display:flex;overflow:hidden}.facility-block__label{padding:var(--spacing-2) var(--spacing-3);background-color:var(--color-status-ok-bg);color:var(--color-primary);white-space:nowrap;flex:none;align-items:center;font-weight:700;display:flex}.facility-block__value{padding:var(--spacing-2) var(--spacing-3);background-color:var(--color-surface);color:var(--color-primary);flex-direction:column;flex:1;justify-content:center;gap:2px;font-weight:700;display:flex}.table-actions{gap:var(--spacing-2);display:flex}.btn-inline{width:auto;padding:var(--spacing-1) var(--spacing-3);font-size:.875rem;display:inline-flex}.section-title{margin:var(--spacing-4) 0 var(--spacing-2);font-size:1.125rem}.section-title:first-child{margin-top:0}.reservation-header{text-align:center;padding:var(--spacing-3);margin-bottom:var(--spacing-4);background-color:var(--color-status-ok-bg);border:2px solid var(--color-primary);border-radius:var(--radius-base)}.reservation-header__date{color:var(--color-danger);font-weight:700}.reservation-header__room{color:var(--color-text);margin-top:var(--spacing-1);font-size:1.125rem;font-weight:700}.section-title--center{text-align:center}.section-notice{margin:0 0 var(--spacing-3);color:var(--color-text-muted);white-space:pre-line;font-size:.8125rem}.availability-date-bar{justify-content:center;align-items:center;gap:var(--spacing-2);margin-bottom:var(--spacing-3);display:flex;position:relative}.availability-date-bar__label{color:var(--color-primary);font-weight:700}.date-picker-btn{border:1px solid var(--color-border);border-radius:var(--radius-base);background-color:var(--color-surface);width:2rem;height:2rem;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.date-picker-btn svg{width:18px;height:18px}.date-picker-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}dialog.ceremony-modal{width:min(90vw,360px);padding:var(--spacing-4);border-radius:var(--radius-base);border:none}dialog.ceremony-modal::backdrop{background-color:#0006}dialog.ceremony-modal .btn{margin-bottom:var(--spacing-2)}button.room-card{width:100%;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer}.room-card{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);border-radius:var(--radius-base);margin-bottom:var(--spacing-2);border:1px solid #0000;border-left-width:6px;display:flex}.room-card__name{font-weight:700}.room-card__price{color:var(--color-text-muted);font-size:.8125rem}.room-card--ok{background-color:var(--color-status-ok-bg);border-color:var(--color-status-ok)}.room-card--partial{background-color:var(--color-status-partial-bg);border-color:var(--color-status-partial)}.room-card--ng{background-color:var(--color-status-ng-bg);border-color:var(--color-status-ng)}.timeline-legend{gap:var(--spacing-1) var(--spacing-3);margin:0 0 var(--spacing-3);color:var(--color-text-muted);flex-wrap:wrap;padding:0;font-size:.8125rem;list-style:none;display:flex}.timeline-legend__item{align-items:center;gap:var(--spacing-1);display:flex}.timeline-legend__swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.timeline-legend__swatch.timeline-slot--available{background-color:var(--color-slot-available)}.timeline-legend__swatch.timeline-slot--reserved-own{background-color:var(--color-timeline-own-accent)}.timeline-table{border-collapse:collapse;width:100%}.timeline-table td{padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-surface);background-color:#0000}.timeline-table td:first-child{width:4.5rem;font-weight:700}.timeline-table__row--clickable{cursor:pointer}.status-badge{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-pill);color:var(--color-text);font-size:.875rem;font-weight:700;display:inline-block}.status-badge--ok{background-color:var(--color-status-ok-bg);color:var(--color-status-ok)}.status-badge--partial{background-color:var(--color-status-partial-bg);color:var(--color-status-partial)}.status-badge--ng,.status-badge--vacant{background-color:var(--color-status-ng-bg);color:var(--color-status-ng)}.status-badge--booked{background-color:var(--color-status-ok-bg);color:var(--color-status-ok)}.timeline-slot--unavailable{background-color:var(--color-slot-unavailable-bg);color:var(--color-slot-unavailable)}.timeline-slot--available{background-color:var(--color-slot-available-bg);color:var(--color-slot-available);font-weight:700}.timeline-slot--reserved-own{background-color:var(--color-timeline-own-bg);color:var(--color-text)}.timeline-slot--postprocess{background-color:var(--color-slot-postprocess-bg);color:var(--color-text)}.front-page{min-height:100vh;max-width:var(--front-max-width);background-color:var(--color-bg);flex-direction:column;margin:0 auto;display:flex}.front-header{height:var(--header-height);background-color:var(--color-primary);color:#fff;justify-content:center;align-items:center;font-weight:700;display:flex}.front-main{padding:var(--spacing-3);padding-bottom:calc(var(--footer-height) + var(--spacing-3));flex:1}.front-footer{width:100%;max-width:var(--front-max-width);height:var(--footer-height);background-color:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.front-nav-item{justify-content:center;align-items:center;gap:var(--spacing-1);color:var(--color-text-muted);flex-direction:column;flex:1;font-size:.75rem;display:flex}.front-nav-item svg{width:22px;height:22px}.front-nav-item--active{color:var(--color-primary)}.mypage-title{text-align:left;border-bottom:2px solid var(--color-primary);padding-bottom:var(--spacing-2);margin-bottom:0}.mypage-tabs{border-bottom:1px solid var(--color-border);margin-bottom:var(--spacing-3);display:flex}.mypage-tabs__item{justify-content:center;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2);color:var(--color-text-muted);border-bottom:3px solid #0000;flex:1;font-weight:700;text-decoration:none;display:flex}.mypage-tabs__item svg{width:18px;height:18px}.mypage-tabs__item--active{background-color:var(--color-mypage-tab-active-bg);color:var(--color-primary);border-bottom-color:var(--color-primary)}.section-title--bar{border-left:4px solid var(--color-primary);padding-left:var(--spacing-2);align-items:center;display:flex}.reservation-date-group{border:1px solid var(--color-border);border-radius:var(--radius-base);margin-bottom:var(--spacing-3);overflow:hidden}.reservation-date-group__header{background-color:var(--color-status-ok-bg);text-align:center;padding:var(--spacing-2);font-weight:700}.reservation-block{padding:var(--spacing-2) var(--spacing-3);border-bottom:1px solid var(--color-border)}.reservation-block:last-child{border-bottom:none}.reservation-block--undecided{background-color:var(--color-mypage-undecided-bg)}.reservation-block--clickable{cursor:pointer}.reservation-block__room{text-align:center;margin-bottom:var(--spacing-1);font-weight:700}.reservation-block__room-type{margin-left:var(--spacing-1);font-size:.875rem;font-weight:400}.reservation-block__body{align-items:center;width:100%;display:flex}.reservation-block__times{flex-direction:column;gap:2px;width:25%;font-size:.875rem;display:flex}.reservation-block__time-row{align-items:center;gap:var(--spacing-1);display:flex}.reservation-block__io-badge{background-color:var(--color-mypage-io-badge-bg);width:1.6em;height:1.4em;color:var(--color-text);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.reservation-block__io-badge--out{color:var(--color-danger)}.reservation-block__time--undecided{color:var(--color-danger);font-weight:700}.reservation-block__family{text-align:center;width:50%;font-size:1.125rem;font-weight:700}.reservation-block__amount{text-align:right;width:25%;font-weight:700}.reservation-block__badge{margin-top:var(--spacing-1);display:inline-block}.reservation-block__actions{margin-top:var(--spacing-2)}.reservation-block__actions .btn-inline{padding:2px var(--spacing-2);font-size:.75rem}.admin-page{flex-direction:column;min-height:100vh;display:flex}.admin-header{height:var(--header-height);background-color:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:center;align-items:center;font-weight:700;display:flex}.admin-main{width:100%;max-width:var(--admin-max-width);padding:var(--spacing-4);padding-bottom:calc(var(--footer-height) + var(--spacing-4));flex:1;margin:0 auto}.admin-footer{width:100%;height:var(--footer-height);background-color:var(--color-surface);border-top:1px solid var(--color-border);display:flex;position:fixed;bottom:0;left:0}.admin-nav-item{justify-content:center;align-items:center;gap:var(--spacing-1);color:var(--color-text-muted);flex-direction:column;flex:1;font-size:.8125rem;display:flex}.admin-nav-item svg{width:22px;height:22px}.admin-nav-item--active{color:var(--color-primary)}@media (width<=767px){.admin-main{padding:var(--spacing-3)}}.schedule-week-nav{justify-content:center;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-3);font-weight:700;display:flex}.schedule-grid-wrapper{margin-bottom:var(--spacing-4);overflow-x:auto}.schedule-grid{border-collapse:collapse;background-color:var(--color-surface);width:100%}.schedule-grid th,.schedule-grid td{padding:var(--spacing-2);border:1px solid var(--color-border);text-align:center;white-space:nowrap;font-size:.8125rem}.schedule-grid th:first-child,.schedule-grid td:first-child{text-align:left;white-space:normal;min-width:8rem}.schedule-grid__section-row td,.schedule-grid__section-row td:first-child{background-color:var(--color-bg);text-align:center;font-size:1.125rem;font-weight:700}.schedule-section-title{text-align:center;font-size:1.25rem;font-weight:700}.schedule-room-grid{gap:var(--spacing-3);margin-bottom:var(--spacing-4);grid-template-columns:1fr 1fr;display:grid}.schedule-room-card{border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden}.schedule-room-card__header{background-color:var(--color-primary);color:#fff;text-align:center;padding:var(--spacing-2);font-weight:700}.schedule-room-card__slots{background-color:var(--color-border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.schedule-slot{background-color:var(--color-surface);padding:var(--spacing-2);color:var(--color-text);border-left:4px solid var(--color-border);font-size:.8125rem;display:block}.schedule-slot--empty{color:var(--color-text-muted);justify-content:center;align-items:center;min-height:4rem;display:flex}.schedule-slot__header{margin:calc(var(--spacing-2) * -1) calc(var(--spacing-2) * -1) var(--spacing-2);padding:var(--spacing-1) var(--spacing-2);color:#fff;font-weight:700}.schedule-slot--one-day{border-left-color:var(--color-status-partial)}.schedule-slot--one-day .schedule-slot__header{background-color:var(--color-status-partial)}.schedule-slot--wake-funeral{border-left-color:var(--color-accent)}.schedule-slot--wake-funeral .schedule-slot__header{background-color:var(--color-accent)}.schedule-slot--mortuary{background-color:var(--color-status-ok-bg);border-left-color:var(--color-accent)}.schedule-slot__divider{margin:var(--spacing-1) 0;border:none;border-top:1px solid var(--color-border)}.schedule-slot__row{align-items:center;gap:var(--spacing-1);margin-bottom:2px;display:flex}.schedule-slot__row .tag-label{flex-shrink:0;margin-bottom:0}.schedule-slot__row--family strong{font-size:1rem}.admin-form-actions{gap:var(--spacing-2);margin-top:var(--spacing-3);display:flex}.admin-form-actions .btn{flex:1;width:auto}
