:root{
  --cream:#fffaf7; --blush:#f6e8e8; --rose:#a85d67; --gold:#b58a4a;
  --ink:#302829; --muted:#786c6d; --card:#ffffff; --line:#eadfda;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--cream);color:var(--ink)}
a{color:var(--rose);text-decoration:none}
a:hover{text-decoration:underline}
header{background:linear-gradient(135deg,#fff,#f7eeee);border-bottom:1px solid var(--line);padding:22px 28px;position:sticky;top:0;z-index:10}
.brand{font-family:Georgia,serif;font-size:30px;color:var(--gold);font-weight:700}
.sub{font-size:13px;color:var(--muted);margin-top:3px}
nav{margin-top:15px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
button,.btn{border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:700;display:inline-block;text-decoration:none;font:inherit}
button:hover,.btn:hover{text-decoration:none;background:#faf6f4}
.btn.active,button.active{background:var(--rose);color:white;border-color:var(--rose)}
.btn-primary{background:var(--rose);color:#fff;border-color:var(--rose)}
.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn-danger{border-color:#d8b8b8;color:#8b4444}
main{padding:24px;max-width:1500px;margin:auto}
.toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto;gap:10px;margin-bottom:18px;align-items:start}
input,select,textarea{width:100%;padding:11px;border:1px solid #d9ceca;border-radius:8px;background:#fff;font:inherit}
textarea{min-height:90px;resize:vertical}
.count{margin:8px 0 15px;color:var(--muted);font-size:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 3px 12px rgba(60,40,40,.06);cursor:pointer;transition:box-shadow .15s}
.card:hover{box-shadow:0 6px 18px rgba(60,40,40,.12)}
.card a.card-link{color:inherit;text-decoration:none;display:block}
.photo{height:315px;background:#f1ece9;display:flex;align-items:center;justify-content:center;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:contain;background:white}
.no-photo{padding:20px;text-align:center;color:#9a8f8b;font-size:13px}
.card-body{padding:13px}
.gown-name{font-family:Georgia,serif;font-size:21px;color:var(--rose);margin-bottom:4px}
.meta{font-size:13px;color:var(--muted);line-height:1.45}
.price{font-weight:700;color:var(--ink);margin-top:8px}
.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.tag{font-size:11px;background:#f8eeee;border:1px solid #eddada;padding:4px 7px;border-radius:999px}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px}
.two{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}
.detail-photo{min-height:420px;background:#f5f1ef;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.detail-photo img{max-width:100%;max-height:650px;object-fit:contain}
h2{font-family:Georgia,serif;color:var(--rose);font-size:28px;margin:0 0 12px}
h3{font-family:Georgia,serif;color:var(--gold);margin:18px 0 8px}
.formgrid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}
.formgrid .full{grid-column:1/-1}
.formgrid label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px;font-weight:700}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.flash{padding:12px 14px;border-radius:8px;margin-bottom:14px;font-size:14px}
.flash-ok{background:#eef8ee;border:1px solid #c5e0c5;color:#2d5a2d}
.flash-err{background:#fdf0f0;border:1px solid #e8c5c5;color:#8b4444}
.login-wrap{max-width:420px;margin:60px auto;padding:0 20px}
.login-wrap .panel{padding:28px}
.userbar{margin-left:auto;font-size:13px;color:var(--muted)}
.brides-list{display:grid;grid-template-columns:320px 1fr;gap:18px}
.briderow{padding:13px;background:white;border:1px solid var(--line);border-radius:10px;cursor:pointer;margin-bottom:8px;display:block;color:inherit;text-decoration:none}
.briderow:hover,.briderow.active{border-color:var(--rose);background:#fff8f7}
.briderow strong{display:block;color:var(--rose);font-family:Georgia,serif;font-size:18px}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.thumbs .thumb{position:relative}
.thumbs img{width:95px;height:120px;object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px}
.thumbs .main-badge{position:absolute;top:4px;left:4px;font-size:10px;background:var(--gold);color:#fff;padding:2px 5px;border-radius:4px}
.notice{font-size:13px;color:#7c6f6b;background:#fff4df;border:1px solid #f0dfba;padding:10px;border-radius:8px;margin:10px 0}
.linked-gown{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:start;background:#fff8f6;border:1px solid #ead8d2;padding:12px;border-radius:12px;margin-top:12px}
.linked-gown img{width:180px;height:230px;object-fit:contain;background:white;border-radius:8px}
.empty{padding:40px;text-align:center;color:var(--muted)}
@media(max-width:800px){
  .toolbar,.two,.brides-list,.formgrid{grid-template-columns:1fr}
  .linked-gown{grid-template-columns:1fr}
  .linked-gown img{width:100%;height:330px}
  .userbar{margin-left:0;width:100%}
}
