:root{
  --paper:#F6EFDD;
  --paper-dark:#EDE2C8;
  --ink:#2B2420;
  --terracotta:#C1502E;
  --mustard:#E3A72B;
  --teal:#2F6F6D;
  --teal-dark:#1F4E4C;
  --muted:#8A8070;
}
*{box-sizing:border-box;}
html,body{margin:0;background:var(--paper);min-height:100%;}
body,.site{font-family:'Work Sans',sans-serif;color:var(--ink);}
.site{background:var(--paper);padding:0;min-height:100vh;}
h1,h2,h3,.mono{font-family:'Special Elite',monospace;}

.hero{background:var(--teal-dark);color:var(--paper);padding:2.5rem 1.5rem 2rem;text-align:center;border-bottom:4px dashed var(--mustard);position:relative;}
.hero h1{font-size:1.9rem;margin:0 0 .4rem;letter-spacing:.5px;}
.hero p{margin:0;color:#D9CFC0;font-size:.95rem;}

.auth-bar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;background:var(--paper-dark);border-bottom:1px solid #d8cba9;padding:.6rem 1rem;font-size:.82rem;}
.auth-bar input[type=email]{padding:.45rem .6rem;border-radius:6px;border:1px solid #cbbf9d;background:#fff;font-size:.82rem;min-width:200px;}
.auth-bar button{padding:.45rem .8rem;border-radius:6px;border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer;font-size:.8rem;font-weight:700;}
.auth-bar button.link{background:none;border:none;color:var(--terracotta);text-decoration:underline;font-weight:400;}
.auth-bar .who{color:var(--teal-dark);font-weight:700;}

.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:0;background:var(--paper-dark);border-bottom:1px solid #d8cba9;position:sticky;top:0;z-index:5;}
.tab{flex:1;min-width:120px;max-width:220px;text-align:center;padding:.9rem .5rem;cursor:pointer;font-weight:700;font-size:.8rem;color:var(--muted);border-bottom:3px solid transparent;}
.tab.active{color:var(--terracotta);border-bottom-color:var(--terracotta);}
.panel{display:none;padding:1.5rem;max-width:920px;margin:0 auto;}
.panel.active{display:block;}

.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;background:#fff;padding:.9rem;border-radius:10px;border:1px solid #e2d6b6;}
.filters select,.filters input{font-family:'Work Sans',sans-serif;padding:.5rem .6rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);font-size:.85rem;}
.filters select#f-cat{font-weight:700;border-color:var(--terracotta);}
.filters input[type=text]{flex:1;min-width:160px;}

.fridge-box{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.4rem;background:#fff;padding:.9rem;border-radius:10px;border:1px solid #e2d6b6;align-items:center;}
.fridge-box input{flex:1;min-width:200px;padding:.5rem .6rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);}
.fridge-box button,.mini-btn{padding:.5rem .9rem;border-radius:6px;border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer;font-size:.82rem;font-weight:700;}
.fridge-box .clear{background:var(--paper);color:var(--muted);border-color:#cbbf9d;}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.1rem;}
.empty{grid-column:1/-1;color:var(--muted);text-align:center;padding:2rem 1rem;font-style:italic;}

.ticket{background:#fffdf6;border:1px solid #e2d6b6;border-radius:4px;padding:1rem 1rem 1.2rem;cursor:pointer;position:relative;box-shadow:0 2px 0 rgba(0,0,0,.03);transition:transform .12s ease;}
.ticket:hover{transform:translateY(-3px);}
.ticket.static{cursor:default;}
.ticket.static:hover{transform:none;}
.ticket::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:8px;background-image:radial-gradient(circle,var(--paper) 45%, transparent 46%);background-size:14px 14px;background-position:0 -7px;}
.ticket .photo{width:100%;height:130px;object-fit:cover;border-radius:3px;margin-bottom:.6rem;background:var(--paper-dark);}
.ticket .cat{display:inline-block;font-size:.68rem;background:var(--paper-dark);color:var(--teal-dark);padding:.15rem .5rem;border-radius:20px;margin-bottom:.4rem;}
.ticket h3{font-size:1rem;margin:0 0 .3rem;color:var(--ink);}
.ticket .author{font-size:.75rem;color:var(--muted);margin-bottom:.3rem;}
.stars{color:var(--mustard);font-size:.85rem;}
.ticket .meta{display:flex;justify-content:space-between;font-size:.85rem;border-top:1px dashed #cbbf9d;padding-top:.5rem;margin-top:.4rem;}
.ticket .meta span{font-family:'Special Elite',monospace;}
.price{color:var(--terracotta);}
.time{color:var(--teal);}
.match-badge{font-size:.7rem;background:#e4f0dd;color:#2d5a1f;padding:.15rem .5rem;border-radius:20px;margin-left:.4rem;}

.save-star{position:absolute;top:.7rem;right:.7rem;width:32px;height:32px;border-radius:50%;background:rgba(255,253,246,.92);border:1px solid #e2d6b6;color:var(--mustard);font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;}
.save-star.saved{background:var(--mustard);color:#fff;border-color:var(--mustard);}
.save-star.inline{position:static;width:auto;height:auto;padding:.35rem .8rem;border-radius:20px;font-size:.8rem;font-weight:700;gap:.3rem;font-family:'Work Sans',sans-serif;}

.modal-bg{display:none;position:fixed;inset:0;background:rgba(30,25,15,.55);align-items:center;justify-content:center;z-index:50;padding:1rem;}
.modal-bg.active{display:flex;}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:.7rem 1.2rem;border-radius:6px;font-size:.85rem;z-index:100;max-width:90%;text-align:center;}

.prompt-box label{display:block;font-weight:700;font-size:.85rem;margin:0 0 .4rem;}
.prompt-box input,.prompt-box textarea{width:100%;padding:.6rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);font-family:'Work Sans',sans-serif;font-size:.9rem;margin-bottom:.8rem;}
.prompt-box textarea{min-height:70px;}

.modal{background:#fffdf6;max-width:520px;width:100%;max-height:88vh;overflow-y:auto;border-radius:8px;padding:1.4rem;position:relative;}
.modal .close{position:absolute;top:.6rem;right:.8rem;cursor:pointer;font-size:1.3rem;background:none;border:none;color:var(--muted);}
.modal img{width:100%;border-radius:6px;margin-bottom:.8rem;max-height:220px;object-fit:cover;}
.modal h2{font-size:1.2rem;margin:0 0 .2rem;}
.modal .author{font-size:.8rem;color:var(--muted);margin-bottom:.8rem;}
.modal .badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;}
.badge{background:var(--paper-dark);padding:.3rem .7rem;border-radius:20px;font-size:.8rem;font-family:'Special Elite',monospace;}
.modal h4{margin:1rem 0 .4rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--teal-dark);}
.modal ul,.modal ol{margin:0;padding-left:1.2rem;font-size:.9rem;line-height:1.6;}
.link-btn{background:none;border:none;color:var(--teal-dark);text-decoration:underline;cursor:pointer;font-size:.8rem;padding:0;}

form{background:#fff;border:1px solid #e2d6b6;border-radius:10px;padding:1.3rem;max-width:560px;margin:0 auto;}
form label{display:block;font-size:.82rem;font-weight:700;margin:1rem 0 .3rem;}
form label:first-child{margin-top:0;}
form input,form textarea,form select{width:100%;padding:.6rem .7rem;border-radius:6px;border:1px solid #cbbf9d;font-family:'Work Sans',sans-serif;font-size:.9rem;background:var(--paper);}
form textarea{min-height:80px;resize:vertical;}
form small{color:var(--muted);display:block;margin-top:.2rem;font-size:.75rem;}
.hp{position:absolute;left:-9999px;}
.submit-btn{margin-top:1.3rem;width:100%;padding:.8rem;background:var(--terracotta);color:#fff;border:none;border-radius:6px;font-weight:700;font-size:.95rem;cursor:pointer;}
.submit-btn:hover{background:#a5431f;}
.submit-btn:disabled{opacity:.5;cursor:not-allowed;}

.note-box{background:var(--paper-dark);border-left:4px solid var(--mustard);padding:.8rem 1rem;border-radius:4px;font-size:.85rem;margin-bottom:1.2rem;}
.status-msg{margin-top:1rem;padding:.7rem 1rem;border-radius:6px;font-size:.9rem;display:none;}
.status-msg.ok{display:block;background:#e4f0dd;color:#2d5a1f;}
.status-msg.err{display:block;background:#f7dede;color:#8a2323;}

.mod-item{background:#fff;border:1px solid #e2d6b6;border-radius:8px;padding:1rem;margin-bottom:.9rem;}
.mod-item h4{margin:0 0 .3rem;}
.mod-actions{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap;}
.mod-actions button{padding:.5rem 1rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);cursor:pointer;font-size:.85rem;}
.mod-actions .approve{background:var(--teal);color:#fff;border:none;}
.mod-actions .reject{background:var(--terracotta);color:#fff;border:none;}

.mod-link{text-align:center;padding:1.2rem 1rem;color:var(--muted);font-size:.75rem;}
.mod-link a{color:var(--muted);text-decoration:underline;cursor:pointer;}
.mod-badge{background:var(--terracotta);color:#fff;font-weight:700;padding:.1rem .5rem;border-radius:20px;font-size:.72rem;}
.mod-subtabs{display:flex;gap:.5rem;margin-bottom:1rem;}
.mod-subtabs div{padding:.5rem 1rem;background:#fff;border:1px solid #e2d6b6;border-radius:6px;cursor:pointer;font-size:.85rem;}
.mod-subtabs div.active{background:var(--teal);color:#fff;border-color:var(--teal);}

.review{border-top:1px solid #e9dfc2;padding:.7rem 0;}
.review .rhead{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);}
.review p{margin:.3rem 0 0;font-size:.88rem;}
.review-form{border-top:1px solid #e9dfc2;margin-top:1rem;padding-top:1rem;}
.review-form textarea,.review-form input,.review-form select{width:100%;padding:.5rem .6rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);font-size:.85rem;margin-bottom:.5rem;}

.report-x{background:none;border:none;color:var(--terracotta);font-size:.72rem;cursor:pointer;text-decoration:underline;}
.report-icon-btn{background:none;border:none;color:var(--terracotta);cursor:pointer;font-size:.78rem;padding:0;display:flex;align-items:center;gap:.3rem;font-weight:700;}
.report-icon-btn .ex{width:16px;height:16px;border-radius:50%;background:var(--terracotta);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;}

.chat-box{background:var(--paper-dark);border-radius:8px;padding:.9rem;margin-top:1rem;}
.chat-msg{background:#fff;border-radius:6px;padding:.5rem .7rem;margin-bottom:.5rem;font-size:.85rem;}
.chat-msg .who{font-weight:700;font-size:.75rem;color:var(--teal-dark);}

.lookup-box{background:#fff;border:1px solid #e2d6b6;border-radius:10px;padding:1.2rem;max-width:520px;margin:0 auto 1.5rem;}
.lookup-box input{width:100%;padding:.6rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);margin-bottom:.6rem;}

.conv-tabs{display:flex;gap:.5rem;margin-bottom:1rem;justify-content:center;}
.conv-tabs div{padding:.5rem 1rem;background:#fff;border:1px solid #e2d6b6;border-radius:6px;cursor:pointer;font-size:.85rem;}
.conv-tabs div.active{background:var(--terracotta);color:#fff;border-color:var(--terracotta);}

.shop-item{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #e2d6b6;border-radius:8px;padding:.7rem 1rem;margin-bottom:.6rem;}
.shop-item button{background:none;border:none;color:var(--terracotta);cursor:pointer;font-size:.8rem;}
.add-shop-btn{margin-top:.8rem;background:var(--mustard);color:var(--ink);border:none;padding:.6rem 1rem;border-radius:6px;cursor:pointer;font-weight:700;font-size:.85rem;}

.login-inline{background:#fff;border:1px solid #e2d6b6;border-radius:10px;padding:1.2rem;max-width:480px;margin:1rem auto;text-align:center;}
.login-inline input{width:100%;padding:.6rem;border-radius:6px;border:1px solid #cbbf9d;background:var(--paper);margin:.6rem 0;}

@media(max-width:480px){.hero h1{font-size:1.5rem;}}
