@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/plus-jakarta-sans-latin-ext-DmpS2jIq.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/plus-jakarta-sans-latin-eXO_dkmS.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#eef3ee;--card:#ffffff;--ink:#10241b;--muted:#74867d;--line:#e6ede8;--green:#1fc16b;--green-d:#15a85a;--green-soft:#e6f8ee;--accent:#ff7a4d;--danger:#e5484d;--radius:20px;--shadow:0 10px 30px rgba(16,36,27,.07);--shadow-sm:0 2px 8px rgba(16,36,27,.05)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:radial-gradient(1200px 500px at 100% -10%,#d8f1e2,#d8f1e200 60%),var(--bg);color:var(--ink);line-height:1.5;letter-spacing:-.01em}a{color:var(--green-d);text-decoration:none}a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fffc;-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);padding:.7rem max(1.4rem,env(safe-area-inset-right)) .7rem max(1.4rem,env(safe-area-inset-left));position:sticky;top:0;z-index:10}.topbar .brand{font-weight:800;font-size:1.05rem;display:flex;align-items:center;gap:.55rem}.topbar .brand-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:1.05rem;background:linear-gradient(135deg,#23d178,#0f9a59);box-shadow:0 4px 10px #1fc16b4d}.topbar nav{display:flex;align-items:center;gap:.4rem}.topbar nav a{color:var(--muted);font-weight:600;font-size:.92rem;padding:.45rem .9rem;border-radius:999px;transition:.15s}.topbar nav a:hover{color:var(--ink);text-decoration:none;background:var(--green-soft)}.topbar nav a.active{color:var(--green-d);background:var(--green-soft)}.topbar .who{margin-left:.3rem;color:var(--green-d);background:var(--green-soft);padding:.35rem .8rem;border-radius:999px;font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;gap:.4rem}.topbar .who:before{content:"🌱"}.topbar .logout{color:var(--danger);background:none;border:1px solid transparent;cursor:pointer;font-size:.9rem;font-weight:600;padding:.45rem .8rem;border-radius:999px}.topbar .logout:hover{background:#fdecec}main{max-width:1100px;margin:1.6rem auto;padding:0 max(1.2rem,env(safe-area-inset-right)) 0 max(1.2rem,env(safe-area-inset-left))}.foot{max-width:1100px;margin:2rem auto;padding:1rem;color:var(--muted);font-size:.78rem;text-align:center}.center{text-align:center;padding:2.5rem;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;margin-bottom:1.2rem;box-shadow:var(--shadow)}h1{font-size:1.4rem;font-weight:800;margin:.1rem 0 .5rem}h2{font-size:1.12rem;font-weight:700;margin:.1rem 0 .8rem}.muted{color:var(--muted)}.small{font-size:.82rem}.hint{background:linear-gradient(180deg,#fff7ef,#fffdfb);border-color:#ffe2cf}.flash{padding:.7rem 1rem;border-radius:14px;margin-bottom:.9rem;font-size:.92rem;font-weight:500}.flash.ok{background:var(--green-soft);color:var(--green-d);border:1px solid #bdebcd}.flash.error{background:#fdecec;color:#b42318;border:1px solid #f6cecf}label{display:block;font-size:.82rem;color:var(--muted);font-weight:600;margin-bottom:.8rem}input,select{width:100%;min-width:0;max-width:100%;padding:.62rem .8rem;border:1.5px solid var(--line);border-radius:13px;font:inherit;font-size:.95rem;background:#f6faf7;color:var(--ink);margin-top:.3rem;transition:.15s}input:focus,select:focus{outline:none;border-color:var(--green);background:#fff;box-shadow:0 0 0 4px #1fc16b24}select{cursor:pointer}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none}button{cursor:pointer;font:inherit}.primary{background:var(--green);color:#fff;border:none;border-radius:999px;padding:.65rem 1.4rem;font-weight:700;box-shadow:0 8px 18px #1fc16b47;transition:.15s}.primary:hover{background:var(--green-d);transform:translateY(-1px)}.primary:disabled{opacity:.55;box-shadow:none;transform:none;cursor:default}.btn-secondary{padding:.65rem 1.2rem;border:1.5px solid var(--line);border-radius:999px;color:var(--ink);background:#fff;font-weight:600}.btn-secondary:hover{background:var(--bg)}.login-card{max-width:400px;margin:3.5rem auto;text-align:center}.login-card .logo{width:64px;height:64px;border-radius:20px;margin:0 auto 1rem;display:grid;place-items:center;font-size:2rem;background:linear-gradient(135deg,#23d178,#0f9a59);box-shadow:0 12px 26px #1fc16b59}.login-card form{text-align:left;margin-top:1rem}.login-card .primary{width:100%;margin-top:.4rem}.controls .ctrl label{margin-bottom:.25rem}.ctrl-row{display:flex;flex-wrap:wrap;gap:1.1rem;align-items:flex-end}.ctrl-row .ctrl{flex:1 1 200px;min-width:180px;max-width:320px}.ctrl-toggles{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line)}.ctrl-toggles>label{margin-bottom:.55rem}.pgrid{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.1rem}.chk{display:inline-flex;align-items:center;gap:.35rem;margin:0;cursor:pointer;border:1.5px solid var(--line);background:#fff;color:var(--muted);padding:.35rem .8rem;border-radius:999px;font-size:.85rem;font-weight:600;transition:.15s;-webkit-user-select:none;user-select:none}.chk:hover{border-color:#cfe5d8}.chk input{position:absolute;opacity:0;width:0;height:0;margin:0}.chk:has(input:checked){background:var(--green-soft);border-color:var(--green);color:var(--green-d)}.chk:has(input:checked):before{content:"✓";font-weight:800;font-size:.78rem}.chart{padding:.6rem}.js-plotly-plot{border-radius:14px;overflow:hidden}.chart-title{font-size:.95rem;font-weight:700;line-height:1.3;margin:.2rem .4rem .5rem;color:var(--ink)}.measform{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;align-items:end}.measform label{margin-bottom:0;min-width:0}.measform .grow{grid-column:1/-1}.measform input{min-width:0}.measform button{justify-self:start;align-self:end}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.2rem}table.data{width:100%;min-width:560px;border-collapse:separate;border-spacing:0;font-size:.9rem}table.data th,table.data td{text-align:left;padding:.7rem;border-bottom:1px solid var(--line);white-space:nowrap}table.data td.note{white-space:normal;min-width:160px}table.data thead th{color:var(--muted);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1.5px solid var(--line)}table.data tbody tr{transition:.12s}table.data tbody tr:hover{background:#f7faf8}.actions{white-space:nowrap;text-align:right}.actions .link,.actions .link-danger{background:#f3f7f4;border:1px solid var(--line);border-radius:10px;width:30px;height:30px;font-size:.95rem;margin-left:.3rem;display:inline-flex;align-items:center;justify-content:center}.actions .link:hover{background:var(--green-soft);border-color:var(--green)}.actions .link-danger{color:var(--danger)}.actions .link-danger:hover{background:#fdecec;border-color:#f6cecf}.cat{font-size:.74rem;padding:.18rem .6rem;border-radius:999px;white-space:nowrap;font-weight:700}.cat-normalgewicht{background:var(--green-soft);color:var(--green-d)}.cat-übergewicht{background:#fff1e3;color:#c2620f}.cat-adipositas{background:#fdecec;color:#b42318}.cat-untergewicht{background:#e8f1fe;color:#1d6fd6}@media (max-width:640px),(orientation:landscape) and (max-height:600px){main{margin:.6rem auto;padding:0 max(.55rem,env(safe-area-inset-right)) 0 max(.55rem,env(safe-area-inset-left))}.card{padding:1rem .9rem;margin-bottom:.7rem;border-radius:16px}.foot{margin:1rem auto;padding:.6rem}.topbar{flex-wrap:wrap;gap:.35rem;padding:.45rem max(.7rem,env(safe-area-inset-right)) .45rem max(.7rem,env(safe-area-inset-left))}.topbar nav{flex-wrap:wrap;justify-content:flex-end;gap:.3rem;min-width:0}.topbar nav a,.topbar .logout{padding:.38rem .65rem}.topbar .who{margin-left:0}h1{font-size:1.2rem;margin:0 0 .4rem}h2{font-size:1.04rem}.chart{padding:.35rem}.measform{gap:.85rem}}@media (max-width:640px){.controls{flex-direction:column;align-items:stretch}.measform{grid-template-columns:minmax(0,1fr)}.measform .grow{grid-column:auto}}
