:root{font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#383534;background:#f7f4f0;font-synthesis:none;line-height:1.7;--paper:#fffdfb;--line:#e7e0d9;--muted:#756e67;--accent:#765951}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid var(--line);border-radius:12px;padding:9px 18px;background:var(--paper);color:inherit;cursor:pointer;text-decoration:none}button:disabled{opacity:.6;cursor:wait}button+button{margin-left:8px}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.full{width:100%;margin:12px 0 0!important}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #9c7264;outline-offset:4px}.shell{max-width:1060px;margin:auto;padding:0 32px}header{display:flex;align-items:center;justify-content:space-between;padding:28px 0;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;font-size:23px;font-weight:650;text-decoration:none}.brand span{font-size:13px;font-weight:400;color:var(--muted);border-left:1px solid var(--line);padding-left:10px}.brand svg{width:38px;height:38px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}nav{display:flex;gap:12px}nav a{padding:8px 12px;text-decoration:none}.router-link-exact-active{color:var(--accent)}main{min-height:72vh;padding:52px 0}.welcome{max-width:640px;margin-bottom:40px}.eyebrow{font-size:13px;letter-spacing:.12em;color:var(--muted)}h1{font-size:clamp(27px,4vw,38px);font-weight:550;line-height:1.35;margin:14px 0 18px}h2{font-size:20px;font-weight:550;line-height:1.4;margin:0 0 14px}p{margin:10px 0 20px}small,.subtle{color:var(--muted);font-size:14px}small{display:block;margin:8px 0 16px}.products{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}.product{display:block;position:relative;min-height:295px;border:1px solid var(--line);border-radius:24px;background:#f1e7e1;padding:30px;text-decoration:none;transition:transform .16s}.product.diet{background:#e8eee4}.product:hover{transform:translateY(-3px)}.product>svg{height:52px;width:52px;fill:none;stroke:#906756;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:22px}.product.diet>svg{stroke:#577347}.product p{font-size:15px;color:#685e55;max-width:260px}.product-action{display:flex;justify-content:space-between;font-size:14px;margin-top:26px}.narrow{max-width:580px;margin:0 auto}.auth{max-width:460px}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:28px;margin:24px 0}.card p{font-size:15px}label{display:block;font-size:14px;margin:18px 0}input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cfc5bd;border-radius:10px;background:transparent;color:inherit;margin-top:6px}input.sr-only{width:1px;min-height:1px}.text-link{display:block;text-align:center;margin-top:20px;font-size:14px}.error,.notice{border-radius:12px;padding:12px 16px;background:#f9e7e3;color:#873c31;font-size:14px;overflow-wrap:anywhere}.notice{color:#3f6240;background:#e8efe2}.danger{color:#9b4135}.keys{list-style:none;padding:0}.keys li{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:12px 0}.keys small{margin:0}footer{text-align:center;color:var(--muted);font-size:13px;padding:30px 0}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media (max-width:620px){.shell{padding:0 20px}header{padding:18px 0}main{padding:32px 0}.products{grid-template-columns:1fr;gap:18px}.product{min-height:240px;padding:24px}.card{padding:22px}.brand span{display:none}nav{gap:0}}@media (prefers-reduced-motion:reduce){.product{transition:none}.product:hover{transform:none}}@media (prefers-color-scheme:dark){:root{background:#222120;color:#ece5df;--paper:#2b2826;--line:#49403b;--muted:#b7aca2;--accent:#d3aaa0}.primary{color:#26201d}.product{background:#382b28}.product.diet{background:#29352a}.product p{color:#c3b6aa}.product>svg{stroke:#d3aaa0}.product.diet>svg{stroke:#a2bb90}.error{background:#462e28;color:#f2b7a7}.notice{background:#293f2c;color:#bdd6b0}.danger{color:#eeac9f}}
