:root{
  --bg:#fbf7f0;
  --bg2:#fffdf8;
  --card:#ffffff;
  --text:#1e1b16;
  --muted:#6f6557;
  --line:#eadfce;
  --gold:#c9a86a;
  --gold2:#f1dec0;
  --green:#2b8a68;
  --red:#c0544b;
  --blue:#4b6fdc;
  --shadow:0 18px 50px rgba(45,25,5,.08);
  --radius:26px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:'Inter',system-ui,-apple-system,sans-serif;background:linear-gradient(180deg,#fff 0%,var(--bg) 100%);color:var(--text)}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{width:min(1200px,calc(100% - 32px));margin:0 auto}
.site-header{position:sticky;top:0;z-index:30;background:rgba(255,253,248,.85);backdrop-filter:blur(14px);border-bottom:1px solid rgba(234,223,206,.8)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:18px}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),#8b6f3f);color:#fff;font-weight:800;box-shadow:var(--shadow)}
.brand strong{display:block;font-size:16px}
.brand small{display:block;color:var(--muted)}
.topnav{display:flex;flex-wrap:wrap;gap:14px;color:#3b342c;font-weight:600}
.topnav a{padding:10px 12px;border-radius:999px}
.topnav a:hover{background:#f6efe3}
.hero{padding:54px 0 24px}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:26px;align-items:stretch}
.hero-copy{padding:38px;border-radius:var(--radius);background:linear-gradient(135deg,#fff, #fff7ea);box-shadow:var(--shadow);border:1px solid var(--line)}
.eyebrow{display:inline-flex;gap:8px;align-items:center;padding:8px 14px;border-radius:999px;background:#f5ecdd;color:#7b5c22;font-weight:700;font-size:13px}
.hero h1{font-size:54px;line-height:1.03;margin:18px 0 14px;letter-spacing:-.03em}
.lead{font-size:18px;line-height:1.7;color:#5f5649;max-width:60ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:none;border-radius:16px;padding:14px 18px;font-weight:700;cursor:pointer}
.btn-primary{background:linear-gradient(135deg,var(--gold),#a77d36);color:#fff;box-shadow:0 10px 30px rgba(201,168,106,.25)}
.btn-ghost{background:#f6efe3;color:#4b3c22}
.hero-aside{display:grid;gap:16px}
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.photo-grid img{aspect-ratio:1/1;object-fit:cover;border-radius:22px;box-shadow:var(--shadow)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card.pad-24{padding:24px}
.card.pad-32{padding:32px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.stat{padding:16px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.stat b{display:block;font-size:22px}
.section{padding:28px 0}
.section h2{font-size:34px;margin:0 0 12px;letter-spacing:-.03em}
.section p.section-lead{color:var(--muted);max-width:68ch;line-height:1.75}
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.feature{padding:20px;border-radius:22px;background:#fff;border:1px solid var(--line)}
.feature h3{margin:12px 0 8px;font-size:17px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.gallery figure{margin:0;overflow:hidden;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.gallery img{height:260px;width:100%;object-fit:cover}
.gallery figcaption{padding:12px 14px;color:var(--muted);font-size:14px}
.video-wrap iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:22px;box-shadow:var(--shadow)}
.calendar-panel{display:grid;grid-template-columns:1fr 320px;gap:18px;align-items:start}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-head,.cal-day{min-height:90px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px}
.cal-head{min-height:auto;font-weight:700;color:#6f6557;background:#fbf7f0}
.cal-day{position:relative}
.cal-day .date{font-weight:800;font-size:14px}
.cal-day .tag{display:inline-block;margin-top:8px;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700}
.tag.free{background:#e6f5ee;color:var(--green)}
.tag.busy{background:#fce8e5;color:var(--red)}
.tag.reserved{background:#eef2ff;color:var(--blue)}
.site-footer{margin-top:42px;padding:28px 0 52px;border-top:1px solid var(--line);background:#fffdf8}
.footer-grid{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:#5f5649}
.muted{color:var(--muted)}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#584d3e}
.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;font:inherit}
.form-grid textarea{min-height:120px;resize:vertical}
.form-grid .full{grid-column:1/-1}
.alert{padding:14px 16px;border-radius:14px;margin-bottom:16px}
.alert-danger{background:#fde9e8;color:#8a2d28;border:1px solid #f2b8b2}
.alert-success{background:#e9f8ef;color:#246448;border:1px solid #bde8cb}
.install-body{min-height:100vh;display:grid;place-items:center}.install-wrap{padding:28px 0}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px 0}
.login-card{width:min(520px,100%)}
.admin-shell{padding:24px 0 42px}
.admin-top{position:sticky;top:0;z-index:20;background:rgba(251,247,240,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.admin-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;flex-wrap:wrap}
.admin-tabs{display:flex;flex-wrap:wrap;gap:10px}
.admin-tabs a{padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:700;color:#564a3b}
.admin-tabs a.active{background:linear-gradient(135deg,var(--gold),#a77d36);color:#fff;border-color:transparent}
.admin-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;margin-top:18px}
.workspace{padding:16px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.pill{padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;font-weight:700;cursor:pointer}
.pill.primary{background:linear-gradient(135deg,var(--gold),#a77d36);color:#fff;border-color:transparent}
.floor-wrap{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:start}
.palette,.inspector,.list-card{padding:16px;border:1px solid var(--line);border-radius:22px;background:#fff}
.palette h3,.inspector h3,.list-card h3{margin:0 0 12px}
.palette .item{padding:11px 12px;border-radius:14px;border:1px dashed #d8c7aa;background:#fff8ee;margin-bottom:10px;cursor:grab;font-weight:700}
.canvas-shell{position:relative;overflow:auto;border:1px solid var(--line);border-radius:26px;background:linear-gradient(180deg,#fff 0,#fff9ef 100%);min-height:760px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.canvas{position:relative;margin:18px;min-width:900px;min-height:640px;background:radial-gradient(circle at 0 0, rgba(201,168,106,.08), transparent 40%), linear-gradient(180deg, #fff, #fffef9);border:2px solid #f1e4cf;border-radius:22px}
.table,.decor{position:absolute;user-select:none}
.table{display:grid;place-items:center;border:2px solid #cdb28a;background:linear-gradient(180deg,#fffdf8,#f6ead8);box-shadow:0 14px 30px rgba(85,54,16,.08);cursor:move}
.table.round{border-radius:50%}
.table.square{border-radius:18px}
.table.rect{border-radius:18px}
.table.selected{outline:3px solid rgba(201,168,106,.65)}
.table-label{pointer-events:none;font-weight:800;color:#4f4334;text-align:center;font-size:14px;line-height:1.2;padding:8px}
.seat{position:absolute;width:24px;height:24px;border-radius:50%;border:2px solid #c9a86a;background:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;color:#8b6e3e;transform:translate(-50%,-50%)}
.seat.filled{background:#f5ecdd;color:#705326}
.seat.drop-hover{outline:3px solid rgba(75,111,220,.3)}
.decor{display:grid;place-items:center;border-radius:18px;border:2px dashed #e2d3bb;background:rgba(255,255,255,.75);font-weight:800;color:#7b6a55}
.decor.kind-door{background:#f7ece3}
.decor.kind-dj{background:#eef2ff}
.decor.kind-stage{background:#efe7ff}
.decor.kind-bar{background:#edf8f1}
.selection-hint{font-size:13px;color:var(--muted);line-height:1.6}
.table-detail{display:grid;gap:12px}
.small{font-size:13px;color:var(--muted)}
.guest-card{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fff;margin-bottom:10px;cursor:grab}
.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#f4eadb;display:grid;place-items:center;font-weight:800;color:#7b5c22}
.guest-meta b{display:block}
.guest-meta span{display:block;font-size:13px;color:var(--muted)}
.seating-summary{display:grid;gap:10px}
.summary-row{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:#fbf7f0;border:1px solid var(--line);border-radius:14px}
.table-chip{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f4eadb;font-weight:700;margin-right:6px;margin-bottom:6px}
@media (max-width: 960px){
  .hero-grid,.calendar-panel,.admin-grid,.floor-wrap,.grid-2,.features,.gallery,.photo-grid{grid-template-columns:1fr}
  .hero h1{font-size:40px}.calendar-grid{grid-template-columns:repeat(2,1fr)}
  .canvas{min-width:720px}
}

.template-picker{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.layout-stage{display:grid;gap:16px;margin-top:18px}
.canvas-shell-wide{min-height:760px}
.layout-bottom{grid-template-columns:1fr 1fr;margin-top:0}
.inspector-card .readonly{opacity:.6;background:#f7f1e6}
.pill.danger{background:#fbe6e4;color:#9b3f39;border-color:#efc0bb}
.save-toast{position:fixed;right:20px;bottom:20px;background:#1f7a4f;color:#fff;padding:12px 16px;border-radius:14px;opacity:0;transform:translateY(8px);transition:.2s ease;pointer-events:none;box-shadow:var(--shadow)}
.save-toast.show{opacity:.95;transform:translateY(0)}
.event-switcher{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.event-switcher label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#584d3e}
.event-switcher select{min-width:min(520px,100%);padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;font:inherit}
.link-row{display:flex;text-decoration:none;color:inherit}
.link-row:hover{background:#f7f0e2}
.admin-grid-2col{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
@media (max-width: 960px){
  .layout-bottom,.admin-grid-2col{grid-template-columns:1fr}
  .event-switcher select{min-width:100%}
}
