/* Runde 2 (J2132): Toene naeher an MK-UI (Tinte #302d2b, Haarlinien, Ruhe-Schatten), Luna-Creme/Rose/Kupfer bleibt. */
@font-face{font-family:"Inter Luna";src:url(/fonts/InterVariable.latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--cream:#faf6f2;--ink:#302d2b;--muted:#7a716c;--line:#eee7e1;--white:#fff;--rose:#e2b4a7;--rose-soft:#f6ebe5;--copper:#b47c55;--copper-deep:#93603f;--berry:#c9707e;--sage:#7fa98c;--gold:#d6a25f;--lavender:#9b87b8;--phase:var(--copper-deep);--shadow:0 1px 2px rgba(48,45,43,.04),0 8px 28px rgba(74,48,38,.05);--shadow-rest:0 1px 2px rgba(0,0,0,.04);--hair:inset 0 0 0 .5px rgba(48,45,43,.12);--viewport-height:100dvh}
*{box-sizing:border-box}
html{background:var(--cream);color:var(--ink);font-family:"Inter Luna",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:400;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss03"}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 90% -10%,rgba(226,180,167,.13),transparent 30rem),var(--cream)}
button,input,textarea{font:inherit;color:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{border:0;background:none;cursor:pointer}
button:active,.primary:active,.tip-card:active{transform:scale(.97)}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(176,119,79,.4);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.view{min-height:100dvh;padding:0 0 calc(112px + env(safe-area-inset-bottom));opacity:.5;transform:translateY(5px);transition:.24s ease}
.view.entered{opacity:1;transform:none}
.page-pad,.today-page,.calendar-page,.tips-page,.settings-page{padding:calc(20px + env(safe-area-inset-top)) 20px 40px;max-width:740px;margin:auto}
.phase-menstruation{--phase:var(--berry)}
.phase-follikel{--phase:var(--sage)}
.phase-ovulation{--phase:var(--gold)}
.phase-luteal{--phase:var(--lavender)}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:inherit;font-weight:560;color:var(--ink)}
h1{font-size:clamp(1.75rem,7.4vw,2.4rem);line-height:1.12;letter-spacing:-.028em;margin-bottom:12px}
h2{font-size:1.28rem;line-height:1.2;letter-spacing:-.02em;margin-bottom:14px}
h3{font-size:1.06rem;line-height:1.3;letter-spacing:-.014em}
b,strong{font-weight:600}
.eyebrow{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;font-weight:560;color:var(--copper);margin-bottom:8px}
.muted{color:var(--muted);line-height:1.55}
.primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border-radius:16px;background:var(--ink);color:#fff;font-weight:540;box-shadow:0 6px 18px rgba(48,45,43,.14);transition:.16s}
.primary .ic{width:18px;height:18px}
.primary span{font-size:1.2em}
.wide{width:100%}
.icon-button{width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.8);box-shadow:0 5px 20px rgba(74,48,38,.08);font-size:1.1rem;flex:none}
.top-header,.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px}
.top-header h1,.page-header h1{margin:0}
.top-header .eyebrow,.page-header .eyebrow{color:var(--muted)}
.section{margin-top:40px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between}
.section-heading h2{margin-bottom:0}
.swipe-hint{color:var(--muted);font-size:.76rem}
.ic{width:22px;height:22px;display:block}
/* Schwebende Leiste (J2132): Glasstufe wie mk-ui `.mk-glas-kopf` (Kartenton ~74 %, Weichzeichner, Haarlinie), Abstand zum Rand. */
.tabbar{position:fixed;z-index:30;left:14px;right:14px;bottom:max(14px,calc(env(safe-area-inset-bottom) + 6px));height:66px;padding:0 6px;border-radius:33px;background:rgba(255,253,251,.74);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);box-shadow:var(--hair),0 10px 34px rgba(74,48,38,.11),0 1px 3px rgba(74,48,38,.06);display:grid;grid-template-columns:repeat(5,1fr);align-items:center;max-width:520px;margin:0 auto}
.tab{position:relative;display:flex;min-width:0;height:54px;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#8d837e;border-radius:27px;transition:color .15s,background .2s}
.tab small{font-size:.62rem;font-weight:500;letter-spacing:0}
.tab .ic{width:22px;height:22px}
.tab.active{color:var(--ink)}
.tab.active small{font-weight:600}
.tab.active:not(.tab-add){background:rgba(180,124,85,.09)}
.tab-add small{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.tab-add .tab-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 4px 14px rgba(48,45,43,.22)}
.tab-add .ic{width:24px;height:24px;stroke-width:1.8}
.toast{position:fixed;z-index:100;left:50%;bottom:calc(98px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--ink);color:#fff;border-radius:99px;padding:10px 17px;font-size:.83rem;opacity:0;pointer-events:none;transition:.22s;white-space:nowrap;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* Login & onboarding */
.auth-page{min-height:100dvh;display:grid;place-items:center;padding:32px 22px;background:radial-gradient(circle at 50% 10%,rgba(217,165,150,.2),transparent 22rem)}
.auth-card{width:min(100%,410px);text-align:center}
.brand-mark{width:84px;height:84px;border-radius:29px;margin:0 auto 28px;background:linear-gradient(145deg,#f2c09c,#b75b72 55%,#67508d);display:grid;place-items:center;box-shadow:0 18px 45px rgba(120,78,58,.2);transform:rotate(-3deg)}
.brand-mark i{width:40px;height:40px;border:2px solid rgba(255,255,255,.84);border-radius:50% 50% 48% 20%;transform:rotate(35deg);position:relative}
.brand-mark i:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;right:2px;top:3px}
.auth-card h1{font-size:3.25rem}
.auth-card form{text-align:left;margin-top:36px}
.auth-card label{display:block;font-size:.76rem;font-weight:580;color:var(--muted);margin:15px 0}
.auth-card input{display:block;width:100%;height:54px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.86);padding:0 16px;margin-top:7px;font-size:1rem}
.privacy-note{font-size:.72rem;color:var(--muted);margin-top:22px}
.form-error{color:var(--berry);font-size:.8rem;min-height:20px}
.onboarding{min-height:100dvh;max-width:600px;margin:auto;padding:calc(22px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column}
.onboard-top{display:flex;align-items:center;gap:24px}
.mini-logo{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:var(--ink);color:#fff;}
.progress{display:flex;gap:7px;flex:1}
.progress i{height:4px;flex:1;border-radius:4px;background:var(--line);transition:.25s}
.progress i.filled{background:var(--copper)}
#onboard-body{flex:1;padding:10vh 0 30px}
#onboard-body h1{font-size:clamp(2.4rem,11vw,4rem);max-width:520px}
.onboarding footer{display:flex;justify-content:space-between;align-items:center}
.back{min-height:50px;padding:0 12px;color:var(--muted)}
.invisible{visibility:hidden}
.date-hero{width:100%;margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;font-size:1.45rem;font-weight:540;box-shadow:var(--shadow)}
.stepper{margin:40px auto 25px;display:grid;grid-template-columns:64px auto 1fr 64px;align-items:baseline;width:min(100%,390px);background:#fff;border-radius:28px;padding:18px;box-shadow:var(--shadow)}
.stepper button{height:56px;width:56px;border-radius:18px;background:var(--cream);font-size:1.5rem}
.stepper strong{font:300 3.6rem/1 "Inter Luna",system-ui;letter-spacing:-.04em;margin-left:22px;font-variant-numeric:tabular-nums}
.stepper span{color:var(--muted)}
.text-button{display:block;margin:auto;text-decoration:underline;color:var(--muted)}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0}
.choice{min-height:108px;border:1px solid var(--line);border-radius:22px;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:18px;font-weight:580;position:relative}
.choice b{font-size:1.55rem;margin-bottom:9px}
.choice i{position:absolute;right:13px;top:13px;width:22px;height:22px;border-radius:50%;display:none;place-items:center;background:var(--sage);color:#fff;font-style:normal}
.choice.selected{border-color:var(--sage);background:#f5faf7}
.choice.selected i{display:grid}
.confirm{display:flex;gap:12px;align-items:flex-start;color:var(--muted);font-size:.8rem;line-height:1.45}
.confirm input{width:21px;height:21px;accent-color:var(--sage);flex:none}

/* Today */
.cycle-hero{background:rgba(255,255,255,.84);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);border-radius:30px;padding:20px 18px 19px;display:flex;flex-direction:column;align-items:center;overflow:hidden;position:relative}
.cycle-hero:before{content:"";position:absolute;inset:-20% 10% 65%;background:radial-gradient(circle,var(--phase),transparent 67%);opacity:.07}
.cycle-ring{width:min(100%,310px);overflow:visible}
.ring-track{fill:none;stroke:#f0e8e3;stroke-width:10}
.ring-segment{fill:none;stroke-width:10;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center}
.ring-marker-halo{fill:#fff;filter:drop-shadow(0 2px 4px rgba(47,35,33,.18))}
.ring-marker{fill:var(--ink)}
.ring-kicker,.ring-phase{text-anchor:middle;fill:var(--muted);font:600 7px "Inter Luna",system-ui;letter-spacing:1.3px}
.ring-phase{font-size:9px;letter-spacing:0;fill:var(--phase)}
.ring-day{text-anchor:middle;fill:var(--ink);font:38px ui-serif,Georgia,serif;font-variant-numeric:tabular-nums}
.cycle-summary{width:100%;border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:center;gap:9px;flex-wrap:wrap;font-size:.83rem}
.cycle-summary span{color:var(--muted)}
.cycle-summary span:before{content:"·";margin-right:9px}
.card-rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:18px -20px 0;padding:2px 20px 20px;scrollbar-width:none}
.card-rail::-webkit-scrollbar{display:none}
.tip-card{flex:0 0 min(82vw,330px);min-height:225px;background:#fff;border-radius:24px;padding:20px;box-shadow:0 9px 26px rgba(74,48,38,.065);scroll-snap-align:start;border:1px solid rgba(74,48,38,.045);transition:.15s}
.tip-card-top,.knowledge-top{display:flex;align-items:center;gap:8px}
.category-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:12px;background:var(--cream);font-size:1.08rem}
.category-label,.knowledge-top>span:nth-child(2){font-size:.75rem;font-weight:580;text-transform:uppercase;letter-spacing:.08em}
.evidence{margin-left:auto;border-radius:99px;padding:4px 8px;background:#f1ece8;color:var(--muted);font-size:.62rem;text-transform:uppercase;font-weight:580}
.evidence-gut{background:#e5f3eb;color:#397659}
.evidence-moderat{background:#fff1d9;color:#8d601d}
.tip-card h3{font-size:1.45rem;margin:22px 0 8px}
.tip-card p{font-size:.87rem;line-height:1.52;color:var(--muted);min-height:54px}
.tip-card a{font-size:.7rem;color:var(--muted);text-underline-offset:3px}
.quick-row{display:flex;gap:8px;overflow-x:auto;margin:15px -20px;padding:2px 20px 12px;scrollbar-width:none}
.quick-chip{flex:none;border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 13px 8px 8px;font-size:.76rem}
.quick-chip span{font-size:1.1rem;margin-right:4px}
.quick-chip.selected{border-color:var(--phase);box-shadow:inset 0 0 0 1px var(--phase)}
.energy-quick{display:flex;align-items:center;gap:8px;margin:7px 0 18px}
.energy-quick>span{font-size:.78rem;color:var(--muted);margin-right:auto}
.energy-quick button{width:37px;height:37px;border-radius:50%;background:#fff;border:1px solid var(--line);font-variant-numeric:tabular-nums}
.energy-quick button.selected{background:var(--phase);border-color:var(--phase);color:#fff}
.soft-button{min-height:54px;border-radius:17px;background:#f0e5dd;font-weight:580;padding:0 18px;display:flex;justify-content:space-between;align-items:center}
.prompt-list{display:grid;gap:9px}
.prompt-list button{min-height:53px;text-align:left;padding:0 17px;background:#fff;border-radius:17px;border:1px solid rgba(74,48,38,.06);box-shadow:0 5px 18px rgba(74,48,38,.035);display:flex;justify-content:space-between;align-items:center;font-size:.86rem}
.prompt-list span{color:var(--phase);font-size:1.2rem}
.disclaimer-mini{text-align:center;color:#968b93;font-size:.68rem;margin:36px 0 0}

/* Calendar */
.calendar-card{background:#fff;border-radius:28px;padding:18px 13px 22px;box-shadow:var(--shadow)}
.month-head{display:grid;grid-template-columns:45px 1fr 45px;align-items:center;margin-bottom:14px}
.month-head h2{text-align:center;text-transform:capitalize;font-size:1.35rem;margin:0}
.month-head button{font-size:2rem;color:var(--muted)}
.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.weekdays span{text-align:center;color:#9b8b83;font-size:.62rem;font-weight:580;text-transform:uppercase;padding:8px 0}
.day{aspect-ratio:1;position:relative;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-variant-numeric:tabular-nums}
.day.actual-period{background:var(--berry);color:#fff}
.day.spotting:before{content:"";position:absolute;width:6px;height:6px;background:var(--berry);border-radius:50%;top:5px}
.day.predicted{border:1.5px dashed rgba(194,65,93,.75);background:rgba(194,65,93,.05)}
.day.fertile:not(.actual-period):after{content:"";position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:var(--sage)}
.day.ovulation b{position:absolute;color:var(--gold);font-size:.48rem;top:3px;right:6px}
.day i{position:absolute;bottom:2px;width:3px;height:3px;border-radius:50%;background:var(--ink)}
.day.actual-period i{background:#fff}
.day.today{box-shadow:inset 0 0 0 2px var(--ink);font-weight:580}
.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:17px 5px;color:var(--muted);font-size:.66rem}
.legend span{display:flex;align-items:center;gap:5px}
.legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.legend .period{background:var(--berry)}
.legend .forecast{border:1px dashed var(--berry)}
.legend .fertile{background:var(--sage)}
.legend .entry{width:4px;height:4px;background:var(--ink)}
.legend b{color:var(--gold)}
.calendar-note{display:flex;gap:14px;background:#f2ebe6;border-radius:20px;padding:17px;margin-top:28px}
.calendar-note>span{font-size:1.3rem}
.calendar-note b{font-weight:560;font-size:1rem}
.calendar-note p{font-size:.75rem;line-height:1.45;color:var(--muted);margin:4px 0 0}

/* Sheet */
.sheet-open{overflow:hidden}
.sheet-backdrop{position:fixed;z-index:80;inset:0;background:rgba(47,33,28,0);display:flex;align-items:flex-end;transition:.25s;backdrop-filter:blur(0)}
.sheet-backdrop.open{background:rgba(47,33,28,.26);backdrop-filter:blur(3px)}
.log-sheet{width:100%;max-height:94dvh;overflow:auto;overscroll-behavior:contain;background:var(--cream);border-radius:28px 28px 0 0;padding:8px 20px calc(35px + env(safe-area-inset-bottom));transform:translateY(102%);transition:transform .42s cubic-bezier(.2,.85,.25,1);box-shadow:0 -15px 50px rgba(47,35,33,.15)}
.open .log-sheet{transform:none}
.sheet-handle{width:38px;height:5px;background:#d1c6c3;border-radius:4px;margin:2px auto 13px}
.log-sheet header{display:flex;justify-content:space-between;align-items:flex-start;position:sticky;top:-8px;background:rgba(248,241,234,.94);backdrop-filter:blur(12px);z-index:3;padding:8px 0}
.log-sheet h2{margin:0;font-size:1.48rem}
.sheet-close{width:40px;height:40px;border-radius:50%;background:#eae1dc;font-size:1.5rem}
.date-inline{display:flex;align-items:center;justify-content:space-between;background:#fff;padding:12px 15px;border-radius:14px;font-size:.75rem;font-weight:580;margin:7px 0 25px}
.date-inline input{border:0;background:transparent}
.log-sheet fieldset{border:0;border-top:1px solid var(--line);padding:26px 0 8px;margin:0}
.log-sheet legend{font:560 1.08rem/1.3 "Inter Luna",system-ui;letter-spacing:-.014em;padding:0;width:100%;margin-bottom:14px}
.log-sheet legend small{display:block;font:400 .72rem "Inter Luna",system-ui;color:var(--muted);margin-top:3px}
.flow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.flow-grid button,.mood-grid button{min-width:0;border:1px solid var(--line);background:#fff;border-radius:15px;padding:10px 3px;font-size:.64rem}
.flow-grid b,.mood-grid b{display:block;font-size:1.2rem;margin-bottom:5px}
.flow-grid button.selected,.mood-grid button.selected,.sheet-chip-grid button.selected{border-color:var(--berry);background:#fff4f6;box-shadow:inset 0 0 0 1px var(--berry)}
.sheet-chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sheet-chip-grid button{text-align:left;min-height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:.74rem;padding:0 10px}
.sheet-chip-grid b{display:inline-block;width:22px;font-size:1rem}
.mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.energy-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.energy-picker button{background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px 2px}
.energy-picker b{display:block;font-size:1.05rem}
.energy-picker span{display:block;font-size:.52rem;color:var(--muted);margin-top:3px}
.energy-picker button.selected{background:var(--lavender);color:#fff;border-color:var(--lavender)}
.energy-picker button.selected span{color:#fff}
.log-sheet textarea{resize:vertical;width:100%;min-height:115px;border:1px solid var(--line);border-radius:17px;background:#fff;padding:14px;line-height:1.5}
.save-state{position:sticky;bottom:4px;width:max-content;margin:15px auto 0;background:rgba(47,35,33,.9);color:#fff;padding:8px 14px;border-radius:99px;font-size:.68rem;box-shadow:var(--shadow)}

/* Tips */
.phase-tabs{display:flex;overflow:auto;gap:8px;margin:0 -20px 18px;padding:2px 20px 10px;scrollbar-width:none}
.phase-tabs button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:99px;padding:9px 13px;font-size:.72rem;font-weight:540}
.phase-tabs i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--phase)}
.phase-tabs button:nth-child(1) i{background:var(--berry)}
.phase-tabs button:nth-child(2) i{background:var(--sage)}
.phase-tabs button:nth-child(3) i{background:var(--gold)}
.phase-tabs button:nth-child(4) i{background:var(--lavender)}
.phase-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.phase-banner{position:relative;overflow:hidden;background:color-mix(in srgb,var(--phase) 9%,white);border-radius:27px;padding:25px 20px}
.phase-orbit{position:absolute;right:-11px;top:-23px;font:300 7rem "Inter Luna",system-ui;color:var(--phase);opacity:.1}
.phase-banner>div{max-width:80%;position:relative}
.phase-banner h2{font-size:2rem;margin-bottom:8px}
.phase-banner>div>p:last-child{color:var(--muted);font-size:.83rem;line-height:1.5}
.phase-banner dl{margin:20px 0 0;border-top:1px solid color-mix(in srgb,var(--phase) 18%,transparent);padding-top:16px;display:grid;gap:12px}
.phase-banner dt{font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;font-weight:580;color:var(--phase)}
.phase-banner dd{margin:3px 0 0;font-size:.74rem;color:var(--muted);line-height:1.45}
.filter-row{display:flex;overflow:auto;gap:7px;margin:22px -20px 8px;padding:2px 20px 10px;scrollbar-width:none}
.filter-row button{flex:none;padding:8px 12px;border-radius:99px;background:#f0e5dd;font-size:.68rem}
.filter-row button.active{background:var(--phase);color:#fff}
.tips-list{display:grid;gap:12px}
.knowledge-card{background:#fff;border-radius:22px;padding:19px;box-shadow:0 7px 22px rgba(74,48,38,.05)}
.knowledge-card h3{margin:17px 0 7px}
.knowledge-card>p{color:var(--muted);font-size:.82rem;line-height:1.52}
.knowledge-card details{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}
.knowledge-card summary{cursor:pointer;list-style:none;font-size:.7rem;font-weight:580;color:var(--muted);display:flex;justify-content:space-between}
.knowledge-card details a{display:block;background:var(--cream);padding:10px;border-radius:11px;margin-top:8px;color:var(--ink);text-decoration:none;font-size:.7rem}
.knowledge-card details small{display:block;color:var(--muted);margin-top:3px}
.safety-card{margin-top:32px;border:1px solid #e7d5d8;border-radius:22px;padding:18px;display:flex;gap:14px}
.safety-card>span{width:30px;height:30px;border-radius:50%;background:#f5e2e5;color:var(--berry);display:grid;place-items:center;flex:none;font-weight:580}
.safety-card h3{font-size:1rem;margin:3px 0 7px}
.safety-card p,.safety-card li{font-size:.7rem;line-height:1.5;color:var(--muted)}
.safety-card summary{font-size:.72rem;font-weight:580;cursor:pointer}

/* Assist */
.assist-page{height:var(--viewport-height);min-height:600px;max-width:760px;margin:auto;padding:calc(18px + env(safe-area-inset-top)) 16px calc(102px + env(safe-area-inset-bottom));display:flex;flex-direction:column}
.assist-header{align-items:center;margin:0 2px 12px;position:relative}
.assist-header h1{font-size:1.8rem}
.assist-status{font-size:.64rem;color:var(--muted);margin-left:auto}
.assist-status i{display:inline-block;width:6px;height:6px;background:var(--sage);border-radius:50%}
.popover{position:absolute;z-index:5;right:0;top:50px;background:#fff;border-radius:13px;padding:6px;box-shadow:var(--shadow);display:none}
.popover.open{display:block}
.popover button{padding:10px;color:var(--berry);font-size:.75rem}
.chat{flex:1;overflow:auto;padding:8px 2px 25px;scrollbar-width:none}
.assistant-intro{display:flex;gap:12px;background:rgba(255,255,255,.55);border-radius:20px;padding:15px;margin-bottom:18px}
.assist-avatar,.mini-avatar{width:38px;height:38px;border-radius:14px;background:linear-gradient(145deg,#e7a768,var(--berry),var(--lavender));color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 16px rgba(110,70,50,.15)}
.assistant-intro b{font:560 .95rem "Inter Luna",system-ui}
.assistant-intro p{font-size:.72rem;color:var(--muted);line-height:1.45;margin:4px 0 0}
.suggestions{display:grid;gap:8px;margin:25px 10px}
.suggestions>span{font-size:.68rem;color:var(--muted)}
.suggestions button{text-align:left;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px;font-size:.75rem;display:flex;justify-content:space-between}
.bubble-row{display:flex;margin:10px 0;gap:7px;align-items:flex-end}
.bubble-row.mine{justify-content:flex-end}
.mini-avatar{width:27px;height:27px;border-radius:10px;font-size:.65rem}
.bubble{max-width:82%;padding:11px 13px;border-radius:18px 18px 18px 5px;background:#fff;font-size:.81rem;line-height:1.5;box-shadow:0 4px 15px rgba(74,48,38,.04)}
.mine .bubble{background:var(--ink);color:#fff;border-radius:18px 18px 5px 18px}
.bubble time{display:block;font-size:.52rem;opacity:.55;margin-top:5px;text-align:right}
.typing{display:flex;gap:4px;background:#fff;border-radius:16px;padding:12px}
.typing i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:pulse 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}
.typing i:nth-child(3){animation-delay:.3s}
@keyframes pulse{50%{transform:translateY(-4px);opacity:.4}
}
.composer{display:flex;align-items:flex-end;gap:8px;background:#fff;border-radius:21px;padding:7px 7px 7px 14px;box-shadow:0 10px 30px rgba(74,48,38,.12)}
.composer label{flex:1}
.composer textarea{border:0;resize:none;width:100%;max-height:120px;padding:8px 0 4px;background:transparent;outline:0;line-height:1.4}
.composer button{width:40px;height:40px;background:var(--ink);color:#fff;border-radius:14px;font-size:1.2rem}
.medical-note{text-align:center;color:#9b8b83;font-size:.57rem;margin:8px 0 0}

/* Settings */
.settings-page{max-width:680px}
.settings-page .page-header{justify-content:flex-start;align-items:center}
.back-icon{font-size:1.8rem}
.settings-card{background:#fff;border-radius:23px;padding:20px;margin-bottom:14px;box-shadow:0 6px 22px rgba(74,48,38,.045)}
.settings-card h2{font-size:1.25rem;border-bottom:1px solid var(--line);padding-bottom:14px}
.settings-card>label{display:flex;justify-content:space-between;align-items:center;font-size:.79rem;padding:9px 0}
.settings-card input[type=date]{border:0;background:var(--cream);border-radius:10px;padding:7px;font-size:.72rem}
.setting-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:14px 0;font-size:.79rem}
.mini-stepper{display:flex;align-items:center;gap:8px}
.mini-stepper button{width:31px;height:31px;border-radius:10px;background:var(--cream)}
.mini-stepper b{font-variant-numeric:tabular-nums}
.mini-stepper small{font-size:.6rem;color:var(--muted)}
.settings-interests{border-top:1px solid var(--line);padding-top:14px;font-size:.79rem}
.settings-interests>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.settings-interests button{padding:7px 10px;border-radius:99px;background:var(--cream);font-size:.68rem}
.settings-interests button.selected{background:var(--sage);color:#fff}
.secure-copy{display:grid;grid-template-columns:36px 1fr;column-gap:10px}
.secure-copy>span{grid-row:1/3;width:36px;height:36px;display:grid;place-items:center;background:#eaf4ee;color:var(--sage);border-radius:12px}
.secure-copy b{font-size:.78rem}
.secure-copy small{color:var(--muted);font-size:.68rem;line-height:1.4}
.settings-action{display:flex;width:100%;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:15px 0 3px;text-decoration:none;color:var(--ink);font-size:.79rem}
.settings-action.danger{color:var(--berry)}
.version{text-align:center;color:#a499a1;font-size:.62rem;margin:28px}
.empty-state{min-height:80dvh;display:grid;place-content:center;text-align:center;padding:30px}
.empty-state>span{font-size:3rem;color:var(--berry)}
.empty-state p{color:var(--muted)}
.boot-skeleton,.skeleton-stack{padding:30px;display:grid;gap:14px}
.boot-skeleton i,.skeleton-stack i,.skeleton-hero,.skeleton-card{display:block;background:linear-gradient(100deg,#efe2d9 20%,#f9f1eb 40%,#efe2d9 60%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:15px}
.boot-skeleton i{height:50px}
.skeleton-stack i{width:90%;height:45px}
.skeleton-stack i.sk-1{width:78%}
.skeleton-stack i.sk-2{width:66%}
.skeleton-stack i.sk-3{width:54%}
.skeleton-hero{height:320px;margin:80px 0 20px;border-radius:30px}
.skeleton-card{height:180px;border-radius:24px}
@keyframes shimmer{to{background-position:-200% 0}
}

@media(min-width:700px){.card-rail{margin-left:0;margin-right:0;padding-left:0}
.tip-card{flex-basis:320px}
.log-sheet{max-width:600px;margin:auto;border-radius:28px 28px 0 0}
.month-grid{gap:8px}
.day{font-size:.9rem}
}

@media(min-width:900px){body{background:linear-gradient(90deg,#f3e9e1 0 225px,var(--cream) 225px)}
.app-shell{min-height:100vh;padding-left:225px}
.tabbar{top:0;left:0;bottom:0;right:auto;width:225px;height:100vh;max-width:none;margin:0;padding:38px 20px;border-radius:0;display:flex;flex-direction:column;align-items:stretch;gap:6px;background:#f4ece6;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.tab{height:48px;flex:none;flex-direction:row;justify-content:flex-start;padding:0 14px;gap:12px;border-radius:14px}
.tab small{font-size:.84rem}
.tab.active:not(.tab-add){background:#fff;box-shadow:var(--shadow-rest),var(--hair)}
.tab-add{order:5;margin-top:auto;background:var(--ink);color:#fff;border-radius:16px}
.tab-add .tab-ic{width:auto;height:auto;background:none;box-shadow:none}
.tab-add small{position:static;width:auto;height:auto;clip:auto;color:#fff}
.view{padding-bottom:30px}
.page-pad,.today-page,.calendar-page,.tips-page,.settings-page{padding-top:54px}
.today-page{max-width:1100px;display:grid;grid-template-columns:minmax(380px,1fr) minmax(350px,1fr);gap:0 48px}
.top-header{grid-column:1/-1}
.cycle-hero{grid-column:1;grid-row:2/5;align-self:start;position:sticky;top:40px}
.today-page>.section{grid-column:2;margin-top:0;margin-bottom:34px}
.today-page>.section.checkin{grid-row:3}
.today-page>.ask-section{grid-row:4}
.today-page>.disclaimer-mini{grid-column:1/-1}
.cycle-ring{width:360px}
.calendar-page,.tips-page{max-width:900px}
.calendar-card{padding:28px}
.tips-list{grid-template-columns:1fr 1fr}
.assist-page{padding-top:45px;padding-bottom:32px;max-width:800px}
.medical-note{margin-bottom:0}
.toast{bottom:30px}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Luna-Figur (J2130) */
.luna-fig{display:block;height:auto;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 10px 14px rgba(110,70,50,.14))}

.luna-login{width:150px;margin:0 auto 18px;animation:luna-float 5s ease-in-out infinite}

@keyframes luna-float{50%{transform:translateY(-5px)}
}

@media (prefers-reduced-motion:reduce){.luna-login,.boot-splash img{animation:none}
}

.mini-logo.luna-logo{background:var(--rose-soft);overflow:hidden;padding:0}
.luna-logo img,.assist-avatar img,.mini-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}

.assist-avatar,.mini-avatar{background:radial-gradient(circle at 50% 30%,#fdf8f4,var(--rose-soft) 75%);overflow:hidden;border:1px solid rgba(176,119,79,.25)}

.assist-avatar{width:46px;height:46px;border-radius:16px}

.luna-greet{display:flex;align-items:flex-end;gap:12px;margin:-4px 0 22px}

.luna-greet .luna-fig{width:86px;flex:none;margin-bottom:-6px}

.luna-greet p{position:relative;margin:0 0 10px;background:#fff;border-radius:18px 18px 18px 5px;padding:11px 14px;font-size:.82rem;line-height:1.45;color:var(--ink);box-shadow:0 6px 18px rgba(74,48,38,.06);border:1px solid rgba(217,165,150,.35)}

.luna-greet p b{color:var(--copper-deep)}

.ask-section .luna-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.ask-section .luna-head .luna-fig{width:92px;margin:-24px 0 6px}

.tips-page .page-header .luna-fig{width:78px;margin:-10px 0 -12px}

.empty-copy .luna-fig,.empty-state .luna-fig{width:96px;margin:0 auto 12px}
.empty-copy{text-align:center}

.chat-empty{display:flex;flex-direction:column;align-items:center;text-align:center;margin:8px 0 -6px}
.chat-empty .luna-fig{width:104px}
.chat-empty p{font-size:.75rem;color:var(--muted);margin:6px 0 0}

.sheet-luna{display:flex;align-items:center;gap:10px}
.sheet-luna .luna-fig{width:54px;margin:-14px 0 -4px}

.boot-splash{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at 50% 42%,#fbf5ef,#f1e2d8 75%)}

.boot-splash img{width:150px;height:auto;animation:luna-float 3s ease-in-out infinite}
.boot-splash span{font:500 .9rem "Inter Luna",system-ui;letter-spacing:.32em;color:var(--copper-deep);padding-left:.32em}

.tab-luna{display:block;width:26px;height:26px;border-radius:9px;overflow:hidden;background:var(--rose-soft);opacity:.75}
.tab.active .tab-luna{opacity:1;box-shadow:0 0 0 1.5px var(--copper)}
.tab-luna img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}


/* ── Runde 2 (J2132): leichter, MK-UI-naeher ─────────────────────────────────────────────── */
/* Glas-Kreis rechts oben: wie mk-ui `.mk-glas-kreis` (44 px, Kartenton, Haarlinie, Ruhe-Schatten). */
.glass-circle{width:44px;height:44px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--ink);background:rgba(255,255,255,.66);-webkit-backdrop-filter:blur(14px) saturate(135%);backdrop-filter:blur(14px) saturate(135%);box-shadow:var(--hair),var(--shadow-rest);transition:transform .15s,background .2s}
.glass-circle .ic{width:20px;height:20px}
.glass-circle .dots{font-size:.7rem;letter-spacing:1px;color:var(--muted)}
.glass-circle:active{transform:scale(.94);background:rgba(255,255,255,.9)}
.top-header{align-items:center;margin-bottom:22px}
.top-header h1{font-size:clamp(1.7rem,7vw,2.2rem);font-weight:520;line-height:1.14}
.top-header .eyebrow,.page-header .eyebrow{color:var(--muted);font-weight:500;letter-spacing:.06em}
.page-header{align-items:center}
.page-header h1{font-size:1.75rem;font-weight:540}

/* Luna-Gruss: Sprechblase leichter, ohne harte Kante */
.luna-greet{margin:0 0 18px;gap:10px}
.luna-greet .luna-fig{width:78px}
.luna-greet p{font-size:.86rem;line-height:1.5;border:0;box-shadow:var(--hair),0 6px 20px rgba(74,48,38,.05);padding:12px 15px;border-radius:20px 20px 20px 6px}
.luna-greet p b{color:var(--copper-deep);font-weight:600}
.luna-greet p a{color:var(--copper-deep);font-weight:560;text-underline-offset:3px}

/* Zyklus-Ring als Mond-Band */
.cycle-hero{background:rgba(255,255,255,.62);border:0;box-shadow:var(--hair),0 10px 40px rgba(74,48,38,.05);border-radius:32px;padding:30px 18px 22px}
.cycle-hero:before{inset:6% 18% 30%;background:radial-gradient(circle,var(--phase),transparent 65%);opacity:.05}
.moon-ring{--size:min(72vw,280px);--band-w:9px;position:relative;width:var(--size);height:var(--size);margin:2px auto 22px}
.moon-band,.moon-glow{position:absolute;inset:0;border-radius:50%;background:var(--band);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - var(--band-w) - .5px),#000 calc(100% - var(--band-w)));mask:radial-gradient(farthest-side,transparent calc(100% - var(--band-w) - .5px),#000 calc(100% - var(--band-w)))}
.moon-glow{filter:blur(14px);opacity:.4;transform:scale(1.02)}
.moon-dot{position:absolute;inset:0;transform:rotate(var(--deg));pointer-events:none}
.moon-dot i{position:absolute;left:50%;top:calc(var(--band-w) / 2);width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:#fffdfb;box-shadow:0 0 0 4px color-mix(in srgb,var(--glow) 22%,transparent),0 3px 10px rgba(74,48,38,.16)}
.moon-dot i:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--glow)}
.moon-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.moon-kicker{font-size:.8rem;font-weight:450;color:var(--muted);letter-spacing:.02em}
.moon-day{font-size:clamp(4.2rem,20vw,5.4rem);line-height:.98;font-weight:280;letter-spacing:-.045em;color:var(--ink);font-variant-numeric:tabular-nums;margin:2px 0 6px}
.moon-phase{font-size:.9rem;font-weight:500;color:color-mix(in srgb,var(--phase) 78%,#302d2b)}
.cycle-summary{border-top:0;padding-top:0;gap:8px;font-size:.78rem}
.cycle-summary span:before{content:none}
.pill{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:99px;background:rgba(255,255,255,.75);box-shadow:var(--hair);color:var(--ink)!important;font-weight:450}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--berry)}
.pill-fertile i{background:var(--sage)}

/* Karten & Inhalte: Flaeche + Haarlinie statt Schatten-Gewicht */
.section{margin-top:36px}
.section-heading h2{font-size:1.2rem}
.tip-card,.knowledge-card,.settings-card,.calendar-card{box-shadow:var(--hair),var(--shadow-rest);border:0}
.tip-card{min-height:210px;border-radius:22px}
.tip-card h3{font-size:1.08rem;margin:18px 0 6px;font-weight:560}
.tip-card p,.knowledge-card>p{font-size:.86rem;color:var(--muted)}
.category-icon{width:34px;height:34px;border-radius:11px;background:var(--rose-soft);font-size:1rem}
.category-label,.knowledge-top>span:nth-child(2){font-size:.66rem;font-weight:560;letter-spacing:.07em;color:var(--muted)}
.evidence{font-size:.58rem;font-weight:560;letter-spacing:.04em;padding:4px 8px}
.for-you{margin-left:auto;border-radius:99px;padding:4px 8px;font-size:.58rem;font-weight:560;letter-spacing:.04em;text-transform:uppercase;background:rgba(180,124,85,.12);color:var(--copper-deep)}
.for-you+.evidence{margin-left:0}
.quick-chip,.energy-quick button,.prompt-list button,.phase-tabs button,.suggestions button{border:0;box-shadow:var(--hair)}
.prompt-list button{box-shadow:var(--hair),var(--shadow-rest);font-weight:450}
.soft-button{background:var(--rose-soft);font-weight:540}
.knowledge-card h3{font-size:1.06rem;font-weight:560}
.phase-banner h2{font-size:1.5rem;font-weight:540}
.month-head h2{font-size:1.15rem;font-weight:540}
.day.today{font-weight:600}

/* Einrichtung mit Luna */
.setup{height:var(--viewport-height);max-width:600px;margin:auto;display:flex;flex-direction:column;padding:calc(12px + env(safe-area-inset-top)) 18px calc(16px + env(safe-area-inset-bottom))}
.setup-top{display:flex;align-items:center;gap:14px;padding:4px 0 10px}
.setup-progress{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden}
.setup-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose),var(--copper));border-radius:4px;transition:width .45s cubic-bezier(.2,.85,.25,1)}
.setup-later{font-size:.82rem;color:var(--muted);font-weight:500;padding:10px 4px}
.setup-chat{flex:1;overflow:auto;padding:10px 2px 14px;scrollbar-width:none;display:flex;flex-direction:column;gap:10px}
.setup-chat::-webkit-scrollbar{display:none}
.setup-hero-wrap{display:flex;justify-content:center;padding:8px 0 4px}
.setup-lead{width:116px;animation:luna-float 5s ease-in-out infinite}
.say{display:flex;gap:8px;align-items:flex-end;animation:say-in .38s cubic-bezier(.2,.85,.25,1) both}
.say p{margin:0}
.say-avatar{width:30px;height:30px;flex:none;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 30%,#fdf8f4,var(--rose-soft) 75%);box-shadow:var(--hair)}
.say-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.say-stack{display:flex;flex-direction:column;gap:5px;max-width:84%}
.luna-say .say-stack p{background:#fff;border-radius:18px 18px 18px 6px;padding:11px 14px;font-size:.92rem;line-height:1.48;box-shadow:var(--hair),var(--shadow-rest)}
.luna-say .say-stack p small{display:block;font-size:.76rem;color:var(--muted);line-height:1.45}
.luna-say .say-stack p:has(small){background:rgba(255,255,255,.55)}
.her-say{justify-content:flex-end}
.her-say p{max-width:80%;background:var(--ink);color:#fff;border-radius:18px 18px 6px 18px;padding:10px 14px;font-size:.9rem;line-height:1.45}
@keyframes say-in{from{opacity:0;transform:translateY(8px)}}
.setup-panel{flex:none;background:rgba(255,253,251,.82);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);border-radius:26px;padding:16px;box-shadow:var(--hair),0 10px 34px rgba(74,48,38,.08);max-height:58vh;overflow:auto}
.setup-panel.final{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;max-height:none}
.setup-ui{display:flex;flex-direction:column;gap:10px}
.setup-q{margin:6px 0 0;font-size:.8rem;color:var(--muted);font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{padding:9px 14px;border-radius:99px;background:#fff;box-shadow:var(--hair);font-size:.86rem;font-weight:450;transition:background .15s,color .15s,box-shadow .15s}
.chip.selected{background:var(--ink);color:#fff;box-shadow:none}
.setup-input{width:100%;height:50px;border:0;border-radius:15px;background:#fff;box-shadow:var(--hair);padding:0 15px;font-size:1rem;outline:none}
.setup-input:focus{box-shadow:inset 0 0 0 1.5px var(--copper)}
.setup-input.small{height:44px;font-size:.88rem}
.setup-stepper{display:grid;grid-template-columns:1fr 38px 46px auto 38px;align-items:center;gap:6px;background:#fff;border-radius:15px;padding:7px 8px 7px 15px;box-shadow:var(--hair)}
.setup-stepper span{font-size:.88rem;color:var(--muted)}
.setup-stepper button{width:38px;height:38px;border-radius:12px;background:var(--rose-soft);font-size:1.15rem}
.setup-stepper b{text-align:center;font-size:1.5rem;font-weight:320;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.setup-stepper small{font-size:.72rem;color:var(--muted);margin-right:4px}
.setup-sub.hidden{display:none}
.setup-actions{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.setup-actions .primary{min-height:48px}
.text-link{color:var(--muted);font-size:.86rem;font-weight:500;padding:10px 4px}
.text-link.wide{display:block;width:100%;text-align:center;margin-top:6px}
.setup-done{text-align:center;padding:4px 6px 4px}
.setup-hero{width:120px;margin:0 auto 8px}
.setup-done h2{font-size:1.4rem;font-weight:540;margin-bottom:6px}
.setup-done p{font-size:.9rem;line-height:1.5;color:var(--ink);margin:0 0 6px}
.setup-done .muted.small{font-size:.78rem;margin-bottom:16px}

/* Einmaliges Angebot */
.offer-sheet{width:100%;max-width:520px;margin:0 auto;background:var(--cream);border-radius:28px 28px 0 0;padding:8px 22px calc(26px + env(safe-area-inset-bottom));text-align:center;transform:translateY(102%);transition:transform .42s cubic-bezier(.2,.85,.25,1);box-shadow:0 -15px 50px rgba(47,35,33,.12)}
.open .offer-sheet{transform:none}
.offer-luna{width:110px;margin:6px auto 10px}
.offer-sheet h2{font-size:1.3rem;font-weight:540;margin-bottom:8px}
.offer-sheet p{font-size:.9rem;line-height:1.5;color:var(--muted);margin:0 0 18px}

/* Einstellungen: Ueber dich */
.setup-card-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:6px}
.setup-card-head .say-avatar{width:40px;height:40px}
.setup-card-head h2{border:0;padding:0;margin:2px 0 4px}
.setup-card-head p{font-size:.8rem;color:var(--muted);line-height:1.45;margin:0}
.settings-card>label input:not([type]){border:0;background:var(--cream);border-radius:10px;padding:8px 10px;font-size:.82rem;width:52%;text-align:right}
.settings-action .ic{width:18px;height:18px}
.composer button{display:grid;place-items:center}
.composer button .ic{width:20px;height:20px;stroke-width:2}
@media(min-width:900px){.moon-ring{--size:320px}.setup{padding-top:40px}}
@media(prefers-reduced-motion:reduce){.say,.setup-lead{animation:none}}

/* ===== J2133: Sprachnachricht, Vorlesen, Gedächtnis, Tipp-Rückmeldung ===== */
.composer{position:relative}
.composer .send-button{display:none}
.composer.has-text .send-button{display:grid}
.composer.has-text .mic-button{display:none}
.composer .mic-button{width:40px;height:40px;border-radius:14px;background:var(--rose-soft);color:var(--copper-deep);display:grid;place-items:center;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.composer .mic-button .ic{width:20px;height:20px}
.rec-bar{display:none;flex:1;align-items:center;gap:9px;min-height:40px;font-size:.82rem;color:var(--ink)}
.rec-bar small{color:var(--muted);font-size:.7rem;flex:1}
.rec-bar #rec-time{font-variant-numeric:tabular-nums;font-weight:560}
.rec-bar #rec-cancel{font-size:.72rem;color:var(--muted);padding:6px 4px}
.rec-dot{width:9px;height:9px;border-radius:50%;background:var(--berry);animation:rec-pulse 1.1s ease-in-out infinite}
@keyframes rec-pulse{50%{opacity:.35;transform:scale(.8)}}
.composer.recording .rec-bar{display:flex}
.composer.recording label{display:none}
.composer.recording .mic-button{background:var(--berry);color:#fff;box-shadow:0 0 0 6px rgba(201,112,126,.16)}
.voice-tag{display:flex;align-items:center;gap:5px;font-size:.62rem;letter-spacing:.04em;text-transform:uppercase;opacity:.7;margin-bottom:4px;font-weight:560}
.voice-tag .ic{width:12px;height:12px}
.voice-wait{opacity:.75;font-style:italic}
.bubble .speak{display:none;margin-top:6px;color:var(--copper-deep);padding:2px 0}
.bubble .speak .ic{width:16px;height:16px}
.can-speak .bubble .speak{display:inline-flex}
@media (prefers-reduced-motion:reduce){.rec-dot{animation:none}}

.tip-why{font-size:.76rem!important;color:var(--copper-deep)!important;min-height:0!important;margin:-2px 0 8px;font-weight:500}
.tip-fb{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:.7rem;color:var(--muted)}
.tip-fb span{flex:1}
.tip-fb button{border-radius:99px;padding:5px 11px;font-size:.7rem;background:var(--cream);color:var(--ink)}
.tip-fb button.selected{background:var(--ink);color:#fff}

.mem-link{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.mem-link>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:2px}
.mem-link small{color:var(--muted);font-size:.74rem}
.mem-link-ic{width:40px;height:40px;border-radius:13px;background:var(--rose-soft);color:var(--copper-deep);display:grid;place-items:center}
.mem-link-ic .ic{width:21px;height:21px}
.mem-link>.ic{width:18px;height:18px;color:var(--muted)}
.memory-page h1{font-size:clamp(1.5rem,6.4vw,2.1rem)}
.mem-self-text{font-size:.84rem;line-height:1.6;color:var(--ink);background:var(--cream);border-radius:16px;padding:14px 15px;margin:14px 0 4px}
.mem-group{margin-top:16px}
.mem-group .eyebrow{margin-bottom:4px}
.mem-fact{border-bottom:1px solid var(--line)}
.mem-fact:last-child{border-bottom:0}
.mem-fact-text{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;text-align:left;padding:10px 0}
.mem-fact-text span{font-size:.86rem;line-height:1.4}
.mem-fact-text small{font-size:.66rem;color:var(--muted)}
.mem-edit{padding:10px 0;display:flex;flex-direction:column;gap:8px}
.mem-edit textarea{border:0;background:var(--cream);border-radius:12px;padding:10px;font-size:.86rem;resize:vertical}
.mem-edit div{display:flex;gap:8px;justify-content:flex-end}
.mem-edit button{border-radius:99px;padding:7px 13px;font-size:.74rem;background:var(--cream)}
.mem-edit .mem-del{color:var(--berry);margin-right:auto}
.mem-edit .mem-save{background:var(--ink);color:#fff}
.mem-add{display:flex;gap:8px;margin-top:16px}
.mem-add input{flex:1;border:0;background:var(--cream);border-radius:12px;padding:11px 12px;font-size:.82rem;min-width:0}
.mem-add button{width:42px;height:42px;border-radius:13px;background:var(--ink);color:#fff;display:grid;place-items:center}
.mem-add .ic{width:18px;height:18px}
.mem-empty{text-align:center;padding:10px 0}
.mem-empty .luna-fig{width:90px}
.mem-empty p{font-size:.82rem;color:var(--muted)}
.mem-fb{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.82rem;align-items:center}
.mem-fb:last-child{border-bottom:0}
.mem-fb span{grid-row:span 2;border-radius:99px;padding:4px 9px;font-size:.62rem;font-weight:560}
.mem-fb span.yes{background:rgba(127,169,140,.16);color:#4d7a5c}
.mem-fb span.no{background:rgba(201,112,126,.13);color:var(--berry)}
.mem-fb small{color:var(--muted);font-size:.66rem}
.composer .rec-bar #rec-cancel{width:auto;height:auto;background:none;color:var(--muted);border-radius:8px;font-size:.72rem;padding:6px 4px}
.can-speak .bubble .speak{display:flex}

/* Fotos/PDFs (J2136): Büroklammer im Chat, Vorschau-Leiste, Kacheln im Verlauf und am Eintrag */
.composer .attach-button{width:36px;height:40px;margin-left:-8px;background:transparent;color:var(--muted);border-radius:12px;display:grid;place-items:center;flex:0 0 auto}
.composer .attach-button .ic{width:20px;height:20px;stroke-width:1.7}
.composer .attach-button:active{background:var(--rose-soft);color:var(--copper-deep)}
.composer.recording .attach-button{display:none}
.attach-tray{display:none;gap:8px;padding:0 4px 8px;overflow-x:auto;scrollbar-width:none}
.attach-tray.open{display:flex}
.tray-item{position:relative;margin:0;flex:0 0 auto;width:64px;height:64px;border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--hair),0 6px 18px rgba(74,48,38,.10)}
.tray-item img{width:100%;height:100%;object-fit:cover;display:block}
.tray-item.loading img{opacity:.45}
.tray-item.loading::after{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;border-radius:50%;border:2px solid var(--copper);border-right-color:transparent;animation:luna-spin .8s linear infinite}
.tray-doc{display:grid;place-items:center;align-content:center;gap:2px;height:100%;font-size:.62rem;font-weight:560;color:var(--copper-deep)}
.tray-doc .ic{width:22px;height:22px}
.tray-item button{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:rgba(48,45,43,.72);color:#fff;display:grid;place-items:center;padding:0}
.tray-item button .ic{width:12px;height:12px;stroke-width:2.2}
@keyframes luna-spin{to{transform:rotate(360deg)}}
.bubble-files{display:flex;flex-wrap:wrap;gap:6px;margin:-3px -5px 8px}
.bubble-files:last-child{margin-bottom:-3px}
.file-tile{position:relative;margin:0;width:150px;border-radius:13px;overflow:hidden;background:rgba(255,255,255,.08)}
.theirs .file-tile,.entry-photo .file-tile{background:var(--rose-soft)}
.file-tile img{display:block;width:100%;height:150px;object-fit:cover}
.file-tile figcaption{font-size:.66rem;line-height:1.3;padding:6px 8px 7px;opacity:.86}
.file-doc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:96px;color:inherit;text-decoration:none;font-size:.68rem;font-weight:540}
.file-doc .ic{width:26px;height:26px}
.file-del{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:rgba(48,45,43,.62);color:#fff;display:grid;place-items:center;padding:0;opacity:.9}
.file-del .ic{width:13px;height:13px;stroke-width:2.2}
.file-tile.gone{display:flex;align-items:center;gap:6px;width:auto;padding:8px 10px;font-size:.68rem;opacity:.7;background:transparent;box-shadow:inset 0 0 0 1px currentColor}
.file-tile.gone .ic{width:15px;height:15px}
.entry-photos{display:grid;gap:10px;margin-bottom:12px}
.entry-photos:empty{display:none}
.entry-photo{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:start;background:#fff;border-radius:16px;padding:8px;box-shadow:var(--hair)}
.entry-photo .file-tile{width:96px}
.entry-photo .file-tile img{height:96px}
.entry-photo .file-tile.gone{grid-column:1/-1}
.entry-photo-text{font-size:.74rem;line-height:1.45;padding-top:2px}
.entry-photo-text b{display:block;font-weight:600;margin-bottom:2px}
.entry-photo-text p{margin:0;color:var(--muted);white-space:pre-line}
.photo-wait{font-style:italic}
.add-photo{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;border:1px dashed var(--rose);border-radius:15px;background:#fffaf7;color:var(--copper-deep);font-size:.76rem;font-weight:560}
.add-photo .ic{width:19px;height:19px}
.add-photo:disabled{opacity:.5}

/* Feinschliff J2141 (GF 15.10.): einheitlicher Seitenabstand + Safe-Area, nichts stößt an, Leiste näher am Rand.
   --gutter ist der eine Seitenabstand aller Ansichten; links/rechts zählt zusätzlich die Safe-Area (Querformat/Notch). */
:root{--gutter:20px;--gl:max(var(--gutter),env(safe-area-inset-left));--gr:max(var(--gutter),env(safe-area-inset-right))}
.page-pad,.today-page,.calendar-page,.tips-page,.settings-page,.tee-page,.memory-page{padding-left:var(--gl);padding-right:var(--gr)}
/* Wisch-Leisten: laufen randlos bis an den Bildschirm, rasten aber eingerückt ein (scroll-padding) und behalten rechts
   ihren Abstand auch in Safari (Abstandhalter statt padding-right, das Safari in Flex-Scrollern verschluckt). */
.card-rail,.quick-row,.phase-tabs{margin-left:calc(var(--gl) * -1);margin-right:calc(var(--gr) * -1);padding-left:var(--gl);padding-right:0;scroll-padding-inline:var(--gl) var(--gr);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.card-rail:after,.quick-row:after,.phase-tabs:after{content:"";flex:0 0 1px;margin-left:calc(var(--gr) - 1px - 14px)}
.quick-row:after,.phase-tabs:after{margin-left:calc(var(--gr) - 1px - 8px)}
.card-rail{scroll-snap-type:x mandatory}
.tip-card{flex-basis:min(calc(100vw - var(--gl) - var(--gr) - 34px),330px);scroll-snap-align:start;scroll-snap-stop:always}
@media(min-width:700px){.card-rail{margin-left:0;margin-right:0;padding-left:0;scroll-padding-inline:0}.card-rail:after{display:none}.tip-card{flex-basis:320px}}
/* Untere Leiste: näher an den Rand, aber über dem Home-Indicator (Safe-Area minus 10 px, mind. 12 px ohne Safe-Area). */
.tabbar{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,calc(env(safe-area-inset-bottom) - 10px))}
.view{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
.toast{bottom:calc(94px + max(12px,calc(env(safe-area-inset-bottom) - 10px)))}
@media(min-width:900px){.tabbar{left:0;right:auto;bottom:0}}
.assist-page{padding-left:var(--gl);padding-right:var(--gr);padding-bottom:calc(90px + max(12px,calc(env(safe-area-inset-bottom) - 10px)))}
.setup{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
@media(min-width:900px){.assist-page{padding-bottom:32px}}
/* J2141: gelernte Entscheidungen im Gedächtnis, Tipp-Karte als Ganzes antippbar */
.mem-hint{font-size:.76rem;color:var(--muted);line-height:1.45;margin:-4px 0 6px}
.mem-dec{grid-template-columns:auto 1fr auto}
.mem-dec .mem-dec-del{grid-row:1/3;grid-column:3;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.mem-dec .mem-dec-del .ic{width:15px;height:15px}
.tip-card[data-open-tip]{cursor:pointer}
/* Codex-Review J2141: Tastatur/Viewport, doppelter Scrollbereich im Chat, Filterzeile, Toast, lange Wörter, Querformat */
.assist-page{min-height:0}
.view-assist{min-height:0;padding-bottom:0}
.log-sheet{max-height:calc(var(--viewport-height) - max(8px,env(safe-area-inset-top)))}
.setup,.auth-page{min-height:var(--viewport-height)}
.setup-panel{max-height:58%}
.sheet-backdrop{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.filter-row{margin-left:calc(var(--gl) * -1);margin-right:calc(var(--gr) * -1);padding-left:var(--gl);padding-right:0;scroll-padding-inline:var(--gl) var(--gr)}
.filter-row:after{content:"";flex:0 0 1px;margin-left:calc(var(--gr) - 1px - 7px)}
.toast{max-width:calc(100vw - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right)));white-space:normal;text-align:center}
.bubble,.luna-greet p,.entry-photo-text{min-width:0;overflow-wrap:anywhere}
.view .tee-page{padding-left:var(--gl);padding-right:var(--gr)}
html,body{overflow-x:clip}
.mem-dec span{min-width:78px;text-align:center}
