/* A concept-first tabularization scene. Every selector is local to this diagram. */
.tbz-scene { --tbz-teal:#336b66; --tbz-umber:var(--accent,#89552e); --tbz-line:var(--line,#dfe3de); margin-block:30px; padding:30px; border:1px solid var(--tbz-line); border-radius:14px; background:var(--white,#fff); color:var(--ink,#322e26); min-width:0; }
.tbz-scene * { box-sizing:border-box; }
.tbz-scene [hidden] { display:none!important; }
.tbz-heading { max-width:800px; }
.tbz-kicker { color:var(--tbz-umber); font-size:16px; font-weight:650; letter-spacing:.07em; text-transform:uppercase; line-height:1.7; margin:0; }
.tbz-heading h3 { font:32px/1.25 Georgia,"Times New Roman",serif; letter-spacing:-.025em; margin:12px 0 0; max-width:700px; }
.tbz-heading>p:last-child { font-size:18px; line-height:1.8; color:var(--muted,#6b655a); margin:17px 0 0; }
.tbz-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 22px; margin-top:24px; border-block:1px solid var(--tbz-line); padding-block:12px; }
.tbz-step-controls,.tbz-playback { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.tbz-scene button { border:1px solid transparent; border-radius:5px; padding:9px 11px; background:none; color:var(--muted,#6b655a); font:500 16px/1.6 "Segoe UI",Arial,sans-serif; cursor:pointer; }
.tbz-step-controls button { display:flex; align-items:center; gap:8px; }
.tbz-step-controls button>span { font:16px Georgia,serif; opacity:.75; }
.tbz-step-controls button[aria-pressed="true"] { background:var(--soft,#f6f2eb); border-color:var(--tbz-line); color:var(--tbz-umber); }
.tbz-scene button:hover:not(:disabled) { color:var(--tbz-umber); border-color:var(--tbz-umber); }
.tbz-scene button:focus-visible { outline:3px solid var(--tbz-umber); outline-offset:3px; }
.tbz-scene button:disabled { cursor:default; opacity:.5; }
.tbz-playback button { display:flex; align-items:center; gap:6px; font-size:16px; padding-inline:7px; }
.tbz-playback svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.tbz-example-label { display:flex; align-items:baseline; gap:5px 10px; flex-wrap:wrap; font-size:16px; color:var(--muted,#6b655a); margin-block:23px; }
.tbz-example-label strong { font-weight:600; color:var(--tbz-umber); }
.tbz-example-mark { width:7px; height:7px; background:var(--tbz-umber); border-radius:50%; align-self:center; }
.tbz-workbench { display:grid; grid-template-columns:minmax(0,.9fr) 28px minmax(0,1.1fr); gap:24px 14px; align-items:start; }
.tbz-stage { min-width:0; }
.tbz-stage-heading { display:flex; gap:10px; align-items:baseline; margin-bottom:17px; }
.tbz-stage-heading>span { color:var(--tbz-umber); font:22px/1 Georgia,serif; opacity:.65; flex:none; }
.tbz-stage-heading h4 { font-size:17px; font-weight:650; line-height:1.6; margin:0; }
.tbz-source-card { border:1px solid var(--tbz-line); border-radius:8px; background:var(--paper,#fbfbf8); padding:15px; margin-bottom:12px; }
.tbz-source-card:last-child { margin-bottom:0; }
.tbz-source-card>header { display:flex; align-items:center; gap:10px; }
.tbz-source-card abbr,.tbz-table abbr { display:inline-flex; justify-content:center; align-items:center; text-decoration:none; border:1px solid currentColor; border-radius:4px; color:var(--tbz-teal); font:600 16px/1 "Segoe UI",Arial,sans-serif; width:22px; height:22px; flex:none; }
.tbz-source-card header>div { min-width:0; }
.tbz-source-card header strong { display:block; font-size:16px; line-height:1.5; font-weight:650; }
.tbz-source-card header>div>span { display:block; font:16px/1.7 Consolas,"Courier New",monospace; overflow-wrap:anywhere; color:var(--muted,#6b655a); }
.tbz-source-icon { width:25px; height:25px; margin-left:auto; flex:none; fill:none; stroke:var(--tbz-umber); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; opacity:.7; }
.tbz-records { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:13px; padding-top:10px; border-top:1px solid var(--tbz-line); }
.tbz-records>span { font-size:16px; line-height:1.6; color:var(--muted,#6b655a); }
.tbz-records b { display:block; font-size:16px; font-weight:600; color:var(--tbz-umber); }
.tbz-source-doc>p { color:var(--muted,#6b655a); font-size:16px; line-height:1.7; margin:12px 0 0; }
.tbz-source-doc>p>strong { color:var(--tbz-umber); font-weight:600; }
.tbz-calendar { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:13px; }
.tbz-calendar>div { position:relative; min-width:0; border:1px solid var(--tbz-line); border-radius:4px; padding:8px 10px; background:var(--white,#fff); overflow:hidden; }
.tbz-calendar span { display:block; font-size:16px; color:var(--muted,#6b655a); position:relative; z-index:1; }
.tbz-calendar strong { display:block; font:18px/1.6 Georgia,serif; color:var(--tbz-teal); position:relative; z-index:1; }
.tbz-calendar svg { position:absolute; width:38px; height:30px; right:5px; bottom:2px; fill:none; stroke:var(--tbz-teal); stroke-width:1.5; stroke-linecap:round; opacity:.16; }
.tbz-transfer { align-self:center; color:var(--tbz-umber); }
.tbz-transfer svg { display:block; width:100%; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.tbz-transfer-track { opacity:.35; }
.tbz-transfer-signal { opacity:0; stroke-dasharray:60; stroke-dashoffset:60; }
.tbz-aligned { border:1px solid var(--tbz-line); border-radius:9px; padding:18px; background:var(--white,#fff); }
.tbz-row-definition { background:var(--soft,#f6f2eb); padding:12px 14px; border-radius:5px; margin-bottom:16px; }
.tbz-row-definition>span { display:block; font-size:16px; color:var(--tbz-umber); }
.tbz-row-definition strong { display:block; font-size:17px; line-height:1.5; font-weight:650; margin-top:3px; }
.tbz-row-definition p { font-size:16px; color:var(--muted,#6b655a); line-height:1.6; margin:4px 0 0; }
.tbz-table-wrap { min-width:0; }
.tbz-table { border-collapse:collapse; width:100%; table-layout:fixed; font-size:16px; line-height:1.5; text-align:left; }
.tbz-table caption { text-align:left; color:var(--muted,#6b655a); font-size:16px; line-height:1.6; padding-bottom:10px; }
.tbz-table th,.tbz-table td { padding:12px 5px; border-bottom:1px solid var(--tbz-line); }
.tbz-table thead th { vertical-align:top; font-size:16px; font-weight:600; color:var(--tbz-umber); padding-top:0; border-bottom:1px solid var(--tbz-umber); }
.tbz-table thead th>span { display:block; font-size:16px; font-weight:400; line-height:1.7; margin-top:4px; color:var(--muted,#6b655a); }
.tbz-table thead th>abbr { display:flex; margin-top:4px; }
.tbz-table abbr { width:18px; height:18px; font-size:16px; vertical-align:middle; }
.tbz-table tbody th { color:var(--muted,#6b655a); font-size:16px; font-weight:500; }
.tbz-new-row { background:var(--soft,#f6f2eb); }
.tbz-new-row td,.tbz-new-row th { border-top:1px solid var(--tbz-umber); }
.tbz-unknown>span { display:inline-block; color:var(--tbz-umber); font:25px/1 Georgia,serif; }
.tbz-provenance { display:flex; align-items:flex-start; gap:10px; margin:17px 0 0; color:var(--muted,#6b655a); font-size:16px; line-height:1.75; }
.tbz-provenance>svg { width:19px; height:19px; margin-top:3px; flex:none; stroke:var(--tbz-teal); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.tbz-provenance strong { color:var(--tbz-teal); font-weight:600; }
.tbz-task { grid-column:1/-1; background:var(--soft,#f6f2eb); border:1px solid var(--tbz-line); border-radius:9px; padding:22px; }
.tbz-task-top .tbz-stage-heading { margin-bottom:5px; }
.tbz-task-top>p { font-size:16px; color:var(--muted,#6b655a); line-height:1.7; margin:0; }
.tbz-task-parts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:20px; }
.tbz-task-parts>div { min-width:0; padding-top:14px; border-top:2px solid var(--tbz-line); }
.tbz-task-parts>.tbz-target { border-top-color:var(--tbz-umber); }
.tbz-task-label { display:block; color:var(--tbz-teal); font-size:16px; line-height:1.6; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }
.tbz-task-parts strong { display:block; font:25px/1.35 Georgia,serif; color:var(--tbz-umber); margin-top:8px; }
.tbz-target strong>span { display:inline-block; margin-left:5px; }
.tbz-task-parts p { font-size:16px; color:var(--muted,#6b655a); line-height:1.7; margin:9px 0 0; }
.tbz-task-detail { display:block; color:var(--muted,#6b655a); font-size:16px; line-height:1.7; margin-top:10px; }
.tbz-caption { font:20px/1.7 Georgia,serif; color:var(--tbz-umber); border-left:2px solid var(--tbz-umber); padding-left:18px; margin:25px 0 0; min-height:68px; }
.tbz-footnote { color:var(--muted,#6b655a); font-size:16px; line-height:1.8; margin:17px 0 0; }
/* Attention changes, but all source values and task definitions remain readable. */
.tbz-scene[data-tbz-enhanced="true"] .tbz-stage { transition:opacity .55s ease,border-color .55s ease,box-shadow .55s ease; }
.tbz-scene[data-tbz-step="0"] .tbz-source-card { border-color:var(--tbz-umber); }
.tbz-scene[data-tbz-step="1"] .tbz-aligned { border-color:var(--tbz-umber); box-shadow:0 3px 16px -12px var(--tbz-umber); }
.tbz-scene[data-tbz-step="2"] .tbz-task { border-color:var(--tbz-umber); }
.tbz-scene.tbz-animate[data-tbz-step="0"] .tbz-source-card { animation:tbz-evidence-arrives .75s ease both; }
.tbz-scene.tbz-animate[data-tbz-step="0"] .tbz-source-doc { animation-delay:.2s; }
.tbz-scene.tbz-animate[data-tbz-step="0"] .tbz-source-image { animation-delay:.4s; }
.tbz-scene.tbz-animate[data-tbz-step="1"] .tbz-transfer-signal { animation:tbz-align-signal 1.2s ease both; }
.tbz-scene.tbz-animate[data-tbz-step="1"] .tbz-origin-i { animation:tbz-value-aligns 1.35s ease .1s both; }
.tbz-scene.tbz-animate[data-tbz-step="1"] .tbz-origin-d { animation:tbz-value-aligns 1.35s ease .35s both; }
.tbz-scene.tbz-animate[data-tbz-step="1"] .tbz-origin-p { animation:tbz-value-aligns 1.35s ease .6s both; }
.tbz-scene.tbz-animate[data-tbz-step="2"] .tbz-task-parts>div { animation:tbz-task-defined .8s ease both; }
.tbz-scene.tbz-animate[data-tbz-step="2"] .tbz-query { animation-delay:.2s; }
.tbz-scene.tbz-animate[data-tbz-step="2"] .tbz-target { animation-delay:.4s; }
.tbz-scene.tbz-animate * { animation-play-state:paused; }
.tbz-scene.tbz-animate[data-tbz-running="true"] * { animation-play-state:running; }
@keyframes tbz-evidence-arrives { from { opacity:.45; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes tbz-align-signal { 0% { opacity:0; stroke-dashoffset:60; } 25% { opacity:1; } 75% { opacity:1; stroke-dashoffset:0; } 100% { opacity:.35; stroke-dashoffset:0; } }
@keyframes tbz-value-aligns { 0% { background:transparent; } 45% { background:#e4eeea; color:var(--tbz-teal); } 100% { background:transparent; } }
@keyframes tbz-task-defined { from { opacity:.4; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(max-width:1150px) {
  .tbz-scene { padding:24px; }
  .tbz-workbench { grid-template-columns:minmax(0,.9fr) 22px minmax(0,1.1fr); column-gap:10px; }
  .tbz-aligned { padding:15px; }
  .tbz-source-card { padding:13px; }
  .tbz-table { font-size:16px; }
  .tbz-task-parts { gap:18px; }
}
@media(min-width:901px) and (max-width:1080px) {
  .tbz-workbench { grid-template-columns:minmax(0,1fr); gap:18px; }
  .tbz-evidence { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .tbz-evidence>.tbz-stage-heading { grid-column:1/-1; margin-bottom:2px; }
  .tbz-source-card { margin:0; }
  .tbz-source-icon { display:none; }
  .tbz-records { grid-template-columns:1fr; gap:3px; }
  .tbz-records>span { display:flex; justify-content:space-between; gap:5px; }
  .tbz-calendar { grid-template-columns:1fr; }
  .tbz-transfer { width:27px; height:22px; margin:auto; transform:rotate(90deg); }
  .tbz-aligned { padding:20px; }
}
@media(max-width:700px) {
  .tbz-scene { padding:22px; }
  .tbz-heading h3 { font-size:29px; }
  .tbz-workbench { grid-template-columns:minmax(0,1fr); gap:18px; }
  .tbz-evidence { display:block; }
  .tbz-source-card { margin-bottom:12px; }
  .tbz-transfer { width:27px; height:22px; margin:auto; transform:rotate(90deg); }
  .tbz-aligned { padding:18px; }
  .tbz-task { padding:20px; }
  .tbz-task-parts { grid-template-columns:minmax(0,1fr); gap:18px; }
  .tbz-task-parts>div { display:grid; grid-template-columns:minmax(90px,.85fr) minmax(0,1.15fr); gap:5px 15px; }
  .tbz-task-label { grid-column:1; }
  .tbz-task-parts strong { grid-column:1; grid-row:2; font-size:23px; margin:0; }
  .tbz-task-parts p { grid-column:2; grid-row:1/3; align-self:center; margin:0; }
  .tbz-task-detail { grid-column:1/-1; margin-top:3px; }
  .tbz-caption { min-height:0; }
}
@media(max-width:420px) {
  .tbz-scene { padding:17px 14px; border-radius:10px; }
  .tbz-heading h3 { font-size:27px; }
  .tbz-heading>p:last-child { font-size:17px; }
  .tbz-step-controls { align-items:stretch; width:100%; }
  .tbz-step-controls button { flex:1; flex-direction:column; align-items:flex-start; justify-content:flex-start; padding:8px; gap:3px; font-size:16px; }
  .tbz-playback { width:100%; justify-content:flex-end; }
  .tbz-aligned { padding:14px 10px; }
  .tbz-table th,.tbz-table td { padding-inline:3px; }
  .tbz-table { font-size:16px; }
  .tbz-table thead th { font-size:16px; }
  .tbz-task { padding:16px; }
  .tbz-task-parts>div { grid-template-columns:minmax(0,1fr); }
  .tbz-task-parts p { grid-column:1; grid-row:auto; margin-top:3px; }
  .tbz-task-detail { margin-top:4px; }
  .tbz-caption { font-size:19px; padding-left:13px; }
}
.motion-off .tbz-scene * { animation:none!important; transition:none!important; }
@media(prefers-reduced-motion:reduce) {
  html:not(.motion-on) .tbz-scene * { animation:none!important; transition:none!important; }
}
@media print {
  .tbz-scene { padding:16px; break-inside:avoid; }
  .tbz-toolbar { display:none; }
  .tbz-scene .tbz-stage { opacity:1!important; box-shadow:none!important; }
  .tbz-scene * { animation:none!important; transition:none!important; }
}

.tbz-transfer .tbz-connector-head { fill:currentColor; stroke:none; }
