@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500;600;700&family=Instrument+Sans:wght@400;500;600;700&display=swap');

:root{
  /* Brand */
  --ru-ink:#111C15;--ru-ink-soft:#26362C;
  --ru-primary:#3F6B4A;--ru-primary-hover:#355C3F;--ru-primary-press:#2B4A33;
  --ru-primary-tint:#E6EEE8;--ru-primary-tint-2:#D3E2D8;
  --ru-accent:#3DBB77;--ru-accent-tint:#E2F6EC;
  /* Surfaces */
  --ru-bg:#F2F4F1;--ru-surface:#FFFFFF;--ru-surface-2:#F7F9F6;--ru-surface-3:#EDF1EC;
  --ru-border:#E1E7E0;--ru-hairline:#EEF2ED;
  /* Text */
  --ru-text:#111C15;--ru-text-muted:#63705F;--ru-text-faint:#93A08F;--ru-on-primary:#FFFFFF;
  /* Status */
  --ru-success:#1F9D57;--ru-success-tint:#E2F6EC;
  --ru-danger:#D2453A;--ru-danger-tint:#FCEAE8;
  --ru-warning:#B87A0B;--ru-warning-tint:#FBF1DC;
  --ru-info:#3F6B4A;--ru-info-tint:#E6EEE8;
  /* Radii — softer, rounder */
  --ru-r-xs:10px;--ru-r-sm:14px;--ru-r-md:18px;--ru-r-lg:24px;--ru-r-xl:32px;--ru-r-pill:999px;
  /* Elevation */
  --ru-shadow-xs:0 1px 2px rgba(17,28,21,.05);
  --ru-shadow-sm:0 2px 6px -1px rgba(17,28,21,.07),0 1px 2px rgba(17,28,21,.04);
  --ru-shadow-md:0 8px 20px -6px rgba(17,28,21,.10),0 2px 6px rgba(17,28,21,.04);
  --ru-shadow-lg:0 20px 44px -12px rgba(17,28,21,.16),0 6px 14px rgba(17,28,21,.05);
  --ru-shadow-brand:0 14px 30px -10px rgba(63,107,74,.50);
  --ru-ring:0 0 0 3px rgba(63,107,74,.22);
  /* Space (4pt) */
  --ru-1:4px;--ru-2:8px;--ru-3:12px;--ru-4:16px;--ru-5:20px;--ru-6:24px;--ru-8:32px;--ru-10:40px;--ru-12:48px;
  /* Type */
  --ru-font:'Instrument Sans',system-ui,sans-serif;
  --ru-font-display:'Inter Tight',system-ui,sans-serif;
  --ru-touch:48px;--ru-touch-lg:64px;
  --ru-ease:cubic-bezier(.2,.7,.3,1);
}

/* Dark theme — agent terminal, low-light counters */
[data-theme="dark"]{
  --ru-primary:#4E8C60;--ru-primary-hover:#5C9E6E;--ru-primary-press:#437A53;
  --ru-primary-tint:#1E3227;--ru-primary-tint-2:#26402F;
  --ru-accent:#54D993;--ru-accent-tint:#16301F;
  --ru-bg:#0D1712;--ru-surface:#16221B;--ru-surface-2:#1C2C23;--ru-surface-3:#243528;
  --ru-border:#2A3E32;--ru-hairline:#22332A;
  --ru-text:#E9F2EB;--ru-text-muted:#9CB0A2;--ru-text-faint:#75897C;--ru-on-primary:#08120C;
  --ru-success:#54D993;--ru-success-tint:#16301F;
  --ru-danger:#FF7A6B;--ru-danger-tint:#361D1A;
  --ru-warning:#E9B44C;--ru-warning-tint:#33280F;
  --ru-info:#8FD0A4;--ru-info-tint:#1E3227;
  --ru-shadow-xs:0 1px 2px rgba(0,0,0,.4);
  --ru-shadow-sm:0 2px 6px rgba(0,0,0,.45);
  --ru-shadow-md:0 8px 20px -6px rgba(0,0,0,.55);
  --ru-shadow-lg:0 20px 44px -12px rgba(0,0,0,.6);
  --ru-shadow-brand:0 14px 30px -10px rgba(0,0,0,.6);
  --ru-ring:0 0 0 3px rgba(78,140,96,.4);
}

body{font-family:var(--ru-font);color:var(--ru-text);background:var(--ru-bg);-webkit-font-smoothing:antialiased}
[data-theme="dark"]{color:var(--ru-text)}
a{color:var(--ru-primary);text-decoration:none}
a:hover{color:var(--ru-primary-hover);text-decoration:underline}

/* ---- Type ---- */
.ru-display{font-family:var(--ru-font-display);font-size:32px;font-weight:600;letter-spacing:-.022em;line-height:1.15;margin:0}
.ru-h1{font-family:var(--ru-font-display);font-size:24px;font-weight:600;letter-spacing:-.018em;line-height:1.2;margin:0}
.ru-h2{font-family:var(--ru-font-display);font-size:18px;font-weight:600;letter-spacing:-.012em;margin:0}
.ru-h3{font-size:15px;font-weight:600;letter-spacing:-.006em;margin:0}
.ru-body{font-size:14px;line-height:1.55;margin:0}
.ru-small{font-size:13px;line-height:1.5;color:var(--ru-text-muted);margin:0}
.ru-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ru-text-muted)}
.ru-num{font-family:var(--ru-font-display);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ru-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--ru-surface-3);border-radius:6px;padding:3px 8px}
.ru-muted{color:var(--ru-text-muted)}

/* ---- Icon ---- */
.ru-icon{display:inline-flex;width:20px;height:20px;flex:none}
.ru-icon svg{width:100%;height:100%;display:block}

/* ---- Button ---- */
.ru-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--ru-font);font-size:14px;font-weight:600;line-height:1;border:1px solid transparent;border-radius:var(--ru-r-sm);padding:0 18px;height:44px;cursor:pointer;transition:background .16s var(--ru-ease),box-shadow .16s var(--ru-ease),transform .12s var(--ru-ease);white-space:nowrap}
.ru-btn:active{transform:translateY(1px)}
.ru-btn:focus-visible{outline:none;box-shadow:var(--ru-ring)}
.ru-btn--primary{background:var(--ru-primary);color:var(--ru-on-primary);box-shadow:var(--ru-shadow-sm)}
.ru-btn--primary:hover{background:var(--ru-primary-hover);box-shadow:var(--ru-shadow-brand)}
.ru-btn--secondary{background:var(--ru-primary-tint);color:var(--ru-primary)}
.ru-btn--secondary:hover{background:var(--ru-primary-tint-2)}
.ru-btn--outline{background:var(--ru-surface);color:var(--ru-text);border-color:var(--ru-border);box-shadow:var(--ru-shadow-xs)}
.ru-btn--outline:hover{border-color:var(--ru-primary);color:var(--ru-primary)}
.ru-btn--danger{background:var(--ru-danger);color:#fff;box-shadow:var(--ru-shadow-sm)}
.ru-btn--ghost{background:transparent;color:var(--ru-text-muted)}
.ru-btn--ghost:hover{background:var(--ru-surface-3);color:var(--ru-text)}
.ru-btn--sm{height:36px;font-size:13px;padding:0 14px;border-radius:var(--ru-r-xs)}
.ru-btn--lg{height:56px;font-size:16px;padding:0 24px;border-radius:var(--ru-r-md)}
.ru-btn--xl{height:var(--ru-touch-lg);font-size:18px;padding:0 28px;border-radius:var(--ru-r-md);letter-spacing:-.01em}
.ru-btn--block{width:100%}
.ru-btn[disabled],.ru-btn--disabled{background:var(--ru-surface-3);color:var(--ru-text-faint);box-shadow:none;cursor:not-allowed;border-color:transparent}

/* ---- Surface / panel ---- */
.ru-card{background:var(--ru-surface);border:1px solid var(--ru-hairline);border-radius:var(--ru-r-lg);box-shadow:var(--ru-shadow-sm)}
.ru-card--flat{box-shadow:none}
.ru-card--raised{box-shadow:var(--ru-shadow-md);border-color:transparent}
.ru-panel{background:var(--ru-surface);border:1px solid var(--ru-hairline);border-radius:var(--ru-r-md);padding:var(--ru-4);box-shadow:var(--ru-shadow-xs)}
.ru-panel__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:var(--ru-3)}
.ru-panel__title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ru-text-muted)}

/* ---- Chip ---- */
.ru-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:var(--ru-r-pill);padding:5px 11px;line-height:1.3}
.ru-chip--success{background:var(--ru-success-tint);color:var(--ru-success)}
.ru-chip--danger{background:var(--ru-danger-tint);color:var(--ru-danger)}
.ru-chip--warning{background:var(--ru-warning-tint);color:var(--ru-warning)}
.ru-chip--info{background:var(--ru-info-tint);color:var(--ru-info)}
.ru-chip--neutral{background:var(--ru-surface-3);color:var(--ru-text-muted)}
.ru-chip__dot{width:6px;height:6px;border-radius:50%;background:currentColor}

/* ---- Field ---- */
.ru-fieldgroup{display:flex;flex-direction:column;gap:6px}
.ru-field{display:flex;align-items:center;gap:10px;background:var(--ru-surface-2);border:1.5px solid var(--ru-border);border-radius:var(--ru-r-sm);padding:0 14px;height:48px;transition:border-color .15s var(--ru-ease),box-shadow .15s var(--ru-ease),background .15s var(--ru-ease)}
.ru-field:focus-within{background:var(--ru-surface);border-color:var(--ru-primary);box-shadow:var(--ru-ring)}
.ru-field input{border:0;outline:0;background:transparent;font:inherit;font-size:15px;flex:1;min-width:0;color:var(--ru-text)}
.ru-field input::placeholder{color:var(--ru-text-faint)}
.ru-field__icon{color:var(--ru-text-faint);display:flex}
.ru-field__prefix{font-size:14px;font-weight:600;color:var(--ru-text-muted)}
.ru-field--error{border-color:var(--ru-danger);background:var(--ru-danger-tint)}
.ru-field--lg{height:60px;border-radius:var(--ru-r-md)}
.ru-field--lg input{font-size:18px}
.ru-error{display:flex;align-items:center;gap:6px;color:var(--ru-danger);font-size:13px;font-weight:500}

/* ---- Segmented / choice row ---- */
.ru-seg{display:flex;background:var(--ru-surface-3);border-radius:var(--ru-r-sm);padding:4px;gap:4px}
.ru-seg button{flex:1;font:inherit;font-size:13px;font-weight:600;border:0;background:transparent;color:var(--ru-text-muted);border-radius:calc(var(--ru-r-sm) - 4px);height:40px;cursor:pointer;transition:all .16s var(--ru-ease)}
.ru-seg button[aria-pressed="true"]{background:var(--ru-surface);color:var(--ru-primary);box-shadow:var(--ru-shadow-xs)}
.ru-choice{display:flex;gap:8px}
.ru-choice button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14px;font-weight:600;border:1.5px solid var(--ru-border);background:var(--ru-surface);color:var(--ru-text-muted);border-radius:var(--ru-r-md);min-height:var(--ru-touch-lg);cursor:pointer;transition:all .16s var(--ru-ease)}
.ru-choice button[aria-pressed="true"]{background:var(--ru-primary);border-color:var(--ru-primary);color:var(--ru-on-primary);box-shadow:var(--ru-shadow-brand)}

/* ---- Stepper ---- */
.ru-stepper{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ru-stepper button{width:88px;height:var(--ru-touch-lg);border-radius:var(--ru-r-md);border:1.5px solid var(--ru-border);background:var(--ru-surface-2);color:var(--ru-text);display:grid;place-items:center;cursor:pointer;transition:all .16s var(--ru-ease)}
.ru-stepper button:hover{border-color:var(--ru-primary);color:var(--ru-primary)}
.ru-stepper__value{font-family:var(--ru-font-display);font-size:38px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* ---- Stat tile ---- */
.ru-stat{background:var(--ru-surface);border:1px solid var(--ru-hairline);border-radius:var(--ru-r-md);padding:var(--ru-5);box-shadow:var(--ru-shadow-xs);display:flex;flex-direction:column;gap:var(--ru-3);transition:box-shadow .18s var(--ru-ease)}
.ru-stat:hover{box-shadow:var(--ru-shadow-md)}
.ru-stat__top{display:flex;align-items:flex-start;justify-content:space-between}
.ru-stat__icon{width:38px;height:38px;border-radius:var(--ru-r-xs);background:var(--ru-primary-tint);color:var(--ru-primary);display:grid;place-items:center}
.ru-stat__k{font-size:13px;color:var(--ru-text-muted)}
.ru-stat__v{font-family:var(--ru-font-display);font-size:28px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px}
.ru-stat__delta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--ru-success)}
.ru-live{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--ru-text-faint)}
.ru-live__dot{width:6px;height:6px;border-radius:50%;background:var(--ru-accent);box-shadow:0 0 0 3px var(--ru-accent-tint)}

/* ---- Wallet ---- */
.ru-wallet{position:relative;overflow:hidden;border-radius:var(--ru-r-xl);background:linear-gradient(145deg,#2F5A3C 0%,#1B3324 100%);color:#fff;padding:var(--ru-6);box-shadow:var(--ru-shadow-lg)}
.ru-wallet::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-70px;top:-110px;background:radial-gradient(circle,rgba(61,187,119,.38),transparent 70%)}
.ru-wallet__k{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.ru-wallet__v{font-family:var(--ru-font-display);font-size:38px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums;margin:4px 0 var(--ru-5)}
.ru-wallet__foot{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;border-top:1px solid rgba(255,255,255,.18);padding-top:var(--ru-3);font-size:11px}
.ru-wallet__foot b{display:block;font-size:13px;font-weight:600;margin-top:3px;letter-spacing:-.01em}

/* ---- Nav ---- */
.ru-sidebar{display:flex;flex-direction:column;background:var(--ru-surface);border-right:1px solid var(--ru-hairline);padding:var(--ru-4) var(--ru-3);gap:2px}
.ru-brand{display:flex;align-items:center;gap:10px;padding:var(--ru-2) var(--ru-2) var(--ru-5);font-family:var(--ru-font-display);font-weight:600;font-size:16px;letter-spacing:-.01em}
.ru-brand__mark{width:32px;height:32px;border-radius:10px;background:var(--ru-primary);color:#fff;display:grid;place-items:center;box-shadow:var(--ru-shadow-brand)}
.ru-navsec{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ru-text-faint);padding:var(--ru-4) var(--ru-3) var(--ru-2)}
.ru-navitem{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:500;padding:0 12px;height:42px;border-radius:var(--ru-r-xs);color:var(--ru-text-muted);cursor:pointer;transition:all .15s var(--ru-ease)}
.ru-navitem:hover{background:var(--ru-surface-3);color:var(--ru-text)}
.ru-navitem--active{background:var(--ru-primary-tint);color:var(--ru-primary);font-weight:600}
.ru-navitem__badge{margin-left:auto;font-size:11px;font-weight:600;background:var(--ru-surface-3);color:var(--ru-text-muted);border-radius:var(--ru-r-pill);padding:2px 8px}
.ru-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--ru-surface);border-bottom:1px solid var(--ru-hairline);padding:var(--ru-3) var(--ru-6)}
.ru-search{display:flex;align-items:center;gap:9px;background:var(--ru-surface-2);border:1px solid var(--ru-border);border-radius:var(--ru-r-pill);padding:0 16px;height:40px;font-size:13px;color:var(--ru-text-faint);min-width:260px}
.ru-avatar{width:34px;height:34px;border-radius:var(--ru-r-xs);background:var(--ru-primary-tint);color:var(--ru-primary);font-size:13px;font-weight:600;display:grid;place-items:center}
.ru-tabbar{display:flex;background:var(--ru-surface);border-top:1px solid var(--ru-hairline);padding:var(--ru-2) var(--ru-2) var(--ru-3)}
.ru-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--ru-text-faint);min-height:var(--ru-touch);justify-content:center;border-radius:var(--ru-r-sm);cursor:pointer}
.ru-tab--active{color:var(--ru-primary);background:var(--ru-primary-tint)}

/* ---- Table ---- */
.ru-table{width:100%;border-collapse:collapse;font-size:14px}
.ru-table th{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ru-text-muted);text-align:left;padding:12px 16px;border-bottom:1px solid var(--ru-border);background:var(--ru-surface-2)}
.ru-table th:first-child{border-top-left-radius:var(--ru-r-md)}
.ru-table th:last-child{border-top-right-radius:var(--ru-r-md)}
.ru-table td{padding:14px 16px;border-bottom:1px solid var(--ru-hairline);vertical-align:middle}
.ru-table tbody tr:hover td{background:var(--ru-surface-2)}
.ru-table tbody tr:last-child td{border-bottom:0}
.ru-person{display:flex;align-items:center;gap:11px}
.ru-person b{font-weight:600}
.ru-amount{font-family:var(--ru-font-display);font-weight:600;font-variant-numeric:tabular-nums}

/* ---- Transaction row ---- */
.ru-tx{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ru-surface);border:1px solid var(--ru-hairline);border-radius:var(--ru-r-md);padding:13px 14px}
.ru-tx__l{display:flex;align-items:center;gap:12px;min-width:0}
.ru-tx__icon{width:38px;height:38px;border-radius:var(--ru-r-xs);display:grid;place-items:center;flex:none}
.ru-tx__icon--debit{background:var(--ru-danger-tint);color:var(--ru-danger)}
.ru-tx__icon--credit{background:var(--ru-success-tint);color:var(--ru-success)}
.ru-tx__title{font-size:14px;font-weight:600;letter-spacing:-.005em}
.ru-tx__meta{font-size:12px;color:var(--ru-text-muted);margin-top:1px}
.ru-tx__amt{font-family:var(--ru-font-display);font-weight:600;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ru-tx__amt--debit{color:var(--ru-danger)}
.ru-tx__amt--credit{color:var(--ru-success)}

/* ---- Status / connectivity ---- */
.ru-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;border-radius:var(--ru-r-pill);padding:6px 12px;background:var(--ru-success-tint);color:var(--ru-success)}
.ru-status--offline{background:var(--ru-warning-tint);color:var(--ru-warning)}
.ru-statusbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:var(--ru-r-sm);font-size:13px;font-weight:600;background:var(--ru-warning-tint);color:var(--ru-warning)}

/* ---- Scan result ---- */
.ru-result{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--ru-3);padding:var(--ru-8) var(--ru-5);border-radius:var(--ru-r-lg);color:#fff}
.ru-result--ok{background:linear-gradient(160deg,#2E9E62,#1B6C42)}
.ru-result--fail{background:linear-gradient(160deg,#D2453A,#8F2A22)}
.ru-result__mark{width:96px;height:96px;border-radius:50%;background:rgba(255,255,255,.16);display:grid;place-items:center;box-shadow:0 0 0 14px rgba(255,255,255,.08)}
.ru-result__title{font-family:var(--ru-font-display);font-size:30px;font-weight:600;letter-spacing:-.02em}
.ru-result__sub{font-size:15px;opacity:.85}

/* ---- Empty state ---- */
.ru-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--ru-2);padding:var(--ru-10) var(--ru-6);border:1.5px dashed var(--ru-border);border-radius:var(--ru-r-lg);background:var(--ru-surface-2)}
.ru-empty__icon{width:56px;height:56px;border-radius:var(--ru-r-md);background:var(--ru-primary-tint);color:var(--ru-primary);display:grid;place-items:center;margin-bottom:var(--ru-2)}

/* ---- Scanner viewport ---- */
.ru-scanner{position:relative;flex:1;min-height:200px;border-radius:var(--ru-r-lg);background:var(--ru-surface-2);border:1.5px dashed var(--ru-border);display:grid;place-items:center;overflow:hidden}
.ru-scanner__frame{width:150px;height:150px;border-radius:var(--ru-r-md);box-shadow:0 0 0 2px var(--ru-primary) inset;opacity:.45}
