@font-face{font-family:Inter;font-style:normal;font-weight:400 700;
font-display:swap;src:url(/static/inter-latin.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}
@font-face{font-family:Inter;font-style:normal;font-weight:400 700;
font-display:swap;src:url(/static/inter-latin-ext.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:Lora;font-style:normal;font-weight:400 700;
font-display:swap;src:url(/static/lora-latin.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}
@font-face{font-family:Lora;font-style:normal;font-weight:400 700;
font-display:swap;src:url(/static/lora-latin-ext.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}
:root{--red:#B73545;--bordeaux:#542631;--gold:#E6B649;--bg:#F7F2E9;--muted:#70545A;
--accent:#792D38;--faint:#82716E;--line:#E4D8D1;--line2:#CBBDB8;--line3:#EDE5DF;
--card:#FFFFFF;--input:#FFFEFC}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--bordeaux);
font-family:Inter,system-ui,sans-serif;line-height:1.55}
.serif{font-family:Lora,Georgia,serif}
a{color:var(--accent)}
main{max-width:70rem;margin:0 auto;padding:1rem 1.5rem 4rem}
footer{text-align:center;color:var(--bordeaux);font-size:.85rem;padding:2rem 1rem}
.nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;
max-width:70rem;margin:0 auto;padding:1.2rem 1.5rem}
.nav .brand{display:flex;align-items:center;gap:.6rem;font-family:Lora,serif;
font-weight:600;font-size:1.3rem;color:var(--bordeaux);text-decoration:none}
.nav img{width:44px;height:37px}
.nav span{font-size:.8rem;font-weight:400;color:var(--accent)}
@media(max-width:40rem){
.nav{padding:1rem}
.nav>span{display:none}
.nav .brand{font-size:1.05rem;white-space:nowrap}
.nav img{width:36px;height:30px}
main{padding:0 1rem 3rem}
.card{padding:1.3rem}
.cols{margin-top:.5rem}}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:2rem}
@media(max-width:56rem){.cols{grid-template-columns:1fr;gap:2rem}}
h1{font-family:Lora,serif;font-weight:500;font-size:clamp(2rem,4.5vw,3.25rem);
line-height:1.12;margin:.6rem 0 1rem}
.intro{color:var(--muted);font-size:1.05rem;max-width:30rem}
.pricebox{border:1px solid #DCCBC6;border-radius:12px;padding:1.1rem 1.3rem;
margin:1.6rem 0;max-width:26rem}
.pricebox b{display:block;font-size:1.35rem;font-weight:600}
.pricebox p{margin:.4rem 0 0;color:var(--muted);font-size:.92rem}
.motto{font-family:Lora,serif;font-size:1.35rem;color:var(--accent);margin:1.6rem 0 .2rem}
.motto+p{margin:0;color:var(--muted);font-size:.85rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;
padding:1.8rem}
.card h2{font-family:Lora,serif;font-weight:700;font-size:1.75rem;margin:0 0 1.2rem}
.step{font-weight:700;font-size:.95rem;margin:1.4rem 0 .7rem}
.amounts{display:flex;gap:.7rem}
.amounts label{flex:1;display:block;background:var(--input);border:1px solid var(--line2);
border-radius:8px;padding:.7rem .8rem;cursor:pointer;
transition:background-color 150ms ease-out,border-color 150ms ease-out}
.amounts input{position:absolute;opacity:0}
.amounts .chf{font-size:.7rem;font-weight:600;color:var(--accent);display:flex;
justify-content:space-between;align-items:center}
.amounts .dot{width:14px;height:14px;border-radius:50%;border:1px solid #AA9892;
background:var(--input);
transition:background-color 150ms ease-out,border-color 150ms ease-out}
.amounts b{font-size:1.6rem;font-weight:600;display:block;margin-top:.15rem}
.amounts small{color:var(--muted);font-size:.75rem}
.amounts label:has(input:checked){background:#FBEEEE;border-color:var(--red)}
.amounts label:has(input:checked) .dot{background:var(--red);border-color:var(--red)}
form label.f{display:block;font-size:.82rem;font-weight:600;margin-top:.9rem}
form input[type=text],form input[type=tel],form input[type=email],form input[type=date],form input[type=password]{
width:100%;padding:.6rem .7rem;margin-top:.3rem;background:var(--input);
border:1px solid var(--line2);border-radius:7px;font:inherit;font-size:.95rem;
color:var(--bordeaux)}
form input[type=text]:focus,form input[type=tel]:focus,form input[type=email]:focus,form input[type=password]:focus,
form input[type=date]:focus{border-color:var(--red);outline:none}
form input{transition:border-color 150ms ease-out}
form ::placeholder{color:var(--faint)}
.row2{display:flex;gap:.8rem}.row2>div{flex:1}
.consent{display:flex;gap:.6rem;align-items:flex-start;margin-top:1.2rem;
font-size:.78rem;font-weight:400}
.consent input{margin-top:.15rem;accent-color:var(--red)}
.hp{position:absolute;left:-9999px}
button{margin-top:1.3rem;width:100%;padding:.85rem;border:0;border-radius:8px;
background:var(--red);color:#fff;font:inherit;font-size:.95rem;font-weight:600;
cursor:pointer}
button{transition:transform 150ms cubic-bezier(.25,.46,.45,.94),
background-color 150ms ease-out}
button:hover{background:#a02c3c}
button:active{transform:scale(.97)}
.afterhint{text-align:center;color:var(--muted);font-size:.78rem;margin-top:.8rem}
.amt{display:none}
form:has(#b120:checked) .amt120,form:has(#b150:checked) .amt150,
form:has(#b200:checked) .amt200{display:inline}
.err{background:#FBEEEE;border:1px solid var(--red);border-radius:8px;
padding:.7rem 1rem;margin-bottom:1rem;font-size:.9rem}
@keyframes rise{from{opacity:0;transform:translateY(12px)}}
.center{max-width:36rem;margin:0 auto;text-align:center;padding-top:2rem;
animation:rise 400ms cubic-bezier(.16,1,.3,1) both}
.center .nextstep{animation:rise 400ms cubic-bezier(.16,1,.3,1) 120ms both}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.center img{width:120px}
.center h1{font-size:2.25rem;font-weight:600;margin:.8rem 0 .3rem}
.center .m{font-family:Lora,serif;color:var(--accent);font-size:1.05rem}
.center h2{font-family:Lora,serif;font-weight:700;font-size:2.1rem;margin:2.5rem 0 .5rem}
.center p{color:var(--muted)}
.nextstep{background:#fff;border-radius:12px;padding:1.3rem 1.5rem;text-align:left;
margin-top:1.5rem}
.nextstep b{display:block;margin-bottom:.3rem}
.nextstep p{margin:0;font-size:.9rem}
.adminlinks{display:flex;align-items:center;gap:1.1rem;font-size:.85rem}
.adminlinks a{text-decoration:none}
.ok{background:#FBF4E3;border:1px solid var(--gold);border-radius:8px;
padding:.7rem 1rem;margin-bottom:1rem;font-size:.9rem}
.list form{margin:0}
.role{font-size:.72rem;font-weight:600;color:var(--muted);
border:1px solid var(--line2);border-radius:99px;padding:.15rem .6rem}
.role-admin{color:var(--accent);border-color:var(--accent);background:#FBEEEE}
.danger{width:auto;margin:0;padding:.4rem .9rem;background:#fff;
border:1px solid var(--red);color:var(--red);font-size:.8rem}
.danger:hover{background:#FBEEEE}
.newuser{max-width:26rem;margin-top:1.8rem}
.newuser h2{font-size:1.25rem}
.login{max-width:24rem;margin:2rem auto 0;text-align:left}
.login .f{margin-top:0}
.adminbar{border-bottom:1px solid var(--line)}
.adminbar .brand{align-items:baseline;gap:.6rem}
.adminbar .brand span{font-family:Inter,sans-serif;font-size:.78rem;
color:var(--faint);border-left:1px solid var(--line2);padding-left:.6rem}
.logout{font-size:.8rem;color:var(--accent);text-decoration:none;
background:#fff;border:1px solid var(--line2);border-radius:6px;
padding:.35rem .8rem;transition:background-color 150ms ease-out}
.logout:hover{background:#FBEEEE}
.pagehead{font-family:Lora,serif;font-weight:400;font-size:2rem;margin:2rem 0 .2rem}
.count{color:var(--muted);font-size:.85rem;margin:0 0 1.2rem}
.search{display:flex;align-items:center;gap:.5rem;background:#fff;
border:1px solid var(--line2);border-radius:8px;padding:.6rem .9rem;max-width:26rem;
margin-bottom:1.5rem}
.search input[type=text]{border:0;outline:0;font:inherit;font-size:.9rem;
width:100%;margin:0;padding:0;background:transparent;color:var(--bordeaux)}
.list{background:#fff;border-radius:12px;overflow:hidden}
.list a{display:flex;justify-content:space-between;align-items:center;gap:1rem;
padding:1rem 1.3rem;border-bottom:1px solid var(--line3);text-decoration:none}
.list a:last-child{border-bottom:0}
.list a:hover{background:#FDFBF8}
.list .who b{display:block;font-size:.95rem;color:var(--bordeaux)}
.list .who span{font-size:.82rem;color:var(--muted)}
.list .when{font-size:.82rem;color:var(--faint);white-space:nowrap}
.list .arrow{color:var(--accent)}
.hint{color:var(--muted);font-size:.78rem;margin-top:1rem}
.back{display:inline-block;margin-top:1.8rem;font-size:.9rem;text-decoration:none}
.detail{background:#fff;border-radius:12px;margin-top:1.2rem;max-width:34rem}
.detail>div{padding:.9rem 1.4rem;border-bottom:1px solid var(--line3)}
.detail>div:last-child{border-bottom:0}
.detail .l{font-size:.78rem;color:var(--muted)}
.detail .v{font-size:.95rem;white-space:pre-line}
.actions{display:flex;gap:.8rem;margin-top:1.2rem;max-width:34rem}
.actions a{flex:1;text-align:center;padding:.75rem;border-radius:8px;font-size:.9rem;
font-weight:600;text-decoration:none}
.actions .mail{background:var(--red);color:#fff}
.actions .call{background:#fff;border:1px solid var(--line2);color:var(--bordeaux)}
