:root {
  color-scheme: light;
  --accent: #c64020;
  --field-border: #cbd3da;
  --soft: #e5e9ec;
  --image-surface: #e8ebed;
  --badge: #fffef5ed;
  --danger: #ad3015;
  --error-bg: #fff0ed;
  --error-text: #a0270d;
  --error-border: #f4c3b7;
  --success-bg: #e4f3eb;
  --success-text: #20593b;
  --success-border: #bbdccb;
  --button-text: #fff;
  --button-hover: #b73517;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #101820;
  --white: #192530;
  --ink: #eef3f7;
  --muted: #afbdc9;
  --line: #354552;
  --accent: #ff8a65;
  --blue: #20374a;
  --field-border: #536573;
  --soft: #2b3b49;
  --image-surface: #1b2935;
  --badge: #192530ed;
  --danger: #ffab94;
  --error-bg: #3b2424;
  --error-text: #ffc3b3;
  --error-border: #855044;
  --success-bg: #183b2e;
  --success-text: #b8e7cf;
  --success-border: #47775e;
  --button-text: #141d25;
  --button-hover: #ffa184;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --paper: #101820; --white: #192530; --ink: #eef3f7; --muted: #afbdc9;
    --line: #354552; --accent: #ff8a65; --blue: #20374a;
    --field-border: #536573; --soft: #2b3b49; --image-surface: #1b2935; --badge: #192530ed;
    --danger: #ffab94; --error-bg: #3b2424; --error-text: #ffc3b3; --error-border: #855044;
    --success-bg: #183b2e; --success-text: #b8e7cf; --success-border: #47775e;
    --button-text: #141d25; --button-hover: #ffa184;
  }
}
body { background: var(--paper); color: var(--ink); }
.intro-stamp, .login-card, .admin-item, .button.secondary { background: var(--white); }
.intro-stamp, .admin-empty, .upload-zone { border-color: var(--field-border); }
.count { background: var(--soft); }
.card-image, .gallery-main { background: var(--image-surface); }
.photo-count { background: var(--badge); }
input:not([type=radio]):not([type=checkbox]):not([type=file]):not([type=hidden]), select, textarea {
  background: var(--white); border-color: var(--field-border); color: var(--ink);
}
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
.upload-zone input::file-selector-button { background: var(--white); color: var(--ink); }
.button { color: var(--button-text); }
.button:hover { background: var(--button-hover); border-color: var(--button-hover); }
.button.secondary:hover { background: var(--soft); border-color: var(--ink); }
.danger, .remove-label { color: var(--danger); }
.message.error { background: var(--error-bg); color: var(--error-text); border-color: var(--error-border); }
.message.success { background: var(--success-bg); color: var(--success-text); border-color: var(--success-border); }
.site-header { flex-wrap: wrap; padding-top: 16px; padding-bottom: 16px; }
.site-header nav { display: flex; align-items: center; gap: 12px 24px; flex-wrap: wrap; justify-content: flex-end; min-width: 0; }
.site-header nav > a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; line-height: 1.2; white-space: nowrap; }
.site-header nav > a span { display: inline-flex; align-items: center; margin-left: 0; font-size: 18px; line-height: 1; }
@media (max-width: 820px) { .site-header nav { flex-basis: 100%; justify-content: flex-start; } }
.theme-switch { display: inline-flex; border: 1px solid var(--line); background: var(--white); border-radius: 9px; padding: 3px; gap: 2px; }
.theme-switch button { border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 14px; font-weight: 600; padding: 10px 12px; min-height: 40px; }
.theme-switch button:hover { color: var(--ink); background: var(--soft); }
.theme-switch button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
@media (max-width: 640px) {
  .site-header { flex-wrap: wrap; padding: 14px 0; gap: 14px; }
  .site-header nav { display: flex; gap: 10px 20px; }
  .site-header nav > a { margin-left: 0; font-size: 14px; }
  .theme-switch { flex-basis: 100%; }
  .theme-switch button { flex: 1; min-height: 44px; }
}

.serial-number { font-size: 14px; color: var(--muted); font-variant-numeric: tabular-nums; margin: 10px 0; overflow-wrap: anywhere; }

.admin-create-actions { display:flex; gap:12px; flex-wrap:wrap; }
.item-actions { flex-wrap:wrap; justify-content:flex-end; max-width:50%; gap:14px; }
.status-badge { display:inline-block; padding:9px 14px; border-radius:25px; background:var(--soft); font-size:14px; font-weight:700; }
@media(max-width:640px) { .site-header nav > a { margin-left:0; } .site-header .brand { flex-basis:100%; } .section-heading { flex-wrap:wrap; } .admin-create-actions { width:100%; } .item-actions { max-width:100%; } }

.admin-filters { display:grid; grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto; gap:16px; padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--white); align-items:end; }
.admin-filters label { margin:0 0 9px; }
.filter-actions { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.filter-summary { margin:20px 0; font-size:14px; color:var(--muted); }
.admin-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:20px; margin:28px 0 40px; font-size:14px; }
@media(max-width:1000px) { .admin-filters { grid-template-columns:1fr 1fr; } }
@media(max-width:640px) { .admin-filters { grid-template-columns:minmax(0,1fr); padding:16px; } .filter-actions .button { flex:1; } }

/* Keep the history introduction secondary to the photo collection. */
.catalog-intro.history-intro { padding: 24px 0 22px; }
.history-intro .eyebrow { margin-bottom: 10px; }
.history-intro h1 { font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -1.2px; }
.history-intro .intro-copy { margin-top: 10px; font-size: 16px; line-height: 1.5; }
@media(max-width:640px) { .catalog-intro.history-intro { padding: 20px 0; } }

/* Smaller history tiles fill the available width without an empty side strip. */
.history-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media(max-width:1100px) { .history-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media(max-width:700px) { .history-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.mini-measurements { display:flex; justify-content:space-between; gap:20px; padding:18px 0; margin:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:16px; }
.mini-measurements dt { font-weight:600; } .mini-measurements dd { margin:0; color:var(--muted); text-align:right; }
.mini-diameter { font-size:14px; margin:9px 0; color:var(--muted); }
.size-filter { display:flex; align-items:end; flex-wrap:wrap; gap:14px; margin:0 0 24px; padding:18px; border:1px solid var(--line); border-radius:10px; background:var(--white); }
.size-filter label { margin:0 0 8px; } .size-filter select { min-width:160px; } .size-filter input { max-width:160px; }
.size-filter-note { font-size:14px; color:var(--muted); margin:0 0 24px; }
@media(max-width:640px) { .size-filter>div { flex:1; min-width:130px; } .size-filter input { max-width:none; } }

@media(max-width:640px) { .size-filter select { min-width:0; } }

.site-footer { align-items:center; flex-wrap:wrap; gap:20px 32px; }
.footer-links { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; }
.footer-links a { padding:8px 0; text-underline-offset:4px; }
.footer-links a:hover { text-decoration:underline; }
.legal-page { max-width:760px; margin:0 auto; padding:36px 0 56px; }
.legal-page h1 { font-family:Georgia, 'Times New Roman', serif; font-weight:400; font-size:clamp(32px, 5vw, 48px); letter-spacing:-1px; line-height:1.15; margin:0 0 28px; }
.legal-page h2 { font-size:20px; line-height:1.4; margin:32px 0 12px; }
.legal-page p, .legal-page li { font-size:16px; line-height:1.7; }
.legal-page p { margin:0 0 16px; }
.legal-page a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.legal-page address { font-style:normal; line-height:1.7; }
@media(max-width:640px) { .site-footer { align-items:flex-start; flex-direction:column; } .footer-links { gap:8px 20px; } .legal-page { padding-top:24px; } }

.legal-updated { color:var(--muted); margin-top:32px!important; }

.reservation-cta { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.reservation-badge { display:inline-block; color:var(--accent); font-size:13px; font-weight:700; margin:0 0 12px; }
.reservation-form { margin-top:28px; } .reservation-form>input, .reservation-form>textarea { margin-bottom:20px; }
.reservation-form a, .reservation-contact a { text-decoration:underline; }
.reservation-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.reservation-contact { margin-top:28px!important; }
.reservation-tabs { display:flex; flex-wrap:wrap; gap:20px; margin:24px 0; }
.reservation-tabs [aria-current] { color:var(--accent); text-decoration:underline; text-underline-offset:5px; }
.reservation-card { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; border-top:1px solid var(--line); padding:24px 0; }
.reservation-card>div { min-width:0; } .reservation-card p { line-height:1.6; overflow-wrap:anywhere; }
.reservation-card h2 { font-size:24px; margin:10px 0; } .reservation-message { white-space:normal; max-width:700px; }
.reservation-actions, .reservation-actions form { display:flex; flex-direction:column; gap:12px; align-items:stretch; }
.reservation-actions { flex-shrink:0; } .reservation-admin { padding-bottom:40px; }
@media(max-width:700px) { .reservation-card { flex-direction:column; } .reservation-actions { width:100%; } }

.history-categories { display:flex; flex-wrap:wrap; gap:12px 24px; margin:0 0 28px; font-size:15px; }
.history-categories a { padding:8px 0; color:var(--muted); }
.history-categories [aria-current="page"] { color:var(--ink); text-decoration:underline; text-underline-offset:6px; }
@media(min-width:1001px) { .admin-filters { grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr)) auto; } }

.visibility-option { display:flex; align-items:center; gap:10px; margin:24px 0 8px; }
.visibility-option input { width:18px; height:18px; margin:0; flex-shrink:0; }
@media(min-width:1001px) { .admin-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }

.material-transfer { border:0; padding:0; margin:24px 0; min-width:0; }
.material-transfer legend { font-weight:700; font-size:14px; padding:0; }
.material-transfer-lists { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:12px 0; }
.material-transfer-lists[hidden] { display:none; }
.material-transfer-lists section { border:1px solid var(--line); padding:14px; border-radius:8px; min-height:145px; }
.material-transfer-lists h3 { margin:0 0 12px; font-size:14px; }
.material-transfer-item { display:block; width:100%; text-align:left; font:inherit; font-size:13px; color:var(--ink); background:var(--white); border:1px solid var(--field-border); padding:10px; margin:0 0 8px; border-radius:5px; cursor:pointer; overflow-wrap:anywhere; }
.material-transfer-item:hover { border-color:var(--accent); }
@media(max-width:420px) { .material-transfer-lists { grid-template-columns:1fr; } .material-transfer-lists section { min-height:100px; } }

.material-admin { max-width:1000px; margin:0 auto; padding:24px 0 48px; }
.material-admin h1 { font-size:clamp(28px,4vw,40px); }
.material-add, .material-rename { display:flex; align-items:center; gap:16px; }
.material-add { padding:24px 0; margin-bottom:20px; } .material-add>div, .material-rename>div { flex:1; min-width:0; }
.material-admin-row { display:grid; grid-template-columns:minmax(0,1fr) 200px; gap:28px; align-items:center; border-top:1px solid var(--line); padding:22px 0; }
.material-admin-row .field-hint { margin:8px 0 0; } .material-admin-row a { text-decoration:underline; }
.material-admin-row button:disabled { opacity:.5; cursor:not-allowed; }
@media(max-width:640px) { .material-admin-row { grid-template-columns:1fr; gap:12px; } .material-add, .material-rename { align-items:stretch; flex-direction:column; } }

/* Active reservations need attention; the zero state keeps its quiet button. */
.reservation-attention { display:flex; align-items:center; gap:18px; padding:22px 24px; margin:24px 0 18px; border:2px solid #e65d34; border-radius:10px; background:#ff8a65; color:#141d25; }
.reservation-attention:hover { background:#ffa184; color:#141d25; }
.reservation-attention:focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
.reservation-attention-count { display:grid; place-items:center; flex-shrink:0; min-width:48px; height:48px; padding:0 10px; border-radius:24px; background:#141d25; color:#fff; font-size:24px; font-weight:800; }
.reservation-attention-copy { display:flex; flex-direction:column; gap:5px; }
.reservation-attention-copy strong { font-size:20px; line-height:1.3; }
.reservation-attention-copy>span { font-size:14px; line-height:1.5; }
.reservation-attention-action { margin-left:auto; font-size:15px; font-weight:700; white-space:nowrap; }
@media(max-width:600px) { .reservation-attention { flex-wrap:wrap; padding:18px; gap:12px; } .reservation-attention-copy { flex:1; min-width:160px; } .reservation-attention-copy strong { font-size:18px; } .reservation-attention-action { margin-left:0; width:100%; } }

/* Status remains legible through both its label and its distinct colour. */
.admin-item-flags { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 10px; }
.admin-flag { display:inline-flex; align-items:center; padding:5px 10px; border:1px solid; border-radius:6px; font-size:12px; font-weight:750; line-height:1.35; letter-spacing:.1px; }
.admin-flag-available { background:#d8f3e2; color:#175633; border-color:#73b78d; }
.admin-flag-hidden { background:#fff0bd; color:#644800; border-color:#c7a142; }
.admin-flag-history { background:#dceaff; color:#214c86; border-color:#88aade; }
.admin-flag-reserved { background:#ffe1cd; color:#853508; border-color:#db986a; }
.admin-flag-sold { background:#ede1fb; color:#603384; border-color:#ba9bd2; }
.admin-flag-category { background:var(--soft); color:var(--ink); border-color:var(--line); }
.admin-item-material { margin:0 0 7px; font-size:12px; line-height:1.4; color:var(--muted); }

.login-layout.login-centered { display:block; max-width:460px; margin:0 auto; padding:48px 0; }
.login-centered .login-card h1 { font-size:28px; line-height:1.2; letter-spacing:-1px; margin:0 0 30px; }

/* Admin workflow tools */
.reservation-age{grid-column:1/-1;justify-self:start;margin:0;padding:.4rem .75rem;border:1px solid currentColor;border-radius:5px;font-weight:700}
.reservation-age-alert{background:#ff8d69;color:#201610;border-color:#ff8d69}
.reservation-note{grid-column:1/-1;width:100%}.reservation-note textarea{width:100%;box-sizing:border-box}
.photo-sort-controls{display:flex;gap:.4rem;flex-wrap:wrap}.photo-option[draggable=true]{cursor:grab}.photo-option.dragging{opacity:.5}.photo-sort-controls button{padding:.3rem .6rem}
.backup-list{display:grid;gap:1rem}.backup-entry{border:1px solid var(--line,#647481);padding:1rem}.backup-entry form{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.share-mini{margin-top:1.5rem}

.reservation-card{display:grid;grid-template-columns:minmax(0,1fr) auto}.reservation-card>.reservation-actions{grid-column:2;grid-row:2}.reservation-card>.reservation-note{grid-row:3}
@media(max-width:700px){.reservation-card{grid-template-columns:minmax(0,1fr)}.reservation-card>.reservation-actions{grid-column:1;grid-row:3}.reservation-card>.reservation-note{grid-row:4}}

.quick-edit,.mini-history{margin-top:12px}.quick-edit form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:12px}.quick-edit input{width:130px}.quick-edit label{display:block}.mini-history ol{padding-left:20px;font-size:14px}.customer-mail-status{grid-column:1/-1;font-size:14px;color:var(--muted)}

.admin-item .quick-edit form{display:flex;gap:12px;align-items:flex-end;margin:12px 0 0}.admin-item .quick-edit label{flex:0 1 140px;width:140px;margin:0}.admin-item .quick-edit input{width:100%;min-width:0;box-sizing:border-box;margin:6px 0 0;padding:10px}.admin-item .quick-edit button{margin:0}.mini-history li{margin:6px 0}

.favourite-button{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:8px 14px;cursor:pointer;margin:8px 0 18px}.favourite-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.favourite-button[hidden]{display:none}.wishlist-link{font-size:14px}.reservation-progress{grid-column:1/-1;grid-row:3}.reservation-progress form{display:flex;gap:16px;align-items:end;flex-wrap:wrap}.reservation-progress label{margin:0}.reservation-progress select{margin-bottom:0}.reservation-card>.reservation-note{grid-row:4}.reservation-progress details{margin-top:16px}
@media(max-width:700px){.reservation-progress{grid-row:4}.reservation-card>.reservation-note{grid-row:5}.reservation-progress form{display:grid;grid-template-columns:1fr}}

.second-life-badge{display:inline-block;background:#c6e8ba;color:#183c23;border:1px solid #548a59;border-radius:4px;padding:4px 8px;font-size:13px;font-weight:700;margin:4px 0}.second-life-info{border-left:3px solid #548a59;padding-left:16px;margin:22px 0}.admin-overview{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:24px 0}.admin-overview>div{border:1px solid var(--line);padding:14px}.admin-overview strong{display:block;font-size:26px}.admin-overview span{font-size:13px}.reservation-contact-edit{grid-column:1/-1;grid-row:4}.reservation-contact-edit form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px}.reservation-contact-edit .field-hint{grid-column:1/-1}.reservation-card>.reservation-note{grid-row:5}.reservation-progress input{max-width:300px}.reservation-progress label{flex:0 1 260px}.reservation-contact-edit input{width:100%}
@media(max-width:900px){.admin-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.reservation-contact-edit{grid-row:5}.reservation-card>.reservation-note{grid-row:6}.reservation-contact-edit form{grid-template-columns:1fr}.admin-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}

.invoice-admin{padding:30px 0 50px}.invoice-admin h1{font-size:38px}.invoice-admin h2{font-size:24px;margin:25px 0 18px}.invoice-form{max-width:720px;padding:26px;border:1px solid var(--line);border-radius:12px;margin-top:24px}.invoice-form label{display:block;margin:16px 0}.invoice-form input:not([type=checkbox]),.invoice-form textarea{width:100%;box-sizing:border-box}.invoice-check{display:flex!important;gap:12px;align-items:flex-start}.invoice-check input{width:20px;height:20px;flex-shrink:0}.invoice-review{max-width:720px;border-top:1px solid var(--line);padding:20px 0;margin-top:24px}.invoice-review form{margin-top:16px}.invoice-review textarea{width:100%;box-sizing:border-box}.invoice-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.invoice-row p{margin:8px 0;overflow-wrap:anywhere}.invoice-admin .section-heading{flex-wrap:wrap}@media(max-width:640px){.invoice-form{padding:18px}.invoice-admin .field-row{grid-template-columns:1fr}.invoice-row{align-items:flex-start;flex-wrap:wrap}}

.button.button-danger{background:#b42332;border-color:#b42332;color:#fff}.button.button-danger:hover{background:#941b28;border-color:#941b28;color:#fff}.button.button-danger:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

.reservation-close-dialog{box-sizing:border-box;width:min(540px,calc(100% - 32px));max-height:calc(100vh - 32px);overflow:auto;background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:28px}.reservation-close-dialog::backdrop{background:rgb(0 0 0 / 65%)}.reservation-close-dialog h2{font-size:24px;margin:0 0 18px}.reservation-close-dialog p{line-height:1.6}.reservation-close-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

.bundle-choice{display:flex;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.bundle-choice input{width:20px;height:20px;flex-shrink:0}.address-fields,.invoice-form fieldset,.reservation-progress fieldset{border:1px solid var(--line);border-radius:8px;padding:18px;margin:20px 0}.address-fields legend{font-weight:700}.quick-edit textarea{width:100%;box-sizing:border-box}
.admin-logout { margin:0; }
.site-header nav .admin-logout .button { text-decoration:none; white-space:nowrap; }
.admin-hub { max-width:1100px; margin:24px auto 64px; }
.admin-hub h1 { font-size:clamp(28px,4vw,44px); }
.hub-tabs { display:flex; gap:24px; border-bottom:1px solid var(--line); margin:24px 0; }
.hub-tabs a { padding:12px 0; text-decoration:none; border-bottom:3px solid transparent; }
.hub-tabs a[aria-current] { border-color:var(--accent); font-weight:700; }
.hub-functions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 36px; }
.hub-functions article { padding:8px 0 20px; border-bottom:1px solid var(--line); }
.hub-functions h2 { font-size:22px; }.hub-functions li { margin:10px 0; line-height:1.5; }
.hub-idea { border:1px solid var(--line); border-radius:10px; padding:20px; margin:16px 0; }
.hub-idea summary { cursor:pointer; font-weight:700; }.hub-state { color:var(--accent); margin-right:10px; }
.hub-idea form { margin-top:20px; }.hub-idea label { display:block; margin:16px 0 6px; }
.hub-idea form .button { margin-top:16px; }
@media(max-width:700px) { .hub-functions { grid-template-columns:1fr; }.site-header nav { flex-wrap:wrap; }.admin-logout { margin-left:auto; } }
/* Shared navigation and clear focus targets. */
.skip-link { position:fixed; top:8px; left:8px; z-index:1000; padding:12px; background:var(--white); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.admin-navigation { display:flex; flex-wrap:wrap; gap:4px 12px; padding:14px 0; border-bottom:1px solid var(--line); margin-bottom:24px; }
.admin-navigation a { padding:12px 14px; min-height:44px; border-radius:6px; font-size:14px; font-weight:600; }
.admin-navigation a[aria-current] { background:var(--ink); color:var(--paper); }
.admin-heading { padding:20px 0 24px; }.admin-heading h1 { font-size:36px; }
.editor-extra { border-top:1px solid var(--line); margin-top:24px; padding-top:18px; }
.editor-extra summary { cursor:pointer; font-weight:700; padding:6px 0; }
.editor-extra summary span { display:block; color:var(--muted); font-size:13px; font-weight:400; margin:6px 0; }
.editor-actions { position:sticky; bottom:0; z-index:5; background:var(--paper); border-top:1px solid var(--line); padding:16px 0; }
#password { scroll-margin-top:20px; }
.request-compact { display:block; padding:0; margin:16px 0; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.request-detail>summary { padding:20px; cursor:pointer; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
.request-title { font-size:20px; font-weight:700; }.request-title small { display:block; font-size:13px; color:var(--muted); font-weight:400; margin-top:8px; }
.request-status { font-size:13px; border:1px solid var(--line); background:var(--white); padding:8px 12px; border-radius:6px; align-self:start; }
.request-next { grid-column:1/-1; padding:12px; background:var(--white); border-left:3px solid var(--accent); line-height:1.5; font-size:14px; }
.request-open-label { font-size:13px; text-decoration:underline; }.request-detail[open]>summary { border-bottom:1px solid var(--line); }
.request-body { padding:20px; display:grid; gap:16px; grid-template-columns:minmax(0,1fr); }
.request-body>* { min-width:0; grid-column:1!important; grid-row:auto!important; }
.request-body .reservation-age { margin:0; }.request-body .reservation-progress form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.request-body .reservation-progress input { max-width:none; }.request-body .reservation-progress fieldset { min-width:0; margin:10px 0; }
.request-body .reservation-progress form>button,.request-body .reservation-progress form>.field-hint { grid-column:1/-1; justify-self:start; }
.request-body .reservation-progress label { display:block; margin:12px 0; }.request-body .reservation-progress details { border-top:1px solid var(--line); padding:16px 0; }
.form-step { font-size:22px; margin:30px 0 16px; padding-top:20px; border-top:1px solid var(--line); }
.request-optional { padding:18px 0; border-bottom:1px solid var(--line); }.request-optional summary { cursor:pointer; padding:10px 0; }
[data-reservation-review] { background:var(--white); border:1px solid var(--line); padding:16px; border-radius:8px; font-weight:600; }
@media(max-width:760px) {
 .site-header,main,footer { width:calc(100% - 32px); }
 .site-header { flex-wrap:wrap; padding:14px 0; gap:12px; }.site-header nav { width:100%; justify-content:flex-start; gap:10px 16px; flex-wrap:wrap; }
 .site-header nav>a { display:inline-flex; align-items:center; min-height:44px; }
 .admin-navigation { gap:4px; }.admin-navigation a { padding:10px; flex:1 0 auto; text-align:center; }
 input,select,textarea { font-size:16px!important; }
 .button.small,.theme-switch button,.catalog-view-switch button,.favourite-button { min-height:44px; }
 .request-detail>summary { grid-template-columns:minmax(0,1fr); padding:16px; }.request-status { justify-self:start; }.request-body { padding:16px; }
 .request-body .reservation-progress form,.reservation-contact-edit form { grid-template-columns:minmax(0,1fr); }
 .reservation-page h1 { font-size:32px; letter-spacing:-1px; }.reservation-page { padding-top:0; }
 .reservation-form .button[type=submit] { width:100%; }.address-fields { padding:14px; }
 .editor-actions { gap:10px; }.editor-actions .button { padding:12px; }
 .detail-copy h1 { font-size:34px; }.detail-layout { gap:24px; }.detail-copy { padding-top:0; }
}
.admin-page .site-header nav { margin-left:auto; }
.admin-page .reservation-admin h1 { font-size:clamp(28px,4vw,40px); letter-spacing:-1px; }
@media(max-width:760px) {
 .admin-page .site-header .brand { flex-basis:auto; font-size:20px; order:0; }.admin-page .site-header .brand img { width:48px; height:48px; }
 .admin-page .admin-logout { order:1; margin-left:auto; }.admin-page .site-header nav { order:2; flex-basis:100%; margin:0; justify-content:space-between; }
 .admin-page .theme-switch { flex-basis:auto; }.admin-page .theme-switch button { padding:8px 10px; }
 .admin-page .back-link { margin:12px 0 20px; }
}

.request-help summary { cursor:pointer; padding:10px 0; font-size:14px; }.reservation-page>p { line-height:1.55; margin:14px 0; }
.unsaved-notice { grid-column:1/-1; background:var(--white); color:var(--ink); border-left:4px solid var(--accent); padding:12px 16px; font-weight:700; font-size:14px; }
.invoice-review-actions { display:flex; gap:12px; flex-wrap:wrap; margin:16px 0; }
.invoice-review-actions button:disabled { cursor:not-allowed; }
.field-error { color:var(--ink); border-left:3px solid var(--accent); padding:8px 12px; margin:6px 0 16px; font-size:14px; }
[aria-invalid="true"] { outline:2px solid var(--accent); outline-offset:2px; }
.field-error-summary { grid-column:1/-1; }.field-error-summary a { text-decoration:underline; }
.public-pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:24px 0; border-top:1px solid var(--line); margin-top:24px; }
.public-pagination>div { display:flex; gap:12px; }.availability-filter { display:flex; align-items:center; gap:10px; }
.availability-filter input { width:auto; accent-color:var(--accent); }
.bundle-page { max-width:1000px; }.bundle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.bundle-item { border:1px solid var(--line); border-radius:10px; padding:16px; background:var(--white); min-width:0; }
.bundle-item.is-selected { border:2px solid var(--accent); padding:15px; }.bundle-item .bundle-choice { border:0; padding:0; margin:0; align-items:center; cursor:pointer; }
.bundle-choice img { width:112px; height:112px; object-fit:cover; border-radius:6px; flex-shrink:0; }.bundle-copy { display:grid; gap:6px; min-width:0; font-weight:400; font-size:14px; }.bundle-copy strong { font-size:17px; }.bundle-copy .serial-number { margin:0; }
.bundle-choice input { accent-color:var(--accent); }.bundle-detail-link { display:inline-flex; min-height:44px; align-items:center; margin:8px 0 0 34px; text-decoration:underline; font-size:14px; }
.bundle-checkout { position:sticky; bottom:0; z-index:5; padding:16px 0; margin-top:20px; background:var(--paper); border-top:1px solid var(--line); }.bundle-checkout p { margin:0 0 8px; }.bundle-checkout [data-bundle-summary] { font-weight:700; }
@media(max-width:760px) { .bundle-grid { grid-template-columns:minmax(0,1fr); }.bundle-choice img { width:88px; height:88px; }.bundle-copy strong { font-size:16px; }.bundle-checkout .button { width:100%; }.bundle-checkout { padding:12px 0; }.invoice-review-actions .button { width:100%; } }
@media(max-width:360px) { .bundle-choice img { width:64px; height:64px; }.bundle-item { padding:12px; }.bundle-item.is-selected { padding:11px; }.bundle-choice { gap:10px; } }

/* Temporary dark-only release: retain the controls for later use. */
.theme-switch[hidden]{display:none!important}

.wip-badge,.admin-flag-wip{display:inline-block;background:#473862;color:#efe4ff;border:1px solid #a08bc5;border-radius:8px;padding:7px 12px;font:700 13px/1.4 Arial, sans-serif;margin-bottom:8px}

.admin-item-flags .admin-flag-available{background:#167442;color:#fff;border:2px solid #6cdda0;border-radius:9px;padding:10px 16px;font:800 16px/1.3 Arial,Helvetica,sans-serif;letter-spacing:.3px;box-shadow:0 2px 8px #0004}
