/* Public entry and account forms share the application's Lineca/Switzer identity. */
.public-header { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 5vw; border-bottom:1px solid var(--line); }
.public-brand { color:var(--ink); font:600 25px var(--font-d); text-decoration:none; }
.public-brand span { display:block; color:var(--mute); font:400 11px var(--font-b); margin-top:3px; }
.public-header nav { display:flex; align-items:center; gap:26px; }
.public-header nav>a { text-decoration:none; }
.shell.nosidebar > .maincol { min-width:0; width:100%; padding:0; }
.entry-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:7vw; align-items:center; max-width:1320px; margin:auto; padding:84px 5vw 72px; }
.entry-intro h1 { font:500 clamp(48px,6vw,86px)/1.03 var(--font-d); letter-spacing:-.045em; margin:24px 0; }
.entry-lead { color:var(--mute); font-size:19px; line-height:1.6; max-width:540px; }
.entry-actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:32px; }
.entry-notice { color:var(--mute); font-size:13px; margin-top:22px; max-width:480px; }
.entry-map { background:var(--fog); padding:30px; border-radius:24px; }
.entry-map-owner { padding:25px 0; border-bottom:1px solid var(--line); }
.entry-map-owner>span { display:block; color:var(--blue); font-size:13px; margin-bottom:8px; }
.entry-map-owner strong { font:500 30px var(--font-d); }
.entry-map p { color:var(--mute); font-size:13px; }
.entry-map-paths { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:26px 0; }
.entry-map-paths>div { padding-left:14px; border-left:2px solid var(--blue); }
.entry-map-account { display:flex; flex-direction:column; gap:6px; padding:20px; background:var(--white); border-radius:12px; }
.entry-map-account span { font-size:12px; color:var(--mute); }
.entry-workspace { background:var(--fog); display:grid; grid-template-columns:1fr 1.3fr; gap:7vw; padding:60px max(5vw,calc((100vw - 1188px)/2)); }
.entry-workspace h2 { font:500 clamp(32px,4vw,48px)/1.15 var(--font-d); letter-spacing:-.03em; margin:18px 0; }
.entry-workspace p { color:var(--mute); max-width:370px; line-height:1.65; }
.entry-workspace dl { margin:0; }
.entry-workspace dl>div { padding:20px 0; border-bottom:1px solid var(--line); }
.entry-workspace dt { font-weight:600; margin-bottom:6px; }
.entry-workspace dd { margin:0; color:var(--mute); line-height:1.6; }
.entry-footer { display:flex; gap:12px; flex-wrap:wrap; align-items:center; padding:30px 5vw; font-weight:600; }
.entry-footer span { font-weight:400; color:var(--mute); }
.entry-footer a { margin-left:auto; }
.auth-entry { max-width:480px; margin:64px auto; padding:0 24px; }
.auth-entry h1 { font:500 40px/1.15 var(--font-d); letter-spacing:-.03em; margin:16px 0; }
.auth-entry .form { margin-top:28px; }
.auth-entry .field { display:flex; flex-direction:column; gap:8px; margin:18px 0; }
.auth-entry input:not([type=hidden],[type=checkbox]) { width:100%; padding:12px; border:1px solid var(--line); border-radius:8px; font-size:16px; }
.auth-entry .errorlist { padding-left:18px; color:var(--crit); font-size:13px; }
@media(max-width:700px) { .public-header { padding:18px 20px; } .public-header nav { gap:14px; font-size:13px; } .entry-hero { grid-template-columns:1fr; gap:36px; padding:40px 24px; } .entry-map { padding:24px; } .entry-workspace { grid-template-columns:1fr; gap:20px; padding:38px 24px; } .entry-footer { padding:24px; font-size:12px; } .auth-entry { margin:36px auto; } }

.identity-page { max-width:640px; margin:40px auto; padding:0 24px; }
.identity-page .auth-entry { margin:0 auto; padding:0; }
.identity-page h1 { font:500 36px/1.15 var(--font-d); letter-spacing:-.025em; }

.development-banner { padding:10px 24px; background:#fff4d6; color:#604500; font-size:13px; text-align:center; border-bottom:1px solid #ead69d; }

/* Keep session and security tables readable instead of splitting headers into letters. */
.identity-table th, .identity-table td { padding:10px 14px; text-align:left; }
.identity-table td { min-width:100px; }
.identity-table td:nth-child(3) { min-width:240px; overflow-wrap:anywhere; }

.field > label { font-size:12.5px; font-weight:600; }
.field textarea { width:100%; max-width:100%; min-height:110px; padding:12px; border:1px solid var(--line); border-radius:10px; font:inherit; }

/* Page-by-page visual review: keep identity, account and product layouts readable. */
.side .acct { padding:8px 12px; gap:8px; align-items:center; }
.side .acct-name { padding:0; min-width:0; overflow-wrap:anywhere; }
.side .acct form { flex:none; }
.side .acct button { white-space:nowrap; padding:6px 0; }
@media (min-width:561px) and (max-width:960px) {
  .side .brand { margin-right:auto; }
  .side .sidenav { order:3; flex:1 0 100%; flex-wrap:wrap; overflow:visible; }
}
.notatwork .sub { display:block; margin-top:6px; font-size:13px; }
.position-identity strong, .position-identity .mono { display:block; }
.position-identity .help { margin-top:5px; }
.band:not(:has(*)) { display:none; }
.mast:has(.mast-right:empty) { grid-template-columns:minmax(0,1fr); }
.mast-right:empty { display:none; }
.metric-precision { margin:5px 0; font-size:12px; color:var(--mute); }
.metric-precision summary { cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.metric-precision div { margin-top:6px; overflow-wrap:anywhere; line-height:1.6; }
.notification-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:20px; border-bottom:1px solid var(--line); }
.notification-row.accent { background:color-mix(in srgb, var(--blue) 4%, white); }
.notification-row:last-child { border-bottom:0; }
.notification-content { min-width:0; overflow-wrap:anywhere; }
.notification-content p { margin:10px 0 0; line-height:1.6; }
.notification-meta { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:8px; }
.account-table { width:100%; }
.vesting-progress > i { background:var(--blue); }
.account-table td[data-label="Kind"] { white-space:nowrap; }
@media (min-width:561px) and (max-width:900px) {
  .position-list::after { content:"Scroll horizontally to see all columns"; display:block; position:sticky; left:0; padding:8px 12px; font-size:11px; color:var(--mute); }
  .changelog-list::before { content:"Scroll horizontally to see all columns"; display:block; position:sticky; left:0; padding:8px 12px; font-size:11px; color:var(--mute); }
}
table.data.account-table td { padding:12px 14px; }
.account-actions a, .account-actions button { display:inline-block; white-space:nowrap; margin:4px 12px 4px 0; }
.identity-page form p:has(> input:not([type=checkbox],[type=radio],[type=hidden])) { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.identity-page form p > input:not([type=checkbox],[type=radio],[type=hidden]) { width:100%; font-size:16px; }
.maincol .identity-page button:not([class]) { border-radius:999px; font-size:13px; font-weight:600; margin:4px 4px 4px 0; }
.auth-entry .field { margin:0; }
@media (max-width: 560px) {
  .tabs { flex-wrap:wrap; overflow:visible; gap:0; }
  .tabs a { flex:1 0 45%; justify-content:center; padding:12px 8px; }
  .kv { grid-template-columns:minmax(0,1fr); gap:6px; }
  .kv dd { margin-bottom:12px; }
  .kv dt { white-space:normal; }
  .notification-row { grid-template-columns:minmax(0,1fr); gap:14px; padding:18px; }
  .notification-meta { flex-direction:row; justify-content:space-between; align-items:center; }
  .account-table, .account-table tbody { display:block; }
  .account-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .account-table tr { display:block; margin:12px 0; padding:12px; border:1px solid var(--line); border-radius:12px; }
  table.data.account-table td { display:block; width:auto; height:auto; padding:6px 0; border:0; text-align:left; }
  .account-table td[data-label]::before { content:attr(data-label); display:block; margin-bottom:4px; font:600 11px var(--font-b); color:var(--mute); text-transform:uppercase; letter-spacing:.06em; }
  .account-table .account-actions { line-height:2; }
  .account-table .mono { overflow-wrap:anywhere; }
  .identity-page { padding:0; margin:18px auto; }
  .shell.nosidebar .identity-page { padding:0 24px; }
  .sheet:has(> table.data:not(.invoice-table,.account-table))::after { content:"Scroll horizontally to see all columns"; display:block; position:sticky; left:0; padding:8px 12px; font-size:11px; color:var(--mute); }
  .invoice-table, .invoice-table > tbody { display:block; width:100%; }
  .invoice-table > thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .invoice-table > tbody > tr:not([hidden]) { display:block; padding:12px; border-bottom:1px solid var(--line); }
  .invoice-table > tbody > tr > td { display:block; height:auto; padding:8px 0; text-align:left; white-space:normal; border:0; }
  .invoice-table > tbody > tr > td[data-label]::before { content:attr(data-label); display:block; margin-bottom:4px; font:600 11px var(--font-b); color:var(--mute); text-transform:uppercase; }
  .invoice-table table { width:100%; min-width:0; }
  .invoice-table table th, .invoice-table table td { padding:8px 4px; white-space:normal; }
}

/* Account security shares the same controls and rhythm as product forms. */
.skip-link { position:fixed; left:16px; top:-100px; z-index:100; padding:12px 20px; background:var(--ink); color:white; border-radius:8px; }
.skip-link:focus { top:12px; }
.sidenav a[aria-current="page"] { color:var(--ink); background:var(--white); box-shadow:inset 0 0 0 1px var(--line); }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.identity-page h1 { margin:0 0 24px; }
.identity-page h2 { font:500 24px/1.2 var(--font-d); letter-spacing:-.02em; margin:0 0 12px; }
.identity-page p { line-height:1.65; }
.identity-page > h2 { margin-top:32px; }
.security-panel { padding:24px; margin:16px 0; border:1px solid var(--line); border-radius:16px; }
.security-panel p { color:var(--mute); margin:0 0 16px; }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:20px 0 8px; }
.identity-page .identity-action { min-height:44px; text-transform:none; letter-spacing:0; font-size:13px; }
.btn.danger { background:var(--white); color:#ae2626; border:1px solid #dca6a6; }
.btn.danger:hover { background:#fff3f3; }
.identity-badge { display:inline-block; padding:2px 7px; margin:3px 0 3px 5px; border:1px solid var(--line); border-radius:5px; font-size:11px; font-weight:600; color:var(--mute); vertical-align:middle; }
.identity-badge.verified { color:#166534; background:#f0fdf4; border-color:#bbdfc5; }
.identity-form > p:has(input[type=radio]) { padding:14px; border:1px solid var(--line); border-radius:10px; display:flex; align-items:flex-start; gap:8px; }
.identity-form > p:has(input[type=radio]) input { flex:none; margin-top:6px; }
.identity-form > p:has(input[type=radio]) label { overflow-wrap:anywhere; min-width:0; }
.identity-page textarea { max-width:100%; width:100%; padding:16px; border:1px solid var(--line); border-radius:10px; font:15px/1.7 var(--font-m); background:var(--fog); }
.identity-page .errorlist { color:#ae2626; border:1px solid var(--line); border-radius:8px; padding:10px 12px 10px 28px; background:#fff5f5; font-size:13px; }
.identity-page form { margin-bottom:24px; }
.identity-page label { font-size:13px; font-weight:600; }
.identity-page img, .identity-page svg { max-width:100%; height:auto; }
@media (max-width: 560px) {
  .security-panel { padding:20px; }
  .identity-page h1 { font-size:32px; }
  .identity-page .form-actions { gap:10px; }
}
.error-page { max-width:660px; padding:72px 24px; margin:0 auto; }
.error-page h1 { margin:18px 0; }
.error-description { color:var(--mute); line-height:1.7; margin:0; }
@media (max-width: 560px) { .error-page { padding:48px 24px; } }
.identity-back { padding-top:20px; margin-top:28px; border-top:1px solid var(--line); font-size:13px; }
.channel-table td { overflow-wrap:anywhere; }
.channel-table .help { display:block; margin-top:6px; max-width:340px; }
.preference-choice { display:flex; align-items:center; justify-content:center; min-height:44px; cursor:pointer; }
.preference-choice input { width:18px; height:18px; accent-color:var(--blue); }
.preference-choice span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media (max-width: 560px) {
  .table-scroll > .channel-table, .table-scroll > .notification-preferences { min-width:0; }
  .notification-preferences, .notification-preferences tbody { display:block; }
  .notification-preferences thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .notification-preferences tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:12px 0; border-bottom:1px solid var(--line); }
  table.data.notification-preferences td { display:block; padding:0; height:auto; border:0; }
  .notification-preferences td:first-child { grid-column:1/-1; font-weight:600; padding-bottom:6px; }
  .preference-choice { flex-direction:column; gap:6px; padding:8px 2px; font-size:11px; }
  .preference-choice span { position:static; width:auto; height:auto; overflow:visible; clip-path:none; }
}

@media (max-width:560px) {
  .sheet > table.data.position-table { min-width:0; }
  .position-table tr { margin:12px; }
  .position-table .position-identity { min-width:0; }
  .position-table .position-identity .mono { white-space:normal; overflow-wrap:anywhere; }
}
.session-table td { overflow-wrap:anywhere; }
@media (max-width:560px) { .identity-page .session-table { min-width:0; } }
/* Status is readable as text as well as color, including small mobile labels. */
.pill.good { color:#087b35; }
.pill.warning { color:#8a5b00; }
.pill.critical { color:#b3261e; }
.sheet-head .mono { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.break { overflow-wrap:anywhere; }
.mast h1, .mast p { overflow-wrap:anywhere; }
.field { min-width:0; }
/* WebKit otherwise includes the native option text in document scroll overflow, even
   when the select's own bounding box fits. The native option menu remains available. */
.field select { max-width:100%; min-width:0; overflow:hidden; text-overflow:ellipsis; }

/* Wallet transaction hashes must fit narrow review screens. */
#joinStatus, .transaction-status { overflow-wrap:anywhere; }

.channel-table .account-actions form { display:flex; flex-wrap:wrap; gap:8px 16px; }
.channel-table .account-actions button { min-height:44px; }

.invitation-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.account-actions .invitation-actions a, .account-actions .invitation-actions button { margin:0; min-height:44px; display:inline-flex; align-items:center; }

.session-table td:last-child { white-space:nowrap; overflow-wrap:normal; }

/* Keep desktop account controls within the viewport below the development notice. */
@media (min-width: 961px) {
  .side { overflow-y:auto; scroll-padding-block:8px; }
  .side > :not(.side-spacer) { flex-shrink:0; }
  .development-banner + .shell { min-height:calc(100dvh - var(--development-banner-height, 0px)); }
  .development-banner + .shell .side { height:calc(100dvh - var(--development-banner-height, 0px)); overflow-y:auto; }
}


/* Desktop tables share a stable grid; numeric headings follow their values. */
table.data th.r { text-align:right; }
.addr-line { overflow-wrap:anywhere; }
.sidenav .pill { margin-left:auto; min-width:20px; padding:2px 6px; border-radius:10px; background:var(--white); color:var(--blue); text-align:center; font:600 11px var(--font-b); }
.mast-left > .help, .mast-left > .notatwork { margin-block:4px; }
.mast-left > .notatwork { margin-top:12px; }
.mast + .board { margin-top:22px; }
@media (min-width:561px) {
  .position-table { table-layout:auto; min-width:900px; }
  table.data.position-table th { white-space:normal; line-height:1.45; padding:12px 14px; }
  .position-table .account-actions .btn { padding-inline:12px; }
  .position-table th:first-child { width:45%; }
  .position-table th:nth-child(2) { width:15%; }
  .position-table th:nth-child(3) { width:12%; }
  .position-table th:nth-child(4) { width:18%; }
  .position-table th:nth-child(5) { width:10%; }
  .position-table .position-identity { overflow-wrap:anywhere; }
  .position-table .account-actions a { margin:0; }
  .position-table .position-identity .mono { font-size:11px; white-space:normal; }
  .position-table .position-identity .help { margin:4px 0 0; }
}

/* Portfolio overview: balances, account tools, then comparable position rows. */
.view { max-width:1400px; }
.dashboard-subtitle { margin:8px 0 0; color:var(--mute); }
.balance-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:24px; margin-top:12px; background:var(--fog); border:1px solid var(--line); border-radius:12px; }
.balance-overview > div > span { display:block; color:var(--mute); font-size:12px; margin-bottom:8px; }
.balance-overview strong { font:500 26px/1.2 var(--font-d); letter-spacing:-.025em; }
.balance-overview small { font:500 12px var(--font-b); letter-spacing:0; color:var(--mute); }
.workspace-tools { display:flex; align-items:flex-start; flex-wrap:wrap; gap:12px 24px; padding:8px 0 0; font-size:12px; }
.workspace-tools a, .history-link { color:var(--mute); text-underline-offset:3px; }
.workspace-tools a:hover, .history-link:hover { color:var(--blue); }
.wallet-disclosure summary, .address-disclosure summary, .position-history summary { cursor:pointer; }
.wallet-disclosure > div { padding:10px 0; }
.wallet-disclosure p { margin:6px 0; }
.wallet-disclosure .mono { display:block; overflow-wrap:anywhere; font-size:11px; }
.position-table .column-unit { display:block; margin-top:3px; font:400 11px var(--font-b); text-transform:none; letter-spacing:0; }
.position-table .position-identity > strong { font-size:14px; margin-bottom:5px; }
.address-disclosure { font:400 11px var(--font-m); color:var(--mute); }
.address-disclosure > span { margin-top:6px; overflow-wrap:anywhere; }
.position-table .account-actions .btn { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:8px 16px; line-height:1; }
table.data.position-table td { padding-block:20px; }
.position-table th.r, .position-table td.r { padding-right:20px; }
.position-table .position-identity .help { font-size:11px; color:var(--mute); }
.history-link { margin-left:auto; font-size:12px; }
.position-history > summary { font:600 15px var(--font-b); }
.position-history > summary > span { margin-left:8px; font-size:12px; color:var(--mute); }
.position-history[open] > summary { margin-bottom:20px; }
@media (max-width:560px) {
  .balance-overview { grid-template-columns:1fr; gap:16px; padding:18px; }
  .balance-overview > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .balance-overview > div > span { margin-bottom:0; }
  .balance-overview strong { font-size:22px; white-space:nowrap; }
  .workspace-tools { gap:12px 18px; }
  table.data.position-table td { padding-block:8px; }
  .position-table th.r, .position-table td.r { padding-right:0; }
}


/* Restore the prototype's persistent account and wallet controls in the sidebar. */
.side .sidebar-account { padding:0; gap:0; display:block; }
.sidebar-account details { width:100%; }
.sidebar-account summary { list-style:none; cursor:pointer; }
.sidebar-account summary::-webkit-details-marker { display:none; }
.side .sidebar-account .acct-name { padding:12px; display:flex; gap:12px; align-items:center; }
.sidebar-account .acct-name > span:first-child { min-width:0; overflow-wrap:anywhere; }
.sidebar-account-menu nav { display:flex; flex-direction:column; gap:4px; padding:0 12px 12px; font-size:12px; }
.sidebar-account-menu nav a { color:var(--mute); padding:6px 0; }
.sidebar-account-menu form { margin:0; }
.sidebar-wallets { border-top:1px solid var(--line); }
.sidebar-wallets > summary { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:12px; }
.sidebar-wallets strong { display:block; font-size:12px; }
.sidebar-wallets small { display:block; font-size:10px; color:var(--mute); margin-top:4px; }
.sidebar-wallet-list { max-height:300px; overflow-y:auto; border-top:1px solid var(--line-soft); }
.sidebar-wallet-list > a, .sidebar-wallet-list > p { display:block; padding:12px; margin:0; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line-soft); }
.sidebar-wallet-list > a:hover { background:var(--fog); }
.sidebar-wallet-list .mono { display:block; font-size:10px; overflow-wrap:anywhere; margin-top:4px; }
.sidebar-wallet-list .sidebar-wallet-manage { font-size:11px; color:var(--blue); }
@media (max-width:960px) { .side .sidebar-account { min-width:200px; max-width:100%; } }

/* Native disclosures retain the prototype's menu/reveal motion. */
details[open] > :not(summary) { animation:m-rise var(--t) var(--ease) both; }
.sidebar-account summary { transition:background var(--t) var(--ease); }
.sidebar-account summary:hover { background:var(--fog); }
.btn { justify-content:center; }
.view:has(.vesting-progress) .bstats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media (max-width:560px) {
  .view:has(.vesting-progress) .bstats { grid-template-columns:1fr; gap:18px; }
}

.view.enter .bar-row .fill { transform-origin:left; animation:m-fillx 600ms var(--ease) both; }

/* UX audit: shared navigation, deliberate form measure, compact mobile shell. */
.tabs { flex-wrap:nowrap; overflow-x:auto; }
.tabs a { flex:0 0 auto; white-space:nowrap; }
.account-navigation { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0 24px; border-bottom:1px solid var(--line); }
.account-navigation a { color:var(--mute); text-decoration:none; padding:10px 14px; }
.account-navigation a[aria-current] { color:var(--ink); border-bottom:2px solid var(--ink); }
.sheet.pad:has(> .form) { max-width:640px; }
.form { max-width:560px; }
.form > .btn { justify-self:start; min-width:160px; }
.mobile-account-toggle { display:none; }
.sidebar-account[hidden] { display:none; }
.reward-chart { margin:0 0 16px; }
.reward-chart figcaption { font-weight:600; margin-bottom:14px; }
.reward-chart figcaption .help { margin-left:12px; }
.reward-chart-row { display:grid; grid-template-columns:85px minmax(40px,1fr) 140px; gap:16px; align-items:center; padding:5px 0; font-size:12px; }
.reward-chart-row .num { text-align:right; }
.reward-chart .track { height:8px; background:var(--fog); border-radius:4px; }
.reward-chart .fill { height:100%; background:var(--blue); border-radius:4px; }
.reward-chart .fill.loss { background:var(--crit); }
@media (max-width:960px) {
  .mobile-account-toggle { display:block; justify-self:start; min-height:36px; }
  .side { gap:8px; padding-block:12px; }
}
@media (max-width:560px) {
  .position-table tbody tr { display:grid; grid-template-columns:1fr 1fr; gap:8px 16px; }
  .position-table tbody td:first-child { grid-column:1 / -1; }
  .position-table tbody td { min-width:0; }
  .reward-chart-row { grid-template-columns:65px minmax(30px,1fr) 115px; gap:8px; }
  .tabs a { width:auto; }
}

@media (max-width:560px) { .position-table tbody td::before { white-space:normal; line-height:1.5; } }
