
*,*::before,*::after{box-sizing:border-box}

@font-face{font-family:'StDis';src:url('/assets/fonts/stdis.woff2')format('woff2');
  font-weight:400 700;font-display:swap}
@font-face{font-family:'StText';src:url('/assets/fonts/sttext.woff2')format('woff2');
  font-weight:400 700;font-display:swap}

/* Кегли в rem от пользовательской базы (DESIGN-CHECKLIST, сессия 72). */
html{-webkit-text-size-adjust:100%;font-size:100%}
body{margin:0;color:#13191a;background:#f3f5f4;
  font-family:'StText',Georgia,serif;font-size:1.0rem;line-height:1.7;
  font-variant-numeric:tabular-nums lining-nums;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* Моноширинный в заголовках, брусковая антиква в тексте. */
h1,h2,h3{font-family:'StDis',ui-monospace,Menlo,monospace;font-weight:700;
  letter-spacing:-.025em;color:#13191a}

/* === ЗЕРНО =============================================================
   Слой печатного зерна поверх всей страницы. Турбулентность инлайном:
   ни одного запроса, около килобайта, масштабируется. Множится, а не
   кладётся сверху непрозрачно, поэтому тёмный текст остаётся тёмным.
   Контраст замерен после включения: ни один узел не ушёл ниже порога. */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9;
  mix-blend-mode:multiply;opacity:.34;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)' opacity='0.5'/%3E%3C/svg%3E")}

/* === ПРИВОДКА НЕ СХОДИТСЯ ==============================================
   Вторая краска уходит на 3px вправо и вниз от первой. Это не тень:
   тень темнее подложки и лежит под буквой, а здесь вторая краска того
   же веса печатается мимо. */
.st-off{text-shadow:-3px -3px 0 #2f5d74}

/* === ПРИВОДОЧНЫЕ КРЕСТЫ ================================================
   Технические метки как декоративная текстура — ровно то, что отчёт
   2026 называет микрографикой. Печатник ставит их, чтобы совместить
   краски; на странице они остаются следом процесса. */
.st-reg{position:absolute;width:15px;height:15px;pointer-events:none;
  opacity:.55}
.st-reg::before,.st-reg::after{content:"";position:absolute;background:#2f5d74}
.st-reg::before{left:7px;top:0;width:1px;height:15px}
.st-reg::after{left:0;top:7px;width:15px;height:1px}
a{color:inherit}
img{max-width:100%;height:auto}

.st-skip{position:absolute;left:-9999px;top:0;background:#13191a;color:#f3f5f4;
  padding:0.7rem 1.1rem;z-index:40}
.st-skip:focus{left:10px;top:10px}
:focus-visible{outline:3px solid #9c3412;outline-offset:2px}

/* === ЛЕВЫЙ РЕЛЬС ========================================================
   Постоянная колонка во всю высоту. Текст смещён вправо и не
   центрирован — у всех шестидесяти четырёх предыдущих шаблонов полоса
   контента стояла по центру экрана. */
.st-page{display:grid;grid-template-columns:13.5rem minmax(0,1fr);
  max-width:1320px;margin:0 auto;min-height:100vh;align-items:start}
/* Линейка висит на КОЛОНКЕ КОНТЕНТА, а не на рельсе: рельс sticky и
   высотой в своё содержимое, линия обрывалась на третьем экране. */
/* Вдоль рельса идёт шкала с засечками: каждые 8px короткая, каждые
   40px длинная. Измерительная шкала на поле страницы о себестоимости
   часа — это текстура, которая означает предмет. */
.st-rail{position:sticky;top:0;align-self:start;
  padding:1.9rem 1.5rem 2rem 1.75rem}
.st-rail::after{content:"";position:absolute;right:0;top:1.9rem;bottom:0;
  width:9px;opacity:.5;
  background:repeating-linear-gradient(180deg,
    #a3adab 0 1px,rgba(0,0,0,0) 1px 8px),
    repeating-linear-gradient(180deg,
    #2f5d74 0 1px,rgba(0,0,0,0) 1px 40px);
  background-size:4px 100%,9px 100%;background-position:right top,right top;
  background-repeat:no-repeat}
.st-rail__b{display:block;font-family:'StDis',ui-monospace,monospace;
  font-size:1.0625rem;font-weight:700;line-height:1.2;letter-spacing:-.03em;
  text-decoration:none;color:#13191a}
.st-rail nav{display:flex;flex-direction:column;gap:0;margin:1.6rem 0 0}
.st-rail nav a{position:relative;padding:0.42rem 0 0.42rem 1.15rem;
  font-size:0.8125rem;line-height:1.3;color:#4e5a58;text-decoration:none}
.st-rail nav a::before{content:"";position:absolute;left:0;top:0.95em;
  width:0.6rem;height:2px;background:#a3adab}
.st-rail nav a:hover{color:#13191a}
.st-rail nav a:hover::before{background:#9c3412}
.st-rail nav a[aria-current]{color:#13191a;font-weight:700}
.st-rail nav a[aria-current]::before{background:#9c3412;height:3px}

.st-main{padding:0;min-width:0;border-left:2px solid #13191a}
.st-in{position:relative;padding:1.9rem 2.4rem 3rem}

/* === страница материала ================================================= */
.st-crumb{margin:0 0 1.5rem;font-size:0.8125rem;color:#4e5a58}
.st-crumb a{color:#4e5a58;text-decoration:none;border-bottom:1px solid #a3adab}
.st-crumb a:hover{color:#9c3412}

.st-h1{margin:0;font-size:clamp(1.75rem,3.3vw,2.75rem);line-height:1.08;
  max-width:26ch;text-shadow:-3px -3px 0 #2f5d74}
/* Подчёркивание нарисовано от руки, а не линейкой: кривая со своей
   толщиной и своими огрехами. Один SVG на страницу, 300 байт. */
.st-hand{display:block;margin:0.5rem 0 0;max-width:22rem;height:14px;
  color:#9c3412}
.st-hand svg{display:block;width:100%;height:14px;overflow:visible}
.st-lede{margin:1.2rem 0 0;font-size:1.0625rem;line-height:1.6;color:#4e5a58;
  max-width:60ch}
.st-meta{margin:1.3rem 0 0;font-family:'StDis',ui-monospace,monospace;
  font-size:0.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#9c3412}
.st-rule{height:2px;background:#13191a;margin:1.6rem 0 0}

/* === СЛОИ ===============================================================
   Фон раздела задаётся в разметке (см. _wrap): шаг один, считается от
   номера слоя, и правится в одном месте. Полоса раздела выходит за
   поле ВПРАВО до края колонки — но не за него: вылет в вьюпортных
   единицах расширял документ (lattice, замер 1440 -> 3968). */
.st-body{margin:0}
.st-body > p,.st-body > ul,.st-body > ol{max-width:60ch}
.st-body p{margin:0 0 1.1rem}
.st-body strong{font-weight:700}
.st-body a{color:#9c3412;text-decoration:none;border-bottom:2px solid #a3adab}
.st-body a:hover{border-bottom-color:#9c3412}

.st-s{position:relative;margin:0;padding:1.9rem 2.4rem 1.7rem 5.6rem;
  border-top:1px solid #c7cfcd}
.st-s:first-of-type{border-top:2px solid #13191a}
/* Номер слоя стоит в поле слева, не в тексте: это и есть «какой это
   слой ставки», а не порядковый номер абзаца. */
.st-s::before{content:attr(data-l);position:absolute;left:2.4rem;top:2rem;
  font-family:'StDis',ui-monospace,monospace;font-size:1.3125rem;font-weight:700;
  color:#9c3412;text-shadow:-3px -3px 0 #2f5d74}
.st-s > h2{margin:0 0 0.9rem;max-width:30ch;
  font-size:clamp(1.25rem,2.2vw,1.625rem);line-height:1.2}
.st-s > p,.st-s > ul,.st-s > ol{max-width:58ch}
.st-s > h3{margin:1.5rem 0 0.5rem;font-size:1rem;font-weight:700;
  font-family:'StText',Georgia,serif;letter-spacing:0}
.st-s > *:last-child{margin-bottom:0}

/* === блоки в тексте ===================================================== */
.st-body ul,.st-body ol{margin:0 0 1.2rem;padding:0;list-style:none}
.st-body li{margin:0 0 0.58rem;padding-left:1.7rem;position:relative}
.st-body ul > li::before{content:"";position:absolute;left:0;top:.72em;
  width:0.85rem;height:2px;background:#9c3412}
.st-body ol{counter-reset:stli}
.st-body ol > li{counter-increment:stli;padding-left:2.2rem}
.st-body ol > li::before{content:counter(stli,decimal-leading-zero);
  position:absolute;left:0;top:.06em;font-family:'StDis',ui-monospace,monospace;
  font-size:0.75rem;font-weight:700;color:#9c3412}
.st-body li > ul,.st-body li > ol{margin:0.58rem 0 0}

.st-body blockquote{margin:1.6rem 0;padding:0 0 0 1.3rem;
  border-left:4px solid #9c3412;max-width:56ch}
.st-body blockquote p{margin:0 0 0.7rem;font-family:'StDis',ui-monospace,monospace;
  font-size:1.0625rem;line-height:1.45;letter-spacing:-.02em;color:#13191a}
.st-body blockquote p:last-child{margin:0}

.st-body .tablewrap{overflow-x:auto;margin:1.6rem 0;-webkit-overflow-scrolling:touch}
.st-body .tablewrap table{margin:0}
.st-body table{width:100%;border-collapse:collapse;margin:1.6rem 0;
  font-size:0.9375rem;background:#ffffff}
.st-body th,.st-body td{padding:0.68rem 0.85rem;text-align:left;
  border-bottom:1px solid #c7cfcd;vertical-align:top}
.st-body thead th{background:#13191a;color:#f3f5f4;font-weight:700;
  font-family:'StDis',ui-monospace,monospace;font-size:0.75rem;
  letter-spacing:.04em;text-transform:uppercase;border-bottom:none}
.st-body tbody tr:last-child td{border-bottom:none}
.st-body code{font-family:'StDis',ui-monospace,monospace;font-size:0.875em;
  background:#ffffff;padding:0.1em 0.35em}
.st-body pre{margin:1.6rem 0;padding:1rem 1.1rem;background:#13191a;color:#f3f5f4;
  overflow-x:auto;font-size:0.875rem;line-height:1.55}
.st-body pre code{background:none;padding:0;color:inherit}
.st-body hr{border:none;height:2px;background:#c7cfcd;margin:1.9rem 0}
.st-body figure{margin:1.6rem 0}
.st-body figcaption{margin-top:0.55rem;font-size:0.8125rem;color:#4e5a58}

/* === ГРАФИКА СТРАНИЦЫ ==================================================
   Детерминированный орнамент из abstract_art.py: зерно слага — всегда
   одна и та же картинка. Семейство strata выбрано не по названию: это
   горизонтальные слои переменной толщины, то есть предмет корпуса. */
.st-art{position:relative;margin:0 0 2.6rem;line-height:0}
.st-art svg{display:block;width:100%;height:auto}
.st-art::after{content:attr(data-cap);position:absolute;left:0;bottom:-1.5rem;
  font-family:'StDis',ui-monospace,monospace;font-size:0.625rem;
  letter-spacing:.1em;text-transform:uppercase;color:#4e5a58;line-height:1}
.st-art--hub{margin-bottom:2.6rem}

/* === общее для знаков =================================================== */
/* Знак не в рамке, а ВДАВЛЕН в бумагу: тень внутрь сверху, светлая
   кромка снизу. Отчёт 2026 отделяет оптическую глубину (стекло —
   спорная) от тактильной (оттиск, бумага — не спорная). */
.st-p{position:relative;margin:0 0 2.4rem;background:#ffffff;
  box-shadow:inset 0 3px 7px rgba(19,25,26,.26),
             inset 0 1px 0 rgba(19,25,26,.3),
             inset 0 -2px 0 rgba(255,255,255,.95),
             0 2px 0 rgba(255,255,255,.75)}
/* Обрезные метки по углам — лист ещё не обрезан. */
.st-p::before,.st-p::after{content:"";position:absolute;width:13px;height:13px;
  pointer-events:none;opacity:.6}
.st-p::before{left:-7px;top:-7px;
  border-left:1px solid #2f5d74;border-top:1px solid #2f5d74}
.st-p::after{right:-7px;bottom:-7px;
  border-right:1px solid #2f5d74;border-bottom:1px solid #2f5d74}
.st-p__t{margin:0;padding:0.75rem 1.05rem;background:#13191a;color:#f3f5f4;
  font-family:'StDis',ui-monospace,monospace;font-weight:700;font-size:0.875rem;
  line-height:1.3;letter-spacing:-.01em;
  text-shadow:-2px -2px 0 rgba(47,93,116,.8)}
.st-p__in{padding:0.9rem 1.05rem 1rem}
.st-p__n{margin:0.95rem 0 0;padding:0.85rem 0 0;border-top:1px solid #c7cfcd;
  font-size:0.875rem;line-height:1.55;color:#4e5a58}
.st-p__n b{color:#13191a;font-weight:700}
.st-num{font-family:'StDis',ui-monospace,monospace;font-weight:700}

/* === ЗНАК 1: СБОРКА СТАВКИ СЛОЯМИ ======================================
   Полоса каждого слоя пропорциональна его доле в итоге и начинается
   там, где кончилась предыдущая: слои копятся, как на странице. */
.st-ld__r{display:grid;grid-template-columns:minmax(0,1fr) 5.5rem 5.5rem;
  gap:0.15rem 0.9rem;align-items:baseline;padding:0.62rem 0 0.5rem;
  border-bottom:1px solid #c7cfcd}
.st-ld__r:last-of-type{border-bottom:2px solid #13191a}
.st-ld__w{font-size:0.9375rem;line-height:1.4}
.st-ld__a{font-family:'StDis',ui-monospace,monospace;font-size:0.9375rem;
  font-weight:700;color:#9c3412;text-align:right}
.st-ld__c{font-family:'StDis',ui-monospace,monospace;font-size:0.9375rem;
  font-weight:700;text-align:right}
.st-ld__bar{grid-column:1/-1;position:relative;height:9px;background:#f3f5f4;
  margin:0.3rem 0 0}
.st-ld__bar i{position:absolute;top:0;height:9px;left:var(--x,0%);
  width:var(--w,0%);background:#9c3412}
.st-ld__bar b{position:absolute;top:0;height:9px;left:0;width:var(--x,0%);
  background:#a3adab}
.st-ld__d{grid-column:1/-1;margin:0.35rem 0 0;font-size:0.8125rem;
  line-height:1.45;color:#4e5a58}

/* === ЗНАК 2: КУДА ДЕЛСЯ ЧАС ============================================ */
.st-la__r{display:grid;grid-template-columns:minmax(0,1fr) 5rem auto;
  gap:0.2rem 0.9rem;align-items:center;padding:0.6rem 0;
  border-bottom:1px solid #c7cfcd}
.st-la__r:last-of-type{border-bottom:none}
.st-la__w{font-size:0.9375rem;line-height:1.4}
.st-la__v{font-family:'StDis',ui-monospace,monospace;font-size:0.9375rem;
  font-weight:700;text-align:right}
.st-la__bar{grid-column:1/-1;height:7px;background:#f3f5f4;margin:0.25rem 0 0}
.st-la__bar i{display:block;height:7px;width:var(--w,0%)}
.st-la__bar .c{background:#9c3412}
.st-la__bar .p{background:#7a5200}
.st-la__bar .a{background:#4e5a58}
.st-la__bar .l{background:#8f2a1c}
.st-la__d{grid-column:1/-1;margin:0.3rem 0 0;font-size:0.8125rem;
  line-height:1.45;color:#4e5a58}
.st-chip{display:inline-block;font-family:'StDis',ui-monospace,monospace;
  font-size:0.6875rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:0.2rem 0.45rem;color:#fff;white-space:nowrap}
.st-chip--mark{background:#9c3412}
.st-chip--warn{background:#7a5200}
.st-chip--quiet{background:#4e5a58}
.st-chip--bad{background:#8f2a1c}

/* === ЗНАК 3: ОДНА РАБОТА, ЧЕТЫРЕ ОТВЕТА ================================ */
.st-fo__r{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem;
  gap:0.2rem 0.9rem;align-items:baseline;padding:0.68rem 0;
  border-bottom:1px solid #c7cfcd}
.st-fo__r:last-of-type{border-bottom:none}
.st-fo__w{font-family:'StDis',ui-monospace,monospace;font-size:0.9375rem;
  font-weight:700;line-height:1.35}
.st-fo__v{font-family:'StDis',ui-monospace,monospace;font-size:1.125rem;
  font-weight:700;text-align:right;color:#9c3412}
.st-fo__d{grid-column:1/-1;margin:0.25rem 0 0;font-size:0.8125rem;
  line-height:1.45;color:#4e5a58}

/* === главная ============================================================ */
.st-open{position:relative;padding:1.9rem 2.4rem 2rem}
.st-kick{margin:0 0 1rem;font-family:'StDis',ui-monospace,monospace;
  font-size:0.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#9c3412}
.st-open h1{margin:0;font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.06;
  max-width:24ch;text-shadow:-4px -4px 0 #2f5d74}
/* Вторая половина заголовка отделяется ВЕСОМ, а не вторым цветом:
   у этого шаблона акцент ровно один. */
.st-open h1 em{font-style:normal;font-weight:400}
.st-open__d{margin:1.4rem 0 0;font-size:1.0625rem;line-height:1.62;color:#4e5a58;
  max-width:62ch}
.st-go{margin:1.6rem 0 0;display:flex;flex-wrap:wrap;gap:0.9rem}
.st-go a{font-family:'StDis',ui-monospace,monospace;font-size:0.8125rem;
  font-weight:700;letter-spacing:-.01em;text-decoration:none;
  padding:0.62rem 1rem;border:2px solid #13191a;color:#13191a}
.st-go a:hover{background:#13191a;color:#f3f5f4}
.st-open__note{margin:2rem 0 0;padding:1rem 0 0;border-top:1px solid #c7cfcd;
  font-size:0.8125rem;line-height:1.55;color:#4e5a58;max-width:76ch}

.st-shown{padding:0 2.4rem 1rem}
.st-sec{padding:1.7rem 2.4rem;border-top:1px solid #c7cfcd}
.st-sec__k{margin:0 0 0.5rem;font-family:'StDis',ui-monospace,monospace;
  font-size:0.75rem;font-weight:700;color:#9c3412}
.st-sec h2{margin:0;font-size:clamp(1.25rem,2.2vw,1.625rem);line-height:1.2}
.st-sec h2 a{text-decoration:none}
.st-sec h2 a:hover{color:#9c3412}
.st-sec__d{margin:0.7rem 0 1rem;font-size:0.9375rem;line-height:1.55;
  color:#4e5a58;max-width:62ch}
.st-list{margin:0;padding:0;list-style:none;columns:2;column-gap:2.2rem}
.st-list li{margin:0 0 0.5rem;break-inside:avoid}
.st-list a{position:relative;display:block;padding-left:2.2rem;
  font-size:0.9375rem;line-height:1.4;text-decoration:none;color:#13191a}
.st-list a::before{content:attr(data-n);position:absolute;left:0;top:0.1em;
  font-family:'StDis',ui-monospace,monospace;font-size:0.75rem;font-weight:700;
  color:#a3adab}
.st-list a:hover{color:#9c3412}
.st-list a:hover::before{color:#9c3412}

.st-end{margin:0;padding:1.9rem 2.4rem 2.2rem;border-top:2px solid #13191a}
.st-end h2{margin:0.5rem 0 0;font-size:clamp(1.25rem,2.2vw,1.625rem);line-height:1.2}
.st-end p{margin:0.9rem 0 0;max-width:62ch;color:#4e5a58}
.st-end__l{margin:1.2rem 0 0;padding:0;list-style:none;display:flex;
  flex-wrap:wrap;gap:1.2rem}
.st-end__l a{font-family:'StDis',ui-monospace,monospace;font-size:0.8125rem;
  font-weight:700;text-decoration:none;border-bottom:2px solid #a3adab}
.st-end__l a:hover{border-bottom-color:#9c3412}

/* === раздел ============================================================= */
.st-hub__row{padding:1.3rem 0;border-bottom:1px solid #c7cfcd}
.st-hub__row h2{margin:0;font-size:clamp(1.125rem,2vw,1.4375rem);line-height:1.25}
.st-hub__row h2 a{text-decoration:none}
.st-hub__row h2 a:hover{color:#9c3412}
.st-hub__row p{margin:0.55rem 0 0;font-size:0.9375rem;line-height:1.55;
  color:#4e5a58;max-width:66ch}

.st-next{margin:0;padding:1.6rem 2.4rem 2rem;border-top:2px solid #13191a}
.st-next__t{margin:0 0 0.9rem;font-family:'StDis',ui-monospace,monospace;
  font-size:0.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#4e5a58}
.st-next ul{margin:0;padding:0;list-style:none;columns:2;column-gap:2.2rem}
.st-next li{margin:0 0 0.5rem;break-inside:avoid}
.st-next a{font-size:0.9375rem;line-height:1.4;text-decoration:none;
  border-bottom:1px solid #a3adab}
.st-next a:hover{border-bottom-color:#9c3412}

/* === подвал ============================================================= */
.st-foot{padding:1.9rem 2.4rem 2.4rem;border-top:2px solid #13191a;
  background:#d6dedb}
.st-foot__g{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));
  gap:1.5rem 2rem}
.st-foot__t{margin:0 0 0.65rem;font-family:'StDis',ui-monospace,monospace;
  font-weight:700;font-size:0.875rem}
.st-foot__about{margin:0;font-size:0.875rem;line-height:1.55;color:#4e5a58}
.st-foot ul{margin:0;padding:0;list-style:none}
.st-foot li{margin:0 0 0.42rem}
.st-foot li a{font-size:0.875rem;color:#4e5a58;text-decoration:none}
.st-foot li a:hover{color:#13191a}
.st-foot__note{margin:1.8rem 0 0;padding:1rem 0 0;border-top:1px solid #a3adab;
  font-size:0.8125rem;line-height:1.6;color:#4e5a58;max-width:88ch}

@media(max-width:1000px){
  .st-page{grid-template-columns:1fr}
  .st-rail{position:static;border-right:none;border-bottom:2px solid #13191a;
    padding:1.4rem 1.5rem 1rem;display:flex;flex-wrap:wrap;align-items:baseline;
    gap:0.9rem 1.4rem}
  .st-rail nav{flex-direction:row;flex-wrap:wrap;gap:0 1.1rem;margin:0}
  .st-rail nav a{padding:0.3rem 0 0.3rem 0.95rem;font-size:0.78125rem}
  .st-rail nav a::before{top:0.85em;width:0.5rem}
  .st-rail::after{display:none}
  .st-main{border-left:none}
  .st-in,.st-open,.st-shown,.st-sec,.st-end,.st-next,.st-foot{padding-left:1.5rem;
    padding-right:1.5rem}
  .st-s{padding-left:4.2rem;padding-right:1.5rem}
  .st-s::before{left:1.5rem}
  .st-foot__g{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .st-h1,.st-open h1{text-shadow:-2px -2px 0 #2f5d74}
  .st-s::before{text-shadow:-2px -2px 0 #2f5d74}
  .st-in,.st-open,.st-shown,.st-sec,.st-end,.st-next,.st-foot{padding-left:1rem;
    padding-right:1rem}
  .st-s{padding:1.5rem 1rem 1.4rem;}
  .st-s::before{position:static;display:block;margin:0 0 0.5rem}
  .st-list,.st-next ul{columns:1}
  .st-ld__r{grid-template-columns:minmax(0,1fr) 4.4rem}
  .st-ld__c{grid-column:2}
  .st-la__r{grid-template-columns:minmax(0,1fr) auto}
  .st-la__v{grid-column:1;text-align:left}
  .st-foot__g{grid-template-columns:1fr}
  .st-body table{font-size:0.875rem}
  .st-body th,.st-body td{padding:0.55rem 0.6rem}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}


/* --- comparison guides -------------------------------------------- */
.oc-guide-body{max-width:100%}
.oc-guide-body>p,.oc-guide-body>h2,.oc-guide-body>h3,.oc-guide-body>ul{max-width:42em}
.oc-table-wrap{overflow-x:auto;margin:28px 0 42px;border:1px solid #e4e4e0;border-radius:12px;background:#fff}
.oc-table{width:100%;min-width:720px;border-collapse:collapse;font-size:14px;line-height:1.45}
.oc-table th,.oc-table td{padding:13px 14px;border-bottom:1px solid #e4e4e0;text-align:left;vertical-align:top}
.oc-table th{background:#0f1115;color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.oc-table tr:last-child td{border-bottom:0}
.oc-table td:first-child{width:38px;text-align:center;font-weight:700;color:#166534}
.oc-table td:nth-child(2){min-width:130px;font-weight:700;color:#0f1115}
.oc-tool{margin:48px 0 0;padding:30px;border:1px solid #e4e4e0;border-radius:14px;background:#fff}
.oc-tool h2{margin-top:0;max-width:none}
.oc-tool p{max-width:44em}
.oc-tool__link{margin-bottom:24px!important}
.oc-tool__link a{display:inline-block;color:#fff;background:#166534;border-radius:999px;padding:9px 15px;text-decoration:none;font-size:14px;font-weight:700}
.oc-tool__link a:hover{background:#0f1115}
.oc-context{border-left:3px solid #166534;padding-left:18px;color:#3d4450}
.oc-context--source{border-left-color:#9aa09a;font-size:.96em}
.oc-checklist{columns:2;column-gap:34px}
.oc-checklist li{break-inside:avoid}
@media(max-width:800px){.oc-tool{padding:22px 18px}.oc-table{min-width:640px}.oc-checklist{columns:1}}

/* Tool comparisons: three deliberately distinct layouts */
.oc-context{border-left:4px solid #9c3412;padding:15px 18px;background:#fff7f1}.oc-context--source{border-left-color:#2f5d74;background:#eef5f7}.wg-home-guides{padding-top:44px;padding-bottom:44px}.wg-home-grid,.wg-hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.wg-home-card,.wg-hub-card{display:flex;flex-direction:column;gap:10px;padding:23px;background:#fff;color:#13191a;text-decoration:none;border:1px solid #bac3c1}.wg-home-card span,.wg-hub-card>span{font:700 11px/1.2 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.wg-home-card strong{font-size:21px;line-height:1.25}.wg-home-card small{line-height:1.5;color:#56605f}.wg-home-card--field-ledger,.wg-hub-card--field-ledger{border-top:7px solid #9c3412}.wg-home-card--payroll-grid,.wg-hub-card--payroll-grid{border-top:7px solid #2f5d74}.wg-home-card--cost-map,.wg-hub-card--cost-map{border-top:7px solid #6b587e}.wg-guide>p,.wg-guide>h2,.wg-guide>h3,.wg-guide>ul{max-width:49rem}.wg-docket-stack{display:grid;gap:28px;margin:34px 0}.wg-docket{border:1px solid #cfb8aa;background:#fff}.wg-docket header{display:grid;grid-template-columns:92px 1fr auto;gap:16px;align-items:center;padding:18px 22px;background:#171b1c;color:#fff;border-left:7px solid #9c3412}.wg-docket header h2,.wg-docket header a{color:#fff}.wg-docket__body{padding:22px 25px;columns:2;column-gap:36px}.wg-docket__body p{break-inside:avoid}.wg-matrix-wrap{overflow-x:auto;margin:30px 0;border:1px solid #a9c1c7}.wg-matrix{width:100%;min-width:820px;border-collapse:collapse}.wg-matrix th,.wg-matrix td{padding:14px;border-bottom:1px solid #d3e0e3;text-align:left;vertical-align:top}.wg-matrix th{background:#2f5d74;color:#fff}.wg-matrix-note{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:28px 0;border-top:1px solid #a9c1c7}.wg-matrix-note__key{font:700 28px/1 ui-monospace,monospace;color:#2f5d74}.wg-brief-lane{margin:38px 0}.wg-brief-lane>h2{padding-bottom:10px;border-bottom:4px solid #6b587e}.wg-brief-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wg-brief-card{padding:22px;border:1px solid #cbc1d2;background:linear-gradient(145deg,#fff,#f4f1f6)}.wg-brief-card>span{font:700 10px ui-monospace,monospace;letter-spacing:.08em;color:#6b587e}.wg-checklist{columns:2;column-gap:34px}.wg-checklist li{break-inside:avoid;margin-bottom:8px}@media(max-width:850px){.wg-home-grid,.wg-hub,.wg-brief-grid{grid-template-columns:1fr}.wg-docket header{grid-template-columns:1fr}.wg-docket__body{columns:1}.wg-matrix-note{grid-template-columns:44px 1fr}.wg-checklist{columns:1}.st-rail nav{overflow-x:auto}}
