@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;600;700&family=DM+Sans:wght@300;400;500&family=JetBrains+Mono:ital,wght@0,400;0,500;1,400&display=swap');

/* ── Root ── */
.ca-root {
  --bg:#06101E;--bg2:#091626;--bg3:#0E1F35;--bg4:#162B47;--bg5:#1A3355;
  --tx:#E2EAF4;--tx2:#A8BDD4;--tx3:#637B96;
  --bd:rgba(26,51,85,.9);--bd2:rgba(59,130,246,.5);
  --ac:#3B82F6;--glow:rgba(59,130,246,.2);
  --green:#34D399;--red:#F87171;--yellow:#FCD34D;
  font-family:'DM Sans',sans-serif;
  background:var(--bg); color:var(--tx);
  border-radius:14px; min-height:560px; position:relative; overflow:hidden;
}
.ca-root::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:linear-gradient(var(--bd) 1px,transparent 1px),linear-gradient(90deg,var(--bd) 1px,transparent 1px);
  background-size:48px 48px; opacity:.3;
}
.ca-inner { position:relative; z-index:1; padding:26px; }

/* ── Spinner ── */
.ca-spinner { border:3px solid var(--bg4); border-top-color:var(--ac); border-radius:50%; width:34px; height:34px; animation:ca-spin .75s linear infinite; }
@keyframes ca-spin{to{transform:rotate(360deg)}}
.ca-init-load { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:360px; gap:14px; position:relative; z-index:1; }
.ca-load-txt  { font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--tx3); }

/* ── Login Prompt ── */
.ca-lp { display:flex; align-items:center; justify-content:center; }
.ca-lp-box { text-align:center; padding:60px 32px; position:relative; z-index:1; }
.ca-lp-logo  { font-family:'Rajdhani',sans-serif; font-size:48px; font-weight:700; color:var(--ac); margin-bottom:12px; }
.ca-lp-title { font-family:'Rajdhani',sans-serif; font-size:28px; font-weight:700; color:var(--tx); margin-bottom:8px; }
.ca-lp-sub   { font-size:14px; color:var(--tx3); margin-bottom:24px; }
.ca-lp-btns  { display:flex; gap:12px; justify-content:center; }

/* ── Buttons ── */
.ca-btn-fe {
  display:inline-flex; align-items:center; gap:8px; padding:9px 22px;
  border-radius:7px; font-family:'Rajdhani',sans-serif; font-weight:700;
  font-size:15px; letter-spacing:.5px; cursor:pointer; text-decoration:none;
  transition:all .2s; border:none;
}
.ca-btn-fe-primary  { background:linear-gradient(135deg,#1D4ED8,#3B82F6); color:#fff; }
.ca-btn-fe-primary:hover { box-shadow:0 0 22px rgba(59,130,246,.5); transform:translateY(-1px); color:#fff; }
.ca-btn-fe-ghost    { background:transparent; color:var(--tx2); border:1px solid var(--bd); }
.ca-btn-fe-ghost:hover { border-color:var(--bd2); color:var(--ac); }
.ca-btn-fe-upgrade  { background:linear-gradient(135deg,#7C3AED,#9F67FA); color:#fff; }
.ca-btn-fe-upgrade:hover { box-shadow:0 0 22px rgba(124,58,237,.4); transform:translateY(-1px); color:#fff; }
.ca-btn-fe-danger   { background:rgba(248,113,113,.12); color:var(--red); border:1px solid rgba(248,113,113,.3); }
.ca-btn-fe-success  { background:rgba(52,211,153,.12); color:var(--green); border:1px solid rgba(52,211,153,.3); }
.ca-btn-fe-sm       { padding:6px 14px; font-size:13px; }

/* ── Tool ── */
.ca-tool-hd   { margin-bottom:18px; }
.ca-tool-title { font-family:'Rajdhani',sans-serif; font-size:24px; font-weight:700; color:var(--tx); margin-bottom:3px; }
.ca-tool-sub  { font-size:13px; color:var(--tx3); }
.ca-urow { display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap; }
.ca-upill { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--tx3); background:var(--bg3); border:1px solid var(--bd); padding:5px 13px; border-radius:20px; }
.ca-dots  { display:flex; gap:3px; }
.ca-dot   { width:7px; height:7px; border-radius:50%; transition:all .3s; background:var(--bg5); }
.ca-dot.on { background:var(--ac); }
.ca-secure { display:flex; align-items:center; gap:5px; font-size:10px; color:var(--green); border:1px solid rgba(52,211,153,.2); background:rgba(52,211,153,.07); padding:3px 10px; border-radius:20px; font-family:'JetBrains Mono',monospace; }
.ca-tool-layout { display:grid; grid-template-columns:1fr 1fr; gap:18px; }

/* ── Panels ── */
.ca-panel { background:rgba(9,22,38,.98); border:1px solid var(--bd); border-radius:12px; overflow:hidden; }
.ca-panel-hd { padding:11px 18px; background:rgba(14,31,53,.98); border-bottom:1px solid var(--bd); display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ca-panel-label { font-family:'Rajdhani',sans-serif; font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--tx3); display:flex; align-items:center; gap:6px; }
.ca-line-cnt  { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--tx3); background:var(--bg4); padding:2px 8px; border-radius:4px; }
.ca-line-warn { font-size:11px; color:var(--yellow); }

.ca-code-ta {
  width:100%; min-height:380px; resize:vertical; background:rgba(9,22,38,.98);
  border:none; outline:none; padding:16px 20px; font-family:'JetBrains Mono',monospace;
  font-size:12.5px; line-height:1.75; color:var(--tx); tab-size:2; display:block;
}
.ca-code-ta::placeholder { color:var(--tx3); }
.ca-err-bar { background:rgba(248,113,113,.1); border:1px solid rgba(248,113,113,.3); border-radius:7px; padding:10px 16px; font-size:13px; color:var(--red); margin:10px 18px; }

.ca-ctrl-bar { padding:11px 18px; background:rgba(14,31,53,.98); border-top:1px solid var(--bd); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ca-lang-sel { background:rgba(9,22,38,.98); border:1px solid var(--bd); color:var(--tx); padding:7px 12px; border-radius:6px; font-family:'DM Sans',sans-serif; font-size:13px; outline:none; cursor:pointer; transition:border-color .2s; }
.ca-lang-sel:focus { border-color:var(--bd2); }
.ca-run-btn  { background:linear-gradient(135deg,#1D4ED8,#3B82F6); color:#fff; border:none; padding:8px 20px; border-radius:7px; font-family:'Rajdhani',sans-serif; font-weight:700; font-size:15px; letter-spacing:.5px; cursor:pointer; transition:all .2s; display:inline-flex; align-items:center; gap:7px; }
.ca-run-btn:hover:not(:disabled) { box-shadow:0 0 22px rgba(59,130,246,.5); transform:translateY(-1px); }
.ca-run-btn:disabled { opacity:.45; cursor:not-allowed; }

/* ── Tabs ── */
.ca-tab-row { display:flex; background:rgba(14,31,53,.98); border-bottom:1px solid var(--bd); overflow-x:auto; }
.ca-tab-btn { padding:10px 15px; font-size:12px; cursor:pointer; border:none; background:transparent; transition:all .2s; border-bottom:2px solid transparent; color:var(--tx3); font-family:'DM Sans',sans-serif; white-space:nowrap; }
.ca-tab-btn.on { color:var(--ac); border-bottom-color:var(--ac); background:rgba(9,22,38,.98); }
.ca-tab-btn:hover:not(.on) { color:var(--tx); }

/* ── Code Output ── */
.ca-code-out  { padding:14px 0; font-family:'JetBrains Mono',monospace; font-size:12px; line-height:1.75; overflow-x:auto; max-height:450px; overflow-y:auto; }
.ca-code-row  { display:flex; }
.ca-ln  { color:var(--tx3); font-size:11px; min-width:40px; text-align:right; padding-right:14px; user-select:none; flex-shrink:0; }
.ca-lc  { flex:1; white-space:pre-wrap; word-break:break-word; padding-right:16px; }
.ca-cmt .ca-lc { color:var(--green); font-style:italic; }
.ca-src .ca-lc { color:var(--tx); }

/* Summary / metrics */
.ca-summary-box { padding:20px; }
.ca-sec-label { font-family:'Rajdhani',sans-serif; font-size:11px; font-weight:600; letter-spacing:2px; color:var(--tx3); text-transform:uppercase; margin-bottom:12px; }
.ca-summary-txt { font-size:14px; color:var(--tx2); line-height:1.8; }
.ca-tag { padding:4px 12px; background:var(--bg4); border:1px solid var(--bd); border-radius:20px; font-size:12px; color:var(--tx2); }
.ca-metrics-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:16px; }
.ca-m-card  { background:rgba(14,31,53,.98); border:1px solid var(--bd); border-radius:10px; padding:16px; }
.ca-m-label { font-size:10px; letter-spacing:2px; color:var(--tx3); text-transform:uppercase; font-family:'Rajdhani',sans-serif; font-weight:600; margin-bottom:7px; }
.ca-m-val   { font-family:'Rajdhani',sans-serif; font-size:28px; font-weight:700; color:var(--tx); line-height:1; }
.ca-cbar    { height:6px; background:var(--bg5); border-radius:3px; margin-top:12px; overflow:hidden; }
.ca-cfill   { height:100%; border-radius:3px; transition:width .9s ease; }
.ca-risk-chip   { display:flex; align-items:flex-start; gap:8px; padding:9px 14px; border-radius:8px; font-size:13px; margin-bottom:8px; width:100%; }
.rc-warn    { background:rgba(252,211,77,.1); color:var(--yellow); border:1px solid rgba(252,211,77,.25); }
.rc-danger  { background:rgba(248,113,113,.1); color:var(--red); border:1px solid rgba(248,113,113,.25); }
.ca-fn-list { padding:14px 18px; display:flex; flex-direction:column; gap:8px; max-height:400px; overflow-y:auto; }
.ca-fn-row  { display:flex; align-items:flex-start; gap:12px; padding:10px 14px; background:rgba(14,31,53,.98); border:1px solid var(--bd); border-radius:8px; }
.ca-fn-nm   { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ac); min-width:140px; flex-shrink:0; padding-top:1px; }
.ca-fn-ds   { font-size:13px; color:var(--tx2); line-height:1.5; }
.ca-empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:54px 20px; color:var(--tx3); gap:12px; min-height:260px; }
.ca-empty-icon  { width:50px; height:50px; background:var(--bg3); border:1px solid var(--bd); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:22px; }
.ca-empty-title { font-family:'Rajdhani',sans-serif; font-size:16px; font-weight:600; color:var(--tx2); }
.ca-empty-sub   { font-size:13px; text-align:center; max-width:240px; line-height:1.6; }

/* ── Dashboard ── */
.ca-dash-layout { display:grid; grid-template-columns:230px 1fr; gap:18px; align-items:start; }
.ca-dash-nav    { background:rgba(9,22,38,.98); border:1px solid var(--bd); border-radius:12px; overflow:hidden; }
.ca-dash-nav-title { font-family:'Rajdhani',sans-serif; font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--tx3); padding:14px 18px 10px; border-bottom:1px solid var(--bd); }
.ca-dash-ni     { display:flex; align-items:center; gap:10px; padding:12px 18px; font-size:14px; color:var(--tx2); cursor:pointer; transition:all .2s; border-left:2px solid transparent; }
.ca-dash-ni:hover { color:var(--tx); background:rgba(14,31,53,.98); }
.ca-dash-ni.active { color:var(--ac); background:rgba(14,31,53,.98); border-left-color:var(--ac); }
.ca-dash-ni-icon { font-size:16px; }
.ca-dash-content { display:flex; flex-direction:column; gap:16px; }
.ca-dash-card     { background:rgba(9,22,38,.98); border:1px solid var(--bd); border-radius:12px; overflow:hidden; }
.ca-dash-card-hd  { padding:13px 20px; background:rgba(14,31,53,.98); border-bottom:1px solid var(--bd); font-family:'Rajdhani',sans-serif; font-size:13px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--tx3); }
.ca-dash-card-body { padding:22px; }
.ca-avatar        { width:68px; height:68px; border-radius:50%; border:2px solid var(--bd); margin-bottom:14px; }
.ca-profile-name  { font-family:'Rajdhani',sans-serif; font-size:22px; font-weight:700; color:var(--tx); margin-bottom:4px; }
.ca-profile-email { font-size:13px; color:var(--tx3); margin-bottom:14px; }
.ca-plan-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 14px; border-radius:20px; font-family:'Rajdhani',sans-serif; font-size:13px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.ca-plan-free { background:rgba(26,51,85,.5); color:var(--tx3); border:1px solid var(--bd); }
.ca-plan-pro  { background:rgba(139,92,246,.15); color:#A78BFA; border:1px solid rgba(139,92,246,.35); }
.ca-plan-enterprise { background:rgba(245,158,11,.12); color:var(--yellow); border:1px solid rgba(245,158,11,.3); }
.ca-form-grid  { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ca-form-field { display:flex; flex-direction:column; gap:5px; }
.ca-form-field label { font-size:11px; font-weight:500; color:var(--tx2); letter-spacing:.5px; text-transform:uppercase; }
.ca-form-input { background:rgba(14,31,53,.98); border:1px solid var(--bd); color:var(--tx); padding:9px 13px; border-radius:7px; font-family:'DM Sans',sans-serif; font-size:13px; outline:none; transition:border-color .2s; width:100%; }
.ca-form-input:focus { border-color:var(--bd2); }
.ca-progress-bar  { height:8px; background:var(--bg4); border-radius:4px; overflow:hidden; }
.ca-progress-fill { height:100%; border-radius:4px; background:var(--ac); transition:width .6s ease; }
.ca-pay-tbl { width:100%; border-collapse:collapse; font-size:13px; }
.ca-pay-tbl th { text-align:left; padding:10px 16px; font-size:10px; color:var(--tx3); letter-spacing:1.5px; text-transform:uppercase; font-weight:600; border-bottom:1px solid var(--bd); }
.ca-pay-tbl td { padding:13px 16px; color:var(--tx2); border-bottom:1px solid rgba(14,31,53,.98); vertical-align:middle; }
.ca-pay-tbl tr:last-child td { border-bottom:none; }
.ca-pay-tbl tr:hover td { background:rgba(14,31,53,.5); }
.ca-pay-st-paid   { color:var(--green); }
.ca-pay-st-failed { color:var(--red); }
.ca-pay-st-pending { color:var(--yellow); }

/* ── Pricing ── */
.ca-pricing-wrap { padding:26px; position:relative; z-index:1; }
.ca-price-grid   { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.ca-price-card   { background:rgba(9,22,38,.98); border:1px solid var(--bd); border-radius:14px; padding:28px; position:relative; transition:all .3s; }
.ca-price-card.hot { border-color:var(--ac); box-shadow:0 0 36px var(--glow); }
.ca-price-card:not(.hot):hover { border-color:rgba(59,130,246,.4); box-shadow:0 8px 28px var(--glow); }
.ca-hot-badge    { position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--ac); color:#fff; font-size:10px; font-weight:700; letter-spacing:1.5px; padding:3px 14px; border-radius:20px; font-family:'Rajdhani',sans-serif; white-space:nowrap; text-transform:uppercase; }
.ca-price-tier   { font-size:11px; font-weight:600; letter-spacing:2px; color:var(--tx3); text-transform:uppercase; font-family:'Rajdhani',sans-serif; margin-bottom:12px; }
.ca-price-amt    { font-family:'Rajdhani',sans-serif; font-size:50px; font-weight:700; color:var(--tx); line-height:1; }
.ca-price-per    { font-size:13px; color:var(--tx3); margin-top:4px; margin-bottom:22px; }
.ca-price-feat   { display:flex; align-items:flex-start; gap:9px; font-size:13px; color:var(--tx2); margin-bottom:10px; }
.ca-price-feat-ck { color:var(--green); flex-shrink:0; margin-top:1px; }
.ca-price-hr { border:none; border-top:1px solid var(--bd); margin:20px 0; }

/* ── Badge helpers ── */
.ca-badge { display:inline-block; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:600; letter-spacing:.5px; text-transform:uppercase; }
.ca-badge-stripe   { background:rgba(99,102,241,.12); color:#818CF8; border:1px solid rgba(99,102,241,.25); }
.ca-badge-paypal   { background:rgba(59,130,246,.1); color:#3B82F6; border:1px solid rgba(59,130,246,.25); }
.ca-badge-bank_transfer { background:rgba(245,158,11,.1); color:var(--yellow); border:1px solid rgba(245,158,11,.25); }
.ca-badge-pro      { background:rgba(139,92,246,.12); color:#A78BFA; border:1px solid rgba(139,92,246,.3); }
.ca-badge-enterprise{ background:rgba(245,158,11,.1); color:var(--yellow); border:1px solid rgba(245,158,11,.25); }
.ca-badge-free     { background:rgba(26,51,85,.5); color:var(--tx3); border:1px solid var(--bd); }

/* ── Modal (bank details) ── */
.ca-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.8); backdrop-filter:blur(5px); z-index:9999; display:flex; align-items:center; justify-content:center; padding:20px; }
.ca-modal { background:var(--bg2,#091626); border:1px solid var(--bd2); border-radius:16px; padding:38px; max-width:680px; width:100%; max-height:90vh; overflow-y:auto; position:relative; box-shadow:0 0 80px var(--glow); }
.ca-modal-close { position:absolute; top:14px; right:14px; background:var(--bg3,#0E1F35); border:1px solid var(--bd); color:var(--tx3); width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:14px; transition:all .2s; }
.ca-modal-close:hover { border-color:var(--ac); color:var(--ac); }

/* ── Toast ── */
.ca-toast { position:fixed; bottom:22px; right:22px; z-index:99999; background:rgba(14,31,53,.98); border:1px solid var(--bd2); border-radius:10px; padding:12px 18px; font-size:13px; color:var(--tx); box-shadow:0 8px 28px rgba(0,0,0,.4); display:flex; align-items:center; gap:10px; animation:caIn .3s ease; }
@keyframes caIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ── Scrollbars ── */
.ca-root * { scrollbar-width:thin; scrollbar-color:var(--bd) transparent; }
.ca-root ::-webkit-scrollbar { width:5px; height:5px; }
.ca-root ::-webkit-scrollbar-thumb { background:var(--bd); border-radius:3px; }






/* Fix Elementor overlay conflict */
#ca-tool,
#ca-tool *,
#ca-dashboard,
#ca-dashboard *,
#ca-pricing,
#ca-pricing * {
    pointer-events: auto !important;
}

.ca-root {
    position: relative !important;
    z-index: 1 !important;
}

.ca-run-btn,
.ca-btn-fe,
.ca-tab-btn,
.ca-lang-sel,
.ca-code-ta {
    pointer-events: auto !important;
    position: relative !important;
    z-index: 10 !important;
    cursor: pointer !important;
}

.ca-code-ta {
    cursor: text !important;
    user-select: text !important;
    -webkit-user-select: text !important;
}
