/* Phone-first forms, catalogue cards and result inspection. UI 0.12.0.
   The shared mobile shell owns navigation and safe-area insets. */
.asset-field-label,.remove-label,.mobile-scroll-hint{display:none}
.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.settings-summary{display:block;margin-top:4px;font-size:13px;font-weight:400;color:var(--text-secondary)}
.catalog-selection-bar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:18px 0}
.catalog-selection-bar p{margin:0;font-size:14px;color:var(--text-secondary)}
.chart-date-control{margin:18px 0 8px}
.chart-date-control label{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:14px;font-weight:700}
.chart-date-control output{font-weight:400;font-family:var(--font-data);font-variant-numeric:tabular-nums}
.chart-date-control input{display:block;width:100%;min-height:44px;padding:0;accent-color:var(--color-action)}
.chart-date-control p{font-size:13px;line-height:1.6;color:var(--text-secondary);margin:0 0 12px}
#chart-inspect{overflow-wrap:anywhere}
@media(max-width:760px){
 .mobile-scroll-hint{display:block;font-size:14px;line-height:1.7;color:var(--text-secondary);margin:14px 0}
 #view-constructor :where(input,select),#view-catalog :where(input,select),#view-results select{font-size:16px;min-height:48px;max-width:100%;min-width:0}
 #view-constructor :where(button,summary),#view-catalog :where(button,summary),#view-results :where(button,summary){min-height:44px;touch-action:manipulation}
 #view-constructor :where(.settings-grid,.advanced-grid,.constructor-grid),#view-catalog .catalog-search-row{grid-template-columns:minmax(0,1fr);gap:18px}
 #view-constructor .settings{padding:20px 16px}
 #view-constructor label{font-size:14px;line-height:1.6;min-width:0}
 #view-constructor .period-shortcuts{display:flex;flex-wrap:wrap;gap:8px}
 #view-constructor .period-shortcuts>span{width:100%;font-size:14px}
 #view-constructor .period-shortcuts .chip-button{min-width:64px;font-size:14px}
 #view-constructor .advanced>summary{font-size:14px;line-height:1.6;padding-block:12px}
 #view-constructor .advanced-grid{padding-top:16px}
 #view-constructor .advanced small{font-size:13px;line-height:1.7}
 #view-constructor .workspace-actions{align-items:stretch;gap:12px;flex-direction:column}
 #view-constructor .workspace-actions>div{display:flex;gap:8px;flex-wrap:wrap}
 #view-constructor .workspace-actions button{flex:1 1 140px;font-size:14px;white-space:normal;line-height:1.5}
 #view-constructor #save-status{font-size:13px;line-height:1.6}
 #view-constructor .allocation{padding:20px 16px}
 #view-constructor .portfolio-switcher{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
 #view-constructor #portfolio-tabs{display:flex;flex-wrap:wrap;gap:8px;min-width:0;flex:1 1 100%}
 #view-constructor .portfolio-tab{white-space:normal;overflow-wrap:anywhere;min-height:44px;max-width:100%;padding:10px 14px;font-size:14px}
 #view-constructor #add-portfolio{width:100%;font-size:14px}
 #view-constructor .portfolio-name-row{align-items:stretch;flex-wrap:wrap;gap:8px}
 #view-constructor .portfolio-name-row label{flex:1 1 100%}
 #view-constructor .allocation-tools{flex-wrap:wrap;gap:8px;font-size:14px}
 #view-constructor .allocation-tools>div{display:flex;gap:10px;flex-wrap:wrap}
 #view-constructor .allocation-tools button{padding:8px 10px;font-size:14px}
 #view-constructor .row-head{display:none}
 #view-constructor .asset-row{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:14px 12px;padding:16px;margin-bottom:14px;border:1px solid var(--color-divider);border-radius:12px;background:#fff;align-items:start}
 #view-constructor .ticker-cell{grid-column:1/-1;min-width:0}
 #view-constructor .asset-field-label{display:block;font-size:14px;font-weight:700;color:var(--text-body);margin-bottom:7px}
 #view-constructor .ticker-input{width:100%;max-width:100%;font-family:var(--font-data);text-transform:uppercase}
 #view-constructor .instrument-name{font-size:14px;line-height:1.6;margin-top:9px;overflow-wrap:anywhere;white-space:normal}
 #view-constructor .instrument-badges{flex-wrap:wrap;gap:7px;margin-top:8px}
 #view-constructor .asset-info-link{font-size:14px;padding:8px 10px}
 #view-constructor .weight-cell{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 7px;align-items:center}
 #view-constructor .weight-cell label{grid-column:1/-1}
 #view-constructor .weight-input{width:100%;min-width:0;text-align:left;padding:10px 12px}
 #view-constructor .weight-cell>span{display:none}
 #view-constructor .remove-button{align-self:end;display:flex;gap:5px;align-items:center;justify-content:center;width:100%;min-width:0;height:48px;padding:8px;color:var(--color-negative);font-size:15px;border:1px solid var(--color-divider);border-radius:8px;background:#fff}
 #view-constructor .remove-button>span:first-child{font-size:22px;line-height:1}
 #view-constructor .remove-label{display:inline;font-size:13px}
 #view-constructor :where(#add-row,#choose-instrument,#calculate){width:100%;font-size:16px;min-height:48px;white-space:normal;line-height:1.5}
 #view-constructor .allocation-footer{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 #view-constructor .weight-total{margin-top:22px}
 #view-constructor .validation-message{font-size:14px;line-height:1.65}
 #view-constructor .calculation-note{font-size:13px;line-height:1.7}
 #view-constructor .preview-column{gap:16px;min-width:0}
 #view-constructor .preview-column .panel{padding:20px 16px}
 #view-constructor .example-button{font-size:14px;min-height:48px;white-space:normal}
 #view-constructor :where(.coverage-detail,.coverage-footnote,.example-panel p){font-size:14px;line-height:1.7}
 #view-catalog .catalog-controls{padding:18px 14px}
 #view-catalog .search-field{width:100%;min-width:0}
 #view-catalog .catalog-search-row>label{width:100%;font-size:14px}
 #view-catalog .filter-row{gap:8px;flex-wrap:wrap;overflow:visible}
 #view-catalog .chip-button{padding:10px 12px;font-size:14px;white-space:normal;line-height:1.5}
 #view-catalog .catalog-bottom{display:flex;flex-direction:column;align-items:stretch;gap:16px}
 #view-catalog .catalog-bottom label{font-size:14px;line-height:1.6}
 #view-catalog .catalog-check{display:flex;align-items:center;gap:12px;min-height:44px}
 #view-catalog .catalog-check input{width:24px;height:24px;min-height:24px;flex:none}
 #view-catalog .catalog-selection-bar{align-items:stretch;flex-direction:column;gap:10px}
 #view-catalog #catalog-return{width:100%;font-size:15px;min-height:48px}
 #view-catalog .catalog-table-panel{background:transparent;box-shadow:none;border:0;overflow:visible}
 #view-catalog .catalog-table-panel .table-wrap{overflow:visible}
 #view-catalog .catalog-table{display:block;width:100%;min-width:0;border:0}
 #view-catalog .catalog-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #view-catalog .catalog-table tbody{display:block;width:100%}
 #view-catalog .catalog-table tr{display:block;border:1px solid var(--color-divider);border-radius:12px;background:#fff;padding:16px;margin-bottom:14px}
 #view-catalog .catalog-table td{display:block;border:0;width:100%;padding:0;text-align:left;min-width:0;white-space:normal}
 #view-catalog .catalog-table .class-column,#view-catalog .catalog-table .history-column{display:block;margin-top:12px}
 #view-catalog .catalog-table .class-column:before,#view-catalog .catalog-table .history-column:before{content:attr(data-label);display:block;font-size:13px;font-weight:700;color:var(--text-secondary);margin-bottom:5px}
 #view-catalog .catalog-table .catalog-name{font-size:14px;line-height:1.7;white-space:normal;overflow-wrap:anywhere}
 #view-catalog .instrument-title{min-height:44px;font-size:17px;padding:0;text-align:left}
 #view-catalog .catalog-date{font-size:14px;line-height:1.7}
 #view-catalog .catalog-date br{display:none}
 #view-catalog .catalog-table .catalog-add-cell{margin-top:16px}
 #view-catalog .add-catalog{width:100%;min-height:48px;font-size:15px}
 #view-catalog .catalog-pagination{display:flex;flex-wrap:wrap;gap:10px;padding:16px 0}
 #view-catalog .catalog-pagination button{min-width:104px;font-size:14px}
 #view-catalog #catalog-count{font-size:14px;line-height:1.6;flex:1 1 100%}
 #view-results .heading-actions{display:flex;width:100%;gap:10px;flex-wrap:wrap}
 #view-results .heading-actions button{flex:1 1 140px;font-size:14px;min-height:48px}
 #view-results .result-selection{display:flex;flex-wrap:wrap;gap:12px}
 #view-results .result-selection label{flex:1 1 100%;font-size:14px}
 #view-results .result-selection button{flex:1 1 140px;font-size:14px;white-space:normal}
 #view-results .metrics{grid-template-columns:minmax(0,1fr);gap:12px}
 #view-results .metric{padding:19px;min-width:0}
 #view-results .metric>strong{font-size:30px;overflow-wrap:anywhere}
 #view-results .metric>span,#view-results .metric>small{font-size:14px;line-height:1.65}
 #view-results .chart-panel{padding:20px 12px;min-width:0}
 #view-results .chart-head{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 #view-results .chart-head select{width:100%}
 #view-results #chart{width:100%;min-width:0;min-height:0;aspect-ratio:auto;overflow:hidden;margin-top:12px}
 #view-results #chart svg{display:block;width:100%;min-width:0;height:auto;max-height:none;min-height:0;aspect-ratio:auto}
 #view-results .chart-date-control label{font-size:14px;flex-wrap:wrap}
 #view-results #chart-inspect{display:block;font-size:14px;line-height:1.9;min-height:70px;white-space:normal}
 #view-results #chart-caption{font-size:14px;line-height:1.8}
 #view-results .result-more{grid-template-columns:minmax(0,1fr);gap:12px}
 #view-results .result-more>div{padding:16px;min-width:0}
 #view-results .result-more span{font-size:14px;line-height:1.6}
 #view-results .result-more strong{font-size:19px}
 #view-results .comparison-table{padding:20px 16px}
 #view-results .comparison-table .table-wrap{overflow:visible}
 #view-results .comparison-table table,#view-results .comparison-table tbody{display:block;width:100%;min-width:0}
 #view-results .comparison-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #view-results .comparison-table tr{display:block;padding:16px 0;border-top:1px solid var(--color-divider)}
 #view-results .comparison-table td{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border:0;font-size:14px;text-align:right;white-space:normal;overflow-wrap:anywhere}
 #view-results .comparison-table td:before{content:attr(data-label);text-align:left;color:var(--text-secondary);flex:1 0 43%}
 #view-results .comparison-table td:first-child{font-weight:700}
 #view-results .comparison-table td:first-child:before{display:none}
 #view-results .annual table{min-width:0;width:100%;font-size:14px}
 #view-results .annual th,#view-results .annual td{padding:10px 7px;font-size:13px;white-space:normal}
 .instrument-dialog{max-width:calc(100vw - 24px);width:540px;padding:22px 18px;max-height:calc(100dvh - 32px);overflow:auto;border-radius:14px}
 .instrument-dialog :where(button,a){min-height:44px;font-size:14px}
 .instrument-dialog .dialog-close{width:44px;min-width:44px;height:44px;font-size:26px}
 .instrument-dialog .dialog-data{grid-template-columns:minmax(0,1fr)}
 .instrument-dialog .dialog-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 .instrument-dialog #dialog-add{font-size:15px;white-space:normal;line-height:1.6;width:100%}
 .instrument-dialog :where(p,.dialog-data){font-size:14px;line-height:1.75}
}
@media(prefers-reduced-motion:reduce){.chart-date-control *{scroll-behavior:auto}}
