:root {
  --accent:        #c17f3a;
  --accent-dark:   #9a6028;
  --accent-light:  #fdf3e7;
  --bg:            #f5f3ef;
  --surface:       #ffffff;
  --surface-raised:#fefefe;
  --text:          #1e1b17;
  --text-soft:     #6b6259;
  --text-muted:    #9c9286;
  --border:        #e8e2d9;
  --border-soft:   #f0ece5;
  --success-bg:    #edf7ea;
  --success:       #2e7d32;
  --warning-bg:    #fff8e8;
  --warning:       #a66800;
  --error-bg:      #fdf0ef;
  --error:         #c0392b;
  --info-bg:       #f0f4ff;
  --info:          #2c4fa3;
  --shadow-sm:     0 1px 3px rgba(0,0,0,.07), 0 1px 2px rgba(0,0,0,.05);
  --shadow:        0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.05);
  --shadow-lg:     0 8px 24px rgba(0,0,0,.10), 0 4px 8px rgba(0,0,0,.06);
  --radius:        12px;
  --radius-sm:     8px;
}

*{box-sizing:border-box;margin:0;padding:0}

body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  font-size:15px;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--accent-dark);text-decoration:none}
a:hover{text-decoration:underline}

/* ── HEADER ── */
.site-header{
  background:var(--surface);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:100;
  box-shadow:var(--shadow-sm);
}
.header-inner{
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
  height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.logo{
  font-weight:700;
  font-size:15px;
  color:var(--text);
  display:flex;
  align-items:center;
  gap:10px;
  letter-spacing:-.01em;
}
.logo-dot{
  width:8px;height:8px;
  background:var(--accent);
  border-radius:50%;
  flex-shrink:0;
}
.header-nav{display:flex;align-items:center;gap:6px}
.header-nav a{
  font-size:13.5px;
  color:var(--text-soft);
  padding:6px 12px;
  border-radius:var(--radius-sm);
  transition:background .15s,color .15s;
}
.header-nav a:hover{background:var(--bg);color:var(--text);text-decoration:none}
.header-nav a.active{color:var(--text);font-weight:500}

/* ── HERO ── */
.hero{
  position:relative;
  height:300px;
  overflow:hidden;
  margin-bottom:0;
}
.hero-img{width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,15,8,.08) 0%,rgba(20,15,8,.72) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:36px 40px;
  color:#fff;
}
.hero-eyebrow{
  font-size:11px;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:#ecd8b4;margin-bottom:8px;
}
.hero h1{
  font-size:28px;font-weight:700;color:#fff;
  letter-spacing:-.02em;line-height:1.2;margin-bottom:8px;
}
.hero-sub{font-size:14px;color:rgba(255,255,255,.82);max-width:520px;line-height:1.5}

/* ── LAYOUT ── */
.container{max-width:1080px;margin:0 auto;padding:0 24px}
main.container{padding-top:36px;padding-bottom:64px}

.page-header{margin-bottom:28px}
.page-header h1{font-size:22px;font-weight:700;letter-spacing:-.02em}
.page-header p{color:var(--text-soft);margin-top:4px;font-size:14px}

.two-col{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}
@media(max-width:768px){
  .two-col{grid-template-columns:1fr}
  .hero{height:220px}
  .hero-overlay{padding:24px}
  .hero h1{font-size:20px}
}

/* ── CARDS ── */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  padding:28px;
  margin-bottom:20px;
}
.card-accent{
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);
  border:none;color:#fff;
}
.card-accent h2,.card-accent p{color:#fff}
.card-accent .muted{color:rgba(255,255,255,.75)}
.card-highlight{
  background:var(--accent-light);
  border-color:rgba(193,127,58,.25);
}
.card-title{font-size:16px;font-weight:600;margin-bottom:16px;letter-spacing:-.01em}
.card-title-lg{font-size:19px;font-weight:700;margin-bottom:6px;letter-spacing:-.02em}
.form-card{max-width:460px;margin-left:auto;margin-right:auto}

/* ── FLOW STEPS ── */
.flow-steps{
  display:flex;gap:0;margin-bottom:28px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.flow-step{
  flex:1;padding:16px 20px;text-align:center;font-size:13px;
  border-right:1px solid var(--border);position:relative;
}
.flow-step:last-child{border-right:none}
.flow-step-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:var(--border);color:var(--text-soft);
  font-size:11px;font-weight:700;margin-bottom:6px;
}
.flow-step.done .flow-step-num{background:var(--success-bg);color:var(--success)}
.flow-step.active .flow-step-num{background:var(--accent);color:#fff}
.flow-step-label{font-weight:500;color:var(--text);font-size:12.5px}
.flow-step.done .flow-step-label{color:var(--text-soft)}
.flow-step.inactive .flow-step-label{color:var(--text-muted)}
.flow-step.inactive .flow-step-num{opacity:.5}

/* ── STATUS BADGE ── */
.badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:600;
  padding:4px 12px;border-radius:999px;letter-spacing:.01em;
}
.badge::before{
  content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0;
}
.badge-pending{background:var(--warning-bg);color:var(--warning)}
.badge-pending::before{background:var(--warning)}
.badge-approved{background:var(--success-bg);color:var(--success)}
.badge-approved::before{background:var(--success)}
.badge-rejected{background:var(--error-bg);color:var(--error)}
.badge-rejected::before{background:var(--error)}
.badge-paid{background:var(--success-bg);color:var(--success)}
.badge-paid::before{background:var(--success)}
.badge-open{background:var(--warning-bg);color:var(--warning)}
.badge-open::before{background:var(--warning)}

/* ── DATA TABLE ── */
.data-table{width:100%;border-collapse:collapse;font-size:14px}
.data-table th,.data-table td{
  padding:11px 12px;text-align:left;
  border-bottom:1px solid var(--border-soft);
}
.data-table thead th{
  font-size:12px;font-weight:600;color:var(--text-muted);
  text-transform:uppercase;letter-spacing:.06em;
  background:var(--bg);border-bottom:1px solid var(--border);
}
.data-table tbody tr:hover{background:var(--bg)}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table th.label{color:var(--text-soft);font-weight:500;width:42%;font-size:13.5px;text-transform:none;letter-spacing:0;background:transparent}

/* ── STAT CARDS ── */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
@media(max-width:600px){.stats-row{grid-template-columns:1fr 1fr}}
.stat-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:18px 20px;
  box-shadow:var(--shadow-sm);
}
.stat-value{font-size:26px;font-weight:700;letter-spacing:-.03em;line-height:1}
.stat-label{font-size:12px;color:var(--text-muted);margin-top:4px;font-weight:500}
.stat-accent{color:var(--accent)}

/* ── FORMS ── */
.field{margin-bottom:18px}
.field label{
  display:block;font-size:13px;font-weight:500;
  color:var(--text-soft);margin-bottom:6px;
}
.field input[type="text"],
.field input[type="email"],
.field input[type="password"],
input[type="text"],input[type="email"],input[type="password"]{
  display:block;width:100%;
  padding:10px 14px;font-size:14.5px;font-family:inherit;
  background:var(--surface);color:var(--text);
  border:1.5px solid var(--border);border-radius:var(--radius-sm);
  transition:border-color .15s,box-shadow .15s;
}
input:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(193,127,58,.15);
}
form label{display:block;font-size:13px;font-weight:500;color:var(--text-soft);margin-bottom:16px}
form label input{margin-top:6px}

/* ── BUTTONS ── */
.btn,.btn-accent,.btn-secondary,.btn-ghost,.btn-danger{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:inherit;font-size:14px;font-weight:600;
  padding:11px 22px;border-radius:var(--radius-sm);
  border:1.5px solid transparent;cursor:pointer;
  text-decoration:none;transition:all .15s;letter-spacing:-.01em;
  white-space:nowrap;
}
.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-accent:hover{background:var(--accent-dark);border-color:var(--accent-dark);text-decoration:none}
.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}
.btn-secondary:hover{background:var(--bg);text-decoration:none}
.btn-ghost{background:transparent;color:var(--text-soft);border-color:transparent;padding:8px 14px}
.btn-ghost:hover{background:var(--bg);color:var(--text);text-decoration:none}
.btn-danger{background:var(--error-bg);color:var(--error);border-color:transparent}
.btn-danger:hover{background:#fde0de;text-decoration:none}
.btn-lg{padding:14px 28px;font-size:15px}
.btn-sm{padding:7px 14px;font-size:13px}
.btn-full{width:100%}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}

/* ── FLASH ── */
.flash{
  padding:14px 18px;border-radius:var(--radius-sm);
  font-size:14px;margin-bottom:24px;border-left:4px solid;
}
.flash-success{background:var(--success-bg);color:var(--success);border-color:var(--success)}
.flash-error{background:var(--error-bg);color:var(--error);border-color:var(--error)}
.flash-info{background:var(--info-bg);color:var(--info);border-color:var(--info)}
.flash-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning)}
.flash ul{padding-left:16px;margin-top:4px}

/* ── MEMBER ROW (admin list) ── */
.member-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border-radius:var(--radius);overflow:hidden}
.member-row{
  background:var(--surface);padding:16px 20px;
  display:flex;align-items:center;gap:16px;
  transition:background .12s;
}
.member-row:hover{background:var(--bg)}
.member-avatar{
  width:38px;height:38px;border-radius:50%;
  background:var(--accent-light);
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:var(--accent-dark);
  flex-shrink:0;letter-spacing:-.02em;
}
.member-info{flex:1;min-width:0}
.member-name{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-meta{font-size:13px;color:var(--text-soft);margin-top:1px}
.member-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}

/* ── EMPTY STATE ── */
.empty-state{
  text-align:center;padding:48px 24px;
  color:var(--text-muted);font-size:14px;
}
.empty-state-icon{font-size:36px;margin-bottom:12px;opacity:.4}

/* ── DIVIDER ── */
.divider{height:1px;background:var(--border);margin:24px 0}

/* ── FOOTER ── */
.site-footer{
  border-top:1px solid var(--border);
  padding:20px 24px;margin-top:auto;
}
.site-footer p{font-size:12.5px;color:var(--text-muted);text-align:center}

.muted{color:var(--text-soft);font-size:13.5px}
.text-sm{font-size:13px}
.text-right{text-align:right}
.mt-4{margin-top:16px}
.mt-6{margin-top:24px}
.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-soft);font-size:13.5px;margin-bottom:20px}
.back-link:hover{color:var(--text)}

/* ── CTA PAYMENT CARD ── */
.payment-cta{
  border:2px solid var(--accent);
  border-radius:var(--radius);
  background:var(--accent-light);
  padding:28px;margin-bottom:20px;
}
.payment-cta-amount{
  font-size:38px;font-weight:800;color:var(--accent-dark);
  letter-spacing:-.04em;line-height:1;margin:8px 0 4px;
}
.payment-cta-period{font-size:14px;color:var(--text-soft);margin-bottom:20px}
.steps-mini{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.step-mini{display:flex;align-items:flex-start;gap:12px;font-size:13.5px}
.step-mini-num{
  width:22px;height:22px;border-radius:50%;
  background:var(--accent);color:#fff;
  font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  margin-top:1px;
}
