.appraisal-page {
  min-height:100vh;
}
.appraisal-main {
  max-width:1016px;
  padding:30px 28px 24px;
  margin:auto;
}
.appraisal-heading p {
  color:var(--muted);
  margin-top:10px;
  font-size:16px;
}
.appraisal-mode {
  margin:18px 0 14px;
  color:var(--warning);
  font-size:13px;
}
.appraisal-panel {
  padding:24px;
  border:1px solid var(--line);
  background:var(--panel);
  border-radius:var(--radius);
}
.appraisal-panel label {
  display:block;
  font-weight:550;
  font-size:13px;
  margin-bottom:9px;
}
.appraisal-panel label span {
  color:var(--muted);
  font-weight:400;
}
.appraisal-panel textarea,.appraisal-panel input,.appraisal-panel select {
  width:100%;
  border:1px solid #39454b;
  border-radius:6px;
  background:#0e1417;
  color:var(--text);
  padding:11px 12px;
  font:inherit;
  min-height:44px;
}
.appraisal-panel textarea {
  display:block;
  resize:vertical;
  min-height:150px;
  font-family:Consolas,"SFMono-Regular",monospace;
  font-size:13px;
  line-height:1.7;
  tab-size:3;
}
.appraisal-panel textarea:focus-visible,.appraisal-table-scroll:focus-visible {
  outline:2px solid var(--teal);
  outline-offset:3px;
}
.appraisal-panel input::placeholder,.appraisal-panel textarea::placeholder {
  color:#84929a;
  opacity:1;
}
.appraisal-help {
  color:var(--muted);
  font-size:12px;
  margin-top:10px;
}
.appraisal-controls {
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  align-items:start;
  margin-top:18px;
}
.appraisal-actions {
  display:flex;
  align-items:center;
  gap:10px;
  padding-top:28px;
}
.appraisal-actions button {
  min-height:44px;
  padding:10px 20px;
  border-radius:6px;
  font-weight:600;
}
.appraisal-primary {
  background:var(--teal);
  color:#0c201b;
  border:1px solid var(--teal);
}
.appraisal-primary:hover {
  background:#a2e4d7;
}
.appraisal-clear {
  background:transparent;
  color:var(--muted);
  border:1px solid transparent;
}
.appraisal-clear:hover {
  color:var(--text);
}
.appraisal-status {
  margin-top:16px;
  color:var(--muted);
}
.appraisal-status:empty {
  display:none;
}
.appraisal-error {
  margin-top:16px;
  color:var(--red);
}
.appraisal-results {
  margin-top:24px;
}
.appraisal-result-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.appraisal-result-heading h2 {
  font-size:23px;
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
}
.appraisal-result-heading span {
  color:var(--muted);
}
.appraisal-result-heading .appraisal-example-label {
  color:var(--warning);
  border:1px solid var(--line);
  border-radius:4px;
  padding:3px 7px;
  font-size:12px;
  font-weight:500;
  line-height:1.4;
}
.appraisal-coverage {
  color:var(--muted);
  margin:10px 0 18px;
}
.appraisal-skipped {
  color:var(--muted);
  font-size:13px;
  margin:-12px 0 18px;
}
.appraisal-skipped summary {
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
  width:max-content;
  max-width:100%;
}
.appraisal-skipped ul {
  margin:8px 0 0;
  padding-left:18px;
  overflow-wrap:anywhere;
}
.appraisal-paste-limit {
  color:var(--warning);
  font-size:13px;
  margin-top:8px;
}
.appraisal-values {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.appraisal-value {
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--panel);
}
.appraisal-value h3 {
  font-size:13px;
  font-weight:550;
  color:var(--muted);
}
.appraisal-value:first-child .appraisal-amount {
  color:var(--teal);
}
.appraisal-value:nth-child(2) .appraisal-amount {
  color:var(--purple);
}
.appraisal-amount {
  font-size:clamp(21px,3.2vw,31px);
  font-weight:550;
  margin:10px 0 6px;
  overflow-wrap:anywhere;
  letter-spacing:-.5px;
  font-variant-numeric:tabular-nums;
}
.appraisal-value>p:not(.appraisal-amount) {
  color:var(--muted);
  font-size:12px;
  margin-bottom:6px;
}
.appraisal-value>p.appraisal-price-state {
  color:var(--text);
  font-size:14px;
  font-weight:600;
  margin-top:14px;
}
.appraisal-value>p.appraisal-value-warning {
  color:var(--warning);
}
.appraisal-value .appraisal-no-bids {
  font-size:18px;
  letter-spacing:0;
}
.appraisal-value small {
  color:var(--muted);
  font-size:12px;
  display:block;
}
.appraisal-discount {
  margin-top:16px;
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--panel);
}
.appraisal-discount-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.appraisal-discount h3 {
  font-size:16px;
  font-weight:550;
}
.appraisal-discount label {
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-bottom:6px;
}
.appraisal-discount input {
  width:112px;
  min-height:44px;
  padding:10px 12px;
  background:#0e1417;
  color:var(--text);
  border:1px solid #39454b;
  border-radius:6px;
  font:inherit;
}
.appraisal-discount-breakdown {
  margin-top:18px;
  font-size:13px;
  color:var(--muted);
}
.appraisal-discount-breakdown>div {
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:8px;
}
.appraisal-discount dd {
  margin:0;
  text-align:right;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
  min-width:0;
}
.appraisal-adjusted-label {
  margin-top:18px;
  font-weight:550;
}
.appraisal-discount .appraisal-amount {
  color:var(--teal);
}
.appraisal-discount .appraisal-value-warning {
  font-size:12px;
  color:var(--warning);
}
.appraisal-discount #discount-example {
  color:var(--warning);
}
.appraisal-notices {
  padding-left:18px;
  color:var(--warning);
  font-size:12px;
}
.appraisal-notices:empty {
  display:none;
}
.appraisal-notices li+li {
  margin-top:5px;
}
.appraisal-table-scroll {
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:8px;
  margin-top:20px;
}
.appraisal-table-hint {
  display:none;
}
@media(max-width:760px) {
  .appraisal-table-hint {
    display:block;
  }
  .appraisal-table-hint + .appraisal-table-scroll {
    margin-top:10px;
  }
}
.appraisal-table {
  width:100%;
  min-width:690px;
  border-collapse:collapse;
  font-size:13px;
}
.appraisal-table th {
  background:var(--panel);
  color:var(--muted);
  text-align:left;
  font-size:11px;
  font-weight:550;
}
.appraisal-table th,.appraisal-table td {
  padding:14px 16px;
  vertical-align:top;
  border-bottom:1px solid var(--line-soft);
}
.appraisal-table tr:last-child td {
  border-bottom:0;
}
.appraisal-table th:not(:first-child),.appraisal-table td:not(:first-child) {
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.appraisal-table td:first-child {
  min-width:260px;
  max-width:420px;
  overflow-wrap:anywhere;
}
.appraisal-table td>small {
  display:block;
  color:var(--warning);
  margin-top:5px;
  line-height:1.6;
}
.appraisal-about {
  margin-top:16px;
  color:var(--muted);
  font-size:12px;
}
.appraisal-about summary {
  min-height:44px;
  display:flex;
  align-items:center;
  cursor:pointer;
}
.appraisal-about summary::before {
  content:'＋';
  margin-right:8px;
}
.appraisal-about[open] summary::before {
  content:'−';
}
.appraisal-about p {
  margin:0 0 10px;
}
.appraisal-footer {
  display:flex;
  justify-content:space-between;
  gap:16px;
  color:var(--faint);
  font-size:11px;
  margin-top:36px;
  padding-top:20px;
  border-top:1px solid var(--line-soft);
}
.appraisal-sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
[hidden] {
  display:none!important;
}
@media(max-width:720px) {
  .appraisal-main {
    padding:30px 16px 20px;
  }
  .appraisal-panel {
    padding:18px;
  }
  .appraisal-controls {
    grid-template-columns:1fr;
    gap:18px;
  }
  .appraisal-actions {
    padding-top:0;
  }
  .appraisal-primary {
    flex:1;
  }
  .appraisal-values {
    grid-template-columns:1fr;
  }
  .appraisal-table {
    table-layout:fixed;
    min-width:660px;
  }
  .appraisal-table th:first-child,.appraisal-table td:first-child {
    width:240px;
    min-width:240px;
    max-width:240px;
  }
  .appraisal-footer {
    flex-direction:column;
    gap:6px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  button {
    transition:none;
  }
}

/* Sharing remains a small opt-in action, with an accessible native dialog. */
.appraisal-result-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.appraisal-result-actions button, #share-fallback button, #share-consent button { min-height:44px; padding:10px 14px; border:1px solid var(--line); border-radius:6px; font:inherit; cursor:pointer; }
#share-status:empty { display:none; }
#share-fallback { margin:12px 0; }
#share-fallback label { display:block; margin-bottom:6px; }
#share-url { display:block; width:100%; min-height:44px; margin-bottom:8px; padding:10px; background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:6px; font:inherit; }
#share-consent { width:min(540px, calc(100% - 32px)); max-height:calc(100vh - 32px); margin:auto; padding:24px; background:var(--panel); color:var(--text); border:1px solid var(--line); border-radius:var(--radius); }
#share-consent::backdrop { background:#000a; }
#share-consent h2 { font-size:22px; }
#share-consent p { margin:16px 0; line-height:1.6; }
#share-consent .appraisal-actions { justify-content:flex-end; flex-wrap:wrap; }
#share-authenticity, .appraisal-authenticity { border-left:2px solid var(--purple); padding-left:14px; line-height:1.6; }
.appraisal-authenticity { margin-bottom:20px; }
#shared-test { margin:12px 0; }
.appraisal-footer p { margin-bottom:12px; }
@media (max-width:420px) {
  .appraisal-result-heading { align-items:flex-start; gap:8px; }
  .appraisal-result-heading h2 { font-size:21px; }
  .appraisal-result-actions { gap:6px; }
  #share-consent { padding:18px; }
}
/* A result past its deadline stays exactly as shown (like the Market, PR #47):
   one muted line says newer prices are available, with a quiet Update prices. */
.appraisal-outdated-note {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:4px 12px;
  margin:10px 0 2px;
}
.appraisal-outdated-note p {
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}
.appraisal-outdated-note button {
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:3px;
}
.appraisal-page .masthead-meta a,.appraisal-footer a {
  color:var(--muted);
}
.appraisal-footer a:hover,.appraisal-page .masthead-meta a:hover {
  color:var(--text);
}

/* "Paint it Black" (docs/PAINT_IT_BLACK.md): the palette comes from assets/obsidian.css
   (html[data-theme="black"]); these are the Appraisal's own fixed colours. Red stays for
   warnings; buy (light grey) and sell (white) keep their headings. */
:where(html[data-theme="black"]) .appraisal-panel textarea,:where(html[data-theme="black"]) .appraisal-panel input,
:where(html[data-theme="black"]) .appraisal-panel select,:where(html[data-theme="black"]) .appraisal-discount input{border-color:#3a3a3a;background:#0c0c0c}
:where(html[data-theme="black"]) .appraisal-panel input::placeholder,:where(html[data-theme="black"]) .appraisal-panel textarea::placeholder{color:#8a8a8a}
:where(html[data-theme="black"]) .appraisal-primary{color:#0a0a0a}
:where(html[data-theme="black"]) .appraisal-primary:hover{background:#fff}
:where(html[data-theme="black"]) #share-consent::backdrop{background:#000c}
/* "Newer prices are available": muted in colour, red-tinted here like every other notice. */
:where(html[data-theme="black"]) .appraisal-outdated-note p{color:var(--warning)}
:where(html[data-theme="black"]) .appraisal-mode,:where(html[data-theme="black"]) .appraisal-result-heading .appraisal-example-label{font-weight:600}
