/* Shared palette for the whole atelier. Themes change scenery, not UI colours. */
:root,body,body:is([data-line="klassik"],[data-line="alpenland"],[data-line="usa"],[data-line="party"]){
 --atelier-green:#285340;--atelier-deep:#102a21;--atelier-red:#b9403f;
 --atelier-paper:#19392e;--atelier-field:#254638;--atelier-line:#577563;
 --atelier-ink:#edf3ef;--atelier-muted:#b3c7bb;--atelier-detail:#b6c0b7;
 --red:var(--atelier-red);--green:var(--atelier-green);--cream:var(--atelier-paper);
 --ink:var(--atelier-ink);--line:var(--atelier-line);--station:var(--atelier-green);
 --station-deep:var(--atelier-deep);--brass:var(--atelier-detail);--ticket:var(--atelier-paper);
}
body{background:var(--atelier-paper);color:var(--atelier-ink)}
header,.hero,.benefits,.pricingNotice{background:var(--atelier-paper);border-color:var(--atelier-line)}
.topline{background:var(--atelier-deep);color:var(--atelier-paper)}
header .brand,.pricingNotice h2,.designLines h2{color:var(--atelier-green)}
.heroCopy p,.pricingNotice>div>p,.designLines .intro{color:var(--atelier-muted)}
body .roundLabel,body[data-line="party"] .roundLabel{background:var(--atelier-red);color:var(--atelier-ink)}
.btn{border-radius:6px}
.btn.red,.catalog .product .detailLink,#detail #addCart,#requestForm button[type=submit]{background:var(--atelier-red);border-color:var(--atelier-red);color:var(--atelier-ink);border-radius:6px;box-shadow:0 3px 8px #19362d18}
.btn.red:hover,.catalog .product .detailLink:hover,#detail #addCart:hover,#requestForm button[type=submit]:hover{background:#892d28;border-color:#892d28}
.btn.outline{background:transparent;border-color:var(--atelier-line);color:var(--atelier-green);border-radius:6px}
.pricingOptions p{background:var(--atelier-field);border:1px solid var(--atelier-line);border-top:3px solid var(--atelier-green);border-radius:8px}
.pricingOptions b{color:var(--atelier-red)}
.designLines.section,body[data-line="party"] .designLines.section{background:var(--atelier-paper);border-color:var(--atelier-line)}
.designLines .eyebrow{color:var(--atelier-green)}
.lineCards:after{opacity:.35}
.lineCard,.lineCard .lineText{background:var(--atelier-field);border-color:var(--atelier-line);border-radius:8px;box-shadow:0 4px 12px #19362d0c}
.lineCard .lineText{border-radius:0;box-shadow:none}
.lineCard .lineArtwork,.lineCard.alpine .lineArtwork,.lineCard.american .lineArtwork,.lineCard.festive .lineArtwork{background:var(--atelier-paper);border-color:var(--atelier-line)}
.lineCard .lineText:before,.lineCard .lineText:after{background:var(--atelier-paper);border-color:var(--atelier-line)}
.lineText>small,.lineText>span{color:var(--atelier-muted)}
.lineText>b,.lineText>strong,.lineCard.festive .lineText>strong{color:var(--atelier-green);border-color:var(--atelier-line)}
.lineCard.active{border-color:var(--atelier-green);box-shadow:0 0 0 2px var(--atelier-green),0 4px 12px #19362d12}
.lineCard.active .lineText>strong:after{background:var(--atelier-green);color:var(--atelier-ink)}
.catalog.section{background:var(--atelier-green);border-top:3px solid var(--atelier-line)}
.catalog .departurePanel{--paper:var(--atelier-paper);--print:var(--atelier-ink);background:var(--atelier-paper);border-color:var(--atelier-line);border-radius:8px;box-shadow:0 5px 18px #19362d26}
.departureMasthead,.departureMasthead>div,.catalog .departurePanel .sectionHead,.catalog .departurePanel .filters,.catalog .departurePanel .catalogMeta,.catalog .departurePanel .catalogView{border-color:var(--atelier-line)}
.departureMasthead{border-bottom:3px double var(--atelier-green)}
.departureMasthead>strong,.catalog .departurePanel h2{color:var(--atelier-green)}
.catalog .departurePanel .sectionHead .eyebrow,.catalog .departurePanel .intro,.catalog .departurePanel .countLabel small,.catalog .departurePanel .catalogMeta,.catalog .departurePanel .catalogView p{color:var(--atelier-muted)}
.catalog .departurePanel .countLabel{border-color:var(--atelier-line);color:var(--atelier-green);border-radius:6px}
.catalog .departurePanel .tabs button,.catalog .departurePanel .search,.catalog .departurePanel .themeFilter select,.catalog .departurePanel .catalogMeta select,.catalog .departurePanel .viewSwitch{background:var(--atelier-field);border-color:var(--atelier-line);border-radius:6px;color:var(--atelier-ink)}
.catalog .departurePanel .tabs button.active,.catalog .departurePanel .tabs button.active:hover,.catalog .departurePanel .viewSwitch button.active{background:var(--atelier-green);border-color:var(--atelier-green);color:var(--atelier-ink);border-radius:5px}
.catalog .departurePanel .tabs button:hover{background:var(--atelier-paper);border-color:var(--atelier-green)}
.catalog .departurePanel select option{background:var(--atelier-field);color:var(--atelier-ink)}
.catalog .departurePanel .search input{color:var(--atelier-ink)}
.catalog .departurePanel .search input::placeholder{color:var(--atelier-muted)}
.catalog .product{background:var(--atelier-paper);border-radius:8px}
.catalog .productTag{background:var(--atelier-paper);color:var(--atelier-green)}
.catalog .more .outline{color:var(--atelier-paper);border-color:var(--atelier-detail)}
#individual{background:var(--atelier-paper);color:var(--atelier-ink);border-top:1px solid var(--atelier-line)}
#individual h2,#individual .eyebrow{color:var(--atelier-green)}
#individual .individualCopy>p,#individual .individualCopy>.demoNote{color:var(--atelier-muted)!important}
#individual .steps,#individual .steps li{border-color:var(--atelier-line)}
#individual .steps b{background:var(--atelier-green);color:var(--atelier-paper);border-color:var(--atelier-detail)}
#individual .steps small{color:var(--atelier-muted)}
#individual #requestForm,#detail,dialog{background:var(--atelier-paper);color:var(--atelier-ink);border:1px solid var(--atelier-line);border-radius:8px;box-shadow:0 8px 30px #19362d20}
.requestTicketHeader,.figureTicketHeader{background:var(--atelier-green);border-color:var(--atelier-detail);color:var(--atelier-paper)}
.requestTicketHeader h3,.figureTicketHeader b{color:var(--atelier-ink)}
.requestTicketHeader small{color:var(--atelier-detail)}
.requestTicketBody,#detailContent{background:var(--atelier-paper)}
.requestTicketFooter,.figureTicketFooter{background:var(--atelier-paper);color:var(--atelier-muted);border-color:var(--atelier-line)}
.figureTicketBody,#detail .detailControls,#requestForm .requestOffering{border-color:var(--atelier-line)}
#detail .detailImage.generatedImage{background:var(--atelier-paper);border-color:var(--atelier-line);box-shadow:none}
#detail .eyebrow,#detail label,#requestForm label{color:var(--atelier-green)}
#detailPrice{color:var(--atelier-red)}
#detail select,#detail textarea,#detail input,#requestForm input:not([type=checkbox]):not([type=file]),#requestForm textarea,#requestForm select{background:var(--atelier-field);color:var(--atelier-ink);border-color:var(--atelier-line);border-radius:6px;box-shadow:none}
#requestForm .upload{background:var(--atelier-field);border-color:var(--atelier-line);box-shadow:none;border-radius:6px}
#requestForm .upload:hover,#requestForm .upload:focus-within{background:var(--atelier-paper);border-color:var(--atelier-green)}
#requestForm .upload span{color:var(--atelier-red)}
#requestForm .upload small,#requestForm .privacyNote,.requestFieldHelp,#detail .demoNote{color:var(--atelier-muted)}
.atelierLogin,#detail .close,dialog .close{background:var(--atelier-green);color:var(--atelier-paper);border:1px solid var(--atelier-detail);border-radius:6px;box-shadow:none}
dialog .close{width:36px;height:36px;display:grid;place-items:center;padding:0;font:25px/1 Arial}
.atelierLogin:hover,#detail .close:hover,dialog .close:hover{background:var(--atelier-red);box-shadow:none}
.closing{background:var(--atelier-green);color:var(--atelier-paper);border-top:1px solid var(--atelier-detail)}
.closing .outline{color:var(--atelier-paper);background:transparent;border-color:var(--atelier-detail)}
footer{background:var(--atelier-deep);color:var(--atelier-paper)}
footer p,footer>small,footer button{color:var(--atelier-detail);border-color:#d4c7a833}
.adminBody{background:var(--atelier-paper)}
.loginCard,.orderCard,.emptyState{background:var(--atelier-field);border-color:var(--atelier-line);border-radius:8px}
.loginCard{border-top-color:var(--atelier-green)}
.adminStats>div,.orderItem{background:var(--atelier-paper);border:1px solid var(--atelier-line);border-radius:8px}
.adminStats b,.orderHeading a{color:var(--atelier-green)}
body :is(button,a,input,select,textarea):focus-visible{outline-color:var(--atelier-red)}

/* Railway romance: enamel signs, carriage green, signal red and steel details. */
body{background:var(--atelier-deep)}
header{background:linear-gradient(155deg,#285340,#19392e);border-bottom:3px double var(--atelier-line);box-shadow:inset 0 -4px 0 #102a2140}
header .brand,.pricingNotice h2,.designLines h2,.hero h1,.hero .eyebrow,.benefits,nav a,header .bag{color:var(--atelier-ink)}
header .brand small{color:var(--atelier-muted)}
.topline{border-bottom:1px solid var(--atelier-line)}
.bag span{background:var(--atelier-green);color:var(--atelier-ink);border:1px solid var(--atelier-line)}
.hero{background:linear-gradient(145deg,#1d4435,#102a21)}
.hero h1 em,.hero .textlink,.heroFoot{color:var(--atelier-ink)}
.heroFoot{border-color:var(--atelier-line)}
.benefits{background:var(--atelier-deep);border-block:1px solid var(--atelier-line)}
.benefits b{color:#ec7771}
.pricingNotice{background:var(--atelier-paper)}
.pricingNotice .eyebrow,.pricingOptions b,.pricingOptions strong,.pricingOptions span{color:var(--atelier-ink)}
.pricingOptions p{border-top-color:var(--atelier-red);box-shadow:inset 0 0 0 3px #102a2133}
.designLines.section,body[data-line="party"] .designLines.section{background:linear-gradient(150deg,#1c4032,#102a21)}
.designLines .eyebrow,.lineText>b,.lineText>strong,.lineCard.festive .lineText>strong,.lineStatus{color:var(--atelier-ink)}
.lineCard{border:1px solid var(--atelier-line);box-shadow:0 4px 0 #0b211a,0 9px 20px #0002}
.lineCard .lineText{background:linear-gradient(145deg,#285340,#19392e)}
.lineCard .lineText:before,.lineCard .lineText:after{background:var(--atelier-deep)}
.lineCards:after{height:9px;opacity:.8;border-color:#9aa99f;background:repeating-linear-gradient(90deg,transparent 0 16px,#577563 16px 21px,transparent 21px 36px)}
.lineCard.active{border-color:var(--atelier-red);box-shadow:0 0 0 2px var(--atelier-red),0 5px 0 #0b211a}
.lineCard.active .lineText>strong:after{background:var(--atelier-red);border:1px solid #ffffff30;border-radius:4px;transform:rotate(-3deg)}
.catalog.section{background:var(--atelier-deep);border-top:3px double var(--atelier-line)}
.catalog .departurePanel{background:linear-gradient(145deg,#254d3b,#19392e);border:1px solid var(--atelier-line);box-shadow:inset 0 0 0 4px #102a2133,0 10px 30px #0003;border-radius:10px}
.departureMasthead{border-bottom:3px double var(--atelier-detail)}
.departureMasthead>strong,.catalog .departurePanel h2,.catalog .departurePanel .countLabel,.catalog .departurePanel .themeFilter,.catalog .departurePanel .catalogMeta label,.catalog .departurePanel .search>span{color:var(--atelier-ink)}
.catalog .departurePanel .tabs button.active,.catalog .departurePanel .tabs button.active:hover,.catalog .departurePanel .viewSwitch button.active{background:var(--atelier-red);border-color:var(--atelier-red)}
.catalog .departurePanel .tabs button{box-shadow:inset 0 0 0 2px #102a2133}
.catalog .product{color:var(--atelier-ink);border:1px solid var(--atelier-line);box-shadow:0 5px 0 #0b211a}
.catalog .product p,.product .collectionLabel,.stlPrice{color:var(--atelier-muted)}
.catalog .productTag{color:var(--atelier-ink);background:#19392ed9;border:1px solid var(--atelier-line);border-radius:4px}
#individual{background:linear-gradient(145deg,#1b3f31,#102a21);border-top:3px double var(--atelier-line)}
#individual h2,#individual .eyebrow,#detail .eyebrow,#detail label,#requestForm label,#detailPrice{color:var(--atelier-ink)}
#individual .steps b{background:var(--atelier-green);border-color:var(--atelier-line);box-shadow:inset 0 0 0 3px #102a21}
.requestTicketHeader,.figureTicketHeader{background:linear-gradient(150deg,#2c5944,#173a2b);border-bottom:3px double var(--atelier-detail);position:relative}
.figureTicketHeader{position:sticky}
.requestTicketHeader:before,.figureTicketHeader:before{content:'';position:absolute;inset:7px;pointer-events:none;background:radial-gradient(circle at 0 0,#b6c0b7 0 2px,transparent 2.5px),radial-gradient(circle at 100% 0,#b6c0b7 0 2px,transparent 2.5px),radial-gradient(circle at 0 100%,#b6c0b7 0 2px,transparent 2.5px),radial-gradient(circle at 100% 100%,#b6c0b7 0 2px,transparent 2.5px)}
#requestForm input::placeholder,#requestForm textarea::placeholder{color:var(--atelier-muted)}
#requestForm .upload{background:linear-gradient(145deg,#2b5240,#1d3c30);border:1px dashed var(--atelier-detail)}
#requestForm .upload span{color:var(--atelier-ink)}
#requestForm input[type=checkbox]{accent-color:var(--atelier-red)}
#detail .close,.atelierLogin{border-color:var(--atelier-detail);box-shadow:inset 0 0 0 3px #102a21}
#detail h2,dialog h2,dialog p,dialog label{color:var(--atelier-ink)}
dialog input:not([type=checkbox]),dialog textarea,dialog select{background:var(--atelier-field);color:var(--atelier-ink);border-color:var(--atelier-line)}
.requestTicketFooter,.figureTicketFooter{background:var(--atelier-deep);border-top:3px double var(--atelier-line)}
.closing{background:linear-gradient(150deg,#285340,#102a21);border-block:3px double var(--atelier-line)}
.closing .outline,.btn.outline{color:var(--atelier-ink);border-color:var(--atelier-detail)}
footer{background:var(--atelier-deep)}
footer .brand,footer button{color:var(--atelier-ink)}
.loginCard,.orderCard,.emptyState,.orderItem,.adminStats>div{color:var(--atelier-ink)}
.adminStats b,.orderHeading a,.adminBody input,.adminBody select,.adminBody textarea{color:var(--atelier-ink)}
.adminBody input,.adminBody select,.adminBody textarea{background:var(--atelier-field);border-color:var(--atelier-line)}

.eyebrow{color:var(--atelier-muted)}
#individualResult,#checkoutResult{color:var(--atelier-ink)}
.adminStats span,.orderHeading,.adminBody .intro{color:var(--atelier-muted)}
