/* Profile.tokyo bank profile and checkout repair — responsive and non-destructive */
.pt-qr-preview-wrap[hidden], .pt-qr-error[hidden]{display:none!important}
.pt-qr-preview-wrap{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:12px;display:grid;justify-items:center;gap:6px;color:#64748b;font-size:12px}
.pt-qr-preview-wrap img{display:block;width:min(100%,240px);height:auto;max-height:260px;object-fit:contain;border-radius:12px;background:white}
.pt-saved-bank{align-items:stretch;flex-direction:column;gap:10px;padding:14px;border-radius:20px}
.pt-saved-bank-top{display:flex;align-items:center;gap:12px;min-width:0}
.pt-saved-bank-top>div{display:flex;flex-direction:column;min-width:0;gap:2px}
.pt-saved-bank-top small{overflow-wrap:anywhere}
.pt-saved-bank-logo{width:46px;height:46px;object-fit:contain;border-radius:14px;background:#f4f5fd;padding:5px;flex-shrink:0}
.pt-qr-indicator{font-size:12px;color:#5b50b6;font-weight:750}
.pt-saved-qr{max-height:184px;width:auto;max-width:100%;object-fit:contain;border-radius:12px;background:white;border:1px solid #e2e8f0;padding:6px;align-self:start}
.pt-update-qr-form{display:grid;gap:12px;width:100%;background:rgba(99,102,241,.035);border:1px solid #e0e7ff;padding:12px;border-radius:16px}
.pt-update-qr-form label{font-size:13px;font-weight:750;display:grid;gap:7px;color:#334155}
.pt-update-qr-form input[type=file]{max-width:100%;min-width:0;background:white;border:1px solid #e2e8f0;border-radius:12px;padding:12px;font-size:13px}
.pt-update-bank-actions{display:flex;gap:8px;flex-wrap:wrap}
.pt-update-bank-actions .btn{font-size:12px;padding:10px 14px;min-width:0}
.pt-public-qr{display:grid;justify-items:center;padding:12px;background:#fff;border-radius:20px;min-height:110px}
.pt-public-qr img{width:min(100%,365px);max-height:410px;height:auto;object-fit:contain}
.pt-static-qr-label{text-align:center;font-size:12px;font-weight:700;color:#747e91;margin:7px 0 15px}
.pt-qr-error{padding:20px;color:#9b2b4a;background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;text-align:center}
.pt-dynamic-qr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:16px}
.pt-dynamic-qr label{display:grid;gap:5px;min-width:0;font-weight:650;font-size:12px;color:#475569}
.pt-dynamic-qr label input{width:100%;min-width:0;margin:0}
.pt-dynamic-qr button{width:100%;min-width:0;white-space:normal;font-size:12px;padding:12px 10px}
@media(max-width:640px){
 .pt-dynamic-qr{grid-template-columns:1fr}
 .pt-saved-bank{width:100%}
 .pt-saved-bank-logo{width:40px;height:40px}
 .pt-update-bank-actions{flex-direction:column}
 .pt-update-bank-actions .btn{width:100%}
 .pt-public-qr img{max-height:360px}
}
/* Classic payment view retained alongside the newer visual card layout. */
.pt-payment-classic .bank-card{background:#fff;border:1px solid #e2e8f0;border-radius:28px;box-shadow:0 10px 36px rgba(51,65,85,.07);padding:clamp(16px,4vw,28px)}
.pt-payment-classic .bank-header{margin-bottom:18px}
.pt-payment-classic .bank-number strong{font-size:clamp(17px,3.5vw,23px);letter-spacing:.4px}
.pt-payment-modern .bank-card{border-radius:22px}


/* Profile.tokyo PC/Mobile responsive layer – affects presentation only.
   No changes to wallet, server checks, QR, checkout or database. */
html{scroll-padding-top:88px}
html,body{max-width:100%}
body{overflow-wrap:break-word}
body :is(.main,.ext-main,.hero,.dashboard-grid,.checkout-grid,.profile-wrap,.profile-body,.panel,.ext-panel,.pt-admin-workspace,.pt-theme-showcase,.pt-theme-product){min-width:0}
body :is(img,video,canvas,svg){max-width:100%}
body img{height:auto}
body :is(input,textarea,select,button){max-width:100%}
body input[type=file]{width:100%;min-width:0;max-width:100%;overflow:hidden}
body :is(input,textarea,select){min-width:0}
body :is(.notice,.hint,.fine,.monotext,.contact-row,.bank-number,.pay-detail strong,.pt-admin-identity,.ext-panel){overflow-wrap:anywhere}
body :is(.btn,.copy,button,a){touch-action:manipulation}
body :is(a,button,input,select,textarea):focus-visible{outline:3px solid #8875f6;outline-offset:3px}
:where(.pt-responsive-table,.table-scroll){max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.pt-responsive-table table{width:100%;min-width:550px}
.pt-responsive-table[tabindex]:focus-visible{outline:3px solid #8875f6;outline-offset:3px}
/* Desktop: generous working area; prevent oversized children pushing columns. */
@media(min-width:1025px){
  .main{width:100%}
  .checkout-grid,.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .dashboard-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
}
@media(max-width:1024px){
  .dashboard-grid,.checkout-grid{grid-template-columns:minmax(0,1fr)}
  .side-stack{min-width:0}
  .hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pt-admin-mode .pt-admin-quicklinks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .panel-head{flex-wrap:wrap;min-width:0}
}
@media(max-width:760px){
  html{scroll-padding-top:75px}
  .nav{position:relative;z-index:90;gap:10px;max-width:100%}
  .nav .brand{min-width:0;max-width:calc(100% - 66px)}
  .nav .brand-name{min-width:0}
  .nav .brand-name>span{font-size:clamp(17px,5vw,23px)}
  .nav .brand-name small{font-size:clamp(8px,2.35vw,11px);letter-spacing:.1em}
  .nav .mobile-menu-toggle{flex:none;min-height:48px;min-width:48px;display:inline-flex;align-items:center;justify-content:center}
  .nav #nav-links{box-sizing:border-box;max-width:100%;width:100%;min-width:0;}
  .nav #nav-links.is-open{max-height:calc(100dvh - 69px);overflow:auto;overscroll-behavior:contain;z-index:80}
  .nav #nav-links :is(a,button){min-height:44px}
  .main{width:100%;padding:24px 14px 60px}
  .hero{grid-template-columns:minmax(0,1fr);gap:30px;margin:0;padding:30px 3px 48px}
  .hero-visual{width:min(100%,380px);max-width:100%;justify-self:center;transform:none}
  .hero h1{font-size:clamp(34px,8.5vw,51px);overflow-wrap:normal}
  .pt-showcase{max-width:100%;padding-inline:14px}
  .pt-theme-showcase{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .pt-theme-product :is(h3,p){overflow-wrap:anywhere}
  .pt-theme-product a.btn{width:100%;white-space:normal;line-height:1.4;text-align:center;min-height:44px}
  .checkout-grid,.dashboard-grid,.form-cols,.banks-grid,.metrics,.ext-grid,.ext-grid3,.ext-metrics{grid-template-columns:minmax(0,1fr)}
  .auth-shell,.profile-wrap{width:100%;max-width:100%}
  .panel,.ext-panel{max-width:100%;padding:clamp(14px,4vw,22px)}
  .wallet-total,.wallet-overview,.wallet-mini,.wallet-banner{min-width:0;flex-wrap:wrap}
  .bank-card,.saved-bank{min-width:0}
  .bank-card{overflow-wrap:anywhere}
  .qr-image,.pt-public-qr{max-width:100%;height:auto}
  .qr-image img,.pt-public-qr img,.bank-qr{height:auto;max-width:100%;object-fit:contain}
  .pt-dynamic-qr{grid-template-columns:minmax(0,1fr)}
  .pt-checkout-summary>div{min-width:0;gap:8px}
  .pt-checkout-summary>div :is(span,strong){min-width:0;overflow-wrap:anywhere}
  .pay-detail>div{gap:10px;flex-wrap:wrap}
  .pt-admin-mode .pt-admin-layout,.pt-admin-mode .pt-admin-workspace{min-width:0;width:100%}
  .pt-admin-mode .pt-admin-toolbar{max-width:100%;gap:9px}
  .pt-admin-mode .pt-admin-toolbar .pt-admin-breadcrumb{overflow:hidden;white-space:nowrap}
  .pt-admin-mode .pt-admin-overlay:not([hidden]){display:block}
  body.pt-admin-navopen{overflow:hidden}
  .pt-admin-mode .ext-panel .table-scroll,.pt-admin-mode .pt-responsive-table{overflow-x:auto}
  .pt-admin-mode .ext-panel table{max-width:none}
  .pt-admin-mode .pt-admin-quicklinks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-admin-mode .pt-admin-quicklinks a{min-height:68px;gap:8px}
  .pt-admin-mode .pt-admin-menu-toggle{min-width:48px;min-height:48px}
  .pt-admin-mode .ext-tabs{max-width:100%;overflow-x:auto}
  .pt-badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pt-badge-tile{min-height:110px}
  .pt-badge-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pt-static-qr-grid>div{max-width:100%;}
}
@media(max-width:480px){
  .nav{padding:10px 12px}
  .nav .brand-icon{width:44px;height:44px;flex:none}
  .main{padding:18px 12px 58px}
  .page-title{padding:12px 0 21px}
  .page-title h1,.auth-top h1{font-size:clamp(29px,8.5vw,36px)}
  .auth-shell>.panel,.panel,.ext-panel{padding:16px}
  .hero h1{font-size:clamp(32px,9vw,44px)}
  .hero-actions{align-items:stretch;gap:9px}
  .hero-actions>.btn{flex:1 1 100%;white-space:normal;min-height:48px}
  .hero-stat{gap:8px}
  .hero-stat>div{min-width:0;flex:1 1 28%}
  .hero-stat b{font-size:21px}
  .hero-stat span{font-size:10px;line-height:1.35}
  .pt-theme-showcase{gap:9px}
  .pt-theme-product{padding:9px}
  .pt-theme-demo{height:145px;padding:9px}
  .pt-theme-product h3{font-size:13px;line-height:1.4;min-height:35px}
  .pt-theme-product p{font-size:11px;line-height:1.45}
  .pt-theme-product a.btn{font-size:11px;padding:9px 5px}
  .pt-gallery-badge{min-height:100px;padding:10px 4px}
  .pt-gallery-badge img,.pt-badge-icon img{width:40px;height:40px}
  .pt-badge-tile{min-height:100px;padding:10px 4px}
  .pt-badge-caption{font-size:10px}
  .form label,.panel>label{min-width:0}
  .form :is(input,textarea,select){min-height:48px}
  .form :is(input,textarea,select),.pt-admin-mode .ext-panel :is(input,textarea,select){font-size:16px}
  .btn,button.btn,.nav nav .btn{min-height:46px;white-space:normal;text-align:center}
  .copy,button.copy,.danger-link{min-height:40px;display:inline-flex;align-items:center;justify-content:center}
  .saved-bank{flex-wrap:wrap}
  .profile-body{padding:0 14px 22px!important}
  .identity h1{font-size:clamp(22px,7vw,28px);overflow-wrap:anywhere}
  .profile-wrap .contact-row{flex-wrap:wrap;overflow-wrap:anywhere}
  .bank-number{flex-wrap:wrap}
  .pt-payment-classic .bank-card{padding:16px;border-radius:20px}
  .pt-dynamic-qr button,.pt-update-bank-actions .btn{width:100%;white-space:normal}
  .pt-checkout-summary{padding:13px}
  .pt-checkout-summary strong{font-size:clamp(14px,4.5vw,19px)}
  .pt-admin-mode main.ext-main{padding:18px 12px 55px}
  .pt-admin-mode .pt-admin-welcome{padding:18px 14px}
  .pt-admin-mode .pt-admin-quicklinks{gap:8px}
  .pt-admin-mode .pt-admin-quicklinks a{padding:12px 9px;min-height:80px}
  .pt-admin-mode .pt-admin-toolbar{padding:0 12px}
  .pt-admin-mode .pt-admin-breadcrumb{gap:6px;font-size:11px}
  .pt-admin-mode .ext-metrics>div{min-width:0}
  .pt-admin-mode .ext-panel :is(input,textarea,select){max-width:100%}
  .pt-admin-mode .ext-panel table form{flex-wrap:wrap}
  .pt-admin-mode .ext-panel table form :is(input,button){max-width:none}
  .captcha-wrap{overflow-x:auto;overscroll-behavior-x:contain}
  .footer{padding:22px 14px 36px;flex-wrap:wrap}
}
@media(max-width:340px){
  .pt-theme-showcase{grid-template-columns:minmax(0,1fr)}
  .pt-badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-badge-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pt-admin-mode .pt-admin-quicklinks{grid-template-columns:minmax(0,1fr)}
  .pt-admin-mode .pt-admin-toolbar{padding-inline:8px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.pt-theme-product,.pt-badge-tile,.btn{transition:none!important}}
