/* The single Zeltnacht design: Panorama, with a personal travel companion. */
:root{--font-max:clamp(2.6rem,5vw,4rem);--content-width:1240px;--page-gutter:clamp(20px,4vw,56px)}
body,body.page-home{min-width:320px;padding:0;background:var(--paper);color:var(--dark);font-family:var(--sans);line-height:1.65}
body:not(.page-home) #inhalt{padding-top:0}
a,button,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}
a,button,summary{touch-action:manipulation}
:focus-visible{outline:3px solid var(--forest);outline-offset:4px}
label,small,legend,summary{overflow-wrap:anywhere}
.skip-link{top:0;max-width:calc(100% - 40px);transform:translateY(-120%)}
.skip-link:focus{transform:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;min-width:0;max-width:100%;padding:12px 20px;border:1px solid var(--forest);border-radius:10px;background:var(--forest);box-shadow:none;color:#fff;font:500 var(--font-min)/1.4 var(--sans);letter-spacing:0;text-transform:none;white-space:normal}
.button:hover,.button-primary:hover{background:#123b63;border-color:#123b63;color:#fff;box-shadow:none;transform:none}
.button-secondary{background:#fff;color:var(--forest);border-color:var(--line)}
.button-secondary:hover{background:var(--paper);color:var(--forest);border-color:var(--forest)}
.text-button,.read-link{display:inline-flex;align-items:center;min-height:44px;color:var(--forest);font-weight:500;letter-spacing:0;text-transform:none;text-underline-offset:5px}
.eyebrow{color:var(--soft);font-size:var(--font-min);font-weight:500;letter-spacing:.07em}
h1,h2,h3{color:var(--forest);text-wrap:balance}
.site-header{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;min-height:80px;padding:14px var(--page-gutter);border-bottom:1px solid var(--line);background:#edf3f8;box-shadow:none}
.wordmark-lockup{display:flex;align-items:center;gap:16px;min-width:0}
.wordmark,.footer-wordmark{color:var(--orange);font:600 1.9rem/1.2 var(--sans);letter-spacing:-.04em;text-decoration:none}
.wordmark{white-space:nowrap}
.main-nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px 20px;margin-left:auto}
.main-nav a,.site-menu a{display:inline-flex;align-items:center;min-height:44px;color:var(--forest);font-size:var(--font-min);text-decoration:none;letter-spacing:0;text-transform:none}
.main-nav a[aria-current],.site-menu a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}
.main-nav a:hover,.site-menu a:hover{text-decoration:underline;text-underline-offset:7px}
.site-menu{display:none;color:var(--forest)}
.site-menu summary{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:44px;cursor:pointer;list-style:none}
.site-menu summary::-webkit-details-marker{display:none}
.site-menu summary::before{content:'☰';font-size:1.25rem}
.site-menu[open] summary::before{content:'×'}
.site-menu nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;padding:16px 0 6px}
.mobile-nav{display:none}
[id]{scroll-margin-top:calc(var(--site-header-height,80px) + 24px)}
.panorama-hero{display:flex;align-items:flex-end;min-height:500px;padding:48px max(var(--page-gutter),calc((100% - var(--content-width))/2 + var(--page-gutter)));background:linear-gradient(180deg,#07233905 5%,#07233955 40%,#072339e6 100%),url('start-berzdorfer-see.jpg') center 54%/cover no-repeat;color:#fff}
.panorama-hero-copy{width:100%;max-width:750px}
.panorama-hero .eyebrow{color:#fff}
.panorama-hero h1{margin:16px 0 18px;color:#fff;font:400 clamp(2.8rem,5.4vw,4.8rem)/1.04 var(--sans);letter-spacing:-.035em}
.panorama-hero-copy>p:not(.eyebrow){margin:0 0 26px;font-size:clamp(var(--font-min),1.7vw,1.3rem);line-height:1.6}
.panorama-hero .button{background:#fff;color:var(--forest);border-color:#fff}
.panorama-hero .button:hover{background:var(--paper)}
.overview{max-width:var(--content-width);margin:auto;padding:56px var(--page-gutter);border:0;background:var(--paper)}
.overview.reports{background:transparent}
.section-heading{display:flex;position:static;flex-direction:row;align-items:end;justify-content:space-between;gap:18px 28px;flex-wrap:wrap;margin-bottom:28px;text-align:left}
.section-heading>div:first-child{display:block;min-width:0}
.section-heading h2{margin:6px 0 0;color:var(--forest);font:400 clamp(1.65rem,2.8vw,2.5rem)/1.2 var(--sans)!important;letter-spacing:-.025em!important}
.section-heading .eyebrow{margin:0;color:var(--soft);font-style:normal;letter-spacing:.06em;text-transform:none}
.section-heading-actions{position:static;display:flex;gap:10px;flex-wrap:wrap;min-width:0}
.section-heading-actions .button{background:#fff;color:var(--forest);border-color:var(--line)}
.card-grid{display:grid;max-width:none;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:24px}
.card,.overview.reports .card{display:flex;flex-direction:column;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:none;transition:box-shadow .2s}
.card:hover{transform:none;box-shadow:0 8px 25px #194a7010}
.thumbnail{height:auto;aspect-ratio:1.65;background-color:#c0d9ed;flex-shrink:0}
.thumbnail>span{font-style:normal;background:linear-gradient(transparent,#072339ed);padding:22px 18px 14px}
.panorama-placeholder{background:linear-gradient(135deg,#194a70,#478ac9);position:relative}
.panorama-placeholder::before,.panorama-placeholder::after{display:none}
.card-content{display:flex;flex-direction:column;flex:1;min-height:0;padding:24px}
.card-meta{margin:0;color:var(--soft);letter-spacing:.06em;font-weight:400}
.card h3{color:var(--forest);font-size:1.4rem;line-height:1.35}
.card-content>p:not(.card-meta){margin-bottom:20px}
.card-content>.read-link{margin-top:auto;align-self:start}
.panorama-search{max-width:600px;margin:0 0 28px}
.panorama-search label,.companion-search label{display:block;margin-bottom:8px;color:var(--forest)}
.panorama-search>div,.companion-search>div{display:flex;gap:10px;flex-wrap:wrap}
.panorama-search input,.companion-search input{flex:1 1 180px;width:100%;min-width:0;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--dark);font:var(--font-min) var(--sans)}
.home-about{display:grid;grid-template-columns:1fr 1fr;gap:42px;max-width:var(--content-width);margin:auto;padding:48px var(--page-gutter);border-top:1px solid var(--line)}
.home-about h2{margin:12px 0;font:400 clamp(1.6rem,2.7vw,2.3rem)/1.25 var(--sans)}
.home-about p{margin:0 0 16px;color:var(--soft)}
.home-content-count{white-space:normal}
.home-principles{padding:24px var(--page-gutter);border-top:1px solid var(--line);background:#fff;color:var(--soft)}
.home-principles ul{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin:0;padding:0;list-style:none}
.home-principles li::before{content:'·';color:var(--orange);margin-right:10px}
.companion-layout{display:grid;grid-template-columns:215px minmax(0,1fr);width:100%;margin:0}
.companion-layout>#inhalt{min-width:0}
.companion-sidebar{min-width:0;border-right:1px solid var(--line);background:#fff}
.companion-sidebar-inner{position:sticky;top:var(--site-header-height,80px);max-height:calc(100dvh - var(--site-header-height,80px));overflow-y:auto;padding:32px 16px}
.companion-sidebar nav{display:grid;gap:8px}
.companion-sidebar a{display:block;min-height:48px;padding:12px;border-radius:10px;color:var(--forest);text-decoration:none;overflow-wrap:anywhere}
.companion-sidebar a[aria-current],.companion-sidebar a:hover{background:var(--paper)}
.companion-sidebar p{padding:20px 12px;color:var(--soft)}
.companion-layout .family-account-form{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.companion-layout .family-account-form>*{min-width:0}
.companion-main{min-width:0;padding:36px}
.companion-heading{margin-bottom:26px}
.companion-heading h1{margin:12px 0;font:400 clamp(2rem,3.3vw,3.2rem)/1.15 var(--sans);letter-spacing:-.03em}
.companion-heading>p:last-child{margin:0;color:var(--soft)}
.companion-current{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff}
.companion-current-copy{padding:32px;min-width:0}
.companion-current-copy h2{margin:12px 0;font:500 clamp(1.5rem,2.2vw,2rem)/1.25 var(--sans)}
.companion-current-copy p{margin:0 0 18px}
.companion-status,.companion-meta{color:var(--soft)}
.companion-actions{display:grid;gap:14px;justify-items:start;margin-top:24px}
.companion-photo{position:relative;min-height:300px;background:url('start-berzdorfer-see.jpg') center/cover no-repeat}
.companion-photo>span{position:absolute;bottom:18px;left:18px;right:18px;padding:10px 14px;border-radius:10px;background:#072339dd;color:#fff}
.companion-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.home-glamping{margin-top:24px}
.home-glamping-public{padding-top:0}
.companion-panel{display:flex;flex-direction:column;min-width:0;padding:28px;border:1px solid var(--line);border-radius:16px;background:#fff}
.companion-panel h2{margin:12px 0 16px;font:500 1.5rem/1.3 var(--sans)}
.companion-panel>p:not(.eyebrow){margin:0 0 14px;color:var(--soft)}
.companion-panel>.read-link{margin-top:auto;align-self:start}
.companion-search{margin:0 0 12px}
.companion-recent{padding-top:36px}
.companion-recent .section-heading h2{font-size:1.6rem!important}
.companion-travel-list{list-style:none;margin:0 0 16px;padding:0}
.companion-travel-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.companion-travel-list li>div{min-width:0}
.companion-travel-list a{color:var(--forest);text-underline-offset:4px}
.companion-travel-list p{margin:6px 0 0;color:var(--soft)}
/* Shared page rhythm, forms and settings; section labels remain above content. */
.form-page,.dashboard-page,.place-preview-page,.travel-preview-page,.travel-editor-page,.plan-index-page,.builder-page{max-width:var(--content-width);margin:auto;padding:42px var(--page-gutter)}
.form-page.narrow{max-width:680px}
/* Read-only ratings share the same outlined SVG stars in reports, places and map popups. */
.rating-display[role="img"]{--rating-color:#477666;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-width:0;max-width:100%;color:var(--rating-color);font:500 var(--font-min)/1.4 var(--sans)}
.rating-display.rating--low{--rating-color:#9c5548}
.rating-display.rating--medium{--rating-color:#826632}
.rating-display.rating--unrated{--rating-color:var(--soft)}
.rating-display .rating-stars{display:inline-flex;flex:0 1 auto;width:calc(5.75rem + 8px);max-width:100%;min-width:0;gap:2px;color:inherit;line-height:1}
.rating-star{display:block;flex:1;min-width:0;width:1.15rem;height:auto;aspect-ratio:1;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.rating-star-outline{fill:currentColor;fill-opacity:.08;stroke-opacity:.45}
.rating-star-fill path{fill:currentColor}
.rating-display .rating-number{color:inherit;font:inherit;white-space:nowrap;font-variant-numeric:tabular-nums}
.rating-unrated{color:var(--soft);font-size:var(--font-min)}
.visit-preview-list{grid-template-columns:minmax(0,1fr)}
.visit-preview,.visit-preview>header>div{min-width:0}
.visit-duration{overflow-wrap:anywhere}
.map-popup-ratings{display:grid;gap:10px;margin:14px 0}
.map-popup-ratings>div{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}
@media print{.rating-display{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.report-load-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:0 0 30px;padding:16px 20px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 12px #194a7010}
.report-load-toolbar>div{flex:1 1 320px;min-width:0}
.report-load-toolbar p{margin:0;font-size:var(--font-min);font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.report-load-toolbar [data-state="error"]{color:#943e26}
.report-load-toolbar progress{display:block;width:100%;height:7px;margin-top:9px;accent-color:var(--forest)}
.report-load-toolbar button:disabled{opacity:.6;cursor:wait}
.travel-preview-page .report-media-message{padding:16px;margin:0;color:var(--soft);font:var(--font-min)/1.5 var(--sans);overflow-wrap:anywhere}
.travel-preview-page [hidden]{display:none!important}
@media screen and (min-width:760px){
  .report-load-toolbar{position:sticky;top:var(--site-header-height,80px);z-index:20}
  .travel-preview-page [id]{scroll-margin-top:calc(var(--site-header-height,80px) + var(--report-load-height,0px) + 24px)}
}
@media print{.report-load-toolbar{display:none!important}}
.form-intro,.dashboard-head{margin-bottom:30px}
.form-intro h1,.dashboard-head h1,.detail-page h1,.empty-page h1,.plan-index-hero h1,.builder-head h1{font-size:clamp(2.2rem,4vw,3.8rem);line-height:1.1;letter-spacing:-.03em;color:var(--forest)}
.form-card,.maintenance-panel,.place-form-section,.travel-days-editor,.travel-toc,.preview-section,.plan-card,.builder-form>section,.planning-add-form,.table-wrap,.action-grid a{border-radius:16px;box-shadow:none}
.form-card input,.form-card textarea,.form-card select{border-radius:8px}
.field-grid>*:not(.rating-touch-control),.travel-day-fields>*,.travel-diary-fields>*,.place-form label{min-width:0}
.field-grid input,.travel-day-fields input,.travel-day-fields textarea,.travel-day-fields select{min-width:0;max-width:100%}
.settings-grid{gap:24px}
.settings-grid .form-card{min-width:0}
.maintenance-panel{margin-top:28px}
.action-grid{gap:18px}
.action-grid a{min-width:0;border-color:var(--line);padding:24px}
.action-grid a>span{color:var(--orange)}
.plan-index-hero{padding:20px 0 36px;min-height:0;background:none;color:var(--forest);flex-wrap:wrap;gap:24px}
.plan-index-hero>div{min-width:0}
.plan-index-hero p,.plan-index-hero p:last-child,.plan-index-hero .eyebrow{color:var(--soft)}
.plan-index-hero .button{white-space:normal}
.plan-index-intro{padding:24px 0}
.plan-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.plan-builder-note{margin:24px 0 0}
.site-footer{display:flex;flex-wrap:wrap;align-items:start;justify-content:space-between;gap:24px;padding:42px var(--page-gutter);border-top:1px solid var(--line);background:#fff;color:var(--soft)}
.site-footer>div{max-width:420px}
.site-footer p{margin:12px 0 0}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 22px;max-width:570px}
.site-footer nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--forest);text-underline-offset:5px}
.copyright{width:100%;font-size:var(--font-min)}
.setup-notice{margin:24px auto;max-width:var(--content-width);border-radius:12px}
@media(max-width:1150px){
  .main-nav{display:none}
  .site-menu{display:block;margin-left:auto}
  .site-header:has(.site-menu[open]){position:relative;flex-wrap:wrap}
  .site-menu[open]{width:100%;margin:0}
  .companion-layout{grid-template-columns:minmax(0,1fr)}
  .companion-sidebar{display:none}
}
@media(max-width:950px){
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card-grid>.card:last-child:nth-child(odd){grid-column:1/-1;max-width:none}
  .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .settings-grid>.form-card:last-child{grid-column:1/-1}
}
@media(max-width:700px){
  :root{--page-gutter:20px}
  .site-header{min-height:72px;padding:10px 20px;gap:16px}
  .wordmark{font-size:1.65rem}
  .panorama-hero{min-height:390px;padding:32px 20px;background-position:58% center}
  .panorama-hero h1{font-size:clamp(2.65rem,10vw,3.6rem)}
  .overview{padding:36px 20px}
  .card-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .card-grid>.card:last-child:nth-child(odd){grid-column:auto}
  .section-heading{align-items:start;gap:12px}
  .section-heading-actions{width:100%}
  .section-heading-actions .button{flex:1 1 170px}
  .home-about{grid-template-columns:1fr;gap:18px;padding:36px 20px}
  .home-principles ul{display:grid;justify-content:start}
  .companion-main{padding:28px 20px}
  .companion-current{grid-template-columns:minmax(0,1fr)}
  .companion-current-copy,.companion-panel{padding:24px}
  .companion-photo{min-height:180px}
  .companion-grid{grid-template-columns:minmax(0,1fr);gap:20px}
  .companion-travel-list li{align-items:start;flex-wrap:wrap}
  .form-page,.dashboard-page,.place-preview-page,.travel-preview-page,.travel-editor-page,.plan-index-page,.builder-page{padding:28px 20px}
  .plan-card-grid,.settings-grid{grid-template-columns:minmax(0,1fr)}
  .settings-grid>.form-card:last-child{grid-column:auto}
  .site-footer{padding:32px 20px}
  .mobile-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(4.4rem,1fr));gap:0;padding:4px 4px max(4px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
  .mobile-nav a{display:flex;align-items:center;justify-content:center;min-height:52px;padding:8px 3px;color:var(--forest);font:500 var(--font-min)/1.3 var(--sans);text-decoration:none}
  .mobile-nav a:hover,.mobile-nav a[aria-current]{background:var(--paper);border-radius:8px}
  html.nav-enhanced .mobile-nav{position:fixed;right:0;bottom:0;left:0;z-index:25}
  html.nav-enhanced body{padding-bottom:var(--mobile-nav-height,64px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}
@media print{.site-header,.mobile-nav,.companion-sidebar{display:none!important}body,html.nav-enhanced body{padding:0}.companion-layout{display:block}}
