:root{--ink:#231e1c;--gold:#b08d57;--cream:#f6f1e9;--cream2:#efe7da;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:300 17px/1.6 var(--sans)}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0 0 .4em;line-height:1.15}h1{font-size:2rem}
.nav{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:rgba(246,241,233,.95);border-bottom:1px solid rgba(176,141,87,.35)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;font-family:var(--serif);font-weight:700;letter-spacing:.12em}
.brand img{border-radius:50%}
main{max-width:960px;margin:0 auto;padding:20px 16px 60px}
.card{background:#fff;border:1px solid rgba(176,141,87,.35);border-radius:8px;padding:20px;margin:0 0 18px}
label{display:block;font-size:14px;font-weight:400;margin:10px 0 4px}
input,select,textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid #cdbfa8;border-radius:6px;background:#fffdf9}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{display:inline-block;background:var(--ink);color:var(--cream);text-decoration:none;padding:13px 24px;border-radius:40px;border:1px solid var(--ink);font:400 16px var(--sans);letter-spacing:.04em;cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink)}.btn.gold{background:var(--gold);border-color:var(--gold)}.btn.sm{padding:7px 14px;font-size:14px}
.btn:disabled{opacity:.5}
.snap{display:block;text-align:center;padding:26px;border:2px dashed var(--gold);border-radius:10px;background:var(--cream2);cursor:pointer;font-family:var(--serif);font-size:1.4rem}
.snap{position:relative;overflow:hidden}.snap input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
#preview img{max-width:100%;max-height:260px;border-radius:6px;margin-top:10px}
.msg{padding:10px 12px;border-radius:6px;margin:10px 0;background:var(--cream2)}.msg.err{background:#f6dede}
table{width:100%;border-collapse:collapse;font-size:15px}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid #e7dccb}
th{font-weight:500}.num{text-align:right}.muted{color:#6b615a;font-size:14px}.hidden{display:none!important}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end}
@media(max-width:600px){.row{grid-template-columns:1fr}table{font-size:14px}.hide-sm{display:none}}
