.asset-company-field { display:grid; gap:6px; }
.asset-field-label { font-size:var(--type-note); font-weight:var(--weight-semibold); }
.asset-field-label small { color:var(--muted); font-size:var(--type-caption); font-weight:var(--weight-medium); }
.asset-company-trigger {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px;
  width:100%; min-height:56px; padding:8px 12px; border:1px solid var(--line);
  border-radius:13px; text-align:left; background:var(--surface); font-weight:var(--weight-semibold);
}
.asset-company-trigger>.icon:last-child { width:var(--icon-small); height:var(--icon-small); color:var(--muted); }
.asset-company-trigger:active,.asset-picker-row:active { background:var(--neutral-soft); }
.asset-company-fallback { display:grid; width:32px; height:32px; place-items:center; border-radius:10px; background:var(--neutral-soft); color:var(--muted); }
.asset-account-suggestions { display:flex; flex-wrap:wrap; gap:4px; margin-top:-6px; }
.asset-account-suggestions button {
  min-height:44px; max-width:100%; padding:5px 10px; border-radius:10px;
  background:var(--neutral-soft); color:var(--text-sub); font-size:var(--type-caption); line-height:1.45;
}
.asset-account-suggestions[hidden],.asset-company-picker [hidden],#modal .sheet-body[hidden] { display:none; }
#modal.choosing-company .sheet-header { justify-content:flex-start; gap:6px; }
#modal.choosing-company .sheet-header>button { order:-1; margin-left:-8px; }
.asset-company-picker {
  display:flex; flex-direction:column; min-height:0;
  height:min(570px,calc(min(92dvh,var(--sheet-viewport,100dvh)) - 70px));
}
.asset-picker-tools { flex:none; display:grid; gap:8px; padding:12px var(--sheet-inset) 6px; }
.asset-picker-search { display:block; margin:0; }
.asset-picker-search input,.asset-picker-custom input {
  display:block; width:100%; min-height:46px; min-width:0; margin:0; padding:10px 12px;
  border:1px solid var(--line); border-radius:12px; background:var(--neutral-soft); font-size:var(--type-body);
}
.asset-picker-groups { display:flex; gap:2px; min-width:0; overflow-x:auto; }
.asset-picker-groups button {
  flex:0 0 auto; min-height:44px; padding:5px 11px; border-radius:10px;
  color:var(--text-sub); font-size:var(--type-note); font-weight:var(--weight-medium);
}
.asset-picker-groups button[aria-pressed=true] { background:var(--primary-soft); color:var(--primary-text); font-weight:var(--weight-bold); }
.asset-picker-scroll { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; scroll-padding:8px; }
.asset-picker-results { padding:8px var(--sheet-inset) 14px; }
.asset-picker-results h3 { margin:14px 0 8px; font-size:var(--type-note); }
.asset-picker-results h3:first-child { margin-top:2px; }
.asset-company-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.asset-picker-row { min-width:0; }
.asset-company-grid .asset-picker-row {
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:6px; min-height:79px; padding:8px 4px; border:1px solid var(--line); border-radius:12px;
  background:var(--surface); line-height:1.35;
}
.asset-saved-list .asset-picker-row[aria-pressed=true],.asset-company-grid .asset-picker-row[aria-pressed=true] { border-color:var(--primary); background:var(--primary-soft); }
.asset-company-grid .asset-picker-row>.icon:last-child { position:absolute; top:5px; right:5px; width:var(--icon-small); height:var(--icon-small); color:var(--accent); }
.asset-picker-row strong { display:block; font-size:var(--type-note); font-weight:var(--weight-semibold); overflow-wrap:anywhere; }
.asset-saved-list { display:grid; gap:2px; }
.asset-saved-list .asset-picker-row {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px;
  min-height:56px; padding:8px 10px; text-align:start; border-radius:10px;
}
.asset-saved-list small { display:block; font-size:var(--type-caption); }
.asset-saved-list .asset-picker-row>.icon:last-child { width:var(--icon-small); height:var(--icon-small); color:var(--accent); }
.asset-picker-empty { padding:24px 0; text-align:center; font-size:var(--type-note); color:var(--text-sub); }
.asset-picker-alternatives {
  flex:none; display:flex; justify-content:space-around; align-items:center; gap:4px;
  padding:3px var(--sheet-inset) calc(3px + env(safe-area-inset-bottom)); border-top:1px solid var(--line);
}
.asset-picker-alternatives button { min-height:44px; padding:6px; font-size:var(--type-caption); font-weight:var(--weight-semibold); color:var(--text-sub); }
.asset-picker-alternatives button[data-custom] { color:var(--primary-text); }
.asset-company-picker.is-custom-entry { height:auto; overflow:auto; }
.asset-picker-custom { display:grid; gap:16px; padding:18px var(--sheet-inset) calc(16px + env(safe-area-inset-bottom)); }
.asset-picker-custom label { display:grid; gap:6px; font-size:var(--type-note); font-weight:var(--weight-semibold); }
.asset-picker-custom>div { display:grid; grid-template-columns:1fr 1.5fr; gap:8px; }
.asset-picker-custom button { min-height:48px; }
@media(max-width:340px) {
  .asset-company-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .asset-picker-groups button { padding-inline:6px; }
}
@media(max-height:310px) {
  .asset-company-picker { height:auto; overflow:auto; }
  .asset-picker-scroll { min-height:140px; }
}
.trade-details,.trade-block,.trade-section { display:grid; min-width:0; gap:12px; }
.trade-details [hidden],.trade-details[hidden],.trade-details .instrument-fields[hidden] { display:none; }
.trade-details small,.trade-block h3 small { color:var(--muted); font-size:var(--type-caption); font-weight:var(--weight-medium); }
.trade-block h3,.trade-section h3,.trade-valuation h3 { margin:0; font-size:var(--type-body); }
.trade-details>.trade-block { padding-top:16px; border-top:1px solid var(--line); margin-top:4px; }
.trade-input-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--field-gap); }
.trade-input-pair input { font-variant-numeric:tabular-nums; }
.trade-unit { display:contents; }
.trade-market-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:3px; border-radius:12px; background:var(--neutral-soft); }
.trade-market-tabs button { min-height:44px; min-width:0; padding:5px 2px; border-radius:9px; color:var(--text-sub); font-size:var(--type-note); }
.trade-market-tabs button[aria-pressed=true] { color:var(--primary-text); background:var(--surface); box-shadow:0 1px 4px #40232e16; font-weight:var(--weight-semibold); }
.trade-selection { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; padding:10px 12px; border:1px solid var(--line); border-radius:12px; }
.trade-selection div { min-width:0; }
.trade-selection strong,.trade-selection small { display:block; overflow-wrap:anywhere; }
.trade-selection button { flex:none; min-height:44px; padding:6px 2px; font-size:var(--type-caption); color:var(--primary-text); }
.trade-date-option>summary { min-height:44px; padding:10px 0; font-size:var(--type-note); cursor:pointer; color:var(--text-sub); }
.trade-date-option>summary span { margin-left:.5em; font-variant-numeric:tabular-nums; }
.trade-input-pair label { display:grid; gap:var(--label-gap); align-content:start; }
.trade-input-pair input { display:block; margin:0; }
.trade-preview,.trade-valuation { display:block; padding:12px 14px; border-radius:12px; color:var(--text-sub); background:var(--neutral-soft); font-size:var(--type-note); font-weight:var(--weight-medium); }
.trade-value-preview { color:var(--asset); background:var(--asset-soft); }
.trade-identity { display:flex; justify-content:space-between; gap:12px; align-items:baseline; color:var(--text-sub); font-size:var(--type-note); }
.trade-identity p { margin:0; }
.trade-identity span { font-size:var(--type-caption); }
.trade-valuation { margin:12px 0 20px; padding:16px; border-radius:var(--radius); background:var(--asset-soft); }
.trade-valuation h3 { color:var(--asset); font-size:var(--type-note); font-weight:var(--weight-semibold); }
.trade-valuation strong { display:block; margin:4px 0; color:var(--text); font-size:var(--type-amount); font-weight:var(--weight-bold); line-height:1.25; letter-spacing:-.035em; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.trade-valuation p { margin:3px 0 0; font-size:var(--type-caption); font-weight:var(--weight-regular); }
.trade-line { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); align-items:baseline; gap:12px; line-height:1.55; color:var(--text-sub); font-size:var(--type-note); }
.trade-line b { color:var(--text); text-align:end; font-weight:var(--weight-semibold); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.trade-buy-preview .trade-line+.trade-line { margin-top:6px; }
.trade-profit { padding-top:12px; }
.trade-history { margin-top:18px; border-block:1px solid var(--line); }
.trade-history summary { padding:12px 0; font-size:var(--type-label); font-weight:var(--weight-semibold); cursor:pointer; }
.trade-history summary span { font-size:var(--type-caption); font-weight:var(--weight-medium); color:var(--muted); }
.trade-history ul { list-style:none; padding:0; margin:0 0 8px; }
.trade-history li { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:6px 0; font-size:var(--type-note); }
.trade-history li div { text-align:right; }
.trade-history small { display:block; font-size:var(--type-caption); color:var(--text-sub); }
.trade-actions { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:8px; margin-top:18px; }
.trade-actions button { min-height:48px; }
.trade-actions button:only-child { grid-column:1/-1; }
.trade-meta-edit { width:100%; margin-top:4px; min-height:44px; }
.trade-history li.fill-row { display:block; padding:12px 0 8px; border-top:1px solid var(--line); }
.fill-row .fill-line { display:flex; gap:10px; align-items:baseline; justify-content:space-between; text-align:start; }
.fill-line + .fill-line { margin-top:4px; }
.fill-line time,.fill-line>span { color:var(--text-sub); font-size:var(--type-caption); }
.fill-line strong { text-align:end; overflow-wrap:anywhere; }
.fill-row.is-cancelled .fill-line { color:var(--text-sub); }
.fill-tools { display:flex; justify-content:flex-end; gap:8px; }
.fill-tools button { min-height:44px; min-width:44px; padding:4px 8px; }
.full-sale { justify-self:end; min-height:44px; font-size:var(--type-note); }
.trade-validation { color:var(--danger); font-size:var(--type-note); }
@media(max-width:340px) { .trade-input-pair { grid-template-columns:1fr; } }
#personal-securities-slot:empty { display:none; }
.personal-heading { margin-bottom:12px; }
.home-securities { padding-bottom:6px; }
.home-securities .cardtop { margin-bottom:4px; }
.home-securities ul { list-style:none; margin:0; padding:0; }
.home-securities li {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:6px 0;
}
.home-securities li+li { border-top:1px solid var(--line); }
.recent-open { min-width:0; min-height:48px; padding:4px 0; text-align:start; }
.recent-open b,.recent-open small { display:block; overflow-wrap:anywhere; }
.recent-open b { color:var(--text); font-size:var(--type-label); line-height:1.45; font-weight:var(--weight-semibold); }
.recent-open b .icon { display:inline; width:var(--icon-small); height:var(--icon-small); color:var(--muted); vertical-align:-1px; }
.recent-type-glyph { display:inline-flex; align-items:center; margin-inline-end:5px; vertical-align:middle; }
.recent-open b .recent-type-glyph .icon { width:var(--icon-base); height:var(--icon-base); color:var(--asset); }
.recent-open small { margin-top:3px; color:var(--text-sub); font-size:var(--type-caption); line-height:1.4; }
.recent-units { display:inline-block; max-width:100%; }
.recent-trades { display:flex; gap:4px; align-items:center; }
.recent-trade { position:relative; isolation:isolate; min-height:44px; min-width:44px; padding:0 8px; font-size:var(--type-caption); font-weight:var(--weight-semibold); white-space:nowrap; }
.recent-trade::before { position:absolute; z-index:-1; content:''; inset:5px 0; border-radius:9px; background:var(--neutral-soft); }
.recent-trade.purchase { color:var(--primary-text); }
.recent-trade.purchase::before { background:var(--primary-soft); }
.recent-trade:active::before { filter:brightness(.95); }
.expense-form .form-fields { gap:18px; }
.expense-amount { gap:4px; }
/* The currency suffix belongs to the amount field. Focus the whole line. */
.sheet-body :is(.expense-currency,.holding-amount-line,.move-amount-line,.repayment-money-line) {
  border-bottom:2px solid var(--amount-rule,var(--line));
}
.sheet-body :is(.expense-currency,.holding-amount-line,.move-amount-line,.repayment-money-line):focus-within {
  border-bottom-color:var(--amount-focus,var(--primary-text));
}
.sheet-body :is(.expense-currency,.holding-amount-line,.move-amount-line,.repayment-money-line) input:focus-visible {
  outline:none;
}
@media(forced-colors:active) {
  .sheet-body :is(.expense-currency,.holding-amount-line,.move-amount-line,.repayment-money-line):focus-within { border-bottom-color:Highlight; }
}
.expense-currency { display:flex; align-items:baseline; gap:6px; }
.sheet-body .expense-currency input[name=amount] {
  flex:1; min-width:0; height:52px; padding:0; border:0; border-radius:0;
  background:transparent; font-size:var(--type-entry-amount); font-weight:var(--weight-bold); line-height:1.25; letter-spacing:-.025em;
  font-variant-numeric:tabular-nums;
}
.expense-currency b { font-size:var(--type-money-unit); }
.expense-groups { min-width:0; margin:0; border:0; padding:0; }
.expense-groups legend { padding:0 0 8px; font-size:var(--type-note); font-weight:var(--weight-semibold); }
.expense-chips { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
.expense-chip { position:relative; display:flex; min-height:44px; align-items:stretch; cursor:pointer; }
.expense-chip[hidden] { display:none; }
.expense-all-categories { display:inline-flex; align-items:center; gap:4px; margin-inline-start:auto; min-height:44px; padding:6px 4px; color:var(--text-sub); font-size:var(--type-caption); font-weight:var(--weight-semibold); }
.expense-all-categories>.icon { width:var(--icon-small); height:var(--icon-small); }
.expense-all-categories[aria-expanded=true]>.icon { transform:rotate(180deg); }
.expense-chip span {
  flex:1; display:grid; place-items:center; text-align:center; padding:3px; line-height:1.2;
  background:var(--neutral-soft); border:1px solid transparent; border-radius:10px;
  color:var(--text-sub); font-size:var(--type-caption); font-weight:var(--weight-medium);
}
.sheet-body .expense-chip input {
  position:absolute; inset:0; width:100%; height:100%; min-height:0; padding:0; margin:0; opacity:0; cursor:pointer;
}
.expense-chip input:checked+span { color:var(--primary-text); background:var(--primary-soft); border-color:currentColor; font-weight:var(--weight-bold); }
.expense-chip input:focus-visible+span { outline:2px solid var(--primary-text); outline-offset:1px; }
.expense-fold { border-top:1px solid var(--line); }
.expense-fold summary { min-height:44px; padding:11px 0; font-size:var(--type-note); font-weight:var(--weight-semibold); cursor:pointer; }
.expense-fold summary small { margin-inline-start:4px; color:var(--text-sub); font-size:var(--type-caption); font-weight:var(--weight-regular); }
.expense-fold>div { display:grid; gap:12px; }
.expense-fold+.expense-fold { margin-top:-12px; }
.expense-fold[open]+.expense-fold { margin-top:0; }
.expense-conditions>div { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:355px){
  .expense-chips { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .expense-conditions>div { grid-template-columns:1fr; }
}
@media(max-width:340px) {
  .home-securities li { gap:6px; }
  .recent-trades { gap:2px; }
  .recent-trade { padding-inline:6px; }
}
