/* Shared viewport safety for marketing, account, and dashboard pages. */
html,body{max-width:100%;overflow-x:clip}
img,svg,video,canvas{max-width:100%}
.app-shell,.main-column,.content,.portal-shell,.portal-card,.panel,.metric-card{min-width:0}
.portal-card,.auth-card{max-width:calc(100vw - 28px)}
.portal-card input,.portal-card select,.portal-card textarea,.auth-card input,.auth-card select{max-width:100%;min-width:0}
.portal-head{gap:12px}
.portal-head b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workspace-table,.market-board,.request-history,.statement-list{min-width:0}
.workspace-table>div>*,.market-board a>*,.request-history>div>*{min-width:0;overflow-wrap:anywhere}
.notification-menu,.profile-menu{max-width:calc(100vw - 16px)}
@media(max-width:1179px){.topbar .market-strip{display:none}.topbar-context{display:flex;min-width:0;margin-right:auto}.topbar-context b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:900px){.main-column,.main-column.expanded{width:100%;min-width:0}.topbar{gap:8px}.top-actions{margin-left:auto;flex:0 0 auto}}
@media(max-width:760px){
  .site-header{padding-inline:16px;gap:8px}.site-header .header-actions{display:none}.site-header .menu-button{margin-left:auto;flex:0 0 auto}
  .hero{grid-template-columns:minmax(0,1fr);padding:112px 18px 70px;gap:28px;min-height:0}.hero-copy,.terminal{min-width:0;width:100%}.hero h1{font-size:clamp(38px,10vw,56px);overflow-wrap:anywhere}
  .hero-actions{flex-wrap:wrap}.asset-card{grid-template-columns:minmax(0,1fr)}.asset-art,.crypto-art,.building-art,.allocation-art{min-height:210px}.card-copy{padding:25px}
  .platform,.intelligence,.security{grid-template-columns:minmax(0,1fr)}.security-grid{grid-template-columns:minmax(0,1fr)}.quote{padding-left:20px}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.footer-top,.footer-bottom{gap:16px;flex-wrap:wrap}
  .portal-head{padding-inline:14px}.portal-head b{letter-spacing:.05em;font-size:13px}.portal-card{margin:18px 14px;padding:22px}.portal-card h1{font-size:clamp(27px,8vw,36px)}
  .workspace-table>div{grid-template-columns:repeat(2,minmax(0,1fr))}.market-board a{grid-template-columns:minmax(0,1fr) auto;gap:9px}.request-history>div{gap:10px}
}
@media(max-width:620px){.topbar-context{display:none}.topbar .market-strip{display:none}.content{padding-inline:14px}.balance-line{flex-wrap:wrap}.balance-line h2{font-size:clamp(28px,9vw,42px);overflow-wrap:anywhere}.metric-grid{max-width:100%}.dashboard-grid,.dashboard-grid>*{min-width:0}.donut-row{flex-wrap:wrap}.legend{min-width:0}.auth-brand{max-width:calc(100vw - 28px)}.auth-brand b{font-size:clamp(11px,3.4vw,15px);overflow-wrap:anywhere}}
@media(max-width:420px){.hero-actions>*{width:100%;justify-content:center}.footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-card{padding:18px}.portal-head b{font-size:11px}.workspace-table>div{grid-template-columns:minmax(0,1fr)}.market-board a{grid-template-columns:minmax(0,1fr)}.market-board em{grid-column:auto;text-align:left}.balance-breakdown{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* Auth pages: one centered column keeps the logo aligned with the form. */
.auth-shell{box-sizing:border-box;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:40px max(16px,env(safe-area-inset-right)) 40px max(16px,env(safe-area-inset-left))}
.auth-brand{position:static;box-sizing:border-box;display:flex;justify-content:center;align-items:center;max-width:min(430px,100%);min-width:0;margin:0 auto;text-align:center;letter-spacing:clamp(.03em,.4vw,.16em)}
.auth-brand b{min-width:0;overflow-wrap:anywhere}
.auth-brand.has-uploaded-logo .brand-logo-image{width:auto;max-width:min(260px,76vw);max-height:72px;object-fit:contain;object-position:center}
.auth-card{box-sizing:border-box;width:min(430px,100%);max-width:100%;min-width:0;margin:0 auto}
.auth-card label,.auth-card form,.auth-card .alert{min-width:0}
.auth-card input,.auth-card select{font-size:16px}
@media(max-width:480px){
  .auth-shell{justify-content:flex-start;gap:20px;padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom))}
  .auth-brand b{font-size:clamp(11px,3.6vw,15px)}
  .auth-brand.has-uploaded-logo .brand-logo-image{max-width:min(220px,72vw);max-height:58px}
  .auth-card{padding:clamp(18px,5vw,26px);border-radius:15px}
  .auth-card h1{font-size:clamp(28px,8vw,34px);line-height:1.15;overflow-wrap:anywhere}
  .auth-card form{gap:15px;margin-top:23px}
  .auth-card button{width:100%}
  .auth-foot{line-height:1.5;overflow-wrap:anywhere}
}
@media(max-width:340px){.auth-shell{padding-inline:12px}.auth-card{padding:17px}}

/* Shared content should reflow rather than disappear beyond a clipped viewport. */
.portal-card,.settings-panel,.funding-grid form,.strategy-grid article,.wallet-list article,.market-controls,.cards article,.detail-card{box-sizing:border-box;min-width:0}
.portal-form input,.portal-form select,.portal-form textarea,.settings-panel input,.settings-panel select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px}
.portal-form .risk-check input,.settings-panel .risk-check input{width:18px}
.portal-card,.settings-panel,.cards article,.asset-card,.panel{overflow-wrap:anywhere}
.market-tabs{scrollbar-width:thin;scroll-snap-type:x proximity}
.market-tabs button{flex:0 0 auto;scroll-snap-align:start}
.sheet{box-sizing:border-box;max-width:100vw;overflow-y:auto;overscroll-behavior:contain}
.sheet label input{min-width:0}
@media(max-width:760px){
  .portal-shell{padding-bottom:40px}
  .portal-card{width:calc(100% - 28px);max-width:1050px;margin:18px auto;padding:clamp(18px,5vw,26px)}
  .portal-head{min-width:0;gap:10px}
  .portal-head a{min-width:0;max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .portal-head b{max-width:60%;font-size:clamp(10px,2.9vw,13px)}
  .form-grid,.funding-grid,.settings-sections,.strategy-grid,.wallet-layout{grid-template-columns:minmax(0,1fr)}
  .funding-grid form{padding:clamp(16px,4vw,22px)}
  .request-history>div,.workspace-table>div{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}
  .request-history>div>*,.workspace-table>div>*{min-width:0}
  .market-hero{padding:58px 16px 38px}
  .market-hero h1{font-size:clamp(36px,10vw,56px);overflow-wrap:anywhere}
  .market-tabs{justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .market-header-actions{min-width:0;margin-left:auto}
  .market-header-actions .portfolio{white-space:nowrap}
  .cards,.property-grid{grid-template-columns:minmax(0,1fr)}
  .sheet{width:min(440px,100%);padding:clamp(18px,5vw,30px)}
  .hero,.section,.platform,.security,.intelligence{min-width:0}
  .hero-actions>*{max-width:100%}
  .terminal{box-sizing:border-box;max-width:100%}
  .editorial-copy{box-sizing:border-box;max-width:100%}
  .editorial-copy h2{font-size:clamp(28px,8vw,38px);overflow-wrap:anywhere}
}
@media(max-width:620px){
  .metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .metric-card{min-width:0;scroll-snap-align:none}
  .balance-breakdown div:nth-child(3){display:block;grid-column:1/-1}
  .dashboard-grid{grid-template-columns:minmax(0,1fr)}
  .panel-header{gap:12px;flex-wrap:wrap}
  .market-board a{grid-template-columns:minmax(0,1fr) auto}
  .wallet-list article{flex-wrap:wrap}
  .site-header .logo{min-width:0;max-width:calc(100% - 54px)}
  .site-header .logo.has-uploaded-logo .brand-logo-image{max-width:min(180px,55vw)}
}
@media(max-width:420px){
  .metric-grid{grid-template-columns:minmax(0,1fr)}
  .balance-breakdown{grid-template-columns:minmax(0,1fr)}
  .balance-breakdown div:nth-child(3){grid-column:auto}
  header .brand{min-width:0;max-width:90px}
  header .brand b{display:none}
  .marketplace-header-actions,.market-header-actions{gap:4px}
  .market-header-actions .portfolio{padding:8px;font-size:10px}
  .site-header .logo.has-uploaded-logo .brand-logo-image{max-width:min(155px,50vw)}
}
