/* ============================================================
   Zepharion Pay — dashboard + shared panel theme
   Deep indigo · amber accent · teal success
   ============================================================ */
:root{
  --ink:#060A1E; --ink-2:#0B1230; --panel:rgba(13,20,52,.72); --panel-solid:#0D1434;
  --line:rgba(140,160,220,.16); --text:#E9EDF8; --muted:#96A0BC;
  --amber:#FFB03A; --amber-deep:#E08A00; --teal:#4FE3C1; --red:#FF6B6B;
  --r-lg:18px; --r-sm:10px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--text);font-family:'Manrope',sans-serif;font-size:14.5px;line-height:1.6;
  background-image:radial-gradient(900px 500px at 85% -10%,rgba(255,176,58,.06),transparent),
                   radial-gradient(700px 400px at 5% 110%,rgba(79,227,193,.05),transparent);
  min-height:100vh;}
a{color:var(--amber);text-decoration:none}
::selection{background:var(--amber);color:#1A1002}
h1{font-family:'Unbounded',sans-serif;font-size:19px;font-weight:600}
h2{font-family:'Unbounded',sans-serif;font-size:15px;font-weight:600;margin-bottom:12px}
.hidden{display:none !important}
.muted{color:var(--muted)}
.small{font-size:12.5px}
.center{text-align:center}
.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px;word-break:break-all}

/* ---------- brand ---------- */
.brand{display:inline-flex;align-items:center;gap:9px;color:var(--text);font-weight:800;font-size:16px;letter-spacing:.2px}
.brand span{color:var(--amber);font-weight:800;margin-left:-6px}
.brand-mark{width:30px;height:30px;display:grid;place-items:center;background:none;border-radius:0;box-shadow:none;font-size:0;color:inherit;filter:drop-shadow(0 0 14px rgba(255,176,58,.35))}
.brand.small{font-size:14px}
.brand.small .brand-mark{width:26px;height:26px;font-size:13px}

/* ---------- auth ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.auth-card{width:100%;max-width:400px;background:linear-gradient(180deg,var(--panel-solid),var(--ink-2));
  border:1px solid var(--line);border-radius:var(--r-lg);padding:30px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.auth-card .brand{display:flex;justify-content:center;margin-bottom:14px}
.auth-card label{margin-top:14px}
.auth-card .btn{width:100%;margin-top:20px}
.auth-card .small{margin-top:14px}

/* ---------- forms ---------- */
label{display:block;font-size:12.5px;color:var(--muted);font-weight:600}
input,select,textarea{width:100%;margin-top:5px;background:var(--ink-2);border:1px solid var(--line);
  border-radius:var(--r-sm);color:var(--text);padding:10px 12px;font:inherit;font-size:13.5px;outline:none}
input:focus,select:focus,textarea:focus{border-color:rgba(255,176,58,.55)}
input[readonly]{color:var(--muted)}
label small{display:block;margin-top:4px;font-weight:500}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-error{color:#FF9B9B;font-size:13px;margin-top:12px;min-height:18px;white-space:pre-wrap}
.form-ok{color:var(--teal);font-size:13px;margin-top:12px}

/* ---------- buttons ---------- */
.btn{border:0;border-radius:var(--r-sm);padding:10px 16px;font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;transition:filter .15s}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5;cursor:default}
.btn-amber{background:linear-gradient(180deg,var(--amber),var(--amber-deep));color:#1A1002}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn-danger{background:rgba(255,107,107,.12);color:#FF9B9B;border:1px solid rgba(255,107,107,.35)}
.btn-teal{background:rgba(79,227,193,.12);color:var(--teal);border:1px solid rgba(79,227,193,.35)}
.btn-sm{padding:6px 11px;font-size:12.5px}

/* ---------- app shell ---------- */
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sidebar{background:rgba(9,14,38,.85);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}
.sidebar nav a{padding:9px 12px;border-radius:var(--r-sm);color:var(--muted);font-weight:600;font-size:13.5px;cursor:pointer}
.sidebar nav a:hover{color:var(--text);background:rgba(140,160,220,.07)}
.sidebar nav a.active{color:var(--amber);background:rgba(255,176,58,.1)}
.sidebar-foot{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.content{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 26px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;
  background:rgba(6,10,30,.85);backdrop-filter:blur(8px)}
.top-chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{background:rgba(140,160,220,.09);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;color:var(--muted)}
.chip-amber{color:var(--amber);border-color:rgba(255,176,58,.35);background:rgba(255,176,58,.08)}
.chip-teal{color:var(--teal);border-color:rgba(79,227,193,.35);background:rgba(79,227,193,.08)}
.chip-red{color:#FF9B9B;border-color:rgba(255,107,107,.35);background:rgba(255,107,107,.08)}
.view-body{padding:24px 26px 60px;width:100%;max-width:none}

/* ---------- cards / stats ---------- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;margin-bottom:18px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px}
.stat .k{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.stat .v{font-family:'Unbounded',sans-serif;font-size:20px;font-weight:600;margin-top:6px}
.stat .v.teal{color:var(--teal)}
.stat .v.amber{color:var(--amber)}
.stat .sub{font-size:12px;color:var(--muted);margin-top:2px}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:1px solid var(--line);font-weight:700}
td{padding:10px;border-bottom:1px solid rgba(140,160,220,.08);vertical-align:middle}
tr:hover td{background:rgba(140,160,220,.04)}
.table-wrap{overflow-x:auto}
.status-chip{display:inline-block;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700;white-space:nowrap}
.st-pending{background:rgba(255,176,58,.12);color:var(--amber)}
.st-confirming{background:rgba(96,150,255,.14);color:#8FB4FF}
.st-paid{background:rgba(79,227,193,.12);color:var(--teal)}
.st-expired,.st-cancelled,.st-failed{background:rgba(255,107,107,.12);color:#FF9B9B}
.st-underpaid{background:rgba(255,140,60,.14);color:#FFB37A}
.st-overpaid{background:rgba(160,120,255,.14);color:#C3A8FF}
.st-active{background:rgba(79,227,193,.12);color:var(--teal)}
.st-suspended{background:rgba(255,107,107,.12);color:#FF9B9B}
.st-approved{background:rgba(96,150,255,.14);color:#8FB4FF}
.st-sent{background:rgba(79,227,193,.12);color:var(--teal)}
.st-rejected{background:rgba(255,107,107,.12);color:#FF9B9B}
.st-success{background:rgba(79,227,193,.12);color:var(--teal)}
.st-failed{background:rgba(255,107,107,.12);color:#FF9B9B}

/* ---------- toolbar / filters ---------- */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.toolbar label{margin:0;flex:0 0 auto}
.toolbar input,.toolbar select{width:auto;min-width:140px;margin-top:4px}
.toolbar .grow{flex:1}
.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px}

/* ---------- misc ---------- */
.addr-box{display:flex;gap:8px;align-items:stretch}
.addr-box input{flex:1}
.kv{display:grid;grid-template-columns:170px 1fr;gap:6px 14px;font-size:13px}
.kv .k{color:var(--muted);font-weight:600}
.notice{border-radius:var(--r-sm);padding:12px 14px;font-size:13px;margin-bottom:16px;border:1px solid}
.notice-warn{background:rgba(255,176,58,.08);border-color:rgba(255,176,58,.35);color:#FFD79A}
.notice-err{background:rgba(255,107,107,.08);border-color:rgba(255,107,107,.3);color:#FFB4B4}
.notice-ok{background:rgba(79,227,193,.07);border-color:rgba(79,227,193,.3);color:#A9F2E2}
.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.plan-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;position:relative;display:flex;flex-direction:column}
.plan-card.popular{border-color:rgba(255,176,58,.5);box-shadow:0 0 0 1px rgba(255,176,58,.25)}
.plan-card.current{border-color:rgba(79,227,193,.5)}
.plan-card .flag{position:absolute;top:-10px;left:14px;background:var(--amber);color:#1A1002;font-size:11px;font-weight:800;border-radius:999px;padding:2px 10px}
.plan-card h3{font-family:'Unbounded';font-size:15px;margin-bottom:2px}
.plan-card .price{font-family:'Unbounded';font-size:22px;margin:10px 0 2px}
.plan-card .price small{font-size:12px;color:var(--muted);font-family:'Manrope';font-weight:600}
.plan-card ul{list-style:none;margin:12px 0;flex:1}
.plan-card li{font-size:13px;color:var(--muted);padding:4px 0 4px 20px;position:relative}
.plan-card li::before{content:"✓";position:absolute;left:0;color:var(--teal);font-weight:800}
.term-row{display:flex;gap:6px;margin:10px 0}
.term-btn{flex:1;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:8px;padding:6px 4px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;text-align:center}
.term-btn.active{border-color:var(--amber);color:var(--amber);background:rgba(255,176,58,.08)}
.term-btn .d{display:block;font-size:10.5px;color:var(--teal);font-weight:700}

/* ---------- modal ---------- */
.modal-back{position:fixed;inset:0;background:rgba(4,7,20,.75);backdrop-filter:blur(4px);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
.modal{background:linear-gradient(180deg,var(--panel-solid),var(--ink-2));border:1px solid var(--line);border-radius:var(--r-lg);width:100%;max-width:560px;padding:24px;position:relative}
.modal h3{font-family:'Unbounded';font-size:15px;margin-bottom:14px}
.modal .close{position:absolute;top:14px;right:14px;background:transparent;border:0;color:var(--muted);font-size:20px;cursor:pointer;line-height:1}
.modal-wide{max-width:760px}

/* ---------- toast ---------- */
#toast-root{position:fixed;bottom:20px;right:20px;z-index:99;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--panel-solid);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:13px;font-weight:600;
  box-shadow:0 12px 34px rgba(0,0,0,.5);animation:toast-in .18s ease;max-width:340px}
.toast.ok{border-color:rgba(79,227,193,.45);color:#A9F2E2}
.toast.err{border-color:rgba(255,107,107,.45);color:#FFB4B4}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- spinner ---------- */
.spinner{width:22px;height:22px;border:3px solid rgba(255,176,58,.22);border-top-color:var(--amber);border-radius:50%;animation:spin 1s linear infinite;margin:30px auto}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- toggle ---------- */
.switch{position:relative;display:inline-block;width:40px;height:22px;flex:0 0 auto}
.switch input{opacity:0;width:0;height:0}
.slider{position:absolute;cursor:pointer;inset:0;background:rgba(140,160,220,.2);border-radius:999px;transition:.2s}
.slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked + .slider{background:var(--amber)}
.switch input:checked + .slider:before{transform:translateX(18px)}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .app{grid-template-columns:1fr}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;z-index:40;transform:translateX(-100%);transition:transform .2s}
  .sidebar.open{transform:none}
  .topbar{padding:14px 16px}
  .view-body{padding:16px 14px 60px}
  .form-row{grid-template-columns:1fr}
  .kv{grid-template-columns:1fr;gap:2px 0}
  .kv .k{margin-top:8px}
}
.menu-btn{display:none;background:transparent;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 10px;cursor:pointer}
@media (max-width:860px){.menu-btn{display:inline-block}}

/* ---------- i18n switcher + asset picker ---------- */
.lang-fixed{position:fixed;top:12px;right:12px;z-index:70}
.lang-switch{background:var(--ink-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;
  padding:6px 10px;font:inherit;font-size:12px;font-weight:700;outline:none;cursor:pointer}
.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.asset-btn{display:flex;align-items:center;gap:8px;background:var(--ink-2);border:1px solid var(--line);border-radius:12px;
  color:var(--text);padding:10px 12px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;text-align:left}
.asset-btn:hover{border-color:rgba(255,176,58,.5)}
.asset-btn.current{border-color:var(--amber);background:rgba(255,176,58,.08)}
.asset-btn small{display:block;font-size:10.5px;color:var(--muted);font-weight:600}
@media (max-width:420px){.asset-grid{grid-template-columns:1fr}}

/* ---------- flag language dropdown ---------- */
.lang-dd{position:relative}
.lang-dd-btn{display:inline-flex;align-items:center;gap:7px;background:var(--ink-2);border:1px solid var(--line);
  color:var(--text);border-radius:10px;padding:6px 10px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.lang-dd-btn:hover{border-color:rgba(255,176,58,.5)}
.lang-dd-code{color:var(--muted)}
.lang-dd-caret{color:var(--muted);font-size:10px}
.lang-dd-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:90;min-width:170px;
  background:var(--panel-solid);border:1px solid var(--line);border-radius:12px;padding:6px;
  box-shadow:0 18px 44px rgba(0,0,0,.5)}
.lang-dd-item{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:0;border-radius:8px;
  color:var(--text);padding:8px 10px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}
.lang-dd-item:hover{background:rgba(140,160,220,.08)}
.lang-dd-item.current{color:var(--amber)}
.lang-dd-check{margin-left:auto;color:var(--teal);font-weight:800}

/* ---------- code blocks (developer view) ---------- */
.code-block{background:#080D24;border:1px solid var(--line);border-radius:12px;padding:14px 16px;
  overflow-x:auto;font:12.5px ui-monospace,SFMono-Regular,monospace;color:#9FB2E8;line-height:1.75;margin:10px 0 0}

/* ---------- language switcher placement (panels) ---------- */
#lang-top{display:inline-flex;align-items:center}
.auth-lang{display:flex;justify-content:flex-end;margin:-8px 0 6px}

/* ---------- RTL (Arabic) ---------- */
html[dir="rtl"] .sidebar{border-right:0;border-left:1px solid var(--line)}
html[dir="rtl"] .addr input,html[dir="rtl"] .mono,html[dir="rtl"] .code-block,html[dir="rtl"] pre{direction:ltr;text-align:left}
html[dir="rtl"] .lang-dd-menu{right:auto;left:0}

/* ---------- symmetric card grid ---------- */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;align-items:start}
.dash-grid .card{margin-bottom:0}

/* ---------- payment methods view ---------- */
.pm-card{margin-bottom:18px}
.asset-row{display:grid;grid-template-columns:110px 1fr 120px 90px 40px;gap:8px;align-items:center;margin-bottom:8px}
.asset-row input{margin:0}
.asset-row .del{background:transparent;border:0;color:#FF9B9B;font-size:16px;cursor:pointer}
@media (max-width:760px){.asset-row{grid-template-columns:1fr 1fr}}

/* payment gateway type picker (PayerNex-style) */
.pm-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:8px}
.pm-type{display:flex;align-items:center;gap:10px;background:rgba(140,160,220,.06);border:1px solid rgba(140,160,220,.16);border-radius:12px;padding:11px 12px;color:inherit;font:inherit;cursor:pointer;text-align:left}
.pm-type:hover{border-color:rgba(255,176,58,.5)}
.pm-type.added{border-color:rgba(79,227,193,.45)}
.pm-tname{flex:1;min-width:0}
.pm-type b{display:block;font-size:13px}
.pm-type small{display:block;font-size:11px;opacity:.65;line-height:1.35}

/* two-step sign-in + boot flash guard */
html.booting #view-login,html.booting #view-register{display:none}

/* ---------- OTP step (two-step sign-in) ---------- */
#l-step2{margin-top:16px;padding:16px 14px 14px;background:rgba(8,13,36,.55);border:1px solid rgba(140,160,220,.18);border-radius:16px}
#l-step2-note{margin:0 0 12px;font-size:12.5px;line-height:1.55;color:var(--muted);text-align:center}
.otp-methods{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0 0 14px;padding:4px;background:rgba(11,18,48,.7);border:1px solid var(--line);border-radius:12px}
.otp-methods .btn{margin:0;width:auto;border:0;background:transparent;color:var(--muted);border-radius:9px;padding:8px 6px;font-size:12.5px;font-weight:700;justify-content:center;transition:background .15s,color .15s}
.otp-methods .btn:hover{color:var(--text)}
.otp-methods .btn.current{background:rgba(255,176,58,.14);color:var(--amber,#FFB03A);box-shadow:inset 0 0 0 1px rgba(255,176,58,.45)}
#l-code{margin-top:6px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:26px;font-weight:700;letter-spacing:.42em;text-indent:.42em;padding:13px 8px;background:#080D24;border:1px solid rgba(140,160,220,.28);border-radius:12px;color:var(--text);caret-color:var(--amber,#FFB03A)}
#l-code:focus{outline:0;border-color:rgba(255,176,58,.65);box-shadow:0 0 0 3px rgba(255,176,58,.12)}
#l-code::placeholder{color:rgba(150,160,188,.35)}
.otp-actions{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-top:12px}
.otp-actions .btn{margin:0;width:auto}
@media (max-width:420px){#l-code{font-size:22px;letter-spacing:.3em;text-indent:.3em}}

/* ---------- forgot password ---------- */
.auth-alt{margin-top:14px;text-align:center;font-size:13px}
.auth-alt a{color:var(--muted);text-decoration:none;font-weight:700}
.auth-alt a:hover{color:var(--amber,#FFB03A)}
#l-forgot{margin-top:16px;padding:16px 14px 12px;background:rgba(8,13,36,.55);border:1px solid rgba(140,160,220,.18);border-radius:16px}
#l-forgot-note{margin-top:10px;min-height:16px}
