:root{--ink:#193c32;--muted:#52655d;--paper:#f8f6ef;--card:#fff;--green:#205644;--line:#d6ddd3;font-size:18px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,'Microsoft YaHei',sans-serif;line-height:1.65}body.contrast{--ink:#000;--muted:#222;--paper:#fff;--green:#003b25;--line:#333}header{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px max(5vw,18px);background:var(--card);border-bottom:1px solid var(--line)}a{color:var(--green)}.brand{font-size:1.67rem;font-weight:800;text-decoration:none}.brand span{display:block;font-size:1rem;font-weight:400;color:var(--muted)}.tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}button,input,select,textarea{font:inherit}button,.button{min-height:48px;padding:10px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;text-decoration:none}button:hover{border-color:var(--green)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #a35b14;outline-offset:3px}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button:disabled{opacity:.5;cursor:default}nav{display:flex;gap:8px;flex-wrap:wrap;padding:16px max(5vw,18px);position:sticky;top:0;background:var(--paper);z-index:1}nav button.active{background:var(--green);color:#fff}main{max-width:1280px;margin:auto;padding:12px 24px 70px}h1{font-size:1.9rem;line-height:1.3}h2{font-size:1.45rem}p{margin:10px 0}.hero{display:grid;grid-template-columns:1.2fr 1fr;background:#e9efe5;border-radius:26px;overflow:hidden;margin-bottom:26px}.hero div{padding:30px}.hero img{width:100%;height:300px;object-fit:cover}.eyebrow{color:var(--green);font-weight:700}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;padding:22px}.card:has(>img){padding:0}.card>img{width:100%;height:190px;object-fit:cover}.card .inside{padding:22px}.price{font-size:1.56rem;font-weight:750}.muted{color:var(--muted)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.stack{display:grid;gap:12px}.badge{display:inline-block;border-radius:20px;background:#e7efe6;padding:4px 12px;margin:4px;font-size:1rem}.search{width:min(600px,100%);padding:12px;border:1px solid var(--line);border-radius:12px;margin:10px 0 20px}label{display:block;font-weight:650;margin:12px 0 4px}input,select,textarea{width:100%;min-height:50px;padding:10px;border:1px solid #9eafa4;border-radius:10px;background:white;color:var(--ink)}textarea{min-height:100px}dialog{width:min(680px,94vw);max-height:90vh;border:1px solid var(--line);border-radius:20px;padding:24px;color:var(--ink)}dialog::backdrop{background:#12352b88}.table-wrap{overflow:auto;background:white;border-radius:14px}table{border-collapse:collapse;width:100%;font-size:1rem}td,th{border-bottom:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}th{background:#eaf0e7}td button{margin:3px}.notice{background:#fff3d8;border-left:5px solid #9c6816;padding:16px;border-radius:8px;margin:16px 0}.empty{padding:40px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 24px;border-radius:14px;display:none;z-index:5;max-width:92vw}footer{padding:24px;text-align:center;font-size:1rem;color:var(--muted)}.detail-body{white-space:pre-wrap}.module-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}@media(max-width:650px){header{align-items:flex-start;flex-direction:column}.hero{grid-template-columns:1fr}.hero img{height:200px}.hero div{padding:22px}main{padding:10px 16px 50px}nav{position:static}h1{font-size:1.67rem}.tools{gap:6px}.grid{grid-template-columns:1fr}}

fieldset{border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:16px}legend{font-weight:700}.check-option{display:flex;align-items:center;gap:12px;min-height:48px;font-weight:400}.check-option input{width:24px;min-height:24px;height:24px;flex:none}.permission-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:8px 0}.permission-row strong{min-width:150px}#access-error{color:#8a241e;min-height:1.5em}.permission-row:last-child{border:0}
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:1rem 0;padding:1rem;border:1px solid #b8c8bb;border-radius:12px}
.filter-grid label{grid-column:1/-1;margin-top:.5rem}.filter-grid input,.filter-grid select,.filter-grid button{grid-column:1/-1}
.delivery-timeline{padding-left:1.5rem}.delivery-timeline li{margin:1rem 0;padding:.3rem .6rem;border-left:3px solid #477958}
.delivery-timeline p{margin:.3rem 0}.delivery-timeline time{font-size:.9rem;color:#4c6254}
.badge{display:inline-block;font-size:.8rem;background:#e4f0e4;color:#20432c;border-radius:6px;padding:.3rem .5rem}
.break-text{overflow-wrap:anywhere}.pickup-code{font-family:monospace;font-size:1.1rem;letter-spacing:.04em}
[hidden]{display:none!important}.pagination{margin:1rem 0}.contrast .badge{background:#111;color:#ff0}
@media(min-width:760px){.filter-grid{display:flex;align-items:center;flex-wrap:wrap}.filter-grid input,.filter-grid select{width:auto;flex:1;min-width:130px}.filter-grid label{margin:0}}

.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.after-proof{display:block;max-width:100%;max-height:70vh;object-fit:contain;margin:1rem auto}

/* Long verified tracking IDs and lifecycle actions must fit narrow displays. */
dialog, .card {overflow-wrap:anywhere} .grid>* {min-width:0}
@media(max-width:420px){dialog{padding:16px} .row>button{max-width:100%;white-space:normal} .card{padding:16px} .filter-grid{padding:12px} fieldset{padding:12px}}

/* Business workspaces and accessible media */
.studio-menu{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.studio-menu button{min-height:44px}.studio-summary{display:grid;grid-template-columns:minmax(100px,1fr) minmax(180px,3fr);gap:8px}.studio-summary dd{margin:0;overflow-wrap:anywhere}.studio-summary dt{color:#4f6054}.table-wrap{overflow-x:auto}video,audio{max-width:100%;width:100%}fieldset{border:1px solid #d3dbcd;padding:16px;margin:18px 0;border-radius:12px}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.filters label{width:100%}figure{margin:20px 0}figure img{max-width:100%}@media(max-width:600px){.studio-summary{grid-template-columns:1fr}.studio-summary dt{font-weight:600}.studio-menu{gap:5px}.studio-menu button{font-size:.88rem;padding:8px}}

/* Supplied identity: keep the complete logo, including its wordmark. */
.brand.brand-logo{display:flex;align-items:center;gap:14px;flex-shrink:0}.brand-logo img{width:76px;height:76px;object-fit:contain;background:#fff;border-radius:10px}.brand.brand-logo span{max-width:170px;font-size:.7rem;line-height:1.6;letter-spacing:1px}.hero img{object-position:center}.card img{object-position:center}@media(max-width:640px){header{align-items:center}.brand.brand-logo{gap:8px}.brand-logo img{width:64px;height:64px}.brand.brand-logo span{max-width:110px;font-size:.64rem}.hero img{height:230px}}

.media-picker-wrap{margin:16px 0}.media-picker-wrap summary{cursor:pointer;min-height:44px;padding:10px;border:1px solid #d9e2dc;border-radius:8px}.media-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:14px 0}.media-picker button{background:#fff;padding:8px;color:#193e33}.media-picker img{width:100%;height:92px;object-fit:cover;border-radius:7px}.media-picker span{display:block;font-size:.78rem;padding-top:6px}

/* Customer navigation: five recognisable symbols with readable labels. */
.customer-tabs{display:flex;gap:8px;min-width:0;width:min(600px,100%)}
.customer-tabs .nav-primary{flex:1;min-width:0;min-height:80px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.nav-symbol{width:48px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#eef3ec}
.nav-primary.active .nav-symbol{background:#ffffff18}.nav-symbol svg{display:block;flex:none}
.nav-extra{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.language-control{display:flex;align-items:center;gap:8px;margin:0;font-size:1rem;white-space:nowrap}.language-control select{width:auto;min-width:112px;min-height:48px;padding:8px}
/* Every customer photo stays within its owner. Preserve complete detail images. */
body,main,header,nav,.stack,.inside,.hero,.hero>div,.row,.card,figure,form{min-width:0}
img{max-width:100%}dialog{max-width:calc(100vw - 24px);overflow-x:hidden;overflow-y:auto;max-height:90dvh}
dialog img{display:block;max-width:100%;width:100%;height:auto;max-height:65dvh;object-fit:contain;border-radius:12px;margin:14px auto}
dialog .grid{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))}
dialog>*{min-width:0;max-width:100%}dialog pre{white-space:pre-wrap;overflow-wrap:anywhere}
button,.button{white-space:normal;overflow-wrap:anywhere;max-width:100%}
@media(max-width:650px){
 header{align-items:stretch;padding:12px 16px;gap:12px}.brand.brand-logo{align-self:flex-start}.tools{justify-content:flex-end;gap:8px}.tools>button{padding:8px 12px}.tools>a{width:100%;text-align:right}
 nav{padding:10px 12px;gap:8px}.customer-tabs{width:100%;gap:4px}.customer-tabs .nav-primary{font-size:1rem;padding:8px 2px;min-height:84px}.nav-extra{gap:6px;flex:1;justify-content:center}.nav-extra button{padding:8px 10px}
 main{width:100%;max-width:100%;padding:12px 14px 40px}.grid{grid-template-columns:minmax(0,1fr)}.row>button{min-width:0;flex-shrink:1}dialog{width:calc(100vw - 24px);padding:16px}.language-control>span{display:none}
}
/* Theme uses semantic surfaces; photographs and original branding retain colors. */
:root{--surface:#ffffff;--surface-alt:#eef1e7;--page:#f8f8f3;--text:#193e33;--muted-text:#59685f;--border:#d3dbce;--action:#193e33;--on-action:#ffffff;color-scheme:light}
:root[data-theme=dark]{--surface:#1a2a21;--surface-alt:#22382c;--page:#101a16;--text:#eaf5ef;--muted-text:#b8c7be;--border:#43564b;--action:#b9dfc6;--on-action:#102218;color-scheme:dark}
html[data-theme] body{background:var(--page);color:var(--text)}html[data-theme] header,html[data-theme] nav,html[data-theme] footer,html[data-theme] dialog,html[data-theme] .card,html[data-theme] .product,html[data-theme] .table-wrap{background:var(--surface);color:var(--text);border-color:var(--border)}
html[data-theme] input,html[data-theme] textarea,html[data-theme] select,html[data-theme] button{background:var(--surface);color:var(--text);border-color:var(--border)}html[data-theme] button.primary,html[data-theme] .primary{background:var(--action);color:var(--on-action)}html[data-theme] h1,html[data-theme] h2,html[data-theme] h3,html[data-theme] a{color:var(--text)}html[data-theme] .muted,html[data-theme] label{color:var(--muted-text)}html[data-theme] .notice{background:var(--surface-alt);color:var(--text)}html[data-theme=dark] .price{color:#f5ba82}html[data-theme=dark] body.contrast{--text:#fff;--muted-text:#eee;--border:#fff}html[data-theme=dark] .error{color:#ffb4a5}

.table-scroll{max-width:100%;overflow-x:auto} .table-scroll table{width:100%;border-collapse:collapse} .table-scroll td{padding:.8rem;text-align:left;border-bottom:1px solid var(--line,#b8c9bf)}
[data-theme="dark"] .nav-icon{color:#e3ece6}

html[data-theme] body{--paper:var(--page);--ink:var(--text);--green:var(--action);--muted:var(--muted-text);--card:var(--surface);--line:var(--border)}
html[data-theme] .hero,html[data-theme] th,html[data-theme] .badge,html[data-theme] .nav-symbol{background:var(--surface-alt);color:var(--text)}
html[data-theme] .nav-primary.active{background:var(--action);color:var(--on-action)}
html[data-theme] .nav-primary.active .nav-symbol{background:transparent;color:inherit}
html[data-theme] .nav-symbol svg{stroke:currentColor}
html[data-theme] .media-picker button{background:var(--surface);color:var(--text)}
html[data-theme] .delivery-timeline time,html[data-theme] .studio-summary dt,html[data-theme] .brand span{color:var(--muted-text)}
html[data-theme=light] body.contrast{--text:#000;--muted-text:#222;--border:#000;--action:#000;--on-action:#fff}
html[data-theme] .table-scroll th,html[data-theme] .table-scroll td{padding:.8rem;text-align:left;border-bottom:1px solid var(--border)}

/* Site templates retain full-width responsive photos in narrow dialogs. */
.team-site{min-width:0;overflow-wrap:anywhere}.team-site>img,.team-gallery img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain}.team-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:12px}.team-site-calm{padding:12px;border-radius:24px}.team-site-editorial ol{border-left:3px solid var(--ink,#193e33);padding-left:32px}.team-site-cards li{margin:14px 0;padding:16px;border:1px solid var(--line,#c5cfc8);border-radius:16px}#team-form label{display:block;margin-top:14px}#team-form input[type=checkbox]{width:24px;height:24px}#team-trip section{min-width:0}
/* Back and Home stay above scrolling details, with large labelled targets. */
.journey-toolbar{display:flex;align-items:stretch;gap:8px;background:var(--surface,#fff);color:var(--text,#193e33);border-bottom:1px solid var(--border,#d3dbce);padding:10px 14px;isolation:isolate}
.journey-toolbar button{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:52px;padding:10px 12px;font-size:1rem;font-weight:650;line-height:1.35;margin:0}
.journey-toolbar svg{flex:none;width:26px;height:26px;stroke:currentColor}
.journey-toolbar button:focus-visible{outline:3px solid var(--action,#193e33);outline-offset:3px}
.journey-toolbar button:disabled{opacity:.45;cursor:default}
.journey-page-toolbar{position:sticky;top:0;z-index:12;box-shadow:0 4px 12px #16362b10}
.journey-dialog-toolbar{position:sticky;top:-24px;z-index:2;margin:-24px -24px 20px;padding:12px 16px}
.journey-dialog-content{min-width:0;max-width:100%}
.journey-dialog-content img{max-width:100%}
@media(max-width:650px){.journey-dialog-toolbar{top:-16px;margin:-16px -16px 16px;padding:10px 12px}.journey-toolbar button{padding:10px 7px;gap:6px;font-size:18px}.journey-page-toolbar{padding:8px 14px}}
