:root {
  --primary: #FF6B00; --primary-light: #FF8C38;
  --dark: #0D0D1A; --card-bg: #16213E; --card-bg2: #0F1629;
  --text-light: #A0A8C0; --white: #ffffff;
  --border: rgba(255,255,255,0.08); --input-bg: rgba(255,255,255,0.04);
  --error: #FF4757; --success: #00C864; --warning: #F59E0B;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Cairo',sans-serif; background:var(--dark); color:var(--white); min-height:100vh; overflow-x:hidden; }

.page-wrapper { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; }

/* LEFT PANEL */
.visual-panel {
  background:linear-gradient(135deg,#0D0D1A 0%,#1A1A2E 100%);
  position:relative; overflow:hidden;
  display:flex; flex-direction:column; justify-content:center; align-items:center; padding:60px 50px;
}
.visual-bg-1 { position:absolute; width:500px; height:500px; background:radial-gradient(circle,rgba(255,107,0,.15) 0%,transparent 70%); top:-100px; right:-100px; }
.visual-bg-2 { position:absolute; width:400px; height:400px; background:radial-gradient(circle,rgba(0,212,255,.07) 0%,transparent 70%); bottom:-80px; left:-80px; }
.visual-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,107,0,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,107,0,.05) 1px,transparent 1px); background-size:40px 40px; }
.visual-content { position:relative; z-index:1; text-align:center; max-width:420px; }
.visual-logo { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:50px; text-decoration:none; }
.logo-icon-lg { width:56px; height:56px; background:linear-gradient(135deg,var(--primary),var(--primary-light)); border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:26px; box-shadow:0 8px 30px rgba(255,107,0,.4); }
.logo-text-lg { font-size:36px; font-weight:900; color:var(--white); }
.logo-text-lg span { color:var(--primary); }
.delivery-visual { position:relative; width:280px; height:280px; margin:0 auto 40px; }
.delivery-circle { position:absolute; border-radius:50%; border:1px solid; }
.circle-outer { inset:0; border-color:rgba(255,107,0,.15); animation:spin 20s linear infinite; }
.circle-mid { inset:30px; border-color:rgba(255,107,0,.2); animation:spin 15s linear infinite reverse; }
.circle-inner { inset:60px; border-color:rgba(255,107,0,.3); animation:spin 10s linear infinite; }
@keyframes spin { from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
.delivery-center { position:absolute; inset:90px; background:linear-gradient(135deg,var(--primary),var(--primary-light)); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:36px; box-shadow:0 0 40px rgba(255,107,0,.4); }
.visual-title { font-size:28px; font-weight:900; line-height:1.4; margin-bottom:16px; }
.visual-title span { color:var(--primary); }
.visual-desc { color:var(--text-light); font-size:15px; line-height:1.8; margin-bottom:36px; }
.visual-stats { display:flex; justify-content:center; gap:40px; }
.vs-item { text-align:center; }
.vs-num { font-size:26px; font-weight:900; color:var(--primary); }
.vs-label { font-size:11px; color:var(--text-light); margin-top:2px; }

/* RIGHT PANEL */
.form-panel {
  background:var(--card-bg2);
  display:flex; align-items:center; justify-content:center; padding:40px;
  position:relative;
}
.form-panel::before {
  content:''; position:absolute; top:0; right:0; bottom:0; width:1px;
  background:linear-gradient(180deg,transparent,rgba(255,107,0,.3),transparent);
}
.form-container { width:100%; max-width:440px; }

/* States */
.auth-state { display:none; }
.auth-state.active { display:block; }

/* Loading */
.loading-state { text-align:center; padding:60px 0; }
.spinner-lg { width:60px; height:60px; border:4px solid rgba(255,107,0,.2); border-top-color:var(--primary); border-radius:50%; animation:spin .8s linear infinite; margin:0 auto 20px; }

/* Sign In */
.form-header { margin-bottom:36px; }
.form-title { font-size:28px; font-weight:900; margin-bottom:8px; }
.form-subtitle { color:var(--text-light); font-size:14px; line-height:1.7; }

.google-btn {
  width:100%; display:flex; align-items:center; justify-content:center; gap:14px;
  padding:16px 24px; background:var(--white); color:#1a1a2e;
  border:none; border-radius:14px; font-family:'Cairo',sans-serif;
  font-size:16px; font-weight:700; cursor:pointer; transition:all .3s;
  box-shadow:0 4px 20px rgba(0,0,0,.3);
}
.google-btn:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(0,0,0,.4); }
.google-btn img { width:24px; height:24px; }
.google-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

.divider { display:flex; align-items:center; gap:12px; margin:24px 0; color:var(--text-light); font-size:13px; }
.divider::before, .divider::after { content:''; flex:1; height:1px; background:var(--border); }

/* Role Selection */
.role-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px; }
.role-card {
  border:2px solid var(--border); border-radius:16px; padding:24px 16px;
  text-align:center; cursor:pointer; transition:all .2s; background:var(--input-bg);
}
.role-card:hover { border-color:rgba(255,107,0,.4); background:rgba(255,107,0,.05); }
.role-card.selected { border-color:var(--primary); background:rgba(255,107,0,.1); }
.role-card-icon { font-size:36px; margin-bottom:12px; }
.role-card-title { font-size:15px; font-weight:800; margin-bottom:6px; }
.role-card-desc { font-size:12px; color:var(--text-light); }

/* Form inputs */
.input-group { margin-bottom:18px; }
.input-group label { display:block; font-size:13px; font-weight:700; color:var(--text-light); margin-bottom:8px; }
.input-group input, .input-group select {
  width:100%; padding:13px 16px; background:var(--input-bg);
  border:1.5px solid var(--border); border-radius:12px;
  color:var(--white); font-family:'Cairo',sans-serif; font-size:14px; font-weight:600; outline:none;
  transition:border-color .2s;
}
.input-group input:focus, .input-group select:focus { border-color:var(--primary); }
.input-group select option { background:#1a1a2e; color:#fff; }

.submit-btn {
  width:100%; padding:15px; background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:#fff; border:none; border-radius:14px; font-family:'Cairo',sans-serif;
  font-size:15px; font-weight:800; cursor:pointer; transition:all .3s;
  box-shadow:0 4px 20px rgba(255,107,0,.4); margin-top:8px;
}
.submit-btn:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(255,107,0,.5); }
.submit-btn:disabled { opacity:.6; cursor:not-allowed; transform:none; }

.back-btn {
  background:none; border:none; color:var(--text-light); font-family:'Cairo',sans-serif;
  font-size:13px; cursor:pointer; padding:8px 0; display:flex; align-items:center; gap:6px;
  margin-bottom:20px;
}
.back-btn:hover { color:var(--primary); }

/* Status states */
.status-card { text-align:center; padding:20px 0; }
.status-icon-wrap { width:90px; height:90px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:40px; margin:0 auto 24px; }
.status-icon-pending { background:rgba(245,158,11,.15); }
.status-icon-rejected { background:rgba(255,71,87,.15); }
.status-title { font-size:22px; font-weight:900; margin-bottom:12px; }
.status-desc { color:var(--text-light); font-size:14px; line-height:1.8; margin-bottom:28px; }
.status-info { background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:14px; padding:16px; margin-bottom:24px; text-align:right; }
.status-info-row { display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-size:13px; }
.status-info-row:not(:last-child) { border-bottom:1px solid var(--border); }
.sil { color:var(--text-light); }
.siv { font-weight:700; }

.signout-btn {
  width:100%; padding:12px; background:rgba(255,255,255,.05); border:1px solid var(--border);
  border-radius:12px; color:var(--text-light); font-family:'Cairo',sans-serif;
  font-size:14px; font-weight:600; cursor:pointer; transition:all .2s;
}
.signout-btn:hover { background:rgba(255,71,87,.1); color:var(--error); border-color:var(--error); }

.steps { display:flex; align-items:center; gap:8px; margin-bottom:28px; }
.step { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; background:var(--input-bg); border:1.5px solid var(--border); color:var(--text-light); }
.step.active { background:var(--primary); border-color:var(--primary); color:#fff; }
.step.done { background:rgba(0,200,100,.15); border-color:var(--success); color:var(--success); }
.step-line { flex:1; height:1px; background:var(--border); }

/* OTP Boxes */
.otp-boxes { display:flex; gap:10px; justify-content:center; margin:20px 0; direction:ltr; }
.otp-box {
  width:48px; height:56px; border-radius:12px; border:1.5px solid var(--border);
  background:var(--input-bg); color:var(--white); font-size:24px; font-weight:700;
  text-align:center; font-family:'Cairo',sans-serif; transition:all .2s; outline:none;
}
.otp-box:focus { border-color:var(--primary); box-shadow:0 0 0 3px rgba(255,107,0,.15); }
.otp-box:not(:placeholder-shown) { border-color:rgba(255,107,0,.4); }

/* Error message */
.error-msg {
  display:none; color:var(--error); font-size:13px; margin-bottom:8px;
  padding:8px 12px; background:rgba(255,71,87,.08); border-radius:8px;
  border:1px solid rgba(255,71,87,.2);
}

/* Text button (resend link) */
.text-btn {
  background:none; border:none; color:var(--primary); font-family:'Cairo',sans-serif;
  font-size:13px; cursor:pointer; text-decoration:underline; padding:4px;
}
.text-btn:hover { color:var(--primary-light); }
.text-btn:disabled { color:var(--text-light); text-decoration:none; cursor:default; }

@media (max-width:900px) {
  .page-wrapper { grid-template-columns:1fr; }
  .visual-panel { display:none; }
}


/* Google Sign-In Button */
.google-btn {
  width:100%; padding:13px 16px; border-radius:12px;
  border:1.5px solid var(--border); background:var(--input-bg);
  color:var(--white); font-family:'Cairo',sans-serif; font-size:14px; font-weight:700;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  gap:10px; transition:all .2s; margin-bottom:4px;
}
.google-btn:hover { border-color:#4285F4; background:rgba(66,133,244,.08); }
.google-btn:active { transform:scale(.98); }
.google-btn:disabled { opacity:.6; cursor:default; }

/* Divider */
.divider-row {
  display:flex; align-items:center; gap:12px; margin:16px 0;
  color:var(--text-light); font-size:12px;
}
.divider-row::before, .divider-row::after {
  content:''; flex:1; height:1px; background:var(--border);
}
