:root { font-family: system-ui, sans-serif; color: #20242a; background: #f2f4f7; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #174f8a; }
.site-header { background: #17212b; color: white; padding: 1rem 1.5rem; display: flex; justify-content: space-between; gap: 2rem; align-items: center; }
.site-header h1 { margin: 0; font-size: 1.35rem; }
.site-header p { margin: .25rem 0 0; opacity: .75; }
.site-header nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.site-header nav a { color: white; text-decoration: none; }
.container { max-width: 1180px; margin: 1.5rem auto; padding: 0 1rem; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.card, form, table { background: white; border: 1px solid #dce1e7; border-radius: 8px; }
.card { padding: 1rem; }
.card .number { font-size: 2rem; font-weight: 700; }
table { width: 100%; border-collapse: collapse; overflow: hidden; }
th, td { text-align: left; padding: .7rem; border-bottom: 1px solid #e7eaee; vertical-align: top; }
th { background: #eef1f5; }
form { padding: 1rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.form-grid .wide { grid-column: 1 / -1; }
label { display: block; font-weight: 650; margin-bottom: .3rem; }
input, select, textarea { width: 100%; padding: .65rem; border: 1px solid #b8c0ca; border-radius: 5px; font: inherit; }
textarea { min-height: 110px; }
button, .button { display: inline-block; border: 0; border-radius: 5px; padding: .65rem 1rem; background: #174f8a; color: white; text-decoration: none; cursor: pointer; }
.alert { padding: .8rem; margin-bottom: 1rem; border-radius: 5px; background: #feecec; color: #821d1d; }
.muted { color: #68717c; }
.site-footer { text-align: center; padding: 2rem; color: #68717c; }
@media (max-width: 720px) { .site-header { display: block; } .site-header nav { margin-top: 1rem; } .form-grid { grid-template-columns: 1fr; } }
.installer { max-width: 820px; }
fieldset { border: 1px solid #dce1e7; border-radius: 7px; padding: 1rem; margin: 0 0 1rem; }
legend { font-weight: 750; padding: 0 .4rem; }
.help { display: block; margin-top: .3rem; color: #68717c; font-size: .9rem; }
.success { border-left: 5px solid #2d7b46; }
.notice { padding:.8rem; margin-bottom:1rem; border-radius:5px; background:#eef8f1; }
.inline-form { border:0; padding:0; }
.page-actions { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.page-actions h2 { margin:0; }
.button.secondary, button.secondary { background:#5b6773; }
button.danger { background:#9b2c2c; }
.detail-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:1rem; margin-bottom:1.5rem; }
.details { display:grid; grid-template-columns:150px 1fr; gap:.45rem 1rem; }
.details dt { font-weight:700; }
.details dd { margin:0; }
.hero-image { width:100%; max-height:430px; object-fit:contain; background:#f3f4f6; border-radius:6px; }
.photo-placeholder { min-height:260px; display:grid; place-items:center; background:#eef1f5; color:#68717c; border-radius:6px; }
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.photo-card { position:relative; background:white; border:1px solid #dce1e7; border-radius:8px; overflow:hidden; }
.photo-card>a { display:block; background:#eef1f5; }
.photo-card img { width:100%; height:210px; object-fit:contain; display:block; }
.photo-form { border:0; border-radius:0; padding:.8rem; }
.photo-form label { font-size:.85rem; margin-top:.5rem; }
.photo-actions { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.7rem; }
.photo-actions button { padding:.45rem .6rem; font-size:.85rem; }
.badge { position:absolute; top:.6rem; left:.6rem; background:#17212b; color:white; border-radius:20px; padding:.25rem .55rem; font-size:.78rem; }
.upload-panel { padding:1rem; background:#f7f9fb; border:1px dashed #9ba6b2; border-radius:7px; }
.prewrap { white-space:pre-wrap; }
@media(max-width:720px){.detail-grid{grid-template-columns:1fr}.page-actions{align-items:flex-start;flex-direction:column}.details{grid-template-columns:1fr}.details dd{margin-bottom:.5rem}}

.page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.page-heading h2{margin-bottom:.2rem}.page-heading p{margin:0;color:#667085}.split-layout,.detail-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(360px,1.4fr);gap:1rem;align-items:start}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.75rem;border-bottom:1px solid #e4e7ec;vertical-align:top}th{font-size:.85rem;color:#475467}.filter-bar{display:flex;gap:1rem;align-items:end;margin:0 0 1rem}.filter-bar label{margin:0}.muted{color:#667085;font-size:.9rem}.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:#eef2f6;font-size:.82rem}.button.secondary{background:#475467}.link-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid #e4e7ec}.link-row form{margin:0}.small{padding:.35rem .55rem;font-size:.82rem}.danger{background:#b42318}.details{display:grid;grid-template-columns:130px 1fr;gap:.55rem 1rem}.details dt{font-weight:700}.details dd{margin:0}@media(max-width:760px){.split-layout,.detail-grid{grid-template-columns:1fr}.page-heading{flex-direction:column}.site-header nav{display:flex;flex-wrap:wrap;gap:.4rem}.details{grid-template-columns:1fr}.details dt{margin-top:.5rem}}

/* Build 004.2: prevent long wishlist notes and URLs escaping their panels */
.detail-grid > *,
.details,
.details dd,
.card,
.link-row,
.link-row a {
    min-width: 0;
}
.details dd,
.prewrap,
.link-row a {
    overflow-wrap: anywhere;
    word-break: break-word;
}
