:root{--c:#e11d48;--c2:#be123c;--bg:#fff5f7;--card:#fff;--tx:#2a1620;--mu:#8f6f7d;--bd:#f3d3dc;--hot:#ff2e63;--pill:#ffe4ea;--pillok:#e4f7ea;--pillhot:#ffd6e0;--fok-bg:#e4f7ea;--fok-tx:#1d6b3a;--ferr-bg:#fde7ec;--ferr-tx:#a3203f;--ph:#f3dbe2;--grad:linear-gradient(135deg,#ff2e63,#c2185b 55%,#7b1fa2);color-scheme:light}
:root[data-theme=dark]{--c:#ff3d71;--c2:#ff6b92;--bg:#0b0508;--card:#170b11;--tx:#f7e9ee;--mu:#b48c9b;--bd:#35161f;--hot:#ff5c8a;--pill:#3a1020;--pillok:#12331f;--pillhot:#4a1228;--fok-bg:#12331f;--fok-tx:#7fe0a2;--ferr-bg:#3d1824;--ferr-tx:#ff9db6;--ph:#2a141c;--grad:linear-gradient(135deg,#ff2e63,#b0124f 55%,#6a1b9a);color-scheme:dark}
.theme{background:none;border:1px solid var(--bd);color:var(--tx);border-radius:999px;width:34px;height:34px;cursor:pointer;font-size:1rem;padding:0;line-height:1}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--tx)}
a{color:var(--c);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:860px;margin:0 auto;padding:0 16px}
.top{background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:10}
.bar{display:flex;align-items:center;justify-content:space-between;height:60px;gap:12px}
.brand{font-size:1.5rem;font-weight:800;color:var(--c)}.brand:hover{text-decoration:none}
nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}nav a{color:var(--tx);font-weight:500}nav a.btn{color:#fff}
main{padding-top:20px;padding-bottom:40px;min-height:70vh}
.foot{padding:20px 16px;color:var(--mu);font-size:.85rem;text-align:center}
.btn{display:inline-block;background:var(--c);color:#fff;border:0;border-radius:999px;padding:10px 22px;font-weight:700;font-size:1rem;cursor:pointer}
.btn:hover{background:var(--c2);text-decoration:none}.btn.sm{padding:5px 14px;font-size:.9rem}.btn.wide{padding:12px 26px}
.btn.ghost{background:var(--card);color:var(--c);border:1px solid var(--c)}.btn.danger{background:#d9345a}
button.link{background:none;border:0;color:var(--c);cursor:pointer;font:inherit;padding:0}
.inline{display:inline}
.pill{display:inline-block;background:var(--pill);color:var(--c2);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:700}
.pill.ok{background:var(--pillok);color:var(--fok-tx)}.pill.hot{background:var(--pillhot);color:var(--hot)}
.box,.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:18px;margin-bottom:16px}
.narrow{max-width:460px;margin:20px auto}
.muted{color:var(--mu);font-size:.9rem}
.flash{padding:12px 16px;border-radius:10px;margin-bottom:14px}.flash.ok{background:var(--fok-bg);color:var(--fok-tx)}.flash.err{background:var(--ferr-bg);color:var(--ferr-tx)}
.form{display:flex;flex-direction:column;gap:12px}.form label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.9rem}
.form label.chk{flex-direction:row;align-items:center;gap:8px;font-weight:500}
input,select,textarea{font:inherit;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--bg);color:var(--tx);width:100%}
input[type=checkbox]{width:auto}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.profile{background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden;margin-bottom:16px}
.banner{height:200px;background:linear-gradient(135deg,#ff2e63,#7b1fa2,#1a0510) center/cover}
.pinfo{padding:0 20px 20px;position:relative}
.avatar{width:96px;height:96px;border-radius:50%;border:4px solid var(--card);background:#cfd8df center/cover;margin-top:-48px}
.avatar.sm{width:44px;height:44px;border-width:2px;margin:0}
.ptext h1{margin:8px 0 0}.sub{margin-top:10px}
.chead{display:flex;align-items:center;gap:10px;margin-bottom:8px}.spacer{flex:1}
.card h2{margin:6px 0}.card h2 a{color:var(--tx)}
.grid{display:grid;gap:4px;margin-top:10px;border-radius:12px;overflow:hidden}
.grid.g2,.grid.g4{grid-template-columns:1fr 1fr}.grid.g3{grid-template-columns:1fr 1fr 1fr}
.grid img,.grid video{width:100%;max-height:600px;object-fit:cover;background:#000;display:block}
.grid.g1 img,.grid.g1 video{object-fit:contain}
.locked{margin-top:10px;border-radius:12px;min-height:280px;background:#2b3640 center/cover;position:relative;overflow:hidden}
.lockin{position:absolute;inset:0;backdrop-filter:blur(22px);background:rgba(20,28,36,.55);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:16px}
.lock{font-size:2.4rem}
.pager{display:flex;justify-content:space-between}
.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.prod{background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden;color:var(--tx)}.prod:hover{text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.pimg{aspect-ratio:3/4;background:var(--ph) center/cover}.pname{padding:10px 12px 0;font-weight:600}.pprice{padding:0 12px 12px;color:var(--c2);font-weight:700}
.pprice.big{padding:0;font-size:1.5rem;margin-bottom:10px}
.pdetail{display:grid;grid-template-columns:1fr 1fr;gap:24px}.gallery{display:flex;flex-direction:column;gap:8px}.gallery img{width:100%;border-radius:12px}
.tbl{width:100%;border-collapse:collapse}.tbl td{padding:8px 6px;border-bottom:1px solid var(--bd);vertical-align:middle}.tbl tr.tot td{font-weight:800}
.adminnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.adminnav a{background:var(--card);border:1px solid var(--bd);border-radius:999px;padding:6px 14px;color:var(--tx)}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px}.sv{font-size:1.5rem;font-weight:800}
.adminnav a.on{background:var(--c);color:#fff;border-color:var(--c);text-decoration:none}
.cfoot{display:flex;gap:14px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--bd)}.like{background:none;border:0;color:var(--mu);font:inherit;cursor:pointer;padding:0}.like.on{color:var(--hot)}.like:hover{text-decoration:none;color:var(--hot)}
.comment{padding:8px 0;border-bottom:1px solid var(--bd)}
.plans{display:grid;gap:10px}.plan{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;border:1px solid var(--bd);border-radius:12px;padding:12px 14px;cursor:pointer}.plan input{width:auto}.plan span:first-of-type{flex:1}.plan:has(input:checked){border-color:var(--c);background:var(--pill)}.pr{font-weight:800}
.tipbtns{display:flex;gap:8px;flex-wrap:wrap}
.chk{display:flex!important;flex-direction:row!important;gap:8px;align-items:flex-start;font-size:.9rem}.chk input{width:auto;margin-top:4px}
.bars{display:flex;gap:6px;align-items:flex-end;height:160px}.bars>.bar{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px;height:100%;position:relative}.bars>.bar span{position:absolute;bottom:-20px;font-size:.7rem;color:var(--mu)}.bi,.bo{width:42%;min-height:2px;border-radius:4px 4px 0 0}.bi{background:var(--c)}.bo{background:var(--mu)}
.box:has(.bars){padding-bottom:36px}
.tbl th{text-align:left;color:var(--mu);font-weight:600}.tbl tr.tot td{font-weight:800;border-top:2px solid var(--bd)}
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.mitem{font-weight:400!important;font-size:.8rem}.mitem img,.mitem video{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.agebody{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(circle at 30% 20%,#b0124f,#2a0615 60%,#0b0508)}
.agebox{max-width:440px;text-align:center}.big{font-size:3rem;font-weight:800;margin:0;color:var(--hot)}
@media(max-width:640px){.pdetail,.row{grid-template-columns:1fr}nav{gap:10px;font-size:.9rem}}

/* spicy */
.btn{background:var(--grad);box-shadow:0 4px 14px rgba(255,46,99,.35);transition:transform .15s,box-shadow .15s}
.btn:hover{background:var(--grad);transform:translateY(-1px);box-shadow:0 6px 20px rgba(255,46,99,.5)}
.btn.ghost{background:transparent;box-shadow:none;color:var(--c);border:1px solid var(--c)}.btn.ghost:hover{background:var(--pill)}
.brand{font-family:Georgia,'Times New Roman',serif;font-style:italic;letter-spacing:.5px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.top{background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--c)}
body{background:var(--bg) radial-gradient(circle at 85% -5%,rgba(255,46,99,.18),transparent 45%) no-repeat fixed}
.box,.card,.profile,.prod,.stat{box-shadow:0 2px 18px rgba(225,29,72,.08)}
:root[data-theme=dark] .box,:root[data-theme=dark] .card,:root[data-theme=dark] .profile,:root[data-theme=dark] .prod,:root[data-theme=dark] .stat{box-shadow:0 2px 22px rgba(255,46,99,.10)}
.card:hover,.prod:hover{border-color:var(--c)}
.avatar{border-color:var(--c);box-shadow:0 0 0 3px rgba(255,46,99,.25),0 0 22px rgba(255,46,99,.5)}
.lockin{background:linear-gradient(160deg,rgba(176,18,79,.55),rgba(20,4,12,.8))}
.lock{filter:drop-shadow(0 0 12px rgba(255,46,99,.9))}
.pill{background:var(--pillhot);color:var(--hot)}
.agebox{border:1px solid var(--c);box-shadow:0 0 50px rgba(255,46,99,.35)}
h1,h2{letter-spacing:.3px}
.big{text-shadow:0 0 24px rgba(255,46,99,.8)}
.adminnav a.on{background:var(--grad);border-color:transparent}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--c);box-shadow:0 0 0 3px rgba(255,46,99,.2)}

/* feinschliff */
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
body{font-size:16px;line-height:1.6}
.wrap{max-width:900px;padding:0 20px}
.bar{height:68px;gap:28px}
.brand{font-size:1.2rem;font-weight:700;font-style:normal;font-family:'Segoe UI',Inter,system-ui,-apple-system,Arial,sans-serif;letter-spacing:.24em;text-transform:uppercase;line-height:1;flex-shrink:0;display:inline-flex;align-items:center;gap:11px}.brand span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:2px}.brand .logo{flex-shrink:0;filter:drop-shadow(0 3px 10px rgba(255,46,99,.4))}
nav{gap:6px 22px}nav a{font-size:.95rem}
nav a:not(.btn):not(.theme):hover{color:var(--c);text-decoration:none}
nav a.cur{color:var(--c);box-shadow:0 2px 0 var(--c)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 14px}
.chip{display:inline-block;padding:6px 16px;border-radius:999px;border:1px solid var(--bd);background:var(--card);color:var(--tx);font-size:.9rem;font-weight:600}
.chip:hover{border-color:var(--c);text-decoration:none}.chip.on{background:var(--grad);border-color:transparent;color:#fff}
.shopbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;align-items:center}.shopbar input[type=search]{flex:1 1 200px;width:auto;min-width:160px}.shopbar select{width:auto;flex:0 0 auto}.shopbar .btn{margin:0}
main{padding-top:32px;padding-bottom:64px}
.foot{padding:32px 20px;line-height:1.9}
h1{font-size:1.9rem;line-height:1.2;margin:0 0 20px;font-weight:800}
h2{font-size:1.25rem;line-height:1.3;margin:32px 0 14px;font-weight:700}
h3{font-size:1.05rem;margin:0 0 12px}
p{margin:0 0 12px}
.box,.card{padding:24px;margin-bottom:22px;border-radius:18px}
.profile{border-radius:20px;margin-bottom:24px}
.banner{height:230px}
.pinfo{padding:0 28px 26px}
.ptext h1{margin:12px 0 2px;font-size:1.7rem}
.sub{margin-top:16px}
.chead{gap:12px;margin-bottom:14px}
.card h2{font-size:1.3rem;margin:8px 0 10px}
.card p{color:var(--tx);opacity:.92}
.grid{margin-top:16px;gap:6px;border-radius:14px}
.locked{margin-top:16px;border-radius:14px}
.lockin{gap:14px;padding:24px}
.btn{padding:11px 26px;letter-spacing:.2px}.btn.sm{padding:7px 16px;font-size:.88rem}.btn.wide{padding:14px 32px;font-size:1.05rem}
.form{gap:16px}.form label{gap:6px;font-size:.88rem;letter-spacing:.2px}
input,select,textarea{padding:12px 14px;border-radius:12px;font-size:1rem}
.row{gap:16px}
.flash{padding:14px 18px;border-radius:12px;margin-bottom:20px}
.products{gap:22px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.prod{border-radius:18px;transition:transform .15s,border-color .15s}.prod:hover{transform:translateY(-3px)}
.pname{padding:14px 16px 2px;font-size:1rem}.pprice{padding:0 16px 16px}
.pdetail{gap:36px}.gallery{gap:12px}.gallery img{border-radius:16px}
.pprice.big{font-size:1.8rem;margin-bottom:16px}
.tbl td,.tbl th{padding:12px 10px}
.adminnav{gap:8px;margin-bottom:28px}.adminnav a{padding:8px 18px;font-size:.92rem}
.stats{gap:16px;margin-bottom:28px}.stat{padding:18px;border-radius:16px}.sv{font-size:1.7rem;margin-top:4px}
.cfoot{gap:20px;margin-top:16px;padding-top:14px}
.comment{padding:12px 0}
.plans{gap:12px}.plan{padding:16px 18px;border-radius:14px}
.narrow{margin:32px auto}
.agebox{padding:36px}.big{font-size:3.6rem;margin:4px 0 12px}
.bar{width:100%}
.inline{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.inline select,.inline input{width:auto}
form.inline[method=get]{display:flex;margin-bottom:20px}
.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:stretch}
.stat .muted{line-height:1.3;min-height:2.6em}
.box:has(.bars){padding-bottom:24px}.bars{margin-bottom:34px;margin-top:10px}.bars+p{margin:0}
main.wrap{padding-top:32px;padding-bottom:64px}
.chk,.form label.chk{display:block!important;font-weight:500;line-height:1.5;padding-left:2px}
.chk input{display:inline-block;vertical-align:middle;margin:0 8px 2px 0}
.form>.btn,.form>button.btn{margin-top:6px}
.form+p,.form~p{margin-top:18px}
@media(max-width:640px){.wrap{padding:0 14px}.bar{height:auto;padding:12px 0;gap:10px;flex-wrap:wrap}.brand{font-size:1.5rem}h1{font-size:1.6rem}.box,.card{padding:18px}.banner{height:160px}.pinfo{padding:0 18px 20px}main{padding-top:20px}}
