:root{--red:#D5382B;--red-dark:#B72E23;--green:#3E7A5E;--green-dark:#2F5F49;--green-light:#E8F3EE;--cream:#FAF6EF;--sand:#F1E9DC;--ink:#2B2722;--muted:#6F675E;--line:#E3DCD2;--err:#C0392B;--err-bg:#FDECEA;--radius:14px}.auth-page{font-size:16px}.auth-page *{box-sizing:border-box;margin:0;padding:0}.auth-page{font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--cream);min-height:100vh}.wrap{display:flex;min-height:100vh}.brand{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:48px;color:#fff;position:relative;overflow:hidden;background-image:linear-gradient(160deg,#3e7a5ec7,#2f5f49d1 60%,#28503ee0),url(/images/hof-fons.jpg),url(https://cms.yamagishi.ch/uploads/Yamagishi-online-shop-images/Yamagishi-hofladen.jpeg);background-color:#2f5f49;background-size:cover,cover,cover;background-position:center}.brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.1;background-image:radial-gradient(circle at 20% 80%,#fff 0 2px,transparent 2px),radial-gradient(circle at 60% 40%,#fff 0 2px,transparent 2px),radial-gradient(circle at 85% 75%,#fff 0 2px,transparent 2px);background-size:180px 180px}.badge{display:inline-flex;align-items:center;gap:8px;background:#ffffff24;border:1px solid rgba(255,255,255,.25);border-radius:50px;padding:7px 16px;font-size:.8rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;position:relative;z-index:1;width:-moz-fit-content;width:fit-content}.brand h2{font-size:1.9rem;font-weight:800;max-width:420px;line-height:1.25;position:relative;z-index:1;margin-top:18px}.brand p{margin-top:14px;max-width:420px;opacity:.85;line-height:1.6;position:relative;z-index:1}.brand .hills{position:absolute;bottom:0;left:0;right:0;z-index:0}.brand .foot{font-size:.85rem;opacity:.7;position:relative;z-index:1}.panel{width:520px;max-width:100%;display:flex;align-items:center;justify-content:center;padding:40px 32px;background:var(--cream);position:relative}.card{width:100%;max-width:400px}.card .logo-img{display:block;margin:20px auto 48px;max-width:210px}.logo-fallback{font-family:Caveat,cursive;font-size:3rem;color:var(--red);text-align:center;margin:20px 0 44px}.step{animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.auth-page h1{font-size:1.45rem;font-weight:800;margin-bottom:8px}.sub{color:var(--muted);line-height:1.55;margin-bottom:24px;font-size:.95rem}.sub b{color:var(--ink)}.auth-page label{display:block;font-weight:700;font-size:.85rem;margin-bottom:8px}.field{margin-bottom:16px}.field input[type=text],.field input[type=email],.field input[type=tel]{width:100%;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;padding:14px;font:inherit;font-size:1rem;outline:none;transition:border-color .15s}.field input:focus{border-color:var(--green)}.field .opt{color:var(--muted);font-weight:400}.phone-row{display:flex;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;transition:border-color .15s}.phone-row:focus-within{border-color:var(--green)}.phone-row select{border:0;background:var(--sand);padding:0 10px;font:inherit;font-weight:600;cursor:pointer;outline:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.phone-row input{flex:1;border:0;padding:15px 14px;font:inherit;font-size:1.05rem;outline:none;letter-spacing:.5px}.hint{font-size:.8rem;color:var(--muted);margin-top:8px}.field-err{display:none;align-items:flex-start;gap:8px;background:var(--err-bg);color:var(--err);border-radius:10px;padding:10px 12px;font-size:.88rem;font-weight:600;margin-top:10px;line-height:1.4}.field-err.show{display:flex}.field-err svg{flex:none;margin-top:1px}.turnstile-wrap{margin-top:16px}.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:20px;padding:15px;border:0;border-radius:var(--radius);background:var(--green);color:#fff;font:inherit;font-size:1rem;font-weight:800;cursor:pointer;transition:background .15s,transform .05s;text-decoration:none}.btn:hover{background:var(--green-dark)}.btn:active{transform:scale(.99)}.btn[disabled]{background:#d8d2c8;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--green);border:1.5px solid var(--green)}.btn.ghost:hover{background:var(--green-light)}.spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:none}.btn.loading .spinner{display:block}@keyframes spin{to{transform:rotate(360deg)}}.alt{text-align:center;margin-top:22px;font-size:.92rem;color:var(--muted)}.alt a{color:var(--green);font-weight:700;text-decoration:none}.alt a:hover{text-decoration:underline}.pin-row{display:flex;gap:12px;justify-content:center;margin:6px 0 4px}.pin-row input{width:58px;height:64px;text-align:center;font:inherit;font-size:1.7rem;font-weight:800;border:1.5px solid var(--line);border-radius:12px;background:#fff;outline:none;transition:border-color .15s;caret-color:var(--green)}.pin-row input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-light)}.pin-row.error input{border-color:var(--err);animation:shake .3s}.pin-row input:disabled{background:var(--sand);color:#b5ada2;cursor:not-allowed}@keyframes shake{20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}#pin-valid{text-align:center;margin-top:10px;font-variant-numeric:tabular-nums}#pin-valid.low{color:var(--err);font-weight:700}.attempts{font-size:.85rem;color:var(--muted);text-align:center;margin-top:14px}.attempts b{color:var(--err)}.resend{text-align:center;margin-top:20px;font-size:.92rem;color:var(--muted)}.resend a,.resend button{border:0;background:none;font:inherit;font-weight:700;color:var(--green);cursor:pointer;text-decoration:underline}.resend a[disabled],.resend button[disabled]{color:#b5ada2;cursor:default;text-decoration:none}.backlink{display:inline-flex;align-items:center;gap:6px;margin-bottom:18px;font-size:.9rem;font-weight:700;color:var(--green);text-decoration:none;cursor:pointer}.backlink:hover{text-decoration:underline}.consent{display:flex;gap:10px;align-items:flex-start;margin-top:6px;font-size:.88rem;line-height:1.5;color:var(--muted);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--green);flex:none;cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.consent a{color:var(--green);font-weight:700}.state-icon{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 22px}.state-icon.ok{background:var(--green-light)}.state-icon.err{background:var(--err-bg)}.center{text-align:center}.progress{width:100%;max-width:240px;height:8px;background:var(--sand);border-radius:8px;margin:6px auto 12px;overflow:hidden}.progress .bar{height:100%;width:0;background:var(--green);border-radius:8px}.opt-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:18px;margin-top:16px}.oc-sub{font-size:.88rem;color:var(--muted);line-height:1.5;margin-bottom:12px}.plz-row{display:flex;gap:10px;position:relative;flex-wrap:wrap}.plz-row input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:12px 14px;font:inherit;font-size:1rem;outline:none;letter-spacing:1px}.plz-row input:focus{border-color:var(--green)}.plz-row button{flex:none;white-space:nowrap;border:0;border-radius:12px;background:var(--green);color:#fff;font:inherit;font-weight:800;padding:12px 16px;cursor:pointer}.plz-row button:hover{background:var(--green-dark)}.stations{margin-top:12px}.stations .st-label{font-size:.82rem;font-weight:700;margin-bottom:8px}#map{height:190px;border-radius:12px;margin:12px 0;border:1.5px solid var(--line);z-index:1}.station{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px;cursor:pointer;transition:.15s;background:#fff}.station:hover{border-color:var(--green)}.station.sel{border-color:var(--green);background:var(--green-light)}.station .st-check{flex:none;width:20px;height:20px;margin:0;cursor:pointer;accent-color:var(--green);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.station .st-name{flex:1 1 auto;min-width:0;font-weight:700;font-size:.92rem}.station .st-time{flex:none;font-size:.82rem;color:var(--muted);white-space:nowrap;text-align:right}.saved-note{display:none;align-items:center;gap:8px;color:var(--green);font-weight:700;font-size:.88rem;margin-top:8px}.saved-note.show{display:flex}.notify-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.notify-box p{font-size:.88rem;color:var(--muted);line-height:1.5}.toggle-row{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.switch{position:relative;width:46px;height:26px;flex:none}.switch input{opacity:0;width:0;height:0}.switch .sl{position:absolute;top:0;right:0;bottom:0;left:0;background:#d8d2c8;border-radius:26px;cursor:pointer;transition:.2s}.switch .sl:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.sl{background:var(--green)}.switch input:disabled+.sl{opacity:.4;cursor:not-allowed}.switch input:checked+.sl:before{transform:translate(20px)}.toggle-row .tg-label{font-size:.88rem;font-weight:600;line-height:1.4}.skip-link{display:block;text-align:center;margin-top:18px;font-size:.9rem;font-weight:700;color:var(--muted);cursor:pointer;text-decoration:underline}.skip-link:hover{color:var(--ink)}.contact-box{background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);padding:16px;margin-top:22px;font-size:.9rem;line-height:1.6}.contact-box b{display:block;margin-bottom:4px}.contact-box a{color:var(--green);font-weight:700;text-decoration:none}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,80px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:50px;font-size:.9rem;font-weight:600;opacity:0;transition:.3s;z-index:50;pointer-events:none}.toast.show{transform:translate(-50%);opacity:1}@media (max-width:900px){.wrap{flex-direction:column}.brand{position:sticky;top:0;z-index:20;flex:none;min-height:0;padding:12px 20px;flex-direction:row;align-items:center;justify-content:flex-start;background-image:linear-gradient(160deg,#3e7a5e,#2f5f49 60%,#28503e)}.brand>div{min-width:0;width:100%;position:relative;z-index:1}.badge{display:none}.brand h2{font-size:.95rem;max-width:100%;line-height:1.3;margin-top:0}.brand p,.brand .foot,.brand .hills{display:none}.panel{width:100%;flex:1;align-items:flex-start;padding:20px 24px 32px}.card .logo-img{max-width:140px;margin:14px auto 30px}.logo-fallback{font-size:2.2rem;margin:14px 0 26px}.auth-page h1{font-size:1.25rem}.sub{margin-bottom:16px;font-size:.9rem}.btn{margin-top:14px;padding:13px}.alt{margin-top:16px}.pin-row input{width:52px;height:58px}}
