:root {
  --olive: #4A4C3A;
  --olive-grove: #5E6340;
  --sand: #D9C2A3;
  --cream: #F5F1E8;
  --sage: #A4A88F;
  --terracotta: #C96F4A;
  --fig: #6B3F52;
  --fig-light: #8B5568;
  --blush: #E0CACE;
  --white: #FFFFFF;
  --radius: 12px;
  --shadow: 0 2px 12px rgba(74,76,58,0.10);
  --shadow-lg: 0 8px 32px rgba(74,76,58,0.18);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
  max-width:100vw;
}
body{
  background:var(--cream);
  color:var(--olive);
  font-family:system-ui,-apple-system,'Segoe UI',Calibri,sans-serif;
  font-size:15px;
  line-height:1.6;
  min-height:100vh;
  overflow-x:hidden;
  max-width:100vw;
  position:relative;
}
h1,h2,h3,h4{font-family:Georgia,'Times New Roman',serif;color:var(--olive);line-height:1.25;}
a{color:var(--fig);text-decoration:none;}
a:hover{color:var(--terracotta);}
button{cursor:pointer;font-family:inherit;}
input,textarea,select{font-family:inherit;font-size:1rem;}
img{max-width:100%;height:auto;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius);font-size:.95rem;font-weight:600;border:none;transition:all .2s;cursor:pointer;text-decoration:none;line-height:1.2;}
.btn-primary{background:var(--fig);color:#fff;}
.btn-primary:hover{background:var(--fig-light);color:#fff;}
.btn-terracotta{background:var(--terracotta);color:#fff;}
.btn-terracotta:hover{background:#b55c38;color:#fff;}
.btn-olive{background:var(--olive);color:#fff;}
.btn-olive:hover{background:var(--olive-grove);color:#fff;}
.btn-outline{background:transparent;color:var(--fig);border:2px solid var(--fig);}
.btn-outline:hover{background:var(--fig);color:#fff;}
.btn-ghost{background:rgba(107,63,82,.08);color:var(--fig);}
.btn-ghost:hover{background:rgba(107,63,82,.16);}
.btn-sm{padding:8px 16px;font-size:.85rem;}
.btn-lg{padding:16px 32px;font-size:1.05rem;}
.btn-full{width:100%;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* Cards */
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;}
.card-cream{background:var(--cream);border-radius:var(--radius);padding:20px;border:1px solid rgba(74,76,58,.1);}

/* Form */
.field{margin-bottom:16px;}
.field label{display:block;font-size:.85rem;font-weight:600;color:var(--olive-grove);margin-bottom:6px;}
.field input,.field textarea,.field select{
  width:100%;padding:12px 14px;border:1.5px solid var(--sand);border-radius:10px;
  background:#fff;color:var(--olive);font-size:.95rem;transition:border-color .2s;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--fig);}
.field textarea{resize:vertical;min-height:80px;}

/* Badge */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;}
.badge-fig{background:rgba(107,63,82,.12);color:var(--fig);}
.badge-sage{background:rgba(164,168,143,.2);color:var(--olive-grove);}
.badge-terracotta{background:rgba(201,111,74,.12);color:var(--terracotta);}

/* Loading spinner */
.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Toast */
#toast{
  position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--olive);color:#fff;padding:12px 24px;border-radius:30px;
  font-size:.88rem;font-weight:600;opacity:0;transition:all .3s;z-index:9999;
  pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-lg);
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Util */
.text-center{text-align:center;}
.text-muted{color:var(--sage);}
.mt-8{margin-top:8px;}.mt-12{margin-top:12px;}.mt-16{margin-top:16px;}.mt-24{margin-top:24px;}.mt-32{margin-top:32px;}
.mb-8{margin-bottom:8px;}.mb-16{margin-bottom:16px;}.mb-24{margin-bottom:24px;}
.hidden{display:none!important;}
.serif{font-family:Georgia,'Times New Roman',serif;}

/* Member layout */
.member-wrap{
  max-width:480px;margin:0 auto;padding:0 0 80px 0;min-height:100vh;
  display:flex;flex-direction:column;
}
.member-header{
  background:#fff;padding:14px 20px;display:flex;align-items:center;
  justify-content:space-between;box-shadow:0 1px 4px rgba(74,76,58,.08);
  position:sticky;top:0;z-index:100;
}
.member-header .logo{font-family:Georgia,serif;font-size:1rem;font-weight:700;color:var(--fig);}
.member-content{flex:1;padding:20px 16px;}



/* Section headings */
.section-label{
  font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:var(--sage);margin-bottom:10px;
}

/* Progress bar */
.progress-bar-wrap{background:rgba(107,63,82,.1);border-radius:30px;height:8px;overflow:hidden;}
.progress-bar-fill{background:var(--fig);height:100%;border-radius:30px;transition:width .6s ease;}

/* Checklist item */
.check-item{
  background:#fff;border-radius:var(--radius);padding:16px 18px;
  display:flex;align-items:center;gap:14px;
  box-shadow:var(--shadow);margin-bottom:10px;
  cursor:pointer;transition:all .2s;border:2px solid transparent;
}
.check-item:hover{border-color:rgba(107,63,82,.15);}
.check-item.done{border-color:var(--fig);background:rgba(107,63,82,.04);}
.check-circle{
  width:44px;height:44px;border-radius:50%;border:2.5px solid var(--sand);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;transition:all .25s;
}
.check-item.done .check-circle{background:var(--fig);border-color:var(--fig);color:#fff;}
@keyframes checkPop{0%{transform:scale(1);}40%{transform:scale(1.3);}70%{transform:scale(.9);}100%{transform:scale(1);}}
.check-circle.pop{animation:checkPop .4s ease;}
.check-label{flex:1;}
.check-label strong{display:block;font-size:.95rem;color:var(--olive);}
.check-label span{font-size:.8rem;color:var(--sage);}
