:root{
 --app-bg:#eff7cf;
 --purple-500:#eff7cf;
 --purple-600:#c1cc93;
 --purple-700:#7a815d;
 --full-seat:#2e7229;
 --empty-seat:#808080;
 --card-bg:#fcffed;
 --button-color:#00ab66;
 --brand-900:#2e7229;
 --brand-700:#2e7229;
 --brand-500:#00ab66;
 --brand-100:#c1cc93;
 --bg-soft:#eff7cf;
 --text-dark:#2a2a2a;
 --text-muted:#7a815d;
 --border-soft:#c1cc93;
 --danger:#dc3545;
 --radius-lg:16px;
 --radius-md:12px;
 --shadow-soft:0 8px 24px rgba(46,114,41,0.08);
}
*{box-sizing:border-box;}
body{
 margin:0;
 font-family:"Inter","Segoe UI",Arial,sans-serif;
 color:var(--text-dark);
 background:var(--app-bg);
}
a{color:inherit;text-decoration:none;}
.page-shell{min-height:100vh;display:flex;flex-direction:column;}
.content-wrap{flex:1;}
.container-soft{
 width:100%;
 max-width:1180px;
 margin:0 auto;
 padding:clamp(0.65rem,2.5vw,1.15rem) clamp(0.75rem,3vw,1.35rem);
}
.content-wrap.container-soft{
 padding-top:clamp(0.75rem,2vw,1.25rem);
 padding-bottom:clamp(1rem,3vw,1.5rem);
}
.card-soft{
 background:var(--card-bg);
 border:1px solid var(--border-soft);
 border-radius:var(--radius-lg);
 box-shadow:var(--shadow-soft);
}
.section-title{
 font-size:clamp(1.05rem,2.5vw,1.15rem);
 font-weight:700;
 color:var(--brand-900);
 margin:0 0 0.65rem;
}
.muted{color:var(--text-muted);}
.hidden{display:none !important;}
.pill-active{
 background:var(--purple-600);
 color:var(--brand-900) !important;
 border-radius:999px;
 padding:8px 14px;
}
.clickable{cursor:pointer;}
.btn-success{
 --bs-btn-color:#fff;
 --bs-btn-bg:var(--button-color);
 --bs-btn-border-color:var(--button-color);
 --bs-btn-hover-bg:#009558;
 --bs-btn-hover-border-color:#009558;
 --bs-btn-focus-shadow-rgb:0,171,102;
 --bs-btn-active-bg:#008a52;
 --bs-btn-active-border-color:#008a52;
}
.btn-outline-success{
 --bs-btn-color:var(--brand-900);
 --bs-btn-border-color:var(--button-color);
 --bs-btn-hover-bg:var(--button-color);
 --bs-btn-hover-border-color:var(--button-color);
 --bs-btn-hover-color:#fff;
 --bs-btn-active-bg:var(--button-color);
 --bs-btn-active-border-color:var(--button-color);
 --bs-btn-active-color:#fff;
}
.toast-container{
 position:fixed !important;
 top:max(0.75rem,env(safe-area-inset-top,0px)) !important;
 bottom:auto !important;
 left:50% !important;
 right:auto !important;
 transform:translateX(-50%);
 z-index:1090;
 display:flex;
 flex-direction:column;
 align-items:center;
 width:min(calc(100% - 1.5rem),440px);
 padding:0.5rem 0.75rem 0 !important;
 pointer-events:none;
}
.toast-container .toast{
 width:100%;
 pointer-events:auto;
 box-shadow:0 8px 24px rgba(46,114,41,0.22);
}
.toast-container .toast-body{
 text-align:center;
}
