/* Agent Wallet - self-contained production utility CSS */
*{box-sizing:border-box}
html,body,#root{margin:0;min-height:100%}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f5f7fb;color:#111827}
button,input,select,textarea{font:inherit}button{cursor:pointer}
@keyframes aw-pulse{50%{opacity:.5}}
.space-y-1 > :not([hidden]) ~ :not([hidden]){margin-top:0.25rem}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]){margin-top:0.375rem}
.space-y-2 > :not([hidden]) ~ :not([hidden]){margin-top:0.5rem}
.space-y-3 > :not([hidden]) ~ :not([hidden]){margin-top:0.75rem}
.space-y-4 > :not([hidden]) ~ :not([hidden]){margin-top:1rem}
.space-y-5 > :not([hidden]) ~ :not([hidden]){margin-top:1.25rem}
.space-y-6 > :not([hidden]) ~ :not([hidden]){margin-top:1.5rem}
.absolute{position:absolute}
.animate-pulse{animation:aw-pulse 2s cubic-bezier(.4,0,.6,1) infinite}
.backdrop-blur{backdrop-filter:blur(8px)}
.backdrop-blur-sm{backdrop-filter:blur(4px)}
.bg-amber-100{background-color:#fef3c7}
.bg-amber-50{background-color:#fffbeb}
.bg-amber-500{background-color:#f59e0b}
.bg-amber-600{background-color:#d97706}
.bg-black\/40{background-color:rgba(0,0,0,0.4)}
.bg-blue-100{background-color:#dbeafe}
.bg-blue-50{background-color:#eff6ff}
.bg-blue-600{background-color:#2563eb}
.bg-blue-600\/20{background-color:rgba(37,99,235,0.2)}
.bg-emerald-100{background-color:#d1fae5}
.bg-emerald-400{background-color:#34d399}
.bg-emerald-50{background-color:#ecfdf5}
.bg-emerald-500{background-color:#10b981}
.bg-emerald-500\/10{background-color:rgba(16,185,129,0.1)}
.bg-green-100{background-color:#dcfce7}
.bg-green-50{background-color:#f0fdf4}
.bg-green-600{background-color:#16a34a}
.bg-indigo-50{background-color:#eef2ff}
.bg-orange-50{background-color:#fff7ed}
.bg-red-100{background-color:#fee2e2}
.bg-red-50{background-color:#fef2f2}
.bg-red-600{background-color:#dc2626}
.bg-slate-100{background-color:#f1f5f9}
.bg-slate-200{background-color:#e2e8f0}
.bg-slate-50{background-color:#f8fafc}
.bg-slate-900{background-color:#0f172a}
.bg-slate-950{background-color:#020617}
.bg-slate-950\/40{background-color:rgba(2,6,23,0.4)}
.bg-white{background-color:#fff}
.bg-white\/10{background-color:rgba(255,255,255,0.1)}
.bg-white\/15{background-color:rgba(255,255,255,0.15)}
.bg-white\/5{background-color:rgba(255,255,255,0.05)}
.bg-white\/95{background-color:rgba(255,255,255,0.95)}
.bg-yellow-50{background-color:#fefce8}
.bg-yellow-600{background-color:#ca8a04}
.block{display:block}
.border{border-width:1px;border-style:solid}
.border-amber-200{border-color:#fde68a}
.border-b{border-bottom-width:1px;border-bottom-style:solid}
.border-blue-100{border-color:#dbeafe}
.border-emerald-100{border-color:#d1fae5}
.border-r{border-right-width:1px;border-right-style:solid}
.border-red-200{border-color:#fecaca}
.border-slate-100{border-color:#f1f5f9}
.border-slate-200{border-color:#e2e8f0}
.border-slate-300{border-color:#cbd5e1}
.border-slate-800{border-color:#1e293b}
.border-t{border-top-width:1px;border-top-style:solid}
.border-yellow-200{border-color:#fef08a}
.capitalize{text-transform:capitalize}
.disabled\:bg-slate-100:disabled{background-color:#f1f5f9}
.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}
.disabled\:opacity-50:disabled{opacity:0.5}
.disabled\:opacity-60:disabled{opacity:0.6}
.duration-200{transition-duration:200ms}
.duration-300{transition-duration:300ms}
.fixed{position:fixed}
.flex{display:flex}
.flex-1{flex:1 1 0%}
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.focus\:border-blue-500:focus{border-color:#3b82f6}
.focus\:ring-2:focus{box-shadow:0 0 0 2px var(--tw-ring-color,rgba(59,130,246,.5))}
.focus\:ring-blue-100:focus{--tw-ring-color:#dbeafe;box-shadow:0 0 0 3px var(--tw-ring-color)}
.focus\:ring-blue-500:focus{--tw-ring-color:#3b82f6;box-shadow:0 0 0 3px var(--tw-ring-color)}
.focus\:ring-slate-200:focus{--tw-ring-color:#e2e8f0;box-shadow:0 0 0 3px var(--tw-ring-color)}
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.font-medium{font-weight:500}
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
.font-semibold{font-weight:600}
.gap-1\.5{gap:0.375rem}
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.grid{display:grid}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.group-hover\:bg-blue-600:is(.group:hover) &{background-color:#2563eb}
.group-hover\:text-white:is(.group:hover) &{color:#fff}
.h-1\.5{height:0.375rem}
.h-10{height:2.5rem}
.h-11{height:2.75rem}
.h-14{height:3.5rem}
.h-16{height:4rem}
.h-2{height:0.5rem}
.h-20{height:5rem}
.h-32{height:8rem}
.h-36{height:9rem}
.h-40{height:10rem}
.h-64{height:16rem}
.h-9{height:2.25rem}
.h-\[72px\]{height:72px}
.h-full{height:100%}
.h-screen{height:100vh}
.hidden{display:none}
.hover\:bg-amber-600:hover{background-color:#d97706}
.hover\:bg-blue-50:hover{background-color:#eff6ff}
.hover\:bg-blue-50\/40:hover{background-color:rgba(239,246,255,0.4)}
.hover\:bg-blue-500:hover{background-color:#3b82f6}
.hover\:bg-blue-700:hover{background-color:#1d4ed8}
.hover\:bg-red-200:hover{background-color:#fecaca}
.hover\:bg-red-50:hover{background-color:#fef2f2}
.hover\:bg-slate-100:hover{background-color:#f1f5f9}
.hover\:bg-slate-200:hover{background-color:#e2e8f0}
.hover\:bg-slate-50:hover{background-color:#f8fafc}
.hover\:bg-slate-800:hover{background-color:#1e293b}
.hover\:bg-white\/5:hover{background-color:rgba(255,255,255,0.05)}
.hover\:border-slate-300:hover{border-color:#cbd5e1}
.hover\:shadow-md:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}
.hover\:shadow-sm:hover{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}
.hover\:text-red-600:hover{color:#dc2626}
.hover\:text-white:hover{color:#fff}
.hover\:underline:hover{text-decoration-line:underline}
.inline-flex{display:inline-flex}
.items-center{align-items:center}
.items-start{align-items:flex-start}
.justify-between{justify-content:space-between}
.justify-center{justify-content:center}
.left-0{left:0px}
@media (min-width:1024px){.lg\:block{display:block}}
@media (min-width:1024px){.lg\:flex-row{flex-direction:row}}
@media (min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1024px){.lg\:items-center{align-items:center}}
@media (min-width:1024px){.lg\:justify-between{justify-content:space-between}}
@media (min-width:1024px){.lg\:p-8{padding:2rem}}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-6xl{max-width:72rem}
.max-w-7xl{max-width:80rem}
.max-w-\[180px\]{max-width:180px}
.max-w-\[200px\]{max-width:200px}
.max-w-lg{max-width:32rem}
.max-w-md{max-width:28rem}
.max-w-xl{max-width:36rem}
.mb-2{margin-bottom:0.5rem}
.mb-3{margin-bottom:0.75rem}
.mb-5{margin-bottom:1.25rem}
.mb-6{margin-bottom:1.5rem}
.mb-7{margin-bottom:1.75rem}
.mb-8{margin-bottom:2rem}
@media (min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}}
@media (min-width:768px){.md\:flex{display:flex}}
@media (min-width:768px){.md\:flex-row{flex-direction:row}}
@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:768px){.md\:hidden{display:none}}
@media (min-width:768px){.md\:items-center{align-items:center}}
@media (min-width:768px){.md\:justify-between{justify-content:space-between}}
@media (min-width:768px){.md\:p-6{padding:1.5rem}}
@media (min-width:768px){.md\:p-8{padding:2rem}}
@media (min-width:768px){.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}}
@media (min-width:768px){.md\:px-8{padding-left:2rem;padding-right:2rem}}
@media (min-width:768px){.md\:sticky{position:sticky}}
@media (min-width:768px){.md\:text-3xl{font-size:1.875rem;line-height:1.5}}
@media (min-width:768px){.md\:text-4xl{font-size:2.25rem;line-height:1.5}}
@media (min-width:768px){.md\:text-base{font-size:1rem;line-height:1.5}}
@media (min-width:768px){.md\:top-\[72px\]{top:72px}}
@media (min-width:768px){.md\:z-20{z-index:20}}
.min-h-screen{min-height:100vh}
.min-w-0{min-width:0}
.min-w-\[1000px\]{min-width:1000px}
.min-w-\[1100px\]{min-width:1100px}
.min-w-\[1200px\]{min-width:1200px}
.min-w-\[1250px\]{min-width:1250px}
.min-w-\[1300px\]{min-width:1300px}
.min-w-\[190px\]{min-width:190px}
.min-w-\[700px\]{min-width:700px}
.min-w-\[800px\]{min-width:800px}
.min-w-\[850px\]{min-width:850px}
.min-w-\[900px\]{min-width:900px}
.min-w-\[950px\]{min-width:950px}
.mt-1{margin-top:0.25rem}
.mt-2{margin-top:0.5rem}
.mt-3{margin-top:0.75rem}
.mt-4{margin-top:1rem}
.mt-5{margin-top:1.25rem}
.mt-6{margin-top:1.5rem}
.mt-7{margin-top:1.75rem}
.mt-8{margin-top:2rem}
.mx-auto{margin-left:auto;margin-right:auto}
.outline-none{outline:2px solid transparent;outline-offset:2px}
.overflow-hidden{overflow:hidden}
.p-1{padding:0.25rem}
.p-10{padding:2.5rem}
.p-3{padding:0.75rem}
.p-3\.5{padding:0.875rem}
.p-4{padding:1rem}
.p-5{padding:1.25rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.pb-3{padding-bottom:0.75rem}
.pb-8{padding-bottom:2rem}
.pt-2{padding-top:0.5rem}
.pt-4{padding-top:1rem}
.pt-6{padding-top:1.5rem}
.px-2\.5{padding-left:0.625rem;padding-right:0.625rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-3\.5{padding-left:0.875rem;padding-right:0.875rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-8{padding-left:2rem;padding-right:2rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-3\.5{padding-top:0.875rem;padding-bottom:0.875rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.py-7{padding-top:1.75rem;padding-bottom:1.75rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.relative{position:relative}
.rounded-2xl{border-radius:1rem}
.rounded-3xl{border-radius:1.5rem}
.rounded-full{border-radius:9999px}
.rounded-lg{border-radius:.5rem}
.rounded-xl{border-radius:.75rem}
.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}
.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}
.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}
.shrink-0{flex-shrink:0}
@media (min-width:640px){.sm\:block{display:block}}
@media (min-width:640px){.sm\:col-span-2{grid-column:span 2 / span 2}}
@media (min-width:640px){.sm\:flex-1{flex:1 1 0%}}
@media (min-width:640px){.sm\:flex-row{flex-direction:row}}
@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:640px){.sm\:inline-flex{display:inline-flex}}
@media (min-width:640px){.sm\:items-center{align-items:center}}
@media (min-width:640px){.sm\:justify-between{justify-content:space-between}}
@media (min-width:640px){.sm\:ml-auto{margin-left:auto}}
@media (min-width:640px){.sm\:mt-0{margin-top:0px}}
@media (min-width:640px){.sm\:text-right{text-align:right}}
@media (min-width:640px){.sm\:w-40{width:10rem}}
@media (min-width:640px){.sm\:w-auto{width:auto}}
.space-y-1{--aw-space-y:0.25rem}
.space-y-1\.5{--aw-space-y:0.375rem}
.space-y-2{--aw-space-y:0.5rem}
.space-y-3{--aw-space-y:0.75rem}
.space-y-4{--aw-space-y:1rem}
.space-y-5{--aw-space-y:1.25rem}
.space-y-6{--aw-space-y:1.5rem}
.sticky{position:sticky}
.text-2xl{font-size:1.5rem;line-height:1.5}
.text-3xl{font-size:1.875rem;line-height:1.5}
.text-4xl{font-size:2.25rem;line-height:1.5}
.text-\[10px\]{color:10px}
.text-\[11px\]{color:11px}
.text-blue-100{color:#dbeafe}
.text-blue-600{color:#2563eb}
.text-blue-700{color:#1d4ed8}
.text-center{text-align:center}
.text-emerald-400{color:#34d399}
.text-emerald-600{color:#059669}
.text-green-600{color:#16a34a}
.text-left{text-align:left}
.text-lg{font-size:1.125rem;line-height:1.5}
.text-red-500{color:#ef4444}
.text-red-600{color:#dc2626}
.text-right{text-align:right}
.text-slate-200{color:#e2e8f0}
.text-slate-300{color:#cbd5e1}
.text-slate-400{color:#94a3b8}
.text-slate-500{color:#64748b}
.text-slate-600{color:#475569}
.text-slate-700{color:#334155}
.text-slate-800{color:#1e293b}
.text-slate-900{color:#0f172a}
.text-slate-950{color:#020617}
.text-sm{font-size:.875rem;line-height:1.5}
.text-white{color:#fff}
.text-xl{font-size:1.25rem;line-height:1.5}
.text-xs{font-size:.75rem;line-height:1.5}
.text-yellow-600{color:#ca8a04}
.top-0{top:0px}
.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}
.transition-transform{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uppercase{text-transform:uppercase}
.w-1\.5{width:0.375rem}
.w-10{width:2.5rem}
.w-11{width:2.75rem}
.w-14{width:3.5rem}
.w-16{width:4rem}
.w-2{width:0.5rem}
.w-20{width:5rem}
.w-40{width:10rem}
.w-5{width:1.25rem}
.w-64{width:16rem}
.w-9{width:2.25rem}
.w-\[270px\]{width:270px}
.w-full{width:100%}
@media (min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.z-10{z-index:10}
.z-30{z-index:30}
.z-40{z-index:40}
.z-50{z-index:50}

input,select,textarea{outline:none}
button:disabled{cursor:not-allowed}
img{max-width:100%}

/* Mobile navigation fix: slide-in hamburger menu */
.translate-x-0{transform:translateX(0)}
.-translate-x-full{transform:translateX(-100%)}
@media (min-width:768px){.md\:translate-x-0{transform:translateX(0)}}
@media (max-width:767px){
  body{overflow-x:hidden}
  aside.fixed{width:min(82vw,320px);box-shadow:12px 0 35px rgba(15,23,42,.28)}
}

/* Full mobile responsive layout hardening */
html,body,#root{width:100%;max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
.agent-wallet-site{min-width:0}
@media (max-width:767px){
  .agent-wallet-site .flex{min-width:0}
  main{width:100%;max-width:100%;min-width:0!important;padding:1rem!important;overflow-x:hidden}
  main *{max-width:100%}
  .w-\[270px\]{max-width:82vw}
  table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  input,select,textarea,button{max-width:100%}
  .grid{min-width:0}
  .flex{min-width:0}
}

/* =========================================================
   V5 MOBILE RESPONSIVE FIX – keep every page inside viewport
========================================================= */
@media (max-width:767px){
  html,body,#root{width:100vw!important;max-width:100vw!important;min-width:0!important;margin:0!important;padding:0!important;overflow-x:hidden!important}
  #root{overflow-x:hidden!important}

  /* The fixed sidebar must never reserve page width on mobile */
  #root > .min-h-screen > .flex{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important}
  #root main{display:block!important;flex:none!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;overflow-x:hidden!important}

  /* Do not allow common desktop row layouts to push content off-screen */
  main .flex{min-width:0!important;max-width:100%!important}
  main .flex:not(.fixed){flex-wrap:wrap!important}
  main .flex > *{min-width:0!important;max-width:100%!important}
  main .flex-1{min-width:0!important;width:auto!important;max-width:100%!important}

  /* Collapse desktop grids to one column on phones */
  main .grid-cols-2,
  main .grid-cols-3,
  main .grid-cols-4,
  main .sm\:grid-cols-2,
  main .md\:grid-cols-2,
  main .md\:grid-cols-3,
  main .md\:grid-cols-4,
  main .lg\:grid-cols-2,
  main .lg\:grid-cols-3,
  main .lg\:grid-cols-4,
  main .xl\:grid-cols-3,
  main .xl\:grid-cols-4{grid-template-columns:minmax(0,1fr)!important}

  /* Forms and controls */
  main form{width:100%!important;max-width:100%!important;min-width:0!important}
  main input,main select,main textarea,main button{box-sizing:border-box!important;min-width:0!important}
  main input,main select,main textarea{width:100%!important;max-width:100%!important}

  /* Long words/IDs must wrap instead of widening the page */
  main,main *{overflow-wrap:anywhere}

  /* Tables keep their desktop columns, but ONLY their wrapper scrolls */
  main .overflow-x-auto{width:100%!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
  main table{display:table!important;max-width:none!important}

  /* Cards, sections and media */
  main section,main article{min-width:0!important;max-width:100%!important}
  main img,main svg,main video{max-width:100%!important;height:auto!important}

  /* Desktop-only width utility must not force mobile clipping */
  main .w-64,main .w-40,main .w-20,main .w-16,main .w-14,main .w-11,main .w-10{max-width:100%!important}
}

/* =========================================================
   V7: MOBILE DESKTOP-MODE TABLE SCROLL
   Keep the V5 layout intact. On touch devices using "Desktop site",
   do NOT force text to wrap. Wide tables stay wide and can be dragged
   horizontally, just like in normal mobile view.
========================================================= */
@media (pointer:coarse) and (hover:none){
  /* Existing table wrappers remain draggable in desktop-site mode */
  main .overflow-x-auto,
  .overflow-x-auto{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-x pan-y!important;
    max-width:100%!important;
  }

  /* Tables that are not inside a dedicated wrapper keep their columns */
  main table{
    display:block!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-x pan-y!important;
    white-space:nowrap!important;
  }
  main table th,
  main table td{
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
}

/* =========================================================
   V8: NATURAL TABLE WIDTH
   Tables should be only as wide as their actual content.
   If the natural width exceeds the screen, the existing wrapper
   remains horizontally draggable instead of adding empty space.
========================================================= */
main .overflow-x-auto{
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
main .overflow-x-auto > table{
  width:max-content!important;
  min-width:max-content!important;
  max-width:none!important;
  table-layout:auto!important;
}
main .overflow-x-auto > table th,
main .overflow-x-auto > table td{
  width:auto!important;
}

/* On small/touch screens keep the text readable and use natural
   column width; wide tables can still be dragged left/right. */
@media (max-width:767px), (pointer:coarse) and (hover:none){
  main .overflow-x-auto > table{
    width:max-content!important;
    min-width:max-content!important;
    max-width:none!important;
    table-layout:auto!important;
  }
  main .overflow-x-auto > table th,
  main .overflow-x-auto > table td{
    white-space:nowrap!important;
    width:auto!important;
  }
}
