/* Auth + app shell, builds on landing.css tokens */
.auth-page{min-height:100vh;background:var(--bg-alt);position:relative;overflow-x:hidden}
.auth-glow{position:absolute;inset:0 0 auto 0;height:520px;pointer-events:none;
  background:radial-gradient(40% 60% at 25% 0,rgba(79,70,229,.16),transparent 70%),radial-gradient(35% 55% at 80% 0,rgba(6,182,212,.16),transparent 70%)}
.auth-wrap{position:relative;max-width:440px;margin:0 auto;padding:56px 20px 40px;display:flex;flex-direction:column;align-items:center;gap:28px}
.auth-logo .logo-img{height:30px}
.auth-card{width:100%;padding:34px}
.auth-card h1,.app-content h1{font-size:1.7rem;margin:0 0 10px}
.auth-card>p,.auth-card p{color:var(--muted);font-size:.94rem}
.auth-card a:not(.btn){color:var(--brand);font-weight:500}
.auth-foot a:hover{color:var(--ink)}

/* Forms */
.auth-card form,.app-content form{display:block}
.auth-card form p,.app-content form p{margin:16px 0 0;display:flex;flex-direction:column;gap:6px}
.auth-card label,.app-content label{font-size:.85rem;font-weight:600;color:var(--ink)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],input:not([type]),select,textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:inherit;transition:.15s}
/* Keyboard focus ring, the same 2px brand outline as the theme switch. A mouse click on a button does not show it. */
input:focus-visible,select:focus-visible,textarea:focus-visible,
.pay-dialog button:focus-visible,.pay-dialog a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
input[type=checkbox],input[type=radio]{width:auto;margin-right:8px}
form p:has(input[type=checkbox]){flex-direction:row;align-items:center}
form p:has(input[type=checkbox]) label{font-weight:500}
.helptext,form p>span{font-size:.8rem;color:var(--muted)}
.errorlist{list-style:none;margin:6px 0 0;padding:0;color:#b91c1c;font-size:.84rem;font-weight:500}
.btn-block{width:100%;margin-top:22px;padding:13px 18px;font-size:.98rem}
.btn-group{display:grid;gap:10px;margin-top:14px}
.btn-group .btn{margin-top:0}
.btn-danger{background:#b91c1c;color:#fff}
.auth-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}

/* Messages */
.messages{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
.msg{padding:11px 14px;border-radius:12px;font-size:.9rem;border:1px solid var(--line);background:#f1f5f9;margin:0}
.msg-success{background:var(--ok-bg);border-color:#a7f3d0;color:#065f46}
.msg-warning{background:#fef3c7;border-color:#fde68a;color:#92400e}
.msg-error{background:#fee2e2;border-color:#fecaca;color:#991b1b}

/* App shell */
.app-page{background:var(--bg-alt);min-height:100vh}
.app-page .nav{background:rgba(255,255,255,.9)}
.app-page .nav-help{display:flex;align-items:center}
.app-page .nav-help a{color:var(--muted);font-size:.92rem;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px}
.app-page .nav-help a:hover{color:var(--ink)}
/* Settings menu */
.menu{position:relative;border:0;padding:0}
.menu-btn::after{content:none}
.menu-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--card);cursor:pointer;list-style:none;user-select:none;transition:.15s}
.menu-btn:hover{border-color:var(--ink)}
.menu-btn::-webkit-details-marker{display:none}
.menu[open] .menu-btn{border-color:var(--ink)}
.menu-panel{position:absolute;right:0;top:calc(100% + 10px);min-width:240px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 40px -12px rgba(11,13,18,.22);padding:8px;z-index:60}
.menu-user{display:flex;flex-direction:column;padding:10px 12px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;overflow-wrap:anywhere}
.menu-panel a{display:block;padding:9px 12px;border-radius:9px;font-size:.92rem;color:var(--ink)}
.menu-panel a:hover{background:var(--bg-alt)}
.menu-panel hr{border:0;border-top:1px solid var(--line);margin:6px 0}
.menu-mobile{display:none!important}
/* 200% zoom on a 1280px window lays this bar out at about half the window, but media
   queries still see the wide window, so the desktop links stay. They are nowrap, and
   together with the logo and the account button they are 712px wide: the page then
   scrolls sideways (1425px once that width is zoomed). Wrapping only starts when the
   bar is narrower than those contents, so at 100% zoom and at 390px it stays one row. */
.app-page .nav-inner{min-width:0;flex-wrap:wrap;height:auto;min-height:68px;row-gap:8px}
.app-page .nav-links{min-width:0;flex-wrap:wrap;row-gap:4px}
.app-page .logo{min-width:0}
.app-page .wrap{max-width:1280px}
.app-main{padding-block:48px 56px;margin-inline:auto;width:100%;display:flex;flex-direction:column;min-height:calc(100vh - 69px)}
.app-content{width:100%;min-width:0;flex:1;display:flex;flex-direction:column}
.app-content>*{min-width:0}
.app-content>.card:last-child{flex:1}
.app-content>.card.card-hug:last-child{flex:none} /* Cashier and similar: hug content; don't stretch an empty panel under the actions */
.app-content>.card.wallets-table:last-child .empty-list{margin-top:18px}
.app-content h2{font-size:1.2rem;margin:28px 0 8px}
.app-content table{width:100%;border-collapse:collapse;font-size:.92rem}
.app-content th,.app-content td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 26px;margin-top:18px}
.panel h2{margin:0 0 8px}
.panel-actions{list-style:none;display:flex;gap:10px;padding:0;margin:14px 0 0}
.dash-head{margin-bottom:28px} .dash-head h1{font-size:2.2rem;margin:8px 0 6px}
.dash-card{padding:22px;display:flex;flex-direction:column;gap:6px} .dash-card strong{font-size:1.5rem;letter-spacing:-.02em}
.dash-empty{margin-top:20px;padding:40px;text-align:center;display:flex;flex-direction:column;justify-content:center}
@media (max-width:960px){.app-page .nav-links{display:none}.menu-mobile{display:block!important}}
@media (max-width:640px){.auth-card{padding:26px}}

/* Wallets */
.mono{font-family:'JetBrains Mono',monospace;font-size:.85rem}
.right{text-align:right}
.connect,.wallets-table{padding:26px;margin-top:20px}
.account-panel{padding:22px 26px;margin-top:20px}
.account-card-head{align-items:flex-start;flex-wrap:nowrap}
.account-card-aside{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;flex:none}
.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;letter-spacing:.01em;padding:4px 10px 4px 8px;border-radius:999px;border:1px solid transparent;line-height:1.2}
.status-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.status-active{background:var(--ok-bg);color:var(--ok)}
.status-review{background:#e0e7ff;color:#3730a3}
.status-pending{background:var(--bg-alt);color:var(--muted);border-color:var(--line)}
.status-inactive{background:#fee2e2;color:#991b1b}
.account-usdt-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.fiat-soon{display:flex;align-items:flex-start;gap:14px;margin-top:16px;padding:16px 18px;border-radius:var(--radius);background:linear-gradient(180deg,#f7f7ff,#f4f6fb);border:1px solid #e0e7ff;flex:none}
.fiat-soon .chip{flex:none;margin-top:2px;background:#e0e7ff;color:#3730a3}
.fiat-soon strong{display:block;font-size:.95rem;letter-spacing:-.01em;margin:0 0 2px}
.fiat-soon p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5;max-width:62ch}
@media (max-width:640px){.fiat-soon{flex-direction:column;gap:8px}}
.usdt-qr{display:grid;width:min(220px,64vw);aspect-ratio:1;grid-auto-rows:1fr;background:#fff;padding:12px;border-radius:14px;border:1px solid var(--line);margin:0}
.usdt-qr-row{display:contents}
.usdt-qr i{display:block;background:#fff;min-width:0;min-height:0}
.usdt-qr i.on{background:#11181f}
.usdt-qr-frame{display:flex;justify-content:center;margin:16px 0;padding:18px;background:var(--bg-alt);border:1px solid var(--line);border-radius:16px}
.deposit-copy{display:flex;gap:8px;align-items:center;margin:0;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--bg-alt)}
.deposit-copy input{flex:1;min-width:0;font-size:.8rem;background:var(--card)}
.withdraw-address{overflow-wrap:anywhere;margin:0 0 12px;padding:12px 14px;background:var(--bg-alt);border:1px solid var(--line);border-radius:12px}
.withdraw-send{margin:0 0 8px;font-size:.95rem}
.account-note{margin:0;padding:10px 12px;border-radius:12px;background:#fffbeb;color:#92400e;border:1px solid #fde68a;font-size:.88rem;line-height:1.45}
.account-dialog{padding:0;width:min(520px,calc(100vw - 32px));max-height:min(88vh,760px);overflow:auto;background:var(--card)}
.account-dialog .pd-head{position:sticky;top:0;z-index:1;margin:0;padding:16px 18px;background:var(--card);border-bottom:1px solid var(--line)}
.account-dialog .pd-x{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--bg-alt);font-size:1.25rem}
.account-dialog .pd-x:hover{background:var(--line);color:var(--ink)}
.account-dialog .pd-body{padding:22px 26px 24px}
.account-dialog form p{margin:0 0 10px;display:block}
.account-dialog .label-field{min-width:0;width:100%;margin-top:12px}
.account-dialog .label-field:first-of-type{margin-top:0}
.account-dialog .pd-ack{margin:14px 0 0}
.account-dialog .pd-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.account-dialog .withdraw-save{margin:0;border-top:1px solid var(--line)}
.account-dialog .withdraw-save h3{margin:0 0 4px;color:var(--muted);letter-spacing:.02em}
.account-dialog > form.account-back{padding-top:0;border-top:0;display:flex;justify-content:flex-end}
.saved-list{display:grid;gap:8px}
.account-dialog .saved-list{margin:0;padding:8px 20px 18px}
.saved-account{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-alt)}
.saved-account span{min-width:0;overflow-wrap:anywhere}
.saved-account form{margin:0;flex:none;padding:0}
@media (max-width:720px){
  .account-usdt-actions{flex-direction:column}
  .account-usdt-actions .btn{width:100%}
  .deposit-copy{flex-direction:column;align-items:stretch}
  .account-dialog > form.account-back{justify-content:stretch}
  .account-dialog > form.account-back .btn{width:100%}
}
.account-activity{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:0}
.account-activity li{line-height:1.45;padding:12px 0;border-top:1px solid var(--line)}
.account-activity li:first-child{border-top:0;padding-top:2px}
.purchase-copy,.funding-note{overflow-wrap:anywhere}
.funding-note{display:block;margin-top:4px;color:var(--muted);font-size:.88rem}
.funding-label{font-weight:600;color:var(--ink)}
.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px;align-items:start}
.account-grid .card{padding:22px 26px;min-width:0}
.account-grid .label-field select,.account-grid .label-field input{width:100%}
.rail-card{display:flex;flex-direction:column;gap:14px}
.rail-card > h3{margin:0;padding-bottom:12px;border-bottom:1px solid var(--line)}
.rail-card > p,.rail-card form p{margin:0}
.rail-card form{display:flex;flex-direction:column;gap:12px}
.rail-card .label-field{min-width:0;width:100%}
.rail-card .saved-list form{display:block}
.rail-or{margin:2px 0 0;padding-top:14px;border-top:1px solid var(--line);border-bottom:0;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media (max-width:800px){.account-grid{grid-template-columns:1fr}}
.connect-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.connect-head h3{margin:0}
.label-field{display:flex;flex-direction:column;gap:4px;min-width:220px}
.label-field input{padding:9px 12px}
.chain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.chain{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--bg-alt);display:flex;flex-direction:column}
.chain h4{margin:0 0 4px;display:flex;align-items:center;gap:8px;font-size:1rem}
.chain-dot{width:10px;height:10px;border-radius:50%}
.c-eth{background:#627eea}.c-sol{background:#14f195}.c-trx{background:#eb0029}
.wallet-list{display:grid;gap:8px;margin-top:auto;padding-top:14px}
.wallet-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;text-align:left;transition:.15s}
.wallet-btn:hover:not(:disabled){border-color:var(--ink)}
a.wallet-btn{color:var(--ink)}
.wallet-ext{margin-left:auto;color:var(--muted)}
.wallet-btn:disabled{opacity:.55;cursor:progress}
.wallet-btn img,.wallet-ico{width:22px;height:22px;flex:none}
.wallet-btn img{border-radius:6px}
.wallet-ico{display:grid;place-items:center;border-radius:6px;background:var(--ink);color:#fff;font-size:.72rem;font-weight:700}
.table-scroll{overflow-x:auto}
.link-danger{background:none;border:0;color:#b91c1c;font:inherit;font-weight:600;cursor:pointer;padding:0}
.link-danger:hover{text-decoration:underline}
form.inline,form.inline p{display:inline;margin:0}
/* Keep each card's title, blurb and buttons on shared rows so the first button lines up across cards */
@supports (grid-template-rows: subgrid){
  .chain-grid{grid-template-rows:auto auto auto}
  .chain{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:0}
  .wallet-list{margin-top:0;align-content:start}
}
@media (max-width:860px){.chain-grid{grid-template-columns:1fr}}

/* Lists, forms, tabs */
.row-link{color:var(--brand);font-weight:600;margin-right:14px}
.row-link:hover{text-decoration:underline}
.stack-form{max-width:560px}
.stack-form p{margin-top:16px}
.stack-form textarea{resize:vertical}
.stack-form .helptext{font-size:.8rem;color:var(--muted)}
.form-submit{margin-top:22px}
.form-actions{display:flex;gap:10px;margin-top:22px}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:20px}
.tabs a{padding:10px 16px;font-weight:600;font-size:.94rem;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a:hover{color:var(--ink)}
.tabs a.active{color:var(--ink);border-bottom-color:var(--ink)}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.page-head .dash-head{flex:1 1 360px}
.page-head>.btn{margin-top:6px;white-space:nowrap}
.empty-list{text-align:center;padding:48px 16px;border:1.5px dashed var(--line);border-radius:12px;margin-top:14px;display:grid;gap:4px;align-content:center}
.app-content>.card:last-child .empty-list{flex:1}
.app-content>.card.wallets-table:last-child{display:flex;flex-direction:column}

/* Invoices */
.upload-card{padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:20px}
.upload-card h3{margin:0 0 4px}
.upload-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.upload-form input[type=file]{width:auto;max-width:300px;padding:8px;border:1.5px dashed var(--line);border-radius:12px;background:var(--bg-alt);font-size:.85rem}
.row-title{font-weight:600}
.row-title:hover{color:var(--brand)}
.chip-wait{background:#e0e7ff;color:#3730a3}
.chip-warn{background:#fef3c7;color:#92400e}
.chip-err{background:#fee2e2;color:#991b1b}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:16px}
.detail-card{padding:24px}
.detail-card h3{margin:0 0 14px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:0}
.kv .wide{grid-column:1/-1}
.kv dt{font-size:.76rem;color:var(--muted);margin-bottom:2px}
.kv dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.kv .pre{white-space:pre-line}
.big{font-size:1.4rem;font-weight:600}
.addr{font-size:.82rem;overflow-wrap:anywhere}
.detail-actions{margin-top:24px;align-items:center}
.btn-danger-outline{color:#b91c1c}
.btn-danger-outline:hover{border-color:#b91c1c}
@media (max-width:760px){.detail-grid{grid-template-columns:1fr}}

/* Invoice list: empty state */
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:64px 24px;border:2px dashed #c7cbd3;border-radius:20px;background:var(--card);cursor:pointer;transition:.2s}
.dropzone:hover,.dropzone.is-over{border-color:var(--brand);background:#f5f5ff;box-shadow:0 0 0 6px rgba(79,70,229,.08)}
.dropzone.is-busy{opacity:.6;pointer-events:none}
.dz-icon{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;color:var(--brand);background:linear-gradient(135deg,rgba(79,70,229,.12),rgba(6,182,212,.12));margin-bottom:6px}
.dz-title{font-size:1.25rem;letter-spacing:-.02em}
.dz-sub{color:var(--muted);font-size:.92rem}
.dz-link{color:var(--brand);font-weight:600}
.mini-steps{list-style:none;padding:0;margin:22px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mini-steps li{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.mini-steps li>span{flex:none;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-size:.8rem;font-weight:700;display:grid;place-items:center}
.mini-steps b{display:block;margin-bottom:2px}
.mini-steps p{margin:0;font-size:.88rem}
@media (max-width:860px){.mini-steps{grid-template-columns:1fr}}

/* Invoice list: summary strip + data table */
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr) 1.6fr;gap:14px;margin-bottom:18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow);min-width:0}
.stat-label{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.stat strong{font-size:1.6rem;letter-spacing:-.03em;line-height:1.2}
.stat-warn strong{color:#b45309}.stat-bad strong{color:#b91c1c}
.stat-money{display:flex;flex-direction:column;gap:2px;font-size:1.15rem!important;font-family:'JetBrains Mono',monospace}
.stat-money em{font-style:normal;color:var(--muted);font-size:.8rem}
.data-card{padding:0;overflow:hidden}
.data-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 24px;border-bottom:1px solid var(--line)}
.data-toolbar h3{margin:0 0 2px}
.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem;min-width:1000px}
.data-table thead th{position:sticky;top:0;background:#fafbfc;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.data-table td{padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table tbody tr:hover td{background:#fafaff}
.data-table .num{text-align:right}
.data-table .nowrap{white-space:nowrap}
.cell-vendor{min-width:160px;max-width:190px}
.cell-vendor .row-title{display:block}
.sub{display:block;font-size:.76rem;color:var(--muted);margin-top:2px;font-weight:400}
.ccy{color:var(--muted);font-size:.8rem}
.text-bad{color:#b91c1c!important}.text-warn{color:#b45309!important}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px}
.dot-ethereum{background:#627eea}.dot-solana{background:#14f195}.dot-tron{background:#eb0029}
.addr-cell{display:inline-flex;align-items:center;gap:6px}
.copy-btn{display:inline-grid;place-items:center;width:26px;height:26px;border:1px solid transparent;border-radius:8px;background:none;color:var(--muted);cursor:pointer;transition:.15s}
.copy-btn:hover{background:var(--bg-alt);color:var(--ink);border-color:var(--line)}
.copy-btn.is-copied{color:var(--ok);background:var(--ok-bg)}
.pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4f46e5;margin-right:6px;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
.data-card.is-over,.table-scroll.is-over{outline:2px dashed var(--brand);outline-offset:-6px}
.table-scroll.is-busy{opacity:.6}
@media (max-width:1100px){.stat-strip{grid-template-columns:repeat(2,1fr)}.stat-wide{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}

.app-content label.btn{color:#fff;font-size:.92rem}
.app-content label.btn-outline{color:var(--ink)}

/* Review page: PDF beside editable fields */
.detail-title{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.detail-title h1{margin:0}
.review-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:20px;align-items:start;margin-top:8px}
.pdf-pane{position:sticky;top:84px;height:calc(100vh - 120px);min-height:520px;padding:0;overflow:hidden;background:#525659}
.pdf-pane iframe{width:100%;height:100%;border:0;display:block}
.pdf-pane .dash-empty{background:var(--card);height:100%;margin:0}
.fields-pane{padding:0;overflow:hidden}
.fields-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 24px;border-bottom:1px solid var(--line)}
.fields-head h3{margin:0 0 2px}
.fields-head p{margin:0}
.legend{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fields-list{display:flex;flex-direction:column}
.frow{padding:14px 24px;border-bottom:1px solid var(--line)}
.frow:last-child{border-bottom:0}
.frow.is-edited{background:#f5f9ff}
.frow-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px}
.flabel{font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:inline-flex;align-items:center;gap:8px}
.fmeta{display:inline-flex;align-items:center;gap:8px}
.conf{font-size:.72rem;color:var(--muted);font-family:'JetBrains Mono',monospace}
.page-link{border:1px solid var(--line);background:var(--card);border-radius:6px;font-size:.7rem;color:var(--muted);padding:1px 7px;cursor:pointer;font-family:inherit}
.page-link:hover{border-color:var(--brand);color:var(--brand)}
.fview{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.fvalue{font-weight:500;overflow-wrap:anywhere;font-size:.95rem}
.fvalue.pre{white-space:pre-line}
.icon-btn{flex:none;border:1px solid var(--line);background:var(--card);border-radius:8px;font:inherit;font-size:.8rem;font-weight:600;padding:3px 10px;cursor:pointer;color:var(--ink)}
.icon-btn:hover{border-color:var(--ink)}
.edit-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.18);flex:none}
.fnote{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;font-size:.8rem;color:#1e40af;background:#e8f0fe;border-radius:8px;padding:6px 10px}
.fnote b{font-weight:600}
.undo-btn{flex:none;border:0;background:none;color:#1d4ed8;font:inherit;font-weight:700;font-size:.8rem;cursor:pointer;padding:0;text-decoration:underline}
.undo-btn:disabled{opacity:.5}
.fform{margin-top:6px}
.fform input,.fform select,.fform textarea{width:100%}
.fform-actions{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.btn-sm{padding:6px 14px;font-size:.84rem}
.ferror{color:#b91c1c;font-size:.82rem;font-weight:500}
@media (max-width:1000px){
  .review-layout{grid-template-columns:1fr}
  .pdf-pane{position:static;height:70vh;min-height:420px}
}
.data-table .edit-dot{margin-left:6px;vertical-align:1px}

/* Needs-review highlighting and approval */
.review-banner{background:#fffbeb;border:1px solid #fde68a;border-radius:14px;padding:14px 20px;margin-bottom:16px;color:#78350f}
.review-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.review-banner .rb-text{display:grid;gap:3px}
.review-banner strong{display:block}
.review-banner ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:.92rem}
.review-banner a{color:#92400e;text-decoration:underline}
.frow.needs-review{background:#fffbeb;box-shadow:inset 4px 0 0 #f59e0b;scroll-margin-top:90px}
.frow:target{outline:2px solid #f59e0b;outline-offset:-2px}
.review-note{margin-top:8px;border:1px solid #fde68a;background:var(--card);border-radius:10px;padding:10px 12px}
.review-note p{margin:0 0 8px;font-size:.86rem;color:#78350f}
.review-actions{display:flex;gap:8px;flex-wrap:wrap}
.btn-approve{background:#15803d;color:#fff;border-color:#15803d}
.btn-approve:hover{background:#166534}
.fnote-ok{background:#ecfdf5;color:#166534}
.fnote-ok .undo-btn{color:#166534}
.chip-reviewed{display:inline-flex;align-items:center;gap:5px;background:#dcfce7;color:#166534}
.review-banner .undo-btn{color:#92400e}

.btn-success{background:#15803d;color:#fff;box-shadow:0 8px 20px -8px rgba(21,128,61,.6)}
.btn-success:hover{background:#166534;transform:translateY(-1px)}
.btn-whatsapp{background:#25d366;color:#052e16;border-color:#25d366;gap:7px;outline:2px solid #25d366;outline-offset:3px}
.btn-whatsapp:hover{background:#1ebe5a;border-color:#1ebe5a;outline-color:#1ebe5a;transform:translateY(-1px)}
.btn-whatsapp:focus-visible{outline-color:#052e16}  /* keyboard focus stays visible: the ring turns dark */
.btn-soft-green{background:#dcfce7;color:#14532d;border-color:#4ade80;box-shadow:0 6px 16px -8px rgba(34,197,94,.55)}
.btn-soft-green:hover{background:#bbf7d0;border-color:#22c55e;transform:translateY(-1px)}

/* Payments: column, mini buttons, dialog */
.cell-pay{min-width:200px;max-width:230px;white-space:normal!important}
.pay-state{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.pay-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.mini-btn{border:1px solid var(--line);background:var(--card);border-radius:8px;font:inherit;font-size:.76rem;font-weight:600;padding:4px 10px;cursor:pointer;color:var(--ink);transition:.15s}
.mini-btn:hover{border-color:var(--ink)}
.mini-btn:disabled{opacity:.5;cursor:progress}
.mini-go{background:#15803d;border-color:#15803d;color:#fff}
.mini-go:hover{background:#166534;border-color:#166534}
.mini-quiet{border-color:transparent;color:var(--muted);background:none}
.mini-quiet:hover{color:#b91c1c;border-color:transparent}
.chip-sched{background:#e0f2fe;color:#075985}
.tx-link{color:var(--brand);font-family:'JetBrains Mono',monospace;font-size:.72rem}
.tx-link:hover{text-decoration:underline}
.tx-ref{font-family:'JetBrains Mono',monospace;font-size:.72rem;overflow-wrap:anywhere;word-break:break-all;max-width:100%}
.chain-status{display:block;max-width:100%}
.stat-good strong{color:#15803d}
.pay-dialog{border:0;border-radius:18px;padding:0;width:min(520px,calc(100vw - 32px));box-shadow:0 30px 80px -20px rgba(11,13,18,.45);color:var(--ink)}
.pay-dialog::backdrop{background:rgba(11,13,18,.5);backdrop-filter:blur(2px)}
.pay-dialog form{padding:24px 26px 22px}
.account-dialog.pay-dialog .saved-account form{padding:0}
#unsupported-dialog{padding:24px 26px 22px}
#unsupported-dialog p{margin:4px 0 18px;font-size:1.02rem;line-height:1.5}
.pd-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.pd-head h3{margin:0;font-size:1.25rem}
.pd-x{border:0;background:none;font-size:1.6rem;line-height:1;color:var(--muted);cursor:pointer}
.pd-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:0 0 16px;padding:14px 16px;background:var(--bg-alt);border-radius:12px}
.pd-summary .wide{grid-column:1/-1}
.pd-summary dt{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.pd-summary dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere;font-size:.9rem}
.pd-field{display:block;font-size:.85rem;font-weight:600;margin-top:14px}
.pd-field input,.pd-field select{width:100%;margin-top:6px}
.pd-field .small{display:block;font-weight:400;margin-top:4px}
.pd-amount{display:flex;align-items:center;gap:10px;margin-top:6px}
.pd-amount input{margin:0}
.pd-error{color:#b91c1c;font-size:.86rem;font-weight:500;margin:12px 0 0}
.pd-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
.pd-foot{text-align:center;margin:12px 0 0}
.pd-status{font-size:1rem;font-weight:500;margin:6px 0 4px;line-height:1.5}
#pd-manual{margin-top:6px}
.pay-dialog .msg{margin:0 0 4px;font-size:.84rem}
.stat-strip{grid-template-columns:repeat(5,minmax(0,1fr)) minmax(0,1.6fr)!important}
@media (max-width:1100px){.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))!important}.stat-wide{grid-column:1/-1}}
.data-table{min-width:1060px}
.data-table td:first-child,.data-table th:first-child{padding-left:20px}
.data-table td:last-child,.data-table th:last-child{padding-right:20px}
.row-title:hover{text-decoration:underline}

.pay-history{padding:20px 24px;margin-bottom:16px}
.pay-history h3{margin:0 0 10px;font-size:1rem}
.ph-row{display:flex;align-items:center;gap:6px 16px;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}
.ph-row:first-of-type{border-top:0}
.chip-paid{font-size:.8rem;padding:5px 14px}

/* ABX-issued invoice shown beside its fields */
.doc-invoice{background:var(--card);height:100%;overflow:auto;padding:34px 38px;display:flex;flex-direction:column;gap:22px;font-size:.92rem}
.doc-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.doc-issuer{font-size:1.1rem}
.doc-addr{margin:6px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}
.doc-title{font-size:1.5rem;font-weight:700;letter-spacing:.08em}
.doc-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.doc-meta dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.doc-meta dd{margin:2px 0 0;font-weight:600}
.doc-billto span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.doc-lines{width:100%;border-collapse:collapse}
.doc-lines th{background:#1f2937;color:#fff;text-align:left;padding:10px 12px;font-size:.78rem}
.doc-lines td{padding:12px;border-bottom:1px solid var(--line)}
.doc-lines .num{text-align:right;white-space:nowrap}
.doc-lines tfoot td{font-weight:700;background:var(--bg-alt)}
.doc-pay{color:var(--muted);font-size:.84rem;margin:0}
@media (max-width:640px){.doc-meta{grid-template-columns:1fr 1fr}.doc-head{flex-direction:column}}

.ph-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.ph-head h3{margin:0}
.ph-action .pay-state{align-items:flex-end;text-align:right}
.ph-action .pay-actions{justify-content:flex-end}

/* Dismissible notification banners */
.messages .msg{display:flex;align-items:center;justify-content:space-between;gap:14px}
.msg-x{flex:none;border:0;background:none;color:inherit;opacity:.55;font-size:1.35rem;line-height:1;cursor:pointer;padding:0 4px;border-radius:6px}
.msg-x:hover{opacity:1;background:rgba(0,0,0,.06)}

/* Total value tile: compact, with the per-currency breakdown in a popover */
.stat-wide{position:relative}
.stat-wide .link-btn{align-self:flex-start;border:0;background:none;padding:0;font:inherit;font-size:.82rem;font-weight:600;color:var(--brand);cursor:pointer}
.stat-wide .link-btn:hover{text-decoration:underline}
.breakdown{position:absolute;top:calc(100% + 8px);right:0;z-index:40;min-width:280px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 48px -16px rgba(11,13,18,.25);padding:14px 16px}
.breakdown-title{margin:0 0 6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.breakdown-row{display:flex;justify-content:space-between;gap:20px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.breakdown-row em{font-style:normal;font-weight:600;color:var(--muted);font-size:.82rem}
.breakdown-note{margin:10px 0 0;font-size:.76rem;color:var(--muted)}

/* Team management */
.invite-card{padding:22px 26px;margin-bottom:20px}
.invite-card h3{margin:0 0 12px}
.app-content .invite-form{display:grid;grid-template-columns:2fr 1fr auto;gap:14px;align-items:end}
.invite-form label{display:block;font-size:.85rem;font-weight:600}
.invite-form input,.invite-form select{margin-top:6px;width:100%}
.invite-form .btn{height:46px}
@media (max-width:760px){.app-content .invite-form{grid-template-columns:1fr}}
.team-table td{vertical-align:middle}
.role-form select{width:auto;min-width:140px;padding:8px 12px}
.btn-link{background:none;border:0;font:inherit;cursor:pointer;padding:0}
.chip.role-admin{background:#ede9fe;color:#5b21b6}
.chip.role-manager{background:#e0f2fe;color:#075985}
.chip.role-bookkeeper{background:#fef3c7;color:#92400e}
.role-legend{padding:22px 26px;margin-top:20px}
.role-legend h3{margin:0 0 12px}
.role-legend dl{margin:0;display:grid;gap:12px}
.role-legend dl>div{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:start}
.role-legend dd{margin:0;color:var(--muted);font-size:.92rem}
@media (max-width:640px){.role-legend dl>div{grid-template-columns:1fr}}
.pager{display:flex;justify-content:center;align-items:center;gap:16px;padding:18px}
.activity-table td{vertical-align:top}
.role-note{background:var(--bg-alt);border-radius:10px;padding:10px 12px;font-size:.88rem}
.fixed-email input{opacity:.7}

.card+.card.data-card,.data-card+.data-card,.invite-card+.data-card{margin-top:20px}

/* Manual invoice entry */
.btn-gray{background:#e5e7eb;color:#374151;border-color:#d1d5db}
.btn-gray:hover{background:#d1d5db;color:#111827}
.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.manual-alt{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}
.app-content .mform{display:grid;gap:18px;max-width:900px}
.mcard{padding:24px 28px}
.mcard h3{margin:0 0 16px}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.mf{display:flex;flex-direction:column;gap:6px}
.mf-wide{grid-column:1/-1}
.mf label{font-size:.85rem;font-weight:600}
.mf .req{color:#b91c1c;margin-left:3px}
.mf input,.mf select,.mf textarea{width:100%}
.mf textarea{resize:vertical}
.mf input[type=file]{padding:10px;border:1.5px dashed var(--line);border-radius:12px;background:var(--bg-alt)}
.mf-help{font-size:.8rem;color:var(--muted)}
.mf-err{font-size:.82rem;color:#b91c1c;font-weight:500}
.mf.has-error input,.mf.has-error select,.mf.has-error textarea{border-color:#b91c1c}
.mactions{margin-top:4px}
@media (max-width:700px){.mgrid{grid-template-columns:1fr}}

/* Invoice page without a PDF: a prompt, then the fields at full width */
.review-layout.no-pdf{grid-template-columns:1fr}
.pdf-prompt{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:20px 26px;border:1.5px dashed #c7cbd3;background:var(--card);box-shadow:none}
.pp-ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:var(--brand);background:linear-gradient(135deg,rgba(79,70,229,.12),rgba(6,182,212,.12));flex:none}
.pp-text{flex:1;min-width:220px}
.pp-text h3{margin:0 0 2px;font-size:1.05rem}.pp-text p{margin:0}
.pp-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.pp-form input[type=file]{width:auto;max-width:280px;padding:8px;border:1px solid var(--line);border-radius:10px;font-size:.85rem}
.review-layout.no-pdf .fields-list{display:grid;grid-template-columns:1fr 1fr}
.review-layout.no-pdf .frow{border-right:1px solid var(--line)}
.review-layout.no-pdf .frow:nth-child(2n){border-right:0}
@media (max-width:760px){.review-layout.no-pdf .fields-list{grid-template-columns:1fr}.review-layout.no-pdf .frow{border-right:0}}
.replace-pdf label{cursor:pointer}
.mf input[type=date]{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);font:inherit;transition:.15s}
.mf textarea{min-height:84px}

.mini-review{background:#fbbf24;border-color:#f59e0b;color:#451a03;display:inline-block;text-decoration:none}
.mini-review:hover{background:#f59e0b;border-color:#d97706;color:#451a03}

/* Pay dialog: what is being sent to whom */
.pd-breakdown{margin-top:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.pdb-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:.9rem;padding:4px 0;flex-wrap:wrap}
.pdb-row span{min-width:0}
.pdb-row b{margin-left:auto;text-align:right}
.pdb-row em{font-style:normal;color:var(--muted);font-size:.8rem}
.pdb-total{border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-size:1rem}
.pd-breakdown .small{margin:8px 0 0}
.pp-wallets{display:grid;gap:10px;margin:12px 0}
.pp-wallets[hidden]{display:none}
.pp-wallet{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.pp-wallet:hover{border-color:var(--ink)}
.pp-wallet img{width:26px;height:26px;border-radius:6px}
.ph-total{display:flex;justify-content:space-between;padding:10px 4px 2px;font-size:.92rem;border-top:1px solid var(--line);margin-top:4px}
.ph-receipt{margin-top:12px;display:flex;gap:14px;align-items:center}
.btn-mini{padding:6px 12px;font-size:.8rem}

/* Export page */
.export-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) 1fr 1fr;gap:16px;margin-top:18px}
.export-grid .label-field{min-width:0}
.export-note{margin-top:14px}
.export-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.export-help{padding:26px}
.export-defs{display:grid;gap:14px;margin:14px 0 18px}
.export-defs dt{font-weight:600}
.export-defs dd{margin:2px 0 0;color:var(--muted)}
@media (max-width:720px){.export-grid{grid-template-columns:1fr}}

/* Beneficiaries and the payee check */
.ben-how{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:18px 22px;margin-top:16px}
.ben-how p{margin:8px 0 0}
.ben-add{padding:26px;margin-top:20px}
.ben-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.ben-wide{grid-column:1/-1}
.ben-list{display:grid;gap:16px;margin-top:20px}
.ben-card{padding:22px}
.ben-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ben-head h3{margin:0}
.ben-addr{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.ben-address{font-size:.95rem;word-break:break-all}
.ben-more{margin-top:14px}
.ben-more summary{cursor:pointer;color:var(--muted)}
.pd-ack{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:.92rem;line-height:1.4;cursor:pointer}
.pd-ack input{width:auto;margin-top:3px;flex:none}
.payee{padding:20px 24px;margin:0 0 18px;border-left:4px solid var(--line)}
.payee-approved{border-left-color:var(--ok)}
.payee-unlisted{border-left-color:#d97706}
.payee-new_address,.payee-other_payee,.payee-lookalike{border-left-color:#dc2626}
.payee-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:6px}
.payee-head h3{margin:0;font-size:1.05rem}
.payee-compare,.pd-payee-compare{display:grid;gap:8px;margin:12px 0}
.payee-row{display:grid;grid-template-columns:minmax(120px,190px) 1fr;gap:12px;align-items:baseline;padding:9px 12px;background:var(--bg-alt);border-radius:10px}
.payee-addr{word-break:break-all;font-size:.92rem;letter-spacing:.02em}
.payee mark,.pd-payee mark{background:#fecaca;color:#7f1d1d;border-radius:3px;padding:0 1px;font-weight:700}
.payee-actions{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.payee-form{display:grid;gap:10px;max-width:560px}
.payee-badge{display:inline-block;margin-top:4px;padding:2px 9px;border-radius:99px;font-size:.72rem;font-weight:700;white-space:nowrap}
.payee-badge-approved{background:var(--ok-bg);color:var(--ok)}
.payee-badge-unlisted{background:#fef3c7;color:#92400e}
.payee-badge-risk{background:#fee2e2;color:#991b1b}
.pd-payee{margin:0 0 16px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--card)}
.pd-payee.is-approved{border-color:var(--ok);background:var(--ok-bg)}
.pd-payee.is-unlisted{border-color:#d97706;background:#fffbeb}
.pd-payee.is-new_address,.pd-payee.is-other_payee,.pd-payee.is-lookalike{border-color:#dc2626;background:#fef2f2}
.pd-payee-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.pd-payee .payee-row{background:rgba(255,255,255,.7)}
.pd-payee-actions{margin-top:10px;display:grid;gap:8px}
@media (max-width:720px){.ben-how{grid-template-columns:1fr}.ben-grid{grid-template-columns:1fr}.payee-row{grid-template-columns:1fr;gap:2px}}

/* Look-alike wallet history (Tron) */
.dust-card{padding:24px;margin-top:20px}
.dust-check{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.dust-check h4{margin:0 0 6px}
.check-finding{margin:12px 0;padding:14px;border:1px solid #fecaca;border-radius:12px;background:#fef2f2}
.check-alarm{margin:0 0 10px;padding:8px 12px;border-radius:10px;background:#fee2e2;color:#7f1d1d;font-weight:600;font-size:.88rem}
.dust-findings mark{background:#fecaca;color:#7f1d1d;border-radius:3px;padding:0 1px;font-weight:700}
.pd-dust{margin:0 0 16px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg-alt)}
.pd-dust.is-warn{border-color:#dc2626;background:#fef2f2}
.pd-dust mark{background:#fecaca;color:#7f1d1d;border-radius:3px;padding:0 1px;font-weight:700}
.pd-dust-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.pd-dust-head p{margin:0}

/* The landing-page demo of the app */
.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px;padding:14px 18px;border-radius:14px;background:#eef2ff;border:1px solid #c7d2fe;color:#312e81;font-size:.93rem}
.demo-banner span{display:block;color:#4338ca}
.demo-reading h3{display:flex;align-items:center;gap:12px;justify-content:center}
.demo-details{margin-top:22px;scroll-margin-top:90px}
.demo-wall{display:grid;gap:12px;justify-items:center;text-align:center;padding:14px 4px 6px}
.demo-wall h3{margin:6px 0 0;font-size:1.3rem}
.demo-wall p{margin:0}
.demo-wall .btn{width:100%;justify-content:center;margin-top:6px}
.demo-tick{width:44px;height:44px;flex:none;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center}
.demo-offer{font-size:.95rem;color:var(--muted)}
.demo-offer strong{color:var(--ink)}
.demo-link{background:none;border:0;padding:0;font:inherit;color:var(--muted);font-weight:500;cursor:pointer;text-decoration:underline}

/* Demo page: Send invoices isn't available in the demo, and Pay now is the thing to press */
.tabs .tab-disabled{padding:10px 16px;font-weight:600;font-size:.94rem;color:#b9bfca;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:not-allowed;user-select:none}
.mini-btn.demo-pay-btn{font-size:1.02rem;padding:13px 28px;border-radius:12px;box-shadow:0 8px 20px -8px rgba(21,128,61,.65);transform-origin:50% 100%;animation:demo-dance 4.5s ease-in-out 1.2s infinite}
.mini-btn.demo-pay-btn:hover,.mini-btn.demo-pay-btn:focus-visible{animation:none;transform:translateY(-1px)}
/* a little shimmy, then a long pause: it catches the eye without nagging */
@keyframes demo-dance{
  0%,22%,100%{transform:none}
  3%{transform:translateY(-7px) rotate(-5deg)}
  6%{transform:translateY(0) rotate(5deg)}
  9%{transform:translateY(-5px) rotate(-4deg)}
  12%{transform:translateY(0) rotate(4deg)}
  15%{transform:translateY(-3px) rotate(-2deg)}
  18%{transform:none}
}
@media (prefers-reduced-motion:reduce){.mini-btn.demo-pay-btn{animation:none}}
.ben-warning{margin:16px 0;padding:16px 18px;border-left-width:4px;border-radius:12px;background:#fef2f2}

/* Networks that are built but not switched on yet */
.chain-soon{opacity:.55;filter:grayscale(1);pointer-events:none;user-select:none}
.soon-tag{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:99px;background:#e5e7eb;color:#4b5563}
.chip-abx{background:#ede9fe;color:#5b21b6}

/* A button that can't be used yet looks it: grey, flat, and a "not allowed" cursor (e.g. Pay until a warning is confirmed) */
.btn:disabled,.btn[disabled]{background:#e5e7eb!important;color:#9ca3af!important;border-color:#e5e7eb!important;box-shadow:none!important;cursor:not-allowed;transform:none!important}
.pd-gate-hint{margin:10px 0 0;text-align:right;color:#b91c1c;font-weight:600}

/* "Ask the supplier to bill me via ABX" */
.req-link{display:block;margin-top:3px;color:var(--brand);font-weight:600}
.req-link.req-ask{display:inline-block;margin-top:5px;padding:3px 11px;border-radius:999px;background:#dcfce7;color:#14532d;border:1px solid #4ade80}
.req-link.req-ask:hover{background:#bbf7d0;border-color:#22c55e}
.req-card{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 18px;margin-bottom:16px;border:1px dashed #c7d2fe;background:#f5f7ff}
.req-banner{margin-bottom:14px}
.copy-row{display:flex;gap:10px;margin:8px 0 6px;flex-wrap:wrap}.copy-row input{flex:1;min-width:220px}

/* Panels on the "bill me through ABX" pages: room to breathe, a clear label above each value, and spaced-out actions */
.req-panel{padding:30px 34px;margin:0 0 20px}
.req-panel>.chip{margin-bottom:12px}
.req-panel h3{margin:0 0 16px;font-size:1.3rem;letter-spacing:-.01em}
.req-panel .kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px 32px;margin:0 0 22px}
.req-panel .kv>div{display:grid;gap:4px}
.req-panel .kv dt{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.req-panel .kv dd{margin:0;font-size:1.05rem;font-weight:600;overflow-wrap:anywhere}
.req-panel p{margin:0 0 20px;max-width:680px;line-height:1.6}
.req-panel p:last-child{margin-bottom:0}
.req-panel .label-field{display:grid;gap:7px;margin:0 0 18px;max-width:560px}
.req-panel .label-field input,.req-panel .label-field select,.req-panel .label-field textarea{width:100%}
.req-panel .btn{margin-top:2px}
.req-panel .copy-row{margin:6px 0 14px}
.req-panel .inline-form{display:grid;gap:12px;max-width:560px;padding-top:20px;margin-top:22px;border-top:1px solid var(--line)}
.req-panel .form-actions{margin-top:6px}
.req-back{display:inline-block;margin:4px 0 10px}
.req-panel>.chip{display:inline-block;margin-bottom:14px}
.req-panel .inline-form .btn{justify-self:start}
