:root{color-scheme:light;--ink:#293237;--tan:#a96f36;--paper:#f6f3ee;--line:#d8d1c7}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:17px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:#795024;text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button,input,textarea,select{font:inherit}button,.button{display:inline-block;background:#293237;color:#fff;border:0;border-radius:5px;padding:.7rem 1.1rem;text-decoration:none;cursor:pointer;font-weight:600;min-height:44px}button:disabled{opacity:.65;cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #a96f36;outline-offset:4px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem max(1rem,calc((100vw - 1200px)/2));background:white;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.65rem;font-weight:800;color:var(--ink);text-decoration:none}.brand img{flex-shrink:0}.site-header nav{display:flex;gap:1rem}.site-header nav a{padding:.5rem 0}main{max-width:1200px;margin:auto;padding:3rem 1.25rem 4rem}h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.1;margin:0 0 1rem;letter-spacing:-.045em}h2{line-height:1.25;font-size:1.45rem}h3{margin-bottom:.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:#795024;font-weight:700;font-size:.8rem}.category-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:2rem 0}.category-nav a{padding:.6rem 1rem;border:1px solid var(--line);border-radius:30px;text-decoration:none;background:#fff}.category-nav [aria-current]{background:var(--ink);color:#fff}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.photo-grid figure{margin:0}.photo-grid img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}.category-card{background:white;border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ink)}.category-card h2,.category-card p{margin:1rem}.category-card p{font-size:.9rem}.photo-grid figcaption{padding:.7rem 0;font-size:.95rem}.pagination{display:flex;gap:1rem;justify-content:center;margin:2rem 0}.project-cta{border-top:1px solid var(--line);padding-top:2rem;margin-top:3rem}.site-footer{text-align:center;background:#293237;color:#e0ba8b;padding:2rem 1rem}.panel{padding:1.5rem;background:#fff;border:1px solid var(--line);border-radius:8px;margin:1.5rem 0}.panel h2{margin-top:0}label{display:block;font-weight:650;margin:1rem 0 .5rem}input:not([type=checkbox]),textarea,select{display:block;width:100%;padding:.65rem;border:1px solid #8b9396;border-radius:4px;background:white;color:var(--ink);margin-top:.35rem;min-width:0}input[type=file]{overflow:hidden}textarea{resize:vertical}.help{font-size:.9rem;color:#50595e}.manager-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.manager-grid .panel{margin:0}.preview{width:100%;height:220px;object-fit:contain;background:var(--paper)}.check{display:flex;gap:.7rem;align-items:center}.check input{width:20px;height:20px}.category-form{border-top:1px solid var(--line);padding:1rem 0;display:grid;grid-template-columns:2fr 2fr 1fr;gap:1rem;align-items:end}.category-form h3{grid-column:1/-1}.category-form button{justify-self:start}.filter{display:flex;align-items:end;gap:1rem;margin:2rem 0}.filter label{flex:1;margin:0}.message{background:#eaf3e8;border-left:4px solid #47703e;padding:1rem}.error{background:#ffefeb;border-color:#ad4937}.badge{font-weight:700;font-size:.85rem}.skip{position:absolute;left:1rem;top:-100px;background:white;padding:1rem;z-index:10}.skip:focus{top:1rem}summary{cursor:pointer;font-weight:700}dialog{border:0;border-radius:8px;background:#171b1d;color:white;max-width:95vw;max-height:95dvh;padding:1rem}dialog::backdrop{background:rgba(0,0,0,.85)}dialog img{display:block;max-width:85vw;max-height:68dvh;object-fit:contain;margin:1rem auto}dialog button{background:#faf7f1;color:#293237}.viewer-controls{display:flex;justify-content:space-between;gap:1rem}dialog p{max-width:70ch}dialog p:empty{display:none}@media(max-width:1000px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.site-header{flex-direction:column;align-items:flex-start}.site-header nav{width:100%;justify-content:space-between}main{padding-top:2rem}.photo-grid,.manager-grid{grid-template-columns:1fr}.panel{padding:1rem}.category-form{grid-template-columns:1fr}.filter{align-items:stretch;flex-direction:column}.photo-grid figure img{aspect-ratio:auto}.category-nav a{font-size:.95rem}dialog img{max-width:80vw}}

/* The manager shares the site's warm wood tones and generous spacing. */
.manager { background: #f7f5f1; }
.manager main { max-width: 1200px; padding-top: 2rem; }
.manager h1 { max-width: 850px; font-weight: 900; font-size: clamp(2rem, 4vw, 2.8rem); }
.manager-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; padding: .4rem; background: #eae4db; border-radius: 12px; margin: 2rem 0; max-width: 560px; }
.manager-tabs a { text-align: center; padding: .8rem .5rem; border-radius: 8px; text-decoration: none; color: #594532; font-weight: 700; }
.manager-tabs a:hover { background: #f6f3ee; }
.manager-tabs a[aria-current] { background: #293237; color: #fff; box-shadow: 0 3px 8px #2932371a; }
.manager .section-heading { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; margin: 2rem 0 1rem; }
.manager .section-heading h2 { font-size: 2rem; margin: .25rem 0; letter-spacing: -.035em; }
.manager .section-heading p { margin: .4rem 0; }
.manager .section-heading .button { flex-shrink: 0; }
.manager .panel { border-color: #e3dcd2; border-radius: 14px; box-shadow: 0 5px 24px #29323705; }
.manager button, .manager .button { border-radius: 30px; padding: .8rem 1.4rem; }
.manager button:hover:not(:disabled), .manager .button:hover { background: #795024; }
.manager input:not([type=checkbox]), .manager select, .manager textarea { border-color: #b6ada2; border-radius: 7px; padding: .8rem; min-height: 48px; }
.manager input[type=hidden] { display: none; }
.manager input[type=checkbox] { accent-color: #795024; flex-shrink: 0; }
.manager input[type=file] { padding: 1.25rem; background: #faf8f4; border: 1px dashed #a58f79; }
.manager input[type=file]::file-selector-button { padding: .65rem 1rem; border: 0; border-radius: 24px; margin-right: .75rem; background: #eae0d3; color: #493320; font: inherit; font-weight: 600; cursor: pointer; }
.manager .upload-panel { max-width: 820px; padding: clamp(1rem, 4vw, 2.5rem); }
.manager .upload-panel h3 { margin-top: 0; font-size: 1.4rem; }
.manager .category-form { grid-template-columns: minmax(0, 3fr) minmax(100px, 1fr); }
.manager .category-form:first-child { border-top: 0; padding-top: 0; }
.manager .category-form label { margin: 0; }
.manager .category-form h3 { overflow-wrap: anywhere; }
.manager .filter { padding: 1.25rem; }
.manager .filter button { flex-shrink: 0; }
.manager .preview { height: clamp(220px, 24vw, 320px); border-radius: 8px; }
.manager .badge { display: inline-block; border-radius: 20px; padding: .2rem .75rem; background: #f0e4d4; color: #68471f; margin-bottom: 0; }
.manager .badge.published { color: #36562f; background: #e9f0e6; }
.manager .empty-state { text-align: center; padding: 3rem 1.25rem; }
.manager .empty-state h3 { font-size: 1.5rem; margin-top: 0; }
.manager .session-help { border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 3rem; }
.manager .message { overflow-wrap: anywhere; border-radius: 0 8px 8px 0; }
@media (max-width: 700px) {
  .manager .section-heading { align-items: flex-start; flex-direction: column; }
  .manager .filter { flex-direction: column; align-items: stretch; }
  .manager .category-form { grid-template-columns: 1fr; }
  .manager .manager-grid { grid-template-columns: 1fr; }
  .manager .manager-tabs { max-width: none; }
}

/* Keep native keyboard and phone pickers, with a consistent styled control. */
.manager .select-control { display: block; position: relative; margin-top: .35rem; }
.manager .select-control::after {
  content: ""; position: absolute; right: 1.15rem; top: 50%;
  width: .5rem; height: .5rem; border-right: 2px solid #795024;
  border-bottom: 2px solid #795024; transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.manager .select-control select {
  -webkit-appearance: none; appearance: none; margin-top: 0;
  background: #faf8f4; border: 1px solid #d6cabc; border-radius: 12px;
  min-height: 54px; padding: .85rem 3rem .85rem 1rem;
  color: #293237; font-weight: 600; line-height: 1.4; cursor: pointer;
  box-shadow: 0 2px 4px #29323706;
}
.manager .select-control select:hover { border-color: #a58f79; background: #fffdf9; }
.manager .select-control select:focus-visible {
  outline: 2px solid #a96f36; outline-offset: 3px; background: #fff;
}
.manager .filter label { min-width: 0; }
.manager .filter button[hidden] { display: none; }
#photo-filters { scroll-margin-top: 1.5rem; }
@media (forced-colors: active) {
  .manager .select-control select { appearance: auto; }
  .manager .select-control::after { display: none; }
}

.manager .save-all-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1.25rem 0; padding: 1rem 1.25rem; background: #eae4db; border-radius: 12px; }
.manager .save-all-bar p { margin: 0; }
.manager .save-all-bar .save-error { color: #9b3020; font-weight: 650; }
.manager .save-all-bar button { flex-shrink: 0; }
@media (max-width: 600px) {
  .manager .save-all-bar { flex-direction: column; align-items: stretch; }
}

/* Admin feedback uses a native modal for focus trapping and Escape dismissal. */
.manager .feedback-dialog { width: min(32rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid var(--line); border-top: 5px solid #47703e; border-radius: 14px; background: #fff; color: var(--ink); box-shadow: 0 20px 80px #0004; }
.manager .feedback-dialog::backdrop { background: #171b1da6; }
.manager .feedback-dialog h2 { margin: 0 0 .75rem; }
.manager .feedback-dialog p { overflow-wrap: anywhere; }
.manager .feedback-dialog form { display: flex; justify-content: flex-end; margin-top: 1.5rem; }
.manager .feedback-dialog button { background: var(--ink); color: #fff; }
.manager .feedback-dialog.feedback-error { border-top-color: #ad4937; }

.manager .upload-progress { text-align: center; border-top-color: #a96f36; }
.manager .upload-spinner { display: block; width: 3rem; height: 3rem; margin: 0 auto 1.25rem; border: 4px solid #eae4db; border-top-color: #a96f36; border-radius: 50%; animation: gallery-upload-spin 1s linear infinite; }
@keyframes gallery-upload-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .manager .upload-spinner { animation: none; }
}

/* Videos share photo posters and load the MP4 only when selected. */
.media-thumb { display: block; position: relative; }
.video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); padding: .6rem 1rem; border-radius: 30px; background: #171b1de6; color: #fff; font-size: .9rem; font-weight: 700; white-space: nowrap; }
#photo-viewer video { display: block; width: min(80vw, 1000px); height: 65dvh; object-fit: contain; margin: 1rem auto; background: #000; }
#photo-viewer [hidden], .manager [data-video-poster][hidden] { display: none; }
.manager video.preview { display: block; background: #171b1d; }

.thumbnail-editor { margin: 1rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 6px; }
.thumbnail-editor summary { min-height: 44px; display: flex; align-items: center; }
form[id^="thumbnail-form-"] { margin: 0; }

/* Manager links are tasks; the brand returns to the public website. */
.manager .site-header { position: relative; flex-wrap: wrap; font-size: .9rem; }
.manager .site-header .brand { font-size: 1rem; }
.manager .site-header nav { flex-wrap: wrap; align-items: center; gap: .35rem; }
.manager .site-header nav a { display: block; padding: .6rem .75rem; border-radius: 6px; color: #39454b; text-decoration: none; }
.manager .site-header nav a:hover { background: #eef3ec; }
.manager .site-header nav a[aria-current] { color: #365b32; background: #eef3ec; font-weight: 700; }
.manager .manager-menu-toggle { width: 44px; height: 44px; min-width: 44px; border: 1px solid #d8ded7; background: #f6f8f4; color: #39454b; border-radius: 6px; padding: .5rem .7rem; }
.manager .site-header [hidden], .manager #testimonial-filter button[hidden] { display: none !important; }
@media (max-width: 980px) {
 .manager .site-header { flex-direction: row; align-items: center; justify-content: space-between; padding: .75rem 1rem; }
 .manager .site-header .brand { min-width: 0; max-width: calc(100% - 60px); font-size: clamp(.8rem, 3vw, 1rem); }
 .manager .site-header .brand img { width: 40px; height: 40px; }
 .manager .site-header nav { flex-direction: column; align-items: stretch; width: 100%; }
 .manager .site-header nav a { min-height: 44px; }
}

/* Give testimonial decisions distinct emphasis and space to breathe. */
.manager .testimonial-admin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.25rem; }
.manager .testimonial-admin-actions button { border: 1px solid #87917f; border-radius: 8px; background: #fffdf9; color: #39454b; padding: .65rem 1.1rem; min-height: 44px; line-height: 1.4; }
.manager .testimonial-admin-actions button:hover:not(:disabled) { background: #eef3ec; }
.manager .testimonial-admin-actions button[value="publish"] { background: #365b32; border-color: #365b32; color: #fff; }
.manager .testimonial-admin-actions button[value="publish"]:hover:not(:disabled) { background: #294726; border-color: #294726; }
.manager .testimonial-admin-actions button[value="reject"], .manager .testimonial-admin-actions button[value="hide"] { background: #fff2ee; border-color: #a34032; color: #91372b; }
.manager .testimonial-admin-actions button[value="reject"]:hover:not(:disabled), .manager .testimonial-admin-actions button[value="hide"]:hover:not(:disabled) { background: #a34032; color: #fff; }
@media (max-width: 480px) {
 .manager .testimonial-admin-actions { flex-direction: column; align-items: stretch; }
 .manager .testimonial-admin-actions button { width: 100%; }
}
