:root{--maroon:#6b1230;--maroon2:#8a1c40;--gold:#c99a2e;--gold2:#e7c670;--ink:#1f1a1c;--mut:#6b6468;--bg:#faf6f1;--card:#fff;--line:#e8e0d8;--ok:#1e8e5a;--warn:#d98a00;--bad:#c0392b;--info:#2563eb}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--maroon2);text-decoration:none}h1,h2,h3,h4{margin:0 0 .5em;line-height:1.2}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.muted{color:var(--mut);font-size:.9rem}.right{text-align:right}.nowrap{white-space:nowrap}
.btn,button{display:inline-block;background:var(--maroon);color:#fff;border:0;border-radius:8px;padding:10px 18px;font:600 .92rem Inter,sans-serif;cursor:pointer}
.btn:hover,button:hover{background:var(--maroon2)}.btn.sm{padding:6px 12px;font-size:.85rem}.btn.gold{background:var(--gold);color:#2a1a00}.btn.ghost{background:transparent;color:var(--maroon);border:1.5px solid var(--maroon)}
.btn.red,button.red{background:var(--bad)}.btn.green{background:var(--ok)}.btn.grey{background:#8b8589}
input,select,textarea{width:100%;padding:9px 11px;border:1px solid #d6cdc4;border-radius:8px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold2);border-color:var(--gold)}
label{display:block;font-weight:600;font-size:.85rem;margin:0 0 4px}.fg{margin-bottom:14px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.alert{padding:11px 14px;border-radius:8px;margin:12px 0;font-weight:500}.alert.ok{background:#e3f6ec;color:#14694a}.alert.err{background:#fde8e6;color:#9b2b20}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);background:#fbf8f4}tr:hover td{background:#fffdf9}
.tw{overflow-x:auto}.badge{padding:3px 10px;border-radius:99px;font-size:.75rem;font-weight:600;background:#eee}
.badge.confirmed,.badge.paid,.badge.present{background:#e3f6ec;color:#14694a}.badge.pending,.badge.unpaid,.badge.late{background:#fff3d6;color:#8a5a00}.badge.completed{background:#e0e9ff;color:#1c3f9b}.badge.cancelled,.badge.absent{background:#fde8e6;color:#9b2b20}.badge.leave{background:#ece6ff;color:#4b2b9b}
.nt{display:none}.burger{display:none;cursor:pointer;font-size:1.5rem}
/* public site */
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.bar{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{font:700 1.3rem 'Playfair Display',serif;color:var(--maroon)}.topbar nav{display:flex;gap:18px;align-items:center}.topbar nav a:not(.btn){color:var(--ink);font-weight:500}.topbar nav a.on{color:var(--maroon2);border-bottom:2px solid var(--gold)}
.hero{position:relative;color:#fff;padding:110px 0 90px;background:linear-gradient(rgba(35,5,15,.72),rgba(35,5,15,.72)),url(img/hero.svg) center/cover}
.hero h1{font:700 3.1rem 'Playfair Display',serif;max-width:720px}.hero p{font-size:1.15rem;max-width:620px;opacity:.92}
.search{margin-top:30px;background:#fff;color:var(--ink);border-radius:14px;padding:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.sec{padding:64px 0}.sec h2{font:700 2.1rem 'Playfair Display',serif;text-align:center;color:var(--maroon)}.sec .sub{text-align:center;color:var(--mut);margin:-4px auto 34px;max-width:620px}
.hallcard{padding:0;overflow:hidden;display:flex;flex-direction:column}.hallcard img{width:100%;height:210px;object-fit:cover;display:block}.hallcard .b{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}
.tags span{display:inline-block;background:#f6ecd7;color:#7a5600;border-radius:99px;padding:2px 10px;font-size:.75rem;margin:0 4px 4px 0}
.price{font:700 1.5rem 'Playfair Display',serif;color:var(--maroon)}.pk{text-align:center;position:relative}.pk.pop{border:2px solid var(--gold);transform:translateY(-6px)}.pk .ribbon{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:#2a1a00;font-size:.75rem;font-weight:700;padding:3px 14px;border-radius:99px}
.pk ul{list-style:none;padding:0;margin:14px 0;text-align:left;font-size:.9rem}.pk li{padding:4px 0;border-bottom:1px dashed var(--line)}.pk li:before{content:'✓ ';color:var(--ok);font-weight:700}
.menutabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:26px}.menutabs a{padding:7px 16px;border-radius:99px;background:#fff;border:1px solid var(--line);font-weight:500;color:var(--ink)}
.mrow{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line)}.mrow b{display:block}.mrow .p{font-weight:700;color:var(--maroon);white-space:nowrap}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.gallery img{width:100%;height:100%;min-height:200px;object-fit:cover;border-radius:12px}
.foot{background:#2a0a16;color:#e9dcd2;margin-top:40px;padding-top:40px}.foot .cols{display:grid;grid-template-columns:2fr 1.3fr 1fr;gap:30px}.foot a{color:var(--gold2)}.foot h4{color:var(--gold2);font-family:'Playfair Display',serif}.copy{text-align:center;border-top:1px solid #4a2230;margin-top:30px;padding:16px;font-size:.85rem}
.authbox{max-width:440px;margin:50px auto}.authbox h2{font:700 1.8rem 'Playfair Display',serif;color:var(--maroon)}
.steps{display:flex;gap:14px;flex-wrap:wrap}.step{flex:1;min-width:180px;text-align:center}.step .n{width:46px;height:46px;border-radius:50%;background:var(--maroon);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-weight:700}
.quote{background:#fffaf0;border:1px solid var(--gold2);border-radius:12px;padding:16px}.quote .r{display:flex;justify-content:space-between;padding:4px 0}.quote .t{border-top:2px solid var(--gold);margin-top:6px;padding-top:8px;font-weight:700;font-size:1.15rem;color:var(--maroon)}
.menupick{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px}.menupick label{font-weight:400;display:flex;gap:8px;align-items:center;margin:3px 0}.menupick input{width:auto}.menupick h5{margin:10px 0 4px;color:var(--maroon)}
/* admin */
body.admin{display:flex;min-height:100vh}.side{width:250px;background:#2a0a16;color:#eadbd2;flex-shrink:0;position:sticky;top:0;height:100vh;overflow:auto}
.logo{font:700 1.15rem 'Playfair Display',serif;color:var(--gold2);padding:22px 18px 10px}.side nav{display:flex;flex-direction:column;padding:8px}.side a{color:#eadbd2;padding:9px 12px;border-radius:8px;font-size:.92rem}.side a:hover{background:#45162a}.side a.on{background:var(--gold);color:#2a1a00;font-weight:600}.side hr{border:0;border-top:1px solid #4a2230;width:100%}
.main{flex:1;padding:24px 28px;min-width:0}.pagehead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.pagehead h1{font:700 1.7rem 'Playfair Display',serif;color:var(--maroon);margin:0}
.kpi{display:flex;flex-direction:column;gap:2px;border-left:5px solid var(--gold)}.kpi .l{font-size:.78rem;text-transform:uppercase;color:var(--mut);letter-spacing:.05em}.kpi .v{font:700 1.65rem 'Playfair Display',serif}.kpi .s{font-size:.82rem;color:var(--mut)}.kpi.g{border-color:var(--ok)}.kpi.r{border-color:var(--bad)}.kpi.b{border-color:var(--info)}.kpi.m{border-color:var(--maroon)}
.chartbox{position:relative;height:300px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:14px}.toolbar .fg{margin:0;min-width:140px}.toolbar input,.toolbar select{width:auto}
.pos{color:var(--ok);font-weight:600}.neg{color:var(--bad);font-weight:600}.low td{background:#fff3f1}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal .h{font-weight:700;text-align:center;font-size:.8rem;color:var(--mut)}.cal .d{min-height:92px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px;font-size:.72rem}.cal .d b{font-size:.8rem}.cal .e{display:block;margin-top:2px;padding:2px 5px;border-radius:5px;background:#e3f6ec;color:#14694a;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal .e.pending{background:#fff3d6;color:#8a5a00}.cal .e.completed{background:#e0e9ff;color:#1c3f9b}.cal .dim{opacity:.4}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr)}.search{grid-template-columns:1fr 1fr}.foot .cols{grid-template-columns:1fr}.hero h1{font-size:2.2rem}.gallery{grid-template-columns:1fr}}
@media(max-width:760px){.g2,.g3,.g4,.search{grid-template-columns:1fr}.burger{display:block}.topbar nav{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;flex-direction:column;padding:16px;border-bottom:1px solid var(--line)}.nt:checked~nav{display:flex}
body.admin{display:block}.side{display:none;position:fixed;z-index:40;width:260px}#sb:checked~.side{display:block}.burger.adm{display:block;padding:10px 16px;background:#2a0a16;color:#fff}.main{padding:16px}}
@media print{.side,.burger,.topbar,.toolbar,.noprint,.foot{display:none!important}body.admin{display:block}.main{padding:0}.card{box-shadow:none;break-inside:avoid}}
.alertrow{display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:10px;margin:6px 0;color:var(--ink);background:#eef4ff;border-left:5px solid var(--info)}.alertrow[data-l=warn]{background:#fff6e0;border-color:var(--warn)}.alertrow[data-l=bad]{background:#fde8e6;border-color:var(--bad)}.alertrow .go{margin-left:auto;font-weight:600;color:var(--maroon);white-space:nowrap}
