/* Skynet page styles, built on the Workshark tokens and component sheet. */

html { height: 100%; }
body {
  margin: 0;
  min-height: 100%;
  background: var(--bg-primary);
  background-image:
    radial-gradient(circle at 15% 50%, rgba(59, 130, 246, 0.15), transparent 25%),
    radial-gradient(circle at 85% 30%, rgba(139, 92, 246, 0.15), transparent 25%);
  background-attachment: fixed;
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { text-wrap: balance; }
h4 { margin: 0; font-size: 1rem; font-weight: 600; }
:focus-visible { outline: 2px solid var(--accent-primary); outline-offset: 2px; }
button, input, select, textarea { font-family: inherit; }
a.btn, .btn { text-decoration: none; white-space: nowrap; }
.btn:disabled, .btn-icon:disabled { opacity: 0.55; cursor: not-allowed; transform: none !important; }
.btn-sm { padding: var(--space-2) var(--space-4); font-size: 0.8125rem; }
.btn svg { flex-shrink: 0; }

/* ----- text utilities ----- */
.text-secondary { color: var(--text-secondary); }
.text-primary { color: var(--text-primary); }
.compact { font-size: 0.85rem; }
.small { font-size: 0.8rem; }
.mono { font-family: var(--font-mono); font-size: 0.85rem; }
.wrap { white-space: pre-wrap; word-break: break-word; }
.pos { color: var(--success-text); }
.neg { color: var(--danger-text); }
.section-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: var(--text-secondary); margin-bottom: var(--space-3); }
.empty { color: var(--text-secondary); text-align: center; padding: var(--space-8) var(--space-4); }
.sub { display: block; font-size: 0.8rem; color: var(--text-secondary); margin-top: 2px; }

/* ----- layout helpers ----- */
.stack { display: flex; flex-direction: column; gap: var(--space-6); }
.stack-sm { display: flex; flex-direction: column; gap: var(--space-4); }
.inline-row { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.inline-row.between { justify-content: space-between; }
.inline-row .form-input { flex: 1 1 160px; }
.card-title { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-bottom: var(--space-4); }
.card-title h3 { color: var(--text-primary); }
.card-foot { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); margin-top: var(--space-4); }
.template-card p { font-size: 0.9rem; }
.templates { margin-bottom: var(--space-8); }
.grid-main { align-items: start; }
.header p { margin-top: var(--space-1); }
.header .view-toggle { flex-shrink: 0; }
.view-toggle a.toggle-btn { text-decoration: none; }

/* ----- sidebar extras ----- */
.sidebar-logo { text-decoration: none; }
.sidebar-user { display: flex; flex-direction: column; padding: 0 var(--space-4) var(--space-3); }
.sidebar-user-name { font-weight: 600; font-size: 0.9rem; }
.sidebar-user-meta { font-size: 0.75rem; color: var(--text-secondary); }
.sidebar-footer form { margin: 0; }
.nav-item svg { width: 20px; height: 20px; }
.topbar { display: none; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--glass-border); background: var(--bg-glass); backdrop-filter: blur(var(--blur-glass)); -webkit-backdrop-filter: blur(var(--blur-glass)); position: sticky; top: 0; z-index: 40; }
.topbar-brand { display: flex; align-items: center; gap: var(--space-2); font-weight: 700; text-decoration: none; color: var(--text-primary); }
.topbar-brand svg { color: var(--accent-primary); }
.topbar-menu:hover { color: var(--text-primary); background: var(--white-10); }
.sidebar-scrim { display: none; position: fixed; inset: 0; background: var(--overlay-scrim); z-index: 45; }

/* ----- tables ----- */
.data-table { font-size: 0.85rem; }
.data-table th { white-space: nowrap; }
.data-table td { vertical-align: top; }
.table-card .data-table { margin: 0 calc(-1 * var(--space-6)); width: calc(100% + 2 * var(--space-6)); }
.table-card .data-table th:first-child, .table-card .data-table td:first-child { padding-left: var(--space-6); }
.table-card .data-table th:last-child, .table-card .data-table td:last-child { padding-right: var(--space-6); }
.table-card .card-title + .data-table { margin-top: 0; }
.table-card .data-table:last-child { margin-bottom: calc(-1 * var(--space-6)); }
.row-link { cursor: pointer; }
.cell-link { color: var(--text-primary); font-weight: 500; }
.cell-link:hover { color: var(--primary-text); }
.badge.neutral { font-size: 0.75rem; }
td .btn-sm { white-space: nowrap; }
time { white-space: nowrap; }

/* ----- lists ----- */
.list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.list li { border-bottom: 1px solid var(--white-5); }
.list li:last-child { border-bottom: none; }
.list a, .list .list-row { display: flex; flex-direction: column; gap: 2px; padding: var(--space-3) 0; color: inherit; }
.list a:hover .list-title { color: var(--primary-text); }
.list-title { font-weight: 500; font-size: 0.9rem; }
.list-meta { font-size: 0.8rem; color: var(--text-secondary); }
.activity { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.activity-item { display: flex; gap: var(--space-3); align-items: flex-start; }
.activity-dot { width: 8px; height: 8px; border-radius: var(--radius-circle); background: var(--accent-primary); margin-top: 7px; flex-shrink: 0; }
.activity-item.warning .activity-dot { background: var(--accent-warning); }
.activity-item.danger .activity-dot { background: var(--accent-danger); }
.activity-msg { font-size: 0.875rem; }
.activity-msg a { color: inherit; }
.activity-msg a:hover { color: var(--primary-text); }
.activity-time { font-size: 0.75rem; color: var(--text-secondary); }

/* ----- forms ----- */
.form-input.mono { font-family: var(--font-mono); font-size: 0.9rem; }
.compact-input { font-size: 0.85rem; padding: 0.45rem 0.6rem; background: var(--input-bg-strong); }
.check { display: inline-flex; align-items: center; gap: var(--space-2); font-size: 0.875rem; color: var(--text-secondary); cursor: pointer; }
.check input { accent-color: var(--accent-primary); width: 16px; height: 16px; }
.error-banner { display: flex; align-items: center; gap: var(--space-3); }
.error-banner a { color: inherit; text-decoration: underline; }
.error-banner svg { flex-shrink: 0; }
.compact-banner { margin-bottom: 0; font-size: 0.9rem; color: var(--danger-text); }
.facts { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-2) var(--space-4); margin: 0 0 var(--space-4); font-size: 0.875rem; }
.facts dt { color: var(--text-secondary); }
.facts dd { margin: 0; min-width: 0; }
.code-well { background: var(--input-bg); border: 1px solid var(--glass-border); border-radius: var(--radius-sm); padding: var(--space-3) var(--space-4); font-family: var(--font-mono); font-size: 0.8rem; line-height: 1.5; color: var(--text-light); white-space: pre-wrap; word-break: break-word; margin: 0; max-height: 420px; overflow: auto; }
.summary-text { white-space: pre-wrap; font-size: 0.9rem; line-height: 1.6; }
details.doc { font-size: 0.8rem; color: var(--text-secondary); }
details.doc summary { cursor: pointer; }
details.doc pre { margin: var(--space-2) 0 0; }

/* ----- modal ----- */
.modal-content { max-height: calc(100vh - 2 * var(--space-6)); overflow: auto; }
.modal-content.wide { max-width: 720px; }
.modal-body .error-banner { margin-bottom: 0; }
.modal-footer .spacer { flex: 1; }
.modal-footer { flex-wrap: wrap; }
textarea.form-input.tall { min-height: 220px; font-family: var(--font-mono); font-size: 0.82rem; }

/* ----- toasts ----- */
#toast-root { position: fixed; top: var(--space-4); right: var(--space-4); z-index: var(--z-notification); display: flex; flex-direction: column; gap: var(--space-2); max-width: min(380px, calc(100vw - 2 * var(--space-4))); }
.toast { background: var(--bg-glass); backdrop-filter: blur(var(--blur-glass)); -webkit-backdrop-filter: blur(var(--blur-glass)); border: 1px solid var(--glass-border); border-left: 4px solid var(--accent-primary); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); font-size: 0.875rem; box-shadow: var(--shadow-notification); color: var(--text-primary); }
.toast.success { border-left-color: var(--accent-success); }
.toast.danger { border-left-color: var(--accent-danger); }

/* ----- login ----- */
.login-body { display: flex; align-items: center; justify-content: center; padding: var(--space-6) var(--space-4); }
.login-wrap { width: 100%; max-width: 400px; display: flex; flex-direction: column; gap: var(--space-4); }
.login-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: var(--space-8) var(--space-6); }
.login-card:hover { transform: none; box-shadow: none; border-color: var(--glass-border); }
.login-mark { color: var(--accent-primary); margin-bottom: var(--space-3); display: flex; }
.login-card h2 { margin-bottom: var(--space-1); }
.login-card p { margin-bottom: var(--space-6); }
.login-error { width: 100%; background: var(--danger-tint); color: var(--accent-danger); padding: var(--space-3); border-radius: var(--radius-md); font-size: 0.875rem; text-align: center; margin-bottom: var(--space-4); }
.login-form { width: 100%; display: flex; flex-direction: column; gap: var(--space-4); }
.login-submit { width: 100%; }
.login-foot { text-align: center; font-size: 0.8rem; }

/* ----- run log ----- */
.log-card { min-width: 0; }
.log { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); max-height: 75vh; overflow: auto; padding-right: var(--space-1); }
.log-item { border: 1px solid var(--white-5); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); background: var(--white-2); }
.log-item.type-error { border-color: var(--danger-border); background: var(--danger-tint); }
.log-item.type-text { border-color: var(--primary-border); background: var(--primary-tint); }
.log-item.type-info { background: transparent; }
.log-head { display: flex; align-items: center; gap: var(--space-2); font-size: 0.85rem; }
.log-head svg { color: var(--text-secondary); flex-shrink: 0; }
.type-error .log-head svg { color: var(--accent-danger); }
.type-text .log-head svg { color: var(--accent-primary); }
.type-tool_result .log-head svg { color: var(--accent-success); }
.log-title { font-weight: 600; }
.log-time { margin-left: auto; font-size: 0.75rem; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.log-body { margin-top: var(--space-2); font-size: 0.85rem; white-space: pre-wrap; word-break: break-word; line-height: 1.5; color: var(--text-light); }
.log-body.code { font-family: var(--font-mono); font-size: 0.78rem; color: var(--text-light); }
.log-body.clipped { max-height: 9.5em; overflow: hidden; position: relative; }
.log-body.clipped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2.5em; background: linear-gradient(transparent, var(--bg-secondary)); }
.log-more { background: none; border: none; color: var(--primary-text); font: inherit; font-size: 0.8rem; cursor: pointer; padding: var(--space-1) 0 0; }
.log-shot { display: block; margin-top: var(--space-3); max-width: 100%; border-radius: var(--radius-sm); border: 1px solid var(--glass-border); background: var(--thumb-bg); }
.shots { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: var(--space-2); }
.shots img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; border-radius: var(--radius-sm); border: 1px solid var(--glass-border); background: var(--thumb-bg); display: block; }
.result { border-top: 1px solid var(--white-5); padding-top: var(--space-4); margin-top: var(--space-4); }
.result:first-child { border-top: none; padding-top: 0; margin-top: 0; }
.result-body { margin: var(--space-2) 0 0; white-space: pre-wrap; word-break: break-word; font-family: inherit; font-size: 0.85rem; line-height: 1.6; color: var(--text-light); max-height: 480px; overflow: auto; }

/* Grid columns must not grow with long unbreakable content (URLs in the side panel squeezed the browser view) */
.grid-main { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
@media (max-width: 1024px) { .grid-main { grid-template-columns: minmax(0, 1fr); } }
.grid-main > * { min-width: 0; }
.list-title, .list-meta, .link-list .href, .browser-meta a { overflow-wrap: anywhere; word-break: break-word; }
.browser-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.profile-list li { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); padding: var(--space-2) 0; border-bottom: 1px solid var(--white-5); }
.profile-list li:last-child { border-bottom: none; }
.profile-list .list-meta { display: block; }

.tunnel-card .card-title { align-items: center; }
.tunnel-card .t-ip-inline { font-weight: 500; }

/* ----- chrome page ----- */
.chrome-card { min-width: 0; }
.chrome-view { position: relative; aspect-ratio: 16 / 10; background: var(--thumb-bg); border: 1px solid var(--glass-border); border-radius: var(--radius-md); overflow: hidden; }
.chrome-view iframe { display: block; width: 100%; height: 100%; border: 0; background: #000; }
.chrome-meta { margin-top: var(--space-3); }
.chrome-quality { display: inline-flex; align-items: center; gap: var(--space-2); }
.chrome-quality .form-input { width: auto; min-width: 8rem; }

/* ----- browser page ----- */
.browser-card { min-width: 0; }
.browser-bar { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; margin-bottom: var(--space-4); }
.session-select { flex: 0 1 190px; min-width: 120px; }
.browser-url { display: flex; gap: var(--space-2); flex: 1 1 260px; margin: 0; }
.browser-url .form-input { flex: 1; font-family: var(--font-mono); }
.browser-view { position: relative; background: var(--thumb-bg); border: 1px solid var(--glass-border); border-radius: var(--radius-md); min-height: 240px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.browser-view img { display: block; width: 100%; height: auto; }
.browser-view canvas { display: block; width: 100%; height: auto; cursor: default; outline: none; user-select: none; touch-action: none; }
.browser-view canvas:focus { box-shadow: inset 0 0 0 2px var(--accent-primary); }
.live-hint { position: absolute; right: 8px; bottom: 8px; z-index: 3; font-size: 0.75rem; padding: 2px 10px; border-radius: 999px; background: rgba(15, 23, 42, 0.75); color: var(--text-primary); pointer-events: none; }
.browser-empty { color: var(--text-secondary); font-size: 0.9rem; padding: var(--space-8); text-align: center; }
.browser-busy { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: var(--space-2); background: rgba(15, 23, 42, 0.6); color: var(--text-primary); font-size: 0.9rem; z-index: 2; }
.browser-busy svg { color: var(--accent-primary); }
.browser-meta { display: flex; flex-direction: column; gap: 2px; margin: var(--space-3) 0 var(--space-4); font-size: 0.85rem; min-height: 1.2em; }
.browser-meta #page-title { font-weight: 500; }
.browser-meta a { color: var(--text-secondary); word-break: break-all; }
.browser-meta a:hover { color: var(--primary-text); }
.browser-text { max-height: 360px; margin-top: var(--space-3); }
.link-list { list-style: none; margin: var(--space-3) 0 0; padding: 0; max-height: 360px; overflow: auto; border: 1px solid var(--glass-border); border-radius: var(--radius-sm); background: var(--input-bg); }
.link-list li { border-bottom: 1px solid var(--white-5); }
.link-list li:last-child { border-bottom: none; }
.link-list button { width: 100%; text-align: left; background: none; border: none; color: var(--text-primary); padding: var(--space-2) var(--space-3); font: inherit; font-size: 0.82rem; cursor: pointer; display: flex; flex-direction: column; gap: 1px; }
.link-list button:hover { background: var(--white-5); }
.link-list .href { color: var(--text-secondary); font-family: var(--font-mono); font-size: 0.72rem; word-break: break-all; }
.spin { animation: spin 1s linear infinite; }

/* ----- responsive ----- */
@media (max-width: 1024px) {
  .facts { grid-template-columns: 1fr; gap: var(--space-1); }
  .facts dt { margin-top: var(--space-2); }
}
@media (max-width: 900px) {
  .sidebar { transform: translateX(-100%); transition: transform 0.25s ease; }
  .sidebar.open { transform: none; }
  .sidebar-scrim.open { display: block; }
  .main-content { margin-left: 0; }
  .topbar { display: flex; }
  .container { padding: var(--space-4); }
  h1 { font-size: 1.75rem; }
  .header { flex-direction: column; align-items: flex-start; gap: var(--space-4); }
  .header-actions { flex-wrap: wrap; }
  .grid-dashboard { grid-template-columns: 1fr; }
  .glass-card { padding: var(--space-4); }
  .table-card .data-table { margin: 0 calc(-1 * var(--space-4)); width: calc(100% + 2 * var(--space-4)); }
  .table-card .data-table th:first-child, .table-card .data-table td:first-child { padding-left: var(--space-4); }
  .table-card .data-table th:last-child, .table-card .data-table td:last-child { padding-right: var(--space-4); }
  .table-card .data-table:last-child { margin-bottom: calc(-1 * var(--space-4)); }
  .modal-overlay { padding: var(--space-4); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .delay-1, .delay-2, .delay-3 { opacity: 1; }
}

/* ----- modal form extras ----- */
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
textarea.form-input.tall-sm { min-height: 110px; }
@media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } }

/* The hidden attribute must win over component display rules. */
[hidden] { display: none !important; }

/* ----- VPN page ----- */
.mono-value { font-family: var(--font-mono); font-size: 1.6rem; }
.plain-list { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: var(--space-2); font-size: 0.875rem; color: var(--text-secondary); line-height: 1.5; }
.plain-list strong { color: var(--text-primary); font-weight: 600; }

/* ----- bot rows and parallel results ----- */
.row-actions { display: inline-flex; align-items: center; gap: var(--space-1); }
.row-actions .btn-icon:hover { color: var(--text-primary); background: var(--white-10); }
.row-actions .btn-icon[data-action="delete-bot"]:hover, .row-actions .btn-icon[data-action="delete-agent"]:hover, .row-actions .btn-icon[data-action="delete-prompt"]:hover, .row-actions .btn-icon[data-action="delete-profile"]:hover, .row-actions .btn-icon[data-action="delete-endpoint"]:hover { color: var(--accent-danger); background: var(--danger-tint); }
.table-scroll { overflow-x: auto; }
.items-table { font-size: 0.8rem; }
.items-table td { vertical-align: top; }

/* ----- Logical Anatomy ----- */
.la-panel { position: relative; overflow: hidden; background: var(--bg-glass); backdrop-filter: blur(var(--blur-glass)); -webkit-backdrop-filter: blur(var(--blur-glass)); border: 1px solid var(--glass-border); border-radius: var(--radius-lg); padding: var(--space-6); animation: laRise 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.la-panel::before { content: ''; position: absolute; inset: -40% 40% auto -20%; height: 320px; background: radial-gradient(closest-side, rgba(59, 130, 246, 0.16), transparent); pointer-events: none; }
.la-panel > * { position: relative; }
.la-stage-head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); }
.la-stage-head .section-label { margin-bottom: 0; }
.la-specimen { position: relative; overflow: hidden; margin: 0; padding: var(--space-4) var(--space-6); font-size: 1.15rem; line-height: 2; color: var(--text-primary); background: var(--input-bg); border: 1px solid var(--white-8); border-radius: var(--radius-md); }
.la-word { display: inline-block; padding: 0 3px; margin: 0 -1px; border-radius: 5px; border-bottom: 1px solid transparent; transition: background 0.25s, color 0.25s, box-shadow 0.25s, transform 0.25s, border-color 0.25s; }
.la-word.is-target { border-bottom-color: var(--primary-border); cursor: help; }
.la-word.hit { background: var(--primary-tint-strong); color: #fff; border-bottom-color: transparent; box-shadow: 0 0 0 1px var(--primary-border), 0 0 18px rgba(59, 130, 246, 0.45); transform: translateY(-1px); }
.la-specimen.scanning { border-color: var(--primary-border); }
.la-specimen.scanning::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.16), rgba(139, 92, 246, 0.3), transparent); transform: translateX(-110%); animation: laSweep 1.9s cubic-bezier(0.4, 0, 0.2, 1) infinite; pointer-events: none; }
.la-specimen.scanning .la-word { animation: laWord 1.9s ease-in-out infinite; animation-delay: calc(var(--w, 0) * 70ms); }
.la-progress { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-4); color: var(--text-secondary); font-size: 0.9rem; }
.la-error { margin-top: var(--space-4); }
.la-raw { margin-top: var(--space-3); font-size: 0.8rem; color: var(--text-secondary); }
.la-raw summary { cursor: pointer; }
.la-raw pre { margin-top: var(--space-2); padding: var(--space-3); max-height: 260px; overflow: auto; white-space: pre-wrap; word-break: break-word; font-family: var(--font-mono); font-size: 0.78rem; background: var(--input-bg); border-radius: var(--radius-sm); }
.la-results-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-4); margin-top: var(--space-6); }
.la-count-wrap { display: flex; align-items: baseline; gap: var(--space-2); }
.la-count { font-size: 2.4rem; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.la-count-label { color: var(--text-secondary); font-size: 0.95rem; }
.la-tree { position: relative; list-style: none; margin: var(--space-4) 0 0; padding: 0 0 0 30px; display: flex; flex-direction: column; gap: var(--space-3); }
.la-tree::before { content: ''; position: absolute; left: 9px; top: 8px; bottom: 8px; width: 2px; border-radius: 2px; background: linear-gradient(180deg, var(--accent-primary), var(--accent-secondary)); opacity: 0.75; transform-origin: top; animation: laTrunk 1s cubic-bezier(0.4, 0, 0.2, 1) both; }
.la-claim { position: relative; display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-3) var(--space-4); background: var(--white-5); border: 1px solid var(--white-8); border-radius: var(--radius-md); opacity: 0; animation: laIn 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; animation-delay: calc(var(--i, 0) * 85ms + 250ms); transition: transform 0.2s, border-color 0.2s, background 0.2s, box-shadow 0.2s; }
.la-claim.shown { opacity: 1; animation: none; }  /* released from the entrance animation so hover can move it */
.la-claim::before { content: ''; position: absolute; left: -26px; top: 17px; width: 10px; height: 10px; border-radius: 50%; background: var(--bg-primary); border: 2px solid var(--accent-primary); box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.14); transition: background 0.2s, transform 0.2s; }
.la-claim::after { content: ''; position: absolute; left: -15px; top: 22px; width: 15px; height: 2px; background: var(--primary-border); }
/* only the innermost label under the pointer reacts: its ancestors hold still, or a whole branch would slide */
.la-claim:hover:not(:has(.la-claim:hover)), .la-claim.hit { transform: translateX(4px); background: var(--primary-tint); border-color: var(--primary-border); box-shadow: 0 8px 26px rgba(2, 6, 23, 0.4); }
.la-claim:hover:not(:has(.la-claim:hover))::before, .la-claim.hit::before { background: var(--accent-primary); transform: scale(1.2); }
.la-claim[data-kind="inference"] { border-left: 3px solid var(--purple); }
.la-claim[data-kind="inference"]::before { border-color: var(--purple); box-shadow: 0 0 0 4px rgba(168, 85, 247, 0.16); }
.la-claim.shown.asking { border-color: var(--primary-border); background-image: linear-gradient(100deg, transparent 30%, rgba(59, 130, 246, 0.14) 50%, transparent 70%); background-size: 220% 100%; animation: laShimmer 1.7s linear infinite; }
.la-claim.shown.fresh { animation: laFlash 1.6s ease-out; }
.la-tree.settled::before { animation: none; }
.la-num { min-width: 1.5rem; padding-top: 2px; font-size: 0.75rem; font-weight: 700; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.la-body { flex: 1; min-width: 0; }
.la-line { display: flex; align-items: flex-start; gap: var(--space-3); }
.la-text { flex: 1; min-width: 0; line-height: 1.55; color: var(--text-primary); }
.la-text b { font-weight: 600; color: var(--primary-text); }
.la-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }
.la-kind { padding: 2px 10px; border-radius: var(--radius-pill); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.3px; white-space: nowrap; background: rgba(59, 130, 246, 0.12); color: var(--primary-text); border: 1px solid rgba(59, 130, 246, 0.25); }
.la-kind[data-kind="inference"] { background: rgba(168, 85, 247, 0.14); color: var(--purple-light); border-color: rgba(168, 85, 247, 0.35); }
.la-kind[data-kind="observer"], .la-kind[data-kind="perception"] { background: rgba(56, 189, 248, 0.12); color: var(--accent-info); border-color: var(--info-border); }
.la-kind[data-kind="appearance"] { background: var(--warning-tint); color: var(--warning-light); border-color: var(--warning-border); }
.la-kind[data-kind="action"] { background: var(--success-tint); color: var(--success-text); border-color: var(--success-border); }
.la-open { display: inline-flex; align-items: center; gap: 6px; font-size: 0.65rem; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--text-secondary); white-space: nowrap; }
.la-open::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-warning); animation: laBreathe 2.4s ease-in-out infinite; animation-delay: calc(var(--i, 0) * 120ms); }
.la-open[data-status="asking"] { color: var(--accent-info); }
.la-open[data-status="asking"]::before { background: var(--accent-info); animation-duration: 0.9s; animation-delay: 0s; }
.la-open[data-status="proven"] { color: var(--success-text); }
.la-open[data-status="proven"]::before { background: var(--accent-success); animation: none; }
.la-open[data-status="not_proven"] { color: var(--warning-light); }
.la-open[data-status="not_proven"]::before { animation: none; }
.la-open[data-status="unprovable"] { color: var(--purple-light); }
.la-open[data-status="unprovable"]::before { background: var(--purple); animation: none; }
.la-open[data-status="disproven"] { color: var(--danger-text); }
.la-open[data-status="disproven"]::before { background: var(--accent-danger); animation: none; }
.la-open[data-status="answered"] { color: var(--primary-text); }
.la-open[data-status="answered"]::before { background: var(--accent-primary); animation: none; }
.la-open.pop { animation: laPop 0.55s cubic-bezier(0.2, 0.8, 0.2, 1); }
.la-tools { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-2); }
.la-tools .spacer { flex: 1; }
.la-tools .btn-sm { padding: 4px 10px; font-size: 0.75rem; gap: 5px; }
.la-tools .btn-icon { opacity: 0.45; transition: opacity 0.2s, color 0.2s, background 0.2s; }
.la-claim:hover .la-tools .btn-icon, .la-tools .btn-icon:focus-visible { opacity: 1; }
.la-tools .la-delete:hover { color: var(--accent-danger); background: var(--danger-tint); }
.la-toggle { padding: 2px 4px; border: none; background: none; color: var(--primary-text); font-size: 0.78rem; white-space: nowrap; cursor: pointer; }
.la-toggle:hover { text-decoration: underline; }
.la-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.45s cubic-bezier(0.2, 0.8, 0.2, 1); }
.la-answer-inner { min-height: 0; overflow: hidden; }
.la-answer-text { margin-top: var(--space-3); padding: var(--space-3) var(--space-4); border-left: 3px solid var(--primary-border); border-radius: var(--radius-sm); background: var(--input-bg); color: var(--text-primary); font-size: 0.875rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.la-answer-text.failed { border-left-color: var(--accent-danger); color: var(--danger-text); }
.la-answer-foot { margin-top: 6px; font-size: 0.72rem; color: var(--text-secondary); }
.la-answer-text { position: relative; overflow: hidden; }
.la-answer-text .la-word { padding: 0 1px; margin: 0 -1px; }
.la-answer-text.scanning { border-left-color: var(--accent-secondary); }
.la-answer-text.scanning::after { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.16), rgba(139, 92, 246, 0.3), transparent); transform: translateX(-110%); animation: laSweep 1.9s cubic-bezier(0.4, 0, 0.2, 1) infinite; pointer-events: none; }
.la-answer-text.scanning .la-word { animation: laWord 1.9s ease-in-out infinite; animation-delay: calc(var(--w, 0) * 50ms); }
.la-answer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-top: var(--space-2); }
.la-answer-actions .btn-sm { padding: 4px 10px; font-size: 0.75rem; gap: 5px; }
.la-extract-note { font-size: 0.75rem; color: var(--text-secondary); }
.la-extract-note.failed { color: var(--danger-text); }
/* the claims found inside an answer: the same tree, one step in, shown while the answer is unfolded */
.la-claim:not(.open) > .la-body > .la-answer { grid-template-rows: 0fr; }
.la-claim.open > .la-body > .la-answer { grid-template-rows: 1fr; }
.la-claim:not(.open) > .la-body > .la-sub { display: none; }
.la-sub { margin-top: var(--space-3); padding-left: 24px; gap: var(--space-2); }
.la-sub:empty { display: none; }
.la-sub::before { left: 7px; animation: none; }
.la-sub.grow::before { animation: laTrunk 0.9s cubic-bezier(0.4, 0, 0.2, 1) both; }
.la-sub > .la-claim { padding: var(--space-2) var(--space-3); background: var(--white-2); }
.la-sub > .la-claim::before { left: -22px; top: 13px; width: 8px; height: 8px; }
.la-sub > .la-claim::after { left: -13px; top: 17px; width: 13px; }
.la-sub .la-num { min-width: 0; font-size: 0.7rem; }
.la-sub .la-text { font-size: 0.92rem; }
.la-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); }
.la-read { margin: var(--space-2) 0 0; font-size: 0.85rem; color: var(--text-secondary); }
.la-tally { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-top: var(--space-3); font-size: 0.8rem; color: var(--text-secondary); }
.la-tally-item { display: inline-flex; align-items: center; gap: 6px; color: var(--text-primary); }
.la-tally-item::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--accent-warning); }
.la-tally-item[data-status="asking"]::before { background: var(--accent-info); animation: laBreathe 0.9s ease-in-out infinite; }
.la-tally-item[data-status="proven"]::before { background: var(--accent-success); }
.la-tally-item[data-status="unprovable"]::before { background: var(--purple); }
.la-tally-item[data-status="disproven"]::before { background: var(--accent-danger); }
.la-tally-item[data-status="answered"]::before { background: var(--accent-primary); }
.la-tally-note { flex-basis: 100%; font-size: 0.75rem; }
.la-add { display: flex; gap: var(--space-2); margin-top: var(--space-4); padding-left: 30px; }
.la-add .form-input { flex: 1; min-width: 0; }
.la-examples-note { padding: 0.55rem 0; font-size: 0.9rem; color: var(--text-secondary); }
.la-examples-note strong { color: var(--text-primary); }
.la-truth { margin: var(--space-4) 0 0; padding: var(--space-3) var(--space-4); border-left: 3px solid var(--accent-success); border-radius: var(--radius-sm); background: var(--success-tint); color: var(--text-primary); font-size: 0.9rem; line-height: 1.55; opacity: 0; animation: laIn 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; animation-delay: calc(var(--i, 0) * 85ms + 500ms); }
.la-foot { margin-top: var(--space-4); }
.la-steps { margin: 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: var(--space-3); font-size: 0.875rem; line-height: 1.55; color: var(--text-secondary); }
.la-steps strong { color: var(--text-primary); }
.la-steps li.on::marker { color: var(--accent-primary); font-weight: 700; }
.la-steps em { color: var(--primary-text); font-style: normal; }
.la-history { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.la-history-item { display: flex; align-items: flex-start; gap: var(--space-2); padding: var(--space-3); border: 1px solid var(--white-8); border-radius: var(--radius-md); background: var(--white-2); cursor: pointer; transition: background 0.2s, border-color 0.2s, transform 0.2s; }
.la-history-item:hover, .la-history-item.active { background: var(--primary-tint); border-color: var(--primary-border); transform: translateX(2px); }
.la-history-item.plain, .la-history-item.plain:hover { cursor: default; background: var(--white-2); border-color: var(--white-8); transform: none; }
.la-history-body { flex: 1; min-width: 0; }
.la-history-claim { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.85rem; line-height: 1.45; color: var(--text-primary); }
.la-history-item .btn-icon { opacity: 0; transition: opacity 0.2s, color 0.2s, background 0.2s; }
.la-history-item:hover .btn-icon, .la-history-item .btn-icon:focus-visible { opacity: 1; }
.la-history-item .btn-icon:hover { color: var(--accent-danger); background: var(--danger-tint); }
.la-prompt { padding: var(--space-3) var(--space-4); border: 1px solid var(--white-8); border-radius: var(--radius-md); background: var(--white-2); transition: border-color 0.2s, background 0.2s; }
.la-prompt[open], .la-prompt:hover { border-color: var(--primary-border); }
.la-prompt summary { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2) var(--space-3); cursor: pointer; list-style: none; }
.la-prompt summary::-webkit-details-marker { display: none; }
.la-prompt summary::before { content: ''; flex-shrink: 0; width: 7px; height: 7px; margin: 0 2px; border-right: 2px solid var(--text-secondary); border-bottom: 2px solid var(--text-secondary); transform: rotate(-45deg); transition: transform 0.2s; }
.la-prompt[open] summary::before { transform: rotate(45deg); }
.la-prompt[open] summary { margin-bottom: var(--space-3); }
.la-prompt summary .form-label { margin: 0; cursor: pointer; }
.la-prompt-hint { font-size: 0.8rem; color: var(--text-secondary); }
textarea.form-input.la-prompt-text { min-height: 340px; font-size: 0.8rem; line-height: 1.6; resize: vertical; }
.la-prompt .inline-row { margin-top: var(--space-3); }
.la-prompt code { font-family: var(--font-mono); font-size: 0.78rem; color: var(--primary-text); }
@keyframes laRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes laSweep { to { transform: translateX(260%); } }
@keyframes laWord { 0%, 100% { color: var(--text-secondary); text-shadow: none; } 50% { color: #fff; text-shadow: 0 0 14px rgba(147, 197, 253, 0.7); } }
@keyframes laTrunk { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes laIn { from { opacity: 0; transform: translateX(-18px) scale(0.98); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes laBreathe { 0%, 100% { opacity: 0.35; transform: scale(0.85); } 50% { opacity: 1; transform: scale(1.15); } }
@keyframes laShimmer { from { background-position: 120% 0; } to { background-position: -100% 0; } }
@keyframes laFlash { 0% { background-color: var(--primary-tint-strong); box-shadow: 0 0 0 2px var(--primary-border); } 100% { background-color: var(--white-5); box-shadow: none; } }
@keyframes laPop { 0% { transform: scale(0.7); opacity: 0.2; } 60% { transform: scale(1.12); opacity: 1; } 100% { transform: none; } }
@media (max-width: 600px) {
  .la-line { flex-wrap: wrap; }
  .la-meta { flex-direction: row; align-items: center; width: 100%; }
  .la-results-head { flex-direction: column; align-items: flex-start; }
  .la-actions { justify-content: flex-start; }
  .la-add { padding-left: 0; }
  .la-sub { padding-left: 16px; }
  .la-sub::before { left: 3px; }
  .la-sub > .la-claim::before { left: -18px; }
  .la-sub > .la-claim::after { left: -9px; width: 9px; }
  .la-specimen { font-size: 1.02rem; padding: var(--space-3) var(--space-4); }
}
@media (prefers-reduced-motion: reduce) {
  .la-specimen.scanning::after, .la-specimen.scanning .la-word, .la-answer-text.scanning::after, .la-answer-text.scanning .la-word, .la-open::before, .la-claim.shown.asking, .la-tally-item::before, .la-sub.grow::before { animation: none !important; }
  .la-claim, .la-truth { opacity: 1; }
}

/* ----- Formal Proof: the argument as formulas, and what the prover said ----- */
.fp-specimen { font-size: 1.05rem; line-height: 1.7; white-space: pre-wrap; }
.fp-block { margin-top: var(--space-6); }
.fp-block-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-2) var(--space-4); }
.fp-block-head h4 { font-size: 0.8rem; letter-spacing: 0.8px; text-transform: uppercase; color: var(--text-secondary); }
.fp-block-head .form-hint { margin: 0; }
.form-hint.failed, .fp-note.failed { color: var(--danger-text); }
.fp-dict { display: flex; flex-direction: column; gap: 4px; margin-top: var(--space-3); }
.fp-symbol { display: grid; grid-template-columns: minmax(7rem, max-content) 5.5rem 1fr auto; align-items: center; gap: var(--space-3); padding: 5px var(--space-3); border: 1px solid var(--white-8); border-radius: var(--radius-sm); background: var(--white-2); font-size: 0.85rem; animation: laRise 0.5s ease both; }
.fp-symbol code { font-family: var(--font-mono); color: var(--primary-text); }
.fp-symbol-kind { font-size: 0.7rem; letter-spacing: 0.4px; text-transform: uppercase; color: var(--text-secondary); }
.fp-symbol-meaning.muted, .fp-words.muted { color: var(--text-secondary); font-style: italic; }
.fp-symbol .btn-icon { opacity: 0.45; }
.fp-symbol:hover .btn-icon, .fp-symbol .btn-icon:focus-visible { opacity: 1; }
.fp-list { margin-top: var(--space-3); }
.fp-formula-line { margin-top: 6px; padding: 6px 10px; border-radius: var(--radius-sm); background: rgba(0, 0, 0, 0.22); border: 1px solid var(--white-8); font-family: var(--font-mono); font-size: 0.9rem; line-height: 1.6; color: #e2e8f0; overflow-wrap: anywhere; }
.fp-formula-line.failed { border-color: var(--danger-border); color: var(--danger-text); }
.fp-reading { margin-top: 6px; font-size: 0.85rem; line-height: 1.5; color: var(--text-primary); }
.fp-reading-lead { margin-right: 4px; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--accent-info); }
.fp-reading.waiting { color: var(--text-secondary); font-style: italic; animation: laBreathe 1.6s ease-in-out infinite; transform-origin: left center; }
.fp-parse-error { margin-top: 6px; font-size: 0.8rem; line-height: 1.5; color: var(--danger-text); }
.fp-origin[data-origin="found"] { background: rgba(168, 85, 247, 0.14); color: var(--purple-light); border-color: rgba(168, 85, 247, 0.35); }
.fp-verdict { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid var(--white-8); border-radius: var(--radius-pill); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.4px; white-space: nowrap; color: var(--text-secondary); }
.fp-verdict::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--text-secondary); }
.fp-verdict[data-status="none"]:empty { display: none; }
.fp-verdict[data-status="asking"] { color: var(--accent-info); border-color: var(--primary-border); }
.fp-verdict[data-status="asking"]::before { background: var(--accent-info); animation: laBreathe 0.9s ease-in-out infinite; }
.fp-verdict[data-status="follows"] { color: var(--success-text); background: var(--success-tint); border-color: var(--success-border); }
.fp-verdict[data-status="follows"]::before { background: var(--accent-success); box-shadow: 0 0 8px var(--accent-success); }
.fp-verdict[data-status="some"] { color: var(--primary-text); background: var(--primary-tint); border-color: var(--primary-border); }
.fp-verdict[data-status="some"]::before { background: var(--accent-primary); }
.fp-verdict[data-status="not"] { color: var(--danger-text); background: var(--danger-tint); border-color: var(--danger-border); }
.fp-verdict[data-status="not"]::before { background: var(--accent-danger); }
.fp-verdict[data-status="unknown"] { color: var(--warning-light); background: var(--warning-tint); border-color: var(--warning-border); }
.fp-verdict[data-status="unknown"]::before { background: var(--accent-warning); }
.fp-verdict[data-status="vacuous"] { color: var(--purple-light); background: rgba(168, 85, 247, 0.14); border-color: rgba(168, 85, 247, 0.35); }
.fp-verdict[data-status="vacuous"]::before { background: var(--purple); }
.fp-verdict.pop { animation: laPop 0.55s cubic-bezier(0.2, 0.8, 0.2, 1); }
.fp-formula[data-role="conclusion"] { border-left: 3px solid var(--primary-border); }
.fp-result:empty { display: none; }
.fp-result { margin-top: var(--space-2); }
.fp-note { margin: var(--space-2) 0 0; font-size: 0.82rem; line-height: 1.5; color: var(--text-secondary); }
.fp-grid { margin-top: var(--space-3); border-collapse: separate; border-spacing: 4px; font-size: 0.75rem; }
.fp-grid caption { caption-side: bottom; padding-top: 2px; text-align: left; font-size: 0.68rem; color: var(--text-secondary); }
.fp-grid th { padding: 2px 8px; font-weight: 600; color: var(--text-secondary); text-align: center; }
.fp-grid tr th:first-child { text-align: right; }
.fp-cell { width: 5.2rem; padding: 5px 0; text-align: center; font-weight: 700; border-radius: var(--radius-sm); border: 1px solid var(--white-8); background: var(--white-2); cursor: help; animation: laPop 0.45s cubic-bezier(0.2, 0.8, 0.2, 1); }
.fp-cell.yes { color: var(--success-text); background: var(--success-tint); border-color: var(--success-border); }
.fp-cell.no { color: var(--danger-text); background: var(--danger-tint); border-color: var(--danger-border); }
.fp-cell.open { color: var(--warning-light); background: var(--warning-tint); border-color: var(--warning-border); }
.fp-cell.vacuous { color: var(--purple-light); background: rgba(168, 85, 247, 0.14); border-color: rgba(168, 85, 247, 0.35); }
.fp-cell.wait { color: var(--text-secondary); animation: laBreathe 1.2s ease-in-out infinite; }
.fp-cell.inferred { opacity: 0.62; border-style: dashed; }
.fp-candidates { margin-top: var(--space-4); }
.fp-candidates ul { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.fp-candidate { padding: var(--space-3); border: 1px dashed var(--white-8); border-radius: var(--radius-md); background: var(--white-2); animation: laRise 0.55s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.fp-candidate:nth-child(2) { animation-delay: 90ms; }
.fp-candidate:nth-child(3) { animation-delay: 180ms; }
.fp-candidate.works { border-style: solid; border-color: var(--success-border); }
.fp-candidate.bad { border-color: var(--danger-border); }
.fp-candidate-text { line-height: 1.5; color: var(--text-primary); }
.fp-candidate-foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-2); }
.fp-candidate-foot .fp-note { margin: 0; }
.fp-candidate-foot .spacer { flex: 1; }
.fp-candidate-foot .btn-sm { padding: 4px 10px; font-size: 0.75rem; gap: 5px; }
.fp-add { display: grid; grid-template-columns: 8.5rem 1fr 1.4fr auto; gap: var(--space-2); margin-top: var(--space-6); }
.fp-add .form-input { min-width: 0; }
.fp-empty { margin-top: var(--space-3); }
/* 0.23.0: the ledger of premises, the argument beneath a premise, and what it all rests on */
.fp-trail { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-bottom: var(--space-3); font-size: 0.78rem; color: var(--text-secondary); }
.fp-trail a { color: var(--primary-text); font-weight: 600; text-decoration: none; }
.fp-trail a:hover { text-decoration: underline; }
.fp-trail-via { max-width: 28ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fp-trail-here { font-weight: 600; color: var(--text-primary); }
.fp-model-note { margin: var(--space-2) 0 0; font-size: 0.82rem; color: var(--text-secondary); font-style: italic; }
.fp-standing { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid var(--white-8); border-radius: var(--radius-pill); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.4px; white-space: nowrap; color: var(--text-secondary); }
.fp-standing::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--accent-warning); }
.fp-standing[data-kind="logic"] { color: var(--success-text); background: var(--success-tint); border-color: var(--success-border); }
.fp-standing[data-kind="logic"]::before { background: var(--accent-success); }
.fp-standing[data-kind="definition"], .fp-verdict[data-status="definition"] { color: var(--purple-light); background: rgba(168, 85, 247, 0.14); border-color: rgba(168, 85, 247, 0.35); }
.fp-standing[data-kind="definition"]::before, .fp-verdict[data-status="definition"]::before { background: var(--purple); }
.fp-standing[data-kind="axiom"], .fp-verdict[data-status="apriori"] { color: var(--accent-secondary); background: rgba(20, 184, 166, 0.12); border-color: rgba(20, 184, 166, 0.35); }
.fp-standing[data-kind="axiom"]::before, .fp-verdict[data-status="apriori"]::before { background: var(--accent-secondary); }
.fp-rest[data-kind="axiom"] { border-color: rgba(20, 184, 166, 0.35); }
.fp-found-group[data-kind="axiom"] .fp-found-title { color: var(--accent-secondary); }
.fp-standing[data-kind="observation"] { color: var(--accent-info); background: rgba(56, 189, 248, 0.12); border-color: rgba(56, 189, 248, 0.3); }
.fp-standing[data-kind="observation"]::before { background: var(--accent-info); }
.fp-standing[data-kind="circular"] { color: var(--danger-text); background: var(--danger-tint); border-color: var(--danger-border); }
.fp-standing[data-kind="circular"]::before { background: var(--accent-danger); }
.fp-standing[data-kind="established"] { color: var(--success-text); border-color: var(--success-border); }
.fp-standing[data-kind="established"]::before { background: var(--accent-success); box-shadow: 0 0 0 2px var(--success-tint); }
.fp-verdict[data-status="debt"] { color: var(--warning-light); background: var(--warning-tint); border-color: var(--warning-border); }
.fp-verdict[data-status="debt"]::before { background: var(--accent-warning); }
.fp-declare { display: inline-flex; align-items: center; gap: var(--space-2); }
.fp-declare .form-input { width: auto; min-width: 9rem; padding: 3px 8px; font-size: 0.75rem; }
.fp-kind-hint { font-size: 0.72rem; color: var(--text-secondary); font-style: italic; }
.fp-below { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: var(--space-2) 0 0; font-size: 0.8rem; color: var(--text-secondary); }
.fp-below a { display: inline-flex; align-items: center; gap: 5px; color: var(--primary-text); font-weight: 600; text-decoration: none; }
.fp-below a:hover { text-decoration: underline; }
.fp-rests { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: var(--space-2) 0 0; font-size: 0.8rem; color: var(--text-secondary); }
.fp-rest { display: inline-flex; align-items: baseline; gap: 4px; padding: 2px 8px; border-radius: var(--radius-pill); border: 1px solid var(--white-8); color: var(--text-primary); font-weight: 600; font-size: 0.75rem; }
.fp-rest small { font-weight: 400; color: var(--text-secondary); }
.fp-rest[data-kind="logic"], .fp-rest[data-kind="established"] { border-color: var(--success-border); }
.fp-rest[data-kind="definition"] { border-color: rgba(168, 85, 247, 0.35); }
.fp-rest[data-kind="unproven"] { border-color: var(--warning-border); }
.fp-rest[data-kind="observation"] { border-color: rgba(56, 189, 248, 0.3); }
.fp-foundations { padding: var(--space-4); border: 1px solid var(--warning-border); border-radius: var(--radius-md); background: linear-gradient(135deg, var(--warning-tint), transparent 60%); animation: laRise 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.fp-foundations .fp-block-head h4 { color: var(--warning-light); }
.fp-found-groups { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-3); }
.fp-found-title { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: var(--text-secondary); }
.fp-found-group[data-kind="unproven"] .fp-found-title { color: var(--warning-light); }
.fp-found-group[data-kind="observation"] .fp-found-title { color: var(--accent-info); }
.fp-found-group[data-kind="definition"] .fp-found-title { color: var(--purple-light); }
.fp-found-group[data-kind="logic"] .fp-found-title { color: var(--success-text); }
.fp-found-group ul { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.fp-found { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: var(--space-3); padding: 5px var(--space-3); border-radius: var(--radius-sm); background: var(--white-2); border: 1px solid var(--white-8); font-size: 0.85rem; animation: laRise 0.5s ease both; }
.fp-found-where { font-family: var(--font-mono); font-size: 0.75rem; font-weight: 700; color: var(--primary-text); text-decoration: none; white-space: nowrap; }
a.fp-found-where:hover { text-decoration: underline; }
.fp-found-text { color: var(--text-primary); line-height: 1.45; }
.fp-found-text small { color: var(--text-secondary); }
.fp-found .btn-icon { opacity: 0.55; }
.fp-found:hover .btn-icon { opacity: 1; }
/* 0.25.0: an argument unfolds beneath its premise, as deep as the tree goes */
.fp-below .fp-fold { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.fp-own { font-size: 0.75rem; color: var(--text-secondary); text-decoration: none; }
.fp-own:hover { text-decoration: underline; color: var(--primary-text); }
/* 0.27.0: the argument beneath a premise is a full-width band under the label (the label wraps), so a level costs 10px, not 60 */
.fp-formula { flex-wrap: wrap; }
.fp-sub { flex: 1 0 100%; min-width: 0; box-sizing: border-box; margin: var(--space-2) calc(-1 * var(--space-4)) calc(-1 * var(--space-3)); padding: var(--space-2) var(--space-3) var(--space-2) 8px; border-left: 2px solid var(--primary-border); border-top: 1px solid var(--white-8); animation: laRise 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both; }
.fp-sub .la-claim > .fp-sub { margin: var(--space-2) calc(-1 * var(--space-3)) calc(-1 * var(--space-2)); }
.fp-sub .fp-sub { border-left-color: rgba(168, 85, 247, 0.45); }
.fp-sub .fp-sub .fp-sub { border-left-color: rgba(56, 189, 248, 0.45); }
.fp-sub .fp-sub .fp-sub .fp-sub { border-left-color: var(--primary-border); }
.fp-sub .fp-list { padding-left: 0; }
.fp-sub .fp-list::before, .fp-sub .la-claim::before, .fp-sub .la-claim::after { display: none; }
.fp-sub .la-claim:hover:not(:has(.la-claim:hover)) { transform: none; }
.fp-sub-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.fp-sub-head .section-label { margin: 0; }
.fp-sub-head .spacer { flex: 1; }
.fp-sub-head .btn-sm { padding: 4px 10px; font-size: 0.75rem; gap: 5px; }
.fp-sub-label { margin: var(--space-3) 0 0; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: var(--text-secondary); }
.fp-sub .fp-list { margin-top: var(--space-2); }
.fp-sub .la-claim { background: var(--white-2); padding: var(--space-2) var(--space-3); }
.fp-sub .fp-add { grid-template-columns: 1fr 1.4fr auto; margin-top: var(--space-3); }
.fp-sub .fp-sub-empty { margin: var(--space-2) 0 0; }
.fp-sub .fp-sub-consistency { margin-left: 0; }
.fp-expand { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin-top: var(--space-2); }
.fp-depth { display: inline-flex; align-items: center; gap: var(--space-2); }
.fp-depth .form-input { width: 4.5rem; padding: 3px 8px; font-size: 0.8rem; }
.fp-expand .form-hint { margin: 0; }
/* 0.30.0: several arguments beneath one premise: one line per argument under the label, one section per unfolded argument in the band */
.fp-below .fp-below-line { flex: 1 0 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.fp-below .fp-below-sum { font-size: 0.75rem; }
/* 0.31.0: why a conclusion does not follow (a counter-example), and the tree at a glance */
.fp-counter { margin-top: var(--space-3); padding: var(--space-2) var(--space-3); border: 1px dashed var(--white-15); border-radius: var(--radius-sm); background: var(--white-2); font-size: 0.82rem; }
.fp-counter-head { font-weight: 600; color: var(--text-primary); }
.fp-counter-lead { margin: 2px 0 var(--space-2); color: var(--text-secondary); line-height: 1.5; }
.fp-counter-things { margin: 0 0 4px; }
.fp-counter-things b, .fp-counter-facts b { color: var(--text-primary); font-weight: 600; }
.fp-counter-facts { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; line-height: 1.45; }
.fp-counter-facts .yes::before { content: "\2713  "; color: var(--success-text); }
.fp-counter-facts .no { color: var(--text-secondary); }
.fp-counter-facts .no::before { content: "\2717  "; color: var(--danger-text); }
.fp-counter-check { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-2); }
.fp-counter-check span { padding: 1px 8px; border-radius: var(--radius-pill); font-size: 0.72rem; font-weight: 600; border: 1px solid var(--success-border); color: var(--success-text); background: var(--success-tint); }
.fp-counter-check span.false { border-color: var(--danger-border); color: var(--danger-text); background: var(--danger-tint); }
.fp-counter-none { font-style: italic; }
.fp-map-list { list-style: none; margin: var(--space-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
.fp-map-row { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 8px; padding: 4px 8px 4px calc(8px + var(--d, 0) * 12px); border-radius: var(--radius-sm); font-size: 0.8rem; border-left: 2px solid transparent; }
.fp-map-row:hover { background: var(--white-2); }
.fp-map-row[data-rests="1"] { border-left-color: var(--success-border); }
.fp-map-go { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; flex: 1 1 260px; background: none; border: 0; padding: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.fp-map-go:hover .fp-map-text { color: var(--primary-text); }
.fp-map-id { font-family: var(--font-mono); font-size: 0.74rem; font-weight: 700; color: var(--primary-text); white-space: nowrap; }
.fp-map-via { font-size: 0.7rem; color: var(--text-secondary); white-space: nowrap; }
.fp-map-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; color: var(--text-primary); }
.fp-map-word { padding: 1px 8px; border-radius: var(--radius-pill); font-size: 0.7rem; font-weight: 600; white-space: nowrap; border: 1px solid var(--white-10); color: var(--text-secondary); }
.fp-map-word[data-kind="settled"] { color: var(--success-text); background: var(--success-tint); border-color: var(--success-border); }
.fp-map-word[data-kind="open"] { color: var(--warning-light); background: var(--warning-tint); border-color: var(--warning-border); }
.fp-map-word[data-kind="fails"], .fp-map-word[data-kind="failed"], .fp-map-word[data-kind="empty"] { color: var(--danger-text); background: var(--danger-tint); border-color: var(--danger-border); }
.fp-map-word[data-kind="working"] { color: var(--accent-info); border-color: var(--primary-border); }
.fp-map-chips { display: inline-flex; flex-wrap: wrap; gap: 3px; }
.fp-map-chip { padding: 0 6px; border-radius: var(--radius-pill); font: 600 0.68rem var(--font-mono); line-height: 1.6; cursor: pointer; border: 1px solid var(--white-10); background: none; color: var(--text-secondary); }
.fp-map-chip small { font-weight: 400; margin-left: 2px; }
.fp-map-chip[data-kind="logic"], .fp-map-chip[data-kind="established"] { color: var(--success-text); border-color: var(--success-border); }
.fp-map-chip[data-kind="definition"] { color: var(--purple-light); border-color: rgba(168, 85, 247, 0.35); }
.fp-map-chip[data-kind="axiom"] { color: var(--accent-secondary); border-color: rgba(20, 184, 166, 0.35); }
.fp-map-chip[data-kind="observation"] { color: var(--accent-info); border-color: rgba(56, 189, 248, 0.3); }
.fp-map-chip[data-kind="unproven"] { color: var(--warning-light); border-color: var(--warning-border); }
.fp-map-chip[data-kind="circular"] { color: var(--danger-text); border-color: var(--danger-border); }
.fp-sub-arg.fresh { animation: laFlash 1.6s ease-out; }
.fp-sub-arg + .fp-sub-arg { margin-top: var(--space-3); padding-top: var(--space-3); border-top: 1px dashed var(--white-8); }
.fp-history-sub { display: block; font-size: 0.7rem; color: var(--text-secondary); margin-bottom: 2px; }
.la-history-item.child { margin-left: var(--space-4); border-left: 2px solid var(--primary-border); }
@media (max-width: 760px) {
  .fp-add { grid-template-columns: 1fr; }
  .fp-symbol { grid-template-columns: 1fr auto; }
  .fp-symbol-kind { display: none; }
  .fp-symbol-meaning { grid-column: 1 / -1; }
  .fp-cell { width: 3.6rem; }
  .fp-found { grid-template-columns: auto 1fr; }
  .fp-found .btn-icon { grid-column: 2; justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
  .fp-symbol, .fp-candidate, .fp-cell, .fp-cell.wait, .fp-reading.waiting, .fp-verdict::before, .fp-verdict.pop, .fp-foundations, .fp-found { animation: none !important; }
}
