/* Disce Expedition: shared visual language, preserving existing content/editor layouts. */
:root{--app:#f6f5ef;--card:#fffefa;--card-2:#edf0e4;--ink:#183e39;--muted:#5b7068;--line:#dbe3d6;--gold:#22664e;--gold-2:#94b978;--gold-tint:#e1edce;--porphyry:#74608e;--laurel:#397754;--laurel-t:#e0edd5;--terra:#ac5338;--terra-t:#f5e2d7;--font-display:system-ui,-apple-system,"Segoe UI",sans-serif;--shadow:rgba(24,62,57,.09);--shadow-lg:rgba(24,62,57,.16)}
@media(prefers-color-scheme:dark){:root{--app:#132721;--card:#1d332b;--card-2:#294336;--ink:#edf3e1;--muted:#b3c3b2;--line:#3d5645;--gold:#b6d594;--gold-2:#6e9c69;--gold-tint:#344f37;--porphyry:#c4afdb;--laurel:#99c389;--laurel-t:#344d34;--terra:#efb493;--terra-t:#503d32}}
/* Dritte Abschnittsfarbe (blau, "Anwenden") - hell/dunkel im selben Stil wie laurel/terra. */
:root{--sky:#3b6ea5;--sky-t:#dde8f5}
@media(prefers-color-scheme:dark){:root{--sky:#8fb8e8;--sky-t:#233247}}
/* Logo (V11, E5): dunkles Quadrat mit "d" bleibt in beiden Modi gleich – kein Theme-Token, damit der Kontrast fix bleibt. */
:root{--brand-sq:#183e39;--brand-lime:#d5f28a}
.brand-logo{display:inline-flex;align-items:center;gap:.06em;font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;line-height:1}
.brand-logo .brandmark{width:1.5em;height:1.5em;border-radius:.42em;background:var(--brand-sq);color:var(--brand-lime);display:grid;place-items:center;font-size:1em;flex-shrink:0;box-shadow:0 0 0 1px rgba(213,242,138,.35)}
.brand-logo .brandtext{color:var(--ink)}
.brand-logo .brand-dot{color:var(--gold-2)}
body{font-size:15px}.app-frame{box-shadow:none}.view{padding:24px;gap:18px}h1,h2,h3{letter-spacing:-.035em}.btn{border-radius:13px;min-height:44px;box-shadow:none}.btn-gold{color:var(--card);background:var(--gold);box-shadow:none}.btn-solid{box-shadow:none}.btn-ghost{background:var(--card)}.topbar{padding:17px 24px;background:var(--card)}.topbar .brand{font-family:var(--font-ui);font-size:24px;letter-spacing:-.055em}.topbar .brand .ver{font-size:10px;letter-spacing:0;margin-left:8px}.card{border-radius:20px;padding:22px}.tile{min-height:130px;padding:21px;border-radius:20px}.tile .name{font-size:18px}.tile .meta{font-size:12px}.tabbar{gap:3px}.tabbar button{min-height:51px;border-radius:12px;padding:8px 5px;font-size:12px}.tabbar button.on{background:var(--gold-tint)}.tabbar .ic{line-height:1.1}.topbar .hearts{display:none}.progress{height:8px}.boot{font-family:var(--font-ui)}
.expedition-heading{margin:8px 0 12px}.expedition-heading h1{font-size:clamp(29px,3vw,45px);line-height:1.14}.expedition-heading p{color:var(--muted);line-height:1.7;font-size:14px;max-width:680px}.expedition-heading .sectlabel{display:block;margin-bottom:13px;color:var(--gold)}.expedition-home{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.expedition-home>*{min-width:0}.expedition-hero{background:var(--gold-tint);border-radius:24px;padding:30px;display:grid;grid-template-columns:minmax(0,1fr) 200px;align-items:center;gap:18px;border:1px solid var(--line)}.expedition-hero h2{font-size:32px;margin:12px 0}.expedition-hero p{line-height:1.65;font-size:14px;margin-bottom:22px}.expedition-hero .btn{margin-right:8px}.expedition-stack{display:grid;gap:18px;align-content:start}.expedition-stack .card h3{margin-bottom:11px}.expedition-stack .card p{font-size:13px;line-height:1.6;color:var(--muted)}.expedition-section{margin:24px 0 15px;font-size:22px}.expedition-quick{display:grid;grid-template-columns:1fr 1fr;gap:14px}.expedition-quick button{text-align:left;border:1px solid var(--line);border-radius:17px;padding:20px;background:var(--card);color:var(--ink);cursor:pointer;min-height:95px}.expedition-quick b{display:block;margin-bottom:7px;font-size:15px}.expedition-quick small{font-size:12px;color:var(--muted)}.link-button{border:0;background:none;color:var(--gold);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:4px;min-height:42px;padding:8px 4px;font-size:13px}.expedition-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.expedition-controls>.field{flex:1;min-width:130px}.expedition-controls select,.expedition-controls input{min-height:44px}.expedition-empty{border:1px dashed var(--line);border-radius:19px;padding:28px;text-align:center}.expedition-empty p{line-height:1.6;color:var(--muted)}.library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:16px}.library-card{padding:24px;display:grid;gap:13px;align-content:start}.library-card h3{font-size:24px}.library-card .library-symbol{font-size:36px}.library-card p{margin:0;line-height:1.6;color:var(--muted);font-size:13px}.library-actions{display:flex;gap:8px;flex-wrap:wrap}.expedition-pill{padding:6px 10px;border-radius:30px;background:var(--card-2);color:var(--muted);font-size:11px;font-weight:700;display:inline-block}.expedition-status{font-size:12px;line-height:1.6;color:var(--muted)}
disce-lumo{display:block;width:100%;height:200px;min-width:0}.lumo-visual{position:relative;height:100%;width:100%}.lumo-model-slot{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .18s ease}.lumo-loaded .lumo-model-slot{opacity:1}.lumo-model-slot model-viewer{display:block;width:100%;height:100%;background:transparent;--progress-bar-height:0px;--progress-bar-color:transparent}.lumo-model-slot model-viewer::part(default-progress-bar){display:none}.lumo-model-slot [slot="progress-bar"],.lumo-model-slot [slot="poster"]{display:none!important}.lumo-compact{height:145px}.lumo-speech{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:21px;line-height:1.7;font-size:14px;position:relative}.lumo-speech p{margin:0 0 17px}.lumo-speech:before{content:'';position:absolute;top:-7px;left:28px;width:12px;height:12px;background:var(--card);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}.lumo-help{padding:20px;border-radius:19px;background:var(--card-2);border:1px solid var(--line)}.lumo-help-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.lumo-help small{display:block;line-height:1.6;margin-top:11px;color:var(--muted)}.lumo-welcome{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:15px;border:0;border-radius:0;overflow:hidden;background:transparent;color:var(--ink);box-shadow:none}.lumo-welcome[open]{display:grid;place-items:center}.welcome-card{position:relative;z-index:4;width:min(850px,100%);max-height:calc(100dvh - 30px);overflow:auto;border:1px solid var(--line);border-radius:28px;padding:32px;background:var(--app);box-shadow:0 25px 90px #0004;display:grid;grid-template-columns:250px minmax(0,1fr);gap:27px;align-items:center}.lumo-welcome::backdrop{background:#10271ce0;backdrop-filter:blur(5px)}.lumo-welcome.departed::backdrop{background:transparent;backdrop-filter:none}.welcome-stage disce-lumo{height:310px}.welcome-copy h2{font-size:31px;line-height:1.2;margin:13px 0 23px}.welcome-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.welcome-copy .lumo-speech:before{display:none}.lumo-profile{display:grid;grid-template-columns:200px 1fr;gap:20px;align-items:center}.lumo-profile label{display:flex;gap:10px;align-items:center;margin:14px 0;font-size:14px}.lumo-profile input{width:20px;height:20px;accent-color:var(--gold)}.lumo-settings-actions{display:flex;gap:10px;flex-wrap:wrap}.onboarding-note{font-size:12px;color:var(--muted);line-height:1.6}
.mission-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;align-items:start}.mission-layout>*{min-width:0}.mission-task{padding:28px}.mission-task h2{font-size:28px;line-height:1.22;margin:21px 0 12px}.mission-task .question{font-size:27px;background:var(--card-2);padding:23px;border-radius:16px;line-height:1.5}.mission-instruction{font-size:14px;color:var(--muted);line-height:1.65}.mission-bank,.mission-slots{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;padding:15px;margin-top:16px;min-height:65px}.mission-slots{border:2px dashed var(--line);border-radius:16px;min-height:90px;align-items:center;background:var(--app)}.mission-word{padding:12px 16px;border:1px solid var(--line);border-bottom:3px solid var(--line);border-radius:11px;font:inherit;font-size:16px;background:var(--card);color:var(--ink);cursor:pointer}.mission-word:disabled{opacity:.4;cursor:default}.mission-options{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:20px 0}.mission-options button{min-height:68px}.mission-answer{width:100%;min-height:95px;border:2px solid var(--line);border-radius:13px;padding:16px;font:inherit;font-size:16px;color:var(--ink);background:var(--card)}.mission-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px}.mission-feedback{padding:17px;border-radius:14px;background:var(--terra-t);margin-top:18px;font-size:14px;line-height:1.65}.mission-feedback.good{background:var(--laurel-t)}.mission-feedback strong{display:block}.mission-summary{text-align:center;padding:30px}.mission-summary h1{font-size:34px}.mission-summary p{line-height:1.7;color:var(--muted)}.mission-summary disce-lumo{height:220px}.mission-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:22px 0}.mission-metrics>div{padding:18px;background:var(--card-2);border-radius:15px}.mission-metrics b{display:block;font-size:27px}.mission-metrics span{font-size:12px;color:var(--muted)}.mission-notebook{border:1px solid var(--line);padding:17px;border-radius:14px;text-align:left;font-size:14px;margin:20px 0}.mission-history-item{padding:16px 0;border-bottom:1px solid var(--line)}.mission-history-item b{display:block;margin-bottom:7px}.mission-history-item small{font-size:12px;color:var(--muted)}
.tabbar-brand{display:none}
@media(min-width:1100px){.app-frame{display:grid;grid-template-columns:205px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.topbar{grid-column:2;grid-row:1}.tabbar{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;justify-content:flex-start;padding:29px 15px;border-top:0;border-right:1px solid var(--line);gap:8px}.tabbar-brand{display:flex;padding:0 12px 25px}.tabbar-brand .brand-logo{font-size:22px}.tabbar button{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;font-size:13px;min-height:46px;padding:12px}.view{grid-column:2;grid-row:2;padding:30px 36px}.offline-banner{grid-column:2;grid-row:1;align-self:end;z-index:11}.lay-narrow:not(.lay-aside) .view>*{max-width:750px}.lay-grid .view:not(.zoned){display:flex}.expedition-wide .view>*{max-width:none;width:100%}}
/* Startseite (V11 Paket 2): Fach-Pillen, Tagesziel-Ring, Lumo-Karte, Fundstück-Platzhalter. */
.subject-tabs{display:flex;gap:6px;padding:5px;background:var(--card-2);border-radius:14px;flex-wrap:wrap}
.subject-tabs button{padding:9px 14px;border-radius:10px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;min-height:38px}
.subject-tabs button[aria-pressed=true]{background:var(--card);box-shadow:0 2px 8px var(--shadow)}
.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0 8px}
.mini-card{display:flex;gap:12px;text-align:left;padding:18px;border:1px solid var(--line);border-radius:17px;background:var(--card);cursor:pointer;color:var(--ink)}
.mini-card:hover{border-color:var(--gold)}
.mini-icon{display:grid;place-items:center;width:40px;height:42px;background:var(--gold-tint);border-radius:12px;font-size:20px;flex-shrink:0}
.mini-card b{display:block;font-size:13px;margin-bottom:4px}
.mini-card small{font-size:12px;color:var(--muted)}
.home-side{display:grid;gap:16px;align-content:start}
.buddy-card{text-align:center}
.buddy-card disce-lumo{height:150px}
.goal-card .row{display:flex;align-items:center;gap:14px}
.goal-ring{width:54px;height:54px;border-radius:50%;background:conic-gradient(var(--gold) var(--goal,0%),var(--card-2) 0);display:grid;place-items:center;flex-shrink:0}
.goal-ring span{display:grid;place-items:center;width:43px;height:43px;background:var(--card);border-radius:50%;font-size:12px;font-weight:700}
.tiny-dots{display:flex;gap:6px;margin-top:14px}
.tiny-dots span{height:7px;border-radius:5px;background:var(--card-2);flex:1}
.tiny-dots span.filled{background:var(--gold)}
.souvenir-card{background:var(--laurel-t)}
.souvenir-card .mini-icon{background:var(--card)}
/* Lumo-Chat (V11 Paket 4). Eigene Seitenstruktur (chat-layout): Kopf + Verlaufsstift, darunter
   entweder die zentrierte Landing-Ansicht oder das Gespräch, Eingabe unten am Bildschirmrand
   klebend (position:sticky im scrollenden .view - siehe expedition.css .chat-layout .view). */
.chat-layout .view{display:flex;flex-direction:column;padding:0!important}
.chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);position:relative;flex:none}
.chat-header-title{font-weight:800;font-size:15px}
.chat-page{flex:1;display:flex;flex-direction:column;min-height:0;padding:0 20px 16px}
.chat-landing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:20px}
.chat-landing-avatar{width:120px;height:132px;display:block}
.chat-landing-avatar disce-lumo{width:100%;height:100%}
.chat-landing h1{font-size:24px;margin:0}
.chat-suggestions{display:flex;flex-direction:column;gap:8px;width:100%;max-width:360px}
.chat-suggestion{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:16px;padding:12px 16px;font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
.chat-suggestion:hover{border-color:var(--gold)}
.chat-window{flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding:20px 0}
.chat-msg{display:flex;gap:10px;align-items:flex-end;max-width:88%}
.chat-msg.kind{margin-left:auto;flex-direction:row-reverse}
.chat-avatar{width:32px;height:36px;flex-shrink:0}
.chat-avatar disce-lumo{width:100%;height:100%}
.chat-bubble{background:var(--card-2);border:1px solid var(--line);border-radius:18px 18px 18px 4px;padding:11px 15px}
.chat-msg.kind .chat-bubble{background:var(--gold);border-color:var(--gold);border-radius:18px 18px 4px 18px}
.chat-msg.kind .chat-bubble p{color:var(--card)}
.chat-bubble p{margin:0;line-height:1.55;font-size:14px;white-space:pre-wrap;color:var(--ink)}
.chat-attach{display:block;font-size:11px;opacity:.75;margin-bottom:4px}
.chat-thinking-bubble{display:flex;gap:4px;padding:14px 16px}
.chat-thinking-bubble span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:chat-bounce 1.1s infinite ease-in-out}
.chat-thinking-bubble span:nth-child(2){animation-delay:.15s}
.chat-thinking-bubble span:nth-child(3){animation-delay:.3s}
@keyframes chat-bounce{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}
.chat-form{flex:none;position:sticky;bottom:0;background:var(--app);padding-top:8px}
.chat-input-row{display:flex;align-items:flex-end;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:6px 8px 6px 14px}
.chat-input-row textarea{flex:1;resize:none;border:0;background:transparent;min-height:34px;max-height:120px;padding:8px 0;font:inherit;font-size:14px;color:var(--ink)}
.chat-input-row textarea:focus{outline:0}
.chat-send{background:var(--gold);color:var(--card);border-radius:50%;width:38px;height:38px;flex-shrink:0}
.chat-send:disabled{opacity:.5}
#chat-attach-preview:not(:empty){margin:0 0 8px 4px}
.chat-history-host{position:relative}
.chat-history-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(320px,86vw);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px var(--shadow-lg);z-index:20;overflow:hidden}
.chat-history-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.chat-history-new{width:calc(100% - 24px);margin:10px 12px;background:var(--gold-tint);color:var(--ink);border-radius:12px;padding:10px;font:inherit;font-size:13px;font-weight:700;text-align:left}
.chat-history-list{max-height:300px;overflow-y:auto}
.chat-history-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;cursor:pointer;border-top:1px solid var(--line)}
.chat-history-item:hover,.chat-history-item.on{background:var(--card-2)}
.chat-history-item span{min-width:0;display:block}
.chat-history-item b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-history-item small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-attachment{display:flex;align-items:center;gap:10px;max-width:100%;padding:8px;margin-bottom:8px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer;font:inherit;font-size:12px;overflow-wrap:anywhere}
.chat-attachment img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:6px;flex:none}.chat-attachment small{display:block;color:var(--muted);margin-top:5px}.chat-pdf-icon{font-size:32px}.chat-pending{display:flex;align-items:center;gap:8px}.chat-pending .chat-attachment{margin:0;flex:1}.chat-error{color:var(--ink);background:var(--terra-t);border-radius:12px;padding:12px;font-size:13px;line-height:1.6}.chat-thinking-label{font-size:12px;color:var(--muted)}
.chat-preview-dialog{width:min(1000px,95vw);height:min(900px,92dvh);padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);overflow:hidden}.chat-preview-dialog[open]{display:flex;flex-direction:column;gap:12px}.chat-preview-dialog::backdrop{background:#071b22d9}.chat-preview-head{display:flex;justify-content:space-between;align-items:center;flex:none}.chat-preview-dialog>img{width:100%;min-height:0;flex:1;object-fit:contain}.chat-preview-dialog iframe{width:100%;flex:1;min-height:0;border:0;background:#fff;border-radius:8px}.chat-preview-dialog p{font-size:12px;line-height:1.5;margin:0}.chat-preview-dialog a{color:var(--gold)}
.chat-preview-viewport{flex:1;min-height:0;overflow:auto;touch-action:none;overscroll-behavior:contain;user-select:none}.chat-preview-stage{position:relative}.chat-preview-viewport img{position:absolute;display:block;object-fit:contain;max-width:none;pointer-events:none}.chat-preview-viewport.is-zoomed{cursor:grab}.chat-preview-viewport.is-dragging{cursor:grabbing}.chat-preview-tools{display:flex;align-items:center;justify-content:center;gap:8px;flex:none}.chat-preview-tools button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--card-2);color:var(--ink);cursor:pointer}.chat-preview-tools button[data-zoom="in"],.chat-preview-tools button[data-zoom="out"]{font-size:24px;line-height:1}.chat-preview-tools button:disabled{opacity:.4;cursor:default}.chat-preview-scale{min-width:52px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.chat-preview-hint{flex:none;color:var(--muted)}
@media(max-width:480px){.chat-preview-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:12px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom));border-radius:0}.chat-preview-tools{gap:6px}}
.icon-btn.danger{opacity:.6}
.icon-btn.danger:hover{opacity:1}
@media(max-width:900px){.expedition-home,.mission-layout{grid-template-columns:1fr}.expedition-home .expedition-stack{grid-template-columns:1fr 1fr}.expedition-hero{grid-template-columns:minmax(0,1fr) 150px}.mission-layout .lumo-help{display:grid;grid-template-columns:90px 1fr;gap:12px}.mission-layout .lumo-help disce-lumo{height:110px;grid-row:1/4}.mission-layout .lumo-help-actions,.mission-layout .lumo-help small{grid-column:2}.mission-layout .lumo-speech:before{display:none}}
@media(max-width:600px){.view{padding:18px}.card{padding:18px}.topbar{padding:14px 18px}.topbar .brand{font-size:21px}.tabbar button{font-size:10px;padding:7px 3px}.tabbar button .ic{font-size:18px}.expedition-heading h1{font-size:31px}.expedition-hero{padding:21px;gap:7px;grid-template-columns:minmax(0,1fr) 90px}.expedition-hero h2{font-size:26px}.expedition-hero disce-lumo{height:155px}.expedition-hero .btn{font-size:13px}.expedition-home .expedition-stack{grid-template-columns:1fr}.expedition-quick{gap:10px}.expedition-quick button{padding:16px}.expedition-quick b{font-size:13px}.welcome-card{grid-template-columns:1fr;gap:0;padding:22px}.welcome-stage disce-lumo{height:175px}.welcome-copy h2{font-size:26px;margin:12px 0 17px}.welcome-controls{gap:8px}.lumo-profile{grid-template-columns:1fr}.lumo-profile disce-lumo{height:180px}.mission-task{padding:20px}.mission-task h2{font-size:25px}.mission-task .question{padding:16px;font-size:24px}.mission-options{grid-template-columns:1fr}.mission-actions{flex-wrap:wrap}.mission-actions .btn{flex:1}.mission-metrics{gap:7px}.mission-metrics>div{padding:14px 8px}.mission-summary{padding:20px}.library-grid{grid-template-columns:1fr}.mission-layout .lumo-help{grid-template-columns:70px 1fr;padding:15px}.mission-layout .lumo-help disce-lumo{height:95px}.mission-layout .lumo-speech{padding:15px;font-size:13px}}
.reduced-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.mission-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:20px}.mission-fields input{min-height:44px}

/* v57: live GLB actors in every app placement; small actors are passive inside controls. */
.lumo-icon{display:inline-block;width:1.7em;height:1.7em;vertical-align:middle;flex:none}
.brand .lumo-icon{width:31px;height:38px}.tabbar .lumo-icon{width:26px;height:29px}.greet .owl .lumo-icon{width:62px;height:72px}.boot-owl .lumo-icon{width:72px;height:86px}
.lumo-login{width:190px;height:195px;margin:0 auto 2px;flex:none}.topbar{gap:9px}.lumo-launcher{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:30px;background:var(--gold-tint);color:var(--ink);padding:4px 12px 4px 7px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;min-height:42px;white-space:nowrap}.lumo-launcher .lumo-icon{width:29px;height:33px}
disce-lumo[role=button]{cursor:pointer;border-radius:20px}disce-lumo:focus-visible,.lumo-launcher:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.lumo-help-dialog{position:relative;border:1px solid var(--line);border-radius:25px;background:var(--app);color:var(--ink);width:min(490px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:27px;overflow:auto}.lumo-help-dialog::backdrop{background:#10271caa;backdrop-filter:blur(3px)}.lumo-help-dialog h2{font-size:26px;margin:0 0 18px}.lumo-help-actor{height:170px}.lumo-help-close{position:absolute;right:15px;top:12px;z-index:2}.lumo-help-choices{display:grid;gap:10px;margin-top:17px}
.portal-night{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 55%,#28756d 0%,#113d3d 45%,#071d29 100%);transition:opacity .8s}
.portal-stars{position:absolute;inset:0;opacity:.7;background-image:radial-gradient(circle at 12% 20%,#d7f2b7 0 1px,transparent 2px),radial-gradient(circle at 76% 22%,#fff 0 1px,transparent 2px),radial-gradient(circle at 85% 65%,#bdeee2 0 2px,transparent 3px),radial-gradient(circle at 22% 76%,#fff 0 1px,transparent 2px);background-size:270px 260px,380px 310px,510px 470px,340px 310px;transition:opacity .7s}
.portal-ring{position:absolute;top:50%;left:50%;width:330px;height:330px;border:3px solid #d1ffc0;border-radius:50%;transform:translate(-50%,-50%) scale(.8);box-shadow:0 0 25px #c5ffc9,0 0 85px #85ead6,inset 0 0 35px #c8ffc5;background:radial-gradient(circle,#d6ffe711,transparent 65%);opacity:.45;transition:opacity .8s}
.portal-ring:before,.portal-ring:after{content:'';position:absolute;inset:-18px;border:1px dashed #eaffdf99;border-radius:50%;animation:portal-orbit 18s linear infinite}.portal-ring:after{inset:14px;animation-direction:reverse}
.portal-copy{position:absolute;z-index:2;top:max(50px,10vh);left:20px;right:20px;text-align:center;transition:opacity .5s}.portal-copy>span{font-size:11px;letter-spacing:.2em;color:#c0e5cd}.portal-copy h2{font-size:clamp(27px,4vw,43px);margin:13px 0 8px}.portal-copy p{font-size:14px;color:#d6ecdf}
/* v59: portrait stage leaves headroom for the raised flight pose; lumo.js drives position, scale and turn. */
.portal-stage{position:fixed;z-index:3;left:50%;top:50%;width:720px;height:960px;transform:translate(-50%,-50%) scale(.3);transform-origin:center;pointer-events:none;will-change:transform,opacity}.lumo-portal .portal-stage disce-lumo{height:960px;width:720px}
.portal-skip{position:absolute;z-index:5;bottom:max(35px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);white-space:nowrap;background:#ffffffed!important;color:#174e43!important}
.lumo-portal[data-phase=approach] .portal-ring,.lumo-portal[data-phase=turn] .portal-ring{opacity:1}
.lumo-portal[data-phase=portal] .portal-ring{animation:portal-open 1s .6s ease-in forwards;opacity:1}.lumo-portal[data-phase=portal] .portal-copy{opacity:0}
.lumo-portal[data-phase=landing] .portal-night,.lumo-portal[data-phase=landing] .portal-stars,.lumo-portal[data-phase=landing] .portal-ring,.lumo-portal[data-phase=landing] .portal-copy{opacity:0}.lumo-portal[data-phase=landing] .portal-skip{opacity:0;pointer-events:none}
@keyframes portal-open{from{transform:translate(-50%,-50%) scale(.8)}to{transform:translate(-50%,-50%) scale(12);opacity:0}}
@keyframes portal-orbit{to{transform:rotate(360deg)}}
/* v60: portal layers live in the welcome dialog from the start (invisible, flight actor preloaded) and fade in slowly while the card leaves. */
.portal-night,.portal-stars,.portal-ring,.portal-copy{opacity:0;pointer-events:none}
.portal-night{transition:opacity 1.8s .3s ease}.portal-stars{transition:opacity 2s .6s ease}.portal-ring{transition:opacity 1.4s .9s ease}.portal-copy{color:#f3ffea;transition:opacity .9s 1.1s ease}
.lumo-portal .portal-night{opacity:1}.lumo-portal .portal-stars{opacity:.7}.lumo-portal .portal-ring{opacity:.45}.lumo-portal .portal-copy{opacity:1}
.lumo-portal[data-phase=portal] .portal-copy{transition:opacity .5s}.lumo-portal[data-phase=landing] :is(.portal-night,.portal-stars,.portal-ring,.portal-copy){transition:opacity .8s}
/* v60: Lumo sits in the bottom bar on phones and top right from tablet width up. */
/* Live Lumo fills the bar height and carries no label; the button itself is the hit area. */
.tabbar .tab-lumo{padding:0;gap:0}.tabbar .tab-lumo .ic{display:block;line-height:0;width:100%}
.tabbar .tab-lumo .lumo-tabowl{display:block;width:100%;height:58px;margin-top:-6px}
@media(min-width:720px){.tabbar .tab-lumo{display:none}}
@media(max-width:719px){.lumo-launcher{display:none}}
/* v60 performance: the flight actor only enters the layout (and starts rendering) for the flight,
   and phones get a smaller stage plus no full-screen blur behind the greeting. */
.lumo-welcome:not(.lumo-flight) .portal-stage{display:none}
@media(max-width:600px){.lumo-welcome::backdrop{backdrop-filter:none}.portal-stage{width:480px;height:660px}.portal-stage disce-lumo,.lumo-portal .portal-stage disce-lumo{width:480px;height:660px}}
/* v60: Lumo tips in learning path / free learning, neutral profile icon. */
.lumo-tipbar{display:grid;gap:8px;margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--card-2)}
.lumo-tip-btn{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:40px}.lumo-tip-btn .lumo-icon{width:26px;height:30px}
.lumo-tip-text{font-size:14px;line-height:1.6}.lumo-tip-text p{margin:0 0 6px}.lumo-tip-text details{font-size:13px;color:var(--muted);margin-bottom:6px}.lumo-tip-text small{display:block;font-size:11px;color:var(--muted)}
/* Own class, NOT the existing .avatar of the user lists - that one is a 40px circle with its own
   background and would show through behind the profile symbol. */
.profile-ic{display:inline-block;width:26px;height:26px;vertical-align:middle}
.greet .owl.profilepic{font-size:0;line-height:0}.greet .owl.profilepic .profile-ic{display:block;width:58px;height:58px}
.lumo-welcome:not(.lumo-portal) .portal-skip{display:none}.portal-stage{z-index:6}.portal-skip{z-index:7}.portal-stage disce-lumo{height:960px;width:720px}
@media(max-width:600px){.topbar{gap:5px}.topbar .brand{font-size:18px}.brand .lumo-icon{width:25px;height:31px}.lumo-launcher{padding:3px 9px 3px 4px;font-size:11px;gap:3px}.lumo-launcher .lumo-icon{width:24px;height:30px}.topbar .stat{font-size:11px}.topbar .brand .ver{margin-left:0}.lumo-help-dialog{padding:22px}.lumo-login{height:170px}.portal-copy{top:9vh}}

.app-frame.auth-frame{display:flex;flex-direction:column}.auth-frame>.view{width:100%;padding:24px;gap:16px}.auth-frame>.view>.card{max-width:450px!important}.auth-frame .lumo-login{flex:none}.auth-frame h1{text-align:center}

/* Expedition maps: landscape colors describe difficulty, symbols describe progress. */
.path-page{max-width:1180px!important;margin:0 auto;width:100%;min-width:0}
.path-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}
.path-heading h1{font-size:clamp(27px,3vw,40px)}
.path-heading p{margin:12px 0 0}
.path-total{flex:none;text-align:center;padding:17px 23px;border:1px solid var(--line);border-radius:22px;background:var(--card)}
.path-total b{display:block;font-size:25px;letter-spacing:-.04em}.path-total span{font-size:11px;color:var(--muted)}
.path-picker{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}
.path-pick{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:30px;padding:10px 16px;min-height:44px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.path-pick.on{background:var(--ink);color:var(--app);border-color:var(--ink)}
.path-page .gruen{--path-accent:#2a724a;--path-soft:#e8f1db;--path-map:#edf4dd;--path-edge:#c7d8ae;--path-text:#214d38;--path-muted:#49634b}
.path-page .blau{--path-accent:#236b9c;--path-soft:#e3f0f6;--path-map:#d9edf2;--path-edge:#adcbdc;--path-text:#204c68;--path-muted:#46677b}
.path-page .rot{--path-accent:#b23f4b;--path-soft:#fae9e3;--path-map:#f8e5d9;--path-edge:#e2b8ae;--path-text:#75363d;--path-muted:#825855}
.path-worlds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.path-world{display:flex;align-items:center;gap:13px;padding:16px 18px;background:var(--path-soft);color:var(--path-text);border:1px solid var(--path-edge);border-radius:18px;text-decoration:none;transition:transform .18s}
.path-world:hover{transform:translateY(-3px)}.path-world-icon{font-size:32px;line-height:1;width:37px;text-align:center}.path-world b{display:block;font-size:14px}.path-world small{display:block;font-size:12px;margin-top:4px}.path-world>span:last-child{margin-left:auto}
.path-guide{display:flex;justify-content:space-between;gap:16px;font-size:13px;line-height:1.6;margin:22px 2px;color:var(--muted)}.path-guide a{color:var(--gold);font-weight:700;white-space:nowrap;text-underline-offset:4px}
.path-stages{display:grid;gap:28px}.path-stage{border:1px solid var(--path-edge);border-radius:26px;overflow:hidden;background:var(--card);scroll-margin-top:20px}
.path-world-scene{position:relative;isolation:isolate;overflow:hidden;background:var(--path-map)}
.path-stage-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:24px 28px;background:linear-gradient(to bottom,color-mix(in srgb,var(--path-map) 85%,transparent),transparent);color:var(--path-text)}
.path-eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;display:block;line-height:1.7}
.path-difficulty{display:inline-block;margin-left:8px;border:1px solid var(--path-edge);border-radius:20px;padding:2px 9px;letter-spacing:.025em;background:#ffffff70}
.path-stage-head h2{font-size:27px;margin:9px 0 7px;line-height:1.15}.path-stage-head p{font-size:13px;line-height:1.6;margin:0;color:var(--path-muted)}
.path-stage-progress{min-width:104px;text-align:right}.path-stage-progress>b{display:block;font-size:26px}.path-stage-progress b span{font-size:15px;font-weight:500}.path-stage-progress small{display:block;font-size:10px;margin:4px 0 9px}
.path-stage-progress progress{display:block;width:104px;height:6px;border:0;border-radius:8px;overflow:hidden;accent-color:var(--path-accent);background:var(--path-edge)}
.path-stage-progress progress::-webkit-progress-bar{background:var(--path-edge)}.path-stage-progress progress::-webkit-progress-value{background:var(--path-accent);border-radius:8px}.path-stage-progress progress::-moz-progress-bar{background:var(--path-accent)}
.path-map{position:relative;isolation:isolate;color:var(--path-text);padding:57px 58px 52px}
.path-scenery,.path-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.path-scenery{z-index:-1}.path-route{z-index:-1;overflow:visible}
.path-scenery-portrait{display:none}
.path-map-caption{position:absolute;top:19px;left:26px;font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--path-muted)}
.path-track{--path-columns:5;position:relative;display:grid;grid-template-columns:repeat(var(--path-columns),minmax(0,1fr));grid-auto-rows:155px;align-items:start}
.path-road-bed{fill:none;stroke:#fff9e9;stroke-width:15;stroke-linecap:round;opacity:.88}
.path-road{fill:none;stroke:var(--path-accent);stroke-width:3;stroke-dasharray:5 10;stroke-linecap:round;opacity:.4}.path-road.travelled{stroke-width:4;stroke-dasharray:none;opacity:.8}
.path-node{align-self:start;justify-self:center;display:flex;align-items:center;flex-direction:column;gap:10px;position:relative;width:100%;max-width:155px;min-width:0;padding:12px 4px 8px;border:0;border-radius:18px;background:transparent;color:var(--path-text);font:inherit;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent}
.path-disc{display:grid;place-items:center;position:relative;flex:none;width:58px;height:58px;border-radius:50%;border:4px solid #fffbed;background:#f7f8ed;color:var(--path-muted);box-shadow:0 4px 0 var(--path-edge),0 6px 12px #183e3910;font-size:27px;transition:transform .18s,box-shadow .18s}
.path-disc>svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.path-number{position:absolute;bottom:-7px;right:-6px;border:2px solid #fffbed;border-radius:50%;background:var(--path-soft);color:var(--path-text);width:23px;height:23px;font-size:10px;font-weight:800;display:grid;place-items:center}
.path-node.abgeschlossen .path-disc{background:var(--path-accent);color:#fff}
.path-node.bereit .path-disc{background:var(--path-accent);color:#fff6a0;box-shadow:0 0 0 5px var(--path-map),0 0 0 8px var(--path-accent),0 7px 16px #183e3920}
.path-node[aria-pressed=true] .path-label b{text-decoration:underline;text-underline-offset:3px}
.path-node:hover .path-disc{transform:translateY(-4px)}
.path-node{scroll-margin-top:30px}
.path-label{display:block;max-width:100%;padding:4px 7px;border-radius:9px;background:color-mix(in srgb,var(--path-map) 92%,transparent)}
.path-label b{display:block;font-size:12px;line-height:1.4;overflow-wrap:anywhere}.path-label small{display:block;font-size:10px;line-height:1.5;margin-top:3px;color:var(--path-muted)}.path-node.bereit .path-label small{font-weight:800;color:var(--path-accent)}
.path-map-footer{position:absolute;bottom:17px;left:26px;right:26px;font-size:11px;color:var(--path-muted)}
.path-detail{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:142px;padding:22px 28px;border-top:1px solid var(--path-edge);scroll-margin:16px}
.path-detail-copy{min-width:0}.path-detail .path-eyebrow{color:var(--path-accent)}.path-detail h3{font-size:20px;margin:5px 0 7px;overflow-wrap:anywhere}.path-detail p{font-size:13px;line-height:1.6;margin:0 0 8px}.path-detail small{font-size:12px;line-height:1.6;color:var(--muted)}
.path-detail-action{display:flex;align-items:center;gap:10px;flex:none}.path-detail-action disce-lumo{width:80px;height:90px}.path-start{display:flex;gap:12px;align-items:center;background:var(--path-accent);color:#fff;white-space:nowrap;padding:13px 21px;font-weight:700;border:0;cursor:pointer}.path-start svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}.path-start:disabled{opacity:.6;cursor:wait}
.path-detail-seal{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--path-soft);color:var(--path-accent);font-size:24px}.path-detail-seal svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.path-empty{padding:35px 25px;text-align:center;background:var(--path-map);color:var(--path-text)}.path-empty>span{font-size:30px}.path-empty h3{margin:12px 0;font-size:18px}.path-empty p{font-size:13px;line-height:1.7}
.path-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 25px;font-size:12px;color:var(--muted);margin:24px 0 8px}
.path-legend span{display:inline-flex;align-items:center;gap:5px}.path-legend svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
@media(max-width:599px){.path-scenery-wide{display:none}.path-scenery-portrait{display:block}}
.path-page :is(button,a):focus-visible,.path-detail:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
@media(max-width:1099px){.path-map{padding-left:30px;padding-right:30px}.path-track{--path-columns:3}.path-stage-head{padding:22px}.path-detail{padding:22px}.path-detail-action disce-lumo{width:60px}}
@media(max-width:599px){.path-heading{gap:12px;align-items:flex-start}.path-heading h1{font-size:27px}.path-heading p{font-size:13px}.path-total{padding:12px 9px;border-radius:16px}.path-total b{font-size:18px;white-space:nowrap}.path-total span{font-size:9px}.path-worlds{gap:6px}.path-world{padding:12px 5px;flex-direction:column;gap:8px;text-align:center;border-radius:15px}.path-world-icon{font-size:25px}.path-world b{font-size:11px}.path-world small{font-size:9px}.path-world>span:last-child{display:none}.path-guide{flex-direction:column;gap:6px;font-size:12px}.path-stage-head{padding:20px 16px;gap:10px;align-items:flex-start}.path-stage-head h2{font-size:22px}.path-stage-head p{font-size:12px}.path-difficulty{margin:4px 0 0;display:table}.path-stage-progress{min-width:65px}.path-stage-progress>b{font-size:22px}.path-stage-progress progress{width:65px}.path-stage-progress small{font-size:9px}.path-map{padding:56px 22px 44px}.path-track{--path-columns:2;grid-auto-rows:157px}.path-map-caption{font-size:8px;letter-spacing:.08em;left:17px}.path-map-footer{font-size:10px;left:17px}.path-disc{width:56px;height:56px}.path-node{padding-left:3px;padding-right:3px}.path-label b{font-size:11px}.path-detail{padding:20px 16px;flex-wrap:wrap;gap:14px}.path-detail-action{width:100%;justify-content:flex-end}.path-detail-action disce-lumo{margin-right:auto;height:70px}.path-start{flex:1;justify-content:center;max-width:240px}.path-detail-copy{flex:1;min-width:160px}.path-detail h3{font-size:18px}.path-legend{font-size:10px;gap:12px}.path-scenery{opacity:.7}}
@media(prefers-color-scheme:dark){.path-page .gruen{--path-soft:#263f30;--path-map:#263e31;--path-edge:#4d6a46;--path-text:#edf5dc;--path-muted:#c4d8b6;--path-accent:#9cce81}.path-page .blau{--path-soft:#243e50;--path-map:#203c4b;--path-edge:#4c6c82;--path-text:#e5f5ff;--path-muted:#bdd4e3;--path-accent:#8ac7f0}.path-page .rot{--path-soft:#4d2e32;--path-map:#482e30;--path-edge:#82555b;--path-text:#ffede5;--path-muted:#e8c3bd;--path-accent:#f3999a}.path-scenery{opacity:.22}.path-difficulty{background:#ffffff0c}.path-disc{border-color:var(--path-edge);background:var(--path-soft)}.path-number{border-color:var(--path-edge)}.path-road-bed{stroke:var(--path-edge);opacity:.7}.path-node.abgeschlossen .path-disc,.path-node.bereit .path-disc,.path-start{color:#152c25}.path-node.bereit .path-disc{box-shadow:0 0 0 5px var(--path-map),0 0 0 8px var(--path-accent)}}
