/* ============================================================
   WhatsApp API v2 -- styles
   ============================================================ */

:root {
    --wa-green:        #25D366;
    --wa-green-dark:   #128C7E;
    --wa-bg:           #f0f2f5;
    --wa-card:         #ffffff;
    --wa-border:       #e1e4e8;
    --wa-text:         #111b21;
    --wa-muted:        #667781;
    --wa-bubble-in:    #ffffff;
    --wa-bubble-out:   #d9fdd3;
    --wa-error:        #d93025;
    --wa-error-bg:     #fce8e6;
    --wa-ok:           #1e8e3e;
    --wa-ok-bg:        #e6f4ea;
    --wa-warn-bg:      #fef7e0;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: var(--wa-bg);
    color: var(--wa-text);
    font-size: 14px;
    line-height: 1.5;
}

a { color: var(--wa-green-dark); text-decoration: none; }
a:hover { text-decoration: underline; }

code, .wa-key {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    background: #f6f8fa;
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 12.5px;
}

/* ---- Top bar ---- */
.wa-top {
    background: var(--wa-green-dark);
    color: white;
    padding: 10px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.wa-brand { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 16px; }
.wa-brand small { font-weight: 400; opacity: 0.85; font-size: 13px; margin-left: 8px; }
.wa-logo {
    background: var(--wa-green);
    color: white;
    width: 32px; height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-weight: 700;
    letter-spacing: 0.5px;
}
.wa-nav { display: flex; align-items: center; gap: 16px; }
.wa-nav a { color: white; }
.wa-user { opacity: 0.85; font-size: 13px; }
.wa-logout { opacity: 0.85; }

/* ---- Main / footer ---- */
.wa-main { max-width: 1200px; margin: 20px auto; padding: 0 20px; }
.wa-footer { text-align: center; padding: 20px; color: var(--wa-muted); }

/* ---- Cards ---- */
.wa-card {
    background: var(--wa-card);
    border: 1px solid var(--wa-border);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 16px;
}
.wa-card h1, .wa-card h2 { margin-top: 0; }
.wa-hint { color: var(--wa-muted); font-size: 13px; }
.wa-inline-form { display: inline-block; margin: 12px 0 0; }

/* ---- Form controls ---- */
form label {
    display: block;
    margin-bottom: 14px;
}
form label > span {
    display: block;
    font-weight: 500;
    margin-bottom: 4px;
}
form input[type="text"],
form input:not([type]),
form input[type="password"],
form input[type="email"],
form input[type="tel"],
form textarea,
form select {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--wa-border);
    border-radius: 6px;
    background: white;
    font: inherit;
}
form input:focus, form textarea:focus, form select:focus {
    outline: none;
    border-color: var(--wa-green-dark);
    box-shadow: 0 0 0 3px rgba(18, 140, 126, 0.15);
}
form textarea { resize: vertical; min-height: 70px; }

.wa-btn {
    display: inline-block;
    padding: 8px 16px;
    border: 1px solid var(--wa-border);
    border-radius: 6px;
    background: white;
    color: var(--wa-text);
    font: inherit;
    cursor: pointer;
    text-decoration: none;
}
.wa-btn:hover { background: #f6f8fa; text-decoration: none; }
.wa-btn-primary { background: var(--wa-green-dark); color: white; border-color: var(--wa-green-dark); }
.wa-btn-primary:hover { background: #0f7264; }
.wa-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
.wa-btn-sm { padding: 4px 10px; font-size: 12.5px; }

/* ---- Alerts ---- */
.wa-alert {
    padding: 10px 14px;
    border-radius: 6px;
    margin-bottom: 14px;
}
.wa-alert-error { background: var(--wa-error-bg); color: var(--wa-error); }
.wa-alert-ok    { background: var(--wa-ok-bg);    color: var(--wa-ok); }
.wa-alert-info  { background: var(--wa-warn-bg); color: #5f4400; }

.wa-pill {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
}
.wa-pill.ok   { background: var(--wa-ok-bg);    color: var(--wa-ok); }
.wa-pill.bad  { background: var(--wa-error-bg); color: var(--wa-error); }
.wa-pill.warn { background: var(--wa-warn-bg); color: #5f4400; }

.wa-kv { list-style: none; padding: 0; margin: 0; }
.wa-kv li { padding: 6px 0; border-bottom: 1px solid #f1f1f1; }
.wa-kv li:last-child { border-bottom: none; }

/* ---- Table ---- */
.wa-table { width: 100%; border-collapse: collapse; }
.wa-table th, .wa-table td { padding: 8px 10px; border-bottom: 1px solid var(--wa-border); text-align: left; vertical-align: middle; }
.wa-table th { background: #f6f8fa; font-weight: 600; }
.wa-table input { padding: 4px 8px; }

/* ---- Login screen ---- */
.wa-login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #128C7E 0%, #075E54 100%);
}
.wa-login-card {
    background: white;
    border-radius: 10px;
    padding: 32px;
    width: 360px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.2);
}
.wa-login-brand { text-align: center; margin-bottom: 20px; }
.wa-login-brand h1 { margin: 8px 0 2px; font-size: 22px; }
.wa-login-brand p  { margin: 0; color: var(--wa-muted); }
.wa-login-brand .wa-logo { width: 48px; height: 48px; font-size: 18px; }
.wa-login-hint { font-size: 12.5px; color: var(--wa-muted); margin-top: 12px; text-align: center; }

/* ---- Inbox layout ---- */
.wa-inbox {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 16px;
    height: calc(100vh - 160px);
    min-height: 500px;
}
.wa-inbox-list {
    background: var(--wa-card);
    border: 1px solid var(--wa-border);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.wa-inbox-list-header {
    padding: 12px 14px;
    border-bottom: 1px solid var(--wa-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.wa-inbox-list ul { list-style: none; padding: 0; margin: 0; overflow-y: auto; flex: 1; }
.wa-inbox-list li { border-bottom: 1px solid #f1f1f1; }
.wa-inbox-list li a {
    display: block;
    padding: 10px 14px;
    color: var(--wa-text);
    text-decoration: none;
}
.wa-inbox-list li a:hover { background: #f6f8fa; }
.wa-inbox-list li.active a { background: #e9f5f1; }
.wa-conv-name { font-weight: 600; display: flex; justify-content: space-between; align-items: center; }
.wa-conv-preview { color: var(--wa-muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.wa-conv-time { color: var(--wa-muted); font-size: 11.5px; margin-top: 2px; }
.wa-badge { background: var(--wa-green); color: white; border-radius: 999px; font-size: 11px; padding: 1px 8px; font-weight: 600; }
.wa-dir-out { color: var(--wa-muted); }

/* ---- Thread ---- */
.wa-inbox-thread {
    background: var(--wa-card);
    border: 1px solid var(--wa-border);
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.wa-thread-header {
    padding: 12px 16px;
    border-bottom: 1px solid var(--wa-border);
    background: #f6f8fa;
    display: flex;
    align-items: center;
    gap: 10px;
}
.wa-mobile-back { display: none; font-size: 22px; color: var(--wa-text); }
.wa-thread-header small { display: block; color: var(--wa-muted); font-size: 12.5px; }
.wa-thread-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    background: #efeae2;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.wa-bubble {
    max-width: 70%;
    padding: 7px 10px 5px;
    border-radius: 8px;
    background: white;
    box-shadow: 0 1px 1px rgba(0,0,0,0.06);
    font-size: 14px;
    word-wrap: break-word;
}
.wa-bubble-in  { align-self: flex-start; background: var(--wa-bubble-in); }
.wa-bubble-out { align-self: flex-end;   background: var(--wa-bubble-out); }
.wa-msg-type   { color: var(--wa-muted); font-size: 12px; }
.wa-msg-body   { white-space: pre-wrap; }
.wa-msg-meta   { color: var(--wa-muted); font-size: 11px; text-align: right; margin-top: 2px; }
.wa-msg-error  { color: var(--wa-error); font-size: 12px; margin-top: 2px; }
.wa-status-failed { color: var(--wa-error); font-weight: 600; }
.wa-status-read   { color: #2196F3; }
.wa-media { margin: 6px 0; }
.wa-media img, .wa-media video { display: block; width: min(100%, 360px); max-height: 360px; object-fit: contain; border-radius: 6px; }
.wa-media audio { width: min(100%, 320px); }
.wa-media-file { display: inline-block; padding: 8px 10px; border-radius: 6px; background: rgba(18,140,126,.1); font-weight: 600; }

.wa-thread-compose {
    padding: 10px;
    border-top: 1px solid var(--wa-border);
    display: flex;
    gap: 8px;
    background: #f6f8fa;
}
.wa-thread-compose textarea { flex: 1; }
.wa-thread-compose button { align-self: flex-end; }

/* ---- Empty states ---- */
.wa-empty { padding: 30px 20px; color: var(--wa-muted); text-align: center; }
.wa-empty-center { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; }
.wa-empty-center h2 { margin-bottom: 6px; }

@media (max-width: 760px) {
    html, body { font-size: 15px; }
    .wa-top { padding: 10px 12px; align-items: flex-start; gap: 8px; }
    .wa-brand small, .wa-user { display: none; }
    .wa-nav { gap: 8px; overflow-x: auto; white-space: nowrap; max-width: 68vw; padding-bottom: 4px; }
    .wa-main { margin: 8px auto; padding: 0 8px; }
    .wa-inbox { display: block; height: calc(100dvh - 90px); min-height: 420px; }
    .wa-inbox-list, .wa-inbox-thread { height: 100%; border-radius: 6px; }
    .wa-inbox.has-active .wa-inbox-list { display: none; }
    .wa-inbox.no-active .wa-inbox-thread { display: none; }
    .wa-mobile-back { display: inline-block; }
    .wa-thread-body { padding: 10px; }
    .wa-bubble { max-width: 88%; }
    .wa-thread-compose { position: sticky; bottom: 0; }
    .wa-thread-compose textarea { min-height: 44px; }
    .wa-table-wrap { overflow-x: auto; }
    .wa-login-card { width: calc(100vw - 24px); padding: 24px; }
}

/* ============================================================
   Professional operations workspace
   ============================================================ */
:root {
    --wa-brand: #0f766e;
    --wa-brand-strong: #0b5f59;
    --wa-accent: #22c55e;
    --wa-bg: #f6f8fb;
    --wa-card: #ffffff;
    --wa-border: #e6eaf0;
    --wa-text: #172033;
    --wa-muted: #6b7588;
    --wa-sidebar: #101827;
    --wa-sidebar-muted: #8f9bad;
    --wa-radius: 14px;
    --wa-shadow: 0 8px 30px rgba(21, 32, 51, .06);
}

body.wa-admin-body { background: var(--wa-bg); }
.wa-app-shell { min-height: 100vh; display: flex; }
.wa-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 40; width: 272px; padding: 22px 16px 16px;
    background: linear-gradient(180deg, #111a2a 0%, #0d1421 100%); color: #fff;
    display: flex; flex-direction: column; box-shadow: 10px 0 35px rgba(12, 20, 33, .08);
}
.wa-sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 2px 8px 24px; color: #fff; text-decoration: none; }
.wa-sidebar-brand:hover { text-decoration: none; }
.wa-sidebar-brand .wa-logo { width: 42px; height: 42px; border-radius: 12px; background: linear-gradient(135deg, #22c55e, #0f9f70); box-shadow: 0 8px 20px rgba(34,197,94,.22); }
.wa-sidebar-brand strong { display: block; font-size: 15px; letter-spacing: .01em; }
.wa-sidebar-brand small { display: block; color: var(--wa-sidebar-muted); font-size: 11.5px; margin-top: 2px; }
.wa-side-nav { flex: 1; overflow-y: auto; }
.wa-nav-label { margin: 8px 12px 9px; color: #68758a; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.wa-side-nav a { display: flex; align-items: center; gap: 12px; margin: 3px 0; padding: 10px 12px; border-radius: 10px; color: #c7d0dc; text-decoration: none; transition: .18s ease; }
.wa-side-nav a:hover { background: rgba(255,255,255,.055); color: #fff; text-decoration: none; transform: translateX(2px); }
.wa-side-nav a.active { color: #fff; background: linear-gradient(90deg, rgba(34,197,94,.18), rgba(15,118,110,.12)); box-shadow: inset 3px 0 #29cf71; }
.wa-side-nav a strong { display: block; font-size: 13.5px; font-weight: 600; }
.wa-side-nav a small { display: block; color: #7f8b9d; font-size: 10.5px; margin-top: 1px; }
.wa-nav-dot { width: 8px; height: 8px; flex: 0 0 auto; border: 2px solid #647187; border-radius: 50%; }
.wa-side-nav a.active .wa-nav-dot { border-color: #37db7d; background: #37db7d; box-shadow: 0 0 0 4px rgba(55,219,125,.12); }
.wa-sidebar-user { display: grid; grid-template-columns: 38px 1fr 24px; align-items: center; gap: 10px; padding: 14px 10px 4px; border-top: 1px solid rgba(255,255,255,.08); }
.wa-sidebar-user strong, .wa-sidebar-user small { display: block; }
.wa-sidebar-user strong { font-size: 12.5px; }.wa-sidebar-user small { color: var(--wa-sidebar-muted); font-size: 10.5px; }
.wa-sidebar-user > a { color: #8793a5; font-size: 20px; text-decoration: none; }
.wa-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; background: #223047; color: #a8f0c5; font-weight: 700; }
.wa-workspace { width: calc(100% - 272px); min-height: 100vh; margin-left: 272px; display: flex; flex-direction: column; }
.wa-workspace-top { min-height: 78px; padding: 13px clamp(20px, 3vw, 42px); display: flex; align-items: center; gap: 14px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--wa-border); position: sticky; top: 0; z-index: 25; backdrop-filter: blur(12px); }
.wa-page-heading { flex: 1; }.wa-page-heading span { display: block; color: var(--wa-muted); font-size: 11px; }.wa-page-heading h1 { margin: 1px 0 0; font-size: 20px; line-height: 1.25; letter-spacing: -.02em; }
.wa-live-status { padding: 7px 11px; border: 1px solid #dcefe5; border-radius: 999px; color: #276447; background: #f4fcf7; font-size: 11.5px; font-weight: 600; }
.wa-live-status span { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 4px rgba(34,197,94,.12); }
.wa-menu-toggle { display: none; border: 0; background: transparent; font-size: 22px; color: var(--wa-text); cursor: pointer; }
.wa-main { width: 100%; max-width: 1480px; margin: 0 auto; padding: clamp(20px, 3vw, 38px) clamp(18px, 3vw, 42px); flex: 1; }
.wa-footer { padding: 12px 32px 20px; color: #9aa3b1; font-size: 11px; }
.wa-card { border-color: var(--wa-border); border-radius: var(--wa-radius); padding: clamp(18px, 2vw, 26px); margin-bottom: 20px; box-shadow: var(--wa-shadow); }
.wa-card h1 { font-size: 24px; letter-spacing: -.03em; }.wa-card h2 { font-size: 17px; letter-spacing: -.015em; margin-bottom: 7px; }
.wa-hint { color: var(--wa-muted); line-height: 1.6; }
form label > span { color: #344054; font-size: 12.5px; font-weight: 600; margin-bottom: 7px; }
form input[type="text"], form input:not([type]), form input[type="password"], form input[type="email"], form input[type="tel"], form textarea, form select {
    min-height: 43px; padding: 9px 12px; border-color: #d9dee7; border-radius: 9px; color: var(--wa-text); transition: border-color .15s, box-shadow .15s;
}
.wa-btn { min-height: 39px; padding: 8px 15px; border-color: #dce1e8; border-radius: 9px; font-weight: 600; font-size: 12.5px; box-shadow: 0 1px 2px rgba(16,24,40,.04); }
.wa-btn-primary { background: linear-gradient(135deg, var(--wa-brand), #0c9580); border-color: var(--wa-brand); }.wa-btn-primary:hover { background: var(--wa-brand-strong); }
.wa-btn-block { width: 100%; }
.wa-alert { border: 1px solid transparent; border-radius: 10px; padding: 12px 15px; box-shadow: 0 4px 15px rgba(16,24,40,.04); }
.wa-alert-error { border-color: #f6d2d0; }.wa-alert-ok { border-color: #ccebd5; }.wa-alert-info { border-color: #f1e1aa; }
.wa-table-wrap { overflow-x: auto; border: 1px solid var(--wa-border); border-radius: 11px; }
.wa-table { min-width: 760px; }.wa-table th { padding: 11px 12px; background: #f8fafc; color: #667085; font-size: 10.5px; text-transform: uppercase; letter-spacing: .055em; }.wa-table td { padding: 11px 12px; }.wa-table tr:last-child td { border-bottom: 0; }.wa-table tbody tr:hover { background: #fbfcfd; }
.wa-pill { padding: 3px 9px; font-size: 10.5px; font-weight: 700; letter-spacing: .02em; }
.wa-inbox { height: calc(100vh - 150px); min-height: 580px; gap: 18px; }.wa-inbox-list, .wa-inbox-thread { border-color: var(--wa-border); border-radius: var(--wa-radius); box-shadow: var(--wa-shadow); }
.wa-inbox-list-header { min-height: 64px; padding: 13px 16px; }.wa-inbox-list li a { padding: 12px 15px; }.wa-inbox-list li.active a { background: linear-gradient(90deg, #ecfaf2, #f4fbf8); box-shadow: inset 3px 0 #22c55e; }
.wa-thread-header { min-height: 64px; padding: 12px 18px; background: #fff; }.wa-thread-body { background-color: #eef2f1; background-image: radial-gradient(rgba(15,118,110,.055) 1px, transparent 1px); background-size: 18px 18px; padding: 22px; }
.wa-bubble { border-radius: 12px; box-shadow: 0 2px 7px rgba(22,32,51,.07); }.wa-bubble-out { background: #dff7e7; }
.wa-login-body { padding: 24px; background: radial-gradient(circle at 20% 20%, rgba(34,197,94,.18), transparent 32%), linear-gradient(145deg, #0e1726 0%, #13283a 55%, #0d5f57 130%); }
.wa-login-card { width: min(430px, 100%); border-radius: 20px; padding: 38px; box-shadow: 0 28px 80px rgba(0,0,0,.32); border: 1px solid rgba(255,255,255,.65); }
.wa-login-brand { margin-bottom: 28px; }.wa-login-brand .wa-logo { width: 58px; height: 58px; border-radius: 16px; background: linear-gradient(135deg, #22c55e, #0f8f77); box-shadow: 0 10px 25px rgba(34,197,94,.24); }.wa-login-brand h1 { font-size: 25px; letter-spacing: -.03em; margin-top: 14px; }.wa-login-brand p { font-size: 13px; }
.wa-sidebar-overlay { display: none; }
.wa-form-grid { display: grid; grid-template-columns: minmax(220px, 2fr) minmax(160px, 1fr) minmax(110px, .55fr) minmax(90px, .45fr); gap: 14px; align-items: end; }
.wa-form-grid > label { margin-bottom: 14px; }
.wa-check-label input { width: 20px; height: 20px; accent-color: var(--wa-brand); }
.wa-rule-form { max-width: 980px; }
.wa-rule-form > label { margin-bottom: 16px; }
.wa-table td input:not([type="checkbox"]), .wa-table td select { width: 100%; min-width: 110px; }
.wa-table td input[type="number"] { min-width: 76px; }
.wa-table td:last-child { white-space: nowrap; }

@media (max-width: 980px) {
    .wa-sidebar { transform: translateX(-105%); transition: transform .22s ease; }
    .wa-workspace { width: 100%; margin-left: 0; }
    .wa-menu-toggle { display: block; }
    .wa-menu-open .wa-sidebar { transform: translateX(0); }
    .wa-sidebar-overlay { position: fixed; inset: 0; z-index: 35; background: rgba(11,18,29,.48); backdrop-filter: blur(2px); }
    .wa-menu-open .wa-sidebar-overlay { display: block; }
    .wa-form-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
    .wa-workspace-top { min-height: 68px; padding: 10px 14px; }.wa-page-heading h1 { font-size: 18px; }.wa-page-heading span { display: none; }.wa-live-status { padding: 6px 9px; font-size: 10.5px; }
    .wa-main { padding: 14px; }.wa-card { padding: 17px; margin-bottom: 14px; border-radius: 12px; }.wa-card h2 { font-size: 16px; }
    .wa-inbox { height: calc(100dvh - 96px); min-height: 0; }.wa-inbox-list, .wa-inbox-thread { border-radius: 12px; }
    .wa-footer { display: none; }.wa-login-card { padding: 28px 22px; }
    .wa-form-grid { grid-template-columns: 1fr; gap: 0; }
    .wa-table { min-width: 680px; }
}

.wa-status-body { min-height: 100vh; background: radial-gradient(circle at 80% 5%, rgba(34,197,94,.12), transparent 32%), #f6f8fb; }
.wa-status-body .wa-top { min-height: 72px; padding: 12px clamp(20px,5vw,72px); background: #111a2a; }
.wa-status-body .wa-logo { background: linear-gradient(135deg,#22c55e,#0f8f77); border-radius: 10px; }
.wa-status-body .wa-main { max-width: 1180px; padding-top: clamp(45px,8vw,100px); }
.wa-status-hero { max-width: 720px; margin-bottom: 46px; }
.wa-eyebrow { display: inline-block; margin-bottom: 14px; padding: 5px 10px; border: 1px solid #cdebd8; border-radius: 999px; color: #177246; background: #f2fcf5; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.wa-status-hero h1 { margin: 0; color: #142033; font-size: clamp(38px,6vw,68px); line-height: 1.02; letter-spacing: -.055em; }
.wa-status-hero p { max-width: 620px; margin: 22px 0 26px; color: var(--wa-muted); font-size: 17px; line-height: 1.65; }
.wa-status-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }.wa-status-grid .wa-card { margin: 0; }
@media (max-width: 700px) { .wa-status-grid { grid-template-columns: 1fr; }.wa-status-hero { margin-bottom: 30px; }.wa-status-body .wa-brand small { display: none; } }
