:root{--cream:#f7f0dd;--sand:#e7d6ab;--butter:#ecd98f;--plum:#472a39;--plum-deep:#2c1823;--plum-ink:#1e1017;--rose:#b4556b;--gold:#f2d98c;--ink:#2b1f2a;--muted:#77606d;--card:#fffaf0;--line:rgba(71,42,57,0.14);--shadow:0 18px 50px rgba(44,24,35,0.14);--radius:20px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif;background:radial-gradient(1000px 420px at 85% -8%,rgba(242,217,140,.5),transparent 60%),radial-gradient(900px 500px at -10% 20%,rgba(180,85,107,.08),transparent 55%),var(--cream);color:var(--ink);min-height:100vh}a{color:inherit}:focus-visible{outline:2px solid var(--rose);outline-offset:3px;border-radius:6px}::selection{background:var(--butter)}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 20px 120px;position:relative;overflow:hidden}.landing:before{inset:auto -12% -24% -12%;height:48%;background:radial-gradient(600px 200px at 30% 0,rgba(242,217,140,.25),transparent 70%),var(--plum)}.landing:after,.landing:before{content:"";position:absolute;border-radius:50% 50% 0 0/100% 100% 0 0}.landing:after{inset:auto -28% -34% -28%;height:40%;background:var(--plum-deep)}.landing>*{position:relative;z-index:1}.brand{font-size:clamp(2.6rem,6vw,4.2rem);font-weight:800;letter-spacing:-.03em;color:var(--plum);margin:0;line-height:1.02}.brand .flip{display:inline-block;transform:rotate(-8deg)}.tagline{color:var(--muted);font-size:1.08rem;margin:14px 0 30px;max-width:600px;line-height:1.55}.auth-card{background:rgba(255,250,240,.92);border:1px solid var(--line);border-radius:24px;padding:30px 30px 24px;width:min(440px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-card h2{margin:0 0 6px;color:var(--plum);font-size:1.5rem}.auth-card p{margin:0 0 18px;color:var(--muted);font-size:.96rem}.btn-row{display:flex;gap:12px}.btn{flex:1 1;border:none;border-radius:14px;padding:15px 18px;font-size:1rem;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{background:linear-gradient(180deg,#57344a,var(--plum));color:#fff;box-shadow:0 10px 24px rgba(71,42,57,.35)}.btn-primary:hover{background:var(--plum-deep)}.btn-soft{background:linear-gradient(180deg,#f6e3a1,var(--gold));color:var(--plum);box-shadow:0 10px 24px rgba(180,140,40,.25)}.btn-soft:hover{filter:brightness(.97)}.btn-ghost{background:transparent;border:1px solid rgba(71,42,57,.3);color:var(--plum);flex:none;padding:10px 16px;font-size:.9rem}.btn-ghost:hover{background:rgba(71,42,57,.06)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.error{color:#fff;background:#a83232;border-radius:12px;padding:10px 14px;font-size:.9rem;margin-top:14px}.fineprint{margin-top:16px;font-size:.8rem;color:#8f7884}.shell{display:flex;min-height:100vh}.rail{width:248px;flex:none;background:linear-gradient(180deg,var(--plum-deep),var(--plum-ink));color:#efe3c8;display:flex;flex-direction:column;padding:22px 14px;gap:6px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.rail-brand{gap:10px;padding:4px 10px 18px;font-weight:800;font-size:1.15rem;letter-spacing:-.01em}.rail-brand,.rail-logo{display:flex;align-items:center}.rail-logo{width:38px;height:38px;border-radius:12px;background:linear-gradient(180deg,#f6e3a1,var(--butter));justify-content:center;font-size:1.2rem}.rail-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(239,227,200,.55);padding:12px 12px 4px}.rail-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:13px;text-decoration:none;color:#efe3c8;font-weight:600;font-size:.95rem;border:1px solid transparent;transition:background .12s ease}.rail-link:hover{background:rgba(236,217,143,.12)}.rail-link.active{background:rgba(236,217,143,.18);border-color:rgba(236,217,143,.3)}.rail-link .ico{width:26px;text-align:center;font-size:1.15rem}.rail-foot{margin-top:auto;display:grid;grid-gap:10px;gap:10px}.rail-user{display:flex;align-items:center;gap:10px;background:rgba(255,250,240,.08);border:1px solid rgba(239,227,200,.16);border-radius:14px;padding:10px 12px;font-size:.85rem;min-width:0}.rail-user .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-user .who small{display:block;color:rgba(239,227,200,.6);font-size:.72rem}.main{flex:1 1;min-width:0;padding:34px clamp(18px,4vw,54px) 90px}.wrap{max-width:1020px;margin:0 auto}.page-head{margin-bottom:22px}.page-head .kicker{display:inline-block;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--rose);background:rgba(180,85,107,.1);border:1px solid rgba(180,85,107,.25);padding:5px 12px;border-radius:999px;margin-bottom:10px}.page-head h1{margin:0 0 6px;color:var(--plum);font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.02em;line-height:1.08}.page-head p{margin:0;color:var(--muted);font-size:1rem;line-height:1.55;max-width:640px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--butter);color:var(--plum);display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:18px;box-shadow:0 8px 26px rgba(44,24,35,.07)}.panel h2{margin:0 0 4px;color:var(--plum);font-size:1.25rem}.panel p.sub{margin:0 0 16px;color:var(--muted);font-size:.94rem;line-height:1.5}.field{display:grid;grid-gap:7px;gap:7px;margin-bottom:14px}.field label{font-weight:700;font-size:.88rem;color:var(--plum)}.field .hint{font-size:.8rem;color:var(--muted)}.input,.select,.textarea{width:100%;border:1.5px solid rgba(71,42,57,.22);border-radius:13px;padding:13px 15px;font-size:1rem;background:#fff;color:var(--ink);font-family:inherit;transition:border-color .12s ease,box-shadow .12s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px rgba(180,85,107,.15)}.textarea{min-height:110px;resize:vertical;line-height:1.5}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:16px;gap:16px}.recipe-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:8px;box-shadow:0 6px 20px rgba(44,24,35,.05);transition:transform .12s ease,box-shadow .12s ease}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(44,24,35,.1)}.recipe-card h3{margin:0;color:var(--plum);font-size:1.15rem;line-height:1.3}.recipe-card h3 a{text-decoration:none}.recipe-card h3 a:hover{text-decoration:underline}.recipe-card>p{margin:0;color:#5c4a55;font-size:.93rem;line-height:1.55}.meta{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0}.pill{background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:.78rem;font-weight:700;color:var(--plum)}.pill.shared{background:rgba(180,85,107,.1);border-color:rgba(180,85,107,.3);color:var(--rose)}.recipe-card ol,.recipe-card ul{margin:6px 0;padding-left:20px;font-size:.92rem;line-height:1.6}.card-actions{display:flex;gap:8px;margin-top:auto;padding-top:10px;flex-wrap:wrap}.small-btn{border:1.5px solid rgba(71,42,57,.28);background:#fff;border-radius:11px;padding:9px 14px;cursor:pointer;font-size:.86rem;font-weight:700;color:var(--plum);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:background .12s ease;font-family:inherit}.small-btn:hover{background:var(--cream)}.small-btn.primary{background:var(--plum);color:#fff;border-color:var(--plum)}.small-btn.primary:hover{background:var(--plum-deep)}.small-btn.danger{color:#a83232;border-color:rgba(168,50,50,.4)}.small-btn.danger:hover{background:rgba(168,50,50,.07)}.small-btn:disabled{opacity:.55;cursor:not-allowed}.search-row{display:flex;gap:10px;margin-bottom:16px}.search-row .input{margin:0}.empty{text-align:center;padding:48px 24px;color:var(--muted);background:var(--card);border:1.5px dashed rgba(71,42,57,.3);border-radius:var(--radius)}.empty .big{font-size:2.4rem;display:block;margin-bottom:10px}.empty h3{color:var(--plum);margin:0 0 6px}.empty p{margin:0 0 16px}.share-box{background:var(--cream);border:1.5px dashed rgba(71,42,57,.35);border-radius:13px;padding:12px 14px;font-size:.87rem;word-break:break-all;margin-top:12px;line-height:1.5}.score{font-size:3rem;font-weight:900;color:var(--plum);letter-spacing:-.03em;line-height:1}.score small{font-size:1.2rem;color:var(--muted)}.tip-list{margin:8px 0;padding-left:20px;line-height:1.6}.preview-img{max-width:100%;border-radius:14px;margin-top:12px;border:1px solid var(--line)}.detail-lists{display:grid;grid-template-columns:1fr 1.4fr;grid-gap:24px;gap:24px;margin-top:14px}.detail-lists h3{color:var(--plum);margin:0 0 8px;font-size:1.05rem}.detail-lists ol,.detail-lists ul{margin:0;padding-left:20px;line-height:1.7}.notice{border-radius:13px;padding:12px 16px;font-size:.92rem;margin-bottom:16px;line-height:1.5}.notice.ok{background:rgba(46,125,50,.1);border:1px solid rgba(46,125,50,.3);color:#2e6b31}.notice.err{background:rgba(168,50,50,.08);border:1px solid rgba(168,50,50,.3);color:#8f2b2b}.skel{border-radius:12px;background:linear-gradient(90deg,#efe4c8 25%,#f7efda 50%,#efe4c8 75%);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}@media (max-width:860px){.rail{width:100%;height:auto;position:-webkit-sticky;position:sticky;top:0;z-index:20;flex-direction:row;align-items:center;padding:10px 12px;gap:4px;overflow-x:auto}.rail-brand{padding:0 8px 0 0;font-size:1rem;white-space:nowrap}.rail-foot,.rail-label{display:none}.rail-link{padding:9px 10px;white-space:nowrap}.rail-link .txt{display:none}.shell{flex-direction:column}.main{padding:20px 14px 100px}.detail-lists,.grid2{grid-template-columns:1fr}.btn-row{flex-direction:column}}