/* the new look: entry area (class-only, .u- prefix).
   The ways into the app: log in / sign up, the investor's waiting screen, and
   the read-only shared view a share code opens. Everything here sits on top of
   qe-ui.css and only uses its --u-* tokens. */

/* ══ log in / sign up: a calm, card-less column, centred on the screen ══ */
.u-entry{ min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center;
          padding:28px var(--u-pad) 32px; background:var(--u-bg); }
.u-entry-col{ width:100%; max-width:420px; min-width:0; }
.u-entry-brand{ display:flex; align-items:center; gap:12px; margin-bottom:34px; }
.u-entry-brand .u-mark{ width:40px; height:40px; border-radius:11px; }
.u-entry-brand .u-mark i{ width:15px; height:15px; background:var(--u-bg); border-radius:3px; }
.u-entry-brand b{ display:block; font-size:20px; font-weight:700; letter-spacing:-.01em; line-height:1.15; }
.u-entry-brand small{ display:block; font-size:13px; font-weight:500; color:var(--u-t3); line-height:1.2; }
.u-entry-title{ margin:0; font-size:34px; font-weight:700; letter-spacing:-.025em; line-height:1.1; }
.u-entry-sub{ margin:8px 0 4px; font-size:16px; color:var(--u-t3); line-height:1.45; }
.u-entry-q{ margin-top:22px; font-size:14px; font-weight:600; color:var(--u-t2); }

/* the sign-up question: two big selectable rows */
.u-entry-kinds{ display:grid; gap:8px; margin-top:8px; }
.u-entry-kind{ display:grid; grid-template-columns:minmax(0,1fr) 22px; align-items:center; gap:14px; width:100%; min-height:64px;
               padding:12px 16px; border:0; border-radius:14px; background:var(--u-raise); color:var(--u-t1); text-align:left; }
.u-entry-kind:hover{ background:var(--u-raise2); }
.u-entry-kind.on{ background:var(--u-green-t); }
.u-entry-kt{ min-width:0; }
.u-entry-kt .t{ display:block; font-size:16px; font-weight:600; }
.u-entry-kind.on .t{ color:var(--u-green); }
.u-entry-kt .s{ display:block; font-size:13.5px; color:var(--u-t3); margin-top:2px; line-height:1.4; }
.u-entry-radio{ width:22px; height:22px; border-radius:50%; border:2px solid var(--u-line2); }
.u-entry-kind.on .u-entry-radio{ border-color:var(--u-green); background:radial-gradient(circle, var(--u-green) 0 4.5px, transparent 5.5px); }

.u-entry .u-field{ margin-top:16px; }
.u-entry-hint{ margin-top:8px; font-size:13px; color:var(--u-t3); }
.u-entry-go{ min-height:52px; margin-top:22px; font-size:17px; border-radius:14px; }
.u-entry-msg{ margin-top:14px; font-size:15px; line-height:1.5; text-align:center; }
.u-entry-msg:empty{ display:none; }
.u-entry-msg.err{ color:var(--u-red); }
.u-entry-msg.ok{ color:var(--u-green); }
.u-entry-msg a{ color:var(--u-green); font-weight:600; }
.u-entry-alt{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0 2px; margin-top:12px;
              font-size:15px; color:var(--u-t3); }
.u-entry-alt .u-btn.ghost{ font-size:15px; }

/* the share-code box: below a hairline, one field and one button */
.u-entry-share{ margin-top:22px; padding-top:20px; border-top:1px solid var(--u-line); }
.u-entry-share .u-entry-q{ margin-top:0; }
.u-entry-code{ display:flex; gap:10px; margin-top:10px; }
.u-entry-code .u-input{ flex:1; min-width:0; text-align:center; text-transform:uppercase; letter-spacing:.16em; font-weight:600; }
.u-entry-code .u-input::placeholder{ letter-spacing:.16em; }
.u-entry-code .u-btn{ flex:none; min-height:48px; padding:0 24px; }
.u-entry-codemsg{ min-height:20px; margin-top:8px; font-size:14px; text-align:center; }

/* privacy · terms · contact, and the one-line disclaimer */
.u-entry-legal{ margin-top:22px; text-align:center; font-size:13px; color:var(--u-t3); line-height:1.5; }
.u-entry-legal p{ margin:2px 0 0; }
.u-entry-legal-l{ display:flex; flex-wrap:wrap; align-items:center; gap:0 2px; }
.u-entry-legal .u-entry-legal-l{ justify-content:center; }
.u-entry-legal-l a{ display:inline-flex; align-items:center; min-height:44px; padding:0 8px; color:var(--u-t2); font-weight:600; }
.u-entry-legal-l a:hover{ color:var(--u-t1); }

/* ══ an investor with no fund yet: the "nothing here yet" hero ══ */
.u-entry-wait{ max-width:620px; }
@media (min-width:1024px){ .u-entry-wait{ padding-top:20px; } }
.u-entry-h{ margin:16px 0 10px; font-size:30px; font-weight:700; letter-spacing:-.02em; line-height:1.15; }
.u-entry-p{ margin:0 0 10px; font-size:16px; color:var(--u-t2); line-height:1.55; }
.u-entry-p b{ color:var(--u-t1); }
.u-entry-acts{ display:grid; gap:10px; margin-top:24px; max-width:420px; }

/* ══ the shared view (a share code): no menu, the same look as the app ══ */
.u-entry-view{ max-width:1180px; min-height:100vh; margin:0 auto; padding:0 0 40px; }
@media (min-width:1024px){ .u-entry-view{ padding:8px 28px 64px; } }
.u-entry-vtop{ display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:68px;
               padding:8px var(--u-pad); border-bottom:1px solid var(--u-line); margin-bottom:14px; }
@media (min-width:1024px){ .u-entry-vtop{ padding:8px 0 14px; margin-bottom:20px; } }
.u-entry-vtop .u-mark i{ background:var(--u-bg); }
.u-entry-vname{ font-size:17px; font-weight:700; }
.u-entry-vsub{ font-size:13px; color:var(--u-t3); }
.u-entry-modes{ margin-bottom:8px; }
.u-source button.u-entry-dead .t{ color:var(--u-t3); }
.u-source button.u-entry-dead.on .t{ color:var(--u-bg); }
.u-source button.u-entry-dead .u-dot{ width:6px; height:6px; opacity:.7; }
.u-entry-vcols.u-cols > .u-aside{ position:static; }
.u-entry-tiers{ display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.u-entry-tiers span{ font-size:13px; font-weight:600; padding:4px 10px; border-radius:999px; background:var(--u-raise); color:var(--u-t3); }
.u-entry-tiers span.on{ background:var(--u-raise2); color:var(--u-t1); }
.u-entry-chartcap{ margin:4px var(--u-pad) 0; font-size:13px; color:var(--u-t3); }
@media (min-width:1024px){ .u-entry-chartcap{ margin:6px 0 0; } }
.u-row.u-entry-cur .t{ color:var(--u-green); }
.u-entry-count{ margin:16px var(--u-pad) 0; font-size:14px; color:var(--u-t3); }
.u-tablewrap.u-entry-tw{ margin-top:12px; }
/* long test and algorithm names stay on one line (the full name is the row's title) */
.u-entry-view .u-row .t{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (min-width:1024px){ .u-entry-count{ margin:16px 0 0; } }
.u-entry-small, .u-entry-vfoot{ font-size:13px; }
.u-entry-b{ font-weight:600; }
/* the masked stock: a hatched blank where a name would be */
.u-entry-mask{ display:inline-block; width:28px; height:9px; margin-right:8px; border-radius:3px; vertical-align:middle; opacity:.5;
               background:repeating-linear-gradient(90deg, var(--u-t3) 0 3px, transparent 3px 6px); }
.u-entry-stock{ color:var(--u-t2); }
/* the log: rows on a phone, the full table on a computer */
.u-entry-wide{ display:none; }
@media (min-width:900px){ .u-entry-wide{ display:block; } .u-entry-narrow{ display:none; } }
.u-entry-xcol{ display:none; }
@media (min-width:700px){ .u-table th.u-entry-xcol, .u-table td.u-entry-xcol{ display:table-cell; } }

/* compare: two tests side by side */
.u-entry-pad{ padding:0 var(--u-pad); }
@media (min-width:1024px){ .u-entry-pad{ padding:0; } }
.u-entry-cmp .u-field{ margin-top:6px; }
.u-entry-cmpcol{ margin-top:22px; min-width:0; }
.u-entry-cmpt{ font-size:16px; font-weight:700; }
.u-entry-cmpv{ margin-top:4px; font-size:30px; font-weight:700; letter-spacing:-.02em; line-height:1.1; }
.u-entry-cmpv.up{ color:var(--u-green); } .u-entry-cmpv.down{ color:var(--u-red); }
.u-chart.u-entry-cmpchart{ height:150px; margin-top:10px; }
@media (min-width:1024px){ .u-chart.u-entry-cmpchart{ height:190px; } }
.u-entry-cmpt2{ table-layout:fixed; }
.u-entry-cmpt2 col.k{ width:40%; }
.u-entry-cmpt2 th{ overflow:hidden; text-overflow:ellipsis; }

.u-entry-vfoot{ padding-top:14px; border-top:1px solid var(--u-line); }
.u-entry-vfoot .u-entry-legal-l{ margin-top:4px; }
.u-entry-vfoot .u-entry-legal-l a:first-child{ padding-left:0; }

/* the four views as a 2×2 grid on a phone, so none hides off the edge */
@media (max-width:699px){
  .u-source.u-entry-modes{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:visible; }
  .u-source.u-entry-modes button{ width:100%; min-width:0; }
  .u-source.u-entry-modes button small{ max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}

.u-entry-vcols .u-aside .u-o5 .u-sec{ margin-top:32px; }
.u-entry-thsub{ display:block; font-size:13px; font-weight:500; overflow:hidden; text-overflow:ellipsis; }
@media (min-width:1024px){ .u-entry-cmpt2{ max-width:820px; } }
.u-entry-wide th:last-child, .u-entry-wide td:last-child{ padding-left:20px; }
