/* Shared desktop/tablet/mobile layout. Never scale the entire page or hide data. */
/* A full-width signal row must not become a new flex column on mobile. */
.subscription-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.subscription-card>div{min-width:0;max-width:100%}
.subscription-signals{grid-column:1/-1;box-sizing:border-box;min-width:0;overflow-wrap:anywhere}
.subscription-signals .message-bubble,.subscription-signals p{overflow-wrap:anywhere;white-space:pre-wrap}
.password-recovery-link{justify-self:end;min-height:44px;border:0;background:transparent;color:var(--blue);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.password-recovery-link:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:720px){.subscription-card{grid-template-columns:minmax(0,1fr);gap:14px}.subscription-card-state{justify-items:start}.subscription-signals{max-height:55vh}.subscription-card p{font-size:13px;line-height:1.7}}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:132px}
main,.dashboard,.admin-main,.strategy-detail-main,section,article,form{min-width:0}
.topbar-inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.brand{max-width:100%;min-width:0}.brand>span:last-child{min-width:0}.brand strong{overflow-wrap:anywhere}
.top-actions{min-width:0;flex-wrap:wrap;gap:4px}.top-actions>a,.top-actions>button{white-space:nowrap;min-height:40px}
.hero-row>div,.strategy-header>div,.frame-heading>div,.section-title-row>div{min-width:0}
.strategy-header h2,.research-model-card h2,.backtest-hero-copy h1{overflow-wrap:anywhere;text-wrap:balance}
.table-scroll,.user-table-wrap{max-width:100%;min-width:0;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-color:#9aafbf #edf2f6;scrollbar-width:thin}
.user-table th,.user-table td{white-space:nowrap}.user-table td .user-tags{white-space:normal}
.user-table td:nth-child(2){min-width:110px}.user-table td:last-child{min-width:156px}
.user-table td .user-identity strong{max-width:260px;overflow-wrap:anywhere;white-space:normal}
#daily-usage-panel .user-table{min-width:620px}
.backtest-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.backtest-metric-grid>div{min-width:0}
.strategy-detail-site .backtest-metric-grid strong{font-size:clamp(22px,2.3vw,34px);line-height:1.35;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.backtest-hero{gap:clamp(24px,3vw,44px)}
.user-toolbar,.subscription-settings-form,.admin-sync-actions{flex-wrap:wrap;min-width:0}
.user-toolbar label,.subscription-settings-form label{min-width:0;max-width:100%}
.subscription-plan-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.subscription-plan-card>div{grid-column:1/-1}.subscription-plan-card button{min-height:44px;white-space:nowrap}
.subscription-plan-card .check-field{min-height:44px}.subscription-plan-card>label{min-width:0}
.subscription-plan-card h3,.subscription-card h3,.message-thread h3{overflow-wrap:anywhere}
.account-dialog,.profile-dialog,.stock-dialog{max-width:calc(100vw - 24px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.account-dialog-head{padding-right:42px}.dialog-close{width:40px;height:40px}
.account-form label,.profile-card,.message-compose-form>*{min-width:0}
.account-status,.status-line{overflow-wrap:anywhere}
.profile-summary strong,.message-thread p,.source-rail code{overflow-wrap:anywhere}
.source-rail code{max-width:100%}.chart-legend,.backtest-legend{flex-wrap:wrap}
button,a,input,select,textarea{touch-action:manipulation}
@media(min-width:981px) and (max-width:1200px){
 .topbar-inner{grid-template-columns:minmax(0,1fr) auto}.terminal-status{display:none}
 .login-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.85fr);gap:32px}
 .login-panel{padding-left:24px;padding-right:24px}
 .backtest-hero{grid-template-columns:minmax(0,1fr) minmax(300px,.8fr)}
 .admin-main>.hero-row{align-items:flex-start;flex-direction:column;gap:24px}
 .admin-sync-actions{justify-content:flex-start}
}
@media(max-width:980px){
 .topbar-inner{grid-template-columns:minmax(0,1fr) auto;gap:16px}
 .backtest-hero{grid-template-columns:minmax(0,1fr)}
 .hero-row{flex-wrap:wrap}.hero-row>div:first-child{flex:1 1 300px}
 .section-title-row{flex-wrap:wrap}.section-title-row>div{max-width:100%}
 .admin-sync-actions{justify-content:flex-start;width:100%}
 .subscription-plan-grid{grid-template-columns:minmax(0,1fr)}
 .admin-users .summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .selection-heading{align-items:stretch;flex-direction:column}
 .selection-date-control{align-self:flex-end;width:min(280px,100%)}
 .selection-date-control select{min-width:0;width:100%}
}
@media(max-width:720px){
 html{scroll-padding-top:140px}
 main{padding:28px 16px 44px}
 .topbar{height:auto;min-height:68px}
 .topbar-inner{grid-template-columns:minmax(0,1fr);gap:2px;padding:12px 16px 8px}
 .brand{justify-self:center;gap:8px}.brand strong{font-size:15px;letter-spacing:.025em;line-height:1.45}
 .brand-mark{flex:0 0 30px}
 .top-actions{width:100%;justify-content:center;gap:2px 6px}
 .top-actions .text-link,.top-actions .text-button,.top-actions #contact-button,.top-actions #profile-button{font-size:12px;padding:8px;min-height:40px}
 .login-layout{padding:0;gap:28px;min-height:auto}.login-copy{padding:18px 0 0}
 .login-copy h1,.hero-row h1{font-size:clamp(34px,9vw,48px);line-height:1.2}
 .login-copy>p:not(.eyebrow){font-size:15px;line-height:1.8}
 .login-panel{width:100%;min-height:0;padding:28px 20px 54px}
 .login-panel h2{font-size:25px}.qr-stage{width:min(230px,100%);height:auto;aspect-ratio:1}
 .hero-row{gap:20px;margin-bottom:26px}.hero-row>div:first-child{flex:auto}
 .hero-note,.strategy-header p,.section-intro,.muted{font-size:13px;line-height:1.75}
 .eyebrow{font-size:9px;letter-spacing:.12em;flex-wrap:wrap}
 .strategy-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:24px}
 .catalog-tab{display:flex;flex-direction:column;align-items:flex-start;min-height:0;padding:14px 10px;gap:6px}
 .catalog-tab>span{font-size:19px}.catalog-tab strong{font-size:16px}.catalog-tab em{font-size:8px;letter-spacing:0;overflow-wrap:anywhere}
 .catalog-tab small{font-size:10px;line-height:1.6}
 .summary-strip,.admin-users .summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:28px}
 .summary-item{padding:16px;border:0;border-bottom:1px solid #c6d2dd;border-right:1px solid #c6d2dd}
 .summary-item:nth-child(even){border-right:0}.summary-item:last-child:nth-child(odd){grid-column:1/-1}
 .summary-item span{font-size:11px;letter-spacing:.03em}.summary-item strong{font-size:28px}
 .strategy-section{padding:24px 14px 18px}.strategy-header{gap:18px;margin-bottom:20px;width:100%}
 .strategy-header h2{font-size:clamp(24px,6.6vw,32px);line-height:1.3}
 .strategy-header-actions{width:min(210px,100%);align-self:flex-end;justify-items:stretch}
 .table-scroll{margin:0;padding:0;width:100%}
 .signal-table{min-width:820px}.strategy-selection-table{min-width:1260px}
 .signal-table th,.user-table th,.backtest-table th{font-size:11px;letter-spacing:0;padding:12px}
 .signal-table td,.user-table td,.backtest-table td{font-size:13px;padding:14px 12px}
 .stock-name{font-size:12px}.section-foot,.form-note,.account-status{font-size:12px;line-height:1.75}
 .status-badge{font-size:12px;letter-spacing:.02em;padding:8px 10px}
 .strategy-detail-main{padding-top:24px}.backtest-hero{padding:12px 0 28px;gap:24px}
 .backtest-hero-copy h1{font-size:clamp(30px,8vw,44px);line-height:1.2}
 .backtest-tagline{font-size:15px}
 .backtest-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .backtest-metric-grid>div{padding:22px 14px 18px;border-right:1px solid #cbd5dd!important}
 .backtest-metric-grid>div:nth-child(even){border-right:0!important}
 .backtest-metric-grid small{font-size:11px}
 .strategy-detail-site .backtest-metric-grid strong{font-size:clamp(20px,5.4vw,28px);line-height:1.4;margin-top:10px}
 .backtest-frame{padding:20px 12px;margin-top:26px}.frame-heading{gap:16px}
 .frame-heading h2,.section-title-row h2{font-size:27px}
 .backtest-table{min-width:560px}.backtest-chart-wrap canvas{height:430px}
 .backtest-legend{font-size:12px;gap:12px}.period-detail-heading h3{font-size:22px}
 .research-model-card{min-height:0;padding:22px}.research-model-card h2{font-size:29px}
 .model-card-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.model-card-metrics span{padding:12px 7px;min-width:0}
 .model-card-metrics strong{font-size:17px;overflow-wrap:anywhere}
 .account-dialog,.profile-dialog{padding:0 18px 24px;margin:auto}
 .account-dialog-head{padding-top:26px;padding-right:42px}.account-dialog-head h2{font-size:28px;line-height:1.3}
 .dialog-close{top:16px;right:12px}.account-tab{font-size:13px;min-height:46px;padding:10px 4px}
 .account-form label,.message-compose-form label,.user-create-form label,.subscription-plan-card>label{font-size:12px}
 .account-form input,.account-form select,.account-form textarea,.message-compose-form input,.message-compose-form textarea,.user-create-form input,.user-create-form select,.subscription-plan-card input,.search-box input,.thread-reply-form textarea,.admin-inline-form input,.subscription-settings-form input{font-size:16px;min-width:0;max-width:100%}
 .primary-button,.secondary-button,.account-action{font-size:15px;min-height:46px}
 .subscription-dialog-actions{gap:10px}.subscription-dialog-actions button{font-size:16px}
 .profile-summary{grid-template-columns:minmax(0,1fr)}.profile-form-grid{gap:12px}.profile-card{padding:16px}
 .profile-summary span{font-size:12px}.profile-summary strong{font-size:18px}
 .message-thread>header,.admin-message-card>header{flex-wrap:wrap}.message-thread time,.admin-message-card time{font-size:11px}
 .message-bubble{max-width:100%;font-size:14px}.message-bubble small{font-size:11px}
 .admin-section-menu{top:112px;margin:0 0 24px;padding:6px}.admin-section-menu a{font-size:12px;min-height:40px}
 .admin-users,.registration-management,.message-management,.subscription-management,.strategy-management{scroll-margin-top:182px}
 .admin-sync-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
 .admin-main .hero-row{gap:20px}.admin-main .hero-row h1{font-size:clamp(34px,9vw,46px)}
 .user-toolbar,.user-toolbar>div{width:100%;min-width:0}.search-box input{width:100%}
 .user-actions button,.review-actions button{min-height:40px;min-width:44px;font-size:13px}
 .subscription-plan-card{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}
 .subscription-plan-card>div{grid-column:1/-1}.subscription-plan-card h3{font-size:23px}
 .subscription-settings-form{width:100%}.subscription-settings-form input{width:100%}
 .subscription-plan-card button{font-size:14px}
 .status-line{bottom:calc(10px + env(safe-area-inset-bottom));line-height:1.6;font-size:13px}
}
@media(max-width:360px){
 main{padding-left:12px;padding-right:12px}.topbar-inner{padding-left:12px;padding-right:12px}
 .catalog-tab{padding:12px 7px}.catalog-tab strong{font-size:14px}
 .strategy-header-actions{width:100%}.account-dialog,.profile-dialog{padding-left:14px;padding-right:14px}
 .subscription-plan-card{grid-template-columns:minmax(0,1fr)}
}
@media(hover:none){.primary-button:hover,.secondary-button:hover,.catalog-tab:hover,.research-model-card:hover{transform:none}}

#user-table-body .subscriber-badge{display:block;width:max-content;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.account-dialog .account-status.is-error,.account-dialog .field-error{color:#b42318;font-size:14px;font-weight:650;line-height:1.6;overflow-wrap:anywhere}
.account-dialog .field-error{display:block;text-align:left}
.account-dialog .account-form input[aria-invalid="true"]{border:2px solid #b42318;box-shadow:0 0 0 3px rgba(180,35,24,.12);scroll-margin-block:30px}
