/* Luvia App Shell 6.2 – einheitliches Premium-Design ohne Eingriff in Modul-Funktionen */
:root{
  --shell-accent:#e76f91;
  --shell-safe-bottom:max(10px,env(safe-area-inset-bottom));
  --shell-ink:#263f52;
  --shell-muted:#7b8994;
  --shell-surface:rgba(255,255,255,.86);
  --shell-border:rgba(43,66,84,.08);
  --shell-shadow:0 18px 52px rgba(40,54,68,.12);
  --shell-radius:30px;
}
html.luvia-shell-active body{padding-bottom:0;overflow:hidden;font-family:"Nunito Sans",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html.luvia-shell-active .live-trip-bar{z-index:140}
html.luvia-shell-active main.wrap{width:min(1120px,calc(100% - 24px));height:calc(100svh - 86px);padding:10px 0 0;margin:0 auto;overflow:hidden}
html.luvia-shell-active main.wrap>.luvia-shell-source-hidden{display:none!important}
html.luvia-shell-active main.wrap>#luviaAppShell{display:grid!important}
.luvia-app-shell{position:relative;height:100%;grid-template-rows:minmax(0,1fr) auto;gap:12px;isolation:isolate}
.luvia-app-viewport{position:relative;min-height:0;overflow:hidden;border-radius:var(--shell-radius);touch-action:pan-y pinch-zoom}
.luvia-app-screen{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;padding:14px 10px calc(28px + env(safe-area-inset-bottom));scrollbar-width:thin;opacity:0;transform:scale(.985);filter:blur(8px);transition:opacity .34s ease,transform .43s cubic-bezier(.22,.82,.24,1),filter .34s ease;will-change:transform,opacity,filter}
.luvia-app-screen[hidden]{display:none!important}.luvia-app-screen.is-active{opacity:1;transform:none;filter:none}.luvia-app-screen.from-left,.luvia-app-screen.from-right{display:block;opacity:0;transform:scale(1.018);filter:blur(8px)}.luvia-app-screen.is-leaving{display:block;opacity:0;transform:scale(.982);filter:blur(8px)}
.luvia-screen-content{min-height:100%;font-family:"Nunito Sans",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--shell-ink)}
.luvia-screen-content>[class],.luvia-screen-content>section{max-width:100%}

/* Einheitliche Typografie für alle originalen Module */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content h1,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content h2{font-family:"DM Serif Display",Georgia,serif!important;color:var(--shell-ink);letter-spacing:-.038em;line-height:1.02}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content h3,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content h4{font-family:"Nunito Sans",Inter,sans-serif!important;color:var(--shell-ink);letter-spacing:-.018em}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content p,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content li,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content label,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content input,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content textarea,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content select,
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content button{font-family:"Nunito Sans",Inter,sans-serif}

/* Einheitliche Oberflächen – Originalstruktur bleibt vollständig erhalten */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) :is(.app-section,.day-group,.highlight-section,.travel-assistant,.live-moments,.travel-apps-section,.language-coach,.budget-section,.gallery-section,.photo-spots-section,.memories-section,.travel-book-section,.review-section){border-radius:28px;border:1px solid var(--shell-border);box-shadow:var(--shell-shadow);background:var(--shell-surface);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) :is(button,.map-button,.restaurant-link,.restaurant-map,.pc-btn):not(.plain):not([class*="close"]){border-radius:16px}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) :is(input,textarea,select){border-radius:15px;border-color:rgba(43,66,84,.12)}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) :is(.eyebrow,.kicker,[class*="eyebrow"],[class*="kicker"]){font-family:"Nunito Sans",Inter,sans-serif!important;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
html.luvia-shell-active .reveal{opacity:1;transform:none}
html.luvia-shell-active .luvia-module-hidden{display:none!important}

/* Kurzer gebrandeter Modul-Opener */
.luvia-module-intro{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:24px;pointer-events:none;opacity:0;visibility:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--shell-accent) 14%,rgba(255,250,248,.92)),rgba(246,250,252,.92));backdrop-filter:blur(18px);transition:opacity .18s ease,visibility .18s ease}
.luvia-module-intro[hidden]{display:none}.luvia-module-intro.is-visible{opacity:1;visibility:visible}.luvia-module-intro.is-leaving{opacity:0}
.luvia-module-intro-card{position:relative;width:min(430px,92%);min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:38px 28px;border-radius:36px;color:white;background:linear-gradient(145deg,color-mix(in srgb,var(--shell-accent) 93%,#d95d7a),color-mix(in srgb,var(--shell-accent) 72%,#344f64));box-shadow:0 30px 80px color-mix(in srgb,var(--shell-accent) 30%,rgba(31,47,62,.22));overflow:hidden;transform:scale(.94);transition:transform .34s cubic-bezier(.2,.86,.24,1)}
.luvia-module-intro.is-visible .luvia-module-intro-card{transform:scale(1)}
.luvia-module-intro-card:before,.luvia-module-intro-card:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.12)}.luvia-module-intro-card:before{width:210px;height:210px;right:-70px;top:-80px}.luvia-module-intro-card:after{width:140px;height:140px;left:-55px;bottom:-60px}
.luvia-module-intro-kicker{position:relative;z-index:1;margin-bottom:22px;padding:8px 13px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(255,255,255,.12);font:800 11px/1 "Manrope",sans-serif;letter-spacing:.14em;text-transform:uppercase}
.luvia-module-intro-icon{position:relative;z-index:1;width:78px;height:78px;display:grid;place-items:center;margin-bottom:17px;border-radius:26px;background:rgba(255,255,255,.18);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);font-size:36px}
.luvia-module-intro strong{position:relative;z-index:1;max-width:100%;font:700 clamp(34px,7vw,50px)/.98 "DM Serif Display",Georgia,serif;letter-spacing:-.045em}.luvia-module-intro small{position:relative;z-index:1;margin-top:10px;font:700 14px/1.3 "Manrope",sans-serif;color:rgba(255,255,255,.78)}
.luvia-module-intro i{position:relative;z-index:1;width:42px;height:4px;margin-top:24px;border-radius:999px;background:rgba(255,255,255,.5)}

/* Floating Navigation */
.luvia-shell-nav{position:relative;z-index:30;display:flex;gap:6px;width:100%;overflow-x:auto;padding:8px;margin:0 0 var(--shell-safe-bottom);border:1px solid rgba(255,255,255,.68);border-radius:26px;background:rgba(255,255,255,.78);box-shadow:0 18px 52px rgba(38,52,66,.16);backdrop-filter:blur(24px) saturate(145%);-webkit-backdrop-filter:blur(24px) saturate(145%);scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain;touch-action:pan-x}
.luvia-shell-nav[hidden]{display:none!important}.luvia-shell-nav::-webkit-scrollbar{display:none}
.luvia-shell-nav button{scroll-snap-align:center;appearance:none;border:0;background:transparent;color:#788691;min-width:88px;max-width:124px;padding:10px 8px;border-radius:19px;font:800 11px/1.15 "Manrope",Inter,sans-serif;display:grid;gap:5px;place-items:center;cursor:pointer;white-space:normal;transition:background .22s ease,color .22s ease,transform .22s ease}
.luvia-shell-nav button span{font-size:21px;line-height:1}.luvia-shell-nav button b{font:inherit}.luvia-shell-nav button.is-active{color:color-mix(in srgb,var(--shell-accent) 90%,#42596a);background:color-mix(in srgb,var(--shell-accent) 12%,rgba(255,255,255,.9));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--shell-accent) 16%,transparent),0 7px 18px rgba(45,60,74,.06);transform:translateY(-1px)}

/* Dashboard bleibt bewusst ruhiger als die Module */
html.luvia-shell-active #luvia-dashboard{margin:0!important;padding:4px 2px 18px;background:transparent!important;box-shadow:none!important;border:0!important}
html.luvia-shell-active #luvia-dashboard .ld-shell{gap:16px}
html.luvia-shell-active #luvia-dashboard .ld-card{border-radius:26px;border:1px solid rgba(58,77,91,.07);box-shadow:0 12px 34px rgba(48,63,75,.08);background:rgba(255,255,255,.88);backdrop-filter:blur(16px)}
html.luvia-shell-active #luvia-dashboard .ld-hero{gap:14px;margin-bottom:4px}html.luvia-shell-active #luvia-dashboard .ld-hero-main,html.luvia-shell-active #luvia-dashboard .ld-countdown-card{border-radius:30px;box-shadow:0 20px 52px color-mix(in srgb,var(--trip-accent) 16%,transparent)}
html.luvia-shell-active #luvia-dashboard .ld-card-head h3{font-family:"Nunito Sans",Inter,sans-serif;letter-spacing:-.02em}
html.luvia-shell-active #luvia-dashboard .ld-card-tag{background:color-mix(in srgb,var(--trip-accent) 10%,white);color:color-mix(in srgb,var(--trip-accent) 78%,#344e61)}
html.luvia-shell-active #luvia-dashboard .ld-quick{display:none!important}
.luvia-dashboard-widget-off{display:none!important}
.luvia-dashboard-empty{min-height:58vh;display:grid;place-items:center;align-content:center;text-align:center;padding:42px 24px;border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.92),color-mix(in srgb,var(--shell-accent) 6%,white));border:1px solid rgba(58,77,91,.08);box-shadow:0 18px 46px rgba(48,63,75,.09)}
.luvia-dashboard-empty span{font-size:44px;color:var(--shell-accent)}.luvia-dashboard-empty h2{margin:12px 0 6px;font:700 36px/1.05 "DM Serif Display",Georgia,serif;color:var(--shell-ink)}.luvia-dashboard-empty p{max-width:470px;margin:0;color:var(--shell-muted);line-height:1.6}.luvia-dashboard-empty button{margin-top:22px;border:0;border-radius:999px;padding:13px 20px;background:var(--shell-accent);color:white;font-weight:900;box-shadow:0 10px 24px color-mix(in srgb,var(--shell-accent) 25%,transparent)}

/* Echte horizontale Inhalte besitzen Vorrang vor dem Modul-Swipe */
:is(.horizontal-scroll,.scroll-row,.chip-row,.tabs,.tab-list,.category-tabs,.language-categories,.phrase-categories,.gallery-strip,.photo-strip,.restaurant-tools,[data-horizontal-scroll]){touch-action:pan-x;overscroll-behavior-x:contain}

@media(max-width:760px){
 html.luvia-shell-active main.wrap{width:calc(100% - 14px);height:calc(100svh - 76px);padding-top:4px}
 .luvia-app-viewport{border-radius:24px}.luvia-app-screen{padding:6px 1px 16px}
 .luvia-shell-nav{border-radius:23px;margin-bottom:var(--shell-safe-bottom)}.luvia-shell-nav button{min-width:82px}
 html.luvia-shell-active #luvia-dashboard .ld-shell{gap:12px}html.luvia-shell-active #luvia-dashboard .ld-card{border-radius:22px}html.luvia-shell-active #luvia-dashboard .ld-hero-main,html.luvia-shell-active #luvia-dashboard .ld-countdown-card{border-radius:25px}.luvia-dashboard-empty{min-height:62vh;border-radius:26px}.luvia-dashboard-empty h2{font-size:31px}
 .luvia-module-intro-card{min-height:285px;border-radius:31px}
}
@media(min-width:900px){.luvia-app-screen{padding-left:14px;padding-right:14px}.luvia-shell-nav{width:max-content;max-width:100%;justify-self:center}}
@media(prefers-reduced-motion:reduce){.luvia-app-screen,.luvia-module-intro,.luvia-module-intro-card{transition:none!important}.luvia-shell-nav button{scroll-behavior:auto}}


/* Luvia 7.0 – ruhiger Modulwechsel, Seiten-Scroll und integriertes Profil */
.pc-fab{display:none!important}
.luvia-module-intro{background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.luvia-module-intro-card{min-height:250px;width:min(390px,88%);border-radius:32px;box-shadow:0 26px 72px color-mix(in srgb,var(--shell-accent) 28%,rgba(31,47,62,.18))}
.live-trip-bar{padding-right:74px!important;background:linear-gradient(105deg,rgba(42,59,78,.95) 0%,color-mix(in srgb,var(--trip-accent,#ee6f83) 13%,rgba(53,72,84,.94)) 72%,color-mix(in srgb,var(--trip-accent,#ee6f83) 25%,rgba(63,77,88,.93)) 100%)!important}
.luvia-trip-profile{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid rgba(255,255,255,.28);border-radius:16px;background:color-mix(in srgb,var(--trip-accent,#ee6f83) 46%,rgba(255,255,255,.15));color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px rgba(26,39,51,.18);font:900 18px/1 "Nunito Sans",sans-serif}
.luvia-trip-profile:after{content:"Profil";position:absolute;right:0;top:calc(100% + 7px);padding:5px 8px;border-radius:9px;background:#fff;color:#40596a;font-size:10px;opacity:0;pointer-events:none;transition:.2s;box-shadow:0 8px 20px rgba(32,48,62,.14)}
.luvia-trip-profile:hover:after,.luvia-trip-profile:focus-visible:after{opacity:1}
.pc-global-new-trip{position:fixed;z-index:32100;left:50%;top:max(18px,env(safe-area-inset-top));transform:translateX(-50%);display:flex;align-items:center;gap:9px;padding:14px 22px;border:1px solid color-mix(in srgb,var(--pc-accent,#e76f91) 34%,#fff);border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--pc-accent,#e76f91) 84%,#fff),color-mix(in srgb,var(--pc-accent,#e76f91) 56%,#f5d7df));color:#fff;font:900 14px/1 "Nunito Sans",sans-serif;box-shadow:0 18px 45px color-mix(in srgb,var(--pc-accent,#e76f91) 28%,rgba(34,48,60,.18));cursor:pointer}
.pc-overlay[hidden] .pc-global-new-trip{display:none}
html.luvia-shell-active :is(body,button,input,textarea,select){font-family:"Nunito Sans",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html.luvia-shell-active :is(h1,h2,.ld-trip-title,.pc-head h2,.pc-title){font-family:"DM Serif Display",Georgia,serif!important;font-weight:400!important;letter-spacing:-.025em!important}
@media(min-width:900px){
 html.luvia-shell-active body{overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:110px!important}
 html.luvia-shell-active main.wrap{height:auto!important;min-height:calc(100vh - 86px);overflow:visible!important}
 .luvia-app-shell{height:auto!important;min-height:calc(100vh - 100px);display:block!important}
 .luvia-app-viewport{overflow:visible!important;min-height:calc(100vh - 180px)}
 .luvia-app-screen{position:relative!important;inset:auto!important;overflow:visible!important;min-height:calc(100vh - 180px);padding-bottom:100px}
 .luvia-app-screen[hidden]{display:none!important}
 .luvia-shell-nav{position:fixed!important;left:50%;bottom:12px;transform:translateX(-50%);z-index:12000;margin:0!important}
 .luvia-module-intro{position:fixed!important;z-index:11900}
}
@media(max-width:760px){.live-trip-bar{padding-right:66px!important}.luvia-trip-profile{right:9px;width:46px;height:46px;border-radius:50%}.luvia-module-intro-card{min-height:235px}.pc-global-new-trip{top:auto;bottom:22px;padding:13px 18px}}

/* Luvia 7.1 – transparente Modulbühne, gruppierter Opener und helle Reiseleiste */
html.luvia-shell-active .luvia-app-viewport,
html.luvia-shell-active .luvia-app-screen,
html.luvia-shell-active .luvia-screen-content{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}

/* Der Opener bildet mit der tatsächlichen Modulfläche optisch eine Einheit. */
.luvia-module-intro{
  padding:clamp(10px,2vw,22px)!important;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.luvia-module-intro::before{
  content:"";
  position:absolute;
  inset:clamp(10px,2vw,22px);
  border-radius:30px;
  background:var(--intro-module-surface,rgba(255,255,255,.97));
  box-shadow:0 18px 55px rgba(42,57,69,.10);
  opacity:1;
  transition:opacity .43s ease;
}
.luvia-module-intro.is-leaving::before{opacity:0}
.luvia-module-intro-card{z-index:1;transition:opacity .43s ease,transform .43s cubic-bezier(.2,.86,.24,1)!important}
.luvia-module-intro.is-leaving .luvia-module-intro-card{opacity:0;transform:scale(.985)}

/* Reiseleiste: sehr heller, nur angedeuteter Verlauf in der gewählten Reisefarbe. */
.live-trip-bar{
  overflow:visible!important;
  color:#355064!important;
  border:1px solid color-mix(in srgb,var(--trip-accent,#ee6f83) 18%,rgba(73,94,108,.10))!important;
  background:linear-gradient(105deg,
    rgba(255,255,255,.90) 0%,
    color-mix(in srgb,var(--trip-accent,#ee6f83) 5%,rgba(255,255,255,.92)) 68%,
    color-mix(in srgb,var(--trip-accent,#ee6f83) 10%,rgba(255,255,255,.90)) 100%)!important;
  box-shadow:0 13px 34px rgba(48,64,76,.11)!important;
  backdrop-filter:blur(18px) saturate(120%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(120%)!important;
}
.live-trip-bar :is(.live-trip-brand,.live-trip-next,.live-trip-step small){color:#355064!important}
.live-trip-bar .live-trip-progress:before{background:rgba(67,91,106,.18)!important}
.live-trip-bar .live-trip-dot{color:#355064!important;background:rgba(255,255,255,.72)!important;border-color:rgba(63,87,103,.26)!important}
.live-trip-bar .live-trip-step.active .live-trip-dot{background:color-mix(in srgb,var(--trip-accent,#ee6f83) 20%,white)!important}

.luvia-trip-profile{
  overflow:visible;
  border-radius:16px!important;
  border-color:color-mix(in srgb,var(--trip-accent,#ee6f83) 26%,rgba(75,94,107,.12))!important;
  background:color-mix(in srgb,var(--trip-accent,#ee6f83) 14%,rgba(255,255,255,.88))!important;
  box-shadow:0 8px 19px color-mix(in srgb,var(--trip-accent,#ee6f83) 13%,rgba(38,53,65,.12))!important;
}
.luvia-trip-profile svg{width:34px;height:34px;overflow:visible}
.luvia-trip-profile .lp-cloud{fill:color-mix(in srgb,var(--trip-accent,#ee6f83) 12%,white)}
.luvia-trip-profile .lp-route{fill:none;stroke:color-mix(in srgb,var(--trip-accent,#ee6f83) 62%,#486276);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:2.2 3}
.luvia-trip-profile .lp-plane{fill:color-mix(in srgb,var(--trip-accent,#ee6f83) 74%,#405b70)}
.luvia-trip-profile .lp-case{fill:#fff;stroke:color-mix(in srgb,var(--trip-accent,#ee6f83) 58%,#496276);stroke-width:1.8}
.luvia-trip-profile .lp-handle{fill:none;stroke:color-mix(in srgb,var(--trip-accent,#ee6f83) 58%,#496276);stroke-width:1.8;stroke-linecap:round}
.luvia-trip-profile .lp-heart{fill:var(--trip-accent,#ee6f83)}
.luvia-trip-profile:after{z-index:500;top:calc(100% + 10px);right:-3px;white-space:nowrap;border:1px solid rgba(58,78,92,.09)}

@media(min-width:900px){
  .luvia-app-viewport{min-height:0!important}
  .luvia-app-screen{min-height:0!important;padding-top:0!important}
  .luvia-screen-content{min-height:0!important}
}
@media(max-width:760px){
  .luvia-module-intro::before{inset:6px 1px 16px;border-radius:24px}
  .luvia-trip-profile{border-radius:15px!important}
}

/* Luvia 7.2 – konsequente Reisefarbe in allen Modulen + passende Desktop-Bühne */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content{
  --accent:var(--shell-accent)!important;
  --rose:var(--shell-accent)!important;
  --module-accent:var(--shell-accent)!important;
  --memory-accent:var(--shell-accent)!important;
  --weather-accent:var(--shell-accent)!important;
  --pc-accent:var(--shell-accent)!important;
  --luvia-rose:var(--shell-accent)!important;
  --luvia-coral:color-mix(in srgb,var(--shell-accent) 82%,#f1ad82)!important;
  --luvia-apricot:color-mix(in srgb,var(--shell-accent) 28%,#fff0df)!important;
  --trip-accent:var(--shell-accent)!important;
  --trip-accent-soft:color-mix(in srgb,var(--shell-accent) 14%,white)!important;
  --trip-accent-pale:color-mix(in srgb,var(--shell-accent) 7%,white)!important;
}

/* Aktionsflächen, aktive Tabs, Badges und farbige Verlaufsflächen folgen der Reisefarbe. */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  .primary-button,.cta,.map-button,.route-button,.restaurant-link,.restaurant-map,
  .gallery-upload,.reminder-add button,.travel-book-create,.review-button,
  [class*="primary-btn"],[class*="accent-button"],[class*="route-btn"],[class*="map-btn"]
){
  background:linear-gradient(135deg,color-mix(in srgb,var(--shell-accent) 92%,white),color-mix(in srgb,var(--shell-accent) 76%,#536a7c))!important;
  border-color:color-mix(in srgb,var(--shell-accent) 34%,transparent)!important;
  color:#fff!important;
}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  .is-active,.active,[aria-selected="true"],[aria-pressed="true"],.selected
):is(button,.tab,.chip,[class*="tab"],[class*="chip"]){
  background:color-mix(in srgb,var(--shell-accent) 88%,#4b5f72)!important;
  border-color:color-mix(in srgb,var(--shell-accent) 42%,transparent)!important;
  color:#fff!important;
}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  .eyebrow,.kicker,[class*="eyebrow"],[class*="kicker"],[class*="badge"],[class*="tag"]
){
  color:color-mix(in srgb,var(--shell-accent) 78%,#314b60)!important;
}

/* Große farbige Hinweis-/Hero-Karten: Akzentfarbe mit lesbarer Schrift statt Fremdfarben. */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  .assistant-tip,.language-feature,.language-highlight,.review-hero,.closing-hero,
  [class*="feature-card"],[class*="hero-card"],[class*="highlight-card"]
){
  background:linear-gradient(145deg,color-mix(in srgb,var(--shell-accent) 86%,#394e61),color-mix(in srgb,var(--shell-accent) 67%,#263d51))!important;
  border-color:color-mix(in srgb,var(--shell-accent) 38%,transparent)!important;
}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  .assistant-tip,.language-feature,.language-highlight,.review-hero,.closing-hero,
  [class*="feature-card"],[class*="hero-card"],[class*="highlight-card"]
) :is(h1,h2,h3,h4,p,strong,small,span){color:#fff!important}

/* Sanfte Flächen und Umrandungen erhalten nur einen Hauch der Reise-Akzentfarbe. */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  .app-section,.day-group,.highlight-section,.travel-assistant,.live-moments,.travel-apps-section,
  .language-coach,.budget-section,.gallery-section,.photo-spots-section,.memories-section,
  .travel-book-section,.review-section
){
  border-color:color-mix(in srgb,var(--shell-accent) 13%,rgba(48,68,82,.08))!important;
}
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]) .luvia-screen-content :is(
  [class*="soft"],[class*="pale"],[class*="notice"],[class*="summary"]
){
  border-color:color-mix(in srgb,var(--shell-accent) 20%,rgba(48,68,82,.08))!important;
}

/* Desktop: weiße Opener-Fläche exakt in der Breite der eigentlichen App-Seite. Mobile bleibt unverändert. */
@media(min-width:900px){
  .luvia-module-intro{
    inset:auto!important;
    left:50%!important;
    top:86px!important;
    bottom:100px!important;
    width:min(1120px,calc(100vw - 24px))!important;
    transform:translateX(-50%)!important;
    border-radius:var(--shell-radius)!important;
    overflow:hidden!important;
  }
  .luvia-module-intro::before{
    inset:0!important;
    border-radius:var(--shell-radius)!important;
    background:rgba(255,255,255,.975)!important;
  }
}

/* ===== Luvia 8.1 · verlässliche Modulübergänge und echte Reisefarben ===== */
/* Der Opener ist eine vollständig deckende Bühne. Das vorbereitete Modul kann
   darunter layouten, scheint aber bis zum Fade-out niemals hindurch. */
.luvia-module-intro{
  background:var(--intro-module-surface,#fff)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  opacity:0;
  transition:opacity .34s ease,visibility .34s ease!important;
}
.luvia-module-intro.is-visible{opacity:1!important}
.luvia-module-intro.is-leaving{opacity:0!important}
.luvia-app-screen.is-preparing{
  display:block!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
}
.luvia-app-screen.is-under-intro{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:none!important;
  filter:none!important;
  transition:none!important;
}

/* Reisefarbe ist die einzige interaktive Modulfarbe. Die Regeln liegen bewusst
   im Shell-Layer, damit alte und neue V2-Inhalte identisch reagieren. */
html.luvia-shell-active .luvia-app-screen:not([data-screen="dashboard"]){
  --accent:var(--shell-accent)!important;
  --rose:var(--shell-accent)!important;
  --module-accent:var(--shell-accent)!important;
  --memory-accent:var(--shell-accent)!important;
  --weather-accent:var(--shell-accent)!important;
  --route-accent:var(--shell-accent)!important;
  --card-accent:var(--shell-accent)!important;
  --language-accent:var(--shell-accent)!important;
  --budget-accent:var(--shell-accent)!important;
  --gallery-accent:var(--shell-accent)!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
  .primary,.primary-btn,.accent-button,.route-btn,.route-button,.map-btn,.map-button,
  .restaurant-link,.restaurant-map,.memory-add-button,.gallery-upload,.gallery-primary,
  .review-button,.book-button,.assistant-primary,.live-primary,.travel-button,
  [data-primary-action],[class*="primary-button"],[class*="accent-btn"]
){
  background:linear-gradient(135deg,color-mix(in srgb,var(--shell-accent) 92%,white),color-mix(in srgb,var(--shell-accent) 78%,#40566a))!important;
  border-color:color-mix(in srgb,var(--shell-accent) 40%,transparent)!important;
  color:var(--luvia-accent-contrast,#fff)!important;
  box-shadow:0 12px 28px color-mix(in srgb,var(--shell-accent) 22%,transparent)!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
  .eyebrow,.kicker,.tag,.badge,.pill,.chip,.section-label,.date-pill,
  [class*="eyebrow"],[class*="kicker"],[class*="badge"],[class*="pill"],[class*="tag"]
){
  background:color-mix(in srgb,var(--shell-accent) 12%,white)!important;
  border-color:color-mix(in srgb,var(--shell-accent) 22%,transparent)!important;
  color:color-mix(in srgb,var(--shell-accent) 76%,#294357)!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
  .tip-card,.feature-card.is-accent,.assistant-tip,.language-feature,.review-hero,
  .restaurant-card.is-featured,.memory-progress,.route-card,.day-date-banner,
  [class*="accent-card"],[class*="highlight-card"]
){
  border-color:color-mix(in srgb,var(--shell-accent) 24%,rgba(45,63,77,.08))!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
  .tip-card,.assistant-tip,.language-feature,[class*="accent-card"]
){
  background:linear-gradient(145deg,color-mix(in srgb,var(--shell-accent) 88%,#33495b),color-mix(in srgb,var(--shell-accent) 66%,#253a4b))!important;
  color:var(--luvia-accent-contrast,#fff)!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
  .tip-card,.assistant-tip,.language-feature,[class*="accent-card"]
) :is(h1,h2,h3,h4,strong,p,span,small){color:inherit!important}
html.luvia-shell-active .luvia-accent-normalized :is(
  .memory-check-icon,.module-icon,.feature-icon,.photo-icon,.language-icon,
  [class*="icon-wrap"],[class*="icon-box"]
){
  background:color-mix(in srgb,var(--shell-accent) 11%,white)!important;
  border-color:color-mix(in srgb,var(--shell-accent) 18%,transparent)!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
  input[type="checkbox"]:checked,input[type="radio"]:checked,.is-active,.active
):not(.luvia-app-screen){accent-color:var(--shell-accent)}
html.luvia-shell-active .luvia-accent-normalized :is(a,button):focus-visible{
  outline:3px solid color-mix(in srgb,var(--shell-accent) 34%,transparent)!important;
  outline-offset:3px;
}

/* ===== Luvia 8.2 · nahtloser Vollflächenwechsel + vollständige Akzentfamilie ===== */
/* Beim Öffnen ist die Bühne sofort vollständig deckend. Nur die Karte animiert.
   Beim Schließen blendet die komplette Bühne aus und gibt das fertige Modul frei. */
.luvia-module-intro{
  background:rgba(255,255,255,.995)!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .38s ease,visibility 0s linear .38s!important;
}
.luvia-module-intro[hidden]{display:none!important}
.luvia-module-intro.is-visible:not([hidden]){opacity:1!important;visibility:visible!important;pointer-events:auto!important;transition-delay:0s!important}
.luvia-module-intro.is-leaving{opacity:0!important;visibility:hidden!important}
.luvia-module-intro-card{opacity:0;transform:translateY(8px) scale(.97)!important;transition:opacity .26s ease,transform .36s cubic-bezier(.2,.86,.24,1)!important}
.luvia-module-intro.is-visible .luvia-module-intro-card{opacity:1;transform:none!important}
.luvia-module-intro.is-leaving .luvia-module-intro-card{opacity:0;transform:translateY(-4px) scale(.985)!important}

@media(min-width:900px){
  .luvia-module-intro{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    transform:none!important;
    border-radius:0!important;
    padding:clamp(24px,4vw,64px)!important;
    z-index:2147482000!important;
    overflow:hidden!important;
  }
  .luvia-module-intro::before{
    inset:0!important;
    border-radius:0!important;
    background:rgba(255,255,255,.995)!important;
    box-shadow:none!important;
  }
  .luvia-module-intro-card{width:min(430px,34vw);min-width:340px}
}

/* Wiederverwendbare, lesbare Akzentfamilie für sämtliche alten und V2-Module. */
html.luvia-shell-active .luvia-accent-normalized{
  --module-accent:var(--shell-accent)!important;
  --module-accent-strong:color-mix(in srgb,var(--shell-accent) 84%,#314b60)!important;
  --module-accent-deep:color-mix(in srgb,var(--shell-accent) 58%,#243b4e)!important;
  --module-accent-soft:color-mix(in srgb,var(--shell-accent) 13%,white)!important;
  --module-accent-faint:color-mix(in srgb,var(--shell-accent) 6%,white)!important;
  --module-accent-ink:color-mix(in srgb,var(--shell-accent) 70%,#294357)!important;
}
html.luvia-shell-active .luvia-accent-normalized :is(
 .travel-apps-eyebrow,.app-recommendation,.app-store-kicker,.language-coach-eyebrow,
 .language-coach-badge,.day-closure-kicker,.day-closure-sync,.memory-sync,.memory-eyebrow,
 .travel-book-eyebrow,.review-eyebrow,.day-ribbon,.route-card [class*="label"]
){background:var(--module-accent-soft)!important;color:var(--module-accent-ink)!important;border-color:color-mix(in srgb,var(--shell-accent) 24%,transparent)!important}

/* Must-have Apps */
html.luvia-shell-active .luvia-accent-normalized .travel-app-point::before{background:var(--module-accent-soft)!important;color:var(--module-accent-ink)!important}
html.luvia-shell-active .luvia-accent-normalized .app-store-button{background:white!important;border:1px solid color-mix(in srgb,var(--shell-accent) 24%,#d8dde1)!important;color:#253c50!important}
html.luvia-shell-active .luvia-accent-normalized .app-store-kicker{display:inline-flex!important;padding:4px 9px!important;border-radius:999px!important}
html.luvia-shell-active .luvia-accent-normalized .app-why-button{background:var(--module-accent-faint)!important;border-color:color-mix(in srgb,var(--shell-accent) 22%,#d8dde1)!important;color:var(--module-accent-ink)!important}
.apple-mark{display:inline-grid!important;place-items:center;width:27px;height:32px;flex:0 0 27px;color:#111!important}
.luvia-apple-logo{display:block;width:25px;height:30px;fill:currentColor}

/* Sprachcoach: kein systemabhängiges Flaggen-Emoji mehr. */
.luvia-language-flag{display:inline-block;width:25px;height:17px;border-radius:3px;box-shadow:0 0 0 1px rgba(39,57,70,.12);vertical-align:-2px;flex:0 0 auto}
.flag-fr{background:linear-gradient(90deg,#1b4ea3 0 33.333%,#fff 33.333% 66.666%,#ef3340 66.666%)}
.flag-gb{background:#21468b;position:relative;overflow:hidden;background-image:linear-gradient(28deg,transparent 42%,#fff 42% 48%,#c8102e 48% 52%,#fff 52% 58%,transparent 58%),linear-gradient(-28deg,transparent 42%,#fff 42% 48%,#c8102e 48% 52%,#fff 52% 58%,transparent 58%),linear-gradient(90deg,transparent 40%,#fff 40% 60%,transparent 60%),linear-gradient(transparent 34%,#fff 34% 66%,transparent 66%),linear-gradient(90deg,transparent 45%,#c8102e 45% 55%,transparent 55%),linear-gradient(transparent 42%,#c8102e 42% 58%,transparent 58%)}
html.luvia-shell-active .luvia-accent-normalized [data-coach-language],
html.luvia-shell-active .luvia-accent-normalized [data-coach-mode],
html.luvia-shell-active .luvia-accent-normalized .language-category{border-color:color-mix(in srgb,var(--shell-accent) 23%,#d8dde1)!important;color:var(--module-accent-ink)!important}
html.luvia-shell-active .luvia-accent-normalized [data-coach-language].active,
html.luvia-shell-active .luvia-accent-normalized [data-coach-mode].active,
html.luvia-shell-active .luvia-accent-normalized .language-category.active{background:var(--module-accent-strong)!important;color:var(--luvia-accent-contrast,#fff)!important}
html.luvia-shell-active .luvia-accent-normalized .language-coach :is(.language-feature,.language-highlight){background:linear-gradient(145deg,var(--module-accent-strong),var(--module-accent-deep))!important}

/* Restaurants, Routen und Reisetage */
html.luvia-shell-active .luvia-accent-normalized .restaurant-card{background:linear-gradient(145deg,color-mix(in srgb,var(--shell-accent) 78%,white),var(--module-accent-deep))!important;border-color:color-mix(in srgb,var(--shell-accent) 32%,transparent)!important}
html.luvia-shell-active .luvia-accent-normalized .restaurant-card :is(h2,h3,.restaurant-time,.restaurant-copy,.restaurant-weekday,.restaurant-date-value){color:var(--luvia-accent-contrast,#fff)!important}
html.luvia-shell-active .luvia-accent-normalized .restaurant-card-header{background:color-mix(in srgb,var(--shell-accent) 52%,#30495d)!important}
html.luvia-shell-active .luvia-accent-normalized .restaurant-link{background:var(--module-accent-strong)!important;color:var(--luvia-accent-contrast,#fff)!important}
html.luvia-shell-active .luvia-accent-normalized .route-card{--accent:var(--shell-accent)!important;border-color:color-mix(in srgb,var(--shell-accent) 20%,#ddd)!important}
html.luvia-shell-active .luvia-accent-normalized .route-card :is(.route-button,.route-map-button,a[class*="route"]){background:var(--module-accent-strong)!important;color:var(--luvia-accent-contrast,#fff)!important}
html.luvia-shell-active .luvia-accent-normalized .day-ribbon{background:linear-gradient(120deg,var(--module-accent-soft),color-mix(in srgb,var(--shell-accent) 22%,white))!important}

/* Budget, Galerie, Fotospots, Erinnerungen, Tagesabschluss, Review, Reisebuch */
html.luvia-shell-active .luvia-accent-normalized :is(.budget-add,.budget-add-button,.gallery-upload,.gallery-save,.photo-route,.memory-add-button,.reminder-add button,.day-closure button.primary,.review-button,.travel-book-create){background:var(--module-accent-strong)!important;color:var(--luvia-accent-contrast,#fff)!important;border-color:transparent!important}
html.luvia-shell-active .luvia-accent-normalized .budget-ring{background:conic-gradient(var(--shell-accent) var(--budget-progress,0%),color-mix(in srgb,var(--shell-accent) 8%,#e9eef1) 0)!important}
html.luvia-shell-active .luvia-accent-normalized .photo-route{border-color:color-mix(in srgb,var(--shell-accent) 28%,transparent)!important}
html.luvia-shell-active .luvia-accent-normalized .photo-spot-icon,
html.luvia-shell-active .luvia-accent-normalized .photo-spot-camera{background:var(--module-accent-soft)!important;border-color:color-mix(in srgb,var(--shell-accent) 20%,transparent)!important}
html.luvia-shell-active .luvia-accent-normalized .memory-check{--memory-accent:var(--shell-accent)!important}
html.luvia-shell-active .luvia-accent-normalized .memory-progress{background:linear-gradient(135deg,var(--module-accent-faint),var(--module-accent-soft))!important;border-color:color-mix(in srgb,var(--shell-accent) 22%,transparent)!important}
html.luvia-shell-active .luvia-accent-normalized .day-closure{--closure-accent:var(--shell-accent)!important;border-color:color-mix(in srgb,var(--shell-accent) 24%,transparent)!important}
html.luvia-shell-active .luvia-accent-normalized :is(.review-section,.review-hero){background:linear-gradient(135deg,var(--module-accent-deep),color-mix(in srgb,var(--shell-accent) 54%,#352b38))!important}
html.luvia-shell-active .luvia-accent-normalized :is(.review-section,.review-hero) :is(h1,h2,h3,p,span,strong,small){color:#fff!important}
html.luvia-shell-active .luvia-accent-normalized .travel-book-create{box-shadow:0 12px 28px color-mix(in srgb,var(--shell-accent) 22%,transparent)!important}
