/* V9 — Coral minimalist workspace. Presentation only; business logic unchanged. */
:root {
  --v9-coral: #ff6b6b;
  --v9-gold: #f59e0b;
  --v9-rose: #ee5a70;
  --v9-berry: #c44569;
  --v9-violet: #574b90;
  --v9-ink: #171b2f;
  --v9-muted: #697089;
  --v9-line: #e8e9f1;
  --v9-canvas: #f7f8fc;
  --v9-surface: #ffffff;
  --v9-soft: #fff1f3;
  --v9-shadow: 0 18px 50px -30px rgba(45, 28, 71, .32);
  --v9-gradient: linear-gradient(135deg, var(--v9-coral), var(--v9-rose) 48%, var(--v9-berry));
}

html, body, button, input, textarea, select, p, span, a, td, li {
  font-family: 'Manrope', 'Noto Sans Devanagari', sans-serif !important;
  letter-spacing: 0 !important;
}
h1, h2, h3, h4, h5, .card-header, .btn, label, th {
  font-family: 'Sora', 'Noto Sans Devanagari', sans-serif !important;
  letter-spacing: 0 !important;
}
body { background: var(--v9-canvas) !important; color: var(--v9-ink) !important; font-weight: 500 !important; }

/* Authentication */
.auth-page.v9-auth {
  min-height: 100vh;
  padding: 28px !important;
  background: var(--v9-canvas) !important;
  overflow: auto !important;
}
.auth-page.v9-auth::before, .auth-page.v9-auth::after { display: none !important; }
.v9-auth-shell {
  width: min(1040px, 100%);
  min-height: 650px;
  display: grid;
  grid-template-columns: minmax(300px, .92fr) minmax(380px, 1.08fr);
  overflow: hidden;
  border: 1px solid var(--v9-line);
  border-radius: 8px;
  background: var(--v9-surface);
  box-shadow: var(--v9-shadow);
  animation: v9ShellIn .55s cubic-bezier(.22,.8,.25,1) both;
}
.v9-auth-story {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 46px;
  color: #fff;
  background: linear-gradient(155deg, var(--v9-violet), #34265f 58%, var(--v9-berry));
  overflow: hidden;
}
.v9-auth-story::after {
  content: '';
  position: absolute;
  right: -110px;
  bottom: -120px;
  width: 310px;
  height: 310px;
  border: 42px solid rgba(255,255,255,.09);
  border-radius: 50%;
}
.v9-brand { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }
.v9-brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; background: var(--v9-coral); font-size: 20px; box-shadow: 0 12px 24px rgba(0,0,0,.16); }
.v9-brand strong { font: 700 17px 'Sora', sans-serif; }
.v9-story-copy { position: relative; z-index: 1; margin: auto 0; }
.v9-story-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: #ffd9de; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.v9-story-kicker::before { content: ''; width: 28px; height: 2px; background: var(--v9-coral); }
.v9-story-copy h2 { margin: 0 0 14px; max-width: 380px; color: #fff !important; font-size: clamp(28px, 3vw, 42px); line-height: 1.2; font-weight: 700 !important; }
.v9-story-copy p { max-width: 370px; color: rgba(255,255,255,.76); line-height: 1.75; font-size: 14px; }
.v9-trust-row { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 10px; }
.v9-trust-row span { padding: 8px 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 6px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.88); font-size: 11px; font-weight: 700; }
.v9-auth-stage { display: grid; place-items: center; padding: 42px clamp(26px, 5vw, 68px); background: var(--v9-surface); }
.v9-auth .auth-card {
  width: 100%; max-width: 430px; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; backdrop-filter: none !important;
  animation: v9FormIn .48s .08s cubic-bezier(.22,.8,.25,1) both !important;
}
.v9-auth .auth-logo { width: 50px !important; height: 50px !important; margin: 0 0 20px !important; border-radius: 8px !important; background: var(--v9-gradient) !important; box-shadow: 0 14px 28px -14px rgba(196,69,105,.75) !important; }
.v9-auth .auth-card h1 { text-align: left !important; margin-bottom: 7px !important; color: var(--v9-ink) !important; background: none !important; -webkit-text-fill-color: currentColor !important; font-size: 28px !important; font-weight: 700 !important; }
.v9-auth .auth-card .subtitle { text-align: left !important; margin-bottom: 26px !important; color: var(--v9-muted) !important; }
.v9-auth .form-group { margin-bottom: 16px; }
.v9-auth .input-group, .v9-auth .form-control {
  border: 1.5px solid var(--v9-line) !important; border-radius: 7px !important; background: #fafbfe !important;
  transition: border-color .2s, box-shadow .2s, transform .2s !important;
}
.v9-auth .input-group:focus-within, .v9-auth .form-control:focus { border-color: var(--v9-rose) !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(238,90,112,.11) !important; transform: translateY(-1px); }
.v9-auth .btn { min-height: 48px; border-radius: 7px !important; }
.v9-auth .btn-primary { background: var(--v9-gradient) !important; box-shadow: 0 14px 26px -16px rgba(196,69,105,.9) !important; }
.v9-auth .btn-success { background: var(--v9-violet) !important; box-shadow: 0 14px 26px -16px rgba(87,75,144,.8) !important; }
.v9-auth .btn[type="submit"] { position: relative; transition: transform .18s, box-shadow .18s, filter .18s !important; }
.v9-auth .btn[type="submit"]:active { transform: scale(.975) !important; }
.v9-auth .btn.is-submitting { color: transparent !important; pointer-events: none; transform: scale(.985) !important; }
.v9-auth .btn.is-submitting::before { content: ''; position: absolute; width: 20px; height: 20px; border: 2px solid rgba(255,255,255,.42); border-top-color: #fff; border-radius: 50%; animation: v9Spin .65s linear infinite; }
.v9-auth .btn.is-submitting::after { content: ''; position: absolute; top: 0; bottom: 0; width: 36%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.38), transparent); animation: v9Travel .8s ease infinite; }
.v9-auth.page-leaving .v9-auth-stage { animation: v9StageOut .32s ease both; }
.v9-auth.page-leaving .v9-auth-story { animation: v9StoryOut .32s ease both; }
.v9-register .v9-auth-shell { min-height: 760px; }
.v9-register .v9-auth-stage { padding-top: 32px; padding-bottom: 32px; }
.v9-register .form-group { animation: v9FieldIn .38s both; }
.v9-register .form-group:nth-of-type(2) { animation-delay: .05s; }
.v9-register .form-group:nth-of-type(3) { animation-delay: .10s; }
.v9-register .form-group:nth-of-type(4) { animation-delay: .15s; }
.v9-register .form-group:nth-of-type(5) { animation-delay: .20s; }
.fee-banner { border-radius: 7px !important; border: 1px solid #ffd4da !important; background: var(--v9-soft) !important; }

/* User workspace */
body.user-portal .header { position: sticky; top: 0; padding: 10px 0 !important; background: rgba(255,255,255,.95) !important; border-color: var(--v9-line) !important; }
body.user-portal .header-logo { border-radius: 7px !important; background: var(--v9-gradient) !important; }
body.user-portal .header h1 { color: var(--v9-ink) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body.user-portal .wallet-badge-rainbow { animation: none !important; border: 0 !important; border-radius: 7px !important; background: var(--v9-gradient) !important; box-shadow: 0 10px 24px -14px rgba(196,69,105,.8) !important; }
body.user-portal .wallet-badge-rainbow::after, body.user-portal .wallet-badge-rainbow .wb-icon, body.user-portal .wallet-badge-rainbow .wb-plus { animation: none !important; }
body.user-portal .btn-logout { border-radius: 7px !important; }
body.user-portal main.container { max-width: 1320px !important; }
.v9-workspace { display: grid; grid-template-columns: 238px minmax(0, 1fr); gap: 12px; align-items: start; }
.v9-workspace-nav { position: sticky; top: 78px; min-height: calc(100vh - 108px); padding: 18px 12px; border: 1px solid var(--v9-line); border-radius: 8px; background: #20243a; box-shadow: var(--v9-shadow); }
.v9-nav-title { margin-bottom: 8px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.22); border-radius: 6px; color: #fff; font: 800 16px 'Sora', sans-serif; }
.v9-workspace-nav .tabs { display: flex !important; flex-direction: column !important; gap: 8px !important; margin: 0 !important; padding: 0 !important; overflow: visible; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; backdrop-filter: none; }
.v9-workspace-nav .tab { flex: none !important; width: 100% !important; min-width: 0 !important; padding: 13px 12px !important; border: 1px solid rgba(255,255,255,.18) !important; border-radius: 6px !important; background: rgba(255,255,255,.035) !important; color: #e8eaf2 !important; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08) !important; text-align: left; font-size: 14px !important; font-weight: 800 !important; line-height: 1.3 !important; }
.v9-workspace-nav .tab:hover { transform: translateX(3px) !important; border-color: rgba(255,255,255,.42) !important; background: rgba(255,255,255,.1) !important; color: #fff !important; }
.v9-workspace-nav .tab.active { background: var(--v9-gradient) !important; color: #fff !important; }
.v9-workspace-nav .offline-service-tab { border-color: rgba(255,195,113,.72) !important; background: rgba(245,158,11,.13) !important; color: #ffd9a3 !important; }
.v9-workspace-nav .dashboard-tab { margin-top: 6px; border-color: rgba(114,221,255,.7) !important; background: linear-gradient(135deg,rgba(14,165,233,.22),rgba(99,102,241,.24)) !important; color: #bfeeff !important; }
.v9-workspace-main { min-width: 0; }
.v9-welcome { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr); gap: 14px; margin-bottom: 18px; }
.v9-welcome-copy, .v9-wallet-tile { min-height: 136px; padding: 24px; border-radius: 8px; }
.v9-welcome-copy { border: 1px solid var(--v9-line); background: #fff; }
.v9-eyebrow { color: var(--v9-berry); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.v9-welcome h2 { margin: 8px 0 5px; font-size: clamp(22px, 3vw, 31px); color: var(--v9-ink) !important; font-weight: 700 !important; }
.v9-welcome p { color: var(--v9-muted); font-size: 13px; }
.v9-wallet-tile { display: flex; flex-direction: column; justify-content: space-between; color: #fff; background: linear-gradient(145deg, var(--v9-violet), var(--v9-berry)); box-shadow: 0 18px 38px -24px rgba(87,75,144,.8); }
.v9-wallet-tile span { color: rgba(255,255,255,.72); font-size: 11px; }
.v9-wallet-tile strong { color: #fff; font: 700 29px 'Sora', sans-serif; }
.v9-wallet-tile a { align-self: flex-start; color: #fff; font-size: 12px; font-weight: 800; }

body.user-portal .cat-layout { display: block !important; width: 100% !important; }
body.user-portal .cat-hero { padding: 18px 20px !important; border-radius: 8px !important; background: linear-gradient(135deg, var(--v9-violet), var(--v9-berry)) !important; box-shadow: none !important; }
body.user-portal #catGrid { grid-template-columns: repeat(auto-fill,minmax(210px,1fr)) !important; gap: 18px !important; padding: 9px 5px !important; }
body.user-portal #catGrid .cat-card { min-height: 188px !important; aspect-ratio: auto !important; padding: 22px 16px !important; border: 2px solid transparent !important; border-radius: 8px !important; transform: none !important; box-shadow: 0 8px 20px rgba(32,36,58,.1) !important; background: #fff !important; overflow: hidden !important; }
body.user-portal #catGrid .cat-card::after, body.user-portal #catGrid .cat-card .cc-hole { display: none !important; }
body.user-portal #catGrid .cat-card::before { border-radius: 8px !important; opacity: .06 !important; }
body.user-portal #catGrid .cat-card:hover { transform: translateY(-5px) !important; border-color: var(--cat-color) !important; box-shadow: 0 15px 32px rgba(32,36,58,.18) !important; }
body.user-portal #catGrid .cat-card .cc-icon { width: 52px !important; height: 52px !important; margin-bottom: 10px !important; border-radius: 7px !important; font-size: 25px !important; }
body.user-portal #catGrid .cat-card .cc-label { color: var(--cat-color) !important; font: 800 17px/1.2 'Sora', sans-serif !important; }
body.user-portal #catGrid .cat-card .cc-count { top: 10px !important; right: 10px !important; border-radius: 5px !important; font-size: 10px !important; }
body.user-portal #catGrid .cat-card-image { position: relative !important; min-height: 226px !important; padding: 0 !important; align-items: flex-start !important; justify-content: flex-end !important; border: 2px solid transparent !important; background: var(--v9-ink) !important; isolation: isolate; }
body.user-portal #catGrid .cat-card-image::before { display: none !important; }
body.user-portal #catGrid .cat-card-image .cc-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .35s ease; }
body.user-portal #catGrid .cat-card-image .cc-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 24%, rgba(15,23,42,.9) 100%); }
body.user-portal #catGrid .cat-card-image .cc-label { width: 100%; padding: 22px 16px 16px; color: #fff !important; font: 800 20px/1.15 'Sora', sans-serif !important; text-align: left !important; text-shadow: 0 2px 10px rgba(0,0,0,.35); }
body.user-portal #catGrid .cat-card-image .cc-count { z-index: 2; color: #fff !important; background: var(--cat-color) !important; box-shadow: 0 5px 14px rgba(15,23,42,.25) !important; }
body.user-portal #catGrid .cat-card-image:hover .cc-photo { transform: scale(1.045); }
body.user-portal #catGrid .cat-card-image:nth-child(1) .cc-label { color: #ffd166 !important; }
body.user-portal #catGrid .cat-card-image:nth-child(2) .cc-label { color: #9cffb4 !important; }
body.user-portal #catGrid .cat-card-image:nth-child(3) .cc-label { color: #ff8f86 !important; }
body.user-portal #catGrid .cat-card-image:nth-child(4) .cc-label { color: #74f0cf !important; }
body.user-portal #catGrid .cat-card-image:nth-child(5) .cc-label { color: #ffc371 !important; }
body.user-portal #catGrid .cat-card-image:nth-child(6) .cc-label { color: #72ddff !important; }
body.user-portal .dashboard-service-grid { grid-template-columns: repeat(auto-fill,minmax(240px,1fr)) !important; gap: 18px !important; }
body.user-portal .dashboard-service-card, body.user-portal .service-card { position: relative; min-height: 244px; padding: 22px !important; border: 2px solid transparent !important; border-radius: 8px !important; background: #fff !important; background-clip: padding-box !important; box-shadow: 0 9px 24px rgba(32,36,58,.1) !important; animation: v9CardIn .35s both !important; isolation: isolate; }
body.user-portal .dashboard-service-card::before, body.user-portal .service-card::before { content: ''; position: absolute; z-index: -1; inset: -3px; border-radius: 10px; background: conic-gradient(from var(--v9-ring-angle), var(--v9-rose), var(--v9-gold), var(--v9-violet), var(--v9-rose)); animation: v9RingOrbit 4s linear infinite; }
body.user-portal .dashboard-service-card::after, body.user-portal .service-card::after { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: 6px; background: #fff; }
body.user-portal .dashboard-service-card:hover, body.user-portal .service-card:hover { transform: translateY(-3px) !important; border-color: var(--v9-rose) !important; box-shadow: var(--v9-shadow) !important; }
body.user-portal .dashboard-service-card>div:first-of-type, body.user-portal .svc-icon { border-radius: 7px !important; background: var(--v9-soft) !important; color: var(--v9-berry) !important; box-shadow: none !important; }
body.user-portal .dashboard-service-card h3, body.user-portal .service-card h3 { color: var(--v9-berry) !important; font: 800 17px/1.25 'Sora', sans-serif !important; }
body.user-portal .offline-service-card-image { overflow: hidden; justify-content: flex-end; }
body.user-portal .offline-service-card-image .offline-service-visual { width: calc(100% + 44px); height: 150px; margin: -22px -22px 16px; border-radius: 6px 6px 0 0 !important; overflow: hidden; background: var(--v9-ink) !important; }
body.user-portal .offline-service-card-image .offline-service-visual img { width: 100%; height: 100%; max-width: none !important; max-height: none !important; object-fit: cover; }
body.user-portal .dashboard-service-card .btn, body.user-portal .service-card .btn, body.user-portal .btn-primary { border-radius: 7px !important; background: var(--v9-gradient) !important; animation: none !important; }
body.user-portal .card, body.user-portal .stat-card { border-radius: 8px !important; box-shadow: none !important; }
body.user-portal .stat-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 12px !important; }
body.user-portal .stat-card .bar { border-radius: 0 !important; background: var(--v9-gradient) !important; }
body.user-portal .stat-card .ic { border-radius: 7px !important; background: var(--v9-soft) !important; color: var(--v9-berry) !important; }

@keyframes v9ShellIn { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes v9FormIn { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: none; } }
@keyframes v9FieldIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes v9CardIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes v9Spin { to { transform: rotate(360deg); } }
@property --v9-ring-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes v9RingOrbit { to { --v9-ring-angle: 360deg; } }
@keyframes v9Travel { from { left: -45%; } to { left: 115%; } }
@keyframes v9StageOut { to { opacity: 0; transform: translateX(-24px); } }
@keyframes v9StoryOut { to { opacity: 0; transform: translateX(24px); } }

@media (max-width: 920px) {
  .v9-auth-shell { grid-template-columns: 1fr; max-width: 580px; }
  .v9-auth-story { min-height: 225px; padding: 30px; }
  .v9-story-copy { margin: 26px 0; }
  .v9-story-copy h2 { font-size: 27px; }
  .v9-trust-row { display: none; }
  .v9-workspace { grid-template-columns: 1fr; }
  .v9-workspace-nav { position: static; min-height: auto; padding: 8px; }
  .v9-workspace-nav .tabs { flex-direction: column !important; overflow: visible; }
  .v9-workspace-nav .tab { width: 100% !important; min-width: 0 !important; }
  .v9-nav-title { display: block; }
  body.user-portal .cat-layout { display: block !important; }
}
@media (max-width: 620px) {
  .auth-page.v9-auth { padding: 0 !important; }
  .v9-auth-shell { min-height: 100vh; border: 0; border-radius: 0; }
  .v9-auth-story { min-height: 190px; padding: 24px; }
  .v9-auth-stage { padding: 30px 22px 42px; }
  .v9-welcome { grid-template-columns: 1fr; }
  .v9-welcome-copy, .v9-wallet-tile { min-height: 120px; padding: 18px; }
  body.user-portal .header-left .user-info, body.user-portal .low-bal-cta { display: none; }
  body.user-portal .header h1 { font-size: 13px !important; }
  body.user-portal .wallet-badge-rainbow { padding: 7px 9px !important; }
  body.user-portal .btn-logout { padding: 8px 9px !important; font-size: 0 !important; }
  body.user-portal .btn-logout::after { content: '🚪'; font-size: 15px; }
  body.user-portal #catGrid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.user-portal #catGrid { gap: 12px !important; }
  body.user-portal #catGrid .cat-card-image { min-height: 194px !important; }
  body.user-portal #catGrid .cat-card-image .cc-label { padding: 18px 12px 13px; font-size: 17px !important; }
  body.user-portal .dashboard-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px !important; }
  body.user-portal .dashboard-service-card, body.user-portal .service-card { min-height: 224px; padding: 16px !important; }
  body.user-portal .offline-service-card-image .offline-service-visual { width: calc(100% + 32px); margin: -16px -16px 14px; }
  body.user-portal .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}