/* app.css — shared with apply.html / portal.html / admin.html / news.html.
   Reuses the color variables defined in styles.css; only adds what the
   marketing site didn't need: forms, tables, status badges, auth cards. */

.app-main{padding:120px 0 90px}
.app-header{max-width:680px;margin-bottom:36px}
.app-header .eyebrow{margin-bottom:10px}
.app-header h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.03em;color:var(--ink)}
.app-header p{color:var(--muted);font-size:16px}

.sandbox-banner{
  background:#fff7e0;border:1px solid #f0d38a;color:#6b4e00;
  border-radius:12px;padding:12px 16px;font-size:14px;margin-bottom:28px;
}
.sandbox-banner strong{color:#4a3600}

.card{
  background:var(--white);border:1px solid var(--line);border-radius:18px;
  padding:28px;box-shadow:var(--shadow);
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.grid-2{grid-template-columns:1fr}}

.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:14px;color:var(--ink);font-weight:600}
.field input,.field select,.field textarea{
  font:inherit;font-weight:500;border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;background:#fbfcfb;color:var(--ink);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--green);outline-offset:1px}
.field small{color:var(--muted);font-weight:400}
.field-error{color:#b3261e;font-size:13px;font-weight:500}

.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:12px}
.checkbox-row input{margin-top:3px}

.stepper{display:flex;gap:8px;margin-bottom:30px;flex-wrap:wrap}
.stepper .step{
  display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;
  background:#eef3f0;color:var(--muted);font-size:13px;font-weight:700;
}
.stepper .step.active{background:var(--green);color:#fff}
.stepper .step.done{background:var(--green-dark);color:#fff}

.btn-secondary{background:#fff;color:var(--green-dark);border:1px solid var(--line)}
.btn-block{width:100%}
.btn-row{display:flex;gap:12px;margin-top:8px}

.alert{border-radius:12px;padding:12px 16px;font-size:14px;margin-bottom:18px}
.alert-error{background:#fdecea;color:#8c2b22;border:1px solid #f3b8b0}
.alert-success{background:#eaf7ee;color:#1e5b34;border:1px solid #b6e2c3}

.status-badge{display:inline-flex;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em}
.status-badge.ok{background:#eaf7ee;color:#1e5b34}
.status-badge.pending{background:#fff7e0;color:#6b4e00}
.status-badge.fail{background:#fdecea;color:#8c2b22}
.status-badge.neutral{background:#eef1f0;color:var(--muted)}

.kv{display:grid;grid-template-columns:180px 1fr;gap:8px 16px;font-size:14px}
.kv dt{color:var(--muted);font-weight:600}
.kv dd{color:var(--ink);font-weight:600;margin:0}

table.app-table{width:100%;border-collapse:collapse;font-size:14px}
table.app-table th{text-align:left;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line)}
table.app-table td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink)}
table.app-table tr:hover td{background:#fafcfb}
.table-wrap{overflow-x:auto}

.auth-shell{max-width:420px;margin:0 auto}
.member-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;
  background:#eef3f0;color:var(--green-dark);padding:3px 9px;border-radius:8px;
}
.muted-note{color:var(--muted);font-size:13px;margin-top:6px}
.tab-row{display:flex;gap:10px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.tab-row button{background:none;border:none;padding:10px 4px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.tab-row button.active{color:var(--green-dark);border-bottom-color:var(--green)}


.opportunity-access{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:center;margin-bottom:22px}
.opportunity-access h2{margin:4px 0 8px}
.opportunity-access p{color:var(--muted)}
.opportunity-access .field{margin-bottom:10px}
.opportunity-access.unlocked{border-color:#7fc994;background:#f6fcf8}
.access-alert{grid-column:1/-1}
.access-alert .alert{margin:0}
.opportunity-disclaimer{background:#f4f7f5;border-left:4px solid var(--green);padding:14px 18px;border-radius:8px;color:var(--muted);font-size:14px;margin-bottom:22px}
.opportunity-list{display:grid;gap:18px}
.opportunity-card h2{font-size:23px;margin:12px 0 8px}
.opportunity-card>p{color:var(--muted);line-height:1.65}
.opportunity-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.opportunity-category{color:var(--green-dark);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.opportunity-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin:18px 0 12px;font-size:13px;font-weight:600;color:var(--muted)}
.opportunity-source{display:inline-block;color:var(--green-dark);font-weight:700;margin-top:4px}
.member-lock{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:18px;padding:12px 14px;background:#fff8e8;border:1px solid #efd79a;border-radius:10px;color:#6b4e00;font-size:13px}
.opportunity-detail{padding-top:16px;margin-top:16px;border-top:1px solid var(--line)}
.opportunity-detail h3{font-size:14px;margin-bottom:5px;color:var(--ink)}
.opportunity-detail p{white-space:pre-line;color:var(--muted);line-height:1.6}
@media(max-width:700px){.opportunity-access{grid-template-columns:1fr}.opportunity-card{padding:22px}.opportunity-topline{align-items:flex-start}}

.digital-member-card{display:grid;grid-template-columns:1.5fr 1fr .7fr;gap:18px;align-items:center;padding:22px;border:1px solid rgba(0,0,0,.12);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(245,247,246,.96));box-shadow:0 10px 30px rgba(0,0,0,.06)}
.digital-member-card>div{display:flex;flex-direction:column;gap:6px}.digital-member-card small{font-size:11px;letter-spacing:.08em;opacity:.65}.digital-member-card strong{font-size:20px}
@media(max-width:680px){.digital-member-card{grid-template-columns:1fr}.digital-member-card>div{padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.08)}.digital-member-card>div:last-child{border-bottom:0}}

/* Phone layout for applications, the portal, market, and policy pages. */
@media(max-width:720px){
  .app-main{padding:34px 0 60px}
  .app-header{margin-bottom:24px}
  .card{padding:20px 16px}
  .btn-row{flex-wrap:wrap}
  .btn-row .btn{flex:1 1 140px}
  .tab-row{flex-wrap:wrap;gap:4px}
  .tab-row button{min-height:44px;text-align:left}
  .field input,.field select,.field textarea{min-width:0;width:100%;font-size:16px}
  .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  table.app-table{min-width:520px}
  .kv{grid-template-columns:minmax(0,1fr);gap:3px}
  .kv dd{margin-bottom:10px;overflow-wrap:anywhere}
  .member-code{overflow-wrap:anywhere}
}

.portal-millionaires{background:linear-gradient(135deg,#eaf6ef,#f8faf8)}
.portal-millionaires p{color:var(--muted)}
.portal-millionaires-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
@media(max-width:720px){.portal-millionaires-actions{flex-direction:column}.portal-millionaires-actions .btn{width:100%;text-align:center;min-height:48px}}
