:root{
  --blue:#1e6bff; --blue-dk:#0f4fd6; --ink:#0d1b2a; --muted:#5b6b7f;
  --line:#e4e9f0; --bg:#f5f8fc; --card:#ffffff; --good:#128a4b; --warn:#c47d00;
  --radius:14px; --maxw:640px;
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.5;-webkit-text-size-adjust:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:20px 18px 60px}
.brand{display:flex;align-items:center;gap:10px;padding:22px 0 6px}
.brand .mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--blue-dk));
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:20px;box-shadow:0 4px 14px rgba(30,107,255,.35)}
.brand b{font-size:19px;letter-spacing:.2px}
.brand span{display:block;font-size:12px;color:var(--muted);font-weight:600;letter-spacing:.4px;text-transform:uppercase}
h1{font-size:26px;margin:14px 0 6px;line-height:1.2}
.lede{color:var(--muted);margin:0 0 18px;font-size:15px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;
  box-shadow:0 2px 16px rgba(13,27,42,.05)}
label{display:block;font-weight:650;margin:16px 0 6px;font-size:14px}
.req::after{content:" *";color:var(--blue)}
.hint{font-weight:500;color:var(--muted);font-size:12.5px;margin-top:4px}
input[type=text],input[type=tel],input[type=email],textarea{min-width:0;
  width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--ink)}
input:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,107,255,.15)}
textarea{min-height:70px;resize:vertical}
.row{display:flex;gap:12px}.row>div{flex:1;min-width:0}
.file{display:flex;align-items:center;gap:12px;border:1.5px dashed var(--line);border-radius:10px;padding:12px 13px;background:#fbfdff}
.file input{font-size:14px}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:20px;background:#f0f5ff;border:1px solid #d8e6ff;border-radius:10px;padding:13px}
.consent input{margin-top:3px;width:18px;height:18px;flex:0 0 auto}
.consent small{color:var(--muted);font-size:12.5px}
button{margin-top:22px;width:100%;background:var(--blue);color:#fff;border:0;border-radius:11px;padding:15px;
  font-size:17px;font-weight:750;cursor:pointer;box-shadow:0 6px 18px rgba(30,107,255,.32)}
button:hover{background:var(--blue-dk)}
.err{background:#fff2f2;border:1px solid #ffd2d2;color:#b00020;border-radius:10px;padding:12px 13px;margin-bottom:16px;font-size:14px}
.foot{color:var(--muted);font-size:12.5px;text-align:center;margin-top:22px}
.section-t{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin:24px 0 2px}
/* success */
.ok{text-align:center;padding:26px 10px}
.ok .big{width:64px;height:64px;border-radius:50%;background:var(--good);color:#fff;display:grid;place-items:center;
  font-size:34px;margin:0 auto 14px}
/* admin */
table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line)}
th{background:#f3f7ff;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
tr:last-child td{border-bottom:0}
.badge{display:inline-block;font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:20px}
.b-good{background:#e3f6ec;color:var(--good)}
.b-part{background:#fdf3e0;color:var(--warn)}
.b-none{background:#f0f2f6;color:var(--muted)}
.pill{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;margin-right:4px}
.p-on{background:#e3f6ec;color:var(--good)}.p-off{background:#f0f2f6;color:#9aa7b6}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.admin-h{display:flex;justify-content:space-between;align-items:center;margin:8px 0 16px;flex-wrap:wrap;gap:8px}
.stat{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-right:8px;font-size:13px}
.stat b{font-size:18px;display:block;color:var(--blue)}
.dl{display:inline-block;margin:4px 8px 4px 0;background:#f3f7ff;border:1px solid #d8e6ff;border-radius:8px;padding:6px 10px;font-size:13px}
.back{font-size:14px;display:inline-block;margin-bottom:12px}
/* --- v2: optional labels, payment badges, calculator --- */
.opt{font-weight:500;color:var(--muted);font-size:12px}
.b-cash{background:#fdf3e0;color:var(--warn)}
.btn-lite{font-size:13px;font-weight:700;background:#f3f7ff;border:1px solid #d8e6ff;color:var(--blue);
  padding:8px 12px;border-radius:9px;text-decoration:none}
.btn-lite:hover{background:#e8f0ff;text-decoration:none}
input[type=number]{min-width:0;width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:10px;
  font-size:16px;background:#fff;color:var(--ink)}
input[type=number]:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,107,255,.15)}
.calc-out{margin-top:18px}
.calc-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}
.calc-row span:first-child{font-weight:650}
.calc-row span:last-child{color:var(--muted);text-align:right}
.verdict{margin-top:14px;padding:13px 14px;border-radius:11px;font-size:15px;font-weight:600}
.v-cash{background:#fdf3e0;color:#8a5a00;border:1px solid #f4d79a}
.v-doc{background:#e3f6ec;color:#0b6b39;border:1px solid #b6e6c8}
.callout{background:#eef4ff;border:1px solid #d3e3ff;color:#2b4d86;border-radius:10px;padding:11px 13px;font-size:13px;margin:2px 0 8px}
.callout b{color:#1a3d78}
/* --- v3: review / approve-reject --- */
.b-rej{background:#fdecea;color:#b3261e}
.b-pend{background:#eef2f7;color:#5b6b7f}
.stat-alert b{color:#c47d00}
.stat-alert{border-color:#f4d79a;background:#fffaf0}
.note-box{background:#fff8ec;border:1px solid #f4d79a;color:#8a5a00;border-radius:10px;padding:10px 12px;margin:6px 0 4px;font-size:13.5px}
.review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.review-actions .inline{margin:0}
.btn-approve,.btn-reject,.btn-plain{width:auto;margin-top:0;padding:11px 18px;font-size:15px;box-shadow:none;border-radius:10px}
.btn-approve{background:var(--good)}
.btn-approve:hover{background:#0f7a42}
.btn-approve:disabled{background:#bfe6cd;cursor:default}
.btn-reject{background:#c0362c}.btn-reject:hover{background:#a52c23}
.btn-plain{background:#eef2f7;color:#5b6b7f;font-weight:650}.btn-plain:hover{background:#e2e8f0}
.reject-wrap{display:inline-block}
.btn-reject-open{cursor:pointer;list-style:none;color:#c0362c;font-weight:700;font-size:14px;
  border:1px solid #f3c6c1;background:#fdecea;padding:11px 16px;border-radius:10px;display:inline-block}
.btn-reject-open::-webkit-details-marker{display:none}
.reject-form{display:flex;gap:8px;align-items:center;margin-top:10px;flex-wrap:wrap}
.reject-form input{min-width:0;flex:1;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;font-size:15px}
/* --- v4: jobs & bidding --- */
select{width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--ink)}
select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,107,255,.15)}
label.radio{display:flex;align-items:center;gap:10px;font-weight:600;margin:8px 0;padding:12px 13px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer}
label.radio input{width:18px;height:18px;flex:0 0 auto;margin:0}
tr.row-win td{background:#eef7ff}
.btn-approve,.btn-reject,.btn-plain{display:inline-block}
.b-leg-del{background:#e6f0ff;color:#1e5fd6}
.b-leg-pick{background:#f0eaff;color:#6b3fd0}
.note-drive{background:#fff8ec;border-color:#f4d79a;color:#7a5600}
.note-drive b{color:#5c4200}
/* --- v5: text log --- */
.msg{border:1px solid var(--line);border-radius:11px;padding:10px 13px;margin-bottom:9px;background:#fff}
.msg.m-in{background:#f3f7ff;border-color:#d8e6ff}
.msg-h{font-size:12px;margin-bottom:5px}
.msg-b{font-size:14px;white-space:pre-wrap;line-height:1.45}
.msg-out{color:var(--muted);font-weight:700}
.msg-in{color:var(--blue);font-weight:700}
/* --- v6: practice chat --- */
.pchat{display:flex;flex-direction:column;gap:9px}
.pbub{max-width:82%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.pbub-who{font-size:11px;font-weight:700;opacity:.7;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px}
.p-sys{align-self:flex-start;background:#eef2f7;color:var(--ink);border-bottom-left-radius:4px}
.p-drv{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.p-drv .pbub-who{color:#fff;opacity:.85}
