:root{
  --green:#0C4A35; --gold:#C8983B; --ivory:#FAF8F2; --charcoal:#1F2D26;
  --lightgreen:#E8F0EC; --line:#D8E2DC; --red:#B04632;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:'Segoe UI','Helvetica Neue',Arial,sans-serif; background:var(--ivory); color:var(--charcoal); line-height:1.55;}
a{color:var(--green);}
.topbar{background:var(--green); color:#fff; padding:14px 20px; text-align:center; border-bottom:3px solid var(--gold);}
.topbar .brand{font-size:26px; letter-spacing:2px; font-weight:600;}
.topbar .tag{color:var(--gold); font-size:11px; letter-spacing:4px; text-transform:uppercase; margin-top:2px;}
.wrap{max-width:760px; margin:0 auto; padding:18px 14px 60px;}
.wrap.wide{max-width:1200px;}
h1{color:var(--green); font-size:22px; margin:14px 0 4px;}
h2{color:var(--green); font-size:17px; margin:16px 0 8px;}
.sub{font-size:13.5px; color:#5a6b62; margin-bottom:16px;}
.note{background:var(--lightgreen); border-left:4px solid var(--gold); padding:10px 14px; border-radius:0 8px 8px 0; font-size:13px; margin-bottom:18px;}
.cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; margin-top:18px;}
.card{background:#fff; border:2px solid var(--green); border-radius:12px; padding:18px; text-decoration:none; color:var(--charcoal); transition:all .15s; display:block;}
.card:hover{box-shadow:0 4px 14px rgba(12,74,53,.2); transform:translateY(-2px);}
.card b{color:var(--green); font-size:16px; display:block; margin-bottom:4px;}
.card span{font-size:13px; color:#5a6b62;}
.card .go{display:inline-block; margin-top:10px; background:var(--green); color:#fff; font-size:13px; font-weight:700; padding:7px 14px; border-radius:8px;}
.progress{display:flex; gap:6px; margin:16px 0;}
.progress .p{flex:1; height:7px; background:var(--line); border-radius:5px;}
.progress .p.done{background:var(--gold);}
.progress .p.cur{background:var(--green);}
.steplabel{font-size:13px; font-weight:700; color:var(--green); margin-bottom:10px;}
.section{background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:14px; overflow:hidden; box-shadow:0 1px 4px rgba(31,45,38,.05);}
.sec-head{background:var(--green); color:#fff; padding:9px 14px; font-size:13.5px; font-weight:700; letter-spacing:.5px;}
.sec-body{padding:14px;}
.q{margin-bottom:13px;}
.q:last-child{margin-bottom:2px;}
.q .qt{display:block; font-weight:600; font-size:13.5px; margin-bottom:5px;}
.q .hint{font-weight:400; color:#7c8a81; font-size:11.5px;}
.q input[type=text],.q input[type=date],.q input[type=email],.q textarea,.q select{width:100%; padding:9px 11px; border:1.5px solid var(--line); border-radius:8px; font-size:14px; background:#FDFCFA; color:var(--charcoal); font-family:inherit;}
.q textarea{min-height:64px; resize:vertical;}
.q input:focus,.q textarea:focus,.q select:focus{outline:none; border-color:var(--gold);}
.opts{display:flex; flex-wrap:wrap; gap:7px;}
.opts.cols{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
.opt{display:flex; align-items:center; gap:7px; font-size:13px; background:#FDFCFA; border:1.5px solid var(--line); padding:7px 10px; border-radius:8px; cursor:pointer;}
.opt:hover{border-color:var(--gold);}
.opt input{accent-color:var(--green);}
.req{color:var(--red); font-weight:700;}
.err{color:var(--red); font-size:12.5px; margin-top:4px; display:none;}
.q.invalid .err{display:block;}
.q.invalid input[type=text],.q.invalid textarea{border-color:var(--red);}
.consent{background:var(--lightgreen); border:1.5px solid var(--green); border-radius:10px; padding:12px; font-size:12.5px;}
.consent .agree{display:flex; gap:9px; margin-top:10px; font-weight:700; align-items:flex-start;}
.navbtns{display:flex; gap:10px; margin-top:18px;}
.btn{border:none; padding:13px 22px; font-size:15px; font-weight:700; border-radius:10px; cursor:pointer; font-family:inherit; text-decoration:none; display:inline-block; text-align:center;}
.btn.primary{background:var(--green); color:#fff;}
.btn.primary:hover{background:#0e5a41;}
.btn.ghost{background:#fff; color:var(--green); border:2px solid var(--green);}
.btn.gold{background:var(--gold); color:var(--green);}
.btn.small{padding:7px 13px; font-size:13px;}
.grow{flex:1;}
.foot{text-align:center; font-size:12px; color:#7c8a81; margin-top:22px;}
.foot b{color:var(--green);}
/* ---------- admin ---------- */
.adminbar{background:var(--green); color:#fff; padding:10px 18px; display:flex; align-items:center; gap:18px; border-bottom:3px solid var(--gold); flex-wrap:wrap;}
.adminbar .brand{font-weight:700; letter-spacing:1px;}
.adminbar a{color:#fff; text-decoration:none; font-size:14px; opacity:.9;}
.adminbar a:hover{opacity:1; color:var(--gold);}
.adminbar .right{margin-left:auto; display:flex; gap:14px; align-items:center;}
.filters{display:flex; flex-wrap:wrap; gap:8px; background:#fff; border:1px solid var(--line); padding:12px; border-radius:10px; margin:14px 0; align-items:end;}
.filters label{font-size:11.5px; font-weight:700; color:var(--green); display:block; margin-bottom:3px;}
.filters input,.filters select{padding:7px 9px; border:1.5px solid var(--line); border-radius:7px; font-size:13px; font-family:inherit; background:#FDFCFA;}
table.list{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; font-size:13.5px;}
table.list th{background:var(--green); color:#fff; text-align:left; padding:9px 10px; font-size:12.5px; letter-spacing:.4px;}
table.list td{padding:8px 10px; border-top:1px solid var(--line); vertical-align:middle;}
table.list tr:nth-child(even) td{background:var(--ivory);}
.pill{display:inline-block; font-size:11px; font-weight:800; padding:3px 10px; border-radius:20px; letter-spacing:.4px;}
.pill.New{background:#F6E3C5; color:#8a6114;}
.pill.Reviewed{background:#DCE9F5; color:#1f4e79;}
.pill.SessionDone{background:#DDEEDF; color:#1e6b34;}
.statsel{padding:5px 7px; border:1.5px solid var(--line); border-radius:7px; font-size:12.5px; font-family:inherit;}
.detail .ans{background:#fff; border:1px solid var(--line); border-radius:10px; padding:0; margin-bottom:12px; overflow:hidden;}
.detail .ans .ah{background:var(--green); color:#fff; font-size:13px; font-weight:700; padding:8px 12px;}
.detail .row{display:flex; border-top:1px solid var(--line); font-size:13.5px;}
.detail .row:first-of-type{border-top:none;}
.detail .row .k{flex:0 0 42%; padding:8px 12px; font-weight:600; background:var(--ivory);}
.detail .row .v{flex:1; padding:8px 12px; white-space:pre-wrap;}
.notesbox{background:#FFF9EE; border:2px solid var(--gold); border-radius:10px; padding:14px; margin:14px 0;}
.notesbox h2{margin-top:0;}
.notesbox label{font-weight:700; font-size:13px; display:block; margin:10px 0 4px; color:var(--green);}
.notesbox input,.notesbox textarea{width:100%; padding:8px 10px; border:1.5px solid var(--line); border-radius:8px; font-size:13.5px; font-family:inherit; background:#fff;}
.notesbox textarea{min-height:56px; resize:vertical;}
.qedit{background:#fff; border:1px solid var(--line); border-radius:10px; padding:12px; margin-bottom:10px;}
.qedit .qhead{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13.5px;}
.qedit .qhead b{color:var(--green);}
.qedit .muted{color:#7c8a81; font-size:12px;}
.qedit form{margin-top:10px; display:grid; grid-template-columns:1fr 1fr; gap:10px; font-size:13px;}
.qedit form .full{grid-column:1 / -1;}
.qedit form label{font-weight:700; color:var(--green); font-size:11.5px; display:block; margin-bottom:3px;}
.qedit form input[type=text],.qedit form input[type=number],.qedit form textarea,.qedit form select{width:100%; padding:7px 9px; border:1.5px solid var(--line); border-radius:7px; font-size:13px; font-family:inherit; background:#FDFCFA;}
.flash{background:#DDEEDF; color:#1e6b34; border-radius:8px; padding:9px 13px; font-size:13.5px; margin:10px 0; font-weight:600;}
.login-box{max-width:380px; margin:60px auto; background:#fff; border:1px solid var(--line); border-radius:14px; padding:26px; box-shadow:0 4px 18px rgba(31,45,38,.08);}
.login-box h1{text-align:center;}
.login-box label{font-weight:700; font-size:13px; display:block; margin:12px 0 4px; color:var(--green);}
.login-box input{width:100%; padding:10px 12px; border:1.5px solid var(--line); border-radius:8px; font-size:14px; font-family:inherit;}
@media print{
  .adminbar,.filters,.noprint{display:none !important;}
  body{background:#fff;}
  .wrap{max-width:100%; padding:0;}
}
/* ---------- status pills (unified clients + payments) ---------- */
.pill.Contacted{background:#DCE9F5; color:#1f4e79;}
.pill.Paid{background:#DDEEDF; color:#1e6b34;}
.pill.SessionDone{background:#D7EBDD; color:#155e2e;}
.pill.Closed{background:#E6E9E7; color:#4a5751;}
.pill.Lost{background:#F6D9D2; color:#8a2c14;}
/* ---------- mobile: usable one-handed on a phone ---------- */
@media (max-width:760px){
  .wrap{padding:14px 11px 60px;}
  .adminbar{gap:9px 14px; padding:10px 12px;}
  .adminbar .brand{flex:0 0 100%; font-size:13px;}
  .adminbar a{font-size:13.5px;}
  .adminbar .right{margin-left:0; width:100%; justify-content:space-between; gap:12px; border-top:1px solid rgba(255,255,255,.18); padding-top:8px;}
  .filters{gap:8px; padding:10px;}
  .filters > div{flex:1 1 46%; min-width:0;}
  .filters input,.filters select{width:100%;}
  /* data tables marked .rtable collapse into cards */
  table.rtable, table.rtable tbody, table.rtable tr, table.rtable td{display:block; width:100%;}
  table.rtable tr{border:1px solid var(--line); border-radius:12px; margin-bottom:12px; background:#fff; padding:8px 13px; box-shadow:0 1px 4px rgba(31,45,38,.05);}
  table.rtable tr:first-child{display:none;}          /* header row */
  table.rtable tr:nth-child(even) td{background:transparent;}
  table.rtable td{border:none; border-top:1px solid #F0ECE0; padding:8px 0; display:flex; justify-content:space-between; gap:14px; align-items:flex-start; text-align:right; font-size:14px;}
  table.rtable td:first-child{border-top:none;}
  table.rtable td::before{content:attr(data-label); font-weight:700; color:var(--green); text-align:left; flex:0 0 40%;}
  table.rtable td[colspan]::before{content:"";}
  table.rtable td[colspan]{justify-content:center; text-align:center;}
}
