.owner-evidence {
  margin: 24px 28px 0;
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #f8fafb;
}

.owner-evidence > header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
  margin-bottom: 16px;
}

.owner-evidence header small {
  color: var(--orange-text);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
}

.owner-evidence h3 {
  margin: 6px 0 0;
  font: 400 26px/1.2 Georgia, serif;
}

.owner-evidence > header > b {
  padding: 5px 12px;
  border-radius: 99px;
  color: var(--green);
  background: #e4f3ed;
  font-size: 13px;
  letter-spacing: .04em;
  white-space: nowrap;
}

.owner-evidence__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
  gap: 12px;
}

.owner-evidence__grid:empty { display: none; }

.owner-evidence__card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  background: #fff;
  text-decoration: none;
}

.owner-evidence__card--image { display: block; }
.owner-evidence__card--image > img {
  display: block;
  width: 100%;
  height: 150px;
  object-fit: cover;
  background: #e9edf0;
}
.owner-evidence__card--image .owner-evidence__copy { padding: 12px 14px; }
.owner-evidence__card--file {
  display: flex;
  min-height: 100px;
  align-items: center;
  gap: 14px;
  padding: 14px;
}
.owner-evidence__mark {
  display: grid;
  flex: 0 0 56px;
  height: 62px;
  place-items: center;
  border-radius: 8px;
  color: #fff;
  background: var(--ink);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .04em;
}
.owner-evidence__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.owner-evidence__copy b {
  display: -webkit-box;
  overflow: hidden;
  font-size: 15px;
  line-height: 1.35;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.owner-evidence__copy small {
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
}
.owner-evidence__card[href]:hover,
.owner-evidence__card[href]:focus-visible {
  border-color: var(--orange);
  box-shadow: 0 8px 22px #12223812;
}
.owner-evidence__card--unavailable { opacity: .62; }
.owner-evidence__card--unavailable .owner-evidence__mark { background: #8c97a3; }
.owner-evidence__status {
  margin: 14px 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}
.owner-evidence__grid:empty + .owner-evidence__status { margin-top: 0; }

.attachment-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 12px;
  align-items: end;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.attachment-form label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 8px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
}
/* The native file input stays in place (keyboard, screen readers and the e2e tests use it). Its own box is
   dropped and its button looks like the idea form's "Choose files" secondary button; the chosen file names
   (or "No file chosen") follow it as plain text. The input is only as wide as that content, so its focus ring
   wraps the button and the file names. */
.attachment-form input[type="file"] {
  width: auto;
  max-width: 100%;
  min-width: 0;
  align-self: flex-start;
  min-height: 48px;
  padding: 4px 0;
  border: 0;
  border-radius: 10px;
  color: var(--ink);
  background: transparent;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  cursor: pointer;
}
.attachment-form input[type="file"]::file-selector-button {
  min-height: 40px;
  margin-right: 14px;
  padding: 0 16px;
  border: 1px solid #122238;
  border-radius: 10px;
  color: #122238;
  background: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.attachment-form input[type="file"]:hover::file-selector-button { background: #eef2f4; }
.attachment-form input[type="file"]:disabled { cursor: progress; }
.attachment-form input[type="file"]:disabled::file-selector-button { opacity: .55; cursor: progress; }

.attachment-form button {
  min-height: 48px;
  padding: 0 20px;
  border: 0;
  border-radius: 10px;
  color: #fff;
  background: var(--ink);
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}
.attachment-form button:disabled { opacity: .55; }
.attachment-form .form-message,
.attachment-form > small { grid-column: 1 / -1; }
.attachment-form .form-message { font-size: 14px; }
.attachment-form > small { color: var(--muted); font-size: 14px; line-height: 1.45; }

@media (max-width: 720px) {
  .attachment-form input[type="file"] { padding: 2px 0; }
  .attachment-form input[type="file"]::file-selector-button { min-height: 44px; }
}

@media (max-width: 620px) {
  .owner-evidence { margin: 18px 16px 0; padding: 16px; }
  .owner-evidence h3 { font-size: 24px; }
  .attachment-form { grid-template-columns: 1fr; }
  .attachment-form button { width: 100%; }
}

.idea-card__disclosure > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px;
  gap: 16px 20px;
  align-items: center;
  padding: 20px 24px;
  cursor: pointer;
  list-style: none;
}

.idea-card__disclosure > summary::-webkit-details-marker { display: none; }
.idea-card__disclosure > summary:hover { background: #fbfcfd; }
/* The card clips its children to its rounded corners (overflow: hidden), so the summary's ring sits just inside
   the card edge instead of 2px outside it. Same 3px bright orange as every other control. */
main .idea-card__disclosure > summary:focus-visible { outline: 3px solid var(--orange); outline-offset: -4px; border-radius: 17px; }
main .idea-card__disclosure[open] > summary:focus-visible { border-radius: 17px 17px 0 0; }
.owner-summary__definition { display: flex; min-width: 0; align-items: flex-start; flex-direction: column; gap: 6px; }
/* Reference · status line: neutral, so it never contradicts the coloured STATUS tile (GO green, NO-GO red, ...). */
.owner-summary__definition > small { color: #4f5b6b; font-size: 13px; font-weight: 800; letter-spacing: .04em; line-height: 1.3; text-transform: uppercase; }
.owner-summary__definition > small > span { display: inline-block; }
.owner-summary__definition > b { font: 400 24px/1.2 Georgia, serif; text-wrap: balance; }
.owner-summary__definition > strong { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: 15px; font-weight: 500; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.owner-summary__finance { display: grid; grid-column: 1 / -1; grid-row: 2; grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.3fr); gap: 10px; }
.owner-summary__finance > span { display: flex; min-width: 0; min-height: 84px; justify-content: space-between; flex-direction: column; gap: 6px; padding: 12px 14px; border-radius: 12px; background: #eef2f4; }
.owner-summary__finance small { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; line-height: 1.3; }
.owner-summary__finance b { overflow-wrap: break-word; font: 700 21px/1.2 var(--sans); font-variant-numeric: tabular-nums; }
.owner-summary__finance > .owner-summary__status b { font: 800 16px/1.25 Geist, "Segoe UI", Aptos, sans-serif; letter-spacing: .02em; }
/* Same hues as the status chips on every page (admin.css .status-pill): approved, rejected, hold, neutral. */
.owner-summary__finance > .owner-summary__status.go { background: #e8f3ee; }
.owner-summary__finance > .owner-summary__status.go small, .owner-summary__finance > .owner-summary__status.go b { color: #2f6f58; }
.owner-summary__finance > .owner-summary__status.stop { background: #fde6e4; }
.owner-summary__finance > .owner-summary__status.stop small, .owner-summary__finance > .owner-summary__status.stop b { color: #9b3934; }
/* Every gate still in evaluation: neutral blue-grey. HOLD: amber. */
.owner-summary__finance > .owner-summary__status.evaluation { background: #e3eaf2; }
.owner-summary__finance > .owner-summary__status.evaluation small, .owner-summary__finance > .owner-summary__status.evaluation b { color: #2b3d55; }
.owner-summary__finance > .owner-summary__status.hold { background: #fff5d9; }
.owner-summary__finance > .owner-summary__status.hold small, .owner-summary__finance > .owner-summary__status.hold b { color: #8a5f12; }
/* Information Required: the evaluator waits for the owner's answer (tone "action" from my-ideas.js). */
.owner-summary__finance > .owner-summary__status.action { background: var(--orange-fill); }
.owner-summary__finance > .owner-summary__status.action small, .owner-summary__finance > .owner-summary__status.action b { color: #fff; }
/* The ⌄ glyph sits low and small in most fonts: hide it and draw the chevron with borders instead. */
.idea-card__disclosure > summary > i { position: relative; display: block; width: 40px; height: 40px; overflow: hidden; border: 1px solid #f6c3b1; border-radius: 50%; color: transparent; background: #fff; font-size: 16px; font-style: normal; line-height: 40px; text-align: center; transition: transform .18s ease; }
.idea-card__disclosure > summary > i::before { position: absolute; top: calc(50% - 7px); left: calc(50% - 5px); width: 10px; height: 10px; border-right: 2.5px solid var(--orange); border-bottom: 2.5px solid var(--orange); transform: rotate(45deg); content: ""; }
.idea-card__disclosure > summary:hover > i { border-color: var(--orange); }
.idea-card__disclosure[open] > summary { border-bottom: 1px solid var(--line); background: #fbfcfd; }
.idea-card__disclosure[open] > summary > i { transform: rotate(180deg); }

@media (max-width: 900px) {
  .owner-summary__finance { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .owner-summary__finance > .owner-summary__status { grid-column: 1 / -1; min-height: 52px; align-items: center; justify-content: space-between; flex-direction: row; flex-wrap: wrap; }
}

@media (max-width: 720px) {
  .owner-summary__finance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .owner-summary__finance > span { min-height: 80px; }
}

@media (max-width: 620px) {
  .idea-card__disclosure > summary { padding: 18px 16px; }
  .owner-summary__definition > b { font-size: 22px; }
}
