/* Neuburg Fotoalben 1.1.0. Scoped styles: existing Gantry header/footer are untouched. */
.jng{--jng-accent:#9d2c2c;--jng-soft:#f5e9e7;--jng-paper:#fff;--jng-bg:#f7f5f2;--jng-ink:#24242a;--jng-muted:#68656a;--jng-line:#e7e2df;box-sizing:border-box;width:calc(100% - 48px);max-width:1160px;margin:40px auto;padding:clamp(24px,4vw,48px);color:var(--jng-ink);background:var(--jng-bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.6;border:1px solid var(--jng-line);border-radius:20px;box-shadow:0 8px 35px #24242a06}
.jng--judo{--jng-accent:#0445bf;--jng-soft:#eaf0fc}
.jng *{box-sizing:border-box}
.jng [hidden]{display:none!important}
.jng a{color:inherit;text-decoration:none}
.jng button,.jng input,.jng select,.jng textarea{font:inherit;letter-spacing:normal;max-width:100%}
.jng button{cursor:pointer;text-transform:none}
.jng button:disabled{cursor:wait;opacity:.65}
.jng a:focus-visible,.jng button:focus-visible,.jng input:focus-visible,.jng textarea:focus-visible,.jng select:focus-visible,.jng summary:focus-visible{outline:3px solid var(--jng-accent);outline-offset:4px}
.jng p{margin:0}
.jng .jng-title{font-size:clamp(30px,4vw,44px);line-height:1.14;letter-spacing:-1.2px;font-weight:700;color:var(--jng-ink);margin:0 0 14px;overflow-wrap:anywhere;text-transform:none}
.jng .jng-title--edit{font-size:clamp(28px,3.5vw,36px)}
.jng .jng-eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700;color:var(--jng-accent);text-transform:uppercase;margin:0 0 9px}
.jng .jng-intro{color:var(--jng-muted);max-width:580px;margin:0}
.jng-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.jng .jng-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;background:var(--jng-accent);border:1px solid var(--jng-accent);border-radius:10px;color:#fff;font-weight:600;font-size:15px;line-height:1.4;text-align:center;box-shadow:none;white-space:normal;text-decoration:none;margin:0}
.jng .jng-button:hover{filter:brightness(.94);color:#fff;text-decoration:none}
.jng .jng-button--quiet{background:var(--jng-paper);color:var(--jng-ink);border-color:var(--jng-line)}
.jng .jng-button--quiet:hover{color:var(--jng-accent);background:var(--jng-paper)}
.jng .jng-button--small{padding:6px 12px;min-width:44px;min-height:44px}
.jng-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.jng .jng-chip{display:inline-flex;align-items:center;min-height:42px;padding:8px 14px;border:1px solid var(--jng-line);border-radius:6px;background:var(--jng-paper);font-size:14px;color:var(--jng-muted)}
.jng .jng-chip.is-active,.jng .jng-chip:hover{color:var(--jng-accent);border-color:var(--jng-accent);background:var(--jng-soft)}
.jng .jng-year{display:flex;align-items:center;gap:15px;font-size:24px;font-weight:700;margin:30px 0 18px;color:var(--jng-ink)}
.jng-year:after{content:'';height:1px;flex:1;background:var(--jng-line)}
.jng-albums{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.jng-card{border:1px solid var(--jng-line);border-radius:14px;overflow:hidden;background:var(--jng-paper);min-width:0;box-shadow:0 4px 18px #24242a04}
.jng-card--kids{--jng-accent:#9d2c2c;--jng-soft:#f5e9e7}
.jng-card-link{display:flex;height:100%;flex-direction:column}
.jng-card-link:hover .jng-card-title{color:var(--jng-accent)}
.jng .jng-cover{width:100%;height:auto;aspect-ratio:1.7;object-fit:cover;object-position:center 25%;display:block;margin:0;background:var(--jng-soft)}
.jng-card-body{padding:22px;display:flex;flex-direction:column;gap:9px;flex:1}
.jng .jng-meta{font-size:13px;color:var(--jng-muted);line-height:1.5}
.jng .jng-card-title{font-size:24px;line-height:1.3;font-weight:700;letter-spacing:-.4px;margin:0;color:var(--jng-ink);overflow-wrap:anywhere;text-transform:none}
.jng .jng-description{font-size:15px;color:var(--jng-muted);overflow-wrap:anywhere}
.jng-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:17px;color:var(--jng-accent);font-size:14px;font-weight:600}
.jng-count{color:var(--jng-muted);font-weight:400;font-size:12px;white-space:nowrap}
.jng-empty{text-align:center;background:var(--jng-paper);padding:35px 22px;border-radius:8px;margin-top:22px}
.jng .jng-empty h2{font-size:24px;color:var(--jng-ink);margin:0 0 10px}
.jng-empty .jng-button{margin-top:20px}
.jng .jng-empty--welcome{padding:46px 28px 40px;border:1px solid var(--jng-line);border-radius:16px;background:var(--jng-paper);margin-top:24px}
.jng .jng-empty--welcome>p:not(.jng-eyebrow){max-width:510px;margin:0 auto;color:var(--jng-muted)}
.jng .jng-empty--welcome h2{font-size:clamp(24px,3vw,30px);letter-spacing:-.6px;margin:10px 0 12px;line-height:1.25}
.jng-empty-icon{width:86px;height:86px;background:var(--jng-soft);color:var(--jng-accent);display:grid;place-items:center;margin:0 auto 24px;border-radius:24px;transform:rotate(-5deg)}
.jng-empty-icon svg{transform:rotate(5deg);display:block}
.jng .jng-start-steps{list-style:none;padding:0;margin:26px auto 6px;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;color:var(--jng-muted);font-size:13px}
.jng .jng-start-steps li{display:flex;align-items:center;gap:8px;margin:0;padding:0}
.jng-start-steps span{width:24px;height:24px;border-radius:50%;background:var(--jng-bg);display:grid;place-items:center;color:var(--jng-accent);font-weight:600;flex-shrink:0}
.jng--manage .jng-head{margin-bottom:26px;padding-bottom:25px;border-bottom:1px solid var(--jng-line)}
.jng--manage .jng-head>div{max-width:650px}
.jng .jng-visitor-link{margin-top:6px;margin-bottom:20px}
.jng-pagination{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap;margin-top:30px;font-size:14px;color:var(--jng-muted)}
.jng .jng-textlink{color:var(--jng-accent);font-size:14px;font-weight:600}
.jng .jng-textlink:hover{text-decoration:underline}
.jng .jng-topspace{margin-top:25px}
.jng .jng-space{margin-bottom:18px}
.jng .jng-notice{background:var(--jng-soft);color:var(--jng-accent);border-radius:7px;padding:14px 17px;margin:0 0 22px;font-weight:600;overflow-wrap:anywhere}
.jng-managelist{display:grid;gap:12px}
.jng .jng-managerow{display:flex;align-items:center;gap:18px;border:1px solid var(--jng-line);border-radius:12px;padding:15px;background:var(--jng-paper)}
.jng .jng-managerow:hover{border-color:var(--jng-accent);box-shadow:0 4px 15px #24242a06}
.jng-managerow img,.jng-nophoto{width:100px;height:75px;object-fit:cover;flex-shrink:0;border-radius:5px}
.jng-nophoto{display:grid;place-items:center;font-size:28px;background:var(--jng-soft);color:var(--jng-accent)}
.jng-managerow-title{display:flex;flex:1;min-width:0;flex-direction:column;gap:5px;overflow-wrap:anywhere}
.jng-managerow-title strong{font-weight:600}
.jng-state{font-size:12px;color:var(--jng-muted);background:var(--jng-bg);padding:5px 10px;border-radius:50px;white-space:nowrap}
.jng-state--published{color:#306243;background:#edf4ee}
.jng-state--draft{color:#73634f;background:#f3eee6}
.jng-rowarrow{color:var(--jng-accent);font-size:20px}
.jng-album-description{max-width:850px;margin-bottom:28px;overflow-wrap:anywhere}
.jng-photo-grid{column-count:3;column-gap:16px}
.jng-figure{break-inside:avoid;margin:0 0 16px;display:block}
.jng-zoom{display:block}
.jng .jng-figure img{width:100%;height:auto;display:block;border-radius:7px}
.jng figcaption{font-size:13px;color:var(--jng-muted);padding:7px 2px;overflow-wrap:anywhere}
.jng-lightbox{width:min(1100px,96vw);max-width:96vw;max-height:95vh;border:1px solid var(--jng-line);border-radius:9px;background:var(--jng-paper);color:var(--jng-ink);padding:16px;box-shadow:0 12px 70px #0006}
.jng-lightbox::backdrop{background:#111d}
.jng-lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}
.jng-lightbox-close{min-width:44px;min-height:44px;border:1px solid var(--jng-line);border-radius:5px;background:var(--jng-paper);color:var(--jng-ink);font-size:18px}
.jng .jng-lightbox-image{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain;background:var(--jng-bg)}
.jng .jng-lightbox-caption{margin:12px 0;overflow-wrap:anywhere;font-size:14px}
.jng-lightbox-controls{display:flex;justify-content:space-between;gap:12px}
.jng-editor{max-width:680px;margin:0 auto}
.jng--edit{max-width:960px}
.jng-form label{display:block;font-weight:600;font-size:15px;margin:21px 0 8px;line-height:1.45}
.jng .jng-input{background:var(--jng-paper);color:var(--jng-ink);border:1px solid var(--jng-line);border-radius:7px;width:100%;padding:11px 12px;font-size:16px;line-height:1.5;height:auto;min-height:46px;box-shadow:none;margin:0}
.jng textarea.jng-input{resize:vertical;min-height:110px}
.jng-formrow{display:grid;grid-template-columns:minmax(0,1fr) 175px;gap:15px}
.jng-optional{font-weight:400;color:var(--jng-muted);font-size:13px}
.jng-drop{background:var(--jng-paper);border:2px dashed var(--jng-line);border-radius:8px;padding:22px 15px;text-align:center}
.jng-drop.is-over{border-color:var(--jng-accent);background:var(--jng-soft)}
.jng-drop-icon{display:block;color:var(--jng-accent);font-size:29px;line-height:1.3;margin-bottom:5px}
.jng-drop .jng-button{margin-top:14px}
.jng .jng-upload-count{margin:9px 0}
.jng-queue{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.jng-queued{min-width:0;position:relative;background:var(--jng-paper);border-radius:7px;overflow:hidden;border:1px solid var(--jng-line)}
.jng-queued img{width:100%;height:95px;object-fit:cover;display:block}
.jng-queued-name{display:block;font-size:11px;padding:4px 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.jng-queued-remove{position:absolute;top:5px;right:5px;width:32px;height:32px;border:1px solid var(--jng-line);border-radius:5px;background:var(--jng-paper);color:var(--jng-ink);padding:0}
.jng-queued.is-done{opacity:.55}
.jng-details{margin-top:25px;border-top:1px solid var(--jng-line);padding-top:17px}
.jng-details summary{font-weight:600;cursor:pointer;color:var(--jng-accent);padding:7px 0}
.jng-details[open] summary{margin-bottom:12px}
.jng-existing{display:grid;gap:14px}
.jng-image-edit{display:flex;gap:14px;background:var(--jng-paper);padding:12px;border:1px solid var(--jng-line);border-radius:7px}
.jng-image-edit>img{width:120px;height:105px;object-fit:cover;flex-shrink:0;border-radius:5px}
.jng-image-fields{flex:1;min-width:0}
.jng-form .jng-check{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:400;margin:9px 0}
.jng-check input{width:18px;height:18px;flex-shrink:0;accent-color:var(--jng-accent);margin:0}
.jng-order{display:flex;gap:7px}
.jng-savebar{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}
.jng-form-status,.jng-error{margin-top:20px;padding:13px 16px;border-radius:7px;overflow-wrap:anywhere}
.jng-form-status{background:var(--jng-soft);color:var(--jng-accent)}
.jng-error{background:#fff0ed;color:#8c2017;border:1px solid #ecc5c1}
.jng-delete-form{margin-top:30px;border-top:1px solid var(--jng-line);padding-top:18px}
.jng .jng-delete{background:none;border:0;padding:9px 0;color:#9d2c2c;font-size:13px;text-decoration:underline;box-shadow:none}
.jng-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(min-width:1100px){.jng-albums{grid-template-columns:repeat(3,minmax(0,1fr))}.jng .jng-card-title{font-size:23px}}
@media(max-width:760px){.jng-photo-grid{column-count:2}.jng-albums{gap:15px}.jng-card-body{padding:17px}.jng .jng-card-title{font-size:21px}.jng-managerow{flex-wrap:wrap}.jng-state{margin-left:auto}.jng-managerow-title{min-width:130px}}
@media(max-width:540px){.jng{width:calc(100% - 24px);margin:18px auto;padding:24px 18px;border-radius:14px}.jng-albums{grid-template-columns:1fr}.jng .jng-title{letter-spacing:-.7px}.jng-head{gap:15px}.jng-formrow{grid-template-columns:1fr;gap:0}.jng-managerow img,.jng-nophoto{width:72px;height:62px}.jng .jng-managerow{gap:12px}.jng-state{margin-left:84px}.jng-rowarrow{display:none}.jng-image-edit{flex-direction:column}.jng-image-edit>img{width:100%;height:150px}.jng-queue{grid-template-columns:repeat(3,minmax(0,1fr))}.jng-lightbox-controls .jng-button{font-size:13px;padding:10px}.jng-card-bottom{flex-wrap:wrap}.jng-queued-remove{width:40px;height:40px}.jng .jng-photo-grid{column-gap:10px}.jng .jng-empty--welcome{padding:30px 17px}.jng .jng-start-steps{flex-direction:column;align-items:flex-start;max-width:180px;gap:12px}.jng-empty-icon{width:72px;height:72px;border-radius:20px}}
@media(max-width:360px){.jng-photo-grid{column-count:1}.jng-queue{grid-template-columns:repeat(2,minmax(0,1fr))}.jng-state{margin-left:0}.jng .jng-managerow{display:grid;grid-template-columns:62px minmax(0,1fr)}.jng-managerow img,.jng-nophoto{width:62px}.jng-state{grid-column:2;justify-self:start}}
@media(prefers-reduced-motion:no-preference){.jng-card-link .jng-card-title{transition:color .15s}}

.jng-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px}
.jng .jng-section{display:flex;flex-direction:column;gap:7px;padding:20px;border:1px solid var(--jng-line);border-radius:12px;background:var(--jng-paper);overflow-wrap:anywhere}
.jng-section strong{font-size:17px;line-height:1.4}.jng-section>span{font-size:12px;color:var(--jng-muted)}
.jng .jng-section.is-active,.jng .jng-section:hover{border-color:var(--jng-accent);background:var(--jng-soft);color:var(--jng-accent)}
.jng-date-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:end}
.jng .jng-date-hint{margin-top:10px}.jng-date-row>div{min-width:0}
@media(max-width:640px){.jng-sections{grid-template-columns:1fr}.jng .jng-section{padding:16px}.jng-date-row{grid-template-columns:1fr;gap:0}}

.jng .jng-photo-grid--sequence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;column-count:auto;align-items:start}
.jng-photo-grid--sequence .jng-figure{margin:0;min-width:0}
@media(max-width:640px){.jng .jng-photo-grid--sequence{grid-template-columns:1fr;gap:18px}}
