:root{
  --brand:#0f5c4c;
  --gold:#ac8a17;
  --bg:#f7f5f0;
  --text:#1f2937;
  --muted:#6b7280;
  --card:#ffffff;
  --border:rgba(15,92,76,.18);
  --shadow: none;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:#ffffff; /* flat white background */
}
a{color:inherit}
.container{max-width:1180px;margin:0 auto;padding:18px 24px}
.topbar{
  position:sticky; top:0; z-index:10;
  background:#fff;
  border-bottom:1px solid rgba(15,92,76,.14);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 24px}
.brand{display:flex;align-items:center;gap:10px}
.logo{
  width:38px;height:38px;border-radius:12px;
  background: linear-gradient(135deg,var(--brand), #0a3b31);
  box-shadow: var(--shadow);
}
.brand-title{font-weight:900;letter-spacing:.3px}
.badge{
  padding:6px 10px;border:1px solid var(--border);
  border-radius:999px;background:#fff;font-size:12px;color:var(--muted);
}
.card{
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;border-radius:12px;
  padding:12px 14px;
  border:1px solid var(--border);
  background:#fff;
  cursor:pointer;
  text-decoration:none;
  font-weight:800;
}
.btn-primary{background:var(--brand); color:#fff; border-color:rgba(15,92,76,.4)}
.btn-gold{background:var(--gold); color:#111827; border-color:rgba(172,138,23,.55)}
.btn-ghost{background:transparent}
.grid{display:grid;gap:14px}
@media (min-width: 900px){ .grid-2{grid-template-columns:1fr 1fr} }
label{font-weight:800;font-size:13px;color:#0b3a31}
input,select,textarea{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(15,92,76,.22);
  background:#fff;
  outline:none;
  font-size:14px;
}
textarea{min-height:110px;resize:vertical}
textarea{min-height:110px;resize:vertical}
.help{font-size:12px;color:var(--muted);margin-top:6px}
.hr{height:1px;background:rgba(15,92,76,.14);margin:18px 0}
.kpi{display:flex;gap:10px;flex-wrap:wrap}
.kpi .pill{padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;font-weight:800;font-size:12px}
.footer{padding:26px 0;color:var(--muted);font-size:12px;text-align:center}

/* --- vBeauty tweaks --- */
input:focus, select:focus, textarea:focus{
  border-color: rgba(15,92,76,.55);
  box-shadow: 0 0 0 4px rgba(15,92,76,.12);
}
select{appearance:none;background-image: linear-gradient(45deg, transparent 50%, rgba(31,41,55,.7) 50%), linear-gradient(135deg, rgba(31,41,55,.7) 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% + 1px), calc(100% - 13px) calc(50% + 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat:no-repeat;
  padding-right: 38px;
}
h1,h2,h3{letter-spacing:.2px}

/* --- vCompact tweaks --- */
.container{max-width:1180px;margin:0 auto;padding:18px 24px}
input,select,textarea{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(15,92,76,.22);
  background:#fff;
  outline:none;
  font-size:14px;
}
textarea{min-height:110px;resize:vertical}
textarea{min-height:96px}
.btn{padding:10px 12px;border-radius:12px}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 24px}



/* flat focus */
input:focus,select:focus,textarea:focus{border-color:rgba(15,92,76,.45);box-shadow:0 0 0 4px rgba(15,92,76,.10)}

/* =============================
   Extra UI components used across pages
   ============================= */

/* alias to support partials that use .wrap instead of .container */
.wrap{max-width:1180px;margin:0 auto;padding:18px 24px}
.muted{color:var(--muted)}

/* brand block in partial headers */
.brand-mark{
  width:38px;height:38px;border-radius:12px;
  background: linear-gradient(135deg,var(--brand), #0a3b31);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:900;
}
.brand-name{font-weight:900;letter-spacing:.2px}
.brand-sub{font-size:12px;color:var(--muted)}

/* admin nav */
.admin-nav{display:flex;gap:14px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.nav-link{font-weight:900;text-decoration:none;padding:8px 2px;color:var(--brand)}
.nav-link:hover{text-decoration:underline}

/* section titles and dividers */
.section-title{font-weight:950;margin:18px 0 10px 0}
.section-divider{height:1px;background:rgba(15,92,76,.14);margin:18px 0}

/* cards & messages */
.pad{padding:16px}
.card{
  background:#fff;
  border:1px solid rgba(15,92,76,.14);
  border-radius:16px;
}
.alert{border-color:rgba(220,38,38,.25);background:rgba(220,38,38,.06);padding:12px 14px;border-radius:14px;margin-bottom:12px}
.ok{border-color:rgba(16,185,129,.25);background:rgba(16,185,129,.08);padding:12px 14px;border-radius:14px;margin-bottom:12px}

/* small chips */
.pill{padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;font-weight:900;font-size:12px}

/* generic content box used by some pages */
.box{padding:18px}

/* simple table */
.table{display:grid;gap:8px;margin-top:10px}
.th,.tr{
  display:grid;
  grid-template-columns: 70px 1.6fr 1.1fr 1fr 90px 160px 170px 90px;
  gap:10px;
  align-items:center;
}
.th{font-weight:900;color:#0b3a31;border-bottom:1px solid rgba(15,92,76,.14);padding-bottom:10px}
.tr{padding:10px 0;border-bottom:1px solid rgba(15,92,76,.10)}
.tr:last-child{border-bottom:none}
@media (max-width: 900px){
  .th{display:none}
  .tr{grid-template-columns:1fr;gap:6px}
}

/* footer */
.footer-inner{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
