:root{--terra:#B4623F;--mel:#D9A441;--creme:#F7F0E3;--cafe:#4A3428;--oliva:#3E4A3D;--card:#fffaf1;--line:#e6d9c3}
*{box-sizing:border-box}body{margin:0;background:var(--creme);color:var(--cafe);font-family:Jost,system-ui,sans-serif;-webkit-tap-highlight-color:transparent}
h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif;font-weight:600}
#app{max-width:560px;margin:0 auto;min-height:100vh;padding:0 16px 90px}
header{display:flex;align-items:center;gap:12px;padding:16px 0}
header .hi{flex:1;text-align:center;font-size:18px}header .hi b{color:var(--terra)}
.ib{width:42px;height:42px;border-radius:50%;border:0;background:#fff;box-shadow:0 2px 8px #0002;font-size:18px;color:var(--cafe)}
.banner{background:var(--terra);color:#fff;border:0;width:100%;padding:14px;border-radius:12px;font:600 15px Jost;margin-bottom:16px;text-decoration:underline}
.card{display:block;width:100%;text-align:left;border:0;border-radius:20px;padding:22px;margin:0 0 14px;color:#fff;background:var(--oliva);position:relative}
.card h3{margin:0 0 6px;font-size:22px}.card p{margin:0;opacity:.9;font-size:15px}
.card.lock{background:#cdb9a6;color:#fff;opacity:.85}.card.lock::after{content:'🔒';position:absolute;right:18px;top:18px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 16px;font:500 14px Jost;color:var(--cafe)}
.chip.on{background:var(--terra);color:#fff;border-color:var(--terra)}
.lbl{font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin:12px 0 4px}
input,textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px;font:16px Jost;background:#fff;color:var(--cafe)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.rc{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:0;text-align:left;overflow:hidden;position:relative}
.rc .ph{height:90px;background:linear-gradient(135deg,#e9d5b5,#d9b98a);display:flex;align-items:center;justify-content:center;font-size:11px;color:#8a6a45;letter-spacing:.08em}
.rc .in{padding:12px}.rc h4{margin:0 0 8px;font:600 16px 'Playfair Display',serif}
.tag{display:inline-block;font-size:12px;padding:3px 9px;border-radius:999px;background:#f3dccf;color:#8a3f1f;margin:0 4px 4px 0}
.tag.n{background:#dfe6dc;color:var(--oliva)}
.heart{position:absolute;right:8px;top:8px;background:#fffc;border:0;border-radius:50%;width:32px;height:32px;font-size:16px}
.done{position:absolute;left:8px;top:8px;background:var(--mel);color:#fff;border-radius:999px;font-size:12px;padding:3px 9px}
.btn{width:100%;border:0;border-radius:14px;padding:15px;font:600 16px Jost;background:var(--terra);color:#fff;margin:8px 0}
.btn.sec{background:#fff;color:var(--terra);border:1.5px solid var(--terra)}.btn.ok{background:var(--oliva)}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}td,th{padding:10px;border-bottom:1px solid var(--line);text-align:center;font-size:15px}th{background:#f3e8d3;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
ul.i{padding-left:20px}ol.p{padding-left:20px}ol.p li,ul.i li{margin:8px 0;line-height:1.5}
.stars button{background:none;border:0;font-size:30px;color:#ccc;padding:0 2px}.stars button.on{color:var(--mel)}
.cm{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:8px 0;font-size:15px}
.cm small{opacity:.6}
.sm{font-size:13px;opacity:.7}.center{text-align:center}
.modal{position:fixed;inset:0;background:#000a;display:flex;align-items:flex-end;z-index:9}
.modal>div{background:var(--creme);width:100%;max-width:560px;margin:0 auto;border-radius:20px 20px 0 0;padding:22px;max-height:85vh;overflow:auto}
.vid{aspect-ratio:9/16;max-height:320px;margin:10px auto;background:#e9d5b5;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#8a6a45;text-align:center;padding:16px}
