/* Remedi-App (PWA). Gebaut für das iPhone im Hochformat: eine Aufgabe je Ansicht, große Ziele, sichere Ränder. */
:root{--tabs-h:64px;--toast-offset:16px}
html.rm-large{font-size:118%}
.ap{background:var(--rm-bg-canvas);overscroll-behavior-y:none}
.ap:not(.ap--bare){--toast-offset:calc(var(--tabs-h) + 12px)}
.ap-root{min-height:100dvh}
.ap a.rm-link,.ap button.rm-link{justify-self:start}
.sh-step__no{display:grid;place-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:99px;background:var(--rm-bg-brand-subtle);color:var(--rm-action-secondary-text);font-weight:600;flex:none}

/* ---------- Ladezustand ---------- */
.ap-splash{min-height:100dvh;display:grid;place-items:center;color:var(--rm-text-link)}
.ap-splash__mark{height:72px;width:auto;animation:ap-breathe 1.6s var(--rm-ease-standard) infinite alternate}
@keyframes ap-breathe{from{opacity:.35}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.ap-splash__mark{animation:none}}

/* ---------- Ansichten ohne Rahmen: Anmelden, Einrichtung ---------- */
.ap-bare{max-width:520px;margin-inline:auto;min-height:100dvh;display:grid;gap:var(--rm-space-6);align-content:start;padding:calc(var(--rm-space-6) + env(safe-area-inset-top)) var(--gutter) calc(var(--rm-space-10) + env(safe-area-inset-bottom))}
.ap-bare__logo{justify-self:start;font-size:1.75rem;text-decoration:none;margin-bottom:var(--rm-space-6);min-height:48px;display:flex;align-items:center}
.ap-slotpick{display:grid;grid-template-columns:1fr 132px;gap:var(--rm-space-3);align-items:stretch}
.ap-slotpick .rm-input{height:100%;min-height:56px}
.ap-claimart{width:120px;margin-inline:auto}

/* ---------- Rahmen ---------- */
.ap-shell{max-width:680px;margin-inline:auto;min-height:100dvh;display:flex;flex-direction:column}
.ap-top{position:sticky;top:0;z-index:var(--rm-z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--rm-space-3);min-height:60px;padding:calc(env(safe-area-inset-top) + 4px) var(--gutter) 4px;background:var(--rm-bg-canvas)}
.ap-who{display:inline-flex;align-items:center;gap:var(--rm-space-3);min-height:48px;padding-right:var(--rm-space-2);border-radius:var(--rm-radius-full);font-weight:700;color:var(--rm-text-primary);max-width:100%}
.ap-who__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-content:center;background:var(--rm-bg-brand-subtle);color:var(--rm-action-secondary-text);font-weight:800;flex:none}
.ap-back{display:inline-flex;align-items:center;gap:var(--rm-space-1);min-height:48px;font-weight:700;text-decoration:none;color:var(--rm-text-link);margin-left:-6px}
.ap-main{flex:1;display:grid;gap:var(--rm-space-6);align-content:start;padding:var(--rm-space-2) var(--gutter) calc(var(--tabs-h) + var(--rm-space-12) + env(safe-area-inset-bottom))}
.ap-main>*{min-width:0}
.ap-tabs{position:fixed;left:0;right:0;bottom:0;z-index:var(--rm-z-sticky);display:grid;grid-template-columns:repeat(5,1fr);max-width:680px;margin-inline:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--rm-bg-raised);border-top:1px solid var(--rm-border-subtle);box-shadow:0 -4px 16px rgba(31,30,28,.06)}
.ap-tabs a{display:grid;justify-items:center;gap:2px;min-height:52px;align-content:center;border-radius:var(--rm-radius-lg);text-decoration:none;color:var(--rm-text-muted);font:500 .8125rem/1.2 var(--rm-font-sans)}
.ap-tabs a[aria-current="page"]{color:var(--rm-action-secondary-text);font-weight:700;background:var(--rm-bg-brand-subtle)}
.ap-tabs a:active{background:var(--rm-bg-sunken)}
.ap-date{font:500 var(--rm-type-data)/1.4 var(--rm-font-mono);color:var(--rm-text-muted);margin-bottom:calc(var(--rm-space-3) * -1)}
.ap-head{display:grid;gap:var(--rm-space-2)}
.ap-foot{text-align:center;max-width:44ch;margin-inline:auto}
.ap-close{display:inline-flex;align-items:center;gap:var(--rm-space-2);min-height:48px;padding:0 var(--rm-space-2);font-weight:500;font-size:var(--rm-type-body-sm);border-radius:var(--rm-radius-full);margin:-8px -8px 0 0;white-space:nowrap}
.ap-edit{display:inline-flex;align-items:center;gap:var(--rm-space-1);min-height:48px;padding:0 var(--rm-space-2);color:var(--rm-text-link);font-weight:700;font-size:var(--rm-type-body-sm);text-decoration:underline;text-underline-offset:.2em;flex:none}
.ap-inline{display:inline;vertical-align:-4px}
.ap-details summary{display:flex;justify-content:space-between;align-items:center;gap:var(--rm-space-3);min-height:48px;cursor:pointer;list-style:none;color:var(--rm-text-link);font-weight:700;font-size:var(--rm-type-body-sm)}
.ap-details summary::-webkit-details-marker{display:none}
.ap-details[open] summary .rm-icon{transform:rotate(180deg)}

/* ---------- Heute ---------- */
.ap-now{position:relative;display:grid;gap:var(--rm-space-4);padding:var(--rm-space-6);border-radius:var(--rm-radius-xl);background:var(--rm-bg-surface);border:1px solid var(--rm-border-subtle);overflow:hidden;isolation:isolate}
.ap-now--due{border:2px solid var(--rm-info-icon)}
.ap-now--open{border:2px solid var(--rm-error-icon)}
.ap-now--calm{background:var(--rm-bg-brand);color:var(--rm-on-dark-text);border:0;--rm-text-secondary:var(--rm-on-dark-text-secondary)}
.ap-now--calm .rm-eyebrow{color:var(--rm-on-dark-accent)}
.ap-now--calm .rm-badge{justify-self:start}
.ap-now__time{font:800 var(--rm-type-h1)/1.1 var(--rm-font-sans);letter-spacing:-.015em;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--rm-space-3)}
.ap-now__time .rm-data{font-size:1em;font-weight:600}
.ap-now__art{position:relative;width:96px;justify-self:center;margin-block:var(--rm-space-4) var(--rm-space-2)}
.ap-now__art .rm-rings{top:23%}
.ap-now--due .ap-now__art .rm-rings i:first-child{animation:ap-ring 2.4s var(--rm-ease-standard) infinite}
@keyframes ap-ring{0%,100%{opacity:.9}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.ap-now--due .ap-now__art .rm-rings i:first-child{animation:none}}
.ap-now__how{display:flex;gap:var(--rm-space-3);align-items:flex-start;padding:var(--rm-space-4);border-radius:var(--rm-radius-lg);background:var(--rm-info-tint);color:var(--rm-info-text);line-height:1.45}
.ap-now__how .rm-icon{color:var(--rm-info-icon)}
.ap-meds{display:grid;gap:var(--rm-space-2);list-style:none}
.ap-meds li{display:flex;gap:var(--rm-space-3);align-items:baseline;line-height:1.4}
.ap-meds .rm-data{min-width:2.6em;color:var(--rm-text-secondary)}
.ap-meds small{display:block;font-size:var(--rm-type-caption);color:var(--rm-text-muted)}
.ap-day{display:grid;gap:var(--rm-space-2)}
.ap-list{display:grid;list-style:none}
.ap-list li{display:flex;flex-wrap:wrap;gap:var(--rm-space-2) var(--rm-space-4);align-items:center;padding-block:var(--rm-space-3);border-top:1px solid var(--rm-border-subtle);line-height:1.35}
.ap-list li:first-child{border-top:0}
.ap-list__time{min-width:3.2em}
.ap-list .rm-grow{flex:1 1 9.5rem}
.ap-list b{hyphens:manual}
.ap-list .rm-badge{white-space:normal}
.ap-check{display:grid;gap:var(--rm-space-2)}
.ap-check ul{list-style:none;display:grid}
.ap-check__row{display:flex;gap:var(--rm-space-3);align-items:center;min-height:52px;text-decoration:none;color:var(--rm-text-primary);font-weight:500;border-top:1px solid var(--rm-border-subtle)}
.ap-check li:first-child .ap-check__row{border-top:0}
.ap-check__row>span{flex:1}
.ap-check a.ap-check__row>.rm-icon:first-child{color:var(--rm-border-strong)}
.ap-check .is-done .ap-check__row{color:var(--rm-text-muted)}
.ap-check .is-done .rm-icon{color:var(--rm-success-icon)}
.ap-scan{display:grid;gap:var(--rm-space-5);justify-items:center;text-align:center}
.ap-scan__art{position:relative;width:104px;margin-block:64px 56px}
.ap-scan__art .rm-rings{top:23%}
.ap-scan__art .rm-pulse{--pulse:140px}

/* ---------- Plan ---------- */
.ap-slot{display:grid;gap:var(--rm-space-3)}
.ap-slot>*{min-width:0}
.ap-main h2,.ap-main h3,.ap-main b{overflow-wrap:anywhere}
.ap-slot.is-off{opacity:.62}
.ap-slot__head{display:flex;gap:var(--rm-space-4);align-items:center;justify-content:space-between;margin-bottom:calc(var(--rm-space-2) * -1)}
.ap-slot__time{font-size:1.5rem;font-weight:600;color:var(--rm-action-secondary-text)}
.ap-medlist{display:grid;gap:var(--rm-space-3);list-style:none}
.ap-medlist li{display:flex;gap:var(--rm-space-3);align-items:flex-start}
.ap-dose{display:grid;grid-template-columns:1fr 104px;gap:var(--rm-space-3);align-items:stretch}
.ap-dose .rm-input{height:100%;min-height:56px}

/* ---------- Verlauf ---------- */
.ap-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--rm-space-3)}
.ap-stats__num{font:800 var(--rm-type-h1)/1.05 var(--rm-font-sans);letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.ap-stats__num span{font:500 var(--rm-type-body-sm)/1 var(--rm-font-mono);color:var(--rm-text-muted);letter-spacing:0}
.ap-cal{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;list-style:none}
.ap-cal li,.ap-legend i{aspect-ratio:1;border-radius:8px;display:grid;place-content:center;border:1.5px solid var(--rm-border-default);color:var(--rm-text-muted)}
.ap-cal .is-all,.ap-legend .is-all{background:var(--rm-success-icon);border-color:var(--rm-success-icon);color:var(--rm-bg-surface)}
.ap-cal .is-some,.ap-legend .is-some{background:var(--rm-warning-tint);border-color:var(--rm-warning-icon);color:var(--rm-warning-text)}
.ap-cal .is-zero,.ap-legend .is-zero{background:var(--rm-error-tint);border-color:var(--rm-error-icon);color:var(--rm-error-text)}
.ap-cal svg,.ap-legend svg{stroke-width:3}
.ap-legend{display:flex;flex-wrap:wrap;gap:var(--rm-space-2) var(--rm-space-4);list-style:none;font-size:var(--rm-type-caption);color:var(--rm-text-secondary)}
.ap-legend li{display:inline-flex;gap:var(--rm-space-2);align-items:center}
.ap-legend i{width:22px}
.ap-hday{display:grid;gap:var(--rm-space-1)}
.ap-log{display:grid;list-style:none;font-size:var(--rm-type-body-sm);line-height:1.45}
.ap-log li{display:grid;grid-template-columns:auto 1fr;gap:var(--rm-space-4);padding-block:var(--rm-space-3);border-top:1px solid var(--rm-border-subtle)}
.ap-log .rm-data{color:var(--rm-text-muted);font-size:var(--rm-type-caption);white-space:nowrap;padding-top:2px}

/* ---------- Familie ---------- */
.ap-people{display:grid;gap:var(--rm-space-3);list-style:none}
.ap-people li{display:flex;gap:var(--rm-space-3);align-items:center;line-height:1.35}
.ap-people li>.rm-icon{color:var(--rm-success-icon)}
.ap-chain{display:grid;gap:var(--rm-space-3);list-style:none}
.ap-chain li{display:flex;gap:var(--rm-space-3);align-items:center;padding:var(--rm-space-4);line-height:1.35}
.ap-chain__no{width:36px;height:36px;border-radius:50%;display:grid;place-content:center;background:var(--rm-action-primary-bg);color:var(--rm-text-on-action);font-weight:600;flex:none}
.ap-chain__tools{display:flex;flex:none;margin-right:-8px}
.ap-invite{display:flex;gap:var(--rm-space-4);align-items:center;border-style:dashed;border-color:var(--rm-border-strong)}
.ap-invite__code{font-size:1.375rem;letter-spacing:.12em;font-weight:600}
.ap-code{display:grid;justify-items:center;gap:var(--rm-space-2);padding:var(--rm-space-6) var(--rm-space-4);border-radius:var(--rm-radius-lg);background:var(--rm-bg-sunken)}
.ap-code .rm-data{font-size:2.25rem;font-weight:600;letter-spacing:.14em;line-height:1}
.ap-code small{font-size:var(--rm-type-caption);color:var(--rm-text-muted)}

/* ---------- Mehr ---------- */
.ap-menu{display:grid;list-style:none;background:var(--rm-bg-surface);border:1px solid var(--rm-border-subtle);border-radius:var(--rm-radius-lg);overflow:hidden}
.ap-menu li+li{border-top:1px solid var(--rm-border-subtle)}
.ap-row{display:flex;gap:var(--rm-space-4);align-items:center;min-height:72px;padding:var(--rm-space-3) var(--rm-space-4);text-decoration:none;color:var(--rm-text-primary);line-height:1.3}
.ap-row:active{background:var(--rm-bg-sunken)}
.ap-row small{display:block;font-size:var(--rm-type-caption);color:var(--rm-text-muted);margin-top:2px}
.ap-row>.rm-icon:last-child{color:var(--rm-text-muted)}
.ap-menu--plain .ap-row{min-height:60px}
.ap-menu--plain .ap-row>.rm-icon:first-child{color:var(--rm-text-secondary);margin-inline:12px}
.ap-devices{display:grid;gap:var(--rm-space-3);list-style:none}
.ap-devices li{display:flex;gap:var(--rm-space-5);align-items:flex-start}
.ap-device__art{width:56px;flex:none}
.ap-linkbox{display:grid;gap:var(--rm-space-2);padding:var(--rm-space-3) var(--rm-space-4);border-radius:var(--rm-radius-md);background:var(--rm-bg-sunken);margin-top:var(--rm-space-2)}
.ap-linkbox .rm-data{word-break:break-all;font-size:var(--rm-type-caption);line-height:1.5;-webkit-user-select:all;user-select:all}
.ap-linkbox .rm-btn{justify-self:start}
.ap-howto{display:grid;gap:var(--rm-space-6);list-style:none}
.ap-howto li{display:flex;gap:var(--rm-space-4);align-items:flex-start}
.ap-howto li>div{flex:1;min-width:0;display:grid;gap:var(--rm-space-2);line-height:1.45}
.ap-wait{display:flex;gap:var(--rm-space-3);align-items:center;min-height:36px;font-size:var(--rm-type-body-sm);font-weight:700}
.ap-wait__dot{width:12px;height:12px;border-radius:50%;background:var(--rm-warning-icon);animation:ap-breathe 1s var(--rm-ease-standard) infinite alternate}
.ap-pushlist{display:grid;gap:var(--rm-space-4);list-style:none}
.ap-pushlist li{display:grid;gap:var(--rm-space-1)}
.ap-pushlist .rm-push{box-shadow:var(--rm-shadow-e1)}
.ap-sessions{display:grid;list-style:none}
.ap-sessions li{display:flex;gap:var(--rm-space-3);align-items:center;padding-block:var(--rm-space-3);border-top:1px solid var(--rm-border-subtle);line-height:1.35}
.ap-people--cards li{padding:var(--rm-space-4)}
button.rm-choice{width:100%;text-align:left;font:inherit}
button.rm-choice[aria-current="true"]{border-color:var(--rm-action-primary-bg);background:var(--rm-bg-brand-subtle)}

/* ---------- Seite hinter dem NFC-Link ---------- */
.tp{min-height:100dvh;max-width:520px;margin-inline:auto;display:grid;grid-template-rows:1fr auto auto;gap:var(--rm-space-6);padding:calc(var(--rm-space-8) + env(safe-area-inset-top)) var(--gutter) calc(var(--rm-space-8) + env(safe-area-inset-bottom));text-align:center}
.tp-art{position:relative;display:grid;place-items:center;min-height:300px}
.tp-mark{position:relative;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:var(--rm-bg-brand-subtle);color:var(--rm-action-secondary-text);transition:background-color var(--rm-duration-slow) var(--rm-ease-standard),color var(--rm-duration-slow) var(--rm-ease-standard)}
.tp-mark svg{height:52px;width:auto}
.tp-mark .rm-icon{width:56px;height:56px;stroke-width:3}
.tp[data-state="laden"] .tp-mark{animation:ap-breathe 1s var(--rm-ease-standard) infinite alternate}
.tp[data-state="ok"] .tp-mark{background:var(--rm-success-icon);color:var(--rm-bg-surface)}
.tp[data-state="ok"] .rm-rings i{border-color:var(--rm-success-icon)}
.tp[data-state="fehler"] .tp-mark{background:var(--rm-error-tint);color:var(--rm-error-icon)}
.tp[data-state="fehler"] .rm-rings{opacity:.3}
.tp-text{display:grid;gap:var(--rm-space-3);justify-items:center}
.tp-actions{display:grid;gap:var(--rm-space-3);min-height:56px}
@media (prefers-reduced-motion:reduce){.tp[data-state="laden"] .tp-mark,.ap-wait__dot{animation:none}}
